1
0
Fork 0
freesewing/sites/dev/docs/reference/packages/rehype-jargon/readme.mdx
Joost De Cock ab3204f9f1 chore: Port FreeSewing.dev to docusaurus
The replaces the NextJS site powering FreeSewing.dev with a Docusaurus
setup. It's part of my efforts to simplify FreeSewing's setup so we can
focus on our core value proposition.
2024-09-28 13:13:48 +02:00

76 lines
2.1 KiB
Text

---
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: '<b>term</b> has this description',
term2: 'A <i>differenti</i> 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) =>
`<span class="jargon-term">${term}<span class="jargon-info">${html}</span></span>`
```
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