1
0
Fork 0
freesewing/packages/gatsby-remark-jargon
2020-06-30 17:10:35 +02:00
..
src feat: Added remark-jargon and gatsby-remark-jargon packages 2019-10-12 12:24:37 +02:00
CHANGELOG.md chore: Updated changelog generation script 2020-05-31 17:53:04 +02:00
example.png chore: Added docs for jargon 2019-10-12 16:12:33 +02:00
info.md chore: Added docs for jargon 2019-10-12 16:12:33 +02:00
package.json release: 2.7.0-beta.0 2020-06-30 17:10:35 +02:00
README.md fix: Broken links in readme 2020-03-16 09:29:25 +01:00
rollup.config.js chore: Added docs for jargon 2019-10-12 16:12:33 +02:00

FreeSewing

gatsby-remark-jargon on NPM License: MIT Code quality on DeepScan Open issues tagged pkg:gatsby-remark-jargon

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

What am I looking at? 🤔

This repository is our monorepo holding all our NPM packages.
This folder holds gatsby-remark-jargon

A gatsby-transformer-remark sub-plugin for jargon terms

About

This wraps the remark-jargon plugin for Gatsby so you can use jargon in the markdown/mdx of your Gatsby site:

An example of this plugin being used on freesewing.org

Install

npm install --save gatsby-remark-jargon

Configuration

In gatsby-config.js include your jargon file, and add the remark plugin:

  {
    resolve: 'gatsby-remark-jargon',
    options: { jargon: require('./jargon.js') }
  }

Usage

The jargon file

The jagon file is a simple key-value file:

const jargon = {
  msf: "<b>MSF</b> Médecins Sans Frontières / Doctors Without Borders — An international, independent, medical humanitarian organisation. See <a href='https://www.msf.org/'>msf.org</a>"
}

export default jargon

Using jargon in markdown

This plugin will only add markup to your jargon if you emphasize it. In the following example, only the first mention of MSF will be changed:

_MSF_ was founded in 1971 by 13 doctors and journalists. Today, MSF is a worldwide movement of more than 67,000 people.

This will be rendered as:

<p>
  <em>
    <span class="jargon-term">
      MSF
      <span class="jargon-info">
        <b>MSF</b> Médecins Sans Frontières / Doctors Without Borders — An international, independent, medical humanitarian organisation. See <a href='https://www.msf.org/'>msf.org</a>
      </span>
    </span>
  </em>
  was founded in 1971 by 13 doctors and journalists. Today, MSF is a worldwide movement of more than 67,000 people.
</p>

Which you can then style so that the definition is only show on hover/touch.

Styling 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

About FreeSewing 💀

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

Our core library is a batteries-included toolbox for parametric design of sewing patterns. It's a modular system (check our list of plugins and getting started is as simple as:

npm init freesewing-pattern

The getting started section on freesewing.dev is a good entrypoint to our documentation, but you'll find a lot more there, including our API reference, as well as our turorial, and howtos.

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

Support FreeSewing: Become a patron 🥰

FreeSewing is an open source project run by a community, and financially supported by our patrons.

If you feel what we do is worthwhile, you too should become a patron.

License: MIT 🤓

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

Where to get help 🤯

Our chatroom on Gitter is the best place to ask questions, share your feedback, or just hang out.

If you want to report a problem, please create an issue.