diff --git a/_includes/components/blog-sidebar.njk b/_includes/components/blog-sidebar.njk index 68f1975..0cbfb38 100644 --- a/_includes/components/blog-sidebar.njk +++ b/_includes/components/blog-sidebar.njk @@ -42,6 +42,8 @@ + {% elif widget.type == "fediverse-follow" %} + {% include "components/widgets/fediverse-follow.njk" %} {% elif widget.type == "custom-html" %} {% set wConfig = widget.config or {} %} diff --git a/_includes/components/homepage-sidebar.njk b/_includes/components/homepage-sidebar.njk index 9ab8b26..4135cac 100644 --- a/_includes/components/homepage-sidebar.njk +++ b/_includes/components/homepage-sidebar.njk @@ -29,6 +29,8 @@ {% include "components/widgets/webmentions.njk" %} {% elif widget.type == "recent-comments" %} {% include "components/widgets/recent-comments.njk" %} + {% elif widget.type == "fediverse-follow" %} + {% include "components/widgets/fediverse-follow.njk" %} {% elif widget.type == "custom-html" %} {# Custom content widget #} {% set wConfig = widget.config or {} %} diff --git a/_includes/components/sidebar.njk b/_includes/components/sidebar.njk index 8d0aee5..3301fb0 100644 --- a/_includes/components/sidebar.njk +++ b/_includes/components/sidebar.njk @@ -38,6 +38,8 @@ {% elif widget.type == "webmentions" %} {% include "components/widgets/webmentions.njk" %} + {% elif widget.type == "fediverse-follow" %} + {% include "components/widgets/fediverse-follow.njk" %} {% elif widget.type == "custom-html" %} {% set wConfig = widget.config or {} %} diff --git a/_includes/components/widgets/fediverse-follow.njk b/_includes/components/widgets/fediverse-follow.njk new file mode 100644 index 0000000..d34f42d --- /dev/null +++ b/_includes/components/widgets/fediverse-follow.njk @@ -0,0 +1,76 @@ +{# Fediverse Follow Me Widget — uses the fediverseInteract Alpine.js component #} +{# Requires fediverse-interact.js loaded in base.njk (already present) #} +{# Determines actor URI from site social links: prefers self-hosted AP, falls back to Mastodon #} + +{% set actorUrl = "" %} +{% for link in site.social %} + {% if link.icon == "activitypub" and not actorUrl %} + {% set actorUrl = link.url %} + {% endif %} +{% endfor %} +{% if not actorUrl %} + {% for link in site.social %} + {% if link.icon == "mastodon" and not actorUrl %} + {% set actorUrl = link.url %} + {% endif %} + {% endfor %} +{% endif %} + +{% if actorUrl %} + + + Follow Me + Follow me from your fediverse instance. + + + + + Follow on the Fediverse + + + {# Modal overlay for instance entry — same pattern as post.njk #} + + + + + Follow on the Fediverse + Enter your instance to follow this account. + + + + Cancel + + + Go + + + + + + + +{% endif %}
Follow me from your fediverse instance.
Enter your instance to follow this account.