@guanghechen/gatsby-transformer-yozora v1.7.0-alpha.1
A gatsby plugin for transforming markdown files to markdown ast through Yozora Parser, Inspired by gatsby-transformer-remark.
Install
This plugin depends on Yozora Parser, as of now, you can choose @yozora/parser (Recommend) or @yozora/parser-gfm or @yozora/parser-gfm-ex.
npm
npm install @guanghechen/gatsby-transformer-yozora @yozora/parser --save-dev
yarn
yarn add @guanghechen/gatsby-transformer-yozora @yozora/parser --dev
Usage
Add configs in gatsby-config.js
:
// gatsby-config.js
const { YozoraParser } = require('@yozora/parser')
module.exports = {
plugins: [
{
resolve: '@guanghechen/gatsby-transformer-yozora',
options: {
parser: new YozoraParser(),
preferFootnoteReferences: true,
frontmatter: {
excerpt_separator: '<!-- more -->',
}
}
}
]
}
Options
Name | Required | Default |
---|---|---|
parser | true | - |
preferFootnoteReferences | false | false |
presetDefinitions | false | - |
presetFootnoteDefinitions | false | - |
headingIdentifierPrefix | false | heading- |
footnoteIdentifierPrefix | false | footnote- |
shouldStripChineseChars | false | false |
wordsPerMinute | false | 80 |
frontmatter | false | - |
plugins | false | - |
parser
: A yozora parser.preferFootnoteReferences
: Replace footnotes into footnote references and footnote reference definitions.presetDefinitions
: Preset link reference definitions.presetFootnoteDefinitions
: Preset footnote reference definitions.headingIdentifierPrefix
: The identifier prefix of the headings that constitutes the toc (Table of Content).footnoteIdentifierPrefix
: The identifier prefix of the footnote references and footnote reference definitions.shouldStripChineseChars
: Whether to remove line end between two chinese characters.wordsPerMinute
: The number of words read per minute.frontmatter
: Options for gray-matter.plugins
: Plugins of @guanghechen/gatsby-transformer-yozora, similar with the plugins option of gatsby-transformer-remark./** * Api passed to the options.plugins */ export interface AstMutateApi { files: Node[] markdownNode: Node markdownAST: Root pathPrefix: string getNode(id: string): Node reporter: Reporter cache: GatsbyCache } function plugin(api: AstMutateApi, pluginOptions: any): void
api
: passed by @guanghechen/gatsby-transformer-yozorapluginOptions
: defined ingatsby-config.js
, such as the highlighted line in the following code (line eight){ resolve: '@guanghechen/gatsby-transformer-yozora', options: { parser: new YozoraParser(), plugins: [ { resolve: '@guanghechen/gatsby-yozora-images', options: {}, // this is the pluginOptions. }, ], }, }
FAQ
How to deal with images referenced in markdown files, like gatsby-remark-images does?