···1010## Examples
11111212- [lustre_chilp_app](https://forge.strawmelonjuice.com/strawmelonjuice/chilp/src/branch/main/examples/lustre_chilp_app)
1313-- [lustre_chilp_app_nocomponent](https://forge.strawmelonjuice.com/strawmelonjuice/chilp/src/branch/main/examples/lustre_chilp_app_nocomponent)
14131514Further documentation can be found at <https://hexdocs.pm/chilp>.
1615
+1-1
gleam.toml
···11name = "chilp"
22-description = "Allows you to use Mastodon comments on your Lustre blog."
22+description = "Allows you to use Mastodon and Bluesky comments on your Lustre blog."
33version = "2.0.0-rc"
44gleam = ">= 1.15.0"
55licences = ["Apache-2.0"]
+3-3
src/chilp/widget.gleam
···838838839839/// A Bluesky Threadview, like what you get from `https://public.api.bsky.app/xrpc/app.bsky.feed.getPostThread?uri=at://did:plc:jgtfsmv25thfs4zmydtbccnn/app.bsky.feed.post/3mgrbiiadws2k`.
840840/// This one is very pruned! Why? Because these json responses are huge and we only need a small subset of the data in them!
841841-pub type BskyThreadView {
841841+type BskyThreadView {
842842 BskyThreadView(at_uri: String, replies: List(BskyThreadReply))
843843}
844844845845-pub type BskyThreadReply {
845845+type BskyThreadReply {
846846 BskyThreadReply(
847847 at_uri: String,
848848 like_count: Int,
···856856 )
857857}
858858859859-pub fn bsky_thread_view_decoder() -> decode.Decoder(BskyThreadView) {
859859+fn bsky_thread_view_decoder() -> decode.Decoder(BskyThreadView) {
860860 use at_uri <- decode.subfield(["thread", "post", "uri"], decode.string)
861861 use replies <- decode.subfield(
862862 ["thread", "replies"],
+1-1
src/chilp/widget/anchors.gleam
···11pub type Mastodon {
22 Mastodon(
33- /// The instance name, e.g. mastodon.social
33+ /// The instance name, e.g. mastodon.social, this is where your post is stored, and where chilp will attempt to fetch it from.
44 instance: String,
55 /// A post id to bind to, you'll find this in a post url `https://mastodon.social/@<username>/[postid]`.
66 postid: String,