Post B4FiiZbfFNeS8F0Cn2 by julian@fietkau.social
 (DIR) More posts by julian@fietkau.social
 (DIR) Post #B4CidwLkg4PZkNTDyy by fabio@manganiello.eu
       0 likes, 0 repeats
       
       #ActivityPub support in #Madbloghttps://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdownI am glad to announce that Madblog has now officially joined the #Fediverse family.If you want to test it out, search for this URL on your Fediverse client.Madblog has already supported #Webmentions for the past couple of weeks, allowing your blog posts to be mentioned by other sites with Webmentions support (WordPress, Lemmy, HackerNews…) and get those mentions directly rendered on your page.It now adds ActivityPub support too, using #Pubby, another little Python library that I’ve put together myself (just like Webmentions) as a mean to quickly plug ActivityPub support to any Python Web app.Webmentions and Pubby follow similar principles and implement a similar API, and you can easily use them to add federation support to your existing Web applications - a single bind_webmentions or bind_activitypub call to your existing Flask/FastAPI/Tornado application should suffice for most of the cases.Madblog may have now become the easiest way to publish a federated blog - and perhaps the only way that doesn’t require a database, everything is based on plain Markdown files.If you have a registered domain and a certificate, then hosting your federated blog is now just a matter of:mkdir -p ~/madblog/markdowncat <<EOF > ~/madblog/markdown/hello-world.md# My first postThis is my first post on [Madblog](https://git.fabiomanganiello.com/madblog)!EOFdocker run -it \  -p 8000:8000 \  -v "$HOME/madblog:/data" \  quay.io/blacklight/madblogAnd Markdown files can be hosted wherever you like - a Git folder, an Obsidian Vault, a Nextcloud Notes installation, a folder on your phone synchronized over SyncThing…Federation support is also at a quite advanced state compared to e.g. #WriteFreely. It currently supports:Interactions rendered on the articles: if you like, boost, quote or reply to an article, all interactions are rendered directly at the bottom of the article (interactions with WriteFreely through federated accounts were kind of lost in the void instead)Guestbook support (optional): mentions to the federated Madblog handle that are not in response to articles are now rendered on a separate /guestbook routeEmail notifications: all interactions can have email notificationsSupport for quotes, also on MastodonSupport for mentions, just drop a @joe@example.com in your Markdown file and Joe will get a notificationSupport for hashtag federationSupport for split-domain configurations, you can host your blog on blog.example.com but have a Fediverse handle like @blog@example.com. Search by direct post URL on Mastodon will work with both casesSupport for custom profile fields, all rendered on Mastodon, with verification supportSupport for moderation, either through blocklist or allowlist, with support for rules on handles/usernames, URLs, domains or regular expressionsA partial (but comprehensive for the provided features) implementation of the Mastodon APIIf you want you can follow both the profiles of my blogs - they are now both federated:My personal blog: @fabio (it used to run WriteFreely before, so if you followed it you may need to unfollow it and re-follow it)The #Platypush blog: @blog
       
 (DIR) Post #B4FiiYKG0c8K9xqn1E by liaizon@wake.st
       0 likes, 0 repeats
       
       @fabio cc @julian look another QP supporting software for your implementors PR
       
 (DIR) Post #B4FiiZbfFNeS8F0Cn2 by julian@fietkau.social
       0 likes, 0 repeats
       
       @liaizon @fabio Alas, the PR has been merged, so it'll be a long while until I bother Claire again. 🙂But I'll keep updating my own list. I see in the code where the interaction policy is declared, but not where individual quotes are authorized. If I quote this post here, let's test if both of us will see the quote.https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdownRT: https://manganiello.blog/article/Madblog-federated-blogging-from-markdown
       
 (DIR) Post #B4FiiZp8RIQWo1Ixmq by fabio@manganiello.eu
       0 likes, 0 repeats
       
       @julian @liaizon I got the quote https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdown 🙂
       
 (DIR) Post #B4Fiia3JaZllVzwHtA by julian@fietkau.social
       0 likes, 0 repeats
       
       @fabio Right, and my server seems to have gotten the corresponding `Accept`. 👍 But if you look at https://social.wake.st/@liaizon/116205306320048221 and scroll down, you see that @liaizon can't see the quote in my reply (and neither can people on any other server looking at this thread). This is because the `QuoteAuthorization` needs to be publicly resolvable: https://fediverse.codeberg.page/fep/fep/044f/#verifying-third-party-quote-posts
       
 (DIR) Post #B4FiiaDwx2HC2yumSu by fabio@manganiello.eu
       0 likes, 0 repeats
       
       @julian @liaizon good catch, that was actually a bug in the quote_authorizations URL routing on Pubby’s side - I’ve just pushed a fix for it https://git.platypush.tech/blacklight/pubby/commit/2b37e604defb8dbd9580af890c5854c2f9cd9dfd
       
 (DIR) Post #B4FiiaNAOleIVZE8pc by julian@fietkau.social
       0 likes, 0 repeats
       
       @fabio @liaizon Oh excellent! Please let me know when the new version is live on your blog and I'll test again. 🙂
       
 (DIR) Post #B4FiiaUbx5bUsei5R2 by fabio@manganiello.eu
       0 likes, 0 repeats
       
       @julian @liaizon it’s all live, let me know if it works 🙂
       
 (DIR) Post #B4FiiarIajkg11KCnY by julian@fietkau.social
       0 likes, 0 repeats
       
       @liaizon Yeah, works on my server but not yours. 😅Hey @fabio, congrats on the ActivityPub support! The quote authorization that my server got from your blog for the above post seems to 404: https://manganiello.blog/ap/actor/quote_authorizations/34bcaca1-62d8-4620-b97d-552008426bce
       
 (DIR) Post #B4FiibOGcA7hfGkXBY by julian@fietkau.social
       0 likes, 0 repeats
       
       @fabio @liaizon New quote test, wooo!https://blog.fabiomanganiello.com/article/Madblog-federated-blogging-from-markdownEdit: Yep, looks to be working! 😀RT: https://manganiello.blog/article/Madblog-federated-blogging-from-markdown
       
 (DIR) Post #B4FiibYC1G3yA3OSem by liaizon@wake.st
       0 likes, 0 repeats
       
       @fabio @julian I noticed I can't quote this reply, was that intentional?
       
 (DIR) Post #B4Fiibi7QM0Eeq2O80 by liaizon@wake.st
       0 likes, 0 repeats
       
       @fabio yay it looks like it works now!another tiny bug I will note: the way you are adding my mention in your reply is causing mastodon to make a link preview for it. while I don't know what you need to do technically to disable it, I know its able to be done since they only show up like this for certain server softwares
       
 (DIR) Post #B4FiibuseuD9IQ0a1I by julian@fietkau.social
       0 likes, 0 repeats
       
       @liaizon @fabio That one's a microformat mismatch, Mastodon looks for the class "mention" to skip the link preview and open the profile locally. https://docs.joinmastodon.org/spec/microformats/#mastodon
       
 (DIR) Post #B4Fiic2KDEALfVUWci by liaizon@wake.st
       1 likes, 0 repeats
       
       @julian @fabio oh interesting! this seems like something there should be a FEP for huh