news 2026/7/6 13:52:31

Quarto学习笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()

* '#|'开头的行是**cell options**(单元格选项),可以控制代码块是否显示、图片大小、绘图标题等

为什么要使用 ⁠.qmd⁠?

  1. 数据驱动:如果你的数据更新了,你只需要修改源数据文件,然后重新渲染一遍 ⁠.qmd⁠,文档中的所有图表和计算数据就会自动更新。你不再需要手动把图表截图粘贴到 Word 里。
  2. 版本控制友好:由于 ⁠.qmd⁠ 本质上是纯文本文件,它非常适合使用 Git 进行版本控制。你可以清晰地看到文档在哪个版本修改了代码或文字。
  3. 跨语言集成:一个 ⁠.qmd⁠ 文件中甚至可以混合使用不同的代码块,比如一段处理数据的 R 代码,配合一段生成图表的 Python 代码。

与其他格式的对比

  1. ⁠.md⁠ (Markdown):只能写纯文字和排版,无法运行代码,也无法在生成时自动计算图表。
  2. ⁠.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
- 子项目 B

1. 有序列表项 1
2. 有序列表项 2

- [x] 已完成的任务
- [ ] 待办事项
- [ ] 另一个待办事项

4. 链接与图片 (Links & Images)

<https://quarto.org>

[链接文字](https://example.com)

示例:[Markdown Basics](./markdown-basics.qmd)

![图片说明](path/to/image.png)

示例:[![](elephant.png){fig-alt="Alt text"}](https://quarto.org)

5. 引用 (Blockquotes)

使用 ⁠>⁠ 符号。

> 这是引用的内容。
> 它可以跨越多行。

6. 代码块 (Code Blocks)

这是在 Quarto 中最重要的一部分,通过三个反引号(⁠```⁠)创建。

普通代码块:

```python
print("Hello World")
```

```{.python filename="run.py"}
code
```

Quarto 代码执行块(带 Cell Options):

```{python}
#| label: my-plot
#| fig-cap: "这是一张图"

import matplotlib.pyplot as plt
plt.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 的这些语法会非常高效:

  1. 交叉引用:在 Markdown 中写 ⁠See @fig-my-plot⁠,Quarto 会自动生成“查看图 1”的超链接,且如果图表顺序变动,编号会自动更新。
  2. 调用框 (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 width="50%"}
左侧内容:IVE 品牌代言数据分析。
:::

::: {.column width="50%"}
右侧内容:Miu Miu 与 Balmain 市场占有率对比图。
:::

::::

3. 自定义样式 (CSS 封装)

如果你熟悉 CSS,你可以用它来创建自定义的模块。例如,你想让一段文字背景变为浅灰色且带有圆角:

::: {style="background-color: #f0f0f0; padding: 20px; border-radius: 5px;"}
这里是重要的补充说明。
:::

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 13:52:30

深度拆解移动机器人开发岗:从核心技术到求职全攻略,算法、工程与国际化能力一网打尽

前言 近几年,智能制造、智慧物流、无人配送和工业巡检像潮水一样涌来,移动机器人成了 AI 落地最实在的载体之一。你在仓库里看到的 AGV/AMR,在园区里跑腿的无人车,或者在小区里推着小货箱穿行的配送机器人,背后都是移动机器人开发工程师把抽象的算法变成能上路的“身体”…

作者头像 李华
网站建设 2026/7/6 13:52:11

Python 修饰器竟能给函数开挂,额外功能随意加

修饰器的概念和作用 什么是修饰器装饰器, 也被称作修饰器, 其本身属于一个函数, 能够给原先既有的函数或者方法上面添加某些额外的功能。修饰器的作用概括的讲&#xff0c;装饰器的作用就是为已经存在的对象添加额外的功能。比如说, 这个函数具备注册的特性, 但有时, 当这个用户…

作者头像 李华
网站建设 2026/7/6 13:51:38

第9篇|导航返回乱跳:用 NavPathStack 把返回路径收口

第9篇&#xff5c;导航返回乱跳&#xff1a;用 NavPathStack 把返回路径收口 摘要&#xff1a;实际项目里&#xff0c;导航最怕的不是“跳不过去”&#xff0c;而是“跳过去以后回不来”。首页、详情页、编辑页、登录页、通知入口混在一起后&#xff0c;如果每个按钮都自己决定…

作者头像 李华
网站建设 2026/7/6 13:51:16

华为MetaERP 确保 Oracle EBS AR 应收业务蓝图文档准确、完整的全流程管控方案一、前置基线校验:从产品标准逻辑杜绝底层错误(保证准确性根基)1. 对标 EBS 官方产品标准,避免

确保 Oracle EBS AR 应收业务蓝图文档准确、完整的全流程管控方案一、前置基线校验&#xff1a;从产品标准逻辑杜绝底层错误&#xff08;保证准确性根基&#xff09;1. 对标 EBS 官方产品标准&#xff0c;避免功能描述偏差核对 Oracle 官方文档 以 Oracle EBS R12 AR Implement…

作者头像 李华
网站建设 2026/7/6 13:50:27

JDK系列13:记录类Record、密封类Sealed Class,规范化数据载体

文章目录一、前言&#xff1a;传统Java建模的两大痛点1.1 数据载体极度冗余1.2 类继承完全失控二、Record 记录类&#xff1a;极简不可变数据载体2.1 核心设计思想2.2 传统POJO VS Record 对比传统Java POJO&#xff08;冗余版&#xff09;Record 极简写法2.3 Record 底层编译机…

作者头像 李华
网站建设 2026/7/6 13:49:29

音视频上层架构

音视频「数据本质」的绝妙镜像 &#x1f3af; 音视频底层世界终极对照表&#xff08;Final Edition&#xff09; 维度 (Dimension)音频世界 (Audio World)视频世界 (Video World)内核驱动子系统ALSA (/dev/snd/pcm*) 字符设备&#xff0c;应用层通过 mmap 或 read/write 拉取…

作者头像 李华