embedex
v0.3.2
Published
Embed shared text and code snippets from source files into destination files.
Downloads
38
Maintainers
Readme
embedex
Embed shared text and code snippets from source files into destination files. For example:
- Embed TypeScript examples into TypeDoc comments and your README.
- Embed a Markdown snippet into multiple JSDoc comments.
embedex
helps ensure a single source of truth while ensuring sources are up-to-date with the code they are documenting, runnable, linted, tested, and show on hover in IDEs.
Table of contents
Install
Install as a dev dependency in your project:
npm install --save-dev embedex
Or globally:
npm install --global embedex
Usage
Add a source file to the
./examples
directory (configurable). The first line is a comma-separated list of destination file paths to embed the source's file contents into../examples/greeter.ts
:// README.md,src/greeter.ts import { greet } from "@my-scope/greeter"; greet("world");
In the destination file, add an
<embedex source="..."></embedex>
tag that includes the source file's path../README.md
:# greeter Greets a person by name. <embedex source="examples/greeter.ts"> </embedex>
./src/greeter.ts
:/** * Greets a person by name. * * @example * <embedex source="examples/greeter.ts"> * </embedex> */ function greet(name: string) { console.log(`Hello, ${name}!`); }
Run
npx embedex
.The source is embedded!
./README.md
:# greeter Greets a person by name. <embedex source="examples/greeter.ts"> ```ts import { greet } from "@my-scope/greeter"; greet("world"); ``` </embedex>
./src/greeter.ts
:/** * Greets a person by name. * * @example * <embedex source="examples/greeter.ts"> * * ```ts * import { greet } from "@my-scope/greeter"; * * greet("world"); * ``` * * </embedex> */ function greet(name: string) { console.log(`Hello, ${name}!`); }
CLI reference
Usage: embedex [options]
Embed shared text and code snippets from source files into destination files.
Options:
-V, --version output the version number
-e, --sourcesGlob <pattern> sources glob pattern (default: "examples/**/*.{md,ts}")
-c, --check verify if sources are correctly embedded without making changes,
exits with non-zero code if updates are needed; useful for CI/CD
pipelines (default: false)
-v, --verbose show verbose output (default: false)
-h, --help display help for command
Local development commands
See package.json
scripts
for a list of commands.