代码复用

当你构建更大的Quarto项目(如网站书籍)并嵌入OJS时,你可能希望在不同页面之间复用代码、数据和输出。

模块

Quarto的OJS块直接支持JavaScript模块。例如,如果我们有以下源文件square.js

export function square(x) {
  return x * x;
}

然后你可以按如下方式导入并使用square()函数:

import { square } from "./square.js"
square(5)

数据

你可能使用Python或R预处理数据,然后通过ojs_define()函数将其提供给OJS(这在数据源文章中有更深入的描述)。如果你想共享以这种方式准备的数据,可以直接从另一个.qmd文件中导入。

例如,这里我们导入了在data-sources.qmd中使用dplyr读取和预处理的co2data

import { co2data } from "./data-sources.qmd";
Inputs.table(transpose(co2data))

输出

你可以从另一个.qmd文件中导入任何反应性值。这里,我们直接复用了来自data-sources.qmd的图表:

import { yearlyChart } from "./data-sources.qmd";
yearlyChart