Compare commits
No commits in common. "9002a45fa87b271162dc191591e87e4f0aeaa1e4" and "0355023fcf51bdd8c8620ffe6922e364b7da1e03" have entirely different histories.
9002a45fa8
...
0355023fcf
|
@ -6,8 +6,6 @@ metadata.oldPermalink = "/meta/2017/04/23/comments-powered-by-github/"
|
||||||
metadata.shortDesc = "I built a way of commenting on my static website using GitHub to store comments."
|
metadata.shortDesc = "I built a way of commenting on my static website using GitHub to store comments."
|
||||||
```
|
```
|
||||||
|
|
||||||
**NOTE:** This article has been superseded by the [ActivityPub comments system](/meta/2019/reincarnation/#activity-pub).
|
|
||||||
|
|
||||||
After seeing [this article][orig] the other morning about replacing the Disqus comments on a blog powered by a static site generator (like this one) with comments backed by a GitHub issue and some front-end JavaScript to load and display them, I thought it would be fun to implement something similar. First I only built the code for displaying comments, similar to the aforementioned article, but I decided to take it one step further by allowing users to submit comments directly from my site.
|
After seeing [this article][orig] the other morning about replacing the Disqus comments on a blog powered by a static site generator (like this one) with comments backed by a GitHub issue and some front-end JavaScript to load and display them, I thought it would be fun to implement something similar. First I only built the code for displaying comments, similar to the aforementioned article, but I decided to take it one step further by allowing users to submit comments directly from my site.
|
||||||
|
|
||||||
<!-- excerpt-end -->
|
<!-- excerpt-end -->
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
```
|
|
||||||
metadata.title = "ActivityPub Resources"
|
|
||||||
metadata.category = "activitypub"
|
|
||||||
metadata.date = "2019-09-22 17:50:42 -0400"
|
|
||||||
metadata.shortDesc = "A compilation of resources I found useful in learning/implementing ActivityPub."
|
|
||||||
```
|
|
||||||
|
|
||||||
This isn't really going to be a blog most, but more of a collection of tidbits and resources I found helpful in implenting the [ActivityPub integration](/meta/2019/reincarnation/#activity-pub) for the new version of my blog.
|
|
||||||
|
|
||||||
This post was last updated on Sep 22, 2019.
|
|
||||||
|
|
||||||
<!-- excerpt-end -->
|
|
||||||
|
|
||||||
### Specs
|
|
||||||
- The [ActivityStreams 2.0 spec](https://www.w3.org/TR/activitystreams-core/) is important, as it's what ActivityPub is built on top of.
|
|
||||||
- Similarly, the [AS 2.0 Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary/) defines all the objects and activities that AP actually uses in practice (and many more that it doesn't).
|
|
||||||
- The [ActivityPub spec](https://www.w3.org/TR/activitypub/) itself is quite useful, despite its many omissions.
|
|
||||||
- There's also [LitePub](https://litepub.social/litepub/), which has some extensions to AP.
|
|
||||||
- The least useful by far spec is [JSON-LD](https://www.w3.org/TR/json-ld/) which defines how to use JSON to represent linked data and objects graphs. AS2 and AP are both built on this, but if you're going for a simple implementation (or even a complex one), you can entirely ignore this and treat JSON-LD as plain old JSON objects.
|
|
||||||
|
|
||||||
[This](https://tinysubversions.com/notes/reading-activitypub/) is also a helpful resource about how to go about reading the AP specification.
|
|
||||||
|
|
||||||
### Actually Federating
|
|
||||||
- Gargron's blog posts on [implementing a basic AP server](https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/) and [implementing HTTP signatures](https://blog.joinmastodon.org/2018/07/how-to-make-friends-and-verify-requests/) are good guides for how to actually get federating with other servers in the wild.
|
|
||||||
- [Lain's blog post](https://blog.soykaf.com/post/activity-pub-in-pleroma/) on some of the weird quirks of how ActivityPub actually gets used.
|
|
||||||
- [Kaniini's blog post](https://blog.dereferenced.org/federation-what-flows-where-and-why) about how data actually moves through the fediverse.
|
|
||||||
|
|
||||||
### Reference Material
|
|
||||||
- I used the [Pleroma source code](https://git.pleroma.social/pleroma/pleroma/) a great deal when working on my implementation, mainly just because I'm familiar with Elixir.
|
|
||||||
- I'd also like to think [my own implementation](https://git.shadowfacts.net/shadowfacts/shadowfacts.net/src/branch/master/lib/activitypub) is fairly approachable (it's about 700 lines of not-too-complicated TypeScript).
|
|
||||||
- Ted Unangst has a collection of [sample data](https://jawn.tedunangst.com/a/R526ZQ49MbYt5J4KpR) which is useful for comparing how different implementations represent things in AP.
|
|
||||||
|
|
||||||
### Other
|
|
||||||
- Ted Unangst also has his own [compilation of AP-related links](https://flak.tedunangst.com/post/ActivityPub-as-it-has-been-understood).
|
|
Loading…
Reference in New Issue