Confluence

人工智能与机器学习

概述

人工智能(AI)和机器学习(ML)是当今科技领域最热门的话题之一。AI是指计算机系统能够执行通常需要人类智能的任务,如视觉识别、语音识别和决策制定。ML是AI的一个子集,专注于开发能够从数据中学习的算法。

关键技术

深度学习

深度学习是ML的一个分支,使用多层神经网络来模拟人脑的工作方式。它在图像和语音识别等领域取得了显著的成功。

强化学习

强化学习是一种通过试错来学习的ML方法。它通常用于游戏和机器人控制等领域。

应用

医疗保健

AI和ML在医疗保健领域有广泛的应用,包括疾病诊断、药物发现和个性化治疗。

金融

在金融领域,AI和ML用于风险管理、欺诈检测和投资策略优化。

挑战

数据隐私

随着AI和ML的发展,数据隐私成为一个重要问题。如何在利用数据的同时保护个人隐私是一个亟待解决的挑战。

伦理问题

AI和ML的决策过程往往不透明,这引发了关于算法偏见和伦理责任的讨论。

未来展望

AI和ML的未来充满希望,但也伴随着挑战。随着技术的进步,我们有望看到更多创新应用的出现,但同时也需要解决随之而来的伦理和社会问题。

概述

Atlassian Confluence 是一个支持团队协作的发布平台。Confluence 提供了多种托管选项,包括免费和付费订阅计划。

仅限 Confluence Cloud

目前发布仅限于 Confluence Cloud。 我们尚不支持发布到 Confluence Server 或 Confluence Data Center。

Quarto 支持将单个文档以及由多个文档组成的项目发布到 Confluence Spaces

一个带有标题 Using R - Doc 的 Quarto 文档在 RStudio 编辑器中的截图。

一个 Quarto 文档

一个带有标题 Using R - Doc 的文档在 Confluence Space 中的截图。

发布到 Confluence

VS Code 中一个 Quarto 项目的截图。在左侧的资源管理器中,项目文件夹名为 'Guide-site',包含 'authoring' 和 'computation' 文件夹以及其他一些文件。在 'computations' 文件夹内的 'python' 文件夹中,一个标题为 'Using Python - site' 的文档在源代码面板中打开。

一个 Quarto 项目

Confluence 中的 Space 截图。在左侧边栏的 Pages 下有一个名为 'Guide-site' 的页面。嵌套在此页面下的是名为 'authoring' 和 'computation' 的页面以及其他一些页面。'computation' 页面项已展开,显示了一个名为 'Using Python - site' 的页面,嵌套在一个名为 'python' 的页面下。右侧显示了一个标题为 'Using Python - site' 的页面。

发布到 Confluence

使用 Quarto 管理 Confluence 内容,您可以在 Markdown 中创作内容,使用您常用的版本控制工具(如 Git 和 GitHub)管理内容,并利用 Quarto 的工具包含计算输出。

下一节,Confluence 发布基础,将介绍将单个页面发布到 Confluence 的过程,包括如何在 Quarto 中设置您的 Confluence 账户,以及如何指定文档在 Confluence Space 中的目标位置

在使用 Confluence 发布您自己的项目之前,您需要阅读本页剩余部分的内容:

  • 发布项目 描述了如何发布一组文档,包括您的项目结构如何转换为 Confluence Space 中的页面结构。

  • 发布工作流程 描述了从 Quarto 发布到 Confluence 页面时进行更新的模型,包括发布时设置的页面权限。

  • 为 Confluence 创作 描述了为 Confluence 创作与为 Quarto 网站创作之间的一些差异。

  • 发布设置 涵盖了如何管理您的发布设置。

小心敏感或机密内容

将 Quarto 文档发布到公共 Confluence Space 将使这些文档的内容公开。您有责任了解您的 Confluence Space 的权限,并验证您的发布目标,以防止任何敏感或机密内容被公开。

Confluence 发布基础

为了演示发布到 Confluence 的过程,我们将一个单一文档 confluence-demo.qmd 发布为一个 Confluence Space 中的页面。以下是 confluence-demo.qmd 的内容:

---
title: Confluence 演示
format: confluence-html
---

## 概述

在 Quarto 文档中编写内容并发布到 Confluence。

请注意,文档 YAML 中的格式设置为 confluence-html。这使得文档的本地预览能够模仿其在 Confluence 上的最终外观。您可以像预览任何其他 Quarto 文档一样,在本地预览您的文档,方法是使用 VS Code 和 RStudio 中的 Render 命令,或使用命令行中的 quarto preview

终端
quarto preview confluence-demo.qmd

在本地预览 confluence-demo.qmd 的结果如下所示:

预览文件 confluence-demo.qmd 的结果截图。 预览试图提供一个准确的概念,展示你的内容将如何呈现。然而,预览中的一些项目仅仅是占位符,比如标题中的发布日期、作者和阅读时间。当文档发布到Confluence时,这些项目将由Confluence生成。

要将文档发布到Confluence,请使用quarto publish confluence,后跟文件名:

Terminal
quarto publish confluence confluence-demo.qmd

除非你之前已经发布到Confluence,否则系统会提示你设置账户并选择页面的目标位置。

设置你的账户

当你第一次发布到Confluence时,系统会提示你在Quarto中设置一个Confluence账户。为此,请登录Confluence,并导航到你希望发布到的空间或空间内的页面。

首先,系统会提示你输入Confluence域名。这是你希望发布到的Confluence页面的URL的第一部分。例如:

Terminal
? Confluence Domain: ›
 e.g. https://mydomain.atlassian.net/

接下来,系统会要求你输入在此Confluence域名中使用的账户的电子邮件地址(如果不确定,请查看你在Confluence上的账户资料):

Terminal
? Confluence Account Email: › 

最后,系统会要求你输入API令牌:

Terminal
? Confluence API Token: ›
 在 https://id.atlassian.com/manage/api-tokens 创建一个API令牌

Confluence API令牌是特定于你的账户的。你需要创建一个令牌,复制,然后粘贴到此提示中。有关访问令牌的更多信息,请参阅Confluence关于API令牌的文档

Quarto会保存此账户信息(域名、电子邮件和令牌),以便将来用于quarto publish confluence的调用。最后,系统会提示你选择页面的目标位置。

选择目标位置

Confluence中的页面按层次结构排列:每个页面都有一个父页面。当你从Quarto发布到Confluence时,系统会要求你通过提供其URL来指定页面的父页面:

Terminal
? Space or Parent Page URL: ›
 在Confluence中浏览到空间或父页面,然后复制URL

如果你想让你的页面位于空间的顶层,请指定空间本身,例如:

https://domain.atlassian.net/wiki/spaces/ABBR

否则,请指定父页面的URL,例如:

https://domain.atlassian.net/wiki/spaces/ABBR/pages/123456

一旦指定了目标位置,Quarto将渲染页面以供发布,将其发布到Confluence,并打开浏览器查看已发布的页面。

以下是confluence-demo.qmd发布版本的示例:

Confluence上发布的confluence-demo.qmd文件的截图。在侧边栏中,页面Confluence Demo列在顶层页面下。

在侧边栏导航中,此页面列在顶层页面下,因为目标位置设置为空间URL。

发布项目

要发布一组文档,请将你的文档组织在一个Quarto项目中,并使用confluence项目类型。以下是一个Confluence项目的最小_quarto.yml文件:

_quarto.yml
project:
  type: confluence

将此文件包含在项目目录中,然后将你的.qmd.ipynb文档安排到你希望用于发布的任何层次结构中。例如:

_quarto.yml
index.qmd
team.qmd
projects/
  planning.qmd
  retrospectives.qmd

或者,要在新目录中使用模板项目开始,请使用quarto create

Terminal
quarto create project confluence

与文档一样,你可以使用VS Code和RStudio中的Render命令或通过命令行使用quarto preview来预览你的项目:

Terminal
quarto preview

项目预览会生成一个带有导航的HTML网站,导航会自动添加到侧边栏中。此导航是为了方便,已发布页面的导航将由Confluence内部处理。

Tip

项目预览试图将你的内容样式化为在Confluence上的显示方式,但你可能注意到一些外观上的差异。

要发布你的项目,请从项目文件夹运行quarto publish confluence

Terminal
quarto publish confluence 

你将按照与发布单个文档相同的步骤进行操作,如果需要,请设置账户,并在将项目发布到Confluence之前选择目标位置

项目结构

项目中文件夹内文档的层次结构将在发布过程中得到保留。Confluence的文件夹概念是页面可以有子页面,因此你的文件夹将由Confluence中的页面表示。

当项目发布时,会在Confluence中创建一个页面来容纳它。项目顶层的文档将作为嵌套在此项目页面下的页面发布。项目内的文件夹由一个页面表示,文件夹内的任何文档(或其他文件夹)都表示为嵌套在文件夹页面下的页面。

例如,考虑以下项目结构:

example-project/
├── _quarto.yml
├── project-roadmap.qmd
├── reports-folder
│   ├── 2023-01.qmd
│   └── 2023-03.qmd
└── team-members.qmd

将此项目发布到空间顶层后,Confluence的结构如下所示:

Confluence导航侧边栏的放大视图。在Pages下有一个名为Project Example Site的页面,嵌套在此页面下的是名为Team Members、Project Roadmap和Reports-folder的页面。在Reports-folder页面下有名为:Reports、March和January的页面。

Confluence侧边栏导航中使用的标题取自文档YAML和_quarto.yml中分别指定的页面和项目标题,以及从文件夹名称生成的标题。Quarto可能会添加一些额外的字符,以满足Confluence对空间中每个页面名称唯一性的要求。

index.qmd

在Confluence中表示文件夹的页面将没有内容,除非在文件夹内找到index.qmd。如果存在index.qmd文件,其内容将填充文件夹页面。例如,考虑以下index.qmd

index.qmd
---
title: Reports
---

项目进展的月度报告

将此添加到reports-folder文件夹并重新发布站点,将表示此文件夹的页面名称更改为“Reports”,并将此内容添加到页面中。

Confluence中标题为Reports的页面截图,包含一句话'项目进展的月度报告'。在侧边栏导航中,此页面名为'Reports',嵌套在名为'Project Example Site'的页面下。

发布工作流程

在Confluence中,许多人可以直接编辑页面。然而,从Quarto管理内容需要转变视角:页面编辑仅在Quarto项目中进行,并且只有一个账户应将这些更改发布到Confluence。

发布到Confluence是单向的:无法将内容编辑从Confluence带回到Quarto项目。在Confluence上进行的编辑将在下次从Quarto发布页面时被覆盖。更新页面需要编辑Quarto中的文档,并重新运行:

Terminal
quarto publish confluence 

为了避免无意中编辑由Quarto管理的页面,发布时会设置页面权限,以便空间中的每个人都可以查看页面,但只有你,即发布者,可以编辑页面。

Confluence页面权限的截图,包含两项:Everyone设置为View;Charlotte Wickham (Me)设置为Can Edit

编辑页面的权限包括发布更新,因此对页面的任何更新都需要从与原始发布相同的账户发布。

在没有权限控制的情况下发布

我们会尝试检测你是否发布到一个无法控制页面权限的目标位置,并会收到警告。你可以继续发布,但你发布的任何页面都可以被有权访问空间的人查看和编辑。

如果你在Confluence上删除了一个页面,并从Quarto重新发布,你会看到错误:

ERROR: API Error: 404 - Not Found

这是因为Quarto在_publish.yml中存储并重用了你在Confluence上的页面位置。如果页面在Confluence上被删除,该位置将不再存在。要解决问题,请删除_publish.yml中对应的条目,并重新发布。然后,系统会提示你设置目标位置。你可以在发布设置部分了解更多关于_publish.yml的信息。

创作

在Confluence中创作与创作HTML文档和Quarto网页非常相似。然而,你应该注意一些关键的限制以及Confluence发布特有的功能。

内容限制

confluence-html格式几乎支持所有标准的Quarto Markdown内容类型,包括表格、标注和交叉引用。

然而,目前不支持引用、视频、图表、选项卡集或方程式。未来,如果有能够支持这些功能的Confluence等效功能,我们可能会添加这些特性。

链接

在Confluence项目中创建页面之间的链接时,你可以提供源文件作为链接目标(而不是Confluence页面的路径)。如果你想要链接到文档中的特定部分,你也可以在源文件中添加哈希标识符(#)。例如:

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

原始Confluence块

原始Confluence块允许你包含内容,这些内容应保持不变地通过Quarto传递,并由Confluence直接解释。例如,Confluence的存储格式包含任务列表的特定标签。要在文档中包含Confluence任务列表,请在原始Confluence块中使用这些标签:

```{=confluence}
<ac:task-list>
    <ac:task>
        <ac:task-status>incomplete</ac:task-status>
        <ac:task-body>task list item</ac:task-body>
    </ac:task>
</ac:task-list>
```

发布到Confluence后,这将生成以下列表:

A screenshot of list with one item. To the left of the item text is an unchecked checkbox.

网站限制

Confluence项目是一种特殊类型的网站,不支持传统的网站功能,如列表、主题和导航(因为这些功能由Confluence内部处理)。

Confluence限制

发布工作流程中所述,在Confluence中对页面内容进行的编辑在从Quarto发布内容时会被覆盖。这也适用于在Confluence上进行的任何内联评论。页面级别的表情符号和页面级别的评论在发布过程中会被保留。

发布设置

一旦你发布了到Confluence,你可能会有兴趣了解如何管理你的发布和账户设置。

_publish.yml

_publish.yml文件用于指定发布目标。每当你执行quarto publish命令时,这个文件会自动创建(或更新),并位于项目或文档目录中。

发布内容的serviceidURL_publish.yml中指定。例如:

- source: project
  confluence:
    - id: "5f3abafe-68f9-4c1d-835b-9d668b892001"
      url: "https://myteam.atlassian.net/wiki/spaces/TEAMSPACE/pages/123456/Plan"

下次发布相同的文档或项目时,_publish.yml文件将用于提供账户和空间信息,这样你就不会再被提示输入这些信息。

如果你有一个现有的Confluence空间想要发布到,你应该手动创建一个类似于上面示例的_publish.yml文件,但使用适合你文档的idurl值。

账户信息不存储在_publish.yml中,因此它适合于版本控制并由多个发布者共享。

账户管理

你可以使用quarto publish accounts命令列出和删除保存的Confluence账户:

$ quarto publish accounts
 ? Manage Publishing Accounts
 ❯ ✔ Confluence: jj@posit.co
   ✔ Netlify: jj@posit.co
 ❯ Use the arrow keys and spacebar to specify 
   accounts you would like to remove. Press 
   Enter to confirm the list of accounts you
   wish to remain available.