A set of simple IndieWeb Jamstack publishing syndication tools
Go to file
Wouter Groeneveld 47acd5531b added version badge 2021-03-05 11:26:29 +01:00
.yarn move masto-feed-parser out of brainbaking repo, first jest tests 2021-03-04 19:01:25 +01:00
src added readme 2021-03-05 11:22:27 +01:00
test move mock tests to separate file 2021-03-05 09:04:42 +01:00
.gitignore move masto-feed-parser out of brainbaking repo, first jest tests 2021-03-04 19:01:25 +01:00
.pnp.js move masto-feed-parser out of brainbaking repo, first jest tests 2021-03-04 19:01:25 +01:00
.yarnrc.yml move masto-feed-parser out of brainbaking repo, first jest tests 2021-03-04 19:01:25 +01:00
README.md added version badge 2021-03-05 11:26:29 +01:00
jam-my-stack.sublime-project move masto-feed-parser out of brainbaking repo, first jest tests 2021-03-04 19:01:25 +01:00
package-lock.json move masto-feed-parser out of brainbaking repo, first jest tests 2021-03-04 19:01:25 +01:00
package.json move masto-feed-parser out of brainbaking repo, first jest tests 2021-03-04 19:01:25 +01:00
yarn.lock move masto-feed-parser out of brainbaking repo, first jest tests 2021-03-04 19:01:25 +01:00

README.md

jam-my-stack 🥞

A set of simple IndieWeb Jamstack publishing syndication tools

Published at https://www.npmjs.com/package/jam-my-stack

npm version

These simple scripts enrich your Jamstack-site by adding/manipulating/whatever (meta)data, such as extra posts, indexing, and so forth. A primary example of these tools in action is my own site https://brainbaking.com - inspect how it's used at https://github.com/wgroeneveld/brainbaking

The tools

Usage:

  1. yarn add jam-my-stack
  2. const { mastodon, goodreads, lunr } = require('jam-my-stack')

1. Mastodon

1.1 parseFeed

An async function that parses your Fediverse-compatible feed (Mastodon/Pleroma/...) and converts entries to .md Markdown files for your Jamstack to enjoy.

Usage example:

    await mastodon.parseFeed({
        notesdir: `${__dirname}/content/notes`,
        url: "https://chat.brainbaking.com/users/wouter/feed"
    })

2. Goodreads

2.1 createWidget

An async function that reads and modifies Goodreads JS widget embed code, converting low-res book covers to hi-res ones if possible. This omits possible Goodread cookies and cross-domain mishaps.

Usage example:

    const widget = await goodreads.createWidget("https://www.goodreads.com/review/grid_widget/5451893.Wouter's%20bookshelf:%20read?cover_size=medium&hide_link=&hide_title=&num_books=12&order=d&shelf=read&sort=date_added&widget_id=1496758344")
    await fsp.writeFile(`${__dirname}/static/js/goodreads.js`, widget, 'utf-8')

3. Lunr

3.1 buildIndex

An async function that reads all .md files of certain locations (pass as an array []), generating a Lunr.js .json index object. Serialize it yourself wherever you'd like it to go.

Usage example:

    const index = await lunr.buildIndex([
        `${__dirname}/content/post`,
        `${__dirname}/content/notes`])
    await fsp.writeFile(`${__dirname}/static/js/brainbaking-post.json`, JSON.stringify(index), 'utf-8')