Command line tool to inject files into markdown files.
npm install inject-markdown



A Command line tool to inject files into Markdown files.
Sometimes it is necessary to assemble content into a static markdown file like README.md.
Manually copying and pasting content leads to duplication making it difficult to keep things in sync.
Use HTML comments to mark where content will be injected.
``markdown`
`sh`
npx inject-markdown README.md
`sh`
npx inject-markdown --help
`
Usage: inject-markdown [options]
Inject file content into markdown files.
Arguments:
files Files to scan for injected content.
Options:
--no-must-find-files No error if files are not found.
--output-dir
How to use Injections
Import Code
All non-markdown files will be imported as a code block.
`markdown
``ts
export function sayHello(name: string): string {
return Hello ${name};
}
`Import
json as jsonc$3
`markdown
`$3
``markdown
`jsonc
{
"name": "Sample"
}
`
``$3
`jsonc
{
"name": "Sample"
}
`Import Markdown as Code
It is also possible to inject markdown:
`markdown
``markdown
Example
This is an example bit of markdown.
- first
- second
- third
`Import a section from a Markdown file
`markdown
or
`> ## Chapter 3: Directives
>
> -
@@inject: and @@inject-start: -- injects the contents of a markdown file.
> - -- the file to import
> - heading -- optional heading to extract.
> - code -- optional embed as a markdown code block
> - quote -- optional embed as a block quote.
> - @@inject: , @@inject-start: , and @@inject-code:
> - , -- the file to import
> - lang -- optional language to use for the code bock.
> - quote -- optional embed as a block quote.Import from lines from GitHub

`
``typescript
async function version(): Promise {
const pathSelf = fileURLToPath(import.meta.url);
const pathPackageJson = path.join(path.dirname(pathSelf), '../package.json');
const packageJson = JSON.parse(await fs.readFile(pathPackageJson, 'utf8'));
return (typeof packageJson === 'object' && packageJson?.version) || '0.0.0';
`Per Injections Options
The hash
# portion of the file URL is used to set injection options. Each option is separated by a &.| Option | Code | Markdown | Description |
| --------- | ---- | -------- | --------------------------------------------------------- |
|
heading | ❌ | ✅ | Used to extract a section from a markdown file. |
| code | ❌ | ✅ | Convert the injected markdown into a Code Block. |
| lang | ✅ | ✅ | Used to set the language of the code block. |
| quote | ✅ | ✅ | Used to inject the file as a block quote. |
| L1-L10 | ✅ | ✅ | Used to inject only specified lines from the source file. |$3
Extract a few lines from a Markdown files and quote them.
`markdown
`> - first
> - second
> - third
$3
Extract some lines from a code block in the source.
`markdown
`>
`js
> export function sayGoodbye(name) {
> return Goodbye ${name};
> }
> ``---
Brought to you by
Street Side Software