From caa5383e46b57f63a651ebb326d5db418fc6d8d3 Mon Sep 17 00:00:00 2001 From: Anduin Xue Date: Mon, 7 Mar 2022 03:28:45 +0800 Subject: [PATCH] Read template from file. --- .github/readme-generate.js | 134 +++----------------------- .github/templates/mkdocs_template.yml | 85 ++++++++++++++++ .github/templates/readme_template.md | 34 +++++++ 3 files changed, 130 insertions(+), 123 deletions(-) create mode 100644 .github/templates/mkdocs_template.yml create mode 100644 .github/templates/readme_template.md diff --git a/.github/readme-generate.js b/.github/readme-generate.js index 9258494..ceee167 100644 --- a/.github/readme-generate.js +++ b/.github/readme-generate.js @@ -1,4 +1,5 @@ const { readdir, writeFile, stat } = require('fs/promises'); +const fs = require('fs').promises; const README_PATH = './README.md'; @@ -59,125 +60,6 @@ const categories = { }, }; -let README_TEMPLATE = `# 程序员做饭指南 - -[![build](https://github.com/Anduin2017/HowToCook/actions/workflows/build.yml/badge.svg)](https://github.com/Anduin2017/HowToCook/actions/workflows/build.yml) -[![License](https://img.shields.io/github/license/Anduin2017/HowToCook)](./LICENSE) -[![GitHub contributors](https://img.shields.io/github/contributors/Anduin2017/HowToCook)](https://github.com/Anduin2017/HowToCook/graphs/contributors) -[![npm](https://img.shields.io/npm/v/how-to-cook)](https://www.npmjs.com/package/how-to-cook) - -最近在家隔离,出不了门。只能宅在家做饭了。作为程序员,我偶尔在网上找找菜谱和做法。但是这些菜谱往往写法千奇百怪,经常中间莫名出来一些材料。对于习惯了形式语言的程序员来说极其不友好。 - -所以,我计划自己搜寻菜谱和并结合实际做菜的经验,准备用更清晰精准的描述来整理常见菜的做法,以方便程序员在家做饭。 - -同样,我希望它是一个由社区驱动和维护的开源项目,使更多人能够一起做一个有趣的仓库。所以非常欢迎大家贡献它~ - -## 如何贡献 - -针对发现的问题,直接修改并提交 Pull request 即可。 - -在写新菜谱时,请复制并修改已有的菜谱模板: [示例菜](https://github.com/Anduin2017/HowToCook/blob/master/dishes/template/%E7%A4%BA%E4%BE%8B%E8%8F%9C/%E7%A4%BA%E4%BE%8B%E8%8F%9C.md?plain=1)。 - -## 做菜之前 - -{{before}} -## 菜谱 - -### 家常菜 -{{main}} -## 进阶知识学习 - -如果你已经做了许多上面的菜,对于厨艺已经入门,并且想学习更加高深的烹饪技巧,请继续阅读下面的内容: - -{{after}}`; - -let MKDOCS_TEMPLATE = `site_name: How To Cook - -# Repository -repo_name: Anduin2017/HowToCook -repo_url: https://github.com/Anduin2017/HowToCook -edit_uri: "" - -use_directory_urls: true -docs_dir: . -theme: - name: material - language: zh - features: - - content.code.annotate - # - content.tabs.link - # - header.autohide - #- navigation.expand - #- navigation.indexes - - navigation.instant - - navigation.sections - - navigation.tabs - - navigation.tabs.sticky - - navigation.top - - navigation.tracking - - search.highlight - - search.share - - search.suggest - - toc.follow - # # - toc.integrate - search_index_only: true - palette: - - media: "(prefers-color-scheme: light)" - scheme: default - toggle: - icon: material//weather-sunny - name: Switch to dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - toggle: - icon: material/weather-night - name: Switch to light mode - - icon: - admonition: - note: octicons/tag-16 - abstract: octicons/checklist-16 - info: octicons/info-16 - tip: octicons/squirrel-16 - success: octicons/check-16 - question: octicons/question-16 - warning: octicons/alert-16 - failure: octicons/x-circle-16 - danger: octicons/zap-16 - bug: octicons/bug-16 - example: octicons/beaker-16 - quote: octicons/quote-16 - -markdown_extensions: - - admonition - - pymdownx.details - - pymdownx.superfences - - abbr - - pymdownx.snippets - - def_list - - pymdownx.tasklist: - custom_checkbox: true - - attr_list - -plugins: - - same-dir - - search - - minify: - minify_html: true - -nav: - - README.md - - 做菜之前: -{{before}} - - 菜谱: - - 按种类: # 只有两层section以上才能出现navigation expansion https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-sections -{{main}} - - 进阶知识学习: -{{after}} - - CONTRIBUTING.md - - CODE_OF_CONDUCT.md -`; - async function main() { try { let README_BEFORE = (README_MAIN = README_AFTER = ''); @@ -212,16 +94,22 @@ async function main() { MKDOCS_MAIN += categoryMkdocsTemplate(category.title, category.mkdocs); } + const MKDOCS_TEMPLATE = await fs.readFile("./.github/templates/mkdocs_template.yml", "utf-8"); + const README_TEMPLATE = await fs.readFile("./.github/templates/readme_template.md", "utf-8"); + await writeFile( README_PATH, - README_TEMPLATE.replace('{{before}}', README_BEFORE) - .replace('{{main}}', README_MAIN) - .replace('{{after}}', README_AFTER), + README_TEMPLATE + .replace('{{before}}', README_BEFORE.trim()) + .replace('{{main}}', README_MAIN.trim()) + .replace('{{after}}', README_AFTER.trim()), ); + await writeFile( MKDOCS_PATH, - MKDOCS_TEMPLATE.replace('{{before}}', MKDOCS_BEFORE) + MKDOCS_TEMPLATE + .replace('{{before}}', MKDOCS_BEFORE) .replace('{{main}}', MKDOCS_MAIN) .replace('{{after}}', MKDOCS_AFTER), ); diff --git a/.github/templates/mkdocs_template.yml b/.github/templates/mkdocs_template.yml new file mode 100644 index 000000000..0addf22 --- /dev/null +++ b/.github/templates/mkdocs_template.yml @@ -0,0 +1,85 @@ +site_name: How To Cook + +# Repository +repo_name: Anduin2017/HowToCook +repo_url: https://github.com/Anduin2017/HowToCook +edit_uri: "" + +use_directory_urls: true +docs_dir: . +theme: + name: material + language: zh + features: + - content.code.annotate + # - content.tabs.link + # - header.autohide + #- navigation.expand + #- navigation.indexes + - navigation.instant + - navigation.sections + - navigation.tabs + - navigation.tabs.sticky + - navigation.top + - navigation.tracking + - search.highlight + - search.share + - search.suggest + - toc.follow + # # - toc.integrate + search_index_only: true + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material//weather-sunny + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/weather-night + name: Switch to light mode + + icon: + admonition: + note: octicons/tag-16 + abstract: octicons/checklist-16 + info: octicons/info-16 + tip: octicons/squirrel-16 + success: octicons/check-16 + question: octicons/question-16 + warning: octicons/alert-16 + failure: octicons/x-circle-16 + danger: octicons/zap-16 + bug: octicons/bug-16 + example: octicons/beaker-16 + quote: octicons/quote-16 + +markdown_extensions: + - admonition + - pymdownx.details + - pymdownx.superfences + - abbr + - pymdownx.snippets + - def_list + - pymdownx.tasklist: + custom_checkbox: true + - attr_list + +plugins: + - same-dir + - search + - minify: + minify_html: true + +nav: + - README.md + - 做菜之前: +{{before}} + - 菜谱: + - 按种类: # 只有两层section以上才能出现navigation expansion https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-sections +{{main}} + - 进阶知识学习: +{{after}} + - CONTRIBUTING.md + - CODE_OF_CONDUCT.md diff --git a/.github/templates/readme_template.md b/.github/templates/readme_template.md new file mode 100644 index 000000000..f9be46f --- /dev/null +++ b/.github/templates/readme_template.md @@ -0,0 +1,34 @@ +# 程序员做饭指南 + +[![build](https://github.com/Anduin2017/HowToCook/actions/workflows/build.yml/badge.svg)](https://github.com/Anduin2017/HowToCook/actions/workflows/build.yml) +[![License](https://img.shields.io/github/license/Anduin2017/HowToCook)](./LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/Anduin2017/HowToCook)](https://github.com/Anduin2017/HowToCook/graphs/contributors) +[![npm](https://img.shields.io/npm/v/how-to-cook)](https://www.npmjs.com/package/how-to-cook) + +最近在家隔离,出不了门。只能宅在家做饭了。作为程序员,我偶尔在网上找找菜谱和做法。但是这些菜谱往往写法千奇百怪,经常中间莫名出来一些材料。对于习惯了形式语言的程序员来说极其不友好。 + +所以,我计划自己搜寻菜谱和并结合实际做菜的经验,准备用更清晰精准的描述来整理常见菜的做法,以方便程序员在家做饭。 + +同样,我希望它是一个由社区驱动和维护的开源项目,使更多人能够一起做一个有趣的仓库。所以非常欢迎大家贡献它~ + +## 如何贡献 + +针对发现的问题,直接修改并提交 Pull request 即可。 + +在写新菜谱时,请复制并修改已有的菜谱模板: [示例菜](https://github.com/Anduin2017/HowToCook/blob/master/dishes/template/%E7%A4%BA%E4%BE%8B%E8%8F%9C/%E7%A4%BA%E4%BE%8B%E8%8F%9C.md?plain=1)。 + +## 做菜之前 + +{{before}} + +## 菜谱 + +### 家常菜 + +{{main}} + +## 进阶知识学习 + +如果你已经做了许多上面的菜,对于厨艺已经入门,并且想学习更加高深的烹饪技巧,请继续阅读下面的内容: + +{{after}}