YAML 语言学习指南:从基础语法到 Markdown应用
本文由AI生成由自己补充作为自己学习YAML的查阅文档YAMLYAML Aint Markup Language是一种人类可读的数据序列化语言广泛用于配置文件、数据交换和持续集成/持续部署CI/CD场景。本文将从基础语法开始逐步深入 YAML 的核心概念并展示在AI的提示词运用和Markdown元数据的应用。一、YAML 基础语法YAML 的设计目标是易于人类阅读和编写同时能被机器轻松解析。其基本语法规则如下1.1 基本语法规则YAML 大小写敏感缩进必须使用空格严禁使用 Tab 键推荐缩进为 2 个空格同级元素必须严格左对齐注释使用 # 号仅支持单行注释1.2 文档分隔符可选---表示一个 YAML 文档的开始一个文件可包含多个文档用---分隔1.3 标量Scalar最基础的数据类型1.3.1 字符串String—— 大多数情况下无需引号string_basic: Hello World string_with_colon: http://example.com:8080 # 含冒号或特殊字符建议加引号 string_with_quotes: Single quotes are fine too1.3.2 数值Integer / Floatinteger: 25 float: 3.1415 negative: -10 scientific: 1.2e31.3.3 布尔值Booleanboolean_true: true boolean_false: false # 也支持 on/off, yes/no但推荐使用 true/false1.3.4 空值Nullnull_value: null also_null: ~ # 波浪号也表示 null二、YAML 数据结构2.1 对象 / 映射Mapping键值对集合类似 JSON 的 Object2.1.1 块级Block风格 —— 最常用person: name: Alice age: 30 address: city: Guangzhou street: Tianhe Road2.1.2 流式Flow风格 —— 行内写法类似 JSONperson_flow: { name: Bob, age: 25, address: { city: Shenzhen, street: Nanshan } }2.2 数组 / 序列Sequence列表类似 JSON 的 Array2.2.1 块级Block风格 —— 以短横线 空格开头fruits: - Apple - Banana - Orange2.2.2 流式Flow风格 —— 行内写法fruits_flow: [Apple, Banana, Orange]2.2.3 复杂数组元素数组里放对象非常常用people: - name: Charlie age: 28 - name: David age: 322.3 多行字符串重要2.3.1 保留换行符Literal Block: 使用 |multiline_keep: | Line 1 Line 2 Line 3 # 这3行会保留换行且末尾有换行符2.3.2 折叠换行符Folded Block: 使用 multiline_fold: This is a long sentence that will be folded into a single line with spaces. # 如果想要末尾不换行用 |- 或 -但较少用三、YAML 高级特性3.1 锚点Anchor与别名Alias实现数据复用defaults: default_settings # 定义锚点 timeout: 30 retry: 3 service_a: : *default_settings # : 表示合并Merge Key将锚点内容展开 name: Service A service_b: : *default_settings name: Service B timeout: 60 # 合并后可以覆盖原有字段 简单的别名引用用于标量或列表 favorite_fruit: best Fruit summer_fruit: *best # 直接引用值为 Fruit3.2 强制类型转换Explicit Typing极少用但属于语法explicit_int: !!int 123 # 强制转为数字类型 explicit_str: !!str 456 # 强制转为字符串类型 explicit_bool: !!bool true # 强制转为布尔值3.3 空集合与复杂嵌套混合示例empty_map: {} # 空对象 empty_list: [] # 空列表 混合嵌套列表里包含对象对象的值又是列表 mix_example: project: Alpha members: [John, Mary] project: Beta members: Tom Jerry3.4 结束符可选...# 表示当前文档结束四、YAML 在 AI 提示词中的应用YAML 因其结构清晰、可读性强的特点在 AI 提示词工程中得到了广泛应用。通过 YAML 格式组织提示词可以实现模块化、可复用的提示词管理。4.1 基础提示词模板使用 YAML 定义基础的 AI 提示词模板便于统一管理和调用。# 基础文本生成提示词模板 text_generation: system_prompt: | 你是一个专业的文本创作助手擅长生成高质量的文章内容。 请根据用户提供的主题和要求创作结构完整、语言优美的文章。 user_prompt_template: | 请以{topic}为主题创作一篇{length}字的{style}风格文章。 要求 1. 结构清晰包含引言、正文和结论 2. 语言生动富有感染力 3. 适当使用修辞手法 parameters: temperature: 0.7 max_tokens: 2000 top_p: 0.94.2 多轮对话场景配置对于复杂的多轮对话场景YAML 可以清晰地定义对话流程和上下文管理规则。# 多轮对话配置 conversation_flow: scenario: 技术咨询对话 context_window: 10 # 保留最近10轮对话作为上下文 roles: - name: assistant persona: 资深技术专家 tone: 专业、耐心、详细 - name: user persona: 技术开发者 tone: 直接、具体 stages: - stage: 问题澄清 assistant_prompt: | 您好我是技术专家助手。 为了更好地帮助您请详细描述您遇到的技术问题 1. 问题现象是什么 2. 在什么环境下出现 3. 您已经尝试过哪些解决方法 expected_user_input: 问题描述 - stage: 方案提供 assistant_prompt: | 根据您的问题我分析可能的原因有 {analysis} 建议的解决方案 {solutions} 请告诉我您希望先尝试哪个方案 expected_user_input: 方案选择或进一步提问/code/pre 4.3 复杂任务分解与链式调用 对于需要多个步骤完成的复杂任务可以使用 YAML 定义任务分解和链式调用逻辑。 复杂任务分解配置 complex_task: task_name: 技术博客创作 description: 从技术主题到完整博客文章的自动化创作流程 steps: step: 1 name: 主题分析 prompt: | 分析技术主题{topic}确定 核心概念和关键技术点 目标读者群体 文章的主要价值主张 model: gpt-4 output_format: bullet_points step: 2 name: 大纲生成 prompt: | 基于以下主题分析生成详细文章大纲 {step1_output} 要求 包含引言、3-5个主要章节、结论 每个章节要有明确的子标题 标注每个部分预计的字数 model: gpt-4 output_format: markdown step: 3 name: 内容填充 prompt: | 根据以下大纲撰写完整的文章内容 {step2_output} 写作要求 技术准确示例清晰 语言流畅逻辑连贯 适当添加代码示例和图表说明 model: gpt-4 output_format: markdown parameters: temperature: 0.8 max_tokens: 4000/code/pre五、YAML 在 Markdown 元数据区的应用YAML Front MatterYAML 前置元数据是 Markdown 文件中用于定义文档元数据的标准格式被广泛应用于静态网站生成器、文档系统和内容管理系统中。5.1 基础 Front Matter 语法在 Markdown 文件的开头使用三个短横线---包裹 YAML 内容定义文档的元数据。--- title: YAML 在 Markdown 中的完整指南 date: 2024-03-20 author: 技术作者 tags: - YAML - Markdown - 元数据 - 静态网站 categories: - 技术教程 - 开发工具 draft: false featured: true cover: /images/yaml-markdown-cover.jpg description: 本文详细介绍 YAML Front Matter 在 Markdown 文档中的应用包括基础语法、高级特性和实际案例。 --- 这里是 Markdown 正文内容 YAML Front Matter 让 Markdown 文档具备了结构化元数据管理能力...5.2 复杂元数据与自定义字段YAML Front Matter 支持复杂的数据结构可以定义嵌套对象、数组等满足各种定制化需求。--- # 博客文章配置 layout: post title: 深入理解 YAML Front Matter subtitle: 从基础到高级应用 slug: deep-dive-yaml-front-matter 作者信息嵌套对象 author: name: 张三 avatar: /authors/zhangsan.jpg bio: 资深全栈工程师专注于开发工具和效率提升 social: github: zhangsan-dev twitter: zhangsan_tech linkedin: zhangsan-professional 文章属性 metadata: reading_time: 8 # 预计阅读时间分钟 word_count: 2500 difficulty: 中级 prerequisites: - Markdown 基础 - YAML 基本语法 相关资源 resources: - title: YAML 官方规范 url: https://yaml.org/spec/ type: 官方文档 - title: Front Matter 示例库 url: https://github.com/frontmatter/examples type: 代码示例 发布配置 publish: date: 2024-03-20 14:30:00 update: 2024-03-25 10:15:00 schedule: true platforms: - 个人博客 - 技术社区 - 开发者周刊 SEO 优化 seo: title: YAML Front Matter 完整指南 | 技术博客 description: 学习如何在 Markdown 中使用 YAML Front Matter 管理元数据提升文档可维护性和SEO效果 keywords: - YAML - Front Matter - Markdown - 元数据 - 静态网站 og_image: /social/yaml-frontmatter-og.jpg twitter_card: summary_large_image 正文开始 通过 YAML Front Matter我们可以...5.3 实际应用案例以下是在不同场景中使用 YAML Front Matter 的实际案例。--- # 案例1技术文档页面 type: documentation product: API Gateway version: v2.1.0 status: stable last_reviewed: 2024-03-15 reviewers: - 李四 - 王五 related_docs: - /docs/api-authentication - /docs/rate-limiting - /docs/error-handling toc: true # 自动生成目录 --- API 配置参考 本文档详细介绍了 API Gateway v2.1.0 的配置选项...--- # 案例2项目展示页面 project: name: 智能文档分析系统 repo: https://github.com/org/smart-doc-analyzer demo: https://demo.smart-doc.example.com status: active version: 1.2.0 tech_stack: frontend: - React 18 - TypeScript - Tailwind CSS backend: - Python 3.11 - FastAPI - PostgreSQL ai_components: - OpenAI GPT-4 - LangChain - 向量数据库 team: name: 赵六 role: 全栈开发 contribution: 核心架构 name: 钱七 role: AI 工程师 contribution: 模型集成 timeline: start_date: 2023-09-01 milestones: - date: 2023-11-15 event: MVP 发布 - date: 2024-01-20 event: v1.0 正式版 - date: 2024-03-10 event: 用户突破 1000 metrics: users: 1250 documents_processed: 58420 avg_processing_time: 2.3s accuracy: 94.7 项目概述 智能文档分析系统是一个...--- # 案例3电子书章节 book: title: 现代 Web 开发实战 isbn: 978-7-121-45678-9 edition: 第一版 chapter: 5 chapter_title: YAML 在开发工作流中的应用 learning_objectives: - 掌握 YAML Front Matter 的基本语法 - 理解在静态网站生成器中的应用 - 学会定义复杂的文档元数据 - 能够设计可扩展的 Front Matter 结构 prerequisites: - 熟悉 Markdown 语法 - 了解基本的 YAML 数据结构 - 有使用 Git 的经验 estimated_time: 45分钟 difficulty: 初级到中级 resources: code_examples: /code/chapter5/ exercises: /exercises/chapter5/ further_reading: - Static Site Generators: The Complete Guide - YAML Specification 1.2 - JAMstack Architecture Best Practices --- # 第五章YAML 在开发工作流中的应用 在现代 Web 开发中...

相关新闻

小熊猫Dev-C++ 6.7.5安装配置全攻略:从零搭建C语言开发环境

小熊猫Dev-C++ 6.7.5安装配置全攻略:从零搭建C语言开发环境

1. 项目概述:为什么选择小熊猫Dev-C 6.7.5?如果你刚开始接触C语言,或者想找一个轻量、纯粹的C/C集成开发环境(IDE),那么“小熊猫Dev-C”这个名字你肯定不陌生。它不是一个新软件,而是经典Dev-C的…

2026/7/21 6:50:56阅读更多 →
单提交机 DM8 两节点实时主备部署与性能验证

单提交机 DM8 两节点实时主备部署与性能验证

本文档用于在一台提交机 VM 上复刻部署规范里的 2 节点 Data Watch 实时主备集群。核心做法是:同一台机器上放两个实例目录,实例名不同,所有服务端口错开,用本机 IP 模拟两台机器。 1. 架构与端口角色实例名实例目录归档目录实例端…

2026/7/21 6:50:56阅读更多 →
TMS320F28004x DMA模块架构解析与驱动开发实战

TMS320F28004x DMA模块架构解析与驱动开发实战

1. DMA模块核心架构与设计思路拆解 在嵌入式实时控制系统中,CPU的算力是宝贵的资源。当系统需要频繁地在内存与外设之间搬运数据时,例如ADC连续采样、SPI/UART通信数据收发,如果这些操作都由CPU通过软件循环来完成,会大量占用CPU时…

2026/7/21 6:50:56阅读更多 →
Dockerless:不跑测试、不搭环境,也能给 Coding Agent 的修复打分?

Dockerless:不跑测试、不搭环境,也能给 Coding Agent 的修复打分?

做 Coding Agent 训练和研发的团队,大概都绕不开一个又脏又累的环节:搭环境。不管是给 SFT 筛选高质量轨迹,还是给 RL 提供奖励信号,都需要一个 verifier(验证器)来判断 Agent 生成的 patch 是否真正解决了…

2026/7/21 16:17:44阅读更多 →
MobaXterm中文版终极指南:一站式远程开发解决方案

MobaXterm中文版终极指南:一站式远程开发解决方案

MobaXterm中文版终极指南:一站式远程开发解决方案 【免费下载链接】Mobaxterm-Chinese Mobaxterm simplified Chinese version. Mobaxterm 的简体中文版. 项目地址: https://gitcode.com/gh_mirrors/mo/Mobaxterm-Chinese 还在为Windows系统下繁琐的远程开发…

2026/7/21 16:17:44阅读更多 →
病区排班管理智能体开发文档

病区排班管理智能体开发文档

病区排班管理智能体开发文档 第一章:系统概述与需求分析 1.1 项目背景 病区排班管理是医疗机构日常运营中的关键环节,合理的排班制度能够确保护理工作的连续性和质量。本系统针对18名护士的病区环境,开发一套智能排班管理智能体,实现自动化、智能化的排班生成与管理。 …

2026/7/21 16:17:44阅读更多 →
Java JDK版本选择策略与LTS长期支持解析

Java JDK版本选择策略与LTS长期支持解析

1. Java版本选择背后的长期支持策略Java开发工具包(JDK)的版本选择一直是开发者面临的难题。Oracle官方将JDK版本分为两类:常规版本(每6个月发布一次)和长期支持版本(LTS)。这种分类直接影响了开…

2026/7/21 16:17:44阅读更多 →
ASP.NET MVC角色管理实战:从入门到高级应用

ASP.NET MVC角色管理实战:从入门到高级应用

1. ASP.NET MVC用户角色管理入门在Web应用开发中,用户角色管理是构建安全系统的基石。ASP.NET MVC框架提供了完善的基于角色的授权机制,让开发者能够轻松实现不同级别的访问控制。想象一下,一个电商平台需要区分普通用户、客服人员和系统管理…

2026/7/21 16:17:44阅读更多 →
自动驾驶核心算法盘点|目标跟踪与轨迹预测篇

自动驾驶核心算法盘点|目标跟踪与轨迹预测篇

目录 01 目标跟踪篇:从 3D 极简基线到多模态融合 1. AB3DMOT:3D 空间中的极简基线 2. CenterPoint:基于中心点的检测与跟踪一体化 3. EagerMOT:相机与激光雷达的“急切”融合 02 轨迹预测篇:从单体推演到…

2026/7/21 16:15:44阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 0:51:49阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 0:51:49阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 0:51:49阅读更多 →
Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

Windows+macOS 通用 OpenClaw 部署流程,内置依赖一键启动智能桌面助手

📌教程适配:OpenClaw v2.7.9 | 兼容 Windows10/11、macOS 双系统 📖前言 当下各类本地 AI 工具层出不穷,多数产品仅能完成文字问答交互,很难直接操控电脑执行实际操作。OpenClaw,业内常称小龙虾 AI&#…

2026/7/21 0:01:46阅读更多 →
Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

Codex 接入后 Bug 反增?复盘从个人演示到团队协作的“流程陷阱”

聊《一次Codex项目复盘,问题最后出在流程而不是模型》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做&…

2026/7/21 0:01:46阅读更多 →
手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

手把手搓一个五子棋游戏,零代码也能当“游戏开发者”

大家好,还是我。前几期带大家做了心情日记本和可视化大屏,后台有朋友留言:“能不能教点好玩的?我想做游戏,但一行代码都不会。”行,这期就安排。今天的目标:从零做一个五子棋游戏。 带AI对战、三…

2026/7/21 0:03:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/20 22:51:39阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/20 18:51:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/20 18:51:18阅读更多 →