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

本文介绍如何创建、移动、删除或编辑页面。在所有这些情况下,最好检查我们关于我们编写的内容的指南,以确认是否应采取任何这些操作,并在继续操作之前,在MDN Web Docs 聊天室中与 MDN Web Docs 团队进行讨论。

创建页面

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

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

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

文档的 index.md 文件必须以定义 titleslugpage-type 的前置 matter 开头。所有这些前置 matter 信息都可以在上述页面模板中找到。或者,您可能会发现参考类似文档的 index.md 中的前置 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(例如,Learn/Accessibility),以及其新位置的 slug(例如,Learn/A11y),还可以选择跟随现有文档的区域设置(默认为 en-US)。

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

例如,假设您想将整个 /en-US/Learn/Accessibility 树移动到 /en-US/Learn/A11y,您将执行以下步骤

  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 Learn/Accessibility Learn/A11y
    
  3. 移动文件后,我们需要更新其他内容文件中对这些文件的引用。使用以下命令一次性自动更新所有引用
    bash
    node scripts/update-moved-file-links.js
    
  4. 添加并提交所有已删除、已创建和已修改的文件,并将您的分支推送到您的 fork。
    bash
    git add .
    git commit -m "Move Learn/Accessibility to Learn/A11y"
    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(例如,Learn/Accessibility),还可以选择跟随现有文档的区域设置(默认为 en-US)。

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

例如,如果您想删除整个 /en-US/Learn/Accessibility 树,您将执行以下步骤

  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 Learn/Accessibility --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 中删除内容将不可避免地导致更新现有内容。由于许多文章都链接到其他文章,因此删除的内容可能会在其他地方被引用。添加重定向将减轻删除内容的影响;但是,最佳实践是编辑内容以反映更改,并将内容编辑与删除拉取请求一起包含。

编辑现有页面

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

预览更改

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

附加文件

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