A minimal commenting system for static blogs using external Mastodon or API compatible server.
- painless: use already existing fediverse accounts
- serverless: hosted on static server or cdn
- lightweight: any useless features (IMO)
- no dependencies: pure native js
- personal: no style, no tracking
<div class="comtodon" data-domain="mastodon.social" data-status="100745593232538751"></div>
<script src="comtodon.min.js" defer></script>
See index.html
Create a tree by adding data-deep=N
- 0: Full tree
- 1: Only "direct" replies
- 2: With replies to replies
- And so on
Add data-moderator="{moderator_id}"
to display only approved (replied) comments
Note: Can't use fav, it requires authentication
Put comtodon.min.js
in static
folder
In your site config
params:
comtodon:
domain: mastodon.social
# moderator: 358957
In your single page layout
{{ if .Params.comtodon }}
<div class="comtodon" data-domain="{{ .Site.Params.comtodon.domain }}" data-status="{{ .Params.comtodon }}" {{ with .Site.Params.comtodon.moderator }}data-moderator="{{ . }}"{{ end }}></div>
<script src="/comtodon.min.js" defer></script>
{{- end }}
In your content header
comtodon: 100745593232538751
Style it
Only use /api/v1/statuses/:id/context
. See doc
No authentication required
{
descendants: [{
account: {
acct,
avatar_static,
display_name,
id,
emojis: [{shortcode, static_url}],
url
},
created_at,
content,
emojis: [{shortcode, static_url}],
id,
in_reply_to_id,
sensitive,
spoiler_text
}]
}
Simple placeholder
<div class="comtodon" data-domain="mastodon.social" data-status="100745593232538751">
<p class="no-js sad">Enable JavaScript to see comments</p>
</div>
- Use personal status as sample
- Create proxy backend for cache and moderating with fav
- Auto-magically create statuses from hugo ???