Parse bash comments as if they were YAML frontmatter, almost
https://twitter.com/HorseAJ86/status/1258247206835941376
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AJ ONeal
16df5f584f
|
4 years ago | |
---|---|---|
.gitignore | 4 years ago | |
.prettierrc | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
example.sh | 4 years ago | |
package-lock.json | 4 years ago | |
package.json | 4 years ago | |
shmatter.js | 4 years ago |
README.md
Shmatter
Parse bash comments as if they were frontmatter.
It's not really YAML, but it's intended to look like it!
Example
Consider this bash file:
#!/bin/bash
# title: Foo Bar
# tagline: Messes stuff up
# homepage: https://example.com/foobar
# description: |
# Foo Bar is a community-festered, government-driven destruction (GDD) system.
# examples: |
#
# Really mess something up
#
# ```bash
# foobar my-file.txt
# ````
#
# Mess up an entire volume, forcefully and recursively
#
# ```bash
# foobar -rf /
# ```
rm -i "${0}" "${1}"
Now consider parsing it with shmatter
:
var shmatter = require("shmatter");
var bash = fs.readFileSync("./myscript.sh", "utf8");
var meta = shmatter(bash);
console.log(meta);
This is what you'd get:
{
title: 'Foo Bar',
tagline: 'Messes stuff up',
description: '<p>Foo Bar is a community-festered, government-driven destruction (GDD) system.</p>\n',
examples: '<p>Really mess something up</p>\n' +
'<pre><code class="language-bash">foobar my-file.txt</code></pre>\n' +
'<p>Mess up an entire volume, forcefully and recursively</p>\n' +
'<pre><code class="language-bash">foobar -rf /</code></pre>\n',
homepage: 'https://example.com/foobar'
}
Why?
Pfff... go ask yourself!
I know it was a dumb idea. I've moved on. I'm healing... but why are you here?