mirror of
https://github.com/Anduin2017/HowToCook.git
synced 2026-06-06 14:27:07 +08:00
Compare commits
31 Commits
Anduin2017
...
1.6.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0b14bd388 | ||
|
|
b7c4dabf47 | ||
|
|
e1a7e60517 | ||
|
|
16c9dcafc0 | ||
|
|
2dd6246034 | ||
|
|
ba1295076a | ||
|
|
83f6d8f825 | ||
|
|
5382658fbc | ||
|
|
c2662846f5 | ||
|
|
795708d5c4 | ||
|
|
9e12990647 | ||
|
|
c8da0528ae | ||
|
|
3bc87e94df | ||
|
|
44711e6a13 | ||
|
|
52bd8d6434 | ||
|
|
3c89c583ab | ||
|
|
6f83b5e49d | ||
|
|
31e0396f9f | ||
|
|
e84bd91182 | ||
|
|
a21c68aea3 | ||
|
|
ac0dfaab6d | ||
|
|
3bb7159bf8 | ||
|
|
d541fd425d | ||
|
|
a7d81fa681 | ||
|
|
1857c9e313 | ||
|
|
2d8bb2a7b5 | ||
|
|
74314ed468 | ||
|
|
65453fbd2c | ||
|
|
fb200c2ec8 | ||
|
|
48fc47aa86 | ||
|
|
64ed9b7156 |
44
.github/manual_lint.js
vendored
44
.github/manual_lint.js
vendored
@@ -2,6 +2,7 @@ const util = require("util");
|
||||
const glob = util.promisify(require('glob'));
|
||||
const fs = require("fs").promises;
|
||||
const path = require('path');
|
||||
const fsSyncAccess = require("fs");
|
||||
|
||||
const MAX_FILE_SIZE = 1024 * 1024; // 1MB
|
||||
// glob 模式,定位菜谱 Markdown 文件和所有文件
|
||||
@@ -143,6 +144,49 @@ const validators = [
|
||||
if (!lines.includes(footer)) {
|
||||
errors.push(`文件 ${filePath} 不符合仓库的规范! 它没有包含必需的附加内容!,需要在最后一行添加模板中的【${footer}】`);
|
||||
}
|
||||
},
|
||||
|
||||
// 检查图片引用是否存在
|
||||
async (filePath, lines, errors) => {
|
||||
const fileDir = path.dirname(filePath);
|
||||
const content = lines.join('\n');
|
||||
|
||||
// 匹配  和 [text](path) 的图片引用
|
||||
// 支持相对路径和 URL
|
||||
const imageRegex = /\[([^\]]*)\]\(([^)]+\.(?:jpg|jpeg|png|gif|webp|svg))\)/gi;
|
||||
let match;
|
||||
const imageRefs = new Set();
|
||||
|
||||
while ((match = imageRegex.exec(content)) !== null) {
|
||||
imageRefs.add(match[2]);
|
||||
}
|
||||
|
||||
// 检查每个引用的图片是否存在
|
||||
for (const imagePath of imageRefs) {
|
||||
// 跳过 URL(http/https/ftp)
|
||||
if (imagePath.startsWith('http://') || imagePath.startsWith('https://') || imagePath.startsWith('ftp://')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// 解析相对路径
|
||||
let fullImagePath;
|
||||
if (imagePath.startsWith('/')) {
|
||||
// 绝对路径(相对于repo根目录)
|
||||
fullImagePath = path.resolve(__dirname, '../../', imagePath);
|
||||
} else if (imagePath.includes('..')) {
|
||||
// 相对路径(包含 ..)
|
||||
fullImagePath = path.resolve(fileDir, imagePath);
|
||||
} else {
|
||||
// 相对路径(同目录或子目录)
|
||||
fullImagePath = path.resolve(fileDir, imagePath);
|
||||
}
|
||||
|
||||
try {
|
||||
fsSyncAccess.accessSync(fullImagePath);
|
||||
} catch (err) {
|
||||
errors.push(`文件 ${filePath} 引用了不存在的图片: ${imagePath}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
122
.github/readme-generate.js
vendored
122
.github/readme-generate.js
vendored
@@ -3,174 +3,79 @@ 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'];
|
||||
const ignorePaths = ['.git', 'README.md', 'node_modules', 'CONTRIBUTING.md', '.github', 'en', 'site'];
|
||||
|
||||
const categories = {
|
||||
vegetable_dish: {
|
||||
title: '素菜',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
meat_dish: {
|
||||
title: '荤菜',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
aquatic: {
|
||||
title: '水产',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
breakfast: {
|
||||
title: '早餐',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
staple: {
|
||||
title: '主食',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
'semi-finished': {
|
||||
title: '半成品加工',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
soup: {
|
||||
title: '汤与粥',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
drink: {
|
||||
title: '饮料',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
condiment: {
|
||||
title: '酱料和其它材料',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
dessert: {
|
||||
title: '甜品',
|
||||
readme: '',
|
||||
mkdocs: '',
|
||||
},
|
||||
};
|
||||
|
||||
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 = '';
|
||||
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);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (markdown.path.includes('tips')) {
|
||||
README_BEFORE += inlineReadmeTemplate(markdown.file, markdown.path);
|
||||
MKDOCS_BEFORE += inlineMkdocsTemplate(markdown.file, markdown.path);
|
||||
continue;
|
||||
}
|
||||
|
||||
for (const category of Object.keys(categories)) {
|
||||
if (!markdown.path.includes(category)) continue;
|
||||
categories[category].readme += inlineReadmeTemplate(markdown.file, markdown.path);
|
||||
categories[category].mkdocs += inlineMkdocsTemplate(
|
||||
markdown.file,
|
||||
markdown.path,
|
||||
true,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
for (const category of Object.values(categories)) {
|
||||
README_MAIN += categoryReadmeTemplate(category.title, category.readme);
|
||||
MKDOCS_MAIN += categoryMkdocsTemplate(category.title, category.mkdocs);
|
||||
}
|
||||
|
||||
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) {
|
||||
@@ -178,30 +83,13 @@ async function main() {
|
||||
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
|
||||
.replace('{{before}}', MKDOCS_BEFORE)
|
||||
.replace('{{main}}', MKDOCS_MAIN)
|
||||
.replace('{{after}}', MKDOCS_AFTER),
|
||||
);
|
||||
|
||||
// Organize files by star rating
|
||||
//await organizeByStars(dishesFolder, starsystemFolder);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
@@ -234,12 +122,4 @@ function categoryReadmeTemplate(title, inlineStr) {
|
||||
return `\n### ${title}\n\n${inlineStr}`;
|
||||
}
|
||||
|
||||
function inlineMkdocsTemplate(file, path, isDish = false) {
|
||||
return `${' '.repeat(isDish ? 10 : 6)}- ${file.replace('.md', '')}: ${path}/${file}\n`;
|
||||
}
|
||||
|
||||
function categoryMkdocsTemplate(title, inlineStr) {
|
||||
return `\n${' '.repeat(6)}- ${title}:\n${inlineStr}`;
|
||||
}
|
||||
|
||||
main();
|
||||
|
||||
93
.github/templates/mkdocs_template.yml
vendored
93
.github/templates/mkdocs_template.yml
vendored
@@ -1,93 +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
|
||||
- with-pdf:
|
||||
author: GitHub Community
|
||||
copyright: The Unlicense
|
||||
cover_title: How To Cook
|
||||
cover_subtitle: 程序员做饭指南
|
||||
output_path: document.pdf
|
||||
- minify:
|
||||
minify_html: true
|
||||
|
||||
nav:
|
||||
- README.md
|
||||
- 做菜之前:
|
||||
{{before}}
|
||||
- 菜谱:
|
||||
- 按种类: # 只有两层section以上才能出现navigation expansion https://squidfunk.github.io/mkdocs-material/setup/setting-up-navigation/#navigation-sections
|
||||
{{main}}
|
||||
- 进阶知识学习:
|
||||
{{after}}
|
||||
- CONTRIBUTING.md
|
||||
- CODE_OF_CONDUCT.md
|
||||
15
.github/templates/readme_template.md
vendored
15
.github/templates/readme_template.md
vendored
@@ -1,12 +1,10 @@
|
||||
# 程序员做饭指南
|
||||
|
||||
[](https://github.com/Anduin2017/HowToCook/actions/workflows/build.yml)
|
||||
[](./LICENSE)
|
||||
[](https://github.com/Anduin2017/HowToCook/graphs/contributors)
|
||||
[](https://www.npmjs.com/package/how-to-cook)
|
||||
[](https://manhours.aiursoft.com/r/github.com/Anduin2017/HowToCook.html)
|
||||
[](https://github.com/Anduin2017/HowToCook/pkgs/container/how-to-cook)
|
||||
[](https://rvlt.gg/ndApqZEs)
|
||||
[](https://howtocook.aiursoft.com)
|
||||
[](https://hub.docker.com/r/aiursoft/howtocookviewer)
|
||||
|
||||
最近宅在家做饭,作为程序员,我偶尔在网上找找菜谱和做法。但是这些菜谱往往写法千奇百怪,经常中间莫名出来一些材料。对于习惯了形式语言的程序员来说极其不友好。
|
||||
|
||||
@@ -19,12 +17,10 @@
|
||||
如果需要在本地部署菜谱 Web 服务,可以在安装 Docker 后运行下面命令:
|
||||
|
||||
```bash
|
||||
docker pull ghcr.io/anduin2017/how-to-cook:latest
|
||||
docker run -d -p 5000:80 ghcr.io/anduin2017/how-to-cook:latest
|
||||
docker pull aiursoft/howtocookviewer
|
||||
docker run -d -p 5000:5000 aiursoft/howtocookviewer
|
||||
```
|
||||
|
||||
如需下载 PDF 版本,可以在浏览器中访问 [/document.pdf](https://cook.aiursoft.com/document.pdf)
|
||||
|
||||
## 如何贡献
|
||||
|
||||
针对发现的问题,直接修改并提交 Pull request 即可。
|
||||
@@ -37,8 +33,6 @@ docker run -d -p 5000:80 ghcr.io/anduin2017/how-to-cook:latest
|
||||
|
||||
## 菜谱
|
||||
|
||||
{{index_stars}}
|
||||
|
||||
{{main}}
|
||||
|
||||
## 进阶知识学习
|
||||
@@ -53,3 +47,4 @@ docker run -d -p 5000:80 ghcr.io/anduin2017/how-to-cook:latest
|
||||
- [HowToCook-mcp 让 AI 助手变身私人大厨,为你的一日三餐出谋划策](https://github.com/worryzyy/HowToCook-mcp)
|
||||
- [HowToCook-py-mcp 让 AI 助手变身私人大厨,为你的一日三餐出谋划策 (Python)](https://github.com/DusKing1/howtocook-py-mcp)
|
||||
- [whatToEat 今天吃什么?的决策工具,帮助你快速选择合适的菜谱。](https://github.com/ryanuo/whatToEat)
|
||||
- [厨房计划:开源中文菜谱 API - 由社区贡献,人人可用](https://proj.kitchen)
|
||||
|
||||
21
.github/workflows/build.yml
vendored
21
.github/workflows/build.yml
vendored
@@ -29,24 +29,3 @@ jobs:
|
||||
commit_user_email: github-actions[bot]@users.noreply.github.com
|
||||
commit_author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
|
||||
|
||||
build-docker-image:
|
||||
needs: build-readme-file
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Checkout, install tools..
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
lfs: true
|
||||
fetch-depth: 0
|
||||
# Use docker to build current directory ./Dockfile
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3
|
||||
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
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -3,7 +3,8 @@ node_modules/
|
||||
.history
|
||||
.DS_Store
|
||||
site/
|
||||
starsystem/
|
||||
properdocs.yml
|
||||
|
||||
.idea
|
||||
*.iml
|
||||
mkdocs.yml
|
||||
*.iml
|
||||
24
Dockerfile
24
Dockerfile
@@ -1,24 +0,0 @@
|
||||
# ============================
|
||||
# Prepare lint Environment
|
||||
FROM node:22-alpine AS lint-env
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN npm install --loglevel verbose
|
||||
RUN npm run build
|
||||
RUN npm run lint
|
||||
|
||||
# ============================
|
||||
# Prepare Build Environment
|
||||
FROM python:3.11 AS python-env
|
||||
WORKDIR /app
|
||||
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 mkdocs build
|
||||
|
||||
# ============================
|
||||
# Prepare Runtime Environment
|
||||
FROM nginx:1-alpine
|
||||
COPY --from=python-env /app/site /usr/share/nginx/html
|
||||
|
||||
LABEL org.opencontainers.image.source="https://github.com/Anduin2017/HowToCook"
|
||||
22
README.md
22
README.md
@@ -1,12 +1,10 @@
|
||||
# 程序员做饭指南
|
||||
|
||||
[](https://github.com/Anduin2017/HowToCook/actions/workflows/build.yml)
|
||||
[](./LICENSE)
|
||||
[](https://github.com/Anduin2017/HowToCook/graphs/contributors)
|
||||
[](https://www.npmjs.com/package/how-to-cook)
|
||||
[](https://manhours.aiursoft.com/r/github.com/Anduin2017/HowToCook.html)
|
||||
[](https://github.com/Anduin2017/HowToCook/pkgs/container/how-to-cook)
|
||||
[](https://rvlt.gg/ndApqZEs)
|
||||
[](https://howtocook.aiursoft.com)
|
||||
[](https://hub.docker.com/r/aiursoft/howtocookviewer)
|
||||
|
||||
最近宅在家做饭,作为程序员,我偶尔在网上找找菜谱和做法。但是这些菜谱往往写法千奇百怪,经常中间莫名出来一些材料。对于习惯了形式语言的程序员来说极其不友好。
|
||||
|
||||
@@ -19,12 +17,10 @@
|
||||
如果需要在本地部署菜谱 Web 服务,可以在安装 Docker 后运行下面命令:
|
||||
|
||||
```bash
|
||||
docker pull ghcr.io/anduin2017/how-to-cook:latest
|
||||
docker run -d -p 5000:80 ghcr.io/anduin2017/how-to-cook:latest
|
||||
docker pull aiursoft/howtocookviewer
|
||||
docker run -d -p 5000:5000 aiursoft/howtocookviewer
|
||||
```
|
||||
|
||||
如需下载 PDF 版本,可以在浏览器中访问 [/document.pdf](https://cook.aiursoft.com/document.pdf)
|
||||
|
||||
## 如何贡献
|
||||
|
||||
针对发现的问题,直接修改并提交 Pull request 即可。
|
||||
@@ -50,14 +46,6 @@ docker run -d -p 5000:80 ghcr.io/anduin2017/how-to-cook:latest
|
||||
|
||||
## 菜谱
|
||||
|
||||
### 按难度索引
|
||||
|
||||
- [1 星难度](starsystem/1Star.md)
|
||||
- [2 星难度](starsystem/2Star.md)
|
||||
- [3 星难度](starsystem/3Star.md)
|
||||
- [4 星难度](starsystem/4Star.md)
|
||||
- [5 星难度](starsystem/5Star.md)
|
||||
|
||||
### 素菜
|
||||
|
||||
- [拔丝土豆](dishes/vegetable_dish/拔丝土豆/拔丝土豆.md)
|
||||
@@ -374,6 +362,7 @@ docker run -d -p 5000:80 ghcr.io/anduin2017/how-to-cook:latest
|
||||
- [米粥](dishes/soup/米粥.md)
|
||||
- [奶油蘑菇汤](dishes/soup/奶油蘑菇汤.md)
|
||||
- [排骨苦瓜汤](dishes/soup/排骨苦瓜汤/排骨苦瓜汤.md)
|
||||
- [排骨山药玉米汤](dishes/soup/排骨山药玉米汤/排骨山药玉米汤.md)
|
||||
- [皮蛋瘦肉粥](dishes/soup/皮蛋瘦肉粥.md)
|
||||
- [生汆丸子汤](dishes/soup/生汆丸子汤.md)
|
||||
- [西红柿鸡蛋汤](dishes/soup/西红柿鸡蛋汤.md)
|
||||
@@ -459,3 +448,4 @@ docker run -d -p 5000:80 ghcr.io/anduin2017/how-to-cook:latest
|
||||
- [HowToCook-mcp 让 AI 助手变身私人大厨,为你的一日三餐出谋划策](https://github.com/worryzyy/HowToCook-mcp)
|
||||
- [HowToCook-py-mcp 让 AI 助手变身私人大厨,为你的一日三餐出谋划策 (Python)](https://github.com/DusKing1/howtocook-py-mcp)
|
||||
- [whatToEat 今天吃什么?的决策工具,帮助你快速选择合适的菜谱。](https://github.com/ryanuo/whatToEat)
|
||||
- [厨房计划:开源中文菜谱 API - 由社区贡献,人人可用](https://proj.kitchen)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# 乡村啤酒鸭的做法
|
||||
|
||||

|
||||
|
||||
将鸭肉与啤酒一同炖煮成菜,使滋补的鸭肉味道更加浓厚,鸭肉不仅入口鲜香,还带有一股啤酒清香。一般初学者只需要 1 小时即可完成。
|
||||
|
||||
预估烹饪难度:★★★★
|
||||
@@ -46,8 +44,6 @@
|
||||
- 香叶 3 片
|
||||
- 干辣椒 6 条 (不吃辣可以不用
|
||||
|
||||

|
||||
|
||||
## 操作
|
||||
|
||||
### 鸭肉焯水以去腥去血水
|
||||
|
||||
@@ -4,52 +4,78 @@
|
||||
|
||||
## 必备原料和工具
|
||||
|
||||
- 肋排
|
||||
- 土豆
|
||||
- 姜
|
||||
- 小葱
|
||||
- 料酒
|
||||
- 白糖
|
||||
- 干辣椒
|
||||
- 八角
|
||||
- 花椒
|
||||
- 桂皮
|
||||
- 生抽
|
||||
- 老抽
|
||||
- 蚝油
|
||||
- 黄豆酱
|
||||
* 肋排
|
||||
* 土豆
|
||||
* 姜
|
||||
* 小葱
|
||||
* 料酒
|
||||
* 白糖
|
||||
* 干辣椒
|
||||
* 八角
|
||||
* 花椒
|
||||
* 桂皮
|
||||
* 生抽
|
||||
* 老抽
|
||||
* 蚝油
|
||||
* 黄豆酱
|
||||
* 盐
|
||||
* 食用油
|
||||
|
||||
## 计算
|
||||
|
||||
- 肋排 = 750g
|
||||
- 土豆 = 300g
|
||||
- 姜 = 30g
|
||||
- 小葱 = 25g
|
||||
- 料酒 = 25g
|
||||
- 白糖 = 10g
|
||||
- 干辣椒 = 5g
|
||||
- 八角 = 5g
|
||||
- 花椒 = 5g
|
||||
- 桂皮 = 5g
|
||||
- 生抽 = 10g
|
||||
- 老抽 = 5g
|
||||
- 蚝油 = 5g
|
||||
- 黄豆酱 = 5g
|
||||
注意:以下参数为标准 2-3 人份的精确配置。
|
||||
|
||||
* 肋排 = 750g
|
||||
* 土豆 = 300g
|
||||
* 姜 = 30g (分为两份:15g 焯水用,15g 炒制用)
|
||||
* 小葱 = 25g (分为两份:15g 打成葱结,10g 切葱花)
|
||||
* 料酒 = 25ml (分为两份:15ml 焯水用,10ml 炒制用)
|
||||
* 白糖 = 10g
|
||||
* 干辣椒 = 5g
|
||||
* 八角 = 1g (约 1-2 颗)
|
||||
* 花椒 = 1g (约 10 粒)
|
||||
* 桂皮 = 1g (一小块)
|
||||
* 生抽 = 10ml
|
||||
* 老抽 = 5ml
|
||||
* 蚝油 = 5ml
|
||||
* 黄豆酱 = 5g
|
||||
* 盐 = 3g (最后收汁调味用)
|
||||
* 开水 = 700ml
|
||||
* 食用油 = 20ml
|
||||
|
||||
## 操作
|
||||
|
||||
- 土豆两个滚刀切片,姜片切片
|
||||
- 排骨 750g 冷水下锅,加入姜片、葱段、料酒焯水 2 分钟,焯干水后捞出清洗干净(一定要用热水,不能用冷水)
|
||||
- 热锅凉油,将白糖倒入锅中,翻炒至融化为焦糖色
|
||||
- 加入排骨煎至两面金黄,让排骨裹满焦糖
|
||||
- 加入干辣椒、八角、花椒、桂皮、姜片(建议买超市的香料包)、10ml 生抽、5ml 老抽、5ml 料酒、5ml 蚝油、5ml 黄豆酱
|
||||
- 大火翻炒均匀后加入 700ml 开水,大火烧开后转小火焖煮 1 小时
|
||||
- 最后加入土豆煮 10 分钟就可以出锅啦(喜欢吃青红椒的也可以按自己喜好加入)
|
||||
- 
|
||||
- 
|
||||
### 预处理:食材切配与防氧化
|
||||
|
||||
* **处理土豆:** 将 300g 土豆去皮,切成不规则的滚刀块 。**切好后立刻泡入一盆清水中**,隔绝氧气防止表面氧化发黑,备用。
|
||||
* **处理葱姜:** 将 30g 姜全部切成薄片(分成两份 15g)。将 25g 小葱处理好:15g 挽成一个葱结,剩余 10g 切成细小葱花备用。
|
||||
|
||||
### 预处理:调料封装与异步任务
|
||||
|
||||
* **封装酱汁碗(一键调用):** 拿一个小碗,依次加入 10ml 生抽、5ml 老抽、5ml 蚝油、5ml 黄豆酱,彻底搅拌均匀,放在灶台触手可及处备用。
|
||||
* **封装香料碟(一键调用):** 拿一个小碟,放入 5g 干辣椒、1g 八角(约 1-2 颗)、1g 花椒(约 10 粒)、1g 桂皮(一小块),以及刚才切好的 15g 姜片,备用。
|
||||
* **开启异步水程:** 按下电热水壶开关,开始烧制 700ml 开水。(确保炒制完成时,开水刚好就绪)。
|
||||
|
||||
### 初步加工:排骨焯水与脱水
|
||||
|
||||
* **冷水焯水:** 将 750g 肋排冷水下锅,加入 15g 葱结、15g 姜片、15ml 料酒。大火煮沸后,继续保持沸腾焯水 2 分钟,逼出内部血沫。
|
||||
* **热洗冷防:** 捞出排骨,**必须用热水**将排骨表面残留的浮沫清洗干净(遇冷水肉质会剧烈收缩变硬)。
|
||||
* **绝对脱水(防爆防溅):** 洗净的排骨**必须用厨房纸彻底吸干表面水分**,装盘放在炒锅旁边备用(防止后续下入高温糖色时发生剧烈炸锅)。
|
||||
|
||||
### 核心炒制:糖色与爆香(高并发阶段)
|
||||
|
||||
* **炒制糖色:** 热锅凉油,加入 20ml 食用油。将 10g 白糖倒入锅中,中小火不停搅拌。翻炒至白糖完全融化冒泡,并呈现红棕色的焦糖色 。
|
||||
* **上色煎制:** 迅速加入彻底脱水的 750g 排骨,转中大火翻炒。煎制约 2-3 分钟,至排骨两面微微金黄,且均匀裹满焦糖色。
|
||||
* **一键爆香:** 在锅中拨出一小块空地,**直接倒入【香料碟】**。利用锅底的热油爆香约 10 秒,激发出香料的脂溶性香气。
|
||||
* **一键调味:** 顺着热锅边缘淋入剩余的 10ml 料酒激发出锅气。紧接着**直接倒入【酱汁碗】**,翻炒约 30 秒,让酱料完全包裹排骨并炒出浓郁酱香。
|
||||
|
||||
### 炖煮收汁:挂霜与出锅
|
||||
|
||||
* **加水长炖:** 此时电热水壶已沸腾,直接加入 700ml 滚烫的开水(水量需没过排骨),大火烧开。随后盖上锅盖,转小火持续焖煮 40 分钟。
|
||||
* **加入土豆:** 40 分钟后打开锅盖,将泡在水里的 300g 土豆捞出沥干,下入锅中。重新盖上锅盖,继续小火焖煮 15-20 分钟,直到用筷子能轻松扎透土豆块。
|
||||
* **调味收汁:** 打开锅盖,加入 3g 盐(此时可尝一下汤汁,根据个人口味酌情微调)。转大火开始翻炒收汁,大约需要 3-5 分钟。直到汤汁变得浓稠,均匀地挂在排骨和土豆上即可关火。
|
||||
* **点缀出锅:** 盛盘出锅,在表面均匀撒上预处理好的 10g 葱花作为 UI 点缀即可。
|
||||
|
||||
## 附加内容
|
||||
|
||||
这道菜难度系数简单,对新手友好,超级下饭
|
||||
|
||||
如果您遵循本指南的制作流程而发现有问题或可以改进的流程,请提出 Issue 或 Pull request 。
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:256ca6f03935e94db9553c815f90cd70b023aa12dd71009d62a0d6f4fd86c86c
|
||||
size 2914595
|
||||
oid sha256:c606a823d0667954b35e267b1e4e9d634df4117d4c3a9efd485f40803fd254d6
|
||||
size 1035603
|
||||
|
||||
66
dishes/soup/排骨山药玉米汤/排骨山药玉米汤.md
Normal file
66
dishes/soup/排骨山药玉米汤/排骨山药玉米汤.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# 排骨山药玉米汤的做法
|
||||
|
||||
排骨山药玉米汤是一道兼具清甜与滋补的经典家常汤品。山药软糯、玉米清甜,搭配排骨的醇厚,具有健脾益胃、增强免疫力的功效。
|
||||
|
||||
预估烹饪难度:★★
|
||||
|
||||
## 必备原料和工具
|
||||
|
||||
- 排骨(推荐精排)
|
||||
- 山药(推荐铁棍山药)
|
||||
- 胡萝卜
|
||||
- 玉米(推荐甜玉米或糯玉米)
|
||||
- 生姜
|
||||
- 小葱
|
||||
- 料酒
|
||||
- 食盐
|
||||
- 砂锅或深汤锅
|
||||
|
||||
## 计算
|
||||
|
||||
每次制作前需要确定计划做几份。一份正好够 2 人喝。
|
||||
|
||||
每份:
|
||||
|
||||
- 排骨 500g
|
||||
- 山药 1 根(大约 300g)
|
||||
- 胡萝卜 1 根(大约 150g)
|
||||
- 玉米 1 根(大约 250g)
|
||||
- 生姜(大约 20g,切片备用)
|
||||
- 小葱(大约 15g,打结或切末备用)
|
||||
- 料酒 15ml
|
||||
- 食用油 10ml
|
||||
- 饮用水 1500ml - 2000ml
|
||||
- 食盐 6g - 8g
|
||||
|
||||
## 操作
|
||||
|
||||
- **食材预处理**:
|
||||
- 将胡萝卜洗净去皮,切成大约 3cm 的滚刀块。
|
||||
- 玉米洗净,剁成大约 4cm 的圆柱状小块。
|
||||
- 山药去皮(建议佩戴手套,防止粘液导致皮肤过敏),切成大约 4cm 的长段,备用。
|
||||
- **排骨焯水**:
|
||||
- 锅中加入足量冷水,放入洗净的排骨。
|
||||
- 加入大约 10g 姜片、葱结和 15ml 料酒。
|
||||
- 大火煮沸,沸腾后**等待 3 分钟**,期间用勺子撇去表面浮沫。
|
||||
- 捞出排骨,用大约 40℃ 的温水洗净杂质,沥干备用。
|
||||
- **翻炒排骨**:
|
||||
- 热锅,倒入 10ml 食用油,等待 10 秒让油温升高。
|
||||
- 放入剩余大约 10g 姜片爆香。
|
||||
- 放入全部准备好的排骨,保持中火翻炒大约 1 分钟,至排骨表面微焦。
|
||||
- **炖煮过程**:
|
||||
- 在锅中一次性加入 1500ml - 2000ml 饮用水。
|
||||
- 放入全部准备好的胡萝卜、玉米和山药。
|
||||
- 大火烧开后转小火,盖上锅盖,**慢炖 40 分钟**。
|
||||
- **调味与出锅**:
|
||||
- 加入 6g - 8g 食盐,用勺子搅拌均匀。
|
||||
- 保持小火继续**炖煮 2 分钟**使盐分入味。
|
||||
- 关火,根据个人喜好撒入小葱末,盛盘。
|
||||
|
||||
## 附加内容
|
||||
|
||||
- **防氧化技巧**:山药去皮后若不立即下锅,应浸泡在清水中,防止接触空气氧化变黑。
|
||||
- **口感控制**:若喜欢山药极度软糯,可与排骨同时下锅;若喜欢山药成块不散,可在排骨炖煮 20 分钟后再放入山药。
|
||||
- **补水须知**:炖煮过程中如发现水位低于食材,务必添加热水,避免加入冷水导致肉质纤维瞬间收缩变柴。
|
||||
|
||||
如果您遵循本指南的制作流程而发现有问题或可以改进的流程,请提出 Issue 或 Pull request 。
|
||||
@@ -1,5 +0,0 @@
|
||||
mkdocs-material
|
||||
mkdocs-same-dir
|
||||
mkdocs-minify-plugin
|
||||
mkdocs-with-pdf
|
||||
weasyprint
|
||||
@@ -1,3 +0,0 @@
|
||||
# 0 星难度菜品
|
||||
|
||||
* [煎烤羊排](./../dishes/meat_dish/煎烤羊排/煎烤羊排.md)
|
||||
@@ -1,35 +0,0 @@
|
||||
# 1 星难度菜品
|
||||
|
||||
* [吐司果酱](./../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/drink/奇异果菠菜特调/奇异果菠菜特调.md)
|
||||
* [柠檬水](./../dishes/drink/柠檬水/柠檬水.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/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/vegetable_dish/凉拌油麦菜.md)
|
||||
* [凉拌黄瓜](./../dishes/vegetable_dish/凉拌黄瓜.md)
|
||||
* [清蒸南瓜](./../dishes/vegetable_dish/清蒸南瓜.md)
|
||||
* [炒滑蛋](./../dishes/vegetable_dish/炒滑蛋/炒滑蛋.md)
|
||||
* [皮蛋豆腐](./../dishes/vegetable_dish/皮蛋豆腐.md)
|
||||
* [鸡蛋花](./../dishes/vegetable_dish/鸡蛋花/鸡蛋花.md)
|
||||
@@ -1,90 +0,0 @@
|
||||
# 2 星难度菜品
|
||||
|
||||
* [白灼虾](./../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/condiment/油酥.md)
|
||||
* [炸串酱料](./../dishes/condiment/炸串酱料.md)
|
||||
* [糖醋汁](./../dishes/condiment/糖醋汁.md)
|
||||
* [草莓酱](./../dishes/condiment/草莓酱/草莓酱.md)
|
||||
* [蒜香酱油](./../dishes/condiment/蒜香酱油.md)
|
||||
* [烤箱版巴斯克芝士蛋糕](./../dishes/dessert/烤箱版巴斯克芝士蛋糕/烤箱版巴斯克芝士蛋糕.md)
|
||||
* [草莓冰淇淋](./../dishes/dessert/草莓冰淇淋/草莓冰淇淋.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/drink/长岛冰茶.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)
|
||||
* [西红柿豆腐汤羹](./../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)
|
||||
@@ -1,128 +0,0 @@
|
||||
# 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/aquatic/黄油煎虾/黄油煎虾.md)
|
||||
* [意式香肠北非蛋](./../dishes/breakfast/意式香肠北非蛋.md)
|
||||
* [温泉蛋](./../dishes/breakfast/温泉蛋/温泉蛋.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)
|
||||
* [胡萝卜甜糕](./../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/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/meat_dish/香干芹菜炒肉/香干芹菜炒肉.md)
|
||||
* [香煎五花肉](./../dishes/meat_dish/香煎五花肉/香煎五花肉.md)
|
||||
* [香菇滑鸡](./../dishes/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/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/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)
|
||||
@@ -1,89 +0,0 @@
|
||||
# 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/aquatic/香煎翘嘴鱼/香煎翘嘴鱼.md)
|
||||
* [简易版炒糖色](./../dishes/condiment/简易版炒糖色.md)
|
||||
* [咖啡椰奶冻](./../dishes/dessert/咖啡椰奶冻/咖啡椰奶冻.md)
|
||||
* [提拉米苏](./../dishes/dessert/提拉米苏/提拉米苏.md)
|
||||
* [烤蛋挞](./../dishes/dessert/烤蛋挞/烤蛋挞.md)
|
||||
* [酸奶意式奶冻](./../dishes/dessert/酸奶意式奶冻/酸奶意式奶冻.md)
|
||||
* [魔芋蛋糕](./../dishes/dessert/魔芋蛋糕/魔芋蛋糕.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/meat_dish/萝卜炖羊排.md)
|
||||
* [西红柿土豆炖牛肉](./../dishes/meat_dish/西红柿土豆炖牛肉/西红柿土豆炖牛肉.md)
|
||||
* [豉汁排骨](./../dishes/meat_dish/豉汁排骨.md)
|
||||
* [贵州辣子鸡](./../dishes/meat_dish/贵州辣子鸡/贵州辣子鸡.md)
|
||||
* [酱排骨](./../dishes/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/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/staple/鲜肉烧卖.md)
|
||||
* [鹰嘴豆炸饼](./../dishes/staple/鹰嘴豆炸饼.md)
|
||||
* [示例菜](./../dishes/template/示例菜/示例菜.md)
|
||||
* [印度葫芦丸子](./../dishes/vegetable_dish/印度葫芦丸子.md)
|
||||
* [红烧茄子](./../dishes/vegetable_dish/红烧茄子.md)
|
||||
@@ -1,25 +0,0 @@
|
||||
# 5 星难度菜品
|
||||
|
||||
* [完美水煮蛋](./../dishes/breakfast/完美水煮蛋.md)
|
||||
* [戚风蛋糕](./../dishes/dessert/戚风蛋糕/戚风蛋糕.md)
|
||||
* [无厨师机蜂蜜面包](./../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/meat_dish/血浆鸭/血浆鸭.md)
|
||||
* [西红柿牛腩](./../dishes/meat_dish/西红柿牛腩/西红柿牛腩.md)
|
||||
* [酱牛肉](./../dishes/meat_dish/酱牛肉/酱牛肉.md)
|
||||
* [牛油火锅底料](./../dishes/semi-finished/牛油火锅底料.md)
|
||||
* [利提巧卡](./../dishes/staple/利提巧卡.md)
|
||||
* [印度焖饭](./../dishes/staple/印度焖饭.md)
|
||||
* [基础牛奶面包](./../dishes/staple/基础牛奶面包/基础牛奶面包.md)
|
||||
* [手工水饺](./../dishes/staple/手工水饺.md)
|
||||
@@ -1,3 +0,0 @@
|
||||
# 7 星难度菜品
|
||||
|
||||
* [无厨师机蜂蜜面包](./../dishes/dessert/无厨师机蜂蜜面包/无厨师机蜂蜜面包.md)
|
||||
@@ -1,3 +0,0 @@
|
||||
# 8 星难度菜品
|
||||
|
||||
* [照烧鸡腿饭](./../dishes/staple/照烧鸡腿饭.md)
|
||||
53
tips/厨房准备.md
53
tips/厨房准备.md
@@ -99,44 +99,47 @@ GB 28050-2011 规定,食品配料含有或生产过程中使用了氢化和(
|
||||
| 椰子油 | 91% | 0% | 2% | 7% |
|
||||
|
||||
* `花生油`富含`单不饱和脂肪`。但只建议选择高品质的。加工时也要注意不要加热过久以免产生`反式脂肪酸`。
|
||||
* `橄榄油`富含`单不饱和脂肪`,其只有一个不饱和键。橄榄油`饱和脂肪酸`含量少。但只建议选择高品质的。加工时也要注意不要加热过久以免产生反式脂肪酸。
|
||||
* `大豆油`不含`饱和脂肪酸`,且含有亚油酸、维生素。但大豆油不稳定,容易在加工时产生`反式脂肪酸`,因此不建议长期食用,可以用于凉拌。
|
||||
* `菜籽油`热稳定性好,富含`多不饱和脂肪酸`,但可能含有芥酸,可能会引起脂肪沉积和心脏损伤。菜籽油缺少亚油酸,营养价值较低,容易腐败。
|
||||
* `椰子油`的`饱和脂肪酸`非常高,热稳定性好,但注意有些食品会使用氢化椰子油。适合在厨房用于煎炸,经常食用会增加肥胖风险。
|
||||
* `棕榈油`的`饱和脂肪酸`非常高,热稳定性好,经常食用会增加高胆固醇风险。
|
||||
* `猪油`,`牛油`等动物油脂,富含`饱和脂肪酸`,经常食用会增加高胆固醇风险。不推荐长期食用。
|
||||
* `橄榄油`富含`单不饱和脂肪`,其只有一个不饱和键。橄榄油`饱和脂肪酸`含量少。
|
||||
* **凉拌/低温烹饪:** 建议选择**特级初榨橄榄油(Extra Virgin)**,保留了更多的多酚等抗氧化物质,但其烟点较低(约 160-190℃),不适合高温爆炒。
|
||||
* **中高温炒菜:** 建议选择**精炼橄榄油**(标有 Pure 或 Refined),烟点更高(230℃ 以上),更适合中式烹饪。
|
||||
* `大豆油`含有约 15% 的`饱和脂肪酸`,且含有亚油酸、维生素。但大豆油多不饱和脂肪酸含量高,性质不稳定,容易在加工时产生`反式脂肪酸`,因此不建议长期用于高温爆炒,可以用于凉拌或普通炖煮。
|
||||
* `菜籽油`热稳定性较好。
|
||||
* **传统菜籽油:** 可能含有较高的芥酸,长期大量食用可能对心血管不利。
|
||||
* **双低菜籽油(即芥花油 Canola Oil):** 经过改良,芥酸含量极低(<2%),脂肪酸比例非常优秀(单不饱和脂肪酸高,且含 Omega-3),是目前营养学界非常推荐的日常炒菜用油。
|
||||
* `椰子油`的`饱和脂肪酸`非常高,热稳定性极好,但注意有些食品会使用氢化椰子油。适合在厨房用于煎炸。
|
||||
* `棕榈油`的`饱和脂肪酸`非常高,热稳定性好,常用于商业煎炸,经常食用会增加高胆固醇风险。
|
||||
* `猪油`,`牛油`等动物油脂,富含`饱和脂肪酸`,热稳定性极佳。虽然不容易在高温下产生有害物质,但因其对心血管健康的潜在负面影响,建议控制摄入量,不推荐作为单一长期食用油。
|
||||
|
||||
因此,根据上述表格,我们可以得出一些结论:
|
||||
|
||||
* 没有任何一种油品是完美的,每种油品都有其优缺点。因此,我们应该根据不同的烹饪场景选择不同的油品。
|
||||
* 不应该始终使用同一类油品,应该根据不同的烹饪场景选择不同的油品,以确保营养均衡。
|
||||
* 为了不摄入太多 `反式脂肪酸`。在加热时,不要选择热不稳定的油品,不要加热过久。
|
||||
* 不要大量食用煎炸食品。热稳定性好的油往往又含有大量的`饱和脂肪酸`,不适合长期食用。
|
||||
* 不要重复使用油品。油品在加热过程中会产生大量的`反式脂肪酸`。
|
||||
* 不要长时间食用外卖食品,因为很难确定他们使用了什么油品。
|
||||
* 没有任何一种油品是完美的,每种油品都有其优缺点。我们应该根据不同的烹饪场景(冷、热、炸)选择不同的油品。
|
||||
* **避免单一用油:** 现代人 Omega-6 摄入往往超标,而 Omega-3 严重不足。建议家中常备 2-3 种不同类型的油替换使用。
|
||||
* 为了不摄入太多 `反式脂肪酸`。在加热时,不要选择热不稳定的油品(如大豆油、玉米油爆炒),不要加热过久。
|
||||
* 不要大量食用煎炸食品。虽然饱和脂肪热稳定性好,但过量摄入饱和脂肪本身也是健康的负担。
|
||||
* 不要重复使用油品。油品在重复加热过程中会产生大量的`反式脂肪酸`和氧化产物。
|
||||
* 不要长时间食用外卖食品,因为很难确定他们使用了什么油品(通常是廉价且不稳定的油脂)。
|
||||
|
||||
#### 炒菜油
|
||||
#### 炒菜油(中温)
|
||||
|
||||
* 花生油 (选择高油品质)
|
||||
* 橄榄油 (选择高油品质)
|
||||
* 菜籽油 (选择低芥酸)
|
||||
* 芥花油(双低菜籽油)
|
||||
* 花生油
|
||||
* 精炼橄榄油
|
||||
|
||||
花生油、橄榄油、菜籽油含有较多不饱和脂肪酸,含有较少的饱和脂肪酸。但是其热稳定性较差,容易在加热过程中产生反式脂肪酸。因此,要注意控制加热时间,不要加热过久。
|
||||
这些油含有较多单不饱和脂肪酸,烟点适中或较高,能够胜任大多数中式炒菜需求。
|
||||
|
||||
#### 煎炸油
|
||||
#### 煎炸油(高温)
|
||||
|
||||
* 椰子油
|
||||
* 棕榈油
|
||||
* 牛油
|
||||
* 猪油
|
||||
* 猪油/牛油
|
||||
|
||||
爆炒、油炸时需要使用热稳定性更好的油,如:椰子油、棕榈油、牛油。它们产生的反式脂肪酸会更少。但是,它们的饱和脂肪酸含量较高,不适合长期食用。
|
||||
爆炒、油炸时需要使用热稳定性更好的饱和脂肪,它们产生的有害氧化产物更少。但从心血管健康考虑,**最根本的策略是减少煎炸的频率**。
|
||||
|
||||
#### 凉拌、炖煮油
|
||||
#### 凉拌、低温、炖煮油
|
||||
|
||||
* 亚麻籽油
|
||||
* 芝麻油
|
||||
* 核桃油
|
||||
* 紫苏油
|
||||
* 特级初榨橄榄油
|
||||
* 芝麻油/核桃油
|
||||
|
||||
这类场景不需要加热,因此不会产生反式脂肪酸。不要选择有太多饱和脂肪酸的油品。
|
||||
亚麻籽油和紫苏油富含极其珍贵的 **Omega-3**,但它们极度怕热,稍微加热就会氧化变质并产生异味。将它们作为凉拌油是补充 Omega-3 的“满分策略”。
|
||||
|
||||
Reference in New Issue
Block a user