Make your Markdown code blocks executable
Marked extension to add code chunk metadata to the markdown fenced code blocks. e.g.
~~~bash {osx bin=/bin/bash}
ls -l ./
~~~
- tokenizer will extract attributes
osx=true
andbin="/bin/bash""
- renderer will render the code block with attributes:
data-osx="true"
anddata-bin="/bin/bash"
Check out our Contributing Guidelines and Code of Conduct.
git clone [email protected]:murabi-io/marked-code-chunks.git
cd my-project
npm install
npm run setup
Repository relies on volta to ensure node version to be consistent across developers. It's also used in the GitHub workflow file.
Leverages esbuild for blazing fast builds, but keeps tsc
to generate .d.ts
files.
Generates two builds to support both ESM and CJS.
Commands:
build
: runs typechecking then generates CJS, ESM andd.ts
files in thebuild/
directoryclean
: removes thebuild/
directorytype:dts
: only generatesd.ts
type:check
: only run typecheckingtype:build
: only generates CJS and ESM
We use jest.
Commands:
test
: runs jest test runnertest:watch
: runs jest test runner in watch modetest:coverage
: runs jest test runner and generates coverage reports
This template relies on the combination of eslint — through typescript-eslint for linting and prettier for formatting. It also uses cspell to ensure spelling
Commands:
format
: runs prettier with automatic fixingformat:check
: runs prettier without automatic fixing (used in CI)lint
: runs eslint with automatic fixinglint:check
: runs eslint without automatic fixing (used in CI)spell:check
: runs spellchecking
Under the hood, this library uses semantic-release and commitizen.
The goal is to avoid manual release process. Using semantic-release
will automatically create a github release (hence tags) as well as an npm release.
Based on your commit history, semantic-release
will automatically create a patch, feature or breaking release.
Commands:
cz
: interactive CLI that helps you generate a proper git commit message, using commitizensemantic-release
: triggers a release (used in CI)