1
0
Fork 0
freesewing/packages/rehype-jargon
2024-06-12 15:25:33 +02:00
..
src check if node only contains text nodes 2024-05-17 22:59:50 +02:00
build.mjs fix(rehype-jargon): Build script 2022-09-06 15:31:28 +02:00
CHANGELOG.md chore: Dependency updates 2024-03-16 12:16:16 +01:00
data.mjs prerelease: v3.3.0-rc.1 2024-05-11 17:30:26 +02:00
example.png wip: Work on new rehype-markdown plugin 2022-07-17 21:25:41 +02:00
info.md wip: Work on new rehype-markdown plugin 2022-07-17 21:25:41 +02:00
package.json prerelease: v3.3.0-rc.1 2024-05-11 17:30:26 +02:00
README.md chore: Update dependencies and contributors 2024-06-12 15:25:33 +02:00

rehype-jargon on NPM License: MIT Code quality on DeepScan Open issues tagged pkg:rehype-jargon All Contributors

Follow @freesewing_org on Twitter Chat with us on Discord Become a FreeSewing Patron Follow @freesewing_org on Twitter

rehype-jargon

A Rehype plugin for jargon terms

About

This Rehype plugin allows you to use jargon in your markdown/mdx/html content and use a centrally managed file of jargon terms and their definitions.

An example of this plugin being used on freesewing.org

Install

To install this plugin, run:

npm install --save rehype-jargon

Getting started

Tip: See https://github.com/joostdecock/rehype-jargon-example for a minimal repository that uses this plugin

Create your jargon file

This plugin requires a jargon file with terms defenitions. For example:

export const jargon = {
  rehype: "<b>rehype</b> is a tool that transforms HTML with plugins. These plugins can inspect and change the HTML. You can use rehype on the server, the client, CLIs, deno, etc.",
  freesewing: "<b>FreeSewing</b> is an open source platform for made-to-measure sewing patterns. See <a href='https://freesewing.org/'>freesewing.org</a>"
}

Import the plugin

Now import the plugin, and pass it your jargon:

var remark = require('remark')
var html = require('remark-html')
var plugin = require('remark-jargon')
var jargon = require('./jargon.js')

remark()
  .use(html)
  .use(plugin, { jargon: jargon })
  .process('This is a plugin for _remark_ originally written for _freesewing_.', function (err, file) {
    console.log(String(file))
  })

Note

This plugin will only add markup to your jargon if you emphasize it.

Style your jargon

You will need to add CSS to style your jargon properly, and hide the definition by default. Below is an example to get you started:

// Add a dashed line under jargon terms
.jargon-term {
  text-decoration: underline dotted #228be6
}
// Add a question mark behind/above jargon terms
.jargon-term::after {
  content: "?";
  font-weight: bold;
  display: inline-block;
  transform: translate(0, -0.5em);
  font-size: 75%;
  color: #228be6;
  margin-left: 3px;
}
// Hover behavior for the therm itself
.jargon-term:hover {
  position: relative;
  text-decoration: none;
  cursor: help;
}
// Hide info by default
.jargon-term .jargon-info {
  display: none
}
// Show info on hover
.jargon-term:hover .jargon-info {
  display: block;
  position: absolute;
  top: 1.5em;
  left: 0;
  background: #F8F8F8;
  border: 1px solid #DCDCDC;
  padding: 1rem;
  border-radius: 4px;
  font-size: 90%;
  min-width: 250px;
  max-width: 450px;
  z-index: 1;
}

Tips for using jargon

Lowercase your terms in the jargon file

When looking for terms to match, we lowercase the term your emphazised. So in the jargon file, you should use msf, but in your text, you can use MSF, Msf, or msf.

If you use HTML, only use inline elements

Your jargon term definition can contain HTML, but only inline elements. Typically, you will want to stick to:

  • Making things bold
  • Inserting links

Getting help

This plugin is written by/for FreeSewing. For help or feedback, please stop by the FreeSewing chat room or create an issue.

Use with Gatsby

Please see gatsby-remark-jargon for info and instructions on how to use this plugin with Gatsby.

FreeSewing

Tip

Support FreeSewing: Become a patron, or make a one-time donation 🥰

FreeSewing is an open source project maintained by Joost De Cock and financially supported by the FreeSewing patrons.

If you feel FreeSewing is worthwhile, and you can spend a few coins without hardship, then you should join us and become a patron.

What am I looking at? 🤔

This repository is the FreeSewing monorepo holding all FreeSewing's websites, documentation, designs, plugins, and other NPM packages.

This folder holds: rehype-jargon

If you're not entirely sure what to do or how to start, type this command:

npm run tips

Note

If you don't want to set up a dev environment, you can run it in your browser:

Open in Gitpod

We recommend that you fork our repository and then put gitpod.io/#<entire-url-of-your-fork into a browser to start up a browser-based dev environment of your own.

About FreeSewing 💀

Where the world of makers and developers collide, that's where you'll find FreeSewing.

If you're a maker, checkout freesewing.org where you can generate sewing patterns adapted to your measurements.

If you're a developer, the FreeSewing documentation lives at freesewing.dev. The FreeSewing core library is a batteries-included toolbox for parametric design of sewing patterns. But FreeSewing also provides a range of plugins that further extend the functionality of the platform.

If you have NodeJS installed, you can try it right now by running:

npx @freesewing/new-design

Getting started guides are available for:

The pattern design tutorial will show you how to create your first parametric design.

Getting started

To get started with FreeSewing, you can spin up our development environment with:

npx @freesewing/new-design

To work with FreeSewing's monorepo, you'll need NodeJS v18, lerna and yarn on your system.
Once you have those, clone (or fork) this repo and run yarn kickstart:

git clone git@github.com:freesewing/freesewing.git
cd freesewing
yarn kickstart

Official channels

Social media

Places the FreeSewing community hangs out

License: MIT 🤓

© Joost De Cock.
See the license file for details.

Where to get help 🤯

For Support, please use the Issues & Discussions on GitHub.