Nogen kommentarer?

Dårligt er jeg kommet i gang med at skrive på min nye blog, før jeg synes, der ligesom mangler noget. Feedback! Kommentarer! Jow jow, folk som evt. følger bloggen fra Mastodon kan sagtens kommenterer derovre, men det ser jo hverken jeg eller andre, som læser bloggen.

Der er et åbent issue i Writefreelys Github repo om muligheden for at køre med fødererede svar, favoritter og kommentarer, men ingen indikation af om det er noget som evt. skulle være på trapperne.

Så hvad gør man så?

Cactus Comments

Efter lidt hurtig søgning faldt jeg i dag over Cactus Comments som er et fødereret kommentarsystem baseret på Matrix-protokollen. Det kan sættes op på fleste blog-agtige sites og det kræver ikke alverden. Der skal tilføjes et par linjers kode i bloggen og så skal man registrere sin side hos Cactus robotten. Det kræver at man har en Matrix-konto. Hvis man har sin egen Matrix-server, kan man også selv hoste Cactus serveren.

Det virker så ved at der bliver oprettet et Matrix chatrum per blogpost og hver post i chatrummet optræder så som en kommentar til blogposten. Temmelig smart. Jeg har til at starte med valgt blot at sætte mit site op på den offentlige cactus.chat server, men hvis flere fra data.coop bliver lun på Cactus, kan det være, at vi selv skal til at hoste :)

Jeg fulgte instruktioner specifikt til Writefreely og det var ekstremt simpelt at få op at køre. Det eneste minus lige nu er en bug i matrix.to servicen som ikke kan lide slashes så forsøg på at logge ind via denne fejler konsekvent. Så indtil videre er man nødt til at logge ind i browseren. Alternativt, kan man tillade anonyme kommentarer, men det ved jeg ikke lige om jeg har lyst til. Vi får se!

Update: jeg har fundet en løsning på slash problemet. Man skal bare lave et lille hack så kun slug'en bruges til at definere commentSectionId:

const commentSectionId = new URL(document.head.querySelector('link[rel="canonical"]').href).pathname.split('/').pop();

Så her er hele koden som skal sættes ind i Custom CSS:

</style>
<script type="text/javascript" src="https://latest.cactus.chat/cactus.js"></script>
<link rel="stylesheet" href="https://latest.cactus.chat/style.css" type="text/css">
<script>
document.addEventListener('DOMContentLoaded', () => {
  const commentSectionId = new URL(document.head.querySelector('link[rel="canonical"]').href).pathname.split('/').pop();
  initComments({
    node: "#comment-section",
    defaultHomeserverUrl: "https://matrix.cactus.chat",
    serverName: "cactus.chat",
    siteName: "<din blogs navn>",
    commentSectionId: commentSectionId,
    guestPostingEnabled: false
  })
})
</script>
<style>

Tak til A2 for hjælp med fejlsøgning!

(kommentarer kræver en Matrix konto)