Added option for client to include there own remarkable config (#974)

* Added option for client to include there own remarkable config

* Better use merge here

* Added lodash ...

* Change use of lodash to deepmerge and added description to api site

* markdownConfig -> markdownOptions

* Update api-site-config.md

* remove 1.4 docs change

 since it is unrelated (the feature will only be available in next release)

* Run prettier
This commit is contained in:
Marvin Heilemann 2018-09-20 09:00:59 +02:00 committed by Endilie Yacop Sucipto
parent 3c36a1cc8c
commit 8568a96e65
3 changed files with 27 additions and 4 deletions

View file

@ -149,6 +149,8 @@ h1 {
`manifest` - Path to your web app manifest (e.g., `/manifest.json`). This will add a `<link>` tag to `<head>` with `rel` as `"manifest"` and `content` as the provided path. `manifest` - Path to your web app manifest (e.g., `/manifest.json`). This will add a `<link>` tag to `<head>` with `rel` as `"manifest"` and `content` as the provided path.
`markdownOptions` - Override default [Remarkable options](https://github.com/jonschlinkert/remarkable#options) that will be used to render markdown.
`markdownPlugins` - An array of plugins to be loaded by Remarkable, the markdown parser and renderer used by Docusaurus. The plugin will receive a reference to the Remarkable instance, allowing custom parsing and rendering rules to be defined. `markdownPlugins` - An array of plugins to be loaded by Remarkable, the markdown parser and renderer used by Docusaurus. The plugin will receive a reference to the Remarkable instance, allowing custom parsing and rendering rules to be defined.
`ogImage` - Local path to an Open Graph image (e.g., `img/myImage.png`). This image will show up when your site is shared on Facebook and other websites/apps where the Open Graph protocol is supported. `ogImage` - Local path to an Open Graph image (e.g., `img/myImage.png`). This image will show up when your site is shared on Facebook and other websites/apps where the Open Graph protocol is supported.

View file

@ -8,6 +8,7 @@
const hljs = require('highlight.js'); const hljs = require('highlight.js');
const Markdown = require('remarkable'); const Markdown = require('remarkable');
const prismjs = require('prismjs'); const prismjs = require('prismjs');
const deepmerge = require('deepmerge');
const anchors = require('./anchors.js'); const anchors = require('./anchors.js');
@ -21,7 +22,7 @@ class MarkdownRenderer {
constructor() { constructor() {
const siteConfig = require(`${CWD}/siteConfig.js`); const siteConfig = require(`${CWD}/siteConfig.js`);
const md = new Markdown({ let markdownOptions = {
// Highlight.js expects hljs css classes on the code element. // Highlight.js expects hljs css classes on the code element.
// This results in <pre><code class="hljs css languages-jsx"> // This results in <pre><code class="hljs css languages-jsx">
langPrefix: 'hljs css language-', langPrefix: 'hljs css language-',
@ -67,7 +68,18 @@ class MarkdownRenderer {
}, },
html: true, html: true,
linkify: true, linkify: true,
}); };
// Allow overriding default options
if (siteConfig.markdownOptions) {
markdownOptions = deepmerge(
{},
markdownOptions,
siteConfig.markdownOptions,
);
}
const md = new Markdown(markdownOptions);
// Register anchors plugin // Register anchors plugin
md.use(anchors); md.use(anchors);

View file

@ -3,7 +3,12 @@
"description": "Easy to Maintain Open Source Documentation Websites", "description": "Easy to Maintain Open Source Documentation Websites",
"version": "1.4.0", "version": "1.4.0",
"license": "MIT", "license": "MIT",
"keywords": ["documentation", "websites", "open source", "docusaurus"], "keywords": [
"documentation",
"websites",
"open source",
"docusaurus"
],
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/facebook/Docusaurus.git" "url": "https://github.com/facebook/Docusaurus.git"
@ -14,7 +19,11 @@
"start": "cd website && yarn start" "start": "cd website && yarn start"
}, },
"jest": { "jest": {
"testPathIgnorePatterns": ["/node_modules/", "__fixtures__", "v2"], "testPathIgnorePatterns": [
"/node_modules/",
"__fixtures__",
"v2"
],
"testURL": "http://localhost/" "testURL": "http://localhost/"
}, },
"bin": { "bin": {