Quarto学习笔记

Quarto学习笔记
第一章.qmd.qmd 是 Quarto 系统的源文件格式全称 Quarto Markdown。你可以把它理解为一种“包含了代码执行指令的 Markdown 文件”。它的核心逻辑是“内容即代码代码即结果”。以下是 ⁠.qmd⁠ 文件的三个主要组成部分1. YAML 头部 (YAML Header)这是文件的“元数据”区域位于文件最上方用 ⁠---⁠ 包裹。它定义了文档的全局设置。示例yaml---title: 我的数据分析报告author: 姓名format: html---这里指定了文档的标题、作者以及希望导出的格式如 HTML、PDF 等。2. Markdown 正文 (Text)这是你编写文字说明的部分使用标准的 Markdown 语法如 ⁠# 标题⁠⁠**粗体**⁠⁠[链接](url)⁠。你可以利用 Markdown 轻松地进行排版而无需像 Word 那样频繁点击菜单调整格式。3. 代码块 (Code Chunks)这是 ⁠.qmd⁠ 的灵魂所在。你可以在特定的标记区域内插入代码。当你点击“渲染”Render时Quarto 会调用相应的引擎如 Python 的 Jupyter 或 R 的 Knitr运行这些代码。语法示例{python}#| label: fig-example#| fig-cap: 这是一张示例图import matplotlib.pyplot as pltplt.plot([1, 2, 3], [4, 5, 6])plt.show()* #|开头的行是**cell options**单元格选项可以控制代码块是否显示、图片大小、绘图标题等为什么要使用 ⁠.qmd⁠数据驱动如果你的数据更新了你只需要修改源数据文件然后重新渲染一遍 ⁠.qmd⁠文档中的所有图表和计算数据就会自动更新。你不再需要手动把图表截图粘贴到 Word 里。版本控制友好由于 ⁠.qmd⁠ 本质上是纯文本文件它非常适合使用 Git 进行版本控制。你可以清晰地看到文档在哪个版本修改了代码或文字。跨语言集成一个 ⁠.qmd⁠ 文件中甚至可以混合使用不同的代码块比如一段处理数据的 R 代码配合一段生成图表的 Python 代码。与其他格式的对比⁠.md⁠ (Markdown)只能写纯文字和排版无法运行代码也无法在生成时自动计算图表。⁠.ipynb⁠ (Jupyter Notebook)⁠.qmd⁠ 也可以作为 Jupyter Notebook 的一种替代方案。相比 ⁠.ipynb⁠⁠.qmd⁠ 是更纯粹的文本文件更适合写正式论文、书籍或复杂的报告且处理长文档的排版能力更强。总的来说.qmd 是 Quarto 系统的“创作底稿”它将文档的撰写、数据的分析和最终的排版整合在了一个文件中。第二章markdown语法Markdown 是一种轻量级标记语言它的核心目标是易读、易写、易于转换为其他格式如 HTML、PDF 等。在 Quarto (.qmd) 中你撰写正文时使用的就是 Markdown。以下是日常写作中最常用的语法速查1. 标题 (Headings)使用 ⁠#⁠ 符号数量代表层级1-6 级。# 一级标题## 二级标题### 三级标题2. 文本格式 (Text Styles)**加粗文本** 或 __加粗文本__*斜体文本* 或 _斜体文本_***粗斜体文本***superscript^2^ / subscript~2~ 上标2/ 下标2~~删除线~~行内代码3. 列表 (Lists)你可以自由选择使用 ⁠-⁠、⁠⁠ 或 ⁠*⁠ 中的任何一个来创建列表。它们最终渲染出来的效果通常都是一样的即一个圆点列表* unordered list sub-item 1 sub-item 2- sub-sub-item 1* 无序列表项 1* 无序列表项 2* 子项- 顶级项目- 子项目 A- 子项目 B1. 有序列表项 12. 有序列表项 2- [x] 已完成的任务- [ ] 待办事项- [ ] 另一个待办事项4. 链接与图片 (Links Images)https://quarto.org[链接文字](https://example.com)示例[Markdown Basics](./markdown-basics.qmd)![图片说明](path/to/image.png)示例[![](elephant.png){fig-altAlt text}](https://quarto.org)5. 引用 (Blockquotes)使用 ⁠⁠ 符号。 这是引用的内容。 它可以跨越多行。6. 代码块 (Code Blocks)这是在 Quarto 中最重要的一部分通过三个反引号⁠⁠创建。普通代码块pythonprint(Hello World){.python filenamerun.py}codeQuarto 代码执行块带 Cell Options{python}#| label: my-plot#| fig-cap: 这是一张图import matplotlib.pyplot as pltplt.plot([1, 2, 3], [1, 4, 9])7. 表格 (Tables)| 列标题 1 | 列标题 2 || :--- | :--- || 内容 1 | 内容 2 || 内容 3 | 内容 4 |(注⁠:---⁠ 代表左对齐⁠:---:⁠ 居中⁠---:⁠ 右对齐)示例| Right | Left | Default | Center ||------:|:-----|---------|:------:|| 12 | 12 | 12 | 12 || 123 | 123 | 123 | 123 || 1 | 1. | 1 | 1 |8. 分割线与换行分割线使用三个短横线 ⁠---⁠。强制换行在行尾加上两个空格或者使用 ⁠br⁠。给你的专业建议基于你的使用习惯考虑到你经常使用 Excel 进行数据建模和制作图表在编写 ⁠.qmd⁠ 时Markdown 的这些语法会非常高效交叉引用在 Markdown 中写 ⁠See fig-my-plot⁠Quarto 会自动生成“查看图 1”的超链接且如果图表顺序变动编号会自动更新。调用框 (Callouts)这是 Quarto 特有的 Markdown 扩展非常适合强调分析结果::: {.callout-note}这是一个提示框用于强调结论。:::Quarto 内置了五种类型⁠.callout-note⁠ (提示)⁠.callout-warning⁠ (警告)⁠.callout-important⁠ (重要)⁠.callout-tip⁠ (技巧)⁠.callout-caution⁠ (小心)第三章分区divs在 Quarto 中⁠:::⁠ 被称为 Divs分区容器它是 Quarto 对 Markdown 语法最强大的扩展之一。你可以把它理解为给一段文字、代码或图表加一个“容器Box”从而可以对这个容器整体应用特殊的样式、颜色或功能。1. 基本语法结构容器必须由 ⁠:::⁠ 开始并由 ⁠:::⁠ 结束。::: {.my-class}这里的内容会被包裹在一个带有 my-class CSS 类的 div 标签中。:::2. 高级排版分栏布局 (Layout)你可以使用 ⁠::: {.column-xxx}⁠ 来实现多栏排版这在制作汇报展示如 Reveal.js 幻灯片或精美的 HTML 报告时非常有用。代码:::: {.columns}::: {.column width50%}左侧内容IVE 品牌代言数据分析。:::::: {.column width50%}右侧内容Miu Miu 与 Balmain 市场占有率对比图。:::::::3. 自定义样式 (CSS 封装)如果你熟悉 CSS你可以用它来创建自定义的模块。例如你想让一段文字背景变为浅灰色且带有圆角::: {stylebackground-color: #f0f0f0; padding: 20px; border-radius: 5px;}这里是重要的补充说明。:::