--- title: rehype-jargon --- Published as [@freesewing/rehype-jargon][1], this package provides a [Rehype](https://github.com/rehypejs/rehype) plugin for adding HTML markup for jargon terms. It allows you to use jargon in your markdown/mdx/html content and use a centrally managed file of jargon terms and their definitions. ## Installation ```sh npm install @freesewing/rehype-jargon ``` ## Usage In file `jargon.mjs`: ```js export const jargon = { term: 'term has this description', term2: 'A differenti description', } ``` In NodeJS: ```js import rehypeJargon from @freesewing/rehype-jargon import { jargon } from './jargon.mjs' ... rehypePlugins: [ [rehypeJargon, { jargon: jargon }], ], ``` ### Example Here is an example of _jargon_ in markdown. ## Configuration | Property | Type | Default | Description | |----------|------|---------|-------| | jargon | Object | | Key/Value pairs where the key is a jargon term and the value is the jargon description. The description is a string that can contain HTML tags. Required. | | transform | Function | (see below) | Given the jargon term and description, returns a string with the final HTML to output. | ### Default transform function The default `transform` function is: ```js (term, html) => `${term}${html}` ``` The default `transform` function applies these CSS classes: - `jargon-term` is applied to jargon terms - `jargon-info` is applied to jargon descriptions You can style your jargon by adding styles to these CSS classes. ## Notes - Markup will be added to jargon only if the terms are _emphasized_. - Keys should be in all lowercase characters in the jargon file. This is because terms are converted to lowercase before they are matched against the jargon file. - How terms are capitalized does not matter, for the same reason. - If you use HTML in your jargon descriptions, use only inline elements such as adding bold/italic formatting and inserting links. [1]: https://www.npmjs.com/package/@freesewing/rehype-jargon