首页 > 其他分享 >1-1 Markdown学习

1-1 Markdown学习

时间:2024-08-28 10:37:48浏览次数:8  
标签:Markdown 代码 AIGC 学习 使用 格式 链接

一. 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(计划)

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

标签:Markdown,代码,AIGC,学习,使用,格式,链接
From: https://www.cnblogs.com/bky20221301/p/18384116

相关文章

  • 深度学习-pytorch-basic-002
    from__future__importprint_functionimporttorchastx=t.Tensor(5,3)#构建(5,3)的矩阵,只是分配空间,未初始化print(x)tensor([[1.0194e-38,8.4490e-39,1.0469e-38],[9.3674e-39,9.9184e-39,8.7245e-39],[9.2755e-39,8.9082e-39,9.9184......
  • C++学习随笔——算法题:全排列问题
    算法题:输入一个不存在重复字符的字符串,打印出字符串中字符的全部排列组合。代码实现:#include<iostream>#include<string>#include<vector>#include<algorithm>//std::swapvoidpermute(std::stringstr,intleft,intright){if(left==right){st......
  • C++学习随笔——C++STL中binary_search的使用方法
    std::binary_search是C++标准模板库(STL)中的一个算法,用于在有序范围内查找某个值是否存在。它基于二分查找算法,时间复杂度为O(logn)。std::binary_search的基本用法:  boolbinary_search(ForwardIteratorfirst,ForwardIteratorlast,constT&value);first:指......
  • C++学习随笔——什么是迭代器
    迭代器是C++标准模板库(STL)中用于遍历容器元素的对象或概念。它们提供了一种通用的方式来访问容器中的元素,而不需要了解容器的底层实现。迭代器在设计上类似于指针,但功能更为强大和灵活。 1.迭代器是什么?迭代器是一个抽象概念,它为容器(如vector、list等)提供了一种统......
  • 电机foc学习渠道已开放,欢迎各位加入
    凌鸥学园旨在为电机控制爱好者提供学习交流成长平台,缓解电控行业人才缺口扩大趋势,共同打造繁荣行业生态。我们将全面整合LKSMCU相关资料,包括开发环境、应用笔记、教学视频、学习指导等,并设有专业课程。课程图:除此之外通过L1-L3考试可获得:1、100元奖学金2、价值400元凌鸥......
  • 对想学习大模型技术从业者的建议:学习大模型的三个方向
    技术的价值在于应用,理论与实践相结合才能事半功倍学习大模型的三个方向很多人学习人工智能技术就一心扑在技术上,认为自己把技术学好了就一定能找到工作,一定能成为公司技术部核心成员;但大家要明白的一个事实是,技术是为业务服务的,技术的作用是解决业务问题,而不是搞学术研......
  • Java学习笔记9-数据类型的转化
    一.显示转化在Java中,数据类型的转换主要分为两种:自动类型转换(也称为隐式类型转换)和强制类型转换(也称为显式类型转换)。1.自动类型转换(隐式类型转换)自动类型转换是指在赋值或运算过程中,较小的数据类型自动转换为较大的数据类型。Java编译器会自动进行这种转换,不需要程序员显式指......
  • Java学习笔记10-运算符
    Java运算符是用于执行各种数学、逻辑和位运算的符号。Java中的运算符可以分为以下几类:一、算术运算符用于执行基本的数学运算,如加、减、乘、除和取模。常用的算术运算符包括+、-、*、/和%。算数运算符详解Java中的算术运算符包括加、减、乘、除、取模等,下面分别详细介绍。1.1......
  • 如何有效学习Android Framework:从系统编译到Framework深入
    Android开发者中,不少人希望从应用开发过渡到系统层次的开发,特别是深入理解和掌握Framework的开发技能,这不仅能为你打开新的职业大门,还能让你更深入地理解Android系统的运行机制。本文将介绍如何从系统编译开始,逐步深入到系统应用和Framework的学习路径。1.掌握系统编译:打好基础......
  • Markdown学习
    Markdown学习一.AI平台返回的内容1.Markdown深入浅出讲解及其详细语法Markdown是一种轻量级的标记语言,以其简洁、易读、易写的特点,在文档编辑、博客写作、代码笔记等领域得到广泛应用。它允许用户通过简单的文本格式编写文档,并轻松转换为HTML等富文本格式,无需复杂的排版操作......