This is an automated email from the ASF dual-hosted git repository. jeffreyh pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push: new 69d71fc126 [fix]:Fixed the problem of invalid bolding in markdown documents (#1679) 69d71fc126 is described below commit 69d71fc1265b4e920f95a50631c1cfec1f2fd5fa Author: yangon <2689991...@qq.com> AuthorDate: Mon Jan 6 11:47:53 2025 +0800 [fix]:Fixed the problem of invalid bolding in markdown documents (#1679) Co-authored-by: liyang <liy...@selectdb.com> --- config/markdown-bold-plugin.js | 73 ++++++++++++++++++++++++++++++++++++++++++ docusaurus.config.js | 2 ++ package.json | 1 + 3 files changed, 76 insertions(+) diff --git a/config/markdown-bold-plugin.js b/config/markdown-bold-plugin.js new file mode 100644 index 0000000000..d622b2a2c8 --- /dev/null +++ b/config/markdown-bold-plugin.js @@ -0,0 +1,73 @@ +const { visit } = require('unist-util-visit'); + +function getFirstBoldContent(str, startIdx = 0) { + const strArr = str.split(""); + for (let i = startIdx; i < strArr.length; i++) { + if ( + strArr[i - 1] !== "*" && + strArr[i] === "*" && + strArr[i + 1] === "*" && + strArr[i + 2] !== "*" + ) { + // start with ** + let j; + for (j = i + 2; j < strArr.length; j++) { + if ( + strArr[j - 1] !== "*" && + strArr[j] === "*" && + strArr[j + 1] === "*" && + strArr[j + 2] !== "*" + ) { + // end with ** + return { + start: i, + end: j, + }; + } + } + } + } + return null; + } + +const plugin = options => { + const transformer = async (ast, file) => { + visit(ast, 'text', (node, index, parent) => { + if (getFirstBoldContent(node.value)) { + const { start, end } = getFirstBoldContent(node.value); + const value = node.value.slice(start + 2, end); + parent.children[index] = { + type: 'strong', + children: [ + { + value: value, + type: 'text', + }, + ], + }; + const [boldBefore, , boldAfter] = node.value.split('**'); + let hasBoldBefore = !!boldBefore; + if (boldBefore) { + parent.children.splice(index, 0, { + type: 'text', + value: boldBefore, + }); + } + if (boldAfter) { + parent.children.splice(hasBoldBefore ? index + 2 : index + 1, 0, { + type: 'text', + value: boldAfter, + }); + } + console.warn( + `The bold syntax of "${value}" in "${file.path}" is invalid and is being automatically optimized`, + ); + } + }); + }; + return transformer; +}; + +module.exports = { + markdownBoldPlugin: plugin, +}; diff --git a/docusaurus.config.js b/docusaurus.config.js index ae20ee8a89..001906b688 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -3,6 +3,7 @@ const { ssrTemplate } = require('./config/ssrTemplate'); const customDocusaurusPlugin = require('./config/custom-docusaurus-plugin'); const versionsPlugin = require('./config/versions-plugin'); const VERSIONS = require('./versions.json'); +const { markdownBoldPlugin } = require('./config/markdown-bold-plugin'); const lightCodeTheme = themes.dracula; const logoImg = 'https://cdnd.selectdb.com/images/logo.svg'; @@ -161,6 +162,7 @@ const config = { // }, showLastUpdateAuthor: false, showLastUpdateTime: false, + remarkPlugins: [markdownBoldPlugin], }, blog: { blogTitle: 'Apache Doris - Blog | Latest news and events ', diff --git a/package.json b/package.json index 11dd798cb4..63d8aeb1b8 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "sass-migrator": "^2.2.1", "swiper": "^9.0.5", "tailwindcss": "^3.3.6", + "unist-util-visit": "^5.0.0", "vitpress-generate-pdf": "^1.1.4" }, "devDependencies": { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org