@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-yozora
- pluginOptions: defined in- gatsby-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?