Skip to content

Execute your README markdown javascript examples

License

Notifications You must be signed in to change notification settings

zerodep/texample

Repository files navigation

Execute your README markdown javascript examples

BuildCoverage Status

CLI

Arguments

  • List of markdown files separated by comma (,)
  • Optional markdown block index number, from 0
texample ./README.md,./docs/API.md

Example

Create a script that does the following:

import vm from 'node:vm';
import { createRequire } from 'node:module';
import { fileURLToPath } from 'node:url';
import { resolve as resolvePath } from 'node:path';

import { ExampleEvaluator } from 'texample';

if (!('SourceTextModule' in vm)) throw new Error('No SourceTextModule in vm, try using node --experimental-vm-modules flag');

const CWD = process.cwd();

const nodeRequire = createRequire(fileURLToPath(import.meta.url));
const packageDefinition = nodeRequire(resolvePath(CWD, 'package.json'));

const markdownFiles = process.argv[2] || './README.md';
const blockIdx = Number(process.argv[3]);

(async () => {
  for (const filePath of markdownFiles.split(',')) {
    await new ExampleEvaluator(filePath, packageDefinition, CWD, {
      Buffer,
      console,
      setTimeout,
      clearTimeout,
    }).evaluate(blockIdx);
  }
})();

Releases

No releases published

Packages

No packages published