Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vijithassar/rollup-plugin-markdown
import JavaScript from Markdown code blocks
https://github.com/vijithassar/rollup-plugin-markdown
documentation javascript literate-programming markdown npm rollup rollup-plugin
Last synced: about 1 month ago
JSON representation
import JavaScript from Markdown code blocks
- Host: GitHub
- URL: https://github.com/vijithassar/rollup-plugin-markdown
- Owner: vijithassar
- Created: 2017-11-09T15:53:44.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2017-12-02T07:59:49.000Z (about 7 years ago)
- Last Synced: 2024-05-15T13:01:12.248Z (7 months ago)
- Topics: documentation, javascript, literate-programming, markdown, npm, rollup, rollup-plugin
- Language: JavaScript
- Size: 7.81 KB
- Stars: 16
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome - markdown - Import code from fenced code blocks in Markdown. (Plugins / Other File Imports)
README
# Overview
This [Rollup](https://rollupjs.org/) plugin lets you extract your JavaScript code from code blocks embedded in [Markdown](https://daringfireball.net/projects/markdown/syntax) files, which in turn promotes good written documentation. This technique is called [literate programming](https://en.wikipedia.org/wiki/Literate_programming).
For a more detailed discussion about why you might want to do this, or to implement with other programming languages and other JavaScript build tools, please instead see [lit](https://github.com/vijithassar/lit), a shell script which provides the same functionality in a more agnostic fashion.
# Example
[GitHub Flavored Markdown](https://github.github.com/gfm/) represents code using [fenced code blocks](https://help.github.com/articles/creating-and-highlighting-code-blocks/), which are demarcated with three backticks in a row:
```javascript
function greeting() {
console.log('hello world');
}export { greeting };
```After you import and run this plugin in your `rollup.config.js` configuration file, the `greeting()` function above can be *imported directly from this Markdown document*! For example, you might use the following [ES6 module import statement](https://rollupjs.org/#importing):
`import { greeting } from './path/to/README.md';`
Sourcemaps will correctly point your debugging back to the original Markdown documents.
You *must* include `js` or `javascript` as a language specifier after opening up a fenced code block in Markdown. Fenced code blocks that specify any other language and fenced code blocks that do not specify a language at all will be ignored. This makes it possible for you to include other code in your Markdown file without that code being executed. This is particularly useful for including Bash commands.