From 6f9228d9e1091350a9af1291bb60ae5905ba58e1 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 10 Oct 2021 18:11:49 +0800 Subject: [PATCH 1/6] feat: update dir --- config.yml | 8 +++++--- packages/{scripts => crd-scripts}/.babelrc.js | 0 packages/{scripts => crd-scripts}/.npmrc | 0 packages/{scripts => crd-scripts}/README.md | 0 packages/{scripts => crd-scripts}/index.js | 0 packages/{scripts => crd-scripts}/package.json | 0 packages/{scripts => crd-scripts}/src/build.js | 0 .../src/commands/initProject.js | 0 .../src/commands/initTheme.js | 0 .../src/conf/getPrerenderRoutes.js | 0 .../src/conf/node-directory-tree.js | 0 packages/{scripts => crd-scripts}/src/conf/path.js | 0 .../src/conf/rawTreeReplaceLoader.js | 0 .../src/conf/webpack.config.dev.js | 0 .../src/conf/webpack.config.js | 0 .../src/conf/webpack.config.prod.js | 0 .../src/conf/webpack.config.server.js | 0 packages/{scripts => crd-scripts}/src/deploy.js | 0 packages/{scripts => crd-scripts}/src/server.js | 0 .../{scripts => crd-scripts}/src/utils/index.js | 0 .../{scripts => crd-scripts}/src/utils/initCache.js | 0 packages/{scripts => crd-scripts}/src/web/Router.js | 0 packages/{scripts => crd-scripts}/src/web/crd.json | 0 packages/{scripts => crd-scripts}/src/web/index.js | 0 .../{scripts => crd-scripts}/src/web/lazyload.js | 0 packages/{templates => crd-templates}/.npmrc | 0 packages/{templates => crd-templates}/README.md | 0 .../default/.github/workflows/gh-pages.yml | 0 .../{templates => crd-templates}/default/.npmrc | 0 .../default/Introduction/hello_world.md | 0 .../{templates => crd-templates}/default/README.md | 0 .../default/_.gitignore | 0 .../default/_config.yml | 0 .../default/_package.json | 0 packages/{templates => crd-templates}/package.json | 0 .../theme/default/Introduction/hello_world.md | 0 .../theme/default/README.md | 0 .../theme/default/_.gitignore | 0 .../theme/default/_.npmrc | 0 .../theme/default/_config.yml | 0 .../theme/default/_index.js | 0 .../theme/default/_index.less | 0 .../theme/default/_package.json | 0 packages/{theme => crd-theme}/.npmrc | 0 packages/{theme => crd-theme}/README.md | 0 .../{theme => crd-theme}/component/Loading/index.js | 0 .../component/Loading/index.less | 0 packages/{theme => crd-theme}/crd.logo.svg | 0 packages/{theme => crd-theme}/favicon.ico | Bin packages/{theme => crd-theme}/index.html | 0 packages/{theme => crd-theme}/index.js | 0 packages/{theme => crd-theme}/index.less | 0 packages/{theme => crd-theme}/markdown/Link.js | 0 packages/{theme => crd-theme}/markdown/Link.less | 0 packages/{theme => crd-theme}/markdown/codeBlock.js | 0 packages/{theme => crd-theme}/markdown/index.js | 0 .../{theme => crd-theme}/markdown/style/css.less | 0 .../markdown/style/default.less | 0 .../{theme => crd-theme}/markdown/style/diff.less | 0 .../{theme => crd-theme}/markdown/style/index.less | 0 .../markdown/style/javascript.less | 0 .../{theme => crd-theme}/markdown/style/swift.less | 0 .../{theme => crd-theme}/markdown/style/xml.less | 0 packages/{theme => crd-theme}/package.json | 0 packages/{theme => crd-theme}/routes/Pages/index.js | 0 packages/{theme => crd-theme}/utils/index.js | 0 packages/{utils => crd-utils}/.npmrc | 0 packages/{utils => crd-utils}/README.md | 0 packages/{utils => crd-utils}/index.js | 0 packages/{utils => crd-utils}/package.json | 0 packages/{utils => crd-utils}/path.js | 0 71 files changed, 5 insertions(+), 3 deletions(-) rename packages/{scripts => crd-scripts}/.babelrc.js (100%) rename packages/{scripts => crd-scripts}/.npmrc (100%) rename packages/{scripts => crd-scripts}/README.md (100%) rename packages/{scripts => crd-scripts}/index.js (100%) rename packages/{scripts => crd-scripts}/package.json (100%) rename packages/{scripts => crd-scripts}/src/build.js (100%) rename packages/{scripts => crd-scripts}/src/commands/initProject.js (100%) rename packages/{scripts => crd-scripts}/src/commands/initTheme.js (100%) rename packages/{scripts => crd-scripts}/src/conf/getPrerenderRoutes.js (100%) rename packages/{scripts => crd-scripts}/src/conf/node-directory-tree.js (100%) rename packages/{scripts => crd-scripts}/src/conf/path.js (100%) rename packages/{scripts => crd-scripts}/src/conf/rawTreeReplaceLoader.js (100%) rename packages/{scripts => crd-scripts}/src/conf/webpack.config.dev.js (100%) rename packages/{scripts => crd-scripts}/src/conf/webpack.config.js (100%) rename packages/{scripts => crd-scripts}/src/conf/webpack.config.prod.js (100%) rename packages/{scripts => crd-scripts}/src/conf/webpack.config.server.js (100%) rename packages/{scripts => crd-scripts}/src/deploy.js (100%) rename packages/{scripts => crd-scripts}/src/server.js (100%) rename packages/{scripts => crd-scripts}/src/utils/index.js (100%) rename packages/{scripts => crd-scripts}/src/utils/initCache.js (100%) rename packages/{scripts => crd-scripts}/src/web/Router.js (100%) rename packages/{scripts => crd-scripts}/src/web/crd.json (100%) rename packages/{scripts => crd-scripts}/src/web/index.js (100%) rename packages/{scripts => crd-scripts}/src/web/lazyload.js (100%) rename packages/{templates => crd-templates}/.npmrc (100%) rename packages/{templates => crd-templates}/README.md (100%) rename packages/{templates => crd-templates}/default/.github/workflows/gh-pages.yml (100%) rename packages/{templates => crd-templates}/default/.npmrc (100%) rename packages/{templates => crd-templates}/default/Introduction/hello_world.md (100%) rename packages/{templates => crd-templates}/default/README.md (100%) rename packages/{templates => crd-templates}/default/_.gitignore (100%) rename packages/{templates => crd-templates}/default/_config.yml (100%) rename packages/{templates => crd-templates}/default/_package.json (100%) rename packages/{templates => crd-templates}/package.json (100%) rename packages/{templates => crd-templates}/theme/default/Introduction/hello_world.md (100%) rename packages/{templates => crd-templates}/theme/default/README.md (100%) rename packages/{templates => crd-templates}/theme/default/_.gitignore (100%) rename packages/{templates => crd-templates}/theme/default/_.npmrc (100%) rename packages/{templates => crd-templates}/theme/default/_config.yml (100%) rename packages/{templates => crd-templates}/theme/default/_index.js (100%) rename packages/{templates => crd-templates}/theme/default/_index.less (100%) rename packages/{templates => crd-templates}/theme/default/_package.json (100%) rename packages/{theme => crd-theme}/.npmrc (100%) rename packages/{theme => crd-theme}/README.md (100%) rename packages/{theme => crd-theme}/component/Loading/index.js (100%) rename packages/{theme => crd-theme}/component/Loading/index.less (100%) rename packages/{theme => crd-theme}/crd.logo.svg (100%) rename packages/{theme => crd-theme}/favicon.ico (100%) rename packages/{theme => crd-theme}/index.html (100%) rename packages/{theme => crd-theme}/index.js (100%) rename packages/{theme => crd-theme}/index.less (100%) rename packages/{theme => crd-theme}/markdown/Link.js (100%) rename packages/{theme => crd-theme}/markdown/Link.less (100%) rename packages/{theme => crd-theme}/markdown/codeBlock.js (100%) rename packages/{theme => crd-theme}/markdown/index.js (100%) rename packages/{theme => crd-theme}/markdown/style/css.less (100%) rename packages/{theme => crd-theme}/markdown/style/default.less (100%) rename packages/{theme => crd-theme}/markdown/style/diff.less (100%) rename packages/{theme => crd-theme}/markdown/style/index.less (100%) rename packages/{theme => crd-theme}/markdown/style/javascript.less (100%) rename packages/{theme => crd-theme}/markdown/style/swift.less (100%) rename packages/{theme => crd-theme}/markdown/style/xml.less (100%) rename packages/{theme => crd-theme}/package.json (100%) rename packages/{theme => crd-theme}/routes/Pages/index.js (100%) rename packages/{theme => crd-theme}/utils/index.js (100%) rename packages/{utils => crd-utils}/.npmrc (100%) rename packages/{utils => crd-utils}/README.md (100%) rename packages/{utils => crd-utils}/index.js (100%) rename packages/{utils => crd-utils}/package.json (100%) rename packages/{utils => crd-utils}/path.js (100%) diff --git a/config.yml b/config.yml index c2a02e801..33153c05f 100644 --- a/config.yml +++ b/config.yml @@ -1,4 +1,4 @@ -# create-react-doc configuration, see https://github.com/MuYunyun/create-react-doc##config.yml +# create-react-doc configuration. # Site title: Create React Doc @@ -33,9 +33,11 @@ domain: https://muyunyun.cn seo: google: true - # Available values: en | zh-cn language: en # Inject Custom Logic -inject: injectLogic/index.js \ No newline at end of file +inject: injectLogic/index.js + +# Use abbrlink +abbrlink: true diff --git a/packages/scripts/.babelrc.js b/packages/crd-scripts/.babelrc.js similarity index 100% rename from packages/scripts/.babelrc.js rename to packages/crd-scripts/.babelrc.js diff --git a/packages/scripts/.npmrc b/packages/crd-scripts/.npmrc similarity index 100% rename from packages/scripts/.npmrc rename to packages/crd-scripts/.npmrc diff --git a/packages/scripts/README.md b/packages/crd-scripts/README.md similarity index 100% rename from packages/scripts/README.md rename to packages/crd-scripts/README.md diff --git a/packages/scripts/index.js b/packages/crd-scripts/index.js similarity index 100% rename from packages/scripts/index.js rename to packages/crd-scripts/index.js diff --git a/packages/scripts/package.json b/packages/crd-scripts/package.json similarity index 100% rename from packages/scripts/package.json rename to packages/crd-scripts/package.json diff --git a/packages/scripts/src/build.js b/packages/crd-scripts/src/build.js similarity index 100% rename from packages/scripts/src/build.js rename to packages/crd-scripts/src/build.js diff --git a/packages/scripts/src/commands/initProject.js b/packages/crd-scripts/src/commands/initProject.js similarity index 100% rename from packages/scripts/src/commands/initProject.js rename to packages/crd-scripts/src/commands/initProject.js diff --git a/packages/scripts/src/commands/initTheme.js b/packages/crd-scripts/src/commands/initTheme.js similarity index 100% rename from packages/scripts/src/commands/initTheme.js rename to packages/crd-scripts/src/commands/initTheme.js diff --git a/packages/scripts/src/conf/getPrerenderRoutes.js b/packages/crd-scripts/src/conf/getPrerenderRoutes.js similarity index 100% rename from packages/scripts/src/conf/getPrerenderRoutes.js rename to packages/crd-scripts/src/conf/getPrerenderRoutes.js diff --git a/packages/scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js similarity index 100% rename from packages/scripts/src/conf/node-directory-tree.js rename to packages/crd-scripts/src/conf/node-directory-tree.js diff --git a/packages/scripts/src/conf/path.js b/packages/crd-scripts/src/conf/path.js similarity index 100% rename from packages/scripts/src/conf/path.js rename to packages/crd-scripts/src/conf/path.js diff --git a/packages/scripts/src/conf/rawTreeReplaceLoader.js b/packages/crd-scripts/src/conf/rawTreeReplaceLoader.js similarity index 100% rename from packages/scripts/src/conf/rawTreeReplaceLoader.js rename to packages/crd-scripts/src/conf/rawTreeReplaceLoader.js diff --git a/packages/scripts/src/conf/webpack.config.dev.js b/packages/crd-scripts/src/conf/webpack.config.dev.js similarity index 100% rename from packages/scripts/src/conf/webpack.config.dev.js rename to packages/crd-scripts/src/conf/webpack.config.dev.js diff --git a/packages/scripts/src/conf/webpack.config.js b/packages/crd-scripts/src/conf/webpack.config.js similarity index 100% rename from packages/scripts/src/conf/webpack.config.js rename to packages/crd-scripts/src/conf/webpack.config.js diff --git a/packages/scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js similarity index 100% rename from packages/scripts/src/conf/webpack.config.prod.js rename to packages/crd-scripts/src/conf/webpack.config.prod.js diff --git a/packages/scripts/src/conf/webpack.config.server.js b/packages/crd-scripts/src/conf/webpack.config.server.js similarity index 100% rename from packages/scripts/src/conf/webpack.config.server.js rename to packages/crd-scripts/src/conf/webpack.config.server.js diff --git a/packages/scripts/src/deploy.js b/packages/crd-scripts/src/deploy.js similarity index 100% rename from packages/scripts/src/deploy.js rename to packages/crd-scripts/src/deploy.js diff --git a/packages/scripts/src/server.js b/packages/crd-scripts/src/server.js similarity index 100% rename from packages/scripts/src/server.js rename to packages/crd-scripts/src/server.js diff --git a/packages/scripts/src/utils/index.js b/packages/crd-scripts/src/utils/index.js similarity index 100% rename from packages/scripts/src/utils/index.js rename to packages/crd-scripts/src/utils/index.js diff --git a/packages/scripts/src/utils/initCache.js b/packages/crd-scripts/src/utils/initCache.js similarity index 100% rename from packages/scripts/src/utils/initCache.js rename to packages/crd-scripts/src/utils/initCache.js diff --git a/packages/scripts/src/web/Router.js b/packages/crd-scripts/src/web/Router.js similarity index 100% rename from packages/scripts/src/web/Router.js rename to packages/crd-scripts/src/web/Router.js diff --git a/packages/scripts/src/web/crd.json b/packages/crd-scripts/src/web/crd.json similarity index 100% rename from packages/scripts/src/web/crd.json rename to packages/crd-scripts/src/web/crd.json diff --git a/packages/scripts/src/web/index.js b/packages/crd-scripts/src/web/index.js similarity index 100% rename from packages/scripts/src/web/index.js rename to packages/crd-scripts/src/web/index.js diff --git a/packages/scripts/src/web/lazyload.js b/packages/crd-scripts/src/web/lazyload.js similarity index 100% rename from packages/scripts/src/web/lazyload.js rename to packages/crd-scripts/src/web/lazyload.js diff --git a/packages/templates/.npmrc b/packages/crd-templates/.npmrc similarity index 100% rename from packages/templates/.npmrc rename to packages/crd-templates/.npmrc diff --git a/packages/templates/README.md b/packages/crd-templates/README.md similarity index 100% rename from packages/templates/README.md rename to packages/crd-templates/README.md diff --git a/packages/templates/default/.github/workflows/gh-pages.yml b/packages/crd-templates/default/.github/workflows/gh-pages.yml similarity index 100% rename from packages/templates/default/.github/workflows/gh-pages.yml rename to packages/crd-templates/default/.github/workflows/gh-pages.yml diff --git a/packages/templates/default/.npmrc b/packages/crd-templates/default/.npmrc similarity index 100% rename from packages/templates/default/.npmrc rename to packages/crd-templates/default/.npmrc diff --git a/packages/templates/default/Introduction/hello_world.md b/packages/crd-templates/default/Introduction/hello_world.md similarity index 100% rename from packages/templates/default/Introduction/hello_world.md rename to packages/crd-templates/default/Introduction/hello_world.md diff --git a/packages/templates/default/README.md b/packages/crd-templates/default/README.md similarity index 100% rename from packages/templates/default/README.md rename to packages/crd-templates/default/README.md diff --git a/packages/templates/default/_.gitignore b/packages/crd-templates/default/_.gitignore similarity index 100% rename from packages/templates/default/_.gitignore rename to packages/crd-templates/default/_.gitignore diff --git a/packages/templates/default/_config.yml b/packages/crd-templates/default/_config.yml similarity index 100% rename from packages/templates/default/_config.yml rename to packages/crd-templates/default/_config.yml diff --git a/packages/templates/default/_package.json b/packages/crd-templates/default/_package.json similarity index 100% rename from packages/templates/default/_package.json rename to packages/crd-templates/default/_package.json diff --git a/packages/templates/package.json b/packages/crd-templates/package.json similarity index 100% rename from packages/templates/package.json rename to packages/crd-templates/package.json diff --git a/packages/templates/theme/default/Introduction/hello_world.md b/packages/crd-templates/theme/default/Introduction/hello_world.md similarity index 100% rename from packages/templates/theme/default/Introduction/hello_world.md rename to packages/crd-templates/theme/default/Introduction/hello_world.md diff --git a/packages/templates/theme/default/README.md b/packages/crd-templates/theme/default/README.md similarity index 100% rename from packages/templates/theme/default/README.md rename to packages/crd-templates/theme/default/README.md diff --git a/packages/templates/theme/default/_.gitignore b/packages/crd-templates/theme/default/_.gitignore similarity index 100% rename from packages/templates/theme/default/_.gitignore rename to packages/crd-templates/theme/default/_.gitignore diff --git a/packages/templates/theme/default/_.npmrc b/packages/crd-templates/theme/default/_.npmrc similarity index 100% rename from packages/templates/theme/default/_.npmrc rename to packages/crd-templates/theme/default/_.npmrc diff --git a/packages/templates/theme/default/_config.yml b/packages/crd-templates/theme/default/_config.yml similarity index 100% rename from packages/templates/theme/default/_config.yml rename to packages/crd-templates/theme/default/_config.yml diff --git a/packages/templates/theme/default/_index.js b/packages/crd-templates/theme/default/_index.js similarity index 100% rename from packages/templates/theme/default/_index.js rename to packages/crd-templates/theme/default/_index.js diff --git a/packages/templates/theme/default/_index.less b/packages/crd-templates/theme/default/_index.less similarity index 100% rename from packages/templates/theme/default/_index.less rename to packages/crd-templates/theme/default/_index.less diff --git a/packages/templates/theme/default/_package.json b/packages/crd-templates/theme/default/_package.json similarity index 100% rename from packages/templates/theme/default/_package.json rename to packages/crd-templates/theme/default/_package.json diff --git a/packages/theme/.npmrc b/packages/crd-theme/.npmrc similarity index 100% rename from packages/theme/.npmrc rename to packages/crd-theme/.npmrc diff --git a/packages/theme/README.md b/packages/crd-theme/README.md similarity index 100% rename from packages/theme/README.md rename to packages/crd-theme/README.md diff --git a/packages/theme/component/Loading/index.js b/packages/crd-theme/component/Loading/index.js similarity index 100% rename from packages/theme/component/Loading/index.js rename to packages/crd-theme/component/Loading/index.js diff --git a/packages/theme/component/Loading/index.less b/packages/crd-theme/component/Loading/index.less similarity index 100% rename from packages/theme/component/Loading/index.less rename to packages/crd-theme/component/Loading/index.less diff --git a/packages/theme/crd.logo.svg b/packages/crd-theme/crd.logo.svg similarity index 100% rename from packages/theme/crd.logo.svg rename to packages/crd-theme/crd.logo.svg diff --git a/packages/theme/favicon.ico b/packages/crd-theme/favicon.ico similarity index 100% rename from packages/theme/favicon.ico rename to packages/crd-theme/favicon.ico diff --git a/packages/theme/index.html b/packages/crd-theme/index.html similarity index 100% rename from packages/theme/index.html rename to packages/crd-theme/index.html diff --git a/packages/theme/index.js b/packages/crd-theme/index.js similarity index 100% rename from packages/theme/index.js rename to packages/crd-theme/index.js diff --git a/packages/theme/index.less b/packages/crd-theme/index.less similarity index 100% rename from packages/theme/index.less rename to packages/crd-theme/index.less diff --git a/packages/theme/markdown/Link.js b/packages/crd-theme/markdown/Link.js similarity index 100% rename from packages/theme/markdown/Link.js rename to packages/crd-theme/markdown/Link.js diff --git a/packages/theme/markdown/Link.less b/packages/crd-theme/markdown/Link.less similarity index 100% rename from packages/theme/markdown/Link.less rename to packages/crd-theme/markdown/Link.less diff --git a/packages/theme/markdown/codeBlock.js b/packages/crd-theme/markdown/codeBlock.js similarity index 100% rename from packages/theme/markdown/codeBlock.js rename to packages/crd-theme/markdown/codeBlock.js diff --git a/packages/theme/markdown/index.js b/packages/crd-theme/markdown/index.js similarity index 100% rename from packages/theme/markdown/index.js rename to packages/crd-theme/markdown/index.js diff --git a/packages/theme/markdown/style/css.less b/packages/crd-theme/markdown/style/css.less similarity index 100% rename from packages/theme/markdown/style/css.less rename to packages/crd-theme/markdown/style/css.less diff --git a/packages/theme/markdown/style/default.less b/packages/crd-theme/markdown/style/default.less similarity index 100% rename from packages/theme/markdown/style/default.less rename to packages/crd-theme/markdown/style/default.less diff --git a/packages/theme/markdown/style/diff.less b/packages/crd-theme/markdown/style/diff.less similarity index 100% rename from packages/theme/markdown/style/diff.less rename to packages/crd-theme/markdown/style/diff.less diff --git a/packages/theme/markdown/style/index.less b/packages/crd-theme/markdown/style/index.less similarity index 100% rename from packages/theme/markdown/style/index.less rename to packages/crd-theme/markdown/style/index.less diff --git a/packages/theme/markdown/style/javascript.less b/packages/crd-theme/markdown/style/javascript.less similarity index 100% rename from packages/theme/markdown/style/javascript.less rename to packages/crd-theme/markdown/style/javascript.less diff --git a/packages/theme/markdown/style/swift.less b/packages/crd-theme/markdown/style/swift.less similarity index 100% rename from packages/theme/markdown/style/swift.less rename to packages/crd-theme/markdown/style/swift.less diff --git a/packages/theme/markdown/style/xml.less b/packages/crd-theme/markdown/style/xml.less similarity index 100% rename from packages/theme/markdown/style/xml.less rename to packages/crd-theme/markdown/style/xml.less diff --git a/packages/theme/package.json b/packages/crd-theme/package.json similarity index 100% rename from packages/theme/package.json rename to packages/crd-theme/package.json diff --git a/packages/theme/routes/Pages/index.js b/packages/crd-theme/routes/Pages/index.js similarity index 100% rename from packages/theme/routes/Pages/index.js rename to packages/crd-theme/routes/Pages/index.js diff --git a/packages/theme/utils/index.js b/packages/crd-theme/utils/index.js similarity index 100% rename from packages/theme/utils/index.js rename to packages/crd-theme/utils/index.js diff --git a/packages/utils/.npmrc b/packages/crd-utils/.npmrc similarity index 100% rename from packages/utils/.npmrc rename to packages/crd-utils/.npmrc diff --git a/packages/utils/README.md b/packages/crd-utils/README.md similarity index 100% rename from packages/utils/README.md rename to packages/crd-utils/README.md diff --git a/packages/utils/index.js b/packages/crd-utils/index.js similarity index 100% rename from packages/utils/index.js rename to packages/crd-utils/index.js diff --git a/packages/utils/package.json b/packages/crd-utils/package.json similarity index 100% rename from packages/utils/package.json rename to packages/crd-utils/package.json diff --git a/packages/utils/path.js b/packages/crd-utils/path.js similarity index 100% rename from packages/utils/path.js rename to packages/crd-utils/path.js From a765940022897a48727bd61c0ef5b1b0a0fe9f35 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Sun, 10 Oct 2021 21:45:06 +0800 Subject: [PATCH 2/6] feat: support generate uuid --- ...60\345\255\246\345\205\254\345\274\217.md" | 5 ++ packages/crd-scripts/index.js | 2 + .../src/conf/node-directory-tree.js | 71 ++++++++++--------- .../src/conf/webpack.config.prod.js | 8 +-- packages/crd-scripts/src/generate.js | 23 ++++++ packages/crd-utils/index.js | 19 +++++ packages/create-react-doc/README.md | 14 ++-- packages/create-react-doc/index.js | 41 +++++++---- 8 files changed, 125 insertions(+), 58 deletions(-) create mode 100644 packages/crd-scripts/src/generate.js diff --git "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" index 5cebe3e23..471cd552e 100644 --- "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" +++ "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" @@ -1,3 +1,8 @@ + + ## 数学公式 支持在 `$$` 与 `$$` 之间书写 latex 数学公式即能显示在网页上。 diff --git a/packages/crd-scripts/index.js b/packages/crd-scripts/index.js index c819cc573..8a84dd852 100644 --- a/packages/crd-scripts/index.js +++ b/packages/crd-scripts/index.js @@ -4,6 +4,7 @@ const initCache = require('./src/utils/initCache') const Servers = require('./src/server') const Build = require('./src/build') const Deploy = require('./src/deploy') +const Generate = require('./src/generate') const paths = require('./src/conf/path') module.exports = { @@ -13,5 +14,6 @@ module.exports = { Servers, Build, Deploy, + Generate, paths, } diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 55048be44..573a23c41 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -3,6 +3,7 @@ const fs = require('fs') const PATH = require('path') const YAML = require('yamljs') const { execSync } = require('child_process') +const { replaceFileContent } = require('crd-utils') const { getDigitFromDir, timeFormat } = require('../utils') const constants = { @@ -37,14 +38,14 @@ function safeReadDirSync(path) { return dirData } -/** - * build directory Tree, fork from https://github.com/mihneadb/node-directory-tree +/** build directory Tree, fork from https://github.com/mihneadb/node-directory-tree * path: path for file * options: { * exclude: RegExp|RegExp[] - A RegExp or an array of RegExp to test for exclusion of directories. * extensions : RegExp - A RegExp to test for exclusion of files with the matching extension. - * mdconf: boolean - * prerender: boolean use for prerender + * mdconf: Boolean. + * prerender: Boolean. Used for prerender. + * generate: Boolean. Used for generating info in front-matter. * } */ function directoryTree({ @@ -75,37 +76,41 @@ function directoryTree({ if (options && options.mdconf) { item.type = constants.FILE const contentStr = fs.readFileSync(path).toString() - if (contentStr) { - const contentMatch = contentStr.match(/^/) - item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} - try { - // see https://stackoverflow.com/questions/2390199/finding-the-date-time-a-file-was-first-added-to-a-git-repository/2390382#2390382 - const result = execSync(`git log --format=%aD ${path} | tail -1`) - item.birthtime = - Buffer.isBuffer(result) && timeFormat(new Date(result)) - } catch (error) { - // eslint-disable-next-line no-console - console.log(`error: ${error.message}`) - } - try { - // see https://stackoverflow.com/questions/22497597/get-the-last-modification-data-of-a-file-in-git-repo - const result = execSync(`git log -1 --pretty="format:%ci" ${path}`) - item.mtime = Buffer.isBuffer(result) && timeFormat(new Date(result)) - } catch (error) { - // eslint-disable-next-line no-console - console.log(`error: ${error.message}`) - } - item.size = stats.size // File size in bytes - item.extension = ext - if (!options.prerender) { - item.relative = item.path.replace(process.cwd(), '') - item.isEmpty = contentMatch - ? !String.prototype.trim.call(contentStr.replace(contentMatch[0], '')) - : true - const uglifyContent = contentStr.replace(/\s/g, '') - item.content = uglifyContent + if (!contentStr) return + const contentMatch = contentStr.match(/^/) + if (options.generate) { + if (contentMatch && contentMatch[1].indexOf('abbrlink') === -1) { + replaceFileContent(path, contentMatch[1], `\nabbrlink: 290a4219${contentMatch[1]}`) + console.log('✅ replaceFileContent success') } } + + item.mdconf = contentMatch ? YAML.parse(contentMatch[1]) : {} + try { + // see https://stackoverflow.com/questions/2390199/finding-the-date-time-a-file-was-first-added-to-a-git-repository/2390382#2390382 + const result = execSync(`git log --format=%aD ${path} | tail -1`) + item.birthtime = + Buffer.isBuffer(result) && timeFormat(new Date(result)) + } catch (error) { + console.log(`❎ error: ${error.message}`) + } + try { + // see https://stackoverflow.com/questions/22497597/get-the-last-modification-data-of-a-file-in-git-repo + const result = execSync(`git log -1 --pretty="format:%ci" ${path}`) + item.mtime = Buffer.isBuffer(result) && timeFormat(new Date(result)) + } catch (error) { + console.log(`❎ error: ${error.message}`) + } + item.size = stats.size // File size in bytes + item.extension = ext + if (!options.prerender) { + item.relative = item.path.replace(process.cwd(), '') + item.isEmpty = contentMatch + ? !String.prototype.trim.call(contentStr.replace(contentMatch[0], '')) + : true + const uglifyContent = contentStr.replace(/\s/g, '') + item.content = uglifyContent + } } } else if (stats.isDirectory()) { const dirData = safeReadDirSync(path) diff --git a/packages/crd-scripts/src/conf/webpack.config.prod.js b/packages/crd-scripts/src/conf/webpack.config.prod.js index d6a644895..d64493618 100755 --- a/packages/crd-scripts/src/conf/webpack.config.prod.js +++ b/packages/crd-scripts/src/conf/webpack.config.prod.js @@ -7,8 +7,8 @@ const CopyMarkdownImageWebpackPlugin = require('copy-markdown-image-webpack-plug const MiniCssExtractPlugin = require('mini-css-extract-plugin') const PrerenderSPAPlugin = require('crd-prerender-spa-plugin') const { generateSiteMap } = require('crd-generator-sitemap') -// const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); -// const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +// const CssMinimizerPlugin = require('css-minimizer-webpack-plugin') +// const UglifyJsPlugin = require('uglifyjs-webpack-plugin') const fs = require('fs-extra') const { defaultHTMLPath, docsBuildDist } = require('crd-utils') const { getDocsConfig } = require('crd-utils') @@ -171,13 +171,13 @@ module.exports = function (cmd) { await fs.remove(`${docsBuildDist}/${docsConfig.repo}`) // move README as root index.html await fs.copy(`${docsBuildDist}/README/index.html`, `${docsBuildDist}/index.html`) - console.log('generate prerender file success!') + console.log('✅ generate prerender file success!') if (docsConfig.seo) { if (docsConfig.seo.google) { fs.writeFileSync(`${docsBuildDist}/sitemap.xml`, generateSiteMap(routes)) } } - console.log('generate sitemap file success!') + console.log('✅ generate sitemap file success!') } }, // The actual renderer to use. (Feel free to write your own) diff --git a/packages/crd-scripts/src/generate.js b/packages/crd-scripts/src/generate.js new file mode 100644 index 000000000..70fe2c0a0 --- /dev/null +++ b/packages/crd-scripts/src/generate.js @@ -0,0 +1,23 @@ +const fs = require('fs') +const { docsConfig } = require('crd-utils') +const DirectoryTree = require('./conf/node-directory-tree') + +module.exports = function generate(program) { + if (!fs.existsSync(docsConfig)) { + console.log('❎ please check config.yml in root dir!\n') + return + } + + const dir = program.markdownPaths + const dirs = Array.isArray(dir) ? dir : [dir] + const otherProps = { + mdconf: true, + extensions: /\.md/, + generate: true + } + dirs.map(path => DirectoryTree({ + path, + options: otherProps, + })) + console.log('✅ generate success!') +} diff --git a/packages/crd-utils/index.js b/packages/crd-utils/index.js index dca8d4751..0665e4f9a 100644 --- a/packages/crd-utils/index.js +++ b/packages/crd-utils/index.js @@ -16,10 +16,29 @@ const getDocsConfig = () => { return yaml.safeLoad(fs.readFileSync(docsConfig)) } +const replaceFileContent = (path, source, target) => { + fs.readFile(path, (err, data) => { + if (err) { + console.log(`❎ readFileContent error in ${path}`) + return + } + console.log(`✅ readFileContent success in ${path}`) + const replaceResult = data.toString().replace(source, target) + fs.writeFile(path, replaceResult, (err) => { + if (err) { + console.log(`❎ writeFileContent error in ${path}`) + return + } + }) + console.log(`✅ writeFileContent success in ${path}`) + }) +} + module.exports = { resolveApp, resolveTool, getDocsConfig, + replaceFileContent, // common paths docsGitIgnore: resolveApp('.gitignore'), docsBase: resolveApp(''), diff --git a/packages/create-react-doc/README.md b/packages/create-react-doc/README.md index 3ab9406f4..b04c5f74d 100644 --- a/packages/create-react-doc/README.md +++ b/packages/create-react-doc/README.md @@ -12,15 +12,17 @@ # react-doc -react-doc 是配合 [Create React Doc](https://github.com/MuYunyun/create-react-doc) 使用的脚手架。 +react-doc 是配合 [Create React Doc](https://github.com/MuYunyun/create-react-doc) 使用的脚手架,其内置如下命令。 ```bash -$ react-doc doc // 在当前文件夹下创建名为 doc 的文档站点 -$ react-doc start // 启动项目 -$ react-doc build // 项目打包 -$ react-doc deploy // 手动发布项目 +$ react-doc doc // 在当前文件夹下创建名为 doc 的文档站点 +$ react-doc start // 启动项目 +$ react-doc build // 项目打包 +$ react-doc deploy // 手动发布项目 +$ react-doc theme // 创建新主题包 +$ react-doc generate // 用于自动生成 Front-matter 中相关字段信息 ``` # 调试 -进入该目录, 执行 yarn link, 即可在全局使用 react-doc xxx 命令。 \ No newline at end of file +进入此包目录, 执行 yarn link, 即可在全局使用 react-doc xxx 命令。 diff --git a/packages/create-react-doc/index.js b/packages/create-react-doc/index.js index fff787d45..4df3c5057 100755 --- a/packages/create-react-doc/index.js +++ b/packages/create-react-doc/index.js @@ -7,6 +7,7 @@ const { initTheme, initCache, Deploy, + Generate, Servers, Build, } = require('crd-scripts') @@ -17,10 +18,11 @@ const pkg = require('./package.json') program .version(pkg.version, '-v, --version') .description('Markdown doc site generator for React.') - .option('start', 'Documents generated.') + .option('start', 'Start the documents site in local env.') .option('build', 'Build the documents generated.') .option('deploy', 'Deploy site to gh-pages.') .option('theme', 'Create a new theme') + .option('generate', 'Generate info in front-matter') .option('-o, --output ', 'Writes the compiled file to the disk directory.', '.crd-dist') .option('-p, --port [number]', 'The port.', 3000) .option('--host [host]', 'The host.', '0.0.0.0') @@ -32,14 +34,15 @@ program console.log(' $ react-doc start') console.log(' $ react-doc build') console.log(' $ react-doc deploy') + console.log(' $ react-doc theme') + console.log(' $ react-doc generate') console.log() }) // the third value in process.argv is the value we want. .parse(process.argv) -const { start, build, deploy, theme } = program - -if (!start && !build && !deploy && !theme) return initProject(program) +const { start, build, deploy, theme, generate } = program +if (!start && !build && !deploy && !theme && !generate) return initProject(program) if (theme) { return input({ @@ -62,7 +65,7 @@ program.output = path.join(process.cwd(), program.output) const docsConfig = getDocsConfig() // assign all the markdown dir -if (start || build) { +if (start || build || generate) { fs.existsSync(docsReadme) && program.markdownPaths.push(docsReadme) @@ -84,23 +87,31 @@ if (deploy) { } // no point markdown paths -if (program.markdownPaths.length === 0) return console.log('Please specify the directory in config.yml.'.red) +if (program.markdownPaths.length === 0) { + return console.log('❎ Please specify the markdownPaths props in config.yml.'.red) +} let isExists = true // judge if files exist. program.markdownPaths.forEach((item) => { if (!fs.existsSync(item)) { - console.log(`Error: Directory ${item.yellow} does not exist`.red) isExists = false } }) -if (isExists) { - initCache(program, () => { - if (build) { - Build(program) - } else { - Servers(program) - } - }) +if (!isExists) { + console.log(`❎ Error: Directory ${item.yellow} does not exist`.red) + return +} + +if (generate) { + return Generate(program) } + +initCache(program, () => { + if (build) { + Build(program) + } else { + Servers(program) + } +}) From 275c0663e695ab3835e143ee47c329223e97c2c6 Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 11 Oct 2021 13:43:14 +0800 Subject: [PATCH 3/6] feat: support generate uuid --- ...5\260\345\255\246\345\205\254\345\274\217.md" | 1 + .../crd-scripts/src/conf/node-directory-tree.js | 8 ++++++-- packages/crd-utils/index.js | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" index 471cd552e..ce37e75fa 100644 --- "a/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" +++ "b/docs/\346\225\260\345\255\246\345\205\254\345\274\217.md" @@ -1,4 +1,5 @@ diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index 573a23c41..a26caee30 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -3,7 +3,7 @@ const fs = require('fs') const PATH = require('path') const YAML = require('yamljs') const { execSync } = require('child_process') -const { replaceFileContent } = require('crd-utils') +const { replaceFileContent, generateRandomId } = require('crd-utils') const { getDigitFromDir, timeFormat } = require('../utils') const constants = { @@ -79,8 +79,12 @@ function directoryTree({ if (!contentStr) return const contentMatch = contentStr.match(/^/) if (options.generate) { + if (!contentMatch) { + + } if (contentMatch && contentMatch[1].indexOf('abbrlink') === -1) { - replaceFileContent(path, contentMatch[1], `\nabbrlink: 290a4219${contentMatch[1]}`) + const randomId = generateRandomId(8) + replaceFileContent(path, contentMatch[1], `\nabbrlink: ${randomId}${contentMatch[1]}`) console.log('✅ replaceFileContent success') } } diff --git a/packages/crd-utils/index.js b/packages/crd-utils/index.js index 0665e4f9a..24bf7a370 100644 --- a/packages/crd-utils/index.js +++ b/packages/crd-utils/index.js @@ -34,11 +34,27 @@ const replaceFileContent = (path, source, target) => { }) } +const insertFrontMatter = () => { + // todo... +} + +// generate a random string, length of it is n. +const generateRandomId = (n) => { + const str = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] + let res = "" + for (let i = 0; i < n; i++) { + const id = Math.ceil(Math.random() * 35) + res += str[id] + } + return res +} + module.exports = { resolveApp, resolveTool, getDocsConfig, replaceFileContent, + generateRandomId, // common paths docsGitIgnore: resolveApp('.gitignore'), docsBase: resolveApp(''), From 64471c794fd481e55ee04ded061f7d94ba002e9f Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Mon, 11 Oct 2021 19:04:53 +0800 Subject: [PATCH 4/6] feat: support generate uuid --- README.md | 3 +++ ...30\350\256\244\344\270\273\351\242\230.md" | 4 ++++ ...46\345\206\231\347\273\204\344\273\266.md" | 4 ++++ ...66\345\256\203\345\267\245\345\205\267.md" | 4 ++++ ...64\346\226\260\346\227\245\345\277\227.md" | 4 ++++ ...31\347\202\271\345\217\221\345\270\203.md" | 4 ++++ ...30\351\230\266\347\224\250\346\263\225.md" | 4 ++++ .../src/conf/node-directory-tree.js | 17 +++++++++----- packages/crd-utils/index.js | 22 +++++++++++++------ 9 files changed, 54 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ca1898f90..f5dd7d98e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ + _.-"\ _.-" \ ,-" \ diff --git "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" index 843946479..3dab66b6b 100644 --- "a/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" +++ "b/docs/\344\270\273\351\242\230/\351\273\230\350\256\244\344\270\273\351\242\230.md" @@ -1,3 +1,7 @@ + + ## 默认主题 create-react-doc 的默认主题为 [crd-seed](https://github.com/MuYunyun/create-react-doc/tree/main/packages/crd-seed)。该主题有以下特性: diff --git "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" index 0e82c45a4..cfa6c6ffa 100644 --- "a/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" +++ "b/docs/\344\271\246\345\206\231\347\273\204\344\273\266.md" @@ -1,3 +1,7 @@ + + import { Button } from '../components/index.jsx' ## 书写组件 diff --git "a/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md" "b/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md" index a41091b1c..4ffac9385 100644 --- "a/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md" +++ "b/docs/\345\205\266\345\256\203\345\267\245\345\205\267.md" @@ -1,3 +1,7 @@ + + ## 其它工具 ### crd-leetcode-cli diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 2a54a254c..2f341a6e3 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -1,3 +1,7 @@ + + # CHANGELOG `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 diff --git "a/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" "b/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" index bcdbe9182..c841e5b60 100644 --- "a/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" +++ "b/docs/\347\253\231\347\202\271\345\217\221\345\270\203.md" @@ -1,3 +1,7 @@ + + ## 站点发布 在 [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 diff --git "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" index 975f03252..e8e390c75 100644 --- "a/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" +++ "b/docs/\351\253\230\351\230\266\347\224\250\346\263\225.md" @@ -1,3 +1,7 @@ + + ## 高阶用法 与 git 文件结构类似, 如果在展示的文件夹中有私有文件不方便展示在文档站点, 可以在 `.gitignore` 文件中设置过滤文件, 这样它们就不会展示在文档站点中了。eg: [.gitignore](https://github.com/MuYunyun/blog/blob/main/.gitignore) diff --git a/packages/crd-scripts/src/conf/node-directory-tree.js b/packages/crd-scripts/src/conf/node-directory-tree.js index a26caee30..cf2ea2a63 100644 --- a/packages/crd-scripts/src/conf/node-directory-tree.js +++ b/packages/crd-scripts/src/conf/node-directory-tree.js @@ -3,7 +3,7 @@ const fs = require('fs') const PATH = require('path') const YAML = require('yamljs') const { execSync } = require('child_process') -const { replaceFileContent, generateRandomId } = require('crd-utils') +const { replaceForFrontMatter, generateRandomId } = require('crd-utils') const { getDigitFromDir, timeFormat } = require('../utils') const constants = { @@ -79,13 +79,20 @@ function directoryTree({ if (!contentStr) return const contentMatch = contentStr.match(/^/) if (options.generate) { + const randomId = generateRandomId(8) if (!contentMatch) { - + replaceForFrontMatter({ + path, + target: `\n` + }) } if (contentMatch && contentMatch[1].indexOf('abbrlink') === -1) { - const randomId = generateRandomId(8) - replaceFileContent(path, contentMatch[1], `\nabbrlink: ${randomId}${contentMatch[1]}`) - console.log('✅ replaceFileContent success') + replaceForFrontMatter({ + path, + source: contentMatch[1], + target: `\nabbrlink: ${randomId}${contentMatch[1]}` + }) + console.log('✅ replaceForFrontMatter success') } } diff --git a/packages/crd-utils/index.js b/packages/crd-utils/index.js index 24bf7a370..6b12c186f 100644 --- a/packages/crd-utils/index.js +++ b/packages/crd-utils/index.js @@ -16,14 +16,26 @@ const getDocsConfig = () => { return yaml.safeLoad(fs.readFileSync(docsConfig)) } -const replaceFileContent = (path, source, target) => { +/** + * replace file content for Front-matter + * path: file path + * source?: source content + * target: target content + */ +const replaceForFrontMatter = ({ + path, + source, + target +}) => { fs.readFile(path, (err, data) => { if (err) { console.log(`❎ readFileContent error in ${path}`) return } console.log(`✅ readFileContent success in ${path}`) - const replaceResult = data.toString().replace(source, target) + const replaceResult = source + ? data.toString().replace(source, target) + : `${target}\n${data.toString()}` fs.writeFile(path, replaceResult, (err) => { if (err) { console.log(`❎ writeFileContent error in ${path}`) @@ -34,10 +46,6 @@ const replaceFileContent = (path, source, target) => { }) } -const insertFrontMatter = () => { - // todo... -} - // generate a random string, length of it is n. const generateRandomId = (n) => { const str = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] @@ -53,7 +61,7 @@ module.exports = { resolveApp, resolveTool, getDocsConfig, - replaceFileContent, + replaceForFrontMatter, generateRandomId, // common paths docsGitIgnore: resolveApp('.gitignore'), From fda35b0259a5c8ac9242a478f0598ea39898a57a Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Tue, 12 Oct 2021 13:31:50 +0800 Subject: [PATCH 5/6] docs: update abbrlink --- README.md | 25 +++++++++++++------ docs/Front-matter.md | 22 ++++++++++++++++ ...64\346\226\260\346\227\245\345\277\227.md" | 8 ++++++ 3 files changed, 48 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f5dd7d98e..0492c2937 100644 --- a/README.md +++ b/README.md @@ -32,11 +32,13 @@ abbrlink: s31w9gd1 * 开箱即用: 通过指定目录或文档, 一键生成文档、博客站点, 无需关心站点环境配置信息。 * 性能: 通过`预渲染`、`懒加载`大幅提升站点加载速度。 * 基于 mdx: 支持在 markdown 中`书写 React 组件`、数学公式等。 -* 搜索引擎优化: `支持 SEO`, 让文档更易被搜索。相关文档: [SEO 在 SPA 站点中的实践](https://github.com/MuYunyun/blog/issues/84) -* 个性化: 支持[自定义主题](http://muyunyun.cn/create-react-doc/%E4%B8%BB%E9%A2%98/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%B8%BB%E9%A2%98)。 +* 搜索引擎优化: + * 支持 SEO, 让文档更易被搜索。 + * 支持短链,以让链接持久化。 +* 个性化: 支持[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。 * 工作流: 集成 Github action, 支持自动化打包、发布站点。 -> [快速上手](http://muyunyun.cn/create-react-doc/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B) +> [快速上手](https://muyunyun.cn/create-react-doc/290a4219) ## 主题 @@ -52,9 +54,9 @@ create-react-doc 提供了官方默认主题 [crd-seed](https://github.com/MuYun * [blog](https://github.com/MuYunyun/blog), [站点](http://muyunyun.cn/blog) * ![](http://with.muyunyun.cn/ec330b8ac2175c828be41f446f9f9619.jpg) * ![](http://with.muyunyun.cn/2e7440e4256debda2d73a4e6392c7146.jpg-300) -* [diana](https://github.com/MuYunyun/diana), [站点](https://muyunyun.cn/diana/) +* [diana](https://github.com/MuYunyun/diana) -如果您想定制化或者分享个人主题, 可以参考[自定义主题](http://muyunyun.cn/create-react-doc/自定义主题)章节。 +如果您想定制化或者分享个人主题, 可以参考[自定义主题](https://muyunyun.cn/create-react-doc/9f41fc98)。 ## 快速上手 @@ -90,7 +92,7 @@ yarn create react-doc doc ## 站点发布 -在 [快速上手](http://muyunyun.cn/create-react-doc/快速上手) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 +在 [快速上手](https://muyunyun.cn/create-react-doc/290a4219) 一节中介绍了如何快速搭建站点, 本节将介绍如何将搭建好的站点打包、发布到 gh-pages。 ### 自动打包发布到 gh-pages (推荐) @@ -109,4 +111,13 @@ git remote add origin https://github.com/用户或组织名/项目名.git git push -u origin main ``` -> 更多内容可以访问 [站点发布](http://muyunyun.cn/create-react-doc/站点发布)、[高阶用法](http://muyunyun.cn/create-react-doc/高阶用法)、[其它工具](http://muyunyun.cn/create-react-doc/其它工具) 等章节。 +## 更多内容 + +* [站点发布](http://muyunyun.cn/create-react-doc/ude9296y) +* [高阶用法](http://muyunyun.cn/create-react-doc/9v9ug9h8) +* [其它工具](http://muyunyun.cn/create-react-doc/292h2c5k) +* [Front-matter](http://muyunyun.cn/create-react-doc/49g6b239) + +## 扩展阅读 + +* [SEO 在 SPA 站点中的实践](https://github.com/MuYunyun/blog/issues/84) \ No newline at end of file diff --git a/docs/Front-matter.md b/docs/Front-matter.md index 72a4559cd..a1bb2a7d7 100644 --- a/docs/Front-matter.md +++ b/docs/Front-matter.md @@ -17,3 +17,25 @@ abbrlink: 290a4219 | 参数 | 描述 | 默认值 | | :------- | :-------------------------------------------------------------- | :----- | | abbrlink | 短链。用于指定页面路由展示为指定短链,使用短链有助于 SEO 搜索。 | | + +## 链接持久化 + +如果存在以下场景需求,可以考虑使用短链作为 URL 展示以进行优化。 + +* 需要链接持久化以更好地 SEO。 +* URL 链接中存在中文会被转码展示。 +* 经常调整文档的路径与文件名。 + +### 如何使用短链 + +在 `config.yml` 增加配置 `abbrlink: true` + +```diff ++ abbrlink: true +``` + +随后在控制台执行 `react-doc generate` 即可给 menu 配置属性中的所有文章目录文件加上短链资源。 + +```bash +react-doc generate // 一键给所有文章加上短链 +``` diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index 2f341a6e3..da0504ffd 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -6,6 +6,14 @@ abbrlink: 179nqpxt `create-react-doc` 严格遵循 [Semantic Versioning 2.0.0](http://semver.org/lang/zh-CN/) 语义化版本规范。 +### 1.5.0 + +`2021-10-12` + +- **Feature** + + - 🚀 支持 react-doc generate 命令,给 md 文件自动补全短链。[issue](https://github.com/MuYunyun/create-react-doc/issues/87)、[mr](https://github.com/MuYunyun/create-react-doc/pull/194) + ### 1.4.0 `2021-10-08` From d3bece63a8977f7bfd11234e332dc4f8c096185b Mon Sep 17 00:00:00 2001 From: MuYunyun <328375795@qq.com> Date: Wed, 13 Oct 2021 13:34:08 +0800 Subject: [PATCH 6/6] feat: support default path for README --- "docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" | 2 +- packages/crd-seed/layout/index.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" index da0504ffd..7a4e552c3 100644 --- "a/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" +++ "b/docs/\346\233\264\346\226\260\346\227\245\345\277\227.md" @@ -8,7 +8,7 @@ abbrlink: 179nqpxt ### 1.5.0 -`2021-10-12` +`2021-10-13` - **Feature** diff --git a/packages/crd-seed/layout/index.js b/packages/crd-seed/layout/index.js index 79d3df713..4a504ea7f 100644 --- a/packages/crd-seed/layout/index.js +++ b/packages/crd-seed/layout/index.js @@ -210,6 +210,10 @@ function BasicLayout({ const carryRepoInProd = ifProd && repo const renderContent = () => { + console.log('routeData', routeData) + const defaultPath = (routeData.find(data => data.path === '/README') + && routeData.find(data => data.path === '/README').mdconf + && routeData.find(data => data.path === '/README').mdconf.abbrlink) || 'README' return (
{/* see https://reacttraining.com/react-router/web/api/Redirect/exact-bool */} - + {routeData.map((item) => { const { path, mdconf, component } = item const { abbrlink } = mdconf