Info
diff --git a/develop/lighthouse/index.html b/develop/lighthouse/index.html
index e324f7b..d3f5b35 100644
--- a/develop/lighthouse/index.html
+++ b/develop/lighthouse/index.html
@@ -2411,7 +2411,7 @@
💾 AI智能摘要 (DeepSeek)
-
Lighthouse是谷歌开发的网站性能测试工具,可评估页面加载速度、可访问性等关键指标。通过浏览器开发者工具(F12)即可快速运行测试,支持Chrome和Edge。该工具能精准定位性能瓶颈,帮助开发者优化网页体验,适用于各类网站的自动化性能检测与改进。测试结果直观展示各项评分,便于针对性提升。
+
Lighthouse是谷歌开发的网站性能测试工具,可评估页面加载速度、可访问性等关键指标。通过浏览器开发者工具(F12)即可快速启动测试,适用于各类网站的性能优化。该工具提供直观的评分和详细改进建议,帮助开发者定位性能瓶颈,提升用户体验。测试过程简单,无需额外安装,支持主流Chromium内核浏览器。

diff --git a/overrides/hooks/__pycache__/ai_summary.cpython-311.pyc b/overrides/hooks/__pycache__/ai_summary.cpython-311.pyc
index 700047c122a54db50ad1e6583aa88f5af0aba1ec..576fc3cdcc116b914844f7442284e45385c5e4cb 100644
GIT binary patch
delta 14758
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
delta 17287
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]+>')
- self.image_pattern = re.compile(r'!\[.*?\]\([^)]+\)')
- self.link_pattern = re.compile(r'\[([^\]]+)\]\([^)]+\)')
-
- # 支持的编程语言
- self.programming_languages = frozenset({
- 'python', 'py', 'javascript', 'js', 'typescript', 'ts', 'java', 'cpp', 'c',
- 'go', 'rust', 'php', 'ruby', 'swift', 'kotlin', 'csharp', 'cs',
- 'bash', 'sh', 'powershell', 'ps1', 'zsh', 'fish', 'bat', 'cmd',
- 'html', 'css', 'scss', 'sass', 'less', 'yaml', 'yml', 'json', 'xml',
- 'toml', 'ini', 'conf', 'dockerfile', 'makefile',
- 'sql', 'mysql', 'postgresql', 'sqlite', 'mongodb',
- 'r', 'matlab', 'scala', 'perl', 'lua', 'dart', 'tex', 'latex',
- 'csv', 'properties', ''
- })
-
# 在初始化时就进行环境检查
self._check_environment()
@@ -133,6 +136,10 @@ class AISummaryGenerator:
def _check_service_change(self):
"""检查AI服务是否发生变更,如有变更则自动清理缓存"""
+ # 如果禁用了缓存功能,跳过服务变更检查
+ if not self.ci_config['cache_enabled']:
+ return
+
current_config = {
'default_service': self.default_service,
'available_services': list(self.ai_services.keys()),
@@ -284,6 +291,10 @@ class AISummaryGenerator:
def get_cached_summary(self, content_hash):
"""获取缓存的摘要"""
+ # 如果禁用了缓存功能,直接返回None
+ if not self.ci_config['cache_enabled']:
+ return None
+
cache_file = self.cache_dir / f"{content_hash}.json"
if cache_file.exists():
try:
@@ -299,6 +310,10 @@ class AISummaryGenerator:
def save_summary_cache(self, content_hash, summary_data):
"""保存摘要到缓存"""
+ # 如果禁用了缓存功能,不保存缓存
+ if not self.ci_config['cache_enabled']:
+ return
+
cache_file = self.cache_dir / f"{content_hash}.json"
try:
summary_data['timestamp'] = datetime.now().isoformat()
@@ -573,7 +588,7 @@ Please generate bilingual summary:"""
# 如果在 CI 环境中且配置为只使用缓存
if is_ci and self.ci_config['ci_only_cache']:
- print(f"📦 CI 环境仅使用缓存模式")
+ print(f"📦 CI 环 environment仅使用缓存模式")
return None, 'ci_cache_only'
# 按优先级尝试不同服务
@@ -624,18 +639,18 @@ Please generate bilingual summary:"""
priority_sentences.append(sentence)
else:
normal_sentences.append(sentence)
-
+
# 组合摘要
selected_sentences = []
total_length = 0
-
+
# 优先使用关键句子
for sentence in priority_sentences:
if total_length + len(sentence) > 100:
break
selected_sentences.append(sentence)
total_length += len(sentence)
-
+
# 如果还有空间,添加普通句子
if total_length < 80:
for sentence in normal_sentences:
@@ -643,7 +658,7 @@ Please generate bilingual summary:"""
break
selected_sentences.append(sentence)
total_length += len(sentence)
-
+
if selected_sentences:
summary = '.'.join(selected_sentences) + '.'
# 简化冗长的摘要
@@ -672,119 +687,34 @@ Please generate bilingual summary:"""
def _generate_chinese_fallback(self, page_title=""):
"""生成中文备用摘要"""
- if any(keyword in page_title for keyword in ['教程', '指南', 'Tutorial']):
- return '本文提供了详细的教程指南,通过实例演示帮助读者掌握相关技术要点。'
- elif any(keyword in page_title for keyword in ['配置', '设置', '安装', 'Config']):
- return '本文介绍了系统配置的方法和步骤,提供实用的设置建议和最佳实践。'
- elif any(keyword in page_title for keyword in ['开发', '编程', 'Development']):
- return '本文分享了开发经验和技术实践,提供了实用的代码示例和解决方案。'
+ if page_title:
+ # 根据标题生成通用摘要
+ if any(keyword in page_title for keyword in ['教程', '指南', '配置', '安装']):
+ return f"本文介绍了{page_title}的相关内容,包括具体的操作步骤和注意事项,为读者提供实用的技术指导。"
+ elif any(keyword in page_title for keyword in ['分析', '研究', '探讨', '原理']):
+ return f"本文深入分析了{page_title}的核心概念和技术原理,为读者提供详细的理论解析和实践见解。"
+ elif any(keyword in page_title for keyword in ['开发', '构建', '实现', '设计']):
+ return f"本文详细讲解了{page_title}的开发过程和实现方法,分享了实际的开发经验和技术方案。"
+ else:
+ return f"本文围绕{page_title}展开讨论,介绍了相关的技术概念、应用场景和实践方法。"
else:
- return '本文深入探讨了相关技术内容,提供了实用的方法和解决方案。'
-
+ return "本文介绍了相关的技术概念和实践方法,为读者提供有价值的参考信息。"
+
def _generate_english_fallback(self, page_title=""):
"""生成英文备用摘要"""
- if any(keyword in page_title.lower() for keyword in ['tutorial', 'guide', '教程', '指南']):
- return 'This article provides a detailed tutorial guide with practical examples to help readers master relevant technical points.'
- elif any(keyword in page_title.lower() for keyword in ['config', 'setup', 'install', '配置', '设置', '安装']):
- return 'This article introduces system configuration methods and procedures, providing practical setup suggestions and best practices.'
- elif any(keyword in page_title.lower() for keyword in ['develop', 'programming', 'code', '开发', '编程']):
- return 'This article shares development experience and technical practices, providing practical code examples and solutions.'
+ if page_title:
+ # 根据标题生成通用摘要
+ if any(keyword in page_title.lower() for keyword in ['tutorial', 'guide', 'setup', 'install', 'config']):
+ return f"This article provides a comprehensive guide on {page_title}, including step-by-step instructions and important considerations for practical implementation."
+ elif any(keyword in page_title.lower() for keyword in ['analysis', 'research', 'study', 'principle']):
+ return f"This article presents an in-depth analysis of {page_title}, exploring core concepts and technical principles with detailed theoretical insights."
+ elif any(keyword in page_title.lower() for keyword in ['develop', 'build', 'implement', 'design']):
+ return f"This article explains the development process and implementation methods for {page_title}, sharing practical development experience and technical solutions."
+ else:
+ return f"This article discusses {page_title}, covering relevant technical concepts, application scenarios, and practical methods."
else:
- return 'This article explores relevant technical content in depth, providing practical methods and solutions.'
-
- def calculate_reading_stats(self, markdown):
- """计算中文字符数和代码行数"""
- # 清理内容用于中文字符统计
- content = markdown
- content = self.yaml_front_pattern.sub('', content)
- content = self.html_tag_pattern.sub('', content)
- content = self.image_pattern.sub('', content)
- content = self.link_pattern.sub(r'\1', content)
- content = self.code_block_pattern.sub('', content)
- content = self.inline_code_pattern.sub('', content)
-
- chinese_chars = len(self.chinese_chars_pattern.findall(content))
-
- # 统计代码行数
- code_lines = self.count_code_lines(markdown)
-
- # 计算阅读时间(中文:400字/分钟)
- reading_time = max(1, round(chinese_chars / 400))
-
- return reading_time, chinese_chars, code_lines
-
- def count_code_lines(self, markdown):
- """统计代码行数"""
- code_blocks = self.code_block_pattern.findall(markdown)
- total_code_lines = 0
-
- for block in code_blocks:
- # 提取语言标识
- lang_match = re.match(r'^```(\w*)', block)
- language = lang_match.group(1).lower() if lang_match else ''
-
- # 移除开头的语言标识和结尾的```
- code_content = re.sub(r'^```\w*\n?', '', block)
- code_content = re.sub(r'\n?```$', '', code_content)
-
- # 过滤空代码块
- if not code_content.strip():
- continue
-
- # 计算有效行数
- lines = [line for line in code_content.split('\n') if line.strip()]
- line_count = len(lines)
-
- # 如果有明确的编程语言标识,直接统计
- if language and language in self.programming_languages:
- total_code_lines += line_count
- continue
-
- # 检测是否为代码内容
- if self.is_code_content(code_content):
- total_code_lines += line_count
-
- return total_code_lines
-
- def is_code_content(self, content):
- """判断内容是否为代码"""
- # 命令行检测
- command_indicators = [
- 'sudo ', 'npm ', 'pip ', 'git ', 'cd ', 'ls ', 'mkdir ', 'rm ', 'cp ', 'mv ',
- 'chmod ', 'chown ', 'grep ', 'find ', 'ps ', 'kill ', 'top ', 'cat ', 'echo ',
- 'wget ', 'curl ', 'tar ', 'zip ', 'unzip ', 'ssh ', 'scp ', 'rsync ',
- '$ ', '# ', '% ', '> ', 'C:\\>', 'PS>', '#!/',
- '/Applications/', '/usr/', '/etc/', '/var/', '/home/', '~/',
- ]
-
- if any(indicator in content for indicator in command_indicators):
- return True
-
- # 编程语法检测
- programming_indicators = [
- 'def ', 'class ', 'import ', 'from ', 'return ', 'function', 'var ', 'let ', 'const ',
- 'public ', 'private ', 'protected ', 'static ', 'void ', 'int ', 'string ',
- '==', '!=', '<=', '>=', '&&', '||', '++', '--', '+=', '-=',
- 'while ', 'for ', 'if ', 'else:', 'switch ', 'case ',
- ' 1 and any(line.startswith(' ') or line.startswith('\t') for line in lines):
- return True
-
- if '<' in content and '>' in content:
- return True
-
- if any(char in content for char in ['{', '}', '(', ')', '[', ']']) and ('=' in content or ':' in content):
- return True
-
- return False
-
+ return "This article introduces relevant technical concepts and practical methods, providing valuable reference information for readers."
+
def is_ci_environment(self):
"""检测是否在 CI 环境中运行"""
# 常见的 CI 环境变量
@@ -839,83 +769,115 @@ Please generate bilingual summary:"""
else:
return 'Unknown CI'
+ def _auto_migrate_cache(self):
+ """自动迁移缓存文件(仅在需要时执行一次)"""
+ # 如果禁用了缓存功能,跳过缓存迁移
+ if not self.ci_config.get('cache_enabled', True):
+ return
+
+ old_cache_dir = Path("site/.ai_cache")
+ new_cache_dir = Path(".ai_cache")
+
+ # 检查是否需要迁移
+ if old_cache_dir.exists() and not new_cache_dir.exists():
+ print("🔄 检测到旧缓存目录,开始自动迁移...")
+
+ try:
+ # 创建新目录
+ new_cache_dir.mkdir(exist_ok=True)
+
+ # 复制文件
+ cache_files = list(old_cache_dir.glob("*.json"))
+ copied_count = 0
+
+ for cache_file in cache_files:
+ target_file = new_cache_dir / cache_file.name
+ try:
+ shutil.copy2(cache_file, target_file)
+ copied_count += 1
+ except Exception as e:
+ print(f"⚠️ 复制缓存文件失败 {cache_file.name}: {e}")
+
+ if copied_count > 0:
+ print(f"✅ 自动迁移完成!共迁移 {copied_count} 个缓存文件")
+ print("💡 提示:请将 .ai_cache 目录提交到 Git 仓库")
+ else:
+ print("ℹ️ 没有缓存文件需要迁移")
+
+ except Exception as e:
+ print(f"❌ 自动迁移失败: {e}")
+
+ elif new_cache_dir.exists():
+ # 新缓存目录已存在,检查是否有文件
+ cache_files = list(new_cache_dir.glob("*.json"))
+ if cache_files:
+ is_ci = self.is_ci_environment()
+ env_desc = '(CI)' if is_ci else '(本地)'
+ print(f"📦 发现根目录缓存 {env_desc},共 {len(cache_files)} 个缓存文件")
+
def process_page(self, markdown, page, config):
- """处理页面,生成AI摘要和阅读统计(支持CI环境检测)"""
+ """处理页面,生成AI摘要(支持CI环境检测)"""
# 检查是否应该在当前环境运行
if not self.should_run_in_current_environment():
return markdown
- # 检查是否需要显示阅读信息
- show_reading_info = self.should_show_reading_info(page, markdown)
-
- # 检查是否需要生成AI摘要
- should_generate_ai_summary = self.should_generate_summary(page, markdown)
-
- # 如果两者都不需要,直接返回原内容
- if not show_reading_info and not should_generate_ai_summary:
+ if not self.should_generate_summary(page, markdown):
return markdown
- # 计算阅读统计
- reading_time, chinese_chars, code_lines = self.calculate_reading_stats(markdown)
+ clean_content = self.clean_content_for_ai(markdown)
- result_blocks = []
+ # 内容长度检查
+ if len(clean_content) < 100:
+ print(f"📄 内容太短,跳过摘要生成: {page.file.src_path}")
+ return markdown
- # 处理AI摘要
- if should_generate_ai_summary:
- clean_content = self.clean_content_for_ai(markdown)
+ content_hash = self.get_content_hash(clean_content)
+ page_title = getattr(page, 'title', '')
+ is_ci = self.is_ci_environment()
+
+ # 检查缓存
+ cached_summary = self.get_cached_summary(content_hash)
+ if cached_summary:
+ summary = cached_summary.get('summary', '')
+ ai_service = cached_summary.get('service', 'cached')
+ env_desc = '(CI)' if is_ci else '(本地)'
+ print(f"✅ 使用缓存摘要 {env_desc}: {page.file.src_path}")
+ else:
+ # 如果在 CI 环境中且配置为只使用缓存,直接跳过摘要生成
+ if is_ci and self.ci_config['ci_only_cache']:
+ print(f"📦 CI 环境仅使用缓存模式,无缓存可用,跳过摘要生成: {page.file.src_path}")
+ return markdown
- # 内容长度检查
- if len(clean_content) >= 100:
- content_hash = self.get_content_hash(clean_content)
- page_title = getattr(page, 'title', '')
- is_ci = self.is_ci_environment()
-
- # 检查缓存
- cached_summary = self.get_cached_summary(content_hash)
- if cached_summary:
- summary = cached_summary.get('summary', '')
- ai_service = cached_summary.get('service', 'cached')
- env_desc = '(CI)' if is_ci else '(本地)'
- print(f"✅ 使用缓存摘要 {env_desc}: {page.file.src_path}")
- else:
- # 生成新摘要
- lang_desc = {'zh': '中文', 'en': '英文', 'both': '双语'}
- env_desc = '(CI)' if is_ci else '(本地)'
- print(f"🤖 正在生成{lang_desc.get(self.summary_language, '中文')}AI摘要 {env_desc}: {page.file.src_path}")
- summary, ai_service = self.generate_ai_summary(clean_content, page_title)
-
- if not summary:
- # 尝试生成备用摘要
- summary = self.generate_fallback_summary(clean_content, page_title)
- if summary:
- ai_service = 'fallback'
- print(f"📝 使用备用摘要 {env_desc}: {page.file.src_path}")
- else:
- print(f"❌ 无法生成摘要 {env_desc}: {page.file.src_path}")
- else:
- print(f"✅ AI摘要生成成功 ({ai_service}) {env_desc}: {page.file.src_path}")
-
- # 保存到缓存
- if summary:
- self.save_summary_cache(content_hash, {
- 'summary': summary,
- 'service': ai_service,
- 'page_title': page_title
- })
-
- # 添加AI摘要块
+ # 生成新摘要
+ lang_desc = {'zh': '中文', 'en': '英文', 'both': '双语'}
+ env_desc = '(CI)' if is_ci else '(本地)'
+ print(f"🤖 正在生成{lang_desc.get(self.summary_language, '中文')}AI摘要 {env_desc}: {page.file.src_path}")
+ summary, ai_service = self.generate_ai_summary(clean_content, page_title)
+
+ if not summary:
+ # 尝试生成备用摘要
+ summary = self.generate_fallback_summary(clean_content, page_title)
if summary:
- ai_summary_block = self.format_summary(summary, ai_service)
- result_blocks.append(ai_summary_block)
+ ai_service = 'fallback'
+ print(f"📝 使用备用摘要 {env_desc}: {page.file.src_path}")
+ else:
+ print(f"❌ 无法生成摘要 {env_desc}: {page.file.src_path}")
+ return markdown
+ else:
+ print(f"✅ AI摘要生成成功 ({ai_service}) {env_desc}: {page.file.src_path}")
+
+ # 保存到缓存
+ if summary:
+ self.save_summary_cache(content_hash, {
+ 'summary': summary,
+ 'service': ai_service,
+ 'page_title': page_title
+ })
- # 添加阅读信息块
- if show_reading_info:
- reading_info_block = self.format_reading_info(reading_time, chinese_chars, code_lines)
- result_blocks.append(reading_info_block)
-
- # 合并所有块并返回
- if result_blocks:
- return '\n'.join(result_blocks) + '\n\n' + markdown
+ # 添加摘要到页面最上面
+ if summary:
+ summary_html = self.format_summary(summary, ai_service)
+ return summary_html + '\n\n' + markdown
else:
return markdown
@@ -953,52 +915,6 @@ Please generate bilingual summary:"""
# 默认不生成摘要
return False
- def should_show_reading_info(self, page, markdown):
- """判断是否应该显示阅读信息"""
- # 检查页面元数据
- if hasattr(page, 'meta') and page.meta.get('hide_reading_time', False):
- return False
-
- # 获取文件路径
- src_path = page.file.src_path.replace('\\', '/')
-
- # 使用现有的排除模式检查
- exclude_patterns = [
- r'^index\.md$', r'^about/', r'^trip/index\.md$', r'^relax/index\.md$',
- r'^blog/indexblog\.md$', r'^blog/posts\.md$', r'^develop/index\.md$',
- r'waline\.md$', r'link\.md$', r'404\.md$'
- ]
-
- for pattern in exclude_patterns:
- if re.match(pattern, src_path):
- return False
-
- # 检查页面类型
- if hasattr(page, 'meta'):
- page_type = page.meta.get('type', '')
- if page_type in {'landing', 'special', 'widget'}:
- return False
-
- # 内容长度检查
- if len(markdown) < 300:
- return False
-
- # 计算中文字符数
- _, chinese_chars, _ = self.calculate_reading_stats(markdown)
- if chinese_chars < 50:
- return False
-
- return True
-
- def format_reading_info(self, reading_time, chinese_chars, code_lines):
- """格式化阅读信息显示"""
- if code_lines > 0:
- return f'''!!! info "📖 阅读信息"
- 阅读时间:**{reading_time}** 分钟 | 中文字符:**{chinese_chars}** | 有效代码行数:**{code_lines}**'''
- else:
- return f'''!!! info "📖 阅读信息"
- 阅读时间:**{reading_time}** 分钟 | 中文字符:**{chinese_chars}**'''
-
def format_summary(self, summary, ai_service):
"""格式化摘要显示(包含CI环境标识)"""
# 根据语言设置显示不同的标题
@@ -1053,7 +969,7 @@ ai_summary_generator = AISummaryGenerator()
# 🔧 配置函数
def configure_ai_summary(enabled_folders=None, exclude_patterns=None, exclude_files=None,
ai_service=None, service_config=None, language='zh',
- ci_enabled=None, local_enabled=None, ci_only_cache=None, ci_fallback=None):
+ ci_enabled=None, local_enabled=None, ci_only_cache=None, ci_fallback=None, cache_enabled=None):
"""
配置AI摘要功能(支持CI和本地环境分别配置)
@@ -1068,24 +984,33 @@ def configure_ai_summary(enabled_folders=None, exclude_patterns=None, exclude_fi
local_enabled: 是否在本地环境中启用
ci_only_cache: CI 环境是否仅使用缓存
ci_fallback: CI 环境是否启用备用摘要
+ cache_enabled: 是否启用缓存功能
Example:
- # 推荐配置:只在 CI 中启用,本地禁用
+ # 本地开发时禁用缓存,总是生成新摘要
configure_ai_summary(
enabled_folders=['blog/', 'docs/'],
language='zh',
- ci_enabled=True, # CI 中启用
- local_enabled=False, # 本地禁用
- ci_only_cache=False, # CI 中允许生成新摘要
- ci_fallback=True # CI 中启用备用摘要
+ local_enabled=True,
+ cache_enabled=False # 禁用缓存
+ )
+
+ # CI中启用缓存,本地禁用缓存
+ configure_ai_summary(
+ enabled_folders=['blog/', 'docs/'],
+ language='zh',
+ ci_enabled=True,
+ local_enabled=True,
+ ci_only_cache=True, # CI仅使用缓存
+ cache_enabled=True # 启用缓存功能
)
"""
ai_summary_generator.configure_folders(enabled_folders, exclude_patterns, exclude_files)
ai_summary_generator.configure_language(language)
# 配置环境行为
- if any(x is not None for x in [ci_enabled, local_enabled, ci_only_cache, ci_fallback]):
- configure_ci_behavior(ci_enabled, local_enabled, ci_only_cache, ci_fallback)
+ if any(x is not None for x in [ci_enabled, local_enabled, ci_only_cache, ci_fallback, cache_enabled]):
+ configure_ci_behavior(ci_enabled, local_enabled, ci_only_cache, ci_fallback, cache_enabled)
if ai_service:
if service_config:
@@ -1097,7 +1022,7 @@ def configure_ai_summary(enabled_folders=None, exclude_patterns=None, exclude_fi
ai_summary_generator.configure_ai_service(ai_service)
# 🔧 新增 CI 配置函数
-def configure_ci_behavior(enabled_in_ci=None, enabled_in_local=None, ci_only_cache=None, ci_fallback_enabled=None):
+def configure_ci_behavior(enabled_in_ci=None, enabled_in_local=None, ci_only_cache=None, ci_fallback_enabled=None, cache_enabled=None):
"""
配置 CI 和本地环境行为
@@ -1106,16 +1031,17 @@ def configure_ci_behavior(enabled_in_ci=None, enabled_in_local=None, ci_only_cac
enabled_in_local: 是否在本地环境中启用 AI 摘要
ci_only_cache: CI 环境是否仅使用缓存
ci_fallback_enabled: CI 环境是否启用备用摘要
+ cache_enabled: 是否启用缓存功能(默认True)
Example:
- # 只在 CI 中启用,本地禁用(推荐配置)
- configure_ci_behavior(enabled_in_ci=True, enabled_in_local=False)
+ # 完全禁用缓存
+ configure_ci_behavior(cache_enabled=False)
- # 本地和 CI 都启用
- configure_ci_behavior(enabled_in_ci=True, enabled_in_local=True)
+ # 本地开发时禁用缓存,总是生成新摘要
+ configure_ci_behavior(enabled_in_local=True, cache_enabled=False)
- # 只在本地启用,CI 中禁用
- configure_ci_behavior(enabled_in_ci=False, enabled_in_local=True)
+ # CI中使用缓存,本地禁用缓存
+ configure_ci_behavior(enabled_in_ci=True, enabled_in_local=True, ci_only_cache=True, cache_enabled=True)
"""
if enabled_in_ci is not None:
ai_summary_generator.ci_config['enabled_in_ci'] = enabled_in_ci
@@ -1132,6 +1058,10 @@ def configure_ci_behavior(enabled_in_ci=None, enabled_in_local=None, ci_only_cac
if ci_fallback_enabled is not None:
ai_summary_generator.ci_config['ci_fallback_enabled'] = ci_fallback_enabled
print(f"✅ CI 环境备用摘要: {'启用' if ci_fallback_enabled else '禁用'}")
+
+ if cache_enabled is not None:
+ ai_summary_generator.ci_config['cache_enabled'] = cache_enabled
+ print(f"✅ 缓存功能: {'启用' if cache_enabled else '禁用'}")
def on_page_markdown(markdown, page, config, files):
"""MkDocs hook入口点"""
diff --git a/search/search_index.json b/search/search_index.json
index 45ad93a..8f3814c 100644
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\u200b\\u3000\\-\u3001\u3002\uff0c\uff0e\uff1f\uff01\uff1b]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"Home","text":"\u6700\u597d\u7684MkDocs\u535a\u5ba2\u6559\u7a0b \u4e0d\u540c\u4e8e\u5e02\u9762\u4e0a\u8fc7\u65f6\u7684MkDocs\u6559\u7a0b\uff0c\u672c\u7ad9\u63d0\u4f9b\u4e86\u6700\u8be6\u7ec6\u6700\u4fbf\u6377\u6700\u524d\u6cbf\u7684MkDocs\u4e2d\u6587\u6587\u5b57/\u89c6\u9891\u6559\u7a0b\uff0c\u4e0e\u5b98\u65b9\u53d1\u5e03\u7684\u6559\u7a0b\u7248\u672c\u540c\u6b65\u3002\u5305\u542b\u4e86MkDocs\u7684\u5b89\u88c5\u3001\u914d\u7f6e\u3001\u4e3b\u9898\u7f8e\u5316\u3001\u63d2\u4ef6\u4f7f\u7528\u7b49\u5185\u5bb9\u3002\u65e0\u8bba\u4f60\u662f\u521d\u5b66\u8005\u8fd8\u662f\u6709\u7ecf\u9a8c\u7684\u7528\u6237\uff0c\u90fd\u80fd\u5728\u8fd9\u91cc\u627e\u5230\u4f60\u9700\u8981\u7684\u5e2e\u52a9\u3002\u6211\u4eec\u8fd8\u63d0\u4f9b\u4e86\u793a\u4f8b\u548c\u5b9e\u7528\u7684\u6280\u5de7\uff0c\u5e2e\u52a9\u4f60\u66f4\u597d\u5730\u4f7f\u7528MkDocs\u3002\ud835\udcf3\ud835\udcfe\ud835\udcfc\ud835\udcfd \ud835\udcee\ud835\udcf7\ud835\udcf3\ud835\udcf8\ud835\udd02 \ud835\udcf2\ud835\udcfd\uff5e
\u672c\u7ad9\u5df2\u7ecf\u8fd0\u884c
-
\u592a\u9633\u603b\u662f\u80fd\u6e29\u6696\u5411\u65e5\u8475\u00a0\u21a9
-
All-problems-in-computer-science-can-be-solved-by-another-level-of-indirection\u00a0\u21a9
"},{"location":"link/","title":"\u53cb\u94fe","text":""},{"location":"link/#_1","title":"\u6b22\u8fce\u52a0\u5165\u53cb\u94fe(\u4e0d\u5206\u5148\u540e)","text":"Wcowin's Blog \u201c\u5faa\u6b64\u82e6\u65c5\uff0c\u4ee5\u8fbe\u661f\u8fb0\u201d"},{"location":"link/#_2","title":"\u5931\u8054\u4eba\u5458","text":"\u90dd\u5b87\u535a\u5ba2 \u8bb0\u5f55\u6211\u7684\u6210\u957f\u548c\u9752\u6625 \u4ea4\u6362\u53cb\u94fe\uff0c\u8bf7\u6dfb\u52a0\u672c\u7ad9\u53cb\u94fe\u540e\u4e0b\u65b9\u7559\u8a00\u7533\u8bf7\uff0c\u671f\u671b\u60a8\u7684\u7ad9\u70b9: - \u72ec\u7acb\u535a\u5ba2(\u4e0d\u8981\u6c42\u72ec\u7acb\u57df\u540d)\uff0chttps\uff0c\u8bbf\u95ee\u6d41\u7545
- \u539f\u521b\u5185\u5bb9\u4e3a\u4e3b\uff0c\u539f\u521b\u5185\u5bb93\u7bc7\u4ee5\u4e0a
- \u5904\u4e8e\u6d3b\u8dc3\u72b6\u6001\uff0c\u6709\u4e00\u5b9a\u7684\u66f4\u65b0\u9891\u7387
- \u5efa\u7ad9\u4e00\u4e2a\u6708\u4ee5\u4e0a
- \u672a\u6dfb\u52a0\u53cb\u94fe\u6216\u7533\u8bf7\u672a\u901a\u8fc7\uff0c\u8bc4\u8bba\u7559\u8a00\u4f1a\u88ab\u9690\u85cf\u3002
\u672c\u7ad9\u5df2\u7ecf\u52a0\u5165\u5341\u5e74\u4e4b\u7ea6\uff1a \u8bf7\u653e\u5fc3\u6dfb\u52a0\u672c\u7ad9\u53cb\u94fe
\u53cb\u94fe\u683c\u5f0f\u793a\u4f8b/\u672c\u7ad9\u4fe1\u606f:
TxtHTML(\u63a8\u8350)Butterfly\u901a\u7528 \u540d\u79f0: Wcowin's Blog \u94fe\u63a5: https://wcowin.work/ \u5934\u50cf: https://pic4.zhimg.com/80/v2-a0456a5f527c1923f096759f2926012f_1440w.webp \u7b80\u4ecb: \u5faa\u6b64\u82e6\u65c5\uff0c\u4ee5\u8fbe\u661f\u8fb0
\u63a8\u8350\u5728\u8bc4\u8bba\u533a\u53d1\u9001\u8fd9\u79cd\u683c\u5f0f\uff0c*\u53f7\u7684\u9700\u8981\u586b\u5199\u81ea\u5df1\u7684\u4fe1\u606f
<div class=\"card\"> \n <img class=\"ava\" src=\"*\u4f60\u7684\u5934\u50cf\u94fe\u63a5*\" /> \n <div class=\"card-header\"> \n <div> \n <a href=\"*\u4f60\u7684\u7f51\u7ad9\u5730\u5740* \" target=\"_blank\">*\u4f60\u7684\u7ad9\u70b9\u540d\u79f0*</a> \n </div> \n <div class=\"info\">\n *\u4f60\u7684\u7ad9\u70b9\u63cf\u8ff0*\n </div> \n </div> \n</div>\n
- name: Wcowin's Blog\n link: https://wcowin.work/\n avatar: https://pic4.zhimg.com/80/v2-a0456a5f527c1923f096759f2926012f_1440w.webp\n descr: \u5faa\u6b64\u82e6\u65c5\uff0c\u4ee5\u8fbe\u661f\u8fb0\n
\u70b9\u51fb\u586b\u5199\u53cb\u94fe\u7533\u8bf7\u95ee\u5377
"},{"location":"liuyanban/","title":"\u7545\u6240\u6b32\u8a00\u7559\u8a00\u677f","text":"\u6708\u843d\u4e4c\u557c\u971c\u6ee1\u5929 \u6c5f\u67ab\u6e14\u706b\u5bf9\u6101\u7720
\u300a\u67ab\u6865\u591c\u6cca\u300b\u3010\u5510\u4ee3\u3011\u5f20\u7ee7
\u8bc4\u8bba\u7cfb\u7edf\u5207\u6362
Giscus Cusdis \u8bc4\u8bba\u5ba1\u6838\u540e\u624d\u4f1a\u663e\u793a
"},{"location":"tag/","title":"\u5206\u7c7b","text":""},{"location":"tag/#tags","title":"Tags","text":""},{"location":"tag/#tag:markdown","title":"Markdown","text":" - MWeb Pro
- Markdown\u6307\u5357
"},{"location":"tag/#tag:mkdocs","title":"Mkdocs","text":" - 0.Mkdocs\u6559\u7a0b\u524d\u8a00
- 1.\u5229\u7528Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875
- 2.Mkdocs\u914d\u7f6e\u8bf4\u660e(mkdocs.yml)
- 3.\u89e3\u51b3Github Pages\u90e8\u7f72mkdocs\u81ea\u5b9a\u4e49\u57df\u540d\u5931\u6548\u7684\u95ee\u9898
- JS\u5b9e\u73b0\u9f20\u6807\u6837\u5f0f
- MkDocs\u6587\u6863AI\u6458\u8981
- \u4e3aMKdocs\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233
- \u4fee\u6539\u7f51\u7ad9\u5b57\u4f53
- \u52a0\u901f\u7f51\u7ad9\u8bbf\u95ee\u7684\u4e00\u4e9b\u5fc3\u5f97
- \u5d4c\u5165PDF\u6587\u4ef6
- \u6dfb\u52a0404\u9875\u9762
- \u6dfb\u52a0Mkdocs\u535a\u5ba2
- \u6dfb\u52a0\u53cb\u94fe
- \u6dfb\u52a0\u5728\u7ebf\u804a\u5929
- \u6dfb\u52a0\u8bc4\u8bba\u7cfb\u7edf(giscus\u4e3a\u4f8b)
- \u6dfb\u52a0\u9876\u90e8\u516c\u544a\u680f
- \u76f8\u5bf9\u5730\u5740\u7684\u4e00\u4e9b\u95ee\u9898
- \u7f51\u9875\u5706\u89d2\u5316\u8bbe\u8ba1
- \u80cc\u666f\u7279\u6548
- \u9875\u811a\u8bbe\u7f6e
"},{"location":"tag/#tag:\u6280\u672f\u5206\u4eab","title":"\u6280\u672f\u5206\u4eab","text":" - Git \u5b9e\u7528\u6280\u5de7
- \u5229\u7528Lighthouse\u6d4b\u8bd5\u7f51\u7ad9\u6027\u80fd
- \u5982\u4f55\u5c06 github pages \u8fc1\u79fb\u5230 vercel \u4e0a\u6258\u7ba1
"},{"location":"tag/#tag:\u8bbe\u8ba1\u7f8e\u5b66","title":"\u8bbe\u8ba1\u7f8e\u5b66","text":" - \u5510\u00b7\u8bfa\u66fc\u2014\u60c5\u611f\u8bbe\u8ba1\u7684\u4e09\u4e2a\u5c42\u6b21
- \u6211\u5bf9\u8bbe\u8ba1\u7684\u4e00\u4e9b\u89c2\u70b9
"},{"location":"ZH-TW/","title":"Home","text":"\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a225
"},{"location":"ZH-TW/#_1","title":"\u9996\u9801","text":"\u201c\u5faa\u6b64\u82e6\u65c5 \u4ee5\u9054\u661f\u8fb0\u201d - \u900f\u904e\u4e3b\u984c\u548c\u76ee\u9304\u4ee5\u958b\u555f\u6587\u7ae0
- Mac/PC\u7aef \u8acb\u5728\u4e0a\u65b9\u6a19\u7c64\u5217\u9078\u64c7\u4e3b\u984c \u5728\u5de6\u5074\u76ee\u9304\u9078\u64c7\u6587\u7ae0
- \u884c\u52d5\u7aef \u8acb\u9ede\u9078\u5de6\u4e0a\u89d2\u5716\u793a\u9078\u64c7\u4e3b\u984c\u548c\u6587\u7ae0
- \u641c\u5c0b\u95dc\u9375\u5b57\u4ee5\u958b\u555f\u6587\u7ae0
- \u5982\u9047\u5230\u7db2\u9801\u5361\u9813/\u958b\u555f\u6587\u7ae0\u5f8c\u7121\u6cd5\u986f\u793a\u5716\u7247\u7684\u60c5\u6cc1\uff0c\u8acb\u4f7f\u7528\u79d1\u5b78\u4e0a\u7db2\u4ee5\u6253\u7834\u8cc7\u8a0a\u58c1\u58d8
\u5feb\u901f\u8ac7\u8a71(1) \u806f\u7d61\u6211(2)
- \u9ede\u9078\u53f3\u4e0b\u89d2\u8207\u6211\u7dda\u4e0a\u4ea4\u8ac7.
- 18939533255
-
Mkdocs\u6559\u7a0b
- \u5229\u7528Mkdocs\u90e8\u7f72\u975c\u614b\u7db2\u9801\u81f3GitHub pages
- Mkdocs\u90e8\u7f72\u914d\u7f6e\u8aaa\u660e(mkdocs.yml)
- \u5982\u4f55\u7d66MKdocs\u6dfb\u52a0\u53cb\u93c8
- \u7db2\u7ad9\u6dfb\u52a0Mkdocs\u535a\u5ba2
- Blogger
-
\u95dc\u65bc
- Mkdocs-Wcowin\u535a\u5ba2\u4e3b\u984c\u793e\u5340
- \u7559\u8a00\u677f1
- Blogger \u4e86\u89e3\u62112
\u672c\u7ad9\u5df2\u7d93\u904b\u4f5c
-
\u592a\u967d\u7e3d\u662f\u80fd\u6eab\u6696\u5411\u65e5\u8475\u00a0\u21a9
-
All problems in computer science can be solved by another level of indirection\u00a0\u21a9
"},{"location":"about/geren/","title":"\u5173\u4e8e\u6211","text":""},{"location":"about/geren/#_1","title":"\u4eca\u65e5\u8bd7\u8bcd","text":""},{"location":"about/geren/#_2","title":"\u5173\u4e8e\u6211","text":"\u89c2\u53f2\u77e5\u4eca\uff0c\u5f53\u601d\u8fdb\u9000\uff0c\u8bfb\u4e66\u660e\u5fd7\u53ef\u8bc6\u6625\u79cb \u2014\u2014Wcowin 1\u5e74+ \u5de5\u4f5c\u7ecf\u9a8c 3\u9879+ \u5b8c\u6210\u7684\u9879\u76ee 2\u4e2a+ \u8d21\u732e\u7684\u5f00\u6e90 \u4e0b\u8f7d\u7b80\u5386"},{"location":"about/geren/#_3","title":"\u6211\u7684\u5c65\u5386","text":"\u6765\u65f6\u8def \u6f2f\u6cb3\u9ad8\u4e2d \u5e73\u51e1\u7684\u4e09\u5e74 2018 - 2021 CTBU \u7535\u5b50\u4fe1\u606f\u5de5\u7a0b\u4e13\u4e1a\u5b66\u58eb 2021 - 2025 \u5bb6\u91cc\u8e72\u5927\u5b66 \u5bc6\u7801\u5b66\u7855\u58eb\u7814\u7a76\u751f 2026 - 2029 \u672a\u5b8c\u5f85\u7eed \u4e8e\u9053\u5404\u52aa\u529b\uff0c\u5343\u91cc\u81ea\u540c\u98ce Before - After"},{"location":"about/geren/#_4","title":"\u4e2a\u4eba\u7b80\u4ecb","text":"\ud835\ude3f\ud835\ude64\ud835\ude63'\ud835\ude69 \ud835\ude58\ud835\ude56\ud835\ude67\ud835\ude5a \ud835\ude56\ud835\ude57\ud835\ude64\ud835\ude6a\ud835\ude69 \ud835\ude6c\ud835\ude64\ud835\ude67\ud835\ude61\ud835\ude59\ud835\ude61\ud835\ude6e \ud835\ude5a\ud835\ude6e\ud835\ude5a\ud835\ude68 \ud835\ude69\ud835\ude64 \ud835\ude65\ud835\ude6a\ud835\ude67\ud835\ude68\ud835\ude6a\ud835\ude5a \ud835\ude6e\ud835\ude64\ud835\ude6a\ud835\ude67 \ud835\ude64\ud835\ude6c\ud835\ude63 \ud835\ude61\ud835\ude5e\ud835\ude5c\ud835\ude5d\ud835\ude69
About me
- Hey, I'm Wcowin~
- \u5496\u5561\u91cd\u5ea6\u7231\u597d\u8005
- \u70ed\u7231(xi\u0101)\u6298\u817e\u6280\u672f/Math\uff0c\u76ee\u524d\u7684\u7814\u7a76\u9886\u57df\u662f\u5bc6\u7801\u5b66
- \u8bfb\u4e66\u660e\u5fd7\u53ef\u8bc6\u6625\u79cb;\u8bd7\u8bcd\u7231\u597d\u8005;\u559c\u6b22\u6751\u4e0a\u6625\u6811;\u64c5\u957f\u7fbd\u6bdb\u7403
- \u6e05\u9192\uff0c\u77e5\u8da3\uff0c\u660e\u5f97\u5931\uff0c\u77e5\u8fdb\u9000
"},{"location":"about/geren/#_5","title":"\u8054\u7cfb\u6211","text":"
\u6211\u7684Wechat \u6211\u7684TG -
Email
\u53d1\u9001\u7535\u5b50\u90ae\u4ef6
-
Telegram Let's Chat
-
Twitter @Wcowin
\u516c\u4f17\u53f7 \u516c\u4f17\u53f7
\ud83d\udcac\u6211\u7535\u8bdd\u53f7\u7801\u7684MD5
\u7801\uff1a7037F514864088F907CC921687B670EE\uff08\u7834\u89e3\u6709\u5956\uff09
"},{"location":"about/geren/#_6","title":"\u987b\u77e5","text":"\u5982\u679c\u4f60\u5728\u6d4f\u89c8\u535a\u5ba2\u7684\u8fc7\u7a0b\u4e2d\u53d1\u73b0\u4e86\u4efb\u4f55\u95ee\u9898\uff0c\u6b22\u8fce\u524d\u5f80 GitHub \u7684\u4ee3\u7801\u4ed3\u5e93\u63d0\u4ea4 Issues \u6216\u76f4\u63a5\u4fee\u6539\u76f8\u5173\u6587\u4ef6\u540e\u63d0\u4ea4 Pull Requests\u3002\u5982\u679c\u4f60\u6709\u5176\u4ed6\u4e8b\u60c5\u60f3\u8981\u54a8\u8be2\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u65b9\u6309\u94ae\u4f7f\u7528\u90ae\u4ef6\u8054\u7cfb\u6211,\u8bf7\u4e0d\u8981\u6ee5\u7528\u535a\u5ba2\u7684\u8bc4\u8bba\u529f\u80fd\u53d1\u8868\u4e0e\u4e3b\u9898\u65e0\u5173\u8a00\u8bba\u3002
\u4e0e\u6211\u8054\u7cfb
\u5982\u679c\u7ed9\u6211\u53d1\u90ae\u4ef6\uff0c\u6216\u8005\u901a\u8fc7\u53f3\u4e0b\u89d2\u5fae\u4fe1\u6dfb\u52a0\u597d\u53cb\uff0c\u8bf7\u5199\u4e0a\u60a8\u7684\u771f\u540d\u5b9e\u59d3\u3002\u5bf9\u4e8e\u90a3\u4e9b\u4e0d\u77e5\u6765\u8def\u3001\u4e0a\u6765\u5c31\u95ee\u95ee\u9898\u7684\u5fae\u4fe1\u548c\u90ae\u4ef6\uff0c\u6211\u901a\u5e38\u4f1a\u76f4\u63a5\u5ffd\u7565\uff0c\u8c22\u8c22\u3002
\u53d1\u9001\u7535\u5b50\u90ae\u4ef6
"},{"location":"about/resume/","title":"\u4e2a\u4eba\u7b80\u5386","text":"\u8bf7\u4f7f\u7528PC\u7aef\u67e5\u770b\uff0c\u8c22\u8c22 "},{"location":"about/test/","title":"\u529f\u80fd\u6d4b\u8bd5","text":"Info
\u6d4b\u8bd5\u4e2d\u7684\u5c0f\u7ec4\u4ef6\uff0c\u53ef\u770b\u6e90\u4ee3\u7801\u81ea\u884c\u53d6\u7528
\u201c\u5faa\u6b64\u82e6\u65c5 \u4ee5\u8fbe\u661f\u8fb0\u201d
Image caption
\\(\\overset{w\u00e1ng}{\u738b}\\overset{k\u0113}{\u79d1}\\overset{w\u00e9n}{\u6587}\\)
- H2O
- ATA
- This was marked
- This was inserted
- This was deleted
"},{"location":"about/test/#01","title":"01","text":" - HTML for content and structure
- JavaScript for interactivity
- CSS for text running out of boxes
- Internet Explorer ... huh?
-
Set up in 5 minutes
Install mkdocs-material
with pip
and get up and running in minutes
Getting started
-
It's just Markdown
Focus on your content and generate a responsive and searchable static site
Reference
-
Made to measure
Change the colors, fonts, language, icons, logo and more with a few lines
Customization
-
Open Source, MIT
Material for MkDocs is licensed under MIT and available on [GitHub]
License
\u8fd9\u662f\u6d4b\u8bd5\u5e76\u4e14\u88ab\u63a9\u76d6\u7684\u6587\u5b57\uff01
\u5929\u6c14\u63d2\u4ef6 CC++ #include <stdio.h>\n\nint main(void) {\n printf(\"Hello world!\\n\");\n return 0;\n}\n
#include <iostream>\n\nint main(void) {\n std::cout << \"Hello world!\" << std::endl;\n return 0;\n}\n
def bubble_sort(items):\n for i in range(len(items)):\n for j in range(len(items) - 1 - i):\n if items[j] > items[j + 1]:\n items[j], items[j + 1] = items[j + 1], items[j]\n
Note
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Phasellus posuere in sem ut cursus
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Tip Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Info
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Subscribe to our newsletter
Send
Method Description GET
Fetch resource PUT
Update resource DELETE
Delete resource - Lorem ipsum dolor sit amet, consectetur adipiscing elit
- Vestibulum convallis sit amet nisi a tincidunt
- In hac habitasse platea dictumst
- In scelerisque nibh non dolor mollis congue sed et metus
- Praesent sed risus massa
- Aenean pretium efficitur erat, donec pharetra, ligula non scelerisque
\\[ \\operatorname{ker} f=\\{g\\in G:f(g)=e_{H}\\}{\\mbox{.}} \\] \u5de6\u5bf9\u9f50\uff0c\u53f3\u5bf9\u9f50
\u56fe\u7247\u8bf4\u660e \u660e\u6697
graph LR\n A[Start] --> B{Error?};\n B -->|Yes| C[Hmm...];\n C --> D[Debug];\n D --> B;\n B ---->|No| E[Yay!];
sequenceDiagram\n Alice->>John: Hello John, how are you?\n loop Healthcheck\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!
Pied Piper
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Ctrl+Alt+Del
\u70b9\u6211\u56de\u5230\u9876\u90e8
Hover me
Hover me
The HTML specification is maintained by the W3C.
def bubble_sort(items):\n for i in range(len(items)):\n for j in range(len(items) - 1 - i):\n if items[j] > items[j + 1]:\n items[j], items[j + 1] = items[j + 1], items[j]\n
def bubble_sort(items):\n for i in range(len(items)):\n for j in range(len(items) - 1 - i):\n if items[j] > items[j + 1]:\n items[j], items[j + 1] = items[j + 1], items[j]\n
.browserslistrcWcowin\n
\n graph LR\n A --- B\n B-->C[fa:fa-ban forbidden]\n B-->D(fa:fa-spinner);\n
\u6765\u770b\u770b\u4e24\u4e2a\u91cd\u8981\u6781\u9650
\\[\\displaystyle\\lim_{x \\rightarrow 0}\\frac{\\sin x}{x} = 1\\] \\[\\displaystyle\\lim_{x \\rightarrow + \\infty}(1 + \\frac{1}{x})^x = e\\] \u6309\u94ae Green
\u6211\u662f\u4f1a\u9690\u85cf\u7684\u5143\u7d20\u3002 \u5934\u90e8 \u83dc\u5355 \u4e3b\u8981\u5185\u5bb9\u533a\u57df \u53f3\u4fa7 \u5e95\u90e8 \u8fd9\u662f\u4e00\u4e2a\u7535\u5b50\u90ae\u4ef6\u94fe\u63a5\uff1a \u53d1\u9001\u90ae\u4ef6
100 200 300 400 500 600 000000 000033 000066 000099 0000CC 0000FF 003300 003333 003366 003399 0033CC 0033FF 006600 006633 006666 006699 0066CC 0066FF 009900 009933 009966 009999 0099CC 0099FF 00CC00 00CC33 00CC66 00CC99 00CCCC 00CCFF 00FF00 00FF33 00FF66 00FF99 00FFCC 00FFFF 330000 330033 330066 330099 3300CC 3300FF 333300 333333 333366 333399 3333CC 3333FF 336600 336633 336666 336699 3366CC 3366FF 339900 339933 339966 339999 3399CC 3399FF 33CC00 33CC33 33CC66 33CC99 33CCCC 33CCFF 33FF00 33FF33 33FF66 33FF99 33FFCC 33FFFF 660000 660033 660066 660099 6600CC 6600FF 663300 663333 663366 663399 6633CC 6633FF 666600 666633 666666 666699 6666CC 6666FF 669900 669933 669966 669999 6699CC 6699FF 66CC00 66CC33 66CC66 66CC99 66CCCC 66CCFF 66FF00 66FF33 66FF66 66FF99 66FFCC 66FFFF 990000 990033 990066 990099 9900CC 9900FF 993300 993333 993366 993399 9933CC 9933FF 996600 996633 996666 996699 9966CC 9966FF 999900 999933 999966 999999 9999CC 9999FF 99CC00 99CC33 99CC66 99CC99 99CCCC 99CCFF 99FF00 99FF33 99FF66 99FF99 99FFCC 99FFFF CC0000 CC0033 CC0066 CC0099 CC00CC CC00FF CC3300 CC3333 CC3366 CC3399 CC33CC CC33FF CC6600 CC6633 CC6666 CC6699 CC66CC CC66FF CC9900 CC9933 CC9966 CC9999 CC99CC CC99FF CCCC00 CCCC33 CCCC66 CCCC99 CCCCCC CCCCFF CCFF00 CCFF33 CCFF66 CCFF99 CCFFCC CCFFFF FF0000 FF0033 FF0066 FF0099 FF00CC FF00FF FF3300 FF3333 FF3366 FF3399 FF33CC FF33FF FF6600 FF6633 FF6666 FF6699 FF66CC FF66FF FF9900 FF9933 FF9966 FF9999 FF99CC FF99FF FFCC00 FFCC33 FFCC66 FFCC99 FFCCCC FFCCFF FFFF00 FFFF33 FFFF66 FFFF99 FFFFCC FFFFFF
Email me!
"},{"location":"about/zcw/","title":"\u652f\u6301\u4f5c\u8005","text":" \u53ef\u4ee5\u7684\u8bdd \u8bf7\u6211\u559d\u4e00\u676f\u5496\u5561\u5427\u2615\ufe0f
"},{"location":"about/zcw/#alipay","title":"Alipay","text":""},{"location":"about/zcw/#wechat-pay","title":"WeChat Pay","text":""},{"location":"about/zcw/#ko-fi","title":"ko-fi","text":"\u8bf7\u4f5c\u8005\u559d\u676f\u5496\u5561
"},{"location":"about/zcw/#_2","title":"\u8d5e\u52a9\u5217\u8868","text":"\u8d5e\u52a9\u4eba \u8d5e\u52a9\u91d1\u989d \u8d5e\u52a9\u65f6\u95f4 *\u6025 15\uffe5 25/04/18 \u5343\u5e73 100\uffe5 25/04/16"},{"location":"blog/","title":"MyBlog","text":""},{"location":"blog/MIT/","title":"\u8bb8\u53ef\u58f0\u660e","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
MIT\u8bb8\u53ef\u8bc1\u6388\u4e88\u7528\u6237\u81ea\u7531\u4f7f\u7528\u3001\u4fee\u6539\u3001\u5206\u53d1\u8f6f\u4ef6\u7684\u5e7f\u6cdb\u6743\u5229\uff0c\u4ec5\u8981\u6c42\u4fdd\u7559\u7248\u6743\u58f0\u660e\u548c\u8bb8\u53ef\u6761\u6b3e\u3002\u8be5\u8bb8\u53ef\u8bc1\u660e\u786e\u58f0\u660e\u8f6f\u4ef6\u4e0d\u63d0\u4f9b\u4efb\u4f55\u62c5\u4fdd\uff0c\u4f5c\u8005\u4e0d\u5bf9\u4f7f\u7528\u540e\u679c\u627f\u62c5\u8d23\u4efb\u3002\u4f5c\u4e3a\u5bbd\u677e\u5f00\u6e90\u534f\u8bae\uff0cMIT\u8bb8\u53ef\u9002\u7528\u4e8e\u5e0c\u671b\u6700\u5927\u9650\u5ea6\u5141\u8bb8\u4ee3\u7801\u91cd\u7528\u548c\u5206\u53d1\u7684\u573a\u666f\uff0c\u662f\u5f00\u53d1\u8005\u5e38\u7528\u7684\u6807\u51c6\u5316\u6388\u6743\u65b9\u5f0f\u4e4b\u4e00\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a252
\u9ebb\u7701\u7406\u5de5\u5b66\u9662\u8bb8\u53ef\u8bc1MIT License \u7248\u6743\u6240\u6709 \u00a9 2016-2025 Martin Donath
\u7279\u6b64\u6388\u4e88\u83b7\u5f97\u6b64\u8f6f\u4ef6\u548c\u76f8\u5173\u6587\u6863\u6587\u4ef6\uff08\u201c\u8f6f\u4ef6\u201d\uff09\u526f\u672c\u7684\u4efb\u4f55\u4eba\u514d\u8d39\u8bb8\u53ef\uff0c\u4ee5\u65e0\u9650\u5236\u65b9\u5f0f\u5904\u7406\u8f6f\u4ef6\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4f7f\u7528\u3001\u590d\u5236\u3001\u4fee\u6539\u3001\u5408\u5e76\u3001\u53d1\u5e03\u3001\u5206\u53d1\u3001\u518d\u8bb8\u53ef\u548c/\u6216\u9500\u552e\u8f6f\u4ef6\u526f\u672c\u7684\u6743\u5229\uff0c\u5e76\u5141\u8bb8\u5411\u5176\u63d0\u4f9b\u8f6f\u4ef6\u7684\u4eba\u5458\u8fd9\u6837\u505a\uff0c\u4f46\u987b\u9075\u5b88\u4ee5\u4e0b\u6761\u4ef6\uff1a
\u4e0a\u8ff0\u7248\u6743\u58f0\u660e\u548c\u672c\u8bb8\u53ef\u58f0\u660e\u5747\u5e94\u5305\u542b\u5728\u8f6f\u4ef6\u7684\u6240\u6709\u526f\u672c\u6216\u91cd\u8981\u90e8\u5206\u4e2d\u3002
\u8f6f\u4ef6\u6309\u201c\u539f\u6837\u201d\u63d0\u4f9b\uff0c\u4e0d\u4f5c\u4efb\u4f55\u660e\u793a\u6216\u6697\u793a\u7684\u4fdd\u8bc1\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u9002\u9500\u6027\u3001\u7279\u5b9a\u7528\u9014\u7684\u9002\u7528\u6027\u548c\u4e0d\u4fb5\u6743\u6027\u7684\u4fdd\u8bc1\u3002\u5728\u4efb\u4f55\u60c5\u51b5\u4e0b\uff0c\u4f5c\u8005\u6216\u7248\u6743\u6301\u6709\u8005\u5747\u4e0d\u5bf9\u56e0\u8f6f\u4ef6\u6216\u4f7f\u7528\u6216\u5176\u4ed6\u5904\u7406\u8f6f\u4ef6\u800c\u5f15\u8d77\u7684\u6216\u4e0e\u4e4b\u76f8\u5173\u7684\u4efb\u4f55\u7d22\u8d54\u3001\u635f\u5bb3\u6216\u5176\u4ed6\u8d23\u4efb\u627f\u62c5\u8d23\u4efb\uff0c\u65e0\u8bba\u662f\u5408\u540c\u884c\u4e3a\u3001\u4fb5\u6743\u884c\u4e3a\u8fd8\u662f\u5176\u4ed6\u884c\u4e3a\u3002
Copyright \u00a9 2016-2025 Martin Donath
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"},{"location":"blog/Mkdocs/mkdocs1/","title":"\u5229\u7528Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHubpages","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u4f7f\u7528MkDocs\u6846\u67b6\u90e8\u7f72\u9759\u6001\u7f51\u9875\u5230GitHub Pages\u7684\u5b8c\u6574\u6d41\u7a0b\u3002\u91cd\u70b9\u5305\u62ec\uff1a\u901a\u8fc7GitHub Desktop\u7ba1\u7406\u4ed3\u5e93\u3001\u914d\u7f6emkdocs.yml\u57fa\u7840\u6587\u4ef6\u3001\u8bbe\u7f6eGitHub Workflow\u81ea\u52a8\u5316\u90e8\u7f72\u6d41\u7a0b\uff0c\u4ee5\u53ca\u6700\u7ec8\u53d1\u5e03\u7f51\u7ad9\u7684\u5173\u952e\u6b65\u9aa4\u3002\u6559\u7a0b\u91c7\u7528Material for MkDocs\u4e3b\u9898\uff0c\u7279\u522b\u5f3a\u8c03\u4e86\u76ee\u5f55\u7ed3\u6784\u7ba1\u7406\u548cGitHub Pages\u7684\u53d1\u5e03\u8bbe\u7f6e\u8981\u70b9\uff0c\u9002\u5408\u9700\u8981\u5feb\u901f\u642d\u5efa\u6280\u672f\u6587\u6863\u7f51\u7ad9\u7684\u5f00\u53d1\u4eba\u5458\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a485 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a73
Info
Material for MkDocs\u5b98\u65b9\u7f51\u7ad9: Material for MkDocs MkDocs\u4e2d\u6587\u6587\u6863: MkDocs\u4e2d\u6587\u6587\u6863
\u63a8\u8350\u770b\u4e0b\u8fd9\u4e2a\u89c6\u9891\uff1a How to set up Material for MkDocs by @Wcowin \u2013 10m \u2013 \u7528MKdocs\u6784\u5efa\u4e00\u4e2a\u535a\u5ba2\u7f51\u7ad9.
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs1/#_1","title":"\u4e00\u3001\u51c6\u5907\u5de5\u4f5c","text":"1.\u4e0b\u8f7dGithub Desktop
2.\u6709\u4e00\u4e2aGitHub\u8d26\u53f7\u200b\u200b\u200b\u200b\u200b\u200b\u200b(\u6709\u624b\u5c31\u884c)
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs1/#creating-your-site","title":"\u4e8c\u3001Creating your site","text":"\u53c2\u8003\u6559\u7a0b\uff1a
\u5229\u7528mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHubpages\uff08\u66f4\u65b0\u7248\uff09
\u4e0e\u5176\u4ed6\u6559\u7a0b\u4e0d\u540c\uff0c\u6211\u9996\u5148\u5efa\u8bae\u5148\u5728Github\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a\u4f60\u7684\u540d\u5b57+github.io\u7684\u4ed3\u5e93
\u7136\u540e\u6253\u5f00github Desktop \u514b\u9686\u5230\u672c\u5730
\u6253\u5f00Wcowin.github.io\u76ee\u5f55\u8fdb\u5165\u7ec8\u7aef\u4f9d\u6b21\u8fd0\u884c:
pip install mkdocs-material\nmkdocs new mkdocs-site\n
\u51fa\u73b0\u4e0b\u56fe\u7684\u51e0\u4e2a\u6587\u4ef6
Tip
\u8fd9\u91cc\u5efa\u8bae\u628amkdocs-site\u6587\u4ef6\u91cc\u7684\u4e1c\u897f\u5168\u90e8\u526a\u5207\u51fa\u6765\u5230Wcowin.github.io\u6587\u4ef6\u91cc
Wcowin.github.io\u662f\u514b\u9686\u5230\u672c\u5730\u7684\u4ed3\u5e93\uff08\u91cc\u9762\u5305\u542bdocs,yml\u6587\u4ef6\u7b49\u7b49\uff09\uff0cdocs\u6587\u4ef6\u4e0b\u662f\u4ee5\u540e\u7f51\u7ad9\u7684\u5185\u5bb9\uff0cmkdocs.yml\u662f\u914d\u7f6e\u6587\u4ef6\uff08\u914d\u7f6e\u4e3b\u9898\uff0c\u76ee\u5f55\uff0c\u63d2\u4ef6\u7b49\uff09
\u4f60\u5728\u8fd9\u4e2a\u76ee\u5f55\u4e0b\u5199\u7684\u4efb\u4f55\u4e1c\u897f\u90fd\u53ef\u4ee5\u901a\u8fc7Github Desktop \u4e0a\u4f20\u5230github\u4e0a
\u6267\u884c\u4e0b\u9762\u7684\u4ee3\u7801\u6dfb\u52a0\u4e00\u4e2aGitHub Workflow
\u8fc7\u65f6\u7684PublishMySite.yml
(\u6267\u884c\u4e0b\u9762\u7684\u4ee3\u7801\u6dfb\u52a0\u4e00\u4e2aGitHub Workflow(\u5df2\u7ecf\u8fc7\u65f6\u4f46\u662f\u4ecd\u7136\u80fd\u7528\uff0c\u6700\u65b0\u65b9\u6cd5\u89c1\u4e0b\u65b9ci.yml)
mkdir .github\ncd .github\nmkdir workflows\ncd workflows\nvim PublishMySite.yml\n
\u5728PublishMySite.yml\u91cc\u9762\u8f93\u5165\u4ee5\u4e0b\u5185\u5bb9
name: publish site\non: # \u5728\u4ec0\u4e48\u65f6\u5019\u89e6\u53d1\u5de5\u4f5c\u6d41\n push: # \u5728\u4ece\u672c\u5730main\u5206\u652f\u88abpush\u5230GitHub\u4ed3\u5e93\u65f6\n branches:\n - main\n pull_request: # \u5728main\u5206\u652f\u5408\u5e76\u522b\u4eba\u63d0\u7684pr\u65f6\n branches:\n - main\njobs: # \u5de5\u4f5c\u6d41\u7684\u5177\u4f53\u5185\u5bb9\n deploy:\n runs-on: ubuntu-latest # \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u4e91\u7aef\u865a\u62df\u673a \u4f7f\u7528\u6700\u65b0Ubuntu\u7cfb\u7edf\n steps:\n - uses: actions/checkout@v2 # \u5148checkout\u5230main\u5206\u652f\n - uses: actions/setup-python@v2 # \u518d\u5b89\u88c5Python3\u548c\u76f8\u5173\u73af\u5883\n with:\n python-version: 3.x\n - run: pip install mkdocs-material # \u4f7f\u7528pip\u5305\u7ba1\u7406\u5de5\u5177\u5b89\u88c5mkdocs-material\n - run: mkdocs gh-deploy --force # \u4f7f\u7528mkdocs-material\u90e8\u7f72gh-pages\u5206\u652f\n
)
mkdir .github\ncd .github\nmkdir workflows\ncd workflows\nvim ci.yml\n
\u8fdb\u5165.github/workflows/ci.yml\uff0c\u7136\u540e\u590d\u5236\u5e76\u7c98\u8d34\u4ee5\u4e0b\u5185\u5bb9\uff1a
name: ci \non:\n push:\n branches:\n - master \n - main\npermissions:\n contents: write\njobs:\n deploy:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n - name: Configure Git Credentials\n run: |\n git config user.name github-actions[bot]\n git config user.email 41898282+github-actions[bot]@users.noreply.github.com\n - uses: actions/setup-python@v4\n with:\n python-version: 3.x\n - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV \n - uses: actions/cache@v3\n with:\n key: mkdocs-material-${{ env.cache_id }}\n path: .cache\n restore-keys: |\n mkdocs-material-\n - run: pip install mkdocs-material \n - run: mkdocs gh-deploy --force\n
\u5230\u8fd9\u91cc\u5148\u68c0\u67e5\u4e00\u4e0b\u4f60\u7684\u76ee\u5f55\u7ed3\u6784 \u76ee\u5f55\u6811\u72b6\u56fe:
$ tree -a\nWcowin.github.io\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 ci.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2514\u2500\u2500 mkdocs.yml\n
\u91cd\u70b9\u6765\u4e86
Github\u4ed3\u5e93setings/Actions/General \u52fe\u9009\u8fd9\u4e24\u9879
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs1/#_2","title":"\u4e09\u3001\u914d\u7f6e\u5b8c\u5584","text":"
\u6253\u5f00mkdocs.yml
\u628a\u4ee5\u4e0b\u7684\u5185\u5bb9\u8f93\u5165\u8fdb\u53bb\uff08\u6700\u7b80\u5355\u6700\u57fa\u7840\u7684\u914d\u7f6e\uff09
site_name: \u7f51\u7ad9\u540d\u5b57\nsite_url: \u7f51\u7ad9\u94fe\u63a5\nsite_author: \u4f60\u7684\u540d\u5b57\ntheme:\n name: material #\u4e3b\u9898\n
\u8be6\u7ec6mkdocs.yml\u914d\u7f6e\u89c1Changing the colors - Material for MkDocs
\u4e0b\u6b21\u6211\u4f1a\u5177\u4f53\u8c08\u8c08\u8fd9\u4e2a\u95ee\u9898
\u5728\u4e0b\u65b9\u7ec8\u7aef\u8fd0\u884c\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u770b\u5230\u5b9e\u65f6\u7f51\u7ad9
mkdocs serve\n
\u8fd9\u4e2a\u7f51\u7ad9\u5c31\u7b97\u662f\u521d\u6b65\u5efa\u597d\u4e86
\u6700\u540e\u53bbgithub Desktop\u4e0a\u4f20\u5230github \u4e0a\u56fe\u53ef\u4ee5\u770b\u5230\uff0c\u6211\u4e0a\u4f20\u4e86Wcowin.github.io\u6587\u4ef6\u5939\uff0c\u8fd9\u4e2a\u6587\u4ef6\u5939\u91cc\u9762\u5305\u542b\u4e86mkdocs.yml\u548cdocs\u6587\u4ef6\u5939(mkdocs-site\u6587\u4ef6\u5939\u73b0\u5728\u6ca1\u6709\u4e1c\u897f\uff0c\u53ef\u4ee5\u5220\u9664)
\uff01\uff01\uff01\u91cd\u70b9 \u53bb\u4ed3\u5e93\u7684setings/pages\u9009\u62e9\u4e0b\u56fe\u793a\u610f\u7684\u8def\u5f84
\u7b49\u5f85\u4e00\u4f1a\u7f51\u5740\u5c31\u51fa\u6765\u4e861
\u4f60\u7684\u7f51\u7ad9\u7f51\u5740\u5c31\u662f\uff1a\u200b
https://\u4f60github\u7684\u540d\u5b57.github.io/\n\u56e0\u4e3a\u6211\u7ed1\u5b9a\u4e86\u57df\u540d\u6240\u4ee5\u7f51\u5740\u662f\uff1ahttps://wcowin.work/\n
\u4e0b\u6b21\u8c08\u8c08\u7f51\u7ad9\u7684mkdocs.yml\u5177\u4f53\u914d\u7f6e
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs1/#_3","title":"\u56db\u3001\u53c2\u8003\u8d44\u6599","text":"
- MkDocs\u5b98\u7f51
- MkDocs\u4e2d\u6587\u6587\u6863
- Material for MkDocs
- Mkdocs \u914d\u7f6e\u548c\u4f7f\u7528
- Deploy MkDocs
-
\u4e8e2025.2.19\u91cd\u5199\u6b64\u6587\u00a0\u21a9
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/","title":"Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHub pages\u914d\u7f6e\u8bf4\u660e(mkdocs.yml)","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u8be6\u7ec6\u4ecb\u7ecd\u4e86Mkdocs\u914d\u7f6e\u6587\u4ef6mkdocs.yml\u7684\u6838\u5fc3\u914d\u7f6e\u9879\uff0c\u5305\u62ec\u7ad9\u70b9\u57fa\u672c\u4fe1\u606f\u8bbe\u7f6e\u3001\u4e3b\u9898\u914d\u8272\u65b9\u6848\uff08\u652f\u6301\u660e\u6697\u6a21\u5f0f\u5207\u6362\uff09\u3001\u5bfc\u822a\u529f\u80fd\u4f18\u5316\uff08\u5982\u76ee\u5f55\u5c55\u5f00\u3001\u8fd4\u56de\u9876\u90e8\u6309\u94ae\uff09\u4ee5\u53ca\u641c\u7d22\u589e\u5f3a\u529f\u80fd\u3002\u91cd\u70b9\u8bb2\u89e3\u4e86\u6807\u7b7e\u7cfb\u7edf\u5b9e\u73b0\u65b9\u6cd5\u3001Markdown\u6269\u5c55\u914d\u7f6e\uff0c\u5e76\u63d0\u4f9b\u4e86\u81ea\u5b9a\u4e49CSS/JS\u7684\u8def\u5f84\u5f15\u5165\u65b9\u5f0f\u3002\u914d\u7f6e\u652f\u6301\u4e2d\u6587\u754c\u9762\uff0c\u53ef\u901a\u8fc7\u4fee\u6539palette\u53c2\u6570\u8c03\u6574\u4e3b\u9898\u8272\uff0c\u9002\u5408\u9700\u8981\u5feb\u901f\u642d\u5efa\u6587\u6863\u7f51\u7ad9\u7684\u6280\u672f\u4eba\u5458\u53c2\u8003\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a2 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a818 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a555
\u5b98\u65b9\u6587\u4ef6\uff1aChanging the colors - Material for MkDocs
\u5efa\u8bae\u8be6\u7ec6\u5b66\u4e60\u4e00\u4e0b\u4e0a\u9762\u7684\u5b98\u65b9\u7f51\u7ad9\u2191\u2191\u2191
\u6211\u628a\u6211\u76ee\u524d\u7684\u914d\u7f6e\u6587\u4ef6mkdocs.yml\u4ee3\u7801\u5199\u5728\u4e0b\u9762\ud83d\udc47\ud83c\udffb
\u70b9\u51fb\u5c55\u5f00
#[Info]\nsite_name: Mkdocs\u6559\u7a0b #your site name \u663e\u793a\u5728\u5de6\u4e0a\u89d2\nsite_url: http://wcowin.work/Mkdocs-Wcowin\nsite_description: \u77e5\u8db3\u4e14\u4e0a\u8fdb\uff0c\u6e29\u67d4\u4e14\u575a\u5b9a\nsite_author: \u738b\u79d1\u6587(Wcowin) # your name\n#[UI]\ntheme:\n name: material\n custom_dir: docs/overrides #\u8986\u5199\u8def\u5f84\n # font: #\u8c37\u6b4c\u5b57\u4f53\uff0c\u81ea\u884c\u641c\u7d22\n # text: Bitter #\u6587\u672c\u5b57\u4f53\n # code: Roboto Mono #\u4ee3\u7801\u5b57\u4f53\n # logo: assets/favicon.png #\u5de6\u4e0a\u89d2logo\uff0c\u53ef\u63d2\u5165\u56fe\u7247\u94fe\u63a5\n favicon: https://s2.loli.net/2024/04/26/PmRdM9iGnvOJHgu.png # \u7f51\u9875icon\n palette:\n - media: \"(prefers-color-scheme)\"\n toggle:\n icon: material/link\n name: \u5173\u95ed\u81ea\u52a8\u6a21\u5f0f\n #primary: blue grey\n - media: \"(prefers-color-scheme: light)\"\n scheme: default # \u65e5\u95f4\u6a21\u5f0f\n primary: blue grey # \u4e0a\u65b9\u7684\n accent: blue # \u94fe\u63a5\u7b49\u53ef\u4ea4\u4e92\u5143\u4ef6\u7684\u9ad8\u4eae\u8272\n # teal\n toggle:\n icon: material/toggle-switch # \u56fe\u6807\n name: \u5207\u6362\u81f3\u591c\u95f4\u6a21\u5f0f # \u9f20\u6807\u60ac\u6d6e\u63d0\u793a\n - media: \"(prefers-color-scheme: dark)\"\n scheme: slate # \u591c\u95f4\u6a21\u5f0f\n primary: black\n accent: indigo\n # teal\n toggle:\n icon: material/toggle-switch-off-outline\n name: \u5207\u6362\u81f3\u65e5\u95f4\u6a21\u5f0f\n features:\n - announce.dismiss #\u5448\u73b0\u53ef\u6807\u8bb0\u4e3a\u7531\u7528\u6237\u8bfb\u53d6\u7684\u4e34\u65f6\u516c\u544a\uff0c\u53ef\u4ee5\u5305\u542b\u4e00\u4e2a\u7528\u4e8e\u53d6\u6d88\u5f53\u524d\u516c\u544a\u7684\u6309\u94ae\n # - navigation.instant\n #- header.autohide #\u81ea\u52a8\u9690\u85cf\n - navigation.tracking #\u5730\u5740\u680f\u4e2d\u7684 URL \u5c06\u81ea\u52a8\u66f4\u65b0\u4e3a\u5728\u76ee\u5f55\u4e2d\u7a81\u51fa\u663e\u793a\u7684\u6d3b\u52a8\u951a\u70b9\n - navigation.tabs #\u9876\u7ea7\u90e8\u5206\u5c06\u5448\u73b0\u5728\u4e0a\u9762\u89c6\u53e3\u6807\u9898\u4e0b\u65b9\u7684\u83dc\u5355\u5c42\u4e2d\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n # - navigation.tabs.sticky #\u542f\u7528\u7c98\u6027\u9009\u9879\u5361\u540e\uff0c\u5bfc\u822a\u9009\u9879\u5361\u5c06\u9501\u5b9a\u5728\u6807\u9898\u4e0b\u65b9\uff0c\u5e76\u5728\u5411\u4e0b\u6eda\u52a8\u65f6\u59cb\u7ec8\u4fdd\u6301\u53ef\u89c1\n - navigation.sections #\u542f\u7528\u90e8\u5206\u540e\uff0c\u9876\u7ea7\u90e8\u5206\u5728\u8fb9\u680f\u4e2d\u5448\u73b0\u4e3a1220px\u4ee5\u4e0a\u89c6\u53e3\u7684\u7ec4\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n - navigation.top # \u8fd4\u56de\u9876\u90e8\u7684\u6309\u94ae \u5728\u4e0a\u6ed1\u65f6\u51fa\u73b0\n - navigation.footer #\u9875\u811a\u5c06\u5448\u73b0\u5728\u8fb9\u680f\u4e2d\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n - search.suggest # \u641c\u7d22\u8f93\u5165\u4e00\u4e9b\u5b57\u6bcd\u65f6\u63a8\u8350\u8865\u5168\u6574\u4e2a\u5355\u8bcd\n - search.highlight # \u641c\u7d22\u51fa\u7684\u6587\u7ae0\u5173\u952e\u8bcd\u52a0\u5165\u9ad8\u4eae\n - search.share #\u641c\u7d22\u5206\u4eab\u6309\u94ae\n - navigation.expand # \u6253\u5f00Tab\u65f6\u5de6\u4fa7\u76ee\u5f55\u5168\u90e8\u5c55\u5f00\n - navigation.indexes #\u542f\u7528\u8282\u7d22\u5f15\u9875\u540e\uff0c\u53ef\u4ee5\u5c06\u6587\u6863\u76f4\u63a5\u9644\u52a0\u5230\u8282\n - content.tabs.link\n - content.tooltips\n - content.code.copy #\u4ee3\u7801\u590d\u5236\n - content.action.edit\n - content.action.view\n - content.code.annotate\n language: zh # \u4e00\u4e9b\u63d0\u793a\u6027\u7684\u6587\u5b57\u4f1a\u53d8\u6210\u4e2d\u6587\n icon:\n repo: fontawesome/brands/github #\u53f3\u4e0a\u89d2\u56fe\u6807\n logo: logo\nedit_uri: edit/main/docs # \u7f16\u8f91\u6309\u94ae\u8df3\u8f6c\u7684\u94fe\u63a5\nrepo_url: https://github.com/Wcowin/Mkdocs-Wcowin # \u53f3\u4e0a\u89d2\u70b9\u51fb\u8df3\u8f6c\u7684\u94fe\u63a5\nrepo_name: Mkdocs-Wcowin # \u53f3\u4e0a\u89d2\u7684\u540d\u5b57\n# [Navigtion]\nnav:\n # - \u4e3b\u9875: index.md\n - MKdocs\u4e2d\u6587\u6559\u7a0b:\n - MKdocs\u6559\u7a0b(\u4e09\u90e8\u66f2):\n - 0. Mkdocs\u6559\u7a0b\u524d\u8a00: blog/Mkdocs/mkfirst.md\n - 1. \u5229\u7528mkdocs\u90e8\u7f72\u4e2a\u4eba\u9759\u6001\u535a\u5ba2\u7f51\u9875\u81f3GitHub pages: blog/Mkdocs/mkdocs1.md\n - 2. Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHub pages\u914d\u7f6e\u8bf4\u660e(mkdocs.yml): blog/Mkdocs/mkdocs2.md\n - 3. \u89e3\u51b3 mkdocs\u90e8\u7f72 Github Pages \u81ea\u5b9a\u4e49\u57df\u540d\u5931\u6548\u7684\u95ee\u9898: blog/Mkdocs/mkdocs3.md\n - Mkdocs\u7f8e\u5316:\n - \u6dfb\u52a0Mkdocs\u535a\u5ba2: blog/Mkdocs/mkdocsblog.md\n - \u7f51\u9875\u5706\u89d2\u5316\u8bbe\u8ba1: blog/websitebeauty/yuanjiaohua.md\n - \u6dfb\u52a0\u8bc4\u8bba\u7cfb\u7edf(giscus\u4e3a\u4f8b): blog/websitebeauty/mkcomments.md\n - \u6dfb\u52a0\u5728\u7ebf\u804a\u5929: blog/websitebeauty/webtalknow.md\n - \u6dfb\u52a0\u53cb\u94fe: blog/websitebeauty/linktech.md\n - \u6dfb\u52a0\u9876\u90e8\u516c\u544a\u680f: blog/websitebeauty/header.md\n - \u4fee\u6539\u7f51\u7ad9\u5b57\u4f53: blog/websitebeauty/mkdocsfont.md\n - JS\u5b9e\u73b0\u9f20\u6807\u6837\u5f0f: blog/websitebeauty/shubiao.md\n - \u80cc\u666f\u7279\u6548: blog/websitebeauty/backgroud.md\n - \u6dfb\u52a0404\u9875\u9762: blog/websitebeauty/404.md\n - \u4e3aMKdocs\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233: blog/websitebeauty/time.md\n - \u5efa\u8bbeMKdocs\u6280\u80fd\u6307\u5317:\n - Markdown:\n - Markdown\u6307\u5357: develop/Markdown/markdown.md\n - MWeb Pro: develop/Markdown/MWeb.md\n - Git \u5b9e\u7528\u6280\u5de7: develop/git.md\n - \u5229\u7528Lighthouse\u6d4b\u8bd5\u7f51\u7ad9\u6027\u80fd: develop/lighthouse.md\n - \u5982\u4f55\u5c06 github pages \u8fc1\u79fb\u5230 vercel \u4e0a\u6258\u7ba1: develop/vercel.md\n - \u8bbe\u8ba1\u7f8e\u5b66:\n - \u5510\u00b7\u8bfa\u66fc\u2014\u60c5\u611f\u8bbe\u8ba1\u7684\u4e09\u4e2a\u5c42\u6b21: develop/designbeauty/db1.md\n - \u6211\u5bf9\u8bbe\u8ba1\u7684\u4e00\u4e9b\u89c2\u70b9: develop/designbeauty/my-to-desihn.md\n\n - \u6807\u7b7e: tag.md\n - \u7559\u8a00\u677f: liuyanban.md\n - Blogger:\n - index: blog/index.md\n - \u53cb\u94fe:\n - \u53cb\u94fe: about/link.md\n - \u5173\u4e8e:\n - \u4f5c\u8005\u4e2a\u4eba\u7b80\u4ecb: about/geren.md\n - \u529f\u80fd\u6d4b\u8bd5: about/test.md\n - \u4e2a\u4eba\u535a\u5ba2: https://wcowin.work\n - \u4f7f\u7528\u672c\u4e3b\u9898: https://github.com/new?template_name=Mkdocs-Wcowin&template_owner=Wcowin\n\ncopyright: Copyright © 2022~2024 Wcowin/All Rights Reserved. # \u5de6\u4e0b\u89d2\u7684\u7248\u6743\u58f0\u660e\nextra:\n alternate:\n - name: \u7b80\u4f53\u4e2d\u6587\n link: /\n # https://wcowin-work.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh \n - name: English\n link: /Mkdocs-Wcowin/en/\n # https://wcowin-work.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: en\n - name: China(TW)\n link: /Mkdocs-Wcowin/ZH-TW/\n # https://wcowin-work.translate.goog/?_x_tr_sl=zh-CN&_x_tr_tl=zh-TW&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh-TW\n generator: true #\u662f\u5426\u5220\u9664\u9875\u811a\u663e\u793a\u201c\u4f7f\u7528 MkDocs \u6750\u6599\u5236\u9020\u201d\n social:\n - icon: fontawesome/brands/weixin\n link: https://s1.imagehub.cc/images/2024/02/02/bb9ee71b03ee7a3b87caad5cc4bcebff.jpeg\n name: Wechat\n - icon: fontawesome/brands/telegram\n link: https://t.me/wecowin\n name: telegram\n - icon: fontawesome/brands/x-twitter #\u8054\u7cfb\u65b9\u5f0f\u56fe\u6807 : https://fontawesome.com/ \u53bb\u8fd9\u91cc\u627e\u56fe\u6807\n link: https://twitter.com/wcowin_\n - icon: fontawesome/brands/github\n link: https://github.com/Wcowin\n\n - icon: fontawesome/regular/envelope #\u8054\u7cfb\u65b9\u5f0f\u56fe\u6807\n link: mailto:<wangkewen821@gmail.com> #\u90ae\u4ef6\u8054\u7cfb\u65b9\u5f0f\n - icon: fontawesome/brands/bilibili\n link: https://space.bilibili.com/1407028951/lists/4566631?type=series\n analytics:\n provider: google #\u8c37\u6b4c\u5206\u6790\n property: ##\u5982\u679c\u4f60 clone \u4e86my\u6a21\u677f\uff0c\u8bf7\u5c06\u8fd9\u4e2a\u4fee\u6539\u4e3a\u4f60\u7684\n\n # \u7f51\u9875\u5e95\u90e8\u53cd\u9988\n feedback:\n title: \u6b64\u9875\u9762\u6709\u5e2e\u52a9\u5417\uff1f\n ratings:\n - icon: material/thumb-up-outline #\u56fe\u6807\u53ef\u81ea\u5b9a\u4e49\n name: This page was helpful\n data: 1\n note: >-\n \u8c22\u8c22\u4f60\u7684\u53cd\u9988\uff01\n - icon: material/thumb-down-outline\n name: This page could be improved\n data: 0\n note: >-\n Thanks for your feedback! Help us improve this page by\n using our <a href=\"https://marketingplatform.google.com/about/analytics/\" target=\"_blank\" rel=\"noopener\">feedback form</a>.\n # cookies\u8bbe\u7f6e\uff08\u53ef\u9009\uff09\n # consent:\n # title: Cookie consent\n # description: >-\n # \u6211\u4eec\u4e5f\u4f7f\u7528cookies\u6765\u8bc6\u522b\u60a8\u7684\u91cd\u590d\u8bbf\u95ee\u548c\u504f\u597d\u6765\u8861\u91cf\u6211\u4eec\u6587\u6863\u7684\u6709\u6548\u6027\u4ee5\u53ca\u7528\u6237\u662f\u5426\u627e\u5230\u4ed6\u4eec\u8981\u627e\u7684\u4e1c\u897f\u3002\n # \u5982\u679c\u4f60\u540c\u610f,\u4f60\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u8ba9\u6211\u4eec\u7684\u7f51\u7ad9\u66f4\u597d\n\nplugins:\n - search #\u641c\u7d22\u914d\u7f6e\n - glightbox:\n enabled: !ENV [glightbox, false]\n touchNavigation: true\n loop: false\n effect: fade\n slide_effect: slide\n width: 100%\n height: auto\n zoomable: true\n draggable: true\n skip_classes:\n - custom-skip-class-name\n auto_caption: false\n caption_position: bottom\n background: white\n shadow: true\n manual: false\n - git-committers:\n enabled: !ENV [git-committers, false]\n repository: Wcowin/Mkdocs-Wcowin\n branch: main\n exclude:\n - index.md\n - tag.md\n - liuyanban.md\n - blog/posts/update.md\n - blog/posts/wkw.md\n - about/link.md\n - git-revision-date-localized:\n enabled: !ENV [git-revision-date-localized, false]\n type: iso_date\n enable_creation_date: false\n exclude:\n - index.md\n - tag.md\n - liuyanban.md\n - blog/posts/update.md\n - blog/posts/wkw.md\n - about/link.md\n - websitebeauty/linktech.md\n - blog: #\u535a\u5ba2\u914d\u7f6e\n post_date_format: full #\u65f6\u95f4\n draft: true\n draft_if_future_date: true #\u81ea\u52a8\u5c06\u5177\u6709\u672a\u6765\u65e5\u671f\u7684\u5e16\u5b50\u6807\u8bb0\u4e3a\u8349\u7a3f\n post_readtime: true\n post_readtime_words_per_minute: 265 #\u8ba1\u7b97\u5e16\u5b50\u7684\u9605\u8bfb\u65f6\u95f4\u65f6\u8bfb\u8005\u6bcf\u5206\u949f\u9884\u8ba1\u9605\u8bfb\u7684\u5b57\u6570\n post_url_format: \"{date}/{slug}\"\n # categories_slugify: !!python/object/apply:pymdownx.slugs.slugify\n # kwds:\n # case: lower\n pagination_url_format: \"page/{page}\"\n authors_file: \"{blog}/.authors.yml\" #\u4f5c\u8005\u4fe1\u606f\n - tags\n\nmarkdown_extensions: #\u8be6\u89c1https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/ \u548c https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/\n - abbr\n - attr_list\n - admonition\n - def_list\n - footnotes\n - md_in_html\n # - meta # \u652f\u6301Markdown\u6587\u4ef6\u4e0a\u65b9\u81ea\u5b9a\u4e49\u6807\u9898\u6807\u7b7e\u7b49\n - pymdownx.caret\n - pymdownx.betterem\n - pymdownx.critic\n - pymdownx.details\n - pymdownx.inlinehilite\n - pymdownx.keys\n - pymdownx.mark\n - pymdownx.snippets\n - pymdownx.smartsymbols\n - pymdownx.tilde\n - pymdownx.superfences:\n custom_fences:\n - name: mermaid\n class: mermaid\n format:\n !!python/name:pymdownx.superfences.fence_code_format # \u4ee3\u7801\u5757\u9ad8\u4eae\u63d2\u4ef6\n - pymdownx.arithmatex: # latex\u652f\u6301\n generic: true\n - toc:\n permalink: true # \u56fa\u5b9a\u6807\u9898\u4f4d\u7f6e\u4e3a\u5f53\u524d\u4f4d\u7f6e\n - pymdownx.highlight: # \u4ee3\u7801\u5757\u9ad8\u4eae\n anchor_linenums: true\n linenums: true # \u663e\u793a\u884c\u53f7\n # auto_title: true # \u663e\u793a\u7f16\u7a0b\u8bed\u8a00\u540d\u79f0\n - pymdownx.emoji:\n emoji_index: !!python/name:material.extensions.emoji.twemoji\n emoji_generator: !!python/name:material.extensions.emoji.to_svg\n - pymdownx.tabbed:\n alternate_style: true\n - pymdownx.tasklist:\n custom_checkbox: true\n # - markdown.extensions.toc:\n # slugify: !!python/object/apply:pymdownx.slugs.slugify {kwds: {case: lower}}\n # permalink: \"\\ue157\"\n\nextra_javascript:\n # - javascripts/extra.js #\u81ea\u5b9a\u4e49javascript\n - https://cdn.jsdelivr.net/gh/Wcowin/Wcowin.github.io@main/docs/javascripts/extra.js # extra\u7684cdn\n - javascripts/mathjax.js #Latex\u652f\u6301\n - https://polyfill.io/v3/polyfill.min.js?features=es6 #Latex\u652f\u6301\n - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js #Latex\u652f\u6301\n # - ckplayer/js/ckplayer.js #\u64ad\u653e\u5668\u914d\u7f6e\n # - https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js #gitalk\u652f\u6301\n - https://cdn.jsdelivr.net/npm/mermaid@10.0.2/dist/add-html-label-6e56ed67.min.js #\u5fd8\u4e86\n\nextra_css:\n - stylesheets/extra.css # \u81ea\u5b9a\u4e49CSS\n - stylesheets/link.css #\u53cb\u94fe\u914d\u7f6e\n - stylesheets/customize.css # \u641c\u7d22\u5706\u89d2\u4f18\u5316\n # - assets/stylesheets/portfolio.css\n # - stylesheets/video.css #\u64ad\u653e\u5668\u53ef\u9009\u914d\u7f6e\n # - https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.css #gitalk\u652f\u6301\n # - ckplayer/css/ckplayer.css #\u64ad\u653e\u5668\u914d\u7f6e\n # - https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css # font-awesome\u8868\u60c5\u652f\u6301\n # - https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/css/share.min.css #\u5206\u4eab\u652f\u6301\n\n - https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.1.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-lite-webfont@1.1.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-tc-webfont@1.0.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css #\u5b57\u4f53\n\nhooks:\n - docs/overrides/hooks/socialmedia.py\n
\u4ece\u5934\u5f00\u59cb\u5206\u6790
site_name: \u7f51\u7ad9\u540d\u5b57\nsite_url: \u7f51\u7ad9\u7f51\u5740\nsite_author: \u4f5c\u8005\u540d\u5b57\n
\u65e0\u987b\u591a\u8a00","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#theme","title":"theme\u90e8\u5206","text":"","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#_1","title":"\u9876\u90e8\u989c\u8272","text":"
theme:\n palette:\n primary: yellow #\u9876\u90e8\u989c\u8272\n
primary\u540e\u9762\u662f\u7f51\u7ad9\u9876\u90e8\u680f\u76ee\u7684\u989c\u8272\uff08\u4e5f\u7528\u4e8e\u6807\u9898\u3001\u8fb9\u680f\u3001\u6587\u672c\u94fe\u63a5\u548c\u5176\u4ed6\u51e0\u4e2a\u7ec4\u4ef6\uff09 \u76ee\u524d\u652f\u6301\u4e0b\u9762\u51e0\u4e2a\u989c\u8272\uff1a ","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#_2","title":"\u660e\u6697\u4e3b\u9898\u6309\u94ae","text":"
theme:\n palette: \n # Palette toggle for light mode\n - scheme: default\n toggle:\n icon: material/brightness-7 \n name: Switch to dark mode\n\n # Palette toggle for dark mode\n - scheme: slate\n toggle:\n icon: material/brightness-4\n name: Switch to light mode\n
\u6b64\u914d\u7f6e\u5c06\u5728\u641c\u7d22\u680f\u65c1\u8fb9\u5448\u73b0\u8c03\u8272\u677f\u5207\u6362\u3002\u8bf7\u6ce8\u610f\uff0c\u60a8\u8fd8\u53ef\u4ee5\u4e3a\u6bcf\u4e2a\u8c03\u8272\u677f\u7684primary\u548caccent\u5b9a\u4e49\u5355\u72ec\u7684\u8bbe\u7f6e\u3002
\u6309\u94ae\u56fe\u6807\u53ef\u4ee5\u6539\u53d8\uff08\u4fee\u6539icon\u540e\u9762\u7684\u4ee3\u7801\uff09\uff1a
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#features","title":"features","text":"
features:\n - announce.dismiss #\u5448\u73b0\u53ef\u6807\u8bb0\u4e3a\u7531\u7528\u6237\u8bfb\u53d6\u7684\u4e34\u65f6\u516c\u544a\uff0c\u53ef\u4ee5\u5305\u542b\u4e00\u4e2a\u7528\u4e8e\u53d6\u6d88\u5f53\u524d\u516c\u544a\u7684\u6309\u94ae\n # - navigation.instant\n #- header.autohide #\u81ea\u52a8\u9690\u85cf\n - navigation.tracking #\u5730\u5740\u680f\u4e2d\u7684 URL \u5c06\u81ea\u52a8\u66f4\u65b0\u4e3a\u5728\u76ee\u5f55\u4e2d\u7a81\u51fa\u663e\u793a\u7684\u6d3b\u52a8\u951a\u70b9\n - navigation.tabs #\u9876\u7ea7\u90e8\u5206\u5c06\u5448\u73b0\u5728\u4e0a\u9762\u89c6\u53e3\u6807\u9898\u4e0b\u65b9\u7684\u83dc\u5355\u5c42\u4e2d\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n # - navigation.tabs.sticky #\u542f\u7528\u7c98\u6027\u9009\u9879\u5361\u540e\uff0c\u5bfc\u822a\u9009\u9879\u5361\u5c06\u9501\u5b9a\u5728\u6807\u9898\u4e0b\u65b9\uff0c\u5e76\u5728\u5411\u4e0b\u6eda\u52a8\u65f6\u59cb\u7ec8\u4fdd\u6301\u53ef\u89c1\n - navigation.sections #\u542f\u7528\u90e8\u5206\u540e\uff0c\u9876\u7ea7\u90e8\u5206\u5728\u8fb9\u680f\u4e2d\u5448\u73b0\u4e3a1220px\u4ee5\u4e0a\u89c6\u53e3\u7684\u7ec4\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n - navigation.top # \u8fd4\u56de\u9876\u90e8\u7684\u6309\u94ae \u5728\u4e0a\u6ed1\u65f6\u51fa\u73b0\n - navigation.footer #\u9875\u811a\u5c06\u5448\u73b0\u5728\u8fb9\u680f\u4e2d\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n - search.suggest # \u641c\u7d22\u8f93\u5165\u4e00\u4e9b\u5b57\u6bcd\u65f6\u63a8\u8350\u8865\u5168\u6574\u4e2a\u5355\u8bcd\n - search.highlight # \u641c\u7d22\u51fa\u7684\u6587\u7ae0\u5173\u952e\u8bcd\u52a0\u5165\u9ad8\u4eae\n - search.share #\u641c\u7d22\u5206\u4eab\u6309\u94ae\n - navigation.expand # \u6253\u5f00Tab\u65f6\u5de6\u4fa7\u76ee\u5f55\u5168\u90e8\u5c55\u5f00\n - navigation.indexes #\u542f\u7528\u8282\u7d22\u5f15\u9875\u540e\uff0c\u53ef\u4ee5\u5c06\u6587\u6863\u76f4\u63a5\u9644\u52a0\u5230\u8282\n - content.tabs.link\n - content.tooltips\n - content.code.copy #\u4ee3\u7801\u590d\u5236\n - content.action.edit\n - content.action.view\n - content.code.annotate\n language: zh # \u4e00\u4e9b\u63d0\u793a\u6027\u7684\u6587\u5b57\u4f1a\u53d8\u6210\u4e2d\u6587\n\n icon:\n repo: fontawesome/brands/github #\u53f3\u4e0a\u89d2\u56fe\u6807\n logo: logo\n
\u770b\u6211\u6240\u505a\u7684\u6ce8\u91ca\u5c31\u5f88\u597d\u7406\u89e3\uff0cfeature\u90e8\u5206\u8ba9\u7f51\u7ad9\u62e5\u6709\u4e86\u76ee\u5f55\uff0c\u589e\u52a0\u4e86\u641c\u7d22\u9879\u76ee\u7684\u529f\u80fd\uff0c\u8fd4\u56de\u9876\u90e8,\u63d0\u793a\u8bed\u53d8\u4e3a\u4e2d\u6587\u7b49\u529f\u80fd\uff0c\u6ce8\u91ca\u91cc\u5f88\u7b80\u660e\u4ecb\u7ecd\u4e86 ","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#nav","title":"nav\u90e8\u5206","text":"
\u8fd9\u4e00\u90e8\u5206\u5c31\u662f\u7f51\u7ad9\u6587\u6863\u76ee\u5f55
nav: \n - \u535a\u5ba2:\n - \u597d\u7528/\u597d\u73a9\u7f51\u7ad9\u5206\u4eab: blog/Webplay.md #.md\u6587\u4ef6\u7684\u76f8\u5bf9\u8def\u5f84\n - \u5f00\u53d1: \n - Markdown: develop/markdown.md\n
\u4f9d\u7167\u4e0a\u9762\u7684\u6a21\u7248\u4e3a\u4f8b\uff0c\u4f60\u53ef\u4ee5\u5728\u9876\u90e8\u680f\u76ee\u5efa\u7acb\u535a\u5ba2\u548c\u5f00\u53d1\u4e24\u4e2a\u5927\u6807\u7b7e
- \u5185\u5bb9\u6807\u9898: \u6587\u4ef6\u8def\u5f84\n
\u5185\u5bb9\u6807\u9898\u6548\u679c\uff1a
.md\u6587\u4ef6\u8def\u5f84(\u76f8\u5bf9\u8def\u5f84)\uff1a
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#_3","title":"\u5982\u4f55\u5199\u4e00\u7bc7\u6587\u7ae0","text":"
\u53ef\u80fd\u770b\u8d77\u6bd4\u8f83\u590d\u6742\uff0c\u603b\u7ed3\u4e00\u4e0b\u5c31\u662f\uff1a\u6211\u60f3\u5199\u4e00\u7bc7\u6587\u7ae0\u5728docs/blog\u4e0b\u5199\u4e00\u7bc7\u540d\u4e3aWcowin\u6700\u5e05
\u7684\u6587\u7ae0\uff0c\u9996\u5148\u5728docs/blog\u4e0b\u65b0\u5efa\u4e00\u4e2axxx.md
\u6587\u4ef6\uff0c\u91cc\u9762\u5199\u5199\u4e1c\u897f\uff0c\u518d\u53bbmkdocs.yml\u91cc\u627e\u5230nav\uff0c\u8fd9\u6837\u5199\uff1a
nav: \n - \u535a\u5ba2:\n - Wcowin\u6700\u5e05: blog/xxx.md #.md\u6587\u4ef6\u7684\u76f8\u5bf9\u8def\u5f84\n
nav\u624d\u662f\u6700\u7ec8\u51b3\u5b9a\u8fd9\u7bc7\u6587\u7ae0\u4f4d\u7f6e\u7684\u914d\u7f6e\uff0cdocs\u4e0b\u7684md\u6587\u4ef6\u53ea\u662f\u5b58\u653e\u529f\u80fd
\u8fd9\u91cc\u4e5f\u6ce8\u610f\uff1a\u6240\u6709\u6587\u4ef6\u90fd\u5728docs\u6587\u4ef6\u4e0b\uff0c\u6587\u4ef6\u7c7b\u578b\u9664CSS\uff0cJavascript,yml\u7b49\u90fd\u662f.md\u7ed3\u5c3e\u7684\u6587\u4ef6
\u6240\u4ee5\u5f3a\u70c8\u63a8\u8350\u60a8\u53bb\u5b66\u4e60Markdown\u3001HTML5\u3001CSS3\u3001Javascript\u7b49\u77e5\u8bc6\uff0c\u8fd9\u6837\u60a8\u5c31\u53ef\u4ee5\u81ea\u5b9a\u4e49\u60a8\u7684\u7f51\u7ad9\u4e86\u3002
\u5230\u8fd9\u91cc\u5148\u68c0\u67e5\u4e00\u4e0b\u6587\u4ef6\u6811\u72b6\u56fe(xx.md\u4ee3\u8868\u4f60\u7684md\u6587\u4ef6)\uff1a
$ tree -a\n.\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 PublishMySite.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500blog\n\u2502 \u2514\u2500\u2500xxx.md\n\u2502\n\u2514\u2500\u2500 mkdocs.yml\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#extra","title":"extra\u90e8\u5206","text":"
extra:\n alternate:\n - name: \u7b80\u4f53\u4e2d\u6587\n link: /\n # https://wcowin-work.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh \n - name: English\n link: /Mkdocs-Wcowin/en/\n # https://wcowin-work.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: en\n - name: China(TW)\n link: /Mkdocs-Wcowin/ZH-TW/\n # https://wcowin-work.translate.goog/?_x_tr_sl=zh-CN&_x_tr_tl=zh-TW&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh-TW\n generator: true #\u662f\u5426\u5220\u9664\u9875\u811a\u663e\u793a\u201c\u4f7f\u7528 MkDocs \u6750\u6599\u5236\u9020\u201d\n social:\n - icon: fontawesome/brands/weixin\n link: https://s1.imagehub.cc/images/2024/02/02/bb9ee71b03ee7a3b87caad5cc4bcebff.jpeg\n name: Wechat\n - icon: fontawesome/brands/telegram\n link: https://t.me/wecowin\n name: telegram\n - icon: fontawesome/brands/x-twitter #\u8054\u7cfb\u65b9\u5f0f\u56fe\u6807 : https://fontawesome.com/ \u53bb\u8fd9\u91cc\u627e\u56fe\u6807\n link: https://twitter.com/wcowin_\n - icon: fontawesome/brands/github\n link: https://github.com/Wcowin\n\n - icon: fontawesome/regular/envelope #\u8054\u7cfb\u65b9\u5f0f\u56fe\u6807\n link: mailto:<wangkewen821@gmail.com> #\u90ae\u4ef6\u8054\u7cfb\u65b9\u5f0f\n - icon: fontawesome/brands/bilibili\n link: https://space.bilibili.com/1407028951/lists/4566631?type=series\n analytics:\n provider: google #\u8c37\u6b4c\u5206\u6790\n property: ##\u5982\u679c\u4f60 clone \u4e86my\u6a21\u677f\uff0c\u8bf7\u5c06\u8fd9\u4e2a\u4fee\u6539\u4e3a\u4f60\u7684\n\n # \u7f51\u9875\u5e95\u90e8\u53cd\u9988\n feedback:\n title: \u6b64\u9875\u9762\u6709\u5e2e\u52a9\u5417\uff1f\n ratings:\n - icon: material/thumb-up-outline #\u56fe\u6807\u53ef\u81ea\u5b9a\u4e49\n name: This page was helpful\n data: 1\n note: >-\n \u8c22\u8c22\u4f60\u7684\u53cd\u9988\uff01\n - icon: material/thumb-down-outline\n name: This page could be improved\n data: 0\n note: >-\n Thanks for your feedback! Help us improve this page by\n using our <a href=\"https://marketingplatform.google.com/about/analytics/\" target=\"_blank\" rel=\"noopener\">feedback form</a>.\n # cookies\u8bbe\u7f6e\uff08\u53ef\u9009\uff09\n # consent:\n # title: Cookie consent\n # description: >-\n # \u6211\u4eec\u4e5f\u4f7f\u7528cookies\u6765\u8bc6\u522b\u60a8\u7684\u91cd\u590d\u8bbf\u95ee\u548c\u504f\u597d\u6765\u8861\u91cf\u6211\u4eec\u6587\u6863\u7684\u6709\u6548\u6027\u4ee5\u53ca\u7528\u6237\u662f\u5426\u627e\u5230\u4ed6\u4eec\u8981\u627e\u7684\u4e1c\u897f\u3002\n # \u5982\u679c\u4f60\u540c\u610f,\u4f60\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u8ba9\u6211\u4eec\u7684\u7f51\u7ad9\u66f4\u597d\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#alternate","title":"alternate","text":"
\u53ef\u4ee5\u8bbe\u7f6e\u7f51\u9875\u7ffb\u8bd1(\u4f46\u662f\u4e0d\u592a\u5efa\u8bae\u4f7f\u7528\uff0c\u5f88\u9ebb\u70e6\uff0c\u8fd9\u91cc\u5c31\u4e0d\u7ec6\u8bb2\u4e86) \u5b98\u7f51\u6559\u7a0b\u7f51\u5740
alternate:\n - name: English\n link: https://wcowin-work.translate.goog/?_x_tr_sl=zh-CN&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp \n lang: en\n - name: \u4e2d\u56fd(\u53f0\u6e7e)\n link: https://wcowin-work.translate.goog/?_x_tr_sl=zh-CN&_x_tr_tl=zh-TW&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh-TW\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#generator","title":"generator","text":"
\u8bbe\u7f6e\u4e3agenerator: false
\u53ef\u4ee5\u9009\u62e9\u662f\u5426\u5220\u9664\u5de6\u4e0b\u65b9\u9875\u811a\u663e\u793a\u201c\u4f7f\u7528 MkDocs \u6750\u6599\u5236\u9020\u201d
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#social","title":"social","text":"
\u53ef\u8bbe\u7f6e\u7f51\u7ad9\u53f3\u4e0b\u89d2\u7684\u793e\u4ea4\u94fe\u63a5\uff08icon\u662f\u5c0f\u56fe\u6807\uff0clink\u540e\u586b\u81ea\u5df1\u94fe\u63a5\u5373\u53ef\uff09\uff1a
\u6ce8\u610fsocial\u7684\u683c\u5f0f\uff1a
extra:\n social:\n - icon: fontawesome/brands/weixin\n link: https://s1.imagehub.cc/images/2024/02/02/bb9ee71b03ee7a3b87caad5cc4bcebff.jpeg\n name: Wechat\n - icon: fontawesome/brands/telegram\n link: https://t.me/wecowin\n name: telegram\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#cookie-consent","title":"cookie consent","text":"
analytics: \n provider: google\n property: G-XXXXXXXXXX #\u4f60\u7684Google Analytics ID\n feedback:\n title: \u6b64\u9875\u9762\u6709\u5e2e\u52a9\u5417\uff1f\n ratings:\n - icon: material/thumb-up-outline\n name: This page was helpful\n data: 1\n note: >-\n \u8c22\u8c22\u4f60\u7684\u53cd\u9988\uff01\n - icon: material/thumb-down-outline\n name: This page could be improved\n data: 0\n note: >- \n Thanks for your feedback! Help us improve this page by\n using our <a href=\"https://marketingplatform.google.com/about/analytics/\" target=\"_blank\" rel=\"noopener\">feedback form</a>.\n\n consent:\n title: Cookie consent\n description: >- \n \u6211\u4eec\u4e5f\u4f7f\u7528cookies\u6765\u8bc6\u522b\u60a8\u7684\u91cd\u590d\u8bbf\u95ee\u548c\u504f\u597d\u6765\u8861\u91cf\u6211\u4eec\u6587\u6863\u7684\u6709\u6548\u6027\u4ee5\u53ca\u7528\u6237\u662f\u5426\u627e\u5230\u4ed6\u4eec\u8981\u627e\u7684\u4e1c\u897f\u3002\n \u5982\u679c\u4f60\u540c\u610f,\u4f60\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u8ba9\u6211\u4eec\u7684\u7f51\u7ad9\u66f4\u597d\n
\u6ce8\u610fproperty: G-XXXXXXXXXX #\u4f60\u7684Google Analytics ID\uff0c\u8fd9\u91cc\u7684G-XXXXXXXXXX\u662f\u4f60\u7684Google Analytics ID\uff0c\u4f60\u53ef\u4ee5\u5728Google Analytics\u4e2d\u627e\u5230\uff0c\u5982\u679c\u4f60\u4e0d\u60f3\u4f7f\u7528Google Analytics\uff0c\u53ef\u4ee5\u5220\u9664\u8fd9\u4e00\u90e8\u5206\u3002
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#plugins","title":"Plugins\u90e8\u5206","text":"
plugins:\n - search #\u641c\u7d22\u914d\u7f6e\n - git-committers:\n enabled: !ENV [git-committers, false]\n repository: Wcowin/Mkdocs-Wcowin\n branch: main\n exclude:\n - index.md\n - tag.md\n - liuyanban.md\n - blog/posts/update.md\n - blog/posts/wkw.md\n - about/link.md\n - git-revision-date-localized:\n enabled: !ENV [git-revision-date-localized, false]\n type: iso_date\n enable_creation_date: false\n exclude:\n - index.md\n - tag.md\n - liuyanban.md\n - blog/posts/update.md\n - blog/posts/wkw.md\n - about/link.md\n - websitebeauty/linktech.md\n - blog: #\u535a\u5ba2\u914d\u7f6e\n post_date_format: full #\u65f6\u95f4\n draft: true\n draft_if_future_date: true #\u81ea\u52a8\u5c06\u5177\u6709\u672a\u6765\u65e5\u671f\u7684\u5e16\u5b50\u6807\u8bb0\u4e3a\u8349\u7a3f\n post_readtime: true\n post_readtime_words_per_minute: 265 #\u8ba1\u7b97\u5e16\u5b50\u7684\u9605\u8bfb\u65f6\u95f4\u65f6\u8bfb\u8005\u6bcf\u5206\u949f\u9884\u8ba1\u9605\u8bfb\u7684\u5b57\u6570\n post_url_format: \"{date}/{slug}\"\n # categories_slugify: !!python/object/apply:pymdownx.slugs.slugify\n # kwds:\n # case: lower\n pagination_url_format: \"page/{page}\"\n authors_file: \"{blog}/.authors.yml\" #\u4f5c\u8005\u4fe1\u606f\n - tags\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#search","title":"search","text":"
- search
\u5f00\u542f\u641c\u7d22\u529f\u80fd
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#blog","title":"blog","text":"
-blog
\u5373\u535a\u5ba2\uff0c\u53ef\u4ee5\u5728docs/blog/posts\u91cc\u76f4\u63a5\u5199md\u6587\u4ef6\uff08\u4e0d\u9700\u8981\u5728nav\u91cc\u5199\u8def\u5f84\uff09,\u7136\u540e\u5728\u4e0a\u8ff0nav\u91cc\u5199
nav:\n - Blog:\n - blog/index.md\n
\u535a\u5ba2\u6548\u679c\uff1a \u8be6\u7ec6\u914d\u7f6e\u53ef\u4ee5\u53bb\u770b\u6dfb\u52a0Mkdocs\u535a\u5ba2","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#tags","title":"tags","text":"
- tags
\u5c31\u662f\u6807\u7b7e
plugins:\n - tags\n
docs\u6587\u4ef6\u5939\u4e0b\u65b0\u5efatags.md\u6587\u4ef6
\u6ce8\u610f\uff01\uff01 tags.md\u91cc\u9700\u8981\u8fd9\u6837\u5199\uff1a
\u5f53\u4f60\u60f3\u4e3a\u67d0\u4e2amd\u6587\u6863\u6dfb\u52a0\u6807\u7b7e\uff0c\u8fd9\u4e2a.md\u6587\u4ef6(\u4f60\u5199\u7684markdown\u6587\u4ef6)\u6700\u5f00\u59cb\u7684\u5730\u65b9(\u79f0\u4e3ameta)\u90fd\u9700\u8981\u6dfb\u52a0\u6807\u7b7e\uff0c\u5426\u5219\u4e0d\u4f1a\u663e\u793a\u5728tags.md\u6587\u4ef6\u4e2d
meta\u683c\u5f0f\uff1a
---\ntitle: #\u6587\u7ae0\u6807\u9898\ntags:\n - \u4f60\u7684\u6807\u7b7e\u540d\u5b57\nhide:\n #- navigation # \u663e\u793a\u53f3\u4fa7\u5bfc\u822a\n #- toc #\u663e\u793a\u5de6\u4fa7\u5bfc\u822a\ncomments: false #\u8bc4\u8bba\uff0c\u9ed8\u8ba4\u4e0d\u5f00\u542f\n---\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#markdown_extensions","title":"markdown_extensions\u90e8\u5206","text":"
markdown_extensions: #\u8be6\u89c1https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/ \u548c https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/\n - abbr\n - attr_list\n - admonition\n - def_list\n - footnotes\n - md_in_html\n # - meta # \u652f\u6301Markdown\u6587\u4ef6\u4e0a\u65b9\u81ea\u5b9a\u4e49\u6807\u9898\u6807\u7b7e\u7b49\n - pymdownx.caret\n - pymdownx.betterem\n - pymdownx.critic\n - pymdownx.details\n - pymdownx.inlinehilite\n - pymdownx.keys\n - pymdownx.mark\n - pymdownx.snippets\n - pymdownx.smartsymbols\n - pymdownx.tilde\n - pymdownx.superfences:\n custom_fences:\n - name: mermaid\n class: mermaid\n format:\n !!python/name:pymdownx.superfences.fence_code_format # \u4ee3\u7801\u5757\u9ad8\u4eae\u63d2\u4ef6\n - pymdownx.arithmatex: # latex\u652f\u6301\n generic: true\n - toc:\n permalink: true # \u56fa\u5b9a\u6807\u9898\u4f4d\u7f6e\u4e3a\u5f53\u524d\u4f4d\u7f6e\n - pymdownx.highlight: # \u4ee3\u7801\u5757\u9ad8\u4eae\n anchor_linenums: true\n linenums: true # \u663e\u793a\u884c\u53f7\n # auto_title: true # \u663e\u793a\u7f16\u7a0b\u8bed\u8a00\u540d\u79f0\n - pymdownx.emoji:\n emoji_index: !!python/name:material.extensions.emoji.twemoji\n emoji_generator: !!python/name:material.extensions.emoji.to_svg\n - pymdownx.tabbed:\n alternate_style: true\n - pymdownx.tasklist:\n custom_checkbox: true\n
\u8fd9\u90e8\u5206\u662f\u5bf9markdown\u8bed\u6cd5\u7684\u6269\u5c55\uff0c\u6ce8\u91ca\u91cc\u4e5f\u6709\u7b80\u8ff0 \uff0c\u5efa\u8bae\u76f4\u63a5\u590d\u5236\u7c98\u8d34","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#extra_javascriptextra_css","title":"extra_javascript\u548cextra_css\u90e8\u5206","text":"
\u8fd9\u4e24\u90e8\u5206\u53ef\u4ee5\u8fdb\u4e00\u6b65\u7f8e\u5316\u7f51\u7ad9
extra_javascript:\n # - javascripts/extra.js #\u81ea\u5b9a\u4e49javascript\n - https://cdn.jsdelivr.net/gh/Wcowin/Wcowin.github.io@main/docs/javascripts/extra.js # extra\u7684cdn\n - javascripts/mathjax.js #Latex\u652f\u6301\n - https://polyfill.io/v3/polyfill.min.js?features=es6 #Latex\u652f\u6301\n - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js #Latex\u652f\u6301\n # - ckplayer/js/ckplayer.js #\u64ad\u653e\u5668\u914d\u7f6e\n # - https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js #gitalk\u652f\u6301\n - https://cdn.jsdelivr.net/npm/mermaid@10.0.2/dist/add-html-label-6e56ed67.min.js #\u5fd8\u4e86\n\nextra_css:\n - stylesheets/extra.css # \u81ea\u5b9a\u4e49CSS\n - stylesheets/link.css #\u53cb\u94fe\u914d\u7f6e\n - stylesheets/customize.css # \u641c\u7d22\u5706\u89d2\u4f18\u5316\n # - assets/stylesheets/portfolio.css\n # - stylesheets/video.css #\u64ad\u653e\u5668\u53ef\u9009\u914d\u7f6e\n # - https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.css #gitalk\u652f\u6301\n # - ckplayer/css/ckplayer.css #\u64ad\u653e\u5668\u914d\u7f6e\n # - https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css # font-awesome\u8868\u60c5\u652f\u6301\n # - https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/css/share.min.css #\u5206\u4eab\u652f\u6301\n\n - https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.1.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-lite-webfont@1.1.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-tc-webfont@1.0.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css #\u5b57\u4f53\n
javascripts/mathjax.js\u91cc\u6709\u5bf9\u6570\u5b66\u516c\u5f0f\u7684\u6269\u5c55
\u5f53\u4f60\u9700\u8981\u81ea\u5b9a\u4e49\u7f51\u9875CSS/JS,\u53ef\u4ee5\u5728docs\u6587\u4ef6\u5939\u4e0b\u65b0\u5efastylesheets/javascripts\u6587\u4ef6\u5939\uff0c\u7136\u540e\u5728stylesheets/javascripts\u6587\u4ef6\u5939\u91cc\u65b0\u5efaxx.css/xx.js\u6587\u4ef6\uff0c\u7136\u540e\u5728mkdocs.yml\u7684extra_javascript\u548cextra_css\u5f15\u5165xx.css/xx.js\u5373\u53ef
extra_javascript:\n # - javascripts/extra.js #\u81ea\u5b9a\u4e49\u7684javascript\nextra_css:\n - stylesheets/extra.css # \u81ea\u5b9a\u4e49\u7684CSS\n
\u5982\u679c\u4f60\u60f3\u81ea\u5b9a\u4e49\u7f51\u7ad9\u7684\u6837\u5f0f\uff0c\u53ef\u4ee5\u53c2\u8003\u8fd9\u51e0\u7bc7\u6587\u7ae0\uff1a
JS\u5b9e\u73b0\u9f20\u6807\u6837\u5f0f
\u80cc\u666f\u7279\u6548
\u81ea\u5b9a\u4e49\u7f51\u7ad9\u5b57\u4f53
\u6dfb\u52a0\u53cb\u94fe
\u6dfb\u52a0\u8bc4\u8bba\u7cfb\u7edf
\u4e3aMKdocs\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs3/","title":"\u89e3\u51b3Github Pages\u90e8\u7f72mkdocs\u81ea\u5b9a\u4e49\u57df\u540d\u5931\u6548\u7684\u95ee\u9898","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u5728GitHub Pages\u90e8\u7f72mkdocs\u65f6\uff0c\u81ea\u5b9a\u4e49\u57df\u540d\u5931\u6548\u7684\u4e3b\u8981\u539f\u56e0\u662f\u672c\u5730\u9879\u76ee\u672a\u540c\u6b65\u8fdc\u7a0b\u4ed3\u5e93\u7684CNAME\u6587\u4ef6\u3002\u89e3\u51b3\u65b9\u6cd5\u662f\u5728/docs\u76ee\u5f55\u4e0b\u521b\u5efa\u65e0\u540e\u7f00\u7684CNAME\u6587\u4ef6\u5e76\u586b\u5165\u57df\u540d\uff0c\u786e\u4fdd\u8be5\u6587\u4ef6\u968f\u9879\u76ee\u63a8\u9001\u81f3\u4ed3\u5e93\u3002\u6b64\u64cd\u4f5c\u53ef\u907f\u514d\u56e0\u672a\u62c9\u53d6\u8fdc\u7a0b\u53d8\u66f4\u5bfc\u81f4\u7684\u57df\u540d\u914d\u7f6e\u88ab\u6e05\u9664\u95ee\u9898\uff0c\u9002\u7528\u4e8e\u9700\u8981\u957f\u671f\u7ef4\u62a4\u81ea\u5b9a\u4e49\u57df\u540d\u7684\u9759\u6001\u7ad9\u70b9\u90e8\u7f72\u573a\u666f\u3002
\u5728/docs\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a CNAME \u7684 \u65e0\u540e\u7f00 \u6587\u4ef6\uff0c\u7136\u540e\u5728\u91cc\u9762\u586b\u5165\u4f60\u7684\u57df\u540d
\u539f\u56e0
\u56e0\u4e3a\u6bcf\u6b21\u5728 Custom domain \u6dfb\u52a0\u540e\u90fd\u4f1a\u7ed9\u6211\u4eec\u751f\u6210\u4e00\u4e2a CNAME \u7684\u6587\u4ef6\uff0c\u4f46\u662f\u56e0\u4e3a\u9879\u76ee\u6211\u4eec\u6ca1\u6709 pull \u5230\u672c\u5730\uff0c\u6240\u4ee5\u9020\u6210\u4e86\uff0c\u6bcf\u6b21 push \u4e4b\u540e CNAME \u4fe1\u606f\u88ab clear \u4e86
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocsblog/","title":"\u7f51\u7ad9\u6dfb\u52a0Mkdocs\u535a\u5ba2","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
Mkdocs\u5185\u7f6e\u535a\u5ba2\u63d2\u4ef6\u53ef\u5feb\u901f\u642d\u5efa\u6280\u672f\u535a\u5ba2\uff0c\u53ea\u9700\u5728mkdocs.yml\u4e2d\u6dfb\u52a0\u7b80\u5355\u914d\u7f6e\u5373\u53ef\u542f\u7528\u3002\u652f\u6301\u901a\u8fc7docs/blog/.authors.yml\u6587\u4ef6\u7ba1\u7406\u4f5c\u8005\u4fe1\u606f\uff0c\u65e0\u9700\u989d\u5916\u521b\u5efa\u6587\u4ef6\u3002\u8be5\u63d2\u4ef6\u7b80\u5316\u4e86\u6280\u672f\u6587\u6863\u4e0e\u535a\u5ba2\u7684\u96c6\u6210\u6d41\u7a0b\uff0c\u9002\u5408\u5f00\u53d1\u8005\u5feb\u901f\u6784\u5efa\u5185\u5bb9\u53d1\u5e03\u5e73\u53f0\uff0c\u540c\u65f6\u4fdd\u6301\u4e0eMkdocs\u6587\u6863\u7cfb\u7edf\u7684\u65e0\u7f1d\u8854\u63a5\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a114 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a19
\u535a\u5ba2\u6548\u679c\u5c55\u793a\uff1a\u535a\u5ba2
\u5b98\u65b9\u6587\u6863\uff1aBuilt-in blog plugin
\u4e0e\u6240\u6709\u5185\u7f6e\u63d2\u4ef6\u4e00\u6837\uff0c\u535a\u5ba2\u63d2\u4ef6\u7684\u5165\u95e8\u975e\u5e38\u7b80\u5355\u3002\u53ea\u9700\u5c06\u4ee5\u4e0b\u884c\u6dfb\u52a0\u5230mkdocs.yml
plugins:\n - blog\n
\u7136\u540e\u5728/docs/blog/posts\u4e0b\u5199md\u6587\u4ef6\u5373\u53ef\uff08\u65e0\u9700\u518dmkdocs.yml\u914d\u7f6e\uff0c\u5982\u6ca1\u6709post\u6587\u4ef6\uff0c\u65b0\u5efa\u4e00\u4e2a\u5373\u53ef\uff09 \u4f46\u662fbolg\u6587\u4ef6\u5939\u4e0b\u8981\u6709index.md\u6587\u4ef6(\u6ca1\u6709\u8fd9\u4e2a\u6587\u4ef6\u65b0\u5efa\u5373\u53ef)\uff01
\u5728mkdocs.yml\u7684nav\u90e8\u5206\u8fd9\u6837\u5199
nav:\n - \u535a\u5ba2:\n - index: blog/index.md\n
\u5143\u6807\u7b7e\u53c2\u8003\uff1a
---\ntitle: \nauthors: [Wcowin] #\u4f5c\u8005\ndate: 2023-10-04 #\u65f6\u95f4\ndraft: true # \u662f\u5426\u4e3a\u8349\u7a3f\ncategories: #\u5206\u7c7b\n - Hello\n---\n
\u4f5c\u8005\u4fe1\u606f\u5728docs/blog/.authors.yml\u91cc\u914d\u7f6e\uff08\u6ca1\u6709.authors.yml\u65b0\u5efa\u5373\u53ef\uff09
authors:\n Wcowin:\n name: Wang Kewen # Author name\n description: Free and casual # Author description\n avatar: https://s1.imagehub.cc/images/2024/02/02/91a767e93d1a344e44c69936464c583e.png # Author avatar\n
\u7ed3\u675f","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/","title":"Mkdocs\u6559\u7a0b\u524d\u8a00","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86MkDocs\u6587\u6863\u5de5\u5177\u7684\u5b66\u4e60\u8d44\u6e90\u548c\u4f7f\u7528\u6307\u5357\uff0c\u5305\u62ec\u5b98\u65b9\u6559\u7a0b\u3001Material\u4e3b\u9898\u6559\u7a0b\u53ca\u63d2\u4ef6\u5217\u8868\uff0c\u5e76\u63d0\u4f9b\u4e86\u4f5c\u8005\u7684\u4e2d\u6587\u6559\u7a0b\uff08\u8bed\u96c0\u3001CSDN\u3001\u77e5\u4e4e\uff09\u3002\u5185\u5bb9\u6db5\u76d6\u5feb\u901f\u90e8\u7f72\u9759\u6001\u7f51\u9875\u5230GitHub Pages\u3001\u914d\u7f6emkdocs.yml\u6587\u4ef6\u4ee5\u53ca\u6dfb\u52a0\u535a\u5ba2\u529f\u80fd\uff0c\u540c\u65f6\u9644\u6709\u89c6\u9891\u6559\u7a0b\u3002\u6700\u540e\u8bf7\u6c42\u4f7f\u7528\u8005\u6ce8\u660e\u6559\u7a0b\u6765\u6e90\u5e76\u652f\u6301\u53cb\u94fe\u7533\u8bf7\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a222 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a5
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_1","title":"\u6587\u6863\u6559\u7a0b","text":"
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_2","title":"\u5feb\u901f\u5f00\u59cb","text":"
-
\u4e09\u90e8\u66f2
- \u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHub pages
- Mkdocs\u90e8\u7f72\u914d\u7f6e\u8bf4\u660e(mkdocs.yml)
- \u7f51\u7ad9\u6dfb\u52a0Mkdocs\u535a\u5ba2
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_3","title":"\u89c6\u9891\u6559\u7a0b","text":"
\u5df2\u7ecf\u53d1\u5e03
-
\u89c6\u9891\u8d44\u6599
- Mkdocs\u4e2d\u6587\u6559\u7a0b\u89c6\u9891
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_4","title":"\u4e00\u70b9\u8bf7\u6c42","text":"
\u521b\u4f5c\u4e0d\u6613\u3002\u5982\u679c\u60a8\u53c2\u8003\u4e86\u672c\u6559\u7a0b/\u501f\u9274\u4e86\u7f51\u9875\u8bbe\u8ba1\uff0c\u5982\u679c\u53ef\u4ee5\u7684\u8bdd\uff0c\u70e6\u8bf7\u5728\u60a8\u7684\u7f51\u7ad9\u6ce8\u660e\u6559\u7a0b\u6765\u6e90\uff01\u611f\u8c22\uff01
\u793a\u4f8b\uff1a
-
\u53c2\u8003\u8d44\u6599
- \u5728\u6784\u5efa\u7f51\u7ad9\u7684\u8fc7\u7a0b\u4e2d\u53c2\u8003\u4e86Wcowin\u540c\u5b66\u7684Mkdocs\u6559\u7a0b
<div class=\"grid cards\" markdown>\n\n- :material-notebook-edit-outline:{ .lg .middle } __\u53c2\u8003\u8d44\u6599__\n\n ---\n\n - \u5728\u6784\u5efa\u672c\u7f51\u7ad9\u7684\u8fc7\u7a0b\u4e2d\u53c2\u8003\u4e86[Wcowin\u540c\u5b66\u7684Mkdocs\u6559\u7a0b](https://wcowin.work/Mkdocs-Wcowin/)\n\n</div>\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_5","title":"\u52a0\u5165\u53cb\u94fe","text":"
\u53cb\u94fe\u7533\u8bf7
","tags":["Mkdocs"]},{"location":"blog/2021/12/18/%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0%E6%B5%8B%E8%AF%95/","title":"\u535a\u5ba2\u6587\u7ae0\u6d4b\u8bd5","text":"
Share on Share on
"},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"2022\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
2022\u5e74\u7f51\u7ad9\u5efa\u8bbe\u8fc7\u7a0b\u5305\u62ec\uff1a10\u6708\u5efa\u7acbGithub\u4ed3\u5e93\u5e76\u6b63\u5f0f\u5efa\u7ad9\uff0c\u53d6\u6d88cookie\u786e\u8ba4\u7b80\u5316\u8bbf\u95ee\u6d41\u7a0b\uff0c\u65b0\u589e\u9996\u9875\u53cd\u9988\u529f\u80fd\uff1b6\u6708\u786e\u5b9a\u91c7\u7528MKdocs\u6846\u67b6\u642d\u5efa\uff0c\u5e76\u5168\u6b3e\u8d2d\u5165\u72ec\u7acb\u57df\u540d\u3002\u66f4\u65b0\u91cd\u70b9\u4f18\u5316\u4e86\u7528\u6237\u4f53\u9a8c\u548c\u9690\u79c1\u4fdd\u62a4\uff0c\u540c\u65f6\u5b8c\u5584\u4e86\u6280\u672f\u57fa\u7840\u8bbe\u65bd\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a64
"},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2022-10-20","title":"2022\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2022-10-20","text":"
\u00b6
- \u5efa\u7acbGithub\u4ed3\u5e93\uff0c\u6b63\u5f0f\u5efa\u7ad9
- \u53d6\u6d88cookie\u786e\u8ba4,\u7b80\u5316\u7f51\u7ad9\u6253\u5f00\u6d41\u7a0b
- \u65b0\u589e\u9996\u9875\u53cd\u9988\u6536\u96c6
"},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2022-10-06","title":"2022\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2022-10-06","text":"
\u00b6
- \u4e0d\u9760\u7236\u6bcd\uff0c\u5168\u6b3e\u62ff\u4e0b wcowin.work\u57df\u540d
- \u53d6\u6d88cookie\u786e\u8ba4\uff0c\u4fdd\u969c\u9690\u79c1
"},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2022-06-06","title":"
- \u7814\u7a76\u5982\u4f55\u5efa\u8bbe\u7f51\u7ad9\uff0c\u521d\u6b65\u5b9a\u6846\u67b6\u4e3aMKdocs
- \u65e9\u671f\u7f51\u5740\uff1ahttps://github.com/Wcowin/mymkdocs Share on Share on
","text":""},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2022-06-06","text":"\u00b6"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
2023\u5e74\u7f51\u7ad9\u66f4\u65b0\u4e3b\u8981\u6d89\u53ca\u6027\u80fd\u4f18\u5316\u3001\u529f\u80fd\u589e\u5f3a\u548c\u7528\u6237\u4f53\u9a8c\u6539\u8fdb\u3002\u5173\u952e\u66f4\u65b0\u5305\u62ec\uff1a\u5f15\u5165AI\u95ee\u7b54\u673a\u5668\u4eba\uff08\u6bcf\u670825\u6761\u9650\u5236\uff09\u3001\u65b0\u589e\u591a\u8bed\u8a00\u652f\u6301\uff08\u542b\u53f0\u6e7e\u8bed\u8a00\uff09\u3001\u4f18\u5316\u79fb\u52a8\u7aef\u9002\u914d\u3001\u4fee\u590d\u56fe\u7247\u663e\u793a\u548cLaTeX\u6e32\u67d3\u7b49\u91cd\u5927Bug\u3002\u6280\u672f\u6539\u8fdb\u6db5\u76d6\u56fe\u7247\u61d2\u52a0\u8f7d\u3001Mkdocs\u4e3b\u9898\u5b9a\u5236\u3001\u641c\u7d22\u529f\u80fd\u96c6\u6210\u53ca\u9875\u9762\u6e32\u67d3\u901f\u5ea6\u63d0\u5347\u3002\u540c\u65f6\u65b0\u589e\u4e86\u7559\u8a00\u677f\u3001\u53cb\u94fe\u7b49\u4e92\u52a8\u6a21\u5757\uff0c\u6301\u7eed\u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\u548c\u89c6\u89c9\u8bbe\u8ba1\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a392
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-12-21","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-12-21","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u8131\u5355\u4e86;\u624b\u6267\u70df\u706b\u4ee5\u8c0b\u751f\uff0c\u5fc3\u6000\u8bd7\u610f\u4ee5\u8c0b\u7231
\u6211\u4eec\u5df2\u7ecf\u5728\u4e00\u8d77
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-12-14","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-12-14","text":"
\u00b6
- \u4f18\u5316\u4e2a\u522b\u7f51\u9875\u6807\u7b7e\u7684\u663e\u793a\u95ee\u9898
- \u4f18\u5316\u7f51\u7ad9\u56fe\u7247\u52a0\u8f7d\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u770b\u4e86\u66f4\u591a\u7684\u732b\u54aa
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-12-09","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-12-09","text":"
\u00b6
- \u9996\u6b21\u5f15\u5165\u4eba\u5de5\u667a\u80fd\u95ee\u7b54\u673a\u5668\u4eba:https://wcowin.work/about/geren/\uff0c\u7f3a\u70b9\u662f\u6bcf\u670825\u6761\u6d88\u606f\u9650\u5236\uff0c\u4f18\u70b9\u662f\u53ef\u4ee5\u667a\u80fd\u56de\u590d\u672c\u7ad9\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a\u4e2a\u4eba\u4fe1\u606f\uff0c\u6280\u672f\u5206\u4eab\uff0c\u535a\u5ba2\uff0c\u7559\u8a00\u677f\uff0c\u53cb\u94fe\u7b49\u7b49
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6
- \u64b8\u4e86\u66f4\u591a\u7684\u732b\u54aa
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-11-22","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-11-22","text":"
\u00b6
- \u66f4\u65b0\u4e86\u738b\u51b0\u51b0\u7684\u7b80\u5386\u548c\u7f8e\u7167\uff1b\u6211\u7684\u5fc3\u662f\u51b0\u51b0\u7684
- \u4fee\u590d\u7ffb\u8bd1\u95ee\u9898
- \u4f18\u5316\u79fb\u52a8\u7aef\u6548\u679c
- \u63d0\u5347\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-11-11","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-11-11","text":"
\u00b6
- \u65b0\u589e\u591a\u8bed\u8a00\u652f\u6301\uff0c\u7279\u522b\u65b0\u589e\u4e2d\u56fd\u53f0\u6e7e\u8bed\u8a00\u652f\u6301
- \u987a\u795d\u53cc11\u5feb\u4e50
- \u65b0\u589e\u56fd\u5185\u955c\u50cf\u7f51\u5740:https://wcowin.gitee.io/
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-11-08","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-11-08","text":"
\u00b6
- \u7d27\u6025\u4fee\u590d\u56fe\u7247\u4e0d\u663e\u793a\u7684\u91cd\u5927Bug
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-10-14","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-10-14","text":"
\u00b6
- \u6b63\u5f0f\u5efa\u7acbMkdocs-Wcowin\u4e3b\u9898
- \u4f18\u5316\u7f51\u9875\u6e32\u67d3\u901f\u5ea6
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-10-12","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-10-12","text":"
\u00b6
- \u589e\u52a0\u53cb\u94fe\u7248\u5757
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-10-08","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-10-08","text":"
\u00b6
- \u4fee\u590dLatex\u6e32\u67d3\u4e0d\u4e86\u7684bug
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-10-05","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-10-05","text":"
\u00b6
- \u65b0\u589eBlog\u7248\u5757
- \u65b0\u589e\u4e86Latex\u6e32\u67d3\u4e0d\u4e86\u7684bug
- \u65b0\u589e\u7559\u8a00\u677f\uff0c\u96c6\u6210\u4e86giscus\u8bc4\u8bba\u7cfb\u7edf
- \u65b0\u589e\u9996\u6b21\u8bbf\u95ee\u7f51\u7ad9\u7684\u9876\u90e8\u901a\u77e5\u680f\u529f\u80fd
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-08-11","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-08-11","text":"
\u00b6
- \u4f18\u5316\u4e3b\u9875\u8bbe\u8ba1\uff0c\u5706\u6bd4\u65b9\u597d\uff0c\u5bbd\u6bd4\u7ad6\u597d
- \u5f15\u5165\u56fe\u7247\u61d2\u52a0\u8f7d
- \u65b0\u589e\u9875\u9762\u5e95\u90e8 \"\u4e0b\u4e00\u9875/\u4e0a\u4e00\u9875\"
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-07-19","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-07-19","text":"
\u00b6
- \u4fee\u6539\u7f51\u9875\u5b57\u4f53\u4e3a\u971e\u9e5c\u6587\u6977
- \u4fee\u590d\u9f20\u6807\u4e0a\u6ed1\"\u56de\u5230\u9875\u9762\u9876\u90e8\"\u4e0d\u9002\u914d\u95ee\u9898
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-01-12","title":"
- \u91cd\u5199mkdocs.yml\uff0c\u589e\u52a0\u4e2d\u6587\u6ce8\u91ca
- \u652f\u6301Latex
- \u5f15\u5165\u4e2a\u6027\u5316\u6807\u7b7e\uff0cMarkdown\u6269\u5c55
- \u65b0\u589e\u7f51\u7ad9\u641c\u7d22\u529f\u80fd
Share on Share on
","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-01-12","text":"\u00b6"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
2024\u5e74\u7f51\u7ad9\u6301\u7eed\u4f18\u5316\uff0c\u91cd\u70b9\u63d0\u5347\u6d41\u7545\u5ea6\u548c\u8bbf\u95ee\u901f\u5ea6\uff0c\u5305\u62ec\u542f\u7528CDN\u52a0\u901f\u3001\u5220\u9664\u5197\u4f59\u4ee3\u7801\u3001\u4f18\u5316UI\u663e\u793a\u6548\u679c\u3002\u6280\u672f\u6539\u8fdb\u6d89\u53caMKdocs\u4e3b\u9898\u66f4\u65b0\u3001\u4ee3\u7801\u663e\u793a\u4f18\u5316\u3001\u56fe\u7247\u8fc1\u79fb\u81f3SMMS\u5e73\u53f0\uff0c\u5e76\u5f15\u5165\u81ea\u52a8\u65b0\u6807\u7b7e\u9875\u6253\u5f00\u529f\u80fd\u3002\u7f51\u7ad9\u88ab\u767e\u5ea6/\u8c37\u6b4c\u6536\u5f55\uff0c\u53cb\u94fe\u6269\u5c55\u81f316\u4f4d\uff0c\u540c\u65f6\u5b8c\u5584\u4e86\u6587\u6863\u4fee\u6539\u65f6\u95f4\u8bb0\u5f55\u529f\u80fd\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a522 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a43
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-12-24","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-12-24","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u4e86\u6ce8\u811a\u663e\u793a\u6548\u679c
- \u5220\u9664\u4e86\u4e00\u4e9b\u5197\u4f59\u4ee3\u7801
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-12-10","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-12-10","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u542f\u7528 CDN \u52a0\u901f
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-07-21","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-07-21","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-07-21_1","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-07-21","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u4e86\u7f51\u7ad9\u7684UI\u548c\u8bbf\u95ee\u901f\u5ea6\uff0c\u542f\u7528 CDN \u52a0\u901f
- \u5b66\u4e1a\u7e41\u91cd
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-27","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-27","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u7f8e\u5316\u4e86Blog\u9875\u9762, \u4f7f\u66f4\u52a0\u7b80\u6d01\u7f8e\u89c2,\u5982\u4f60\u6240\u89c1
- \u5185\u5fc3\u4e30\u76c8\u8005\uff0c\u72ec\u884c\u4e5f\u72ec\u4f17\uff0c\u5fc3\u6709\u5c71\u6d77\uff0c\u9759\u800c\u4e0d\u4e89
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-20","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-20","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u591a\u5904UI
- \u5220\u51cf\u4e86\u90e8\u5206\u62d6\u6162\u7f51\u7ad9\u901f\u5ea6\u7684JS/CSS\u4ee3\u7801
- \u66f4\u65b0\u4e86MKdocs\u8865\u5145\u7cfb\u5217\u6559\u7a0b
- \u8fd1\u671f\u7565\u6709\u65f6\u95f4\uff0c\u6240\u4ee5\u66f4\u6587\u53d8\u5f97\u9ad8\u4ea7
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-19","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-19","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u671f\u672b\u7ed3\u675f
- \u5220\u51cf\u4e86\u5197\u4f59\u4ee3\u7801
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-2","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-2","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u8fd1\u671f\u5b66\u4e1a\u7e41\u91cd
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-2_1","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-2","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u8fc7\u4e86\u516d\u4e00
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-05-15","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-05-15","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5168\u7ad9\u5f15\u5165\u81ea\u52a8\u5728\u65b0\u6807\u7b7e\u9875\u6253\u5f00\uff0c\u4ed3\u5e93\u5730\u5740\uff1amkdocs-open-in-new-tab
Show source code
Look at this source open_in_new_tab.js:
// Description: Open external links in a new tab and PDF links in a new tab\n// Source: https://jekyllcodex.org/without-plugin/new-window-fix/\n\n//open external links in a new window\nfunction external_new_window() {\n for(let c = document.getElementsByTagName(\"a\"), a = 0;a < c.length;a++) {\n let b = c[a];\n if(b.getAttribute(\"href\") && b.hostname !== location.hostname) {\n b.target = \"_blank\";\n b.rel = \"noopener\";\n }\n }\n}\n//open PDF links in a new window\nfunction pdf_new_window ()\n{\n if (!document.getElementsByTagName) {\n return false;\n }\n let links = document.getElementsByTagName(\"a\");\n for (let eleLink=0; eleLink < links.length; eleLink ++) {\n if ((links[eleLink].href.indexOf('.pdf') !== -1)||(links[eleLink].href.indexOf('.doc') !== -1)||(links[eleLink].href.indexOf('.docx') !== -1)) {\n links[eleLink].onclick =\n function() {\n window.open(this.href);\n return false;\n }\n }\n }\n}\n\nfunction apply_rules() {\n external_new_window();\n pdf_new_window();\n}\n\nif (typeof document$ !== \"undefined\") {\n // compatibility with mkdocs-material's instant loading feature\n // based on code from https://github.com/timvink/mkdocs-charts-plugin\n // Copyright (c) 2021 Tim Vink - MIT License\n // fixes [Issue #2](https://github.com/JakubAndrysek/mkdocs-open-in-new-tab/issues/2)\n document$.subscribe(function() {\n apply_rules();\n console.log(\"Applying rules\");\n })\n}\n
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-05-05","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-05-05","text":"
\u00b6
- \u53d1\u5e03Mkdocs-Wcowin\u4e3b\u9898|3.0\u7248\u672c\uff01\uff01\uff01
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u548c\u5c0f\u738b\u4e00\u8d77\u5403\u4e86\u597d\u5403\u7684
- \u611f\u8c22\u738b\u9e4f\u8001\u54e5\u7684\u6253\u8d4f
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-22","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-22","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u770b\u4e86\u66f4\u591a\u7684\u732b\u54aa
- \u4f18\u5316\u5e03\u5c40
- \u65b0\u589e\u5706\u89d2\u5316\u8bbe\u8ba1\u6559\u7a0b
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-22_1","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-22","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u7f51\u7ad9\u5168\u9762\u8d34\u5408\u5706\u89d2\u8bbe\u8ba1\uff0c\u975e\u5e38\u597d\u770b
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-13","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-13","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u91cd\u5199\u4e3b\u9875index.md,\u66f4\u52a0\u7f8e\u89c2\uff0c\u8d34\u5408\u5706\u89d2\u8bbe\u8ba1
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-12","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-12","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u611f\u8c22W1ndys\u63d0\u51fa\u7684\u4f7f\u7528\u8f6f\u7f16\u7801\u914d\u7f6e\u53cb\u94fe\u754c\u9762\uff0c\u4f7f\u5f97\u53cb\u94fe\u6dfb\u52a0\u66f4\u52a0\u89c4\u8303\u5316
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-06","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-06","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4e3b\u9875\u5f15\u5165\u5929\u6c14\u7ec4\u4ef6\uff0c\u641c\u7d22\u6846/\u6309\u94ae\u5706\u89d2\u5316
- \u5220\u9664\u5197\u4f59JS/CSS\u6587\u4ef6
- \u611f\u8c22Anshul Raj Verma\u5728Discussions#7\u4e0a\u63d0\u51fa\u7684\u7f51\u7ad9\u4f18\u5316\u5efa\u8bae
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-02","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-02","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5728mkdocs.yml\u7684plugins\u6a21\u5757\u4e2d\u5f15\u5165
!ENV [CI, false]
\u8bed\u53e5\uff0c\u6781\u5927\u7f29\u77edmkdocs serve
\u9759\u6001\u9884\u89c8\u65f6\u95f4\uff083-5s\uff09 - \u672cMkdocs-Wcowin\u4e3b\u9898\u5f97\u5230\u4ee5\u4e0b\u4e24\u4f4d\u7684\u4f7f\u7528\uff1a
- Lenny's Web
- tkqtang's Web
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-03-14","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-03-14","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- 3\u670814\u65e5\uff08March 14th\uff09\u662f\u516c\u5386\u4e00\u5e74\u4e2d\u7684\u7b2c73\u5929\uff08\u95f0\u5e74\u7b2c74\u5929\uff09\uff0c\u79bb\u5168\u5e74\u7684\u7ed3\u675f\u8fd8\u6709292\u5929\u3002\u662f\u56fd\u9645\u5706\u5468\u7387\u65e5\u3002\u5176\u4e2d\u5386\u53f2\u4e0a\u53d1\u751f\u7684\u5927\u4e8b\u4ef6\u6709\u963f\u5c14\u4f2f\u7279\u00b7\u7231\u56e0\u65af\u5766\u7684\u51fa\u751f\u3002 [10]\u5361\u5c14\u00b7\u9a6c\u514b\u601d\u3001\u65af\u8482\u82ac\u00b7\u5a01\u5ec9\u00b7\u970d\u91d1\u7684\u901d\u4e16\u3002
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-02-20","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-02-20","text":"
\u00b6
- \u4f18\u5316\u9875\u811a\u201c\u672c\u7ad9\u8bbf\u95ee\u91cf\u548c\u840cICP\u590720230640\u53f7\u201d\u663e\u793a\u65b9\u5f0f
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-02-02","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-02-02","text":"
\u00b6
- \u7f51\u7ad9\u56fe\u7247\u5168\u90e8\u8fc1\u79fb\u81f3smms(\u66f4\u52a0\u7a33\u5b9a\u6d41\u7545)
- \u7740\u624b\u6539\u5199MKdocs\u6559\u7a0b\uff0c\u4f7f\u5f97\u6761\u7406\u66f4\u52a0\u6e05\u6670
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5220\u9664\u5927\u91cf\u7e41\u7410\u65e0\u7528\u4ee3\u7801
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-02-01","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-02-01","text":"
\u00b6
- \u6539\u8fdb\u7f51\u9875\u4ee3\u7801\u663e\u793a\u6548\u679c
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-01-30","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-01-30","text":"
\u00b6
- \u53cb\u94fe\u6570\u91cf\u8fbe\u523016\u4f4d
- \u4fee\u590d\u4e86\u4e00\u4e9bbugs
- \u672c\u7f51\u7ad9\u5df2\u7ecf\u88ab\u767e\u5ea6/\u8c37\u6b4c\u6536\u5f55\uff08\u786e\u4fe1\uff0c\u4f7f\u7528\u767e\u5ea6/\u8c37\u6b4c\u641c\u7d22Wcowin\u5b57\u6837\u5373\u53ef\uff09
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-01-05","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-01-05","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5f15\u5165git-revision-date-localized-plugin\u63d2\u4ef6\uff0c\u4ee5\u4fbf\u8bb0\u5f55\u6587\u6863\u521b\u5efa\u548c\u6700\u540e\u4e00\u6b21\u4fee\u6539\u65f6\u95f4
- \u548c\u5c0f\u738b\u4e00\u8d77\u770b\u4e86\u66f4\u591a\u7684\u732b\u54aa
Share on Share on
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6b21\u7f51\u7ad9\u66f4\u65b0\u4e3b\u8981\u56f4\u7ed5\u6027\u80fd\u4f18\u5316\u548c\u529f\u80fd\u4fee\u590d\u5c55\u5f00\uff0c\u6301\u7eed\u8fdb\u884c\"\u6d41\u7545\u5ea6\u4f18\u5316\"\u5de5\u4f5c\uff0c\u5305\u62ec\u63d0\u5347\u52a0\u8f7d\u901f\u5ea6\u3001\u91cd\u5199\u90e8\u5206\u4ee3\u7801\u3002\u91cd\u70b9\u4fee\u590d\u4e86Markdown\u89e3\u6790\u5f02\u5e38\u3001\u8bc4\u8bba\u533a\u91cd\u5b9a\u4f4d\u7b49\u6838\u5fc3\u95ee\u9898\uff0c\u6539\u8fdb\u4e86\u53cb\u94fe\u7edf\u8ba1\u548c\u7559\u8a00\u677f\u529f\u80fd\u3002\u540c\u65f6\u4fdd\u6301\u6559\u7a0b\u5185\u5bb9\u4e0e\u5b98\u65b9\u7248\u672c\u540c\u6b65\u66f4\u65b0\uff0c\u5e76\u6e05\u7406\u4e86\u5931\u6548\u8d44\u6e90\u94fe\u63a5\u3002\u66f4\u65b0\u4f53\u73b0\u4e86\u5bf9\u7528\u6237\u4f53\u9a8c\u548c\u6280\u672f\u7a33\u5b9a\u6027\u7684\u6301\u7eed\u6539\u8fdb\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a349
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-04-30","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-04-30","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4fee\u590d\u5173\u4e8e\u9875\u9762\u7684\u663e\u793a\u95ee\u9898
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-04-19","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-04-19","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4fee\u6539\u6559\u7a0b\u4e2d\u7684\u5404\u79cd\u5c0f\u9519\u8bef
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-04-13","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-04-13","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4fee\u590d\u5728 Markdown \u6587\u4ef6\u4e2d\uff0cHTML \u548c Markdown \u6df7\u7528\u53ef\u80fd\u5bfc\u81f4\u89e3\u6790\u5668\u65e0\u6cd5\u6b63\u786e\u6e32\u67d3\u3002
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-04-10","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-04-10","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u53cb\u94fe\u7edf\u8ba1\u65b9\u5f0f\uff0c\u66f4\u52a0\u51c6\u786e\u8ba1\u6570
- \u4fee\u590d\u8bc4\u8bba\u533a\u91cd\u5b9a\u4f4d\u7684bug\uff0c\u9632\u6b62\u4ed6\u4eba\u7f51\u7ad9\u6d4b\u8bd5\u8bc4\u8bba\u533a\u5bfc\u81f4\u8bc4\u8bba\u533a\u8986\u76d6\u5230\u6211\u7684\u7f51\u7ad9
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-03-30","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-03-30","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u6211\u56de\u6765\u4e86
- \u5f00\u542f\u535a\u5ba2\u534a\u6708\u66f4\u6a21\u5f0f
- \u4e00\u6218\u8003\u7814\u5931\u5229
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-03-14","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-03-14","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u03c0\u65e5\u5feb\u4e50\uff01
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-02-24","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-02-24","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4e00\u5207\u90fd\u662f\u6700\u597d\u7684\u5b89\u6392
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-02-19","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-02-19","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u66f4\u65b0\u4e86MKdocs\u6559\u7a0b\uff0c\u9002\u5e94\u5b98\u65b9\u6700\u65b0\u7248\u672c
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-02-16","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-02-16","text":"
\u00b6
- \u9996\u9875\u7115\u7136\u4e00\u65b0
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-02-04","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-02-04","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u66f4\u65b0\u4e86\u90e8\u5206\u6559\u7a0b\uff0c\u9002\u5e94\u5b98\u65b9\u6700\u65b0\u7248\u672c
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-01-11","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-01-11","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u7559\u8a00\u677f\uff0c\u652f\u6301\u6309\u94ae\u5207\u6362\uff0c\u5e03\u5c40\u66f4\u7b80\u6d01
- \u6e05\u7406\u5931\u6548\u56fe\u7247\u94fe\u63a5\uff0c\u4fee\u590d\u90e8\u5206\u56fe\u7247\u65e0\u6cd5\u663e\u793a\u95ee\u9898
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-01-09","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-01-09","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5f15\u5165glightbox\u63d2\u4ef6(\u5df2\u53d6\u6d88)\uff0c\u56fe\u7247\u67e5\u770b\u66f4\u65b9\u4fbf
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-01-07","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-01-07","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u91cd\u5199\u90e8\u5206\u4ee3\u7801
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-01-05","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-01-05","text":"
\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5927\u5e45\u63d0\u5347\u6027\u80fd\uff0c\u52a0\u8f7d\u901f\u5ea6\u66f4\u5feb Share on Share on
"},{"location":"blog/websitebeauty/404/","title":"\u6dfb\u52a0404\u9875\u9762","text":"
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a131 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a30
\u9996\u5148\u5728mkdocs.yml\u6587\u4ef6\u4e2d\u6dfb\u52a0custom_dir:
theme:\n name: material\n custom_dir: docs/overrides #\u8986\u5199\u8def\u5f84\n
docs/overrides\u6587\u4ef6\u4e0b\u65b0\u5efa404.html \u6811\u72b6\u7ed3\u6784\u5982\u4e0b:
$ tree -a\n.\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 PublishMySite.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500overrides\n\u2502 \u2514\u2500\u2500assets\n\u2502 \u2514\u2500\u2500404.html\n\u2502 \u2514\u2500\u2500main.html\n\u2502 \u2514\u2500\u2500partials\n\u2502 \u2514\u2500\u2500comments.html\n\u2502\n\u2514\u2500\u2500 mkdocs.yml\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/404/#404","title":"404\u516c\u76ca\u9875\u9762","text":"\u70b9\u51fb\u5c55\u5f00
<!DOCTYPE html>\n<html lang=\"zh-CN\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>404 - \u9875\u9762\u4e0d\u5b58\u5728</title>```\n<!DOCTYPE html>\n<html lang=\"zh-cn\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"description\" content=\"\u516c\u76ca404\u9875\u9762\u662f\u7531\u817e\u8baf\u516c\u53f8\u5458\u5de5\u5fd7\u613f\u8005\u81ea\u4e3b\u53d1\u8d77\u7684\u4e92\u8054\u7f51\u516c\u76ca\u6d3b\u52a8\u3002\" />\n <link rel=\"icon\" href=\"data:image/gif;base64,R0lGODdhIAAgANUAAAAAAAgFBgYICAwMDBAPDxAQDxQTFBUYFxcaGRwcHCQkJCQoJykqKTQ0ND09PUJCQktMTFZWVltcXF1hYGNjY2doaGpqanNzc3d5eHp6eoODg4uLi5eXl5mamqOjo62tra+wr7S0tLe5uLu7u7/AwMPEw83NzdbX1tfa2dra2uTk5Ovr6+/w7/T09Pj39/f4+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAADEALAAAAAAgACAAAAb/QJhwOGyZOpIGQ6FgNCQcU4tIrcJaIwlgy+1uJaOplZqydBOSzGaTkSS6lNN4ONoOAJRQajV0rVAgFF0jcyEAbw9hc1cjD4cAIVZ1DAAXKotEKxkAlIREJ48bYphFGwAKAHJCLWaVo6RFF1sWYnUDDpewVSoOd4QtWgCeMCmXLaqfUyopdF9GWxRiKQAVKh3CRHUdKhQEzFeCAEdbH6uOh28A3ypbCQhbEGIfWx2CCd8wJhB2CpFDIQvuAIBgYkiKN0kASOAzRJYjBwyFrGgAwNGFTFqUAMjwYogpA1woMFwRDgDIDUQ2LQGAcoiGLRr2QRgp8yUADURMMWFJRYMH3BglJOQSwq0EDA84c56ilOGVLisqKUaISKVFihIjRJRI4XTIiggAGggygKxICAoguSDI0/UEyAnXAJTLJMtLlwxUYcwD0MEEtIgtBKGi0OHDh3qn8IwKvEVKuGHXGAwI8apFCAOUOvxzBqNOAVzgthi1UgKasl7YrtS9MMXI6DEjpKieNWoaSA1dF7V4+QafkNKoLOlSIQsVCUkmATgYwWIRCxEOAByANKc0AAEAJnzYI6bFihQfBAUQjSlF3S0GIqjZgCFC2i0XfM/BUtJuSEVPjdRTwsQJYdljBAEAOw==\" />\n <title>404 \u60a8\u8bbf\u95ee\u7684\u9875\u9762\u641e\u4e22\u4e86</title>\n <script src=\"https://volunteer.cdn-go.cn/404/latest/404.js\" rendertarget=\"404DlV\"></script>\n <style>\n body {\n overflow-x: hidden;\n max-width: 100vw;\n margin: 0;\n padding: 0;\n background-color: rgba(0, 0, 0, 0);\n color: white;\n text-align: center;\n }\n .container {\n position: relative;\n left: 50%;\n transform: translateX(-50%);\n width: 100%;\n max-width: 1600px;\n height: 100vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n .background-img {\n width: 100%;\n max-width: 1600px;\n filter: brightness(75%);\n }\n .content {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 98vw;\n max-width: 1600px;\n text-align: center;\n }\n .content h1 {\n font-size: 128px;\n font-weight: 800;\n margin: 0;\n }\n .content p {\n font-size: 28px;\n margin: 0;\n }\n .content i {\n font-size: 1.2em;\n }\n .footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 98vw;\n max-width: 1600px;\n font-size: 0.75em;\n margin-top: 20px;\n }\n .footer img {\n width: 160px;\n }\n .footer div {\n text-align: right;\n }\n .footer a {\n /* color: lightgray; */\n font-size: 0.8em;\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <img class=\"background-img\" alt=\"404!\u60a8\u8981\u8bbf\u95ee\u7684\u9875\u9762\u8d70\u4e22\u4e86!\" src=\"https://volunteer.cdn-go.cn/404/latest/img/dream4school.jpg\" />\n <div class=\"content\">\n <h1>404 NOT Found</h1>\n <p>\u60a8\u8bbf\u95ee\u7684\u9875\u9762\u8d70\u4e22\u5728\u5bfb\u627e\u68a6\u60f3\u7684\u8def\u4e0a\u4e86</p>\n <p>\u4e0d\u8fc7\u60a8\u8fd8\u53ef\u4ee5\u548c\u817e\u8baf\u5fd7\u613f\u8005\u4e00\u8d77</p>\n <i><b>\u4e3a\u5b69\u5b50\u4eec\u70b9\u4eae\u4e00\u4e2a\u68a6\u60f3</b></i>\n </div>\n <div class=\"footer\">\n <a href=\"https://volunteer.cdn-go.cn/404/latest/img/dream4schoolQR.png\">\n <img src=\"https://volunteer.cdn-go.cn/404/latest/img/dream4schoolQR.png\" alt=\"\u70b9\u51fb\u8fdb\u5165\u652f\u6301\u9875\u9762\" />\n <br />\u626b\u7801\u70b9\u4eae\u4e00\u4e2a\u68a6\u60f3\n </a>\n <div>\n <p>\u7167\u7247\u62cd\u6444\u4e8e\u6e56\u5357\u7701\u5cb3\u9633\u5e02\u5e73\u6c5f\u53bf\u4e09\u5e02\u9547\u65b0\u6751\u5b8c\u5c0f</p>\n <p>\u62cd\u6444\u65f6\u95f4\uff1a\u4e8c\u96f6\u4e8c\u4e09\u5e74\u4e03\u6708\u5341\u4e00\u65e5</p>\n <p>\uff08\u611f\u6069\u57fa\u91d1\u4f1a\u4f9b\u7a3f\uff09</p>\n <a href=\"https://support.qq.com/products/378306\">\u6211\u8981\u53cd\u9988</a>\n </div>\n </div>\n </div>\n</body>\n</html>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/404/#404_1","title":"404\u9ab0\u5b50\u9875\u9762","text":"
\u76ee\u524d\u66f4\u6362\u4e86\u65b0\u7684404\u9875\u9762\uff1a
\u70b9\u51fb\u5c55\u5f00
<!DOCTYPE html>\n<html>\n <head>\n <meta charset=\"utf-8\" />\n <title>404</title>\n <style>\n body {\n background: #000;\n height: 100vh;\n overflow: hidden;\n display: flex;\n font-family: Anton, sans-serif;\n justify-content: center;\n align-items: center;\n -webkit-perspective: 1000px;\n perspective: 1000px;\n }\n\n div {\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n }\n\n .rail {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n -webkit-transform: rotateX(-30deg) rotateY(-30deg);\n transform: rotateX(-30deg) rotateY(-30deg);\n }\n\n .rail .stamp {\n position: absolute;\n width: 200px;\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n background: #141414;\n color: #fff;\n font-size: 7rem;\n }\n\n .rail .stamp:nth-child(1) {\n -webkit-animation: stampSlide 40s -2.3s linear infinite;\n animation: stampSlide 40s -2.3s linear infinite;\n }\n\n .rail .stamp:nth-child(2) {\n -webkit-animation: stampSlide 40s -4.3s linear infinite;\n animation: stampSlide 40s -4.3s linear infinite;\n }\n\n .rail .stamp:nth-child(3) {\n -webkit-animation: stampSlide 40s -6.3s linear infinite;\n animation: stampSlide 40s -6.3s linear infinite;\n }\n\n .rail .stamp:nth-child(4) {\n -webkit-animation: stampSlide 40s -8.3s linear infinite;\n animation: stampSlide 40s -8.3s linear infinite;\n }\n\n .rail .stamp:nth-child(5) {\n -webkit-animation: stampSlide 40s -10.3s linear infinite;\n animation: stampSlide 40s -10.3s linear infinite;\n }\n\n .rail .stamp:nth-child(6) {\n -webkit-animation: stampSlide 40s -12.3s linear infinite;\n animation: stampSlide 40s -12.3s linear infinite;\n }\n\n .rail .stamp:nth-child(7) {\n -webkit-animation: stampSlide 40s -14.3s linear infinite;\n animation: stampSlide 40s -14.3s linear infinite;\n }\n\n .rail .stamp:nth-child(8) {\n -webkit-animation: stampSlide 40s -16.3s linear infinite;\n animation: stampSlide 40s -16.3s linear infinite;\n }\n\n .rail .stamp:nth-child(9) {\n -webkit-animation: stampSlide 40s -18.3s linear infinite;\n animation: stampSlide 40s -18.3s linear infinite;\n }\n\n .rail .stamp:nth-child(10) {\n -webkit-animation: stampSlide 40s -20.3s linear infinite;\n animation: stampSlide 40s -20.3s linear infinite;\n }\n\n .rail .stamp:nth-child(11) {\n -webkit-animation: stampSlide 40s -22.3s linear infinite;\n animation: stampSlide 40s -22.3s linear infinite;\n }\n\n .rail .stamp:nth-child(12) {\n -webkit-animation: stampSlide 40s -24.3s linear infinite;\n animation: stampSlide 40s -24.3s linear infinite;\n }\n\n .rail .stamp:nth-child(13) {\n -webkit-animation: stampSlide 40s -26.3s linear infinite;\n animation: stampSlide 40s -26.3s linear infinite;\n }\n\n .rail .stamp:nth-child(14) {\n -webkit-animation: stampSlide 40s -28.3s linear infinite;\n animation: stampSlide 40s -28.3s linear infinite;\n }\n\n .rail .stamp:nth-child(15) {\n -webkit-animation: stampSlide 40s -30.3s linear infinite;\n animation: stampSlide 40s -30.3s linear infinite;\n }\n\n .rail .stamp:nth-child(16) {\n -webkit-animation: stampSlide 40s -32.3s linear infinite;\n animation: stampSlide 40s -32.3s linear infinite;\n }\n\n .rail .stamp:nth-child(17) {\n -webkit-animation: stampSlide 40s -34.3s linear infinite;\n animation: stampSlide 40s -34.3s linear infinite;\n }\n\n .rail .stamp:nth-child(18) {\n -webkit-animation: stampSlide 40s -36.3s linear infinite;\n animation: stampSlide 40s -36.3s linear infinite;\n }\n\n .rail .stamp:nth-child(19) {\n -webkit-animation: stampSlide 40s -38.3s linear infinite;\n animation: stampSlide 40s -38.3s linear infinite;\n }\n\n .rail .stamp:nth-child(20) {\n -webkit-animation: stampSlide 40s -40.3s linear infinite;\n animation: stampSlide 40s -40.3s linear infinite;\n }\n\n @-webkit-keyframes stampSlide {\n 0% {\n -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(130px);\n transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(130px);\n }\n\n 100% {\n -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(-3870px);\n transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(-3870px);\n }\n }\n\n @keyframes stampSlide {\n 0% {\n -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(130px);\n transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(130px);\n }\n\n 100% {\n -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(-3870px);\n transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(-3870px);\n }\n }\n\n .world {\n -webkit-transform: rotateX(-30deg) rotateY(-30deg);\n transform: rotateX(-30deg) rotateY(-30deg);\n }\n\n .world .forward {\n position: absolute;\n -webkit-animation: slide 2s linear infinite;\n animation: slide 2s linear infinite;\n }\n\n .world .box {\n width: 200px;\n height: 200px;\n -webkit-transform-origin: 100% 100%;\n transform-origin: 100% 100%;\n -webkit-animation: roll 2s cubic-bezier(1, 0.01, 1, 1) infinite;\n animation: roll 2s cubic-bezier(1, 0.01, 1, 1) infinite;\n }\n\n .world .box .wall {\n position: absolute;\n width: 200px;\n height: 200px;\n background: rgba(10, 10, 10, 0.8);\n border: 1px solid #fafafa;\n box-sizing: border-box;\n }\n\n .world .box .wall::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n font-size: 7rem;\n }\n\n .world .box .wall:nth-child(1) {\n -webkit-transform: translateZ(100px);\n transform: translateZ(100px);\n }\n\n .world .box .wall:nth-child(2) {\n -webkit-transform: rotateX(180deg) translateZ(100px);\n transform: rotateX(180deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(3) {\n -webkit-transform: rotateX(90deg) translateZ(100px);\n transform: rotateX(90deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(3)::before {\n -webkit-transform: rotateX(180deg) rotateZ(90deg) translateZ(-1px);\n transform: rotateX(180deg) rotateZ(90deg) translateZ(-1px);\n -webkit-animation: zeroFour 4s -2s linear infinite;\n animation: zeroFour 4s -2s linear infinite;\n }\n\n .world .box .wall:nth-child(4) {\n -webkit-transform: rotateX(-90deg) translateZ(100px);\n transform: rotateX(-90deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(4)::before {\n -webkit-transform: rotateX(180deg) rotateZ(-90deg) translateZ(-1px);\n transform: rotateX(180deg) rotateZ(-90deg) translateZ(-1px);\n -webkit-animation: zeroFour 4s -2s linear infinite;\n animation: zeroFour 4s -2s linear infinite;\n }\n\n .world .box .wall:nth-child(5) {\n -webkit-transform: rotateY(90deg) translateZ(100px);\n transform: rotateY(90deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(5)::before {\n -webkit-transform: rotateX(180deg) translateZ(-1px);\n transform: rotateX(180deg) translateZ(-1px);\n -webkit-animation: zeroFour 4s linear infinite;\n animation: zeroFour 4s linear infinite;\n }\n\n .world .box .wall:nth-child(6) {\n -webkit-transform: rotateY(-90deg) translateZ(100px);\n transform: rotateY(-90deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(6)::before {\n -webkit-transform: rotateX(180deg) rotateZ(180deg) translateZ(-1px);\n transform: rotateX(180deg) rotateZ(180deg) translateZ(-1px);\n -webkit-animation: zeroFour 4s linear infinite;\n animation: zeroFour 4s linear infinite;\n }\n\n @-webkit-keyframes zeroFour {\n 0% {\n content: \"4\";\n }\n\n 100% {\n content: \"0\";\n }\n }\n\n @keyframes zeroFour {\n 0% {\n content: \"4\";\n }\n\n 100% {\n content: \"0\";\n }\n }\n\n @-webkit-keyframes roll {\n 0% {\n -webkit-transform: rotateZ(0);\n transform: rotateZ(0);\n }\n\n 85% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n\n 87% {\n -webkit-transform: rotateZ(88deg);\n transform: rotateZ(88deg);\n }\n\n 90% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n\n 100% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n }\n\n @keyframes roll {\n 0% {\n -webkit-transform: rotateZ(0);\n transform: rotateZ(0);\n }\n\n 85% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n\n 87% {\n -webkit-transform: rotateZ(88deg);\n transform: rotateZ(88deg);\n }\n\n 90% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n\n 100% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n }\n\n @-webkit-keyframes slide {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n -webkit-transform: translateX(-200px);\n transform: translateX(-200px);\n }\n }\n\n @keyframes slide {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n -webkit-transform: translateX(-200px);\n transform: translateX(-200px);\n }\n }\n </style>\n </head>\n <body>\n <div class=\"rail\">\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n </div>\n <div class=\"world\">\n <div class=\"forward\">\n <div class=\"box\">\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n </div>\n </div>\n </div>\n </body>\n</html>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/","title":"MkDocs\u6587\u6863AI\u6458\u8981","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u8be5\u9879\u76ee\u4e3aMkDocs\u6587\u6863\u7cfb\u7edf\u63d0\u4f9bAI\u9a71\u52a8\u7684\u667a\u80fd\u6458\u8981\u548c\u9605\u8bfb\u7edf\u8ba1\u529f\u80fd\uff0c\u652f\u6301OpenAI\u3001DeepSeek\u7b49\u591aAPI\u670d\u52a1\u3002\u6838\u5fc3\u7279\u6027\u5305\u62ec\u81ea\u52a8\u751f\u621080-120\u5b57\u591a\u8bed\u8a00\u6458\u8981\u3001\u667a\u80fd\u5185\u5bb9\u6e05\u7406\u3001\u7f13\u5b58\u4f18\u5316\u53ca\u7cbe\u51c6\u9605\u8bfb\u65f6\u95f4\u4f30\u7b97\u3002\u901a\u8fc7hooks\u673a\u5236\u5b9e\u73b0\u7075\u6d3b\u914d\u7f6e\uff0c\u652f\u6301\u6587\u4ef6\u5939\u548c\u9875\u9762\u7ea7\u63a7\u5236\uff0c\u5e76\u91c7\u7528LRU\u7f13\u5b58\u63d0\u5347\u6027\u80fd\u3002\u5b89\u88c5\u7b80\u4fbf\uff0c\u9002\u5408\u6280\u672f\u6587\u6863\u548c\u535a\u5ba2\uff0c\u80fd\u6709\u6548\u63d0\u5347\u6587\u6863\u53ef\u8bfb\u6027\u548c\u7528\u6237\u4f53\u9a8c\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a2 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a912 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a134
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#mkdocs-ai-hooks","title":"MkDocs AI Hooks","text":"
\u4ed3\u5e93\u5730\u5740\uff1ahttps://github.com/Wcowin/mkdocs-ai-hooks
\u4e2d\u6587 | English
\ud83d\ude80 \u60a8\u7684MkDocs\u6587\u6863\u9996\u9009\u667a\u80fd\u6458\u8981\uff01 \u8fd9\u4e2a\u9879\u76ee\u5229\u7528MkDocs hooks\uff0c\u4e3a\u60a8\u7684\u6280\u672f\u6587\u6863\u548c\u535a\u5ba2\u6dfb\u52a0AI\u9a71\u52a8\u7684\u6458\u8981\u751f\u6210\u548c\u667a\u80fd\u9605\u8bfb\u7edf\u8ba1\u529f\u80fd\u3002
\u7f51\u7ad9\u6548\u679c\u9884\u89c8\uff1ahttps://wcowin.work/Mkdocs-Wcowin/blog/Mkdocs/mkfirst/
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_1","title":"\u2728 \u529f\u80fd\u7279\u6027","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#ai","title":"AI\u667a\u80fd\u6458\u8981","text":"
- \u81ea\u52a8\u751f\u6210\u6587\u7ae0\u6458\u8981\uff1a\u4f7f\u7528DeepSeek API\u751f\u6210\u9ad8\u8d28\u91cf\u768480-120\u5b57\u6458\u8981
- \u591a\u8bed\u8a00\u652f\u6301\uff1a\u652f\u6301\u4e2d\u6587\u3001\u82f1\u6587\u7b49\u591a\u79cd\u8bed\u8a00
- \u591aAPI\u670d\u52a1\u652f\u6301\uff1a\u652f\u6301OpenAI\u3001Claude\u7b49\u591a\u79cdAI\u670d\u52a1
- \u667a\u80fd\u5185\u5bb9\u6e05\u7406\uff1a\u81ea\u52a8\u8fc7\u6ee4YAML\u3001HTML\u3001\u4ee3\u7801\u5757\u7b49\u683c\u5f0f\u5185\u5bb9
- \u5907\u7528\u6458\u8981\u673a\u5236\uff1aAPI\u5931\u8d25\u65f6\u63d0\u4f9b\u57fa\u4e8e\u89c4\u5219\u7684\u667a\u80fd\u6458\u8981
- \u9ad8\u6548\u7f13\u5b58\u7cfb\u7edf\uff1a\u907f\u514d\u91cd\u590dAPI\u8c03\u7528\uff0c7\u5929\u667a\u80fd\u8fc7\u671f
- \u7075\u6d3b\u914d\u7f6e\uff1a\u652f\u6301\u6587\u4ef6\u5939\u7ea7\u522b\u548c\u9875\u9762\u7ea7\u522b\u7684\u7cbe\u786e\u63a7\u5236
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_2","title":"\u667a\u80fd\u9605\u8bfb\u7edf\u8ba1(\u53ef\u9009)","text":"
- \u7cbe\u51c6\u4e2d\u6587\u5b57\u7b26\u7edf\u8ba1\uff1a\u4e13\u95e8\u4f18\u5316\u7684\u4e2d\u6587\u5185\u5bb9\u8bc6\u522b
- \u667a\u80fd\u4ee3\u7801\u68c0\u6d4b\uff1a\u8bc6\u522b\u591a\u79cd\u7f16\u7a0b\u8bed\u8a00\u548c\u547d\u4ee4\u884c\u4ee3\u7801
- \u9605\u8bfb\u65f6\u95f4\u4f30\u7b97\uff1a\u57fa\u4e8e\u4e2d\u6587\u9605\u8bfb\u4e60\u60ef\u7684400\u5b57/\u5206\u949f\u8ba1\u7b97
- \u7f8e\u89c2\u4fe1\u606f\u5c55\u793a\uff1a\u4f7f\u7528MkDocs Material\u98ce\u683c\u7684\u4fe1\u606f\u6846
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_3","title":"\u667a\u80fd\u5316\u7279\u6027","text":"
- \u81ea\u52a8\u8bed\u8a00\u8bc6\u522b\uff1a\u652f\u630130+\u7f16\u7a0b\u8bed\u8a00\u548c\u6807\u8bb0\u8bed\u8a00
- \u5185\u5bb9\u7c7b\u578b\u68c0\u6d4b\uff1a\u533a\u5206\u4ee3\u7801\u3001\u914d\u7f6e\u3001\u547d\u4ee4\u884c\u7b49\u4e0d\u540c\u5185\u5bb9
- \u7f13\u5b58\u4f18\u5316\uff1aLRU\u7f13\u5b58\u63d0\u5347\u6027\u80fd
- \u9519\u8bef\u5904\u7406\uff1a\u5b8c\u5584\u7684\u5f02\u5e38\u5904\u7406\u548c\u65e5\u5fd7\u8bb0\u5f55
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_4","title":"\ud83d\udce6 \u5b89\u88c5","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#1","title":"\u65b9\u6cd51","text":"
\u76f4\u63a5\u4e0b\u8f7d\uff08\u63a8\u8350\uff09 \u5728releases\u9875\u9762\u4e0b\u8f7d\uff0c\u89e3\u538b\u540e\u5c06\u4ee5\u4e0b\u6587\u4ef6\u653e\u5165\u60a8\u7684MkDocs\u9879\u76ee\u7684docs/overrides/hooks\u4e2d\uff1a https://github.com/Wcowin/mkdocs-ai-hooks/releases
\u6216\u8005\u4e0b\u8f7d\u4e0a\u65b9hooks\u76ee\u5f55\u4e0b\u7684\u4e24\u4e2aPython\u6587\u4ef6\uff1a
# \u653e\u7f6e\u5230\u60a8\u7684\u9879\u76ee\u76ee\u5f55\nmkdir -p docs/overrides/hooks/\nmv ai_summary.py docs/overrides/hooks/\nmv reading_time.py docs/overrides/hooks/\n
\u653e\u7f6e\u7684\u4f4d\u7f6e\u5982\u4e0b\uff1a
\u5728 mkdocs.yml
\u4e2dtheme\u4e0b\u6dfb\u52a0custom_dir\uff1a
# \u53ef\u9009\uff1aMaterial\u4e3b\u9898\u914d\u7f6e\ntheme:\n name: material\n custom_dir: docs/overrides #\u4e00\u5b9a\u8981\u6709\uff01\u4e00\u5b9a\u8981\u6709\uff01\n features:\n - content.code.copy\n - content.code.select\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#2","title":"\u65b9\u6cd52","text":"
\u4f7f\u7528Git\u514b\u9686
git clone https://github.com/Wcowin/mkdocs-ai-hooks.git\ncd mkdocs-ai-hooks \npip install -r requirements.txt\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_5","title":"\u4f9d\u8d56\u5b89\u88c5","text":"
pip install requirements.txt\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_6","title":"\ud83d\ude80 \u5feb\u901f\u5f00\u59cb","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#1-mkdocs","title":"1. \u914d\u7f6eMkDocs","text":"
\u5148\u6267\u884c\u4e00\u6b21mkdocs build
\uff0c\u751f\u6210\u7f13\u5b58\u6587\u4ef6
mkdocs build \n
\u5728
mkdocs.yml
\u4e2d\u6dfb\u52a0hooks\uff0ctheme\u4e0b\u6dfb\u52a0custom_dir\uff1a
hooks:\n - docs/overrides/hooks/ai_summary.py # \u6dfb\u52a0AI\u6458\u8981hook\n - docs/overrides/hooks/reading_time.py # \u6dfb\u52a0\u7edf\u8ba1\u9605\u8bfb\u65f6\u95f4hook\n\n# \u53ef\u9009\uff1aMaterial\u4e3b\u9898\u914d\u7f6e\ntheme:\n name: material\n custom_dir: docs/overrides #\u4e00\u5b9a\u8981\u6709\uff01\uff01\n features:\n - content.code.copy\n - content.code.select\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#2-ai_summarypyai","title":"2. \u5728ai_summary.py\u4e2d\u914d\u7f6e\u9700\u8981AI\u6458\u8981\u7684\u76ee\u5f55","text":"
# \ud83d\udcc2 \u53ef\u81ea\u5b9a\u4e49\u7684\u6587\u4ef6\u5939\u914d\u7f6e\nself.enabled_folders = [\n 'blog/', # blog\u6587\u4ef6\u5939\n 'develop/', # develop\u6587\u4ef6\u5939\n # \u5728\u8fd9\u91cc\u6dfb\u52a0\u60a8\u60f3\u8981\u542f\u7528AI\u6458\u8981\u7684\u6587\u4ef6\u5939\n]\n\n# \ud83d\udccb \u6392\u9664\u7684\u6587\u4ef6\u548c\u6587\u4ef6\u5939\nself.exclude_patterns = [\n 'waline.md', 'link.md', '404.md', 'tag.md', 'tags.md',\n '/about/', '/search/', '/sitemap', 'index.md', # \u6839\u76ee\u5f55index.md\n]\n\n# \ud83d\udccb \u6392\u9664\u7684\u7279\u5b9a\u6587\u4ef6\nself.exclude_files = [\n 'blog/index.md',\n 'blog/indexblog.md',\n 'docs/index.md',\n 'develop/index.md',\n]\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#3-ai_summarypydeepseek-apiopenai","title":"3. \u5728ai_summary.py\u4e2d\u8bbe\u7f6eDeepSeek API(\u9ed8\u8ba4\u662fOpenAI)","text":"
# \u5728ai_summary.py\u4e2d\u4fee\u6539API\u914d\u7f6e\n'deepseek': {\n 'url': 'https://api.deepseek.com/v1/chat/completions',\n 'model': 'deepseek-chat',\n 'api_key': os.getenv('DEEPSEEK_API_KEY', 'your-azure-api-key'),\n 'max_tokens': 150,\n 'temperature': 0.3\n},\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#4-mkdocs","title":"4. \u8fd0\u884cMkDocs","text":"
\u7b2c\u4e00\u6b21\u8fd0\u884c\u65f6\uff0c\u53ef\u80fd\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\uff0c\u56e0\u4e3a\u7cfb\u7edf\u4f1a\u81ea\u52a8\u751f\u6210\u6458\u8981\u3002\u540e\u7eed\u8fd0\u884c\u65f6\uff0c\u7cfb\u7edf\u4f1a\u4f7f\u7528\u7f13\u5b58\u6570\u636e\uff0c\u52a0\u5feb\u751f\u6210\u901f\u5ea6\u3002
#\u4f9d\u6b21\u8fd0\u884c\u547d\u4ee4\nmkdocs build \nmkdocs serve\n
\u7ec8\u7aef\u8f93\u51fa\u5982\u4e0b\uff1a ","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_7","title":"\ud83d\udcd6 \u4f7f\u7528\u6307\u5357","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#ai_1","title":"AI\u6458\u8981\u914d\u7f6e","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_8","title":"\u6587\u4ef6\u5939\u7ea7\u522b\u63a7\u5236","text":"
# \u542f\u7528\u7279\u5b9a\u6587\u4ef6\u5939\nconfigure_ai_summary(['blog/', 'docs/', 'tutorials/'])\n\n# \u5168\u5c40\u542f\u7528\uff08\u9664\u6392\u9664\u9879\uff09\nconfigure_ai_summary([''])\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_9","title":"\u9875\u9762\u7ea7\u522b\u63a7\u5236(\u63a8\u8350)","text":"
\u5728Markdown\u6587\u4ef6\u7684YAML front matter\u4e2d\uff1a
---\ntitle: \u6587\u7ae0\u6807\u9898\nai_summary: true # \u542f\u7528AI\u6458\u8981\n---\n
---\ntitle: \u6587\u7ae0\u6807\u9898\nai_summary: false # \u7981\u7528AI\u6458\u8981\ndescription: \u624b\u52a8\u6458\u8981 # \u53ef\u9009\n---\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_10","title":"\u9605\u8bfb\u65f6\u95f4\u914d\u7f6e","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_11","title":"\u6392\u9664\u7279\u5b9a\u9875\u9762","text":"
# \u5728\u9875\u9762\u7684YAML front matter\u4e2d\n---\ntitle: \u9875\u9762\u6807\u9898\nhide_reading_time: true # \u9690\u85cf\u9605\u8bfb\u65f6\u95f4\n---\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_12","title":"\ud83c\udfa8 \u663e\u793a\u6548\u679c","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#ai_2","title":"AI\u6458\u8981\u663e\u793a","text":"
!!! info \"\ud83e\udd16 AI\u667a\u80fd\u6458\u8981\"\n \u672c\u6587\u8be6\u7ec6\u4ecb\u7ecd\u4e86MkDocs hooks\u7684\u5f00\u53d1\u548c\u4f7f\u7528\u65b9\u6cd5\uff0c\u6db5\u76d6AI\u6458\u8981\u751f\u6210\u3001\u9605\u8bfb\u65f6\u95f4\u7edf\u8ba1\u7b49\u529f\u80fd\u5b9e\u73b0\u3002\u901a\u8fc7DeepSeek API\u96c6\u6210\u548c\u667a\u80fd\u7f13\u5b58\u673a\u5236\uff0c\u4e3a\u6280\u672f\u6587\u6863\u63d0\u4f9b\u81ea\u52a8\u5316\u7684\u5185\u5bb9\u589e\u5f3a\u670d\u52a1\u3002\n\n# \u60a8\u7684\u6587\u7ae0\u6807\u9898\n\u6587\u7ae0\u5185\u5bb9...\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_13","title":"\u9605\u8bfb\u4fe1\u606f\u663e\u793a","text":"
!!! info \"\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f\"\n \u9605\u8bfb\u65f6\u95f4\uff1a**3** \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a**1247** | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a**45**\n\n# \u60a8\u7684\u6587\u7ae0\u6807\u9898\n\u6587\u7ae0\u5185\u5bb9...\n
\u5b9e\u9645\u6548\u679c\uff1a
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#api","title":"API\u82b1\u8d39","text":"
\u4e00\u6b21\u5927\u7ea60.03-0.05\u5143\uff08\u4e2d\u5927\u578b\u6587\u6863\uff09 \u53ef\u4ee5\u8bf4\u76f8\u5f53\u7ecf\u6d4e\u5b9e\u60e0\u4e86\uff01
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#openai","title":"\u514d\u8d39openai\u989d\u5ea6\u83b7\u53d6","text":"
\u63a8\u8350\u4f7f\u7528\uff1achatanywhere
\u7533\u8bf7\u597d\u540e\u5f97\u5230sk-\u5f00\u5934\u7684\u5bc6\u94a5\uff0c\u5728ai_summary.py\u7684\u591aAI\u670d\u52a1\u914d\u7f6e\u90e8\u5206\u66ff\u6362\u4e3a\u4ee5\u4e0b\u5185\u5bb9\uff1a
'openai': {\n 'url': 'https://api.chatanywhere.tech/v1/chat/completions',\n 'model': 'gpt-3.5-turbo', # \u6216 'gpt-4', 'gpt-4-turbo'\n 'api_key': os.getenv('OPENAI_API_KEY', 'your_openai_api_key'),\n 'max_tokens': 150,\n 'temperature': 0.3\n},\n
# \u9ed8\u8ba4\u4f7f\u7528\u7684AI\u670d\u52a1\nself.default_service = 'openai'\n
\u4f46\u662f\u6211\u8fd9\u91cc\u4e5f\u63a8\u8350\u4f7f\u7528DeepSeek API\uff0c\u989d\u5ea6\u5145\u8db3\u4e14\u6027\u80fd\u4f18\u79c0\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_14","title":"\u2699\ufe0f \u9ad8\u7ea7\u914d\u7f6e","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#api_1","title":"\u81ea\u5b9a\u4e49API\u670d\u52a1","text":"
# \u652f\u6301\u5176\u4ed6AI\u670d\u52a1\nself.api_config = {\n 'url': 'https://your-api-endpoint.com/v1/chat/completions',\n 'model': 'your-model',\n 'headers': {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_API_KEY'\n }\n}\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_15","title":"\u81ea\u5b9a\u4e49\u63d0\u793a\u8bcd","text":"
# \u4fee\u6539AI\u6458\u8981\u7684\u63d0\u793a\u8bcd\ndef generate_ai_summary(self, content, page_title=\"\"):\n prompt = f\"\"\"\u60a8\u7684\u81ea\u5b9a\u4e49\u63d0\u793a\u8bcd...\n\n \u6587\u7ae0\u6807\u9898\uff1a{page_title}\n \u6587\u7ae0\u5185\u5bb9\uff1a{content[:2500]}\n \"\"\"\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_16","title":"\u7f13\u5b58\u914d\u7f6e","text":"
# \u4fee\u6539\u7f13\u5b58\u8fc7\u671f\u65f6\u95f4\uff08\u5929\u6570\uff09\ncache_time = datetime.fromisoformat(cache_data.get('timestamp', '1970-01-01'))\nif (datetime.now() - cache_time).days < 30: # \u6539\u4e3a30\u5929\n return cache_data\n
\u6ce8\u610f\u6ce8\u610f\u6ce8\u610f\uff01\uff01\uff01 \u5207\u6362api\u670d\u52a1\u540e\uff0c\u8981\u5220\u9664site/.ai_cache\u8fd9\u4e2a\u7f13\u5b58\u6587\u4ef6\uff0c\u624d\u53ef\u4ee5\u91cd\u65b0\u751f\u6210\u6458\u8981\uff01\uff01\uff01(\u8fd9\u4e2a\u95ee\u9898\u5df2\u7ecf\u89e3\u51b3\u4e86\uff0c\u5207\u6362api\u670d\u52a1\u540e\uff0c\u4f1a\u81ea\u52a8\u5220\u9664\u7f13\u5b58\u6587\u4ef6\uff0c\u65e0\u9700\u624b\u52a8\u5220\u9664)
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#star-history","title":"Star History","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_17","title":"\u8bf7\u4f5c\u8005\u559d\u676f\u5496\u5561","text":"
\u5982\u679c\u8fd9\u4e2a\u9879\u76ee\u5bf9\u60a8\u6709\u5e2e\u52a9\uff0c\u8bf7\u7ed9\u5b83\u4e00\u4e2a \u2b50 Star\uff01
\ud83d\udcdd \u672c\u9879\u76ee\u81f4\u529b\u4e8e\u8ba9MkDocs\u6587\u6863\u66f4\u52a0\u667a\u80fd\u5316\u548c\u7528\u6237\u53cb\u597d\u3002\u5982\u6709\u5efa\u8bae\u6216\u60f3\u6cd5\uff0c\u6b22\u8fce\u4ea4\u6d41\uff01","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/","title":"\u76f8\u5bf9\u5730\u5740\u7684\u4e00\u4e9b\u95ee\u9898","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u603b\u7ed3\u4e86MkDocs\u6587\u6863\u7cfb\u7edf\u4e2d\u76f8\u5bf9\u5730\u5740\u5f15\u7528\u7684\u5e38\u89c1\u95ee\u9898\u4e0e\u89e3\u51b3\u65b9\u6848\uff0c\u91cd\u70b9\u5206\u6790\u4e86\u56fe\u7247\u3001PDF\u3001\u8de8\u9875\u9762\u53ca\u9759\u6001\u8d44\u6e90\u7684\u6b63\u786e\u5f15\u7528\u65b9\u5f0f\u3002\u6838\u5fc3\u8981\u70b9\u5305\u62ec\uff1a\u4ee5docs\u76ee\u5f55\u4e3a\u6839\u8def\u5f84\u8fdb\u884c\u76f8\u5bf9\u5b9a\u4f4d\uff0c\u8def\u5f84\u9700\u4e25\u683c\u533a\u5206\u5927\u5c0f\u5199\uff0c\u63a8\u8350\u7edf\u4e00\u8d44\u6e90\u76ee\u5f55\u7ed3\u6784\u4ee5\u786e\u4fdd\u672c\u5730\u4e0e\u7ebf\u4e0a\u73af\u5883\u4e00\u81f4\u6027\u3002\u540c\u65f6\u6307\u51fa\u4e86\u8def\u5f84\u9519\u8bef\u3001\u5927\u5c0f\u5199\u4e0d\u4e00\u81f4\u7b49\u5178\u578b\u95ee\u9898\u7684\u6392\u67e5\u65b9\u6cd5\uff0c\u4e3aMkDocs\u9879\u76ee\u8d44\u6e90\u7ba1\u7406\u63d0\u4f9b\u4e86\u5b9e\u7528\u6307\u5bfc\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a493 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a3
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#mkdocs","title":"\u9488\u5bf9MKdocs\u4e2d\u76f8\u5bf9\u5730\u5740\u5f15\u7528\u7684\u4e00\u4e9b\u95ee\u9898","text":"
\u5728\u4f7f\u7528 MkDocs \u6784\u5efa\u6587\u6863\u7f51\u7ad9\u65f6\uff0c\u5e38\u5e38\u4f1a\u9047\u5230\u76f8\u5bf9\u5730\u5740\u5f15\u7528\u7684\u95ee\u9898\uff0c\u5c24\u5176\u662f\u5728\u56fe\u7247\u3001PDF\u3001\u5176\u4ed6\u9759\u6001\u8d44\u6e90\u7b49\u7684\u5f15\u7528\u4e0a\u3002\u5408\u7406\u4f7f\u7528\u76f8\u5bf9\u5730\u5740\u53ef\u4ee5\u8ba9\u4f60\u7684\u6587\u6863\u5728\u672c\u5730\u9884\u89c8\u548c\u7ebf\u4e0a\u90e8\u7f72\u65f6\u90fd\u80fd\u6b63\u5e38\u663e\u793a\u3002\u4e0b\u9762\u603b\u7ed3\u4e00\u4e9b\u5e38\u89c1\u573a\u666f\u548c\u6ce8\u610f\u4e8b\u9879\uff1a
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#1","title":"1. \u56fe\u7247\u5f15\u7528","text":"
\u63a8\u8350\u5199\u6cd5\uff1a
\n
./img/example.png
\u8868\u793a\u5f53\u524d Markdown \u6587\u4ef6\u540c\u7ea7\u76ee\u5f55\u4e0b\u7684
img
\u6587\u4ef6\u5939\u4e2d\u7684\u56fe\u7247\u3002 \u5982\u679c\u56fe\u7247\u5728\u4e0a\u7ea7\u76ee\u5f55\uff1a
../assets/example.png
\u6ce8\u610f\u4e8b\u9879\uff1a
- \u8def\u5f84\u533a\u5206\u5927\u5c0f\u5199\uff0c\u786e\u4fdd\u6587\u4ef6\u540d\u548c\u8def\u5f84\u4e00\u81f4\u3002
- MkDocs \u4f1a\u5c06
docs
\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6\u539f\u6837\u590d\u5236\u5230\u7ad9\u70b9\u6839\u76ee\u5f55\uff0c\u5f15\u7528\u8def\u5f84\u5e94\u4ee5 docs
\u4e3a\u6839\u76ee\u5f55\u8fdb\u884c\u76f8\u5bf9\u5b9a\u4f4d\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#2-pdf","title":"2. PDF \u6587\u4ef6\u5f15\u7528","text":"
\u5185\u5d4c\u6216\u4e0b\u8f7d PDF\uff1a
[\u67e5\u770bPDF](./files/example.pdf)\n
\u6216\u4f7f\u7528 HTML \u65b9\u5f0f\u5185\u5d4c\uff1a
<embed src=\"./files/example.pdf\" width=\"100%\" height=\"600px\" type=\"application/pdf\">\n
./files/example.pdf
\u8868\u793a\u5f53\u524d\u6587\u6863\u540c\u7ea7\u7684 files
\u6587\u4ef6\u5939\u4e0b\u7684 PDF \u6587\u4ef6\u3002 ../files/example.pdf
\u8868\u793a\u4e0a\u7ea7\u76ee\u5f55\u7684 files
\u6587\u4ef6\u5939\u4e0b\u7684 PDF \u6587\u4ef6\u3002 ../../files/example.pdf
\u8868\u793a\u4e0a\u4e0a\u7ea7\u76ee\u5f55\u7684 files
\u6587\u4ef6\u5939\u4e0b\u7684 PDF \u6587\u4ef6\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#3","title":"3. \u8de8\u9875\u9762\u5f15\u7528","text":"
\u5f15\u7528\u540c\u4e00\u9879\u76ee\u4e0b\u7684\u5176\u4ed6 Markdown \u9875\u9762\uff1a
[\u8df3\u8f6c\u5230\u5176\u4ed6\u9875\u9762](../otherpage.md)\n
- MkDocs \u4f1a\u81ea\u52a8\u5c06
.md
\u8f6c\u6362\u4e3a .html
\uff0c\u6240\u4ee5\u53ef\u4ee5\u76f4\u63a5\u7528 Markdown \u6587\u4ef6\u540d\u3002 - \uff08\uff09\u5185\u7684\u8def\u5f84\u662f\u76f8\u5bf9\u4e8e\u5f53\u524d Markdown \u6587\u4ef6\u7684\u8def\u5f84\uff0c\u53ef\u4ee5\u53c2\u8003PDF\u6587\u4ef6\u5f15\u7528\u7684\u65b9\u6cd5\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#4","title":"4. \u9759\u6001\u8d44\u6e90\u5f15\u7528","text":"
\u5982 CSS\u3001JS \u6587\u4ef6\uff1a
<link rel=\"stylesheet\" href=\"../assets/style.css\">\n<script src=\"../assets/script.js\"></script>\n
- \u63a8\u8350\u5c06\u9759\u6001\u8d44\u6e90\u653e\u5728
docs/assets
\u76ee\u5f55\u4e0b\uff0c\u5f15\u7528\u65f6\u7528\u76f8\u5bf9\u8def\u5f84\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#5","title":"5. \u5e38\u89c1\u95ee\u9898","text":"
- \u8def\u5f84\u9519\u8bef\u5bfc\u81f4\u8d44\u6e90\u65e0\u6cd5\u52a0\u8f7d\uff1a\u8bf7\u68c0\u67e5\u8def\u5f84\u662f\u5426\u6b63\u786e\u3001\u6587\u4ef6\u662f\u5426\u5b58\u5728\u3001\u5927\u5c0f\u5199\u662f\u5426\u4e00\u81f4\u3002
- \u672c\u5730\u9884\u89c8\u6b63\u5e38\uff0c\u7ebf\u4e0a\u4e0d\u663e\u793a\uff1a\u6709\u53ef\u80fd\u662f\u8def\u5f84\u5199\u6b7b\u6216\u5927\u5c0f\u5199\u95ee\u9898\uff0c\u5efa\u8bae\u59cb\u7ec8\u7528\u76f8\u5bf9\u8def\u5f84\u3002
- \u56fe\u7247/\u6587\u4ef6\u8fc7\u5927\u52a0\u8f7d\u6162\uff1a\u53ef\u9002\u5f53\u538b\u7f29\u56fe\u7247\u6216 PDF \u6587\u4ef6\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#_1","title":"\u603b\u7ed3","text":"
\u5728 MkDocs \u9879\u76ee\u4e2d\uff0c\u6240\u6709\u8d44\u6e90\u7684\u76f8\u5bf9\u8def\u5f84\u90fd\u5e94\u4ee5\u5f53\u524d Markdown \u6587\u4ef6\u4e3a\u57fa\u51c6\uff0c\u786e\u4fdd\u672c\u5730\u548c\u7ebf\u4e0a\u90fd\u80fd\u6b63\u786e\u8bbf\u95ee\u3002\u5efa\u8bae\u7edf\u4e00\u8d44\u6e90\u7ba1\u7406\u76ee\u5f55\u7ed3\u6784\uff0c\u4fbf\u4e8e\u7ef4\u62a4\u548c\u5f15\u7528\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/","title":"\u52a0\u901f\u7f51\u7ad9\u8bbf\u95ee\u7684\u4e00\u4e9b\u5fc3\u5f97","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86\u4f7f\u7528MkDocs\u6784\u5efa\u7f51\u7ad9\u65f6\u7684\u6027\u80fd\u4f18\u5316\u65b9\u6848\uff0c\u5305\u62ec\u91c7\u7528WebP\u7b49\u73b0\u4ee3\u56fe\u7247\u683c\u5f0f\u538b\u7f29\u8d44\u6e90\u3001\u901a\u8fc7CDN\u5206\u53d1\u9759\u6001\u6587\u4ef6\u4ee5\u964d\u4f4e\u5ef6\u8fdf\uff0c\u4ee5\u53ca\u5408\u7406\u914d\u7f6egit\u63d2\u4ef6\u6765\u52a0\u901f\u672c\u5730\u6e32\u67d3\u3002\u91cd\u70b9\u63d0\u51fa\u4e86\u5f00\u53d1/\u751f\u4ea7\u73af\u5883\u5dee\u5f02\u5316\u914d\u7f6e\u7b56\u7565\uff0c\u5e76\u63a8\u8350\u4f7f\u7528Lighthouse\u5de5\u5177\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\u9a8c\u8bc1\u3002\u8fd9\u4e9b\u63aa\u65bd\u80fd\u6709\u6548\u63d0\u5347\u7f51\u7ad9\u52a0\u8f7d\u901f\u5ea6\u548c\u7528\u6237\u4f53\u9a8c\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a257 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a6
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/#_1","title":"\u52a0\u901f\u7f51\u7ad9\u8bbf\u95ee\u7684\u4e00\u4e9b\u5fc3\u5f97","text":"
\u5728\u4f7f\u7528 MkDocs \u6784\u5efa\u7f51\u7ad9\u65f6\uff0c\u4e3a\u4e86\u63d0\u9ad8\u8bbf\u95ee\u901f\u5ea6\uff0c\u6211\u4eec\u53ef\u4ee5\u91c7\u53d6\u4ee5\u4e0b\u4e00\u4e9b\u63aa\u65bd\uff1a
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/#1","title":"1. \u4f18\u5316\u56fe\u7247","text":"
\u4f7f\u7528\u5408\u9002\u7684\u56fe\u7247\u683c\u5f0f\uff0c\u5982 WebP\u3001JPEG2000 \u7b49\uff0c\u51cf\u5c11\u56fe\u7247\u6587\u4ef6\u5927\u5c0f\uff0c\u4ece\u800c\u52a0\u5feb\u52a0\u8f7d\u901f\u5ea6\u3002
\u53ef\u4ee5\u4f7f\u7528\u5728\u7ebf\u5de5\u5177\u8fdb\u884c\u56fe\u7247\u538b\u7f29\uff0c\u5982\uff1a
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/#2-jscss-cdn","title":"2. JS/CSS\u4f7f\u7528 CDN","text":"
\u4f7f\u7528\u5185\u5bb9\u5206\u53d1\u7f51\u7edc\uff08CDN\uff09\u6765\u52a0\u901f\u7f51\u7ad9\u7684\u8bbf\u95ee\uff0c\u5c06\u9759\u6001\u8d44\u6e90\uff08\u5982\u56fe\u7247\u3001CSS\u3001JS\uff09\u7f13\u5b58\u5230\u5168\u7403\u5404\u5730\u7684\u670d\u52a1\u5668\u4e0a\uff0c\u7528\u6237\u5c31\u8fd1\u8bbf\u95ee\uff0c\u51cf\u5c11\u5ef6\u8fdf\u3002
\u8fd9\u91cc\u63a8\u8350
- jsDelivr CDN \u52a0\u901f GitHub \u6587\u4ef6
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/#3","title":"3.\u52a0\u901f\u672c\u5730\u6e32\u67d3","text":"
\u4f18\u5316 git \u63d2\u4ef6\u7684 enabled \u914d\u7f6e \u6bd4\u5982\u6211\u914d\u7f6e\u91cc\u6709 git-revision-date-localized \u548c git-committers \u63d2\u4ef6\uff0c\u8fd9\u4e9b\u63d2\u4ef6\u4f1a\u5728\u6bcf\u6b21\u6e32\u67d3\u65f6\u8bfb\u53d6\u6240\u6709\u6587\u4ef6\u7684 git \u5386\u53f2\uff0c\u5bfc\u81f4\u672c\u5730\u9884\u89c8\u53d8\u6162\u3002 \u63a8\u8350\u505a\u6cd5\u662f\u5728\u672c\u5730\u5f00\u53d1\u65f6\u7981\u7528\u5b83\u4eec\uff0c\u4ec5\u5728 CI/CD \u6216\u7ebf\u4e0a\u6784\u5efa\u65f6\u542f\u7528\u3002 \u5177\u4f53\u5199\u6cd5\u5982\u4e0b\uff1a
plugins:\n - git-revision-date-localized:\n enabled: !ENV [CI, false] # \u53ea\u6709\u5728CI\u73af\u5883\u53d8\u91cf\u4e3atrue\u65f6\u624d\u542f\u7528\n - git-committers:\n enabled: !ENV [CI, false]\n
\u68c0\u9a8c\u52a0\u901f\u6548\u679c\u662f\u5426\u751f\u6548\u53ef\u4ee5\u4f7f\u7528lighthouse\u8fdb\u884c\u6d4b\u8bd5\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\uff1a
\u4f7f\u7528lighthouse\u8fdb\u884c\u7f51\u7ad9\u6027\u80fd\u6d4b\u8bd5
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/","title":"\u80cc\u666f\u7279\u6548","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u8be5\u6280\u672f\u6587\u6863\u4ecb\u7ecd\u4e86\u4e09\u79cd\u7f51\u9875\u80cc\u666f\u7279\u6548\u7684\u5b9e\u73b0\u65b9\u6cd5\uff1a\u96ea\u82b1\u3001\u6a31\u82b1\u548c\u7c92\u5b50\u6548\u679c\u3002\u6838\u5fc3\u662f\u901a\u8fc7JavaScript\u52a8\u6001\u52a0\u8f7d\u7279\u6548\u811a\u672c\uff0c\u5e76\u5229\u7528LocalStorage\u63a7\u5236\u7279\u6548\u7684\u663e\u793a\u72b6\u6001\u3002\u4ee3\u7801\u793a\u4f8b\u5c55\u793a\u4e86\u5982\u4f55\u901a\u8fc7\u521b\u5efascript\u5143\u7d20\u5e76\u8bbe\u7f6esrc\u5c5e\u6027\u6765\u5f15\u5165\u5916\u90e8\u7279\u6548\u811a\u672c\uff0c\u9002\u7528\u4e8e\u9700\u8981\u52a8\u6001\u7f8e\u5316\u7f51\u9875\u754c\u9762\u7684\u573a\u666f\u3002
Note
\u4ee5\u4e0b\u4ee3\u7801\u5747\u5728docs/javascripts/extra.js
\u4e0b\u590d\u5236\u7c98\u8d34
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/#_1","title":"\u96ea\u82b1\u2744\ufe0f","text":"
//\u96ea\u82b1\nconst fps = 30;\nconst mspf = Math.floor(1000 / fps) ; \n\nlet width = window.innerWidth || document.documentElement.clientWidth;\nlet height = window.innerHeight || document.documentElement.clientHeight;\nlet canvas;\nwindow.addEventListener('resize', () => {\n width = window.innerWidth || document.documentElement.clientWidth;\n height = window.innerHeight || document.documentElement.clientHeight;\n if (canvas) {\n canvas.width = width;\n canvas.height = height;\n }\n});\n\nlet particles = [];\nlet wind = [0, 0];\nlet cursor = [0, 0];\n\nfunction velocity(r) {\n return 70 / r + 30;\n}\n\nfunction sine_component(h, a) {\n return [2 * Math.PI / h, Math.random() * a, Math.random() * 2 * Math.PI]; // [frequency, amplitude, phase]\n}\n\nfunction calc_sine(components, x) {\n let sum = 0;\n for (let i = 0; i < components.length; i++) {\n const [f, a, p] = components[i];\n sum += Math.sin(x * f + p) * a;\n }\n return sum;\n}\n\nfunction gen_particle() {\n let r = Math.random() * 4 + 1;\n return {\n radius: r,\n x: Math.random() * width,\n y: -r,\n opacity: Math.random(),\n sine_components: [sine_component(height, 3), sine_component(height / 2, 2), sine_component(height / 5, 1), sine_component(height / 10, 0.5)],\n };\n}\n\nfunction update_pos(dt) {\n const n = particles.length;\n for (let i = 0; i < n; i++) {\n const v = velocity(particles[i].radius);\n particles[i].x += calc_sine(particles[i].sine_components, particles[i].y) * v / 5 * dt;\n particles[i].y += v * dt;\n\n // const dist = Math.hypot(particles[i].x - cursor[0], particles[i].y - cursor[1]) + 1;\n // particles[i].x += wind[0] * dt / dist\n // particles[i].y += wind[1] * dt / dist;\n\n if (particles[i].y - particles[i].radius > height) {\n particles[i] = gen_particle(); \n }\n }\n}\n\nlet context_cache;\nfunction get_context() {\n if (context_cache)\n return context_cache;\n\n canvas = document.createElement('canvas');\n canvas.id = 'snow-canvas';\n canvas.width = width;\n canvas.height = height;\n canvas.style = 'position: fixed; top: 0; left: 0; overflow: hidden; pointer-events: none; z-index: 256;';\n if ((document.documentElement.dataset.darkreaderMode || \"\").startsWith('filter'))\n canvas.style.filter = 'invert(1)';\n document.body.appendChild(canvas);\n\n context_cache = canvas.getContext('2d');\n return context_cache;\n}\n\nfunction draw() {\n const ctx = get_context();\n\n ctx.clearRect(0, 0, width, height);\n\n const n = particles.length;\n for (let i = 0; i < n; i++) {\n const p = particles[i];\n ctx.fillStyle = `rgba(255, 255, 255, ${p.opacity})`;\n ctx.shadowColor = '#80EDF7';\n ctx.shadowBlur = 7;\n ctx.beginPath();\n ctx.arc(p.x, p.y, p.radius, 0, 2*Math.PI);\n ctx.fill();\n }\n}\n\nlet focused = true;\nlet disabled = false;\nlet lastTime = performance.now();\nconst requestFrame = () => setTimeout(loop, mspf);\nfunction loop() {\n const dt = (performance.now() - lastTime) / 1000;\n\n if (particles.length < 120 && Math.random() < 0.1) {\n particles.push(gen_particle());\n }\n\n update_pos(dt);\n draw();\n\n lastTime = performance.now();\n if (focused && !disabled)\n requestFrame();\n}\n\n\nwindow.addEventListener('focus', () => {\n console.log('snow start');\n focused = true;\n lastTime = performance.now();\n requestFrame();\n});\n\nwindow.addEventListener('blur', () => {\n console.log('snow stop');\n focused = false;\n});\n\nwindow.addEventListener('keydown', e => {\n if (e.ctrlKey && e.key == 's') {\n e.preventDefault();\n disabled = !disabled;\n if (disabled) {\n canvas.style.display = 'none';\n } else {\n canvas.style.display = 'block';\n lastTime = performance.now();\n requestFrame();\n }\n }\n});\n\nrequestFrame();\n//\u96ea\u82b1\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/#_2","title":"\u6a31\u82b1\ud83c\udf38","text":"
//\u6a31\u82b1\nSakura.prototype.draw = function (cxt) {\n cxt.save(); var xc = 40 * this.s / 4; cxt.translate(this.x, this.y); cxt.rotate(this.r); cxt.drawImage(img, 0, 0, 40 * this.s, 40 * this.s)\n cxt.restore();\n}\nSakura.prototype.update = function () { this.x = this.fn.x(this.x, this.y); this.y = this.fn.y(this.y, this.y); this.r = this.fn.r(this.r); if (this.x > window.innerWidth || this.x < 0 || this.y > window.innerHeight || this.y < 0) { this.r = getRandom('fnr'); if (Math.random() > 0.4) { this.x = getRandom('x'); this.y = 0; this.s = getRandom('s'); this.r = getRandom('r'); } else { this.x = window.innerWidth; this.y = getRandom('y'); this.s = getRandom('s'); this.r = getRandom('r'); } } }\nSakuraList = function () { this.list = []; }\nSakuraList.prototype.push = function (sakura) { this.list.push(sakura); }\nSakuraList.prototype.update = function () { for (var i = 0, len = this.list.length; i < len; i++) { this.list[i].update(); } }\nSakuraList.prototype.draw = function (cxt) { for (var i = 0, len = this.list.length; i < len; i++) { this.list[i].draw(cxt); } }\nSakuraList.prototype.get = function (i) { return this.list[i]; }\nSakuraList.prototype.size = function () { return this.list.length; }\nfunction getRandom(option) {\n var ret, random; switch (option) {\n case 'x': ret = Math.random() * window.innerWidth; break; case 'y': ret = Math.random() * window.innerHeight; break; case 's': ret = Math.random(); break; case 'r': ret = Math.random() * 6; break; case 'fnx': random = -0.5 + Math.random() * 1; ret = function (x, y) { return x + 0.5 * random - 1.7; }; break; case 'fny': random = 1.5 + Math.random() * 0.7\n ret = function (x, y) { return y + random; }; break; case 'fnr': random = Math.random() * 0.03; ret = function (r) { return r + random; }; break;\n }\n return ret;\n}\nfunction startSakura() {\n requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame; var canvas = document.createElement('canvas'), cxt; staticx = true; canvas.height = window.innerHeight; canvas.width = window.innerWidth; canvas.setAttribute('style', 'position: fixed;left: 0;top: 0;pointer-events: none;'); canvas.setAttribute('id', 'canvas_sakura'); document.getElementsByTagName('body')[0].appendChild(canvas); cxt = canvas.getContext('2d'); var sakuraList = new SakuraList(); for (var i = 0; i < 50; i++) { var sakura, randomX, randomY, randomS, randomR, randomFnx, randomFny; randomX = getRandom('x'); randomY = getRandom('y'); randomR = getRandom('r'); randomS = getRandom('s'); randomFnx = getRandom('fnx'); randomFny = getRandom('fny'); randomFnR = getRandom('fnr'); sakura = new Sakura(randomX, randomY, randomS, randomR, { x: randomFnx, y: randomFny, r: randomFnR }); sakura.draw(cxt); sakuraList.push(sakura); }\n stop = requestAnimationFrame(function () { cxt.clearRect(0, 0, canvas.width, canvas.height); sakuraList.update(); sakuraList.draw(cxt); stop = requestAnimationFrame(arguments.callee); })\n}\nwindow.onresize = function () { var canvasSnow = document.getElementById('canvas_snow'); }\nimg.onload = function () { startSakura(); }\n//\u6a31\u82b1\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/#_3","title":"\u7ebf\u6761","text":"
!function() {\n function o(w, v, i) {\n return w.getAttribute(v) || i\n }\n function j(i) {\n return document.getElementsByTagName(i)\n }\n function l() {\n var i = j(\"script\"),\n w = i.length,\n v = i[w - 1];\n return {\n l: w,\n z: o(v, \"zIndex\", -1),\n o: o(v, \"opacity\", 0.5),\n c: o(v, \"color\", \"0,0,0\"),\n n: o(v, \"count\", 99)\n }\n }\n function k() {\n r = u.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,\n n = u.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\n }\n function b() {\n e.clearRect(0, 0, r, n);\n var w = [f].concat(t);\n var x, v, A, B, z, y;\n t.forEach(function(i) {\n i.x += i.xa,\n i.y += i.ya,\n i.xa *= i.x > r || i.x < 0 ? -1 : 1,\n i.ya *= i.y > n || i.y < 0 ? -1 : 1,\n e.fillRect(i.x - 0.5, i.y - 0.5, 1, 1);\n for (v = 0; v < w.length; v++) {\n x = w[v];\n if (i !== x && null !== x.x && null !== x.y) {\n B = i.x - x.x,\n z = i.y - x.y,\n y = B * B + z * z;\n y < x.max && (x === f && y >= x.max / 2 && (i.x -= 0.03 * B, i.y -= 0.03 * z), A = (x.max - y) / x.max, e.beginPath(), e.lineWidth = A / 2, e.strokeStyle = \"rgba(\" + s.c + \",\" + (A + 0.2) + \")\", e.moveTo(i.x, i.y), e.lineTo(x.x, x.y), e.stroke())\n }\n }\n w.splice(w.indexOf(i), 1)\n }),\n m(b)\n }\n var u = document.createElement(\"canvas\"),\n s = l(),\n c = \"c_n\" + s.l,\n e = u.getContext(\"2d\"),\n r,\n n,\n m = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||\n function(i) {\n window.setTimeout(i, 1000 / 45)\n },\n a = Math.random,\n f = {\n x: null,\n y: null,\n max: 20000\n };\n u.id = c;\n u.style.cssText = \"position:fixed;top:0;left:0;z-index:\" + s.z + \";opacity:\" + s.o;\n j(\"body\")[0].appendChild(u);\n k(),\n window.onresize = k;\n window.onmousemove = function(i) {\n i = i || window.event,\n f.x = i.clientX,\n f.y = i.clientY\n },\n window.onmouseout = function() {\n f.x = null,\n f.y = null\n };\n for (var t = [], p = 0; s.n > p; p++) {\n var h = a() * r,\n g = a() * n,\n q = 2 * a() - 1,\n d = 2 * a() - 1;\n t.push({\n x: h,\n y: g,\n xa: q,\n ya: d,\n max: 6000\n })\n }\n setTimeout(function() {\n b()\n },\n 100)\n} ();\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/#_4","title":"\u7c92\u5b50","text":"
/*\u80cc\u666f*/\nwindow.onload = function () {\n //\u5b9a\u4e49body\u7684margin\u7531\u9ed8\u8ba4\u503c8px->0px\n document.body.style.margin = \"0\";\n document.body.style.background = \"255,255,255\";\n //\u521b\u5efacanvas\u753b\u5e03\n document.body.appendChild(document.createElement('canvas'));\n var canvas = document.querySelector('canvas'),\n ctx = canvas.getContext('2d') //ctx\u8fd4\u56de\u4e00\u4e2a\u5728canvas\u4e0a\u753b\u56fe\u7684api/dom\n canvas.width = window.innerWidth;\n canvas.height = window.innerHeight;\n canvas.style.position = 'fixed';\n ctx.lineWidth = .3;\n ctx.strokeStyle = (new Color(150)).style;\n //\u5b9a\u4e49\u9f20\u6807\u8986\u76d6\u8303\u56f4\n var mousePosition = {\n x: 30 * canvas.width / 100,\n y: 30 * canvas.height / 100\n };\n var dots = {\n nb: 1000,//Dot\u7684\u603b\u6570\n distance: 50,\n d_radius: 100,\n array: []\n };\n //\u521b\u5efa\u989c\u8272\u7c7b\uff0cColor\u7c7b\u8fd4\u56de\u5b57\u7b26\u4e32\u578brgba\uff08*,*,*,.8\uff09\n function mixComponents(comp1, weight1, comp2, weight2) {\n return (comp1 * weight1 + comp2 * weight2) / (weight1 + weight2);\n }\n function averageColorStyles(dot1, dot2) {\n var color1 = dot1.color,\n color2 = dot2.color;\n\n var r = mixComponents(color1.r, dot1.radius, color2.r, dot2.radius),\n g = mixComponents(color1.g, dot1.radius, color2.g, dot2.radius),\n b = mixComponents(color1.b, dot1.radius, color2.b, dot2.radius);\n return createColorStyle(Math.floor(r), Math.floor(g), Math.floor(b));\n }\n function colorValue(min) {\n return Math.floor(Math.random() * 255 + min);\n }\n function createColorStyle(r, g, b) {\n return 'rgba(' + r + ',' + g + ',' + b + ', 0.8)';\n }\n function Color(min) {\n min = min || 0;\n this.r = colorValue(min);\n this.g = colorValue(min);\n this.b = colorValue(min);\n this.style = createColorStyle(this.r, this.g, this.b);\n }\n //\u521b\u5efaDot\u7c7b\u4ee5\u53ca\u4e00\u7cfb\u5217\u65b9\u6cd5\n function Dot() {\n this.x = Math.random() * canvas.width;\n this.y = Math.random() * canvas.height;\n\n this.vx = -.5 + Math.random();\n this.vy = -.5 + Math.random();\n\n this.radius = Math.random() * 2;\n\n this.color = new Color();\n }\n\n Dot.prototype = {\n draw: function () {\n ctx.beginPath();\n ctx.fillStyle = this.color.style;\n ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, false);\n ctx.fill();\n }\n };\n function moveDots() {//Dot\u5bf9\u8c61\u7684\u79fb\u52a8\n for (i = 0; i < dots.nb; i++) {\n\n var dot = dots.array[i];\n\n if (dot.y < 0 || dot.y > canvas.height) {\n dot.vx = dot.vx;\n dot.vy = - dot.vy;\n }\n else if (dot.x < 0 || dot.x > canvas.width) {\n dot.vx = - dot.vx;\n dot.vy = dot.vy;\n }\n dot.x += dot.vx;\n dot.y += dot.vy;\n }\n }\n function connectDots() {//DOt\u5bf9\u8c61\u7684\u8fde\u63a5\n for (i = 0; i < dots.nb; i++) {\n for (j = i; j < dots.nb; j++) {\n i_dot = dots.array[i];\n j_dot = dots.array[j];\n\n if ((i_dot.x - j_dot.x) < dots.distance && (i_dot.y - j_dot.y) < dots.distance && (i_dot.x - j_dot.x) > - dots.distance && (i_dot.y - j_dot.y) > - dots.distance) {\n if ((i_dot.x - mousePosition.x) < dots.d_radius && (i_dot.y - mousePosition.y) < dots.d_radius && (i_dot.x - mousePosition.x) > - dots.d_radius && (i_dot.y - mousePosition.y) > - dots.d_radius) {\n ctx.beginPath();\n ctx.strokeStyle = averageColorStyles(i_dot, j_dot);\n ctx.moveTo(i_dot.x, i_dot.y);\n ctx.lineTo(j_dot.x, j_dot.y);\n ctx.stroke();//\u7ed8\u5236\u5b9a\u4e49\u7684\u8def\u7ebf\n ctx.closePath();//\u521b\u5efa\u4ece\u5f53\u524d\u70b9\u56de\u5230\u8d77\u59cb\u70b9\u7684\u8def\u5f84\n }\n }\n }\n }\n }\n function createDots() {//\u521b\u5efanb\u4e2aDot\u5bf9\u8c61\n for (i = 0; i < dots.nb; i++) {\n dots.array.push(new Dot());\n }\n }\n function drawDots() {//\u5f15\u7528Dot\u539f\u578b\u94fe\uff0c\u4f7f\u7528draw\u65b9\u6cd5\uff0c\u5728canvas\u4e0a\u753b\u51faDot\u5bf9\u8c61\n for (i = 0; i < dots.nb; i++) {\n var dot = dots.array[i];\n dot.draw();\n }\n }\n function animateDots() {\n ctx.clearRect(0, 0, canvas.width, canvas.height);//\u6e05\u9664\u753b\u5e03\uff0c\u5426\u5219\u7ebf\u6761\u4f1a\u8fde\u5728\u4e00\u8d77\n moveDots();\n connectDots();\n drawDots();\n requestAnimationFrame(animateDots);\n }\n createDots();//\u4f7f\u7528\u521b\u5efaDot\u7c7b\u51fd\u6570\n requestAnimationFrame(animateDots);//\u4f7f\u7528canvas\u72ec\u6709\u768460Hz\u5237\u65b0\u5c4f\u5e55\u753b\u5e03\u7684\u65b9\u6cd5\n\n document.querySelector('canvas').addEventListener('mousemove', function (e) {\n mousePosition.x = e.pageX;\n mousePosition.y = e.pageY;\n })\n\n document.querySelector('canvas').addEventListener('mouseleave', function (e) {//\u9f20\u6807\u79bb\u5f00\u65f6\uff0c\u8fde\u63a5\u81ea\u52a8\u8fd4\u56de\u5230\u753b\u5e03\u4e2d\u5fc3\n mousePosition.x = canvas.width / 2;\n mousePosition.y = canvas.height / 2;\n })\n\n}\n\n/*\u80cc\u666fend*/\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/footer/","title":"\u9875\u811a\u8bbe\u7f6e","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
MkDocs\u5141\u8bb8\u901a\u8fc7\u81ea\u5b9a\u4e49HTML\u6587\u4ef6\u5b9e\u73b0\u9875\u811a\u4e2a\u6027\u5316\u914d\u7f6e\u3002\u7528\u6237\u9700\u5728docs/overrides/partials/\u76ee\u5f55\u4e0b\u521b\u5efa\u6216\u4fee\u6539footer.html\u6587\u4ef6\uff0c\u63d2\u5165\u7279\u5b9a\u4ee3\u7801\u7247\u6bb5\u5373\u53ef\u5b8c\u6210\u8bbe\u7f6e\u3002\u8be5\u529f\u80fd\u9002\u7528\u4e8e\u9700\u8981\u5b9a\u5236\u7f51\u7ad9\u5e95\u90e8\u4fe1\u606f\u7684\u573a\u666f\uff0c\u64cd\u4f5c\u7b80\u5355\u4e14\u65e0\u9700\u4fee\u6539\u6838\u5fc3\u914d\u7f6e\u6587\u4ef6\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a60 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a89
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/footer/#_1","title":"\u9875\u811a\u8bbe\u7f6e","text":"
MkDocs \u652f\u6301\u81ea\u5b9a\u4e49\u9875\u811a\u3002
\u5728docs/overrides/partials/footer.html\u4e2d\uff08\u6ca1\u6709\u8be5\u6587\u4ef6\u65f6\uff0c\u521b\u5efafooter.html\u6587\u4ef6\uff09\u6dfb\u52a0\u4ee5\u4e0b\u4ee3\u7801\uff1a
<!-- Footer -->\n<footer class=\"md-footer\">\n\n <!-- Link to previous and/or next page -->\n {% if \"navigation.footer\" in features %}\n {% if page.previous_page or page.next_page %}\n {% if page.meta and page.meta.hide %}\n {% set hidden = \"hidden\" if \"footer\" in page.meta.hide %}\n {% endif %}\n <nav\n class=\"md-footer__inner md-grid\"\n aria-label=\"{{ lang.t('footer') }}\"\n {{ hidden }}\n >\n\n <!-- Link to previous page -->\n {% if page.previous_page %}\n {% set direction = lang.t(\"footer.previous\") %}\n <a\n href=\"{{ page.previous_page.url | url }}\"\n class=\"md-footer__link md-footer__link--prev\"\n aria-label=\"{{ direction }}: {{ page.previous_page.title | e }}\"\n >\n <div class=\"md-footer__button md-icon\">\n {% set icon = config.theme.icon.previous or \"material/arrow-left\" %}\n {% include \".icons/\" ~ icon ~ \".svg\" %}\n </div>\n <div class=\"md-footer__title\">\n <span class=\"md-footer__direction\">\n {{ direction }}\n </span>\n <div class=\"md-ellipsis\">\n {{ page.previous_page.title }}\n </div>\n </div>\n\n </a>\n {% endif %}\n\n <!-- Link to next page -->\n {% if page.next_page %}\n {% set direction = lang.t(\"footer.next\") %}\n <a\n href=\"{{ page.next_page.url | url }}\"\n class=\"md-footer__link md-footer__link--next\"\n aria-label=\"{{ direction }}: {{ page.next_page.title | e }}\"\n >\n <div class=\"md-footer__title\">\n <span class=\"md-footer__direction\">\n {{ direction }}\n </span>\n <div class=\"md-ellipsis\">\n {{ page.next_page.title }}\n </div>\n </div>\n <div class=\"md-footer__button md-icon\">\n {% set icon = config.theme.icon.next or \"material/arrow-right\" %}\n {% include \".icons/\" ~ icon ~ \".svg\" %}\n </div>\n </a>\n {% endif %}\n </nav>\n {% endif %}\n {% endif %}\n\n <!-- Further information -->\n <div class=\"md-footer-meta md-typeset\">\n <div class=\"md-footer-meta__inner md-grid\">\n {% include \"partials/copyright.html\" %}\n\n <font color=\"#B9B9B9\">\n <div class=\"footer-visit-count\" style=\"display: flex; justify-content: center; align-items: center;\">\n \u672c\u7ad9\u8bbf\u95ee\u91cf\uff1a<script async src=\"//finicounter.eu.org/finicounter.js\"></script>\n <span id=\"finicount_views\"></span> | \n <footer>\n <a href=\"https://icp.gov.moe/?keyword=20230640\" target=\"_blank\">\u840cICP\u590720230640\u53f7</a>\n </footer>\n </div>\n </font>\n\n <style>\n .footer-visit-count {\n height: fit-content;\n min-height: 55px; /* \u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8c03\u6574\u6b64\u9ad8\u5ea6 */\n }\n </style>\n {% if config.extra.social %}\n {% include \"partials/social.html\" %}\n {% endif %}\n </div>\n </div>\n</footer>\n
\u9ad8\u4eae\u90e8\u5206\u81ea\u884c\u4fee\u6539\u5373\u53ef
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/footer/#_2","title":"\u9875\u811a\u7248\u6743\u8bbe\u7f6e","text":"
mkdocs.yml\u4e2d\u6dfb\u52a0\uff1a
copyright: Copyright © 2022~2025 Wcowin # \u5de6\u4e0b\u89d2\u7684\u7248\u6743\u58f0\u660e\n
\u5982\u679c\u60f3\u5220\u9664\u9875\u811a\u663e\u793a\u201cMade with Material for MkDocs\u201d(\u4e0d\u5efa\u8bae)
extra:\n generator: false #\u5220\u9664\u9875\u811a\u663e\u793a\u201c\u4f7f\u7528 MkDocs \u6750\u6599\u5236\u9020\u201d\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/header/","title":"\u6dfb\u52a0\u9876\u90e8\u516c\u544a\u680f","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u5728\u6587\u6863\u9879\u76ee\u4e2d\u6dfb\u52a0\u9876\u90e8\u516c\u544a\u680f\uff0c\u901a\u8fc7\u4fee\u6539docs/overrides/main.html
\u6587\u4ef6\u5b9e\u73b0\u81ea\u5b9a\u4e49\u516c\u544a\u5185\u5bb9\u3002\u64cd\u4f5c\u6b65\u9aa4\u5305\u62ec\u521b\u5efa\u6307\u5b9a\u76ee\u5f55\u7ed3\u6784\uff0c\u7f16\u8f91HTML\u6587\u4ef6\u8fdb\u884c\u4e2a\u6027\u5316\u914d\u7f6e\u3002\u8be5\u65b9\u6cd5\u9002\u7528\u4e8e\u9700\u8981\u7a81\u51fa\u663e\u793a\u91cd\u8981\u901a\u77e5\u7684\u6280\u672f\u6587\u6863\u7f51\u7ad9\uff0c\u5177\u6709\u4fee\u6539\u7075\u6d3b\u3001\u90e8\u7f72\u7b80\u5355\u7684\u7279\u70b9\uff0c\u65e0\u9700\u6539\u52a8\u6838\u5fc3\u4ee3\u7801\u5373\u53ef\u5b9e\u73b0\u516c\u544a\u529f\u80fd\u3002
docs/overrides\u4e0b\u65b0\u5efamain.html \uff0c\u9488\u5bf9main.html\u6587\u4ef6 \u6811\u72b6\u7ed3\u6784\u5982\u4e0b:
$ tree -a\n.\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 PublishMySite.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500overrides\n\u2502 \u2514\u2500\u2500assets\n\u2502 \u2514\u2500\u2500main.html\n\u2502 \u2514\u2500\u2500partials\n\u2502 \u2514\u2500\u2500comments.html\n\u2502\n\u2514\u2500\u2500 mkdocs.yml\n
{#-\n This file was automatically generated - do not edit\n -#}\n {% extends \"base.html\" %}\n {% block extrahead %}\n <link rel=\"stylesheet\" href=\"{{ 'assets/stylesheets/custom.00c04c01.min.css' | url }}\">\n {% endblock %}\n {% block announce %}\n Follow <strong>@Wcowin</strong> on\n <a rel=\"me\" href=\"https://space.bilibili.com/1407028951?spm_id_from=333.1007.0.0\">\n <span class=\"twemoji bilibili\">\n {% include \".icons/fontawesome/brands/bilibili.svg\" %}\n </span>\n <strong>Bilibili</strong>\n </a>\n and\n <a href=\"https://twitter.com/Wcowin_\">\n <span class=\"twemoji twitter\">\n {% include \".icons/fontawesome/brands/twitter.svg\" %}\n </span>\n <strong>Twitter</strong>\n </a>\n {% endblock %}\n {% block scripts %}\n {{ super() }}\n <script src=\"{{ 'assets/javascripts/custom.9458f965.min.js' | url }}\"></script>\n {% endblock %}\n
\u5728main.html \u91cc\u81ea\u884c\u4fee\u6539\u5373\u53ef
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/linktech/","title":"\u5982\u4f55\u7ed9MKdocs\u6dfb\u52a0\u53cb\u94fe","text":"
\u590d\u5236\u540e\u5728\u9700\u8981\u6dfb\u52a0\u53cb\u94fe\u7684.md \u6587\u4ef6\u9875\u9762\u7c98\u8d34\u5373\u53ef
<div class=\"post-body\">\n <div id=\"links\">\n <style>\n /* \u7528\u4e8e\u5927\u5c4f\u5e55\u548c\u5c0f\u5c4f\u5e55\u7684\u901a\u7528\u6837\u5f0f */\n .card {\n width: 45%;\n font-size: 1rem;\n padding: 10px 20px;\n border-radius: 4px;\n transition-duration: 0.15s;\n margin-bottom: 1rem;\n display: flex;\n }\n .card:nth-child(odd) {\n float: left;\n }\n .card:nth-child(even) {\n float: right;\n }\n .card:hover {\n transform: scale(1.1);\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);\n }\n .card a {\n border: none;\n }\n .card .ava {\n width: 3rem !important;\n height: 3rem !important;\n margin: 0 !important;\n margin-right: 1em !important;\n border-radius: 4px;\n }\n .card .card-header {\n font-style: italic;\n overflow: hidden;\n width: 100%;\n }\n .card .card-header a {\n font-style: normal;\n color: #608dbd;\n font-weight: bold;\n text-decoration: none;\n }\n .card .card-header a:hover {\n color: #d480aa;\n text-decoration: none;\n }\n .card .card-header .info {\n font-style: normal;\n color: #a3a3a3;\n font-size: 14px;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n }\n /* \u5a92\u4f53\u67e5\u8be2\uff1a\u5c0f\u5c4f\u5e55 */\n @media (max-width: 768px) {\n .card {\n width: 100%; /* \u5728\u5c0f\u5c4f\u5e55\u4e0a\u663e\u793a\u4e3a\u5355\u5217 */\n float: none; /* \u6e05\u9664\u6d6e\u52a8 */\n }\n }\n </style>\n <div class=\"links-content\">\n <div class=\"link-navigation\">\n <div class=\"card\">\n <img\n class=\"ava\"\n src=\"https://cn.mcecy.com/image/20231006/a05f708fb7b0426e7a5786669d5b1386.png\"\n />\n <div class=\"card-header\">\n <div>\n <a href=\"https://wcowin.work/ \" target=\"\u201c_blank\u201d\"\n >Wcowin\u2019s blog</a\n >\n </div>\n <div class=\"info\">\u8fd9\u662f\u4e00\u4e2a\u5206\u4eab\u6280\u672f\u7684\u5c0f\u7ad9\u3002</div>\n </div>\n </div>\n <div class=\"card\">\n <img\n class=\"ava\"\n src=\"https://i.loli.net/2020/05/14/5VyHPQqR6LWF39a.png\"\n />\n <div class=\"card-header\">\n <div>\n <a href=\"https://twitter.com/\" target=\"\u201c_blank\u201d\">Twitter</a>\n </div>\n <div class=\"info\">\u793e\u4ea4\u5206\u4eab\u5e73\u53f0</div>\n </div>\n </div>\n <div class=\"card\">\n <img\n class=\"ava\"\n src=\"https://cn.mcecy.com/image/20231012/d96b912437fb0bec0d282dfe734b1d9b.jpeg\"\n />\n <div class=\"card-header\">\n <div>\n <a href=\"https://macapp.org.cn/\" target=\"\u201c_blank\u201d\">Macapp</a>\n </div>\n <div class=\"info\">\u4e00\u4e2a\u4e13\u6ce8\u4e8e\u5206\u4eabMac\u8d44\u6e90\u7684\u9891\u9053</div>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n</div>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/linktech/#_1","title":"\u5982\u4f55\u52a0\u5165\u53cb\u94fe","text":"
<div class=\"card\">\n <img class=\"ava\" src=\"{avatarurl}\" />\n <div class=\"card-header\">\n <div>\n <a href=\"{link}\" target=\"_blank\">{name}</a>\n </div>\n <div class=\"info\">{description}</div>\n </div>\n</div>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/linktech/#_2","title":"\u793a\u4f8b","text":"
<div>\n <div class=\"links-content\"> \n <div class=\"link-navigation\"> \n <div class=\"card\"> \n <img class=\"ava\" src=\"https://pic4.zhimg.com/80/v2-a0456a5f527c1923f096759f2926012f_1440w.webp\" /> \n <div class=\"card-header\"> \n <div> \n <a href=\"https://wcowin.work/ \" target=\u201c_blank\u201d>Wcowin\u2019s blog</a> \n </div> \n <div class=\"info\">\n \u8fd9\u662f\u4e00\u4e2a\u5206\u4eab\u6280\u672f\u7684\u5c0f\u7ad9\u3002\n </div> \n </div> \n </div> \n</div>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/linktech/#_3","title":"\u6548\u679c","text":"Wcowin\u2019s blog \u8fd9\u662f\u4e00\u4e2a\u5206\u4eab\u6280\u672f\u7684\u5c0f\u7ad9\u3002","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/","title":"\u4e3a\u7f51\u7ad9\u6dfb\u52a0\u8bc4\u8bba\u7cfb\u7edf","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
giscus\u662f\u4e00\u6b3e\u57fa\u4e8eGitHub Discussions\u7684\u5f00\u6e90\u8bc4\u8bba\u7cfb\u7edf\uff0c\u65e0\u9700\u6570\u636e\u5e93\u4e14\u5b8c\u5168\u514d\u8d39\u3002\u5b83\u652f\u6301\u591a\u8bed\u8a00\u3001\u81ea\u5b9a\u4e49\u4e3b\u9898\u548c\u9ad8\u53ef\u914d\u7f6e\u6027\uff0c\u6570\u636e\u81ea\u52a8\u540c\u6b65GitHub Discussions\u3002\u76f8\u6bd4\u4f20\u7edf\u65b9\u6848\uff0cgiscus\u65e0\u9700\u7ef4\u62a4\u670d\u52a1\u5668\uff0c\u9002\u5408\u6280\u672f\u535a\u5ba2\u548c\u6587\u6863\u7f51\u7ad9\u3002\u901a\u8fc7\u7b80\u5355\u914d\u7f6e\u5373\u53ef\u96c6\u6210\u5230MkDocs\u7b49\u9759\u6001\u7f51\u7ad9\uff0c\u63d0\u4f9b\u65e0\u8ddf\u8e2a\u3001\u65e0\u5e7f\u544a\u7684\u8f7b\u91cf\u7ea7\u8bc4\u8bba\u529f\u80fd\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a389 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a116
\u5b98\u65b9\u6587\u6863\uff1aAdding a comment system
\u8fd9\u91cc\u6211\u540c\u6837\u63a8\u8350giscus
\u5229\u7528 GitHub Discussions \u5b9e\u73b0\u7684\u8bc4\u8bba\u7cfb\u7edf\uff0c\u8ba9\u8bbf\u5ba2\u501f\u52a9 GitHub \u5728\u4f60\u7684\u7f51\u7ad9\u4e0a\u7559\u4e0b\u8bc4\u8bba\u548c\u53cd\u5e94\u5427\uff01\u672c\u9879\u76ee\u6df1\u53d7 utterances \u7684\u542f\u53d1\u3002
- \u5f00\u6e90\u3002\ud83c\udf0f
- \u65e0\u8ddf\u8e2a\uff0c\u65e0\u5e7f\u544a\uff0c\u6c38\u4e45\u514d\u8d39\u3002\ud83d\udce1 \ud83d\udeab
- \u65e0\u9700\u6570\u636e\u5e93\u3002\u6240\u6709\u6570\u636e\u5747\u50a8\u5b58\u5728 GitHub Discussions \u4e2d\u3002:octocat:
- \u652f\u6301\u81ea\u5b9a\u4e49\u4e3b\u9898\uff01\ud83c\udf17
- \u652f\u6301\u591a\u79cd\u8bed\u8a00\u3002\ud83c\udf10
- \u9ad8\u53ef\u914d\u7f6e\u6027\u3002\ud83d\udd27
- \u81ea\u52a8\u4ece GitHub \u62c9\u53d6\u65b0\u8bc4\u8bba\u4e0e\u7f16\u8f91\u3002\ud83d\udd03
- \u53ef\u81ea\u5efa\u670d\u52a1\uff01\ud83e\udd33
\u8a00\u5f52\u6b63\u4f20
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_1","title":"\u7b2c\u4e00\u6b65","text":"
mkdocs.yml\u4e2d\u6dfb\u52a0custom_dir
theme:\n name: material\n custom_dir: docs/overrides #\u4e3b\u8981\u662f\u8fd9\u4e00\u884c\n
\u53c2\u8003\u4e0b\u56fe\u65b0\u5efaoverrides\u6587\u4ef6\uff0c\u5728\u6b64\u6587\u4ef6\u4e0b\u53c2\u8003\u4e0b\u56fe\u65b0\u5efa\u8986\u76d6html\u6587\u4ef6 \u6811\u72b6\u7ed3\u6784\u5982\u4e0b:
$ tree -a\n.\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 PublishMySite.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500overrides\n\u2502 \u2514\u2500\u2500assets\n\u2502 \u2514\u2500\u2500main.html\n\u2502 \u2514\u2500\u2500partials\n\u2502 \u2514\u2500\u2500comments.html\n\u2502\n\u2514\u2500\u2500 mkdocs.yml\n
\u5728comments.html\u4e2d\u5148\u590d\u5236\u7c98\u8d34\u4e0b\u9762\u7684\u4ee3\u7801\uff0c\u540e\u6587\u4f1a\u8bf4\u600e\u4e48\u4fee\u6539
{% if page.meta.comments %}\n <h2 id=\"__comments\">{{ lang.t(\"meta.comments\") }}</h2>\n <!-- Insert generated snippet here -->\n <script src=\"https://giscus.app/client.js\"\n data-repo=\"\u4f60\u7684\u4ed3\u5e93\u540d\u79f0\uff08\u5982Wcowin/hexo-site-comments\uff09\"\n data-repo-id=\" \"\n data-category=\" \"\n data-category-id=\" \"\n data-mapping=\"pathname\"\n data-strict=\"0\"\n data-reactions-enabled=\"1\"\n data-emit-metadata=\"0\"\n data-input-position=\"bottom\"\n data-theme=\"preferred_color_scheme\"\n data-lang=\"zh-CN\"\n crossorigin=\"anonymous\"\n async>\n</script>\n <!-- Synchronize Giscus theme with palette -->\n <script>\n var giscus = document.querySelector(\"script[src*=giscus]\")\n\n // Set palette on initial load\n var palette = __md_get(\"__palette\")\n if (palette && typeof palette.color === \"object\") {\n var theme = palette.color.scheme === \"slate\"\n ? \"transparent_dark\"\n : \"light\"\n\n // Instruct Giscus to set theme\n giscus.setAttribute(\"data-theme\", theme) \n }\n\n // Register event handlers after documented loaded\n document.addEventListener(\"DOMContentLoaded\", function() {\n var ref = document.querySelector(\"[data-md-component=palette]\")\n ref.addEventListener(\"change\", function() {\n var palette = __md_get(\"__palette\")\n if (palette && typeof palette.color === \"object\") {\n var theme = palette.color.scheme === \"slate\"\n ? \"transparent_dark\"\n : \"light\"\n\n // Instruct Giscus to change theme\n var frame = document.querySelector(\".giscus-frame\")\n frame.contentWindow.postMessage(\n { giscus: { setConfig: { theme } } },\n \"https://giscus.app\"\n )\n }\n })\n })\n </script>\n{% endif %}\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_2","title":"\u7b2c\u4e8c\u6b65","text":"
\u6253\u5f00https://giscus.app/zh-CN \u8d70\u5b8c\u8fd9\u4e2a\u9875\u9762\u7684\u6d41\u7a0b\u5c31\u4f1a\u5f97\u5230(\u8fd9\u4f1a\u5728\u4f60\u7684Github\u521b\u5efa\u65b0\u7684\u4ed3\u5e93\uff0c\u5efa\u8bae\u81ea\u5df1\u5148\u53bb\u65b0\u5efa\u4e2a Discussions)
<script src=\"https://giscus.app/client.js\"\n data-repo=\"[\u5728\u6b64\u8f93\u5165\u4ed3\u5e93]\"\n data-repo-id=\"[\u5728\u6b64\u8f93\u5165\u4ed3\u5e93 ID]\"\n data-category=\"[\u5728\u6b64\u8f93\u5165\u5206\u7c7b\u540d]\"\n data-category-id=\"[\u5728\u6b64\u8f93\u5165\u5206\u7c7b ID]\"\n data-mapping=\"pathname\"\n data-strict=\"0\"\n data-reactions-enabled=\"1\"\n data-emit-metadata=\"0\"\n data-input-position=\"bottom\"\n data-theme=\"preferred_color_scheme\"\n data-lang=\"zh-CN\"\n crossorigin=\"anonymous\"\n async>\n</script>\n
\u590d\u5236\u6b64\u4ee3\u7801\uff0c\u66ff\u6362\u6700\u4e0a\u9762\ud83d\udc46\ud83c\udffbcomments.html\u4e2d\u9ad8\u4eae\u7684\u4ee3\u7801
\u7ec8\u7aef\u91ccmkdocs server
\u4e00\u4e0b
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_3","title":"\u6700\u540e","text":"
\u5728\u4f60\u60f3\u63d2\u5165\u8bc4\u8bba\u7684\u5730\u65b9\u7684\u5143\u6570\u636e\uff1acomments: true
---\ntitle: \u7559\u8a00\u677f\nhide:\n # - navigation # \u663e\u793a\u53f3\n # - toc #\u663e\u793a\u5de6\n # - footer\n # - feedback \ncomments: true #\u9ed8\u8ba4\u4e0d\u5f00\u542f\u8bc4\u8bba\n---\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_4","title":"\u6548\u679c","text":"
\u5b8c\u7f8e!\u5feb\u901f\u76f8\u5e94
\u8fd9\u662f\u56fe\u7247\u2191\u2191\u2191","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_5","title":"\u5176\u4ed6\u8bc4\u8bba\u7cfb\u7edf","text":"
\u628a\u60f3\u8981\u5185\u5d4c\u7684\u8bc4\u8bba\u4ee3\u7801\u653e\u5728\u76f8\u5e94\u9875\u9762\u5373\u53ef \u6bd4\u5982twikoo \u53bb\u770b\u5b83\u7684\u5b98\u65b9\u914d\u7f6e\u6587\u6863\u5f88\u7b80\u5355\u5c31\u914d\u7f6e\u597d\u4e86
<head> \n <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css\" integrity=\"sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X\" crossorigin=\"anonymous\" /> \n <script defer=\"\" src=\"https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js\" integrity=\"sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4\" crossorigin=\"anonymous\"></script> \n <script defer=\"\" src=\"https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js\" integrity=\"sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa\" crossorigin=\"anonymous\"></script> \n\n </head>\n<body>\n <div id=\"tcomment\"></div> \n <script src=\"https://cdn.staticfile.org/twikoo/1.6.21/twikoo.all.min.js\"></script> \n <script>\ntwikoo.init({\n envId: 'https://superb-salamander-e730b6.netlify.app/.netlify/functions/twikoo', // \u817e\u8baf\u4e91\u73af\u5883\u586b envId\uff1bVercel \u73af\u5883\u586b\u5730\u5740\uff08https://xxx.vercel.app\uff09\n el: '#tcomment', // \u5bb9\u5668\u5143\u7d20\n //region: 'ap-guangzhou', // \u73af\u5883\u5730\u57df\uff0c\u9ed8\u8ba4\u4e3a ap-shanghai\uff0c\u817e\u8baf\u4e91\u73af\u5883\u586b ap-shanghai \u6216 ap-guangzhou\uff1bVercel \u73af\u5883\u4e0d\u586b\n // path: location.pathname, // \u7528\u4e8e\u533a\u5206\u4e0d\u540c\u6587\u7ae0\u7684\u81ea\u5b9a\u4e49 js \u8def\u5f84\uff0c\u5982\u679c\u60a8\u7684\u6587\u7ae0\u8def\u5f84\u4e0d\u662f location.pathname\uff0c\u9700\u4f20\u6b64\u53c2\u6570\n //lang: 'zh-CN', // \u7528\u4e8e\u624b\u52a8\u8bbe\u5b9a\u8bc4\u8bba\u533a\u8bed\u8a00\uff0c\u652f\u6301\u7684\u8bed\u8a00\u5217\u8868 https://github.com/twikoojs/twikoo/blob/main/src/client/utils/i18n/index.js\n onCommentLoaded: function () {\n console.log('\u8bc4\u8bba\u52a0\u8f7d\u5b8c\u6210');\n }\n})\n</script> \n
\u6211\u611f\u89c9twikoo\u4e5f\u597d\u770b\uff01","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/","title":"\u81ea\u5b9a\u4e49Mkdocs\u663e\u793a\u5b57\u4f53(\u971e\u9e5c\u6587\u6977)","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86\u5f00\u6e90\u4e2d\u6587\u5b57\u4f53\u971e\u9e5c\u6587\u6977\uff08LXGW WenKai\uff09\u7684\u6280\u672f\u7279\u70b9\u4e0e\u5e94\u7528\u573a\u666f\u3002\u8be5\u5b57\u4f53\u57fa\u4e8e\u65e5\u672cFONTWORKS\u516c\u53f8\u7684Klee One\u884d\u751f\u800c\u6765\uff0c\u5305\u542b\u7b80\u7e41\u65e5\u97e9\u591a\u8bed\u8a00\u652f\u6301\uff0c\u63d0\u4f9b\u5c4f\u5e55\u9605\u8bfb\u7248\u3001\u8f7b\u4fbf\u7248\u7b49\u591a\u4e2a\u7248\u672c\u3002\u6587\u7ae0\u8be6\u7ec6\u8bf4\u660e\u4e86\u5b57\u4f53\u7684\u5f00\u53d1\u80cc\u666f\u3001\u8865\u5b57\u8ba1\u5212\u4ee5\u53ca\u83b7\u53d6\u65b9\u5f0f\uff0c\u7279\u522b\u5f3a\u8c03\u4e86\u5176\u5f00\u6e90\u7279\u6027\u4e0e\u8de8\u5e73\u53f0\u9002\u7528\u6027\uff0c\u9002\u5408\u7f51\u9875\u8bbe\u8ba1\u3001\u79fb\u52a8\u7aef\u663e\u793a\u7b49\u573a\u666f\u3002\u540c\u65f6\u63d0\u4f9b\u4e86\u5b57\u4f53\u4f7f\u7528\u6ce8\u610f\u4e8b\u9879\u548c\u7248\u672c\u66f4\u65b0\u6e20\u9053\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a6 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a2328 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a21
\u6211\u76ee\u524d\u5728\u7528\u7684\u5b57\u4f53\uff1a\u971e\u9e5c\u6587\u6977 \u60f3\u5fc5\u4f60\u53ef\u4ee5\u76f4\u89c2\u4ece\u6211\u7684\u7f51\u7ad9\u611f\u53d7\u5230\uff0c\u8fd9\u6b3e\u5b57\u4f53\u7684\u7f8e\u89c2\u7a0b\u5ea6\u3002
\u5feb\u901f\u6559\u7a0b
\u4ee5\u4e0b\u662f\u6458\u5f55\u7684\u90e8\u5206\u5b57\u4f53\u5b98\u65b9\u4ecb\u7ecd\u6587\u6863
\u6ce8\u610f\u4e8b\u9879
- \u6dfb\u5b57\u8bf7\u5728 Issue #33 \u53cd\u9988\uff0c\u5b57\u5f62\u8c03\u6574\u8bf7\u5728 Issue #14 \u53cd\u9988\uff0c\u4e0d\u8981\u53e6\u5f00\u8bae\u9898\uff0c\u4ee5\u4fbf\u4e8e\u6574\u7406\u3002
- \u82e5\u9700\u8981\u5728\u7f51\u7ad9\u4e0a\u4f7f\u7528\u8fd9\u6b3e\u5b57\u4f53\uff0c\u8bf7\u53c2\u9605 Issue #24\u3002
- \u6709\u5173 Magisk \u5b57\u4f53\u6a21\u5757\u7b49\u624b\u673a\u5b57\u4f53\u66ff\u6362\u6709\u5173\u7684\u95ee\u9898\uff0c\u8bf7\u79fb\u6b65\u6a21\u5757\u6a21\u677f\u7684 Issues \u91cc\u53cd\u9988\uff0c\u4e0d\u8981\u5728\u672c\u9879\u76ee\u5f00\u8bae\u9898\u3002
- \u66f4\u591a\u7248\u672c \uff08\u53ef\u80fd\u4f1a\u968f\u65f6\u53d8\u52a8\uff09 \uff1a
- \u971e\u9e5c\u6587\u6977\u5c4f\u5e55\u9605\u8bfb\u7248 / LXGW WenKai Screen\uff1a\u9002\u7528\u4e8e PC \u548c Android \u624b\u673a\u5c4f\u5e55\u663e\u793a\u4e14\u65e0\u9700\u7279\u522b\u5207\u6362\u5230\u7c97\u4f53\u3002
- \u971e\u9e5c\u6587\u6977 \u8f7b\u4fbf\u7248 / LXGW WenKai Lite\uff1a\u4e0e\u5b8c\u6574\u7248\u76f8\u6bd4\u5254\u9664\u4e00\u4e9b\u8f83\u4e0d\u5e38\u7528\u7684\u5b57\u7b26\uff0c\u4fbf\u4e8e\u5f00\u53d1\u8005\u5c06\u5b57\u4f53\u5d4c\u5165\u8f6f\u4ef6\u4e2d\u3002
- \u971e\u9e5c\u6587\u6977 GB / LXGW WenKai GB\uff1a\u8fdb\u4e00\u6b65\u8c03\u6574\u5b57\u5f62\u548c\u7b14\u5f62\uff0c\u7b26\u5408 G \u6e90\u5b57\u5f62\u89c4\u8303\u3002\u5305\u542b\u300a\u901a\u7528\u89c4\u8303\u6c49\u5b57\u8868\u300b8105 \u4e2a\u6c49\u5b57\u3002
- \u971e\u9e5c\u6587\u6977 TC / LXGW WenKai TC\uff1a\u65e7\u5b57\u5f62\u7248\u53c2\u8003\u300c\u4e00\u70b9\u5b57\u574a\u300d\u7684\u300c\u4f20\u627f\u5b57\u5f62\u6807\u51c6\u5316\u6587\u4ef6\u300d\u5bf9\u90e8\u4ef6\u8fdb\u884c\u4fee\u6539\uff0c\u9002\u7528\u4e8e\u7e41\u4f53\u4e2d\u6587\u7528\u6237\u53ca\u65e7\u5b57\u5f62\u7231\u597d\u8005\u3002
- LXGW Bright\uff1a\u4e0e Ysabeau \u7cfb\u5217\u5b57\u4f53 \u642d\u914d\u7684\u4e2d\u82f1\u6587\u5408\u5e76\u5b57\u4f53\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#lxgw-wenkai","title":"LXGW WenKai / \u971e\u9e5c\u6587\u6977","text":"
An open-source Chinese font derived from Fontworks' Klee One. \u4e00\u6b3e\u5f00\u6e90\u4e2d\u6587\u5b57\u4f53\uff0c\u57fa\u4e8e FONTWORKS \u51fa\u54c1\u5b57\u4f53 Klee One \u884d\u751f\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_1","title":"\u9879\u76ee\u7b80\u4ecb","text":"
2020 \u5e74 12 \u6708\uff0c\u65e5\u672c\u8457\u540d\u5b57\u4f53\u5382\u5546 FONTWORKS \u5728 GitHub \u4e0a\u53d1\u5e03\u4e86 7 \u6b3e\u65e5\u6587\u5b57\u4f53\uff0c\u5206\u522b\u4e3a Train\u3001Klee\u3001Stick\u3001Rock-n-Roll\u3001Reggae\u3001Rampart \u548c DotGothic16\uff0c\u6839\u636e SIL Open Font License 1.1 \u6388\u6743\u8bb8\u53ef\u5f00\u6e90\u30027 \u6b3e\u5f00\u6e90\u65e5\u6587\u5b57\u4f53\u5404\u6709\u5404\u7684\u7279\u70b9\uff0c\u800c\u8fd9 7 \u6b3e\u5b57\u4f53\u4e2d\uff0c\u5b57\u7b26\u6570\u91cf\u6700\u591a\u7684\u662f Klee\u3002
\u8fd9\u662f\u4e00\u6b3e\u6709\u7740\u65e5\u672c\u6559\u79d1\u4e66\u4f53\u98ce\u683c\u7684\u5b57\u4f53\uff0c\u517c\u6709\u4eff\u5b8b\u548c\u6977\u4f53\u7684\u7279\u70b9\uff0c\u53ef\u8bfb\u6027\u9ad8\u3002\u4e00\u4e9b DIY \u5b57\u4f53\u7231\u597d\u8005\u66fe\u5148\u540e\u7528\u4eff\u5b8b\u7b49\u5b57\u4f53\u8865\u5168\u8fd9\u6b3e\u5b57\u4f53\uff0c\u4f5c\u4e3a\u624b\u673a\u7cfb\u7edf\u7684\u7f8e\u5316\u5b57\u4f53\u79fb\u690d\u5728 iOS\u3001Android \u7b49\u624b\u673a\u7cfb\u7edf\u4e2d\uff0c\u53d7\u5230\u5f88\u591a\u73a9\u673a\u53d1\u70e7\u53cb\u7684\u6b22\u8fce\u3002\u4e0d\u8fc7\u8fd9\u6837\u8865\u5168\u7684\u5b57\u4f53\u6709\u4e00\u4e9b\u4e0d\u8db3\u4e4b\u5904\u3002 \u7b2c\u4e00\uff0c\u539f\u6709\u5b57\u4f53\u548c\u540e\u8865\u5b57\u4f53\u4e4b\u95f4\u6709\u7740\u4e00\u5b9a\u7684\u5dee\u5f02\uff0c\u81f4\u4f7f\u4e00\u4e9b\u4e0d\u540c\u7684\u6587\u5b57\uff08\u5982 Klee \u539f\u6709\u6c49\u5b57\u4e0e\u540e\u8865\u7b80\u4f53\u5b57\uff09\u6df7\u6392\u4e4b\u540e\u4f1a\u6709\u4e00\u5b9a\u7684\u8fdd\u548c\u611f\u3002 \u7b2c\u4e8c\uff0c\u7531\u4e8e\u8865\u5b57\u6240\u7528\u7684\u5b57\u4f53\u4e3a\u5546\u4e1a\u7248\u6743\u5b57\u4f53\uff0c\u8865\u5168\u4e4b\u540e\u4e0d\u53ef\u7528\u4e8e\u5546\u4e1a\u7528\u9014\uff0c\u8fd8\u4f1a\u6709\u4fb5\u6743\u7684\u98ce\u9669\u3002\u6b64\u5916\uff0c\u76ee\u524d\u73b0\u6709\u7684\u5f00\u6e90\u4e2d\u6587\u5b57\u5e93\u91cc\uff0c\u6977\u4f53\u7c7b\u5be5\u5be5\u65e0\u51e0\uff0c\u4eff\u5b8b\u7c7b\u5219\u51e0\u4e4e\u6ca1\u6709\u3002
\u9274\u4e8e\u6b64\uff0c\u4e5f\u4e3a\u4e86\u4e30\u5bcc\u5f00\u6e90\u4e2d\u6587\u5b57\u4f53\u4e2d\u7684\u6977\u4f53\u95e8\u7c7b\uff0c2021 \u5e74 1 \u6708 20 \u65e5\u8d77\uff0c\u672c\u4eba\u5f00\u59cb\u4e86\u4e3a Klee One \u8fd9\u4e00\u9ad8\u8d28\u91cf\u7684\u65e5\u6587\u5f00\u6e90\u5b57\u4f53\u8865\u5168\u7b80\u7e41\u5e38\u7528\u5b57\u7684\u5c1d\u8bd5\u3002\u56e0\u8be5\u5b57\u4f53\u5177\u6709\u4e00\u5b9a\u7684\u300c\u6587\u827a\u6c14\u606f\u300d\uff0c\u547d\u540d \u300c\u971e\u9e5c\u6587\u6977\u300d\uff08\u5176\u5b9e\u5f53\u521d\u662f\u611f\u89c9\u8fd9\u6b3e\u5b57\u4f53\u9002\u5408\u6b63\u6587\u9605\u8bfb\u5b9a\u540d\u300c\u6587\u6977\u300d\uff0c\u540e\u6765\u53d1\u73b0\u8fd9\u6b3e\u5b57\u4f53\u53ef\u80fd\u5e76\u4e0d\u592a\u9002\u5408\u5927\u6bb5\u6b63\u6587\u6392\u7248\uff0c\u76f8\u6bd4\u4e4b\u4e0b\u66f4\u52a0\u9002\u5408\u8bd7\u8bcd\u4e4b\u7c7b\u7684\u4e2d\u7b49\u957f\u5ea6\u6587\u672c\u6392\u7248\uff0c\u6216\u8005\u6ce8\u91ca\u6392\u7248\uff09\u3002\u7531\u4e8e Klee One \u5b57\u4f53\u7684 Regular \u5b57\u91cd\u592a\u7ec6\u4e0d\u592a\u9002\u5408\u9605\u8bfb\uff0c\u9009\u53d6\u539f\u5b57\u4f53 SemiBold \u5b57\u91cd\u4f5c\u4e3a Regular \u5b57\u91cd\u3002\u7ecf\u8fc7\u957f\u65f6\u95f4\u7684\u79ef\u7d2f\uff0c\u76ee\u524d\u5df2\u53d1\u5c55\u6210\u7b80\u7e41\u65e5\u97e9\u5747\u652f\u6301\u7684 3 \u5b57\u91cd\u5b57\u4f53\u5bb6\u65cf \uff08\u867d\u7136\u62d9\u52a3\u7c97\u7cd9\u4e86\u70b9\uff09 \u3002
\u6709\u5173\u8865\u5b57\u8fc7\u7a0b\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u672c\u4eba GitHub.io \u535a\u5ba2\u91cc\u7684\u6587\u7ae0\uff1a\u300a\u4e3a Klee \u8bd5\u5236\u7b80\u5316\u5b57\u300b\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_2","title":"\u5b57\u4f53\u9884\u89c8","text":"
\u5386\u53f2\u7248\u672c\u7684 Release\uff0c\u8bf7\u5728 Release \u9875\u9762\u67e5\u770b\u3002\u6587\u5b57\u7248\u672c\u7684\u66f4\u65b0\u8bb0\u5f55 HISTORY.MD
\u4e0d\u518d\u7ef4\u62a4\uff0c\u656c\u8bf7\u8c05\u89e3\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_3","title":"\u8865\u5b57\u8ba1\u5212","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_4","title":"\u4e3b\u8981\u6c49\u5b57\u90e8\u5206","text":"
\u8bf7\u53c2\u9605\u300c\u971e\u9e5c\u6587\u6977 \u8f7b\u4fbf\u7248\u300d\u52a0\u5b57\u8ba1\u5212\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_5","title":"\u5176\u4ed6\u90e8\u5206","text":"
- \u8865\u5b8c CJK \u7edf\u4e00\u6c49\u5b57\u57fa\u672c\u533a 20992 \u4e2a\u6c49\u5b57\uff08\u7b80\u7e41\uff09 \uff08\u76ee\u524d\u5b8c\u6574\u7248\u6709 6857 \u4e2a\u5b57\u5f62\u7531 zi2zi \u6df1\u5ea6\u5b66\u4e60\u751f\u6210\uff0c\u5b57\u5f62\u8f83\u7c97\u7cd9\u3002\uff09 \uff1b
- \u8865\u5168\u5e38\u7528\u8c1a\u6587\uff08\u97e9\u8bed/\u671d\u9c9c\u8bed\uff09\u97f3\u8282 2367 \u4e2a\u3002 \uff08\u505a\u5f97\u6bd4\u8f83\u62d9\u52a3\u3002Lite \u7248\u4e0d\u5305\u542b\u3002\uff09
\u70b9\u51fb\u6b64\u5904\u67e5\u770b\u540e\u7eed\u52a0\u5b57\u53ca\u8c03\u6574\u8ba1\u5212\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_6","title":"\u83b7\u53d6\u5b57\u4f53","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#i","title":"\u2170. \u76f4\u63a5\u4e0b\u8f7d","text":"
- \u8fdb\u5165 Release \u754c\u9762\u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684 TTF \u683c\u5f0f\u6587\u4ef6\uff0c\u6216\u5728\u672c\u4ed3\u5e93
fonts/TTF
\u6587\u4ef6\u5939\u4e2d\u4e0b\u8f7d\u3002 - \u5728 Gitee \u5b98\u65b9\u955c\u50cf\u4ed3\u5e93
fonts/TTF
\u6587\u4ef6\u5939\u4e2d\u4e0b\u8f7d\u3002 - \u8fdb\u5165 \u732b\u5543\u7f51\u3001Zfont.cn\u3001\u81ea\u7531\u5b57\u4f53 \u8fdb\u884c\u4e0b\u8f7d\u3002GitHub \u9879\u76ee\u66f4\u65b0\u540e\uff0c\u4f1a\u8054\u7cfb\u7ad9\u957f\u8fdb\u884c\u66f4\u65b0\uff0c\u66f4\u65b0\u4f1a\u7a0d\u665a\u4e9b\u3002 \u6ce8\u610f\uff1a \u5176\u5b83\u6536\u5f55\u514d\u8d39\u5546\u7528\u5b57\u4f53\u7684\u7f51\u7ad9\u4e0a\u53ef\u80fd\u4e5f\u6536\u5f55\u4e86\u672c\u5b57\u4f53\uff0c\u4f46\u53ef\u80fd\u4e0d\u662f\u6700\u65b0\u7248\u3002
- \u6c38\u7855\uff25\u76d8\u3001\u84dd\u594f\u4e91\uff08\u5bc6\u7801\uff1a8ppk\uff09 \u4f1a\u5728 GitHub \u9879\u76ee\u66f4\u65b0\u540e 72 \u5c0f\u65f6\u4e4b\u5185\u66f4\u65b0\u3002
- \u5982\u679c\u60a8\u4f7f\u7528 macOS\uff0c\u5df2\u7ecf\u5b89\u88c5\u8fc7 Homebrew\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u8f93\u5165\u547d\u4ee4\uff1a
brew tap homebrew/cask-fonts && brew install font-lxgw-wenkai
\u6765\u5b89\u88c5\u672c\u5b57\u4f53\u3002 - \u5982\u679c\u60a8\u4f7f\u7528 Windows\uff0c\u5df2\u7ecf\u5b89\u88c5\u8fc7 Scoop\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u8f93\u5165\u547d\u4ee4\uff1a
scoop bucket add nerd-fonts && scoop install LXGWWenKai
\u6216\u8005 scoop bucket add nerd-fonts && scoop install LXGWWenKaiMono
\u6765\u5b89\u88c5\u672c\u5b57\u4f53\u3002\u4ea6\u53ef\u67e5\u770b\u5fae\u8f6f\u5b98\u65b9\u6559\u7a0b\uff1a\u5982\u4f55\u5728 Windows \u4e2d\u5b89\u88c5\u6216\u5220\u9664\u5b57\u4f53\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#ii","title":"\u2171. \u4ece\u6e90\u4ee3\u7801\u751f\u6210","text":"
\u8bf7\u8fd0\u884c ./sources/build.bat
\u6216 ./sources/build.sh
\u3002\u9700\u8981\u5b89\u88c5 fontmake
\uff1apip3 install fontmake
\u548c fontTools
\uff1apip3 install fonttools
\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_7","title":"\u6ce8\u610f\u4e8b\u9879","text":"
- \u622a\u81f3\u76ee\u524d\uff0c\u5b8c\u6574\u7248\u672c\u5b57\u4f53\u542b\u6709\u5168\u90e8 CJK \u57fa\u672c\u533a\u6c49\u5b57\uff0c\u4ee5\u53ca\u96f6\u661f\u6269\u5c55 A~G \u533a\u6c49\u5b57\u3002 \u5982\u6709\u8865\u5b57\u9700\u6c42\uff0c\u8bf7\u5728 Issue #33 \u63d0\u51fa\uff0c\u4e0d\u8981\u53e6\u5f00 Issue\uff0c\u4ee5\u4fbf\u4e8e\u6574\u7406\u3002
- \u672c\u4eba\u5e76\u4e0d\u662f\u4e13\u4e1a\u7684\u8bbe\u8ba1\u5e08\uff0c\u5e76\u672a\u8003\u8651\u8bbe\u8ba1\u7f8e\u611f\uff0c\u6240\u4ee5\u770b\u8d77\u6765\u53ef\u80fd\u7565\u4e11\uff0c\u8865\u8fdb\u53bb\u7684\u5b57\u4e0e\u539f\u7248\u53ef\u80fd\u7565\u6709\u8fdd\u548c\u611f\uff0c\u4e14\u5728 Bold \u5b57\u91cd\u4e2d\u90e8\u5206\u5b57\u7684\u8f6e\u5ed3\u66f2\u7ebf\u4f1a\u6709\u6bdb\u523a\uff0cLight \u5b57\u91cd\u4e2d\u90e8\u5206\u5b57\u7684\u8f6e\u5ed3\u4f1a\u5b58\u5728\u98de\u70b9\uff1b\u6b64\u5916\u7531\u4e8e\u65f6\u95f4\u4ed3\u4fc3\uff0c\u5e76\u6ca1\u6709\u591a\u4f59\u7684\u65f6\u95f4\u7ec6\u4fee\uff0c\u90e8\u5206\u5b57\u7684\u90e8\u4ef6\u62fc\u63a5\u4f1a\u5f88\u751f\u786c\u3002\u5982\u6709\u5b57\u5f62\u4f18\u5316\u5efa\u8bae\uff0c\u8bf7\u5728 Issue #14 \u63d0\u51fa\uff0c\u4e0d\u8981\u53e6\u5f00 Issue\uff0c\u4ee5\u4fbf\u4e8e\u6574\u7406\u3002 \uff08\u4ee5\u4e0a\u4e24\u4e2a issue \u5747\u5df2\u52a0\u4e0a long term \u6807\u7b7e\uff0c\u4e14\u5747\u5df2\u5728 Issues \u9875\u9762\u7f6e\u9876\u3002\uff09
- \u82e5\u9700\u8981\u5728\u7f51\u7ad9\u4e0a\u4f7f\u7528\u8fd9\u6b3e\u5b57\u4f53\uff0c\u8bf7\u53c2\u9605 Issue #24\u3002
- \u5bf9\u4e8e\u642d\u914d\u7684\u897f\u6587\u5b57\u4f53\uff0c\u4e2a\u4eba\u63a8\u8350 Ysabeau \u7cfb\u5217\u5b57\u4f53\u3002\u53e6\u6709 Ysabeau Office \u4e0e\u971e\u9e5c\u6587\u6977\u8f7b\u4fbf\u7248\u7684\u5408\u5e76\u5b57\u4f53 LXGW Bright\uff0c\u91c7\u7528 \u5b57\u4f53\u5408\u5e76\u8865\u5168\u5de5\u5177 \u5c06\u4e24\u6b3e\u5b57\u4f53\u5408\u5e76\u800c\u6210\uff0c\u63d0\u4f9b TTF\u3001OTF\u3001WOFF\u3001WOFF2 \u56db\u79cd\u683c\u5f0f\u3002
- \u8be5\u5b57\u4f53\u7684\u66f4\u591a\u7248\u672c \uff08\u53ef\u80fd\u4f1a\u968f\u65f6\u53d8\u52a8\uff09
- \u971e\u9e5c\u6587\u6977\u5c4f\u5e55\u9605\u8bfb\u7248 / LXGW WenKai Screen \u7531\u4e8e\u539f\u7248\u300c\u971e\u9e5c\u6587\u6977\u300dRegular \u5b57\u91cd\u5728 PC \u548c Android \u5c4f\u5e55\u4e0a\u663e\u793a\u8f83\u7ec6\uff0c\u800c Bold \u5b57\u91cd\u9700\u8981\u5728\u7c97\u4f53\u6a21\u5f0f\u4e0b\u624d\u80fd\u8c03\u7528\uff0c\u7279\u5236\u4f5c\u4ee5 Bold \u5b57\u91cd\u4e3a\u57fa\u7840\u7684\uff0c\u52a0\u7c97\u540e\u7684\u300c\u971e\u9e5c\u6587\u6977\u300d\u4e0e Windows \u9ed8\u8ba4\u82f1\u6587\u5b57\u4f53 Segoe UI Regular \u7c97\u7ec6\u76f8\u5f53\uff0cPC \u548c Android \u624b\u673a\u5c4f\u5e55\u9605\u8bfb\u66f4\u52a0\u8212\u9002\uff0c\u65e0\u9700\u7279\u522b\u5207\u6362\u5230\u7c97\u4f53\u6a21\u5f0f\u3002
- \u971e\u9e5c\u6587\u6977 \u8f7b\u4fbf\u7248 / LXGW WenKai Lite\uff1a\u5254\u9664 v1.100 \u7248\u672c\u589e\u8865\u7684\u4e00\u4e9b\u8f83\u4e0d\u5e38\u7528\u7684\u6c49\u5b57\uff0c\u4fbf\u4e8e\u5f00\u53d1\u8005\u5c06\u5b57\u4f53\u5d4c\u5165\u8f6f\u4ef6\u4e2d\u3002\u82e5\u5b8c\u6574\u7248\u6709\u5b57\u5f62\u4f18\u5316\u6216\u7279\u6027\u66f4\u65b0\uff0c\u7cbe\u7b80\u7248\u4e5f\u5c06\u4f1a\u8ddf\u8fdb\u3002\u7cbe\u7b80\u7248\u4e0d\u5305\u542b\u8c1a\u6587\u3002
- \u971e\u9e5c\u6587\u6977 GB / LXGW WenKai GB\uff1a\u5728\u6587\u6977\u57fa\u7840\u4e0a\u8fdb\u4e00\u6b65\u8c03\u6574\u5b57\u5f62\u548c\u7b14\u5f62\uff0c\u7b26\u5408 G \u6e90\u5b57\u5f62\u89c4\u8303\u3002\u5305\u542b\u300a\u901a\u7528\u89c4\u8303\u6c49\u5b57\u8868\u300b8105 \u4e2a\u6c49\u5b57\u3002\u53e6\u6709\u4e0e\u300c\u82ab\u837d\u300d\u7b49\u540c\u6e90\u5b57\u4f53\u5408\u5e76\u7684\u300c\u7f1d\u5408\u6977\u300d\uff0c\u53ca\u4f7f\u7528\u672c\u9879\u76ee\u5b57\u4f53\u8865\u5168\u7684 GB \u878d\u5408\u7248\u3002
- \u971e\u9e5c\u6587\u6977 TC / LXGW WenKai TC\uff1a\u4f9b\u7e41\u4f53\u4e2d\u6587\u7528\u6237\u548c\u65e7\u5b57\u5f62\u7231\u597d\u8005\u4f7f\u7528\uff0c\u57fa\u4e8e\u8f7b\u4fbf\u7248\u5236\u4f5c\uff0c\u91c7\u7528\u65e7\u5b57\u5f62\u5199\u6cd5\uff0c\u4e3b\u8981\u91c7\u7528 Klee One \u7684\u9690\u85cf\u5b57\u5f62\uff0c\u90e8\u5206\u90e8\u4ef6\u624b\u52a8\u4fee\u6539 \uff08\u5927\u90e8\u5206\u90e8\u4ef6\u53c2\u8003\u4e00\u70b9\u5b57\u574a\u300c\u4f20\u627f\u5b57\u5f62\u6807\u51c6\u5316\u6587\u4ef6\u300d\uff0c\u501f\u52a9\u300c\u6c49\u6587\u535a\u58eb\u300d\u300c\u56fd\u5b66\u8ff7\u300d\u300c\u5b57\u7edf\u7f51\u300d \u7b49\u5de5\u5177\u6309\u90e8\u4ef6\u67e5\u5b57\uff0c\u5bf9\u5b57\u5f62\u8fdb\u884c\u4fee\u6539\uff09\u3002\u6b64\u5916\u5df2\u6709\u57fa\u4e8e Klee One \u6539\u9020\u7684\u7e41\u4f53\u4e2d\u6587\u5b57\u4f53 \u82ab\u837d / Iansui\uff0c\u91c7\u7528\u53f0\u6e7e\u5730\u533a\u7684\u6559\u80b2\u6807\u51c6\u5b57\u5f62\uff1b\u53e6\u6709\u91c7\u7528\u9999\u6e2f\u5730\u533a\u5b57\u5f62\u6807\u51c6\u7684 \u82ab\u831c\u96c5\u6977 / JyunsaiKaai\u3002
- \u672c\u9879\u76ee\u4e3a\u5b57\u4f53\u9879\u76ee\uff0c\u6709\u5173 Magisk \u5b57\u4f53\u6a21\u5757\u7b49\u624b\u673a\u5b57\u4f53\u66ff\u6362\u6709\u5173\u7684\u95ee\u9898\uff0c\u8bf7\u79fb\u6b65\u6a21\u5757\u6a21\u677f\u7684 Issues \u91cc\u53cd\u9988\uff0c\u4e0d\u8981\u5728\u672c\u9879\u76ee\u5f00\u8bae\u9898\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_8","title":"\u6388\u6743\u4fe1\u606f","text":"
\u672c\u5b57\u4f53\u662f\u57fa\u4e8e SIL Open Font License 1.1 \u6539\u9020\u7684 FONTWORKS \u5f00\u53d1\u5e76\u53d1\u5e03\u7684 Klee \u5f00\u6e90\u9879\u76ee\u3002Klee \u662f FONTWORKS \u7684\u5546\u6807\u3002
\u732b\u5543\u7f51\u63d0\u4f9b SIL Open Font License 1.1 \u975e\u5b98\u65b9\u7b80\u4f53\u4e2d\u6587\u8bd1\u672c\u4fbf\u4e8e\u7406\u89e3\uff0c\u4ec5\u4f9b\u53c2\u8003\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_9","title":"\u8bb8\u53ef","text":"
- \u8fd9\u6b3e\u5b57\u4f53\u65e0\u8bba\u662f\u4e2a\u4eba\u8fd8\u662f\u4f01\u4e1a\u90fd\u53ef\u4ee5\u81ea\u7531\u5546\u7528\uff0c\u65e0\u9700\u4ed8\u8d39\uff0c\u4e5f\u65e0\u9700\u77e5\u4f1a\u6216\u8005\u6807\u660e\u539f\u4f5c\u8005\u3002 \uff08\u4f46\u5982\u679c\u544a\u77e5\uff0c\u6211\u4f1a\u5f88\u611f\u6fc0\u3002\uff09
- \u8fd9\u6b3e\u5b57\u4f53\u53ef\u4ee5\u81ea\u7531\u4f20\u64ad\u3001\u5206\u4eab\uff0c\u6216\u8005\u5c06\u5b57\u4f53\u5b89\u88c5\u4e8e\u7cfb\u7edf\u3001\u8f6f\u4ef6\u6216APP\u4e2d\u4e5f\u662f\u5141\u8bb8\u7684\uff0c\u53ef\u4ee5\u4e0e\u4efb\u4f55\u8f6f\u4ef6\u6346\u7ed1\u518d\u5206\u53d1\u4ee5\u53ca\uff0f\u6216\u4e00\u5e76\u9500\u552e\u3002
- \u8fd9\u6b3e\u5b57\u4f53\u53ef\u4ee5\u81ea\u7531\u4fee\u6539\u3001\u6539\u9020\uff0c\u5236\u4f5c\u884d\u751f\u5b57\u4f53\u3002\u4fee\u6539\u6216\u6539\u9020\u540e\u7684\u5b57\u4f53\u4e5f\u5fc5\u987b\u540c\u6837\u4ee5 SIL OFL \u516c\u5f00\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_10","title":"\u9650\u5236","text":"
- \u5728\u5236\u4f5c\u884d\u751f\u5b57\u4f53\u65f6\uff0c\u5b57\u4f53\u540d\u79f0\u4e0d\u53ef\u4f7f\u7528\u539f\u6709\u5b57\u4f53\u7684\u300c\u4fdd\u7559\u540d\u79f0\u300d\u3002\u672c\u5b57\u4f53\u4fdd\u7559\u540d\u79f0\u300c\u971e\u9e5c\u300d\u300cLXGW\u300d\uff0c\u57fa\u4e8e\u672c\u5b57\u4f53\u4e8c\u6b21\u884d\u751f\u7684\u5b57\u4f53\uff0c\u540d\u79f0\u4e0d\u53ef\u51fa\u73b0\u300c\u971e\u9e5c\u300d\u6216\u300cLXGW\u300d\u5b57\u6837\uff1b\u800c\u5728\u6ca1\u6709\u5bf9\u5b57\u4f53\u6e90\u4ee3\u7801\u8fdb\u884c\u4fee\u6539\u7684\u60c5\u51b5\u4e0b\uff0c\u91cd\u65b0\u7f16\u8bd1\u51fa\u6765\u7684\u5b57\u4f53\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f7f\u7528\u672c\u5b57\u4f53\u7684\u4fdd\u7559\u540d\u79f0\u300c\u971e\u9e5c\u300d\u300cLXGW\u300d\u3002
- \u6839\u636e SIL Open Font License 1.1 \u8bb8\u53ef\u4e0e\u6761\u4ef6\u4e2d \u7b2c\u4e00\u6761\u7684\u89c4\u5b9a\uff0c \u7981\u6b62\u5355\u72ec\u51fa\u552e\u5b57\u4f53\u6587\u4ef6(OTF/TTF\u6587\u4ef6)\u7684\u884c\u4e3a\u3002
- \u8be5\u5b57\u4f53\u4e0d\u53ef\u5728 SIL Open Font License 1.1 \u4ee5\u5916\u7684\u6388\u6743\u8bb8\u53ef\u4e0b\u53d1\u884c\u3002
\u4ee5\u4e0a\u662f\u6458\u5f55\u7684\u90e8\u5206\u5b57\u4f53\u5b98\u65b9\u4ecb\u7ecd\u6587\u6863
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#mkdocs","title":"\u57fa\u4e8eMkdocs\u7684\u7f51\u7ad9\u5b57\u4f53\u7f8e\u5316\u7528\u6cd5","text":"
\u5728mkdocs.yml\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9
extra_css:\n - https://static.zeoseven.com/zsft/292/main/result.css\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-lite-webfont@1.1.0/style.css\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-tc-webfont@1.0.0/style.css\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css\n
\u7136\u540e\u5728extra.css\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9
@import url('https://static.zeoseven.com/zsft/292/main/result.css');\n\nbody {\nfont-family: \"LXGW WenKai\";\nfont-weight: normal;\n}\n\n\n/* button.md-top {\n font-family: LXGW WenKai;\n font-size: 16px;\n font-weight: lighter;\n} */\n
\u4e0d\u61c2extra_css\u7684\u7528\u6cd5\u7684\u53ef\u4ee5\u770b\u4e00\u4e0b\u6211\u5199\u7684extra_css\u90e8\u5206\u6559\u7a0b
Tip
\u5207\u6362\u5b57\u4f53\u540e\u53ef\u80fd\u8fd4\u56de\u9876\u90e8\u6309\u94ae\u4f1a\u5728\u4e2a\u522b\u6d4f\u89c8\u5668\u663e\u793a\u5f02\u5e38 \u5efa\u8bae\u5728extra.css\u91cc\u52a0\u5165
button.md-top {\n font-family: LXGW WenKai; /* \u4fee\u6539\u5b57\u4f53 */\n font-size: 16px; /* \u4fee\u6539\u5b57\u4f53\u5927\u5c0f */\n font-weight: bold; /* \u4fee\u6539\u5b57\u4f53\u7c97\u7ec6 */\n color: #518FC1; /* \u4fee\u6539\u5b57\u4f53\u989c\u8272 */\n}\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkpdf/","title":"\u5d4c\u5165PDF","text":"
\u5d4c\u5165PDF
\u5d4c\u5165PDF\u4ee3\u7801 \uff0c\u6ce8\u610fPDF\u7684\u76f8\u5bf9\u5730\u5740
<iframe src=\"../\u4e2a\u4eba\u7b80\u5386.pdf (\u76f8\u5bf9\u5730\u5740)\" width=\"100%\" height=\"800px\" style=\"border: 1px solid #ccc; overflow: auto;\"></iframe>\n
\u6211\u7684\u5b8c\u6574\u4ee3\u7801\uff1a
<div class=\"grid cards\" markdown>\n\n- :octicons-bookmark-16:{ .lg .middle } __\u4e2a\u4eba\u7b80\u5386__\n\n ---\n\n <iframe src=\"../\u4e2a\u4eba\u7b80\u5386.pdf\" width=\"100%\" height=\"800px\" style=\"border: 1px solid #ccc; overflow: auto;\">\n </iframe>\n\n\n</div>\n
\u5e0c\u671b\u5bf9\u4f60\u6709\u5e2e\u52a9
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/shubiao/","title":"JS\u5b9e\u73b0\u9f20\u6807\u6837\u5f0f","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u8be5\u6587\u4ecb\u7ecd\u4e86\u901a\u8fc7JavaScript\u548cCSS\u81ea\u5b9a\u4e49\u7f51\u9875\u9f20\u6807\u6837\u5f0f\u7684\u5b9e\u73b0\u65b9\u6cd5\uff0c\u91cd\u70b9\u8bf4\u660e\u4e86\u5173\u952e\u53c2\u6570\u8bbe\u7f6e\uff0c\u5305\u62ec\u9f20\u6807\u5c3a\u5bf8\u3001\u989c\u8272\uff08\u652f\u6301RGB\u503c\u548c\u989c\u8272\u540d\u79f0\uff09\u4ee5\u53ca\u8ddf\u968f\u5706\u5f62\u7684\u989c\u8272\u8c03\u6574\u3002\u63d0\u4f9b\u4e86\u5177\u4f53\u7684\u4ee3\u7801\u793a\u4f8b\uff0c\u5e76\u63d0\u793a\u9700\u5728mkdocs.yml\u4e2d\u5f15\u5165\u76f8\u5173\u6587\u4ef6\u3002\u9002\u7528\u4e8e\u9700\u8981\u4e2a\u6027\u5316\u9f20\u6807\u4ea4\u4e92\u6548\u679c\u7684\u7f51\u9875\u5f00\u53d1\u573a\u666f\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a129 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a114
\u4e0d\u5efa\u8bae\u66f4\u6539\uff0c\u56e0\u4e3a\u9ed8\u8ba4\u5c31\u662f\u6700\u7b80\u6d01
\u5728docs/javascripts/extra.js
\u4e0b\u590d\u5236\u7c98\u8d34\uff1a
var CURSOR;\n\nMath.lerp = (a, b, n) => (1 - n) * a + n * b;\n\nconst getStyle = (el, attr) => {\n try {\n return window.getComputedStyle\n ? window.getComputedStyle(el)[attr]\n : el.currentStyle[attr];\n } catch (e) {}\n return \"\";\n};\n\nclass Cursor {\n constructor() {\n this.pos = {curr: null, prev: null};\n this.pt = [];\n this.create();\n this.init();\n this.render();\n }\n\n move(left, top) {\n this.cursor.style[\"left\"] = `${left}px`;\n this.cursor.style[\"top\"] = `${top}px`;\n }\n\n create() {\n if (!this.cursor) {\n this.cursor = document.createElement(\"div\");\n this.cursor.id = \"cursor\";\n this.cursor.classList.add(\"hidden\");\n document.body.append(this.cursor);\n }\n\n var el = document.getElementsByTagName('*');\n for (let i = 0; i < el.length; i++)\n if (getStyle(el[i], \"cursor\") == \"pointer\")\n this.pt.push(el[i].outerHTML);\n\n document.body.appendChild((this.scr = document.createElement(\"style\")));\n // \u8fd9\u91cc\u6539\u53d8\u9f20\u6807\u6307\u9488\u7684\u989c\u8272 \u7531svg\u751f\u6210\n this.scr.innerHTML = `* {cursor: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='8px' height='8px'><circle cx='4' cy='4' r='4' opacity='.5'/></svg>\") 4 4, auto}`;\n }\n\n refresh() {\n this.scr.remove();\n this.cursor.classList.remove(\"hover\");\n this.cursor.classList.remove(\"active\");\n this.pos = {curr: null, prev: null};\n this.pt = [];\n\n this.create();\n this.init();\n this.render();\n }\n\n init() {\n document.onmouseover = e => this.pt.includes(e.target.outerHTML) && this.cursor.classList.add(\"hover\");\n document.onmouseout = e => this.pt.includes(e.target.outerHTML) && this.cursor.classList.remove(\"hover\");\n document.onmousemove = e => {(this.pos.curr == null) && this.move(e.clientX - 8, e.clientY - 8); this.pos.curr = {x: e.clientX - 8, y: e.clientY - 8}; this.cursor.classList.remove(\"hidden\");};\n document.onmouseenter = e => this.cursor.classList.remove(\"hidden\");\n document.onmouseleave = e => this.cursor.classList.add(\"hidden\");\n document.onmousedown = e => this.cursor.classList.add(\"active\");\n document.onmouseup = e => this.cursor.classList.remove(\"active\");\n }\n\n render() {\n if (this.pos.prev) {\n this.pos.prev.x = Math.lerp(this.pos.prev.x, this.pos.curr.x, 0.15);\n this.pos.prev.y = Math.lerp(this.pos.prev.y, this.pos.curr.y, 0.15);\n this.move(this.pos.prev.x, this.pos.prev.y);\n } else {\n this.pos.prev = this.pos.curr;\n }\n requestAnimationFrame(() => this.render());\n }\n}\n\n(() => {\n CURSOR = new Cursor();\n // \u9700\u8981\u91cd\u65b0\u83b7\u53d6\u5217\u8868\u65f6\uff0c\u4f7f\u7528 CURSOR.refresh()\n})();\n
\u5176\u4e2d\u6bd4\u8f83\u91cd\u8981\u7684\u53c2\u6570\u5c31\u662f\u9f20\u6807\u7684\u5c3a\u5bf8\u548c\u989c\u8272\uff0c\u5df2\u7ecf\u5728\u4e0a\u56fe\u4e2d\u6807\u51fa\uff0c\u76ee\u524d\u53d1\u73b0\u989c\u8272\u53ea\u652f\u6301RGB\u5199\u6cd5\u548c\u56fa\u6709\u540d\u79f0\u5199\u6cd5\uff08\u4f8b\u5982red\u8fd9\u79cd\uff09\uff0c\u5176\u4ed6\u53c2\u6570\u4e5f\u53ef\u4ee5\u81ea\u884c\u6478\u7d22\uff1a
* {cursor: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='8px' height='8px'><circle cx='4' cy='4' r='4' opacity='1.0' fill='rgb(57, 197, 187)'/></svg>\") 4 4, auto}`\n
\u5728docs/stylesheets/extra.css\u6dfb\u52a0\u5982\u4e0b\u4ee3\u7801\uff1a
/* \u9f20\u6807\u6837\u5f0f */\n#cursor {\n position: fixed;\n width: 16px;\n height: 16px;\n /* \u8fd9\u91cc\u6539\u53d8\u8ddf\u968f\u7684\u5e95\u8272 */\n background: var(--theme-color);\n border-radius: 8px;\n opacity: 0.25;\n z-index: 10086;\n pointer-events: none;\n transition: 0.2s ease-in-out;\n transition-property: background, opacity, transform;\n}\n\n#cursor.hidden {\n opacity: 0;\n}\n\n#cursor.hover {\n opacity: 0.1;\n transform: scale(2.5);\n -webkit-transform: scale(2.5);\n -moz-transform: scale(2.5);\n -ms-transform: scale(2.5);\n -o-transform: scale(2.5);\n}\n\n#cursor.active {\n opacity: 0.5;\n transform: scale(0.5);\n -webkit-transform: scale(0.5);\n -moz-transform: scale(0.5);\n -ms-transform: scale(0.5);\n -o-transform: scale(0.5);\n}\n
\u8fd9\u91cc\u6bd4\u8f83\u91cd\u8981\u7684\u53c2\u6570\u5c31\u662f\u9f20\u6807\u8ddf\u968f\u7684\u5706\u5f62\u989c\u8272\uff0c\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u559c\u597d\u8fdb\u884c\u66f4\u6539\uff1a
#cursor {\n /* \u8fd9\u91cc\u6539\u53d8\u8ddf\u968f\u7684\u5e95\u8272 */\n background: rgb(57, 197, 187);\n}\n
\u6ce8\u610f\u26a0\ufe0f
\u9700\u8981\u5728mkdocs.yml\u4e2d\u5f15\u5165js\u548ccss
extra_javascript:\n - javascripts/extra.js\n - javascripts/mathjax.js\nextra_css:\n - stylesheets/extra.css\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/time/","title":"\u4e3aMKdocs\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u8be5\u6280\u672f\u65b9\u6848\u901a\u8fc7git-revision-date-localized\u63d2\u4ef6\u4e3aMKdocs\u6587\u6863\u7cfb\u7edf\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233\u529f\u80fd\u3002\u6838\u5fc3\u5b9e\u73b0\u662f\u5728CI\u5de5\u4f5c\u6d41\u4e2d\u914d\u7f6e\u9009\u62e9\u6027\u542f\u7528\u7b56\u7565\uff0c\u65e2\u907f\u514d\u4e86\u672c\u5730\u6e32\u67d3\u65f6\u5168\u91cf\u68c0\u67e5git\u5386\u53f2\u5bfc\u81f4\u7684\u6027\u80fd\u635f\u8017\uff0c\u53c8\u80fd\u5728\u53d1\u5e03\u65f6\u51c6\u786e\u663e\u793a\u5404\u9875\u9762\u7684\u6700\u540e\u66f4\u65b0\u65f6\u95f4\u3002\u8be5\u65b9\u6cd5\u663e\u8457\u63d0\u5347\u4e86\u6587\u6863\u7cfb\u7edf\u7684\u7ef4\u62a4\u6548\u7387\uff0c\u7279\u522b\u9002\u5408\u9700\u8981\u5c55\u793a\u5185\u5bb9\u65f6\u6548\u6027\u7684\u6280\u672f\u6587\u6863\u573a\u666f\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a203 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a51
\u53c2\u8003\u65b9\u6cd5\uff1agit \u4fee\u8ba2\u65e5\u671f\u672c\u5730\u5316
\u5229\u7528git -revision-date-localized\u63d2\u4ef6\u6dfb\u52a0\u4e86\u5bf9\u6dfb\u52a0\u4e0a\u6b21\u66f4\u65b0\u65e5\u671f\u548c\u5728\u6bcf\u4e2a\u9875\u9762\u5e95\u90e8\u521b\u5efa\u6587\u6863\u7684\u652f\u6301
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/time/#_1","title":"\u5b89\u88c5","text":"
pip install mkdocs-git-revision-date-localized-plugin\n
.github/workflows/\u4e0b\u7684ci.yml\u589e\u52a0\u9ad8\u4eae\u7684\u51e0\u884c\uff1a
name: ci \non:\n push:\n branches:\n - master \n - main\npermissions:\n contents: write\njobs:\n deploy:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-python@v4\n with:\n python-version: 3.x\n - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV \n - uses: actions/cache@v3\n with:\n key: mkdocs-material-${ env.cache_id }\n path: .cache\n restore-keys: |\n mkdocs-material-\n - run: pip install mkdocs-git-revision-date-localized-plugin\n - run: pip install mkdocs-git-authors-plugin\n # - run: pip install mkdocs-rss-plugin \n - run: pip install mkdocs-material \n - run: mkdocs gh-deploy --force\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/time/#_2","title":"\u914d\u7f6e","text":"
\u7136\u540e\u5c06\u4ee5\u4e0b\u884c\u6dfb\u52a0\u5230mkdocs.yml\uff1a
plugins:\n - git-revision-date-localized:\n enable_creation_date: true\n
\u8be6\u7ec6\u7684\u914d\u7f6e\u8bf7\u770b\uff1amkdocs-git-revision-date-localized-plugin
\u53ef\u9009\u7684\u914d\u7f6e\u5f88\u591a\uff1a
plugins:\n - git-revision-date-localized:\n type: timeago #\u65f6\u95f4\u7c7b\u578b\n custom_format: \"%d. %B %Y\" # \u65f6\u95f4\u683c\u5f0f\n timezone: Europe/Amsterdam #\u65f6\u533a\n locale: en #\u9996\u9009\u8bed\u8a00\n fallback_to_build_date: false #\u8bb8\u56de\u9000\u5230git \u4e0d\u53ef\u7528\u65f6mkdocs build\u6267\u884c\u7684\u65f6\u95f4\n enable_creation_date: true #\u662f\u5426\u542f\u7528\u521b\u5efa\u65f6\u95f4\n exclude: #\u6392\u9664\u7684\u9875\u9762\n - index.md\n enabled: true #\u662f\u5426\u542f\u7528\n strict: true\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/time/#_3","title":"\u6e29\u99a8\u63d0\u793a","text":"
\u5bf9\u4e8e\u5927\u578b\u5355\u4e00\u7684\u6587\u6863\u5e93\uff0c\u6267\u884cmkdocs serve
\u540e\u7684\u6e32\u67d3\u901f\u5ea6\u660e\u663e\u53d8\u6162\uff0c\u8fd9\u662f\u56e0\u4e3a\u6bcf\u6b21\u6e32\u67d3\u90fd\u4f1a\u68c0\u67e5\u6240\u6709\u6587\u4ef6\u7684git\u5386\u53f2\u8bb0\u5f55\u3002\u5982\u679c\u60a8\u4e0d\u9700\u8981\u8fd9\u4e2a\u529f\u80fd\uff0c\u53ef\u4ee5\u901a\u8fc7\u5c06enabled
\u8bbe\u7f6e\u4e3afalse
\u6765\u7981\u7528\u5b83\u3002
\u6bd4\u8f83\u63a8\u8350\u8fd9\u79cd\u65b9\u6cd5:
- git-committers:\n enabled: !ENV [CI, false]\n
\u4fee\u6539enabled\u7684\u7b56\u7565\uff0c\u8fd9\u6837\u5c31\u4e0d\u4f1a\u6bcf\u6b21\u672c\u5730\u6e32\u67d3\u90fd\u68c0\u67e5\u6240\u6709\u6587\u4ef6\u7684git\u5386\u53f2\u8bb0\u5f55\uff0c\u6e32\u67d3\u901f\u5ea6\u4f1a\u660e\u663e\u52a0\u5feb\uff0c\u53d1\u5e03\u7f51\u7ad9\u65f6\u5019\u4f1a\u6b63\u5e38\u663e\u793a\u3002","tags":["Mkdocs"]},{"location":"blog/websitebeauty/webtalknow/","title":"\u6dfb\u52a0\u5728\u7ebf\u804a\u5929","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
Tidio\u63d0\u4f9b\u514d\u8d39\u3001\u65e0\u9700\u68af\u5b50\u7684\u5728\u7ebf\u804a\u5929\u89e3\u51b3\u65b9\u6848\uff0c\u9002\u5408\u7f51\u7ad9\u5feb\u901f\u96c6\u6210\u3002\u7528\u6237\u53ea\u9700\u6ce8\u518c\u8d26\u53f7\uff0c\u4ece\u8bbe\u7f6e\u4e2d\u83b7\u53d6\u4e13\u5c5eJavaScript\u4ee3\u7801\uff0c\u5c06\u5176\u5d4c\u5165\u7f51\u7ad9\u6307\u5b9a\u4f4d\u7f6e\u5373\u53ef\u5b8c\u6210\u90e8\u7f72\u3002\u8be5\u5de5\u5177\u5b89\u88c5\u7b80\u4fbf\uff0c\u4ec5\u9700\u5355\u884c\u4ee3\u7801\u5373\u53ef\u5b9e\u73b0\u5b9e\u65f6\u804a\u5929\u529f\u80fd\uff0c\u9002\u7528\u4e8e\u5404\u7c7b\u7f51\u7ad9\u63d0\u5347\u7528\u6237\u4e92\u52a8\u4f53\u9a8c\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a182 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a1
\u4ee5Tidio\u4e3a\u4f8b,Tidio\u514d\u8d39\u7248\u5df2\u7ecf\u5b8c\u5168\u591f\u7528\u4e14\u65e0\u9700\u68af\u5b50
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/webtalknow/#tidio","title":"\u8bbf\u95eeTidio\u5b98\u7f51","text":"
\u8981\u5728\u60a8\u7684\u7f51\u7ad9\u4e0a\u4f7f\u7528 javascript \u4ee3\u7801\u65b9\u6cd5\u5b89\u88c5 Tidio\uff0c\u60a8\u9700\u8981\u521b\u5efa\u4e00\u4e2a Tidio \u5e10\u6237\u3002\u8981\u521b\u5efa Tidio \u5e10\u6237\uff0c\u8bf7\u8bbf\u95ee\u6211\u4eec\u7684\u7f51\u7ad9\uff0c\u7136\u540e\u5355\u51fb \u201c\u5f00\u59cb\u201d \u6309\u94ae\u521b\u5efa\u65b0\u7684 Tidio \u5e10\u6237\u3002\u60a8\u8fd8\u53ef\u4ee5\u4f7f\u7528 \u201c\u767b\u5f55\u201d \u9009\u9879\u6765\u4f7f\u7528\u60a8\u73b0\u6709\u7684\u5e10\u6237\u3002
\u5b89\u88c5\u8fc7\u7a0b\u5f88\u7b80\u5355\uff0c\u56e0\u4e3a\u5b83\u53ea\u9700\u8981\u60a8\u5c06\u4e00\u884c\u4ee3\u7801\u7c98\u8d34\u5230\u7f51\u7ad9\u4ee3\u7801\u7684\u9002\u5f53\u4f4d\u7f6e\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/webtalknow/#_1","title":"\u627e\u5230\u5b89\u88c5\u4ee3\u7801","text":"
\u53ef\u4ee5\u524d\u5f80\u201c\u8bbe\u7f6e\u201d>\u201c\u9891\u9053\u201d>\u201c\u5b9e\u65f6\u804a\u5929\u201d> \u201c\u5b89\u88c5\u201d \u90e8\u5206\u627e\u5230\u60a8\u72ec\u7279\u7684 Tidio javascript \u4ee3\u7801\u3002\u8fd8\u5c06\u5728\u5e10\u6237\u521b\u5efa\u4e4b\u65c5\u7684\u6700\u540e\u9636\u6bb5\u770b\u5230\u4ee3\u7801\u3002 \u6bd4\u5982\uff1a
<script src=\"//code.tidio.co/6jmawe9m5wy4ahvlhub2riyrnujz7xxi.js\" async></script>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/webtalknow/#_2","title":"\u653e\u5230\u4f60\u9700\u8981\u7684\u9875\u9762\u5373\u53ef","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/","title":"\u7f51\u9875\u5706\u89d2\u5316\u8bbe\u8ba1","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86\u7f51\u9875\u5706\u89d2\u5316\u8bbe\u8ba1\u7684\u5b9e\u73b0\u65b9\u6cd5\uff0c\u91cd\u70b9\u8bb2\u89e3\u901a\u8fc7CSS\u6837\u5f0f\u5b9e\u73b0\u56fe\u7247\u548c\u8fb9\u6846\u7684\u5706\u89d2\u6548\u679c\u3002\u5177\u4f53\u5305\u62ec\u5728mkdocs.yml\u4e2d\u5f15\u5165CSS\u6587\u4ef6\u3001\u4f7f\u7528border-radius\u5c5e\u6027\u8bbe\u7f6e\u5706\u89d2\u53c2\u6570\uff0c\u4ee5\u53ca\u901a\u8fc7grid cards\u548c\u6309\u94ae\u7ec4\u4ef6\u7684\u5706\u89d2\u5316\u5e94\u7528\u793a\u4f8b\u3002\u8fd9\u4e9b\u6280\u672f\u53ef\u63d0\u5347\u7f51\u9875\u89c6\u89c9\u7f8e\u611f\uff0c\u9002\u7528\u4e8e\u6587\u6863\u7f51\u7ad9\u548cUI\u7ec4\u4ef6\u7684\u7f8e\u5316\u8bbe\u8ba1\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a66 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a213
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_1","title":"\u793a\u4f8b","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_2","title":"\u5982\u4f55\u8bbe\u8ba1","text":"
\u65b0\u5efacss\u6587\u4ef6\uff0c\u5728mkdocs.yml\u5f15\u5165css
:root {\n --admonition-border-left-width: 0.2rem;\n --base-border-radius: 0.5rem;\n}\n\n/* Change font family of filename present on top of code block. */\n/* .highlight span.filename {\n border-bottom: none;\n border-radius: var(--base-border-radius);\n display: inline;\n font-family: var(--md-code-font-family);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 5px;\n text-align: center;\n}\n.highlight span.filename + pre > code {\n border-radius: var(--base-border-radius);\n border-top-left-radius: 0;\n}\n.md-typeset pre > code {\n border-radius: var(--base-border-radius);\n} */\n\n/* Customize admonition layout */\n/* .md-typeset .admonition {\n border-width: 0px;\n border-left-width: var(--admonition-border-left-width);\n}\n\n[dir=\"ltr\"] .md-typeset blockquote {\n border-radius: 0.2rem;\n border-left-width: var(--admonition-border-left-width);\n} */\n\n/* Grid Cards */\n.md-typeset .grid.cards > ul > li {\n border-radius: var(--base-border-radius);\n}\n.md-typeset .grid.cards > ul > li:hover {\n box-shadow: 0 0 0.2rem #ffffff40;\n}\n\n/* Markdown Button */\n.md-typeset .md-button {\n border-radius: var(--base-border-radius);\n}\n\n/* Footer: Social Links */\n.md-social__link svg {\n max-height: 1rem;\n}\n\n\n/* Forms */\n.md-search__form {\n border-radius: var(--base-border-radius);\n}\n\n[data-md-toggle=\"search\"]:checked ~ .md-header .md-search__form {\n border-top-right-radius: var(--base-border-radius);\n border-top-left-radius: var(--base-border-radius);\n}\n\n[dir=\"ltr\"] .md-search__output {\n border-bottom-right-radius: var(--base-border-radius);\n border-bottom-left-radius: var(--base-border-radius);\n}\n\n/* Blog - index.md */\n/* div.md-content header {\n display: none;\n}\n\n.md-post--excerpt {\n background-color: var(--md-accent-fg-color--transparent);\n box-shadow: 0 0 0 1rem var(--md-accent-fg-color--transparent);\n border-radius: var(--base-border-radius);\n}\n\n.md-post--excerpt .md-post__header {\n justify-content: center;\n}\n\n.md-post--excerpt .md-post__content > h2,\n.md-post__action {\n text-align: center;\n} */\n\n/* Table */\n.md-typeset table:not([class]) {\n border-radius: var(--base-border-radius);\n}\n\n\n\n\n\n.carousel {\n width: 60%;\n height: 100%;\n\n border-radius: 0.4rem;\n overflow: hidden;\n position: relative;\n\n /* \u5c45\u4e2d */\n margin-left: auto;\n margin-right: auto;\n\n border: 0.075rem solid #7b7b7b7a;\n box-shadow: var(--md-shadow-z1);\n}\n\n.carousel-container {\n width: 100%;\n height: 100%;\n\n position: relative;\n left: 0;\n\n display: flex;\n\n /* \u8fc7\u6e21\u52a8\u753b 1s */\n transition: all 1s;\n}\n\n.carousel-hover {\n height: 100%;\n width: 10%;\n position: absolute;\n top: 0;\n\n /* \u5b50\u5143\u7d20\u5782\u76f4\u5c45\u4e2d */\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: center;\n}\n.carousel-hover.left {\n left: 0;\n}\n.carousel-hover.right {\n right: 0;\n}\n\n.carousel-hover button {\n background-color: var(--md-accent-fg-color);\n border-radius: 50%;\n\n cursor: pointer;\n\n opacity: 0;\n transition: opacity 0.3s;\n}\n.carousel-hover button::after {\n display: block;\n height: 1.5rem;\n width: 1.5rem;\n\n background-color: white;\n content: \"\";\n mask-position: center;\n -webkit-mask-position: center;\n}\n.carousel-hover.left button::after {\n mask-image: var(--md-tabbed-icon--prev);\n -webkit-mask-image: var(--md-tabbed-icon--prev);\n}\n.carousel-hover.right button::after {\n mask-image: var(--md-tabbed-icon--next);\n -webkit-mask-image: var(--md-tabbed-icon--next);\n}\n\n/* hover \u5916\u5c42 */\n.carousel-hover:hover button {\n opacity: 0.5;\n transition: opacity 0.3s;\n}\n/* hover \u5185\u5c42 */\n.carousel-hover button:hover {\n opacity: 0.8;\n transition: opacity 0.3s;\n}\n\n.carousel-container a {\n width: 100%;\n height: 100%;\n\n flex-shrink: 0;\n}\n\n.carousel-container img {\n width: 100%;\n height: 100%;\n\n object-fit: cover;\n display: block;\n}\n\n.carousel-bottom {\n position: absolute;\n /* \u5bbd\u5ea6\u7b49\u540c\u4e8e\u5185\u5bb9\u5bbd\u5ea6 */\n width: 100%;\n padding: 20px;\n\n bottom: 0;\n\n display: flex;\n justify-content: center;\n /* \u6307\u793a\u5668\u95f4\u8ddd */\n gap: 10px;\n\n opacity: 0;\n transition: opacity 0.3s;\n}\n.carousel-bottom:hover {\n opacity: 0.8;\n transition: opacity 0.3s;\n}\n\n.carousel-bottom .indicator {\n height: 5px;\n width: 20px;\n\n background-color: var(--md-accent-fg-color);\n\n opacity: 0.5;\n cursor: pointer;\n}\n\n.carousel:hover .bottom .indicator {\n opacity: 1;\n}\n.carousel:hover .shift .btn {\n opacity: 1;\n}\n\n@media screen and (max-width: 600px) {\n .carousel {\n width: 100%;\n }\n\n .carousel-hover button {\n opacity: 1;\n }\n}\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_3","title":"\u56fe\u7247\u5706\u89d2\u5316","text":"
extra.css\u91cc\u5f15\u5165\uff1a
img.img1 {\nborder-radius: 25px;\n\n}\n
\u5728md\u6587\u4ef6\u91cc\u4f7f\u7528\uff1a
{.img1}\n
\u6548\u679c\uff1a ","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_4","title":"\u5706\u89d2\u8fb9\u6846","text":"
\u5706\u89d2\u8fb9\u6846\u5982\u4f55\u5b9e\u73b0
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#grid-cards","title":"\u5229\u7528\u5185\u7f6e\u7684grid cards","text":"
<div class=\"grid cards\" markdown>\n\n- :simple-materialformkdocs:{ .lg .middle } __Mkdocs\u6559\u7a0b__\n\n ---\n\n - [\u5229\u7528Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHub pages](blog/Mkdocs/mkdocs1.md)\n - [Mkdocs\u90e8\u7f72\u914d\u7f6e\u8bf4\u660e(mkdocs.yml)](blog/Mkdocs/mkdocs2.md)\n - [\u5982\u4f55\u7ed9MKdocs\u6dfb\u52a0\u53cb\u94fe](blog/websitebeauty/linktech.md)\n - [\u7f51\u7ad9\u6dfb\u52a0Mkdocs\u535a\u5ba2](blog/Mkdocs/mkdocsblog.md)\n - [Blogger](blog/index.md)\n</div>\n
\u6548\u679c\uff1a
-
Mkdocs\u6559\u7a0b
\u793a\u4f8b\u6587\u5b57
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_5","title":"\u6309\u94ae","text":"
[Send Email :fontawesome-solid-paper-plane:](mailto:<wangkewen821@gmail.com>){.md-button}\n
\u6548\u679c\uff1a Send Email ","tags":["Mkdocs"]},{"location":"develop/git/","title":"Git \u5b9e\u7528\u6280\u5de7","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86Git\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u7684\u6838\u5fc3\u64cd\u4f5c\u4e0e\u5b9e\u7528\u6280\u5de7\uff0c\u6db5\u76d6\u4ed3\u5e93\u521b\u5efa\u3001\u5206\u652f\u7ba1\u7406\u3001\u51b2\u7a81\u89e3\u51b3\u7b49\u57fa\u7840\u529f\u80fd\uff0c\u5e76\u91cd\u70b9\u8bb2\u89e3\u4e86stash\u6682\u5b58\u3001rebase/merge\u7b56\u7565\u9009\u62e9\u3001cherry-pick\u7b49\u9ad8\u7ea7\u7528\u6cd5\u3002\u901a\u8fc7\u5177\u4f53\u4ee3\u7801\u793a\u4f8b\u548c\u64cd\u4f5c\u56fe\u793a\uff0c\u8be6\u7ec6\u8bf4\u660e\u4e86\u5982\u4f55\u9ad8\u6548\u5904\u7406\u4ee3\u7801\u63d0\u4ea4\u3001\u4fee\u6539\u64a4\u9500\u3001\u5386\u53f2\u8bb0\u5f55\u4fee\u6539\u7b49\u5e38\u89c1\u5f00\u53d1\u573a\u666f\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u63d0\u5347Git\u4f7f\u7528\u6548\u7387\u548c\u5de5\u4f5c\u6d41\u4f18\u5316\u80fd\u529b\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a199 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a48
Info
\u539f\u6587\u5730\u5740:Git \u5b9e\u7528\u6280\u5de7
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#git","title":"Git \u5b9e\u7528\u6280\u5de7","text":"","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#_1","title":"\u4e00\u3001\u57fa\u672c\u64cd\u4f5c","text":"","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#1-git","title":"1. \u65b0\u5efa git \u4ed3\u5e93","text":"
git init\n
git init -b main\n\ngit config --global init.defaultBranch main\n\ngit branch -m main\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#2","title":"2. \u514b\u9686\u8fdc\u7a0b\u4ed3\u5e93","text":"
git clone http://git.example.com/someone/test.git\n\ngit clone http://git.example.com/someone/test.git test\n\ngit clone http://git.example.com/someone/test.git --depth=1 -b main\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#3","title":"3. \u63d0\u4ea4\u4ee3\u7801","text":"
git add -a\n\ngit add -u\n\ngit add .\n\ngit commit\n\ngit commit -m \"first commit\"\n\ngit commit -am \"first commit\"\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#4","title":"4. \u67e5\u770b\u4ed3\u5e93\u72b6\u6001","text":"
git status\n
git status -s\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#5","title":"5. \u67e5\u770b\u63d0\u4ea4\u5386\u53f2","text":"
https://git-scm.com/docs/git-log
git log\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#6","title":"6. \u65b0\u5efa\u5206\u652f","text":"
git branch test\n\ngit checkout test\n\ngit checkout -b test\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#7","title":"7. \u5408\u5e76\u5206\u652f","text":"
git checkout main\n\ngit merge test\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#8","title":"8. \u5220\u9664\u5206\u652f","text":"
git branch -d test-not-need\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#9","title":"9. \u5408\u5e76\u51b2\u7a81","text":"
\u5f53\u4e24\u4e2a\u5206\u652f\u90fd\u5bf9\u540c\u4e00\u884c\u8fdb\u884c\u4e86\u4fee\u6539\uff0cgit \u4fbf\u4f1a\u4ea7\u751f\u51b2\u7a81\uff0c\u5e76\u6807\u8bb0\u4e3a\u672a\u5408\u5e76
\u6b64\u65f6\u5c06\u6bcf\u4e2a\u6587\u4ef6\u8fdb\u884c\u4fee\u6539\uff0c\u786e\u8ba4\u6700\u540e\u7684\u5185\u5bb9\uff0c\u4f7f\u7528 git add \u65b9\u6cd5\u6807\u8bb0\u4e3a\u51b2\u7a81\u5df2\u89e3\u51b3
git add .\\A.txt\n
\u5728\u6240\u6709\u6587\u4ef6\u7684\u51b2\u7a81\u5747\u5df2\u89e3\u51b3\u540e\uff0c\u4f7f\u7528 commit \u63d0\u4ea4\u6b64\u6b21\u4fee\u6539\u3002
git merge --abort\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#10","title":"10. \u8fdc\u7a0b\u4ed3\u5e93","text":"
git remote\n
\u9ed8\u8ba4\u5e94\u8be5\u4e3a\u7a7a
git remote add origin http://git.example.com/someone/test.git\n\ngit push origin main\n\ngit fetch --all\n\ngit fetch origin\n\ngit branch --set-upstream-to=origin/main main\n\ngit branch -u origin/main main\n
git push -u origin main\n\ngit pull\n\ngit pull origin main\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#_2","title":"\u4e8c\u3001\u5e38\u89c1\u6280\u5de7","text":"","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#1","title":"1. \u4e34\u65f6\u4fdd\u5b58\u6210\u679c","text":"
git stash\n
git stash pop\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#2-rebasemerge","title":"2. \u5408\u5e76\u5206\u652f\u7075\u6d3b\u9009\u62e9 rebase/merge","text":"
git merge test\n\ngit rebase test\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#3-cherry-pick","title":"3. cherry-pick","text":"
\u9002\u5408 hotfix
git cherry-pick 12d654f1d701cbf7cd9abb98ce84eeef460a24a7\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#4_1","title":"4. \u4fee\u6539\u4e0a\u6b21\u63d0\u4ea4","text":"
git commit --amend\n
\u4f1a\u540c\u65f6\u63d0\u4ea4\u6682\u5b58\u7684\u6587\u4ef6
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#5_1","title":"5. \u53d6\u6d88\u6587\u4ef6\u4fee\u6539","text":"
git checkout .\\C.txt\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#6_1","title":"6. \u5f03\u7528\u63d0\u4ea4","text":"
\u4fdd\u7559\u6587\u4ef6\ngit reset --soft 12d654f1d701cbf7cd9abb98ce84eeef460a24a7\n\n\u4e22\u5f03\u4fee\u6539\ngit reset --hard 12d654f1d701cbf7cd9abb98ce84eeef460a24a7\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#7_1","title":"7. \u8865\u4e01\u6587\u4ef6","text":"
git\ngit diff [file] > a.patch\ngit apply a.patch\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/lighthouse/","title":"\u5229\u7528Lighthouse\u6d4b\u8bd5\u7f51\u7ad9\u6027\u80fd","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
Lighthouse\u662f\u8c37\u6b4c\u5f00\u53d1\u7684\u7f51\u7ad9\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u53ef\u8bc4\u4f30\u9875\u9762\u52a0\u8f7d\u901f\u5ea6\u3001\u53ef\u8bbf\u95ee\u6027\u7b49\u5173\u952e\u6307\u6807\u3002\u901a\u8fc7\u6d4f\u89c8\u5668\u5f00\u53d1\u8005\u5de5\u5177\uff08F12\uff09\u5373\u53ef\u5feb\u901f\u8fd0\u884c\u6d4b\u8bd5\uff0c\u652f\u6301Chrome\u548cEdge\u3002\u8be5\u5de5\u5177\u80fd\u7cbe\u51c6\u5b9a\u4f4d\u6027\u80fd\u74f6\u9888\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u4f18\u5316\u7f51\u9875\u4f53\u9a8c\uff0c\u9002\u7528\u4e8e\u5404\u7c7b\u7f51\u7ad9\u7684\u81ea\u52a8\u5316\u6027\u80fd\u68c0\u6d4b\u4e0e\u6539\u8fdb\u3002\u6d4b\u8bd5\u7ed3\u679c\u76f4\u89c2\u5c55\u793a\u5404\u9879\u8bc4\u5206\uff0c\u4fbf\u4e8e\u9488\u5bf9\u6027\u63d0\u5347\u3002
\u53ef\u4ee5\u770b\u5230\u6211\u7684\u7f51\u7ad9\u6027\u80fd\u8fd8\u662f\u4e0d\u9519\u7684\uff0c\u5982\u679c\u4f60\u60f3\u6d4b\u8bd5\u81ea\u5df1\u7684\u7f51\u7ad9\u6027\u80fd\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u4e00\u4e0b
\u6253\u5f00\u8c37\u6b4c\u6216\u8005Edge\u6d4f\u89c8\u5668\uff0c\u6309F12\uff0c\u5728\u53f3\u4fa7\u70b9\"\u2795\"\u627e\u5230Lighthouse,\u70b9\u51fb\u5206\u6790\u9875\u9762\u8f7d\u5373\u53ef
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/vercel/","title":"\u5982\u4f55\u5c06 github pages \u8fc1\u79fb\u5230 vercel \u4e0a\u6258\u7ba1","text":"
\u5982\u4f55\u5c06 github pages \u8fc1\u79fb\u5230 vercel \u4e0a\u6258\u7ba1
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/Markdown/MWeb/","title":"Markdown\u5199\u4f5c\u5e94\u7528\u63a8\u8350","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
MWeb Pro\u662f\u4e00\u6b3e\u4e13\u4e3amacOS\u8bbe\u8ba1\u7684\u4e13\u4e1aMarkdown\u5199\u4f5c\u4e0e\u7b14\u8bb0\u5e94\u7528\uff0c\u652f\u6301GFM\u8bed\u6cd5\u6269\u5c55\uff08\u542b\u8868\u683c\u3001LaTeX\u3001\u4ee3\u7801\u5757\u7b49\uff09\u53ca\u591a\u79cd\u56fe\u8868\u5e93\uff08mermaid/PlantUML\u7b49\uff09\u3002\u63d0\u4f9b\u9ad8\u6548\u7684\u56fe\u6587\u6df7\u6392\u529f\u80fd\uff0c\u652f\u6301\u62d6\u62fd\u63d2\u5165\u56fe\u7247\u4e0e\u81ea\u5b9a\u4e49\u5bbd\u5ea6\u3002\u652f\u6301\u5bfc\u51fa\u591a\u79cd\u683c\u5f0f\uff08PDF/HTML/Epub\u7b49\uff09\u53ca\u53d1\u5e03\u5230\u4e3b\u6d41\u535a\u5ba2\u5e73\u53f0\uff0c\u96c6\u6210\u4e03\u725b\u4e91\u7b49\u56fe\u5e8a\u670d\u52a1\u3002\u5185\u7f6e\u5f3a\u5927\u7684\u6587\u6863\u7ba1\u7406\u529f\u80fd\uff0c\u652f\u6301\u5206\u7c7b\u6811\u3001\u6807\u7b7e\u4f53\u7cfb\u548c\u5feb\u901f\u641c\u7d22\uff0c\u9002\u5408\u77e5\u8bc6\u7ba1\u7406\u4e0e\u9759\u6001\u7f51\u7ad9\u751f\u6210\u3002\u539f\u751f\u4f18\u5316\u754c\u9762\uff0c\u517c\u987e\u7b80\u6d01\u6027\u4e0e\u9ad8\u6027\u80fd\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a3 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a1009 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a64
MWeb Pro \u662f\u4e00\u6b3e\u9002\u7528\u4e8emacOS\u7684\u4e13\u4e1aMarkdown\u5199\u4f5c\u3001\u7b14\u8bb0\u672c\u5e94\u7528\u8f6f\u4ef6\u3002\u559c\u6b22\u5199\u535a\u5ba2\u7684\u670b\u53cb\uff0c\u90a3\u4f60\u4e00\u5b9a\u4f1a\u9700\u8981 MWeb Pro \u8fd9\u6b3e\u8f6f\u4ef6\u3002\u4e3a\u60a8\u63d0\u4f9b\u6700\u4f73\u7684\u5199\u4f5c\u4f53\u9a8c\u3002
Markdown \u8bed\u6cd5\u652f\u6301\uff1a
\u4f7f\u7528 Github Flavored Markdown \u8bed\u6cd5\uff0c\u7b80\u79f0 GFM \u8bed\u6cd5\u3002\u652f\u6301\u8868\u683c\u3001TOC\u3001LaTeX\u3001\u4ee3\u7801\u5757\u3001\u4efb\u52a1\u5217\u8868\u3001\u811a\u6ce8\u7b49\u3002\u753b\u56fe\u5e93\u652f\u6301 mermaid, viz, echarts, plantuml, sequence, flow\u3002
\u8f85\u52a9\u529f\u80fd
\u652f\u6301\u622a\u56fe\u5e76\u7c98\u8d34\u3001\u590d\u5236\u5e76\u7c98\u8d34\u3001\u62d6\u62fd\u7b49\u65b9\u5f0f\u63d2\u5165\u56fe\u7247\u5e76\u76f4\u63a5\u663e\u793a\u5728\u7f16\u8f91\u5668\u5185\u3002\u5728\u517c\u5bb9 Markdown \u8bed\u6cd5\u7684\u60c5\u51b5\u4e0b\u652f\u6301\u8bbe\u7f6e\u56fe\u7247\u5bbd\u5ea6\u3002\u597d\u7528\u7684\u8868\u683c\u63d2\u5165\u548c LaTeX \u4e66\u5199\u8f85\u52a9\u3002
\u8f93\u51fa\u529f\u80fd
\u652f\u6301\u5bfc\u51fa\u4e3a\u56fe\u7247\u3001HTML\u3001Epub\u3001PDF\u3001RTF\u3001Docx\u3002\u652f\u6301\u53d1\u5e03\u5230 Wordpress\u3001\u5370\u8c61\u7b14\u8bb0\u3001Blogger\u3001Medium\u3001Tumblr\u7b49\u3002\u652f\u6301\u4e03\u725b\u4e91\u3001\u53c8\u62cd\u4e91\u7b49\u4ee5\u53ca\u81ea\u5b9a\u4e49\u7684\u56fe\u5e8a\u670d\u52a1\u3002
\u5f3a\u5927\u7684\u7b14\u8bb0\u529f\u80fd
\u5f3a\u5927\u7684\u6587\u6863\u5e93\u652f\u6301\u5206\u7c7b\u6811\u548c\u6807\u7b7e\u7ba1\u7406\u6587\u6863\uff0c\u6587\u6863\u53ef\u5f52\u7c7b\u4e8e\u591a\u4e2a\u5206\u7c7b\uff0c\u53ef\u4ee5\u628a\u5206\u7c7b\u6574\u4e2a\u5bfc\u51fa\u4e3a Epub\u3001PDF \u548c\u751f\u6210\u9759\u6001\u7f51\u7ad9\u3002\u975e\u5e38\u5408\u9002\u7528\u4e8e\u7b14\u8bb0\u3001\u4e2a\u4eba\u77e5\u8bc6\u6536\u96c6\u3001\u7ba1\u7406\u548c\u8f93\u51fa\u3002 \u5feb\u901f\u7b14\u8bb0\uff1a\u968f\u610f\u589e\u52a0\u7b14\u8bb0\u53ca\u56fe\u7247\u7b49\u7d20\u6750\uff0c\u652f\u6301\u4ee5\u5929\u4e3a\u5355\u4f4d\u628a\u589e\u52a0\u7684\u7d20\u6750\u7ec4\u5408\u5728\u4e00\u4e2a\u6587\u6863\u5185\uff0c\u65b9\u4fbf\u6574\u7406\u53ca\u8bb0\u5f55\u5386\u53f2\u6536\u96c6\u60c5\u51b5\u3002\u5feb\u901f\u641c\u7d22\uff1a\u76ee\u524d\u5df2\u652f\u6301\u5168\u5c40\u5feb\u6377\u952e\u8c03\u51fa\u641c\u7d22\u3002
\u4ee5\u4e0b\u6458\u81eaMWeb\u5173\u4e8eMarkdown\u7684\u4ecb\u7ecd
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mweb","title":"\u6b22\u8fce\u4f7f\u7528 MWeb","text":"
MWeb \u662f\u4e13\u4e1a\u7684 Markdown \u5199\u4f5c\u3001\u8bb0\u7b14\u8bb0\u3001\u9759\u6001\u535a\u5ba2\u751f\u6210\u8f6f\u4ef6\uff0c\u76ee\u524d\u5df2\u652f\u6301 Mac\uff0ciPad \u548c iPhone\u3002MWeb \u6709\u4ee5\u4e0b\u7279\u8272\uff1a
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_1","title":"\u8f6f\u4ef6\u672c\u8eab\uff1a","text":"
- \u4f7f\u7528\u539f\u751f\u7684 macOS \u6280\u672f\u6253\u9020\uff0c\u8ffd\u6c42\u4e0e\u7cfb\u7edf\u7684\u5b8c\u7f8e\u7ed3\u5408\u3002
- \u539f\u5219\u4e0a\uff0c\u9996\u5148\u662f\u8ffd\u6c42\u754c\u9762\u7b80\u6d01\u548c\u9ad8\u6027\u80fd\uff0c\u7136\u540e\u624d\u662f\u5f3a\u5927\u6613\u7528\uff0c\u529f\u80fd\u5168\u9762\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown","title":"Markdown \u8bed\u6cd5\uff1a","text":"
- \u4f7f\u7528 GitHub Flavored Markdown \u8bed\u6cd5\uff0c\u7b80\u79f0 GFM \u8bed\u6cd5\u3002
- \u652f\u6301\u8868\u683c\u3001TOC\u3001LaTeX\u3001\u4ee3\u7801\u5757\u3001\u4efb\u52a1\u5217\u8868\u3001\u811a\u6ce8\u7b49\u3002
- \u753b\u56fe\u5e93\u652f\u6301 mermaid, viz, ECharts, PlantUML, Sequence, Flow\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown_1","title":"Markdown \u8f85\u52a9\uff1a","text":"
- \u652f\u6301\u622a\u56fe\u5e76\u7c98\u8d34\u3001\u590d\u5236\u5e76\u7c98\u8d34\u3001\u62d6\u62fd\u7b49\u65b9\u5f0f\u63d2\u5165\u56fe\u7247\u5e76\u76f4\u63a5\u663e\u793a\u5728\u7f16\u8f91\u5668\u5185\u3002
- \u5728\u517c\u5bb9 Markdown \u8bed\u6cd5\u7684\u60c5\u51b5\u4e0b\u652f\u6301\u8bbe\u7f6e\u56fe\u7247\u5bbd\u5ea6\u3002
- \u597d\u7528\u7684\u8868\u683c\u63d2\u5165\u548c LaTeX \u4e66\u5199\u8f85\u52a9\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown_2","title":"Markdown \u8f93\u51fa\uff1a","text":"
- \u652f\u6301\u5bfc\u51fa\u4e3a\u56fe\u7247\u3001HTML\u3001Epub\u3001PDF\u3001RTF\u3001Docx\u3002
- \u652f\u6301\u53d1\u5e03\u5230 WordPress\u3001\u652f\u6301 Metaweblog API \u534f\u8bae\u7684\u670d\u52a1\u3001Wordpress.com\u3001\u5370\u8c61\u7b14\u8bb0\uff08Evernote\uff09\u3001Blogger\u3001Medium\u3001Tumblr\u3001\u8bed\u96c0\u3001Ghost\u3001\u5c11\u6570\u6d3e Matrix\u3002
- \u56fe\u7247\u4e0a\u4f20\u670d\u52a1\uff08\u56fe\u5e8a\uff09\u652f\u6301 Imgur\u3001\u4e03\u725b\u4e91\u3001\u53c8\u62cd\u4e91\u3001\u817e\u8baf\u4e91 COS\u3001\u963f\u91cc\u4e91 OSS\u3001SM.MS\u548c\u81ea\u5b9a\u4e49\u7684\u56fe\u5e8a\u670d\u52a1\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown_3","title":"Markdown \u7b14\u8bb0\uff1a","text":"
- \u5f3a\u5927\u7684\u6587\u6863\u5e93\u652f\u6301\u5206\u7c7b\u6811\u548c\u6807\u7b7e\u7ba1\u7406\u6587\u6863\uff0c\u6587\u6863\u53ef\u5f52\u7c7b\u4e8e\u591a\u4e2a\u5206\u7c7b\uff0c\u53ef\u4ee5\u628a\u5206\u7c7b\u6574\u4e2a\u5bfc\u51fa\u4e3a Epub\u3001PDF \u548c\u751f\u6210\u9759\u6001\u7f51\u7ad9\u3002\u975e\u5e38\u5408\u9002\u7528\u4e8e\u7b14\u8bb0\u3001\u4e2a\u4eba\u77e5\u8bc6\u6536\u96c6\u3001\u7ba1\u7406\u548c\u8f93\u51fa\u3002
- \u5feb\u901f\u7b14\u8bb0\uff1a\u968f\u610f\u589e\u52a0\u7b14\u8bb0\u53ca\u56fe\u7247\u7b49\u7d20\u6750\uff0c\u652f\u6301\u4ee5\u5929\u4e3a\u5355\u4f4d\u628a\u589e\u52a0\u7684\u7d20\u6750\u7ec4\u5408\u5728\u4e00\u4e2a\u6587\u6863\u5185\uff0c\u65b9\u4fbf\u6574\u7406\u53ca\u8bb0\u5f55\u5386\u53f2\u6536\u96c6\u60c5\u51b5\u3002
- \u5feb\u901f\u641c\u7d22\uff1a\u76ee\u524d\u5df2\u652f\u6301\u5168\u5c40\u5feb\u6377\u952e\u8c03\u51fa\u641c\u7d22\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown_4","title":"\u5916\u90e8 Markdown \u6587\u6863\uff1a","text":"
- \u5916\u90e8 Markdown \u6587\u6863\u4f7f\u7528\u5916\u90e8\u6a21\u5f0f\u7ba1\u7406\u3002\u5916\u90e8\u6a21\u5f0f\u4f7f\u7528\u76ee\u5f55\u6811\u7684\u65b9\u5f0f\u7f16\u8f91\u548c\u7ba1\u7406\u4f60\u7684 Markdown \u6587\u6863\uff0c\u8fd8\u80fd\u5f88\u597d\u7684\u652f\u6301 GitBook\u3001Jekyll\u3001Hexo \u7b49\u7b49\u7f16\u8f91\u548c\u56fe\u7247\u63d2\u5165\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mweb_1","title":"MWeb \u6587\u6863\uff1a","text":"
\u5982\u679c\u8981\u66f4\u8be6\u7ec6\u4e86\u89e3 MWeb\uff0c\u5efa\u8bae\u4f60\u4e00\u5b9a\u8981\u53bb\u770b\u4e00\u4e0b\u5b98\u7f51\u7684\u5e2e\u52a9\u6587\u6863\uff0c\u7f51\u5740\u4e3a\uff1ahttps://zh.mweb.im/help.html\u3002\u6211\u4eec\u5efa\u8bae\u5728\u4f7f\u7528\u6587\u6863\u5e93\u4e4b\u524d\uff0c\u4e00\u5b9a\u8981\u9605\u8bfb\u4e00\u4e0b MWeb \u6587\u6863\u5e93\u8be6\u7ec6\u4ecb\u7ecd \u8fd9\u7bc7\u6587\u7ae0\uff0c\u4ee5\u4fbf\u66f4\u597d\u7684\u4f7f\u7528\u6587\u6863\u5e93\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mweb_2","title":"\u5e2e\u52a9\u6211\u4eec\u6539\u8fdb MWeb","text":"
\u5982\u679c\u4f60\u559c\u6b22 MWeb\uff0c\u60f3\u8ba9\u5b83\u53d8\u5f97\u66f4\u597d\uff0c\u4f60\u53ef\u4ee5\uff1a
- \u63a8\u8350 MWeb\uff0c\u8ba9\u66f4\u591a\u7684\u4eba\u77e5\u9053\u3002
- \u7ed9\u6211\u4eec\u53d1\u53cd\u9988\u548c\u5efa\u8bae\uff1acoderforart+2333@gmail.com
- \u5728 Mac App Store \u4e0a\u8bc4\u4ef7 \uff08\u5982\u679c\u662f\u5728 MAS \u4e0a\u8d2d\u4e70\u7684\u8bdd\uff09\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#gfm-mweb","title":"GFM \u8bed\u6cd5\u7b80\u4ecb\u548c MWeb \u6240\u652f\u6301\u7684\u6269\u5c55\u8bed\u6cd5","text":"","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_2","title":"\u56de\u8f66\u8f6c\u4e3a\u6362\u884c","text":"
\u5b98\u65b9\u7684\u8bed\u6cd5\u89c4\u5b9a\u7ed3\u5c3e\u52a0 2 \u4e2a\u4ee5\u4e0a\u7a7a\u683c\u52a0\u6362\u884c\u624d\u4f1a\u8f6c\u6210\u6362\u884c\uff0c\u4e5f\u5c31\u662f <br />
\u6807\u7b7e\u3002MWeb \u4e2d\u6709\u4e2a\u9009\u9879\u53ef\u4ee5\u76f4\u63a5\u628a\u6362\u884c\u8f6c\u6210 <br />
\uff0c\u4e0d\u7528\u52a0\u4e0a 2 \u4e2a\u4ee5\u4e0a\u7a7a\u683c\uff0c\u8fd9\u4e2a\u9009\u9879\u9ed8\u8ba4\u662f\u5f00\u542f\u7684\u3002\u5982\u679c\u8981\u5173\u95ed\uff0c\u8bf7\u5728\u8bbe\u7f6e\u9875\u9762\u5173\u95ed\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#task-lists","title":"\u4efb\u52a1\u5217\u8868\uff08Task lists\uff09","text":"
Markdown \u8bed\u6cd5\uff1a
- [ ] \u4efb\u52a1\u4e00 \u672a\u505a\u4efb\u52a1 `- + \u7a7a\u683c + [ ]`\n- [x] \u4efb\u52a1\u4e8c \u5df2\u505a\u4efb\u52a1 `- + \u7a7a\u683c + [x]`\n
\u6548\u679c\u5982\u4e0b\uff1a
- \u4efb\u52a1\u4e00 \u672a\u505a\u4efb\u52a1
- + \u7a7a\u683c + [ ]
- \u4efb\u52a1\u4e8c \u5df2\u505a\u4efb\u52a1
- + \u7a7a\u683c + [x]
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_3","title":"\u56fe\u7247\u5927\u5c0f\u53ca\u5bf9\u9f50","text":"
\u5b98\u65b9\u548c GFM \u90fd\u4e0d\u652f\u6301\u56fe\u7247\u5927\u5c0f\u8bbe\u7f6e\uff0cMWeb \u5f15\u5165\u7684\u7279\u522b\u7684\u8bed\u6cd5\u6765\u8bbe\u7f6e\u56fe\u7247\u5bbd\u5ea6\u3002\u5982\uff1a
\u8fd9\u6837\u8868\u793a\u8bbe\u7f6e\u56fe\u7247\u5bbd\u5ea6\u4e3a 450\u3002\u5176\u4e2d -w450 \u4e3a\u8bbe\u7f6e\u8bed\u6cd5\uff0c\u751f\u6210 HTML \u65f6\u4f1a\u81ea\u52a8\u79fb\u9664\u3002w \u8868\u793a\u8bbe\u7f6e\u5bbd\u5ea6\u3002 \u53ef\u4ee5\u770b\u51fa\uff0cMWeb \u5f15\u5165\u7684\u8bed\u6cd5\u7684\u7279\u70b9\u662f\u517c\u5bb9\u539f\u6765\u7684\u8bed\u6cd5\u548c\u4ec5\u652f\u6301\u8bbe\u7f6e\u5bbd\u5ea6\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_4","title":"\u591a\u884c\u6216\u8005\u4e00\u6bb5\u4ee3\u7801","text":"
Markdown \u8bed\u6cd5\uff1a
```js\nfunction fancyAlert(arg) {\n if(arg) {\n $.facebox({div:'#foo'})\n }\n\n}\n```\n
\u6548\u679c\u5982\u4e0b\uff1a
function fancyAlert(arg) {\n if(arg) {\n $.facebox({div:'#foo'})\n }\n\n}\n
\u8fd9\u4e2a\u8bed\u6cd5\u76ee\u524d\u5728 MWeb \u4e2d\u4f7f\u7528\uff0c\u5fc5\u987b\u524d\u540e\u7a7a\u4e00\u884c\uff0c\u624d\u4f1a\u6b63\u786e\u89e3\u6790\u3002\u6211\u89c9\u5f97\uff0c\u5728\u5199 Markdown \u6587\u6863\u8fc7\u7a0b\u4e2d\uff0c\u8fd0\u7528\u7a7a\u884c\u5f88\u6709\u5fc5\u8981\uff0c\u57fa\u672c\u4e0a\uff0c\u5757\u7ea7\u5143\u7d20\uff08\u6807\u9898\u3001\u5217\u8868\u3001\u5f15\u7528\u3001\u4ee3\u7801\u5757\u3001\u8868\u683c\u3001\u6bb5\u843d\u7b49\uff09\uff0c\u90fd\u5efa\u8bae\u524d\u540e\u7a7a\u4e00\u884c\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_5","title":"\u8868\u683c","text":"
Markdown \u8bed\u6cd5\uff1a
\u7b2c\u4e00\u683c\u8868\u5934 | \u7b2c\u4e8c\u683c\u8868\u5934\n--------- | -------------\n\u5185\u5bb9\u5355\u5143\u683c \u7b2c\u4e00\u5217\u7b2c\u4e00\u683c | \u5185\u5bb9\u5355\u5143\u683c\u7b2c\u4e8c\u5217\u7b2c\u4e00\u683c\n\u5185\u5bb9\u5355\u5143\u683c \u7b2c\u4e00\u5217\u7b2c\u4e8c\u683c \u591a\u52a0\u6587\u5b57 | \u5185\u5bb9\u5355\u5143\u683c\u7b2c\u4e8c\u5217\u7b2c\u4e8c\u683c\n
\u6548\u679c\u5982\u4e0b\uff1a
\u7b2c\u4e00\u683c\u8868\u5934 \u7b2c\u4e8c\u683c\u8868\u5934 \u5185\u5bb9\u5355\u5143\u683c \u7b2c\u4e00\u5217\u7b2c\u4e00\u683c \u5185\u5bb9\u5355\u5143\u683c\u7b2c\u4e8c\u5217\u7b2c\u4e00\u683c \u5185\u5bb9\u5355\u5143\u683c \u7b2c\u4e00\u5217\u7b2c\u4e8c\u683c \u591a\u52a0\u6587\u5b57 \u5185\u5bb9\u5355\u5143\u683c\u7b2c\u4e8c\u5217\u7b2c\u4e8c\u683c","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_6","title":"\u5220\u9664\u7ebf","text":"
Markdown \u8bed\u6cd5\uff1a
\u52a0\u5220\u9664\u7ebf\u50cf\u8fd9\u6837\u7528\uff1a ~~\u5220\u9664\u8fd9\u4e9b~~\n
\u6548\u679c\u5982\u4e0b\uff1a
\u52a0\u5220\u9664\u7ebf\u50cf\u8fd9\u6837\u7528\uff1a \u5220\u9664\u8fd9\u4e9b
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#latex","title":"LaTeX","text":"
Markdown \u8bed\u6cd5\uff1a
\u5757\u7ea7\u516c\u5f0f\uff1a\n```math\nx = \\dfrac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}\n```\n\n\u884c\u5185\u516c\u5f0f\uff1a ``\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N``\n
\u6548\u679c\u5982\u4e0b\uff08\u5728\u8bbe\u7f6e\u9875\u9762\u4e2d\u542f\u7528 LaTeX \u624d\u4f1a\u770b\u5230\u6548\u679c\uff09\uff1a
\u5757\u7ea7\u516c\u5f0f\uff1a
x = \\dfrac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}\n
\u884c\u5185\u516c\u5f0f\uff1a \\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mweb_3","title":"MWeb \u753b\u56fe","text":"","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mermaid","title":"mermaid","text":"
mermaid \u662f\u6bd4\u8f83\u6d41\u884c\u7684\u753b\u56fe\u5e93\uff0c\u5b83\u652f\u6301\u6d41\u7a0b\u56fe\u3001\u987a\u5e8f\u56fe\u548c\u7518\u7279\u56fe\uff0c\u5b83\u7684\u5b98\u7f51\u4e3a\uff1ahttps://mermaidjs.github.io/ \uff0c\u5728 MWeb \u4e2d\u4f7f\u7528 mermaid \u7684\u8bed\u6cd5\u5c31\u662f\u58f0\u660e\u4ee3\u7801\u5757\u7684\u8bed\u8a00\u4e3a mermaid\uff0c\u4ee3\u7801\u5757\u4e2d\u518d\u5199\u4e0a mermaid \u7684\u753b\u56fe\u8bed\u6cd5\u5373\u53ef\uff0c\u4f60\u53ef\u4ee5\u628a\u4e0b\u9762\u7684\u8bed\u6cd5\u590d\u5236\u5230 MWeb \u4e2d\u67e5\u770b\u6548\u679c\u3002
```mermaid\nsequenceDiagram\n participant Alice\n participant Bob\n Alice->John: Hello John, how are you?\n loop Healthcheck\n John->John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail...\n John-->Alice: Great!\n John->Bob: How about you?\n Bob-->John: Jolly good!\n```\n
\u6548\u679c\u5982\u4e0b\uff1a
sequenceDiagram\n participant Alice\n participant Bob\n Alice->John: Hello John, how are you?\n loop Healthcheck\n John->John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail...\n John-->Alice: Great!\n John->Bob: How about you?\n Bob-->John: Jolly good!
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#echarts","title":"echarts","text":"
echarts \u662f\u767e\u5ea6\u51fa\u54c1\u7684 js \u753b\u56fe\u5e93\uff0c\u5b83\u7684\u7f51\u5740\u4e3a\uff1ahttps://echarts.apache.org/zh/index.html\uff0c\u529f\u80fd\u975e\u5e38\u5f3a\u5927\uff0cMWeb \u652f\u6301 echarts \u7684\u4e00\u4e9b\u57fa\u672c\u7684\u7528\u6cd5\uff0c\u592a\u9ad8\u7ea7\u7684\u4e0d\u652f\u6301\u3002\u4f60\u53ef\u4ee5\u5c06\u4ee5\u4e0b\u8bed\u6cd5\u590d\u5236\u5230 MWeb \u4e2d\u8fdb\u884c\u5c1d\u8bd5\u3002\u4f60\u4e5f\u53ef\u4ee5\u53bb https://echarts.apache.org/examples/zh/index.html \u8fd9\u4e2a\u7f51\u5740\u67e5\u770b\u4e00\u4e9b\u4f8b\u5b50\uff0c\u8981\u6ce8\u610f\u7684\u662f MWeb \u53ea\u80fd\u89e3\u6790 option = {}
\u8fd9\u79cd\u7b80\u5355\u7684\uff0c\u4e0d\u8fc7\u5e94\u8be5\u662f\u8db3\u591f\u4f7f\u7528\u4e86\u3002
```echarts\noption = {\n xAxis: {\n type: 'category',\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n },\n yAxis: {\n type: 'value'\n },\n series: [{\n data: [820, 932, 901, 934, 1290, 1330, 1320],\n type: 'line'\n }]\n};\n```\n
\u6548\u679c\u5982\u4e0b\uff1a
option = {\n xAxis: {\n type: 'category',\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n },\n yAxis: {\n type: 'value'\n },\n series: [{\n data: [820, 932, 901, 934, 1290, 1330, 1320],\n type: 'line'\n }]\n};\n
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#footnote","title":"\u811a\u6ce8\uff08Footnote\uff09","text":"
Markdown \u8bed\u6cd5\uff1a
\u8fd9\u662f\u4e00\u4e2a\u811a\u6ce8\uff1a[^1]\n
\u6548\u679c\u5982\u4e0b\uff1a
\u8fd9\u662f\u4e00\u4e2a\u811a\u6ce8\uff1a1
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_7","title":"\u6ce8\u91ca\u548c\u9605\u8bfb\u66f4\u591a","text":"
\u6ce8 \u9605\u8bfb\u66f4\u591a\u7684\u529f\u80fd\u53ea\u7528\u5728\u6587\u6863\u5e93\u751f\u6210\u9759\u6001\u7f51\u7ad9\u6216\u53d1\u5e03\u5230 Wordpress \u535a\u5ba2\u65f6\uff0c\u63d2\u5165\u65f6\u6ce8\u610f\u8981\u540e\u7a7a\u4e00\u884c\u3002
-
\u8fd9\u91cc\u662f\u811a\u6ce8\u4fe1\u606f\u00a0\u21a9
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/","title":"Markdown\u8bed\u6cd5\u5b66\u4e60 \u7cbe\u7b80\u7248","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
Markdown\u662f\u4e00\u79cd\u8f7b\u91cf\u7ea7\u6807\u8bb0\u8bed\u8a00\uff0c\u652f\u6301\u6613\u8bfb\u6613\u5199\u7684\u7eaf\u6587\u672c\u683c\u5f0f\uff0c\u53ef\u8f6c\u6362\u4e3aHTML/PDF\u7b49\u591a\u79cd\u683c\u5f0f\u3002\u672c\u6587\u4ecb\u7ecd\u4e86\u5176\u6838\u5fc3\u8bed\u6cd5\uff1a\u6807\u9898\u5206\u7ea7\u3001\u6587\u672c\u6837\u5f0f\uff08\u659c\u4f53/\u7c97\u4f53/\u9ad8\u4eae\uff09\u3001\u5217\u8868\uff08\u6709\u5e8f/\u65e0\u5e8f/\u4efb\u52a1\u5217\u8868\uff09\u3001\u8868\u683c\u3001\u8d85\u94fe\u63a5\u3001\u56fe\u7247/\u89c6\u9891\u63d2\u5165\u3001\u4ee3\u7801\u5757\u53ca\u7279\u6b8a\u5b57\u7b26\u8f6c\u4e49\u3002\u540c\u65f6\u63a8\u8350\u4e86\u5404\u5e73\u53f0\u5e38\u7528\u7f16\u8f91\u5de5\u5177\uff08\u5982MacDown\u3001StackEdit\u7b49\uff09\u548c\u5b66\u4e60\u8d44\u6e90\uff0c\u9002\u7528\u4e8e\u5feb\u901f\u521b\u5efa\u7ed3\u6784\u5316\u6587\u6863\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a2 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a662 | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a61
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#markdown","title":"Markdown\u8bed\u6cd5\u5b66\u4e60 \u7cbe\u7b80\u7248","text":"
\u6587\u7ae0\u5f00\u5934
\u4ecb\u7ecd\u4e00\u4e0bMarkdown\uff1a Markdown \u662f\u4e00\u79cd\u8f7b\u91cf\u7ea7\u6807\u8bb0\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4eba\u4eec\u4f7f\u7528\u6613\u8bfb\u6613\u5199\u7684\u7eaf\u6587\u672c\u683c\u5f0f\u7f16\u5199\u6587\u6863\u3002Markdown \u8bed\u8a00\u5728 2004 \u7531\u7ea6\u7ff0\u00b7\u683c\u9c81\u4f2f\uff08\u82f1\u8bed\uff1aJohn Gruber\uff09\u521b\u5efa\u3002 Markdown \u7f16\u5199\u7684\u6587\u6863\u53ef\u4ee5\u5bfc\u51fa HTML \u3001Word\u3001\u56fe\u50cf\u3001PDF\u3001Epub \u7b49\u591a\u79cd\u683c\u5f0f\u7684\u6587\u6863\u3002Markdown \u7f16\u5199\u7684\u6587\u6863\u540e\u7f00\u4e3a .md, .markdown\u3002
\u6b64\u7b14\u8bb0\u5b66\u4e60\u6458\u6284\u81eaMarkdown\u8bed\u6cd5\u5b66\u4e60 \u7cbe\u7b80\u7248\uff0c\u5b66\u4e60\u501f\u9274\u5927\u4f6c\u4e4b\u7ecf\u9a8c\uff08Ctrl C+V\uff09
\u4e5f\u63a8\u8350\u770b:Markdown\u4e2d\u6587\u6307\u5357
\u4e00\u4e9bMarkdown\u6587\u6863\u521b\u4f5c\u5de5\u5177\uff1a
- Mac: MacDown, iA Writer \u6216 Marked 2
- iOS / Android: iA Writer
- Windows: ghostwriter \u6216 Markdown Monster
- Linux: ReText \u6216 ghostwriter
- Web: Dillinger \u6216 StackEdit
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_1","title":"\u6700\u5e38\u7528","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_2","title":"\u5206\u7ea7\u6807\u9898","text":"
# \u4e00\u7ea7\u6807\u9898 (\u6ce8\u610f\u6709\u7a7a\u683c)\n## \u4e8c\u7ea7\u6807\u9898\n### \u4e09\u7ea7\u6807\u9898\n#### \u56db\u7ea7\u6807\u9898\n##### \u4e94\u7ea7\u6807\u9898\n###### \u516d\u7ea7\u6807\u9898 <!--\u6700\u591a6\u7ea7\u6807\u9898-->\n
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_3","title":"\u76ee\u5f55","text":"
\u5728\u4efb\u610f\u4f4d\u7f6e\u63d2\u5165 [toc]
\u663e\u793a\u5168\u6587\u76ee\u5f55\u7ed3\u6784
\u793a\u4f8b\u89c1\u6587\u7ae0\u5f00\u5934\uff08\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u5f00\u5934\u67e5\u770b\u76ee\u5f55\uff09
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_4","title":"\u659c\u4f53/\u7c97\u4f53/\u5220\u9664\u7ebf/\u4e0b\u5212\u7ebf/\u80cc\u666f\u9ad8\u4eae","text":"
*\u659c\u4f53* _\u659c\u4f53_\n**\u7c97\u4f53** __\u7c97\u4f53__\n***\u52a0\u7c97\u659c\u4f53*** ___\u52a0\u7c97\u659c\u4f53___\n~~\u5220\u9664\u7ebf~~\n<u>\u4e0b\u5212\u7ebf</u>\n==\u80cc\u666f\u9ad8\u4eae==\n
\u659c\u4f53 \u659c\u4f53
\u7c97\u4f53 \u7c97\u4f53
\u52a0\u7c97\u659c\u4f53 \u52a0\u7c97\u659c\u4f53
\u5220\u9664\u7ebf
\u4e0b\u5212\u7ebf
\u80cc\u666f\u9ad8\u4eae
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_5","title":"\u65e0\u5e8f\u5217\u8868/\u6709\u5e8f\u5217\u8868","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_6","title":"\u65e0\u5e8f\u5217\u8868","text":"
* \u65e0\u5e8f\u5217\u8868\u9879 \u4e00\n+ \u65e0\u5e8f\u5217\u8868\u9879 \u4e8c\n- \u65e0\u5e8f\u5217\u8868\u9879 \u4e09\n
- \u65e0\u5e8f\u5217\u8868\u9879 \u4e00
- \u65e0\u5e8f\u5217\u8868\u9879 \u4e8c
- \u65e0\u5e8f\u5217\u8868\u9879 \u4e09
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_7","title":"\u591a\u7ea7\u65e0\u5e8f\u5217\u8868","text":"
* \u4eca\u5929`* + \u7a7a\u683c\u952e`\n* \u660e\u5929\n * \u5b66\u4e60 `TAB(\u62164\u4e2a\u7a7a\u683c) + * + \u7a7a\u683c\u952e`\n * \u8d2d\u7269\n * \u9762\u5305\n * \u725b\u5976\n* \u540e\u5929\n
- \u4eca\u5929
* + \u7a7a\u683c\u952e
- \u660e\u5929
- \u5b66\u4e60
TAB(\u62164\u4e2a\u7a7a\u683c) + * + \u7a7a\u683c\u952e
- \u8d2d\u7269
- \u9762\u5305
- \u725b\u5976
- \u540e\u5929
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_8","title":"\u6709\u5e8f\u5217\u8868/\u591a\u7ea7\u6709\u5e8f\u5217\u8868","text":"
1. \u6709\u5e8f\u5217\u8868\u9879 \u4e00 `\u6570\u5b57 + . + \u7a7a\u683c\u952e`\n2. \u6709\u5e8f\u5217\u8868\u9879 \u4e8c\n 1. \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(1) `TAB(\u62164\u4e2a\u7a7a\u683c) + \u6570\u5b57 + . + \u7a7a\u683c\u952e`\n 2. \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(2)\n 1. \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(2).1\n3. \u6709\u5e8f\u5217\u8868\u9879 \u4e09\n
- \u6709\u5e8f\u5217\u8868\u9879 \u4e00
\u6570\u5b57 + . + \u7a7a\u683c\u952e
- \u6709\u5e8f\u5217\u8868\u9879 \u4e8c
- \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(1)
TAB(\u62164\u4e2a\u7a7a\u683c) + \u6570\u5b57 + . + \u7a7a\u683c\u952e
- \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(2)
- \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(2).1
- \u6709\u5e8f\u5217\u8868\u9879 \u4e09
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_9","title":"\u4efb\u52a1\u5217\u8868","text":"
- [ ] \u4efb\u52a1\u4e00 \u672a\u505a\u4efb\u52a1 `- + \u7a7a\u683c + [ ]`\n- [x] \u4efb\u52a1\u4e8c \u5df2\u505a\u4efb\u52a1 `- + \u7a7a\u683c + [x]`\n
- \u4efb\u52a1\u4e00 \u672a\u505a\u4efb\u52a1
- + \u7a7a\u683c + [ ]
- \u4efb\u52a1\u4e8c \u5df2\u505a\u4efb\u52a1
- + \u7a7a\u683c + [x]
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_10","title":"\u8868\u683c","text":"
\u7b2c\u4e00\u884c\u4e3a\u8868\u5934\uff0c\u7b2c\u4e8c\u884c\u5206\u9694\u8868\u5934\u548c\u4e3b\u4f53\u90e8\u5206(\u5982\u679c\u8868\u683c\u65e0\u6cd5\u663e\u793a\u53ef\u4ee5\u5c1d\u8bd5\u628a\u7b2c\u4e8c\u884c\u7684 -
\u53d8\u4e3a ---
)\uff0c\u53ef\u4ee5\u6307\u5b9a\u6240\u5728\u5217\u7684\u5bf9\u9f50\u65b9\u5f0f\uff0c\u7b2c\u4e09\u884c\u5f00\u59cb\u6bcf\u4e00\u884c\u4e3a\u4e00\u4e2a\u8868\u683c\u884c\u3002\u5217\u4e0e\u5217\u4e4b\u95f4\u7528 |
\u9694\u5f00\u3002(\u6ce8\uff1a\u539f\u751f\u65b9\u5f0f\u7684\u8868\u683c\u6bcf\u4e00\u884c\u7684\u4e24\u8fb9\u4e5f\u8981\u6709 |
)
\u5bf9\u9f50\u65b9\u5f0f :- \u5de6\u5bf9\u9f50
- \u4e2d\u5fc3\u5bf9\u9f50
-: \u53f3\u5bf9\u9f50
\u7b2c\u4e00\u5217|\u7b2c\u4e8c\u5217|\u7b2c\u4e09\u5217\n:-|-|-:\na11|a12|a13\na21|a22|a33\na31|a32|a33\n
\u8868\u5934\u4e00 \u8868\u5934\u4e8c \u8868\u5934\u4e09 a11 a12 a13 a21 a22 a33 a31 a32 a33","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_11","title":"\u8d85\u94fe\u63a5","text":"
[ ]\u91cc\u5199\u94fe\u63a5\u6587\u5b57\uff0c( )\u91cc\u5199\u94fe\u63a5\u5730\u5740, ( )\u4e2d\u7684\" \"\u4e2d\u53ef\u4ee5\u4e3a\u94fe\u63a5\u6307\u5b9atitle\u5c5e\u6027\uff0ctitle\u5c5e\u6027\u53ef\u52a0\u53ef\u4e0d\u52a0\u3002title\u5c5e\u6027\u7684\u6548\u679c\u662f\u9f20\u6807\u60ac\u505c\u5728\u94fe\u63a5\u4e0a\u4f1a\u51fa\u73b0\u6307\u5b9a\u7684 title\u6587\u5b57\uff0c\u94fe\u63a5\u5730\u5740\u4e0etitle\u524d\u6709\u4e00\u4e2a\u7a7a\u683c\u3002
\u53f3\u8fb9\u662f\u94fe\u63a5[\u94fe\u63a5\u6587\u5b57](\u94fe\u63a5 \"title\")\n
\u53f3\u8fb9\u662f\u94fe\u63a5[GitHub](https://github.com \"GitHub\")\n
\u53f3\u8fb9\u662f\u94fe\u63a5GitHub
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_12","title":"\u63d2\u5165\u56fe\u7247","text":"
\u683c\u5f0f\uff1a!
[\u56fe\u7247\u6807\u9898]
(\u56fe\u7247\u5730\u5740 \"\u56fe\u7247Title\u201d)
\u5176\u4e2d\u56fe\u7247\u6807\u9898
\u4f1a\u88ab\u67d0\u4e9b\u7f51\u7ad9\u548c\u7f16\u8f91\u5668\u663e\u793a\u5728\u56fe\u7247\u4e0b\u65b9
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_13","title":"\u63d2\u5165\u89c6\u9891","text":"
\u683c\u5f0f\uff1a
<iframe height= width= src=\"\u94fe\u63a5\">\n
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_14","title":"\u4ee3\u7801\u5757","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_15","title":"\u884c\u5185\u4ee3\u7801\u5757","text":"
\u7528\u201c ` \u201d\u5de6\u53f3\u5305\u88f9\u4ee3\u7801
`printf()` \u51fd\u6570 \n
\u663e\u793a\u4e3a
printf()
\u51fd\u6570","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_16","title":"\u591a\u884c\u4ee3\u7801\u5757","text":"
\u7528\u201c ``` \u201d\u4e0a\u4e0b\u5305\u88f9\u4ee3\u7801\uff0c\u5728\u7b2c\u4e00\u4e2a\u201c ``` \u201d\u540e\u6dfb\u52a0\u8bed\u8a00\u540d\u79f0\u83b7\u5f97\u4e0d\u540c\u7684\u9ad8\u4eae\u6548\u679c
\u5982\uff1acpp\uff0cpython\uff0cswift
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_17","title":"\u5bf9\u9f50\u65b9\u5f0f","text":"
<center>\u884c\u4e2d\u5fc3\u5bf9\u9f50</center>\n<p align=\"left\">\u884c\u5de6\u5bf9\u9f50</p>\n<p align=\"right\">\u884c\u53f3\u5bf9\u9f50</p>\n
\u884c\u4e2d\u5fc3\u5bf9\u9f50
\u884c\u5de6\u5bf9\u9f50
\u884c\u53f3\u5bf9\u9f50
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_18","title":"\u5206\u5272\u7ebf","text":"
* * *\n***\n- - -\n---\n
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_19","title":"\u6362\u884c","text":"
\u4e0d\u540cmarkdown\u7f16\u8f91\u5668\u53ef\u80fd\u6709\u4e0d\u540c\u7684\u6362\u884c\u65b9\u5f0f\uff0c\u6700\u7b80\u5355\u4e3a\u76f4\u63a5\u6572\u56de\u8f66
markdown\u6587\u672c\u5185\u7684\u8fde\u7eed\u4e24\u4e2a\u6216\u591a\u4e2a\u56de\u8f66\u4f1a\u88ab\u66ff\u6362\u4e3a\u4e00\u4e2a\u56de\u8f66
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_20","title":"\u9ad8\u7ea7","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_21","title":"\u8bbe\u7f6e\u5b57\u4f53/\u989c\u8272","text":"
<font face=\"\u5b8b\u4f53\" color=blue size=5>\u84dd\u8272\u7684\u5b57\uff5e</font>\n
\u84dd\u8272\u7684\u5b57\uff5e
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_22","title":"\u5e38\u7528\u989c\u8272","text":"
\u6d4f\u89c8\u5668\u652f\u6301\u7684\u6240\u6709\u989c\u8272\u8bf7\u8df3\u8f6c\u53c2\u8003
\u73b0\u4ee3\u6d4f\u89c8\u5668\u652f\u6301\u7684140\u79cd\u5df2\u547d\u540d\u7684\u989c\u8272
\u5e38\u7528\u989c\u8272\u540d\u79f0: * \u6309\u7f51\u7ad9\u987a\u5e8f\u6392\u5217 * orange pink gold yellow purple greenyellow lightgreen green aqua lightblue blue wheat brown white snow linen silver gray black
\u6700\u5e38\u7528 \u5176\u4ed6 red greenyellow orange lightgreen yellow lightblue green pink aqua gold blue silver purple brown","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_23","title":"\u951a\u70b9","text":"
\u4e5f\u5c31\u662f \u8df3\u8f6c
1. [\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u7b2c\u4e00\u6bb5](#jump1)\n2. [\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u7b2c\u4e8c\u6bb5](#jump2\uff09\n\n### <span id=\"jump1\">\u7b2c\u4e00\u6bb5</span>\n\n### <span id=\"jump2\">\u7b2c\u4e8c\u6bb5</span>\n
<span id=\"now\">\u5f53\u524d\u4f4d\u7f6e</span>\n\u70b9\u51fb[\u8fd9\u91cc](#top)\u8df3\u8f6c\u5230\u5f00\u5934\n\u70b9\u51fb[\u8fd9\u91cc](#bottom)\u8df3\u8f6c\u5230\u7ed3\u5c3e\n
\u5f53\u524d\u4f4d\u7f6e
\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u5f00\u5934
\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u7ed3\u5c3e
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_24","title":"\u6ce8\u811a","text":"
\u4f7f\u7528 Markdown[^1]\u53ef\u4ee5\u6548\u7387\u7684\u4e66\u5199\u6587\u6863, \u76f4\u63a5\u8f6c\u6362\u6210 HTML[^2]\u3002\n\n[^1]:Markdown\u662f\u4e00\u79cd\u7eaf\u6587\u672c\u6807\u8bb0\u8bed\u8a00\n[^2]:HyperText Markup Language \u8d85\u6587\u672c\u6807\u8bb0\u8bed\u8a00\n
\u4f7f\u7528 Markdown1\u53ef\u4ee5\u6548\u7387\u7684\u4e66\u5199\u6587\u6863, \u76f4\u63a5\u8f6c\u6362\u6210 HTML2\u3002
\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u7ed3\u5c3e\u67e5\u770b\u6ce8\u811a\u7684\u663e\u793a\u6548\u679c
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_25","title":"\u591a\u7ea7\u5f15\u7528","text":"
>>> \u8bf7\u95ee Markdwon \u600e\u4e48\u7528\uff1f - \u5c0f\u767d\n\n>> \u81ea\u5df1\u770b\u6559\u7a0b\uff01 - \u6124\u9752\n\n> \u6559\u7a0b\u5728\u54ea\uff1f - \u5c0f\u767d\n\n`[^_^]: # \u65e0\u6cd5\u663e\u793a\u65f6\u8bb0\u5f97\u7a7a\u884c`\n
\u4e0d\u540c\u7f16\u8f91\u5668\u7684\u663e\u793a\u60c5\u51b5\u4e0d\u540c
\u8bf7\u95ee Markdwon \u600e\u4e48\u7528\uff1f - \u5c0f\u767d
\u81ea\u5df1\u770b\u6559\u7a0b\uff01 - \u6124\u9752
\u6559\u7a0b\u5728\u54ea\uff1f - \u5c0f\u767d
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#latex","title":"LaTeX\u516c\u5f0f","text":"
- \u5728\u6570\u5b66\u516c\u5f0f\u7684\u524d\u540e\u52a0
$
\u662f\u884c\u5185\u516c\u5f0f
\u6211\u4eec\u5728\u521d\u4e2d\u6570\u5b66\u8bfe\u4e0a\u5df2\u7ecf\u5bf9\u4e00\u6b21\u51fd\u6570$y=x+a$\u6709\u6240\u4e86\u89e3\u3002\n
\u6211\u4eec\u5728\u521d\u4e2d\u6570\u5b66\u8bfe\u4e0a\u5df2\u7ecf\u5bf9\u4e00\u6b21\u51fd\u6570\\(y=x+a\\)\u6709\u6240\u4e86\u89e3\u3002
\\[y=ax^2+bx+c\\]
\u884c\u5185\u516c\u5f0f\uff1a$\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N$\n\u5757\u7ea7\u516c\u5f0f\uff1a\n$$ x = \\dfrac{-b \\pm \\sqrt{b^2 - 4ac}}{2a} $$\n$$ \\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} =\n1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}}\n{1+\\frac{e^{-8\\pi}} {1+\\ldots} } } } $$\n
\u884c\u5185\u516c\u5f0f\uff1a\\(\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N\\)
\u5757\u7ea7\u516c\u5f0f\uff1a
\\[x = \\dfrac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}\\] \\[\\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}}{1+\\frac{e^{-8\\pi}} {1+\\ldots} } } }\\]
\u6765\u770b\u770b\u4e24\u4e2a\u91cd\u8981\u6781\u9650
\\[\\displaystyle\\lim_{x \\rightarrow 0}\\frac{\\sin x}{x} = 1\\] \\[\\displaystyle\\lim_{x \\rightarrow + \\infty}(1 + \\frac{1}{x})^x = e\\]","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_26","title":"\u5176\u4ed6","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_27","title":"\u8f6c\u4e49\u5b57\u7b26","text":"
\u901a\u8fc7\u5728Markdown\u5b57\u7b26\u524d\u4f7f\u7528\\\u6765\u5ffd\u7565\uff08\u6216\u8f6c\u4e49\uff09Markdown\u683c\u5f0f\u3002
Markdown\u5141\u8bb8\u60a8\u4f7f\u7528\u53cd\u659c\u6760\u8f6c\u4e49\u6765\u751f\u6210\u6587\u5b57\u5b57\u7b26\uff0c\u5426\u5219\u8fd9\u4e9b\u5b57\u7b26\u5728Markdown\u7684\u683c\u5f0f\u5316\u8bed\u6cd5\u4e2d\u5177\u6709\u7279\u6b8a\u542b\u4e49\u3002 \u4f8b\u5982\uff0c\u5982\u679c\u60a8\u60f3\u7528\u6587\u5b57\u661f\u53f7\u5305\u56f4\u4e00\u4e2a\u5355\u8bcd\uff0c\u5219\u53ef\u4ee5\u5728\u661f\u53f7\u4e4b\u524d\u4f7f\u7528\u53cd\u659c\u6760\uff0c\u5982\\*literal asterisks\\*
*literal asterisks*
Markdown\u4e3a\u4ee5\u4e0b\u5b57\u7b26\u63d0\u4f9b\u53cd\u659c\u6760\u8f6c\u4e49(\u4f46\u662fCSDN\u4e0d\u592a\u652f\u6301)\uff1a
\\\u53cd\u659c\u6760\u2003`\u53cd\u5f15\u53f7\u2003*\u661f\u53f7\u2003_\u4e0b\u5212\u7ebf\u2003{}\u5927\u62ec\u53f7\u2003[]\u4e2d\u62ec\u53f7\u2003()\u5c0f\u62ec\u53f7\u2003 #\u4e95\u53f7\u2003+\u52a0\u53f7\u2003-\u51cf\u53f7\u2003.\u82f1\u6587\u53e5\u53f7\u2003!\u82f1\u6587\u611f\u53f9\u53f7
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#html","title":"\u5185\u8054 HTML \u8bed\u6cd5/\u7279\u6b8a\u5b57\u7b26\u81ea\u52a8\u8f6c\u4e49","text":"
\u5bf9\u4e8e Markdown \u4e2d\u672a\u5305\u542b\u7684\u6807\u7b7e, \u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 HTML\u6807\u7b7e\uff0c\u4f8b\u5982\u7528 HTML <a>
\u6807\u7b7e\u66ff\u4ee3 Markdown \u7684\u94fe\u63a5\u8bed\u6cd5
\u5728 HTML \u4e2d, \u6709\u4e00\u4e9b\u5b57\u7b26\u9700\u8981\u7279\u6b8a\u5bf9\u5f85\uff0c\u5982\u679c\u4f60\u60f3\u5c06\u5b83\u4eec\u7528\u4f5c\u5b57\u9762\u91cf, \u5219\u9700\u8981\u5c06\u5b83\u4eec\u8f6c\u4e49\u4e3a\u5b57\u7b26\u5b9e\u4f53
\u7279\u6b8a\u5b57\u7b26 \u4ee3\u7801 &
&
<
<
>
>
\"
"
"
'
'
'
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_28","title":"\u6ce8\u91ca","text":"
<div style='display: none'>\n\u6ce8\u91ca\n</div>\n
<!-- \u6ce8\u91ca -->\n
[//]: # (\u54c8\u54c8\u6211\u662f\u6700\u5f3a\u6ce8\u91ca1\uff0c\u4e0d\u4f1a\u5728\u6d4f\u89c8\u5668\u4e2d\u663e\u793a\u3002)\n[^_^]: # (\u54c8\u54c8\u6211\u662f\u6700\u840c\u6ce8\u91ca2\uff0c\u4e0d\u4f1a\u5728\u6d4f\u89c8\u5668\u4e2d\u663e\u793a\u3002)\n
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_29","title":"\u7a7a\u683c","text":"
\u30101\u3011 \u534a\u89d2\u7684\u4e0d\u65ad\u884c\u7684\u7a7a\u767d\u683c\uff08\u63a8\u8350\u4f7f\u7528\uff09\n\u30102\u3011   \u534a\u89d2\u7684\u7a7a\u683c\n\u30103\u3011   \u5168\u89d2\u7684\u7a7a\u683c\n
- \u30101\u3011 \u00a0 \u534a\u89d2\u7684\u4e0d\u65ad\u884c\u7684\u7a7a\u767d\u683c\uff08\u63a8\u8350\u4f7f\u7528\uff09
- \u30102\u3011 \u2002 \u534a\u89d2\u7684\u7a7a\u683c
- \u30103\u3011 \u2003 \u5168\u89d2\u7684\u7a7a\u683c
\u540c\u65f6\u63a8\u8350\u8fd9\u4e2a\u7f51\u7ad9\u53bb\u5b66\u4e60\u57fa\u7840markdown\u8bed\u6cd5\uff1arunoob.com
-
Markdown\u662f\u4e00\u79cd\u7eaf\u6587\u672c\u6807\u8bb0\u8bed\u8a00\u00a0\u21a9
-
HyperText Markup Language \u8d85\u6587\u672c\u6807\u8bb0\u8bed\u8a00\u00a0\u21a9
","tags":["Markdown"]},{"location":"develop/designbeauty/db1/","title":"\u5510\u00b7\u8bfa\u66fc\u2014\u60c5\u611f\u8bbe\u8ba1\u7684\u4e09\u4e2a\u5c42\u6b21","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u5510\u00b7\u8bfa\u66fc\u63d0\u51fa\u7684\u60c5\u611f\u8bbe\u8ba1\u4e09\u5c42\u6b21\u7406\u8bba\u5305\u62ec\u672c\u80fd\u5c42\u3001\u884c\u4e3a\u5c42\u548c\u53cd\u601d\u5c42\u3002\u672c\u80fd\u5c42\u5173\u6ce8\u4ea7\u54c1\u5916\u89c2\u5f15\u53d1\u7684\u5373\u65f6\u60c5\u611f\u53cd\u5e94\uff1b\u884c\u4e3a\u5c42\u5f3a\u8c03\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u7684\u529f\u80fd\u6027\u548c\u6548\u7387\uff1b\u53cd\u601d\u5c42\u6d89\u53ca\u7528\u6237\u5bf9\u4ea7\u54c1\u7684\u7406\u6027\u5206\u6790\u548c\u81ea\u6211\u8ba4\u540c\u3002\u8fd9\u4e09\u4e2a\u5c42\u6b21\u76f8\u4e92\u5f71\u54cd\uff0c\u5171\u540c\u5851\u9020\u7528\u6237\u5bf9\u4ea7\u54c1\u7684\u6574\u4f53\u4f53\u9a8c\u3002\u8be5\u7406\u8bba\u4e3a\u8bbe\u8ba1\u63d0\u4f9b\u4e86\u7cfb\u7edf\u6846\u67b6\uff0c\u5e2e\u52a9\u5e73\u8861\u7f8e\u5b66\u3001\u529f\u80fd\u4e0e\u60c5\u611f\u9700\u6c42\uff0c\u5e7f\u6cdb\u5e94\u7528\u4e8e\u4ea7\u54c1\u5f00\u53d1\u548c\u7528\u6237\u4f53\u9a8c\u4f18\u5316\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a5 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a2163
\u539f\u6587\uff1aNorman's Three Levels of Design
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_1","title":"\u5510\u00b7\u8bfa\u66fc\u2014\u60c5\u611f\u8bbe\u8ba1\u7684\u4e09\u4e2a\u5c42\u6b21","text":"
\u5728\u4eba\u7c7b\u7684\u5185\u5fc3\u4e16\u754c\uff0c\u6709\u8bb8\u591a\u90e8\u5206\u8d1f\u8d23\u6211\u4eec\u6240\u8bf4\u7684\u60c5\u611f\uff0c\u603b\u7684\u6765\u8bf4\uff0c\u8fd9\u4e9b\u533a\u57df\u5171\u540c\u6784\u6210\u4e86\u60c5\u611f\u7cfb\u7edf\u3002\u5510\u00b7\u8bfa\u66fc\uff08Don Norman\uff09\u63d0\u51fa\uff0c\u60c5\u611f\u7cfb\u7edf\u7531\u4e09\u4e2a\u4e0d\u540c\u4f46\u76f8\u4e92\u8054\u7cfb\u7684\u5c42\u6b21\u7ec4\u6210\uff0c\u6bcf\u4e2a\u5c42\u6b21\u90fd\u4ee5\u4e00\u79cd\u7279\u6b8a\u7684\u65b9\u5f0f\u5f71\u54cd\u7740\u6211\u4eec\u5bf9\u4e16\u754c\u7684\u4f53\u9a8c\u3002\u8fd9\u4e09\u4e2a\u5c42\u6b21\u662f\u672c\u80fd\u5c42\uff0c\u884c\u4e3a\u5c42\u548c\u53cd\u601d\u5c42\u3002\u672c\u80fd\u5c42\u4e0e\u4eba\u7c7b\u60c5\u7eea\u4e2d\u56fa\u6709\u7684\u3001\u81ea\u53d1\u7684\u4ee5\u53ca\u7b26\u5408\u52a8\u7269\u6027\u7684\u7279\u6027\u76f8\u5173\uff0c\u8fd9\u4e9b\u57fa\u672c\u4e0a\u662f\u4e0d\u53d7\u4eba\u7c7b\u672c\u8eab\u63a7\u5236\u7684\u3002\u884c\u4e3a\u5c42\u6307\u7684\u662f\u4eba\u7c7b\u884c\u4e3a\u4e2d\u90a3\u4e9b\u53ef\u63a7\u7684\u65b9\u9762\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u4e0b\u610f\u8bc6\u7684\u5206\u6790\u6240\u5904\u60c5\u51b5\u5e76\u4e14\u5236\u5b9a\u4ee5\u76ee\u6807\u4e3a\u5bfc\u5411\u7684\u7b56\u7565\uff0c\u4ece\u800c\u80fd\u591f\u5728\u6700\u77ed\u65f6\u95f4\u5185\u6216\u662f\u4ee5\u6700\u5c11\u7684\u884c\u52a8\u8fbe\u5230\u6548\u679c\u3002\u6b63\u5982\u5510\u00b7\u8bfa\u66fc\u6240\u8a00\uff0c\u53cd\u601d\u5c42\u662f\u6307\u201c\u6709\u610f\u8bc6\u7684\u601d\u8003\uff0c\u5bf9\u65b0\u6982\u5ff5\u8fdb\u884c\u5b66\u4e60\uff0c\u548c\u5bf9\u4e16\u754c\u8fdb\u884c\u5f52\u7eb3\u3002\u201d\u8fd9\u4e09\u4e2a\u5c42\u6b21\u4f5c\u4e3a\u60c5\u611f\u7cfb\u7edf\u7684\u4e0d\u540c\u7ef4\u5ea6\u72ec\u7acb\u5b58\u5728\uff0c\u53c8\u76f8\u4e92\u5173\u8054\uff0c\u76f8\u4e92\u5f71\u54cd\uff0c\u4ece\u800c\u521b\u9020\u4e86\u6211\u4eec\u5bf9\u4e16\u754c\u7684\u6574\u4f53\u60c5\u611f\u4f53\u9a8c\u3002
\u5728\u5510\u00b7\u8bfa\u66fc\u7684\u300a\u60c5\u611f\u5316\u8bbe\u8ba1\uff1a\u4e3a\u4ec0\u4e48\u6211\u4eec\u559c\u6b22\uff08\u6216\u8ba8\u538c\uff09\u65e5\u5e38\u4e8b\u7269\u300b\uff08\u4e00\u672c\u8ba4\u77e5\u79d1\u5b66\uff0c\u8bbe\u8ba1\u5b66\uff0c\u53ef\u7528\u6027\u5de5\u7a0b\u9886\u57df\u6770\u51fa\u7684\u5b66\u672f\u4f5c\u54c1\uff09\u4e00\u4e66\u4e2d\uff0c\u4ed6\u5bf9\u60c5\u611f\u5316\u7cfb\u7edf\u7684\u8fd9\u4e09\u4e2a\u65b9\u9762\u6216\u5c42\u6b21\u505a\u4e86\u533a\u5206\uff08\u5b83\u4eec\u4e09\u8005\u7efc\u5408\u5f71\u54cd\u7740\u4eba\u7c7b\u7684\u60c5\u611f\u6216\u5fc3\u7406\uff09\uff0c\u5373\uff1a\u672c\u80fd\u5c42\uff0c\u884c\u4e3a\u5c42\u53ca\u53cd\u601d\u5c42\u3002\u8fd9\u4e09\u8005\u5728\u60c5\u611f\u7cfb\u7edf\u4e2d\u7d27\u5bc6\u4ea4\u7ec7\u5728\u4e00\u8d77\uff0c\u5e76\u4ee5\u5404\u81ea\u7279\u5b9a\u7684\u65b9\u5f0f\u5f71\u54cd\u8bbe\u8ba1\u3002\u4ee5\u4e0b\u662f\u4e09\u8005\u5bf9\u5e94\u7684\u76f8\u5e94\u4e09\u79cd\u8bbe\u8ba1\u5c42\u6b21\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_2","title":"\u672c\u80fd\u5c42\u8bbe\u8ba1","text":"
\u672c\u80fd\u5c42\u8bbe\u8ba1-\u201c\u5173\u6ce8\u5916\u89c2\u672c\u8eab\u201d\u3002\u8fd9\u4e00\u5c42\u6b21\u7684\u8bbe\u8ba1\u5173\u6ce8\u7684\u662f\u4e8b\u7269\u4e2d\u53ef\u4ee5\u88ab\u76f4\u63a5\u611f\u77e5\u7684\u90a3\u90e8\u5206\u7279\u5f81\u4ee5\u53ca\u5b83\u4eec\u662f\u5982\u4f55\u8ba9\u7528\u6237\u6216\u89c2\u5bdf\u8005\u4ea7\u751f\u611f\u53d7\u7684\u3002\u4f8b\u5982\uff0c\u7956\u7236\u7684\u6000\u8868\u548c\u4e00\u4e2a\u5c0f\u7684\u58c1\u6302\u5f0f\u65f6\u949f\u4e00\u6837\u90fd\u5305\u542b\u4e86\u6700\u57fa\u672c\u7684\u8ba1\u65f6\u529f\u529f\u80fd\uff0c\u9664\u4e86\u5916\u89c2\uff0c\u4ed6\u4eec\u5728\u5185\u5728\u7279\u5f81\u4e0a\u6ca1\u6709\u4efb\u4f55\u4e0d\u540c\uff0c\u4f46\u662f\u672c\u80fd\u5c42\uff08\u6df1\u5c42\u6b21\u7684\uff0c\u65e0\u610f\u8bc6\u7684\uff0c\u4e3b\u89c2\u7684\u548c\u81ea\u53d1\u7684\u611f\u53d7\uff09\u7279\u5f81\u4f7f\u5b83\u5728\u62e5\u6709\u8005\u773c\u4e2d\u4ea7\u751f\u4e86\u533a\u522b\u3002
\u5982\u4eca\u4ea7\u54c1\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u7684\u5f88\u5927\u4e00\u90e8\u5206\u65f6\u95f4\u88ab\u7528\u5728\u672c\u80fd\u5c42\u8bbe\u8ba1\u4e2d\uff0c\u56e0\u4e3a\u5c5e\u4e8e\u540c\u4e00\u65cf\u7fa4\u7684\u4ea7\u54c1\u5f80\u5f80\u5177\u6709\u76f8\u540c\u6216\u76f8\u4f3c\u7684\u529f\u80fd\uff0c\uff08\u6bd4\u5982\u8bf4\u624b\u7535\uff0c\u6c34\u58f6\uff0c\u9762\u5305\u673a\uff0c\u53f0\u706f\uff09\uff0c\u6240\u4ee5\u66f4\u5177\u7279\u5f81\u7684\u5916\u89c2\u662f\u533a\u5206\u4ea7\u54c1\u548c\u7ade\u4e89\u8005\u7684\u5173\u952e\u56e0\u7d20\u3002\u8fd9\u4e5f\u5c31\u662f\u6211\u4eec\u6240\u8bf4\u7684\u201d\u54c1\u724c\u5316\u8bbe\u8ba1\u201d\u2014\u2014\u4e0d\u662f\u901a\u8fc7\u4ea7\u54c1\u63d0\u4f9b\u7ed9\u7528\u6237\u533a\u522b\u4e8e\u5176\u4ed6\u4ea7\u54c1\u7684\u5b9e\u9645\u5229\u76ca\uff0c\u800c\u662f\u901a\u8fc7\u5951\u5408\u7528\u6237\u7684\u6001\u5ea6\u3001\u4fe1\u4ef0\u3001\u60c5\u611f\u4ee5\u53ca\u7528\u6237\u60f3\u8981\u7684\u611f\u53d7\uff0c\u6765\u5f15\u51fa\u7528\u6237\u5bf9\u4ea7\u54c1\u7684\u60c5\u611f\u4e0a\u7684\u56de\u5e94\u3002\u8fd9\u53ef\u4ee5\u662f\u901a\u8fc7\u4f7f\u7528\u513f\u7ae5\u3001\u52a8\u7269\u6216\u662f\u5361\u901a\u5f62\u8c61\u7684\u56fe\u7247\u6765\u4f20\u8fbe\u5e74\u8f7b\u7684\u611f\u89c9\uff0c\u4e5f\u53ef\u4ee5\u662f\u901a\u8fc7\u5bf9\u8272\u5f69\uff08\u6bd4\u5982\u8bf4\uff0c\u7ea2\u8272\u5bf9\u5e94\u7740\u201c\u6027\u611f\u201c\uff0c\u9ed1\u8272\u5bf9\u5e94\u7740\u201d\u6050\u6016\u201d\uff09\uff0c\u5f62\u72b6\uff08\u6bd4\u5982\u786c\u8fb9\u7f18\u5f62\u72b6\uff09\u7684\u8fd0\u7528\uff0c\u751a\u81f3\u662f\u8fd0\u7528\u98ce\u683c\uff08\u6bd4\u5982\u88c5\u9970\u827a\u672f\uff09\uff0c\u8ba9\u4eba\u8054\u60f3\u8d77\u67d0\u4e9b\u7279\u5b9a\u7684\u65f6\u4ee3\u3002\u672c\u80fd\u8bbe\u8ba1\u65e8\u5728\u6df1\u5165\u4e86\u89e3\u7528\u6237/\u6d88\u8d39\u8005/\u89c2\u5bdf\u8005\u7684\u5934\u8111\uff0c\u5e76\u4e14\u901a\u8fc7\u7275\u52a8\u7528\u6237\u60c5\u7eea\u6765\u63d0\u5347\u7528\u6237\u4f53\u9a8c\uff08\u6bd4\u5982\u8bf4\u6539\u5584\u6574\u4f53\u89c6\u89c9\u5f62\u8c61\uff09\u6216\u662f\u670d\u52a1\u5546\u4e1a\u5229\u76ca\uff08\u6bd4\u5982\u8bf4\u4e3a\u4e86\u516c\u53f8\u6216\u4ea7\u54c1\u6240\u6709\u8005\u7684\u5229\u76ca\uff0c\u4ece\u60c5\u611f\u4e0a\u52ab\u6301\u7528\u6237\u4f7f\u4ed6\u4eec\u8fdb\u884c\u8d2d\u4e70\uff09\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_3","title":"\u884c\u4e3a\u5c42\u8bbe\u8ba1","text":"
\u884c\u4e3a\u5c42\u8bbe\u8ba1-\u201c\u4e0e\u4f7f\u7528\u7684\u6109\u60a6\u611f\u548c\u6548\u7387\u6709\u5173\u3002\u201d\u884c\u4e3a\u5c42\u8bbe\u8ba1\u53ef\u80fd\u66f4\u66f4\u5e38\u88ab\u79f0\u4e3a\u53ef\u7528\u6027\uff0c\u800c\u4e24\u8005\u6307\u7684\u90fd\u662f\u4ea7\u54c1\u4e2d\u5b9e\u7528\u6027\u548c\u529f\u80fd\u6027\u65b9\u9762\uff0c\u6216\u662f\u662f\u6211\u4eec\u5728\u6240\u5904\u73af\u5883\u4e2d\u6240\u80fd\u4f7f\u7528\u7684\u4efb\u4f55\u4ea7\u54c1\u7684\u53ef\u7528\u6027\u3002\u884c\u4e3a\u5c42\u8bbe\u8ba1\uff08\u4ece\u73b0\u5728\u8d77\u6211\u4eec\u7528\u8fd9\u4e2a\u8bcd\u6c47\u6765\u4ee3\u66ff\u53ef\u7528\u6027\uff09\u7740\u773c\u4e8e\uff0c\u8bf8\u5982\uff0c\u7528\u6237\u5982\u4f55\u8fdb\u884c\u6d3b\u52a8\uff1b\u5982\u4f55\u5feb\u901f\u548c\u51c6\u786e\u5730\u5b9e\u73b0\u4ed6\u4eec\u7684\u76ee\u6807\u548c\u76ee\u7684\uff1b\u7528\u6237\u5728\u6267\u884c\u67d0\u4e9b\u4efb\u52a1\u65f6\u72af\u4e86\u591a\u5c11\u9519\u8bef\uff1b\u4ee5\u53ca\u4ea7\u54c1\u5982\u4f55\u5f88\u597d\u5730\u9002\u5e94\u719f\u7ec3\u548c\u7f3a\u4e4f\u7ecf\u9a8c\u7684\u7528\u6237\u7b49\u95ee\u9898\u3002
\u884c\u4e3a\u5c42\u8bbe\u8ba1\u53ef\u80fd\u662f\u6700\u5bb9\u6613\u6d4b\u8bd5\u7684\uff0c\u56e0\u4e3a\u4e00\u65e6\u5bf9\u8c61\u7684\u7269\u7406\uff08\u6bd4\u5982\u8bf4\u624b\u67c4\u3001\u6309\u94ae\u3001\u628a\u624b\u3001\u63a7\u5236\u6746\u3001\u5f00\u5173\u4ee5\u53ca\u952e\uff09\u6216\u53ef\u7528\u90e8\u5206\u4ee5\u67d0\u79cd\u65b9\u5f0f\u88ab\u6539\u53d8\u6216\u64cd\u4f5c\uff0c\u5c31\u53ef\u4ee5\u5728\u8868\u73b0\u5c42\u5bf9\u5176\u8fdb\u884c\u8861\u91cf\u3002\u6bd4\u5982\u8bf4\uff0c\u8d1f\u8d23\u72ec\u7acb\u64cd\u4f5c\u7684\u4e24\u4e2a\u6309\u94ae\u88ab\u653e\u7f6e\u5728\u4e0d\u540c\u7684\u8ddd\u79bb\u4ece\u800c\u6d4b\u91cf\u7528\u6237\u8fde\u7eed\u5b8c\u6210\u8fd9\u4e24\u4e2a\u64cd\u4f5c\u7684\u65f6\u95f4\u3002\u6216\u8005\uff0c\u901a\u8fc7\u76f8\u540c\u7684\u64cd\u4f5c\u6765\u6d4b\u8bd5\u9519\u8bef\u7387\u3002\u6d89\u53ca\u884c\u4e3a\u5c42\u4f53\u9a8c\u7684\u4f8b\u5b50\u8fd8\u5305\u62ec\uff0c\u5f53\u6211\u4eec\u62ff\u51fa\u624b\u673a\u65f6\u80fd\u591f\u8fc5\u901f\u627e\u5230\u8054\u7cfb\u4eba\u5e76\u62e8\u6253\u53f7\u7801\u7684\u6109\u60a6\u611f\uff1b\u5728\u7535\u8111\u952e\u76d8\u4e0a\u80fd\u591f\u8f7b\u677e\u6253\u5b57\uff0c\u800c\u5728\u5c0f\u7684\u89e6\u5c4f\u8bbe\u5907\uff0c\u6bd4\u5982\u8bf4iPod Touch\u4e0a\u6253\u5b57\u5c31\u6bd4\u8f83\u56f0\u96be\uff1b\u4ee5\u53ca\u6211\u4eec\u5728\u4f7f\u7528\u4e00\u4e2a\u8bbe\u8ba1\u826f\u597d\u7684\u7535\u8111\u6e38\u620f\u624b\u67c4\uff08\u5c31\u50cf\u6211\u7684N64\u63a7\u5236\u677f\uff09\u65f6\u7684\u4eab\u53d7\u3002\u884c\u4e3a\u5c42\u9762\u672c\u8d28\u4e0a\u662f\u6307\u6211\u4eec\u56e0\u5b8c\u6210\u6216\u672a\u80fd\u5b8c\u6210\u76ee\u6807\u800c\u4ea7\u751f\u7684\u60c5\u7eea\u3002\u5f53\u4ea7\u54c1/\u7269\u54c1\u80fd\u591f\u5e2e\u52a9\u6211\u4eec\u7528\u4e00\u70b9\u70b9\u6709\u610f\u8bc6\u7684\u52aa\u529b\uff0c\u5e76\u4e14\u6574\u4e2a\u8fc7\u7a0b\u4e2d\u9047\u5230\u6700\u5c11\u7684\u56f0\u96be\u5c31\u80fd\u5b8c\u6210\u76ee\u6807\uff0c\u8fd9\u65f6\u6211\u4eec\u7684\u60c5\u7eea\u5f88\u53ef\u80fd\u662f\u79ef\u6781\u7684\u3002\u76f8\u53cd\uff0c\u5f53\u4ea7\u54c1\u9650\u5236\u6211\u4eec\uff0c\u8feb\u4f7f\u6211\u4eec\u6839\u636e\u4ea7\u54c1\u7684\u9650\u5236\u6765\u89e3\u91ca\u6216\u8c03\u6574\u6211\u4eec\u7684\u76ee\u6807\uff0c\u6216\u8005\u53ea\u662f\u8ba9\u6211\u4eec\u5728\u4f7f\u7528\u4ea7\u54c1\u65f6\u5bc6\u5207\u5173\u6ce8\u8fd9\u4e9b\u76ee\u6807\u65f6\uff0c\u6211\u4eec\u66f4\u503e\u5411\u4e8e\u4ea7\u751f\u4e00\u4e9b\u8d1f\u9762\u60c5\u7eea\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_4","title":"\u53cd\u601d\u5c42\u8bbe\u8ba1","text":"
\u53cd\u601d\u5c42\u8bbe\u8ba1\u201c\u8003\u8651\u4ea7\u54c1\u7684\u5408\u7406\u5316\u548c\u667a\u80fd\u5316\u3002\u5173\u4e8e\u8be5\u4ea7\u54c1\u6211\u80fd\u8bb2\u8ff0\u4e00\u4e2a\u6545\u4e8b\u5417\uff1f\u5b83\u7b26\u5408\u6211\u7684\u81ea\u6211\u5f62\u8c61\uff0c\u6211\u7684\u81ea\u5c0a\u5fc3\u9700\u8981\u5417\uff1f\u201d\u8fd9\u5c31\u662f\u60c5\u611f\u8bbe\u8ba1\u7684\u6700\u9ad8\u5c42\u6b21\uff1b\u4ee3\u8868\u6211\u4eec\u6709\u610f\u8bc6\u6709\u601d\u60f3\u5730\u8fdb\u884c\u8bbe\u8ba1\uff1b\u6743\u8861\u5176\u4f18\u7f3a\u70b9\uff1b\u5229\u7528\u6211\u4eec\u66f4\u7ec6\u5fae\u548c\u7406\u6027\u7684\u4e00\u9762\u8fdb\u884c\u5224\u65ad\uff0c\u5e76\u63d0\u53d6\u4fe1\u606f\u4ee5\u786e\u5b9a\u5b83\u5bf9\u6211\u4eec\u4e2a\u4eba\u7684\u610f\u4e49\u3002\u53cd\u601d\u601d\u7ef4\u4f7f\u6211\u4eec\u80fd\u591f\u5408\u7406\u5316\u73af\u5883\u4fe1\u606f\u4ee5\u5f71\u54cd\u884c\u4e3a\u5c42\u3002\u6bd4\u5982\u8bf4\u667a\u80fd\u624b\u8868\u3002\u201d\u57fa\u4e8e\u8fd9\u4e00\u70b9\uff0c\u97e9\u56fd\u5927\u5b66\u7684\u7814\u7a76\u5458Jaewon Choi\u548cSongcheol Kim\u8003\u5bdf\u4e86\u7528\u6237\u4f7f\u7528\u667a\u80fd\u624b\u8868\u7684\u76ee\u7684\u4e3b\u8981\u662f\u57fa\u4e8e\u4e24\u4e2a\u4e3b\u8981\u56e0\u7d20\uff0c\u4e00\u79cd\u662f\u7528\u6237\u5c06\u667a\u80fd\u624b\u8868\u89c6\u4e3a\u6280\u672f\u521b\u65b0\u53e6\u4e00\u79cd\u662f\u5c06\u5176\u4f5c\u4e3a\u5962\u4f88\u65f6\u5c1a\u4ea7\u54c1\u3002\u4ece\u7528\u6237\u89c6\u89d2\u6765\u770b\uff0c\u5c06\u667a\u80fd\u624b\u8868\u89c6\u4e3a\u4e00\u9879\u6280\u672f\u521b\u65b0\uff0c\u8fd9\u4e0e\u4ed6\u4eec\u5bf9\u8bbe\u5907\u7684\u5b9e\u7528\u6027\u548c\u6613\u7528\u6027\uff08\u884c\u4e3a\u5c42\uff09\u7684\u770b\u6cd5\u6709\u5173\u3002\u53e6\u4e00\u65b9\u9762\uff0c\u7528\u6237\u5c06\u667a\u80fd\u624b\u8868\u89c6\u4e3a\u4e00\u79cd\u5962\u4f88\u65f6\u5c1a\u4ea7\u54c1\uff0c\u8fd9\u65e2\u548c\u4ed6\u4eec\u5c06\u5982\u4f55\u4eab\u53d7\u667a\u80fd\u624b\u8868\u7684\u8ba4\u77e5\uff0c\u4e5f\u548c\u667a\u80fd\u624b\u8868\u5c06\u4e3a\u4ed6\u4eec\u63d0\u4f9b\u600e\u6837\u7684\u81ea\u6211\u8868\u73b0\u529b\u6709\u5173\uff08\u5373\u8868\u8fbe\u81ea\u5df1\u548c\u589e\u5f3a\u5f62\u8c61\u7684\u80fd\u529b\uff09\u3002\u4eab\u53d7\u548c\u81ea\u6211\u8868\u8fbe\u90fd\u53d7\u5230\u672c\u80fd\u5c42\u7684\u5f71\u54cd\uff08\u201c\u624b\u8868\u770b\u8d77\u6765\u6f02\u4eae\u5417\uff1f\u201d\uff09\u4f46\u4e5f\u5f88\u53d7\u5230\u53cd\u601d\u5c42\u7684\u5f71\u54cd\uff08\u201c\u5f53\u6211\u7684\u670b\u53cb\u770b\u5230\u6211\u6234\u7740\u8fd9\u53ea\u8868\u65f6\uff0c\u4ed6\u4eec\u4f1a\u600e\u4e48\u60f3\uff1f\u201d\uff09\u3002
\u53cd\u601d\u5c42\u8c03\u8282\u4e86\u884c\u4e3a\u5c42\u5e26\u6765\u7684\u5f71\u54cd\u2014\u2014\u7528\u6237\u5f88\u53ef\u80fd\u4f1a\u5fcd\u53d7\u667a\u80fd\u624b\u8868\u6613\u7528\u6027\u65b9\u9762\u7684\u56f0\u96be\u548c\u7f3a\u70b9\uff0c\u56e0\u4e3a\u4ed6\u4eec\u76f8\u4fe1\u4ed6\u4eec\u80fd\u4ece\u667a\u80fd\u624b\u8868\u4e2d\u83b7\u5f97\u5176\u4ed6\u975e\u529f\u80fd\u6027\u7684\u5229\u76ca\u3002\u82f9\u679c\u667a\u80fd\u624b\u8868\u7684\u7b2c\u4e00\u4e2a\u7248\u672c\u5145\u6ee1\u4e86\u529f\u80fd\u95ee\u9898\u548c\u53ef\u7528\u6027\u95ee\u9898\uff0c\u4f46\u8fd9\u5e76\u6ca1\u6709\u963b\u6b62\u82f9\u679c\u5728\u9500\u552e\u667a\u80fd\u624b\u8868\u7684\u7b2c\u4e00\u5e74\u521b\u9020\u51fa\u5168\u7403\u624b\u8868\u4ea7\u4e1a\u7684\u7b2c\u4e8c\u5927\u6536\u5165\uff01
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#the-take-away","title":"The Take Away","text":"
\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u4ecb\u7ecd\u4e86\u5510\u00b7\u8bfa\u66fc\u7684\u4e09\u4e2a\u8bbe\u8ba1\u5c42\u6b21\uff1a\u8bbe\u8ba1\u7684\u672c\u80fd\u5c42\u3001\u884c\u4e3a\u5c42\u548c\u53cd\u601d\u5c42\u3002\u8bbe\u8ba1\u7684\u672c\u80fd\u5c42\u6307\u7684\u662f\u8bbe\u8ba1\u7684\u7b2c\u4e00\u5370\u8c61\uff0c\u65e0\u8bba\u662f\u4ece\u7528\u6237\u5982\u4f55\u770b\u5f85\u4ea7\u54c1\uff0c\u8fd8\u662f\u4ece\u7528\u6237\u5bf9\u4ea7\u54c1\u7684\u611f\u53d7\u3002\u884c\u4e3a\u5c42\u662f\u6307\u4ea7\u54c1\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u7684\u4f53\u9a8c\u3002\u5f53\u6211\u4eec\u60f3\u5230\u7528\u6237\u4f53\u9a8c\u65f6\uff0c\u6211\u4eec\u5e38\u5e38\u4f1a\u60f3\u5230\u8fd9\u4e2a\u5c42\u6b21\u3002\u53cd\u601d\u5c42\u662f\u6307\u7528\u6237\u5728\u4f7f\u7528\u524d\u3001\u4f7f\u7528\u4e2d\u548c\u4f7f\u7528\u540e\u5bf9\u4ea7\u54c1\u7684\u601d\u8003\u3002\u8fd9\u4e09\u4e2a\u5c42\u6b21\u90fd\u7ed3\u5408\u5728\u4e00\u8d77\u5f62\u6210\u4e86\u6574\u4e2a\u4ea7\u54c1\u4f53\u9a8c\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_5","title":"\u53c2\u8003","text":"
Choi, J., & Kim, S. (2016). \u201cIs the smartwatch an IT product or a fashion product? A study on factors affecting the intention to use smartwatches\u201d. Computers in Human Behavior, 63, 777-786.
\u4f5c\u8005\uff1aAndreas Komninos
\u8bd1\u8005\uff1a\u5b54
\u5ba1\u7a3f\uff1aHoodie
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/my-to-desihn/","title":"\u6211\u5bf9\u8bbe\u8ba1\u7684\u4e00\u4e9b\u770b\u6cd5","text":"
\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u9610\u8ff0\u4e86\u8bbe\u8ba1\u9886\u57df\u7684\u6838\u5fc3\u539f\u5219\u4e0e\u5b9e\u8df5\u8981\u70b9\u3002\u5f3a\u8c03\u7b80\u6d01\u6027\u3001\u89c6\u89c9\u7f8e\u611f\u548c\u7528\u6237\u4f53\u9a8c\u662f\u4f18\u79c0\u8bbe\u8ba1\u7684\u4e09\u5927\u652f\u67f1\uff0c\u63d0\u51fa\u901a\u8fc7\u7cbe\u7b80\u5143\u7d20\u3001\u4f18\u5316\u4ea4\u4e92\u6d41\u7a0b\u548c\u6ce8\u91cd\u7ec6\u8282\u6765\u63d0\u5347\u4ea7\u54c1\u8d28\u611f\u3002\u540c\u65f6\u6307\u51fa\u521b\u65b0\u601d\u7ef4\u548c\u60c5\u611f\u5171\u9e23\u5bf9\u8bbe\u8ba1\u7684\u91cd\u8981\u6027\uff0c\u4e3b\u5f20\u878d\u5408\u6545\u4e8b\u6027\u4e0e\u54c1\u724c\u4ef7\u503c\u6765\u521b\u9020\u5dee\u5f02\u5316\u4f53\u9a8c\u3002\u5168\u6587\u7cfb\u7edf\u6027\u5730\u603b\u7ed3\u4e86\u4ece\u529f\u80fd\u5b9e\u73b0\u5230\u60c5\u611f\u8fde\u63a5\u7684\u591a\u7ef4\u5ea6\u8bbe\u8ba1\u65b9\u6cd5\u8bba\u3002
\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f
\u9605\u8bfb\u65f6\u95f4\uff1a1 \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a398
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/my-to-desihn/#some-of-my-thoughts-on-design","title":"Some of my thoughts on design","text":"\u5438\u5f15\u4eba\u7684\u4e8b\u7269\u603b\u8ba9\u4eba\u5fc3\u60c5\u6109\u60a6 \u5e76\u53cd\u8fc7\u6765\u4fc3\u8fdb\u4ed6\u4eec\u7684\u601d\u7ef4\u66f4\u5177\u521b\u610f
-
\u7b80\u6d01\u4e0e\u7cbe\u70bc\uff1a\u7b80\u6d01\u3001\u7cbe\u70bc\u548c\u7cbe\u786e\u7684\u8868\u8fbe\u3002\u53bb\u9664\u4e0d\u5fc5\u8981\u7684\u5143\u7d20\uff0c\u4f7f\u8bbe\u8ba1\u66f4\u52a0\u7b80\u6d01\u660e\u4e86\u3002\u5173\u6ce8\u6838\u5fc3\u529f\u80fd\u548c\u4fe1\u606f\uff0c\u907f\u514d\u8fc7\u5ea6\u8bbe\u8ba1\u548c\u5197\u4f59\u3002
-
\u4f18\u96c5\u4e0e\u7f8e\u611f\uff1a\u8ffd\u6c42\u4f18\u96c5\u548c\u7f8e\u611f\u7684\u8bbe\u8ba1\u3002\u6ce8\u91cd\u7ebf\u6761\u7684\u6d41\u7545\u6027\u548c\u89c6\u89c9\u4e0a\u7684\u5e73\u8861\u3002\u901a\u8fc7\u7cbe\u5fc3\u7684\u6392\u7248\u3001\u5bf9\u6bd4\u548c\u6bd4\u4f8b\uff0c\u521b\u9020\u51fa\u4ee4\u4eba\u6109\u60a6\u7684\u89c6\u89c9\u6548\u679c\u3002
-
\u7528\u6237\u4f53\u9a8c\u81f3\u4e0a\uff1a\u4ee5\u7528\u6237\u4e3a\u4e2d\u5fc3,\u5173\u6ce8\u7528\u6237\u9700\u6c42\u548c\u884c\u4e3a\u6a21\u5f0f\uff0c\u521b\u9020\u51fa\u7b80\u5355\u76f4\u89c2\u3001\u6613\u4e8e\u4f7f\u7528\u7684\u4ea7\u54c1\u548c\u754c\u9762\u3002\u901a\u8fc7\u51cf\u5c11\u590d\u6742\u6027\u548c\u63d0\u4f9b\u65e0\u7f1d\u7684\u4ea4\u4e92\u4f53\u9a8c\uff0c\u4f7f\u7528\u6237\u4e0e\u4ea7\u54c1\u4e4b\u95f4\u7684\u4e92\u52a8\u66f4\u52a0\u81ea\u7136\u6d41\u7545\u3002
-
\u5f3a\u8c03\u7ec6\u8282\uff1a\u4ece\u5b57\u4f53\u9009\u62e9\u5230\u989c\u8272\u642d\u914d\uff0c\u4ece\u56fe\u6807\u8bbe\u8ba1\u5230\u52a8\u753b\u6548\u679c\uff0c\u90fd\u9700\u8981\u7ecf\u8fc7\u7cbe\u5fc3\u7684\u8003\u8651\u548c\u628a\u63a7\u3002\u7ec6\u8282\u7684\u5173\u6ce8\u4f7f\u5f97\u4ea7\u54c1\u7684\u6574\u4f53\u8d28\u611f\u66f4\u51fa\u8272\u3002
-
\u521b\u65b0\u4e0e\u7a81\u7834\uff1a\u9f13\u52b1\u521b\u65b0\u548c\u7a81\u7834\u4f20\u7edf\u89c2\u5ff5\u7684\u601d\u7ef4\u65b9\u5f0f\u3002\u5c06\u4e0d\u540c\u7684\u5143\u7d20\u878d\u5408\u5728\u4e00\u8d77\uff0c\u521b\u9020\u51fa\u72ec\u7279\u7684\u8bbe\u8ba1\u89e3\u51b3\u65b9\u6848\u3002\u5728\u8bbe\u8ba1\u4e2d\u5bfb\u627e\u7a81\u7834\u70b9\uff0c\u63d0\u4f9b\u65b0\u9896\u800c\u5bcc\u6709\u521b\u610f\u7684\u4f53\u9a8c\u3002
-
\u6545\u4e8b\u6027\u4e0e\u60c5\u611f\u5171\u9e23\uff1a\u60c5\u611f\u5171\u9e23\u548c\u6545\u4e8b\u6027\u7684\u4f53\u9a8c\u3002\u8bbe\u8ba1\u6765\u4f20\u9012\u4ea7\u54c1\u7684\u80cc\u540e\u6545\u4e8b\u548c\u54c1\u724c\u7684\u4ef7\u503c\u89c2\u3002\u901a\u8fc7\u7b80\u5355\u800c\u6709\u529b\u7684\u8bbe\u8ba1\u8bed\u8a00\uff0c\u6fc0\u53d1\u7528\u6237\u7684\u60c5\u611f\u5171\u9e23\u548c\u5bf9\u4ea7\u54c1\u7684\u8ba4\u540c\u3002
\u3010\u26a1\u554a\uff01\u8bbe\u8ba1\uff0c\u662f\u4ec0\u4e48\u5462\uff1f\u26a1\u3011
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"en/","title":"Home","text":"\"Follow this arduous journey to reach the stars\"
- Open articles by topic and table of contents
- For Mac/PC, please select the topic in the tab bar above and select the article in the directory on the left
- Mobile version, please click the icon in the upper left corner to select topics and articles
- Search for keywords to open articles
- If you encounter web page freezes or images cannot be displayed after opening an article, please use Scientific Internet Access to break information barriers
Quick Chat(1) Contact Me(2)
- Click on the bottom right corner to chat with me online.
- Wechat:18939533255
-
Mkdocs Tutorial
- Deploy static web pages to GitHub pages with Mkdocs
- Mkdocs deployment configuration explanation (mkdocs.yml)
- How to add friends links to MKdocs
- Adding Mkdocs blog to website
- Blogger
-
About
- Mkdocs-Wcowin blog theme community
- Message Board1
- Blogger Learn about me2
This site is already running
-
The sun always warms sunflowers\u00a0\u21a9
-
All problems in computer science can be solved by another level of indirection\u00a0\u21a9
"},{"location":"blog/archive/2025/","title":"2025","text":""},{"location":"blog/archive/2024/","title":"2024","text":""},{"location":"blog/archive/2023/","title":"2023","text":""},{"location":"blog/archive/2022/","title":"2022","text":""},{"location":"blog/archive/2021/","title":"2021","text":""},{"location":"blog/category/%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/category/hello-world/","title":"Hello World","text":""}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\u200b\\u3000\\-\u3001\u3002\uff0c\uff0e\uff1f\uff01\uff1b]+","pipeline":["stemmer"]},"docs":[{"location":"","title":"Home","text":"\u6700\u597d\u7684MkDocs\u535a\u5ba2\u6559\u7a0b
\u4e0d\u540c\u4e8e\u5e02\u9762\u4e0a\u8fc7\u65f6\u7684MkDocs\u6559\u7a0b\uff0c\u672c\u7ad9\u63d0\u4f9b\u4e86\u6700\u8be6\u7ec6\u6700\u4fbf\u6377\u6700\u524d\u6cbf\u7684MkDocs\u4e2d\u6587\u6587\u5b57/\u89c6\u9891\u6559\u7a0b\uff0c\u4e0e\u5b98\u65b9\u53d1\u5e03\u7684\u6559\u7a0b\u7248\u672c\u540c\u6b65\u3002\u5305\u542b\u4e86MkDocs\u7684\u5b89\u88c5\u3001\u914d\u7f6e\u3001\u4e3b\u9898\u7f8e\u5316\u3001\u63d2\u4ef6\u4f7f\u7528\u7b49\u5185\u5bb9\u3002\u65e0\u8bba\u4f60\u662f\u521d\u5b66\u8005\u8fd8\u662f\u6709\u7ecf\u9a8c\u7684\u7528\u6237\uff0c\u90fd\u80fd\u5728\u8fd9\u91cc\u627e\u5230\u4f60\u9700\u8981\u7684\u5e2e\u52a9\u3002\u6211\u4eec\u8fd8\u63d0\u4f9b\u4e86\u793a\u4f8b\u548c\u5b9e\u7528\u7684\u6280\u5de7\uff0c\u5e2e\u52a9\u4f60\u66f4\u597d\u5730\u4f7f\u7528MkDocs\u3002\ud835\udcf3\ud835\udcfe\ud835\udcfc\ud835\udcfd \ud835\udcee\ud835\udcf7\ud835\udcf3\ud835\udcf8\ud835\udd02 \ud835\udcf2\ud835\udcfd\uff5e
\u672c\u7ad9\u5df2\u7ecf\u8fd0\u884c
-
\u592a\u9633\u603b\u662f\u80fd\u6e29\u6696\u5411\u65e5\u8475\u00a0\u21a9
-
All-problems-in-computer-science-can-be-solved-by-another-level-of-indirection\u00a0\u21a9
"},{"location":"link/","title":"\u53cb\u94fe","text":""},{"location":"link/#_1","title":"\u6b22\u8fce\u52a0\u5165\u53cb\u94fe(\u4e0d\u5206\u5148\u540e)","text":"Wcowin's Blog \u201c\u5faa\u6b64\u82e6\u65c5\uff0c\u4ee5\u8fbe\u661f\u8fb0\u201d"},{"location":"link/#_2","title":"\u5931\u8054\u4eba\u5458","text":"\u90dd\u5b87\u535a\u5ba2 \u8bb0\u5f55\u6211\u7684\u6210\u957f\u548c\u9752\u6625 \u4ea4\u6362\u53cb\u94fe\uff0c\u8bf7\u6dfb\u52a0\u672c\u7ad9\u53cb\u94fe\u540e\u4e0b\u65b9\u7559\u8a00\u7533\u8bf7\uff0c\u671f\u671b\u60a8\u7684\u7ad9\u70b9:
- \u72ec\u7acb\u535a\u5ba2(\u4e0d\u8981\u6c42\u72ec\u7acb\u57df\u540d)\uff0chttps\uff0c\u8bbf\u95ee\u6d41\u7545
- \u539f\u521b\u5185\u5bb9\u4e3a\u4e3b\uff0c\u539f\u521b\u5185\u5bb93\u7bc7\u4ee5\u4e0a
- \u5904\u4e8e\u6d3b\u8dc3\u72b6\u6001\uff0c\u6709\u4e00\u5b9a\u7684\u66f4\u65b0\u9891\u7387
- \u5efa\u7ad9\u4e00\u4e2a\u6708\u4ee5\u4e0a
- \u672a\u6dfb\u52a0\u53cb\u94fe\u6216\u7533\u8bf7\u672a\u901a\u8fc7\uff0c\u8bc4\u8bba\u7559\u8a00\u4f1a\u88ab\u9690\u85cf\u3002
\u672c\u7ad9\u5df2\u7ecf\u52a0\u5165\u5341\u5e74\u4e4b\u7ea6\uff1a \u8bf7\u653e\u5fc3\u6dfb\u52a0\u672c\u7ad9\u53cb\u94fe
\u53cb\u94fe\u683c\u5f0f\u793a\u4f8b/\u672c\u7ad9\u4fe1\u606f:
TxtHTML(\u63a8\u8350)Butterfly\u901a\u7528
\u540d\u79f0: Wcowin's Blog \u94fe\u63a5: https://wcowin.work/ \u5934\u50cf: https://pic4.zhimg.com/80/v2-a0456a5f527c1923f096759f2926012f_1440w.webp \u7b80\u4ecb: \u5faa\u6b64\u82e6\u65c5\uff0c\u4ee5\u8fbe\u661f\u8fb0
\u63a8\u8350\u5728\u8bc4\u8bba\u533a\u53d1\u9001\u8fd9\u79cd\u683c\u5f0f\uff0c*\u53f7\u7684\u9700\u8981\u586b\u5199\u81ea\u5df1\u7684\u4fe1\u606f
<div class=\"card\"> \n <img class=\"ava\" src=\"*\u4f60\u7684\u5934\u50cf\u94fe\u63a5*\" /> \n <div class=\"card-header\"> \n <div> \n <a href=\"*\u4f60\u7684\u7f51\u7ad9\u5730\u5740* \" target=\"_blank\">*\u4f60\u7684\u7ad9\u70b9\u540d\u79f0*</a> \n </div> \n <div class=\"info\">\n *\u4f60\u7684\u7ad9\u70b9\u63cf\u8ff0*\n </div> \n </div> \n</div>\n
- name: Wcowin's Blog\n link: https://wcowin.work/\n avatar: https://pic4.zhimg.com/80/v2-a0456a5f527c1923f096759f2926012f_1440w.webp\n descr: \u5faa\u6b64\u82e6\u65c5\uff0c\u4ee5\u8fbe\u661f\u8fb0\n
\u70b9\u51fb\u586b\u5199\u53cb\u94fe\u7533\u8bf7\u95ee\u5377
"},{"location":"liuyanban/","title":"\u7545\u6240\u6b32\u8a00\u7559\u8a00\u677f","text":"
\u6708\u843d\u4e4c\u557c\u971c\u6ee1\u5929 \u6c5f\u67ab\u6e14\u706b\u5bf9\u6101\u7720
\u300a\u67ab\u6865\u591c\u6cca\u300b\u3010\u5510\u4ee3\u3011\u5f20\u7ee7
\u8bc4\u8bba\u7cfb\u7edf\u5207\u6362
Giscus Cusdis
\u8bc4\u8bba\u5ba1\u6838\u540e\u624d\u4f1a\u663e\u793a
"},{"location":"tag/","title":"\u5206\u7c7b","text":""},{"location":"tag/#tags","title":"Tags","text":"
"},{"location":"tag/#tag:markdown","title":"Markdown","text":"
- MWeb Pro
- Markdown\u6307\u5357
"},{"location":"tag/#tag:mkdocs","title":"Mkdocs","text":"
- 0.Mkdocs\u6559\u7a0b\u524d\u8a00
- 1.\u5229\u7528Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875
- 2.Mkdocs\u914d\u7f6e\u8bf4\u660e(mkdocs.yml)
- 3.\u89e3\u51b3Github Pages\u90e8\u7f72mkdocs\u81ea\u5b9a\u4e49\u57df\u540d\u5931\u6548\u7684\u95ee\u9898
- JS\u5b9e\u73b0\u9f20\u6807\u6837\u5f0f
- MkDocs\u6587\u6863AI\u6458\u8981
- \u4e3aMKdocs\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233
- \u4fee\u6539\u7f51\u7ad9\u5b57\u4f53
- \u52a0\u901f\u7f51\u7ad9\u8bbf\u95ee\u7684\u4e00\u4e9b\u5fc3\u5f97
- \u5d4c\u5165PDF\u6587\u4ef6
- \u6dfb\u52a0404\u9875\u9762
- \u6dfb\u52a0Mkdocs\u535a\u5ba2
- \u6dfb\u52a0\u53cb\u94fe
- \u6dfb\u52a0\u5728\u7ebf\u804a\u5929
- \u6dfb\u52a0\u8bc4\u8bba\u7cfb\u7edf(giscus\u4e3a\u4f8b)
- \u6dfb\u52a0\u9876\u90e8\u516c\u544a\u680f
- \u76f8\u5bf9\u5730\u5740\u7684\u4e00\u4e9b\u95ee\u9898
- \u7f51\u9875\u5706\u89d2\u5316\u8bbe\u8ba1
- \u80cc\u666f\u7279\u6548
- \u9875\u811a\u8bbe\u7f6e
"},{"location":"tag/#tag:\u6280\u672f\u5206\u4eab","title":"\u6280\u672f\u5206\u4eab","text":"
- Git \u5b9e\u7528\u6280\u5de7
- \u5229\u7528Lighthouse\u6d4b\u8bd5\u7f51\u7ad9\u6027\u80fd
- \u5982\u4f55\u5c06 github pages \u8fc1\u79fb\u5230 vercel \u4e0a\u6258\u7ba1
"},{"location":"tag/#tag:\u8bbe\u8ba1\u7f8e\u5b66","title":"\u8bbe\u8ba1\u7f8e\u5b66","text":"
- \u5510\u00b7\u8bfa\u66fc\u2014\u60c5\u611f\u8bbe\u8ba1\u7684\u4e09\u4e2a\u5c42\u6b21
- \u6211\u5bf9\u8bbe\u8ba1\u7684\u4e00\u4e9b\u89c2\u70b9
"},{"location":"ZH-TW/","title":"\u9996\u9801","text":"\u201c\u5faa\u6b64\u82e6\u65c5 \u4ee5\u9054\u661f\u8fb0\u201d
- \u900f\u904e\u4e3b\u984c\u548c\u76ee\u9304\u4ee5\u958b\u555f\u6587\u7ae0
- Mac/PC\u7aef \u8acb\u5728\u4e0a\u65b9\u6a19\u7c64\u5217\u9078\u64c7\u4e3b\u984c \u5728\u5de6\u5074\u76ee\u9304\u9078\u64c7\u6587\u7ae0
- \u884c\u52d5\u7aef \u8acb\u9ede\u9078\u5de6\u4e0a\u89d2\u5716\u793a\u9078\u64c7\u4e3b\u984c\u548c\u6587\u7ae0
- \u641c\u5c0b\u95dc\u9375\u5b57\u4ee5\u958b\u555f\u6587\u7ae0
- \u5982\u9047\u5230\u7db2\u9801\u5361\u9813/\u958b\u555f\u6587\u7ae0\u5f8c\u7121\u6cd5\u986f\u793a\u5716\u7247\u7684\u60c5\u6cc1\uff0c\u8acb\u4f7f\u7528\u79d1\u5b78\u4e0a\u7db2\u4ee5\u6253\u7834\u8cc7\u8a0a\u58c1\u58d8
\u5feb\u901f\u8ac7\u8a71(1) \u806f\u7d61\u6211(2)
- \u9ede\u9078\u53f3\u4e0b\u89d2\u8207\u6211\u7dda\u4e0a\u4ea4\u8ac7.
- 18939533255
-
Mkdocs\u6559\u7a0b
- \u5229\u7528Mkdocs\u90e8\u7f72\u975c\u614b\u7db2\u9801\u81f3GitHub pages
- Mkdocs\u90e8\u7f72\u914d\u7f6e\u8aaa\u660e(mkdocs.yml)
- \u5982\u4f55\u7d66MKdocs\u6dfb\u52a0\u53cb\u93c8
- \u7db2\u7ad9\u6dfb\u52a0Mkdocs\u535a\u5ba2
- Blogger
-
\u95dc\u65bc
- Mkdocs-Wcowin\u535a\u5ba2\u4e3b\u984c\u793e\u5340
- \u7559\u8a00\u677f1
- Blogger \u4e86\u89e3\u62112
\u672c\u7ad9\u5df2\u7d93\u904b\u4f5c
-
\u592a\u967d\u7e3d\u662f\u80fd\u6eab\u6696\u5411\u65e5\u8475\u00a0\u21a9
-
All problems in computer science can be solved by another level of indirection\u00a0\u21a9
"},{"location":"about/geren/","title":"\u5173\u4e8e\u6211","text":""},{"location":"about/geren/#_1","title":"\u4eca\u65e5\u8bd7\u8bcd","text":""},{"location":"about/geren/#_2","title":"\u5173\u4e8e\u6211","text":"\u89c2\u53f2\u77e5\u4eca\uff0c\u5f53\u601d\u8fdb\u9000\uff0c\u8bfb\u4e66\u660e\u5fd7\u53ef\u8bc6\u6625\u79cb \u2014\u2014Wcowin 1\u5e74+ \u5de5\u4f5c\u7ecf\u9a8c 3\u9879+ \u5b8c\u6210\u7684\u9879\u76ee 2\u4e2a+ \u8d21\u732e\u7684\u5f00\u6e90 \u4e0b\u8f7d\u7b80\u5386"},{"location":"about/geren/#_3","title":"\u6211\u7684\u5c65\u5386","text":"\u6765\u65f6\u8def \u6f2f\u6cb3\u9ad8\u4e2d \u5e73\u51e1\u7684\u4e09\u5e74 2018 - 2021 CTBU \u7535\u5b50\u4fe1\u606f\u5de5\u7a0b\u4e13\u4e1a\u5b66\u58eb 2021 - 2025 \u5bb6\u91cc\u8e72\u5927\u5b66 \u5bc6\u7801\u5b66\u7855\u58eb\u7814\u7a76\u751f 2026 - 2029 \u672a\u5b8c\u5f85\u7eed \u4e8e\u9053\u5404\u52aa\u529b\uff0c\u5343\u91cc\u81ea\u540c\u98ce Before - After"},{"location":"about/geren/#_4","title":"\u4e2a\u4eba\u7b80\u4ecb","text":"
\ud835\ude3f\ud835\ude64\ud835\ude63'\ud835\ude69 \ud835\ude58\ud835\ude56\ud835\ude67\ud835\ude5a \ud835\ude56\ud835\ude57\ud835\ude64\ud835\ude6a\ud835\ude69 \ud835\ude6c\ud835\ude64\ud835\ude67\ud835\ude61\ud835\ude59\ud835\ude61\ud835\ude6e \ud835\ude5a\ud835\ude6e\ud835\ude5a\ud835\ude68 \ud835\ude69\ud835\ude64 \ud835\ude65\ud835\ude6a\ud835\ude67\ud835\ude68\ud835\ude6a\ud835\ude5a \ud835\ude6e\ud835\ude64\ud835\ude6a\ud835\ude67 \ud835\ude64\ud835\ude6c\ud835\ude63 \ud835\ude61\ud835\ude5e\ud835\ude5c\ud835\ude5d\ud835\ude69
About me
- Hey, I'm Wcowin~
- \u5496\u5561\u91cd\u5ea6\u7231\u597d\u8005
- \u70ed\u7231(xi\u0101)\u6298\u817e\u6280\u672f/Math\uff0c\u76ee\u524d\u7684\u7814\u7a76\u9886\u57df\u662f\u5bc6\u7801\u5b66
- \u8bfb\u4e66\u660e\u5fd7\u53ef\u8bc6\u6625\u79cb;\u8bd7\u8bcd\u7231\u597d\u8005;\u559c\u6b22\u6751\u4e0a\u6625\u6811;\u64c5\u957f\u7fbd\u6bdb\u7403
- \u6e05\u9192\uff0c\u77e5\u8da3\uff0c\u660e\u5f97\u5931\uff0c\u77e5\u8fdb\u9000
"},{"location":"about/geren/#_5","title":"\u8054\u7cfb\u6211","text":"
\u6211\u7684Wechat \u6211\u7684TG
-
Email
\u53d1\u9001\u7535\u5b50\u90ae\u4ef6
-
Telegram Let's Chat
-
Twitter @Wcowin
\u516c\u4f17\u53f7 \u516c\u4f17\u53f7
\ud83d\udcac\u6211\u7535\u8bdd\u53f7\u7801\u7684MD5
\u7801\uff1a7037F514864088F907CC921687B670EE\uff08\u7834\u89e3\u6709\u5956\uff09
"},{"location":"about/geren/#_6","title":"\u987b\u77e5","text":"\u5982\u679c\u4f60\u5728\u6d4f\u89c8\u535a\u5ba2\u7684\u8fc7\u7a0b\u4e2d\u53d1\u73b0\u4e86\u4efb\u4f55\u95ee\u9898\uff0c\u6b22\u8fce\u524d\u5f80 GitHub \u7684\u4ee3\u7801\u4ed3\u5e93\u63d0\u4ea4 Issues \u6216\u76f4\u63a5\u4fee\u6539\u76f8\u5173\u6587\u4ef6\u540e\u63d0\u4ea4 Pull Requests\u3002\u5982\u679c\u4f60\u6709\u5176\u4ed6\u4e8b\u60c5\u60f3\u8981\u54a8\u8be2\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u65b9\u6309\u94ae\u4f7f\u7528\u90ae\u4ef6\u8054\u7cfb\u6211,\u8bf7\u4e0d\u8981\u6ee5\u7528\u535a\u5ba2\u7684\u8bc4\u8bba\u529f\u80fd\u53d1\u8868\u4e0e\u4e3b\u9898\u65e0\u5173\u8a00\u8bba\u3002
\u4e0e\u6211\u8054\u7cfb
\u5982\u679c\u7ed9\u6211\u53d1\u90ae\u4ef6\uff0c\u6216\u8005\u901a\u8fc7\u53f3\u4e0b\u89d2\u5fae\u4fe1\u6dfb\u52a0\u597d\u53cb\uff0c\u8bf7\u5199\u4e0a\u60a8\u7684\u771f\u540d\u5b9e\u59d3\u3002\u5bf9\u4e8e\u90a3\u4e9b\u4e0d\u77e5\u6765\u8def\u3001\u4e0a\u6765\u5c31\u95ee\u95ee\u9898\u7684\u5fae\u4fe1\u548c\u90ae\u4ef6\uff0c\u6211\u901a\u5e38\u4f1a\u76f4\u63a5\u5ffd\u7565\uff0c\u8c22\u8c22\u3002
\u53d1\u9001\u7535\u5b50\u90ae\u4ef6
"},{"location":"about/resume/","title":"\u4e2a\u4eba\u7b80\u5386","text":"\u8bf7\u4f7f\u7528PC\u7aef\u67e5\u770b\uff0c\u8c22\u8c22 "},{"location":"about/test/","title":"\u529f\u80fd\u6d4b\u8bd5","text":"Info
\u6d4b\u8bd5\u4e2d\u7684\u5c0f\u7ec4\u4ef6\uff0c\u53ef\u770b\u6e90\u4ee3\u7801\u81ea\u884c\u53d6\u7528
\u201c\u5faa\u6b64\u82e6\u65c5 \u4ee5\u8fbe\u661f\u8fb0\u201d
Image caption
\\(\\overset{w\u00e1ng}{\u738b}\\overset{k\u0113}{\u79d1}\\overset{w\u00e9n}{\u6587}\\)
- H2O
- ATA
- This was marked
- This was inserted
- This was deleted
"},{"location":"about/test/#01","title":"01","text":" - HTML for content and structure
- JavaScript for interactivity
- CSS for text running out of boxes
- Internet Explorer ... huh?
-
Set up in 5 minutes
Install mkdocs-material
with pip
and get up and running in minutes
Getting started
-
It's just Markdown
Focus on your content and generate a responsive and searchable static site
Reference
-
Made to measure
Change the colors, fonts, language, icons, logo and more with a few lines
Customization
-
Open Source, MIT
Material for MkDocs is licensed under MIT and available on [GitHub]
License
\u8fd9\u662f\u6d4b\u8bd5\u5e76\u4e14\u88ab\u63a9\u76d6\u7684\u6587\u5b57\uff01
\u5929\u6c14\u63d2\u4ef6 CC++ #include <stdio.h>\n\nint main(void) {\n printf(\"Hello world!\\n\");\n return 0;\n}\n
#include <iostream>\n\nint main(void) {\n std::cout << \"Hello world!\" << std::endl;\n return 0;\n}\n
def bubble_sort(items):\n for i in range(len(items)):\n for j in range(len(items) - 1 - i):\n if items[j] > items[j + 1]:\n items[j], items[j + 1] = items[j + 1], items[j]\n
Note
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Phasellus posuere in sem ut cursus
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Tip Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Info
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Subscribe to our newsletter
Send
Method Description GET
Fetch resource PUT
Update resource DELETE
Delete resource - Lorem ipsum dolor sit amet, consectetur adipiscing elit
- Vestibulum convallis sit amet nisi a tincidunt
- In hac habitasse platea dictumst
- In scelerisque nibh non dolor mollis congue sed et metus
- Praesent sed risus massa
- Aenean pretium efficitur erat, donec pharetra, ligula non scelerisque
\\[ \\operatorname{ker} f=\\{g\\in G:f(g)=e_{H}\\}{\\mbox{.}} \\] \u5de6\u5bf9\u9f50\uff0c\u53f3\u5bf9\u9f50
\u56fe\u7247\u8bf4\u660e \u660e\u6697
graph LR\n A[Start] --> B{Error?};\n B -->|Yes| C[Hmm...];\n C --> D[Debug];\n D --> B;\n B ---->|No| E[Yay!];
sequenceDiagram\n Alice->>John: Hello John, how are you?\n loop Healthcheck\n John->>John: Fight against hypochondria\n end\n Note right of John: Rational thoughts!\n John-->>Alice: Great!\n John->>Bob: How about you?\n Bob-->>John: Jolly good!
Pied Piper
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo purus auctor massa, nec semper lorem quam in massa.
Ctrl+Alt+Del
\u70b9\u6211\u56de\u5230\u9876\u90e8
Hover me
Hover me
The HTML specification is maintained by the W3C.
def bubble_sort(items):\n for i in range(len(items)):\n for j in range(len(items) - 1 - i):\n if items[j] > items[j + 1]:\n items[j], items[j + 1] = items[j + 1], items[j]\n
def bubble_sort(items):\n for i in range(len(items)):\n for j in range(len(items) - 1 - i):\n if items[j] > items[j + 1]:\n items[j], items[j + 1] = items[j + 1], items[j]\n
.browserslistrcWcowin\n
\n graph LR\n A --- B\n B-->C[fa:fa-ban forbidden]\n B-->D(fa:fa-spinner);\n
\u6765\u770b\u770b\u4e24\u4e2a\u91cd\u8981\u6781\u9650
\\[\\displaystyle\\lim_{x \\rightarrow 0}\\frac{\\sin x}{x} = 1\\] \\[\\displaystyle\\lim_{x \\rightarrow + \\infty}(1 + \\frac{1}{x})^x = e\\] \u6309\u94ae Green
\u6211\u662f\u4f1a\u9690\u85cf\u7684\u5143\u7d20\u3002 \u5934\u90e8 \u83dc\u5355 \u4e3b\u8981\u5185\u5bb9\u533a\u57df \u53f3\u4fa7 \u5e95\u90e8 \u8fd9\u662f\u4e00\u4e2a\u7535\u5b50\u90ae\u4ef6\u94fe\u63a5\uff1a \u53d1\u9001\u90ae\u4ef6
100 200 300 400 500 600 000000 000033 000066 000099 0000CC 0000FF 003300 003333 003366 003399 0033CC 0033FF 006600 006633 006666 006699 0066CC 0066FF 009900 009933 009966 009999 0099CC 0099FF 00CC00 00CC33 00CC66 00CC99 00CCCC 00CCFF 00FF00 00FF33 00FF66 00FF99 00FFCC 00FFFF 330000 330033 330066 330099 3300CC 3300FF 333300 333333 333366 333399 3333CC 3333FF 336600 336633 336666 336699 3366CC 3366FF 339900 339933 339966 339999 3399CC 3399FF 33CC00 33CC33 33CC66 33CC99 33CCCC 33CCFF 33FF00 33FF33 33FF66 33FF99 33FFCC 33FFFF 660000 660033 660066 660099 6600CC 6600FF 663300 663333 663366 663399 6633CC 6633FF 666600 666633 666666 666699 6666CC 6666FF 669900 669933 669966 669999 6699CC 6699FF 66CC00 66CC33 66CC66 66CC99 66CCCC 66CCFF 66FF00 66FF33 66FF66 66FF99 66FFCC 66FFFF 990000 990033 990066 990099 9900CC 9900FF 993300 993333 993366 993399 9933CC 9933FF 996600 996633 996666 996699 9966CC 9966FF 999900 999933 999966 999999 9999CC 9999FF 99CC00 99CC33 99CC66 99CC99 99CCCC 99CCFF 99FF00 99FF33 99FF66 99FF99 99FFCC 99FFFF CC0000 CC0033 CC0066 CC0099 CC00CC CC00FF CC3300 CC3333 CC3366 CC3399 CC33CC CC33FF CC6600 CC6633 CC6666 CC6699 CC66CC CC66FF CC9900 CC9933 CC9966 CC9999 CC99CC CC99FF CCCC00 CCCC33 CCCC66 CCCC99 CCCCCC CCCCFF CCFF00 CCFF33 CCFF66 CCFF99 CCFFCC CCFFFF FF0000 FF0033 FF0066 FF0099 FF00CC FF00FF FF3300 FF3333 FF3366 FF3399 FF33CC FF33FF FF6600 FF6633 FF6666 FF6699 FF66CC FF66FF FF9900 FF9933 FF9966 FF9999 FF99CC FF99FF FFCC00 FFCC33 FFCC66 FFCC99 FFCCCC FFCCFF FFFF00 FFFF33 FFFF66 FFFF99 FFFFCC FFFFFF
Email me!
"},{"location":"about/zcw/","title":"\u652f\u6301\u4f5c\u8005","text":" \u53ef\u4ee5\u7684\u8bdd \u8bf7\u6211\u559d\u4e00\u676f\u5496\u5561\u5427\u2615\ufe0f
"},{"location":"about/zcw/#alipay","title":"Alipay","text":""},{"location":"about/zcw/#wechat-pay","title":"WeChat Pay","text":""},{"location":"about/zcw/#ko-fi","title":"ko-fi","text":"\u8bf7\u4f5c\u8005\u559d\u676f\u5496\u5561
"},{"location":"about/zcw/#_2","title":"\u8d5e\u52a9\u5217\u8868","text":"\u8d5e\u52a9\u4eba \u8d5e\u52a9\u91d1\u989d \u8d5e\u52a9\u65f6\u95f4 *\u6025 15\uffe5 25/04/18 \u5343\u5e73 100\uffe5 25/04/16"},{"location":"blog/","title":"MyBlog","text":""},{"location":"blog/MIT/","title":"\u8bb8\u53ef\u58f0\u660e","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
MIT\u8bb8\u53ef\u8bc1\u6388\u4e88\u7528\u6237\u81ea\u7531\u4f7f\u7528\u3001\u4fee\u6539\u3001\u5206\u53d1\u8f6f\u4ef6\u7684\u5e7f\u6cdb\u6743\u5229\uff0c\u4ec5\u8981\u6c42\u4fdd\u7559\u7248\u6743\u58f0\u660e\u548c\u8bb8\u53ef\u6761\u6b3e\u3002\u8be5\u8bb8\u53ef\u8bc1\u660e\u786e\u58f0\u660e\u8f6f\u4ef6\u4e0d\u63d0\u4f9b\u4efb\u4f55\u62c5\u4fdd\uff0c\u4f5c\u8005\u4e0d\u5bf9\u4f7f\u7528\u540e\u679c\u627f\u62c5\u8d23\u4efb\u3002\u4f5c\u4e3a\u5bbd\u677e\u5f00\u6e90\u534f\u8bae\uff0cMIT\u8bb8\u53ef\u8bc1\u5141\u8bb8\u5546\u4e1a\u7528\u9014\u548c\u4e8c\u6b21\u5f00\u53d1\uff0c\u9002\u7528\u4e8e\u5e0c\u671b\u6700\u5927\u9650\u5ea6\u5f00\u653e\u4ee3\u7801\u7684\u5f00\u53d1\u8005\u3002
\u9ebb\u7701\u7406\u5de5\u5b66\u9662\u8bb8\u53ef\u8bc1MIT License \u7248\u6743\u6240\u6709 \u00a9 2016-2025 Martin Donath
\u7279\u6b64\u6388\u4e88\u83b7\u5f97\u6b64\u8f6f\u4ef6\u548c\u76f8\u5173\u6587\u6863\u6587\u4ef6\uff08\u201c\u8f6f\u4ef6\u201d\uff09\u526f\u672c\u7684\u4efb\u4f55\u4eba\u514d\u8d39\u8bb8\u53ef\uff0c\u4ee5\u65e0\u9650\u5236\u65b9\u5f0f\u5904\u7406\u8f6f\u4ef6\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u4f7f\u7528\u3001\u590d\u5236\u3001\u4fee\u6539\u3001\u5408\u5e76\u3001\u53d1\u5e03\u3001\u5206\u53d1\u3001\u518d\u8bb8\u53ef\u548c/\u6216\u9500\u552e\u8f6f\u4ef6\u526f\u672c\u7684\u6743\u5229\uff0c\u5e76\u5141\u8bb8\u5411\u5176\u63d0\u4f9b\u8f6f\u4ef6\u7684\u4eba\u5458\u8fd9\u6837\u505a\uff0c\u4f46\u987b\u9075\u5b88\u4ee5\u4e0b\u6761\u4ef6\uff1a
\u4e0a\u8ff0\u7248\u6743\u58f0\u660e\u548c\u672c\u8bb8\u53ef\u58f0\u660e\u5747\u5e94\u5305\u542b\u5728\u8f6f\u4ef6\u7684\u6240\u6709\u526f\u672c\u6216\u91cd\u8981\u90e8\u5206\u4e2d\u3002
\u8f6f\u4ef6\u6309\u201c\u539f\u6837\u201d\u63d0\u4f9b\uff0c\u4e0d\u4f5c\u4efb\u4f55\u660e\u793a\u6216\u6697\u793a\u7684\u4fdd\u8bc1\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\u9002\u9500\u6027\u3001\u7279\u5b9a\u7528\u9014\u7684\u9002\u7528\u6027\u548c\u4e0d\u4fb5\u6743\u6027\u7684\u4fdd\u8bc1\u3002\u5728\u4efb\u4f55\u60c5\u51b5\u4e0b\uff0c\u4f5c\u8005\u6216\u7248\u6743\u6301\u6709\u8005\u5747\u4e0d\u5bf9\u56e0\u8f6f\u4ef6\u6216\u4f7f\u7528\u6216\u5176\u4ed6\u5904\u7406\u8f6f\u4ef6\u800c\u5f15\u8d77\u7684\u6216\u4e0e\u4e4b\u76f8\u5173\u7684\u4efb\u4f55\u7d22\u8d54\u3001\u635f\u5bb3\u6216\u5176\u4ed6\u8d23\u4efb\u627f\u62c5\u8d23\u4efb\uff0c\u65e0\u8bba\u662f\u5408\u540c\u884c\u4e3a\u3001\u4fb5\u6743\u884c\u4e3a\u8fd8\u662f\u5176\u4ed6\u884c\u4e3a\u3002
Copyright \u00a9 2016-2025 Martin Donath
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
"},{"location":"blog/Mkdocs/mkdocs1/","title":"\u5229\u7528Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHubpages","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u8be6\u7ec6\u4ecb\u7ecd\u4e86\u4f7f\u7528MkDocs\u6846\u67b6\u90e8\u7f72\u9759\u6001\u7f51\u9875\u5230GitHub Pages\u7684\u5b8c\u6574\u6d41\u7a0b\u3002\u91cd\u70b9\u8bb2\u89e3\u4e86\u4ece\u521b\u5efaGitHub\u4ed3\u5e93\u3001\u672c\u5730\u73af\u5883\u914d\u7f6e\u3001MkDocs\u521d\u59cb\u5316\u5230\u6700\u7ec8\u90e8\u7f72\u7684\u5173\u952e\u6b65\u9aa4\uff0c\u5305\u62ec\u76ee\u5f55\u7ed3\u6784\u8c03\u6574\u3001workflow\u914d\u7f6e\u548c\u9875\u9762\u53d1\u5e03\u8bbe\u7f6e\u3002\u6559\u7a0b\u91c7\u7528Material for MkDocs\u4e3b\u9898\uff0c\u63d0\u4f9b\u4e86\u57fa\u7840yml\u914d\u7f6e\u793a\u4f8b\uff0c\u5e76\u5f3a\u8c03\u901a\u8fc7GitHub Desktop\u5b9e\u73b0\u4ee3\u7801\u540c\u6b65\u3002\u8be5\u65b9\u6cd5\u9002\u5408\u5feb\u901f\u642d\u5efa\u6280\u672f\u6587\u6863\u7f51\u7ad9\u6216\u4e2a\u4eba\u535a\u5ba2\uff0c\u5177\u5907\u7248\u672c\u63a7\u5236\u4f18\u52bf\u3002
Info
Material for MkDocs\u5b98\u65b9\u7f51\u7ad9: Material for MkDocs MkDocs\u4e2d\u6587\u6587\u6863: MkDocs\u4e2d\u6587\u6587\u6863
\u63a8\u8350\u770b\u4e0b\u8fd9\u4e2a\u89c6\u9891\uff1a How to set up Material for MkDocs by @Wcowin \u2013 10m \u2013 \u7528MKdocs\u6784\u5efa\u4e00\u4e2a\u535a\u5ba2\u7f51\u7ad9.
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs1/#_1","title":"\u4e00\u3001\u51c6\u5907\u5de5\u4f5c","text":"1.\u4e0b\u8f7dGithub Desktop
2.\u6709\u4e00\u4e2aGitHub\u8d26\u53f7\u200b\u200b\u200b\u200b\u200b\u200b\u200b(\u6709\u624b\u5c31\u884c)
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs1/#creating-your-site","title":"\u4e8c\u3001Creating your site","text":"\u53c2\u8003\u6559\u7a0b\uff1a
\u5229\u7528mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHubpages\uff08\u66f4\u65b0\u7248\uff09
\u4e0e\u5176\u4ed6\u6559\u7a0b\u4e0d\u540c\uff0c\u6211\u9996\u5148\u5efa\u8bae\u5148\u5728Github\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a\u4f60\u7684\u540d\u5b57+github.io\u7684\u4ed3\u5e93
\u7136\u540e\u6253\u5f00github Desktop \u514b\u9686\u5230\u672c\u5730
\u6253\u5f00Wcowin.github.io\u76ee\u5f55\u8fdb\u5165\u7ec8\u7aef\u4f9d\u6b21\u8fd0\u884c:
pip install mkdocs-material\nmkdocs new mkdocs-site\n
\u51fa\u73b0\u4e0b\u56fe\u7684\u51e0\u4e2a\u6587\u4ef6 Tip
\u8fd9\u91cc\u5efa\u8bae\u628amkdocs-site\u6587\u4ef6\u91cc\u7684\u4e1c\u897f\u5168\u90e8\u526a\u5207\u51fa\u6765\u5230Wcowin.github.io\u6587\u4ef6\u91cc
Wcowin.github.io\u662f\u514b\u9686\u5230\u672c\u5730\u7684\u4ed3\u5e93\uff08\u91cc\u9762\u5305\u542bdocs,yml\u6587\u4ef6\u7b49\u7b49\uff09\uff0cdocs\u6587\u4ef6\u4e0b\u662f\u4ee5\u540e\u7f51\u7ad9\u7684\u5185\u5bb9\uff0cmkdocs.yml\u662f\u914d\u7f6e\u6587\u4ef6\uff08\u914d\u7f6e\u4e3b\u9898\uff0c\u76ee\u5f55\uff0c\u63d2\u4ef6\u7b49\uff09
\u4f60\u5728\u8fd9\u4e2a\u76ee\u5f55\u4e0b\u5199\u7684\u4efb\u4f55\u4e1c\u897f\u90fd\u53ef\u4ee5\u901a\u8fc7Github Desktop \u4e0a\u4f20\u5230github\u4e0a
\u6267\u884c\u4e0b\u9762\u7684\u4ee3\u7801\u6dfb\u52a0\u4e00\u4e2aGitHub Workflow
\u8fc7\u65f6\u7684PublishMySite.yml (\u6267\u884c\u4e0b\u9762\u7684\u4ee3\u7801\u6dfb\u52a0\u4e00\u4e2aGitHub Workflow(\u5df2\u7ecf\u8fc7\u65f6\u4f46\u662f\u4ecd\u7136\u80fd\u7528\uff0c\u6700\u65b0\u65b9\u6cd5\u89c1\u4e0b\u65b9ci.yml)
mkdir .github\ncd .github\nmkdir workflows\ncd workflows\nvim PublishMySite.yml\n
\u5728PublishMySite.yml\u91cc\u9762\u8f93\u5165\u4ee5\u4e0b\u5185\u5bb9
name: publish site\non: # \u5728\u4ec0\u4e48\u65f6\u5019\u89e6\u53d1\u5de5\u4f5c\u6d41\n push: # \u5728\u4ece\u672c\u5730main\u5206\u652f\u88abpush\u5230GitHub\u4ed3\u5e93\u65f6\n branches:\n - main\n pull_request: # \u5728main\u5206\u652f\u5408\u5e76\u522b\u4eba\u63d0\u7684pr\u65f6\n branches:\n - main\njobs: # \u5de5\u4f5c\u6d41\u7684\u5177\u4f53\u5185\u5bb9\n deploy:\n runs-on: ubuntu-latest # \u521b\u5efa\u4e00\u4e2a\u65b0\u7684\u4e91\u7aef\u865a\u62df\u673a \u4f7f\u7528\u6700\u65b0Ubuntu\u7cfb\u7edf\n steps:\n - uses: actions/checkout@v2 # \u5148checkout\u5230main\u5206\u652f\n - uses: actions/setup-python@v2 # \u518d\u5b89\u88c5Python3\u548c\u76f8\u5173\u73af\u5883\n with:\n python-version: 3.x\n - run: pip install mkdocs-material # \u4f7f\u7528pip\u5305\u7ba1\u7406\u5de5\u5177\u5b89\u88c5mkdocs-material\n - run: mkdocs gh-deploy --force # \u4f7f\u7528mkdocs-material\u90e8\u7f72gh-pages\u5206\u652f\n
) mkdir .github\ncd .github\nmkdir workflows\ncd workflows\nvim ci.yml\n
\u8fdb\u5165.github/workflows/ci.yml\uff0c\u7136\u540e\u590d\u5236\u5e76\u7c98\u8d34\u4ee5\u4e0b\u5185\u5bb9\uff1a
name: ci \non:\n push:\n branches:\n - master \n - main\npermissions:\n contents: write\njobs:\n deploy:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n - name: Configure Git Credentials\n run: |\n git config user.name github-actions[bot]\n git config user.email 41898282+github-actions[bot]@users.noreply.github.com\n - uses: actions/setup-python@v4\n with:\n python-version: 3.x\n - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV \n - uses: actions/cache@v3\n with:\n key: mkdocs-material-${{ env.cache_id }}\n path: .cache\n restore-keys: |\n mkdocs-material-\n - run: pip install mkdocs-material \n - run: mkdocs gh-deploy --force\n
\u5230\u8fd9\u91cc\u5148\u68c0\u67e5\u4e00\u4e0b\u4f60\u7684\u76ee\u5f55\u7ed3\u6784 \u76ee\u5f55\u6811\u72b6\u56fe:
$ tree -a\nWcowin.github.io\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 ci.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2514\u2500\u2500 mkdocs.yml\n
\u91cd\u70b9\u6765\u4e86
Github\u4ed3\u5e93setings/Actions/General \u52fe\u9009\u8fd9\u4e24\u9879
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs1/#_2","title":"\u4e09\u3001\u914d\u7f6e\u5b8c\u5584","text":"\u6253\u5f00mkdocs.yml
\u628a\u4ee5\u4e0b\u7684\u5185\u5bb9\u8f93\u5165\u8fdb\u53bb\uff08\u6700\u7b80\u5355\u6700\u57fa\u7840\u7684\u914d\u7f6e\uff09
site_name: \u7f51\u7ad9\u540d\u5b57\nsite_url: \u7f51\u7ad9\u94fe\u63a5\nsite_author: \u4f60\u7684\u540d\u5b57\ntheme:\n name: material #\u4e3b\u9898\n
\u8be6\u7ec6mkdocs.yml\u914d\u7f6e\u89c1Changing the colors - Material for MkDocs
\u4e0b\u6b21\u6211\u4f1a\u5177\u4f53\u8c08\u8c08\u8fd9\u4e2a\u95ee\u9898
\u5728\u4e0b\u65b9\u7ec8\u7aef\u8fd0\u884c\u53ef\u4ee5\u5728\u6d4f\u89c8\u5668\u770b\u5230\u5b9e\u65f6\u7f51\u7ad9
mkdocs serve\n
\u8fd9\u4e2a\u7f51\u7ad9\u5c31\u7b97\u662f\u521d\u6b65\u5efa\u597d\u4e86
\u6700\u540e\u53bbgithub Desktop\u4e0a\u4f20\u5230github \u4e0a\u56fe\u53ef\u4ee5\u770b\u5230\uff0c\u6211\u4e0a\u4f20\u4e86Wcowin.github.io\u6587\u4ef6\u5939\uff0c\u8fd9\u4e2a\u6587\u4ef6\u5939\u91cc\u9762\u5305\u542b\u4e86mkdocs.yml\u548cdocs\u6587\u4ef6\u5939(mkdocs-site\u6587\u4ef6\u5939\u73b0\u5728\u6ca1\u6709\u4e1c\u897f\uff0c\u53ef\u4ee5\u5220\u9664)
\uff01\uff01\uff01\u91cd\u70b9 \u53bb\u4ed3\u5e93\u7684setings/pages\u9009\u62e9\u4e0b\u56fe\u793a\u610f\u7684\u8def\u5f84
\u7b49\u5f85\u4e00\u4f1a\u7f51\u5740\u5c31\u51fa\u6765\u4e861
\u4f60\u7684\u7f51\u7ad9\u7f51\u5740\u5c31\u662f\uff1a\u200b
https://\u4f60github\u7684\u540d\u5b57.github.io/\n\u56e0\u4e3a\u6211\u7ed1\u5b9a\u4e86\u57df\u540d\u6240\u4ee5\u7f51\u5740\u662f\uff1ahttps://wcowin.work/\n
\u4e0b\u6b21\u8c08\u8c08\u7f51\u7ad9\u7684mkdocs.yml\u5177\u4f53\u914d\u7f6e
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs1/#_3","title":"\u56db\u3001\u53c2\u8003\u8d44\u6599","text":" - MkDocs\u5b98\u7f51
- MkDocs\u4e2d\u6587\u6587\u6863
- Material for MkDocs
- Mkdocs \u914d\u7f6e\u548c\u4f7f\u7528
- Deploy MkDocs
-
\u4e8e2025.2.19\u91cd\u5199\u6b64\u6587\u00a0\u21a9
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/","title":"Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHub pages\u914d\u7f6e\u8bf4\u660e(mkdocs.yml)","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u8be6\u7ec6\u4ecb\u7ecd\u4e86Mkdocs\u914d\u7f6e\u6587\u4ef6mkdocs.yml\u7684\u6838\u5fc3\u914d\u7f6e\u9879\uff0c\u5305\u62ec\u7ad9\u70b9\u57fa\u672c\u4fe1\u606f\u3001\u4e3b\u9898\u914d\u8272\u65b9\u6848\u3001\u5bfc\u822a\u529f\u80fd\u8bbe\u7f6e\u548c\u641c\u7d22\u4f18\u5316\u7b49\u3002\u91cd\u70b9\u8bb2\u89e3\u4e86\u5982\u4f55\u901a\u8fc7palette\u914d\u7f6e\u5b9e\u73b0\u660e\u6697\u6a21\u5f0f\u5207\u6362\uff0c\u4ee5\u53ca\u901a\u8fc7features\u542f\u7528\u76ee\u5f55\u8ddf\u8e2a\u3001\u6807\u7b7e\u9875\u3001\u4ee3\u7801\u590d\u5236\u7b49\u5b9e\u7528\u529f\u80fd\u3002\u6b64\u5916\u8fd8\u6d89\u53ca\u591a\u8bed\u8a00\u652f\u6301\u3001\u56fe\u6807\u81ea\u5b9a\u4e49\u3001\u6807\u7b7e\u7cfb\u7edf\u5b9e\u73b0\u65b9\u6cd5\uff0c\u5e76\u63d0\u4f9b\u4e86\u6269\u5c55Markdown\u8bed\u6cd5\u548c\u6dfb\u52a0\u81ea\u5b9a\u4e49CSS/JS\u7684\u914d\u7f6e\u6307\u5bfc\u3002\u8be5\u914d\u7f6e\u6587\u4ef6\u53ef\u5e2e\u52a9\u7528\u6237\u5feb\u901f\u642d\u5efa\u529f\u80fd\u5b8c\u5584\u3001\u754c\u9762\u7f8e\u89c2\u7684\u6587\u6863\u7f51\u7ad9\u3002
\u5b98\u65b9\u6587\u4ef6\uff1aChanging the colors - Material for MkDocs
\u5efa\u8bae\u8be6\u7ec6\u5b66\u4e60\u4e00\u4e0b\u4e0a\u9762\u7684\u5b98\u65b9\u7f51\u7ad9\u2191\u2191\u2191
\u6211\u628a\u6211\u76ee\u524d\u7684\u914d\u7f6e\u6587\u4ef6mkdocs.yml\u4ee3\u7801\u5199\u5728\u4e0b\u9762\ud83d\udc47\ud83c\udffb
\u70b9\u51fb\u5c55\u5f00 #[Info]\nsite_name: Mkdocs\u6559\u7a0b #your site name \u663e\u793a\u5728\u5de6\u4e0a\u89d2\nsite_url: http://wcowin.work/Mkdocs-Wcowin\nsite_description: \u77e5\u8db3\u4e14\u4e0a\u8fdb\uff0c\u6e29\u67d4\u4e14\u575a\u5b9a\nsite_author: \u738b\u79d1\u6587(Wcowin) # your name\n#[UI]\ntheme:\n name: material\n custom_dir: docs/overrides #\u8986\u5199\u8def\u5f84\n # font: #\u8c37\u6b4c\u5b57\u4f53\uff0c\u81ea\u884c\u641c\u7d22\n # text: Bitter #\u6587\u672c\u5b57\u4f53\n # code: Roboto Mono #\u4ee3\u7801\u5b57\u4f53\n # logo: assets/favicon.png #\u5de6\u4e0a\u89d2logo\uff0c\u53ef\u63d2\u5165\u56fe\u7247\u94fe\u63a5\n favicon: https://s2.loli.net/2024/04/26/PmRdM9iGnvOJHgu.png # \u7f51\u9875icon\n palette:\n - media: \"(prefers-color-scheme)\"\n toggle:\n icon: material/link\n name: \u5173\u95ed\u81ea\u52a8\u6a21\u5f0f\n #primary: blue grey\n - media: \"(prefers-color-scheme: light)\"\n scheme: default # \u65e5\u95f4\u6a21\u5f0f\n primary: blue grey # \u4e0a\u65b9\u7684\n accent: blue # \u94fe\u63a5\u7b49\u53ef\u4ea4\u4e92\u5143\u4ef6\u7684\u9ad8\u4eae\u8272\n # teal\n toggle:\n icon: material/toggle-switch # \u56fe\u6807\n name: \u5207\u6362\u81f3\u591c\u95f4\u6a21\u5f0f # \u9f20\u6807\u60ac\u6d6e\u63d0\u793a\n - media: \"(prefers-color-scheme: dark)\"\n scheme: slate # \u591c\u95f4\u6a21\u5f0f\n primary: black\n accent: indigo\n # teal\n toggle:\n icon: material/toggle-switch-off-outline\n name: \u5207\u6362\u81f3\u65e5\u95f4\u6a21\u5f0f\n features:\n - announce.dismiss #\u5448\u73b0\u53ef\u6807\u8bb0\u4e3a\u7531\u7528\u6237\u8bfb\u53d6\u7684\u4e34\u65f6\u516c\u544a\uff0c\u53ef\u4ee5\u5305\u542b\u4e00\u4e2a\u7528\u4e8e\u53d6\u6d88\u5f53\u524d\u516c\u544a\u7684\u6309\u94ae\n # - navigation.instant\n #- header.autohide #\u81ea\u52a8\u9690\u85cf\n - navigation.tracking #\u5730\u5740\u680f\u4e2d\u7684 URL \u5c06\u81ea\u52a8\u66f4\u65b0\u4e3a\u5728\u76ee\u5f55\u4e2d\u7a81\u51fa\u663e\u793a\u7684\u6d3b\u52a8\u951a\u70b9\n - navigation.tabs #\u9876\u7ea7\u90e8\u5206\u5c06\u5448\u73b0\u5728\u4e0a\u9762\u89c6\u53e3\u6807\u9898\u4e0b\u65b9\u7684\u83dc\u5355\u5c42\u4e2d\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n # - navigation.tabs.sticky #\u542f\u7528\u7c98\u6027\u9009\u9879\u5361\u540e\uff0c\u5bfc\u822a\u9009\u9879\u5361\u5c06\u9501\u5b9a\u5728\u6807\u9898\u4e0b\u65b9\uff0c\u5e76\u5728\u5411\u4e0b\u6eda\u52a8\u65f6\u59cb\u7ec8\u4fdd\u6301\u53ef\u89c1\n - navigation.sections #\u542f\u7528\u90e8\u5206\u540e\uff0c\u9876\u7ea7\u90e8\u5206\u5728\u8fb9\u680f\u4e2d\u5448\u73b0\u4e3a1220px\u4ee5\u4e0a\u89c6\u53e3\u7684\u7ec4\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n - navigation.top # \u8fd4\u56de\u9876\u90e8\u7684\u6309\u94ae \u5728\u4e0a\u6ed1\u65f6\u51fa\u73b0\n - navigation.footer #\u9875\u811a\u5c06\u5448\u73b0\u5728\u8fb9\u680f\u4e2d\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n - search.suggest # \u641c\u7d22\u8f93\u5165\u4e00\u4e9b\u5b57\u6bcd\u65f6\u63a8\u8350\u8865\u5168\u6574\u4e2a\u5355\u8bcd\n - search.highlight # \u641c\u7d22\u51fa\u7684\u6587\u7ae0\u5173\u952e\u8bcd\u52a0\u5165\u9ad8\u4eae\n - search.share #\u641c\u7d22\u5206\u4eab\u6309\u94ae\n - navigation.expand # \u6253\u5f00Tab\u65f6\u5de6\u4fa7\u76ee\u5f55\u5168\u90e8\u5c55\u5f00\n - navigation.indexes #\u542f\u7528\u8282\u7d22\u5f15\u9875\u540e\uff0c\u53ef\u4ee5\u5c06\u6587\u6863\u76f4\u63a5\u9644\u52a0\u5230\u8282\n - content.tabs.link\n - content.tooltips\n - content.code.copy #\u4ee3\u7801\u590d\u5236\n - content.action.edit\n - content.action.view\n - content.code.annotate\n language: zh # \u4e00\u4e9b\u63d0\u793a\u6027\u7684\u6587\u5b57\u4f1a\u53d8\u6210\u4e2d\u6587\n icon:\n repo: fontawesome/brands/github #\u53f3\u4e0a\u89d2\u56fe\u6807\n logo: logo\nedit_uri: edit/main/docs # \u7f16\u8f91\u6309\u94ae\u8df3\u8f6c\u7684\u94fe\u63a5\nrepo_url: https://github.com/Wcowin/Mkdocs-Wcowin # \u53f3\u4e0a\u89d2\u70b9\u51fb\u8df3\u8f6c\u7684\u94fe\u63a5\nrepo_name: Mkdocs-Wcowin # \u53f3\u4e0a\u89d2\u7684\u540d\u5b57\n# [Navigtion]\nnav:\n # - \u4e3b\u9875: index.md\n - MKdocs\u4e2d\u6587\u6559\u7a0b:\n - MKdocs\u6559\u7a0b(\u4e09\u90e8\u66f2):\n - 0. Mkdocs\u6559\u7a0b\u524d\u8a00: blog/Mkdocs/mkfirst.md\n - 1. \u5229\u7528mkdocs\u90e8\u7f72\u4e2a\u4eba\u9759\u6001\u535a\u5ba2\u7f51\u9875\u81f3GitHub pages: blog/Mkdocs/mkdocs1.md\n - 2. Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHub pages\u914d\u7f6e\u8bf4\u660e(mkdocs.yml): blog/Mkdocs/mkdocs2.md\n - 3. \u89e3\u51b3 mkdocs\u90e8\u7f72 Github Pages \u81ea\u5b9a\u4e49\u57df\u540d\u5931\u6548\u7684\u95ee\u9898: blog/Mkdocs/mkdocs3.md\n - Mkdocs\u7f8e\u5316:\n - \u6dfb\u52a0Mkdocs\u535a\u5ba2: blog/Mkdocs/mkdocsblog.md\n - \u7f51\u9875\u5706\u89d2\u5316\u8bbe\u8ba1: blog/websitebeauty/yuanjiaohua.md\n - \u6dfb\u52a0\u8bc4\u8bba\u7cfb\u7edf(giscus\u4e3a\u4f8b): blog/websitebeauty/mkcomments.md\n - \u6dfb\u52a0\u5728\u7ebf\u804a\u5929: blog/websitebeauty/webtalknow.md\n - \u6dfb\u52a0\u53cb\u94fe: blog/websitebeauty/linktech.md\n - \u6dfb\u52a0\u9876\u90e8\u516c\u544a\u680f: blog/websitebeauty/header.md\n - \u4fee\u6539\u7f51\u7ad9\u5b57\u4f53: blog/websitebeauty/mkdocsfont.md\n - JS\u5b9e\u73b0\u9f20\u6807\u6837\u5f0f: blog/websitebeauty/shubiao.md\n - \u80cc\u666f\u7279\u6548: blog/websitebeauty/backgroud.md\n - \u6dfb\u52a0404\u9875\u9762: blog/websitebeauty/404.md\n - \u4e3aMKdocs\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233: blog/websitebeauty/time.md\n - \u5efa\u8bbeMKdocs\u6280\u80fd\u6307\u5317:\n - Markdown:\n - Markdown\u6307\u5357: develop/Markdown/markdown.md\n - MWeb Pro: develop/Markdown/MWeb.md\n - Git \u5b9e\u7528\u6280\u5de7: develop/git.md\n - \u5229\u7528Lighthouse\u6d4b\u8bd5\u7f51\u7ad9\u6027\u80fd: develop/lighthouse.md\n - \u5982\u4f55\u5c06 github pages \u8fc1\u79fb\u5230 vercel \u4e0a\u6258\u7ba1: develop/vercel.md\n - \u8bbe\u8ba1\u7f8e\u5b66:\n - \u5510\u00b7\u8bfa\u66fc\u2014\u60c5\u611f\u8bbe\u8ba1\u7684\u4e09\u4e2a\u5c42\u6b21: develop/designbeauty/db1.md\n - \u6211\u5bf9\u8bbe\u8ba1\u7684\u4e00\u4e9b\u89c2\u70b9: develop/designbeauty/my-to-desihn.md\n\n - \u6807\u7b7e: tag.md\n - \u7559\u8a00\u677f: liuyanban.md\n - Blogger:\n - index: blog/index.md\n - \u53cb\u94fe:\n - \u53cb\u94fe: about/link.md\n - \u5173\u4e8e:\n - \u4f5c\u8005\u4e2a\u4eba\u7b80\u4ecb: about/geren.md\n - \u529f\u80fd\u6d4b\u8bd5: about/test.md\n - \u4e2a\u4eba\u535a\u5ba2: https://wcowin.work\n - \u4f7f\u7528\u672c\u4e3b\u9898: https://github.com/new?template_name=Mkdocs-Wcowin&template_owner=Wcowin\n\ncopyright: Copyright © 2022~2024 Wcowin/All Rights Reserved. # \u5de6\u4e0b\u89d2\u7684\u7248\u6743\u58f0\u660e\nextra:\n alternate:\n - name: \u7b80\u4f53\u4e2d\u6587\n link: /\n # https://wcowin-work.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh \n - name: English\n link: /Mkdocs-Wcowin/en/\n # https://wcowin-work.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: en\n - name: China(TW)\n link: /Mkdocs-Wcowin/ZH-TW/\n # https://wcowin-work.translate.goog/?_x_tr_sl=zh-CN&_x_tr_tl=zh-TW&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh-TW\n generator: true #\u662f\u5426\u5220\u9664\u9875\u811a\u663e\u793a\u201c\u4f7f\u7528 MkDocs \u6750\u6599\u5236\u9020\u201d\n social:\n - icon: fontawesome/brands/weixin\n link: https://s1.imagehub.cc/images/2024/02/02/bb9ee71b03ee7a3b87caad5cc4bcebff.jpeg\n name: Wechat\n - icon: fontawesome/brands/telegram\n link: https://t.me/wecowin\n name: telegram\n - icon: fontawesome/brands/x-twitter #\u8054\u7cfb\u65b9\u5f0f\u56fe\u6807 : https://fontawesome.com/ \u53bb\u8fd9\u91cc\u627e\u56fe\u6807\n link: https://twitter.com/wcowin_\n - icon: fontawesome/brands/github\n link: https://github.com/Wcowin\n\n - icon: fontawesome/regular/envelope #\u8054\u7cfb\u65b9\u5f0f\u56fe\u6807\n link: mailto:<wangkewen821@gmail.com> #\u90ae\u4ef6\u8054\u7cfb\u65b9\u5f0f\n - icon: fontawesome/brands/bilibili\n link: https://space.bilibili.com/1407028951/lists/4566631?type=series\n analytics:\n provider: google #\u8c37\u6b4c\u5206\u6790\n property: ##\u5982\u679c\u4f60 clone \u4e86my\u6a21\u677f\uff0c\u8bf7\u5c06\u8fd9\u4e2a\u4fee\u6539\u4e3a\u4f60\u7684\n\n # \u7f51\u9875\u5e95\u90e8\u53cd\u9988\n feedback:\n title: \u6b64\u9875\u9762\u6709\u5e2e\u52a9\u5417\uff1f\n ratings:\n - icon: material/thumb-up-outline #\u56fe\u6807\u53ef\u81ea\u5b9a\u4e49\n name: This page was helpful\n data: 1\n note: >-\n \u8c22\u8c22\u4f60\u7684\u53cd\u9988\uff01\n - icon: material/thumb-down-outline\n name: This page could be improved\n data: 0\n note: >-\n Thanks for your feedback! Help us improve this page by\n using our <a href=\"https://marketingplatform.google.com/about/analytics/\" target=\"_blank\" rel=\"noopener\">feedback form</a>.\n # cookies\u8bbe\u7f6e\uff08\u53ef\u9009\uff09\n # consent:\n # title: Cookie consent\n # description: >-\n # \u6211\u4eec\u4e5f\u4f7f\u7528cookies\u6765\u8bc6\u522b\u60a8\u7684\u91cd\u590d\u8bbf\u95ee\u548c\u504f\u597d\u6765\u8861\u91cf\u6211\u4eec\u6587\u6863\u7684\u6709\u6548\u6027\u4ee5\u53ca\u7528\u6237\u662f\u5426\u627e\u5230\u4ed6\u4eec\u8981\u627e\u7684\u4e1c\u897f\u3002\n # \u5982\u679c\u4f60\u540c\u610f,\u4f60\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u8ba9\u6211\u4eec\u7684\u7f51\u7ad9\u66f4\u597d\n\nplugins:\n - search #\u641c\u7d22\u914d\u7f6e\n - glightbox:\n enabled: !ENV [glightbox, false]\n touchNavigation: true\n loop: false\n effect: fade\n slide_effect: slide\n width: 100%\n height: auto\n zoomable: true\n draggable: true\n skip_classes:\n - custom-skip-class-name\n auto_caption: false\n caption_position: bottom\n background: white\n shadow: true\n manual: false\n - git-committers:\n enabled: !ENV [git-committers, false]\n repository: Wcowin/Mkdocs-Wcowin\n branch: main\n exclude:\n - index.md\n - tag.md\n - liuyanban.md\n - blog/posts/update.md\n - blog/posts/wkw.md\n - about/link.md\n - git-revision-date-localized:\n enabled: !ENV [git-revision-date-localized, false]\n type: iso_date\n enable_creation_date: false\n exclude:\n - index.md\n - tag.md\n - liuyanban.md\n - blog/posts/update.md\n - blog/posts/wkw.md\n - about/link.md\n - websitebeauty/linktech.md\n - blog: #\u535a\u5ba2\u914d\u7f6e\n post_date_format: full #\u65f6\u95f4\n draft: true\n draft_if_future_date: true #\u81ea\u52a8\u5c06\u5177\u6709\u672a\u6765\u65e5\u671f\u7684\u5e16\u5b50\u6807\u8bb0\u4e3a\u8349\u7a3f\n post_readtime: true\n post_readtime_words_per_minute: 265 #\u8ba1\u7b97\u5e16\u5b50\u7684\u9605\u8bfb\u65f6\u95f4\u65f6\u8bfb\u8005\u6bcf\u5206\u949f\u9884\u8ba1\u9605\u8bfb\u7684\u5b57\u6570\n post_url_format: \"{date}/{slug}\"\n # categories_slugify: !!python/object/apply:pymdownx.slugs.slugify\n # kwds:\n # case: lower\n pagination_url_format: \"page/{page}\"\n authors_file: \"{blog}/.authors.yml\" #\u4f5c\u8005\u4fe1\u606f\n - tags\n\nmarkdown_extensions: #\u8be6\u89c1https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/ \u548c https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/\n - abbr\n - attr_list\n - admonition\n - def_list\n - footnotes\n - md_in_html\n # - meta # \u652f\u6301Markdown\u6587\u4ef6\u4e0a\u65b9\u81ea\u5b9a\u4e49\u6807\u9898\u6807\u7b7e\u7b49\n - pymdownx.caret\n - pymdownx.betterem\n - pymdownx.critic\n - pymdownx.details\n - pymdownx.inlinehilite\n - pymdownx.keys\n - pymdownx.mark\n - pymdownx.snippets\n - pymdownx.smartsymbols\n - pymdownx.tilde\n - pymdownx.superfences:\n custom_fences:\n - name: mermaid\n class: mermaid\n format:\n !!python/name:pymdownx.superfences.fence_code_format # \u4ee3\u7801\u5757\u9ad8\u4eae\u63d2\u4ef6\n - pymdownx.arithmatex: # latex\u652f\u6301\n generic: true\n - toc:\n permalink: true # \u56fa\u5b9a\u6807\u9898\u4f4d\u7f6e\u4e3a\u5f53\u524d\u4f4d\u7f6e\n - pymdownx.highlight: # \u4ee3\u7801\u5757\u9ad8\u4eae\n anchor_linenums: true\n linenums: true # \u663e\u793a\u884c\u53f7\n # auto_title: true # \u663e\u793a\u7f16\u7a0b\u8bed\u8a00\u540d\u79f0\n - pymdownx.emoji:\n emoji_index: !!python/name:material.extensions.emoji.twemoji\n emoji_generator: !!python/name:material.extensions.emoji.to_svg\n - pymdownx.tabbed:\n alternate_style: true\n - pymdownx.tasklist:\n custom_checkbox: true\n # - markdown.extensions.toc:\n # slugify: !!python/object/apply:pymdownx.slugs.slugify {kwds: {case: lower}}\n # permalink: \"\\ue157\"\n\nextra_javascript:\n # - javascripts/extra.js #\u81ea\u5b9a\u4e49javascript\n - https://cdn.jsdelivr.net/gh/Wcowin/Wcowin.github.io@main/docs/javascripts/extra.js # extra\u7684cdn\n - javascripts/mathjax.js #Latex\u652f\u6301\n - https://polyfill.io/v3/polyfill.min.js?features=es6 #Latex\u652f\u6301\n - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js #Latex\u652f\u6301\n # - ckplayer/js/ckplayer.js #\u64ad\u653e\u5668\u914d\u7f6e\n # - https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js #gitalk\u652f\u6301\n - https://cdn.jsdelivr.net/npm/mermaid@10.0.2/dist/add-html-label-6e56ed67.min.js #\u5fd8\u4e86\n\nextra_css:\n - stylesheets/extra.css # \u81ea\u5b9a\u4e49CSS\n - stylesheets/link.css #\u53cb\u94fe\u914d\u7f6e\n - stylesheets/customize.css # \u641c\u7d22\u5706\u89d2\u4f18\u5316\n # - assets/stylesheets/portfolio.css\n # - stylesheets/video.css #\u64ad\u653e\u5668\u53ef\u9009\u914d\u7f6e\n # - https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.css #gitalk\u652f\u6301\n # - ckplayer/css/ckplayer.css #\u64ad\u653e\u5668\u914d\u7f6e\n # - https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css # font-awesome\u8868\u60c5\u652f\u6301\n # - https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/css/share.min.css #\u5206\u4eab\u652f\u6301\n\n - https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.1.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-lite-webfont@1.1.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-tc-webfont@1.0.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css #\u5b57\u4f53\n\nhooks:\n - docs/overrides/hooks/socialmedia.py\n
\u4ece\u5934\u5f00\u59cb\u5206\u6790
site_name: \u7f51\u7ad9\u540d\u5b57\nsite_url: \u7f51\u7ad9\u7f51\u5740\nsite_author: \u4f5c\u8005\u540d\u5b57\n
\u65e0\u987b\u591a\u8a00","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#theme","title":"theme\u90e8\u5206","text":"","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#_1","title":"\u9876\u90e8\u989c\u8272","text":"theme:\n palette:\n primary: yellow #\u9876\u90e8\u989c\u8272\n
primary\u540e\u9762\u662f\u7f51\u7ad9\u9876\u90e8\u680f\u76ee\u7684\u989c\u8272\uff08\u4e5f\u7528\u4e8e\u6807\u9898\u3001\u8fb9\u680f\u3001\u6587\u672c\u94fe\u63a5\u548c\u5176\u4ed6\u51e0\u4e2a\u7ec4\u4ef6\uff09 \u76ee\u524d\u652f\u6301\u4e0b\u9762\u51e0\u4e2a\u989c\u8272\uff1a ","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#_2","title":"\u660e\u6697\u4e3b\u9898\u6309\u94ae","text":"theme:\n palette: \n # Palette toggle for light mode\n - scheme: default\n toggle:\n icon: material/brightness-7 \n name: Switch to dark mode\n\n # Palette toggle for dark mode\n - scheme: slate\n toggle:\n icon: material/brightness-4\n name: Switch to light mode\n
\u6b64\u914d\u7f6e\u5c06\u5728\u641c\u7d22\u680f\u65c1\u8fb9\u5448\u73b0\u8c03\u8272\u677f\u5207\u6362\u3002\u8bf7\u6ce8\u610f\uff0c\u60a8\u8fd8\u53ef\u4ee5\u4e3a\u6bcf\u4e2a\u8c03\u8272\u677f\u7684primary\u548caccent\u5b9a\u4e49\u5355\u72ec\u7684\u8bbe\u7f6e\u3002 \u6309\u94ae\u56fe\u6807\u53ef\u4ee5\u6539\u53d8\uff08\u4fee\u6539icon\u540e\u9762\u7684\u4ee3\u7801\uff09\uff1a
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#features","title":"features","text":" features:\n - announce.dismiss #\u5448\u73b0\u53ef\u6807\u8bb0\u4e3a\u7531\u7528\u6237\u8bfb\u53d6\u7684\u4e34\u65f6\u516c\u544a\uff0c\u53ef\u4ee5\u5305\u542b\u4e00\u4e2a\u7528\u4e8e\u53d6\u6d88\u5f53\u524d\u516c\u544a\u7684\u6309\u94ae\n # - navigation.instant\n #- header.autohide #\u81ea\u52a8\u9690\u85cf\n - navigation.tracking #\u5730\u5740\u680f\u4e2d\u7684 URL \u5c06\u81ea\u52a8\u66f4\u65b0\u4e3a\u5728\u76ee\u5f55\u4e2d\u7a81\u51fa\u663e\u793a\u7684\u6d3b\u52a8\u951a\u70b9\n - navigation.tabs #\u9876\u7ea7\u90e8\u5206\u5c06\u5448\u73b0\u5728\u4e0a\u9762\u89c6\u53e3\u6807\u9898\u4e0b\u65b9\u7684\u83dc\u5355\u5c42\u4e2d\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n # - navigation.tabs.sticky #\u542f\u7528\u7c98\u6027\u9009\u9879\u5361\u540e\uff0c\u5bfc\u822a\u9009\u9879\u5361\u5c06\u9501\u5b9a\u5728\u6807\u9898\u4e0b\u65b9\uff0c\u5e76\u5728\u5411\u4e0b\u6eda\u52a8\u65f6\u59cb\u7ec8\u4fdd\u6301\u53ef\u89c1\n - navigation.sections #\u542f\u7528\u90e8\u5206\u540e\uff0c\u9876\u7ea7\u90e8\u5206\u5728\u8fb9\u680f\u4e2d\u5448\u73b0\u4e3a1220px\u4ee5\u4e0a\u89c6\u53e3\u7684\u7ec4\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n - navigation.top # \u8fd4\u56de\u9876\u90e8\u7684\u6309\u94ae \u5728\u4e0a\u6ed1\u65f6\u51fa\u73b0\n - navigation.footer #\u9875\u811a\u5c06\u5448\u73b0\u5728\u8fb9\u680f\u4e2d\uff0c\u4f46\u5728\u79fb\u52a8\u8bbe\u5907\u4e0a\u4fdd\u6301\u539f\u6837\n - search.suggest # \u641c\u7d22\u8f93\u5165\u4e00\u4e9b\u5b57\u6bcd\u65f6\u63a8\u8350\u8865\u5168\u6574\u4e2a\u5355\u8bcd\n - search.highlight # \u641c\u7d22\u51fa\u7684\u6587\u7ae0\u5173\u952e\u8bcd\u52a0\u5165\u9ad8\u4eae\n - search.share #\u641c\u7d22\u5206\u4eab\u6309\u94ae\n - navigation.expand # \u6253\u5f00Tab\u65f6\u5de6\u4fa7\u76ee\u5f55\u5168\u90e8\u5c55\u5f00\n - navigation.indexes #\u542f\u7528\u8282\u7d22\u5f15\u9875\u540e\uff0c\u53ef\u4ee5\u5c06\u6587\u6863\u76f4\u63a5\u9644\u52a0\u5230\u8282\n - content.tabs.link\n - content.tooltips\n - content.code.copy #\u4ee3\u7801\u590d\u5236\n - content.action.edit\n - content.action.view\n - content.code.annotate\n language: zh # \u4e00\u4e9b\u63d0\u793a\u6027\u7684\u6587\u5b57\u4f1a\u53d8\u6210\u4e2d\u6587\n\n icon:\n repo: fontawesome/brands/github #\u53f3\u4e0a\u89d2\u56fe\u6807\n logo: logo\n
\u770b\u6211\u6240\u505a\u7684\u6ce8\u91ca\u5c31\u5f88\u597d\u7406\u89e3\uff0cfeature\u90e8\u5206\u8ba9\u7f51\u7ad9\u62e5\u6709\u4e86\u76ee\u5f55\uff0c\u589e\u52a0\u4e86\u641c\u7d22\u9879\u76ee\u7684\u529f\u80fd\uff0c\u8fd4\u56de\u9876\u90e8,\u63d0\u793a\u8bed\u53d8\u4e3a\u4e2d\u6587\u7b49\u529f\u80fd\uff0c\u6ce8\u91ca\u91cc\u5f88\u7b80\u660e\u4ecb\u7ecd\u4e86 ","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#nav","title":"nav\u90e8\u5206","text":"\u8fd9\u4e00\u90e8\u5206\u5c31\u662f\u7f51\u7ad9\u6587\u6863\u76ee\u5f55
nav: \n - \u535a\u5ba2:\n - \u597d\u7528/\u597d\u73a9\u7f51\u7ad9\u5206\u4eab: blog/Webplay.md #.md\u6587\u4ef6\u7684\u76f8\u5bf9\u8def\u5f84\n - \u5f00\u53d1: \n - Markdown: develop/markdown.md\n
\u4f9d\u7167\u4e0a\u9762\u7684\u6a21\u7248\u4e3a\u4f8b\uff0c\u4f60\u53ef\u4ee5\u5728\u9876\u90e8\u680f\u76ee\u5efa\u7acb\u535a\u5ba2\u548c\u5f00\u53d1\u4e24\u4e2a\u5927\u6807\u7b7e - \u5185\u5bb9\u6807\u9898: \u6587\u4ef6\u8def\u5f84\n
\u5185\u5bb9\u6807\u9898\u6548\u679c\uff1a .md\u6587\u4ef6\u8def\u5f84(\u76f8\u5bf9\u8def\u5f84)\uff1a
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#_3","title":"\u5982\u4f55\u5199\u4e00\u7bc7\u6587\u7ae0","text":"\u53ef\u80fd\u770b\u8d77\u6bd4\u8f83\u590d\u6742\uff0c\u603b\u7ed3\u4e00\u4e0b\u5c31\u662f\uff1a\u6211\u60f3\u5199\u4e00\u7bc7\u6587\u7ae0\u5728docs/blog\u4e0b\u5199\u4e00\u7bc7\u540d\u4e3aWcowin\u6700\u5e05
\u7684\u6587\u7ae0\uff0c\u9996\u5148\u5728docs/blog\u4e0b\u65b0\u5efa\u4e00\u4e2axxx.md
\u6587\u4ef6\uff0c\u91cc\u9762\u5199\u5199\u4e1c\u897f\uff0c\u518d\u53bbmkdocs.yml\u91cc\u627e\u5230nav\uff0c\u8fd9\u6837\u5199\uff1a
nav: \n - \u535a\u5ba2:\n - Wcowin\u6700\u5e05: blog/xxx.md #.md\u6587\u4ef6\u7684\u76f8\u5bf9\u8def\u5f84\n
nav\u624d\u662f\u6700\u7ec8\u51b3\u5b9a\u8fd9\u7bc7\u6587\u7ae0\u4f4d\u7f6e\u7684\u914d\u7f6e\uff0cdocs\u4e0b\u7684md\u6587\u4ef6\u53ea\u662f\u5b58\u653e\u529f\u80fd
\u8fd9\u91cc\u4e5f\u6ce8\u610f\uff1a\u6240\u6709\u6587\u4ef6\u90fd\u5728docs\u6587\u4ef6\u4e0b\uff0c\u6587\u4ef6\u7c7b\u578b\u9664CSS\uff0cJavascript,yml\u7b49\u90fd\u662f.md\u7ed3\u5c3e\u7684\u6587\u4ef6
\u6240\u4ee5\u5f3a\u70c8\u63a8\u8350\u60a8\u53bb\u5b66\u4e60Markdown\u3001HTML5\u3001CSS3\u3001Javascript\u7b49\u77e5\u8bc6\uff0c\u8fd9\u6837\u60a8\u5c31\u53ef\u4ee5\u81ea\u5b9a\u4e49\u60a8\u7684\u7f51\u7ad9\u4e86\u3002
\u5230\u8fd9\u91cc\u5148\u68c0\u67e5\u4e00\u4e0b\u6587\u4ef6\u6811\u72b6\u56fe(xx.md\u4ee3\u8868\u4f60\u7684md\u6587\u4ef6)\uff1a
$ tree -a\n.\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 PublishMySite.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500blog\n\u2502 \u2514\u2500\u2500xxx.md\n\u2502\n\u2514\u2500\u2500 mkdocs.yml\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#extra","title":"extra\u90e8\u5206","text":"extra:\n alternate:\n - name: \u7b80\u4f53\u4e2d\u6587\n link: /\n # https://wcowin-work.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh \n - name: English\n link: /Mkdocs-Wcowin/en/\n # https://wcowin-work.translate.goog/?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: en\n - name: China(TW)\n link: /Mkdocs-Wcowin/ZH-TW/\n # https://wcowin-work.translate.goog/?_x_tr_sl=zh-CN&_x_tr_tl=zh-TW&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh-TW\n generator: true #\u662f\u5426\u5220\u9664\u9875\u811a\u663e\u793a\u201c\u4f7f\u7528 MkDocs \u6750\u6599\u5236\u9020\u201d\n social:\n - icon: fontawesome/brands/weixin\n link: https://s1.imagehub.cc/images/2024/02/02/bb9ee71b03ee7a3b87caad5cc4bcebff.jpeg\n name: Wechat\n - icon: fontawesome/brands/telegram\n link: https://t.me/wecowin\n name: telegram\n - icon: fontawesome/brands/x-twitter #\u8054\u7cfb\u65b9\u5f0f\u56fe\u6807 : https://fontawesome.com/ \u53bb\u8fd9\u91cc\u627e\u56fe\u6807\n link: https://twitter.com/wcowin_\n - icon: fontawesome/brands/github\n link: https://github.com/Wcowin\n\n - icon: fontawesome/regular/envelope #\u8054\u7cfb\u65b9\u5f0f\u56fe\u6807\n link: mailto:<wangkewen821@gmail.com> #\u90ae\u4ef6\u8054\u7cfb\u65b9\u5f0f\n - icon: fontawesome/brands/bilibili\n link: https://space.bilibili.com/1407028951/lists/4566631?type=series\n analytics:\n provider: google #\u8c37\u6b4c\u5206\u6790\n property: ##\u5982\u679c\u4f60 clone \u4e86my\u6a21\u677f\uff0c\u8bf7\u5c06\u8fd9\u4e2a\u4fee\u6539\u4e3a\u4f60\u7684\n\n # \u7f51\u9875\u5e95\u90e8\u53cd\u9988\n feedback:\n title: \u6b64\u9875\u9762\u6709\u5e2e\u52a9\u5417\uff1f\n ratings:\n - icon: material/thumb-up-outline #\u56fe\u6807\u53ef\u81ea\u5b9a\u4e49\n name: This page was helpful\n data: 1\n note: >-\n \u8c22\u8c22\u4f60\u7684\u53cd\u9988\uff01\n - icon: material/thumb-down-outline\n name: This page could be improved\n data: 0\n note: >-\n Thanks for your feedback! Help us improve this page by\n using our <a href=\"https://marketingplatform.google.com/about/analytics/\" target=\"_blank\" rel=\"noopener\">feedback form</a>.\n # cookies\u8bbe\u7f6e\uff08\u53ef\u9009\uff09\n # consent:\n # title: Cookie consent\n # description: >-\n # \u6211\u4eec\u4e5f\u4f7f\u7528cookies\u6765\u8bc6\u522b\u60a8\u7684\u91cd\u590d\u8bbf\u95ee\u548c\u504f\u597d\u6765\u8861\u91cf\u6211\u4eec\u6587\u6863\u7684\u6709\u6548\u6027\u4ee5\u53ca\u7528\u6237\u662f\u5426\u627e\u5230\u4ed6\u4eec\u8981\u627e\u7684\u4e1c\u897f\u3002\n # \u5982\u679c\u4f60\u540c\u610f,\u4f60\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u8ba9\u6211\u4eec\u7684\u7f51\u7ad9\u66f4\u597d\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#alternate","title":"alternate","text":"\u53ef\u4ee5\u8bbe\u7f6e\u7f51\u9875\u7ffb\u8bd1(\u4f46\u662f\u4e0d\u592a\u5efa\u8bae\u4f7f\u7528\uff0c\u5f88\u9ebb\u70e6\uff0c\u8fd9\u91cc\u5c31\u4e0d\u7ec6\u8bb2\u4e86) \u5b98\u7f51\u6559\u7a0b\u7f51\u5740
alternate:\n - name: English\n link: https://wcowin-work.translate.goog/?_x_tr_sl=zh-CN&_x_tr_tl=en&_x_tr_hl=zh-CN&_x_tr_pto=wapp \n lang: en\n - name: \u4e2d\u56fd(\u53f0\u6e7e)\n link: https://wcowin-work.translate.goog/?_x_tr_sl=zh-CN&_x_tr_tl=zh-TW&_x_tr_hl=zh-CN&_x_tr_pto=wapp\n lang: zh-TW\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#generator","title":"generator","text":"\u8bbe\u7f6e\u4e3agenerator: false
\u53ef\u4ee5\u9009\u62e9\u662f\u5426\u5220\u9664\u5de6\u4e0b\u65b9\u9875\u811a\u663e\u793a\u201c\u4f7f\u7528 MkDocs \u6750\u6599\u5236\u9020\u201d
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#social","title":"social","text":"\u53ef\u8bbe\u7f6e\u7f51\u7ad9\u53f3\u4e0b\u89d2\u7684\u793e\u4ea4\u94fe\u63a5\uff08icon\u662f\u5c0f\u56fe\u6807\uff0clink\u540e\u586b\u81ea\u5df1\u94fe\u63a5\u5373\u53ef\uff09\uff1a
\u6ce8\u610fsocial\u7684\u683c\u5f0f\uff1a
extra:\n social:\n - icon: fontawesome/brands/weixin\n link: https://s1.imagehub.cc/images/2024/02/02/bb9ee71b03ee7a3b87caad5cc4bcebff.jpeg\n name: Wechat\n - icon: fontawesome/brands/telegram\n link: https://t.me/wecowin\n name: telegram\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#cookie-consent","title":"cookie consent","text":"analytics: \n provider: google\n property: G-XXXXXXXXXX #\u4f60\u7684Google Analytics ID\n feedback:\n title: \u6b64\u9875\u9762\u6709\u5e2e\u52a9\u5417\uff1f\n ratings:\n - icon: material/thumb-up-outline\n name: This page was helpful\n data: 1\n note: >-\n \u8c22\u8c22\u4f60\u7684\u53cd\u9988\uff01\n - icon: material/thumb-down-outline\n name: This page could be improved\n data: 0\n note: >- \n Thanks for your feedback! Help us improve this page by\n using our <a href=\"https://marketingplatform.google.com/about/analytics/\" target=\"_blank\" rel=\"noopener\">feedback form</a>.\n\n consent:\n title: Cookie consent\n description: >- \n \u6211\u4eec\u4e5f\u4f7f\u7528cookies\u6765\u8bc6\u522b\u60a8\u7684\u91cd\u590d\u8bbf\u95ee\u548c\u504f\u597d\u6765\u8861\u91cf\u6211\u4eec\u6587\u6863\u7684\u6709\u6548\u6027\u4ee5\u53ca\u7528\u6237\u662f\u5426\u627e\u5230\u4ed6\u4eec\u8981\u627e\u7684\u4e1c\u897f\u3002\n \u5982\u679c\u4f60\u540c\u610f,\u4f60\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u8ba9\u6211\u4eec\u7684\u7f51\u7ad9\u66f4\u597d\n
\u6ce8\u610fproperty: G-XXXXXXXXXX #\u4f60\u7684Google Analytics ID\uff0c\u8fd9\u91cc\u7684G-XXXXXXXXXX\u662f\u4f60\u7684Google Analytics ID\uff0c\u4f60\u53ef\u4ee5\u5728Google Analytics\u4e2d\u627e\u5230\uff0c\u5982\u679c\u4f60\u4e0d\u60f3\u4f7f\u7528Google Analytics\uff0c\u53ef\u4ee5\u5220\u9664\u8fd9\u4e00\u90e8\u5206\u3002
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#plugins","title":"Plugins\u90e8\u5206","text":"plugins:\n - search #\u641c\u7d22\u914d\u7f6e\n - git-committers:\n enabled: !ENV [git-committers, false]\n repository: Wcowin/Mkdocs-Wcowin\n branch: main\n exclude:\n - index.md\n - tag.md\n - liuyanban.md\n - blog/posts/update.md\n - blog/posts/wkw.md\n - about/link.md\n - git-revision-date-localized:\n enabled: !ENV [git-revision-date-localized, false]\n type: iso_date\n enable_creation_date: false\n exclude:\n - index.md\n - tag.md\n - liuyanban.md\n - blog/posts/update.md\n - blog/posts/wkw.md\n - about/link.md\n - websitebeauty/linktech.md\n - blog: #\u535a\u5ba2\u914d\u7f6e\n post_date_format: full #\u65f6\u95f4\n draft: true\n draft_if_future_date: true #\u81ea\u52a8\u5c06\u5177\u6709\u672a\u6765\u65e5\u671f\u7684\u5e16\u5b50\u6807\u8bb0\u4e3a\u8349\u7a3f\n post_readtime: true\n post_readtime_words_per_minute: 265 #\u8ba1\u7b97\u5e16\u5b50\u7684\u9605\u8bfb\u65f6\u95f4\u65f6\u8bfb\u8005\u6bcf\u5206\u949f\u9884\u8ba1\u9605\u8bfb\u7684\u5b57\u6570\n post_url_format: \"{date}/{slug}\"\n # categories_slugify: !!python/object/apply:pymdownx.slugs.slugify\n # kwds:\n # case: lower\n pagination_url_format: \"page/{page}\"\n authors_file: \"{blog}/.authors.yml\" #\u4f5c\u8005\u4fe1\u606f\n - tags\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#search","title":"search","text":"- search
\u5f00\u542f\u641c\u7d22\u529f\u80fd
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#blog","title":"blog","text":"-blog
\u5373\u535a\u5ba2\uff0c\u53ef\u4ee5\u5728docs/blog/posts\u91cc\u76f4\u63a5\u5199md\u6587\u4ef6\uff08\u4e0d\u9700\u8981\u5728nav\u91cc\u5199\u8def\u5f84\uff09,\u7136\u540e\u5728\u4e0a\u8ff0nav\u91cc\u5199
nav:\n - Blog:\n - blog/index.md\n
\u535a\u5ba2\u6548\u679c\uff1a \u8be6\u7ec6\u914d\u7f6e\u53ef\u4ee5\u53bb\u770b\u6dfb\u52a0Mkdocs\u535a\u5ba2","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#tags","title":"tags","text":"- tags
\u5c31\u662f\u6807\u7b7e
plugins:\n - tags\n
docs\u6587\u4ef6\u5939\u4e0b\u65b0\u5efatags.md\u6587\u4ef6
\u6ce8\u610f\uff01\uff01 tags.md\u91cc\u9700\u8981\u8fd9\u6837\u5199\uff1a
\u5f53\u4f60\u60f3\u4e3a\u67d0\u4e2amd\u6587\u6863\u6dfb\u52a0\u6807\u7b7e\uff0c\u8fd9\u4e2a.md\u6587\u4ef6(\u4f60\u5199\u7684markdown\u6587\u4ef6)\u6700\u5f00\u59cb\u7684\u5730\u65b9(\u79f0\u4e3ameta)\u90fd\u9700\u8981\u6dfb\u52a0\u6807\u7b7e\uff0c\u5426\u5219\u4e0d\u4f1a\u663e\u793a\u5728tags.md\u6587\u4ef6\u4e2d
meta\u683c\u5f0f\uff1a
---\ntitle: #\u6587\u7ae0\u6807\u9898\ntags:\n - \u4f60\u7684\u6807\u7b7e\u540d\u5b57\nhide:\n #- navigation # \u663e\u793a\u53f3\u4fa7\u5bfc\u822a\n #- toc #\u663e\u793a\u5de6\u4fa7\u5bfc\u822a\ncomments: false #\u8bc4\u8bba\uff0c\u9ed8\u8ba4\u4e0d\u5f00\u542f\n---\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#markdown_extensions","title":"markdown_extensions\u90e8\u5206","text":"markdown_extensions: #\u8be6\u89c1https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown-extensions/ \u548c https://squidfunk.github.io/mkdocs-material/setup/extensions/python-markdown/\n - abbr\n - attr_list\n - admonition\n - def_list\n - footnotes\n - md_in_html\n # - meta # \u652f\u6301Markdown\u6587\u4ef6\u4e0a\u65b9\u81ea\u5b9a\u4e49\u6807\u9898\u6807\u7b7e\u7b49\n - pymdownx.caret\n - pymdownx.betterem\n - pymdownx.critic\n - pymdownx.details\n - pymdownx.inlinehilite\n - pymdownx.keys\n - pymdownx.mark\n - pymdownx.snippets\n - pymdownx.smartsymbols\n - pymdownx.tilde\n - pymdownx.superfences:\n custom_fences:\n - name: mermaid\n class: mermaid\n format:\n !!python/name:pymdownx.superfences.fence_code_format # \u4ee3\u7801\u5757\u9ad8\u4eae\u63d2\u4ef6\n - pymdownx.arithmatex: # latex\u652f\u6301\n generic: true\n - toc:\n permalink: true # \u56fa\u5b9a\u6807\u9898\u4f4d\u7f6e\u4e3a\u5f53\u524d\u4f4d\u7f6e\n - pymdownx.highlight: # \u4ee3\u7801\u5757\u9ad8\u4eae\n anchor_linenums: true\n linenums: true # \u663e\u793a\u884c\u53f7\n # auto_title: true # \u663e\u793a\u7f16\u7a0b\u8bed\u8a00\u540d\u79f0\n - pymdownx.emoji:\n emoji_index: !!python/name:material.extensions.emoji.twemoji\n emoji_generator: !!python/name:material.extensions.emoji.to_svg\n - pymdownx.tabbed:\n alternate_style: true\n - pymdownx.tasklist:\n custom_checkbox: true\n
\u8fd9\u90e8\u5206\u662f\u5bf9markdown\u8bed\u6cd5\u7684\u6269\u5c55\uff0c\u6ce8\u91ca\u91cc\u4e5f\u6709\u7b80\u8ff0 \uff0c\u5efa\u8bae\u76f4\u63a5\u590d\u5236\u7c98\u8d34","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs2/#extra_javascriptextra_css","title":"extra_javascript\u548cextra_css\u90e8\u5206","text":"\u8fd9\u4e24\u90e8\u5206\u53ef\u4ee5\u8fdb\u4e00\u6b65\u7f8e\u5316\u7f51\u7ad9
extra_javascript:\n # - javascripts/extra.js #\u81ea\u5b9a\u4e49javascript\n - https://cdn.jsdelivr.net/gh/Wcowin/Wcowin.github.io@main/docs/javascripts/extra.js # extra\u7684cdn\n - javascripts/mathjax.js #Latex\u652f\u6301\n - https://polyfill.io/v3/polyfill.min.js?features=es6 #Latex\u652f\u6301\n - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js #Latex\u652f\u6301\n # - ckplayer/js/ckplayer.js #\u64ad\u653e\u5668\u914d\u7f6e\n # - https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.min.js #gitalk\u652f\u6301\n - https://cdn.jsdelivr.net/npm/mermaid@10.0.2/dist/add-html-label-6e56ed67.min.js #\u5fd8\u4e86\n\nextra_css:\n - stylesheets/extra.css # \u81ea\u5b9a\u4e49CSS\n - stylesheets/link.css #\u53cb\u94fe\u914d\u7f6e\n - stylesheets/customize.css # \u641c\u7d22\u5706\u89d2\u4f18\u5316\n # - assets/stylesheets/portfolio.css\n # - stylesheets/video.css #\u64ad\u653e\u5668\u53ef\u9009\u914d\u7f6e\n # - https://cdn.jsdelivr.net/npm/gitalk@latest/dist/gitalk.css #gitalk\u652f\u6301\n # - ckplayer/css/ckplayer.css #\u64ad\u653e\u5668\u914d\u7f6e\n # - https://cdn.staticfile.org/font-awesome/4.7.0/css/font-awesome.css # font-awesome\u8868\u60c5\u652f\u6301\n # - https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/css/share.min.css #\u5206\u4eab\u652f\u6301\n\n - https://cdn.jsdelivr.net/npm/lxgw-wenkai-webfont@1.1.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-lite-webfont@1.1.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-tc-webfont@1.0.0/style.css #\u5b57\u4f53\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css #\u5b57\u4f53\n
javascripts/mathjax.js\u91cc\u6709\u5bf9\u6570\u5b66\u516c\u5f0f\u7684\u6269\u5c55 \u5f53\u4f60\u9700\u8981\u81ea\u5b9a\u4e49\u7f51\u9875CSS/JS,\u53ef\u4ee5\u5728docs\u6587\u4ef6\u5939\u4e0b\u65b0\u5efastylesheets/javascripts\u6587\u4ef6\u5939\uff0c\u7136\u540e\u5728stylesheets/javascripts\u6587\u4ef6\u5939\u91cc\u65b0\u5efaxx.css/xx.js\u6587\u4ef6\uff0c\u7136\u540e\u5728mkdocs.yml\u7684extra_javascript\u548cextra_css\u5f15\u5165xx.css/xx.js\u5373\u53ef
extra_javascript:\n # - javascripts/extra.js #\u81ea\u5b9a\u4e49\u7684javascript\nextra_css:\n - stylesheets/extra.css # \u81ea\u5b9a\u4e49\u7684CSS\n
\u5982\u679c\u4f60\u60f3\u81ea\u5b9a\u4e49\u7f51\u7ad9\u7684\u6837\u5f0f\uff0c\u53ef\u4ee5\u53c2\u8003\u8fd9\u51e0\u7bc7\u6587\u7ae0\uff1a
JS\u5b9e\u73b0\u9f20\u6807\u6837\u5f0f
\u80cc\u666f\u7279\u6548
\u81ea\u5b9a\u4e49\u7f51\u7ad9\u5b57\u4f53
\u6dfb\u52a0\u53cb\u94fe
\u6dfb\u52a0\u8bc4\u8bba\u7cfb\u7edf
\u4e3aMKdocs\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocs3/","title":"\u89e3\u51b3Github Pages\u90e8\u7f72mkdocs\u81ea\u5b9a\u4e49\u57df\u540d\u5931\u6548\u7684\u95ee\u9898","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u5728GitHub Pages\u90e8\u7f72mkdocs\u65f6\uff0c\u81ea\u5b9a\u4e49\u57df\u540d\u5931\u6548\u7684\u539f\u56e0\u662f\u672c\u5730\u7f3a\u5c11CNAME\u6587\u4ef6\u5bfc\u81f4\u63a8\u9001\u540e\u88ab\u6e05\u9664\u3002\u89e3\u51b3\u65b9\u6cd5\u662f\u5728/docs\u76ee\u5f55\u4e0b\u521b\u5efa\u65e0\u540e\u7f00\u7684CNAME\u6587\u4ef6\u5e76\u586b\u5165\u57df\u540d\uff0c\u786e\u4fdd\u6bcf\u6b21\u63a8\u9001\u540e\u914d\u7f6e\u4fe1\u606f\u5f97\u4ee5\u4fdd\u7559\u3002\u8be5\u65b9\u6848\u6709\u6548\u89e3\u51b3\u4e86\u56e0\u6587\u4ef6\u7f3a\u5931\u5bfc\u81f4\u7684\u57df\u540d\u7ed1\u5b9a\u5931\u6548\u95ee\u9898\u3002
\u5728/docs\u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a CNAME \u7684 \u65e0\u540e\u7f00 \u6587\u4ef6\uff0c\u7136\u540e\u5728\u91cc\u9762\u586b\u5165\u4f60\u7684\u57df\u540d
\u539f\u56e0
\u56e0\u4e3a\u6bcf\u6b21\u5728 Custom domain \u6dfb\u52a0\u540e\u90fd\u4f1a\u7ed9\u6211\u4eec\u751f\u6210\u4e00\u4e2a CNAME \u7684\u6587\u4ef6\uff0c\u4f46\u662f\u56e0\u4e3a\u9879\u76ee\u6211\u4eec\u6ca1\u6709 pull \u5230\u672c\u5730\uff0c\u6240\u4ee5\u9020\u6210\u4e86\uff0c\u6bcf\u6b21 push \u4e4b\u540e CNAME \u4fe1\u606f\u88ab clear \u4e86
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkdocsblog/","title":"\u7f51\u7ad9\u6dfb\u52a0Mkdocs\u535a\u5ba2","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
Mkdocs\u5185\u7f6e\u535a\u5ba2\u63d2\u4ef6\u53ef\u5feb\u901f\u642d\u5efa\u6280\u672f\u535a\u5ba2\uff0c\u53ea\u9700\u5728mkdocs.yml\u4e2d\u6dfb\u52a0\u7b80\u5355\u914d\u7f6e\u5373\u53ef\u542f\u7528\u3002\u652f\u6301\u901a\u8fc7docs/blog/.authors.yml\u6587\u4ef6\u7ba1\u7406\u4f5c\u8005\u4fe1\u606f\uff0c\u65e0\u9700\u989d\u5916\u521b\u5efa\u6587\u4ef6\u3002\u8be5\u65b9\u6848\u9002\u5408\u6587\u6863\u7ad9\u70b9\u96c6\u6210\u535a\u5ba2\u529f\u80fd\uff0c\u5177\u6709\u914d\u7f6e\u7b80\u5355\u3001\u7ef4\u62a4\u4fbf\u6377\u7684\u7279\u70b9\uff0c\u9002\u7528\u4e8e\u6280\u672f\u56e2\u961f\u5206\u4eab\u6587\u7ae0\u6216\u9879\u76ee\u52a8\u6001\u3002
\u535a\u5ba2\u6548\u679c\u5c55\u793a\uff1a\u535a\u5ba2
\u5b98\u65b9\u6587\u6863\uff1aBuilt-in blog plugin
\u4e0e\u6240\u6709\u5185\u7f6e\u63d2\u4ef6\u4e00\u6837\uff0c\u535a\u5ba2\u63d2\u4ef6\u7684\u5165\u95e8\u975e\u5e38\u7b80\u5355\u3002\u53ea\u9700\u5c06\u4ee5\u4e0b\u884c\u6dfb\u52a0\u5230mkdocs.yml
plugins:\n - blog\n
\u7136\u540e\u5728/docs/blog/posts\u4e0b\u5199md\u6587\u4ef6\u5373\u53ef\uff08\u65e0\u9700\u518dmkdocs.yml\u914d\u7f6e\uff0c\u5982\u6ca1\u6709post\u6587\u4ef6\uff0c\u65b0\u5efa\u4e00\u4e2a\u5373\u53ef\uff09 \u4f46\u662fbolg\u6587\u4ef6\u5939\u4e0b\u8981\u6709index.md\u6587\u4ef6(\u6ca1\u6709\u8fd9\u4e2a\u6587\u4ef6\u65b0\u5efa\u5373\u53ef)\uff01
\u5728mkdocs.yml\u7684nav\u90e8\u5206\u8fd9\u6837\u5199
nav:\n - \u535a\u5ba2:\n - index: blog/index.md\n
\u5143\u6807\u7b7e\u53c2\u8003\uff1a
---\ntitle: \nauthors: [Wcowin] #\u4f5c\u8005\ndate: 2023-10-04 #\u65f6\u95f4\ndraft: true # \u662f\u5426\u4e3a\u8349\u7a3f\ncategories: #\u5206\u7c7b\n - Hello\n---\n
\u4f5c\u8005\u4fe1\u606f\u5728docs/blog/.authors.yml\u91cc\u914d\u7f6e\uff08\u6ca1\u6709.authors.yml\u65b0\u5efa\u5373\u53ef\uff09
authors:\n Wcowin:\n name: Wang Kewen # Author name\n description: Free and casual # Author description\n avatar: https://s1.imagehub.cc/images/2024/02/02/91a767e93d1a344e44c69936464c583e.png # Author avatar\n
\u7ed3\u675f","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/","title":"Mkdocs\u6559\u7a0b\u524d\u8a00","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86MkDocs\u6587\u6863\u5de5\u5177\u7684\u5b66\u4e60\u8d44\u6e90\u548c\u4f7f\u7528\u6307\u5357\uff0c\u5305\u62ec\u5b98\u65b9\u6559\u7a0b\u3001Material\u4e3b\u9898\u3001\u63d2\u4ef6\u5217\u8868\u4ee5\u53ca\u4f5c\u8005\u63d0\u4f9b\u7684\u4e2d\u6587\u6559\u7a0b\uff08\u8bed\u96c0\u3001CSDN\u3001\u77e5\u4e4e\uff09\u3002\u5185\u5bb9\u6db5\u76d6\u5feb\u901f\u90e8\u7f72\u9759\u6001\u7f51\u9875\u5230GitHub Pages\u3001\u914d\u7f6emkdocs.yml\u6587\u4ef6\u4ee5\u53ca\u6dfb\u52a0\u535a\u5ba2\u529f\u80fd\uff0c\u5e76\u9644\u6709\u89c6\u9891\u6559\u7a0b\u3002\u6700\u540e\u8bf7\u6c42\u4f7f\u7528\u8005\u6ce8\u660e\u6559\u7a0b\u6765\u6e90\u5e76\u652f\u6301\u53cb\u94fe\u7533\u8bf7\u3002
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_1","title":"\u6587\u6863\u6559\u7a0b","text":"","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_2","title":"\u5feb\u901f\u5f00\u59cb","text":" -
\u4e09\u90e8\u66f2
- \u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHub pages
- Mkdocs\u90e8\u7f72\u914d\u7f6e\u8bf4\u660e(mkdocs.yml)
- \u7f51\u7ad9\u6dfb\u52a0Mkdocs\u535a\u5ba2
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_3","title":"\u89c6\u9891\u6559\u7a0b","text":"\u5df2\u7ecf\u53d1\u5e03
-
\u89c6\u9891\u8d44\u6599
- Mkdocs\u4e2d\u6587\u6559\u7a0b\u89c6\u9891
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_4","title":"\u4e00\u70b9\u8bf7\u6c42","text":"\u521b\u4f5c\u4e0d\u6613\u3002\u5982\u679c\u60a8\u53c2\u8003\u4e86\u672c\u6559\u7a0b/\u501f\u9274\u4e86\u7f51\u9875\u8bbe\u8ba1\uff0c\u5982\u679c\u53ef\u4ee5\u7684\u8bdd\uff0c\u70e6\u8bf7\u5728\u60a8\u7684\u7f51\u7ad9\u6ce8\u660e\u6559\u7a0b\u6765\u6e90\uff01\u611f\u8c22\uff01
\u793a\u4f8b\uff1a
-
\u53c2\u8003\u8d44\u6599
- \u5728\u6784\u5efa\u7f51\u7ad9\u7684\u8fc7\u7a0b\u4e2d\u53c2\u8003\u4e86Wcowin\u540c\u5b66\u7684Mkdocs\u6559\u7a0b
<div class=\"grid cards\" markdown>\n\n- :material-notebook-edit-outline:{ .lg .middle } __\u53c2\u8003\u8d44\u6599__\n\n ---\n\n - \u5728\u6784\u5efa\u672c\u7f51\u7ad9\u7684\u8fc7\u7a0b\u4e2d\u53c2\u8003\u4e86[Wcowin\u540c\u5b66\u7684Mkdocs\u6559\u7a0b](https://wcowin.work/Mkdocs-Wcowin/)\n\n</div>\n
","tags":["Mkdocs"]},{"location":"blog/Mkdocs/mkfirst/#_5","title":"\u52a0\u5165\u53cb\u94fe","text":"\u53cb\u94fe\u7533\u8bf7
","tags":["Mkdocs"]},{"location":"blog/2021/12/18/%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0%E6%B5%8B%E8%AF%95/","title":"\u535a\u5ba2\u6587\u7ae0\u6d4b\u8bd5","text":" Share on Share on
"},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"2022\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
2022\u5e74\u7f51\u7ad9\u5efa\u8bbe\u8fc7\u7a0b\u5305\u62ec\uff1a10\u6708\u5efa\u7acbGithub\u4ed3\u5e93\u5e76\u6b63\u5f0f\u5efa\u7ad9\uff0c\u53d6\u6d88cookie\u786e\u8ba4\u7b80\u5316\u8bbf\u95ee\u6d41\u7a0b\uff0c\u65b0\u589e\u9996\u9875\u53cd\u9988\u529f\u80fd\uff1b6\u6708\u786e\u5b9a\u91c7\u7528MKdocs\u6846\u67b6\u642d\u5efa\uff0c10\u6708\u5b8c\u6210\u72ec\u7acb\u57df\u540dwcowin.work\u7684\u6ce8\u518c\u3002\u4e3b\u8981\u4f18\u5316\u4e86\u7528\u6237\u4f53\u9a8c\u548c\u9690\u79c1\u4fdd\u62a4\uff0c\u6280\u672f\u65b9\u6848\u9009\u62e9\u8f7b\u91cf\u7ea7\u6587\u6863\u6846\u67b6\u3002
"},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2022-10-20","title":"2022\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2022-10-20","text":"\u00b6
- \u5efa\u7acbGithub\u4ed3\u5e93\uff0c\u6b63\u5f0f\u5efa\u7ad9
- \u53d6\u6d88cookie\u786e\u8ba4,\u7b80\u5316\u7f51\u7ad9\u6253\u5f00\u6d41\u7a0b
- \u65b0\u589e\u9996\u9875\u53cd\u9988\u6536\u96c6
"},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2022-10-06","title":"2022\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2022-10-06","text":"\u00b6
- \u4e0d\u9760\u7236\u6bcd\uff0c\u5168\u6b3e\u62ff\u4e0b wcowin.work\u57df\u540d
- \u53d6\u6d88cookie\u786e\u8ba4\uff0c\u4fdd\u969c\u9690\u79c1
"},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2022-06-06","title":" - \u7814\u7a76\u5982\u4f55\u5efa\u8bbe\u7f51\u7ad9\uff0c\u521d\u6b65\u5b9a\u6846\u67b6\u4e3aMKdocs
- \u65e9\u671f\u7f51\u5740\uff1ahttps://github.com/Wcowin/mymkdocs Share on Share on
","text":""},{"location":"blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2022-06-06","text":"\u00b6"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
2023\u5e74\u7f51\u7ad9\u4e3b\u8981\u66f4\u65b0\u5305\u62ec\uff1a\u5f15\u5165AI\u95ee\u7b54\u673a\u5668\u4eba\uff0825\u6761/\u6708\u9650\u5236\uff09\u3001\u591a\u8bed\u8a00\u652f\u6301\uff08\u542b\u53f0\u6e7e\u5730\u533a\uff09\u3001\u56fd\u5185\u955c\u50cf\u7ad9\u70b9\u548cMkdocs-Wcowin\u4e3b\u9898\u3002\u6280\u672f\u4f18\u5316\u6d89\u53ca\u56fe\u7247\u61d2\u52a0\u8f7d\u3001\u79fb\u52a8\u7aef\u9002\u914d\u3001LaTeX\u6e32\u67d3\u4fee\u590d\u53ca\u7f51\u9875\u6d41\u7545\u5ea6\u63d0\u5347\u3002\u65b0\u589e\u529f\u80fd\u6709\u7559\u8a00\u677f\uff08\u96c6\u6210giscus\uff09\u3001\u53cb\u94fe\u6a21\u5757\u548c\u535a\u5ba2\u677f\u5757\uff0c\u540c\u65f6\u6539\u8fdb\u4e86\u641c\u7d22\u529f\u80fd\u4e0e\u754c\u9762\u8bbe\u8ba1\u3002\u5168\u5e74\u6301\u7eed\u8fdb\u884c\u6027\u80fd\u4f18\u5316\u548c\u7528\u6237\u4f53\u9a8c\u6539\u8fdb\u3002
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-12-21","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-12-21","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u8131\u5355\u4e86;\u624b\u6267\u70df\u706b\u4ee5\u8c0b\u751f\uff0c\u5fc3\u6000\u8bd7\u610f\u4ee5\u8c0b\u7231
\u6211\u4eec\u5df2\u7ecf\u5728\u4e00\u8d77
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-12-14","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-12-14","text":"\u00b6
- \u4f18\u5316\u4e2a\u522b\u7f51\u9875\u6807\u7b7e\u7684\u663e\u793a\u95ee\u9898
- \u4f18\u5316\u7f51\u7ad9\u56fe\u7247\u52a0\u8f7d\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u770b\u4e86\u66f4\u591a\u7684\u732b\u54aa
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-12-09","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-12-09","text":"\u00b6
- \u9996\u6b21\u5f15\u5165\u4eba\u5de5\u667a\u80fd\u95ee\u7b54\u673a\u5668\u4eba:https://wcowin.work/about/geren/\uff0c\u7f3a\u70b9\u662f\u6bcf\u670825\u6761\u6d88\u606f\u9650\u5236\uff0c\u4f18\u70b9\u662f\u53ef\u4ee5\u667a\u80fd\u56de\u590d\u672c\u7ad9\u6240\u6709\u4fe1\u606f\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a\u4e2a\u4eba\u4fe1\u606f\uff0c\u6280\u672f\u5206\u4eab\uff0c\u535a\u5ba2\uff0c\u7559\u8a00\u677f\uff0c\u53cb\u94fe\u7b49\u7b49
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6
- \u64b8\u4e86\u66f4\u591a\u7684\u732b\u54aa
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-11-22","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-11-22","text":"\u00b6
- \u66f4\u65b0\u4e86\u738b\u51b0\u51b0\u7684\u7b80\u5386\u548c\u7f8e\u7167\uff1b\u6211\u7684\u5fc3\u662f\u51b0\u51b0\u7684
- \u4fee\u590d\u7ffb\u8bd1\u95ee\u9898
- \u4f18\u5316\u79fb\u52a8\u7aef\u6548\u679c
- \u63d0\u5347\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-11-11","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-11-11","text":"\u00b6
- \u65b0\u589e\u591a\u8bed\u8a00\u652f\u6301\uff0c\u7279\u522b\u65b0\u589e\u4e2d\u56fd\u53f0\u6e7e\u8bed\u8a00\u652f\u6301
- \u987a\u795d\u53cc11\u5feb\u4e50
- \u65b0\u589e\u56fd\u5185\u955c\u50cf\u7f51\u5740:https://wcowin.gitee.io/
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-11-08","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-11-08","text":"\u00b6
- \u7d27\u6025\u4fee\u590d\u56fe\u7247\u4e0d\u663e\u793a\u7684\u91cd\u5927Bug
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-10-14","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-10-14","text":"\u00b6
- \u6b63\u5f0f\u5efa\u7acbMkdocs-Wcowin\u4e3b\u9898
- \u4f18\u5316\u7f51\u9875\u6e32\u67d3\u901f\u5ea6
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-10-12","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-10-12","text":"\u00b6
- \u589e\u52a0\u53cb\u94fe\u7248\u5757
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-10-08","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-10-08","text":"\u00b6
- \u4fee\u590dLatex\u6e32\u67d3\u4e0d\u4e86\u7684bug
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-10-05","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-10-05","text":"\u00b6
- \u65b0\u589eBlog\u7248\u5757
- \u65b0\u589e\u4e86Latex\u6e32\u67d3\u4e0d\u4e86\u7684bug
- \u65b0\u589e\u7559\u8a00\u677f\uff0c\u96c6\u6210\u4e86giscus\u8bc4\u8bba\u7cfb\u7edf
- \u65b0\u589e\u9996\u6b21\u8bbf\u95ee\u7f51\u7ad9\u7684\u9876\u90e8\u901a\u77e5\u680f\u529f\u80fd
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-08-11","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-08-11","text":"\u00b6
- \u4f18\u5316\u4e3b\u9875\u8bbe\u8ba1\uff0c\u5706\u6bd4\u65b9\u597d\uff0c\u5bbd\u6bd4\u7ad6\u597d
- \u5f15\u5165\u56fe\u7247\u61d2\u52a0\u8f7d
- \u65b0\u589e\u9875\u9762\u5e95\u90e8 \"\u4e0b\u4e00\u9875/\u4e0a\u4e00\u9875\"
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-07-19","title":"2023\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-07-19","text":"\u00b6
- \u4fee\u6539\u7f51\u9875\u5b57\u4f53\u4e3a\u971e\u9e5c\u6587\u6977
- \u4fee\u590d\u9f20\u6807\u4e0a\u6ed1\"\u56de\u5230\u9875\u9762\u9876\u90e8\"\u4e0d\u9002\u914d\u95ee\u9898
"},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2023-01-12","title":" - \u91cd\u5199mkdocs.yml\uff0c\u589e\u52a0\u4e2d\u6587\u6ce8\u91ca
- \u652f\u6301Latex
- \u5f15\u5165\u4e2a\u6027\u5316\u6807\u7b7e\uff0cMarkdown\u6269\u5c55
- \u65b0\u589e\u7f51\u7ad9\u641c\u7d22\u529f\u80fd
Share on Share on
","text":""},{"location":"blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2023-01-12","text":"\u00b6"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
2024\u5e74\u7f51\u7ad9\u6301\u7eed\u4f18\u5316\uff0c\u91cd\u70b9\u63d0\u5347\u6d41\u7545\u5ea6\u548c\u8bbf\u95ee\u901f\u5ea6\uff0c\u5305\u62ec\u542f\u7528CDN\u52a0\u901f\u3001\u5220\u9664\u5197\u4f59\u4ee3\u7801\u3001\u4f18\u5316UI\u663e\u793a\u6548\u679c\u3002\u6280\u672f\u6539\u8fdb\u6d89\u53caJS/CSS\u4ee3\u7801\u7cbe\u7b80\u3001MKdocs\u4e3b\u9898\u66f4\u65b0\u3001\u56fe\u7247\u8fc1\u79fb\u81f3SMMS\u5e73\u53f0\uff0c\u5e76\u5f15\u5165\u81ea\u52a8\u65b0\u6807\u7b7e\u9875\u6253\u5f00\u529f\u80fd\u3002\u7f51\u7ad9\u88ab\u767e\u5ea6/\u8c37\u6b4c\u6536\u5f55\uff0c\u53cb\u94fe\u6269\u5c55\u81f316\u4e2a\uff0c\u540c\u65f6\u5b8c\u5584\u4e86\u6587\u6863\u7248\u672c\u7ba1\u7406\u63d2\u4ef6\u3002
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-12-24","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-12-24","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u4e86\u6ce8\u811a\u663e\u793a\u6548\u679c
- \u5220\u9664\u4e86\u4e00\u4e9b\u5197\u4f59\u4ee3\u7801
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-12-10","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-12-10","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u542f\u7528 CDN \u52a0\u901f
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-07-21","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-07-21","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-07-21_1","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-07-21","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u4e86\u7f51\u7ad9\u7684UI\u548c\u8bbf\u95ee\u901f\u5ea6\uff0c\u542f\u7528 CDN \u52a0\u901f
- \u5b66\u4e1a\u7e41\u91cd
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-27","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-27","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u7f8e\u5316\u4e86Blog\u9875\u9762, \u4f7f\u66f4\u52a0\u7b80\u6d01\u7f8e\u89c2,\u5982\u4f60\u6240\u89c1
- \u5185\u5fc3\u4e30\u76c8\u8005\uff0c\u72ec\u884c\u4e5f\u72ec\u4f17\uff0c\u5fc3\u6709\u5c71\u6d77\uff0c\u9759\u800c\u4e0d\u4e89
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-20","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-20","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u591a\u5904UI
- \u5220\u51cf\u4e86\u90e8\u5206\u62d6\u6162\u7f51\u7ad9\u901f\u5ea6\u7684JS/CSS\u4ee3\u7801
- \u66f4\u65b0\u4e86MKdocs\u8865\u5145\u7cfb\u5217\u6559\u7a0b
- \u8fd1\u671f\u7565\u6709\u65f6\u95f4\uff0c\u6240\u4ee5\u66f4\u6587\u53d8\u5f97\u9ad8\u4ea7
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-19","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-19","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u671f\u672b\u7ed3\u675f
- \u5220\u51cf\u4e86\u5197\u4f59\u4ee3\u7801
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-2","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-2","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u8fd1\u671f\u5b66\u4e1a\u7e41\u91cd
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-06-2_1","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-06-2","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u8fc7\u4e86\u516d\u4e00
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-05-15","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-05-15","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5168\u7ad9\u5f15\u5165\u81ea\u52a8\u5728\u65b0\u6807\u7b7e\u9875\u6253\u5f00\uff0c\u4ed3\u5e93\u5730\u5740\uff1amkdocs-open-in-new-tab
Show source code Look at this source open_in_new_tab.js:
// Description: Open external links in a new tab and PDF links in a new tab\n// Source: https://jekyllcodex.org/without-plugin/new-window-fix/\n\n//open external links in a new window\nfunction external_new_window() {\n for(let c = document.getElementsByTagName(\"a\"), a = 0;a < c.length;a++) {\n let b = c[a];\n if(b.getAttribute(\"href\") && b.hostname !== location.hostname) {\n b.target = \"_blank\";\n b.rel = \"noopener\";\n }\n }\n}\n//open PDF links in a new window\nfunction pdf_new_window ()\n{\n if (!document.getElementsByTagName) {\n return false;\n }\n let links = document.getElementsByTagName(\"a\");\n for (let eleLink=0; eleLink < links.length; eleLink ++) {\n if ((links[eleLink].href.indexOf('.pdf') !== -1)||(links[eleLink].href.indexOf('.doc') !== -1)||(links[eleLink].href.indexOf('.docx') !== -1)) {\n links[eleLink].onclick =\n function() {\n window.open(this.href);\n return false;\n }\n }\n }\n}\n\nfunction apply_rules() {\n external_new_window();\n pdf_new_window();\n}\n\nif (typeof document$ !== \"undefined\") {\n // compatibility with mkdocs-material's instant loading feature\n // based on code from https://github.com/timvink/mkdocs-charts-plugin\n // Copyright (c) 2021 Tim Vink - MIT License\n // fixes [Issue #2](https://github.com/JakubAndrysek/mkdocs-open-in-new-tab/issues/2)\n document$.subscribe(function() {\n apply_rules();\n console.log(\"Applying rules\");\n })\n}\n
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-05-05","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-05-05","text":"\u00b6
- \u53d1\u5e03Mkdocs-Wcowin\u4e3b\u9898|3.0\u7248\u672c\uff01\uff01\uff01
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u548c\u5c0f\u738b\u4e00\u8d77\u5403\u4e86\u597d\u5403\u7684
- \u611f\u8c22\u738b\u9e4f\u8001\u54e5\u7684\u6253\u8d4f
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-22","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-22","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u770b\u4e86\u66f4\u591a\u7684\u732b\u54aa
- \u4f18\u5316\u5e03\u5c40
- \u65b0\u589e\u5706\u89d2\u5316\u8bbe\u8ba1\u6559\u7a0b
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-22_1","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-22","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u7f51\u7ad9\u5168\u9762\u8d34\u5408\u5706\u89d2\u8bbe\u8ba1\uff0c\u975e\u5e38\u597d\u770b
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-13","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-13","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u91cd\u5199\u4e3b\u9875index.md,\u66f4\u52a0\u7f8e\u89c2\uff0c\u8d34\u5408\u5706\u89d2\u8bbe\u8ba1
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-12","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-12","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u611f\u8c22W1ndys\u63d0\u51fa\u7684\u4f7f\u7528\u8f6f\u7f16\u7801\u914d\u7f6e\u53cb\u94fe\u754c\u9762\uff0c\u4f7f\u5f97\u53cb\u94fe\u6dfb\u52a0\u66f4\u52a0\u89c4\u8303\u5316
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-06","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-06","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4e3b\u9875\u5f15\u5165\u5929\u6c14\u7ec4\u4ef6\uff0c\u641c\u7d22\u6846/\u6309\u94ae\u5706\u89d2\u5316
- \u5220\u9664\u5197\u4f59JS/CSS\u6587\u4ef6
- \u611f\u8c22Anshul Raj Verma\u5728Discussions#7\u4e0a\u63d0\u51fa\u7684\u7f51\u7ad9\u4f18\u5316\u5efa\u8bae
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-04-02","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-04-02","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5728mkdocs.yml\u7684plugins\u6a21\u5757\u4e2d\u5f15\u5165
!ENV [CI, false]
\u8bed\u53e5\uff0c\u6781\u5927\u7f29\u77edmkdocs serve
\u9759\u6001\u9884\u89c8\u65f6\u95f4\uff083-5s\uff09 - \u672cMkdocs-Wcowin\u4e3b\u9898\u5f97\u5230\u4ee5\u4e0b\u4e24\u4f4d\u7684\u4f7f\u7528\uff1a
- Lenny's Web
- tkqtang's Web
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-03-14","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-03-14","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- 3\u670814\u65e5\uff08March 14th\uff09\u662f\u516c\u5386\u4e00\u5e74\u4e2d\u7684\u7b2c73\u5929\uff08\u95f0\u5e74\u7b2c74\u5929\uff09\uff0c\u79bb\u5168\u5e74\u7684\u7ed3\u675f\u8fd8\u6709292\u5929\u3002\u662f\u56fd\u9645\u5706\u5468\u7387\u65e5\u3002\u5176\u4e2d\u5386\u53f2\u4e0a\u53d1\u751f\u7684\u5927\u4e8b\u4ef6\u6709\u963f\u5c14\u4f2f\u7279\u00b7\u7231\u56e0\u65af\u5766\u7684\u51fa\u751f\u3002 [10]\u5361\u5c14\u00b7\u9a6c\u514b\u601d\u3001\u65af\u8482\u82ac\u00b7\u5a01\u5ec9\u00b7\u970d\u91d1\u7684\u901d\u4e16\u3002
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-02-20","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-02-20","text":"\u00b6
- \u4f18\u5316\u9875\u811a\u201c\u672c\u7ad9\u8bbf\u95ee\u91cf\u548c\u840cICP\u590720230640\u53f7\u201d\u663e\u793a\u65b9\u5f0f
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-02-02","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-02-02","text":"\u00b6
- \u7f51\u7ad9\u56fe\u7247\u5168\u90e8\u8fc1\u79fb\u81f3smms(\u66f4\u52a0\u7a33\u5b9a\u6d41\u7545)
- \u7740\u624b\u6539\u5199MKdocs\u6559\u7a0b\uff0c\u4f7f\u5f97\u6761\u7406\u66f4\u52a0\u6e05\u6670
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5220\u9664\u5927\u91cf\u7e41\u7410\u65e0\u7528\u4ee3\u7801
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-02-01","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-02-01","text":"\u00b6
- \u6539\u8fdb\u7f51\u9875\u4ee3\u7801\u663e\u793a\u6548\u679c
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-01-30","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-01-30","text":"\u00b6
- \u53cb\u94fe\u6570\u91cf\u8fbe\u523016\u4f4d
- \u4fee\u590d\u4e86\u4e00\u4e9bbugs
- \u672c\u7f51\u7ad9\u5df2\u7ecf\u88ab\u767e\u5ea6/\u8c37\u6b4c\u6536\u5f55\uff08\u786e\u4fe1\uff0c\u4f7f\u7528\u767e\u5ea6/\u8c37\u6b4c\u641c\u7d22Wcowin\u5b57\u6837\u5373\u53ef\uff09
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2024-01-05","title":"2024\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2024-01-05","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5f15\u5165git-revision-date-localized-plugin\u63d2\u4ef6\uff0c\u4ee5\u4fbf\u8bb0\u5f55\u6587\u6863\u521b\u5efa\u548c\u6700\u540e\u4e00\u6b21\u4fee\u6539\u65f6\u95f4
- \u548c\u5c0f\u738b\u4e00\u8d77\u770b\u4e86\u66f4\u591a\u7684\u732b\u54aa
Share on Share on
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6b21\u7f51\u7ad9\u66f4\u65b0\u4e3b\u8981\u56f4\u7ed5\u6027\u80fd\u4f18\u5316\u548c\u529f\u80fd\u5b8c\u5584\u5c55\u5f00\uff0c\u5305\u62ec\u6301\u7eed\u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\u3001\u4fee\u590dMarkdown\u89e3\u6790\u5f02\u5e38\u3001\u6539\u8fdb\u53cb\u94fe\u7edf\u8ba1\u51c6\u786e\u6027\u7b49\u6838\u5fc3\u6539\u8fdb\u3002\u6280\u672f\u5c42\u9762\u6d89\u53ca\u4ee3\u7801\u91cd\u6784\u3001\u63d2\u4ef6\u8c03\u6574\uff08\u5982\u53d6\u6d88glightbox\uff09\u53ca\u754c\u9762\u4ea4\u4e92\u4f18\u5316\uff08\u7559\u8a00\u677f\u6309\u94ae\u5207\u6362\uff09\u3002\u540c\u65f6\u66f4\u65b0\u4e86\u6559\u7a0b\u5185\u5bb9\u4ee5\u9002\u914d\u5b98\u65b9\u6700\u65b0\u7248\u672c\uff0c\u5e76\u89e3\u51b3\u4e86\u56fe\u7247\u663e\u793a\u3001\u8bc4\u8bba\u533a\u5b9a\u4f4d\u7b49\u5177\u4f53\u95ee\u9898\u3002\u66f4\u65b0\u8bb0\u5f55\u663e\u793a\u5f00\u53d1\u8005\u517c\u987e\u6027\u80fd\u63d0\u5347\u4e0e\u7528\u6237\u4f53\u9a8c\u6539\u5584\u7684\u53cc\u91cd\u76ee\u6807\u3002
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-04-30","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-04-30","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4fee\u590d\u5173\u4e8e\u9875\u9762\u7684\u663e\u793a\u95ee\u9898
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-04-19","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-04-19","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4fee\u6539\u6559\u7a0b\u4e2d\u7684\u5404\u79cd\u5c0f\u9519\u8bef
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-04-13","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-04-13","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4fee\u590d\u5728 Markdown \u6587\u4ef6\u4e2d\uff0cHTML \u548c Markdown \u6df7\u7528\u53ef\u80fd\u5bfc\u81f4\u89e3\u6790\u5668\u65e0\u6cd5\u6b63\u786e\u6e32\u67d3\u3002
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-04-10","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-04-10","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u53cb\u94fe\u7edf\u8ba1\u65b9\u5f0f\uff0c\u66f4\u52a0\u51c6\u786e\u8ba1\u6570
- \u4fee\u590d\u8bc4\u8bba\u533a\u91cd\u5b9a\u4f4d\u7684bug\uff0c\u9632\u6b62\u4ed6\u4eba\u7f51\u7ad9\u6d4b\u8bd5\u8bc4\u8bba\u533a\u5bfc\u81f4\u8bc4\u8bba\u533a\u8986\u76d6\u5230\u6211\u7684\u7f51\u7ad9
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-03-30","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-03-30","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u6211\u56de\u6765\u4e86
- \u5f00\u542f\u535a\u5ba2\u534a\u6708\u66f4\u6a21\u5f0f
- \u4e00\u6218\u8003\u7814\u5931\u5229
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-03-14","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-03-14","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u03c0\u65e5\u5feb\u4e50\uff01
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-02-24","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-02-24","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4e00\u5207\u90fd\u662f\u6700\u597d\u7684\u5b89\u6392
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-02-19","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-02-19","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u66f4\u65b0\u4e86MKdocs\u6559\u7a0b\uff0c\u9002\u5e94\u5b98\u65b9\u6700\u65b0\u7248\u672c
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-02-16","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-02-16","text":"\u00b6
- \u9996\u9875\u7115\u7136\u4e00\u65b0
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-02-04","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-02-04","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u66f4\u65b0\u4e86\u90e8\u5206\u6559\u7a0b\uff0c\u9002\u5e94\u5b98\u65b9\u6700\u65b0\u7248\u672c
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-01-11","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-01-11","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u4f18\u5316\u7559\u8a00\u677f\uff0c\u652f\u6301\u6309\u94ae\u5207\u6362\uff0c\u5e03\u5c40\u66f4\u7b80\u6d01
- \u6e05\u7406\u5931\u6548\u56fe\u7247\u94fe\u63a5\uff0c\u4fee\u590d\u90e8\u5206\u56fe\u7247\u65e0\u6cd5\u663e\u793a\u95ee\u9898
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-01-09","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-01-09","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5f15\u5165glightbox\u63d2\u4ef6(\u5df2\u53d6\u6d88)\uff0c\u56fe\u7247\u67e5\u770b\u66f4\u65b9\u4fbf
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-01-07","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-01-07","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u91cd\u5199\u90e8\u5206\u4ee3\u7801
"},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#2025-01-05","title":"2025\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/#01","title":"2025-01-05","text":"\u00b6
- \u4f18\u5316\u7f51\u7ad9\u6d41\u7545\u5ea6\uff08\u7384\u5b66\uff09
- \u5927\u5e45\u63d0\u5347\u6027\u80fd\uff0c\u52a0\u8f7d\u901f\u5ea6\u66f4\u5feb Share on Share on
"},{"location":"blog/websitebeauty/404/","title":"\u6dfb\u52a0404\u9875\u9762","text":"\u9996\u5148\u5728mkdocs.yml\u6587\u4ef6\u4e2d\u6dfb\u52a0custom_dir:
theme:\n name: material\n custom_dir: docs/overrides #\u8986\u5199\u8def\u5f84\n
docs/overrides\u6587\u4ef6\u4e0b\u65b0\u5efa404.html \u6811\u72b6\u7ed3\u6784\u5982\u4e0b:
$ tree -a\n.\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 PublishMySite.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500overrides\n\u2502 \u2514\u2500\u2500assets\n\u2502 \u2514\u2500\u2500404.html\n\u2502 \u2514\u2500\u2500main.html\n\u2502 \u2514\u2500\u2500partials\n\u2502 \u2514\u2500\u2500comments.html\n\u2502\n\u2514\u2500\u2500 mkdocs.yml\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/404/#404","title":"404\u516c\u76ca\u9875\u9762","text":"\u70b9\u51fb\u5c55\u5f00 <!DOCTYPE html>\n<html lang=\"zh-CN\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>404 - \u9875\u9762\u4e0d\u5b58\u5728</title>```\n<!DOCTYPE html>\n<html lang=\"zh-cn\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"description\" content=\"\u516c\u76ca404\u9875\u9762\u662f\u7531\u817e\u8baf\u516c\u53f8\u5458\u5de5\u5fd7\u613f\u8005\u81ea\u4e3b\u53d1\u8d77\u7684\u4e92\u8054\u7f51\u516c\u76ca\u6d3b\u52a8\u3002\" />\n <link rel=\"icon\" href=\"data:image/gif;base64,R0lGODdhIAAgANUAAAAAAAgFBgYICAwMDBAPDxAQDxQTFBUYFxcaGRwcHCQkJCQoJykqKTQ0ND09PUJCQktMTFZWVltcXF1hYGNjY2doaGpqanNzc3d5eHp6eoODg4uLi5eXl5mamqOjo62tra+wr7S0tLe5uLu7u7/AwMPEw83NzdbX1tfa2dra2uTk5Ovr6+/w7/T09Pj39/f4+P///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAADEALAAAAAAgACAAAAb/QJhwOGyZOpIGQ6FgNCQcU4tIrcJaIwlgy+1uJaOplZqydBOSzGaTkSS6lNN4ONoOAJRQajV0rVAgFF0jcyEAbw9hc1cjD4cAIVZ1DAAXKotEKxkAlIREJ48bYphFGwAKAHJCLWaVo6RFF1sWYnUDDpewVSoOd4QtWgCeMCmXLaqfUyopdF9GWxRiKQAVKh3CRHUdKhQEzFeCAEdbH6uOh28A3ypbCQhbEGIfWx2CCd8wJhB2CpFDIQvuAIBgYkiKN0kASOAzRJYjBwyFrGgAwNGFTFqUAMjwYogpA1woMFwRDgDIDUQ2LQGAcoiGLRr2QRgp8yUADURMMWFJRYMH3BglJOQSwq0EDA84c56ilOGVLisqKUaISKVFihIjRJRI4XTIiggAGggygKxICAoguSDI0/UEyAnXAJTLJMtLlwxUYcwD0MEEtIgtBKGi0OHDh3qn8IwKvEVKuGHXGAwI8apFCAOUOvxzBqNOAVzgthi1UgKasl7YrtS9MMXI6DEjpKieNWoaSA1dF7V4+QafkNKoLOlSIQsVCUkmATgYwWIRCxEOAByANKc0AAEAJnzYI6bFihQfBAUQjSlF3S0GIqjZgCFC2i0XfM/BUtJuSEVPjdRTwsQJYdljBAEAOw==\" />\n <title>404 \u60a8\u8bbf\u95ee\u7684\u9875\u9762\u641e\u4e22\u4e86</title>\n <script src=\"https://volunteer.cdn-go.cn/404/latest/404.js\" rendertarget=\"404DlV\"></script>\n <style>\n body {\n overflow-x: hidden;\n max-width: 100vw;\n margin: 0;\n padding: 0;\n background-color: rgba(0, 0, 0, 0);\n color: white;\n text-align: center;\n }\n .container {\n position: relative;\n left: 50%;\n transform: translateX(-50%);\n width: 100%;\n max-width: 1600px;\n height: 100vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n .background-img {\n width: 100%;\n max-width: 1600px;\n filter: brightness(75%);\n }\n .content {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 98vw;\n max-width: 1600px;\n text-align: center;\n }\n .content h1 {\n font-size: 128px;\n font-weight: 800;\n margin: 0;\n }\n .content p {\n font-size: 28px;\n margin: 0;\n }\n .content i {\n font-size: 1.2em;\n }\n .footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 98vw;\n max-width: 1600px;\n font-size: 0.75em;\n margin-top: 20px;\n }\n .footer img {\n width: 160px;\n }\n .footer div {\n text-align: right;\n }\n .footer a {\n /* color: lightgray; */\n font-size: 0.8em;\n }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <img class=\"background-img\" alt=\"404!\u60a8\u8981\u8bbf\u95ee\u7684\u9875\u9762\u8d70\u4e22\u4e86!\" src=\"https://volunteer.cdn-go.cn/404/latest/img/dream4school.jpg\" />\n <div class=\"content\">\n <h1>404 NOT Found</h1>\n <p>\u60a8\u8bbf\u95ee\u7684\u9875\u9762\u8d70\u4e22\u5728\u5bfb\u627e\u68a6\u60f3\u7684\u8def\u4e0a\u4e86</p>\n <p>\u4e0d\u8fc7\u60a8\u8fd8\u53ef\u4ee5\u548c\u817e\u8baf\u5fd7\u613f\u8005\u4e00\u8d77</p>\n <i><b>\u4e3a\u5b69\u5b50\u4eec\u70b9\u4eae\u4e00\u4e2a\u68a6\u60f3</b></i>\n </div>\n <div class=\"footer\">\n <a href=\"https://volunteer.cdn-go.cn/404/latest/img/dream4schoolQR.png\">\n <img src=\"https://volunteer.cdn-go.cn/404/latest/img/dream4schoolQR.png\" alt=\"\u70b9\u51fb\u8fdb\u5165\u652f\u6301\u9875\u9762\" />\n <br />\u626b\u7801\u70b9\u4eae\u4e00\u4e2a\u68a6\u60f3\n </a>\n <div>\n <p>\u7167\u7247\u62cd\u6444\u4e8e\u6e56\u5357\u7701\u5cb3\u9633\u5e02\u5e73\u6c5f\u53bf\u4e09\u5e02\u9547\u65b0\u6751\u5b8c\u5c0f</p>\n <p>\u62cd\u6444\u65f6\u95f4\uff1a\u4e8c\u96f6\u4e8c\u4e09\u5e74\u4e03\u6708\u5341\u4e00\u65e5</p>\n <p>\uff08\u611f\u6069\u57fa\u91d1\u4f1a\u4f9b\u7a3f\uff09</p>\n <a href=\"https://support.qq.com/products/378306\">\u6211\u8981\u53cd\u9988</a>\n </div>\n </div>\n </div>\n</body>\n</html>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/404/#404_1","title":"404\u9ab0\u5b50\u9875\u9762","text":"\u76ee\u524d\u66f4\u6362\u4e86\u65b0\u7684404\u9875\u9762\uff1a
\u70b9\u51fb\u5c55\u5f00 <!DOCTYPE html>\n<html>\n <head>\n <meta charset=\"utf-8\" />\n <title>404</title>\n <style>\n body {\n background: #000;\n height: 100vh;\n overflow: hidden;\n display: flex;\n font-family: Anton, sans-serif;\n justify-content: center;\n align-items: center;\n -webkit-perspective: 1000px;\n perspective: 1000px;\n }\n\n div {\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n }\n\n .rail {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n -webkit-transform: rotateX(-30deg) rotateY(-30deg);\n transform: rotateX(-30deg) rotateY(-30deg);\n }\n\n .rail .stamp {\n position: absolute;\n width: 200px;\n height: 200px;\n display: flex;\n justify-content: center;\n align-items: center;\n background: #141414;\n color: #fff;\n font-size: 7rem;\n }\n\n .rail .stamp:nth-child(1) {\n -webkit-animation: stampSlide 40s -2.3s linear infinite;\n animation: stampSlide 40s -2.3s linear infinite;\n }\n\n .rail .stamp:nth-child(2) {\n -webkit-animation: stampSlide 40s -4.3s linear infinite;\n animation: stampSlide 40s -4.3s linear infinite;\n }\n\n .rail .stamp:nth-child(3) {\n -webkit-animation: stampSlide 40s -6.3s linear infinite;\n animation: stampSlide 40s -6.3s linear infinite;\n }\n\n .rail .stamp:nth-child(4) {\n -webkit-animation: stampSlide 40s -8.3s linear infinite;\n animation: stampSlide 40s -8.3s linear infinite;\n }\n\n .rail .stamp:nth-child(5) {\n -webkit-animation: stampSlide 40s -10.3s linear infinite;\n animation: stampSlide 40s -10.3s linear infinite;\n }\n\n .rail .stamp:nth-child(6) {\n -webkit-animation: stampSlide 40s -12.3s linear infinite;\n animation: stampSlide 40s -12.3s linear infinite;\n }\n\n .rail .stamp:nth-child(7) {\n -webkit-animation: stampSlide 40s -14.3s linear infinite;\n animation: stampSlide 40s -14.3s linear infinite;\n }\n\n .rail .stamp:nth-child(8) {\n -webkit-animation: stampSlide 40s -16.3s linear infinite;\n animation: stampSlide 40s -16.3s linear infinite;\n }\n\n .rail .stamp:nth-child(9) {\n -webkit-animation: stampSlide 40s -18.3s linear infinite;\n animation: stampSlide 40s -18.3s linear infinite;\n }\n\n .rail .stamp:nth-child(10) {\n -webkit-animation: stampSlide 40s -20.3s linear infinite;\n animation: stampSlide 40s -20.3s linear infinite;\n }\n\n .rail .stamp:nth-child(11) {\n -webkit-animation: stampSlide 40s -22.3s linear infinite;\n animation: stampSlide 40s -22.3s linear infinite;\n }\n\n .rail .stamp:nth-child(12) {\n -webkit-animation: stampSlide 40s -24.3s linear infinite;\n animation: stampSlide 40s -24.3s linear infinite;\n }\n\n .rail .stamp:nth-child(13) {\n -webkit-animation: stampSlide 40s -26.3s linear infinite;\n animation: stampSlide 40s -26.3s linear infinite;\n }\n\n .rail .stamp:nth-child(14) {\n -webkit-animation: stampSlide 40s -28.3s linear infinite;\n animation: stampSlide 40s -28.3s linear infinite;\n }\n\n .rail .stamp:nth-child(15) {\n -webkit-animation: stampSlide 40s -30.3s linear infinite;\n animation: stampSlide 40s -30.3s linear infinite;\n }\n\n .rail .stamp:nth-child(16) {\n -webkit-animation: stampSlide 40s -32.3s linear infinite;\n animation: stampSlide 40s -32.3s linear infinite;\n }\n\n .rail .stamp:nth-child(17) {\n -webkit-animation: stampSlide 40s -34.3s linear infinite;\n animation: stampSlide 40s -34.3s linear infinite;\n }\n\n .rail .stamp:nth-child(18) {\n -webkit-animation: stampSlide 40s -36.3s linear infinite;\n animation: stampSlide 40s -36.3s linear infinite;\n }\n\n .rail .stamp:nth-child(19) {\n -webkit-animation: stampSlide 40s -38.3s linear infinite;\n animation: stampSlide 40s -38.3s linear infinite;\n }\n\n .rail .stamp:nth-child(20) {\n -webkit-animation: stampSlide 40s -40.3s linear infinite;\n animation: stampSlide 40s -40.3s linear infinite;\n }\n\n @-webkit-keyframes stampSlide {\n 0% {\n -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(130px);\n transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(130px);\n }\n\n 100% {\n -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(-3870px);\n transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(-3870px);\n }\n }\n\n @keyframes stampSlide {\n 0% {\n -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(130px);\n transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(130px);\n }\n\n 100% {\n -webkit-transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(-3870px);\n transform: rotateX(90deg) rotateZ(-90deg) translateZ(-200px)\n translateY(-3870px);\n }\n }\n\n .world {\n -webkit-transform: rotateX(-30deg) rotateY(-30deg);\n transform: rotateX(-30deg) rotateY(-30deg);\n }\n\n .world .forward {\n position: absolute;\n -webkit-animation: slide 2s linear infinite;\n animation: slide 2s linear infinite;\n }\n\n .world .box {\n width: 200px;\n height: 200px;\n -webkit-transform-origin: 100% 100%;\n transform-origin: 100% 100%;\n -webkit-animation: roll 2s cubic-bezier(1, 0.01, 1, 1) infinite;\n animation: roll 2s cubic-bezier(1, 0.01, 1, 1) infinite;\n }\n\n .world .box .wall {\n position: absolute;\n width: 200px;\n height: 200px;\n background: rgba(10, 10, 10, 0.8);\n border: 1px solid #fafafa;\n box-sizing: border-box;\n }\n\n .world .box .wall::before {\n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: #fff;\n font-size: 7rem;\n }\n\n .world .box .wall:nth-child(1) {\n -webkit-transform: translateZ(100px);\n transform: translateZ(100px);\n }\n\n .world .box .wall:nth-child(2) {\n -webkit-transform: rotateX(180deg) translateZ(100px);\n transform: rotateX(180deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(3) {\n -webkit-transform: rotateX(90deg) translateZ(100px);\n transform: rotateX(90deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(3)::before {\n -webkit-transform: rotateX(180deg) rotateZ(90deg) translateZ(-1px);\n transform: rotateX(180deg) rotateZ(90deg) translateZ(-1px);\n -webkit-animation: zeroFour 4s -2s linear infinite;\n animation: zeroFour 4s -2s linear infinite;\n }\n\n .world .box .wall:nth-child(4) {\n -webkit-transform: rotateX(-90deg) translateZ(100px);\n transform: rotateX(-90deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(4)::before {\n -webkit-transform: rotateX(180deg) rotateZ(-90deg) translateZ(-1px);\n transform: rotateX(180deg) rotateZ(-90deg) translateZ(-1px);\n -webkit-animation: zeroFour 4s -2s linear infinite;\n animation: zeroFour 4s -2s linear infinite;\n }\n\n .world .box .wall:nth-child(5) {\n -webkit-transform: rotateY(90deg) translateZ(100px);\n transform: rotateY(90deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(5)::before {\n -webkit-transform: rotateX(180deg) translateZ(-1px);\n transform: rotateX(180deg) translateZ(-1px);\n -webkit-animation: zeroFour 4s linear infinite;\n animation: zeroFour 4s linear infinite;\n }\n\n .world .box .wall:nth-child(6) {\n -webkit-transform: rotateY(-90deg) translateZ(100px);\n transform: rotateY(-90deg) translateZ(100px);\n }\n\n .world .box .wall:nth-child(6)::before {\n -webkit-transform: rotateX(180deg) rotateZ(180deg) translateZ(-1px);\n transform: rotateX(180deg) rotateZ(180deg) translateZ(-1px);\n -webkit-animation: zeroFour 4s linear infinite;\n animation: zeroFour 4s linear infinite;\n }\n\n @-webkit-keyframes zeroFour {\n 0% {\n content: \"4\";\n }\n\n 100% {\n content: \"0\";\n }\n }\n\n @keyframes zeroFour {\n 0% {\n content: \"4\";\n }\n\n 100% {\n content: \"0\";\n }\n }\n\n @-webkit-keyframes roll {\n 0% {\n -webkit-transform: rotateZ(0);\n transform: rotateZ(0);\n }\n\n 85% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n\n 87% {\n -webkit-transform: rotateZ(88deg);\n transform: rotateZ(88deg);\n }\n\n 90% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n\n 100% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n }\n\n @keyframes roll {\n 0% {\n -webkit-transform: rotateZ(0);\n transform: rotateZ(0);\n }\n\n 85% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n\n 87% {\n -webkit-transform: rotateZ(88deg);\n transform: rotateZ(88deg);\n }\n\n 90% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n\n 100% {\n -webkit-transform: rotateZ(90deg);\n transform: rotateZ(90deg);\n }\n }\n\n @-webkit-keyframes slide {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n -webkit-transform: translateX(-200px);\n transform: translateX(-200px);\n }\n }\n\n @keyframes slide {\n 0% {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n }\n\n 100% {\n -webkit-transform: translateX(-200px);\n transform: translateX(-200px);\n }\n }\n </style>\n </head>\n <body>\n <div class=\"rail\">\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n <div class=\"stamp four\">4</div>\n <div class=\"stamp zero\">0</div>\n </div>\n <div class=\"world\">\n <div class=\"forward\">\n <div class=\"box\">\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n <div class=\"wall\"></div>\n </div>\n </div>\n </div>\n </body>\n</html>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/","title":"MkDocs\u6587\u6863AI\u6458\u8981","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u8be5\u63d2\u4ef6\u4e3aMkDocs\u6587\u6863\u7cfb\u7edf\u63d0\u4f9bAI\u9a71\u52a8\u7684\u667a\u80fd\u6458\u8981\u548c\u9605\u8bfb\u7edf\u8ba1\u529f\u80fd\uff0c\u652f\u6301OpenAI\u3001DeepSeek\u7b49\u591aAPI\u670d\u52a1\u3002\u6838\u5fc3\u7279\u6027\u5305\u62ec\u81ea\u52a8\u751f\u621080-120\u5b57\u591a\u8bed\u8a00\u6458\u8981\u3001\u667a\u80fd\u5185\u5bb9\u6e05\u7406\u3001\u9ad8\u6548\u7f13\u5b58\u7cfb\u7edf\uff0c\u4ee5\u53ca\u7cbe\u51c6\u7684\u4e2d\u6587\u9605\u8bfb\u65f6\u95f4\u4f30\u7b97\u3002\u901a\u8fc7\u7075\u6d3b\u7684\u914d\u7f6e\u9009\u9879\uff0c\u7528\u6237\u53ef\u5b9e\u73b0\u6587\u4ef6\u5939\u6216\u9875\u9762\u7ea7\u522b\u7684\u7cbe\u786e\u63a7\u5236\uff0c\u5e76\u81ea\u5b9a\u4e49API\u670d\u52a1\u548c\u63d0\u793a\u8bcd\u3002\u5b89\u88c5\u7b80\u4fbf\uff0c\u652f\u6301\u76f4\u63a5\u4e0b\u8f7d\u6216Git\u514b\u9686\uff0c\u9002\u5408\u6280\u672f\u6587\u6863\u548c\u535a\u5ba2\u7684\u81ea\u52a8\u5316\u6458\u8981\u9700\u6c42\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#mkdocs-ai-hooks","title":"MkDocs AI Hooks","text":"\u4ed3\u5e93\u5730\u5740\uff1ahttps://github.com/Wcowin/mkdocs-ai-hooks \u5728\u7ebf\u9884\u89c8\uff1ahttps://wcowin.work/mkdocs-ai-hooks/
\u4e2d\u6587 | English
\ud83d\ude80 \u60a8\u7684MkDocs\u6587\u6863\u9996\u9009\u667a\u80fd\u6458\u8981\uff01 \u8fd9\u4e2a\u9879\u76ee\u5229\u7528MkDocs hooks\uff0c\u4e3a\u60a8\u7684\u6280\u672f\u6587\u6863\u548c\u535a\u5ba2\u6dfb\u52a0AI\u9a71\u52a8\u7684\u6458\u8981\u751f\u6210\u548c\u667a\u80fd\u9605\u8bfb\u7edf\u8ba1\u529f\u80fd\u3002
\u7f51\u7ad9\u6548\u679c\u9884\u89c8\uff1ahttps://wcowin.work/Mkdocs-Wcowin/blog/Mkdocs/mkfirst/
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_1","title":"\u2728 \u529f\u80fd\u7279\u6027","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#ai","title":"AI\u667a\u80fd\u6458\u8981","text":" - \u81ea\u52a8\u751f\u6210\u6587\u7ae0\u6458\u8981\uff1a\u4f7f\u7528DeepSeek API\u751f\u6210\u9ad8\u8d28\u91cf\u768480-120\u5b57\u6458\u8981
- \u591a\u8bed\u8a00\u652f\u6301\uff1a\u652f\u6301\u4e2d\u6587\u3001\u82f1\u6587\u7b49\u591a\u79cd\u8bed\u8a00
- \u591aAPI\u670d\u52a1\u652f\u6301\uff1a\u652f\u6301OpenAI\u3001Claude\u7b49\u591a\u79cdAI\u670d\u52a1
- \u667a\u80fd\u5185\u5bb9\u6e05\u7406\uff1a\u81ea\u52a8\u8fc7\u6ee4YAML\u3001HTML\u3001\u4ee3\u7801\u5757\u7b49\u683c\u5f0f\u5185\u5bb9
- \u5907\u7528\u6458\u8981\u673a\u5236\uff1aAPI\u5931\u8d25\u65f6\u63d0\u4f9b\u57fa\u4e8e\u89c4\u5219\u7684\u667a\u80fd\u6458\u8981
- \u9ad8\u6548\u7f13\u5b58\u7cfb\u7edf\uff1a\u907f\u514d\u91cd\u590dAPI\u8c03\u7528\uff0c7\u5929\u667a\u80fd\u8fc7\u671f
- \u7075\u6d3b\u914d\u7f6e\uff1a\u652f\u6301\u6587\u4ef6\u5939\u7ea7\u522b\u548c\u9875\u9762\u7ea7\u522b\u7684\u7cbe\u786e\u63a7\u5236
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_2","title":"\u667a\u80fd\u9605\u8bfb\u7edf\u8ba1(\u53ef\u9009)","text":" - \u7cbe\u51c6\u4e2d\u6587\u5b57\u7b26\u7edf\u8ba1\uff1a\u4e13\u95e8\u4f18\u5316\u7684\u4e2d\u6587\u5185\u5bb9\u8bc6\u522b
- \u667a\u80fd\u4ee3\u7801\u68c0\u6d4b\uff1a\u8bc6\u522b\u591a\u79cd\u7f16\u7a0b\u8bed\u8a00\u548c\u547d\u4ee4\u884c\u4ee3\u7801
- \u9605\u8bfb\u65f6\u95f4\u4f30\u7b97\uff1a\u57fa\u4e8e\u4e2d\u6587\u9605\u8bfb\u4e60\u60ef\u7684400\u5b57/\u5206\u949f\u8ba1\u7b97
- \u7f8e\u89c2\u4fe1\u606f\u5c55\u793a\uff1a\u4f7f\u7528MkDocs Material\u98ce\u683c\u7684\u4fe1\u606f\u6846
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_3","title":"\u667a\u80fd\u5316\u7279\u6027","text":" - \u81ea\u52a8\u8bed\u8a00\u8bc6\u522b\uff1a\u652f\u630130+\u7f16\u7a0b\u8bed\u8a00\u548c\u6807\u8bb0\u8bed\u8a00
- \u5185\u5bb9\u7c7b\u578b\u68c0\u6d4b\uff1a\u533a\u5206\u4ee3\u7801\u3001\u914d\u7f6e\u3001\u547d\u4ee4\u884c\u7b49\u4e0d\u540c\u5185\u5bb9
- \u7f13\u5b58\u4f18\u5316\uff1aLRU\u7f13\u5b58\u63d0\u5347\u6027\u80fd
- \u9519\u8bef\u5904\u7406\uff1a\u5b8c\u5584\u7684\u5f02\u5e38\u5904\u7406\u548c\u65e5\u5fd7\u8bb0\u5f55
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_4","title":"\ud83d\udce6 \u5b89\u88c5","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#1","title":"\u65b9\u6cd51","text":"\u76f4\u63a5\u4e0b\u8f7d\uff08\u63a8\u8350\uff09 \u5728releases\u9875\u9762\u4e0b\u8f7d\uff0c\u89e3\u538b\u540e\u5c06\u4ee5\u4e0b\u6587\u4ef6\u653e\u5165\u60a8\u7684MkDocs\u9879\u76ee\u7684docs/overrides/hooks\u4e2d\uff1a https://github.com/Wcowin/mkdocs-ai-hooks/releases
\u6216\u8005\u4e0b\u8f7d\u4e0a\u65b9hooks\u76ee\u5f55\u4e0b\u7684\u4e24\u4e2aPython\u6587\u4ef6\uff1a
# \u653e\u7f6e\u5230\u60a8\u7684\u9879\u76ee\u76ee\u5f55\nmkdir -p docs/overrides/hooks/\nmv ai_summary.py docs/overrides/hooks/\nmv reading_time.py docs/overrides/hooks/\n
\u653e\u7f6e\u7684\u4f4d\u7f6e\u5982\u4e0b\uff1a \u5728 mkdocs.yml
\u4e2dtheme\u4e0b\u6dfb\u52a0custom_dir\uff1a
# \u53ef\u9009\uff1aMaterial\u4e3b\u9898\u914d\u7f6e\ntheme:\n name: material\n custom_dir: docs/overrides #\u4e00\u5b9a\u8981\u6709\uff01\u4e00\u5b9a\u8981\u6709\uff01\n features:\n - content.code.copy\n - content.code.select\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#2","title":"\u65b9\u6cd52","text":"\u4f7f\u7528Git\u514b\u9686
git clone https://github.com/Wcowin/mkdocs-ai-hooks.git\ncd mkdocs-ai-hooks \npip install -r requirements.txt\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_5","title":"\u4f9d\u8d56\u5b89\u88c5","text":"pip install requirements.txt\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_6","title":"\ud83d\ude80 \u5feb\u901f\u5f00\u59cb","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#1-mkdocs","title":"1. \u914d\u7f6eMkDocs","text":"\u5148\u6267\u884c\u4e00\u6b21mkdocs build
\uff0c\u751f\u6210\u7f13\u5b58\u6587\u4ef6
mkdocs build \n
\u5728 mkdocs.yml
\u4e2d\u6dfb\u52a0hooks\uff0ctheme\u4e0b\u6dfb\u52a0custom_dir\uff1a hooks:\n - docs/overrides/hooks/ai_summary.py # \u6dfb\u52a0AI\u6458\u8981hook\n - docs/overrides/hooks/reading_time.py # \u6dfb\u52a0\u7edf\u8ba1\u9605\u8bfb\u65f6\u95f4hook\n\n# \u53ef\u9009\uff1aMaterial\u4e3b\u9898\u914d\u7f6e\ntheme:\n name: material\n custom_dir: docs/overrides #\u4e00\u5b9a\u8981\u6709\uff01\uff01\n features:\n - content.code.copy\n - content.code.select\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#2-ai_summarypyai","title":"2. \u5728ai_summary.py\u4e2d\u914d\u7f6e\u9700\u8981AI\u6458\u8981\u7684\u76ee\u5f55","text":"# \ud83d\udcc2 \u53ef\u81ea\u5b9a\u4e49\u7684\u6587\u4ef6\u5939\u914d\u7f6e\nself.enabled_folders = [\n 'blog/', # blog\u6587\u4ef6\u5939\n 'develop/', # develop\u6587\u4ef6\u5939\n # \u5728\u8fd9\u91cc\u6dfb\u52a0\u60a8\u60f3\u8981\u542f\u7528AI\u6458\u8981\u7684\u6587\u4ef6\u5939\n]\n\n# \ud83d\udccb \u6392\u9664\u7684\u6587\u4ef6\u548c\u6587\u4ef6\u5939\nself.exclude_patterns = [\n 'waline.md', 'link.md', '404.md', 'tag.md', 'tags.md',\n '/about/', '/search/', '/sitemap', 'index.md', # \u6839\u76ee\u5f55index.md\n]\n\n# \ud83d\udccb \u6392\u9664\u7684\u7279\u5b9a\u6587\u4ef6\nself.exclude_files = [\n 'blog/index.md',\n 'blog/indexblog.md',\n 'docs/index.md',\n 'develop/index.md',\n]\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#3-ai_summarypydeepseek-apiopenai","title":"3. \u5728ai_summary.py\u4e2d\u8bbe\u7f6eDeepSeek API(\u9ed8\u8ba4\u662fOpenAI)","text":"# \u5728ai_summary.py\u4e2d\u4fee\u6539API\u914d\u7f6e\n'deepseek': {\n 'url': 'https://api.deepseek.com/v1/chat/completions',\n 'model': 'deepseek-chat',\n 'api_key': os.getenv('DEEPSEEK_API_KEY', 'your-azure-api-key'),\n 'max_tokens': 150,\n 'temperature': 0.3\n},\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#4-mkdocs","title":"4. \u8fd0\u884cMkDocs","text":"\u7b2c\u4e00\u6b21\u8fd0\u884c\u65f6\uff0c\u53ef\u80fd\u9700\u8981\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\uff0c\u56e0\u4e3a\u7cfb\u7edf\u4f1a\u81ea\u52a8\u751f\u6210\u6458\u8981\u3002\u540e\u7eed\u8fd0\u884c\u65f6\uff0c\u7cfb\u7edf\u4f1a\u4f7f\u7528\u7f13\u5b58\u6570\u636e\uff0c\u52a0\u5feb\u751f\u6210\u901f\u5ea6\u3002
#\u4f9d\u6b21\u8fd0\u884c\u547d\u4ee4\nmkdocs build \nmkdocs serve\n
\u7ec8\u7aef\u8f93\u51fa\u5982\u4e0b\uff1a ","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_7","title":"\ud83d\udcd6 \u4f7f\u7528\u6307\u5357","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#ai_1","title":"AI\u6458\u8981\u914d\u7f6e","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_8","title":"\u6587\u4ef6\u5939\u7ea7\u522b\u63a7\u5236","text":"# \u542f\u7528\u7279\u5b9a\u6587\u4ef6\u5939\nconfigure_ai_summary(['blog/', 'docs/', 'tutorials/'])\n\n# \u5168\u5c40\u542f\u7528\uff08\u9664\u6392\u9664\u9879\uff09\nconfigure_ai_summary([''])\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_9","title":"\u9875\u9762\u7ea7\u522b\u63a7\u5236(\u63a8\u8350)","text":"\u5728Markdown\u6587\u4ef6\u7684YAML front matter\u4e2d\uff1a
---\ntitle: \u6587\u7ae0\u6807\u9898\nai_summary: true # \u542f\u7528AI\u6458\u8981\n---\n
---\ntitle: \u6587\u7ae0\u6807\u9898\nai_summary: false # \u7981\u7528AI\u6458\u8981\ndescription: \u624b\u52a8\u6458\u8981 # \u53ef\u9009\n---\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_10","title":"\u9605\u8bfb\u65f6\u95f4\u914d\u7f6e","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_11","title":"\u6392\u9664\u7279\u5b9a\u9875\u9762","text":"# \u5728\u9875\u9762\u7684YAML front matter\u4e2d\n---\ntitle: \u9875\u9762\u6807\u9898\nhide_reading_time: true # \u9690\u85cf\u9605\u8bfb\u65f6\u95f4\n---\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_12","title":"\ud83c\udfa8 \u663e\u793a\u6548\u679c","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#ai_2","title":"AI\u6458\u8981\u663e\u793a","text":"!!! info \"\ud83e\udd16 AI\u667a\u80fd\u6458\u8981\"\n \u672c\u6587\u8be6\u7ec6\u4ecb\u7ecd\u4e86MkDocs hooks\u7684\u5f00\u53d1\u548c\u4f7f\u7528\u65b9\u6cd5\uff0c\u6db5\u76d6AI\u6458\u8981\u751f\u6210\u3001\u9605\u8bfb\u65f6\u95f4\u7edf\u8ba1\u7b49\u529f\u80fd\u5b9e\u73b0\u3002\u901a\u8fc7DeepSeek API\u96c6\u6210\u548c\u667a\u80fd\u7f13\u5b58\u673a\u5236\uff0c\u4e3a\u6280\u672f\u6587\u6863\u63d0\u4f9b\u81ea\u52a8\u5316\u7684\u5185\u5bb9\u589e\u5f3a\u670d\u52a1\u3002\n\n# \u60a8\u7684\u6587\u7ae0\u6807\u9898\n\u6587\u7ae0\u5185\u5bb9...\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_13","title":"\u9605\u8bfb\u4fe1\u606f\u663e\u793a","text":"!!! info \"\ud83d\udcd6 \u9605\u8bfb\u4fe1\u606f\"\n \u9605\u8bfb\u65f6\u95f4\uff1a**3** \u5206\u949f | \u4e2d\u6587\u5b57\u7b26\uff1a**1247** | \u6709\u6548\u4ee3\u7801\u884c\u6570\uff1a**45**\n\n# \u60a8\u7684\u6587\u7ae0\u6807\u9898\n\u6587\u7ae0\u5185\u5bb9...\n
\u5b9e\u9645\u6548\u679c\uff1a
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#api","title":"API\u82b1\u8d39","text":"\u4e00\u6b21\u5927\u7ea60.03-0.05\u5143\uff08\u4e2d\u5927\u578b\u6587\u6863\uff09 \u53ef\u4ee5\u8bf4\u76f8\u5f53\u7ecf\u6d4e\u5b9e\u60e0\u4e86\uff01
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#openai","title":"\u514d\u8d39openai\u989d\u5ea6\u83b7\u53d6","text":"\u63a8\u8350\u4f7f\u7528\uff1achatanywhere
\u7533\u8bf7\u597d\u540e\u5f97\u5230sk-\u5f00\u5934\u7684\u5bc6\u94a5\uff0c\u5728ai_summary.py\u7684\u591aAI\u670d\u52a1\u914d\u7f6e\u90e8\u5206\u66ff\u6362\u4e3a\u4ee5\u4e0b\u5185\u5bb9\uff1a
'openai': {\n 'url': 'https://api.chatanywhere.tech/v1/chat/completions',\n 'model': 'gpt-3.5-turbo', # \u6216 'gpt-4', 'gpt-4-turbo'\n 'api_key': os.getenv('OPENAI_API_KEY', 'your_openai_api_key'),\n 'max_tokens': 150,\n 'temperature': 0.3\n},\n
# \u9ed8\u8ba4\u4f7f\u7528\u7684AI\u670d\u52a1\nself.default_service = 'openai'\n
\u4f46\u662f\u6211\u8fd9\u91cc\u4e5f\u63a8\u8350\u4f7f\u7528DeepSeek API\uff0c\u989d\u5ea6\u5145\u8db3\u4e14\u6027\u80fd\u4f18\u79c0\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_14","title":"\u2699\ufe0f \u9ad8\u7ea7\u914d\u7f6e","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#api_1","title":"\u81ea\u5b9a\u4e49API\u670d\u52a1","text":"# \u652f\u6301\u5176\u4ed6AI\u670d\u52a1\nself.api_config = {\n 'url': 'https://your-api-endpoint.com/v1/chat/completions',\n 'model': 'your-model',\n 'headers': {\n 'Content-Type': 'application/json',\n 'Authorization': 'Bearer YOUR_API_KEY'\n }\n}\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_15","title":"\u81ea\u5b9a\u4e49\u63d0\u793a\u8bcd","text":"# \u4fee\u6539AI\u6458\u8981\u7684\u63d0\u793a\u8bcd\ndef generate_ai_summary(self, content, page_title=\"\"):\n prompt = f\"\"\"\u60a8\u7684\u81ea\u5b9a\u4e49\u63d0\u793a\u8bcd...\n\n \u6587\u7ae0\u6807\u9898\uff1a{page_title}\n \u6587\u7ae0\u5185\u5bb9\uff1a{content[:2500]}\n \"\"\"\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_16","title":"\u7f13\u5b58\u914d\u7f6e","text":"# \u4fee\u6539\u7f13\u5b58\u8fc7\u671f\u65f6\u95f4\uff08\u5929\u6570\uff09\ncache_time = datetime.fromisoformat(cache_data.get('timestamp', '1970-01-01'))\nif (datetime.now() - cache_time).days < 30: # \u6539\u4e3a30\u5929\n return cache_data\n
\u6ce8\u610f\u6ce8\u610f\u6ce8\u610f\uff01\uff01\uff01 \u5207\u6362api\u670d\u52a1\u540e\uff0c\u8981\u5220\u9664site/.ai_cache\u8fd9\u4e2a\u7f13\u5b58\u6587\u4ef6\uff0c\u624d\u53ef\u4ee5\u91cd\u65b0\u751f\u6210\u6458\u8981\uff01\uff01\uff01(\u8fd9\u4e2a\u95ee\u9898\u5df2\u7ecf\u89e3\u51b3\u4e86\uff0c\u5207\u6362api\u670d\u52a1\u540e\uff0c\u4f1a\u81ea\u52a8\u5220\u9664\u7f13\u5b58\u6587\u4ef6\uff0c\u65e0\u9700\u624b\u52a8\u5220\u9664)
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#star-history","title":"Star History","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/MkDocs-AI-Hooks/#_17","title":"\u8bf7\u4f5c\u8005\u559d\u676f\u5496\u5561","text":"
\u5982\u679c\u8fd9\u4e2a\u9879\u76ee\u5bf9\u60a8\u6709\u5e2e\u52a9\uff0c\u8bf7\u7ed9\u5b83\u4e00\u4e2a \u2b50 Star\uff01
\ud83d\udcdd \u672c\u9879\u76ee\u81f4\u529b\u4e8e\u8ba9MkDocs\u6587\u6863\u66f4\u52a0\u667a\u80fd\u5316\u548c\u7528\u6237\u53cb\u597d\u3002\u5982\u6709\u5efa\u8bae\u6216\u60f3\u6cd5\uff0c\u6b22\u8fce\u4ea4\u6d41\uff01","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/","title":"\u76f8\u5bf9\u5730\u5740\u7684\u4e00\u4e9b\u95ee\u9898","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u603b\u7ed3\u4e86MkDocs\u6587\u6863\u7cfb\u7edf\u4e2d\u76f8\u5bf9\u5730\u5740\u5f15\u7528\u7684\u5e38\u89c1\u95ee\u9898\u4e0e\u89e3\u51b3\u65b9\u6848\uff0c\u91cd\u70b9\u9610\u8ff0\u4e86\u56fe\u7247\u3001PDF\u3001\u8de8\u9875\u9762\u53ca\u9759\u6001\u8d44\u6e90\u7684\u6b63\u786e\u5f15\u7528\u65b9\u5f0f\u3002\u6838\u5fc3\u8981\u70b9\u5305\u62ec\uff1a\u4ee5docs\u76ee\u5f55\u4e3a\u6839\u8def\u5f84\u8fdb\u884c\u76f8\u5bf9\u5b9a\u4f4d\uff0c\u4fdd\u6301\u8def\u5f84\u5927\u5c0f\u5199\u4e00\u81f4\uff0c\u7edf\u4e00\u8d44\u6e90\u76ee\u5f55\u7ed3\u6784\u3002\u9488\u5bf9\u672c\u5730\u4e0e\u7ebf\u4e0a\u73af\u5883\u5dee\u5f02\uff0c\u63d0\u4f9b\u4e86\u786e\u4fdd\u8d44\u6e90\u53ef\u8bbf\u95ee\u6027\u7684\u5b9e\u7528\u6280\u5de7\uff0c\u5982\u8def\u5f84\u68c0\u67e5\u3001\u6587\u4ef6\u538b\u7f29\u7b49\uff0c\u4e3aMkDocs\u9879\u76ee\u7684\u8d44\u6e90\u7ba1\u7406\u63d0\u4f9b\u4e86\u7cfb\u7edf\u5316\u6307\u5bfc\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#mkdocs","title":"\u9488\u5bf9MKdocs\u4e2d\u76f8\u5bf9\u5730\u5740\u5f15\u7528\u7684\u4e00\u4e9b\u95ee\u9898","text":"\u5728\u4f7f\u7528 MkDocs \u6784\u5efa\u6587\u6863\u7f51\u7ad9\u65f6\uff0c\u5e38\u5e38\u4f1a\u9047\u5230\u76f8\u5bf9\u5730\u5740\u5f15\u7528\u7684\u95ee\u9898\uff0c\u5c24\u5176\u662f\u5728\u56fe\u7247\u3001PDF\u3001\u5176\u4ed6\u9759\u6001\u8d44\u6e90\u7b49\u7684\u5f15\u7528\u4e0a\u3002\u5408\u7406\u4f7f\u7528\u76f8\u5bf9\u5730\u5740\u53ef\u4ee5\u8ba9\u4f60\u7684\u6587\u6863\u5728\u672c\u5730\u9884\u89c8\u548c\u7ebf\u4e0a\u90e8\u7f72\u65f6\u90fd\u80fd\u6b63\u5e38\u663e\u793a\u3002\u4e0b\u9762\u603b\u7ed3\u4e00\u4e9b\u5e38\u89c1\u573a\u666f\u548c\u6ce8\u610f\u4e8b\u9879\uff1a
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#1","title":"1. \u56fe\u7247\u5f15\u7528","text":"\u63a8\u8350\u5199\u6cd5\uff1a
\n
./img/example.png
\u8868\u793a\u5f53\u524d Markdown \u6587\u4ef6\u540c\u7ea7\u76ee\u5f55\u4e0b\u7684 img
\u6587\u4ef6\u5939\u4e2d\u7684\u56fe\u7247\u3002 \u5982\u679c\u56fe\u7247\u5728\u4e0a\u7ea7\u76ee\u5f55\uff1a../assets/example.png
\u6ce8\u610f\u4e8b\u9879\uff1a
- \u8def\u5f84\u533a\u5206\u5927\u5c0f\u5199\uff0c\u786e\u4fdd\u6587\u4ef6\u540d\u548c\u8def\u5f84\u4e00\u81f4\u3002
- MkDocs \u4f1a\u5c06
docs
\u76ee\u5f55\u4e0b\u7684\u6240\u6709\u6587\u4ef6\u539f\u6837\u590d\u5236\u5230\u7ad9\u70b9\u6839\u76ee\u5f55\uff0c\u5f15\u7528\u8def\u5f84\u5e94\u4ee5 docs
\u4e3a\u6839\u76ee\u5f55\u8fdb\u884c\u76f8\u5bf9\u5b9a\u4f4d\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#2-pdf","title":"2. PDF \u6587\u4ef6\u5f15\u7528","text":"\u5185\u5d4c\u6216\u4e0b\u8f7d PDF\uff1a
[\u67e5\u770bPDF](./files/example.pdf)\n
\u6216\u4f7f\u7528 HTML \u65b9\u5f0f\u5185\u5d4c\uff1a
<embed src=\"./files/example.pdf\" width=\"100%\" height=\"600px\" type=\"application/pdf\">\n
./files/example.pdf
\u8868\u793a\u5f53\u524d\u6587\u6863\u540c\u7ea7\u7684 files
\u6587\u4ef6\u5939\u4e0b\u7684 PDF \u6587\u4ef6\u3002 ../files/example.pdf
\u8868\u793a\u4e0a\u7ea7\u76ee\u5f55\u7684 files
\u6587\u4ef6\u5939\u4e0b\u7684 PDF \u6587\u4ef6\u3002 ../../files/example.pdf
\u8868\u793a\u4e0a\u4e0a\u7ea7\u76ee\u5f55\u7684 files
\u6587\u4ef6\u5939\u4e0b\u7684 PDF \u6587\u4ef6\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#3","title":"3. \u8de8\u9875\u9762\u5f15\u7528","text":"\u5f15\u7528\u540c\u4e00\u9879\u76ee\u4e0b\u7684\u5176\u4ed6 Markdown \u9875\u9762\uff1a
[\u8df3\u8f6c\u5230\u5176\u4ed6\u9875\u9762](../otherpage.md)\n
- MkDocs \u4f1a\u81ea\u52a8\u5c06
.md
\u8f6c\u6362\u4e3a .html
\uff0c\u6240\u4ee5\u53ef\u4ee5\u76f4\u63a5\u7528 Markdown \u6587\u4ef6\u540d\u3002 - \uff08\uff09\u5185\u7684\u8def\u5f84\u662f\u76f8\u5bf9\u4e8e\u5f53\u524d Markdown \u6587\u4ef6\u7684\u8def\u5f84\uff0c\u53ef\u4ee5\u53c2\u8003PDF\u6587\u4ef6\u5f15\u7528\u7684\u65b9\u6cd5\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#4","title":"4. \u9759\u6001\u8d44\u6e90\u5f15\u7528","text":"\u5982 CSS\u3001JS \u6587\u4ef6\uff1a
<link rel=\"stylesheet\" href=\"../assets/style.css\">\n<script src=\"../assets/script.js\"></script>\n
- \u63a8\u8350\u5c06\u9759\u6001\u8d44\u6e90\u653e\u5728
docs/assets
\u76ee\u5f55\u4e0b\uff0c\u5f15\u7528\u65f6\u7528\u76f8\u5bf9\u8def\u5f84\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#5","title":"5. \u5e38\u89c1\u95ee\u9898","text":" - \u8def\u5f84\u9519\u8bef\u5bfc\u81f4\u8d44\u6e90\u65e0\u6cd5\u52a0\u8f7d\uff1a\u8bf7\u68c0\u67e5\u8def\u5f84\u662f\u5426\u6b63\u786e\u3001\u6587\u4ef6\u662f\u5426\u5b58\u5728\u3001\u5927\u5c0f\u5199\u662f\u5426\u4e00\u81f4\u3002
- \u672c\u5730\u9884\u89c8\u6b63\u5e38\uff0c\u7ebf\u4e0a\u4e0d\u663e\u793a\uff1a\u6709\u53ef\u80fd\u662f\u8def\u5f84\u5199\u6b7b\u6216\u5927\u5c0f\u5199\u95ee\u9898\uff0c\u5efa\u8bae\u59cb\u7ec8\u7528\u76f8\u5bf9\u8def\u5f84\u3002
- \u56fe\u7247/\u6587\u4ef6\u8fc7\u5927\u52a0\u8f7d\u6162\uff1a\u53ef\u9002\u5f53\u538b\u7f29\u56fe\u7247\u6216 PDF \u6587\u4ef6\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/Relativeaddress/#_1","title":"\u603b\u7ed3","text":"\u5728 MkDocs \u9879\u76ee\u4e2d\uff0c\u6240\u6709\u8d44\u6e90\u7684\u76f8\u5bf9\u8def\u5f84\u90fd\u5e94\u4ee5\u5f53\u524d Markdown \u6587\u4ef6\u4e3a\u57fa\u51c6\uff0c\u786e\u4fdd\u672c\u5730\u548c\u7ebf\u4e0a\u90fd\u80fd\u6b63\u786e\u8bbf\u95ee\u3002\u5efa\u8bae\u7edf\u4e00\u8d44\u6e90\u7ba1\u7406\u76ee\u5f55\u7ed3\u6784\uff0c\u4fbf\u4e8e\u7ef4\u62a4\u548c\u5f15\u7528\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/","title":"\u52a0\u901f\u7f51\u7ad9\u8bbf\u95ee\u7684\u4e00\u4e9b\u5fc3\u5f97","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86\u4f7f\u7528MkDocs\u6784\u5efa\u7f51\u7ad9\u65f6\u7684\u6027\u80fd\u4f18\u5316\u65b9\u6848\uff0c\u5305\u62ec\u91c7\u7528WebP\u7b49\u9ad8\u6548\u56fe\u7247\u683c\u5f0f\u538b\u7f29\u8d44\u6e90\u3001\u5229\u7528CDN\u52a0\u901f\u9759\u6001\u6587\u4ef6\u5206\u53d1\uff0c\u4ee5\u53ca\u901a\u8fc7\u5408\u7406\u914d\u7f6egit\u63d2\u4ef6\u63d0\u5347\u672c\u5730\u6e32\u67d3\u6548\u7387\u3002\u91cd\u70b9\u9610\u8ff0\u4e86\u5f00\u53d1\u73af\u5883\u4e0e\u751f\u4ea7\u73af\u5883\u7684\u5dee\u5f02\u5316\u914d\u7f6e\u7b56\u7565\uff0c\u5e76\u63a8\u8350\u4f7f\u7528Lighthouse\u5de5\u5177\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\u9a8c\u8bc1\u4f18\u5316\u6548\u679c\u3002\u8fd9\u4e9b\u63aa\u65bd\u80fd\u6709\u6548\u964d\u4f4e\u9875\u9762\u52a0\u8f7d\u5ef6\u8fdf\uff0c\u63d0\u5347\u7528\u6237\u4f53\u9a8c\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/#_1","title":"\u52a0\u901f\u7f51\u7ad9\u8bbf\u95ee\u7684\u4e00\u4e9b\u5fc3\u5f97","text":"\u5728\u4f7f\u7528 MkDocs \u6784\u5efa\u7f51\u7ad9\u65f6\uff0c\u4e3a\u4e86\u63d0\u9ad8\u8bbf\u95ee\u901f\u5ea6\uff0c\u6211\u4eec\u53ef\u4ee5\u91c7\u53d6\u4ee5\u4e0b\u4e00\u4e9b\u63aa\u65bd\uff1a
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/#1","title":"1. \u4f18\u5316\u56fe\u7247","text":"\u4f7f\u7528\u5408\u9002\u7684\u56fe\u7247\u683c\u5f0f\uff0c\u5982 WebP\u3001JPEG2000 \u7b49\uff0c\u51cf\u5c11\u56fe\u7247\u6587\u4ef6\u5927\u5c0f\uff0c\u4ece\u800c\u52a0\u5feb\u52a0\u8f7d\u901f\u5ea6\u3002
\u53ef\u4ee5\u4f7f\u7528\u5728\u7ebf\u5de5\u5177\u8fdb\u884c\u56fe\u7247\u538b\u7f29\uff0c\u5982\uff1a
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/#2-jscss-cdn","title":"2. JS/CSS\u4f7f\u7528 CDN","text":"\u4f7f\u7528\u5185\u5bb9\u5206\u53d1\u7f51\u7edc\uff08CDN\uff09\u6765\u52a0\u901f\u7f51\u7ad9\u7684\u8bbf\u95ee\uff0c\u5c06\u9759\u6001\u8d44\u6e90\uff08\u5982\u56fe\u7247\u3001CSS\u3001JS\uff09\u7f13\u5b58\u5230\u5168\u7403\u5404\u5730\u7684\u670d\u52a1\u5668\u4e0a\uff0c\u7528\u6237\u5c31\u8fd1\u8bbf\u95ee\uff0c\u51cf\u5c11\u5ef6\u8fdf\u3002
\u8fd9\u91cc\u63a8\u8350
- jsDelivr CDN \u52a0\u901f GitHub \u6587\u4ef6
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/accelerate/#3","title":"3.\u52a0\u901f\u672c\u5730\u6e32\u67d3","text":"\u4f18\u5316 git \u63d2\u4ef6\u7684 enabled \u914d\u7f6e \u6bd4\u5982\u6211\u914d\u7f6e\u91cc\u6709 git-revision-date-localized \u548c git-committers \u63d2\u4ef6\uff0c\u8fd9\u4e9b\u63d2\u4ef6\u4f1a\u5728\u6bcf\u6b21\u6e32\u67d3\u65f6\u8bfb\u53d6\u6240\u6709\u6587\u4ef6\u7684 git \u5386\u53f2\uff0c\u5bfc\u81f4\u672c\u5730\u9884\u89c8\u53d8\u6162\u3002 \u63a8\u8350\u505a\u6cd5\u662f\u5728\u672c\u5730\u5f00\u53d1\u65f6\u7981\u7528\u5b83\u4eec\uff0c\u4ec5\u5728 CI/CD \u6216\u7ebf\u4e0a\u6784\u5efa\u65f6\u542f\u7528\u3002 \u5177\u4f53\u5199\u6cd5\u5982\u4e0b\uff1a
plugins:\n - git-revision-date-localized:\n enabled: !ENV [CI, false] # \u53ea\u6709\u5728CI\u73af\u5883\u53d8\u91cf\u4e3atrue\u65f6\u624d\u542f\u7528\n - git-committers:\n enabled: !ENV [CI, false]\n
\u68c0\u9a8c\u52a0\u901f\u6548\u679c\u662f\u5426\u751f\u6548\u53ef\u4ee5\u4f7f\u7528lighthouse\u8fdb\u884c\u6d4b\u8bd5\uff0c\u5177\u4f53\u53ef\u4ee5\u53c2\u8003\uff1a
\u4f7f\u7528lighthouse\u8fdb\u884c\u7f51\u7ad9\u6027\u80fd\u6d4b\u8bd5
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/","title":"\u80cc\u666f\u7279\u6548","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u8be5\u6280\u672f\u6587\u6863\u4ecb\u7ecd\u4e86\u4e09\u79cd\u7f51\u9875\u80cc\u666f\u7279\u6548\u7684\u5b9e\u73b0\u65b9\u6cd5\uff1a\u96ea\u82b1\u3001\u6a31\u82b1\u548c\u7c92\u5b50\u6548\u679c\u3002\u6838\u5fc3\u662f\u901a\u8fc7JavaScript\u52a8\u6001\u52a0\u8f7d\u7279\u6548\u811a\u672c\uff0c\u5e76\u5229\u7528LocalStorage\u5b58\u50a8\u7528\u6237\u504f\u597d\u8bbe\u7f6e\u6765\u63a7\u5236\u7279\u6548\u663e\u793a\u3002\u4ee3\u7801\u793a\u4f8b\u5c55\u793a\u4e86\u5982\u4f55\u901a\u8fc7DOM\u64cd\u4f5c\u63d2\u5165\u5916\u90e8\u811a\u672c\uff0c\u5b9e\u73b0\u53ef\u914d\u7f6e\u7684\u52a8\u6001\u80cc\u666f\u6548\u679c\uff0c\u9002\u7528\u4e8e\u589e\u5f3a\u7f51\u9875\u89c6\u89c9\u4f53\u9a8c\u3002
Note
\u4ee5\u4e0b\u4ee3\u7801\u5747\u5728docs/javascripts/extra.js
\u4e0b\u590d\u5236\u7c98\u8d34
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/#_1","title":"\u96ea\u82b1\u2744\ufe0f","text":"//\u96ea\u82b1\nconst fps = 30;\nconst mspf = Math.floor(1000 / fps) ; \n\nlet width = window.innerWidth || document.documentElement.clientWidth;\nlet height = window.innerHeight || document.documentElement.clientHeight;\nlet canvas;\nwindow.addEventListener('resize', () => {\n width = window.innerWidth || document.documentElement.clientWidth;\n height = window.innerHeight || document.documentElement.clientHeight;\n if (canvas) {\n canvas.width = width;\n canvas.height = height;\n }\n});\n\nlet particles = [];\nlet wind = [0, 0];\nlet cursor = [0, 0];\n\nfunction velocity(r) {\n return 70 / r + 30;\n}\n\nfunction sine_component(h, a) {\n return [2 * Math.PI / h, Math.random() * a, Math.random() * 2 * Math.PI]; // [frequency, amplitude, phase]\n}\n\nfunction calc_sine(components, x) {\n let sum = 0;\n for (let i = 0; i < components.length; i++) {\n const [f, a, p] = components[i];\n sum += Math.sin(x * f + p) * a;\n }\n return sum;\n}\n\nfunction gen_particle() {\n let r = Math.random() * 4 + 1;\n return {\n radius: r,\n x: Math.random() * width,\n y: -r,\n opacity: Math.random(),\n sine_components: [sine_component(height, 3), sine_component(height / 2, 2), sine_component(height / 5, 1), sine_component(height / 10, 0.5)],\n };\n}\n\nfunction update_pos(dt) {\n const n = particles.length;\n for (let i = 0; i < n; i++) {\n const v = velocity(particles[i].radius);\n particles[i].x += calc_sine(particles[i].sine_components, particles[i].y) * v / 5 * dt;\n particles[i].y += v * dt;\n\n // const dist = Math.hypot(particles[i].x - cursor[0], particles[i].y - cursor[1]) + 1;\n // particles[i].x += wind[0] * dt / dist\n // particles[i].y += wind[1] * dt / dist;\n\n if (particles[i].y - particles[i].radius > height) {\n particles[i] = gen_particle(); \n }\n }\n}\n\nlet context_cache;\nfunction get_context() {\n if (context_cache)\n return context_cache;\n\n canvas = document.createElement('canvas');\n canvas.id = 'snow-canvas';\n canvas.width = width;\n canvas.height = height;\n canvas.style = 'position: fixed; top: 0; left: 0; overflow: hidden; pointer-events: none; z-index: 256;';\n if ((document.documentElement.dataset.darkreaderMode || \"\").startsWith('filter'))\n canvas.style.filter = 'invert(1)';\n document.body.appendChild(canvas);\n\n context_cache = canvas.getContext('2d');\n return context_cache;\n}\n\nfunction draw() {\n const ctx = get_context();\n\n ctx.clearRect(0, 0, width, height);\n\n const n = particles.length;\n for (let i = 0; i < n; i++) {\n const p = particles[i];\n ctx.fillStyle = `rgba(255, 255, 255, ${p.opacity})`;\n ctx.shadowColor = '#80EDF7';\n ctx.shadowBlur = 7;\n ctx.beginPath();\n ctx.arc(p.x, p.y, p.radius, 0, 2*Math.PI);\n ctx.fill();\n }\n}\n\nlet focused = true;\nlet disabled = false;\nlet lastTime = performance.now();\nconst requestFrame = () => setTimeout(loop, mspf);\nfunction loop() {\n const dt = (performance.now() - lastTime) / 1000;\n\n if (particles.length < 120 && Math.random() < 0.1) {\n particles.push(gen_particle());\n }\n\n update_pos(dt);\n draw();\n\n lastTime = performance.now();\n if (focused && !disabled)\n requestFrame();\n}\n\n\nwindow.addEventListener('focus', () => {\n console.log('snow start');\n focused = true;\n lastTime = performance.now();\n requestFrame();\n});\n\nwindow.addEventListener('blur', () => {\n console.log('snow stop');\n focused = false;\n});\n\nwindow.addEventListener('keydown', e => {\n if (e.ctrlKey && e.key == 's') {\n e.preventDefault();\n disabled = !disabled;\n if (disabled) {\n canvas.style.display = 'none';\n } else {\n canvas.style.display = 'block';\n lastTime = performance.now();\n requestFrame();\n }\n }\n});\n\nrequestFrame();\n//\u96ea\u82b1\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/#_2","title":"\u6a31\u82b1\ud83c\udf38","text":"//\u6a31\u82b1\nSakura.prototype.draw = function (cxt) {\n cxt.save(); var xc = 40 * this.s / 4; cxt.translate(this.x, this.y); cxt.rotate(this.r); cxt.drawImage(img, 0, 0, 40 * this.s, 40 * this.s)\n cxt.restore();\n}\nSakura.prototype.update = function () { this.x = this.fn.x(this.x, this.y); this.y = this.fn.y(this.y, this.y); this.r = this.fn.r(this.r); if (this.x > window.innerWidth || this.x < 0 || this.y > window.innerHeight || this.y < 0) { this.r = getRandom('fnr'); if (Math.random() > 0.4) { this.x = getRandom('x'); this.y = 0; this.s = getRandom('s'); this.r = getRandom('r'); } else { this.x = window.innerWidth; this.y = getRandom('y'); this.s = getRandom('s'); this.r = getRandom('r'); } } }\nSakuraList = function () { this.list = []; }\nSakuraList.prototype.push = function (sakura) { this.list.push(sakura); }\nSakuraList.prototype.update = function () { for (var i = 0, len = this.list.length; i < len; i++) { this.list[i].update(); } }\nSakuraList.prototype.draw = function (cxt) { for (var i = 0, len = this.list.length; i < len; i++) { this.list[i].draw(cxt); } }\nSakuraList.prototype.get = function (i) { return this.list[i]; }\nSakuraList.prototype.size = function () { return this.list.length; }\nfunction getRandom(option) {\n var ret, random; switch (option) {\n case 'x': ret = Math.random() * window.innerWidth; break; case 'y': ret = Math.random() * window.innerHeight; break; case 's': ret = Math.random(); break; case 'r': ret = Math.random() * 6; break; case 'fnx': random = -0.5 + Math.random() * 1; ret = function (x, y) { return x + 0.5 * random - 1.7; }; break; case 'fny': random = 1.5 + Math.random() * 0.7\n ret = function (x, y) { return y + random; }; break; case 'fnr': random = Math.random() * 0.03; ret = function (r) { return r + random; }; break;\n }\n return ret;\n}\nfunction startSakura() {\n requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame; var canvas = document.createElement('canvas'), cxt; staticx = true; canvas.height = window.innerHeight; canvas.width = window.innerWidth; canvas.setAttribute('style', 'position: fixed;left: 0;top: 0;pointer-events: none;'); canvas.setAttribute('id', 'canvas_sakura'); document.getElementsByTagName('body')[0].appendChild(canvas); cxt = canvas.getContext('2d'); var sakuraList = new SakuraList(); for (var i = 0; i < 50; i++) { var sakura, randomX, randomY, randomS, randomR, randomFnx, randomFny; randomX = getRandom('x'); randomY = getRandom('y'); randomR = getRandom('r'); randomS = getRandom('s'); randomFnx = getRandom('fnx'); randomFny = getRandom('fny'); randomFnR = getRandom('fnr'); sakura = new Sakura(randomX, randomY, randomS, randomR, { x: randomFnx, y: randomFny, r: randomFnR }); sakura.draw(cxt); sakuraList.push(sakura); }\n stop = requestAnimationFrame(function () { cxt.clearRect(0, 0, canvas.width, canvas.height); sakuraList.update(); sakuraList.draw(cxt); stop = requestAnimationFrame(arguments.callee); })\n}\nwindow.onresize = function () { var canvasSnow = document.getElementById('canvas_snow'); }\nimg.onload = function () { startSakura(); }\n//\u6a31\u82b1\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/#_3","title":"\u7ebf\u6761","text":"!function() {\n function o(w, v, i) {\n return w.getAttribute(v) || i\n }\n function j(i) {\n return document.getElementsByTagName(i)\n }\n function l() {\n var i = j(\"script\"),\n w = i.length,\n v = i[w - 1];\n return {\n l: w,\n z: o(v, \"zIndex\", -1),\n o: o(v, \"opacity\", 0.5),\n c: o(v, \"color\", \"0,0,0\"),\n n: o(v, \"count\", 99)\n }\n }\n function k() {\n r = u.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,\n n = u.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\n }\n function b() {\n e.clearRect(0, 0, r, n);\n var w = [f].concat(t);\n var x, v, A, B, z, y;\n t.forEach(function(i) {\n i.x += i.xa,\n i.y += i.ya,\n i.xa *= i.x > r || i.x < 0 ? -1 : 1,\n i.ya *= i.y > n || i.y < 0 ? -1 : 1,\n e.fillRect(i.x - 0.5, i.y - 0.5, 1, 1);\n for (v = 0; v < w.length; v++) {\n x = w[v];\n if (i !== x && null !== x.x && null !== x.y) {\n B = i.x - x.x,\n z = i.y - x.y,\n y = B * B + z * z;\n y < x.max && (x === f && y >= x.max / 2 && (i.x -= 0.03 * B, i.y -= 0.03 * z), A = (x.max - y) / x.max, e.beginPath(), e.lineWidth = A / 2, e.strokeStyle = \"rgba(\" + s.c + \",\" + (A + 0.2) + \")\", e.moveTo(i.x, i.y), e.lineTo(x.x, x.y), e.stroke())\n }\n }\n w.splice(w.indexOf(i), 1)\n }),\n m(b)\n }\n var u = document.createElement(\"canvas\"),\n s = l(),\n c = \"c_n\" + s.l,\n e = u.getContext(\"2d\"),\n r,\n n,\n m = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame ||\n function(i) {\n window.setTimeout(i, 1000 / 45)\n },\n a = Math.random,\n f = {\n x: null,\n y: null,\n max: 20000\n };\n u.id = c;\n u.style.cssText = \"position:fixed;top:0;left:0;z-index:\" + s.z + \";opacity:\" + s.o;\n j(\"body\")[0].appendChild(u);\n k(),\n window.onresize = k;\n window.onmousemove = function(i) {\n i = i || window.event,\n f.x = i.clientX,\n f.y = i.clientY\n },\n window.onmouseout = function() {\n f.x = null,\n f.y = null\n };\n for (var t = [], p = 0; s.n > p; p++) {\n var h = a() * r,\n g = a() * n,\n q = 2 * a() - 1,\n d = 2 * a() - 1;\n t.push({\n x: h,\n y: g,\n xa: q,\n ya: d,\n max: 6000\n })\n }\n setTimeout(function() {\n b()\n },\n 100)\n} ();\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/backgroud/#_4","title":"\u7c92\u5b50","text":"/*\u80cc\u666f*/\nwindow.onload = function () {\n //\u5b9a\u4e49body\u7684margin\u7531\u9ed8\u8ba4\u503c8px->0px\n document.body.style.margin = \"0\";\n document.body.style.background = \"255,255,255\";\n //\u521b\u5efacanvas\u753b\u5e03\n document.body.appendChild(document.createElement('canvas'));\n var canvas = document.querySelector('canvas'),\n ctx = canvas.getContext('2d') //ctx\u8fd4\u56de\u4e00\u4e2a\u5728canvas\u4e0a\u753b\u56fe\u7684api/dom\n canvas.width = window.innerWidth;\n canvas.height = window.innerHeight;\n canvas.style.position = 'fixed';\n ctx.lineWidth = .3;\n ctx.strokeStyle = (new Color(150)).style;\n //\u5b9a\u4e49\u9f20\u6807\u8986\u76d6\u8303\u56f4\n var mousePosition = {\n x: 30 * canvas.width / 100,\n y: 30 * canvas.height / 100\n };\n var dots = {\n nb: 1000,//Dot\u7684\u603b\u6570\n distance: 50,\n d_radius: 100,\n array: []\n };\n //\u521b\u5efa\u989c\u8272\u7c7b\uff0cColor\u7c7b\u8fd4\u56de\u5b57\u7b26\u4e32\u578brgba\uff08*,*,*,.8\uff09\n function mixComponents(comp1, weight1, comp2, weight2) {\n return (comp1 * weight1 + comp2 * weight2) / (weight1 + weight2);\n }\n function averageColorStyles(dot1, dot2) {\n var color1 = dot1.color,\n color2 = dot2.color;\n\n var r = mixComponents(color1.r, dot1.radius, color2.r, dot2.radius),\n g = mixComponents(color1.g, dot1.radius, color2.g, dot2.radius),\n b = mixComponents(color1.b, dot1.radius, color2.b, dot2.radius);\n return createColorStyle(Math.floor(r), Math.floor(g), Math.floor(b));\n }\n function colorValue(min) {\n return Math.floor(Math.random() * 255 + min);\n }\n function createColorStyle(r, g, b) {\n return 'rgba(' + r + ',' + g + ',' + b + ', 0.8)';\n }\n function Color(min) {\n min = min || 0;\n this.r = colorValue(min);\n this.g = colorValue(min);\n this.b = colorValue(min);\n this.style = createColorStyle(this.r, this.g, this.b);\n }\n //\u521b\u5efaDot\u7c7b\u4ee5\u53ca\u4e00\u7cfb\u5217\u65b9\u6cd5\n function Dot() {\n this.x = Math.random() * canvas.width;\n this.y = Math.random() * canvas.height;\n\n this.vx = -.5 + Math.random();\n this.vy = -.5 + Math.random();\n\n this.radius = Math.random() * 2;\n\n this.color = new Color();\n }\n\n Dot.prototype = {\n draw: function () {\n ctx.beginPath();\n ctx.fillStyle = this.color.style;\n ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2, false);\n ctx.fill();\n }\n };\n function moveDots() {//Dot\u5bf9\u8c61\u7684\u79fb\u52a8\n for (i = 0; i < dots.nb; i++) {\n\n var dot = dots.array[i];\n\n if (dot.y < 0 || dot.y > canvas.height) {\n dot.vx = dot.vx;\n dot.vy = - dot.vy;\n }\n else if (dot.x < 0 || dot.x > canvas.width) {\n dot.vx = - dot.vx;\n dot.vy = dot.vy;\n }\n dot.x += dot.vx;\n dot.y += dot.vy;\n }\n }\n function connectDots() {//DOt\u5bf9\u8c61\u7684\u8fde\u63a5\n for (i = 0; i < dots.nb; i++) {\n for (j = i; j < dots.nb; j++) {\n i_dot = dots.array[i];\n j_dot = dots.array[j];\n\n if ((i_dot.x - j_dot.x) < dots.distance && (i_dot.y - j_dot.y) < dots.distance && (i_dot.x - j_dot.x) > - dots.distance && (i_dot.y - j_dot.y) > - dots.distance) {\n if ((i_dot.x - mousePosition.x) < dots.d_radius && (i_dot.y - mousePosition.y) < dots.d_radius && (i_dot.x - mousePosition.x) > - dots.d_radius && (i_dot.y - mousePosition.y) > - dots.d_radius) {\n ctx.beginPath();\n ctx.strokeStyle = averageColorStyles(i_dot, j_dot);\n ctx.moveTo(i_dot.x, i_dot.y);\n ctx.lineTo(j_dot.x, j_dot.y);\n ctx.stroke();//\u7ed8\u5236\u5b9a\u4e49\u7684\u8def\u7ebf\n ctx.closePath();//\u521b\u5efa\u4ece\u5f53\u524d\u70b9\u56de\u5230\u8d77\u59cb\u70b9\u7684\u8def\u5f84\n }\n }\n }\n }\n }\n function createDots() {//\u521b\u5efanb\u4e2aDot\u5bf9\u8c61\n for (i = 0; i < dots.nb; i++) {\n dots.array.push(new Dot());\n }\n }\n function drawDots() {//\u5f15\u7528Dot\u539f\u578b\u94fe\uff0c\u4f7f\u7528draw\u65b9\u6cd5\uff0c\u5728canvas\u4e0a\u753b\u51faDot\u5bf9\u8c61\n for (i = 0; i < dots.nb; i++) {\n var dot = dots.array[i];\n dot.draw();\n }\n }\n function animateDots() {\n ctx.clearRect(0, 0, canvas.width, canvas.height);//\u6e05\u9664\u753b\u5e03\uff0c\u5426\u5219\u7ebf\u6761\u4f1a\u8fde\u5728\u4e00\u8d77\n moveDots();\n connectDots();\n drawDots();\n requestAnimationFrame(animateDots);\n }\n createDots();//\u4f7f\u7528\u521b\u5efaDot\u7c7b\u51fd\u6570\n requestAnimationFrame(animateDots);//\u4f7f\u7528canvas\u72ec\u6709\u768460Hz\u5237\u65b0\u5c4f\u5e55\u753b\u5e03\u7684\u65b9\u6cd5\n\n document.querySelector('canvas').addEventListener('mousemove', function (e) {\n mousePosition.x = e.pageX;\n mousePosition.y = e.pageY;\n })\n\n document.querySelector('canvas').addEventListener('mouseleave', function (e) {//\u9f20\u6807\u79bb\u5f00\u65f6\uff0c\u8fde\u63a5\u81ea\u52a8\u8fd4\u56de\u5230\u753b\u5e03\u4e2d\u5fc3\n mousePosition.x = canvas.width / 2;\n mousePosition.y = canvas.height / 2;\n })\n\n}\n\n/*\u80cc\u666fend*/\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/footer/","title":"\u9875\u811a\u8bbe\u7f6e","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
MkDocs\u5141\u8bb8\u901a\u8fc7\u81ea\u5b9a\u4e49HTML\u6587\u4ef6\u5b9e\u73b0\u9875\u811a\u4e2a\u6027\u5316\u914d\u7f6e\u3002\u7528\u6237\u9700\u5728docs/overrides/partials\u76ee\u5f55\u4e0b\u521b\u5efa\u6216\u4fee\u6539footer.html\u6587\u4ef6\uff0c\u63d2\u5165\u7279\u5b9a\u4ee3\u7801\u7247\u6bb5\u5373\u53ef\u5b8c\u6210\u9875\u811a\u5b9a\u5236\u3002\u8be5\u529f\u80fd\u9002\u7528\u4e8e\u9700\u8981\u54c1\u724c\u5c55\u793a\u3001\u7248\u6743\u58f0\u660e\u6216\u5bfc\u822a\u94fe\u63a5\u7b49\u573a\u666f\uff0c\u901a\u8fc7\u8986\u76d6\u9ed8\u8ba4\u6a21\u677f\u5b9e\u73b0\u7075\u6d3b\u5e03\u5c40\u3002\u64cd\u4f5c\u4ec5\u9700\u57fa\u7840HTML\u77e5\u8bc6\uff0c\u65e0\u9700\u7f16\u8bd1\u8fc7\u7a0b\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/footer/#_1","title":"\u9875\u811a\u8bbe\u7f6e","text":"MkDocs \u652f\u6301\u81ea\u5b9a\u4e49\u9875\u811a\u3002
\u5728docs/overrides/partials/footer.html\u4e2d\uff08\u6ca1\u6709\u8be5\u6587\u4ef6\u65f6\uff0c\u521b\u5efafooter.html\u6587\u4ef6\uff09\u6dfb\u52a0\u4ee5\u4e0b\u4ee3\u7801\uff1a
<!-- Footer -->\n<footer class=\"md-footer\">\n\n <!-- Link to previous and/or next page -->\n {% if \"navigation.footer\" in features %}\n {% if page.previous_page or page.next_page %}\n {% if page.meta and page.meta.hide %}\n {% set hidden = \"hidden\" if \"footer\" in page.meta.hide %}\n {% endif %}\n <nav\n class=\"md-footer__inner md-grid\"\n aria-label=\"{{ lang.t('footer') }}\"\n {{ hidden }}\n >\n\n <!-- Link to previous page -->\n {% if page.previous_page %}\n {% set direction = lang.t(\"footer.previous\") %}\n <a\n href=\"{{ page.previous_page.url | url }}\"\n class=\"md-footer__link md-footer__link--prev\"\n aria-label=\"{{ direction }}: {{ page.previous_page.title | e }}\"\n >\n <div class=\"md-footer__button md-icon\">\n {% set icon = config.theme.icon.previous or \"material/arrow-left\" %}\n {% include \".icons/\" ~ icon ~ \".svg\" %}\n </div>\n <div class=\"md-footer__title\">\n <span class=\"md-footer__direction\">\n {{ direction }}\n </span>\n <div class=\"md-ellipsis\">\n {{ page.previous_page.title }}\n </div>\n </div>\n\n </a>\n {% endif %}\n\n <!-- Link to next page -->\n {% if page.next_page %}\n {% set direction = lang.t(\"footer.next\") %}\n <a\n href=\"{{ page.next_page.url | url }}\"\n class=\"md-footer__link md-footer__link--next\"\n aria-label=\"{{ direction }}: {{ page.next_page.title | e }}\"\n >\n <div class=\"md-footer__title\">\n <span class=\"md-footer__direction\">\n {{ direction }}\n </span>\n <div class=\"md-ellipsis\">\n {{ page.next_page.title }}\n </div>\n </div>\n <div class=\"md-footer__button md-icon\">\n {% set icon = config.theme.icon.next or \"material/arrow-right\" %}\n {% include \".icons/\" ~ icon ~ \".svg\" %}\n </div>\n </a>\n {% endif %}\n </nav>\n {% endif %}\n {% endif %}\n\n <!-- Further information -->\n <div class=\"md-footer-meta md-typeset\">\n <div class=\"md-footer-meta__inner md-grid\">\n {% include \"partials/copyright.html\" %}\n\n <font color=\"#B9B9B9\">\n <div class=\"footer-visit-count\" style=\"display: flex; justify-content: center; align-items: center;\">\n \u672c\u7ad9\u8bbf\u95ee\u91cf\uff1a<script async src=\"//finicounter.eu.org/finicounter.js\"></script>\n <span id=\"finicount_views\"></span> | \n <footer>\n <a href=\"https://icp.gov.moe/?keyword=20230640\" target=\"_blank\">\u840cICP\u590720230640\u53f7</a>\n </footer>\n </div>\n </font>\n\n <style>\n .footer-visit-count {\n height: fit-content;\n min-height: 55px; /* \u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8c03\u6574\u6b64\u9ad8\u5ea6 */\n }\n </style>\n {% if config.extra.social %}\n {% include \"partials/social.html\" %}\n {% endif %}\n </div>\n </div>\n</footer>\n
\u9ad8\u4eae\u90e8\u5206\u81ea\u884c\u4fee\u6539\u5373\u53ef
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/footer/#_2","title":"\u9875\u811a\u7248\u6743\u8bbe\u7f6e","text":"mkdocs.yml\u4e2d\u6dfb\u52a0\uff1a
copyright: Copyright © 2022~2025 Wcowin # \u5de6\u4e0b\u89d2\u7684\u7248\u6743\u58f0\u660e\n
\u5982\u679c\u60f3\u5220\u9664\u9875\u811a\u663e\u793a\u201cMade with Material for MkDocs\u201d(\u4e0d\u5efa\u8bae)
extra:\n generator: false #\u5220\u9664\u9875\u811a\u663e\u793a\u201c\u4f7f\u7528 MkDocs \u6750\u6599\u5236\u9020\u201d\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/header/","title":"\u6dfb\u52a0\u9876\u90e8\u516c\u544a\u680f","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u5982\u4f55\u5728\u6587\u6863\u7ad9\u70b9\u4e2d\u6dfb\u52a0\u9876\u90e8\u516c\u544a\u680f\uff0c\u901a\u8fc7\u4fee\u6539docs/overrides/main.html
\u6587\u4ef6\u5b9e\u73b0\u81ea\u5b9a\u4e49\u516c\u544a\u5185\u5bb9\u3002\u64cd\u4f5c\u6b65\u9aa4\u5305\u62ec\u521b\u5efa\u8be5HTML\u6587\u4ef6\u5e76\u7f16\u8f91\u5176\u4ee3\u7801\u7ed3\u6784\uff0c\u7528\u6237\u53ef\u6839\u636e\u9700\u6c42\u7075\u6d3b\u8c03\u6574\u516c\u544a\u680f\u6837\u5f0f\u548c\u5185\u5bb9\u3002\u8be5\u65b9\u6cd5\u9002\u7528\u4e8e\u9700\u8981\u7a81\u51fa\u663e\u793a\u91cd\u8981\u901a\u77e5\u7684\u6280\u672f\u6587\u6863\u7f51\u7ad9\uff0c\u5b9e\u73b0\u7b80\u5355\u4e14\u65e0\u9700\u6539\u52a8\u6838\u5fc3\u6846\u67b6\u3002
docs/overrides\u4e0b\u65b0\u5efamain.html \uff0c\u9488\u5bf9main.html\u6587\u4ef6 \u6811\u72b6\u7ed3\u6784\u5982\u4e0b:
$ tree -a\n.\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 PublishMySite.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500overrides\n\u2502 \u2514\u2500\u2500assets\n\u2502 \u2514\u2500\u2500main.html\n\u2502 \u2514\u2500\u2500partials\n\u2502 \u2514\u2500\u2500comments.html\n\u2502\n\u2514\u2500\u2500 mkdocs.yml\n
{#-\n This file was automatically generated - do not edit\n -#}\n {% extends \"base.html\" %}\n {% block extrahead %}\n <link rel=\"stylesheet\" href=\"{{ 'assets/stylesheets/custom.00c04c01.min.css' | url }}\">\n {% endblock %}\n {% block announce %}\n Follow <strong>@Wcowin</strong> on\n <a rel=\"me\" href=\"https://space.bilibili.com/1407028951?spm_id_from=333.1007.0.0\">\n <span class=\"twemoji bilibili\">\n {% include \".icons/fontawesome/brands/bilibili.svg\" %}\n </span>\n <strong>Bilibili</strong>\n </a>\n and\n <a href=\"https://twitter.com/Wcowin_\">\n <span class=\"twemoji twitter\">\n {% include \".icons/fontawesome/brands/twitter.svg\" %}\n </span>\n <strong>Twitter</strong>\n </a>\n {% endblock %}\n {% block scripts %}\n {{ super() }}\n <script src=\"{{ 'assets/javascripts/custom.9458f965.min.js' | url }}\"></script>\n {% endblock %}\n
\u5728main.html \u91cc\u81ea\u884c\u4fee\u6539\u5373\u53ef
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/linktech/","title":"\u5982\u4f55\u7ed9MKdocs\u6dfb\u52a0\u53cb\u94fe","text":"\u590d\u5236\u540e\u5728\u9700\u8981\u6dfb\u52a0\u53cb\u94fe\u7684.md \u6587\u4ef6\u9875\u9762\u7c98\u8d34\u5373\u53ef
<div class=\"post-body\">\n <div id=\"links\">\n <style>\n /* \u7528\u4e8e\u5927\u5c4f\u5e55\u548c\u5c0f\u5c4f\u5e55\u7684\u901a\u7528\u6837\u5f0f */\n .card {\n width: 45%;\n font-size: 1rem;\n padding: 10px 20px;\n border-radius: 4px;\n transition-duration: 0.15s;\n margin-bottom: 1rem;\n display: flex;\n }\n .card:nth-child(odd) {\n float: left;\n }\n .card:nth-child(even) {\n float: right;\n }\n .card:hover {\n transform: scale(1.1);\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);\n }\n .card a {\n border: none;\n }\n .card .ava {\n width: 3rem !important;\n height: 3rem !important;\n margin: 0 !important;\n margin-right: 1em !important;\n border-radius: 4px;\n }\n .card .card-header {\n font-style: italic;\n overflow: hidden;\n width: 100%;\n }\n .card .card-header a {\n font-style: normal;\n color: #608dbd;\n font-weight: bold;\n text-decoration: none;\n }\n .card .card-header a:hover {\n color: #d480aa;\n text-decoration: none;\n }\n .card .card-header .info {\n font-style: normal;\n color: #a3a3a3;\n font-size: 14px;\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n }\n /* \u5a92\u4f53\u67e5\u8be2\uff1a\u5c0f\u5c4f\u5e55 */\n @media (max-width: 768px) {\n .card {\n width: 100%; /* \u5728\u5c0f\u5c4f\u5e55\u4e0a\u663e\u793a\u4e3a\u5355\u5217 */\n float: none; /* \u6e05\u9664\u6d6e\u52a8 */\n }\n }\n </style>\n <div class=\"links-content\">\n <div class=\"link-navigation\">\n <div class=\"card\">\n <img\n class=\"ava\"\n src=\"https://cn.mcecy.com/image/20231006/a05f708fb7b0426e7a5786669d5b1386.png\"\n />\n <div class=\"card-header\">\n <div>\n <a href=\"https://wcowin.work/ \" target=\"\u201c_blank\u201d\"\n >Wcowin\u2019s blog</a\n >\n </div>\n <div class=\"info\">\u8fd9\u662f\u4e00\u4e2a\u5206\u4eab\u6280\u672f\u7684\u5c0f\u7ad9\u3002</div>\n </div>\n </div>\n <div class=\"card\">\n <img\n class=\"ava\"\n src=\"https://i.loli.net/2020/05/14/5VyHPQqR6LWF39a.png\"\n />\n <div class=\"card-header\">\n <div>\n <a href=\"https://twitter.com/\" target=\"\u201c_blank\u201d\">Twitter</a>\n </div>\n <div class=\"info\">\u793e\u4ea4\u5206\u4eab\u5e73\u53f0</div>\n </div>\n </div>\n <div class=\"card\">\n <img\n class=\"ava\"\n src=\"https://cn.mcecy.com/image/20231012/d96b912437fb0bec0d282dfe734b1d9b.jpeg\"\n />\n <div class=\"card-header\">\n <div>\n <a href=\"https://macapp.org.cn/\" target=\"\u201c_blank\u201d\">Macapp</a>\n </div>\n <div class=\"info\">\u4e00\u4e2a\u4e13\u6ce8\u4e8e\u5206\u4eabMac\u8d44\u6e90\u7684\u9891\u9053</div>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n</div>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/linktech/#_1","title":"\u5982\u4f55\u52a0\u5165\u53cb\u94fe","text":"<div class=\"card\">\n <img class=\"ava\" src=\"{avatarurl}\" />\n <div class=\"card-header\">\n <div>\n <a href=\"{link}\" target=\"_blank\">{name}</a>\n </div>\n <div class=\"info\">{description}</div>\n </div>\n</div>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/linktech/#_2","title":"\u793a\u4f8b","text":"<div>\n <div class=\"links-content\"> \n <div class=\"link-navigation\"> \n <div class=\"card\"> \n <img class=\"ava\" src=\"https://pic4.zhimg.com/80/v2-a0456a5f527c1923f096759f2926012f_1440w.webp\" /> \n <div class=\"card-header\"> \n <div> \n <a href=\"https://wcowin.work/ \" target=\u201c_blank\u201d>Wcowin\u2019s blog</a> \n </div> \n <div class=\"info\">\n \u8fd9\u662f\u4e00\u4e2a\u5206\u4eab\u6280\u672f\u7684\u5c0f\u7ad9\u3002\n </div> \n </div> \n </div> \n</div>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/linktech/#_3","title":"\u6548\u679c","text":"Wcowin\u2019s blog \u8fd9\u662f\u4e00\u4e2a\u5206\u4eab\u6280\u672f\u7684\u5c0f\u7ad9\u3002","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/","title":"\u4e3a\u7f51\u7ad9\u6dfb\u52a0\u8bc4\u8bba\u7cfb\u7edf","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
giscus\u662f\u4e00\u6b3e\u57fa\u4e8eGitHub Discussions\u7684\u5f00\u6e90\u8bc4\u8bba\u7cfb\u7edf\uff0c\u65e0\u9700\u6570\u636e\u5e93\u4e14\u5b8c\u5168\u514d\u8d39\u3002\u5b83\u652f\u6301\u591a\u8bed\u8a00\u3001\u81ea\u5b9a\u4e49\u4e3b\u9898\u548c\u9ad8\u53ef\u914d\u7f6e\u6027\uff0c\u6570\u636e\u81ea\u52a8\u540c\u6b65GitHub Discussions\u3002\u76f8\u6bd4\u4f20\u7edf\u65b9\u6848\uff0cgiscus\u65e0\u9700\u7ef4\u62a4\u670d\u52a1\u5668\uff0c\u65e0\u8ddf\u8e2a\u548c\u5e7f\u544a\uff0c\u9002\u5408\u6280\u672f\u535a\u5ba2\u548c\u6587\u6863\u7f51\u7ad9\u96c6\u6210\u3002\u901a\u8fc7\u7b80\u5355\u914d\u7f6e\u5373\u53ef\u5b9e\u73b0\u8bc4\u8bba\u529f\u80fd\uff0c\u540c\u65f6\u4fdd\u7559\u81ea\u5efa\u670d\u52a1\u7684\u7075\u6d3b\u6027\u3002
\u5b98\u65b9\u6587\u6863\uff1aAdding a comment system
\u8fd9\u91cc\u6211\u540c\u6837\u63a8\u8350giscus
\u5229\u7528 GitHub Discussions \u5b9e\u73b0\u7684\u8bc4\u8bba\u7cfb\u7edf\uff0c\u8ba9\u8bbf\u5ba2\u501f\u52a9 GitHub \u5728\u4f60\u7684\u7f51\u7ad9\u4e0a\u7559\u4e0b\u8bc4\u8bba\u548c\u53cd\u5e94\u5427\uff01\u672c\u9879\u76ee\u6df1\u53d7 utterances \u7684\u542f\u53d1\u3002
- \u5f00\u6e90\u3002\ud83c\udf0f
- \u65e0\u8ddf\u8e2a\uff0c\u65e0\u5e7f\u544a\uff0c\u6c38\u4e45\u514d\u8d39\u3002\ud83d\udce1 \ud83d\udeab
- \u65e0\u9700\u6570\u636e\u5e93\u3002\u6240\u6709\u6570\u636e\u5747\u50a8\u5b58\u5728 GitHub Discussions \u4e2d\u3002:octocat:
- \u652f\u6301\u81ea\u5b9a\u4e49\u4e3b\u9898\uff01\ud83c\udf17
- \u652f\u6301\u591a\u79cd\u8bed\u8a00\u3002\ud83c\udf10
- \u9ad8\u53ef\u914d\u7f6e\u6027\u3002\ud83d\udd27
- \u81ea\u52a8\u4ece GitHub \u62c9\u53d6\u65b0\u8bc4\u8bba\u4e0e\u7f16\u8f91\u3002\ud83d\udd03
- \u53ef\u81ea\u5efa\u670d\u52a1\uff01\ud83e\udd33
\u8a00\u5f52\u6b63\u4f20
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_1","title":"\u7b2c\u4e00\u6b65","text":"mkdocs.yml\u4e2d\u6dfb\u52a0custom_dir
theme:\n name: material\n custom_dir: docs/overrides #\u4e3b\u8981\u662f\u8fd9\u4e00\u884c\n
\u53c2\u8003\u4e0b\u56fe\u65b0\u5efaoverrides\u6587\u4ef6\uff0c\u5728\u6b64\u6587\u4ef6\u4e0b\u53c2\u8003\u4e0b\u56fe\u65b0\u5efa\u8986\u76d6html\u6587\u4ef6 \u6811\u72b6\u7ed3\u6784\u5982\u4e0b: $ tree -a\n.\n\u251c\u2500\u2500 .github\n\u2502 \u251c\u2500\u2500 .DS_Store\n\u2502 \u2514\u2500\u2500 workflows\n\u2502 \u2514\u2500\u2500 PublishMySite.yml\n\u251c\u2500\u2500 docs\n\u2502 \u2514\u2500\u2500 index.md\n\u2502 \u2514\u2500\u2500overrides\n\u2502 \u2514\u2500\u2500assets\n\u2502 \u2514\u2500\u2500main.html\n\u2502 \u2514\u2500\u2500partials\n\u2502 \u2514\u2500\u2500comments.html\n\u2502\n\u2514\u2500\u2500 mkdocs.yml\n
\u5728comments.html\u4e2d\u5148\u590d\u5236\u7c98\u8d34\u4e0b\u9762\u7684\u4ee3\u7801\uff0c\u540e\u6587\u4f1a\u8bf4\u600e\u4e48\u4fee\u6539
{% if page.meta.comments %}\n <h2 id=\"__comments\">{{ lang.t(\"meta.comments\") }}</h2>\n <!-- Insert generated snippet here -->\n <script src=\"https://giscus.app/client.js\"\n data-repo=\"\u4f60\u7684\u4ed3\u5e93\u540d\u79f0\uff08\u5982Wcowin/hexo-site-comments\uff09\"\n data-repo-id=\" \"\n data-category=\" \"\n data-category-id=\" \"\n data-mapping=\"pathname\"\n data-strict=\"0\"\n data-reactions-enabled=\"1\"\n data-emit-metadata=\"0\"\n data-input-position=\"bottom\"\n data-theme=\"preferred_color_scheme\"\n data-lang=\"zh-CN\"\n crossorigin=\"anonymous\"\n async>\n</script>\n <!-- Synchronize Giscus theme with palette -->\n <script>\n var giscus = document.querySelector(\"script[src*=giscus]\")\n\n // Set palette on initial load\n var palette = __md_get(\"__palette\")\n if (palette && typeof palette.color === \"object\") {\n var theme = palette.color.scheme === \"slate\"\n ? \"transparent_dark\"\n : \"light\"\n\n // Instruct Giscus to set theme\n giscus.setAttribute(\"data-theme\", theme) \n }\n\n // Register event handlers after documented loaded\n document.addEventListener(\"DOMContentLoaded\", function() {\n var ref = document.querySelector(\"[data-md-component=palette]\")\n ref.addEventListener(\"change\", function() {\n var palette = __md_get(\"__palette\")\n if (palette && typeof palette.color === \"object\") {\n var theme = palette.color.scheme === \"slate\"\n ? \"transparent_dark\"\n : \"light\"\n\n // Instruct Giscus to change theme\n var frame = document.querySelector(\".giscus-frame\")\n frame.contentWindow.postMessage(\n { giscus: { setConfig: { theme } } },\n \"https://giscus.app\"\n )\n }\n })\n })\n </script>\n{% endif %}\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_2","title":"\u7b2c\u4e8c\u6b65","text":"\u6253\u5f00https://giscus.app/zh-CN \u8d70\u5b8c\u8fd9\u4e2a\u9875\u9762\u7684\u6d41\u7a0b\u5c31\u4f1a\u5f97\u5230(\u8fd9\u4f1a\u5728\u4f60\u7684Github\u521b\u5efa\u65b0\u7684\u4ed3\u5e93\uff0c\u5efa\u8bae\u81ea\u5df1\u5148\u53bb\u65b0\u5efa\u4e2a Discussions)
<script src=\"https://giscus.app/client.js\"\n data-repo=\"[\u5728\u6b64\u8f93\u5165\u4ed3\u5e93]\"\n data-repo-id=\"[\u5728\u6b64\u8f93\u5165\u4ed3\u5e93 ID]\"\n data-category=\"[\u5728\u6b64\u8f93\u5165\u5206\u7c7b\u540d]\"\n data-category-id=\"[\u5728\u6b64\u8f93\u5165\u5206\u7c7b ID]\"\n data-mapping=\"pathname\"\n data-strict=\"0\"\n data-reactions-enabled=\"1\"\n data-emit-metadata=\"0\"\n data-input-position=\"bottom\"\n data-theme=\"preferred_color_scheme\"\n data-lang=\"zh-CN\"\n crossorigin=\"anonymous\"\n async>\n</script>\n
\u590d\u5236\u6b64\u4ee3\u7801\uff0c\u66ff\u6362\u6700\u4e0a\u9762\ud83d\udc46\ud83c\udffbcomments.html\u4e2d\u9ad8\u4eae\u7684\u4ee3\u7801
\u7ec8\u7aef\u91ccmkdocs server
\u4e00\u4e0b
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_3","title":"\u6700\u540e","text":"\u5728\u4f60\u60f3\u63d2\u5165\u8bc4\u8bba\u7684\u5730\u65b9\u7684\u5143\u6570\u636e\uff1acomments: true
---\ntitle: \u7559\u8a00\u677f\nhide:\n # - navigation # \u663e\u793a\u53f3\n # - toc #\u663e\u793a\u5de6\n # - footer\n # - feedback \ncomments: true #\u9ed8\u8ba4\u4e0d\u5f00\u542f\u8bc4\u8bba\n---\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_4","title":"\u6548\u679c","text":"\u5b8c\u7f8e!\u5feb\u901f\u76f8\u5e94
\u8fd9\u662f\u56fe\u7247\u2191\u2191\u2191","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkcomments/#_5","title":"\u5176\u4ed6\u8bc4\u8bba\u7cfb\u7edf","text":"\u628a\u60f3\u8981\u5185\u5d4c\u7684\u8bc4\u8bba\u4ee3\u7801\u653e\u5728\u76f8\u5e94\u9875\u9762\u5373\u53ef \u6bd4\u5982twikoo \u53bb\u770b\u5b83\u7684\u5b98\u65b9\u914d\u7f6e\u6587\u6863\u5f88\u7b80\u5355\u5c31\u914d\u7f6e\u597d\u4e86
<head> \n <link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css\" integrity=\"sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X\" crossorigin=\"anonymous\" /> \n <script defer=\"\" src=\"https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.js\" integrity=\"sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4\" crossorigin=\"anonymous\"></script> \n <script defer=\"\" src=\"https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/contrib/auto-render.min.js\" integrity=\"sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa\" crossorigin=\"anonymous\"></script> \n\n </head>\n<body>\n <div id=\"tcomment\"></div> \n <script src=\"https://cdn.staticfile.org/twikoo/1.6.21/twikoo.all.min.js\"></script> \n <script>\ntwikoo.init({\n envId: 'https://superb-salamander-e730b6.netlify.app/.netlify/functions/twikoo', // \u817e\u8baf\u4e91\u73af\u5883\u586b envId\uff1bVercel \u73af\u5883\u586b\u5730\u5740\uff08https://xxx.vercel.app\uff09\n el: '#tcomment', // \u5bb9\u5668\u5143\u7d20\n //region: 'ap-guangzhou', // \u73af\u5883\u5730\u57df\uff0c\u9ed8\u8ba4\u4e3a ap-shanghai\uff0c\u817e\u8baf\u4e91\u73af\u5883\u586b ap-shanghai \u6216 ap-guangzhou\uff1bVercel \u73af\u5883\u4e0d\u586b\n // path: location.pathname, // \u7528\u4e8e\u533a\u5206\u4e0d\u540c\u6587\u7ae0\u7684\u81ea\u5b9a\u4e49 js \u8def\u5f84\uff0c\u5982\u679c\u60a8\u7684\u6587\u7ae0\u8def\u5f84\u4e0d\u662f location.pathname\uff0c\u9700\u4f20\u6b64\u53c2\u6570\n //lang: 'zh-CN', // \u7528\u4e8e\u624b\u52a8\u8bbe\u5b9a\u8bc4\u8bba\u533a\u8bed\u8a00\uff0c\u652f\u6301\u7684\u8bed\u8a00\u5217\u8868 https://github.com/twikoojs/twikoo/blob/main/src/client/utils/i18n/index.js\n onCommentLoaded: function () {\n console.log('\u8bc4\u8bba\u52a0\u8f7d\u5b8c\u6210');\n }\n})\n</script> \n
\u6211\u611f\u89c9twikoo\u4e5f\u597d\u770b\uff01","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/","title":"\u81ea\u5b9a\u4e49Mkdocs\u663e\u793a\u5b57\u4f53(\u971e\u9e5c\u6587\u6977)","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86\u5f00\u6e90\u4e2d\u6587\u5b57\u4f53\"\u971e\u9e5c\u6587\u6977\"\u7684\u6280\u672f\u7279\u70b9\u4e0e\u5e94\u7528\u3002\u8be5\u5b57\u4f53\u57fa\u4e8e\u65e5\u672cFONTWORKS\u516c\u53f8\u7684Klee One\u884d\u751f\u5f00\u53d1\uff0c\u5305\u542b\u591a\u4e2a\u7248\u672c\uff08\u5c4f\u5e55\u9605\u8bfb\u7248\u3001\u8f7b\u4fbf\u7248\u3001GB/TC\u7248\u7b49\uff09\uff0c\u652f\u6301\u7b80\u7e41\u4e2d\u6587\u53ca\u8c1a\u6587\u3002\u6587\u7ae0\u8be6\u7ec6\u8bf4\u660e\u4e86\u5b57\u4f53\u7684\u5f00\u53d1\u80cc\u666f\u3001\u8865\u5b57\u8ba1\u5212\u3001\u83b7\u53d6\u65b9\u5f0f\u53ca\u4f7f\u7528\u6ce8\u610f\u4e8b\u9879\uff0c\u7279\u522b\u5f3a\u8c03\u4e86\u5176\u5f00\u6e90\u7279\u6027\uff08SIL\u6388\u6743\uff09\u548c\u9488\u5bf9\u4e0d\u540c\u573a\u666f\u7684\u4f18\u5316\u8bbe\u8ba1\uff0c\u9002\u5408\u7f51\u7ad9\u5d4c\u5165\u548c\u79fb\u52a8\u8bbe\u5907\u663e\u793a\u3002
\u6211\u76ee\u524d\u5728\u7528\u7684\u5b57\u4f53\uff1a\u971e\u9e5c\u6587\u6977 \u60f3\u5fc5\u4f60\u53ef\u4ee5\u76f4\u89c2\u4ece\u6211\u7684\u7f51\u7ad9\u611f\u53d7\u5230\uff0c\u8fd9\u6b3e\u5b57\u4f53\u7684\u7f8e\u89c2\u7a0b\u5ea6\u3002
\u5feb\u901f\u6559\u7a0b
\u4ee5\u4e0b\u662f\u6458\u5f55\u7684\u90e8\u5206\u5b57\u4f53\u5b98\u65b9\u4ecb\u7ecd\u6587\u6863
\u6ce8\u610f\u4e8b\u9879
- \u6dfb\u5b57\u8bf7\u5728 Issue #33 \u53cd\u9988\uff0c\u5b57\u5f62\u8c03\u6574\u8bf7\u5728 Issue #14 \u53cd\u9988\uff0c\u4e0d\u8981\u53e6\u5f00\u8bae\u9898\uff0c\u4ee5\u4fbf\u4e8e\u6574\u7406\u3002
- \u82e5\u9700\u8981\u5728\u7f51\u7ad9\u4e0a\u4f7f\u7528\u8fd9\u6b3e\u5b57\u4f53\uff0c\u8bf7\u53c2\u9605 Issue #24\u3002
- \u6709\u5173 Magisk \u5b57\u4f53\u6a21\u5757\u7b49\u624b\u673a\u5b57\u4f53\u66ff\u6362\u6709\u5173\u7684\u95ee\u9898\uff0c\u8bf7\u79fb\u6b65\u6a21\u5757\u6a21\u677f\u7684 Issues \u91cc\u53cd\u9988\uff0c\u4e0d\u8981\u5728\u672c\u9879\u76ee\u5f00\u8bae\u9898\u3002
- \u66f4\u591a\u7248\u672c \uff08\u53ef\u80fd\u4f1a\u968f\u65f6\u53d8\u52a8\uff09 \uff1a
- \u971e\u9e5c\u6587\u6977\u5c4f\u5e55\u9605\u8bfb\u7248 / LXGW WenKai Screen\uff1a\u9002\u7528\u4e8e PC \u548c Android \u624b\u673a\u5c4f\u5e55\u663e\u793a\u4e14\u65e0\u9700\u7279\u522b\u5207\u6362\u5230\u7c97\u4f53\u3002
- \u971e\u9e5c\u6587\u6977 \u8f7b\u4fbf\u7248 / LXGW WenKai Lite\uff1a\u4e0e\u5b8c\u6574\u7248\u76f8\u6bd4\u5254\u9664\u4e00\u4e9b\u8f83\u4e0d\u5e38\u7528\u7684\u5b57\u7b26\uff0c\u4fbf\u4e8e\u5f00\u53d1\u8005\u5c06\u5b57\u4f53\u5d4c\u5165\u8f6f\u4ef6\u4e2d\u3002
- \u971e\u9e5c\u6587\u6977 GB / LXGW WenKai GB\uff1a\u8fdb\u4e00\u6b65\u8c03\u6574\u5b57\u5f62\u548c\u7b14\u5f62\uff0c\u7b26\u5408 G \u6e90\u5b57\u5f62\u89c4\u8303\u3002\u5305\u542b\u300a\u901a\u7528\u89c4\u8303\u6c49\u5b57\u8868\u300b8105 \u4e2a\u6c49\u5b57\u3002
- \u971e\u9e5c\u6587\u6977 TC / LXGW WenKai TC\uff1a\u65e7\u5b57\u5f62\u7248\u53c2\u8003\u300c\u4e00\u70b9\u5b57\u574a\u300d\u7684\u300c\u4f20\u627f\u5b57\u5f62\u6807\u51c6\u5316\u6587\u4ef6\u300d\u5bf9\u90e8\u4ef6\u8fdb\u884c\u4fee\u6539\uff0c\u9002\u7528\u4e8e\u7e41\u4f53\u4e2d\u6587\u7528\u6237\u53ca\u65e7\u5b57\u5f62\u7231\u597d\u8005\u3002
- LXGW Bright\uff1a\u4e0e Ysabeau \u7cfb\u5217\u5b57\u4f53 \u642d\u914d\u7684\u4e2d\u82f1\u6587\u5408\u5e76\u5b57\u4f53\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#lxgw-wenkai","title":"LXGW WenKai / \u971e\u9e5c\u6587\u6977","text":"An open-source Chinese font derived from Fontworks' Klee One. \u4e00\u6b3e\u5f00\u6e90\u4e2d\u6587\u5b57\u4f53\uff0c\u57fa\u4e8e FONTWORKS \u51fa\u54c1\u5b57\u4f53 Klee One \u884d\u751f\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_1","title":"\u9879\u76ee\u7b80\u4ecb","text":"2020 \u5e74 12 \u6708\uff0c\u65e5\u672c\u8457\u540d\u5b57\u4f53\u5382\u5546 FONTWORKS \u5728 GitHub \u4e0a\u53d1\u5e03\u4e86 7 \u6b3e\u65e5\u6587\u5b57\u4f53\uff0c\u5206\u522b\u4e3a Train\u3001Klee\u3001Stick\u3001Rock-n-Roll\u3001Reggae\u3001Rampart \u548c DotGothic16\uff0c\u6839\u636e SIL Open Font License 1.1 \u6388\u6743\u8bb8\u53ef\u5f00\u6e90\u30027 \u6b3e\u5f00\u6e90\u65e5\u6587\u5b57\u4f53\u5404\u6709\u5404\u7684\u7279\u70b9\uff0c\u800c\u8fd9 7 \u6b3e\u5b57\u4f53\u4e2d\uff0c\u5b57\u7b26\u6570\u91cf\u6700\u591a\u7684\u662f Klee\u3002
\u8fd9\u662f\u4e00\u6b3e\u6709\u7740\u65e5\u672c\u6559\u79d1\u4e66\u4f53\u98ce\u683c\u7684\u5b57\u4f53\uff0c\u517c\u6709\u4eff\u5b8b\u548c\u6977\u4f53\u7684\u7279\u70b9\uff0c\u53ef\u8bfb\u6027\u9ad8\u3002\u4e00\u4e9b DIY \u5b57\u4f53\u7231\u597d\u8005\u66fe\u5148\u540e\u7528\u4eff\u5b8b\u7b49\u5b57\u4f53\u8865\u5168\u8fd9\u6b3e\u5b57\u4f53\uff0c\u4f5c\u4e3a\u624b\u673a\u7cfb\u7edf\u7684\u7f8e\u5316\u5b57\u4f53\u79fb\u690d\u5728 iOS\u3001Android \u7b49\u624b\u673a\u7cfb\u7edf\u4e2d\uff0c\u53d7\u5230\u5f88\u591a\u73a9\u673a\u53d1\u70e7\u53cb\u7684\u6b22\u8fce\u3002\u4e0d\u8fc7\u8fd9\u6837\u8865\u5168\u7684\u5b57\u4f53\u6709\u4e00\u4e9b\u4e0d\u8db3\u4e4b\u5904\u3002 \u7b2c\u4e00\uff0c\u539f\u6709\u5b57\u4f53\u548c\u540e\u8865\u5b57\u4f53\u4e4b\u95f4\u6709\u7740\u4e00\u5b9a\u7684\u5dee\u5f02\uff0c\u81f4\u4f7f\u4e00\u4e9b\u4e0d\u540c\u7684\u6587\u5b57\uff08\u5982 Klee \u539f\u6709\u6c49\u5b57\u4e0e\u540e\u8865\u7b80\u4f53\u5b57\uff09\u6df7\u6392\u4e4b\u540e\u4f1a\u6709\u4e00\u5b9a\u7684\u8fdd\u548c\u611f\u3002 \u7b2c\u4e8c\uff0c\u7531\u4e8e\u8865\u5b57\u6240\u7528\u7684\u5b57\u4f53\u4e3a\u5546\u4e1a\u7248\u6743\u5b57\u4f53\uff0c\u8865\u5168\u4e4b\u540e\u4e0d\u53ef\u7528\u4e8e\u5546\u4e1a\u7528\u9014\uff0c\u8fd8\u4f1a\u6709\u4fb5\u6743\u7684\u98ce\u9669\u3002\u6b64\u5916\uff0c\u76ee\u524d\u73b0\u6709\u7684\u5f00\u6e90\u4e2d\u6587\u5b57\u5e93\u91cc\uff0c\u6977\u4f53\u7c7b\u5be5\u5be5\u65e0\u51e0\uff0c\u4eff\u5b8b\u7c7b\u5219\u51e0\u4e4e\u6ca1\u6709\u3002
\u9274\u4e8e\u6b64\uff0c\u4e5f\u4e3a\u4e86\u4e30\u5bcc\u5f00\u6e90\u4e2d\u6587\u5b57\u4f53\u4e2d\u7684\u6977\u4f53\u95e8\u7c7b\uff0c2021 \u5e74 1 \u6708 20 \u65e5\u8d77\uff0c\u672c\u4eba\u5f00\u59cb\u4e86\u4e3a Klee One \u8fd9\u4e00\u9ad8\u8d28\u91cf\u7684\u65e5\u6587\u5f00\u6e90\u5b57\u4f53\u8865\u5168\u7b80\u7e41\u5e38\u7528\u5b57\u7684\u5c1d\u8bd5\u3002\u56e0\u8be5\u5b57\u4f53\u5177\u6709\u4e00\u5b9a\u7684\u300c\u6587\u827a\u6c14\u606f\u300d\uff0c\u547d\u540d \u300c\u971e\u9e5c\u6587\u6977\u300d\uff08\u5176\u5b9e\u5f53\u521d\u662f\u611f\u89c9\u8fd9\u6b3e\u5b57\u4f53\u9002\u5408\u6b63\u6587\u9605\u8bfb\u5b9a\u540d\u300c\u6587\u6977\u300d\uff0c\u540e\u6765\u53d1\u73b0\u8fd9\u6b3e\u5b57\u4f53\u53ef\u80fd\u5e76\u4e0d\u592a\u9002\u5408\u5927\u6bb5\u6b63\u6587\u6392\u7248\uff0c\u76f8\u6bd4\u4e4b\u4e0b\u66f4\u52a0\u9002\u5408\u8bd7\u8bcd\u4e4b\u7c7b\u7684\u4e2d\u7b49\u957f\u5ea6\u6587\u672c\u6392\u7248\uff0c\u6216\u8005\u6ce8\u91ca\u6392\u7248\uff09\u3002\u7531\u4e8e Klee One \u5b57\u4f53\u7684 Regular \u5b57\u91cd\u592a\u7ec6\u4e0d\u592a\u9002\u5408\u9605\u8bfb\uff0c\u9009\u53d6\u539f\u5b57\u4f53 SemiBold \u5b57\u91cd\u4f5c\u4e3a Regular \u5b57\u91cd\u3002\u7ecf\u8fc7\u957f\u65f6\u95f4\u7684\u79ef\u7d2f\uff0c\u76ee\u524d\u5df2\u53d1\u5c55\u6210\u7b80\u7e41\u65e5\u97e9\u5747\u652f\u6301\u7684 3 \u5b57\u91cd\u5b57\u4f53\u5bb6\u65cf \uff08\u867d\u7136\u62d9\u52a3\u7c97\u7cd9\u4e86\u70b9\uff09 \u3002
\u6709\u5173\u8865\u5b57\u8fc7\u7a0b\u7684\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u9605\u672c\u4eba GitHub.io \u535a\u5ba2\u91cc\u7684\u6587\u7ae0\uff1a\u300a\u4e3a Klee \u8bd5\u5236\u7b80\u5316\u5b57\u300b\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_2","title":"\u5b57\u4f53\u9884\u89c8","text":"\u5386\u53f2\u7248\u672c\u7684 Release\uff0c\u8bf7\u5728 Release \u9875\u9762\u67e5\u770b\u3002\u6587\u5b57\u7248\u672c\u7684\u66f4\u65b0\u8bb0\u5f55 HISTORY.MD
\u4e0d\u518d\u7ef4\u62a4\uff0c\u656c\u8bf7\u8c05\u89e3\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_3","title":"\u8865\u5b57\u8ba1\u5212","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_4","title":"\u4e3b\u8981\u6c49\u5b57\u90e8\u5206","text":"\u8bf7\u53c2\u9605\u300c\u971e\u9e5c\u6587\u6977 \u8f7b\u4fbf\u7248\u300d\u52a0\u5b57\u8ba1\u5212\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_5","title":"\u5176\u4ed6\u90e8\u5206","text":" - \u8865\u5b8c CJK \u7edf\u4e00\u6c49\u5b57\u57fa\u672c\u533a 20992 \u4e2a\u6c49\u5b57\uff08\u7b80\u7e41\uff09 \uff08\u76ee\u524d\u5b8c\u6574\u7248\u6709 6857 \u4e2a\u5b57\u5f62\u7531 zi2zi \u6df1\u5ea6\u5b66\u4e60\u751f\u6210\uff0c\u5b57\u5f62\u8f83\u7c97\u7cd9\u3002\uff09 \uff1b
- \u8865\u5168\u5e38\u7528\u8c1a\u6587\uff08\u97e9\u8bed/\u671d\u9c9c\u8bed\uff09\u97f3\u8282 2367 \u4e2a\u3002 \uff08\u505a\u5f97\u6bd4\u8f83\u62d9\u52a3\u3002Lite \u7248\u4e0d\u5305\u542b\u3002\uff09
\u70b9\u51fb\u6b64\u5904\u67e5\u770b\u540e\u7eed\u52a0\u5b57\u53ca\u8c03\u6574\u8ba1\u5212\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_6","title":"\u83b7\u53d6\u5b57\u4f53","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#i","title":"\u2170. \u76f4\u63a5\u4e0b\u8f7d","text":" - \u8fdb\u5165 Release \u754c\u9762\u4e0b\u8f7d\u5bf9\u5e94\u7248\u672c\u7684 TTF \u683c\u5f0f\u6587\u4ef6\uff0c\u6216\u5728\u672c\u4ed3\u5e93
fonts/TTF
\u6587\u4ef6\u5939\u4e2d\u4e0b\u8f7d\u3002 - \u5728 Gitee \u5b98\u65b9\u955c\u50cf\u4ed3\u5e93
fonts/TTF
\u6587\u4ef6\u5939\u4e2d\u4e0b\u8f7d\u3002 - \u8fdb\u5165 \u732b\u5543\u7f51\u3001Zfont.cn\u3001\u81ea\u7531\u5b57\u4f53 \u8fdb\u884c\u4e0b\u8f7d\u3002GitHub \u9879\u76ee\u66f4\u65b0\u540e\uff0c\u4f1a\u8054\u7cfb\u7ad9\u957f\u8fdb\u884c\u66f4\u65b0\uff0c\u66f4\u65b0\u4f1a\u7a0d\u665a\u4e9b\u3002 \u6ce8\u610f\uff1a \u5176\u5b83\u6536\u5f55\u514d\u8d39\u5546\u7528\u5b57\u4f53\u7684\u7f51\u7ad9\u4e0a\u53ef\u80fd\u4e5f\u6536\u5f55\u4e86\u672c\u5b57\u4f53\uff0c\u4f46\u53ef\u80fd\u4e0d\u662f\u6700\u65b0\u7248\u3002
- \u6c38\u7855\uff25\u76d8\u3001\u84dd\u594f\u4e91\uff08\u5bc6\u7801\uff1a8ppk\uff09 \u4f1a\u5728 GitHub \u9879\u76ee\u66f4\u65b0\u540e 72 \u5c0f\u65f6\u4e4b\u5185\u66f4\u65b0\u3002
- \u5982\u679c\u60a8\u4f7f\u7528 macOS\uff0c\u5df2\u7ecf\u5b89\u88c5\u8fc7 Homebrew\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u8f93\u5165\u547d\u4ee4\uff1a
brew tap homebrew/cask-fonts && brew install font-lxgw-wenkai
\u6765\u5b89\u88c5\u672c\u5b57\u4f53\u3002 - \u5982\u679c\u60a8\u4f7f\u7528 Windows\uff0c\u5df2\u7ecf\u5b89\u88c5\u8fc7 Scoop\uff0c\u53ef\u4ee5\u5728\u7ec8\u7aef\u8f93\u5165\u547d\u4ee4\uff1a
scoop bucket add nerd-fonts && scoop install LXGWWenKai
\u6216\u8005 scoop bucket add nerd-fonts && scoop install LXGWWenKaiMono
\u6765\u5b89\u88c5\u672c\u5b57\u4f53\u3002\u4ea6\u53ef\u67e5\u770b\u5fae\u8f6f\u5b98\u65b9\u6559\u7a0b\uff1a\u5982\u4f55\u5728 Windows \u4e2d\u5b89\u88c5\u6216\u5220\u9664\u5b57\u4f53\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#ii","title":"\u2171. \u4ece\u6e90\u4ee3\u7801\u751f\u6210","text":"\u8bf7\u8fd0\u884c ./sources/build.bat
\u6216 ./sources/build.sh
\u3002\u9700\u8981\u5b89\u88c5 fontmake
\uff1apip3 install fontmake
\u548c fontTools
\uff1apip3 install fonttools
\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_7","title":"\u6ce8\u610f\u4e8b\u9879","text":" - \u622a\u81f3\u76ee\u524d\uff0c\u5b8c\u6574\u7248\u672c\u5b57\u4f53\u542b\u6709\u5168\u90e8 CJK \u57fa\u672c\u533a\u6c49\u5b57\uff0c\u4ee5\u53ca\u96f6\u661f\u6269\u5c55 A~G \u533a\u6c49\u5b57\u3002 \u5982\u6709\u8865\u5b57\u9700\u6c42\uff0c\u8bf7\u5728 Issue #33 \u63d0\u51fa\uff0c\u4e0d\u8981\u53e6\u5f00 Issue\uff0c\u4ee5\u4fbf\u4e8e\u6574\u7406\u3002
- \u672c\u4eba\u5e76\u4e0d\u662f\u4e13\u4e1a\u7684\u8bbe\u8ba1\u5e08\uff0c\u5e76\u672a\u8003\u8651\u8bbe\u8ba1\u7f8e\u611f\uff0c\u6240\u4ee5\u770b\u8d77\u6765\u53ef\u80fd\u7565\u4e11\uff0c\u8865\u8fdb\u53bb\u7684\u5b57\u4e0e\u539f\u7248\u53ef\u80fd\u7565\u6709\u8fdd\u548c\u611f\uff0c\u4e14\u5728 Bold \u5b57\u91cd\u4e2d\u90e8\u5206\u5b57\u7684\u8f6e\u5ed3\u66f2\u7ebf\u4f1a\u6709\u6bdb\u523a\uff0cLight \u5b57\u91cd\u4e2d\u90e8\u5206\u5b57\u7684\u8f6e\u5ed3\u4f1a\u5b58\u5728\u98de\u70b9\uff1b\u6b64\u5916\u7531\u4e8e\u65f6\u95f4\u4ed3\u4fc3\uff0c\u5e76\u6ca1\u6709\u591a\u4f59\u7684\u65f6\u95f4\u7ec6\u4fee\uff0c\u90e8\u5206\u5b57\u7684\u90e8\u4ef6\u62fc\u63a5\u4f1a\u5f88\u751f\u786c\u3002\u5982\u6709\u5b57\u5f62\u4f18\u5316\u5efa\u8bae\uff0c\u8bf7\u5728 Issue #14 \u63d0\u51fa\uff0c\u4e0d\u8981\u53e6\u5f00 Issue\uff0c\u4ee5\u4fbf\u4e8e\u6574\u7406\u3002 \uff08\u4ee5\u4e0a\u4e24\u4e2a issue \u5747\u5df2\u52a0\u4e0a long term \u6807\u7b7e\uff0c\u4e14\u5747\u5df2\u5728 Issues \u9875\u9762\u7f6e\u9876\u3002\uff09
- \u82e5\u9700\u8981\u5728\u7f51\u7ad9\u4e0a\u4f7f\u7528\u8fd9\u6b3e\u5b57\u4f53\uff0c\u8bf7\u53c2\u9605 Issue #24\u3002
- \u5bf9\u4e8e\u642d\u914d\u7684\u897f\u6587\u5b57\u4f53\uff0c\u4e2a\u4eba\u63a8\u8350 Ysabeau \u7cfb\u5217\u5b57\u4f53\u3002\u53e6\u6709 Ysabeau Office \u4e0e\u971e\u9e5c\u6587\u6977\u8f7b\u4fbf\u7248\u7684\u5408\u5e76\u5b57\u4f53 LXGW Bright\uff0c\u91c7\u7528 \u5b57\u4f53\u5408\u5e76\u8865\u5168\u5de5\u5177 \u5c06\u4e24\u6b3e\u5b57\u4f53\u5408\u5e76\u800c\u6210\uff0c\u63d0\u4f9b TTF\u3001OTF\u3001WOFF\u3001WOFF2 \u56db\u79cd\u683c\u5f0f\u3002
- \u8be5\u5b57\u4f53\u7684\u66f4\u591a\u7248\u672c \uff08\u53ef\u80fd\u4f1a\u968f\u65f6\u53d8\u52a8\uff09
- \u971e\u9e5c\u6587\u6977\u5c4f\u5e55\u9605\u8bfb\u7248 / LXGW WenKai Screen \u7531\u4e8e\u539f\u7248\u300c\u971e\u9e5c\u6587\u6977\u300dRegular \u5b57\u91cd\u5728 PC \u548c Android \u5c4f\u5e55\u4e0a\u663e\u793a\u8f83\u7ec6\uff0c\u800c Bold \u5b57\u91cd\u9700\u8981\u5728\u7c97\u4f53\u6a21\u5f0f\u4e0b\u624d\u80fd\u8c03\u7528\uff0c\u7279\u5236\u4f5c\u4ee5 Bold \u5b57\u91cd\u4e3a\u57fa\u7840\u7684\uff0c\u52a0\u7c97\u540e\u7684\u300c\u971e\u9e5c\u6587\u6977\u300d\u4e0e Windows \u9ed8\u8ba4\u82f1\u6587\u5b57\u4f53 Segoe UI Regular \u7c97\u7ec6\u76f8\u5f53\uff0cPC \u548c Android \u624b\u673a\u5c4f\u5e55\u9605\u8bfb\u66f4\u52a0\u8212\u9002\uff0c\u65e0\u9700\u7279\u522b\u5207\u6362\u5230\u7c97\u4f53\u6a21\u5f0f\u3002
- \u971e\u9e5c\u6587\u6977 \u8f7b\u4fbf\u7248 / LXGW WenKai Lite\uff1a\u5254\u9664 v1.100 \u7248\u672c\u589e\u8865\u7684\u4e00\u4e9b\u8f83\u4e0d\u5e38\u7528\u7684\u6c49\u5b57\uff0c\u4fbf\u4e8e\u5f00\u53d1\u8005\u5c06\u5b57\u4f53\u5d4c\u5165\u8f6f\u4ef6\u4e2d\u3002\u82e5\u5b8c\u6574\u7248\u6709\u5b57\u5f62\u4f18\u5316\u6216\u7279\u6027\u66f4\u65b0\uff0c\u7cbe\u7b80\u7248\u4e5f\u5c06\u4f1a\u8ddf\u8fdb\u3002\u7cbe\u7b80\u7248\u4e0d\u5305\u542b\u8c1a\u6587\u3002
- \u971e\u9e5c\u6587\u6977 GB / LXGW WenKai GB\uff1a\u5728\u6587\u6977\u57fa\u7840\u4e0a\u8fdb\u4e00\u6b65\u8c03\u6574\u5b57\u5f62\u548c\u7b14\u5f62\uff0c\u7b26\u5408 G \u6e90\u5b57\u5f62\u89c4\u8303\u3002\u5305\u542b\u300a\u901a\u7528\u89c4\u8303\u6c49\u5b57\u8868\u300b8105 \u4e2a\u6c49\u5b57\u3002\u53e6\u6709\u4e0e\u300c\u82ab\u837d\u300d\u7b49\u540c\u6e90\u5b57\u4f53\u5408\u5e76\u7684\u300c\u7f1d\u5408\u6977\u300d\uff0c\u53ca\u4f7f\u7528\u672c\u9879\u76ee\u5b57\u4f53\u8865\u5168\u7684 GB \u878d\u5408\u7248\u3002
- \u971e\u9e5c\u6587\u6977 TC / LXGW WenKai TC\uff1a\u4f9b\u7e41\u4f53\u4e2d\u6587\u7528\u6237\u548c\u65e7\u5b57\u5f62\u7231\u597d\u8005\u4f7f\u7528\uff0c\u57fa\u4e8e\u8f7b\u4fbf\u7248\u5236\u4f5c\uff0c\u91c7\u7528\u65e7\u5b57\u5f62\u5199\u6cd5\uff0c\u4e3b\u8981\u91c7\u7528 Klee One \u7684\u9690\u85cf\u5b57\u5f62\uff0c\u90e8\u5206\u90e8\u4ef6\u624b\u52a8\u4fee\u6539 \uff08\u5927\u90e8\u5206\u90e8\u4ef6\u53c2\u8003\u4e00\u70b9\u5b57\u574a\u300c\u4f20\u627f\u5b57\u5f62\u6807\u51c6\u5316\u6587\u4ef6\u300d\uff0c\u501f\u52a9\u300c\u6c49\u6587\u535a\u58eb\u300d\u300c\u56fd\u5b66\u8ff7\u300d\u300c\u5b57\u7edf\u7f51\u300d \u7b49\u5de5\u5177\u6309\u90e8\u4ef6\u67e5\u5b57\uff0c\u5bf9\u5b57\u5f62\u8fdb\u884c\u4fee\u6539\uff09\u3002\u6b64\u5916\u5df2\u6709\u57fa\u4e8e Klee One \u6539\u9020\u7684\u7e41\u4f53\u4e2d\u6587\u5b57\u4f53 \u82ab\u837d / Iansui\uff0c\u91c7\u7528\u53f0\u6e7e\u5730\u533a\u7684\u6559\u80b2\u6807\u51c6\u5b57\u5f62\uff1b\u53e6\u6709\u91c7\u7528\u9999\u6e2f\u5730\u533a\u5b57\u5f62\u6807\u51c6\u7684 \u82ab\u831c\u96c5\u6977 / JyunsaiKaai\u3002
- \u672c\u9879\u76ee\u4e3a\u5b57\u4f53\u9879\u76ee\uff0c\u6709\u5173 Magisk \u5b57\u4f53\u6a21\u5757\u7b49\u624b\u673a\u5b57\u4f53\u66ff\u6362\u6709\u5173\u7684\u95ee\u9898\uff0c\u8bf7\u79fb\u6b65\u6a21\u5757\u6a21\u677f\u7684 Issues \u91cc\u53cd\u9988\uff0c\u4e0d\u8981\u5728\u672c\u9879\u76ee\u5f00\u8bae\u9898\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_8","title":"\u6388\u6743\u4fe1\u606f","text":"\u672c\u5b57\u4f53\u662f\u57fa\u4e8e SIL Open Font License 1.1 \u6539\u9020\u7684 FONTWORKS \u5f00\u53d1\u5e76\u53d1\u5e03\u7684 Klee \u5f00\u6e90\u9879\u76ee\u3002Klee \u662f FONTWORKS \u7684\u5546\u6807\u3002
\u732b\u5543\u7f51\u63d0\u4f9b SIL Open Font License 1.1 \u975e\u5b98\u65b9\u7b80\u4f53\u4e2d\u6587\u8bd1\u672c\u4fbf\u4e8e\u7406\u89e3\uff0c\u4ec5\u4f9b\u53c2\u8003\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_9","title":"\u8bb8\u53ef","text":" - \u8fd9\u6b3e\u5b57\u4f53\u65e0\u8bba\u662f\u4e2a\u4eba\u8fd8\u662f\u4f01\u4e1a\u90fd\u53ef\u4ee5\u81ea\u7531\u5546\u7528\uff0c\u65e0\u9700\u4ed8\u8d39\uff0c\u4e5f\u65e0\u9700\u77e5\u4f1a\u6216\u8005\u6807\u660e\u539f\u4f5c\u8005\u3002 \uff08\u4f46\u5982\u679c\u544a\u77e5\uff0c\u6211\u4f1a\u5f88\u611f\u6fc0\u3002\uff09
- \u8fd9\u6b3e\u5b57\u4f53\u53ef\u4ee5\u81ea\u7531\u4f20\u64ad\u3001\u5206\u4eab\uff0c\u6216\u8005\u5c06\u5b57\u4f53\u5b89\u88c5\u4e8e\u7cfb\u7edf\u3001\u8f6f\u4ef6\u6216APP\u4e2d\u4e5f\u662f\u5141\u8bb8\u7684\uff0c\u53ef\u4ee5\u4e0e\u4efb\u4f55\u8f6f\u4ef6\u6346\u7ed1\u518d\u5206\u53d1\u4ee5\u53ca\uff0f\u6216\u4e00\u5e76\u9500\u552e\u3002
- \u8fd9\u6b3e\u5b57\u4f53\u53ef\u4ee5\u81ea\u7531\u4fee\u6539\u3001\u6539\u9020\uff0c\u5236\u4f5c\u884d\u751f\u5b57\u4f53\u3002\u4fee\u6539\u6216\u6539\u9020\u540e\u7684\u5b57\u4f53\u4e5f\u5fc5\u987b\u540c\u6837\u4ee5 SIL OFL \u516c\u5f00\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#_10","title":"\u9650\u5236","text":" - \u5728\u5236\u4f5c\u884d\u751f\u5b57\u4f53\u65f6\uff0c\u5b57\u4f53\u540d\u79f0\u4e0d\u53ef\u4f7f\u7528\u539f\u6709\u5b57\u4f53\u7684\u300c\u4fdd\u7559\u540d\u79f0\u300d\u3002\u672c\u5b57\u4f53\u4fdd\u7559\u540d\u79f0\u300c\u971e\u9e5c\u300d\u300cLXGW\u300d\uff0c\u57fa\u4e8e\u672c\u5b57\u4f53\u4e8c\u6b21\u884d\u751f\u7684\u5b57\u4f53\uff0c\u540d\u79f0\u4e0d\u53ef\u51fa\u73b0\u300c\u971e\u9e5c\u300d\u6216\u300cLXGW\u300d\u5b57\u6837\uff1b\u800c\u5728\u6ca1\u6709\u5bf9\u5b57\u4f53\u6e90\u4ee3\u7801\u8fdb\u884c\u4fee\u6539\u7684\u60c5\u51b5\u4e0b\uff0c\u91cd\u65b0\u7f16\u8bd1\u51fa\u6765\u7684\u5b57\u4f53\uff0c\u53ef\u4ee5\u7ee7\u7eed\u4f7f\u7528\u672c\u5b57\u4f53\u7684\u4fdd\u7559\u540d\u79f0\u300c\u971e\u9e5c\u300d\u300cLXGW\u300d\u3002
- \u6839\u636e SIL Open Font License 1.1 \u8bb8\u53ef\u4e0e\u6761\u4ef6\u4e2d \u7b2c\u4e00\u6761\u7684\u89c4\u5b9a\uff0c \u7981\u6b62\u5355\u72ec\u51fa\u552e\u5b57\u4f53\u6587\u4ef6(OTF/TTF\u6587\u4ef6)\u7684\u884c\u4e3a\u3002
- \u8be5\u5b57\u4f53\u4e0d\u53ef\u5728 SIL Open Font License 1.1 \u4ee5\u5916\u7684\u6388\u6743\u8bb8\u53ef\u4e0b\u53d1\u884c\u3002
\u4ee5\u4e0a\u662f\u6458\u5f55\u7684\u90e8\u5206\u5b57\u4f53\u5b98\u65b9\u4ecb\u7ecd\u6587\u6863
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkdocsfont/#mkdocs","title":"\u57fa\u4e8eMkdocs\u7684\u7f51\u7ad9\u5b57\u4f53\u7f8e\u5316\u7528\u6cd5","text":"\u5728mkdocs.yml\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9
extra_css:\n - https://static.zeoseven.com/zsft/292/main/result.css\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-lite-webfont@1.1.0/style.css\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-tc-webfont@1.0.0/style.css\n # - https://cdn.jsdelivr.net/npm/lxgw-wenkai-screen-webfont@1.1.0/style.css\n
\u7136\u540e\u5728extra.css\u4e2d\u6dfb\u52a0\u4ee5\u4e0b\u5185\u5bb9
@import url('https://static.zeoseven.com/zsft/292/main/result.css');\n\nbody {\nfont-family: \"LXGW WenKai\";\nfont-weight: normal;\n}\n\n\n/* button.md-top {\n font-family: LXGW WenKai;\n font-size: 16px;\n font-weight: lighter;\n} */\n
\u4e0d\u61c2extra_css\u7684\u7528\u6cd5\u7684\u53ef\u4ee5\u770b\u4e00\u4e0b\u6211\u5199\u7684extra_css\u90e8\u5206\u6559\u7a0b
Tip
\u5207\u6362\u5b57\u4f53\u540e\u53ef\u80fd\u8fd4\u56de\u9876\u90e8\u6309\u94ae\u4f1a\u5728\u4e2a\u522b\u6d4f\u89c8\u5668\u663e\u793a\u5f02\u5e38 \u5efa\u8bae\u5728extra.css\u91cc\u52a0\u5165
button.md-top {\n font-family: LXGW WenKai; /* \u4fee\u6539\u5b57\u4f53 */\n font-size: 16px; /* \u4fee\u6539\u5b57\u4f53\u5927\u5c0f */\n font-weight: bold; /* \u4fee\u6539\u5b57\u4f53\u7c97\u7ec6 */\n color: #518FC1; /* \u4fee\u6539\u5b57\u4f53\u989c\u8272 */\n}\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/mkpdf/","title":"\u5d4c\u5165PDF","text":"\u5d4c\u5165PDF
\u5d4c\u5165PDF\u4ee3\u7801 \uff0c\u6ce8\u610fPDF\u7684\u76f8\u5bf9\u5730\u5740
<iframe src=\"../\u4e2a\u4eba\u7b80\u5386.pdf (\u76f8\u5bf9\u5730\u5740)\" width=\"100%\" height=\"800px\" style=\"border: 1px solid #ccc; overflow: auto;\"></iframe>\n
\u6211\u7684\u5b8c\u6574\u4ee3\u7801\uff1a
<div class=\"grid cards\" markdown>\n\n- :octicons-bookmark-16:{ .lg .middle } __\u4e2a\u4eba\u7b80\u5386__\n\n ---\n\n <iframe src=\"../\u4e2a\u4eba\u7b80\u5386.pdf\" width=\"100%\" height=\"800px\" style=\"border: 1px solid #ccc; overflow: auto;\">\n </iframe>\n\n\n</div>\n
\u5e0c\u671b\u5bf9\u4f60\u6709\u5e2e\u52a9
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/shubiao/","title":"JS\u5b9e\u73b0\u9f20\u6807\u6837\u5f0f","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u8be5\u6587\u4ecb\u7ecd\u4e86\u901a\u8fc7JavaScript\u548cCSS\u81ea\u5b9a\u4e49\u7f51\u9875\u9f20\u6807\u6837\u5f0f\u7684\u5b9e\u73b0\u65b9\u6cd5\uff0c\u91cd\u70b9\u8bf4\u660e\u4e86\u5173\u952e\u53c2\u6570\u914d\u7f6e\uff0c\u5305\u62ec\u9f20\u6807\u5c3a\u5bf8\u3001\u989c\u8272\uff08\u652f\u6301RGB\u503c\u548c\u989c\u8272\u540d\u79f0\uff09\u4ee5\u53ca\u5706\u5f62\u8ddf\u968f\u6548\u679c\u3002\u63d0\u4f9b\u4e86\u5177\u4f53\u7684\u4ee3\u7801\u793a\u4f8b\u548c\u914d\u7f6e\u8def\u5f84\uff0c\u5e76\u5f3a\u8c03\u9700\u5728mkdocs.yml\u4e2d\u5f15\u5165\u76f8\u5173\u6587\u4ef6\u3002\u9002\u7528\u4e8e\u9700\u8981\u4e2a\u6027\u5316\u9f20\u6807\u4ea4\u4e92\u6548\u679c\u7684\u7f51\u9875\u5f00\u53d1\u573a\u666f\u3002
\u4e0d\u5efa\u8bae\u66f4\u6539\uff0c\u56e0\u4e3a\u9ed8\u8ba4\u5c31\u662f\u6700\u7b80\u6d01
\u5728docs/javascripts/extra.js
\u4e0b\u590d\u5236\u7c98\u8d34\uff1a
var CURSOR;\n\nMath.lerp = (a, b, n) => (1 - n) * a + n * b;\n\nconst getStyle = (el, attr) => {\n try {\n return window.getComputedStyle\n ? window.getComputedStyle(el)[attr]\n : el.currentStyle[attr];\n } catch (e) {}\n return \"\";\n};\n\nclass Cursor {\n constructor() {\n this.pos = {curr: null, prev: null};\n this.pt = [];\n this.create();\n this.init();\n this.render();\n }\n\n move(left, top) {\n this.cursor.style[\"left\"] = `${left}px`;\n this.cursor.style[\"top\"] = `${top}px`;\n }\n\n create() {\n if (!this.cursor) {\n this.cursor = document.createElement(\"div\");\n this.cursor.id = \"cursor\";\n this.cursor.classList.add(\"hidden\");\n document.body.append(this.cursor);\n }\n\n var el = document.getElementsByTagName('*');\n for (let i = 0; i < el.length; i++)\n if (getStyle(el[i], \"cursor\") == \"pointer\")\n this.pt.push(el[i].outerHTML);\n\n document.body.appendChild((this.scr = document.createElement(\"style\")));\n // \u8fd9\u91cc\u6539\u53d8\u9f20\u6807\u6307\u9488\u7684\u989c\u8272 \u7531svg\u751f\u6210\n this.scr.innerHTML = `* {cursor: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='8px' height='8px'><circle cx='4' cy='4' r='4' opacity='.5'/></svg>\") 4 4, auto}`;\n }\n\n refresh() {\n this.scr.remove();\n this.cursor.classList.remove(\"hover\");\n this.cursor.classList.remove(\"active\");\n this.pos = {curr: null, prev: null};\n this.pt = [];\n\n this.create();\n this.init();\n this.render();\n }\n\n init() {\n document.onmouseover = e => this.pt.includes(e.target.outerHTML) && this.cursor.classList.add(\"hover\");\n document.onmouseout = e => this.pt.includes(e.target.outerHTML) && this.cursor.classList.remove(\"hover\");\n document.onmousemove = e => {(this.pos.curr == null) && this.move(e.clientX - 8, e.clientY - 8); this.pos.curr = {x: e.clientX - 8, y: e.clientY - 8}; this.cursor.classList.remove(\"hidden\");};\n document.onmouseenter = e => this.cursor.classList.remove(\"hidden\");\n document.onmouseleave = e => this.cursor.classList.add(\"hidden\");\n document.onmousedown = e => this.cursor.classList.add(\"active\");\n document.onmouseup = e => this.cursor.classList.remove(\"active\");\n }\n\n render() {\n if (this.pos.prev) {\n this.pos.prev.x = Math.lerp(this.pos.prev.x, this.pos.curr.x, 0.15);\n this.pos.prev.y = Math.lerp(this.pos.prev.y, this.pos.curr.y, 0.15);\n this.move(this.pos.prev.x, this.pos.prev.y);\n } else {\n this.pos.prev = this.pos.curr;\n }\n requestAnimationFrame(() => this.render());\n }\n}\n\n(() => {\n CURSOR = new Cursor();\n // \u9700\u8981\u91cd\u65b0\u83b7\u53d6\u5217\u8868\u65f6\uff0c\u4f7f\u7528 CURSOR.refresh()\n})();\n
\u5176\u4e2d\u6bd4\u8f83\u91cd\u8981\u7684\u53c2\u6570\u5c31\u662f\u9f20\u6807\u7684\u5c3a\u5bf8\u548c\u989c\u8272\uff0c\u5df2\u7ecf\u5728\u4e0a\u56fe\u4e2d\u6807\u51fa\uff0c\u76ee\u524d\u53d1\u73b0\u989c\u8272\u53ea\u652f\u6301RGB\u5199\u6cd5\u548c\u56fa\u6709\u540d\u79f0\u5199\u6cd5\uff08\u4f8b\u5982red\u8fd9\u79cd\uff09\uff0c\u5176\u4ed6\u53c2\u6570\u4e5f\u53ef\u4ee5\u81ea\u884c\u6478\u7d22\uff1a * {cursor: url(\"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' width='8px' height='8px'><circle cx='4' cy='4' r='4' opacity='1.0' fill='rgb(57, 197, 187)'/></svg>\") 4 4, auto}`\n
\u5728docs/stylesheets/extra.css\u6dfb\u52a0\u5982\u4e0b\u4ee3\u7801\uff1a
/* \u9f20\u6807\u6837\u5f0f */\n#cursor {\n position: fixed;\n width: 16px;\n height: 16px;\n /* \u8fd9\u91cc\u6539\u53d8\u8ddf\u968f\u7684\u5e95\u8272 */\n background: var(--theme-color);\n border-radius: 8px;\n opacity: 0.25;\n z-index: 10086;\n pointer-events: none;\n transition: 0.2s ease-in-out;\n transition-property: background, opacity, transform;\n}\n\n#cursor.hidden {\n opacity: 0;\n}\n\n#cursor.hover {\n opacity: 0.1;\n transform: scale(2.5);\n -webkit-transform: scale(2.5);\n -moz-transform: scale(2.5);\n -ms-transform: scale(2.5);\n -o-transform: scale(2.5);\n}\n\n#cursor.active {\n opacity: 0.5;\n transform: scale(0.5);\n -webkit-transform: scale(0.5);\n -moz-transform: scale(0.5);\n -ms-transform: scale(0.5);\n -o-transform: scale(0.5);\n}\n
\u8fd9\u91cc\u6bd4\u8f83\u91cd\u8981\u7684\u53c2\u6570\u5c31\u662f\u9f20\u6807\u8ddf\u968f\u7684\u5706\u5f62\u989c\u8272\uff0c\u53ef\u4ee5\u6839\u636e\u81ea\u5df1\u7684\u559c\u597d\u8fdb\u884c\u66f4\u6539\uff1a #cursor {\n /* \u8fd9\u91cc\u6539\u53d8\u8ddf\u968f\u7684\u5e95\u8272 */\n background: rgb(57, 197, 187);\n}\n
\u6ce8\u610f\u26a0\ufe0f
\u9700\u8981\u5728mkdocs.yml\u4e2d\u5f15\u5165js\u548ccss
extra_javascript:\n - javascripts/extra.js\n - javascripts/mathjax.js\nextra_css:\n - stylesheets/extra.css\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/time/","title":"\u4e3aMKdocs\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u8be5\u6280\u672f\u65b9\u6848\u901a\u8fc7git-revision-date-localized\u63d2\u4ef6\u4e3aMKdocs\u6587\u6863\u7cfb\u7edf\u6dfb\u52a0\u6587\u7ae0\u4fee\u8ba2\u65f6\u95f4\u6233\u529f\u80fd\u3002\u6838\u5fc3\u5b9e\u73b0\u5305\u62ec\u5728CI\u5de5\u4f5c\u6d41\u4e2d\u914d\u7f6e\u667a\u80fd\u6e32\u67d3\u7b56\u7565\uff0c\u65e2\u907f\u514d\u4e86\u672c\u5730\u6e32\u67d3\u65f6\u5168\u91cf\u68c0\u67e5git\u5386\u53f2\u5bfc\u81f4\u7684\u6027\u80fd\u635f\u8017\uff0c\u53c8\u80fd\u786e\u4fdd\u53d1\u5e03\u65f6\u51c6\u786e\u663e\u793a\u6700\u540e\u66f4\u65b0\u65f6\u95f4\u3002\u8be5\u65b9\u6cd5\u663e\u8457\u63d0\u5347\u4e86\u6587\u6863\u7cfb\u7edf\u7684\u7ef4\u62a4\u6027\u548c\u7528\u6237\u4f53\u9a8c\uff0c\u7279\u522b\u9002\u5408\u9700\u8981\u5c55\u793a\u5185\u5bb9\u65f6\u6548\u6027\u7684\u6280\u672f\u6587\u6863\u573a\u666f\u3002
\u53c2\u8003\u65b9\u6cd5\uff1agit \u4fee\u8ba2\u65e5\u671f\u672c\u5730\u5316
\u5229\u7528git -revision-date-localized\u63d2\u4ef6\u6dfb\u52a0\u4e86\u5bf9\u6dfb\u52a0\u4e0a\u6b21\u66f4\u65b0\u65e5\u671f\u548c\u5728\u6bcf\u4e2a\u9875\u9762\u5e95\u90e8\u521b\u5efa\u6587\u6863\u7684\u652f\u6301
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/time/#_1","title":"\u5b89\u88c5","text":"pip install mkdocs-git-revision-date-localized-plugin\n
.github/workflows/\u4e0b\u7684ci.yml\u589e\u52a0\u9ad8\u4eae\u7684\u51e0\u884c\uff1a
name: ci \non:\n push:\n branches:\n - master \n - main\npermissions:\n contents: write\njobs:\n deploy:\n runs-on: ubuntu-latest\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n - uses: actions/setup-python@v4\n with:\n python-version: 3.x\n - run: echo \"cache_id=$(date --utc '+%V')\" >> $GITHUB_ENV \n - uses: actions/cache@v3\n with:\n key: mkdocs-material-${ env.cache_id }\n path: .cache\n restore-keys: |\n mkdocs-material-\n - run: pip install mkdocs-git-revision-date-localized-plugin\n - run: pip install mkdocs-git-authors-plugin\n # - run: pip install mkdocs-rss-plugin \n - run: pip install mkdocs-material \n - run: mkdocs gh-deploy --force\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/time/#_2","title":"\u914d\u7f6e","text":"\u7136\u540e\u5c06\u4ee5\u4e0b\u884c\u6dfb\u52a0\u5230mkdocs.yml\uff1a
plugins:\n - git-revision-date-localized:\n enable_creation_date: true\n
\u8be6\u7ec6\u7684\u914d\u7f6e\u8bf7\u770b\uff1amkdocs-git-revision-date-localized-plugin
\u53ef\u9009\u7684\u914d\u7f6e\u5f88\u591a\uff1a
plugins:\n - git-revision-date-localized:\n type: timeago #\u65f6\u95f4\u7c7b\u578b\n custom_format: \"%d. %B %Y\" # \u65f6\u95f4\u683c\u5f0f\n timezone: Europe/Amsterdam #\u65f6\u533a\n locale: en #\u9996\u9009\u8bed\u8a00\n fallback_to_build_date: false #\u8bb8\u56de\u9000\u5230git \u4e0d\u53ef\u7528\u65f6mkdocs build\u6267\u884c\u7684\u65f6\u95f4\n enable_creation_date: true #\u662f\u5426\u542f\u7528\u521b\u5efa\u65f6\u95f4\n exclude: #\u6392\u9664\u7684\u9875\u9762\n - index.md\n enabled: true #\u662f\u5426\u542f\u7528\n strict: true\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/time/#_3","title":"\u6e29\u99a8\u63d0\u793a","text":"\u5bf9\u4e8e\u5927\u578b\u5355\u4e00\u7684\u6587\u6863\u5e93\uff0c\u6267\u884cmkdocs serve
\u540e\u7684\u6e32\u67d3\u901f\u5ea6\u660e\u663e\u53d8\u6162\uff0c\u8fd9\u662f\u56e0\u4e3a\u6bcf\u6b21\u6e32\u67d3\u90fd\u4f1a\u68c0\u67e5\u6240\u6709\u6587\u4ef6\u7684git\u5386\u53f2\u8bb0\u5f55\u3002\u5982\u679c\u60a8\u4e0d\u9700\u8981\u8fd9\u4e2a\u529f\u80fd\uff0c\u53ef\u4ee5\u901a\u8fc7\u5c06enabled
\u8bbe\u7f6e\u4e3afalse
\u6765\u7981\u7528\u5b83\u3002
\u6bd4\u8f83\u63a8\u8350\u8fd9\u79cd\u65b9\u6cd5:
- git-committers:\n enabled: !ENV [CI, false]\n
\u4fee\u6539enabled\u7684\u7b56\u7565\uff0c\u8fd9\u6837\u5c31\u4e0d\u4f1a\u6bcf\u6b21\u672c\u5730\u6e32\u67d3\u90fd\u68c0\u67e5\u6240\u6709\u6587\u4ef6\u7684git\u5386\u53f2\u8bb0\u5f55\uff0c\u6e32\u67d3\u901f\u5ea6\u4f1a\u660e\u663e\u52a0\u5feb\uff0c\u53d1\u5e03\u7f51\u7ad9\u65f6\u5019\u4f1a\u6b63\u5e38\u663e\u793a\u3002","tags":["Mkdocs"]},{"location":"blog/websitebeauty/webtalknow/","title":"\u6dfb\u52a0\u5728\u7ebf\u804a\u5929","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
Tidio\u63d0\u4f9b\u514d\u8d39\u3001\u65e0\u9700\u68af\u5b50\u7684\u5728\u7ebf\u804a\u5929\u89e3\u51b3\u65b9\u6848\uff0c\u9002\u7528\u4e8e\u7f51\u7ad9\u96c6\u6210\u3002\u7528\u6237\u53ea\u9700\u6ce8\u518c\u8d26\u53f7\uff0c\u4ece\u8bbe\u7f6e\u4e2d\u83b7\u53d6\u4e13\u5c5eJavaScript\u4ee3\u7801\uff0c\u5c06\u5176\u5d4c\u5165\u7f51\u7ad9\u6307\u5b9a\u4f4d\u7f6e\u5373\u53ef\u5b8c\u6210\u90e8\u7f72\u3002\u8be5\u5de5\u5177\u5b89\u88c5\u7b80\u4fbf\uff0c\u4ec5\u9700\u5355\u884c\u4ee3\u7801\u5373\u53ef\u5b9e\u73b0\u5b9e\u65f6\u804a\u5929\u529f\u80fd\uff0c\u9002\u5408\u5feb\u901f\u4e3a\u7f51\u7ad9\u6dfb\u52a0\u5ba2\u670d\u7cfb\u7edf\u3002
\u4ee5Tidio\u4e3a\u4f8b,Tidio\u514d\u8d39\u7248\u5df2\u7ecf\u5b8c\u5168\u591f\u7528\u4e14\u65e0\u9700\u68af\u5b50
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/webtalknow/#tidio","title":"\u8bbf\u95eeTidio\u5b98\u7f51","text":"\u8981\u5728\u60a8\u7684\u7f51\u7ad9\u4e0a\u4f7f\u7528 javascript \u4ee3\u7801\u65b9\u6cd5\u5b89\u88c5 Tidio\uff0c\u60a8\u9700\u8981\u521b\u5efa\u4e00\u4e2a Tidio \u5e10\u6237\u3002\u8981\u521b\u5efa Tidio \u5e10\u6237\uff0c\u8bf7\u8bbf\u95ee\u6211\u4eec\u7684\u7f51\u7ad9\uff0c\u7136\u540e\u5355\u51fb \u201c\u5f00\u59cb\u201d \u6309\u94ae\u521b\u5efa\u65b0\u7684 Tidio \u5e10\u6237\u3002\u60a8\u8fd8\u53ef\u4ee5\u4f7f\u7528 \u201c\u767b\u5f55\u201d \u9009\u9879\u6765\u4f7f\u7528\u60a8\u73b0\u6709\u7684\u5e10\u6237\u3002
\u5b89\u88c5\u8fc7\u7a0b\u5f88\u7b80\u5355\uff0c\u56e0\u4e3a\u5b83\u53ea\u9700\u8981\u60a8\u5c06\u4e00\u884c\u4ee3\u7801\u7c98\u8d34\u5230\u7f51\u7ad9\u4ee3\u7801\u7684\u9002\u5f53\u4f4d\u7f6e\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/webtalknow/#_1","title":"\u627e\u5230\u5b89\u88c5\u4ee3\u7801","text":"\u53ef\u4ee5\u524d\u5f80\u201c\u8bbe\u7f6e\u201d>\u201c\u9891\u9053\u201d>\u201c\u5b9e\u65f6\u804a\u5929\u201d> \u201c\u5b89\u88c5\u201d \u90e8\u5206\u627e\u5230\u60a8\u72ec\u7279\u7684 Tidio javascript \u4ee3\u7801\u3002\u8fd8\u5c06\u5728\u5e10\u6237\u521b\u5efa\u4e4b\u65c5\u7684\u6700\u540e\u9636\u6bb5\u770b\u5230\u4ee3\u7801\u3002 \u6bd4\u5982\uff1a
<script src=\"//code.tidio.co/6jmawe9m5wy4ahvlhub2riyrnujz7xxi.js\" async></script>\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/webtalknow/#_2","title":"\u653e\u5230\u4f60\u9700\u8981\u7684\u9875\u9762\u5373\u53ef","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/","title":"\u7f51\u9875\u5706\u89d2\u5316\u8bbe\u8ba1","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86\u7f51\u9875\u5706\u89d2\u5316\u8bbe\u8ba1\u7684\u5b9e\u73b0\u65b9\u6cd5\uff0c\u91cd\u70b9\u8bb2\u89e3\u901a\u8fc7CSS\u6837\u5f0f\u6587\u4ef6\u5b9e\u73b0\u56fe\u7247\u548c\u8fb9\u6846\u7684\u5706\u89d2\u6548\u679c\u3002\u5177\u4f53\u5305\u62ec\u5728mkdocs.yml\u4e2d\u5f15\u5165CSS\u6587\u4ef6\u3001\u7f16\u5199\u5706\u89d2\u6837\u5f0f\u4ee3\u7801\u4ee5\u53ca\u5728Markdown\u6587\u4ef6\u4e2d\u5e94\u7528\u7684\u65b9\u6cd5\uff0c\u540c\u65f6\u5c55\u793a\u4e86\u6309\u94ae\u548c\u5361\u7247\u7ec4\u4ef6\u7684\u5706\u89d2\u5316\u5b9e\u73b0\u793a\u4f8b\u3002\u8be5\u6280\u672f\u53ef\u63d0\u5347\u7f51\u9875\u89c6\u89c9\u7f8e\u611f\uff0c\u9002\u7528\u4e8e\u6587\u6863\u7f51\u7ad9\u548cUI\u7ec4\u4ef6\u5f00\u53d1\u3002
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_1","title":"\u793a\u4f8b","text":"","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_2","title":"\u5982\u4f55\u8bbe\u8ba1","text":"\u65b0\u5efacss\u6587\u4ef6\uff0c\u5728mkdocs.yml\u5f15\u5165css
:root {\n --admonition-border-left-width: 0.2rem;\n --base-border-radius: 0.5rem;\n}\n\n/* Change font family of filename present on top of code block. */\n/* .highlight span.filename {\n border-bottom: none;\n border-radius: var(--base-border-radius);\n display: inline;\n font-family: var(--md-code-font-family);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 5px;\n text-align: center;\n}\n.highlight span.filename + pre > code {\n border-radius: var(--base-border-radius);\n border-top-left-radius: 0;\n}\n.md-typeset pre > code {\n border-radius: var(--base-border-radius);\n} */\n\n/* Customize admonition layout */\n/* .md-typeset .admonition {\n border-width: 0px;\n border-left-width: var(--admonition-border-left-width);\n}\n\n[dir=\"ltr\"] .md-typeset blockquote {\n border-radius: 0.2rem;\n border-left-width: var(--admonition-border-left-width);\n} */\n\n/* Grid Cards */\n.md-typeset .grid.cards > ul > li {\n border-radius: var(--base-border-radius);\n}\n.md-typeset .grid.cards > ul > li:hover {\n box-shadow: 0 0 0.2rem #ffffff40;\n}\n\n/* Markdown Button */\n.md-typeset .md-button {\n border-radius: var(--base-border-radius);\n}\n\n/* Footer: Social Links */\n.md-social__link svg {\n max-height: 1rem;\n}\n\n\n/* Forms */\n.md-search__form {\n border-radius: var(--base-border-radius);\n}\n\n[data-md-toggle=\"search\"]:checked ~ .md-header .md-search__form {\n border-top-right-radius: var(--base-border-radius);\n border-top-left-radius: var(--base-border-radius);\n}\n\n[dir=\"ltr\"] .md-search__output {\n border-bottom-right-radius: var(--base-border-radius);\n border-bottom-left-radius: var(--base-border-radius);\n}\n\n/* Blog - index.md */\n/* div.md-content header {\n display: none;\n}\n\n.md-post--excerpt {\n background-color: var(--md-accent-fg-color--transparent);\n box-shadow: 0 0 0 1rem var(--md-accent-fg-color--transparent);\n border-radius: var(--base-border-radius);\n}\n\n.md-post--excerpt .md-post__header {\n justify-content: center;\n}\n\n.md-post--excerpt .md-post__content > h2,\n.md-post__action {\n text-align: center;\n} */\n\n/* Table */\n.md-typeset table:not([class]) {\n border-radius: var(--base-border-radius);\n}\n\n\n\n\n\n.carousel {\n width: 60%;\n height: 100%;\n\n border-radius: 0.4rem;\n overflow: hidden;\n position: relative;\n\n /* \u5c45\u4e2d */\n margin-left: auto;\n margin-right: auto;\n\n border: 0.075rem solid #7b7b7b7a;\n box-shadow: var(--md-shadow-z1);\n}\n\n.carousel-container {\n width: 100%;\n height: 100%;\n\n position: relative;\n left: 0;\n\n display: flex;\n\n /* \u8fc7\u6e21\u52a8\u753b 1s */\n transition: all 1s;\n}\n\n.carousel-hover {\n height: 100%;\n width: 10%;\n position: absolute;\n top: 0;\n\n /* \u5b50\u5143\u7d20\u5782\u76f4\u5c45\u4e2d */\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n justify-content: center;\n}\n.carousel-hover.left {\n left: 0;\n}\n.carousel-hover.right {\n right: 0;\n}\n\n.carousel-hover button {\n background-color: var(--md-accent-fg-color);\n border-radius: 50%;\n\n cursor: pointer;\n\n opacity: 0;\n transition: opacity 0.3s;\n}\n.carousel-hover button::after {\n display: block;\n height: 1.5rem;\n width: 1.5rem;\n\n background-color: white;\n content: \"\";\n mask-position: center;\n -webkit-mask-position: center;\n}\n.carousel-hover.left button::after {\n mask-image: var(--md-tabbed-icon--prev);\n -webkit-mask-image: var(--md-tabbed-icon--prev);\n}\n.carousel-hover.right button::after {\n mask-image: var(--md-tabbed-icon--next);\n -webkit-mask-image: var(--md-tabbed-icon--next);\n}\n\n/* hover \u5916\u5c42 */\n.carousel-hover:hover button {\n opacity: 0.5;\n transition: opacity 0.3s;\n}\n/* hover \u5185\u5c42 */\n.carousel-hover button:hover {\n opacity: 0.8;\n transition: opacity 0.3s;\n}\n\n.carousel-container a {\n width: 100%;\n height: 100%;\n\n flex-shrink: 0;\n}\n\n.carousel-container img {\n width: 100%;\n height: 100%;\n\n object-fit: cover;\n display: block;\n}\n\n.carousel-bottom {\n position: absolute;\n /* \u5bbd\u5ea6\u7b49\u540c\u4e8e\u5185\u5bb9\u5bbd\u5ea6 */\n width: 100%;\n padding: 20px;\n\n bottom: 0;\n\n display: flex;\n justify-content: center;\n /* \u6307\u793a\u5668\u95f4\u8ddd */\n gap: 10px;\n\n opacity: 0;\n transition: opacity 0.3s;\n}\n.carousel-bottom:hover {\n opacity: 0.8;\n transition: opacity 0.3s;\n}\n\n.carousel-bottom .indicator {\n height: 5px;\n width: 20px;\n\n background-color: var(--md-accent-fg-color);\n\n opacity: 0.5;\n cursor: pointer;\n}\n\n.carousel:hover .bottom .indicator {\n opacity: 1;\n}\n.carousel:hover .shift .btn {\n opacity: 1;\n}\n\n@media screen and (max-width: 600px) {\n .carousel {\n width: 100%;\n }\n\n .carousel-hover button {\n opacity: 1;\n }\n}\n
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_3","title":"\u56fe\u7247\u5706\u89d2\u5316","text":"extra.css\u91cc\u5f15\u5165\uff1a
img.img1 {\nborder-radius: 25px;\n\n}\n
\u5728md\u6587\u4ef6\u91cc\u4f7f\u7528\uff1a
{.img1}\n
\u6548\u679c\uff1a ","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_4","title":"\u5706\u89d2\u8fb9\u6846","text":"\u5706\u89d2\u8fb9\u6846\u5982\u4f55\u5b9e\u73b0
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#grid-cards","title":"\u5229\u7528\u5185\u7f6e\u7684grid cards","text":"<div class=\"grid cards\" markdown>\n\n- :simple-materialformkdocs:{ .lg .middle } __Mkdocs\u6559\u7a0b__\n\n ---\n\n - [\u5229\u7528Mkdocs\u90e8\u7f72\u9759\u6001\u7f51\u9875\u81f3GitHub pages](blog/Mkdocs/mkdocs1.md)\n - [Mkdocs\u90e8\u7f72\u914d\u7f6e\u8bf4\u660e(mkdocs.yml)](blog/Mkdocs/mkdocs2.md)\n - [\u5982\u4f55\u7ed9MKdocs\u6dfb\u52a0\u53cb\u94fe](blog/websitebeauty/linktech.md)\n - [\u7f51\u7ad9\u6dfb\u52a0Mkdocs\u535a\u5ba2](blog/Mkdocs/mkdocsblog.md)\n - [Blogger](blog/index.md)\n</div>\n
\u6548\u679c\uff1a
-
Mkdocs\u6559\u7a0b
\u793a\u4f8b\u6587\u5b57
","tags":["Mkdocs"]},{"location":"blog/websitebeauty/yuanjiaohua/#_5","title":"\u6309\u94ae","text":"[Send Email :fontawesome-solid-paper-plane:](mailto:<wangkewen821@gmail.com>){.md-button}\n
\u6548\u679c\uff1a Send Email ","tags":["Mkdocs"]},{"location":"develop/git/","title":"Git \u5b9e\u7528\u6280\u5de7","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u4ecb\u7ecd\u4e86Git\u7248\u672c\u63a7\u5236\u7cfb\u7edf\u7684\u6838\u5fc3\u64cd\u4f5c\u4e0e\u5b9e\u7528\u6280\u5de7\uff0c\u6db5\u76d6\u4ed3\u5e93\u521b\u5efa\u3001\u5206\u652f\u7ba1\u7406\u3001\u51b2\u7a81\u89e3\u51b3\u7b49\u57fa\u7840\u529f\u80fd\uff0c\u91cd\u70b9\u8bb2\u89e3\u4e86stash\u6682\u5b58\u3001rebase/merge\u7b56\u7565\u9009\u62e9\u3001cherry-pick\u7b49\u9ad8\u6548\u5de5\u4f5c\u65b9\u6cd5\u3002\u901a\u8fc7\u5177\u4f53\u4ee3\u7801\u793a\u4f8b\u548c\u573a\u666f\u8bf4\u660e\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u638c\u63e1\u63d0\u4ea4\u4fee\u6539\u3001\u64a4\u9500\u53d8\u66f4\u3001\u751f\u6210\u8865\u4e01\u7b49\u5173\u952e\u64cd\u4f5c\uff0c\u63d0\u5347\u56e2\u961f\u534f\u4f5c\u548c\u4ee3\u7801\u7ba1\u7406\u6548\u7387\u3002
Info
\u539f\u6587\u5730\u5740:Git \u5b9e\u7528\u6280\u5de7
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#git","title":"Git \u5b9e\u7528\u6280\u5de7","text":"","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#_1","title":"\u4e00\u3001\u57fa\u672c\u64cd\u4f5c","text":"","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#1-git","title":"1. \u65b0\u5efa git \u4ed3\u5e93","text":"git init\n
git init -b main\n\ngit config --global init.defaultBranch main\n\ngit branch -m main\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#2","title":"2. \u514b\u9686\u8fdc\u7a0b\u4ed3\u5e93","text":"git clone http://git.example.com/someone/test.git\n\ngit clone http://git.example.com/someone/test.git test\n\ngit clone http://git.example.com/someone/test.git --depth=1 -b main\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#3","title":"3. \u63d0\u4ea4\u4ee3\u7801","text":"git add -a\n\ngit add -u\n\ngit add .\n\ngit commit\n\ngit commit -m \"first commit\"\n\ngit commit -am \"first commit\"\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#4","title":"4. \u67e5\u770b\u4ed3\u5e93\u72b6\u6001","text":"git status\n
git status -s\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#5","title":"5. \u67e5\u770b\u63d0\u4ea4\u5386\u53f2","text":"https://git-scm.com/docs/git-log
git log\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#6","title":"6. \u65b0\u5efa\u5206\u652f","text":"git branch test\n\ngit checkout test\n\ngit checkout -b test\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#7","title":"7. \u5408\u5e76\u5206\u652f","text":"git checkout main\n\ngit merge test\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#8","title":"8. \u5220\u9664\u5206\u652f","text":"git branch -d test-not-need\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#9","title":"9. \u5408\u5e76\u51b2\u7a81","text":"\u5f53\u4e24\u4e2a\u5206\u652f\u90fd\u5bf9\u540c\u4e00\u884c\u8fdb\u884c\u4e86\u4fee\u6539\uff0cgit \u4fbf\u4f1a\u4ea7\u751f\u51b2\u7a81\uff0c\u5e76\u6807\u8bb0\u4e3a\u672a\u5408\u5e76
\u6b64\u65f6\u5c06\u6bcf\u4e2a\u6587\u4ef6\u8fdb\u884c\u4fee\u6539\uff0c\u786e\u8ba4\u6700\u540e\u7684\u5185\u5bb9\uff0c\u4f7f\u7528 git add \u65b9\u6cd5\u6807\u8bb0\u4e3a\u51b2\u7a81\u5df2\u89e3\u51b3
git add .\\A.txt\n
\u5728\u6240\u6709\u6587\u4ef6\u7684\u51b2\u7a81\u5747\u5df2\u89e3\u51b3\u540e\uff0c\u4f7f\u7528 commit \u63d0\u4ea4\u6b64\u6b21\u4fee\u6539\u3002 git merge --abort\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#10","title":"10. \u8fdc\u7a0b\u4ed3\u5e93","text":"git remote\n
\u9ed8\u8ba4\u5e94\u8be5\u4e3a\u7a7a
git remote add origin http://git.example.com/someone/test.git\n\ngit push origin main\n\ngit fetch --all\n\ngit fetch origin\n\ngit branch --set-upstream-to=origin/main main\n\ngit branch -u origin/main main\n
git push -u origin main\n\ngit pull\n\ngit pull origin main\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#_2","title":"\u4e8c\u3001\u5e38\u89c1\u6280\u5de7","text":"","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#1","title":"1. \u4e34\u65f6\u4fdd\u5b58\u6210\u679c","text":"git stash\n
git stash pop\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#2-rebasemerge","title":"2. \u5408\u5e76\u5206\u652f\u7075\u6d3b\u9009\u62e9 rebase/merge","text":"git merge test\n\ngit rebase test\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#3-cherry-pick","title":"3. cherry-pick","text":"\u9002\u5408 hotfix
git cherry-pick 12d654f1d701cbf7cd9abb98ce84eeef460a24a7\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#4_1","title":"4. \u4fee\u6539\u4e0a\u6b21\u63d0\u4ea4","text":"git commit --amend\n
\u4f1a\u540c\u65f6\u63d0\u4ea4\u6682\u5b58\u7684\u6587\u4ef6
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#5_1","title":"5. \u53d6\u6d88\u6587\u4ef6\u4fee\u6539","text":"git checkout .\\C.txt\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#6_1","title":"6. \u5f03\u7528\u63d0\u4ea4","text":"\u4fdd\u7559\u6587\u4ef6\ngit reset --soft 12d654f1d701cbf7cd9abb98ce84eeef460a24a7\n\n\u4e22\u5f03\u4fee\u6539\ngit reset --hard 12d654f1d701cbf7cd9abb98ce84eeef460a24a7\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/git/#7_1","title":"7. \u8865\u4e01\u6587\u4ef6","text":"git\ngit diff [file] > a.patch\ngit apply a.patch\n
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/lighthouse/","title":"\u5229\u7528Lighthouse\u6d4b\u8bd5\u7f51\u7ad9\u6027\u80fd","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
Lighthouse\u662f\u8c37\u6b4c\u5f00\u53d1\u7684\u7f51\u7ad9\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u53ef\u8bc4\u4f30\u9875\u9762\u52a0\u8f7d\u901f\u5ea6\u3001\u53ef\u8bbf\u95ee\u6027\u7b49\u5173\u952e\u6307\u6807\u3002\u901a\u8fc7\u6d4f\u89c8\u5668\u5f00\u53d1\u8005\u5de5\u5177\uff08F12\uff09\u5373\u53ef\u5feb\u901f\u542f\u52a8\u6d4b\u8bd5\uff0c\u9002\u7528\u4e8e\u5404\u7c7b\u7f51\u7ad9\u7684\u6027\u80fd\u4f18\u5316\u3002\u8be5\u5de5\u5177\u63d0\u4f9b\u76f4\u89c2\u7684\u8bc4\u5206\u548c\u8be6\u7ec6\u6539\u8fdb\u5efa\u8bae\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u5b9a\u4f4d\u6027\u80fd\u74f6\u9888\uff0c\u63d0\u5347\u7528\u6237\u4f53\u9a8c\u3002\u6d4b\u8bd5\u8fc7\u7a0b\u7b80\u5355\uff0c\u65e0\u9700\u989d\u5916\u5b89\u88c5\uff0c\u652f\u6301\u4e3b\u6d41Chromium\u5185\u6838\u6d4f\u89c8\u5668\u3002
\u53ef\u4ee5\u770b\u5230\u6211\u7684\u7f51\u7ad9\u6027\u80fd\u8fd8\u662f\u4e0d\u9519\u7684\uff0c\u5982\u679c\u4f60\u60f3\u6d4b\u8bd5\u81ea\u5df1\u7684\u7f51\u7ad9\u6027\u80fd\uff0c\u53ef\u4ee5\u5c1d\u8bd5\u4e00\u4e0b
\u6253\u5f00\u8c37\u6b4c\u6216\u8005Edge\u6d4f\u89c8\u5668\uff0c\u6309F12\uff0c\u5728\u53f3\u4fa7\u70b9\"\u2795\"\u627e\u5230Lighthouse,\u70b9\u51fb\u5206\u6790\u9875\u9762\u8f7d\u5373\u53ef
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/vercel/","title":"\u5982\u4f55\u5c06 github pages \u8fc1\u79fb\u5230 vercel \u4e0a\u6258\u7ba1","text":"\u5982\u4f55\u5c06 github pages \u8fc1\u79fb\u5230 vercel \u4e0a\u6258\u7ba1
","tags":["\u6280\u672f\u5206\u4eab"]},{"location":"develop/Markdown/MWeb/","title":"Markdown\u5199\u4f5c\u5e94\u7528\u63a8\u8350","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
MWeb Pro\u662f\u4e00\u6b3e\u4e13\u4e3amacOS\u8bbe\u8ba1\u7684\u4e13\u4e1aMarkdown\u5199\u4f5c\u4e0e\u7b14\u8bb0\u5e94\u7528\uff0c\u652f\u6301GFM\u8bed\u6cd5\u6269\u5c55\uff0c\u5305\u62ec\u8868\u683c\u3001LaTeX\u3001\u4ee3\u7801\u5757\u53ca\u591a\u79cd\u56fe\u8868\u5e93\u3002\u63d0\u4f9b\u4fbf\u6377\u7684\u56fe\u7247\u63d2\u5165\u3001\u8868\u683c\u7f16\u8f91\u548c\u6587\u6863\u5bfc\u51fa\u529f\u80fd\uff0c\u652f\u6301\u591a\u79cd\u683c\u5f0f\u8f93\u51fa\u53ca\u4e3b\u6d41\u535a\u5ba2\u5e73\u53f0\u53d1\u5e03\u3002\u5185\u7f6e\u5f3a\u5927\u7684\u7b14\u8bb0\u7ba1\u7406\u7cfb\u7edf\uff0c\u652f\u6301\u5206\u7c7b\u6811\u3001\u6807\u7b7e\u7ba1\u7406\u548c\u5feb\u901f\u641c\u7d22\uff0c\u9002\u5408\u4e2a\u4eba\u77e5\u8bc6\u6574\u7406\u4e0e\u9759\u6001\u7f51\u7ad9\u751f\u6210\u3002\u539f\u751f\u4f18\u5316\u754c\u9762\u7b80\u6d01\u9ad8\u6548\uff0c\u517c\u987e\u529f\u80fd\u5168\u9762\u4e0e\u6613\u7528\u6027\u3002
MWeb Pro \u662f\u4e00\u6b3e\u9002\u7528\u4e8emacOS\u7684\u4e13\u4e1aMarkdown\u5199\u4f5c\u3001\u7b14\u8bb0\u672c\u5e94\u7528\u8f6f\u4ef6\u3002\u559c\u6b22\u5199\u535a\u5ba2\u7684\u670b\u53cb\uff0c\u90a3\u4f60\u4e00\u5b9a\u4f1a\u9700\u8981 MWeb Pro \u8fd9\u6b3e\u8f6f\u4ef6\u3002\u4e3a\u60a8\u63d0\u4f9b\u6700\u4f73\u7684\u5199\u4f5c\u4f53\u9a8c\u3002
Markdown \u8bed\u6cd5\u652f\u6301\uff1a
\u4f7f\u7528 Github Flavored Markdown \u8bed\u6cd5\uff0c\u7b80\u79f0 GFM \u8bed\u6cd5\u3002\u652f\u6301\u8868\u683c\u3001TOC\u3001LaTeX\u3001\u4ee3\u7801\u5757\u3001\u4efb\u52a1\u5217\u8868\u3001\u811a\u6ce8\u7b49\u3002\u753b\u56fe\u5e93\u652f\u6301 mermaid, viz, echarts, plantuml, sequence, flow\u3002
\u8f85\u52a9\u529f\u80fd
\u652f\u6301\u622a\u56fe\u5e76\u7c98\u8d34\u3001\u590d\u5236\u5e76\u7c98\u8d34\u3001\u62d6\u62fd\u7b49\u65b9\u5f0f\u63d2\u5165\u56fe\u7247\u5e76\u76f4\u63a5\u663e\u793a\u5728\u7f16\u8f91\u5668\u5185\u3002\u5728\u517c\u5bb9 Markdown \u8bed\u6cd5\u7684\u60c5\u51b5\u4e0b\u652f\u6301\u8bbe\u7f6e\u56fe\u7247\u5bbd\u5ea6\u3002\u597d\u7528\u7684\u8868\u683c\u63d2\u5165\u548c LaTeX \u4e66\u5199\u8f85\u52a9\u3002
\u8f93\u51fa\u529f\u80fd
\u652f\u6301\u5bfc\u51fa\u4e3a\u56fe\u7247\u3001HTML\u3001Epub\u3001PDF\u3001RTF\u3001Docx\u3002\u652f\u6301\u53d1\u5e03\u5230 Wordpress\u3001\u5370\u8c61\u7b14\u8bb0\u3001Blogger\u3001Medium\u3001Tumblr\u7b49\u3002\u652f\u6301\u4e03\u725b\u4e91\u3001\u53c8\u62cd\u4e91\u7b49\u4ee5\u53ca\u81ea\u5b9a\u4e49\u7684\u56fe\u5e8a\u670d\u52a1\u3002
\u5f3a\u5927\u7684\u7b14\u8bb0\u529f\u80fd
\u5f3a\u5927\u7684\u6587\u6863\u5e93\u652f\u6301\u5206\u7c7b\u6811\u548c\u6807\u7b7e\u7ba1\u7406\u6587\u6863\uff0c\u6587\u6863\u53ef\u5f52\u7c7b\u4e8e\u591a\u4e2a\u5206\u7c7b\uff0c\u53ef\u4ee5\u628a\u5206\u7c7b\u6574\u4e2a\u5bfc\u51fa\u4e3a Epub\u3001PDF \u548c\u751f\u6210\u9759\u6001\u7f51\u7ad9\u3002\u975e\u5e38\u5408\u9002\u7528\u4e8e\u7b14\u8bb0\u3001\u4e2a\u4eba\u77e5\u8bc6\u6536\u96c6\u3001\u7ba1\u7406\u548c\u8f93\u51fa\u3002 \u5feb\u901f\u7b14\u8bb0\uff1a\u968f\u610f\u589e\u52a0\u7b14\u8bb0\u53ca\u56fe\u7247\u7b49\u7d20\u6750\uff0c\u652f\u6301\u4ee5\u5929\u4e3a\u5355\u4f4d\u628a\u589e\u52a0\u7684\u7d20\u6750\u7ec4\u5408\u5728\u4e00\u4e2a\u6587\u6863\u5185\uff0c\u65b9\u4fbf\u6574\u7406\u53ca\u8bb0\u5f55\u5386\u53f2\u6536\u96c6\u60c5\u51b5\u3002\u5feb\u901f\u641c\u7d22\uff1a\u76ee\u524d\u5df2\u652f\u6301\u5168\u5c40\u5feb\u6377\u952e\u8c03\u51fa\u641c\u7d22\u3002
\u4ee5\u4e0b\u6458\u81eaMWeb\u5173\u4e8eMarkdown\u7684\u4ecb\u7ecd
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mweb","title":"\u6b22\u8fce\u4f7f\u7528 MWeb","text":"MWeb \u662f\u4e13\u4e1a\u7684 Markdown \u5199\u4f5c\u3001\u8bb0\u7b14\u8bb0\u3001\u9759\u6001\u535a\u5ba2\u751f\u6210\u8f6f\u4ef6\uff0c\u76ee\u524d\u5df2\u652f\u6301 Mac\uff0ciPad \u548c iPhone\u3002MWeb \u6709\u4ee5\u4e0b\u7279\u8272\uff1a
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_1","title":"\u8f6f\u4ef6\u672c\u8eab\uff1a","text":" - \u4f7f\u7528\u539f\u751f\u7684 macOS \u6280\u672f\u6253\u9020\uff0c\u8ffd\u6c42\u4e0e\u7cfb\u7edf\u7684\u5b8c\u7f8e\u7ed3\u5408\u3002
- \u539f\u5219\u4e0a\uff0c\u9996\u5148\u662f\u8ffd\u6c42\u754c\u9762\u7b80\u6d01\u548c\u9ad8\u6027\u80fd\uff0c\u7136\u540e\u624d\u662f\u5f3a\u5927\u6613\u7528\uff0c\u529f\u80fd\u5168\u9762\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown","title":"Markdown \u8bed\u6cd5\uff1a","text":" - \u4f7f\u7528 GitHub Flavored Markdown \u8bed\u6cd5\uff0c\u7b80\u79f0 GFM \u8bed\u6cd5\u3002
- \u652f\u6301\u8868\u683c\u3001TOC\u3001LaTeX\u3001\u4ee3\u7801\u5757\u3001\u4efb\u52a1\u5217\u8868\u3001\u811a\u6ce8\u7b49\u3002
- \u753b\u56fe\u5e93\u652f\u6301 mermaid, viz, ECharts, PlantUML, Sequence, Flow\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown_1","title":"Markdown \u8f85\u52a9\uff1a","text":" - \u652f\u6301\u622a\u56fe\u5e76\u7c98\u8d34\u3001\u590d\u5236\u5e76\u7c98\u8d34\u3001\u62d6\u62fd\u7b49\u65b9\u5f0f\u63d2\u5165\u56fe\u7247\u5e76\u76f4\u63a5\u663e\u793a\u5728\u7f16\u8f91\u5668\u5185\u3002
- \u5728\u517c\u5bb9 Markdown \u8bed\u6cd5\u7684\u60c5\u51b5\u4e0b\u652f\u6301\u8bbe\u7f6e\u56fe\u7247\u5bbd\u5ea6\u3002
- \u597d\u7528\u7684\u8868\u683c\u63d2\u5165\u548c LaTeX \u4e66\u5199\u8f85\u52a9\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown_2","title":"Markdown \u8f93\u51fa\uff1a","text":" - \u652f\u6301\u5bfc\u51fa\u4e3a\u56fe\u7247\u3001HTML\u3001Epub\u3001PDF\u3001RTF\u3001Docx\u3002
- \u652f\u6301\u53d1\u5e03\u5230 WordPress\u3001\u652f\u6301 Metaweblog API \u534f\u8bae\u7684\u670d\u52a1\u3001Wordpress.com\u3001\u5370\u8c61\u7b14\u8bb0\uff08Evernote\uff09\u3001Blogger\u3001Medium\u3001Tumblr\u3001\u8bed\u96c0\u3001Ghost\u3001\u5c11\u6570\u6d3e Matrix\u3002
- \u56fe\u7247\u4e0a\u4f20\u670d\u52a1\uff08\u56fe\u5e8a\uff09\u652f\u6301 Imgur\u3001\u4e03\u725b\u4e91\u3001\u53c8\u62cd\u4e91\u3001\u817e\u8baf\u4e91 COS\u3001\u963f\u91cc\u4e91 OSS\u3001SM.MS\u548c\u81ea\u5b9a\u4e49\u7684\u56fe\u5e8a\u670d\u52a1\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown_3","title":"Markdown \u7b14\u8bb0\uff1a","text":" - \u5f3a\u5927\u7684\u6587\u6863\u5e93\u652f\u6301\u5206\u7c7b\u6811\u548c\u6807\u7b7e\u7ba1\u7406\u6587\u6863\uff0c\u6587\u6863\u53ef\u5f52\u7c7b\u4e8e\u591a\u4e2a\u5206\u7c7b\uff0c\u53ef\u4ee5\u628a\u5206\u7c7b\u6574\u4e2a\u5bfc\u51fa\u4e3a Epub\u3001PDF \u548c\u751f\u6210\u9759\u6001\u7f51\u7ad9\u3002\u975e\u5e38\u5408\u9002\u7528\u4e8e\u7b14\u8bb0\u3001\u4e2a\u4eba\u77e5\u8bc6\u6536\u96c6\u3001\u7ba1\u7406\u548c\u8f93\u51fa\u3002
- \u5feb\u901f\u7b14\u8bb0\uff1a\u968f\u610f\u589e\u52a0\u7b14\u8bb0\u53ca\u56fe\u7247\u7b49\u7d20\u6750\uff0c\u652f\u6301\u4ee5\u5929\u4e3a\u5355\u4f4d\u628a\u589e\u52a0\u7684\u7d20\u6750\u7ec4\u5408\u5728\u4e00\u4e2a\u6587\u6863\u5185\uff0c\u65b9\u4fbf\u6574\u7406\u53ca\u8bb0\u5f55\u5386\u53f2\u6536\u96c6\u60c5\u51b5\u3002
- \u5feb\u901f\u641c\u7d22\uff1a\u76ee\u524d\u5df2\u652f\u6301\u5168\u5c40\u5feb\u6377\u952e\u8c03\u51fa\u641c\u7d22\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#markdown_4","title":"\u5916\u90e8 Markdown \u6587\u6863\uff1a","text":" - \u5916\u90e8 Markdown \u6587\u6863\u4f7f\u7528\u5916\u90e8\u6a21\u5f0f\u7ba1\u7406\u3002\u5916\u90e8\u6a21\u5f0f\u4f7f\u7528\u76ee\u5f55\u6811\u7684\u65b9\u5f0f\u7f16\u8f91\u548c\u7ba1\u7406\u4f60\u7684 Markdown \u6587\u6863\uff0c\u8fd8\u80fd\u5f88\u597d\u7684\u652f\u6301 GitBook\u3001Jekyll\u3001Hexo \u7b49\u7b49\u7f16\u8f91\u548c\u56fe\u7247\u63d2\u5165\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mweb_1","title":"MWeb \u6587\u6863\uff1a","text":"\u5982\u679c\u8981\u66f4\u8be6\u7ec6\u4e86\u89e3 MWeb\uff0c\u5efa\u8bae\u4f60\u4e00\u5b9a\u8981\u53bb\u770b\u4e00\u4e0b\u5b98\u7f51\u7684\u5e2e\u52a9\u6587\u6863\uff0c\u7f51\u5740\u4e3a\uff1ahttps://zh.mweb.im/help.html\u3002\u6211\u4eec\u5efa\u8bae\u5728\u4f7f\u7528\u6587\u6863\u5e93\u4e4b\u524d\uff0c\u4e00\u5b9a\u8981\u9605\u8bfb\u4e00\u4e0b MWeb \u6587\u6863\u5e93\u8be6\u7ec6\u4ecb\u7ecd \u8fd9\u7bc7\u6587\u7ae0\uff0c\u4ee5\u4fbf\u66f4\u597d\u7684\u4f7f\u7528\u6587\u6863\u5e93\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mweb_2","title":"\u5e2e\u52a9\u6211\u4eec\u6539\u8fdb MWeb","text":"\u5982\u679c\u4f60\u559c\u6b22 MWeb\uff0c\u60f3\u8ba9\u5b83\u53d8\u5f97\u66f4\u597d\uff0c\u4f60\u53ef\u4ee5\uff1a
- \u63a8\u8350 MWeb\uff0c\u8ba9\u66f4\u591a\u7684\u4eba\u77e5\u9053\u3002
- \u7ed9\u6211\u4eec\u53d1\u53cd\u9988\u548c\u5efa\u8bae\uff1acoderforart+2333@gmail.com
- \u5728 Mac App Store \u4e0a\u8bc4\u4ef7 \uff08\u5982\u679c\u662f\u5728 MAS \u4e0a\u8d2d\u4e70\u7684\u8bdd\uff09\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#gfm-mweb","title":"GFM \u8bed\u6cd5\u7b80\u4ecb\u548c MWeb \u6240\u652f\u6301\u7684\u6269\u5c55\u8bed\u6cd5","text":"","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_2","title":"\u56de\u8f66\u8f6c\u4e3a\u6362\u884c","text":"\u5b98\u65b9\u7684\u8bed\u6cd5\u89c4\u5b9a\u7ed3\u5c3e\u52a0 2 \u4e2a\u4ee5\u4e0a\u7a7a\u683c\u52a0\u6362\u884c\u624d\u4f1a\u8f6c\u6210\u6362\u884c\uff0c\u4e5f\u5c31\u662f <br />
\u6807\u7b7e\u3002MWeb \u4e2d\u6709\u4e2a\u9009\u9879\u53ef\u4ee5\u76f4\u63a5\u628a\u6362\u884c\u8f6c\u6210 <br />
\uff0c\u4e0d\u7528\u52a0\u4e0a 2 \u4e2a\u4ee5\u4e0a\u7a7a\u683c\uff0c\u8fd9\u4e2a\u9009\u9879\u9ed8\u8ba4\u662f\u5f00\u542f\u7684\u3002\u5982\u679c\u8981\u5173\u95ed\uff0c\u8bf7\u5728\u8bbe\u7f6e\u9875\u9762\u5173\u95ed\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#task-lists","title":"\u4efb\u52a1\u5217\u8868\uff08Task lists\uff09","text":"Markdown \u8bed\u6cd5\uff1a
- [ ] \u4efb\u52a1\u4e00 \u672a\u505a\u4efb\u52a1 `- + \u7a7a\u683c + [ ]`\n- [x] \u4efb\u52a1\u4e8c \u5df2\u505a\u4efb\u52a1 `- + \u7a7a\u683c + [x]`\n
\u6548\u679c\u5982\u4e0b\uff1a
- \u4efb\u52a1\u4e00 \u672a\u505a\u4efb\u52a1
- + \u7a7a\u683c + [ ]
- \u4efb\u52a1\u4e8c \u5df2\u505a\u4efb\u52a1
- + \u7a7a\u683c + [x]
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_3","title":"\u56fe\u7247\u5927\u5c0f\u53ca\u5bf9\u9f50","text":"\u5b98\u65b9\u548c GFM \u90fd\u4e0d\u652f\u6301\u56fe\u7247\u5927\u5c0f\u8bbe\u7f6e\uff0cMWeb \u5f15\u5165\u7684\u7279\u522b\u7684\u8bed\u6cd5\u6765\u8bbe\u7f6e\u56fe\u7247\u5bbd\u5ea6\u3002\u5982\uff1a
\u8fd9\u6837\u8868\u793a\u8bbe\u7f6e\u56fe\u7247\u5bbd\u5ea6\u4e3a 450\u3002\u5176\u4e2d -w450 \u4e3a\u8bbe\u7f6e\u8bed\u6cd5\uff0c\u751f\u6210 HTML \u65f6\u4f1a\u81ea\u52a8\u79fb\u9664\u3002w \u8868\u793a\u8bbe\u7f6e\u5bbd\u5ea6\u3002 \u53ef\u4ee5\u770b\u51fa\uff0cMWeb \u5f15\u5165\u7684\u8bed\u6cd5\u7684\u7279\u70b9\u662f\u517c\u5bb9\u539f\u6765\u7684\u8bed\u6cd5\u548c\u4ec5\u652f\u6301\u8bbe\u7f6e\u5bbd\u5ea6\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_4","title":"\u591a\u884c\u6216\u8005\u4e00\u6bb5\u4ee3\u7801","text":"Markdown \u8bed\u6cd5\uff1a
```js\nfunction fancyAlert(arg) {\n if(arg) {\n $.facebox({div:'#foo'})\n }\n\n}\n```\n
\u6548\u679c\u5982\u4e0b\uff1a
function fancyAlert(arg) {\n if(arg) {\n $.facebox({div:'#foo'})\n }\n\n}\n
\u8fd9\u4e2a\u8bed\u6cd5\u76ee\u524d\u5728 MWeb \u4e2d\u4f7f\u7528\uff0c\u5fc5\u987b\u524d\u540e\u7a7a\u4e00\u884c\uff0c\u624d\u4f1a\u6b63\u786e\u89e3\u6790\u3002\u6211\u89c9\u5f97\uff0c\u5728\u5199 Markdown \u6587\u6863\u8fc7\u7a0b\u4e2d\uff0c\u8fd0\u7528\u7a7a\u884c\u5f88\u6709\u5fc5\u8981\uff0c\u57fa\u672c\u4e0a\uff0c\u5757\u7ea7\u5143\u7d20\uff08\u6807\u9898\u3001\u5217\u8868\u3001\u5f15\u7528\u3001\u4ee3\u7801\u5757\u3001\u8868\u683c\u3001\u6bb5\u843d\u7b49\uff09\uff0c\u90fd\u5efa\u8bae\u524d\u540e\u7a7a\u4e00\u884c\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_5","title":"\u8868\u683c","text":"Markdown \u8bed\u6cd5\uff1a
\u7b2c\u4e00\u683c\u8868\u5934 | \u7b2c\u4e8c\u683c\u8868\u5934\n--------- | -------------\n\u5185\u5bb9\u5355\u5143\u683c \u7b2c\u4e00\u5217\u7b2c\u4e00\u683c | \u5185\u5bb9\u5355\u5143\u683c\u7b2c\u4e8c\u5217\u7b2c\u4e00\u683c\n\u5185\u5bb9\u5355\u5143\u683c \u7b2c\u4e00\u5217\u7b2c\u4e8c\u683c \u591a\u52a0\u6587\u5b57 | \u5185\u5bb9\u5355\u5143\u683c\u7b2c\u4e8c\u5217\u7b2c\u4e8c\u683c\n
\u6548\u679c\u5982\u4e0b\uff1a
\u7b2c\u4e00\u683c\u8868\u5934 \u7b2c\u4e8c\u683c\u8868\u5934 \u5185\u5bb9\u5355\u5143\u683c \u7b2c\u4e00\u5217\u7b2c\u4e00\u683c \u5185\u5bb9\u5355\u5143\u683c\u7b2c\u4e8c\u5217\u7b2c\u4e00\u683c \u5185\u5bb9\u5355\u5143\u683c \u7b2c\u4e00\u5217\u7b2c\u4e8c\u683c \u591a\u52a0\u6587\u5b57 \u5185\u5bb9\u5355\u5143\u683c\u7b2c\u4e8c\u5217\u7b2c\u4e8c\u683c","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_6","title":"\u5220\u9664\u7ebf","text":"Markdown \u8bed\u6cd5\uff1a
\u52a0\u5220\u9664\u7ebf\u50cf\u8fd9\u6837\u7528\uff1a ~~\u5220\u9664\u8fd9\u4e9b~~\n
\u6548\u679c\u5982\u4e0b\uff1a
\u52a0\u5220\u9664\u7ebf\u50cf\u8fd9\u6837\u7528\uff1a \u5220\u9664\u8fd9\u4e9b
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#latex","title":"LaTeX","text":"Markdown \u8bed\u6cd5\uff1a
\u5757\u7ea7\u516c\u5f0f\uff1a\n```math\nx = \\dfrac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}\n```\n\n\u884c\u5185\u516c\u5f0f\uff1a ``\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N``\n
\u6548\u679c\u5982\u4e0b\uff08\u5728\u8bbe\u7f6e\u9875\u9762\u4e2d\u542f\u7528 LaTeX \u624d\u4f1a\u770b\u5230\u6548\u679c\uff09\uff1a
\u5757\u7ea7\u516c\u5f0f\uff1a
x = \\dfrac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}\n
\u884c\u5185\u516c\u5f0f\uff1a \\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mweb_3","title":"MWeb \u753b\u56fe","text":"","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#mermaid","title":"mermaid","text":"mermaid \u662f\u6bd4\u8f83\u6d41\u884c\u7684\u753b\u56fe\u5e93\uff0c\u5b83\u652f\u6301\u6d41\u7a0b\u56fe\u3001\u987a\u5e8f\u56fe\u548c\u7518\u7279\u56fe\uff0c\u5b83\u7684\u5b98\u7f51\u4e3a\uff1ahttps://mermaidjs.github.io/ \uff0c\u5728 MWeb \u4e2d\u4f7f\u7528 mermaid \u7684\u8bed\u6cd5\u5c31\u662f\u58f0\u660e\u4ee3\u7801\u5757\u7684\u8bed\u8a00\u4e3a mermaid\uff0c\u4ee3\u7801\u5757\u4e2d\u518d\u5199\u4e0a mermaid \u7684\u753b\u56fe\u8bed\u6cd5\u5373\u53ef\uff0c\u4f60\u53ef\u4ee5\u628a\u4e0b\u9762\u7684\u8bed\u6cd5\u590d\u5236\u5230 MWeb \u4e2d\u67e5\u770b\u6548\u679c\u3002
```mermaid\nsequenceDiagram\n participant Alice\n participant Bob\n Alice->John: Hello John, how are you?\n loop Healthcheck\n John->John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail...\n John-->Alice: Great!\n John->Bob: How about you?\n Bob-->John: Jolly good!\n```\n
\u6548\u679c\u5982\u4e0b\uff1a
sequenceDiagram\n participant Alice\n participant Bob\n Alice->John: Hello John, how are you?\n loop Healthcheck\n John->John: Fight against hypochondria\n end\n Note right of John: Rational thoughts <br/>prevail...\n John-->Alice: Great!\n John->Bob: How about you?\n Bob-->John: Jolly good!
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#echarts","title":"echarts","text":"echarts \u662f\u767e\u5ea6\u51fa\u54c1\u7684 js \u753b\u56fe\u5e93\uff0c\u5b83\u7684\u7f51\u5740\u4e3a\uff1ahttps://echarts.apache.org/zh/index.html\uff0c\u529f\u80fd\u975e\u5e38\u5f3a\u5927\uff0cMWeb \u652f\u6301 echarts \u7684\u4e00\u4e9b\u57fa\u672c\u7684\u7528\u6cd5\uff0c\u592a\u9ad8\u7ea7\u7684\u4e0d\u652f\u6301\u3002\u4f60\u53ef\u4ee5\u5c06\u4ee5\u4e0b\u8bed\u6cd5\u590d\u5236\u5230 MWeb \u4e2d\u8fdb\u884c\u5c1d\u8bd5\u3002\u4f60\u4e5f\u53ef\u4ee5\u53bb https://echarts.apache.org/examples/zh/index.html \u8fd9\u4e2a\u7f51\u5740\u67e5\u770b\u4e00\u4e9b\u4f8b\u5b50\uff0c\u8981\u6ce8\u610f\u7684\u662f MWeb \u53ea\u80fd\u89e3\u6790 option = {}
\u8fd9\u79cd\u7b80\u5355\u7684\uff0c\u4e0d\u8fc7\u5e94\u8be5\u662f\u8db3\u591f\u4f7f\u7528\u4e86\u3002
```echarts\noption = {\n xAxis: {\n type: 'category',\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n },\n yAxis: {\n type: 'value'\n },\n series: [{\n data: [820, 932, 901, 934, 1290, 1330, 1320],\n type: 'line'\n }]\n};\n```\n
\u6548\u679c\u5982\u4e0b\uff1a
option = {\n xAxis: {\n type: 'category',\n data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n },\n yAxis: {\n type: 'value'\n },\n series: [{\n data: [820, 932, 901, 934, 1290, 1330, 1320],\n type: 'line'\n }]\n};\n
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#footnote","title":"\u811a\u6ce8\uff08Footnote\uff09","text":"Markdown \u8bed\u6cd5\uff1a
\u8fd9\u662f\u4e00\u4e2a\u811a\u6ce8\uff1a[^1]\n
\u6548\u679c\u5982\u4e0b\uff1a
\u8fd9\u662f\u4e00\u4e2a\u811a\u6ce8\uff1a1
","tags":["Markdown"]},{"location":"develop/Markdown/MWeb/#_7","title":"\u6ce8\u91ca\u548c\u9605\u8bfb\u66f4\u591a","text":"\u6ce8 \u9605\u8bfb\u66f4\u591a\u7684\u529f\u80fd\u53ea\u7528\u5728\u6587\u6863\u5e93\u751f\u6210\u9759\u6001\u7f51\u7ad9\u6216\u53d1\u5e03\u5230 Wordpress \u535a\u5ba2\u65f6\uff0c\u63d2\u5165\u65f6\u6ce8\u610f\u8981\u540e\u7a7a\u4e00\u884c\u3002
-
\u8fd9\u91cc\u662f\u811a\u6ce8\u4fe1\u606f\u00a0\u21a9
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/","title":"Markdown\u8bed\u6cd5\u5b66\u4e60 \u7cbe\u7b80\u7248","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
Markdown\u662f\u4e00\u79cd\u8f7b\u91cf\u7ea7\u6807\u8bb0\u8bed\u8a00\uff0c\u652f\u6301\u7eaf\u6587\u672c\u7f16\u5199\u5e76\u8f6c\u6362\u4e3a\u591a\u79cd\u683c\u5f0f\uff08\u5982HTML/PDF\uff09\u3002\u672c\u6587\u4ecb\u7ecd\u4e86\u5176\u6838\u5fc3\u8bed\u6cd5\uff1a\u6807\u9898\u5206\u7ea7\u3001\u6587\u672c\u6837\u5f0f\uff08\u659c\u4f53/\u7c97\u4f53\uff09\u3001\u5217\u8868\uff08\u6709\u5e8f/\u65e0\u5e8f\uff09\u3001\u8868\u683c\u3001\u94fe\u63a5/\u56fe\u7247\u63d2\u5165\u3001\u4ee3\u7801\u5757\u53ca\u7279\u6b8a\u5b57\u7b26\u5904\u7406\u3002\u540c\u65f6\u63a8\u8350\u4e86\u5404\u5e73\u53f0\u5e38\u7528\u7f16\u8f91\u5de5\u5177\uff08\u5982MacDown\u3001Dillinger\uff09\uff0c\u9002\u7528\u4e8e\u5feb\u901f\u521b\u5efa\u7ed3\u6784\u5316\u6587\u6863\u3002\u8bed\u6cd5\u7b80\u6d01\u6613\u5b66\uff0c\u9002\u5408\u6280\u672f\u6587\u6863\u7f16\u5199\u4e0e\u65e5\u5e38\u7b14\u8bb0\u6574\u7406\u3002
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#markdown","title":"Markdown\u8bed\u6cd5\u5b66\u4e60 \u7cbe\u7b80\u7248","text":"\u6587\u7ae0\u5f00\u5934
\u4ecb\u7ecd\u4e00\u4e0bMarkdown\uff1a Markdown \u662f\u4e00\u79cd\u8f7b\u91cf\u7ea7\u6807\u8bb0\u8bed\u8a00\uff0c\u5b83\u5141\u8bb8\u4eba\u4eec\u4f7f\u7528\u6613\u8bfb\u6613\u5199\u7684\u7eaf\u6587\u672c\u683c\u5f0f\u7f16\u5199\u6587\u6863\u3002Markdown \u8bed\u8a00\u5728 2004 \u7531\u7ea6\u7ff0\u00b7\u683c\u9c81\u4f2f\uff08\u82f1\u8bed\uff1aJohn Gruber\uff09\u521b\u5efa\u3002 Markdown \u7f16\u5199\u7684\u6587\u6863\u53ef\u4ee5\u5bfc\u51fa HTML \u3001Word\u3001\u56fe\u50cf\u3001PDF\u3001Epub \u7b49\u591a\u79cd\u683c\u5f0f\u7684\u6587\u6863\u3002Markdown \u7f16\u5199\u7684\u6587\u6863\u540e\u7f00\u4e3a .md, .markdown\u3002
\u6b64\u7b14\u8bb0\u5b66\u4e60\u6458\u6284\u81eaMarkdown\u8bed\u6cd5\u5b66\u4e60 \u7cbe\u7b80\u7248\uff0c\u5b66\u4e60\u501f\u9274\u5927\u4f6c\u4e4b\u7ecf\u9a8c\uff08Ctrl C+V\uff09
\u4e5f\u63a8\u8350\u770b:Markdown\u4e2d\u6587\u6307\u5357
\u4e00\u4e9bMarkdown\u6587\u6863\u521b\u4f5c\u5de5\u5177\uff1a
- Mac: MacDown, iA Writer \u6216 Marked 2
- iOS / Android: iA Writer
- Windows: ghostwriter \u6216 Markdown Monster
- Linux: ReText \u6216 ghostwriter
- Web: Dillinger \u6216 StackEdit
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_1","title":"\u6700\u5e38\u7528","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_2","title":"\u5206\u7ea7\u6807\u9898","text":"# \u4e00\u7ea7\u6807\u9898 (\u6ce8\u610f\u6709\u7a7a\u683c)\n## \u4e8c\u7ea7\u6807\u9898\n### \u4e09\u7ea7\u6807\u9898\n#### \u56db\u7ea7\u6807\u9898\n##### \u4e94\u7ea7\u6807\u9898\n###### \u516d\u7ea7\u6807\u9898 <!--\u6700\u591a6\u7ea7\u6807\u9898-->\n
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_3","title":"\u76ee\u5f55","text":"\u5728\u4efb\u610f\u4f4d\u7f6e\u63d2\u5165 [toc]
\u663e\u793a\u5168\u6587\u76ee\u5f55\u7ed3\u6784
\u793a\u4f8b\u89c1\u6587\u7ae0\u5f00\u5934\uff08\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u5f00\u5934\u67e5\u770b\u76ee\u5f55\uff09
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_4","title":"\u659c\u4f53/\u7c97\u4f53/\u5220\u9664\u7ebf/\u4e0b\u5212\u7ebf/\u80cc\u666f\u9ad8\u4eae","text":"*\u659c\u4f53* _\u659c\u4f53_\n**\u7c97\u4f53** __\u7c97\u4f53__\n***\u52a0\u7c97\u659c\u4f53*** ___\u52a0\u7c97\u659c\u4f53___\n~~\u5220\u9664\u7ebf~~\n<u>\u4e0b\u5212\u7ebf</u>\n==\u80cc\u666f\u9ad8\u4eae==\n
\u659c\u4f53 \u659c\u4f53
\u7c97\u4f53 \u7c97\u4f53
\u52a0\u7c97\u659c\u4f53 \u52a0\u7c97\u659c\u4f53
\u5220\u9664\u7ebf
\u4e0b\u5212\u7ebf
\u80cc\u666f\u9ad8\u4eae
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_5","title":"\u65e0\u5e8f\u5217\u8868/\u6709\u5e8f\u5217\u8868","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_6","title":"\u65e0\u5e8f\u5217\u8868","text":"* \u65e0\u5e8f\u5217\u8868\u9879 \u4e00\n+ \u65e0\u5e8f\u5217\u8868\u9879 \u4e8c\n- \u65e0\u5e8f\u5217\u8868\u9879 \u4e09\n
- \u65e0\u5e8f\u5217\u8868\u9879 \u4e00
- \u65e0\u5e8f\u5217\u8868\u9879 \u4e8c
- \u65e0\u5e8f\u5217\u8868\u9879 \u4e09
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_7","title":"\u591a\u7ea7\u65e0\u5e8f\u5217\u8868","text":"* \u4eca\u5929`* + \u7a7a\u683c\u952e`\n* \u660e\u5929\n * \u5b66\u4e60 `TAB(\u62164\u4e2a\u7a7a\u683c) + * + \u7a7a\u683c\u952e`\n * \u8d2d\u7269\n * \u9762\u5305\n * \u725b\u5976\n* \u540e\u5929\n
- \u4eca\u5929
* + \u7a7a\u683c\u952e
- \u660e\u5929
- \u5b66\u4e60
TAB(\u62164\u4e2a\u7a7a\u683c) + * + \u7a7a\u683c\u952e
- \u8d2d\u7269
- \u9762\u5305
- \u725b\u5976
- \u540e\u5929
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_8","title":"\u6709\u5e8f\u5217\u8868/\u591a\u7ea7\u6709\u5e8f\u5217\u8868","text":"1. \u6709\u5e8f\u5217\u8868\u9879 \u4e00 `\u6570\u5b57 + . + \u7a7a\u683c\u952e`\n2. \u6709\u5e8f\u5217\u8868\u9879 \u4e8c\n 1. \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(1) `TAB(\u62164\u4e2a\u7a7a\u683c) + \u6570\u5b57 + . + \u7a7a\u683c\u952e`\n 2. \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(2)\n 1. \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(2).1\n3. \u6709\u5e8f\u5217\u8868\u9879 \u4e09\n
- \u6709\u5e8f\u5217\u8868\u9879 \u4e00
\u6570\u5b57 + . + \u7a7a\u683c\u952e
- \u6709\u5e8f\u5217\u8868\u9879 \u4e8c
- \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(1)
TAB(\u62164\u4e2a\u7a7a\u683c) + \u6570\u5b57 + . + \u7a7a\u683c\u952e
- \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(2)
- \u6709\u5e8f\u5217\u8868\u9879 \u4e8c(2).1
- \u6709\u5e8f\u5217\u8868\u9879 \u4e09
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_9","title":"\u4efb\u52a1\u5217\u8868","text":"- [ ] \u4efb\u52a1\u4e00 \u672a\u505a\u4efb\u52a1 `- + \u7a7a\u683c + [ ]`\n- [x] \u4efb\u52a1\u4e8c \u5df2\u505a\u4efb\u52a1 `- + \u7a7a\u683c + [x]`\n
- \u4efb\u52a1\u4e00 \u672a\u505a\u4efb\u52a1
- + \u7a7a\u683c + [ ]
- \u4efb\u52a1\u4e8c \u5df2\u505a\u4efb\u52a1
- + \u7a7a\u683c + [x]
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_10","title":"\u8868\u683c","text":"\u7b2c\u4e00\u884c\u4e3a\u8868\u5934\uff0c\u7b2c\u4e8c\u884c\u5206\u9694\u8868\u5934\u548c\u4e3b\u4f53\u90e8\u5206(\u5982\u679c\u8868\u683c\u65e0\u6cd5\u663e\u793a\u53ef\u4ee5\u5c1d\u8bd5\u628a\u7b2c\u4e8c\u884c\u7684 -
\u53d8\u4e3a ---
)\uff0c\u53ef\u4ee5\u6307\u5b9a\u6240\u5728\u5217\u7684\u5bf9\u9f50\u65b9\u5f0f\uff0c\u7b2c\u4e09\u884c\u5f00\u59cb\u6bcf\u4e00\u884c\u4e3a\u4e00\u4e2a\u8868\u683c\u884c\u3002\u5217\u4e0e\u5217\u4e4b\u95f4\u7528 |
\u9694\u5f00\u3002(\u6ce8\uff1a\u539f\u751f\u65b9\u5f0f\u7684\u8868\u683c\u6bcf\u4e00\u884c\u7684\u4e24\u8fb9\u4e5f\u8981\u6709 |
)
\u5bf9\u9f50\u65b9\u5f0f :- \u5de6\u5bf9\u9f50
- \u4e2d\u5fc3\u5bf9\u9f50
-: \u53f3\u5bf9\u9f50
\u7b2c\u4e00\u5217|\u7b2c\u4e8c\u5217|\u7b2c\u4e09\u5217\n:-|-|-:\na11|a12|a13\na21|a22|a33\na31|a32|a33\n
\u8868\u5934\u4e00 \u8868\u5934\u4e8c \u8868\u5934\u4e09 a11 a12 a13 a21 a22 a33 a31 a32 a33","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_11","title":"\u8d85\u94fe\u63a5","text":"[ ]\u91cc\u5199\u94fe\u63a5\u6587\u5b57\uff0c( )\u91cc\u5199\u94fe\u63a5\u5730\u5740, ( )\u4e2d\u7684\" \"\u4e2d\u53ef\u4ee5\u4e3a\u94fe\u63a5\u6307\u5b9atitle\u5c5e\u6027\uff0ctitle\u5c5e\u6027\u53ef\u52a0\u53ef\u4e0d\u52a0\u3002title\u5c5e\u6027\u7684\u6548\u679c\u662f\u9f20\u6807\u60ac\u505c\u5728\u94fe\u63a5\u4e0a\u4f1a\u51fa\u73b0\u6307\u5b9a\u7684 title\u6587\u5b57\uff0c\u94fe\u63a5\u5730\u5740\u4e0etitle\u524d\u6709\u4e00\u4e2a\u7a7a\u683c\u3002
\u53f3\u8fb9\u662f\u94fe\u63a5[\u94fe\u63a5\u6587\u5b57](\u94fe\u63a5 \"title\")\n
\u53f3\u8fb9\u662f\u94fe\u63a5[GitHub](https://github.com \"GitHub\")\n
\u53f3\u8fb9\u662f\u94fe\u63a5GitHub
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_12","title":"\u63d2\u5165\u56fe\u7247","text":"\u683c\u5f0f\uff1a!
[\u56fe\u7247\u6807\u9898]
(\u56fe\u7247\u5730\u5740 \"\u56fe\u7247Title\u201d)
\u5176\u4e2d\u56fe\u7247\u6807\u9898
\u4f1a\u88ab\u67d0\u4e9b\u7f51\u7ad9\u548c\u7f16\u8f91\u5668\u663e\u793a\u5728\u56fe\u7247\u4e0b\u65b9
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_13","title":"\u63d2\u5165\u89c6\u9891","text":"\u683c\u5f0f\uff1a
<iframe height= width= src=\"\u94fe\u63a5\">\n
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_14","title":"\u4ee3\u7801\u5757","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_15","title":"\u884c\u5185\u4ee3\u7801\u5757","text":"\u7528\u201c ` \u201d\u5de6\u53f3\u5305\u88f9\u4ee3\u7801
`printf()` \u51fd\u6570 \n
\u663e\u793a\u4e3aprintf()
\u51fd\u6570","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_16","title":"\u591a\u884c\u4ee3\u7801\u5757","text":"\u7528\u201c ``` \u201d\u4e0a\u4e0b\u5305\u88f9\u4ee3\u7801\uff0c\u5728\u7b2c\u4e00\u4e2a\u201c ``` \u201d\u540e\u6dfb\u52a0\u8bed\u8a00\u540d\u79f0\u83b7\u5f97\u4e0d\u540c\u7684\u9ad8\u4eae\u6548\u679c
\u5982\uff1acpp\uff0cpython\uff0cswift
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_17","title":"\u5bf9\u9f50\u65b9\u5f0f","text":"<center>\u884c\u4e2d\u5fc3\u5bf9\u9f50</center>\n<p align=\"left\">\u884c\u5de6\u5bf9\u9f50</p>\n<p align=\"right\">\u884c\u53f3\u5bf9\u9f50</p>\n
\u884c\u4e2d\u5fc3\u5bf9\u9f50 \u884c\u5de6\u5bf9\u9f50
\u884c\u53f3\u5bf9\u9f50
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_18","title":"\u5206\u5272\u7ebf","text":"* * *\n***\n- - -\n---\n
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_19","title":"\u6362\u884c","text":"\u4e0d\u540cmarkdown\u7f16\u8f91\u5668\u53ef\u80fd\u6709\u4e0d\u540c\u7684\u6362\u884c\u65b9\u5f0f\uff0c\u6700\u7b80\u5355\u4e3a\u76f4\u63a5\u6572\u56de\u8f66
markdown\u6587\u672c\u5185\u7684\u8fde\u7eed\u4e24\u4e2a\u6216\u591a\u4e2a\u56de\u8f66\u4f1a\u88ab\u66ff\u6362\u4e3a\u4e00\u4e2a\u56de\u8f66
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_20","title":"\u9ad8\u7ea7","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_21","title":"\u8bbe\u7f6e\u5b57\u4f53/\u989c\u8272","text":"<font face=\"\u5b8b\u4f53\" color=blue size=5>\u84dd\u8272\u7684\u5b57\uff5e</font>\n
\u84dd\u8272\u7684\u5b57\uff5e
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_22","title":"\u5e38\u7528\u989c\u8272","text":"\u6d4f\u89c8\u5668\u652f\u6301\u7684\u6240\u6709\u989c\u8272\u8bf7\u8df3\u8f6c\u53c2\u8003
\u73b0\u4ee3\u6d4f\u89c8\u5668\u652f\u6301\u7684140\u79cd\u5df2\u547d\u540d\u7684\u989c\u8272
\u5e38\u7528\u989c\u8272\u540d\u79f0: * \u6309\u7f51\u7ad9\u987a\u5e8f\u6392\u5217 * orange pink gold yellow purple greenyellow lightgreen green aqua lightblue blue wheat brown white snow linen silver gray black
\u6700\u5e38\u7528 \u5176\u4ed6 red greenyellow orange lightgreen yellow lightblue green pink aqua gold blue silver purple brown","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_23","title":"\u951a\u70b9","text":"\u4e5f\u5c31\u662f \u8df3\u8f6c
1. [\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u7b2c\u4e00\u6bb5](#jump1)\n2. [\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u7b2c\u4e8c\u6bb5](#jump2\uff09\n\n### <span id=\"jump1\">\u7b2c\u4e00\u6bb5</span>\n\n### <span id=\"jump2\">\u7b2c\u4e8c\u6bb5</span>\n
<span id=\"now\">\u5f53\u524d\u4f4d\u7f6e</span>\n\u70b9\u51fb[\u8fd9\u91cc](#top)\u8df3\u8f6c\u5230\u5f00\u5934\n\u70b9\u51fb[\u8fd9\u91cc](#bottom)\u8df3\u8f6c\u5230\u7ed3\u5c3e\n
\u5f53\u524d\u4f4d\u7f6e
\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u5f00\u5934
\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u7ed3\u5c3e
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_24","title":"\u6ce8\u811a","text":"\u4f7f\u7528 Markdown[^1]\u53ef\u4ee5\u6548\u7387\u7684\u4e66\u5199\u6587\u6863, \u76f4\u63a5\u8f6c\u6362\u6210 HTML[^2]\u3002\n\n[^1]:Markdown\u662f\u4e00\u79cd\u7eaf\u6587\u672c\u6807\u8bb0\u8bed\u8a00\n[^2]:HyperText Markup Language \u8d85\u6587\u672c\u6807\u8bb0\u8bed\u8a00\n
\u4f7f\u7528 Markdown1\u53ef\u4ee5\u6548\u7387\u7684\u4e66\u5199\u6587\u6863, \u76f4\u63a5\u8f6c\u6362\u6210 HTML2\u3002
\u70b9\u51fb\u8fd9\u91cc\u8df3\u8f6c\u5230\u7ed3\u5c3e\u67e5\u770b\u6ce8\u811a\u7684\u663e\u793a\u6548\u679c
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_25","title":"\u591a\u7ea7\u5f15\u7528","text":">>> \u8bf7\u95ee Markdwon \u600e\u4e48\u7528\uff1f - \u5c0f\u767d\n\n>> \u81ea\u5df1\u770b\u6559\u7a0b\uff01 - \u6124\u9752\n\n> \u6559\u7a0b\u5728\u54ea\uff1f - \u5c0f\u767d\n\n`[^_^]: # \u65e0\u6cd5\u663e\u793a\u65f6\u8bb0\u5f97\u7a7a\u884c`\n
\u4e0d\u540c\u7f16\u8f91\u5668\u7684\u663e\u793a\u60c5\u51b5\u4e0d\u540c
\u8bf7\u95ee Markdwon \u600e\u4e48\u7528\uff1f - \u5c0f\u767d
\u81ea\u5df1\u770b\u6559\u7a0b\uff01 - \u6124\u9752
\u6559\u7a0b\u5728\u54ea\uff1f - \u5c0f\u767d
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#latex","title":"LaTeX\u516c\u5f0f","text":" - \u5728\u6570\u5b66\u516c\u5f0f\u7684\u524d\u540e\u52a0
$
\u662f\u884c\u5185\u516c\u5f0f
\u6211\u4eec\u5728\u521d\u4e2d\u6570\u5b66\u8bfe\u4e0a\u5df2\u7ecf\u5bf9\u4e00\u6b21\u51fd\u6570$y=x+a$\u6709\u6240\u4e86\u89e3\u3002\n
\u6211\u4eec\u5728\u521d\u4e2d\u6570\u5b66\u8bfe\u4e0a\u5df2\u7ecf\u5bf9\u4e00\u6b21\u51fd\u6570\\(y=x+a\\)\u6709\u6240\u4e86\u89e3\u3002
\\[y=ax^2+bx+c\\] \u884c\u5185\u516c\u5f0f\uff1a$\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N$\n\u5757\u7ea7\u516c\u5f0f\uff1a\n$$ x = \\dfrac{-b \\pm \\sqrt{b^2 - 4ac}}{2a} $$\n$$ \\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} =\n1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}}\n{1+\\frac{e^{-8\\pi}} {1+\\ldots} } } } $$\n
\u884c\u5185\u516c\u5f0f\uff1a\\(\\Gamma(n) = (n-1)!\\quad\\forall n\\in\\mathbb N\\)
\u5757\u7ea7\u516c\u5f0f\uff1a
\\[x = \\dfrac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}\\] \\[\\frac{1}{\\Bigl(\\sqrt{\\phi \\sqrt{5}}-\\phi\\Bigr) e^{\\frac25 \\pi}} = 1+\\frac{e^{-2\\pi}} {1+\\frac{e^{-4\\pi}} {1+\\frac{e^{-6\\pi}}{1+\\frac{e^{-8\\pi}} {1+\\ldots} } } }\\] \u6765\u770b\u770b\u4e24\u4e2a\u91cd\u8981\u6781\u9650
\\[\\displaystyle\\lim_{x \\rightarrow 0}\\frac{\\sin x}{x} = 1\\] \\[\\displaystyle\\lim_{x \\rightarrow + \\infty}(1 + \\frac{1}{x})^x = e\\]","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_26","title":"\u5176\u4ed6","text":"","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_27","title":"\u8f6c\u4e49\u5b57\u7b26","text":"\u901a\u8fc7\u5728Markdown\u5b57\u7b26\u524d\u4f7f\u7528\\\u6765\u5ffd\u7565\uff08\u6216\u8f6c\u4e49\uff09Markdown\u683c\u5f0f\u3002
Markdown\u5141\u8bb8\u60a8\u4f7f\u7528\u53cd\u659c\u6760\u8f6c\u4e49\u6765\u751f\u6210\u6587\u5b57\u5b57\u7b26\uff0c\u5426\u5219\u8fd9\u4e9b\u5b57\u7b26\u5728Markdown\u7684\u683c\u5f0f\u5316\u8bed\u6cd5\u4e2d\u5177\u6709\u7279\u6b8a\u542b\u4e49\u3002 \u4f8b\u5982\uff0c\u5982\u679c\u60a8\u60f3\u7528\u6587\u5b57\u661f\u53f7\u5305\u56f4\u4e00\u4e2a\u5355\u8bcd\uff0c\u5219\u53ef\u4ee5\u5728\u661f\u53f7\u4e4b\u524d\u4f7f\u7528\u53cd\u659c\u6760\uff0c\u5982\\*literal asterisks\\*
*literal asterisks*
Markdown\u4e3a\u4ee5\u4e0b\u5b57\u7b26\u63d0\u4f9b\u53cd\u659c\u6760\u8f6c\u4e49(\u4f46\u662fCSDN\u4e0d\u592a\u652f\u6301)\uff1a
\\\u53cd\u659c\u6760\u2003`\u53cd\u5f15\u53f7\u2003*\u661f\u53f7\u2003_\u4e0b\u5212\u7ebf\u2003{}\u5927\u62ec\u53f7\u2003[]\u4e2d\u62ec\u53f7\u2003()\u5c0f\u62ec\u53f7\u2003 #\u4e95\u53f7\u2003+\u52a0\u53f7\u2003-\u51cf\u53f7\u2003.\u82f1\u6587\u53e5\u53f7\u2003!\u82f1\u6587\u611f\u53f9\u53f7
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#html","title":"\u5185\u8054 HTML \u8bed\u6cd5/\u7279\u6b8a\u5b57\u7b26\u81ea\u52a8\u8f6c\u4e49","text":"\u5bf9\u4e8e Markdown \u4e2d\u672a\u5305\u542b\u7684\u6807\u7b7e, \u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 HTML\u6807\u7b7e\uff0c\u4f8b\u5982\u7528 HTML <a>
\u6807\u7b7e\u66ff\u4ee3 Markdown \u7684\u94fe\u63a5\u8bed\u6cd5
\u5728 HTML \u4e2d, \u6709\u4e00\u4e9b\u5b57\u7b26\u9700\u8981\u7279\u6b8a\u5bf9\u5f85\uff0c\u5982\u679c\u4f60\u60f3\u5c06\u5b83\u4eec\u7528\u4f5c\u5b57\u9762\u91cf, \u5219\u9700\u8981\u5c06\u5b83\u4eec\u8f6c\u4e49\u4e3a\u5b57\u7b26\u5b9e\u4f53
\u7279\u6b8a\u5b57\u7b26 \u4ee3\u7801 & &
< <
> >
\" "
"
' '
'
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_28","title":"\u6ce8\u91ca","text":"<div style='display: none'>\n\u6ce8\u91ca\n</div>\n
<!-- \u6ce8\u91ca -->\n
[//]: # (\u54c8\u54c8\u6211\u662f\u6700\u5f3a\u6ce8\u91ca1\uff0c\u4e0d\u4f1a\u5728\u6d4f\u89c8\u5668\u4e2d\u663e\u793a\u3002)\n[^_^]: # (\u54c8\u54c8\u6211\u662f\u6700\u840c\u6ce8\u91ca2\uff0c\u4e0d\u4f1a\u5728\u6d4f\u89c8\u5668\u4e2d\u663e\u793a\u3002)\n
","tags":["Markdown"]},{"location":"develop/Markdown/markdown/#_29","title":"\u7a7a\u683c","text":"\u30101\u3011 \u534a\u89d2\u7684\u4e0d\u65ad\u884c\u7684\u7a7a\u767d\u683c\uff08\u63a8\u8350\u4f7f\u7528\uff09\n\u30102\u3011   \u534a\u89d2\u7684\u7a7a\u683c\n\u30103\u3011   \u5168\u89d2\u7684\u7a7a\u683c\n
- \u30101\u3011 \u00a0 \u534a\u89d2\u7684\u4e0d\u65ad\u884c\u7684\u7a7a\u767d\u683c\uff08\u63a8\u8350\u4f7f\u7528\uff09
- \u30102\u3011 \u2002 \u534a\u89d2\u7684\u7a7a\u683c
- \u30103\u3011 \u2003 \u5168\u89d2\u7684\u7a7a\u683c
\u540c\u65f6\u63a8\u8350\u8fd9\u4e2a\u7f51\u7ad9\u53bb\u5b66\u4e60\u57fa\u7840markdown\u8bed\u6cd5\uff1arunoob.com
-
Markdown\u662f\u4e00\u79cd\u7eaf\u6587\u672c\u6807\u8bb0\u8bed\u8a00\u00a0\u21a9
-
HyperText Markup Language \u8d85\u6587\u672c\u6807\u8bb0\u8bed\u8a00\u00a0\u21a9
","tags":["Markdown"]},{"location":"develop/designbeauty/db1/","title":"\u5510\u00b7\u8bfa\u66fc\u2014\u60c5\u611f\u8bbe\u8ba1\u7684\u4e09\u4e2a\u5c42\u6b21","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u5510\u00b7\u8bfa\u66fc\u63d0\u51fa\u7684\u60c5\u611f\u8bbe\u8ba1\u4e09\u5c42\u6b21\u7406\u8bba\u5305\u62ec\u672c\u80fd\u5c42\u3001\u884c\u4e3a\u5c42\u548c\u53cd\u601d\u5c42\u3002\u672c\u80fd\u5c42\u5173\u6ce8\u4ea7\u54c1\u5916\u89c2\u5f15\u53d1\u7684\u5373\u65f6\u60c5\u611f\u53cd\u5e94\uff1b\u884c\u4e3a\u5c42\u5f3a\u8c03\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u7684\u529f\u80fd\u6027\u548c\u6548\u7387\u4f53\u9a8c\uff1b\u53cd\u601d\u5c42\u6d89\u53ca\u7528\u6237\u5bf9\u4ea7\u54c1\u7684\u7406\u6027\u8ba4\u77e5\u548c\u81ea\u6211\u5f62\u8c61\u5173\u8054\u3002\u8fd9\u4e09\u4e2a\u5c42\u6b21\u76f8\u4e92\u5f71\u54cd\uff0c\u5171\u540c\u5851\u9020\u7528\u6237\u5bf9\u4ea7\u54c1\u7684\u6574\u4f53\u4f53\u9a8c\u3002\u8be5\u7406\u8bba\u4e3a\u8bbe\u8ba1\u5b9e\u8df5\u63d0\u4f9b\u4e86\u7cfb\u7edf\u6846\u67b6\uff0c\u89e3\u91ca\u4e86\u4e3a\u4f55\u67d0\u4e9b\u4ea7\u54c1\u5373\u4f7f\u5b58\u5728\u529f\u80fd\u7f3a\u9677\u4ecd\u80fd\u83b7\u5f97\u5e02\u573a\u6210\u529f\u3002
\u539f\u6587\uff1aNorman's Three Levels of Design
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_1","title":"\u5510\u00b7\u8bfa\u66fc\u2014\u60c5\u611f\u8bbe\u8ba1\u7684\u4e09\u4e2a\u5c42\u6b21","text":"\u5728\u4eba\u7c7b\u7684\u5185\u5fc3\u4e16\u754c\uff0c\u6709\u8bb8\u591a\u90e8\u5206\u8d1f\u8d23\u6211\u4eec\u6240\u8bf4\u7684\u60c5\u611f\uff0c\u603b\u7684\u6765\u8bf4\uff0c\u8fd9\u4e9b\u533a\u57df\u5171\u540c\u6784\u6210\u4e86\u60c5\u611f\u7cfb\u7edf\u3002\u5510\u00b7\u8bfa\u66fc\uff08Don Norman\uff09\u63d0\u51fa\uff0c\u60c5\u611f\u7cfb\u7edf\u7531\u4e09\u4e2a\u4e0d\u540c\u4f46\u76f8\u4e92\u8054\u7cfb\u7684\u5c42\u6b21\u7ec4\u6210\uff0c\u6bcf\u4e2a\u5c42\u6b21\u90fd\u4ee5\u4e00\u79cd\u7279\u6b8a\u7684\u65b9\u5f0f\u5f71\u54cd\u7740\u6211\u4eec\u5bf9\u4e16\u754c\u7684\u4f53\u9a8c\u3002\u8fd9\u4e09\u4e2a\u5c42\u6b21\u662f\u672c\u80fd\u5c42\uff0c\u884c\u4e3a\u5c42\u548c\u53cd\u601d\u5c42\u3002\u672c\u80fd\u5c42\u4e0e\u4eba\u7c7b\u60c5\u7eea\u4e2d\u56fa\u6709\u7684\u3001\u81ea\u53d1\u7684\u4ee5\u53ca\u7b26\u5408\u52a8\u7269\u6027\u7684\u7279\u6027\u76f8\u5173\uff0c\u8fd9\u4e9b\u57fa\u672c\u4e0a\u662f\u4e0d\u53d7\u4eba\u7c7b\u672c\u8eab\u63a7\u5236\u7684\u3002\u884c\u4e3a\u5c42\u6307\u7684\u662f\u4eba\u7c7b\u884c\u4e3a\u4e2d\u90a3\u4e9b\u53ef\u63a7\u7684\u65b9\u9762\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u4e0b\u610f\u8bc6\u7684\u5206\u6790\u6240\u5904\u60c5\u51b5\u5e76\u4e14\u5236\u5b9a\u4ee5\u76ee\u6807\u4e3a\u5bfc\u5411\u7684\u7b56\u7565\uff0c\u4ece\u800c\u80fd\u591f\u5728\u6700\u77ed\u65f6\u95f4\u5185\u6216\u662f\u4ee5\u6700\u5c11\u7684\u884c\u52a8\u8fbe\u5230\u6548\u679c\u3002\u6b63\u5982\u5510\u00b7\u8bfa\u66fc\u6240\u8a00\uff0c\u53cd\u601d\u5c42\u662f\u6307\u201c\u6709\u610f\u8bc6\u7684\u601d\u8003\uff0c\u5bf9\u65b0\u6982\u5ff5\u8fdb\u884c\u5b66\u4e60\uff0c\u548c\u5bf9\u4e16\u754c\u8fdb\u884c\u5f52\u7eb3\u3002\u201d\u8fd9\u4e09\u4e2a\u5c42\u6b21\u4f5c\u4e3a\u60c5\u611f\u7cfb\u7edf\u7684\u4e0d\u540c\u7ef4\u5ea6\u72ec\u7acb\u5b58\u5728\uff0c\u53c8\u76f8\u4e92\u5173\u8054\uff0c\u76f8\u4e92\u5f71\u54cd\uff0c\u4ece\u800c\u521b\u9020\u4e86\u6211\u4eec\u5bf9\u4e16\u754c\u7684\u6574\u4f53\u60c5\u611f\u4f53\u9a8c\u3002
\u5728\u5510\u00b7\u8bfa\u66fc\u7684\u300a\u60c5\u611f\u5316\u8bbe\u8ba1\uff1a\u4e3a\u4ec0\u4e48\u6211\u4eec\u559c\u6b22\uff08\u6216\u8ba8\u538c\uff09\u65e5\u5e38\u4e8b\u7269\u300b\uff08\u4e00\u672c\u8ba4\u77e5\u79d1\u5b66\uff0c\u8bbe\u8ba1\u5b66\uff0c\u53ef\u7528\u6027\u5de5\u7a0b\u9886\u57df\u6770\u51fa\u7684\u5b66\u672f\u4f5c\u54c1\uff09\u4e00\u4e66\u4e2d\uff0c\u4ed6\u5bf9\u60c5\u611f\u5316\u7cfb\u7edf\u7684\u8fd9\u4e09\u4e2a\u65b9\u9762\u6216\u5c42\u6b21\u505a\u4e86\u533a\u5206\uff08\u5b83\u4eec\u4e09\u8005\u7efc\u5408\u5f71\u54cd\u7740\u4eba\u7c7b\u7684\u60c5\u611f\u6216\u5fc3\u7406\uff09\uff0c\u5373\uff1a\u672c\u80fd\u5c42\uff0c\u884c\u4e3a\u5c42\u53ca\u53cd\u601d\u5c42\u3002\u8fd9\u4e09\u8005\u5728\u60c5\u611f\u7cfb\u7edf\u4e2d\u7d27\u5bc6\u4ea4\u7ec7\u5728\u4e00\u8d77\uff0c\u5e76\u4ee5\u5404\u81ea\u7279\u5b9a\u7684\u65b9\u5f0f\u5f71\u54cd\u8bbe\u8ba1\u3002\u4ee5\u4e0b\u662f\u4e09\u8005\u5bf9\u5e94\u7684\u76f8\u5e94\u4e09\u79cd\u8bbe\u8ba1\u5c42\u6b21\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_2","title":"\u672c\u80fd\u5c42\u8bbe\u8ba1","text":"\u672c\u80fd\u5c42\u8bbe\u8ba1-\u201c\u5173\u6ce8\u5916\u89c2\u672c\u8eab\u201d\u3002\u8fd9\u4e00\u5c42\u6b21\u7684\u8bbe\u8ba1\u5173\u6ce8\u7684\u662f\u4e8b\u7269\u4e2d\u53ef\u4ee5\u88ab\u76f4\u63a5\u611f\u77e5\u7684\u90a3\u90e8\u5206\u7279\u5f81\u4ee5\u53ca\u5b83\u4eec\u662f\u5982\u4f55\u8ba9\u7528\u6237\u6216\u89c2\u5bdf\u8005\u4ea7\u751f\u611f\u53d7\u7684\u3002\u4f8b\u5982\uff0c\u7956\u7236\u7684\u6000\u8868\u548c\u4e00\u4e2a\u5c0f\u7684\u58c1\u6302\u5f0f\u65f6\u949f\u4e00\u6837\u90fd\u5305\u542b\u4e86\u6700\u57fa\u672c\u7684\u8ba1\u65f6\u529f\u529f\u80fd\uff0c\u9664\u4e86\u5916\u89c2\uff0c\u4ed6\u4eec\u5728\u5185\u5728\u7279\u5f81\u4e0a\u6ca1\u6709\u4efb\u4f55\u4e0d\u540c\uff0c\u4f46\u662f\u672c\u80fd\u5c42\uff08\u6df1\u5c42\u6b21\u7684\uff0c\u65e0\u610f\u8bc6\u7684\uff0c\u4e3b\u89c2\u7684\u548c\u81ea\u53d1\u7684\u611f\u53d7\uff09\u7279\u5f81\u4f7f\u5b83\u5728\u62e5\u6709\u8005\u773c\u4e2d\u4ea7\u751f\u4e86\u533a\u522b\u3002
\u5982\u4eca\u4ea7\u54c1\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u7684\u5f88\u5927\u4e00\u90e8\u5206\u65f6\u95f4\u88ab\u7528\u5728\u672c\u80fd\u5c42\u8bbe\u8ba1\u4e2d\uff0c\u56e0\u4e3a\u5c5e\u4e8e\u540c\u4e00\u65cf\u7fa4\u7684\u4ea7\u54c1\u5f80\u5f80\u5177\u6709\u76f8\u540c\u6216\u76f8\u4f3c\u7684\u529f\u80fd\uff0c\uff08\u6bd4\u5982\u8bf4\u624b\u7535\uff0c\u6c34\u58f6\uff0c\u9762\u5305\u673a\uff0c\u53f0\u706f\uff09\uff0c\u6240\u4ee5\u66f4\u5177\u7279\u5f81\u7684\u5916\u89c2\u662f\u533a\u5206\u4ea7\u54c1\u548c\u7ade\u4e89\u8005\u7684\u5173\u952e\u56e0\u7d20\u3002\u8fd9\u4e5f\u5c31\u662f\u6211\u4eec\u6240\u8bf4\u7684\u201d\u54c1\u724c\u5316\u8bbe\u8ba1\u201d\u2014\u2014\u4e0d\u662f\u901a\u8fc7\u4ea7\u54c1\u63d0\u4f9b\u7ed9\u7528\u6237\u533a\u522b\u4e8e\u5176\u4ed6\u4ea7\u54c1\u7684\u5b9e\u9645\u5229\u76ca\uff0c\u800c\u662f\u901a\u8fc7\u5951\u5408\u7528\u6237\u7684\u6001\u5ea6\u3001\u4fe1\u4ef0\u3001\u60c5\u611f\u4ee5\u53ca\u7528\u6237\u60f3\u8981\u7684\u611f\u53d7\uff0c\u6765\u5f15\u51fa\u7528\u6237\u5bf9\u4ea7\u54c1\u7684\u60c5\u611f\u4e0a\u7684\u56de\u5e94\u3002\u8fd9\u53ef\u4ee5\u662f\u901a\u8fc7\u4f7f\u7528\u513f\u7ae5\u3001\u52a8\u7269\u6216\u662f\u5361\u901a\u5f62\u8c61\u7684\u56fe\u7247\u6765\u4f20\u8fbe\u5e74\u8f7b\u7684\u611f\u89c9\uff0c\u4e5f\u53ef\u4ee5\u662f\u901a\u8fc7\u5bf9\u8272\u5f69\uff08\u6bd4\u5982\u8bf4\uff0c\u7ea2\u8272\u5bf9\u5e94\u7740\u201c\u6027\u611f\u201c\uff0c\u9ed1\u8272\u5bf9\u5e94\u7740\u201d\u6050\u6016\u201d\uff09\uff0c\u5f62\u72b6\uff08\u6bd4\u5982\u786c\u8fb9\u7f18\u5f62\u72b6\uff09\u7684\u8fd0\u7528\uff0c\u751a\u81f3\u662f\u8fd0\u7528\u98ce\u683c\uff08\u6bd4\u5982\u88c5\u9970\u827a\u672f\uff09\uff0c\u8ba9\u4eba\u8054\u60f3\u8d77\u67d0\u4e9b\u7279\u5b9a\u7684\u65f6\u4ee3\u3002\u672c\u80fd\u8bbe\u8ba1\u65e8\u5728\u6df1\u5165\u4e86\u89e3\u7528\u6237/\u6d88\u8d39\u8005/\u89c2\u5bdf\u8005\u7684\u5934\u8111\uff0c\u5e76\u4e14\u901a\u8fc7\u7275\u52a8\u7528\u6237\u60c5\u7eea\u6765\u63d0\u5347\u7528\u6237\u4f53\u9a8c\uff08\u6bd4\u5982\u8bf4\u6539\u5584\u6574\u4f53\u89c6\u89c9\u5f62\u8c61\uff09\u6216\u662f\u670d\u52a1\u5546\u4e1a\u5229\u76ca\uff08\u6bd4\u5982\u8bf4\u4e3a\u4e86\u516c\u53f8\u6216\u4ea7\u54c1\u6240\u6709\u8005\u7684\u5229\u76ca\uff0c\u4ece\u60c5\u611f\u4e0a\u52ab\u6301\u7528\u6237\u4f7f\u4ed6\u4eec\u8fdb\u884c\u8d2d\u4e70\uff09\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_3","title":"\u884c\u4e3a\u5c42\u8bbe\u8ba1","text":"\u884c\u4e3a\u5c42\u8bbe\u8ba1-\u201c\u4e0e\u4f7f\u7528\u7684\u6109\u60a6\u611f\u548c\u6548\u7387\u6709\u5173\u3002\u201d\u884c\u4e3a\u5c42\u8bbe\u8ba1\u53ef\u80fd\u66f4\u66f4\u5e38\u88ab\u79f0\u4e3a\u53ef\u7528\u6027\uff0c\u800c\u4e24\u8005\u6307\u7684\u90fd\u662f\u4ea7\u54c1\u4e2d\u5b9e\u7528\u6027\u548c\u529f\u80fd\u6027\u65b9\u9762\uff0c\u6216\u662f\u662f\u6211\u4eec\u5728\u6240\u5904\u73af\u5883\u4e2d\u6240\u80fd\u4f7f\u7528\u7684\u4efb\u4f55\u4ea7\u54c1\u7684\u53ef\u7528\u6027\u3002\u884c\u4e3a\u5c42\u8bbe\u8ba1\uff08\u4ece\u73b0\u5728\u8d77\u6211\u4eec\u7528\u8fd9\u4e2a\u8bcd\u6c47\u6765\u4ee3\u66ff\u53ef\u7528\u6027\uff09\u7740\u773c\u4e8e\uff0c\u8bf8\u5982\uff0c\u7528\u6237\u5982\u4f55\u8fdb\u884c\u6d3b\u52a8\uff1b\u5982\u4f55\u5feb\u901f\u548c\u51c6\u786e\u5730\u5b9e\u73b0\u4ed6\u4eec\u7684\u76ee\u6807\u548c\u76ee\u7684\uff1b\u7528\u6237\u5728\u6267\u884c\u67d0\u4e9b\u4efb\u52a1\u65f6\u72af\u4e86\u591a\u5c11\u9519\u8bef\uff1b\u4ee5\u53ca\u4ea7\u54c1\u5982\u4f55\u5f88\u597d\u5730\u9002\u5e94\u719f\u7ec3\u548c\u7f3a\u4e4f\u7ecf\u9a8c\u7684\u7528\u6237\u7b49\u95ee\u9898\u3002
\u884c\u4e3a\u5c42\u8bbe\u8ba1\u53ef\u80fd\u662f\u6700\u5bb9\u6613\u6d4b\u8bd5\u7684\uff0c\u56e0\u4e3a\u4e00\u65e6\u5bf9\u8c61\u7684\u7269\u7406\uff08\u6bd4\u5982\u8bf4\u624b\u67c4\u3001\u6309\u94ae\u3001\u628a\u624b\u3001\u63a7\u5236\u6746\u3001\u5f00\u5173\u4ee5\u53ca\u952e\uff09\u6216\u53ef\u7528\u90e8\u5206\u4ee5\u67d0\u79cd\u65b9\u5f0f\u88ab\u6539\u53d8\u6216\u64cd\u4f5c\uff0c\u5c31\u53ef\u4ee5\u5728\u8868\u73b0\u5c42\u5bf9\u5176\u8fdb\u884c\u8861\u91cf\u3002\u6bd4\u5982\u8bf4\uff0c\u8d1f\u8d23\u72ec\u7acb\u64cd\u4f5c\u7684\u4e24\u4e2a\u6309\u94ae\u88ab\u653e\u7f6e\u5728\u4e0d\u540c\u7684\u8ddd\u79bb\u4ece\u800c\u6d4b\u91cf\u7528\u6237\u8fde\u7eed\u5b8c\u6210\u8fd9\u4e24\u4e2a\u64cd\u4f5c\u7684\u65f6\u95f4\u3002\u6216\u8005\uff0c\u901a\u8fc7\u76f8\u540c\u7684\u64cd\u4f5c\u6765\u6d4b\u8bd5\u9519\u8bef\u7387\u3002\u6d89\u53ca\u884c\u4e3a\u5c42\u4f53\u9a8c\u7684\u4f8b\u5b50\u8fd8\u5305\u62ec\uff0c\u5f53\u6211\u4eec\u62ff\u51fa\u624b\u673a\u65f6\u80fd\u591f\u8fc5\u901f\u627e\u5230\u8054\u7cfb\u4eba\u5e76\u62e8\u6253\u53f7\u7801\u7684\u6109\u60a6\u611f\uff1b\u5728\u7535\u8111\u952e\u76d8\u4e0a\u80fd\u591f\u8f7b\u677e\u6253\u5b57\uff0c\u800c\u5728\u5c0f\u7684\u89e6\u5c4f\u8bbe\u5907\uff0c\u6bd4\u5982\u8bf4iPod Touch\u4e0a\u6253\u5b57\u5c31\u6bd4\u8f83\u56f0\u96be\uff1b\u4ee5\u53ca\u6211\u4eec\u5728\u4f7f\u7528\u4e00\u4e2a\u8bbe\u8ba1\u826f\u597d\u7684\u7535\u8111\u6e38\u620f\u624b\u67c4\uff08\u5c31\u50cf\u6211\u7684N64\u63a7\u5236\u677f\uff09\u65f6\u7684\u4eab\u53d7\u3002\u884c\u4e3a\u5c42\u9762\u672c\u8d28\u4e0a\u662f\u6307\u6211\u4eec\u56e0\u5b8c\u6210\u6216\u672a\u80fd\u5b8c\u6210\u76ee\u6807\u800c\u4ea7\u751f\u7684\u60c5\u7eea\u3002\u5f53\u4ea7\u54c1/\u7269\u54c1\u80fd\u591f\u5e2e\u52a9\u6211\u4eec\u7528\u4e00\u70b9\u70b9\u6709\u610f\u8bc6\u7684\u52aa\u529b\uff0c\u5e76\u4e14\u6574\u4e2a\u8fc7\u7a0b\u4e2d\u9047\u5230\u6700\u5c11\u7684\u56f0\u96be\u5c31\u80fd\u5b8c\u6210\u76ee\u6807\uff0c\u8fd9\u65f6\u6211\u4eec\u7684\u60c5\u7eea\u5f88\u53ef\u80fd\u662f\u79ef\u6781\u7684\u3002\u76f8\u53cd\uff0c\u5f53\u4ea7\u54c1\u9650\u5236\u6211\u4eec\uff0c\u8feb\u4f7f\u6211\u4eec\u6839\u636e\u4ea7\u54c1\u7684\u9650\u5236\u6765\u89e3\u91ca\u6216\u8c03\u6574\u6211\u4eec\u7684\u76ee\u6807\uff0c\u6216\u8005\u53ea\u662f\u8ba9\u6211\u4eec\u5728\u4f7f\u7528\u4ea7\u54c1\u65f6\u5bc6\u5207\u5173\u6ce8\u8fd9\u4e9b\u76ee\u6807\u65f6\uff0c\u6211\u4eec\u66f4\u503e\u5411\u4e8e\u4ea7\u751f\u4e00\u4e9b\u8d1f\u9762\u60c5\u7eea\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_4","title":"\u53cd\u601d\u5c42\u8bbe\u8ba1","text":"\u53cd\u601d\u5c42\u8bbe\u8ba1\u201c\u8003\u8651\u4ea7\u54c1\u7684\u5408\u7406\u5316\u548c\u667a\u80fd\u5316\u3002\u5173\u4e8e\u8be5\u4ea7\u54c1\u6211\u80fd\u8bb2\u8ff0\u4e00\u4e2a\u6545\u4e8b\u5417\uff1f\u5b83\u7b26\u5408\u6211\u7684\u81ea\u6211\u5f62\u8c61\uff0c\u6211\u7684\u81ea\u5c0a\u5fc3\u9700\u8981\u5417\uff1f\u201d\u8fd9\u5c31\u662f\u60c5\u611f\u8bbe\u8ba1\u7684\u6700\u9ad8\u5c42\u6b21\uff1b\u4ee3\u8868\u6211\u4eec\u6709\u610f\u8bc6\u6709\u601d\u60f3\u5730\u8fdb\u884c\u8bbe\u8ba1\uff1b\u6743\u8861\u5176\u4f18\u7f3a\u70b9\uff1b\u5229\u7528\u6211\u4eec\u66f4\u7ec6\u5fae\u548c\u7406\u6027\u7684\u4e00\u9762\u8fdb\u884c\u5224\u65ad\uff0c\u5e76\u63d0\u53d6\u4fe1\u606f\u4ee5\u786e\u5b9a\u5b83\u5bf9\u6211\u4eec\u4e2a\u4eba\u7684\u610f\u4e49\u3002\u53cd\u601d\u601d\u7ef4\u4f7f\u6211\u4eec\u80fd\u591f\u5408\u7406\u5316\u73af\u5883\u4fe1\u606f\u4ee5\u5f71\u54cd\u884c\u4e3a\u5c42\u3002\u6bd4\u5982\u8bf4\u667a\u80fd\u624b\u8868\u3002\u201d\u57fa\u4e8e\u8fd9\u4e00\u70b9\uff0c\u97e9\u56fd\u5927\u5b66\u7684\u7814\u7a76\u5458Jaewon Choi\u548cSongcheol Kim\u8003\u5bdf\u4e86\u7528\u6237\u4f7f\u7528\u667a\u80fd\u624b\u8868\u7684\u76ee\u7684\u4e3b\u8981\u662f\u57fa\u4e8e\u4e24\u4e2a\u4e3b\u8981\u56e0\u7d20\uff0c\u4e00\u79cd\u662f\u7528\u6237\u5c06\u667a\u80fd\u624b\u8868\u89c6\u4e3a\u6280\u672f\u521b\u65b0\u53e6\u4e00\u79cd\u662f\u5c06\u5176\u4f5c\u4e3a\u5962\u4f88\u65f6\u5c1a\u4ea7\u54c1\u3002\u4ece\u7528\u6237\u89c6\u89d2\u6765\u770b\uff0c\u5c06\u667a\u80fd\u624b\u8868\u89c6\u4e3a\u4e00\u9879\u6280\u672f\u521b\u65b0\uff0c\u8fd9\u4e0e\u4ed6\u4eec\u5bf9\u8bbe\u5907\u7684\u5b9e\u7528\u6027\u548c\u6613\u7528\u6027\uff08\u884c\u4e3a\u5c42\uff09\u7684\u770b\u6cd5\u6709\u5173\u3002\u53e6\u4e00\u65b9\u9762\uff0c\u7528\u6237\u5c06\u667a\u80fd\u624b\u8868\u89c6\u4e3a\u4e00\u79cd\u5962\u4f88\u65f6\u5c1a\u4ea7\u54c1\uff0c\u8fd9\u65e2\u548c\u4ed6\u4eec\u5c06\u5982\u4f55\u4eab\u53d7\u667a\u80fd\u624b\u8868\u7684\u8ba4\u77e5\uff0c\u4e5f\u548c\u667a\u80fd\u624b\u8868\u5c06\u4e3a\u4ed6\u4eec\u63d0\u4f9b\u600e\u6837\u7684\u81ea\u6211\u8868\u73b0\u529b\u6709\u5173\uff08\u5373\u8868\u8fbe\u81ea\u5df1\u548c\u589e\u5f3a\u5f62\u8c61\u7684\u80fd\u529b\uff09\u3002\u4eab\u53d7\u548c\u81ea\u6211\u8868\u8fbe\u90fd\u53d7\u5230\u672c\u80fd\u5c42\u7684\u5f71\u54cd\uff08\u201c\u624b\u8868\u770b\u8d77\u6765\u6f02\u4eae\u5417\uff1f\u201d\uff09\u4f46\u4e5f\u5f88\u53d7\u5230\u53cd\u601d\u5c42\u7684\u5f71\u54cd\uff08\u201c\u5f53\u6211\u7684\u670b\u53cb\u770b\u5230\u6211\u6234\u7740\u8fd9\u53ea\u8868\u65f6\uff0c\u4ed6\u4eec\u4f1a\u600e\u4e48\u60f3\uff1f\u201d\uff09\u3002
\u53cd\u601d\u5c42\u8c03\u8282\u4e86\u884c\u4e3a\u5c42\u5e26\u6765\u7684\u5f71\u54cd\u2014\u2014\u7528\u6237\u5f88\u53ef\u80fd\u4f1a\u5fcd\u53d7\u667a\u80fd\u624b\u8868\u6613\u7528\u6027\u65b9\u9762\u7684\u56f0\u96be\u548c\u7f3a\u70b9\uff0c\u56e0\u4e3a\u4ed6\u4eec\u76f8\u4fe1\u4ed6\u4eec\u80fd\u4ece\u667a\u80fd\u624b\u8868\u4e2d\u83b7\u5f97\u5176\u4ed6\u975e\u529f\u80fd\u6027\u7684\u5229\u76ca\u3002\u82f9\u679c\u667a\u80fd\u624b\u8868\u7684\u7b2c\u4e00\u4e2a\u7248\u672c\u5145\u6ee1\u4e86\u529f\u80fd\u95ee\u9898\u548c\u53ef\u7528\u6027\u95ee\u9898\uff0c\u4f46\u8fd9\u5e76\u6ca1\u6709\u963b\u6b62\u82f9\u679c\u5728\u9500\u552e\u667a\u80fd\u624b\u8868\u7684\u7b2c\u4e00\u5e74\u521b\u9020\u51fa\u5168\u7403\u624b\u8868\u4ea7\u4e1a\u7684\u7b2c\u4e8c\u5927\u6536\u5165\uff01
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#the-take-away","title":"The Take Away","text":"\u5728\u8fd9\u91cc\uff0c\u6211\u4eec\u4ecb\u7ecd\u4e86\u5510\u00b7\u8bfa\u66fc\u7684\u4e09\u4e2a\u8bbe\u8ba1\u5c42\u6b21\uff1a\u8bbe\u8ba1\u7684\u672c\u80fd\u5c42\u3001\u884c\u4e3a\u5c42\u548c\u53cd\u601d\u5c42\u3002\u8bbe\u8ba1\u7684\u672c\u80fd\u5c42\u6307\u7684\u662f\u8bbe\u8ba1\u7684\u7b2c\u4e00\u5370\u8c61\uff0c\u65e0\u8bba\u662f\u4ece\u7528\u6237\u5982\u4f55\u770b\u5f85\u4ea7\u54c1\uff0c\u8fd8\u662f\u4ece\u7528\u6237\u5bf9\u4ea7\u54c1\u7684\u611f\u53d7\u3002\u884c\u4e3a\u5c42\u662f\u6307\u4ea7\u54c1\u5728\u4f7f\u7528\u8fc7\u7a0b\u4e2d\u7684\u4f53\u9a8c\u3002\u5f53\u6211\u4eec\u60f3\u5230\u7528\u6237\u4f53\u9a8c\u65f6\uff0c\u6211\u4eec\u5e38\u5e38\u4f1a\u60f3\u5230\u8fd9\u4e2a\u5c42\u6b21\u3002\u53cd\u601d\u5c42\u662f\u6307\u7528\u6237\u5728\u4f7f\u7528\u524d\u3001\u4f7f\u7528\u4e2d\u548c\u4f7f\u7528\u540e\u5bf9\u4ea7\u54c1\u7684\u601d\u8003\u3002\u8fd9\u4e09\u4e2a\u5c42\u6b21\u90fd\u7ed3\u5408\u5728\u4e00\u8d77\u5f62\u6210\u4e86\u6574\u4e2a\u4ea7\u54c1\u4f53\u9a8c\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/db1/#_5","title":"\u53c2\u8003","text":"Choi, J., & Kim, S. (2016). \u201cIs the smartwatch an IT product or a fashion product? A study on factors affecting the intention to use smartwatches\u201d. Computers in Human Behavior, 63, 777-786.
\u4f5c\u8005\uff1aAndreas Komninos
\u8bd1\u8005\uff1a\u5b54
\u5ba1\u7a3f\uff1aHoodie
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/my-to-desihn/","title":"\u6211\u5bf9\u8bbe\u8ba1\u7684\u4e00\u4e9b\u770b\u6cd5","text":"\ud83d\udcbe AI\u667a\u80fd\u6458\u8981 (DeepSeek)
\u672c\u6587\u9610\u8ff0\u4e86\u8bbe\u8ba1\u7684\u6838\u5fc3\u539f\u5219\u4e0e\u5b9e\u8df5\u8981\u70b9\uff0c\u5f3a\u8c03\u7b80\u6d01\u6027\u3001\u7f8e\u611f\u548c\u7528\u6237\u4f53\u9a8c\u7684\u91cd\u8981\u6027\u3002\u4f5c\u8005\u63d0\u51fa\u4f18\u79c0\u8bbe\u8ba1\u5e94\u53bb\u9664\u5197\u4f59\u5143\u7d20\uff0c\u6ce8\u91cd\u89c6\u89c9\u5e73\u8861\u4e0e\u7ec6\u8282\u628a\u63a7\uff0c\u540c\u65f6\u4ee5\u7528\u6237\u9700\u6c42\u4e3a\u4e2d\u5fc3\u6784\u5efa\u76f4\u89c2\u4ea4\u4e92\u3002\u521b\u65b0\u601d\u7ef4\u548c\u60c5\u611f\u5171\u9e23\u88ab\u5217\u4e3a\u5173\u952e\u8981\u7d20\uff0c\u901a\u8fc7\u6545\u4e8b\u6027\u8bbe\u8ba1\u4f20\u9012\u54c1\u724c\u4ef7\u503c\u3002\u5168\u6587\u7a81\u51fa\u4e86\u8bbe\u8ba1\u5728\u529f\u80fd\u6027\u4e0e\u827a\u672f\u6027\u4e4b\u95f4\u7684\u5e73\u8861\uff0c\u4ee5\u53ca\u7ec6\u8282\u5904\u7406\u5bf9\u4ea7\u54c1\u8d28\u611f\u7684\u63d0\u5347\u4f5c\u7528\u3002
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"develop/designbeauty/my-to-desihn/#some-of-my-thoughts-on-design","title":"Some of my thoughts on design","text":"\u5438\u5f15\u4eba\u7684\u4e8b\u7269\u603b\u8ba9\u4eba\u5fc3\u60c5\u6109\u60a6 \u5e76\u53cd\u8fc7\u6765\u4fc3\u8fdb\u4ed6\u4eec\u7684\u601d\u7ef4\u66f4\u5177\u521b\u610f -
\u7b80\u6d01\u4e0e\u7cbe\u70bc\uff1a\u7b80\u6d01\u3001\u7cbe\u70bc\u548c\u7cbe\u786e\u7684\u8868\u8fbe\u3002\u53bb\u9664\u4e0d\u5fc5\u8981\u7684\u5143\u7d20\uff0c\u4f7f\u8bbe\u8ba1\u66f4\u52a0\u7b80\u6d01\u660e\u4e86\u3002\u5173\u6ce8\u6838\u5fc3\u529f\u80fd\u548c\u4fe1\u606f\uff0c\u907f\u514d\u8fc7\u5ea6\u8bbe\u8ba1\u548c\u5197\u4f59\u3002
-
\u4f18\u96c5\u4e0e\u7f8e\u611f\uff1a\u8ffd\u6c42\u4f18\u96c5\u548c\u7f8e\u611f\u7684\u8bbe\u8ba1\u3002\u6ce8\u91cd\u7ebf\u6761\u7684\u6d41\u7545\u6027\u548c\u89c6\u89c9\u4e0a\u7684\u5e73\u8861\u3002\u901a\u8fc7\u7cbe\u5fc3\u7684\u6392\u7248\u3001\u5bf9\u6bd4\u548c\u6bd4\u4f8b\uff0c\u521b\u9020\u51fa\u4ee4\u4eba\u6109\u60a6\u7684\u89c6\u89c9\u6548\u679c\u3002
-
\u7528\u6237\u4f53\u9a8c\u81f3\u4e0a\uff1a\u4ee5\u7528\u6237\u4e3a\u4e2d\u5fc3,\u5173\u6ce8\u7528\u6237\u9700\u6c42\u548c\u884c\u4e3a\u6a21\u5f0f\uff0c\u521b\u9020\u51fa\u7b80\u5355\u76f4\u89c2\u3001\u6613\u4e8e\u4f7f\u7528\u7684\u4ea7\u54c1\u548c\u754c\u9762\u3002\u901a\u8fc7\u51cf\u5c11\u590d\u6742\u6027\u548c\u63d0\u4f9b\u65e0\u7f1d\u7684\u4ea4\u4e92\u4f53\u9a8c\uff0c\u4f7f\u7528\u6237\u4e0e\u4ea7\u54c1\u4e4b\u95f4\u7684\u4e92\u52a8\u66f4\u52a0\u81ea\u7136\u6d41\u7545\u3002
-
\u5f3a\u8c03\u7ec6\u8282\uff1a\u4ece\u5b57\u4f53\u9009\u62e9\u5230\u989c\u8272\u642d\u914d\uff0c\u4ece\u56fe\u6807\u8bbe\u8ba1\u5230\u52a8\u753b\u6548\u679c\uff0c\u90fd\u9700\u8981\u7ecf\u8fc7\u7cbe\u5fc3\u7684\u8003\u8651\u548c\u628a\u63a7\u3002\u7ec6\u8282\u7684\u5173\u6ce8\u4f7f\u5f97\u4ea7\u54c1\u7684\u6574\u4f53\u8d28\u611f\u66f4\u51fa\u8272\u3002
-
\u521b\u65b0\u4e0e\u7a81\u7834\uff1a\u9f13\u52b1\u521b\u65b0\u548c\u7a81\u7834\u4f20\u7edf\u89c2\u5ff5\u7684\u601d\u7ef4\u65b9\u5f0f\u3002\u5c06\u4e0d\u540c\u7684\u5143\u7d20\u878d\u5408\u5728\u4e00\u8d77\uff0c\u521b\u9020\u51fa\u72ec\u7279\u7684\u8bbe\u8ba1\u89e3\u51b3\u65b9\u6848\u3002\u5728\u8bbe\u8ba1\u4e2d\u5bfb\u627e\u7a81\u7834\u70b9\uff0c\u63d0\u4f9b\u65b0\u9896\u800c\u5bcc\u6709\u521b\u610f\u7684\u4f53\u9a8c\u3002
-
\u6545\u4e8b\u6027\u4e0e\u60c5\u611f\u5171\u9e23\uff1a\u60c5\u611f\u5171\u9e23\u548c\u6545\u4e8b\u6027\u7684\u4f53\u9a8c\u3002\u8bbe\u8ba1\u6765\u4f20\u9012\u4ea7\u54c1\u7684\u80cc\u540e\u6545\u4e8b\u548c\u54c1\u724c\u7684\u4ef7\u503c\u89c2\u3002\u901a\u8fc7\u7b80\u5355\u800c\u6709\u529b\u7684\u8bbe\u8ba1\u8bed\u8a00\uff0c\u6fc0\u53d1\u7528\u6237\u7684\u60c5\u611f\u5171\u9e23\u548c\u5bf9\u4ea7\u54c1\u7684\u8ba4\u540c\u3002
\u3010\u26a1\u554a\uff01\u8bbe\u8ba1\uff0c\u662f\u4ec0\u4e48\u5462\uff1f\u26a1\u3011
","tags":["\u8bbe\u8ba1\u7f8e\u5b66"]},{"location":"en/","title":"Home","text":"\"Follow this arduous journey to reach the stars\" - Open articles by topic and table of contents
- For Mac/PC, please select the topic in the tab bar above and select the article in the directory on the left
- Mobile version, please click the icon in the upper left corner to select topics and articles
- Search for keywords to open articles
- If you encounter web page freezes or images cannot be displayed after opening an article, please use Scientific Internet Access to break information barriers
Quick Chat(1) Contact Me(2)
- Click on the bottom right corner to chat with me online.
- Wechat:18939533255
-
Mkdocs Tutorial
- Deploy static web pages to GitHub pages with Mkdocs
- Mkdocs deployment configuration explanation (mkdocs.yml)
- How to add friends links to MKdocs
- Adding Mkdocs blog to website
- Blogger
-
About
- Mkdocs-Wcowin blog theme community
- Message Board1
- Blogger Learn about me2
This site is already running
-
The sun always warms sunflowers\u00a0\u21a9
-
All problems in computer science can be solved by another level of indirection\u00a0\u21a9
"},{"location":"blog/archive/2025/","title":"2025","text":""},{"location":"blog/archive/2024/","title":"2024","text":""},{"location":"blog/archive/2023/","title":"2023","text":""},{"location":"blog/archive/2022/","title":"2022","text":""},{"location":"blog/archive/2021/","title":"2021","text":""},{"location":"blog/category/%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/","title":"\u7f51\u7ad9\u66f4\u65b0\u8bb0\u5f55","text":""},{"location":"blog/category/hello-world/","title":"Hello World","text":""}]}
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index 56ef36c..57a56db 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -2,206 +2,206 @@
http://wcowin.work/Mkdocs-Wcowin/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/link/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/liuyanban/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/tag/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/ZH-TW/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/about/geren/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/about/resume/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/about/test/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/about/zcw/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/MIT/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/Mkdocs/mkdocs1/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/Mkdocs/mkdocs2/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/Mkdocs/mkdocs3/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/Mkdocs/mkdocsblog/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/Mkdocs/mkfirst/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/2021/12/18/%E5%8D%9A%E5%AE%A2%E6%96%87%E7%AB%A0%E6%B5%8B%E8%AF%95/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/2022/06/06/2022%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/2023/12/21/2023%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/2024/01/01/2024%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/2025/01/01/2025%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/404/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/MkDocs-AI-Hooks/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/Relativeaddress/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/accelerate/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/backgroud/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/footer/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/header/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/linktech/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/mkcomments/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/mkdocsfont/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/mkpdf/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/shubiao/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/time/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/webtalknow/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/websitebeauty/yuanjiaohua/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/develop/git/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/develop/lighthouse/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/develop/vercel/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/develop/Markdown/MWeb/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/develop/Markdown/markdown/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/develop/designbeauty/db1/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/develop/designbeauty/my-to-desihn/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/en/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/archive/2025/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/archive/2024/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/archive/2023/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/archive/2022/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/archive/2021/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/category/%E7%BD%91%E7%AB%99%E6%9B%B4%E6%96%B0%E8%AE%B0%E5%BD%95/
- 2025-06-03
+ 2025-06-04
http://wcowin.work/Mkdocs-Wcowin/blog/category/hello-world/
- 2025-06-03
+ 2025-06-04
\ No newline at end of file
diff --git a/sitemap.xml.gz b/sitemap.xml.gz
index 53bf8a4ae9b535a4177df90ff517338a74d81e10..2f8cc32434ad7908dc86266a32195a786a800f48 100644
GIT binary patch
delta 455
zcmV;&0XY7G1%d@BABzYGfQ&zA0{?SqbY*Q}a4vXlYyj1m&yS-Z6vyxLS2QLZEoy&E
zyOAj}e;vf*C>Q~!qNsVf4!-T*!bR}1d0KUnDbOPm%+)%mv_5^oxbOS1sx`Faq{c#)
zSkcN<6uvoeG+qXqr;)jA16OOfR!q>%y%j3@nvZ)S8@y`@K~;DdTzG|T*xyePrCU*K
zk|>#l(L9W%CgkS3%HU6(e^O*MZ=A?>7s7Mmf1=BplnzwCzlZyS16`7fPU8|JaA)cg
zRM&ztc@0WC6aPhf2iiFkr7PLp$KILr;KJ>2i@l&oyr7tPLE&^(-a(GFbg~=_6sGkU
z#|e%X7;R^0@rstIHPS6g6SSS9DT$xK*=whNTLq2Y=V0H2|3dh10N4b0oYm<_=$;U{*~&DdM>;ozq@ifysx!@vJHTzTjyz^#f$ryxM^DBYcyd0hvqK7nJrAY7tsj6wJL_vM<(^^c
x0mH-thQtE~XGfgW$>jET^MvH!@$hMNMt`3>Q;iltN>007^4;_Ltb
delta 455
zcmV;&0XY7G1%d@BABzYG06RWt0{?SqbY*Q}a4vXlYyj1m&yS-Z6vyxLS2RsHTGalS
zx{)a|e?5*S;dlg`ilXM_di-tw7A(gvo2OMLnF2jB!CbA!mDZ;(825cYQMHDaoYX|f
z5-VDnio!Q14kyWY^E5J-ZQyDR*NO?cxwk?^U-L;XWP^82A*c!tgA1>)4g32kqI4^Y
zO&rGaAY26D)P&r8R~h`N^G}Mb=8Y5C?m~D@e_V7~lhT3e_xE6baG*#*x}he?0H2|3cI!nJ4$RxZm=D1&;iq=g&DdM>;oxUDjBK&y!@vJHTzTjCn^8;kpyxM^DBY2aZ0hvq47nJrAXc1Uf6wJL_vM<(^^Y
x0mIY-hS&oJXGfgW$>jETU6vH!@$hMNMt`3(dYNh4Go0093S+0g(1