导航

1-1 Markdown学习

Posted on 2024-08-28 10:35  20221301  阅读(112)  评论(0编辑  收藏  举报

一. Markdown 讲解及语法

(一)、Markdown 简介

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档。它的目标是实现易读易写,让人们专注于内容而不是排版。

(二)、Markdown 基本语法

1、标题

  • 使用 # 表示标题级别,# 的数量对应标题级别,一级标题用一个 #,二级标题用两个 #,以此类推。
    • 例如:
      • # 一级标题
      • ## 二级标题
      • ### 三级标题

2、段落

直接输入文本即可形成段落,段落之间用一个空行隔开。

3、强调

  • 粗体:使用两个 * 或两个 _ 包裹文本。例如:**粗体文本**__粗体文本__
  • 斜体:使用一个 * 或一个 _ 包裹文本。例如:*斜体文本*_斜体文本_

4、列表

  • 有序列表:使用数字加 . 然后跟一个空格表示。例如:
    (1). 第一项
    (2). 第二项
    (3). 第三项
  • 无序列表:使用 -*+ 然后跟一个空格表示。例如:
    • 第一项
    • 第二项
    • 第三项

5、引用

使用 > 表示引用。例如:

这是一个引用的内容。

6、链接

  • 内联链接:[链接文本](链接地址)
  • 参考式链接:在文档的任意位置定义链接,然后在需要使用链接的地方引用定义。例如:
    • 定义链接:[链接文本][链接标识],然后在文档末尾定义链接标识:[链接标识]: 链接地址

7、图片

  • 内联图片:![图片替代文本](图片地址)
  • 参考式图片:与参考式链接类似,先定义图片,然后在需要使用图片的地方引用定义。

8、代码

  • 行内代码:使用反引号 '包裹代码。例如:这是一段代码
  • 代码块:使用三个反引号包裹代码,并可以在开头的反引号后面指定代码语言,以获得语法高亮。例如:
print("Hello, World!")

二. Markdown 工具推荐

(一)、线上工具

Typora:简洁美观的 Markdown 编辑器,支持实时预览,功能强大。
StackEdit:在线 Markdown 编辑器,可以与 Google Drive、Dropbox 等云存储服务集成。

(二)、线下工具

Visual Studio Code:一款强大的代码编辑器,安装 Markdown 插件后可以很好地编辑 Markdown 文件。
Notepad++:支持 Markdown 语法高亮,适合简单的 Markdown 编辑。

三. Markdown 高级用法

(一)、插入数学公式

  • Markdown 本身不支持直接插入数学公式,但很多 Markdown 编辑器和查看器支持通过 LaTeX 语法来实现。例如在 Typora 中:
    • 行内公式:键盘上按下 Ctrl + 4 打出两个 $,在 $ 中间输入内容即可自动转换为数学模式,如 $x + y = z$
    • 行间公式:先打出 $$,在第二个 $ 后面按回车键(Enter)即可进入行间公式模式,例如:
      $$
      \begin{align}
      f(x)&=x^2\
      &=\sqrt{x}+1\
      &=\sin(x)
      \end{align
      }
      $$

(二)、绘图

  • Markdown 本身并不能直接绘图,但可以结合一些工具或插件来实现。例如,使用 Mermaid 语法可以在支持的 Markdown 环境中绘制流程图、时序图等。以下是一个简单的 Mermaid 流程图示例:
graph TD; A-->B; B-->C; C-->D;
  • 还可以使用 PlantUML 等工具来绘制各种复杂的图形,不过这通常需要在特定的 Markdown 编辑器中安装相应插件并进行配置。

(三)、制作 PPT

  • 有一些工具可以让你使用 Markdown 来制作 PPT,比如 Slidev。
  • Slidev 是一个基于 Node.js 和 Vue.js 开发的工具库,它允许你用 Markdown 编写内容,并将其轻松转化为 PPT。你可以在 Markdown 中设置标题、正文、列表、代码高亮、插入公式等,还能添加各种好看的主题、自定义网页交互组件等,并且可以方便地导出成 PDF 或者直接部署成一个网页使用。

(四)、格式转换

  • 转 PDF
    • pandoc:这是一个功能强大的文档转换工具,可以在命令行中使用。例如,在安装 pandoc 后,进入需要转换的文件目录,输入 pandoc xxx.md -o xxx.pdf --pdf-engine=xelatex 即可将 Markdown 文件 xxx.md 转换为 PDF 文件 xxx.pdf
    • 使用 Python 库:如 markdown 库和 pdfkit 库结合使用。首先安装所需库和工具(如 pip install markdown pip install pdfkit 以及下载 wkhtmltopdf),然后使用以下代码示例进行转换(假设要转换的文件为 input.md,输出文件为 output.pdf):
import pdfkit
from markdown import markdown

input_filename = 'input.md'
output_filename = 'output.pdf'

with open(input_filename, encoding='utf-8') as f:
    text = f.read()
html = markdown(text, output_format='html', extensions=('tables'))  # markdown 转 html
htmltopdf = r'd:\htmltopdf\wkhtmltopdf\bin\wkhtmltopdf.exe'
configuration = pdfkit.configuration(wkhtmltopdf=htmltopdf)
pdfkit.from_string(html, output_path=output_filename, configuration=configuration, options={'encoding': 'utf-8'})  # html 转 pdf
  • 转其他格式:同样可以使用 pandoc 来转换为 HTML、Word 等格式,具体命令根据需求进行调整,如将 Markdown 转 HTML 可以使用 pandoc xxx.md -s -o xxx.html

四. Markdown 在 AIGC 的提示词工程中的应用

在 ChatGPT 等 AIGC 中,Markdown 可以用于格式化提示词,使输入更加清晰、有条理,便于模型理解和生成更符合要求的输出。例如:

  • 可以使用标题(# 一级标题、## 二级标题等)来区分不同的主题或部分。
  • 利用列表(- 列表项、1. 有序列表项)来列举要点或步骤。
  • 通过代码块(代码内容)来插入特定格式的文本,比如 JSON 格式数据、代码示例等,让模型明确按照特定格式进行输出。
  • 使用分隔线(--- 或 *** 或 ___)来划分不同的内容模块。

总之,合理运用 Markdown 格式可以帮助你更有效地与 AIGC 进行交互,获得更满意的结果。

线上工具推荐:

  • Typora:支持即时渲染技术,允许用户在编辑时即时看到格式化后的内容,还支持数学编辑,并且可以与 Word 直接进行格式转换。
  • StackEdit:一个流行的开源在线 Markdown 编辑器,提供实时预览、图片上传,以及将文件发布/保存到 Blogger、WordPress、GitHub 等功能,还支持 LaTeX 数学表达式和 UML 图等 Markdown 扩展,并且可以离线工作,提供 Chrome 应用程序和扩展。

线下工具推荐:

  • Visual Studio Code(VSCode):原生支持 Markdown 语法,通过安装如“Markdown All in One”等插件,可以增强 Markdown 的编写和预览体验,适合需要进行复杂编程和文档编写的用户,也是程序员广泛使用的编辑器之一。
  • Markdown DevTool(MDTU):一款基于 ByteMD 开发的 Markdown 编辑器,支持微信样式的 Markdown,提供了有序列表、无序列表、引用、代码、标题等多种 Markdown 语法的编辑功能,适合在本地进行 Markdown 文档编写的用户。

如何在 ChatGPT 等 AIGC 中使用 Markdown 提示词工程提高效率?

通过询问 AI 我得到了这样的答案:

在 ChatGPT 等 AIGC 中使用 Markdown 提示词工程提高效率

一、使用标题组织思路

  • 在向 AIGC 提问时,可以使用不同级别的标题(######等)来明确问题的结构和层次。例如:
    • # 问题主题
    • ## 子问题一
    • ### 具体要点一
    • ### 具体要点二
  • 这样可以帮助你更好地组织问题,也让 AIGC 更容易理解问题的重点和逻辑关系,从而给出更准确和全面的回答。

二、利用列表列举要点

  • 对于需要明确列举的要点、步骤或需求,可以使用列表格式(-1.等)。比如:
    • - 要点一
    • - 要点二
    • 1. 步骤一
    • 2. 步骤二
  • 这使得问题更加清晰明了,AIGC 可以针对每个要点进行详细的回答,避免遗漏。

三、插入代码块提供示例

  • 当需要提供特定的代码示例、数据格式或其他格式化的内容时,可以使用代码块(```)。例如:
print("Hello, World!")
  • 或者
{
    "key": "value",
    "list": [1, 2, 3]
}
  • 这有助于 AIGC 准确理解特定的格式要求,并给出符合该格式的回答。

四、使用分隔线划分模块

  • 可以使用分隔线(---***___等)来划分不同的问题模块或场景。例如:

场景一问题描述

具体问题内容……

场景二问题描述

具体问题内容……

  • 这样可以让 AIGC 更好地区分不同的问题情境,分别给出针对性的回答。

五、强调关键信息

  • 通过使用粗体(**文本**)或斜体(*文本*)来强调问题中的关键信息。例如:
    • **重要概念**:请详细解释这个概念在特定领域的应用。
    • *关键要点*:请围绕这个要点进行回答。
  • 突出关键信息可以引导 AIGC 更加关注重要内容,提高回答的针对性和准确性。

六、结合引用增强背景信息

  • 使用引用(> )来提供问题的背景信息或引用相关的资料。例如:

根据某研究报告指出……请基于此回答以下问题。

  • 这可以为 AIGC 提供更多的上下文信息,帮助它更好地理解问题并给出更有深度的回答。

1、通过以上的学习,我发现一些基本的markdown格式是我已经掌握的,但经常不用也会有一些生疏,对于一些比较高级的和平时不用经常用的操作如插入特定语言的代码、绘图编写ppt等是我今天刚掌握的,也自己进行了一些练习。

2、在之前我并没有深入了解过提示词框架,通过对 AI 的提问,我了解到:

CDO、BROKE、CRISP 这三个提示词框架的介绍:

CDO(Context-Details-Outcome)框架

  • Context(上下文):描述问题或任务所处的背景情况,包括相关的人物、时间、地点、事件等信息,为后续的具体描述提供一个整体的环境背景。
  • Details(细节):详细阐述问题或任务的具体内容,包括具体的要求、限制条件、关键要素等,让接收者能够全面准确地理解问题的核心要点。
  • Outcome(结果):明确期望的最终结果或目标,包括具体的指标、标准、效果等,为问题的解决或任务的完成提供一个明确的方向和衡量标准。

BROKE(Background-Reason-Options-Knowledge-Execution)框架

  • Background(背景):介绍问题产生的背景信息,包括相关的历史、现状、趋势等,帮助理解问题的来龙去脉。
  • Reason(原因):分析问题产生的原因,包括直接原因和根本原因,为解决问题提供依据。
  • Options(选项):提出解决问题的各种可能方案或选择,包括不同的方法、策略、途径等,为决策提供参考。
  • Knowledge(知识):调用相关的知识、经验、技能等,为解决问题提供支持和保障。
  • Execution(执行):明确具体的执行步骤、行动计划、时间表等,确保问题能够得到有效解决。

CRISP(Context-Requirements-Ideas-Solution-Plan)框架

  • Context(上下文):与 CDO 框架中的 Context 类似,描述问题所处的背景和环境。
  • Requirements(需求):明确具体的需求和期望,包括功能需求、性能需求、用户需求等,为解决方案的设计提供指导。
  • Ideas(想法):提出各种可能的解决方案或创意,包括创新的思路、方法、技术等,为进一步的筛选和优化提供基础。
  • Solution(解决方案):确定最终的解决方案,包括具体的设计、实施、测试等步骤,确保方案的可行性和有效性。
  • Plan(计划):制定详细的实施计划,包括时间表、责任人、资源需求等,确保解决方案能够按时、按质、按量完成。

同时还搜索到了一些其他的常见的提示词框架:

PEEL:Point(观点)、Evidence(证据)、Explanation(解释)、Link(关联)。

STAR:Situation(情景)、Task(任务)、Action(行动)、Result(结果)。

现在以学习到的 STAR 和 CRISP 框架为例,用 Markdown 格式设计一个通用模板:

STAR 框架提示词模板

一、Situation(情景)

描述问题发生的背景、环境或相关情况。

二、Task(任务)

明确具体的任务目标或要解决的问题。

三、Action(行动)

列举为完成任务所采取的具体行动步骤。

四、Result(结果)

说明行动所产生的结果或预期的成果。
以下是用 Markdown 格式为 CRISP 框架设计的通用模板:

CRISP 框架提示词模板

一、Context(上下文)

描述问题产生的背景、相关的情况和环境。

二、Requirements(需求)

明确具体的需求和期望,包括功能、性能、用户等方面的要求。

三、Ideas(想法)

列举各种可能的解决方案或创意想法。

四、Solution(解决方案)

确定最终的解决方案,包括具体的设计和实施步骤。

五、Plan(计划)

制定详细的实施计划,包括时间表、责任人、资源需求等。