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/24 1:35:47 阅读更多 →
单提交机 DM8 两节点实时主备部署与性能验证

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

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

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

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

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

2026/7/25 5:02:00 阅读更多 →

最新新闻

3分钟学会:如何让电子PDF秒变专业扫描件

3分钟学会:如何让电子PDF秒变专业扫描件

3分钟学会:如何让电子PDF秒变专业扫描件 【免费下载链接】lookscanned.io 📚 LookScanned.io - Make your PDFs look scanned 项目地址: https://gitcode.com/gh_mirrors/lo/lookscanned.io 在数字时代,你是否经常需要将电子文档转换为…

2026/7/25 11:34:36 阅读更多 →
国赛复活赛 :这个建议怎么样?

国赛复活赛 :这个建议怎么样?

简 介: : 针对部分队伍因场地限制或校内竞争遗憾错失国赛晋级机会的情况,建议在国赛正赛前增设自愿报名的补赛环节。补赛仅取前两名成绩纳入正式排名,且设置严苛条件:最终总成绩需进入国赛一等奖前十才可获奖&#xff…

2026/7/25 11:34:36 阅读更多 →
三步解锁游戏机隐藏技能:让你的Switch/PSVita变身全能B站播放器

三步解锁游戏机隐藏技能:让你的Switch/PSVita变身全能B站播放器

三步解锁游戏机隐藏技能:让你的Switch/PSVita变身全能B站播放器 【免费下载链接】wiliwili 第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili 你是…

2026/7/25 11:34:36 阅读更多 →
PIVlab开源粒子图像测速:5分钟学会专业流体可视化分析

PIVlab开源粒子图像测速:5分钟学会专业流体可视化分析

PIVlab开源粒子图像测速:5分钟学会专业流体可视化分析 【免费下载链接】PIVlab Particle Image Velocimetry tool / app. Standalone or Matlab Toolbox - free and open. 项目地址: https://gitcode.com/gh_mirrors/pi/PIVlab 想要研究流体运动却担心昂贵的…

2026/7/25 11:34:36 阅读更多 →
水下垃圾清理机器人视觉系统:改进YOLOv3与光学增强技术

水下垃圾清理机器人视觉系统:改进YOLOv3与光学增强技术

1. 项目概述 这个名为"yolo13-C3k2-WDBB"的海下垃圾清理机器人环境感知系统,本质上是一个专为水下作业设计的智能视觉识别方案。作为长期从事水下机器人开发的工程师,我深知在浑浊水域实现可靠目标检测的挑战性——普通摄像头在水下会面临能见…

2026/7/25 11:34:36 阅读更多 →
AI工具组合方案:12.3倍人效提升的实战经验

AI工具组合方案:12.3倍人效提升的实战经验

1. 项目背景与核心价值 去年第三季度,我们团队在客户服务、内容生产、数据分析三个典型业务场景中,系统性地测试了7大类32款AI工具的实际效能。经过为期三个月的AB测试和效能追踪,最终沉淀出一套可复用的AI工具组合方案,在保证质量…

2026/7/25 11:33:36 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

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

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

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

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

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

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

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

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

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

2026/7/24 18:52:18 阅读更多 →

月新闻