如何创建、编辑、移动或删除页面

本文介绍如何创建、移动、删除或编辑页面。在所有这些情况下,最好查阅我们的《我们写什么》指南,以确认是否应采取这些操作,并在继续之前与团队在 MDN Web Docs 的某个沟通渠道上进行讨论。

创建页面

MDN Web Docs 上的所有页面都以 Markdown 格式编写。内容写在一个名为 index.md 的文件中,该文件存储在自己的唯一目录中。目录名称代表页面的名称。例如,如果您想为新的 CSS 属性 align-content 创建一个新参考页面,您会在 en-us/web/css 中创建一个名为 align-content 的文件夹,并在其中创建一个名为 index.md 的文件。

注意:目录名称与页面的 slug 略有不同。最值得注意的是,slug 遵循句子大小写。

有许多不同的页面类型,它们具有特定的结构和支持的页面模板,您可以复制这些模板来开始。

文档的 index.md 文件必须以定义 titleslugpage-type 的 front matter 开始。所有这些 front matter 信息都可以在上述页面模板中找到。或者,您可能会发现参考类似文档的 index.md 文件中的 front matter 有帮助。

创建页面的通用分步流程是

  1. 启动一个全新的、最新的分支来工作。

    bash
    cd ~/repos/mdn/content
    git checkout main
    git pull mdn main
    # Run "yarn" again to ensure you've
    # installed the latest Yari dependency.
    yarn
    git checkout -b my-add
    
  2. 创建一个或多个新的文档文件夹,每个文件夹都有自己的 index.md 文件。

  3. 添加并提交新文件,并将新分支推送到您的 fork。

    bash
    git add files/en-us/folder/you/created
    git commit -m "appropriate message about your changes"
    git push -u origin my-add
    
  4. 创建您的拉取请求。

移动页面

移动一个或多个文档或整个文档树很容易,因为我们创建了一个特殊命令,可以为您处理细节。

bash
yarn content move <from-slug> <to-slug> [locale]

您只需指定要移动的现有文档的 slug(例如,Web/HTTP/Guides/Authentication)以及新位置的 slug(例如,Web/HTTP/Guides/Auth),还可以选择性地指定现有文档的 locale(默认为 en-US)。

如果现有文档有子文档(即,它代表一个文档树),yarn content move 命令将移动整个树。

例如,假设您想将整个 /en-US/Web/HTTP/Guides/Authentication 树移动到 /en-US/Web/HTTP/Guides/Auth,您将执行以下步骤

  1. 您将启动一个全新的分支来工作。

    bash
    cd ~/repos/mdn/content
    git checkout main
    git pull mdn main
    # Run "yarn" again just to ensure you've
    # installed the latest Yari dependency.
    yarn
    git checkout -b my-move
    
  2. 执行移动操作(这将删除和修改现有文件以及创建新文件)。

    bash
    yarn content move Web/HTTP/Guides/Authentication Web/HTTP/Guides/Auth
    
  3. 文件移动后,我们还需要更新其他内容文件中对这些文件的引用。使用以下命令一次性自动更新所有引用。

    bash
    node scripts/update-moved-file-links.js
    
  4. 添加并提交所有已删除、创建和修改的文件,并将分支推送到您的 fork。

    bash
    git add .
    git commit -m "Move Web/HTTP/Guides/Authentication to Web/HTTP/Guides/Auth"
    git push -u origin my-move
    
  5. 创建您的拉取请求。

注意:yarn content move 命令会在 _redirects.txt 文件中添加必要的重定向,以便旧位置重定向到新位置。请勿手动编辑 _redirects.txt 文件!这样做很容易出错。如果您需要添加重定向而不移动文件,请在 MDN Web Docs 沟通渠道上与 MDN Web Docs 团队讨论。

删除页面

文档应仅在特殊情况下从 MDN Web Docs 中删除。如果您考虑删除页面,请先在 MDN Web Docs 聊天室上与 MDN Web Docs 团队讨论。

删除一个或多个文档或整个文档树很容易,就像移动页面一样,因为我们创建了一个特殊命令,可以为您处理细节。

bash
yarn content delete <document-slug> [locale]

注意:您需要使用 yarn content delete 命令从 MDN Web Docs 中删除页面。不要仅仅从仓库中删除它们的目录。yarn content delete 命令还会处理其他必要的更改,例如更新 _wikihistory.json 文件。

您只需指定要删除的现有文档的 slug(例如,Web/HTTP/Guides/Authentication),还可以选择性地指定现有文档的 locale(默认为 en-US)。

如果现有文档有子文档(即,它代表一个文档树),您还必须指定 -r, --recursive 选项,否则命令将失败。

例如,如果您想删除整个 /en-US/Web/HTTP/Guides/Authentication 树,您将执行以下步骤

  1. 您将启动一个全新的分支来工作。

    bash
    cd ~/repos/mdn/content
    git checkout main
    git pull mdn main
    # Run "yarn" again just to ensure you've
    # installed the latest Yari dependency.
    yarn
    git checkout -b my-delete
    
  2. 执行删除操作。

    bash
    yarn content delete Web/HTTP/Guides/Authentication --recursive
    
  3. 添加重定向。目标页面可以是外部 URL 或 MDN Web Docs 上的另一个页面。

    bash
    yarn content add-redirect /en-US/path/of/deleted/page /en-US/path/of/target/page
    
  4. 添加并提交所有已删除的文件,并将分支推送到您的 fork。

    bash
    git commit -a
    git push -u origin my-delete
    
  5. 创建您的拉取请求。

注意:如果要删除的页面的 slug 包含特殊字符,请将其包含在引号中,如下所示。

bash
yarn content delete "Mozilla/Add-ons/WebExtensions/Debugging_(before_Firefox_50)"

从 MDN Web Docs 中删除内容将不可避免地导致现有内容也需要更新。由于许多文章会链接到其他文章,被删除的内容很可能在其他地方被引用。添加重定向可以减轻删除内容的影响;但是,最好的做法是编辑内容以反映更改,并将内容编辑与删除的拉取请求一起包含。

编辑现有页面

要编辑页面,您需要在我们的 content 存储库中找到页面源。找到它的最简单方法是导航到要编辑的页面,滚动到页面底部,然后单击“在 GitHub 上查看源代码”链接。

预览更改

如果您正在本地编辑页面,要查看更改后的效果,您可以进入 content 存储库文件夹,执行 CLI 命令 yarn start,在浏览器中访问 localhost:5042,然后导航到页面并查看。在搜索框中输入标题以轻松找到它。当您编辑源代码时,预览页面将在浏览器中更新。

附加文件

要将文件附加到您的文章,只需将其包含在文章的 index.md 文件所在的同一目录中。通常通过 <a> 元素将文件包含在页面中。