A library that converts markdown to JCR.
Install all dependencies by running:
npm installYou can install the package via npm:
npm install @adobe/helix-md2jcrOr use it directly with npx without installing:
npx @adobe/helix-md2jcr path/to/content.mdThe package includes a CLI tool md2jcr that converts markdown files to JCR XML format.
Basic usage:
npx @adobe/helix-md2jcr path/to/content.mdConvert a single file:
md2jcr test/fixtures/simple.mdConvert all markdown files in a directory:
md2jcr test/fixtures/View output in console with verbose flag -v:
md2jcr test/fixtures/simple.md -vView decoded XML output with -v and -d flags:
md2jcr test/fixtures/simple.md -v -dUse custom Universal Editor files from a directory:
md2jcr content.md -ue path/to/ue-files-directoryThe converter will generate a .xml file alongside the markdown file containing the JCR structure. This can be used to check for potential content changes due to conversion.
-v,--verbose- Print the XML output to the console-d,--decode- Decode HTML entities in the XML output (use with-v)-ue,--ue-files <directory>- Specify a directory containing Universal Editor configuration files
Example directory structure:
ue-files/
├── component-models.json
├── component-definition.json
└── component-filters.json
You can also use the library programmatically in your Node.js code:
import { md2jcr } from '@adobe/helix-md2jcr';
const markdown = '# Hello World\n\nThis is a test.';
const options = {
models: [...],
definition: {...},
filters: [...]
};
const xml = await md2jcr(markdown, options);
console.log(xml);Running the ./baseline-tests.sh script will detect any md file under test/fixtures and execute the convert2jcr node script.
The script will generate new xml files beside the md files it locates. This is helpful when making changes to the converter
and you want to see if the changes have any impact on the output. By using git diff, you will see the new changes in the xml files.
If you are satisfied with the changes, you can commit the new xml files.
Simply execute the following command to run the tests:
npm test