Package Exports
- gatsby-rehype-embed-gist
- gatsby-rehype-embed-gist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (gatsby-rehype-embed-gist) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
gatsby-rehype-embed-gist
This plugin allows content authors to embed Gist snippets.
This plugin is forked from gatsby-remark-embed-gist for use with rehype
instead of remark
. This makes the plugin suitable for when using Gatsby as a custom front-end for a headless CMS such as Ghost.
Getting started
To embed a Gist snippet in you markdown/remark content, simply add an inline code
block using the gist:
protocol.
`gist:[<username>/]<gist_id>#<gist_file>`
`gist:[<username>/]<gist_id>#<gist_file>?lines=<number|ranges>`
`gist:[<username>/]<gist_id>#<gist_file>?highlights=<number|ranges>`
`gist:[<username>/]<gist_id>#<gist_file>?highlights=<number|ranges>&lines=<number|ranges>`
`gist:[<username>/]<gist_id>?file=<gist_file>`
`gist:[<username>/]<gist_id>?file=<gist_file>?lines=<number|ranges>`
`gist:[<username>/]<gist_id>?file=<gist_file>?highlights=<number|ranges>`
`gist:[<username>/]<gist_id>?file=<gist_file>?highlights=<number|ranges>&lines=<number|ranges>`
Where:
- username, represents the github handler whose gist is to be accessed.
Can be defaulted via configuration. - gist_id, is the id of the gist to be accessed.
This is the hash value in the gist url, e.g. https://gist.github.com/<username>/ce54fdb1e5621b5966e146026995b974
). - gist_file, is the name of the file in the gist to be accessed.
Highlights and lines can be defined using:
- A single number (e.g.
highlights=1
,lines=1
) - A list of numbers (e.g.
highlights=1,4
,lines=1,4
) - A range of numbers (e.g.
highlights=1-4
,lines=1-4
) - A combination of all above (e.g.
highlights=1,3,7-9
,lines=1,3,7-9
)
Installation
yarn add gatsby-rehype-embed-gist
Usage
// In your gatsby-config.js
{
resolve: "gatsby-transformer-rehype",
options: {
plugins: [
{
resolve: "gatsby-rehype-embed-gist",
options: {
// Optional:
// the github handler whose gists are to be accessed
username: "<string>",
// a flag indicating whether the github default gist css should be included or not
// default: true
// DEPRECATED (PLEASE USE gistDefaultCssInclude)
includeDefaultCss: true || false,
// a flag indicating whether the github default gist css should be included or not
// default: true
gistDefaultCssInclude: true || false,
// a flag indicating whether the github default gist css should be preloaded or not
// use this if you want to load the default css asynchronously.
// default: false
gistCssPreload: true || false,
// a string that represents the github default gist css url.
// defaults: "https://github.githubassets.com/assets/gist-embed-b3b573358bfc66d89e1e95dbf8319c09.css"
gistCssUrlAddress: "<string>"
}
}
]
}
}
Example
Turns this...
`gist:weirdpattern/ce54fdb1e5621b5966e146026995b974#syntax.text`
Into this...
<div id="gist90436059" class="gist">
<div class="gist-file">
<div class="gist-data">
<div
class="js-gist-file-update-container js-task-list-container file-box"
>
<div id="file-syntax-text" class="file">
<div itemprop="text" class="blob-wrapper data type-text">
<table
class="highlight tab-size js-file-line-container"
data-tab-size="8"
>
<tbody>
<tr>
<td
id="file-syntax-text-L1"
class="blob-num js-line-number"
data-line-number="1"
></td>
<td
id="file-syntax-text-LC1"
class="blob-code blob-code-inner js-file-line"
>
<operation> [n]> /dev/null [options]
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="gist-meta">
<a
href="https://gist.github.com/weirdpattern/ce54fdb1e5621b5966e146026995b974/raw/30a0ad953a8d79c8bcbdd76343d86a9e4bbda311/syntax.text"
style="float:right"
>view raw</a
>
<a
href="https://gist.github.com/weirdpattern/ce54fdb1e5621b5966e146026995b974#file-syntax-text"
>syntax.text</a
>
hosted with ❤ by <a href="https://github.com">GitHub</a>
</div>
</div>
</div>
Notes
The order of the plugins only matters when used in conjunction with
gatsby-rehype-prismjs
, because this plugin transforms the inline code blocks,
so add gatsby-rehype-embed-gist
somewhere above this plugin.
License
MIT by Patricio Trevino, Joey Miller