Markdown 写作与排版教程写作目的有些技术文章内容正确但排版不够清晰读者阅读和复制示例时容易遇到困难。本文介绍常见 Markdown 语法并说明代码块、链接、图片和 Mermaid 示例的兼容性问题。本文以 CommonMark/GFM 为基础。表格、删除线和任务列表属于常见扩展Mermaid、图片尺寸、图片对齐和原始 HTML 是否可用取决于发布平台。发布前应在目标平台实际预览。目录1. Markdown 是什么2. 基础语法3. 代码和图片4. 链接、锚点和 Mermaid5. 综合示例6. 排版建议7. 总结1. Markdown 是什么Markdown 是一种轻量级标记语言。作者使用易读、易写的纯文本标记编写文档渲染器再将其转换为 HTML。Markdown 适合编写技术文档、博客文章、项目说明和 README 文件。Markdown 没有一个完全统一的扩展集合。常见环境包括CommonMark更接近基础规范GFMGitHub Flavored Markdown支持表格、删除线等扩展CSDN Markdown包含平台自定义的图片尺寸和对齐写法支持 Mermaid 的编辑器或网站可以渲染 Mermaid 图表。不要把某个平台的扩展写成所有 Markdown 渲染器都支持的通用语法。2. 基础语法2.1 标题ATX 风格标题使用 1 至 6 个井号并在井号后添加空格# 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题通常一篇文章只使用一个一级标题章节使用二级标题小节使用三级标题。标题的字体大小、粗细和颜色由渲染器主题决定。2.2 段落和换行连续文本行通常属于同一个段落段落之间使用空行分隔这是第一段。 这一行仍然属于第一段。 这是第二段。普通换行是否在页面上显示为换行取决于渲染器。需要强制换行时可以使用反斜杠这一行末尾使用反斜杠\ 下一行会显示为换行。也可以使用 HTML 的br但这属于平台相关写法。缩进并不总是错误。通常 4 个空格或一个 Tab 可能表示缩进代码块列表内部的缩进规则还与列表标记的位置有关。因此不要笼统地说“每行开头不能有缩进”。2.3 强调*斜体文本* _斜体文本_ **粗体文本** __粗体文本__删除线通常属于 GFM 扩展~~删除线文本~~2.4 列表无序列表可以使用短横线、星号或加号建议全文统一使用短横线- 第一项 - 第二项 - 第三项有序列表使用数字加英文句点建议连续编号1. 第一项 2. 第二项 3. 第三项许多渲染器会自动显示连续编号但第一个编号可能影响列表的起始数字不能假设所有平台都会忽略源文件编号。嵌套列表需要增加缩进- 一级项目 - 二级项目 - 另一个二级项目 - 另一个一级项目2.5 链接行内链接的格式是[链接文本](https://example.com)参考链接可以集中定义这是一篇关于 [Markdown][markdown-doc] 的文章。 [markdown-doc]: https://commonmark.org/参考链接定义不一定必须放在文档最后但集中放置在文档末尾通常更容易维护。2.6 图片标准 Markdown 图片语法是替代文本会在图片无法显示时提供提示也会被屏幕阅读器读取因此不建议使用没有意义的Alt作为内容。没有替代文本时可以使用空文本example.com/image.png只是占位地址不保证存在。发布文章时应替换成真实地址或仓库中的相对路径。3. 代码和图片3.1 行内代码和代码块行内代码使用一对反引号包围运行 python main.py 启动程序。代码块使用三个反引号。指定语言后支持语法高亮的渲染器可以使用对应的规则defhello_world():print(Hello, World!)hello_world()常见语言标识包括python、cpp、javascript、html、css和bash。如果要展示本身含有三个反引号的 Markdown 源码外层必须使用四个或更多反引号python print(Hello, World!) 外层使用四个反引号后内部的三个反引号不会提前关闭外层代码块。也可以用波浪线代码块作为外层标记。3.2 表格表格通常属于 GFM 扩展| 姓名 | 年龄 | 城市 | | --- | ---: | :---: | | Alice | 18 | 北京 | | Bob | 20 | 上海 |3.3 图片尺寸和对齐标准 Markdown 没有统一的图片宽度、高度和对齐语法。若平台允许 HTML可以使用imgsrchttps://example.com/image.pngalt示例图片width60height60CSDN 等平台可能支持自定义写法例如这段写法不应标记为通用 Markdown换到其他渲染器后尺寸和对齐可能失效。4. 链接、锚点和 Mermaid4.1 文档内锚点自动生成的标题锚点没有统一规则。不同平台可能会转换大小写、空格、标点和中文字符因此长文档可以使用显式锚点a idsection-one/a ## 第一部分 返回 [第一部分](#section-one)。这依赖平台允许原始 HTML。如果平台会过滤 HTML应改用该平台生成的标题链接。不要使用无法确认目标的链接[回到顶部](#1)如果标题是# 1. Markdown 是什么其自动锚点通常不会简单地等于#1。本文在开头设置了idtop因此统一使用[回到顶部](#top)4.2 MermaidMermaid 是独立的文本图表工具。只有支持 Mermaid 的渲染器才会将下面的代码块绘制成图表。4.2.1 流程图是否开始是否完成提交结果继续处理常见节点写法包括A[文本]矩形A(文本)圆角矩形A((文本))圆形A{文本}菱形。--表示带箭头的连接---表示没有箭头的连接。4.2.2 序列图系统用户系统用户登录请求登录成功在participant U as 用户中U是内部标识符用户是显示名称。4.2.3 甘特图2025-05-012025-05-022025-05-032025-05-042025-05-052025-05-062025-05-072025-05-082025-05-092025-05-102025-05-112025-05-122025-05-132025-05-142025-05-15设计开发测试发布第一部分第二部分项目进度dateFormat用于指定日期格式。done、active等状态是否支持取决于 Mermaid 版本。5. 综合示例下面是一个完整的 Markdown 源码示例。因为示例内部还包含代码块所以使用四个反引号作为外层代码块a idexample-top/a # Markdown 示例文档 ## 目录 - [简介](#example-intro) - [代码示例](#example-code) - [流程图](#example-flowchart) - [总结](#example-summary) a idexample-intro/a ## 简介 本文展示如何组织一篇包含标题、列表、代码和图表的技术文章。 ### 项目功能 - 读取数据 - 清洗数据 - 生成处理结果。 a idexample-code/a ## 代码示例 下面的代码需要存在 data.csv且文件中包含 date 和 age 列。 python import pandas as pd data pd.read_csv(data.csv) data data.dropna().drop_duplicates() data[date] pd.to_datetime(data[date]) data[age] data[age].astype(int) data.to_csv(cleaned_data.csv, indexFalse) a idexample-flowchart/a ## 流程图 mermaid flowchart TD A[读取数据] -- B[清洗数据] B -- C[生成结果] a idexample-summary/a ## 总结 清晰的标题层级、稳定的代码块和明确的链接可以提高文章的可读性。 [回到顶部](#top)这里使用四反引号包住整个示例因此内部的 Python 和 Mermaid 代码块不会破坏外层结构。6. 排版建议6.1 保持标题层级清晰建议使用一个一级标题章节使用二级标题小节使用三级标题。不要为了显示更大的字体跳过层级。6.2 让示例可复制代码示例应使用正确的语言标识和完整的围栏。需要展示 Markdown 源码时使用四反引号或波浪线作为外层围栏。6.3 说明平台差异文章使用 GFM、Mermaid、CSDN 图片扩展或原始 HTML 时应明确写出兼容范围不要把平台扩展描述为 Markdown 的通用语法。6.4 提供有意义的替代文本图片替代文本应描述图片内容或用途例如项目流程图不要只写Alt或图片。6.5 发布前预览发布前至少检查标题层级是否正确代码围栏是否成对链接和图片是否能够访问Mermaid 是否能正常渲染目标平台是否支持所使用的扩展移动端换行和表格是否可读。7. 总结Markdown 的基础语法简单但不同渲染器支持的扩展并不完全相同。写作时应先确定目标平台再统一标题、段落、列表、代码、图片和链接的写法。对于包含代码块的 Markdown 源码使用四反引号作为外层围栏对于 Mermaid、图片尺寸和对齐语法应标明它们的兼容范围。这样既能保持文章结构清晰也能减少读者复制示例时遇到的解析错误。回到顶部
抖音无水印批量下载器:3分钟学会高效保存抖音精彩内容 抖音无水印批量下载器:3分钟学会高效保存抖音精彩内容 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppo…
C++ MQTT客户端高可靠通信的5大核心优化策略 1. 项目概述:为什么是C与MQTT? 在物联网(IoT)项目里摸爬滚打这么多年,我见过太多通信方案从雄心勃勃到一地鸡毛。很多团队一开始会迷恋于各种花哨的协议栈或云服务,却忽略了最根本的通信可靠性与效率。当设…
Unity Timeline集成Spine动画:实现2D骨骼动画的精确时序控制 1. 项目概述:当Timeline遇见Spine 在Unity项目里做动画,尤其是涉及到复杂的过场、剧情演出或者需要精确控制多个动画元素时序的时候,Timeline绝对是个神器。它能让你像剪辑视频一样,把动画、音频、特效、摄像机运动等轨道拖拽到一…
2026长沙家里卫生间漏水、阳台漏水、楼顶漏水、地下室渗水、阳光房漏水靠谱防水公司推荐 - 吉林同城获客 2026长沙家里卫生间漏水、阳台漏水、楼顶漏水、地下室渗水、阳光房漏水靠谱防水公司推荐 本文聚焦长沙本地防水补漏核心痛点,结合湘中盆地超长梅雨季、春季回南天、夏季对流暴雨、湘江沿岸高水汽的湿润气候,覆盖老城…
仅限首批内测用户知晓的Kimi搜索加速通道:通过自定义User-Agent+Accept-Language组合提升响应速度47.2%(附压测数据截图) 更多请点击: https://intelliparadigm.com 第一章:Kimi联网搜索技巧 Kimi 支持实时联网搜索,但其效果高度依赖于提问的结构化程度与关键词的精准性。掌握高效提问策略,可显著提升信息获取的准确性与响应速度。 构建高信噪比查询…
为什么92%的开发者选错免费AI编程工具?基于17,341份问卷+217个真实开发会话分析,揭晓3个致命误判信号 更多请点击: https://intelliparadigm.com 第一章:为什么92%的开发者选错免费AI编程工具?基于17,341份问卷217个真实开发会话分析,揭晓3个致命误判信号 在对17,341名活跃开发者开展的匿名问卷调研及217段完整IDE内真实编码会话录…
XXL-JOB调度中心从入门到实战:分布式任务调度一文搞定 本文适合刚接触分布式任务调度的开发者,以及准备面试的同学。从核心概念到实战部署,代码简洁易懂,快速上手企业级调度中心。 一、什么是调度中心? 一句话: 调度中心就是"定时任务管理平台",统一…
为什么你的ChatGPT旅游攻略总被退订?——127份用户反馈分析出的4类致命错误及权威修正清单 更多请点击: https://codechina.net 第一章:为什么你的ChatGPT旅游攻略总被退订?——127份用户反馈分析出的4类致命错误及权威修正清单 我们对127份真实用户退订旅游攻略的反馈进行了语义聚类与根因分析,发现83%的退订行为并非源…
2026年7月最新太原百达翡丽官方售后客服电话及服务网点地址查询 - 百达翡丽官方售后中心 2026年7月,百达翡丽在太原的官方售后服务体系完成更新,客户可通过全国统一客服热线与服务网点获得直接、合规的腕表养护与维修支持。所有售后服务均遵循品牌直营标准,覆盖全国范围,客户可选择到店或邮寄方式,但需…
【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC 可视化利器:JConsole、VisualVM、JMC 实战 本文是《JVM调优实战》专栏第 16 讲。 引言 上一讲我们介绍了 JDK 命令行工具箱,它们轻量、快速,但有一个明显的短板:不直观。面对 jstat -gcutil 输出的一行行数字,你能感知 GC 频率,却难以一眼看出内存泄漏的趋势;你能用 js…
什么是PCTFE?医药高端包装的“防潮王牌“材料 ——日氟荣高分子材料(上海)有限公司 专业深耕氟材料领域很多人好奇,高端药品包装为什么比普通包装更防潮、更稳定、保质期更长?核心秘密,就藏在一种特种氟材料——PCTFE聚三氟氯乙烯里!作为国内领先的氟材…
2026年7月最新太原百达翡丽官方售后客服电话及服务网点地址查询 - 百达翡丽官方售后中心 2026年7月,百达翡丽在太原的官方售后服务体系完成更新,客户可通过全国统一客服热线与服务网点获得直接、合规的腕表养护与维修支持。所有售后服务均遵循品牌直营标准,覆盖全国范围,客户可选择到店或邮寄方式,但需…
【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC 可视化利器:JConsole、VisualVM、JMC 实战 本文是《JVM调优实战》专栏第 16 讲。 引言 上一讲我们介绍了 JDK 命令行工具箱,它们轻量、快速,但有一个明显的短板:不直观。面对 jstat -gcutil 输出的一行行数字,你能感知 GC 频率,却难以一眼看出内存泄漏的趋势;你能用 js…
什么是PCTFE?医药高端包装的“防潮王牌“材料 ——日氟荣高分子材料(上海)有限公司 专业深耕氟材料领域很多人好奇,高端药品包装为什么比普通包装更防潮、更稳定、保质期更长?核心秘密,就藏在一种特种氟材料——PCTFE聚三氟氯乙烯里!作为国内领先的氟材…
[C++]内存管理:串顺序存储的内存回收 在串(字符串)的顺序存储中,内存回收的方式取决于字符串的存储方式以及所使用的编程语言和相关库。以下以 C 为例进行说明,因为 C 对内存管理有较为直接的控制。 1. 基于 char 数组的串顺序存储 如果使用普通的 char 数组来存储字…
移动端游戏功耗测试实战:电流、功率、亮度和场景对比 移动端游戏功耗测试:先控制变量,再比较优化是否真的省电 摘要:功耗测试最容易犯的错误,是拿两次不同温度、不同亮度、不同场景的平均功率直接比较。本文给出一套可复现的游戏功耗测试方法,覆盖引擎特性验证、版本回归和黑盒体验测试,并说明如何把功耗与帧率、温控、CPU/G…
足球口袋教练 HarmonyOS 离线应用实战(03/20):ArkUI 首页仪表盘搭建 本文是“足球口袋教练 HarmonyOS 离线应用实战”系列第 3 篇。示例项目是一个 HarmonyOS / ArkTS / ArkUI 编写的离线足球训练助手,围绕真实页面、真实截图和可复现操作展开。 本篇要解决的问题 训练 App 的首页不能只展示欢迎语,它要解决“我现在该点哪…