|
2 years ago | |
---|---|---|
.github/workflows | 2 years ago | |
.yarn | 2 years ago | |
src | 2 years ago | |
test | 2 years ago | |
.gitignore | 2 years ago | |
.pnp.js | 2 years ago | |
.yarnrc.yml | 2 years ago | |
README.md | 2 years ago | |
jam-my-stack.sublime-project | 2 years ago | |
package-lock.json | 2 years ago | |
package.json | 2 years ago | |
yarn.lock | 2 years ago |
README.md
jam-my-stack 🥞
A set of simple IndieWeb Jamstack publishing syndication tools
Published at https://www.npmjs.com/package/jam-my-stack
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:
yarn add jam-my-stack
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')