diff --git a/.github/readme-generate.js b/.github/readme-generate.js index ceee1672a0..6592331cec 100644 --- a/.github/readme-generate.js +++ b/.github/readme-generate.js @@ -1,9 +1,11 @@ const { readdir, writeFile, stat } = require('fs/promises'); const fs = require('fs').promises; +const path = require('path'); const README_PATH = './README.md'; - const MKDOCS_PATH = 'mkdocs.yml'; +const dishesFolder = 'dishes'; +const starsystemFolder = 'starsystem'; const ignorePaths = ['.git', 'README.md', 'node_modules', 'CONTRIBUTING.md', '.github']; @@ -60,12 +62,77 @@ const categories = { }, }; +async function countStars(filename) { + const data = await fs.readFile(filename, 'utf-8'); + let stars = 0; + const lines = data.split('\n'); + lines.forEach(line => { + stars += (line.match(/★/g) || []).length; + }); + return stars; +} + +async function organizeByStars(dishesFolder, starsystemFolder) { + const dishes = {}; + + async function processFolder(folderPath) { + const files = await readdir(folderPath); + for (const filename of files) { + const filepath = path.join(folderPath, filename); + const fileStat = await stat(filepath); + if (fileStat.isFile() && filename.endsWith('.md')) { + const stars = await countStars(filepath); + dishes[filepath] = stars; + } else if (fileStat.isDirectory()) { + await processFolder(filepath); + } + } + } + + const dishesFolderAbs = path.resolve(dishesFolder); + const starsystemFolderAbs = path.resolve(starsystemFolder); + + if (!await fs.access(starsystemFolderAbs).then(() => true).catch(() => false)) { + await fs.mkdir(starsystemFolderAbs, { recursive: true }); + } + + if (!await fs.access(dishesFolderAbs).then(() => true).catch(() => false)) { + console.log(`Directory not found: ${dishesFolderAbs}, creating directory...`); + await fs.mkdir(dishesFolderAbs, { recursive: true }); + } + + await processFolder(dishesFolderAbs); + + const starRatings = Array.from(new Set(Object.values(dishes))).sort((a, b) => a - b); + const navigationLinks = []; + + for (const stars of starRatings) { + const starsFile = path.join(starsystemFolderAbs, `${stars}Star.md`); + const content = [`# ${stars} 星难度菜品`, '']; + for (const [filepath, starCount] of Object.entries(dishes)) { + if (starCount === stars) { + const relativePath = path.relative(starsystemFolderAbs, filepath).replace(/\\/g, '/'); + content.push(`* [${path.basename(filepath, '.md')}](./${relativePath})`); + } + } + await writeFile(starsFile, content.join('\n'), 'utf-8'); + navigationLinks.push(`- [${stars} 星难度](${path.relative(path.dirname(README_PATH), starsFile).replace(/\\/g, '/')})`); + } + + return navigationLinks; +} + async function main() { try { - let README_BEFORE = (README_MAIN = README_AFTER = ''); - let MKDOCS_BEFORE = (MKDOCS_MAIN = MKDOCS_AFTER = ''); + let README_BEFORE = '', README_MAIN = '', README_AFTER = ''; + let MKDOCS_BEFORE = '', MKDOCS_MAIN = '', MKDOCS_AFTER = ''; const markdownObj = await getAllMarkdown('.'); + + // Debug logging to understand the structure of markdownObj + console.log("Markdown Object Structure:", JSON.stringify(markdownObj, null, 2)); + for (const markdown of markdownObj) { + console.log("Processing markdown:", markdown); if (markdown.path.includes('tips/advanced')) { README_AFTER += inlineReadmeTemplate(markdown.file, markdown.path); MKDOCS_AFTER += inlineMkdocsTemplate(markdown.file, markdown.path); @@ -94,18 +161,37 @@ 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"); + let MKDOCS_TEMPLATE; + let README_TEMPLATE; + + try { + MKDOCS_TEMPLATE = await fs.readFile("./.github/templates/mkdocs_template.yml", "utf-8"); + } catch (error) { + MKDOCS_TEMPLATE = `site_name: My Docs\nnav:\n {{main}}\n`; + console.warn("mkdocs_template.yml not found, using default template"); + } + + try { + README_TEMPLATE = await fs.readFile("./.github/templates/readme_template.md", "utf-8"); + } catch (error) { + README_TEMPLATE = `# My Project\n\n{{before}}\n\n{{main}}\n\n{{after}}`; + console.warn("readme_template.md not found, using default template"); + } + + const navigationLinks = await organizeByStars(dishesFolder, starsystemFolder); + // Debug logging to ensure navigationLinks is defined and contains data + console.log("难度索引", navigationLinks); + const navigationSection = `\n### 按难度索引\n\n${navigationLinks.join('\n')}`; await writeFile( README_PATH, README_TEMPLATE .replace('{{before}}', README_BEFORE.trim()) + .replace('{{index_stars}}', navigationSection.trim()) .replace('{{main}}', README_MAIN.trim()) .replace('{{after}}', README_AFTER.trim()), ); - await writeFile( MKDOCS_PATH, MKDOCS_TEMPLATE @@ -113,29 +199,25 @@ async function main() { .replace('{{main}}', MKDOCS_MAIN) .replace('{{after}}', MKDOCS_AFTER), ); + + // Organize files by star rating + //await organizeByStars(dishesFolder, starsystemFolder); } catch (error) { console.error(error); } } -async function getAllMarkdown(path) { +async function getAllMarkdown(dir) { const paths = []; - const files = await readdir(path); - // chinese alphabetic order + const files = await readdir(dir); files.sort((a, b) => a.localeCompare(b, 'zh-CN')); - // mtime order - // files.sort(async (a, b) => { - // const aStat = await stat(`${path}/${a}`); - // const bStat = await stat(`${path}/${b}`); - // return aStat.mtime - bStat.mtime; - // }); for (const file of files) { - const filePath = `${path}/${file}`; + const filePath = path.join(dir, file); if (ignorePaths.includes(file)) continue; const fileStat = await stat(filePath); if (fileStat.isFile() && file.endsWith('.md')) { - paths.push({ path, file }); + paths.push({ path: dir, file }); } else if (fileStat.isDirectory()) { const subFiles = await getAllMarkdown(filePath); paths.push(...subFiles); diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 93de41ef91..0000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 30 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - "Type: Bug" -# Label to use when marking an issue as stale -staleLabel: "Resolution: Stale" -issues: - # Comment to post when marking an issue as stale. - markComment: > - This issue has been automatically marked as stale. - **If this issue is still affecting you, please leave any comment** (for example, "bump"), and we'll keep it open. - We are sorry that we haven't been able to prioritize it yet. If you have any new additional information, please include it with your comment! - # Comment to post when closing a stale issue. - closeComment: > - Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you! -pulls: - # Comment to post when marking a pull request as stale. - markComment: > - This pull request has been automatically marked as stale. - **If this pull request is still relevant, please leave any comment** (for example, "bump"), and we'll keep it open. - We are sorry that we haven't been able to prioritize reviewing it yet. Your contribution is very much appreciated. - # Comment to post when closing a stale pull request. - closeComment: > - Closing this pull request after a prolonged period of inactivity. If this issue is still present in the latest release, please ask for this pull request to be reopened. Thank you! diff --git a/.github/templates/mkdocs_template.yml b/.github/templates/mkdocs_template.yml index 5d0aa5c41a..87c59e0f9d 100644 --- a/.github/templates/mkdocs_template.yml +++ b/.github/templates/mkdocs_template.yml @@ -71,6 +71,12 @@ markdown_extensions: plugins: - same-dir - search + - with-pdf: + author: GitHub Community + copyright: The Unlicense + cover_title: How To Cook + cover_subtitle: 程序员做饭指南 + output_path: document.pdf - minify: minify_html: true diff --git a/.github/templates/readme_template.md b/.github/templates/readme_template.md index 11ba072edf..bdcaa06b86 100644 --- a/.github/templates/readme_template.md +++ b/.github/templates/readme_template.md @@ -5,7 +5,7 @@ [![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) ![Man hours](https://manhours.aiursoft.cn/r/github.com/anduin2017/howtocook.svg) -[![Docker](https://img.shields.io/badge/docker-latest-blue?logo=docker)](https://hub.aiursoft.cn/#!/taglist/anduin/howtocook) +[![Docker](https://img.shields.io/badge/docker-latest-blue?logo=docker)](https://github.com/Anduin2017/HowToCook/pkgs/container/how-to-cook) 最近在家隔离,出不了门。只能宅在家做饭了。作为程序员,我偶尔在网上找找菜谱和做法。但是这些菜谱往往写法千奇百怪,经常中间莫名出来一些材料。对于习惯了形式语言的程序员来说极其不友好。 @@ -13,6 +13,17 @@ 同样,我希望它是一个由社区驱动和维护的开源项目,使更多人能够一起做一个有趣的仓库。所以非常欢迎大家贡献它~ +## 本地部署 + +如果需要在本地部署菜谱 Web 服务,可以在安装 Docker 后运行下面命令: + +```bash +docker pull ghcr.io/anduin2017/how-to-cook:latest +docker run -d -p 5000:5000 ghcr.io/anduin2017/how-to-cook:latest +``` + +如需下载 PDF 版本,可以在浏览器中访问 [/document.pdf](https://cook.aiursoft.cn/document.pdf) + ## 如何贡献 针对发现的问题,直接修改并提交 Pull request 即可。 @@ -25,7 +36,7 @@ ## 菜谱 -### 家常菜 +{{index_stars}} {{main}} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 34dd67160e..729e6cfe30 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,12 +1,11 @@ -name: build +name: Continuous Deployment on: push: branches: [ master ] - workflow_dispatch: jobs: - Rebuild-everything: + build-readme-file: runs-on: ubuntu-latest steps: # Checkout, install tools.. @@ -17,19 +16,9 @@ jobs: with: node-version: '16' cache: 'npm' - - name: Install packages - run: sudo gem install mdl - # Generate Readme, mkdocs. - - run: node ./.github/readme-generate.js - # Lint issues first. (Without node_modules) - - name: Lint markdown files - run: mdl . -r ~MD036,~MD024,~MD004,~MD029,~MD013,~MD007 - - run: pip install -r requirements.txt - - run: mkdocs build --strict - # Do textlint fix. - run: npm install - - run: ./node_modules/.bin/textlint . --fix - - run: rm ./node_modules -rvf + - run: npm run build + - run: npm run lint # Save files. - uses: stefanzweifel/git-auto-commit-action@v4 with: @@ -39,12 +28,22 @@ jobs: commit_user_name: github-actions[bot] commit_user_email: github-actions[bot]@users.noreply.github.com commit_author: github-actions[bot] - # Build docs - - run: echo cook.aiurs.co > CNAME - - run: mkdir docs && echo cook.aiurs.co > docs/CNAME - - uses: mhausenblas/mkdocs-deploy-gh-pages@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CUSTOM_DOMAIN: cook.aiurs.co - CONFIG_FILE: mkdocs.yml - REQUIREMENTS: requirements.txt + + build-docker-image: + needs: build-readme-file + runs-on: ubuntu-latest + steps: + # Checkout, install tools.. + - uses: actions/checkout@v2 + # Use docker to build current directory ./Dockfile + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push the Docker image + run: | + docker build . --tag ghcr.io/anduin2017/how-to-cook:latest + docker push ghcr.io/anduin2017/how-to-cook:latest \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3b7596b388..0e0f902ffa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,13 +13,5 @@ jobs: with: node-version: '16' cache: 'npm' - - name: Install packages - run: sudo gem install mdl - - name: Lint markdown files - run: mdl . -r ~MD036,~MD024,~MD004,~MD029,~MD013,~MD007 - - run: pip install -r requirements.txt - - run: mkdocs build --strict - run: npm install - - run: node .github/manual_lint.js - # Suppress 036 Emphasis used instead of a header - # Suppress 024 Multiple headers with the same content + - run: npm run lint diff --git a/.gitignore b/.gitignore index 35cddeb9af..17918ea655 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ node_modules/ site/ .idea -*.iml \ No newline at end of file +*.iml +mkdocs.yml \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 26e6f370b2..0000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,8 +0,0 @@ -stages: - - deploy - -deploy_docker: - stage: deploy - script: - - docker build . -t hub.aiursoft.cn/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:latest - - docker push hub.aiursoft.cn/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME:latest diff --git a/.markdownlint.json b/.markdownlint.json new file mode 100644 index 0000000000..80bde8203b --- /dev/null +++ b/.markdownlint.json @@ -0,0 +1,8 @@ +{ + "MD036": false, + "MD024": false, + "MD004": false, + "MD029": false, + "MD013": false, + "MD007": false +} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f07470cca2..74dc34551b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,161 +7,3 @@ 在写新菜谱时,请复制并修改已有的模板: [示例菜](./dishes/template/示例菜/示例菜.md)。 我们建议在贡献之前,阅读仓库的[行为守则](./CODE_OF_CONDUCT.md)。 - -## 内容规范 - -菜谱提交者**无需**阅读此内容规范。以下内容已经以简明易懂的方式包含在示例模板中。项目的维护者会在你的 PR 中提出建议, 并协助修改。 - -本项目的 Motivation 要求菜谱满足以下规范,不符合规范的菜谱将不会被合并到代码库中。项目的维护者维护此文档, 作为正式的标准与共识。 - -- 每一道菜谱至少应包含`原材料与工具`, `计算`, `操作`三部分内容。 - -`原材料与工具`应列出本菜品需要的除`假想已准备好的物品`外的所有原材料与厨具。 -`计算`应定量列出本菜品所需的原材料的量。(无论与人数是否相关) -`操作`应说明菜品的制作步骤。 - -- 菜品的制作步骤应当明确无歧义(non-ambiguous),并尽可能准确(accurate)。有歧义(ambiguous)的描述是不可接受的,而不准确(inaccurate)或不精确(imprecise)的描述是可以接受的。 - -> 不准确的菜谱会导致菜品口味有少许偏差,不明确的菜谱会导致做菜人的心态有明显不安。 - -举例:有歧义的描述 - -``` -# 解释:此处对于盐量的描述是有歧义的。 -# 因为对于某个数量的盐,用户无法得出确定的客观结论:此数量是否属于"少量"。 -加入少量盐 - -加入几滴蚝油 -将锅加热至八分热 -撒上少许葱花 -煮至鸡肉断生 -``` - -举例:无歧义的描述 - -``` -# 解释:此处对于锅的温度的描述是不准确的(可能是200摄氏度左右的任何温度),但这个描述是无歧义的。 -# 因为对于锅的某个状态,用户可以进行水滴测试,并得出确定的客观结论:此状态要么符合要求,要么不符合要求。 -加热锅,直至"滴入几滴水时,水珠能够在锅上迅速滚动而不吸附" -加热锅,直至观察到莱顿弗罗斯特现象 - -加入 5 ml 酱油 -等到水沸腾后 -继续煮,直到汤汁剩下二分之一 -煎至表面呈金黄色 -继续翻炒两分钟 - -# 食材所可能粘附的蛋液的量是确定的 -裹上蛋液 - -# 在'计算'中已提及将用到葱花的量 -撒上葱花 -``` - -考虑到现实因素,对于某些在家庭厨房中确实难以明确描述的因素,可以作为特例排除。例如 - -``` -# 在描述燃气灶火焰强度时 -文火,小火,中火,大火 等 -# 在描述颜色时 -金黄色 等 -# 在描述硬度时 -变软 变硬 -``` - -- 菜品的`制作步骤`应当完整(complete)。这意味着, 在执行完所有操作步骤后, 菜品已经被完成。 - -- 菜品的`原材料与工具`应当完整(complete)。这意味着, 在执行操作步骤时, 没有用到`原材料与工具`中未提到的物品。 - -## 审核员须知 - -下面的内容仅供参与菜谱审批的人员参考。 - -审批时,最重要的是避免歧义:保证按照菜谱尽可能没有灵活发挥空间。所有歧义都要指出。就是,无论是个大厨还是个萌新,只要按照菜谱,做出来的效果应该完全一样。 - -- 绝对不允许菜谱中出现灵活发挥的空间。不允许让厨师自己斟酌加入的量。不允许出现 `适量` `少量` -- 绝对不允许出现允许厨师自己决策的步骤。例如:`可以根据自己的喜好调整煮的时间`这类语句 -- 针对单个大小体积重量差距极大的物体,不允许用个来约束,要额外标注重量(g) -- 勺 不是一个可靠的单位。建议换成毫升 ml -- 确保文件路径合理,文件引用正确,没有签入无意义的文件 -- 对蒜的描述,指的是三头还是三瓣可能产生歧义 -- 允许出现 `小火` `中火` `大火` -- 任何材料中间的标点符号,例如顿号,都需要额外确认是否是`可以替代的或`,还是`必须同时添加的和` -- 如果一个原材料仅仅计算了一次,而引用了多次,必须额外确认每次引用时指的量的多少 -- 确保没有破坏模板的一二级标题格式 -- 确保没有删除模板中必需的内容 -- 确保删除干净了模板里的注释 -- 确保分类正确,不和已有的菜名重复 -- 确保签入的内容都符合 CC0 协议。尤其注意图片是否有水印! -- 确保没有签入任何个人身份信息、EUII、Email 地址、GitHub 用户名 - -## 文档网站构建 - -除了直接部署 `README.md` 的 HTML,还可以利用`mkdocs-material`来渲染 markdown 文件。这会得到更加漂亮的页面。 - -需求: Python > 3.6 - -### 调试 - -```bash -pip install -r requirements.txt -mkdocs serve -``` - -可以在本地 打开。 - -### 编译 - -```bash -mkdocs build --strict -``` - -生成静态 HTML 网页, 存在于在`site/`文件夹下。Hosting 的时候指向到`site/index.html`即可。 - -> **_Note:_** -> 由于`mkdocs`不原生支持`*.md`存在于根目录下,只能添加了`mkdocs-same-dir`这个插件来做workaround。 -> 通常来说mkdoc会自动检查文件夹里的各种文件 (eg *.jpg)然后生成相对应的链接。由于这个 -> workaround,根目录下现在只能检测到`.md`文件。这个限制并不影响剩下的文件夹(比方说`tips`和`dishes`)。 - -## 手工 lint - -如果需要检查文档中的不规范,可以手工运行 lint 操作。 - -需求:Ruby - -### 安装 markdownlint - -```bash -sudo gem install mdl # Linux -``` - -```powershell -gem install mdl # Windows, with administrators permission. -``` - -### 运行 lint - -```bash -mdl . -r ~MD036,~MD024,~MD004,~MD029 -``` - -## 生成 Readme 和 mkdocs - -一般的,每次 master 分支发生变更后,会自动生成 Readme 和 mkdocs 文件。但是,在某些情况下可能需要开发者手工生成这些文件。 - -需求:node,npm - -```bash -node ./.github/readme-generate.js -``` - -## 自动 markdown 修复 - -框架支持一些自动 markdown 错误修正功能。一般的,每次 master 分支发生变更后,会自动修正。但是,在某些情况下可能需要开发者手工修正。 - -需求:node,npm - -```bash -npm install -./node_modules/.bin/textlint . --fix -``` diff --git a/Dockerfile b/Dockerfile index 7add50299c..284847f6e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,30 @@ # ============================ -# Prepare Node Environment -FROM hub.aiursoft.cn/node:21-alpine as node-env +# Prepare lint Environment +FROM hub.aiursoft.cn/node:21-alpine as lint-env WORKDIR /app COPY . . -RUN node ./.github/readme-generate.js +RUN npm install +RUN npm run build +RUN npm run lint # ============================ # Prepare Build Environment FROM hub.aiursoft.cn/python:3.11 as python-env WORKDIR /app -COPY --from=node-env /app . -RUN pip install -r requirements.txt -RUN mkdocs build --strict +COPY --from=lint-env /app . +RUN apt-get update && apt-get install -y weasyprint fonts-noto-cjk wget unzip +RUN rm node_modules -rf && pip install -r requirements.txt +RUN wget https://gitlab.aiursoft.cn/anduin/anduinos/-/raw/master/Config/fonts.conf -O /etc/fonts/local.conf +RUN wget -P /tmp https://gitlab.aiursoft.cn/anduin/anduinos/-/raw/master/Assets/fonts.zip +RUN unzip -o /tmp/fonts.zip -d /usr/share/fonts/ +RUN rm -f /tmp/fonts.zip +RUN fc-cache -fv + +RUN mkdocs build # ============================ # Prepare Runtime Environment FROM hub.aiursoft.cn/aiursoft/static COPY --from=python-env /app/site /data + +LABEL org.opencontainers.image.source="https://github.com/Anduin2017/HowToCook" diff --git a/README.md b/README.md index 5dcac9ccfa..6d419bc641 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![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) ![Man hours](https://manhours.aiursoft.cn/r/github.com/anduin2017/howtocook.svg) -[![Docker](https://img.shields.io/badge/docker-latest-blue?logo=docker)](https://hub.aiursoft.cn/#!/taglist/anduin/howtocook) +[![Docker](https://img.shields.io/badge/docker-latest-blue?logo=docker)](https://github.com/Anduin2017/HowToCook/pkgs/container/how-to-cook) 最近在家隔离,出不了门。只能宅在家做饭了。作为程序员,我偶尔在网上找找菜谱和做法。但是这些菜谱往往写法千奇百怪,经常中间莫名出来一些材料。对于习惯了形式语言的程序员来说极其不友好。 @@ -13,6 +13,17 @@ 同样,我希望它是一个由社区驱动和维护的开源项目,使更多人能够一起做一个有趣的仓库。所以非常欢迎大家贡献它~ +## 本地部署 + +如果需要在本地部署菜谱 Web 服务,可以在安装 Docker 后运行下面命令: + +```bash +docker pull ghcr.io/anduin2017/how-to-cook:latest +docker run -d -p 5000:5000 ghcr.io/anduin2017/how-to-cook:latest +``` + +如需下载 PDF 版本,可以在浏览器中访问 [/document.pdf](https://cook.aiursoft.cn/document.pdf) + ## 如何贡献 针对发现的问题,直接修改并提交 Pull request 即可。 @@ -21,331 +32,339 @@ ## 做菜之前 -- [厨房准备](./tips/厨房准备.md) -- [如何选择现在吃什么](./tips/如何选择现在吃什么.md) -- [高压力锅](./tips/learn/高压力锅.md) -- [去腥](./tips/learn/去腥.md) -- [食品安全](./tips/learn/食品安全.md) -- [微波炉](./tips/learn/微波炉.md) -- [学习焯水](./tips/learn/学习焯水.md) -- [学习炒与煎](./tips/learn/学习炒与煎.md) -- [学习凉拌](./tips/learn/学习凉拌.md) -- [学习腌](./tips/learn/学习腌.md) -- [学习蒸](./tips/learn/学习蒸.md) -- [学习煮](./tips/learn/学习煮.md) +- [厨房准备](tips/厨房准备.md) +- [如何选择现在吃什么](tips/如何选择现在吃什么.md) +- [高压力锅](tips/learn/高压力锅.md) +- [去腥](tips/learn/去腥.md) +- [食品安全](tips/learn/食品安全.md) +- [微波炉](tips/learn/微波炉.md) +- [学习焯水](tips/learn/学习焯水.md) +- [学习炒与煎](tips/learn/学习炒与煎.md) +- [学习凉拌](tips/learn/学习凉拌.md) +- [学习腌](tips/learn/学习腌.md) +- [学习蒸](tips/learn/学习蒸.md) +- [学习煮](tips/learn/学习煮.md) ## 菜谱 -### 家常菜 +### 按难度索引 + +- [1 星难度](starsystem/1Star.md) +- [2 星难度](starsystem/2Star.md) +- [3 星难度](starsystem/3Star.md) +- [4 星难度](starsystem/4Star.md) +- [5 星难度](starsystem/5Star.md) ### 素菜 -- [拔丝土豆](./dishes/vegetable_dish/拔丝土豆/拔丝土豆.md) -- [白灼菜心](./dishes/vegetable_dish/白灼菜心/白灼菜心.md) -- [包菜炒鸡蛋粉丝](./dishes/vegetable_dish/包菜炒鸡蛋粉丝/包菜炒鸡蛋粉丝.md) -- [菠菜炒鸡蛋](./dishes/vegetable_dish/菠菜炒鸡蛋/菠菜炒鸡蛋.md) -- [炒滑蛋](./dishes/vegetable_dish/炒滑蛋/炒滑蛋.md) -- [炒茄子](./dishes/vegetable_dish/炒茄子.md) -- [炒青菜](./dishes/vegetable_dish/炒青菜.md) -- [葱煎豆腐](./dishes/vegetable_dish/葱煎豆腐.md) -- [脆皮豆腐](./dishes/vegetable_dish/脆皮豆腐.md) -- [地三鲜](./dishes/vegetable_dish/地三鲜.md) -- [干锅花菜](./dishes/vegetable_dish/干锅花菜/干锅花菜.md) -- [蚝油三鲜菇](./dishes/vegetable_dish/蚝油三鲜菇/蚝油三鲜菇.md) -- [蚝油生菜](./dishes/vegetable_dish/蚝油生菜.md) -- [红烧冬瓜](./dishes/vegetable_dish/红烧冬瓜/红烧冬瓜.md) -- [红烧茄子](./dishes/vegetable_dish/红烧茄子.md) -- [虎皮青椒](./dishes/vegetable_dish/虎皮青椒/虎皮青椒.md) -- [话梅煮毛豆](./dishes/vegetable_dish/话梅煮毛豆/话梅煮毛豆.md) -- [鸡蛋羹](./dishes/vegetable_dish/鸡蛋羹/鸡蛋羹.md) -- [微波炉鸡蛋羹](./dishes/vegetable_dish/鸡蛋羹/微波炉鸡蛋羹.md) -- [蒸箱鸡蛋羹](./dishes/vegetable_dish/鸡蛋羹/蒸箱鸡蛋羹.md) -- [鸡蛋火腿炒黄瓜](./dishes/vegetable_dish/鸡蛋火腿炒黄瓜.md) -- [茄子炖土豆](./dishes/vegetable_dish/茄子炖土豆.md) -- [茭白炒肉](./dishes/vegetable_dish/茭白炒肉/茭白炒肉.md) -- [椒盐玉米](./dishes/vegetable_dish/椒盐玉米/椒盐玉米.md) -- [金针菇日本豆腐煲](./dishes/vegetable_dish/金针菇日本豆腐煲.md) -- [烤茄子](./dishes/vegetable_dish/烤茄子/烤茄子.md) -- [榄菜肉末四季豆](./dishes/vegetable_dish/榄菜肉末四季豆/榄菜肉末四季豆.md) -- [雷椒皮蛋](./dishes/vegetable_dish/雷椒皮蛋.md) -- [凉拌黄瓜](./dishes/vegetable_dish/凉拌黄瓜.md) -- [凉拌木耳](./dishes/vegetable_dish/凉拌木耳/凉拌木耳.md) -- [凉拌莴笋](./dishes/vegetable_dish/凉拌莴笋/凉拌莴笋.md) -- [凉拌油麦菜](./dishes/vegetable_dish/凉拌油麦菜.md) -- [蒲烧茄子](./dishes/vegetable_dish/蒲烧茄子.md) -- [芹菜拌茶树菇](./dishes/vegetable_dish/芹菜拌茶树菇/芹菜拌茶树菇.md) -- [陕北熬豆角](./dishes/vegetable_dish/陕北熬豆角.md) -- [上汤娃娃菜](./dishes/vegetable_dish/上汤娃娃菜/上汤娃娃菜.md) -- [手撕包菜](./dishes/vegetable_dish/手撕包菜/手撕包菜.md) -- [水油焖蔬菜](./dishes/vegetable_dish/水油焖蔬菜.md) -- [素炒豆角](./dishes/vegetable_dish/素炒豆角.md) -- [酸辣土豆丝](./dishes/vegetable_dish/酸辣土豆丝.md) -- [糖拌西红柿](./dishes/vegetable_dish/糖拌西红柿/糖拌西红柿.md) -- [莴笋叶煎饼](./dishes/vegetable_dish/莴笋叶煎饼/莴笋叶煎饼.md) -- [西红柿炒鸡蛋](./dishes/vegetable_dish/西红柿炒鸡蛋.md) -- [西红柿豆腐汤羹](./dishes/vegetable_dish/西红柿豆腐汤羹/西红柿豆腐汤羹.md) -- [西葫芦炒鸡蛋](./dishes/vegetable_dish/西葫芦炒鸡蛋/西葫芦炒鸡蛋.md) -- [小炒藕丁](./dishes/vegetable_dish/小炒藕丁/小炒藕丁.md) -- [洋葱炒鸡蛋](./dishes/vegetable_dish/洋葱炒鸡蛋/洋葱炒鸡蛋.md) +- [拔丝土豆](dishes/vegetable_dish/拔丝土豆/拔丝土豆.md) +- [白灼菜心](dishes/vegetable_dish/白灼菜心/白灼菜心.md) +- [包菜炒鸡蛋粉丝](dishes/vegetable_dish/包菜炒鸡蛋粉丝/包菜炒鸡蛋粉丝.md) +- [菠菜炒鸡蛋](dishes/vegetable_dish/菠菜炒鸡蛋/菠菜炒鸡蛋.md) +- [炒滑蛋](dishes/vegetable_dish/炒滑蛋/炒滑蛋.md) +- [炒茄子](dishes/vegetable_dish/炒茄子.md) +- [炒青菜](dishes/vegetable_dish/炒青菜.md) +- [葱煎豆腐](dishes/vegetable_dish/葱煎豆腐.md) +- [脆皮豆腐](dishes/vegetable_dish/脆皮豆腐.md) +- [地三鲜](dishes/vegetable_dish/地三鲜.md) +- [干锅花菜](dishes/vegetable_dish/干锅花菜/干锅花菜.md) +- [蚝油三鲜菇](dishes/vegetable_dish/蚝油三鲜菇/蚝油三鲜菇.md) +- [蚝油生菜](dishes/vegetable_dish/蚝油生菜.md) +- [红烧冬瓜](dishes/vegetable_dish/红烧冬瓜/红烧冬瓜.md) +- [红烧茄子](dishes/vegetable_dish/红烧茄子.md) +- [虎皮青椒](dishes/vegetable_dish/虎皮青椒/虎皮青椒.md) +- [话梅煮毛豆](dishes/vegetable_dish/话梅煮毛豆/话梅煮毛豆.md) +- [鸡蛋羹](dishes/vegetable_dish/鸡蛋羹/鸡蛋羹.md) +- [微波炉鸡蛋羹](dishes/vegetable_dish/鸡蛋羹/微波炉鸡蛋羹.md) +- [蒸箱鸡蛋羹](dishes/vegetable_dish/鸡蛋羹/蒸箱鸡蛋羹.md) +- [鸡蛋火腿炒黄瓜](dishes/vegetable_dish/鸡蛋火腿炒黄瓜.md) +- [茄子炖土豆](dishes/vegetable_dish/茄子炖土豆.md) +- [茭白炒肉](dishes/vegetable_dish/茭白炒肉/茭白炒肉.md) +- [椒盐玉米](dishes/vegetable_dish/椒盐玉米/椒盐玉米.md) +- [金针菇日本豆腐煲](dishes/vegetable_dish/金针菇日本豆腐煲.md) +- [烤茄子](dishes/vegetable_dish/烤茄子/烤茄子.md) +- [榄菜肉末四季豆](dishes/vegetable_dish/榄菜肉末四季豆/榄菜肉末四季豆.md) +- [雷椒皮蛋](dishes/vegetable_dish/雷椒皮蛋.md) +- [凉拌黄瓜](dishes/vegetable_dish/凉拌黄瓜.md) +- [凉拌木耳](dishes/vegetable_dish/凉拌木耳/凉拌木耳.md) +- [凉拌莴笋](dishes/vegetable_dish/凉拌莴笋/凉拌莴笋.md) +- [凉拌油麦菜](dishes/vegetable_dish/凉拌油麦菜.md) +- [蒲烧茄子](dishes/vegetable_dish/蒲烧茄子.md) +- [芹菜拌茶树菇](dishes/vegetable_dish/芹菜拌茶树菇/芹菜拌茶树菇.md) +- [陕北熬豆角](dishes/vegetable_dish/陕北熬豆角.md) +- [上汤娃娃菜](dishes/vegetable_dish/上汤娃娃菜/上汤娃娃菜.md) +- [手撕包菜](dishes/vegetable_dish/手撕包菜/手撕包菜.md) +- [水油焖蔬菜](dishes/vegetable_dish/水油焖蔬菜.md) +- [素炒豆角](dishes/vegetable_dish/素炒豆角.md) +- [酸辣土豆丝](dishes/vegetable_dish/酸辣土豆丝.md) +- [糖拌西红柿](dishes/vegetable_dish/糖拌西红柿/糖拌西红柿.md) +- [莴笋叶煎饼](dishes/vegetable_dish/莴笋叶煎饼/莴笋叶煎饼.md) +- [西红柿炒鸡蛋](dishes/vegetable_dish/西红柿炒鸡蛋.md) +- [西红柿豆腐汤羹](dishes/vegetable_dish/西红柿豆腐汤羹/西红柿豆腐汤羹.md) +- [西葫芦炒鸡蛋](dishes/vegetable_dish/西葫芦炒鸡蛋/西葫芦炒鸡蛋.md) +- [小炒藕丁](dishes/vegetable_dish/小炒藕丁/小炒藕丁.md) +- [洋葱炒鸡蛋](dishes/vegetable_dish/洋葱炒鸡蛋/洋葱炒鸡蛋.md) ### 荤菜 -- [白菜猪肉炖粉条](./dishes/meat_dish/白菜猪肉炖粉条.md) -- [带把肘子](./dishes/meat_dish/带把肘子.md) -- [冬瓜酿肉](./dishes/meat_dish/冬瓜酿肉/冬瓜酿肉.md) -- [番茄红酱](./dishes/meat_dish/番茄红酱.md) -- [干煸仔鸡](./dishes/meat_dish/干煸仔鸡/干煸仔鸡.md) -- [宫保鸡丁](./dishes/meat_dish/宫保鸡丁/宫保鸡丁.md) -- [咕噜肉](./dishes/meat_dish/咕噜肉.md) -- [荷兰豆炒腊肠](./dishes/meat_dish/荷兰豆炒腊肠/荷兰豆炒腊肠.md) -- [黑椒牛柳](./dishes/meat_dish/黑椒牛柳/黑椒牛柳.md) -- [简易红烧肉](./dishes/meat_dish/红烧肉/简易红烧肉.md) -- [南派红烧肉](./dishes/meat_dish/红烧肉/南派红烧肉.md) -- [红烧猪蹄](./dishes/meat_dish/红烧猪蹄/红烧猪蹄.md) -- [湖南家常红烧肉](./dishes/meat_dish/湖南家常红烧肉/湖南家常红烧肉.md) -- [黄瓜炒肉](./dishes/meat_dish/黄瓜炒肉.md) -- [黄焖鸡](./dishes/meat_dish/黄焖鸡.md) -- [徽派红烧肉](./dishes/meat_dish/徽派红烧肉/徽派红烧肉.md) -- [回锅肉](./dishes/meat_dish/回锅肉/回锅肉.md) -- [尖椒炒牛肉](./dishes/meat_dish/尖椒炒牛肉.md) -- [尖叫牛蛙](./dishes/meat_dish/尖叫牛蛙/尖叫牛蛙.md) -- [姜炒鸡](./dishes/meat_dish/姜炒鸡/姜炒鸡.md) -- [姜葱捞鸡](./dishes/meat_dish/姜葱捞鸡/姜葱捞鸡.md) -- [酱牛肉](./dishes/meat_dish/酱牛肉/酱牛肉.md) -- [酱排骨](./dishes/meat_dish/酱排骨/酱排骨.md) -- [椒盐排条](./dishes/meat_dish/椒盐排条.md) -- [咖喱肥牛](./dishes/meat_dish/咖喱肥牛/咖喱肥牛.md) -- [烤鸡翅](./dishes/meat_dish/烤鸡翅.md) -- [可乐鸡翅](./dishes/meat_dish/可乐鸡翅.md) -- [口水鸡](./dishes/meat_dish/口水鸡/口水鸡.md) -- [辣椒炒肉](./dishes/meat_dish/辣椒炒肉.md) -- [老妈蹄花](./dishes/meat_dish/老妈蹄花/老妈蹄花.md) -- [老式锅包肉](./dishes/meat_dish/老式锅包肉/老式锅包肉.md) -- [冷吃兔](./dishes/meat_dish/冷吃兔.md) -- [荔枝肉](./dishes/meat_dish/荔枝肉/荔枝肉.md) -- [凉拌鸡丝](./dishes/meat_dish/凉拌鸡丝/凉拌鸡丝.md) -- [萝卜炖羊排](./dishes/meat_dish/萝卜炖羊排.md) -- [麻辣香锅](./dishes/meat_dish/麻辣香锅.md) -- [麻婆豆腐](./dishes/meat_dish/麻婆豆腐/麻婆豆腐.md) -- [梅菜扣肉](./dishes/meat_dish/梅菜扣肉/梅菜扣肉.md) -- [奶酪培根通心粉](./dishes/meat_dish/奶酪培根通心粉/奶酪培根通心粉.md) -- [啤酒鸭](./dishes/meat_dish/啤酒鸭/啤酒鸭.md) -- [黔式腊肠娃娃菜](./dishes/meat_dish/黔式腊肠娃娃菜/黔式腊肠娃娃菜.md) -- [青椒土豆炒肉](./dishes/meat_dish/青椒土豆炒肉/青椒土豆炒肉.md) -- [肉饼炖蛋](./dishes/meat_dish/肉饼炖蛋.md) -- [杀猪菜](./dishes/meat_dish/杀猪菜.md) -- [山西过油肉](./dishes/meat_dish/山西过油肉.md) -- [商芝肉](./dishes/meat_dish/商芝肉.md) -- [瘦肉土豆片](./dishes/meat_dish/瘦肉土豆片/瘦肉土豆片.md) -- [水煮牛肉](./dishes/meat_dish/水煮牛肉/水煮牛肉.md) -- [水煮肉片](./dishes/meat_dish/水煮肉片.md) -- [蒜苔炒肉末](./dishes/meat_dish/蒜苔炒肉末.md) -- [台式卤肉饭](./dishes/meat_dish/台式卤肉饭/台式卤肉饭.md) -- [糖醋里脊](./dishes/meat_dish/糖醋里脊.md) -- [糖醋排骨](./dishes/meat_dish/糖醋排骨/糖醋排骨.md) -- [土豆炖排骨](./dishes/meat_dish/土豆炖排骨/土豆炖排骨.md) -- [无骨鸡爪](./dishes/meat_dish/无骨鸡爪/无骨鸡爪.md) -- [西红柿牛腩](./dishes/meat_dish/西红柿牛腩/西红柿牛腩.md) -- [西红柿土豆炖牛肉](./dishes/meat_dish/西红柿土豆炖牛肉/西红柿土豆炖牛肉.md) -- [乡村啤酒鸭](./dishes/meat_dish/乡村啤酒鸭.md) -- [香干芹菜炒肉](./dishes/meat_dish/香干芹菜炒肉/香干芹菜炒肉.md) -- [香干肉丝](./dishes/meat_dish/香干肉丝.md) -- [香菇滑鸡](./dishes/meat_dish/香菇滑鸡/香菇滑鸡.md) -- [香煎五花肉](./dishes/meat_dish/香煎五花肉/香煎五花肉.md) -- [香辣鸡爪煲](./dishes/meat_dish/香辣鸡爪煲/香辣鸡爪煲.md) -- [小炒黄牛肉](./dishes/meat_dish/小炒黄牛肉/小炒黄牛肉.md) -- [小炒鸡肝](./dishes/meat_dish/小炒鸡肝/小炒鸡肝.md) -- [小炒肉](./dishes/meat_dish/小炒肉.md) -- [新疆大盘鸡](./dishes/meat_dish/新疆大盘鸡/新疆大盘鸡.md) -- [血浆鸭](./dishes/meat_dish/血浆鸭/血浆鸭.md) -- [羊排焖面](./dishes/meat_dish/羊排焖面/羊排焖面.md) -- [洋葱炒猪肉](./dishes/meat_dish/洋葱炒猪肉.md) -- [意式烤鸡](./dishes/meat_dish/意式烤鸡.md) -- [鱼香茄子](./dishes/meat_dish/鱼香茄子/鱼香茄子.md) -- [鱼香肉丝](./dishes/meat_dish/鱼香肉丝.md) -- [枝竹羊腩煲](./dishes/meat_dish/枝竹羊腩煲/枝竹羊腩煲.md) -- [猪皮冻](./dishes/meat_dish/猪皮冻/猪皮冻.md) -- [猪肉烩酸菜](./dishes/meat_dish/猪肉烩酸菜.md) -- [柱候牛腩](./dishes/meat_dish/柱候牛腩/柱候牛腩.md) -- [孜然牛肉](./dishes/meat_dish/孜然牛肉.md) -- [醉排骨](./dishes/meat_dish/醉排骨/醉排骨.md) +- [白菜猪肉炖粉条](dishes/meat_dish/白菜猪肉炖粉条.md) +- [带把肘子](dishes/meat_dish/带把肘子.md) +- [冬瓜酿肉](dishes/meat_dish/冬瓜酿肉/冬瓜酿肉.md) +- [番茄红酱](dishes/meat_dish/番茄红酱.md) +- [干煸仔鸡](dishes/meat_dish/干煸仔鸡/干煸仔鸡.md) +- [宫保鸡丁](dishes/meat_dish/宫保鸡丁/宫保鸡丁.md) +- [咕噜肉](dishes/meat_dish/咕噜肉.md) +- [荷兰豆炒腊肠](dishes/meat_dish/荷兰豆炒腊肠/荷兰豆炒腊肠.md) +- [黑椒牛柳](dishes/meat_dish/黑椒牛柳/黑椒牛柳.md) +- [简易红烧肉](dishes/meat_dish/红烧肉/简易红烧肉.md) +- [南派红烧肉](dishes/meat_dish/红烧肉/南派红烧肉.md) +- [红烧猪蹄](dishes/meat_dish/红烧猪蹄/红烧猪蹄.md) +- [湖南家常红烧肉](dishes/meat_dish/湖南家常红烧肉/湖南家常红烧肉.md) +- [黄瓜炒肉](dishes/meat_dish/黄瓜炒肉.md) +- [黄焖鸡](dishes/meat_dish/黄焖鸡.md) +- [徽派红烧肉](dishes/meat_dish/徽派红烧肉/徽派红烧肉.md) +- [回锅肉](dishes/meat_dish/回锅肉/回锅肉.md) +- [尖椒炒牛肉](dishes/meat_dish/尖椒炒牛肉.md) +- [尖叫牛蛙](dishes/meat_dish/尖叫牛蛙/尖叫牛蛙.md) +- [姜炒鸡](dishes/meat_dish/姜炒鸡/姜炒鸡.md) +- [姜葱捞鸡](dishes/meat_dish/姜葱捞鸡/姜葱捞鸡.md) +- [酱牛肉](dishes/meat_dish/酱牛肉/酱牛肉.md) +- [酱排骨](dishes/meat_dish/酱排骨/酱排骨.md) +- [椒盐排条](dishes/meat_dish/椒盐排条.md) +- [咖喱肥牛](dishes/meat_dish/咖喱肥牛/咖喱肥牛.md) +- [烤鸡翅](dishes/meat_dish/烤鸡翅.md) +- [可乐鸡翅](dishes/meat_dish/可乐鸡翅.md) +- [口水鸡](dishes/meat_dish/口水鸡/口水鸡.md) +- [辣椒炒肉](dishes/meat_dish/辣椒炒肉.md) +- [老妈蹄花](dishes/meat_dish/老妈蹄花/老妈蹄花.md) +- [老式锅包肉](dishes/meat_dish/老式锅包肉/老式锅包肉.md) +- [冷吃兔](dishes/meat_dish/冷吃兔.md) +- [荔枝肉](dishes/meat_dish/荔枝肉/荔枝肉.md) +- [凉拌鸡丝](dishes/meat_dish/凉拌鸡丝/凉拌鸡丝.md) +- [萝卜炖羊排](dishes/meat_dish/萝卜炖羊排.md) +- [麻辣香锅](dishes/meat_dish/麻辣香锅.md) +- [麻婆豆腐](dishes/meat_dish/麻婆豆腐/麻婆豆腐.md) +- [梅菜扣肉](dishes/meat_dish/梅菜扣肉/梅菜扣肉.md) +- [奶酪培根通心粉](dishes/meat_dish/奶酪培根通心粉/奶酪培根通心粉.md) +- [啤酒鸭](dishes/meat_dish/啤酒鸭/啤酒鸭.md) +- [黔式腊肠娃娃菜](dishes/meat_dish/黔式腊肠娃娃菜/黔式腊肠娃娃菜.md) +- [青椒土豆炒肉](dishes/meat_dish/青椒土豆炒肉/青椒土豆炒肉.md) +- [肉饼炖蛋](dishes/meat_dish/肉饼炖蛋.md) +- [杀猪菜](dishes/meat_dish/杀猪菜.md) +- [山西过油肉](dishes/meat_dish/山西过油肉.md) +- [商芝肉](dishes/meat_dish/商芝肉.md) +- [瘦肉土豆片](dishes/meat_dish/瘦肉土豆片/瘦肉土豆片.md) +- [水煮牛肉](dishes/meat_dish/水煮牛肉/水煮牛肉.md) +- [水煮肉片](dishes/meat_dish/水煮肉片.md) +- [蒜苔炒肉末](dishes/meat_dish/蒜苔炒肉末.md) +- [台式卤肉饭](dishes/meat_dish/台式卤肉饭/台式卤肉饭.md) +- [糖醋里脊](dishes/meat_dish/糖醋里脊.md) +- [糖醋排骨](dishes/meat_dish/糖醋排骨/糖醋排骨.md) +- [土豆炖排骨](dishes/meat_dish/土豆炖排骨/土豆炖排骨.md) +- [无骨鸡爪](dishes/meat_dish/无骨鸡爪/无骨鸡爪.md) +- [西红柿牛腩](dishes/meat_dish/西红柿牛腩/西红柿牛腩.md) +- [西红柿土豆炖牛肉](dishes/meat_dish/西红柿土豆炖牛肉/西红柿土豆炖牛肉.md) +- [乡村啤酒鸭](dishes/meat_dish/乡村啤酒鸭.md) +- [香干芹菜炒肉](dishes/meat_dish/香干芹菜炒肉/香干芹菜炒肉.md) +- [香干肉丝](dishes/meat_dish/香干肉丝.md) +- [香菇滑鸡](dishes/meat_dish/香菇滑鸡/香菇滑鸡.md) +- [香煎五花肉](dishes/meat_dish/香煎五花肉/香煎五花肉.md) +- [香辣鸡爪煲](dishes/meat_dish/香辣鸡爪煲/香辣鸡爪煲.md) +- [小炒黄牛肉](dishes/meat_dish/小炒黄牛肉/小炒黄牛肉.md) +- [小炒鸡肝](dishes/meat_dish/小炒鸡肝/小炒鸡肝.md) +- [小炒肉](dishes/meat_dish/小炒肉.md) +- [小酥肉](dishes/meat_dish/小酥肉.md) +- [新疆大盘鸡](dishes/meat_dish/新疆大盘鸡/新疆大盘鸡.md) +- [血浆鸭](dishes/meat_dish/血浆鸭/血浆鸭.md) +- [羊排焖面](dishes/meat_dish/羊排焖面/羊排焖面.md) +- [洋葱炒猪肉](dishes/meat_dish/洋葱炒猪肉.md) +- [意式烤鸡](dishes/meat_dish/意式烤鸡.md) +- [鱼香茄子](dishes/meat_dish/鱼香茄子/鱼香茄子.md) +- [鱼香肉丝](dishes/meat_dish/鱼香肉丝.md) +- [枝竹羊腩煲](dishes/meat_dish/枝竹羊腩煲/枝竹羊腩煲.md) +- [猪皮冻](dishes/meat_dish/猪皮冻/猪皮冻.md) +- [猪肉烩酸菜](dishes/meat_dish/猪肉烩酸菜.md) +- [柱候牛腩](dishes/meat_dish/柱候牛腩/柱候牛腩.md) +- [孜然牛肉](dishes/meat_dish/孜然牛肉.md) +- [醉排骨](dishes/meat_dish/醉排骨/醉排骨.md) ### 水产 -- [白灼虾](./dishes/aquatic/白灼虾/白灼虾.md) -- [鳊鱼炖豆腐](./dishes/aquatic/鳊鱼炖豆腐/鳊鱼炖豆腐.md) -- [蛏抱蛋](./dishes/aquatic/蛏抱蛋/蛏抱蛋.md) -- [葱烧海参](./dishes/aquatic/葱烧海参/葱烧海参.md) -- [葱油桂鱼](./dishes/aquatic/葱油桂鱼/葱油桂鱼.md) -- [干煎阿根廷红虾](./dishes/aquatic/干煎阿根廷红虾/干煎阿根廷红虾.md) -- [红烧鲤鱼](./dishes/aquatic/红烧鲤鱼.md) -- [红烧鱼](./dishes/aquatic/红烧鱼.md) -- [红烧鱼头](./dishes/aquatic/红烧鱼头.md) -- [黄油煎虾](./dishes/aquatic/黄油煎虾/黄油煎虾.md) -- [烤鱼](./dishes/aquatic/混合烤鱼/烤鱼.md) -- [芥末黄油罗氏虾](./dishes/aquatic/芥末黄油罗氏虾/芥末黄油罗氏虾.md) -- [芥末黄油罗氏虾](./dishes/aquatic/芥末黄油罗氏虾.md) -- [咖喱炒蟹](./dishes/aquatic/咖喱炒蟹.md) -- [鲤鱼炖白菜](./dishes/aquatic/鲤鱼炖白菜/鲤鱼炖白菜.md) -- [清蒸鲈鱼](./dishes/aquatic/清蒸鲈鱼/清蒸鲈鱼.md) -- [清蒸生蚝](./dishes/aquatic/清蒸生蚝.md) -- [水煮鱼](./dishes/aquatic/水煮鱼.md) -- [蒜蓉虾](./dishes/aquatic/蒜蓉虾/蒜蓉虾.md) -- [糖醋鲤鱼](./dishes/aquatic/糖醋鲤鱼/糖醋鲤鱼.md) -- [微波葱姜黑鳕鱼](./dishes/aquatic/微波葱姜黑鳕鱼.md) -- [香煎翘嘴鱼](./dishes/aquatic/香煎翘嘴鱼/香煎翘嘴鱼.md) -- [小龙虾](./dishes/aquatic/小龙虾/小龙虾.md) -- [油焖大虾](./dishes/aquatic/油焖大虾/油焖大虾.md) +- [白灼虾](dishes/aquatic/白灼虾/白灼虾.md) +- [鳊鱼炖豆腐](dishes/aquatic/鳊鱼炖豆腐/鳊鱼炖豆腐.md) +- [蛏抱蛋](dishes/aquatic/蛏抱蛋/蛏抱蛋.md) +- [葱烧海参](dishes/aquatic/葱烧海参/葱烧海参.md) +- [葱油桂鱼](dishes/aquatic/葱油桂鱼/葱油桂鱼.md) +- [干煎阿根廷红虾](dishes/aquatic/干煎阿根廷红虾/干煎阿根廷红虾.md) +- [红烧鲤鱼](dishes/aquatic/红烧鲤鱼.md) +- [红烧鱼](dishes/aquatic/红烧鱼.md) +- [红烧鱼头](dishes/aquatic/红烧鱼头.md) +- [黄油煎虾](dishes/aquatic/黄油煎虾/黄油煎虾.md) +- [烤鱼](dishes/aquatic/混合烤鱼/烤鱼.md) +- [芥末黄油罗氏虾](dishes/aquatic/芥末黄油罗氏虾/芥末黄油罗氏虾.md) +- [芥末黄油罗氏虾](dishes/aquatic/芥末黄油罗氏虾.md) +- [咖喱炒蟹](dishes/aquatic/咖喱炒蟹.md) +- [鲤鱼炖白菜](dishes/aquatic/鲤鱼炖白菜/鲤鱼炖白菜.md) +- [清蒸鲈鱼](dishes/aquatic/清蒸鲈鱼/清蒸鲈鱼.md) +- [清蒸生蚝](dishes/aquatic/清蒸生蚝.md) +- [水煮鱼](dishes/aquatic/水煮鱼.md) +- [蒜蓉虾](dishes/aquatic/蒜蓉虾/蒜蓉虾.md) +- [糖醋鲤鱼](dishes/aquatic/糖醋鲤鱼/糖醋鲤鱼.md) +- [微波葱姜黑鳕鱼](dishes/aquatic/微波葱姜黑鳕鱼.md) +- [香煎翘嘴鱼](dishes/aquatic/香煎翘嘴鱼/香煎翘嘴鱼.md) +- [小龙虾](dishes/aquatic/小龙虾/小龙虾.md) +- [油焖大虾](dishes/aquatic/油焖大虾/油焖大虾.md) ### 早餐 -- [茶叶蛋](./dishes/breakfast/茶叶蛋.md) -- [蛋煎糍粑](./dishes/breakfast/蛋煎糍粑.md) -- [桂圆红枣粥](./dishes/breakfast/桂圆红枣粥.md) -- [鸡蛋三明治](./dishes/breakfast/鸡蛋三明治.md) -- [煎饺](./dishes/breakfast/煎饺.md) -- [金枪鱼酱三明治](./dishes/breakfast/金枪鱼酱三明治.md) -- [空气炸锅面包片](./dishes/breakfast/空气炸锅面包片.md) -- [美式炒蛋](./dishes/breakfast/美式炒蛋.md) -- [牛奶燕麦](./dishes/breakfast/牛奶燕麦.md) -- [水煮玉米](./dishes/breakfast/水煮玉米.md) -- [苏格兰蛋](./dishes/breakfast/苏格兰蛋/苏格兰蛋.md) -- [太阳蛋](./dishes/breakfast/太阳蛋.md) -- [溏心蛋](./dishes/breakfast/溏心蛋.md) -- [吐司果酱](./dishes/breakfast/吐司果酱.md) -- [微波炉蛋糕](./dishes/breakfast/微波炉蛋糕.md) -- [微波炉荷包蛋](./dishes/breakfast/微波炉荷包蛋.md) -- [燕麦鸡蛋饼](./dishes/breakfast/燕麦鸡蛋饼.md) -- [蒸花卷](./dishes/breakfast/蒸花卷.md) -- [蒸水蛋](./dishes/breakfast/蒸水蛋.md) +- [茶叶蛋](dishes/breakfast/茶叶蛋.md) +- [蛋煎糍粑](dishes/breakfast/蛋煎糍粑.md) +- [桂圆红枣粥](dishes/breakfast/桂圆红枣粥.md) +- [鸡蛋三明治](dishes/breakfast/鸡蛋三明治.md) +- [煎饺](dishes/breakfast/煎饺.md) +- [金枪鱼酱三明治](dishes/breakfast/金枪鱼酱三明治.md) +- [空气炸锅面包片](dishes/breakfast/空气炸锅面包片.md) +- [美式炒蛋](dishes/breakfast/美式炒蛋.md) +- [牛奶燕麦](dishes/breakfast/牛奶燕麦.md) +- [水煮玉米](dishes/breakfast/水煮玉米.md) +- [苏格兰蛋](dishes/breakfast/苏格兰蛋/苏格兰蛋.md) +- [太阳蛋](dishes/breakfast/太阳蛋.md) +- [溏心蛋](dishes/breakfast/溏心蛋.md) +- [吐司果酱](dishes/breakfast/吐司果酱.md) +- [微波炉蛋糕](dishes/breakfast/微波炉蛋糕.md) +- [微波炉荷包蛋](dishes/breakfast/微波炉荷包蛋.md) +- [燕麦鸡蛋饼](dishes/breakfast/燕麦鸡蛋饼.md) +- [蒸花卷](dishes/breakfast/蒸花卷.md) +- [蒸水蛋](dishes/breakfast/蒸水蛋.md) ### 主食 -- [炒方便面](./dishes/staple/炒方便面.md) -- [炒河粉](./dishes/staple/炒河粉.md) -- [炒凉粉](./dishes/staple/炒凉粉/炒凉粉.md) -- [炒馍](./dishes/staple/炒馍.md) -- [炒年糕](./dishes/staple/炒年糕.md) -- [炒意大利面](./dishes/staple/炒意大利面/炒意大利面.md) -- [蛋炒饭](./dishes/staple/蛋炒饭.md) -- [豆角焖面](./dishes/staple/豆角焖面/豆角焖面.md) -- [韩式拌饭](./dishes/staple/韩式拌饭/韩式拌饭.md) -- [河南蒸面条](./dishes/staple/河南蒸面条/河南蒸面条.md) -- [火腿饭团](./dishes/staple/火腿饭团/火腿饭团.md) -- [基础牛奶面包](./dishes/staple/基础牛奶面包/基础牛奶面包.md) -- [茄子肉煎饼](./dishes/staple/茄子肉煎饼/茄子肉煎饼.md) -- [鲣鱼海苔玉米饭](./dishes/staple/鲣鱼海苔玉米饭/鲣鱼海苔玉米饭.md) -- [酱拌荞麦面](./dishes/staple/酱拌荞麦面/酱拌荞麦面.md) -- [空气炸锅照烧鸡饭](./dishes/staple/空气炸锅照烧鸡饭/空气炸锅照烧鸡饭.md) -- [醪糟小汤圆](./dishes/staple/醪糟小汤圆.md) -- [老干妈拌面](./dishes/staple/老干妈拌面.md) -- [老友猪肉粉](./dishes/staple/老友猪肉粉/老友猪肉粉.md) -- [烙饼](./dishes/staple/烙饼/烙饼.md) -- [凉粉](./dishes/staple/凉粉/凉粉.md) -- [麻辣减脂荞麦面](./dishes/staple/麻辣减脂荞麦面.md) -- [麻油拌面](./dishes/staple/麻油拌面.md) -- [电饭煲蒸米饭](./dishes/staple/米饭/电饭煲蒸米饭.md) -- [煮锅蒸米饭](./dishes/staple/米饭/煮锅蒸米饭.md) -- [披萨饼皮](./dishes/staple/披萨饼皮/披萨饼皮.md) -- [热干面](./dishes/staple/热干面.md) -- [日式咖喱饭](./dishes/staple/日式咖喱饭/日式咖喱饭.md) -- [芝麻烧饼](./dishes/staple/烧饼/芝麻烧饼.md) -- [手工水饺](./dishes/staple/手工水饺.md) -- [酸辣蕨根粉](./dishes/staple/酸辣蕨根粉.md) -- [汤面](./dishes/staple/汤面.md) -- [微波炉腊肠煲仔饭](./dishes/staple/微波炉腊肠煲仔饭/微波炉腊肠煲仔饭.md) -- [西红柿鸡蛋挂面](./dishes/staple/西红柿鸡蛋挂面/西红柿鸡蛋挂面.md) -- [扬州炒饭](./dishes/staple/扬州炒饭/扬州炒饭.md) -- [炸酱面](./dishes/staple/炸酱面.md) -- [蒸卤面](./dishes/staple/蒸卤面.md) -- [中式馅饼](./dishes/staple/中式馅饼/中式馅饼.md) -- [煮泡面加蛋](./dishes/staple/煮泡面加蛋.md) +- [炒方便面](dishes/staple/炒方便面.md) +- [炒河粉](dishes/staple/炒河粉.md) +- [炒凉粉](dishes/staple/炒凉粉/炒凉粉.md) +- [炒馍](dishes/staple/炒馍.md) +- [炒年糕](dishes/staple/炒年糕.md) +- [炒意大利面](dishes/staple/炒意大利面/炒意大利面.md) +- [蛋炒饭](dishes/staple/蛋炒饭.md) +- [豆角焖面](dishes/staple/豆角焖面/豆角焖面.md) +- [韩式拌饭](dishes/staple/韩式拌饭/韩式拌饭.md) +- [河南蒸面条](dishes/staple/河南蒸面条/河南蒸面条.md) +- [火腿饭团](dishes/staple/火腿饭团/火腿饭团.md) +- [基础牛奶面包](dishes/staple/基础牛奶面包/基础牛奶面包.md) +- [茄子肉煎饼](dishes/staple/茄子肉煎饼/茄子肉煎饼.md) +- [鲣鱼海苔玉米饭](dishes/staple/鲣鱼海苔玉米饭/鲣鱼海苔玉米饭.md) +- [酱拌荞麦面](dishes/staple/酱拌荞麦面/酱拌荞麦面.md) +- [空气炸锅照烧鸡饭](dishes/staple/空气炸锅照烧鸡饭/空气炸锅照烧鸡饭.md) +- [醪糟小汤圆](dishes/staple/醪糟小汤圆.md) +- [老干妈拌面](dishes/staple/老干妈拌面.md) +- [老友猪肉粉](dishes/staple/老友猪肉粉/老友猪肉粉.md) +- [烙饼](dishes/staple/烙饼/烙饼.md) +- [凉粉](dishes/staple/凉粉/凉粉.md) +- [麻辣减脂荞麦面](dishes/staple/麻辣减脂荞麦面.md) +- [麻油拌面](dishes/staple/麻油拌面.md) +- [电饭煲蒸米饭](dishes/staple/米饭/电饭煲蒸米饭.md) +- [煮锅蒸米饭](dishes/staple/米饭/煮锅蒸米饭.md) +- [披萨饼皮](dishes/staple/披萨饼皮/披萨饼皮.md) +- [热干面](dishes/staple/热干面.md) +- [日式咖喱饭](dishes/staple/日式咖喱饭/日式咖喱饭.md) +- [芝麻烧饼](dishes/staple/烧饼/芝麻烧饼.md) +- [手工水饺](dishes/staple/手工水饺.md) +- [酸辣蕨根粉](dishes/staple/酸辣蕨根粉.md) +- [汤面](dishes/staple/汤面.md) +- [微波炉腊肠煲仔饭](dishes/staple/微波炉腊肠煲仔饭/微波炉腊肠煲仔饭.md) +- [西红柿鸡蛋挂面](dishes/staple/西红柿鸡蛋挂面/西红柿鸡蛋挂面.md) +- [扬州炒饭](dishes/staple/扬州炒饭/扬州炒饭.md) +- [炸酱面](dishes/staple/炸酱面.md) +- [蒸卤面](dishes/staple/蒸卤面.md) +- [中式馅饼](dishes/staple/中式馅饼/中式馅饼.md) +- [煮泡面加蛋](dishes/staple/煮泡面加蛋.md) ### 半成品加工 -- [半成品意面](./dishes/semi-finished/半成品意面.md) -- [空气炸锅鸡翅中](./dishes/semi-finished/空气炸锅鸡翅中/空气炸锅鸡翅中.md) -- [空气炸锅羊排](./dishes/semi-finished/空气炸锅羊排/空气炸锅羊排.md) -- [懒人蛋挞](./dishes/semi-finished/懒人蛋挞/懒人蛋挞.md) -- [凉皮](./dishes/semi-finished/凉皮.md) -- [牛油火锅底料](./dishes/semi-finished/牛油火锅底料.md) -- [速冻馄饨](./dishes/semi-finished/速冻馄饨.md) -- [速冻水饺](./dishes/semi-finished/速冻水饺.md) -- [速冻汤圆](./dishes/semi-finished/速冻汤圆/速冻汤圆.md) -- [炸薯条](./dishes/semi-finished/炸薯条/炸薯条.md) +- [半成品意面](dishes/semi-finished/半成品意面.md) +- [空气炸锅鸡翅中](dishes/semi-finished/空气炸锅鸡翅中/空气炸锅鸡翅中.md) +- [空气炸锅羊排](dishes/semi-finished/空气炸锅羊排/空气炸锅羊排.md) +- [懒人蛋挞](dishes/semi-finished/懒人蛋挞/懒人蛋挞.md) +- [凉皮](dishes/semi-finished/凉皮.md) +- [牛油火锅底料](dishes/semi-finished/牛油火锅底料.md) +- [速冻馄饨](dishes/semi-finished/速冻馄饨.md) +- [速冻水饺](dishes/semi-finished/速冻水饺.md) +- [速冻汤圆](dishes/semi-finished/速冻汤圆/速冻汤圆.md) +- [炸薯条](dishes/semi-finished/炸薯条/炸薯条.md) ### 汤与粥 -- [昂刺鱼豆腐汤](./dishes/soup/昂刺鱼豆腐汤/昂刺鱼豆腐汤.md) -- [陈皮排骨汤](./dishes/soup/陈皮排骨汤/陈皮排骨汤.md) -- [陈皮排骨汤](./dishes/soup/陈皮排骨汤.md) -- [番茄牛肉蛋花汤](./dishes/soup/番茄牛肉蛋花汤.md) -- [勾芡香菇汤](./dishes/soup/勾芡香菇汤/勾芡香菇汤.md) -- [金针菇汤](./dishes/soup/金针菇汤.md) -- [菌菇炖乳鸽](./dishes/soup/菌菇炖乳鸽/菌菇炖乳鸽.md) -- [罗宋汤](./dishes/soup/罗宋汤.md) -- [米粥](./dishes/soup/米粥.md) -- [排骨苦瓜汤](./dishes/soup/排骨苦瓜汤/排骨苦瓜汤.md) -- [皮蛋瘦肉粥](./dishes/soup/皮蛋瘦肉粥.md) -- [生汆丸子汤](./dishes/soup/生汆丸子汤.md) -- [西红柿鸡蛋汤](./dishes/soup/西红柿鸡蛋汤.md) -- [小米粥](./dishes/soup/小米粥.md) -- [银耳莲子粥](./dishes/soup/银耳莲子粥/银耳莲子粥.md) -- [玉米排骨汤](./dishes/soup/玉米排骨汤/玉米排骨汤.md) -- [紫菜蛋花汤](./dishes/soup/紫菜蛋花汤.md) +- [昂刺鱼豆腐汤](dishes/soup/昂刺鱼豆腐汤/昂刺鱼豆腐汤.md) +- [陈皮排骨汤](dishes/soup/陈皮排骨汤/陈皮排骨汤.md) +- [陈皮排骨汤](dishes/soup/陈皮排骨汤.md) +- [番茄牛肉蛋花汤](dishes/soup/番茄牛肉蛋花汤.md) +- [勾芡香菇汤](dishes/soup/勾芡香菇汤/勾芡香菇汤.md) +- [金针菇汤](dishes/soup/金针菇汤.md) +- [菌菇炖乳鸽](dishes/soup/菌菇炖乳鸽/菌菇炖乳鸽.md) +- [罗宋汤](dishes/soup/罗宋汤.md) +- [米粥](dishes/soup/米粥.md) +- [排骨苦瓜汤](dishes/soup/排骨苦瓜汤/排骨苦瓜汤.md) +- [皮蛋瘦肉粥](dishes/soup/皮蛋瘦肉粥.md) +- [生汆丸子汤](dishes/soup/生汆丸子汤.md) +- [西红柿鸡蛋汤](dishes/soup/西红柿鸡蛋汤.md) +- [小米粥](dishes/soup/小米粥.md) +- [银耳莲子粥](dishes/soup/银耳莲子粥/银耳莲子粥.md) +- [玉米排骨汤](dishes/soup/玉米排骨汤/玉米排骨汤.md) +- [紫菜蛋花汤](dishes/soup/紫菜蛋花汤.md) ### 饮料 -- [耙耙柑茶](./dishes/drink/耙耙柑茶/耙耙柑茶.md) -- [百香果橙子特调](./dishes/drink/百香果橙子特调/百香果橙子特调.md) -- [冰粉](./dishes/drink/冰粉/冰粉.md) -- [菠萝咖啡特调](./dishes/drink/菠萝咖啡特调/菠萝咖啡特调.md) -- [金菲士](./dishes/drink/金菲士/金菲士.md) -- [金汤力](./dishes/drink/金汤力/金汤力.md) -- [可乐桶](./dishes/drink/可乐桶.md) -- [奶茶](./dishes/drink/奶茶.md) -- [奇异果菠菜特调](./dishes/drink/奇异果菠菜特调/奇异果菠菜特调.md) -- [砂糖椰子冰沙](./dishes/drink/砂糖椰子冰沙/砂糖椰子冰沙.md) -- [酸梅汤](./dishes/drink/酸梅汤/酸梅汤.md) -- [酸梅汤(半成品加工)](./dishes/drink/酸梅汤(半成品加工).md) -- [泰国手标红茶](./dishes/drink/泰国手标红茶/泰国手标红茶.md) -- [杨枝甘露](./dishes/drink/杨枝甘露.md) -- [长岛冰茶](./dishes/drink/长岛冰茶.md) -- [B52轰炸机](./dishes/drink/B52轰炸机.md) -- [Mojito莫吉托](./dishes/drink/Mojito莫吉托.md) +- [耙耙柑茶](dishes/drink/耙耙柑茶/耙耙柑茶.md) +- [百香果橙子特调](dishes/drink/百香果橙子特调/百香果橙子特调.md) +- [冰粉](dishes/drink/冰粉/冰粉.md) +- [菠萝咖啡特调](dishes/drink/菠萝咖啡特调/菠萝咖啡特调.md) +- [冬瓜茶](dishes/drink/冬瓜茶.md) +- [金菲士](dishes/drink/金菲士/金菲士.md) +- [金汤力](dishes/drink/金汤力/金汤力.md) +- [可乐桶](dishes/drink/可乐桶.md) +- [奶茶](dishes/drink/奶茶.md) +- [奇异果菠菜特调](dishes/drink/奇异果菠菜特调/奇异果菠菜特调.md) +- [砂糖椰子冰沙](dishes/drink/砂糖椰子冰沙/砂糖椰子冰沙.md) +- [酸梅汤](dishes/drink/酸梅汤/酸梅汤.md) +- [酸梅汤(半成品加工)](dishes/drink/酸梅汤(半成品加工).md) +- [泰国手标红茶](dishes/drink/泰国手标红茶/泰国手标红茶.md) +- [杨枝甘露](dishes/drink/杨枝甘露.md) +- [长岛冰茶](dishes/drink/长岛冰茶.md) +- [B52轰炸机](dishes/drink/B52轰炸机.md) +- [Mojito莫吉托](dishes/drink/Mojito莫吉托.md) ### 酱料和其它材料 -- [草莓酱](./dishes/condiment/草莓酱/草莓酱.md) -- [葱油](./dishes/condiment/葱油.md) -- [蒜香酱油](./dishes/condiment/蒜香酱油.md) -- [糖醋汁](./dishes/condiment/糖醋汁.md) -- [糖色](./dishes/condiment/糖色.md) -- [油泼辣子](./dishes/condiment/油泼辣子/油泼辣子.md) -- [油酥](./dishes/condiment/油酥.md) -- [炸串酱料](./dishes/condiment/炸串酱料.md) -- [蔗糖糖浆](./dishes/condiment/蔗糖糖浆/蔗糖糖浆.md) +- [草莓酱](dishes/condiment/草莓酱/草莓酱.md) +- [葱油](dishes/condiment/葱油.md) +- [蒜香酱油](dishes/condiment/蒜香酱油.md) +- [糖醋汁](dishes/condiment/糖醋汁.md) +- [糖色](dishes/condiment/糖色.md) +- [油泼辣子](dishes/condiment/油泼辣子/油泼辣子.md) +- [油酥](dishes/condiment/油酥.md) +- [炸串酱料](dishes/condiment/炸串酱料.md) +- [蔗糖糖浆](dishes/condiment/蔗糖糖浆/蔗糖糖浆.md) ### 甜品 -- [奥利奥冰淇淋](./dishes/dessert/奥利奥冰淇淋/奥利奥冰淇淋.md) -- [草莓冰淇淋](./dishes/dessert/草莓冰淇淋/草莓冰淇淋.md) -- [反沙芋头](./dishes/dessert/反沙芋头/反沙芋头.md) -- [咖啡椰奶冻](./dishes/dessert/咖啡椰奶冻/咖啡椰奶冻.md) -- [烤蛋挞](./dishes/dessert/烤蛋挞/烤蛋挞.md) -- [玛格丽特饼干](./dishes/dessert/玛格丽特饼干/玛格丽特饼干.md) -- [魔芋蛋糕](./dishes/dessert/魔芋蛋糕/魔芋蛋糕.md) -- [戚风蛋糕](./dishes/dessert/戚风蛋糕/戚风蛋糕.md) -- [酸奶意式奶冻](./dishes/dessert/酸奶意式奶冻/酸奶意式奶冻.md) -- [提拉米苏](./dishes/dessert/提拉米苏/提拉米苏.md) -- [雪花酥](./dishes/dessert/雪花酥/雪花酥.md) -- [英式司康](./dishes/dessert/英式司康/英式司康.md) -- [芋泥雪媚娘](./dishes/dessert/芋泥雪媚娘/芋泥雪媚娘.md) +- [奥利奥冰淇淋](dishes/dessert/奥利奥冰淇淋/奥利奥冰淇淋.md) +- [草莓冰淇淋](dishes/dessert/草莓冰淇淋/草莓冰淇淋.md) +- [反沙芋头](dishes/dessert/反沙芋头/反沙芋头.md) +- [咖啡椰奶冻](dishes/dessert/咖啡椰奶冻/咖啡椰奶冻.md) +- [烤蛋挞](dishes/dessert/烤蛋挞/烤蛋挞.md) +- [玛格丽特饼干](dishes/dessert/玛格丽特饼干/玛格丽特饼干.md) +- [魔芋蛋糕](dishes/dessert/魔芋蛋糕/魔芋蛋糕.md) +- [戚风蛋糕](dishes/dessert/戚风蛋糕/戚风蛋糕.md) +- [酸奶意式奶冻](dishes/dessert/酸奶意式奶冻/酸奶意式奶冻.md) +- [提拉米苏](dishes/dessert/提拉米苏/提拉米苏.md) +- [雪花酥](dishes/dessert/雪花酥/雪花酥.md) +- [英式司康](dishes/dessert/英式司康/英式司康.md) +- [芋泥雪媚娘](dishes/dessert/芋泥雪媚娘/芋泥雪媚娘.md) ## 进阶知识学习 如果你已经做了许多上面的菜,对于厨艺已经入门,并且想学习更加高深的烹饪技巧,请继续阅读下面的内容: -- [辅料技巧](./tips/advanced/辅料技巧.md) -- [高级专业术语](./tips/advanced/高级专业术语.md) -- [油温判断技巧](./tips/advanced/油温判断技巧.md) +- [辅料技巧](tips/advanced/辅料技巧.md) +- [高级专业术语](tips/advanced/高级专业术语.md) +- [油温判断技巧](tips/advanced/油温判断技巧.md) diff --git a/build.sh b/build.sh deleted file mode 100755 index 346244789a..0000000000 --- a/build.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -set -e - -# Requires: Ruby, node, python - -tput setaf 2; echo "Cleaning up..."; tput sgr0 -rm ./node_modules -rf - -tput setaf 2; echo "Installing markdown lint"; tput sgr0 -gem install mdl || sudo gem install mdl - -tput setaf 2; echo "Generating new readme and mkdocs"; tput sgr0 -node ./.github/readme-generate.js - -tput setaf 2; echo "Running markdown lint to check issues."; tput sgr0 -mdl ./dishes ./tips -r ~MD036,~MD024,~MD004,~MD029,~MD013,~MD007 - -tput setaf 2; echo "Installing python requirements..."; tput sgr0 -pip install -r requirements.txt --break-system-packages - -tput setaf 2; echo "Builidng mkdocs and checking links..."; tput sgr0 -mkdocs build --strict - -tput setaf 2; echo "Installing textlint"; tput sgr0 -npm install - -tput setaf 2; echo "Running textlint..."; tput sgr0 -./node_modules/.bin/textlint . --fix - -tput setaf 2; echo "Manual rule linting..."; tput sgr0 -node .github/manual_lint.js diff --git "a/dishes/aquatic/\345\222\226\345\226\261\347\202\222\350\237\271.md" "b/dishes/aquatic/\345\222\226\345\226\261\347\202\222\350\237\271.md" index 3a7b1b6738..3b33118a70 100644 --- "a/dishes/aquatic/\345\222\226\345\226\261\347\202\222\350\237\271.md" +++ "b/dishes/aquatic/\345\222\226\345\226\261\347\202\222\350\237\271.md" @@ -46,4 +46,4 @@ - 做法参考:[十几年澳门厨房佬教学挂汁的咖喱蟹怎么做](https://www.bilibili.com/video/BV1Nq4y1W7K9) -如果您遵循本指南的制作流程而发现有问题或可以改进的流程,请提出 Issue 或 Pull request 。\r +如果您遵循本指南的制作流程而发现有问题或可以改进的流程,请提出 Issue 或 Pull request 。 diff --git "a/dishes/drink/\345\206\254\347\223\234\350\214\266.md" "b/dishes/drink/\345\206\254\347\223\234\350\214\266.md" new file mode 100644 index 0000000000..6a33cef6d0 --- /dev/null +++ "b/dishes/drink/\345\206\254\347\223\234\350\214\266.md" @@ -0,0 +1,38 @@ +# 冬瓜茶的做法 + +冬瓜茶是一种清爽的传统饮料,一般初学者需要 4~5 小时完成。 + +预估烹饪难度:★★ + +## 必备原料和工具 + +- 冬瓜 +- 冰糖 +- 保鲜膜 +- 过滤网 +- 大锅 + +## 计算 + +每次制作前需要确定计划做几份。一份正好够 4-5 个人饮用。 + +每份: + +- 冬瓜 1000g +- 冰糖 300g + +## 操作 + +1. **准备冬瓜**:将冬瓜去皮,去籽,切成小块(每块不超过 4cm)。 +2. **加入冰糖**:冬瓜加入冰糖,搅拌均匀,盖上保鲜膜放冰箱冷藏 2 小时以上。 +3. **煮冬瓜**: 此时冬瓜出了很多水, 倒入锅中 大火煮开,然后转中小火慢慢熬制 1~2 个小时,中途多搅拌防止糊锅。 +4. **过滤冬瓜茶**:使用过滤网将煮好的冬瓜茶液过滤,取出冬瓜块,只保留茶液。 +5. **冷却**:将冬瓜茶液放凉后,倒入干净的容器中,放入冰箱冷藏即可。 +6. **享用**: 熬好的冬瓜茶液是浓缩汁,根据个人喜好添加水或其他饮品,冷热皆宜。 + +## 附加内容 + +- **口感调整**:冰糖的用量可以调整,以达到个人喜好的甜度。 +- **保存方法**:冷藏保存,建议 1 周内喝完。 + +如果您遵循本指南的制作流程而发现有问题或可以改进的流程,请提出 Issue 或 Pull request 。 diff --git "a/dishes/meat_dish/\345\260\217\351\205\245\350\202\211.md" "b/dishes/meat_dish/\345\260\217\351\205\245\350\202\211.md" new file mode 100644 index 0000000000..7338f5443b --- /dev/null +++ "b/dishes/meat_dish/\345\260\217\351\205\245\350\202\211.md" @@ -0,0 +1,94 @@ +# 小酥肉的做法 + +预估烹饪难度:★★★ + +## 必备原料和工具 + +- 去皮猪肉(根据喜好选择肥瘦) +- 植物油 +- 老姜 +- 小葱 +- 料酒 +- 盐 +- 十三香 +- 胡椒粉 +- 味精 +- 鸡精 +- 花椒碎 +- 花椒粒 +- 生抽 +- 鸡蛋 +- 面粉 +- 红薯淀粉 + +## 计算 + +### 主料 + +- 猪肉 500 克 + +### 辅料 + +- 鸡蛋 2 个 +- 面粉 30 克 +- 红薯淀粉 120 克 + +### 葱姜水 + +- 老姜 20 克 +- 小葱 15 克 +- 料酒 15 克 +- 清水 80 克 + +### 腌制调料 + +- 盐 4 克 +- 十三香 2 克 +- 胡椒粉 3 克 +- 味精 5 克 +- 鸡精 5 克 +- 花椒碎 3 克 +- 花椒粒 3 克 +- 生抽 8 克 + +## 操作 + +### 葱姜水制作 + +- 老姜切丝,小葱不用切。 +- 根据计算公式倒入料酒、清水。 +- 用手捏揉 5 分钟,使姜葱的味道充分溶解在水中。 + +### 猪肉处理 + +- 将猪肉去皮洗净 +- 切成长度 8~10 厘米,厚度 1.5 厘米的肉条。 +- 根据上面的计算公式加入盐,十三香、胡椒粉、味精、鸡精、花椒碎、花椒粒、生抽。 +- 倒入前面制作好的葱姜水 +- 抓匀并且充分揉制 10 分钟,直至肉吸收所有水分并且变得粘手。 +- 封上保鲜膜放冷藏室静置 30 分钟。 + +### 猪肉裹粉 + +- 将面粉、红薯粉倒入腌制好的肉中,加入鸡蛋清。 +- 充分揉制 15 分钟。 + +### 初炸定形状 + +- 锅中倒入植物油,根据锅大小控制油量,油面高度 3 厘米以上° +- 大火将温加热至 150° 后,转小火保持温度。 +- 将裹好粉的肉条用筷子夹入油锅中,捋成自己喜欢的形状,炸 3~5 分钟定型。目测颜色微黄,用锅铲翻动感受倒略微有些硬了就可以。具体时间受肉块大小、油温、裹粉程度影响。 +- 捞出沥油。 + +tips: 如果对时间没把握可以稍微多炸一下,否则肉会带一点生味。 没有经验可以一条一条的下锅,防止粘连。 + +### 复炸出成品 + +- 将油温升至 180° 放入初炸好的肉条,炸至金黄色即可捞出。 + +## 附加内容 + +- 裹粉一定要吧红薯粉揉散,不要有干的颗粒裹在里面,否则会炸!!! +- 如果肉太多吃不完,可以只炸一遍然后放冰箱。后面再吃的时候拿出来复炸,口感基本没影响。 + +如果您遵循本指南的制作流程而发现有问题或可以改进的流程,请提出 Issue 或 Pull request 。 diff --git "a/dishes/meat_dish/\345\260\226\345\217\253\347\211\233\350\233\231/\345\260\226\345\217\253\347\211\233\350\233\231.jpg" "b/dishes/meat_dish/\345\260\226\345\217\253\347\211\233\350\233\231/\345\260\226\345\217\253\347\211\233\350\233\231.jpg" index d20b5f411b..190d097068 100644 Binary files "a/dishes/meat_dish/\345\260\226\345\217\253\347\211\233\350\233\231/\345\260\226\345\217\253\347\211\233\350\233\231.jpg" and "b/dishes/meat_dish/\345\260\226\345\217\253\347\211\233\350\233\231/\345\260\226\345\217\253\347\211\233\350\233\231.jpg" differ diff --git "a/dishes/meat_dish/\350\200\201\345\246\210\350\271\204\350\212\261/\350\200\201\345\246\210\350\271\204\350\212\261.md" "b/dishes/meat_dish/\350\200\201\345\246\210\350\271\204\350\212\261/\350\200\201\345\246\210\350\271\204\350\212\261.md" index eb73708c6a..b776daa05d 100644 --- "a/dishes/meat_dish/\350\200\201\345\246\210\350\271\204\350\212\261/\350\200\201\345\246\210\350\271\204\350\212\261.md" +++ "b/dishes/meat_dish/\350\200\201\345\246\210\350\271\204\350\212\261/\350\200\201\345\246\210\350\271\204\350\212\261.md" @@ -1,6 +1,7 @@ # 老妈蹄花的做法 -![](./result3.jpg) +![result 3](./result3.jpg) + 红烧猪蹄营养丰富,口感细腻,软烂脱骨,配上酸辣汁简直太香! 预估烹饪难度:★★★★ @@ -47,11 +48,11 @@ - 冷水锅中加入猪蹄、大葱段、姜片、料酒,焯水十分钟,撇去浮沫,捞出洗干净备用 - 高压锅中放入猪蹄、当归、白芷、白胡椒粉、姜片,上汽后压三十分钟,放入白芸豆,再压十分钟,这个时候如果汤底是奶白色,那么恭喜是正确的(如果中途需要加水,只能加热水) -![](./result1.jpg) +![result1](./result1.jpg) - 揭盖后加入盐、鸡精、葱花调味 - 调制灵魂汁子:放入葱、蒜、小米椒,白胡椒粉、生抽、香醋、油泼辣子、花椒油、猪蹄原汤 - ![](./result2.jpg) + ![result2](./result2.jpg) - 灵魂汁子,浇给 ## 附加内容 diff --git "a/dishes/meat_dish/\350\245\277\347\272\242\346\237\277\347\211\233\350\205\251/\350\245\277\347\272\242\346\237\277\347\211\233\350\205\251.md" "b/dishes/meat_dish/\350\245\277\347\272\242\346\237\277\347\211\233\350\205\251/\350\245\277\347\272\242\346\237\277\347\211\233\350\205\251.md" index 084e7e949a..f7d53537f3 100644 --- "a/dishes/meat_dish/\350\245\277\347\272\242\346\237\277\347\211\233\350\205\251/\350\245\277\347\272\242\346\237\277\347\211\233\350\205\251.md" +++ "b/dishes/meat_dish/\350\245\277\347\272\242\346\237\277\347\211\233\350\205\251/\350\245\277\347\272\242\346\237\277\347\211\233\350\205\251.md" @@ -28,7 +28,7 @@ - 另起锅 2L 水烧开,加入 2cm 两段葱段、两片姜片、八角、料/黄酒 5-10ml,放入焯好的牛肉,盖盖炖制(砂锅 1 小时,高压锅炖肉模式 45 分钟),筷子能轻松插透就证明炖好了 - 西红柿去皮:西红柿头部滑十字至腰线,筷子/刀叉从果蒂捅入,煤气灶小火,一边转动一边烤,及时拿下来查看,起皮后撕下来,切块。越小越好 - 撕皮小心烫,去皮后的西红柿特别滑,慢切注意安全 -- 起锅烧油,油温 7 成热,姜各 10g,番茄下锅,炒透炒出番茄红色,加入煮好的牛腩和原汤,原汤刚刚没过牛肉即可 +- 起锅烧油,油温 7 成热,葱、姜各 10g,番茄下锅,炒透炒出番茄红色,加入煮好的牛腩和原汤,原汤刚刚没过牛肉即可 - 根据个人口味放入盐、糖、生抽调味盖盖 - 开锅后大火继续炒制 3-5 分钟 - 待番茄汁呈中等粘稠程度后关火,散入葱花,盛盘 diff --git "a/dishes/semi-finished/\347\211\233\346\262\271\347\201\253\351\224\205\345\272\225\346\226\231.md" "b/dishes/semi-finished/\347\211\233\346\262\271\347\201\253\351\224\205\345\272\225\346\226\231.md" index e5efd11e6a..a792245f06 100644 --- "a/dishes/semi-finished/\347\211\233\346\262\271\347\201\253\351\224\205\345\272\225\346\226\231.md" +++ "b/dishes/semi-finished/\347\211\233\346\262\271\347\201\253\351\224\205\345\272\225\346\226\231.md" @@ -26,7 +26,7 @@ - 豆鼓(剁碎)(永川) 10 g - 豆母子 140 g - 红花椒 150 g -- 老油 ? [颗粒香料 100 g](#颗粒香料) : [整形香料 150 g](#整形香料) 【三元运算符】 +- 老油 ? 颗粒香料 100 g : 整形香料 150 g - 麦芽粉(肉香) 12.5 g - 白酒(52%VOL) 150 ml - 老油 ?? 干辣椒面 15 g @@ -50,11 +50,11 @@ - 白蔻 10 g - 香叶 10 g -#### **颗粒香料** +#### 颗粒香料 以上配料放入粉碎机打碎至大约 4 mm 颗粒备用。 -#### **整形香料** +#### 整形香料 以上配料洗净备用。 @@ -64,7 +64,7 @@ ## 计算 -- 每份[原料](#原料)可制作 7.5 kg 火锅底料/火锅老油 +- 每份原料可制作 7.5 kg 火锅底料/火锅老油 ## 操作 diff --git "a/dishes/staple/\345\237\272\347\241\200\347\211\233\345\245\266\351\235\242\345\214\205/\345\237\272\347\241\200\347\211\233\345\245\266\351\235\242\345\214\205.md" "b/dishes/staple/\345\237\272\347\241\200\347\211\233\345\245\266\351\235\242\345\214\205/\345\237\272\347\241\200\347\211\233\345\245\266\351\235\242\345\214\205.md" index 539c4e87d8..f1bfb40df0 100644 --- "a/dishes/staple/\345\237\272\347\241\200\347\211\233\345\245\266\351\235\242\345\214\205/\345\237\272\347\241\200\347\211\233\345\245\266\351\235\242\345\214\205.md" +++ "b/dishes/staple/\345\237\272\347\241\200\347\211\233\345\245\266\351\235\242\345\214\205/\345\237\272\347\241\200\347\211\233\345\245\266\351\235\242\345\214\205.md" @@ -12,7 +12,7 @@ ## 必备原料和工具 -### 所需原料如下: +### 所需原料 - 高筋或中筋面粉 *(尽量使用高筋面粉,但**避免使用低筋面粉**。所有无特殊说明的“万能面粉”均为中筋面粉)* - 鸡蛋 *(不过分要求大小及重量)* @@ -24,7 +24,7 @@ - 谷朊粉(可选) - 香草精(可选) -### 所必要的工具有: +### 所必要的工具 - 烤箱 *(**不要使用不带控温的烤箱**)* - 量杯 @@ -32,7 +32,8 @@ - 擀面杖 - 硅油纸或模具 ->### 可选材料、工具及材料、工具的介绍 +### 可选材料、工具及材料、工具的介绍 + >![用具1](./2-1设备简介1.jpg) >![用具2](./2-2设备简介2.jpg) >烘焙是独立的美食制作门类,因此与日常烹饪的工具有很大差别。下面介绍了常用的工具。 @@ -84,7 +85,7 @@ cup 是常用的烘焙计量单位,因为可以在体积与重量之间轻松 ![发酵前酵头的理想状态](./4-1酵头1.jpg) -1. 首先,将酵母和** 30℃ 的温水**用刮刀或厨具混合均匀,静置 5 分钟。之后与面粉混合,搅拌均匀。此时的酵头应该是**特别粘稠**的面糊。 +1. 首先,将酵母和 ***30℃ 的温水*** 用刮刀或厨具混合均匀,静置 5 分钟。之后与面粉混合,搅拌均匀。此时的酵头应该是**特别粘稠**的面糊。 ![用布盖上酵头](./4-2酵头2.jpg) diff --git "a/dishes/staple/\347\203\231\351\245\274/\347\203\231\351\245\274.md" "b/dishes/staple/\347\203\231\351\245\274/\347\203\231\351\245\274.md" index 859a5d1c41..5544a88434 100644 --- "a/dishes/staple/\347\203\231\351\245\274/\347\203\231\351\245\274.md" +++ "b/dishes/staple/\347\203\231\351\245\274/\347\203\231\351\245\274.md" @@ -28,7 +28,7 @@ * 大火烙一分钟,打开盖子,将饼翻个面再烙一分钟 * 重复以上动作,完成饼的烙制 -![](./成品.jpg) +![成品](./成品.jpg) ## 附加内容 diff --git "a/dishes/template/\347\244\272\344\276\213\350\217\234/\347\244\272\344\276\213\350\217\234.md" "b/dishes/template/\347\244\272\344\276\213\350\217\234/\347\244\272\344\276\213\350\217\234.md" index ff4049f7a2..09e9503133 100644 --- "a/dishes/template/\347\244\272\344\276\213\350\217\234/\347\244\272\344\276\213\350\217\234.md" +++ "b/dishes/template/\347\244\272\344\276\213\350\217\234/\347\244\272\344\276\213\350\217\234.md" @@ -14,9 +14,9 @@ 示例菜是一道简单易做的菜。富含 DHA 和蛋白质。一般初学者只需要 3 小时即可完成。还有美容效果哦~ diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index bc50a5ee1d..0000000000 --- a/mkdocs.yml +++ /dev/null @@ -1,396 +0,0 @@ -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: - font: false - 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.footer - - 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 - - 做菜之前: - - 厨房准备: ./tips/厨房准备.md - - 如何选择现在吃什么: ./tips/如何选择现在吃什么.md - - 高压力锅: ./tips/learn/高压力锅.md - - 去腥: ./tips/learn/去腥.md - - 食品安全: ./tips/learn/食品安全.md - - 微波炉: ./tips/learn/微波炉.md - - 学习焯水: ./tips/learn/学习焯水.md - - 学习炒与煎: ./tips/learn/学习炒与煎.md - - 学习凉拌: ./tips/learn/学习凉拌.md - - 学习腌: ./tips/learn/学习腌.md - - 学习蒸: ./tips/learn/学习蒸.md - - 学习煮: ./tips/learn/学习煮.md - - - 菜谱: - - 按种类: # 只有两层section以上才能出现navigation expansion https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-sections - - - 素菜: - - 拔丝土豆: ./dishes/vegetable_dish/拔丝土豆/拔丝土豆.md - - 白灼菜心: ./dishes/vegetable_dish/白灼菜心/白灼菜心.md - - 包菜炒鸡蛋粉丝: ./dishes/vegetable_dish/包菜炒鸡蛋粉丝/包菜炒鸡蛋粉丝.md - - 菠菜炒鸡蛋: ./dishes/vegetable_dish/菠菜炒鸡蛋/菠菜炒鸡蛋.md - - 炒滑蛋: ./dishes/vegetable_dish/炒滑蛋/炒滑蛋.md - - 炒茄子: ./dishes/vegetable_dish/炒茄子.md - - 炒青菜: ./dishes/vegetable_dish/炒青菜.md - - 葱煎豆腐: ./dishes/vegetable_dish/葱煎豆腐.md - - 脆皮豆腐: ./dishes/vegetable_dish/脆皮豆腐.md - - 地三鲜: ./dishes/vegetable_dish/地三鲜.md - - 干锅花菜: ./dishes/vegetable_dish/干锅花菜/干锅花菜.md - - 蚝油三鲜菇: ./dishes/vegetable_dish/蚝油三鲜菇/蚝油三鲜菇.md - - 蚝油生菜: ./dishes/vegetable_dish/蚝油生菜.md - - 红烧冬瓜: ./dishes/vegetable_dish/红烧冬瓜/红烧冬瓜.md - - 红烧茄子: ./dishes/vegetable_dish/红烧茄子.md - - 虎皮青椒: ./dishes/vegetable_dish/虎皮青椒/虎皮青椒.md - - 话梅煮毛豆: ./dishes/vegetable_dish/话梅煮毛豆/话梅煮毛豆.md - - 鸡蛋羹: ./dishes/vegetable_dish/鸡蛋羹/鸡蛋羹.md - - 微波炉鸡蛋羹: ./dishes/vegetable_dish/鸡蛋羹/微波炉鸡蛋羹.md - - 蒸箱鸡蛋羹: ./dishes/vegetable_dish/鸡蛋羹/蒸箱鸡蛋羹.md - - 鸡蛋火腿炒黄瓜: ./dishes/vegetable_dish/鸡蛋火腿炒黄瓜.md - - 茄子炖土豆: ./dishes/vegetable_dish/茄子炖土豆.md - - 茭白炒肉: ./dishes/vegetable_dish/茭白炒肉/茭白炒肉.md - - 椒盐玉米: ./dishes/vegetable_dish/椒盐玉米/椒盐玉米.md - - 金针菇日本豆腐煲: ./dishes/vegetable_dish/金针菇日本豆腐煲.md - - 烤茄子: ./dishes/vegetable_dish/烤茄子/烤茄子.md - - 榄菜肉末四季豆: ./dishes/vegetable_dish/榄菜肉末四季豆/榄菜肉末四季豆.md - - 雷椒皮蛋: ./dishes/vegetable_dish/雷椒皮蛋.md - - 凉拌黄瓜: ./dishes/vegetable_dish/凉拌黄瓜.md - - 凉拌木耳: ./dishes/vegetable_dish/凉拌木耳/凉拌木耳.md - - 凉拌莴笋: ./dishes/vegetable_dish/凉拌莴笋/凉拌莴笋.md - - 凉拌油麦菜: ./dishes/vegetable_dish/凉拌油麦菜.md - - 蒲烧茄子: ./dishes/vegetable_dish/蒲烧茄子.md - - 芹菜拌茶树菇: ./dishes/vegetable_dish/芹菜拌茶树菇/芹菜拌茶树菇.md - - 陕北熬豆角: ./dishes/vegetable_dish/陕北熬豆角.md - - 上汤娃娃菜: ./dishes/vegetable_dish/上汤娃娃菜/上汤娃娃菜.md - - 手撕包菜: ./dishes/vegetable_dish/手撕包菜/手撕包菜.md - - 水油焖蔬菜: ./dishes/vegetable_dish/水油焖蔬菜.md - - 素炒豆角: ./dishes/vegetable_dish/素炒豆角.md - - 酸辣土豆丝: ./dishes/vegetable_dish/酸辣土豆丝.md - - 糖拌西红柿: ./dishes/vegetable_dish/糖拌西红柿/糖拌西红柿.md - - 莴笋叶煎饼: ./dishes/vegetable_dish/莴笋叶煎饼/莴笋叶煎饼.md - - 西红柿炒鸡蛋: ./dishes/vegetable_dish/西红柿炒鸡蛋.md - - 西红柿豆腐汤羹: ./dishes/vegetable_dish/西红柿豆腐汤羹/西红柿豆腐汤羹.md - - 西葫芦炒鸡蛋: ./dishes/vegetable_dish/西葫芦炒鸡蛋/西葫芦炒鸡蛋.md - - 小炒藕丁: ./dishes/vegetable_dish/小炒藕丁/小炒藕丁.md - - 洋葱炒鸡蛋: ./dishes/vegetable_dish/洋葱炒鸡蛋/洋葱炒鸡蛋.md - - - 荤菜: - - 白菜猪肉炖粉条: ./dishes/meat_dish/白菜猪肉炖粉条.md - - 带把肘子: ./dishes/meat_dish/带把肘子.md - - 冬瓜酿肉: ./dishes/meat_dish/冬瓜酿肉/冬瓜酿肉.md - - 番茄红酱: ./dishes/meat_dish/番茄红酱.md - - 干煸仔鸡: ./dishes/meat_dish/干煸仔鸡/干煸仔鸡.md - - 宫保鸡丁: ./dishes/meat_dish/宫保鸡丁/宫保鸡丁.md - - 咕噜肉: ./dishes/meat_dish/咕噜肉.md - - 荷兰豆炒腊肠: ./dishes/meat_dish/荷兰豆炒腊肠/荷兰豆炒腊肠.md - - 黑椒牛柳: ./dishes/meat_dish/黑椒牛柳/黑椒牛柳.md - - 简易红烧肉: ./dishes/meat_dish/红烧肉/简易红烧肉.md - - 南派红烧肉: ./dishes/meat_dish/红烧肉/南派红烧肉.md - - 红烧猪蹄: ./dishes/meat_dish/红烧猪蹄/红烧猪蹄.md - - 湖南家常红烧肉: ./dishes/meat_dish/湖南家常红烧肉/湖南家常红烧肉.md - - 黄瓜炒肉: ./dishes/meat_dish/黄瓜炒肉.md - - 黄焖鸡: ./dishes/meat_dish/黄焖鸡.md - - 徽派红烧肉: ./dishes/meat_dish/徽派红烧肉/徽派红烧肉.md - - 回锅肉: ./dishes/meat_dish/回锅肉/回锅肉.md - - 尖椒炒牛肉: ./dishes/meat_dish/尖椒炒牛肉.md - - 尖叫牛蛙: ./dishes/meat_dish/尖叫牛蛙/尖叫牛蛙.md - - 姜炒鸡: ./dishes/meat_dish/姜炒鸡/姜炒鸡.md - - 姜葱捞鸡: ./dishes/meat_dish/姜葱捞鸡/姜葱捞鸡.md - - 酱牛肉: ./dishes/meat_dish/酱牛肉/酱牛肉.md - - 酱排骨: ./dishes/meat_dish/酱排骨/酱排骨.md - - 椒盐排条: ./dishes/meat_dish/椒盐排条.md - - 咖喱肥牛: ./dishes/meat_dish/咖喱肥牛/咖喱肥牛.md - - 烤鸡翅: ./dishes/meat_dish/烤鸡翅.md - - 可乐鸡翅: ./dishes/meat_dish/可乐鸡翅.md - - 口水鸡: ./dishes/meat_dish/口水鸡/口水鸡.md - - 辣椒炒肉: ./dishes/meat_dish/辣椒炒肉.md - - 老妈蹄花: ./dishes/meat_dish/老妈蹄花/老妈蹄花.md - - 老式锅包肉: ./dishes/meat_dish/老式锅包肉/老式锅包肉.md - - 冷吃兔: ./dishes/meat_dish/冷吃兔.md - - 荔枝肉: ./dishes/meat_dish/荔枝肉/荔枝肉.md - - 凉拌鸡丝: ./dishes/meat_dish/凉拌鸡丝/凉拌鸡丝.md - - 萝卜炖羊排: ./dishes/meat_dish/萝卜炖羊排.md - - 麻辣香锅: ./dishes/meat_dish/麻辣香锅.md - - 麻婆豆腐: ./dishes/meat_dish/麻婆豆腐/麻婆豆腐.md - - 梅菜扣肉: ./dishes/meat_dish/梅菜扣肉/梅菜扣肉.md - - 奶酪培根通心粉: ./dishes/meat_dish/奶酪培根通心粉/奶酪培根通心粉.md - - 啤酒鸭: ./dishes/meat_dish/啤酒鸭/啤酒鸭.md - - 黔式腊肠娃娃菜: ./dishes/meat_dish/黔式腊肠娃娃菜/黔式腊肠娃娃菜.md - - 青椒土豆炒肉: ./dishes/meat_dish/青椒土豆炒肉/青椒土豆炒肉.md - - 肉饼炖蛋: ./dishes/meat_dish/肉饼炖蛋.md - - 杀猪菜: ./dishes/meat_dish/杀猪菜.md - - 山西过油肉: ./dishes/meat_dish/山西过油肉.md - - 商芝肉: ./dishes/meat_dish/商芝肉.md - - 瘦肉土豆片: ./dishes/meat_dish/瘦肉土豆片/瘦肉土豆片.md - - 水煮牛肉: ./dishes/meat_dish/水煮牛肉/水煮牛肉.md - - 水煮肉片: ./dishes/meat_dish/水煮肉片.md - - 蒜苔炒肉末: ./dishes/meat_dish/蒜苔炒肉末.md - - 台式卤肉饭: ./dishes/meat_dish/台式卤肉饭/台式卤肉饭.md - - 糖醋里脊: ./dishes/meat_dish/糖醋里脊.md - - 糖醋排骨: ./dishes/meat_dish/糖醋排骨/糖醋排骨.md - - 土豆炖排骨: ./dishes/meat_dish/土豆炖排骨/土豆炖排骨.md - - 无骨鸡爪: ./dishes/meat_dish/无骨鸡爪/无骨鸡爪.md - - 西红柿牛腩: ./dishes/meat_dish/西红柿牛腩/西红柿牛腩.md - - 西红柿土豆炖牛肉: ./dishes/meat_dish/西红柿土豆炖牛肉/西红柿土豆炖牛肉.md - - 乡村啤酒鸭: ./dishes/meat_dish/乡村啤酒鸭.md - - 香干芹菜炒肉: ./dishes/meat_dish/香干芹菜炒肉/香干芹菜炒肉.md - - 香干肉丝: ./dishes/meat_dish/香干肉丝.md - - 香菇滑鸡: ./dishes/meat_dish/香菇滑鸡/香菇滑鸡.md - - 香煎五花肉: ./dishes/meat_dish/香煎五花肉/香煎五花肉.md - - 香辣鸡爪煲: ./dishes/meat_dish/香辣鸡爪煲/香辣鸡爪煲.md - - 小炒黄牛肉: ./dishes/meat_dish/小炒黄牛肉/小炒黄牛肉.md - - 小炒鸡肝: ./dishes/meat_dish/小炒鸡肝/小炒鸡肝.md - - 小炒肉: ./dishes/meat_dish/小炒肉.md - - 新疆大盘鸡: ./dishes/meat_dish/新疆大盘鸡/新疆大盘鸡.md - - 血浆鸭: ./dishes/meat_dish/血浆鸭/血浆鸭.md - - 羊排焖面: ./dishes/meat_dish/羊排焖面/羊排焖面.md - - 洋葱炒猪肉: ./dishes/meat_dish/洋葱炒猪肉.md - - 意式烤鸡: ./dishes/meat_dish/意式烤鸡.md - - 鱼香茄子: ./dishes/meat_dish/鱼香茄子/鱼香茄子.md - - 鱼香肉丝: ./dishes/meat_dish/鱼香肉丝.md - - 枝竹羊腩煲: ./dishes/meat_dish/枝竹羊腩煲/枝竹羊腩煲.md - - 猪皮冻: ./dishes/meat_dish/猪皮冻/猪皮冻.md - - 猪肉烩酸菜: ./dishes/meat_dish/猪肉烩酸菜.md - - 柱候牛腩: ./dishes/meat_dish/柱候牛腩/柱候牛腩.md - - 孜然牛肉: ./dishes/meat_dish/孜然牛肉.md - - 醉排骨: ./dishes/meat_dish/醉排骨/醉排骨.md - - - 水产: - - 白灼虾: ./dishes/aquatic/白灼虾/白灼虾.md - - 鳊鱼炖豆腐: ./dishes/aquatic/鳊鱼炖豆腐/鳊鱼炖豆腐.md - - 蛏抱蛋: ./dishes/aquatic/蛏抱蛋/蛏抱蛋.md - - 葱烧海参: ./dishes/aquatic/葱烧海参/葱烧海参.md - - 葱油桂鱼: ./dishes/aquatic/葱油桂鱼/葱油桂鱼.md - - 干煎阿根廷红虾: ./dishes/aquatic/干煎阿根廷红虾/干煎阿根廷红虾.md - - 红烧鲤鱼: ./dishes/aquatic/红烧鲤鱼.md - - 红烧鱼: ./dishes/aquatic/红烧鱼.md - - 红烧鱼头: ./dishes/aquatic/红烧鱼头.md - - 黄油煎虾: ./dishes/aquatic/黄油煎虾/黄油煎虾.md - - 烤鱼: ./dishes/aquatic/混合烤鱼/烤鱼.md - - 芥末黄油罗氏虾: ./dishes/aquatic/芥末黄油罗氏虾/芥末黄油罗氏虾.md - - 芥末黄油罗氏虾: ./dishes/aquatic/芥末黄油罗氏虾.md - - 咖喱炒蟹: ./dishes/aquatic/咖喱炒蟹.md - - 鲤鱼炖白菜: ./dishes/aquatic/鲤鱼炖白菜/鲤鱼炖白菜.md - - 清蒸鲈鱼: ./dishes/aquatic/清蒸鲈鱼/清蒸鲈鱼.md - - 清蒸生蚝: ./dishes/aquatic/清蒸生蚝.md - - 水煮鱼: ./dishes/aquatic/水煮鱼.md - - 蒜蓉虾: ./dishes/aquatic/蒜蓉虾/蒜蓉虾.md - - 糖醋鲤鱼: ./dishes/aquatic/糖醋鲤鱼/糖醋鲤鱼.md - - 微波葱姜黑鳕鱼: ./dishes/aquatic/微波葱姜黑鳕鱼.md - - 香煎翘嘴鱼: ./dishes/aquatic/香煎翘嘴鱼/香煎翘嘴鱼.md - - 小龙虾: ./dishes/aquatic/小龙虾/小龙虾.md - - 油焖大虾: ./dishes/aquatic/油焖大虾/油焖大虾.md - - - 早餐: - - 茶叶蛋: ./dishes/breakfast/茶叶蛋.md - - 蛋煎糍粑: ./dishes/breakfast/蛋煎糍粑.md - - 桂圆红枣粥: ./dishes/breakfast/桂圆红枣粥.md - - 鸡蛋三明治: ./dishes/breakfast/鸡蛋三明治.md - - 煎饺: ./dishes/breakfast/煎饺.md - - 金枪鱼酱三明治: ./dishes/breakfast/金枪鱼酱三明治.md - - 空气炸锅面包片: ./dishes/breakfast/空气炸锅面包片.md - - 美式炒蛋: ./dishes/breakfast/美式炒蛋.md - - 牛奶燕麦: ./dishes/breakfast/牛奶燕麦.md - - 水煮玉米: ./dishes/breakfast/水煮玉米.md - - 苏格兰蛋: ./dishes/breakfast/苏格兰蛋/苏格兰蛋.md - - 太阳蛋: ./dishes/breakfast/太阳蛋.md - - 溏心蛋: ./dishes/breakfast/溏心蛋.md - - 吐司果酱: ./dishes/breakfast/吐司果酱.md - - 微波炉蛋糕: ./dishes/breakfast/微波炉蛋糕.md - - 微波炉荷包蛋: ./dishes/breakfast/微波炉荷包蛋.md - - 燕麦鸡蛋饼: ./dishes/breakfast/燕麦鸡蛋饼.md - - 蒸花卷: ./dishes/breakfast/蒸花卷.md - - 蒸水蛋: ./dishes/breakfast/蒸水蛋.md - - - 主食: - - 炒方便面: ./dishes/staple/炒方便面.md - - 炒河粉: ./dishes/staple/炒河粉.md - - 炒凉粉: ./dishes/staple/炒凉粉/炒凉粉.md - - 炒馍: ./dishes/staple/炒馍.md - - 炒年糕: ./dishes/staple/炒年糕.md - - 炒意大利面: ./dishes/staple/炒意大利面/炒意大利面.md - - 蛋炒饭: ./dishes/staple/蛋炒饭.md - - 豆角焖面: ./dishes/staple/豆角焖面/豆角焖面.md - - 韩式拌饭: ./dishes/staple/韩式拌饭/韩式拌饭.md - - 河南蒸面条: ./dishes/staple/河南蒸面条/河南蒸面条.md - - 火腿饭团: ./dishes/staple/火腿饭团/火腿饭团.md - - 基础牛奶面包: ./dishes/staple/基础牛奶面包/基础牛奶面包.md - - 茄子肉煎饼: ./dishes/staple/茄子肉煎饼/茄子肉煎饼.md - - 鲣鱼海苔玉米饭: ./dishes/staple/鲣鱼海苔玉米饭/鲣鱼海苔玉米饭.md - - 酱拌荞麦面: ./dishes/staple/酱拌荞麦面/酱拌荞麦面.md - - 空气炸锅照烧鸡饭: ./dishes/staple/空气炸锅照烧鸡饭/空气炸锅照烧鸡饭.md - - 醪糟小汤圆: ./dishes/staple/醪糟小汤圆.md - - 老干妈拌面: ./dishes/staple/老干妈拌面.md - - 老友猪肉粉: ./dishes/staple/老友猪肉粉/老友猪肉粉.md - - 烙饼: ./dishes/staple/烙饼/烙饼.md - - 凉粉: ./dishes/staple/凉粉/凉粉.md - - 麻辣减脂荞麦面: ./dishes/staple/麻辣减脂荞麦面.md - - 麻油拌面: ./dishes/staple/麻油拌面.md - - 电饭煲蒸米饭: ./dishes/staple/米饭/电饭煲蒸米饭.md - - 煮锅蒸米饭: ./dishes/staple/米饭/煮锅蒸米饭.md - - 披萨饼皮: ./dishes/staple/披萨饼皮/披萨饼皮.md - - 热干面: ./dishes/staple/热干面.md - - 日式咖喱饭: ./dishes/staple/日式咖喱饭/日式咖喱饭.md - - 芝麻烧饼: ./dishes/staple/烧饼/芝麻烧饼.md - - 手工水饺: ./dishes/staple/手工水饺.md - - 酸辣蕨根粉: ./dishes/staple/酸辣蕨根粉.md - - 汤面: ./dishes/staple/汤面.md - - 微波炉腊肠煲仔饭: ./dishes/staple/微波炉腊肠煲仔饭/微波炉腊肠煲仔饭.md - - 西红柿鸡蛋挂面: ./dishes/staple/西红柿鸡蛋挂面/西红柿鸡蛋挂面.md - - 扬州炒饭: ./dishes/staple/扬州炒饭/扬州炒饭.md - - 炸酱面: ./dishes/staple/炸酱面.md - - 蒸卤面: ./dishes/staple/蒸卤面.md - - 中式馅饼: ./dishes/staple/中式馅饼/中式馅饼.md - - 煮泡面加蛋: ./dishes/staple/煮泡面加蛋.md - - - 半成品加工: - - 半成品意面: ./dishes/semi-finished/半成品意面.md - - 空气炸锅鸡翅中: ./dishes/semi-finished/空气炸锅鸡翅中/空气炸锅鸡翅中.md - - 空气炸锅羊排: ./dishes/semi-finished/空气炸锅羊排/空气炸锅羊排.md - - 懒人蛋挞: ./dishes/semi-finished/懒人蛋挞/懒人蛋挞.md - - 凉皮: ./dishes/semi-finished/凉皮.md - - 牛油火锅底料: ./dishes/semi-finished/牛油火锅底料.md - - 速冻馄饨: ./dishes/semi-finished/速冻馄饨.md - - 速冻水饺: ./dishes/semi-finished/速冻水饺.md - - 速冻汤圆: ./dishes/semi-finished/速冻汤圆/速冻汤圆.md - - 炸薯条: ./dishes/semi-finished/炸薯条/炸薯条.md - - - 汤与粥: - - 昂刺鱼豆腐汤: ./dishes/soup/昂刺鱼豆腐汤/昂刺鱼豆腐汤.md - - 陈皮排骨汤: ./dishes/soup/陈皮排骨汤/陈皮排骨汤.md - - 陈皮排骨汤: ./dishes/soup/陈皮排骨汤.md - - 番茄牛肉蛋花汤: ./dishes/soup/番茄牛肉蛋花汤.md - - 勾芡香菇汤: ./dishes/soup/勾芡香菇汤/勾芡香菇汤.md - - 金针菇汤: ./dishes/soup/金针菇汤.md - - 菌菇炖乳鸽: ./dishes/soup/菌菇炖乳鸽/菌菇炖乳鸽.md - - 罗宋汤: ./dishes/soup/罗宋汤.md - - 米粥: ./dishes/soup/米粥.md - - 排骨苦瓜汤: ./dishes/soup/排骨苦瓜汤/排骨苦瓜汤.md - - 皮蛋瘦肉粥: ./dishes/soup/皮蛋瘦肉粥.md - - 生汆丸子汤: ./dishes/soup/生汆丸子汤.md - - 西红柿鸡蛋汤: ./dishes/soup/西红柿鸡蛋汤.md - - 小米粥: ./dishes/soup/小米粥.md - - 银耳莲子粥: ./dishes/soup/银耳莲子粥/银耳莲子粥.md - - 玉米排骨汤: ./dishes/soup/玉米排骨汤/玉米排骨汤.md - - 紫菜蛋花汤: ./dishes/soup/紫菜蛋花汤.md - - - 饮料: - - 耙耙柑茶: ./dishes/drink/耙耙柑茶/耙耙柑茶.md - - 百香果橙子特调: ./dishes/drink/百香果橙子特调/百香果橙子特调.md - - 冰粉: ./dishes/drink/冰粉/冰粉.md - - 菠萝咖啡特调: ./dishes/drink/菠萝咖啡特调/菠萝咖啡特调.md - - 金菲士: ./dishes/drink/金菲士/金菲士.md - - 金汤力: ./dishes/drink/金汤力/金汤力.md - - 可乐桶: ./dishes/drink/可乐桶.md - - 奶茶: ./dishes/drink/奶茶.md - - 奇异果菠菜特调: ./dishes/drink/奇异果菠菜特调/奇异果菠菜特调.md - - 砂糖椰子冰沙: ./dishes/drink/砂糖椰子冰沙/砂糖椰子冰沙.md - - 酸梅汤: ./dishes/drink/酸梅汤/酸梅汤.md - - 酸梅汤(半成品加工): ./dishes/drink/酸梅汤(半成品加工).md - - 泰国手标红茶: ./dishes/drink/泰国手标红茶/泰国手标红茶.md - - 杨枝甘露: ./dishes/drink/杨枝甘露.md - - 长岛冰茶: ./dishes/drink/长岛冰茶.md - - B52轰炸机: ./dishes/drink/B52轰炸机.md - - Mojito莫吉托: ./dishes/drink/Mojito莫吉托.md - - - 酱料和其它材料: - - 草莓酱: ./dishes/condiment/草莓酱/草莓酱.md - - 葱油: ./dishes/condiment/葱油.md - - 蒜香酱油: ./dishes/condiment/蒜香酱油.md - - 糖醋汁: ./dishes/condiment/糖醋汁.md - - 糖色: ./dishes/condiment/糖色.md - - 油泼辣子: ./dishes/condiment/油泼辣子/油泼辣子.md - - 油酥: ./dishes/condiment/油酥.md - - 炸串酱料: ./dishes/condiment/炸串酱料.md - - 蔗糖糖浆: ./dishes/condiment/蔗糖糖浆/蔗糖糖浆.md - - - 甜品: - - 奥利奥冰淇淋: ./dishes/dessert/奥利奥冰淇淋/奥利奥冰淇淋.md - - 草莓冰淇淋: ./dishes/dessert/草莓冰淇淋/草莓冰淇淋.md - - 反沙芋头: ./dishes/dessert/反沙芋头/反沙芋头.md - - 咖啡椰奶冻: ./dishes/dessert/咖啡椰奶冻/咖啡椰奶冻.md - - 烤蛋挞: ./dishes/dessert/烤蛋挞/烤蛋挞.md - - 玛格丽特饼干: ./dishes/dessert/玛格丽特饼干/玛格丽特饼干.md - - 魔芋蛋糕: ./dishes/dessert/魔芋蛋糕/魔芋蛋糕.md - - 戚风蛋糕: ./dishes/dessert/戚风蛋糕/戚风蛋糕.md - - 酸奶意式奶冻: ./dishes/dessert/酸奶意式奶冻/酸奶意式奶冻.md - - 提拉米苏: ./dishes/dessert/提拉米苏/提拉米苏.md - - 雪花酥: ./dishes/dessert/雪花酥/雪花酥.md - - 英式司康: ./dishes/dessert/英式司康/英式司康.md - - 芋泥雪媚娘: ./dishes/dessert/芋泥雪媚娘/芋泥雪媚娘.md - - - 进阶知识学习: - - 辅料技巧: ./tips/advanced/辅料技巧.md - - 高级专业术语: ./tips/advanced/高级专业术语.md - - 油温判断技巧: ./tips/advanced/油温判断技巧.md - - - CONTRIBUTING.md - - CODE_OF_CONDUCT.md diff --git a/package-lock.json b/package-lock.json index c85cd31197..753d9e78ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,15 @@ { "name": "how-to-cook", - "version": "1.3.1", + "version": "1.4.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "how-to-cook", - "version": "1.3.1", + "version": "1.4.0", "license": "Unlicense", "dependencies": { + "markdownlint-cli": "0.41.0", "textlint": "^12.1.0", "textlint-rule-ja-space-between-half-and-full-width": "^2.2.0", "textlint-rule-zh-half-and-full-width-bracket": "^1.1.0" @@ -42,6 +43,83 @@ "node": ">=6.9.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@textlint/ast-node-types": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.1.0.tgz", @@ -386,6 +464,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -401,6 +488,20 @@ "url": "https://opencollective.com/core-js" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", @@ -441,6 +542,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -465,11 +575,29 @@ "node": ">=0.3.1" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -565,6 +693,22 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", @@ -680,6 +824,15 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -694,6 +847,15 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -828,6 +990,30 @@ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -864,6 +1050,21 @@ "node": ">=6" } }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "license": "MIT" + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -876,6 +1077,15 @@ "node": ">= 0.8.0" } }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -928,6 +1138,38 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "license": "ISC", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, "node_modules/markdown-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", @@ -940,6 +1182,135 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/markdownlint": { + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz", + "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==", + "license": "MIT", + "dependencies": { + "markdown-it": "14.1.0", + "markdownlint-micromark": "0.1.9" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, + "node_modules/markdownlint-cli": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.41.0.tgz", + "integrity": "sha512-kp29tKrMKdn+xonfefjp3a/MsNzAd9c5ke0ydMEI9PR98bOjzglYN4nfMSaIs69msUf1DNkgevAIAPtK2SeX0Q==", + "license": "MIT", + "dependencies": { + "commander": "~12.1.0", + "get-stdin": "~9.0.0", + "glob": "~10.4.1", + "ignore": "~5.3.1", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.2.1", + "jsonpointer": "5.0.1", + "markdownlint": "~0.34.0", + "minimatch": "~9.0.4", + "run-con": "~1.3.2", + "smol-toml": "~1.2.0" + }, + "bin": { + "markdownlint": "markdownlint.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/markdownlint-cli/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/markdownlint-cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/markdownlint-cli/node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdownlint-cli/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/markdownlint-cli/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/markdownlint-cli/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/markdownlint-micromark": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz", + "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" + } + }, "node_modules/match-index": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/match-index/-/match-index-1.0.3.tgz", @@ -1117,6 +1488,12 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "license": "MIT" + }, "node_modules/micromark": { "version": "2.11.4", "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", @@ -1246,9 +1623,22 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } }, "node_modules/mkdirp": { "version": "0.5.5", @@ -1406,11 +1796,36 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-to-glob-pattern": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-to-glob-pattern/-/path-to-glob-pattern-1.0.2.tgz", @@ -1477,6 +1892,15 @@ "node": ">=6" } }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/rc-config-loader": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-3.0.0.tgz", @@ -1532,7 +1956,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dependencies": { - "error-ex": "^1.3.1", + "error-ex": "^1.4.0", "json-parse-better-errors": "^1.0.1" }, "engines": { @@ -1693,6 +2117,21 @@ "rimraf": "bin.js" } }, + "node_modules/run-con": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", + "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~4.1.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + }, + "bin": { + "run-con": "cli.js" + } + }, "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -1701,6 +2140,39 @@ "semver": "bin/semver" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -1739,6 +2211,16 @@ "node": ">=8" } }, + "node_modules/smol-toml": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.2.1.tgz", + "integrity": "sha512-OtZKrVrGIT+m++lxyF0z5n68nkwdgZotPhy89bfA4T7nSWe0xeQtfbjM1z5VLTilJdWXH46g8i0oAcpQNkzZTg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18", + "pnpm": ">= 9" + } + }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -1785,6 +2267,30 @@ "node": ">=0.10.0" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/string-width/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -1807,6 +2313,28 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1826,6 +2354,18 @@ "node": ">=0.10.0" } }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/structured-source": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-3.0.2.tgz", @@ -1999,6 +2539,12 @@ "node": ">= 0.8.0" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "license": "MIT" + }, "node_modules/unified": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", @@ -2158,6 +2704,21 @@ "node": ">=4" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -2166,6 +2727,141 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -2220,6 +2916,55 @@ "regenerator-runtime": "^0.13.4" } }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, "@textlint/ast-node-types": { "version": "12.1.0", "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.1.0.tgz", @@ -2515,6 +3260,11 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==" + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2525,6 +3275,16 @@ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==" }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", @@ -2551,6 +3311,11 @@ "regexp.prototype.flags": "^1.2.0" } }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -2569,11 +3334,21 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -2646,6 +3421,15 @@ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" }, + "foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, "format": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", @@ -2728,6 +3512,11 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" }, + "ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2742,6 +3531,11 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==" + }, "is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -2833,6 +3627,20 @@ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "jackspeak": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -2860,6 +3668,16 @@ "minimist": "^1.2.5" } }, + "jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==" + }, + "jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==" + }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -2869,6 +3687,14 @@ "type-check": "~0.4.0" } }, + "linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "requires": { + "uc.micro": "^2.0.0" + } + }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -2908,6 +3734,31 @@ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" }, + "lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==" + }, + "markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "requires": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + } + } + }, "markdown-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", @@ -2916,6 +3767,86 @@ "repeat-string": "^1.0.0" } }, + "markdownlint": { + "version": "0.34.0", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.34.0.tgz", + "integrity": "sha512-qwGyuyKwjkEMOJ10XN6OTKNOVYvOIi35RNvDLNxTof5s8UmyGHlCdpngRHoRGNvQVGuxO3BJ7uNSgdeX166WXw==", + "requires": { + "markdown-it": "14.1.0", + "markdownlint-micromark": "0.1.9" + } + }, + "markdownlint-cli": { + "version": "0.41.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.41.0.tgz", + "integrity": "sha512-kp29tKrMKdn+xonfefjp3a/MsNzAd9c5ke0ydMEI9PR98bOjzglYN4nfMSaIs69msUf1DNkgevAIAPtK2SeX0Q==", + "requires": { + "commander": "~12.1.0", + "get-stdin": "~9.0.0", + "glob": "~10.4.1", + "ignore": "~5.3.1", + "js-yaml": "^4.1.0", + "jsonc-parser": "~3.2.1", + "jsonpointer": "5.0.1", + "markdownlint": "~0.34.0", + "minimatch": "~9.0.4", + "run-con": "~1.3.2", + "smol-toml": "~1.2.0" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==" + }, + "glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "markdownlint-micromark": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.9.tgz", + "integrity": "sha512-5hVs/DzAFa8XqYosbEAEg6ok6MF2smDj89ztn9pKkCtdKHVdPQuGMH7frFfYL9mLkvfFe4pTyAMffLbjf3/EyA==" + }, "match-index": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/match-index/-/match-index-1.0.3.tgz", @@ -3045,6 +3976,11 @@ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" }, + "mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" + }, "micromark": { "version": "2.11.4", "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", @@ -3129,9 +4065,14 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" }, "mkdirp": { "version": "0.5.5", @@ -3249,11 +4190,25 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + } + }, "path-to-glob-pattern": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-to-glob-pattern/-/path-to-glob-pattern-1.0.2.tgz", @@ -3302,6 +4257,11 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==" + }, "rc-config-loader": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/rc-config-loader/-/rc-config-loader-3.0.0.tgz", @@ -3348,7 +4308,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "^1.3.1", + "error-ex": "^1.4.0", "json-parse-better-errors": "^1.0.1" } }, @@ -3459,11 +4419,40 @@ "glob": "^7.1.3" } }, + "run-con": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.3.2.tgz", + "integrity": "sha512-CcfE+mYiTcKEzg0IqS08+efdnH0oJ3zV0wSUFBNrMHMuxCtXvBCLzCJHatwuXDcu/RlhjTziTo/a1ruQik6/Yg==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~4.1.0", + "minimist": "^1.2.8", + "strip-json-comments": "~3.1.1" + } + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -3489,6 +4478,11 @@ } } }, + "smol-toml": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.2.1.tgz", + "integrity": "sha512-OtZKrVrGIT+m++lxyF0z5n68nkwdgZotPhy89bfA4T7nSWe0xeQtfbjM1z5VLTilJdWXH46g8i0oAcpQNkzZTg==" + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -3542,6 +4536,23 @@ } } }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + } + } + }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -3557,6 +4568,21 @@ } } }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + } + } + }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", @@ -3565,6 +4591,11 @@ "is-utf8": "^0.2.0" } }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, "structured-source": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/structured-source/-/structured-source-3.0.2.tgz", @@ -3702,6 +4733,11 @@ "prelude-ls": "^1.2.1" } }, + "uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" + }, "unified": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", @@ -3803,11 +4839,99 @@ "unist-util-stringify-position": "^2.0.0" } }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index a3ff50f0fb..6cdaaa5681 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "how-to-cook", "description": "程序员在家做饭方法指南。Programmer's guide about how to cook at home (Chinese).", - "version": "1.3.1", + "version": "1.4.0", "repository": { "type": "git", "url": "git+https://github.com/Anduin2017/HowToCook.git" @@ -13,16 +13,24 @@ "chinese", "dishes" ], + "scripts": { + "build": "node ./.github/readme-generate.js", + "manuallint": "node .github/manual_lint.js", + "textlint": "textlint . --fix", + "markdownlint": "markdownlint ./dishes ./tips", + "lint": "npm run textlint && npm run markdownlint && npm run manuallint && echo 'Lint finished. All passed.'" + }, "author": "Anduin2017", "license": "Unlicense", "bugs": { "url": "https://github.com/Anduin2017/HowToCook/issues" }, - "homepage": "https://cook.aiurs.co", + "homepage": "https://cook.aiursoft.cn", "dependencies": { "textlint": "^12.1.0", "textlint-rule-ja-space-between-half-and-full-width": "^2.2.0", - "textlint-rule-zh-half-and-full-width-bracket": "^1.1.0" + "textlint-rule-zh-half-and-full-width-bracket": "^1.1.0", + "markdownlint-cli":"0.41.0" }, "devDependencies": { "glob": "^7.2.0" diff --git a/requirements.txt b/requirements.txt index 4fa08e922f..1e6a2ebe53 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,5 @@ mkdocs-material mkdocs-same-dir mkdocs-minify-plugin +mkdocs-with-pdf +weasyprint diff --git a/starsystem/1Star.md b/starsystem/1Star.md new file mode 100644 index 0000000000..b11d0c6bb1 --- /dev/null +++ b/starsystem/1Star.md @@ -0,0 +1,23 @@ +# 1 星难度菜品 + +* [吐司果酱](./../dishes/breakfast/吐司果酱.md) +* [微波炉荷包蛋](./../dishes/breakfast/微波炉荷包蛋.md) +* [微波炉蛋糕](./../dishes/breakfast/微波炉蛋糕.md) +* [牛奶燕麦](./../dishes/breakfast/牛奶燕麦.md) +* [空气炸锅面包片](./../dishes/breakfast/空气炸锅面包片.md) +* [金枪鱼酱三明治](./../dishes/breakfast/金枪鱼酱三明治.md) +* [蔗糖糖浆](./../dishes/condiment/蔗糖糖浆/蔗糖糖浆.md) +* [奇异果菠菜特调](./../dishes/drink/奇异果菠菜特调/奇异果菠菜特调.md) +* [砂糖椰子冰沙](./../dishes/drink/砂糖椰子冰沙/砂糖椰子冰沙.md) +* [酸梅汤(半成品加工)](./../dishes/drink/酸梅汤(半成品加工).md) +* [黔式腊肠娃娃菜](./../dishes/meat_dish/黔式腊肠娃娃菜/黔式腊肠娃娃菜.md) +* [半成品意面](./../dishes/semi-finished/半成品意面.md) +* [速冻水饺](./../dishes/semi-finished/速冻水饺.md) +* [速冻汤圆](./../dishes/semi-finished/速冻汤圆/速冻汤圆.md) +* [煮泡面加蛋](./../dishes/staple/煮泡面加蛋.md) +* [电饭煲蒸米饭](./../dishes/staple/米饭/电饭煲蒸米饭.md) +* [老干妈拌面](./../dishes/staple/老干妈拌面.md) +* [麻油拌面](./../dishes/staple/麻油拌面.md) +* [凉拌油麦菜](./../dishes/vegetable_dish/凉拌油麦菜.md) +* [凉拌黄瓜](./../dishes/vegetable_dish/凉拌黄瓜.md) +* [炒滑蛋](./../dishes/vegetable_dish/炒滑蛋/炒滑蛋.md) \ No newline at end of file diff --git a/starsystem/2Star.md b/starsystem/2Star.md new file mode 100644 index 0000000000..f13357061a --- /dev/null +++ b/starsystem/2Star.md @@ -0,0 +1,72 @@ +# 2 星难度菜品 + +* [白灼虾](./../dishes/aquatic/白灼虾/白灼虾.md) +* [蒜蓉虾](./../dishes/aquatic/蒜蓉虾/蒜蓉虾.md) +* [太阳蛋](./../dishes/breakfast/太阳蛋.md) +* [桂圆红枣粥](./../dishes/breakfast/桂圆红枣粥.md) +* [水煮玉米](./../dishes/breakfast/水煮玉米.md) +* [煎饺](./../dishes/breakfast/煎饺.md) +* [燕麦鸡蛋饼](./../dishes/breakfast/燕麦鸡蛋饼.md) +* [美式炒蛋](./../dishes/breakfast/美式炒蛋.md) +* [蒸水蛋](./../dishes/breakfast/蒸水蛋.md) +* [蒸花卷](./../dishes/breakfast/蒸花卷.md) +* [蛋煎糍粑](./../dishes/breakfast/蛋煎糍粑.md) +* [鸡蛋三明治](./../dishes/breakfast/鸡蛋三明治.md) +* [油酥](./../dishes/condiment/油酥.md) +* [炸串酱料](./../dishes/condiment/炸串酱料.md) +* [糖醋汁](./../dishes/condiment/糖醋汁.md) +* [草莓酱](./../dishes/condiment/草莓酱/草莓酱.md) +* [蒜香酱油](./../dishes/condiment/蒜香酱油.md) +* [草莓冰淇淋](./../dishes/dessert/草莓冰淇淋/草莓冰淇淋.md) +* [冬瓜茶](./../dishes/drink/冬瓜茶.md) +* [冰粉](./../dishes/drink/冰粉/冰粉.md) +* [可乐桶](./../dishes/drink/可乐桶.md) +* [奶茶](./../dishes/drink/奶茶.md) +* [杨枝甘露](./../dishes/drink/杨枝甘露.md) +* [耙耙柑茶](./../dishes/drink/耙耙柑茶/耙耙柑茶.md) +* [金汤力](./../dishes/drink/金汤力/金汤力.md) +* [金菲士](./../dishes/drink/金菲士/金菲士.md) +* [长岛冰茶](./../dishes/drink/长岛冰茶.md) +* [荷兰豆炒腊肠](./../dishes/meat_dish/荷兰豆炒腊肠/荷兰豆炒腊肠.md) +* [蒜苔炒肉末](./../dishes/meat_dish/蒜苔炒肉末.md) +* [炸薯条](./../dishes/semi-finished/炸薯条/炸薯条.md) +* [空气炸锅鸡翅中](./../dishes/semi-finished/空气炸锅鸡翅中/空气炸锅鸡翅中.md) +* [速冻馄饨](./../dishes/semi-finished/速冻馄饨.md) +* [小米粥](./../dishes/soup/小米粥.md) +* [米粥](./../dishes/soup/米粥.md) +* [紫菜蛋花汤](./../dishes/soup/紫菜蛋花汤.md) +* [西红柿鸡蛋汤](./../dishes/soup/西红柿鸡蛋汤.md) +* [金针菇汤](./../dishes/soup/金针菇汤.md) +* [微波炉腊肠煲仔饭](./../dishes/staple/微波炉腊肠煲仔饭/微波炉腊肠煲仔饭.md) +* [汤面](./../dishes/staple/汤面.md) +* [炒方便面](./../dishes/staple/炒方便面.md) +* [煮锅蒸米饭](./../dishes/staple/米饭/煮锅蒸米饭.md) +* [西红柿鸡蛋挂面](./../dishes/staple/西红柿鸡蛋挂面/西红柿鸡蛋挂面.md) +* [酱拌荞麦面](./../dishes/staple/酱拌荞麦面/酱拌荞麦面.md) +* [酸辣蕨根粉](./../dishes/staple/酸辣蕨根粉.md) +* [醪糟小汤圆](./../dishes/staple/醪糟小汤圆.md) +* [鲣鱼海苔玉米饭](./../dishes/staple/鲣鱼海苔玉米饭/鲣鱼海苔玉米饭.md) +* [麻辣减脂荞麦面](./../dishes/staple/麻辣减脂荞麦面.md) +* [凉拌木耳](./../dishes/vegetable_dish/凉拌木耳/凉拌木耳.md) +* [凉拌莴笋](./../dishes/vegetable_dish/凉拌莴笋/凉拌莴笋.md) +* [水油焖蔬菜](./../dishes/vegetable_dish/水油焖蔬菜.md) +* [洋葱炒鸡蛋](./../dishes/vegetable_dish/洋葱炒鸡蛋/洋葱炒鸡蛋.md) +* [炒青菜](./../dishes/vegetable_dish/炒青菜.md) +* [白灼菜心](./../dishes/vegetable_dish/白灼菜心/白灼菜心.md) +* [糖拌西红柿](./../dishes/vegetable_dish/糖拌西红柿/糖拌西红柿.md) +* [素炒豆角](./../dishes/vegetable_dish/素炒豆角.md) +* [芹菜拌茶树菇](./../dishes/vegetable_dish/芹菜拌茶树菇/芹菜拌茶树菇.md) +* [莴笋叶煎饼](./../dishes/vegetable_dish/莴笋叶煎饼/莴笋叶煎饼.md) +* [菠菜炒鸡蛋](./../dishes/vegetable_dish/菠菜炒鸡蛋/菠菜炒鸡蛋.md) +* [蚝油生菜](./../dishes/vegetable_dish/蚝油生菜.md) +* [西红柿炒鸡蛋](./../dishes/vegetable_dish/西红柿炒鸡蛋.md) +* [西红柿豆腐汤羹](./../dishes/vegetable_dish/西红柿豆腐汤羹/西红柿豆腐汤羹.md) +* [西葫芦炒鸡蛋](./../dishes/vegetable_dish/西葫芦炒鸡蛋/西葫芦炒鸡蛋.md) +* [话梅煮毛豆](./../dishes/vegetable_dish/话梅煮毛豆/话梅煮毛豆.md) +* [酸辣土豆丝](./../dishes/vegetable_dish/酸辣土豆丝.md) +* [金针菇日本豆腐煲](./../dishes/vegetable_dish/金针菇日本豆腐煲.md) +* [陕北熬豆角](./../dishes/vegetable_dish/陕北熬豆角.md) +* [雷椒皮蛋](./../dishes/vegetable_dish/雷椒皮蛋.md) +* [鸡蛋火腿炒黄瓜](./../dishes/vegetable_dish/鸡蛋火腿炒黄瓜.md) +* [微波炉鸡蛋羹](./../dishes/vegetable_dish/鸡蛋羹/微波炉鸡蛋羹.md) +* [鸡蛋羹](./../dishes/vegetable_dish/鸡蛋羹/鸡蛋羹.md) \ No newline at end of file diff --git a/starsystem/3Star.md b/starsystem/3Star.md new file mode 100644 index 0000000000..f7c82cbc57 --- /dev/null +++ b/starsystem/3Star.md @@ -0,0 +1,102 @@ +# 3 星难度菜品 + +* [干煎阿根廷红虾](./../dishes/aquatic/干煎阿根廷红虾/干煎阿根廷红虾.md) +* [微波葱姜黑鳕鱼](./../dishes/aquatic/微波葱姜黑鳕鱼.md) +* [清蒸生蚝](./../dishes/aquatic/清蒸生蚝.md) +* [清蒸鲈鱼](./../dishes/aquatic/清蒸鲈鱼/清蒸鲈鱼.md) +* [芥末黄油罗氏虾](./../dishes/aquatic/芥末黄油罗氏虾/芥末黄油罗氏虾.md) +* [芥末黄油罗氏虾](./../dishes/aquatic/芥末黄油罗氏虾.md) +* [葱烧海参](./../dishes/aquatic/葱烧海参/葱烧海参.md) +* [蛏抱蛋](./../dishes/aquatic/蛏抱蛋/蛏抱蛋.md) +* [鲤鱼炖白菜](./../dishes/aquatic/鲤鱼炖白菜/鲤鱼炖白菜.md) +* [鳊鱼炖豆腐](./../dishes/aquatic/鳊鱼炖豆腐/鳊鱼炖豆腐.md) +* [黄油煎虾](./../dishes/aquatic/黄油煎虾/黄油煎虾.md) +* [溏心蛋](./../dishes/breakfast/溏心蛋.md) +* [苏格兰蛋](./../dishes/breakfast/苏格兰蛋/苏格兰蛋.md) +* [茶叶蛋](./../dishes/breakfast/茶叶蛋.md) +* [油泼辣子](./../dishes/condiment/油泼辣子/油泼辣子.md) +* [葱油](./../dishes/condiment/葱油.md) +* [反沙芋头](./../dishes/dessert/反沙芋头/反沙芋头.md) +* [奥利奥冰淇淋](./../dishes/dessert/奥利奥冰淇淋/奥利奥冰淇淋.md) +* [玛格丽特饼干](./../dishes/dessert/玛格丽特饼干/玛格丽特饼干.md) +* [英式司康](./../dishes/dessert/英式司康/英式司康.md) +* [雪花酥](./../dishes/dessert/雪花酥/雪花酥.md) +* [B52轰炸机](./../dishes/drink/B52轰炸机.md) +* [Mojito莫吉托](./../dishes/drink/Mojito莫吉托.md) +* [泰国手标红茶](./../dishes/drink/泰国手标红茶/泰国手标红茶.md) +* [百香果橙子特调](./../dishes/drink/百香果橙子特调/百香果橙子特调.md) +* [菠萝咖啡特调](./../dishes/drink/菠萝咖啡特调/菠萝咖啡特调.md) +* [凉拌鸡丝](./../dishes/meat_dish/凉拌鸡丝/凉拌鸡丝.md) +* [口水鸡](./../dishes/meat_dish/口水鸡/口水鸡.md) +* [可乐鸡翅](./../dishes/meat_dish/可乐鸡翅.md) +* [土豆炖排骨](./../dishes/meat_dish/土豆炖排骨/土豆炖排骨.md) +* [奶酪培根通心粉](./../dishes/meat_dish/奶酪培根通心粉/奶酪培根通心粉.md) +* [姜炒鸡](./../dishes/meat_dish/姜炒鸡/姜炒鸡.md) +* [姜葱捞鸡](./../dishes/meat_dish/姜葱捞鸡/姜葱捞鸡.md) +* [孜然牛肉](./../dishes/meat_dish/孜然牛肉.md) +* [小炒肉](./../dishes/meat_dish/小炒肉.md) +* [小炒鸡肝](./../dishes/meat_dish/小炒鸡肝/小炒鸡肝.md) +* [小酥肉](./../dishes/meat_dish/小酥肉.md) +* [尖椒炒牛肉](./../dishes/meat_dish/尖椒炒牛肉.md) +* [意式烤鸡](./../dishes/meat_dish/意式烤鸡.md) +* [水煮牛肉](./../dishes/meat_dish/水煮牛肉/水煮牛肉.md) +* [洋葱炒猪肉](./../dishes/meat_dish/洋葱炒猪肉.md) +* [湖南家常红烧肉](./../dishes/meat_dish/湖南家常红烧肉/湖南家常红烧肉.md) +* [烤鸡翅](./../dishes/meat_dish/烤鸡翅.md) +* [瘦肉土豆片](./../dishes/meat_dish/瘦肉土豆片/瘦肉土豆片.md) +* [白菜猪肉炖粉条](./../dishes/meat_dish/白菜猪肉炖粉条.md) +* [简易红烧肉](./../dishes/meat_dish/红烧肉/简易红烧肉.md) +* [肉饼炖蛋](./../dishes/meat_dish/肉饼炖蛋.md) +* [辣椒炒肉](./../dishes/meat_dish/辣椒炒肉.md) +* [青椒土豆炒肉](./../dishes/meat_dish/青椒土豆炒肉/青椒土豆炒肉.md) +* [香干肉丝](./../dishes/meat_dish/香干肉丝.md) +* [香干芹菜炒肉](./../dishes/meat_dish/香干芹菜炒肉/香干芹菜炒肉.md) +* [香煎五花肉](./../dishes/meat_dish/香煎五花肉/香煎五花肉.md) +* [香菇滑鸡](./../dishes/meat_dish/香菇滑鸡/香菇滑鸡.md) +* [鱼香茄子](./../dishes/meat_dish/鱼香茄子/鱼香茄子.md) +* [麻婆豆腐](./../dishes/meat_dish/麻婆豆腐/麻婆豆腐.md) +* [麻辣香锅](./../dishes/meat_dish/麻辣香锅.md) +* [黄焖鸡](./../dishes/meat_dish/黄焖鸡.md) +* [黄瓜炒肉](./../dishes/meat_dish/黄瓜炒肉.md) +* [凉皮](./../dishes/semi-finished/凉皮.md) +* [懒人蛋挞](./../dishes/semi-finished/懒人蛋挞/懒人蛋挞.md) +* [空气炸锅羊排](./../dishes/semi-finished/空气炸锅羊排/空气炸锅羊排.md) +* [勾芡香菇汤](./../dishes/soup/勾芡香菇汤/勾芡香菇汤.md) +* [昂刺鱼豆腐汤](./../dishes/soup/昂刺鱼豆腐汤/昂刺鱼豆腐汤.md) +* [玉米排骨汤](./../dishes/soup/玉米排骨汤/玉米排骨汤.md) +* [番茄牛肉蛋花汤](./../dishes/soup/番茄牛肉蛋花汤.md) +* [皮蛋瘦肉粥](./../dishes/soup/皮蛋瘦肉粥.md) +* [陈皮排骨汤](./../dishes/soup/陈皮排骨汤/陈皮排骨汤.md) +* [凉粉](./../dishes/staple/凉粉/凉粉.md) +* [炒凉粉](./../dishes/staple/炒凉粉/炒凉粉.md) +* [炒年糕](./../dishes/staple/炒年糕.md) +* [炒意大利面](./../dishes/staple/炒意大利面/炒意大利面.md) +* [炒馍](./../dishes/staple/炒馍.md) +* [炸酱面](./../dishes/staple/炸酱面.md) +* [芝麻烧饼](./../dishes/staple/烧饼/芝麻烧饼.md) +* [热干面](./../dishes/staple/热干面.md) +* [老友猪肉粉](./../dishes/staple/老友猪肉粉/老友猪肉粉.md) +* [茄子肉煎饼](./../dishes/staple/茄子肉煎饼/茄子肉煎饼.md) +* [蛋炒饭](./../dishes/staple/蛋炒饭.md) +* [豆角焖面](./../dishes/staple/豆角焖面/豆角焖面.md) +* [韩式拌饭](./../dishes/staple/韩式拌饭/韩式拌饭.md) +* [上汤娃娃菜](./../dishes/vegetable_dish/上汤娃娃菜/上汤娃娃菜.md) +* [包菜炒鸡蛋粉丝](./../dishes/vegetable_dish/包菜炒鸡蛋粉丝/包菜炒鸡蛋粉丝.md) +* [地三鲜](./../dishes/vegetable_dish/地三鲜.md) +* [小炒藕丁](./../dishes/vegetable_dish/小炒藕丁/小炒藕丁.md) +* [干锅花菜](./../dishes/vegetable_dish/干锅花菜/干锅花菜.md) +* [手撕包菜](./../dishes/vegetable_dish/手撕包菜/手撕包菜.md) +* [拔丝土豆](./../dishes/vegetable_dish/拔丝土豆/拔丝土豆.md) +* [椒盐玉米](./../dishes/vegetable_dish/椒盐玉米/椒盐玉米.md) +* [榄菜肉末四季豆](./../dishes/vegetable_dish/榄菜肉末四季豆/榄菜肉末四季豆.md) +* [炒茄子](./../dishes/vegetable_dish/炒茄子.md) +* [烤茄子](./../dishes/vegetable_dish/烤茄子/烤茄子.md) +* [红烧冬瓜](./../dishes/vegetable_dish/红烧冬瓜/红烧冬瓜.md) +* [脆皮豆腐](./../dishes/vegetable_dish/脆皮豆腐.md) +* [茄子炖土豆](./../dishes/vegetable_dish/茄子炖土豆.md) +* [茭白炒肉](./../dishes/vegetable_dish/茭白炒肉/茭白炒肉.md) +* [葱煎豆腐](./../dishes/vegetable_dish/葱煎豆腐.md) +* [蒲烧茄子](./../dishes/vegetable_dish/蒲烧茄子.md) +* [虎皮青椒](./../dishes/vegetable_dish/虎皮青椒/虎皮青椒.md) +* [蚝油三鲜菇](./../dishes/vegetable_dish/蚝油三鲜菇/蚝油三鲜菇.md) +* [蒸箱鸡蛋羹](./../dishes/vegetable_dish/鸡蛋羹/蒸箱鸡蛋羹.md) \ No newline at end of file diff --git a/starsystem/4Star.md b/starsystem/4Star.md new file mode 100644 index 0000000000..c3332ea3e8 --- /dev/null +++ b/starsystem/4Star.md @@ -0,0 +1,72 @@ +# 4 星难度菜品 + +* [咖喱炒蟹](./../dishes/aquatic/咖喱炒蟹.md) +* [小龙虾](./../dishes/aquatic/小龙虾/小龙虾.md) +* [水煮鱼](./../dishes/aquatic/水煮鱼.md) +* [油焖大虾](./../dishes/aquatic/油焖大虾/油焖大虾.md) +* [烤鱼](./../dishes/aquatic/混合烤鱼/烤鱼.md) +* [糖醋鲤鱼](./../dishes/aquatic/糖醋鲤鱼/糖醋鲤鱼.md) +* [红烧鱼](./../dishes/aquatic/红烧鱼.md) +* [红烧鱼头](./../dishes/aquatic/红烧鱼头.md) +* [红烧鲤鱼](./../dishes/aquatic/红烧鲤鱼.md) +* [葱油桂鱼](./../dishes/aquatic/葱油桂鱼/葱油桂鱼.md) +* [香煎翘嘴鱼](./../dishes/aquatic/香煎翘嘴鱼/香煎翘嘴鱼.md) +* [糖色](./../dishes/condiment/糖色.md) +* [咖啡椰奶冻](./../dishes/dessert/咖啡椰奶冻/咖啡椰奶冻.md) +* [提拉米苏](./../dishes/dessert/提拉米苏/提拉米苏.md) +* [烤蛋挞](./../dishes/dessert/烤蛋挞/烤蛋挞.md) +* [酸奶意式奶冻](./../dishes/dessert/酸奶意式奶冻/酸奶意式奶冻.md) +* [魔芋蛋糕](./../dishes/dessert/魔芋蛋糕/魔芋蛋糕.md) +* [酸梅汤](./../dishes/drink/酸梅汤/酸梅汤.md) +* [乡村啤酒鸭](./../dishes/meat_dish/乡村啤酒鸭.md) +* [冬瓜酿肉](./../dishes/meat_dish/冬瓜酿肉/冬瓜酿肉.md) +* [冷吃兔](./../dishes/meat_dish/冷吃兔.md) +* [咕噜肉](./../dishes/meat_dish/咕噜肉.md) +* [咖喱肥牛](./../dishes/meat_dish/咖喱肥牛/咖喱肥牛.md) +* [啤酒鸭](./../dishes/meat_dish/啤酒鸭/啤酒鸭.md) +* [回锅肉](./../dishes/meat_dish/回锅肉/回锅肉.md) +* [宫保鸡丁](./../dishes/meat_dish/宫保鸡丁/宫保鸡丁.md) +* [小炒黄牛肉](./../dishes/meat_dish/小炒黄牛肉/小炒黄牛肉.md) +* [尖叫牛蛙](./../dishes/meat_dish/尖叫牛蛙/尖叫牛蛙.md) +* [山西过油肉](./../dishes/meat_dish/山西过油肉.md) +* [干煸仔鸡](./../dishes/meat_dish/干煸仔鸡/干煸仔鸡.md) +* [徽派红烧肉](./../dishes/meat_dish/徽派红烧肉/徽派红烧肉.md) +* [新疆大盘鸡](./../dishes/meat_dish/新疆大盘鸡/新疆大盘鸡.md) +* [杀猪菜](./../dishes/meat_dish/杀猪菜.md) +* [柱候牛腩](./../dishes/meat_dish/柱候牛腩/柱候牛腩.md) +* [梅菜扣肉](./../dishes/meat_dish/梅菜扣肉/梅菜扣肉.md) +* [椒盐排条](./../dishes/meat_dish/椒盐排条.md) +* [番茄红酱](./../dishes/meat_dish/番茄红酱.md) +* [糖醋排骨](./../dishes/meat_dish/糖醋排骨/糖醋排骨.md) +* [糖醋里脊](./../dishes/meat_dish/糖醋里脊.md) +* [红烧猪蹄](./../dishes/meat_dish/红烧猪蹄/红烧猪蹄.md) +* [南派红烧肉](./../dishes/meat_dish/红烧肉/南派红烧肉.md) +* [羊排焖面](./../dishes/meat_dish/羊排焖面/羊排焖面.md) +* [老妈蹄花](./../dishes/meat_dish/老妈蹄花/老妈蹄花.md) +* [老式锅包肉](./../dishes/meat_dish/老式锅包肉/老式锅包肉.md) +* [荔枝肉](./../dishes/meat_dish/荔枝肉/荔枝肉.md) +* [萝卜炖羊排](./../dishes/meat_dish/萝卜炖羊排.md) +* [西红柿土豆炖牛肉](./../dishes/meat_dish/西红柿土豆炖牛肉/西红柿土豆炖牛肉.md) +* [酱排骨](./../dishes/meat_dish/酱排骨/酱排骨.md) +* [醉排骨](./../dishes/meat_dish/醉排骨/醉排骨.md) +* [香辣鸡爪煲](./../dishes/meat_dish/香辣鸡爪煲/香辣鸡爪煲.md) +* [鱼香肉丝](./../dishes/meat_dish/鱼香肉丝.md) +* [黑椒牛柳](./../dishes/meat_dish/黑椒牛柳/黑椒牛柳.md) +* [排骨苦瓜汤](./../dishes/soup/排骨苦瓜汤/排骨苦瓜汤.md) +* [生汆丸子汤](./../dishes/soup/生汆丸子汤.md) +* [罗宋汤](./../dishes/soup/罗宋汤.md) +* [菌菇炖乳鸽](./../dishes/soup/菌菇炖乳鸽/菌菇炖乳鸽.md) +* [银耳莲子粥](./../dishes/soup/银耳莲子粥/银耳莲子粥.md) +* [陈皮排骨汤](./../dishes/soup/陈皮排骨汤.md) +* [中式馅饼](./../dishes/staple/中式馅饼/中式馅饼.md) +* [扬州炒饭](./../dishes/staple/扬州炒饭/扬州炒饭.md) +* [披萨饼皮](./../dishes/staple/披萨饼皮/披萨饼皮.md) +* [日式咖喱饭](./../dishes/staple/日式咖喱饭/日式咖喱饭.md) +* [河南蒸面条](./../dishes/staple/河南蒸面条/河南蒸面条.md) +* [火腿饭团](./../dishes/staple/火腿饭团/火腿饭团.md) +* [炒河粉](./../dishes/staple/炒河粉.md) +* [烙饼](./../dishes/staple/烙饼/烙饼.md) +* [空气炸锅照烧鸡饭](./../dishes/staple/空气炸锅照烧鸡饭/空气炸锅照烧鸡饭.md) +* [蒸卤面](./../dishes/staple/蒸卤面.md) +* [示例菜](./../dishes/template/示例菜/示例菜.md) +* [红烧茄子](./../dishes/vegetable_dish/红烧茄子.md) \ No newline at end of file diff --git a/starsystem/5Star.md b/starsystem/5Star.md new file mode 100644 index 0000000000..4ca7b531da --- /dev/null +++ b/starsystem/5Star.md @@ -0,0 +1,18 @@ +# 5 星难度菜品 + +* [戚风蛋糕](./../dishes/dessert/戚风蛋糕/戚风蛋糕.md) +* [芋泥雪媚娘](./../dishes/dessert/芋泥雪媚娘/芋泥雪媚娘.md) +* [台式卤肉饭](./../dishes/meat_dish/台式卤肉饭/台式卤肉饭.md) +* [商芝肉](./../dishes/meat_dish/商芝肉.md) +* [带把肘子](./../dishes/meat_dish/带把肘子.md) +* [无骨鸡爪](./../dishes/meat_dish/无骨鸡爪/无骨鸡爪.md) +* [枝竹羊腩煲](./../dishes/meat_dish/枝竹羊腩煲/枝竹羊腩煲.md) +* [水煮肉片](./../dishes/meat_dish/水煮肉片.md) +* [猪皮冻](./../dishes/meat_dish/猪皮冻/猪皮冻.md) +* [猪肉烩酸菜](./../dishes/meat_dish/猪肉烩酸菜.md) +* [血浆鸭](./../dishes/meat_dish/血浆鸭/血浆鸭.md) +* [西红柿牛腩](./../dishes/meat_dish/西红柿牛腩/西红柿牛腩.md) +* [酱牛肉](./../dishes/meat_dish/酱牛肉/酱牛肉.md) +* [牛油火锅底料](./../dishes/semi-finished/牛油火锅底料.md) +* [基础牛奶面包](./../dishes/staple/基础牛奶面包/基础牛奶面包.md) +* [手工水饺](./../dishes/staple/手工水饺.md) \ No newline at end of file diff --git "a/tips/advanced/\346\262\271\346\270\251\345\210\244\346\226\255\346\212\200\345\267\247.md" "b/tips/advanced/\346\262\271\346\270\251\345\210\244\346\226\255\346\212\200\345\267\247.md" index 6ce9da2d6d..99931e9e93 100644 --- "a/tips/advanced/\346\262\271\346\270\251\345\210\244\346\226\255\346\212\200\345\267\247.md" +++ "b/tips/advanced/\346\262\271\346\270\251\345\210\244\346\226\255\346\212\200\345\267\247.md" @@ -8,12 +8,13 @@ > 网络视频教程中所谓的 “几成油温” 指的是相对于十成油温,为 300°C。 > 即 n成油温 T_n = 30n [degree Celsius] > 温度换算公式 -> C = 5/9* (F - 32) +> C = 5/9 *(F - 32) > 或者 > F = 9/5*C + 32 ---- -### 附油温对照表 (根据上述描述)误差为非专业数据 +## 附油温对照表 + +根据上述描述制表。误差为非专业数据。 | 摄氏度 °C | 常见名称 | 华氏度 °F | | :----: | :----: | :----: | diff --git "a/tips/learn/pic/\350\222\270\347\233\230.jpg" "b/tips/learn/pic/\350\222\270\347\233\230.jpg" deleted file mode 100644 index 4f113d481e..0000000000 Binary files "a/tips/learn/pic/\350\222\270\347\233\230.jpg" and /dev/null differ diff --git "a/tips/learn/\345\255\246\344\271\240\350\222\270.md" "b/tips/learn/\345\255\246\344\271\240\350\222\270.md" index 4454990180..cc888cf649 100644 --- "a/tips/learn/\345\255\246\344\271\240\350\222\270.md" +++ "b/tips/learn/\345\255\246\344\271\240\350\222\270.md" @@ -19,4 +19,4 @@ * 由于热源为水蒸气,较低的蒸屉中的食物底部可能被水浸湿。可将蒸笼布放在食物底下以避免这种情况。用筷子搭个放食物的简易支架也可以。 * 可以利用智能设备设置计时器,提醒关火,以防忘记以致烧干。 * 在使用蒸笼制作食品的过程中,需要注意底部区域的剩余水量,**特别是铁锅**,避免干锅从而造成安全问题。 -* (可选)使用铁锅蒸食物时,可以在三脚架上面放置一个[蒸盘](./pic/蒸盘.jpg)。 +* (可选)使用铁锅蒸食物时,可以在三脚架上面放置一个蒸盘。