创建网站

概述

Quarto 网站是一种方便的方式来发布一组文档。作为网站一部分发布的文档共享导航元素、渲染选项和视觉风格。

网站导航可以通过全局导航栏、带有链接的侧边栏或两者的组合来提供,适用于具有多层内容的网站。您还可以为网站启用全文搜索功能。

Quarto 网站可以发布到多种目的地,包括 GitHub Pages、Netlify、Posit Connect 或其他任何静态托管服务或内网服务器。有关更多详细信息,请参阅发布网站的文档。

快速开始

根据您选择的工具,按照快速开始指南来启动并运行一个简单的网站。在了解基础知识之后,继续阅读以了解网站导航和其他更高级的网站功能。

要在 VS Code 中创建一个新的网站项目,请从命令面板执行 Quarto: Create Project 命令:

然后,选择 Website Project

系统将提示您选择一个父目录来创建项目。然后,系统会要求您为网站项目命名目录:

新的网站项目将在 VS Code 中创建并打开。点击 Preview 按钮 (Preview icon) 来预览网站:

预览将显示在源文件的右侧。当您重新渲染 index.qmd 或渲染其他文件(如 about.qmd)时,预览会自动更新。

要在 RStudio 中创建一个新的网站项目,请使用 New Project 命令并选择 Quarto Website

然后,为网站提供一个目录名称和其他相关选项:

Rstudio 的 'New Project Wizard' 菜单的一部分。这部分标题为 'Create Quarto Website'。左侧显示 Quarto 标志。右侧是 'Directory name' 和 'Create project as subdirectory of:' 的字段。下面是 'Engine' 的选项,'Engine' 选项设置为 'None'。下面是 'Create a git repository' 和 'Use visual markdown editor' 的选项。窗口右下方有并排的 'Create Project' 和 'Cancel' 按钮。窗口左下方有一个 'Open in new session' 的选项。

点击 Render 按钮来预览网站:

预览将显示在源文件的右侧。当您重新渲染 index.qmd 或渲染其他文件(如 about.qmd)时,预览会自动更新。

要从终端创建一个新的网站项目,请使用 quarto create project 命令,按照提示选择类型并为项目提供名称(将用作目录名称):

Terminal
quarto create project website mysite

这将在 mysite 子目录中创建一个简单网站的脚手架。使用 quarto preview 命令来渲染和预览网站:

Terminal
quarto preview mysite

网站预览将在一个新的网络浏览器中打开。当您编辑并保存 index.qmd(或其他文件如 about.qmd)时,预览会自动更新。

工作流程

上面我们演示了如何创建和编辑一个简单的网站。在本节中,我们将更深入地介绍网站工作流程。

配置文件

每个网站都有一个 _quarto.yml 配置文件,该文件提供网站选项以及站点内创建的 HTML 文档的默认设置。例如,以下是上面创建的简单网站的默认配置文件:

_quarto.yml
project:
  type: website

website:
  title: "today"
  navbar:
    left:
      - href: index.qmd
        text: Home
      - about.qmd

format:
  html:
    theme: cosmo
    css: styles.css
    toc: true

有关网站配置的更多详细信息,请参阅网站导航网站工具的文档。有关自定义 HTML 格式选项的详细信息,请参阅HTML 文档

网站预览

如果您使用的是 VS Code 或 RStudio,Preview 按钮(VS Code)或 Render 按钮(RStudio)会自动渲染并在嵌入窗口中运行 quarto preview。如果需要,您也可以从终端执行相同的操作:

Terminal
# 预览当前目录中的网站
quarto preview

请注意,当你预览一个站点时(无论是使用VS Code/RStudio集成工具还是从终端预览),对配置文件(例如_quarto.yml)以及站点资源的更改(例如主题或CSS文件)都会导致预览的自动刷新。

你可以使用命令行选项或_quarto.yml配置文件来自定义预览服务器的行为(端口、是否打开浏览器等)。查看quarto preview help项目文件参考获取更多详细信息。

Important

当你预览你的站点时,页面将被渲染和更新。然而,如果你对全局选项(例如_quarto.yml或包含的文件)进行更改,你需要完全重新渲染你的站点以反映所有更改。因此,在部署站点之前,你应该始终完全使用quarto render来渲染你的站点,即使你已经使用预览服务器预览了某些页面的更改。

网站渲染

要渲染(但不预览)一个网站,请使用quarto render命令,默认情况下它会将网站渲染到_site目录中:

Terminal
# 渲染当前目录中的网站
quarto render 

查看项目基础文章,了解更多关于使用项目的信息,包括指定要渲染的文件的明确列表,以及向你的项目添加自定义的前渲染和后渲染脚本。

渲染目标

默认情况下,项目目录中所有有效的 Quarto 输入文件(.qmd、.ipynb、.md、.Rmd)都将被渲染,以下情况除外:

  1. 文件或目录前缀为 .(隐藏文件)

  2. 文件或目录前缀为 _(通常用于非顶级文件,例如在其他文件中包含的文件)

  3. 文件名为 README.mdREADME.qmd(这些文件通常不是实际的渲染目标,而是用于版本控制 Web UI 中查看的源代码信息内容)。

如果你不想渲染项目中的所有目标文档,或者希望更精确地控制渲染顺序,可以在项目元数据中添加 project: render: [files] 条目。例如:

project:
  render:
    - section1.qmd
    - section2.qmd

请注意,在定义 render 列表时可以使用通配符。例如:

project:
  render:
    - section*.qmd

你还可以在 render 列表中使用前缀 ! 来忽略某些文件或目录。请注意,在这种情况下,你需要首先指定你确实想要渲染的所有内容。例如:

project:
  render:
    - "*.qmd"
    - "!ignored.qmd"
    - "!ignored-dir/"
Note

如果你的输出文件名需要以 ._ 开头(例如 Hugo 用户的 _index.md),你必须在不带前缀的情况下命名 Quarto 输入文件(例如 index.qmd),并在 YAML 中添加显式的 output-file 参数,例如

---
output-file: _index.md
---

链接

在站点页面之间创建链接时,你可以将源文件作为链接目标(而不是.html文件)。如果希望链接到文档中的特定部分,还可以向源文件添加哈希标识符(#)。例如:

[about](about.qmd)
[about](about.qmd#section)

与直接指向.html文件相比,使用这种链接样式的一个好处是,如果你在某个时候将你的站点转换为书籍,文件链接将自动解析为单个文件格式(例如PDF或MS Word)的部分链接。

网站主题

你的网站外观通过HTML主题来控制。这些选项在网站配置文件的format选项下设置:

_quarto.yml
format:
  html:
    theme: cosmo
    css: styles.css

查看HTML主题获取有关可用选项的详细信息。

学习更多

一旦你有了一个基本的网站并运行起来,查看这些文章以了解各种增强站点的方法:

  • 网站导航描述了向网站添加导航的各种方法,包括顶层导航栏、侧边栏或使用两者的混合设计。这篇文章还涵盖了添加全文搜索以及站点范围的页脚。

  • 网站工具涵盖了向你的站点添加社交元数据(例如用于Twitter卡片)和Google Analytics,以及允许用户在深色和浅色配色方案之间切换。

  • 网站选项提供了所有可用网站选项的全面参考。

  • 代码执行提供了优化包含大量文档或昂贵计算的站点渲染的技巧。

  • 发布网站列举了发布网站的各种选项,包括GitHub Pages、Netlify和Posit Connect。