跳到主要内容

我如何在不到 2 小时内将 Profilo 转换为 Docusaurus

·阅读时长7分钟

“Joel 和我正在讨论拥有一个网站,以及如果能带着网站一起发布会有多好。于是我挑战自己,添加 Docusaurus 支持。这只花了一个半小时多一点。我会给你发一个包含添加内容的 PR,这样你就可以看看是否喜欢。你添加文档的工作流程与编辑那些 Markdown 文件没有太大区别。”

— 致 Profilo 团队的备忘录

这是一个关于使用 Docusaurus 创建 Profilo 网站的相当简短的历程的故事。

Profilo 是一个用于从生产环境中收集性能追踪的 Android 库,于今年早些时候发布。该项目在 GitHub 上发布时,只有少量 Markdown 文件来描述其功能,并且没有网站来展示品牌形象和突出徽标。手头的任务是将这些现有文档和徽标转换为一个网站。

一般来说,使用 Docusaurus 创建网站时,您需要执行以下操作

  1. 使用 Docusaurus 脚本生成模板网站。
  2. 根据您想要的网站颜色和项目配置(例如:网站和 GitHub 链接)自定义生成的模板文件。
  3. 创建网站内容
    1. 添加您的文档和任何支持性资产。
    2. 自定义 Docusaurus 提供的默认登录页面以满足您的需求。
    3. 配置默认网站导航文件。
  4. 发布网站并设置未来更改的发布方式。

鉴于我已有预先存在的 Markdown 文件,我无需生成核心内容,只需通过向文件添加预期元数据来确保 Docusaurus 可以处理这些文件。因此,大部分工作将包括自定义 Docusaurus 提供的默认设置。

采取的步骤概述

以下是将网站转换为网站所采取步骤的概述。我将在后面一节中讨论一些设计方面的问题。

设计与颜色

  1. 从设计师那里获取了所有所需的徽标格式。我必须创建 .favicon 格式的徽标。
  2. 使用 http://paletton.com/ 工具,设计出一些尚可接受的主次网站颜色——非常方便!

初始网站设置

  1. 在 GitHub 上 Fork 了 Profilo 项目,并创建了一个本地克隆副本以设置网站。
  2. 使用安装说明创建了初始 Docusaurus 网站。
  3. 删除了 docs-examples-from-docusauruswebsite/blog-examples-from-docusaurus 文件夹,因为这些不再需要。Profilo 有现成的文档可以使用,并且当时没有博客的需求。

内容创建

  1. docs 文件夹中现有的 Markdown 文件添加了元数据,例如

    ---
    id: architecture
    title: Architecture
    sidebar_label: Architecture
    ---
  2. 将徽标资产添加到 website/static/img 文件夹。

  3. 修改了 website/pages/en/index.js,即着陆页,以突出 Profilo 功能。

  4. 修改了 website/core/Footer.js,即页脚,以简化其 Profilo 版。

  5. 编辑了 website/siteConfig.js(网站配置文件)以指定先前选择的主次颜色。

  6. 修改了指定侧边栏导航的 website/sidebars.json。列出了所有文档并根据添加到 Markdown 文件中的元数据进行了自定义。

  7. 编辑了网站配置文件以指定 GitHub 属性、徽标图像、页眉链接和网站链接。

  8. 在此阶段全程在本地测试了网站。(我从 website 文件夹运行 yarn start 以启动服务器。)

反馈与评审修改

  1. 向项目发送了一个拉取请求
  2. 在设计师对我选择的颜色表示震惊(我不是设计师)后,更新了颜色。
  3. 更新了颜色并更新了 PR。
  4. 该 PR 随后被接受并合并。太棒了!

网站发布

  1. 通过从命令行运行 Docusaurus 发布脚本来推送第一个网站版本

    USE_SSH=true \
    GIT_USER=caabernathy \
    CURRENT_BRANCH=master \
    yarn run publish-gh-pages
  2. 使用Docusaurus 提供的说明配置了 CircleCI。为此提交了两个 PR,第一个用于初始配置,第二个确保 CircleCI 仅在主分支发生更改时才触发(感谢 Joel Marcey!)。

最终网站发布在 https://facebookincubator.github.io/profilo/。从初始 PR 阶段到响应评审反馈并发布网站,共耗时 1.5 小时,另加半小时左右。

设计

以下是第一个拉取请求发出时初始网站的样子

The website's front page, with a quite bright and saturated red color as the primary color, closely resembling the Profilo logo color, making the logo unrecognizable in the navbar

内容创建的大部分时间都花在了选择与给定徽标合理搭配的颜色上。这些颜色为设计师的反馈提供了一个很好的起点。我使用 Photoshop 对徽标的各个部分进行了取样。

Picking colors in Photoshop, with the Profilo logo and the main working area in the background and a color picker dialog in the foreground, selected to a red shade

然后我获取了颜色的 RGB 表示,并将其设置为 Paletton 上的基准颜色。然后该网站通过编辑 Docusaurus 网站配置文件,为我提供了各种可在网站上尝试的颜色选项。

Using Paletton to generate a full palette from the red shade selected. There's a color wheel showing all hues on the left, and a square showing various shades of red on the right.

选择的主次颜色是设计师反馈的一个良好起点。

Docusaurus 生成的默认网站也进行了修改。这些更改主要是围绕简化页脚,并为 Profilo 创建一个列出项目功能的自定义着陆页。

以下是最终网站的样子

The website's front page, with a much darker red color as the primary color, making both the logo and the primary-colored title text clearly legible.

这是一个显示核心内容的示例页面,在此示例中为“入门”页面

A doc page with the sidebar on the left quarter of the screen and the main content occupying the rest. Some text is using the primary color and the main body uses multiple kinds of typesetting including bold, list, and code

这也显示了通过编辑 website/sidebars.json 设置的侧边栏结构。

最后,我无需担心响应式设计。Docusaurus 开箱即用提供了此功能!

Mobile screenshots of the front page and sample doc page. The layout is automatically adjusted to make it appear more natural. The doc sidebar is hidden behind a button.

最终想法

Profilo 工程师很高兴看到他们无需更改工作流程即可更新现有内容。他们可以继续使用 Markdown 文件工作。将来添加新文档时,此情况仍然适用,尽管如果需要更新侧边栏导航,可能需要进行一些配置更改。

Docusaurus 提供的基础设施使得将 Markdown 文件转换为可运行的网站变得容易。尽管该项目只有三个文档,但这使得 Profilo 看起来更加专业。因此,花少量时间完成这项工作是非常值得的。