DigitalOcean很高兴能继续建立与服务器管理和软件工程相关的技术文章集。为了确保DigitalOcean文章具有一致的质量和风格,我们制定了以下指导方针。
本指南分为四个部分:
*Style ,我们编写技术教程的高级方法 *结构 ,我们的布局和内容的说明 *编辑 ,Markdown参考指南 *术语 ,常见术语和单词用法指南
为了快速出版,我们建议您在开始撰写文章之前,完整地阅读Style和[Structure](https://andsky.com/tech/tutorials/digitalocean-s-writing-guidelines structure)部分。
在撰写文章时,您可以使用本指南的Formatting部分以及我们的Markdown previewer]和How to Well a Proposal and Outline for a DigitalOcean Community Tutorial]作为参考。
我们也有一份技术最佳实践guide],概述了我们以技术为重点的建议。
<$>[备注] 我们已经开发了Markdown format中的文章模板,您可以将其用作文章的起点。我们强烈建议您使用这些模板之一来计划和开发您的文章。 <$>
继续阅读,了解我们的文章风格。
风格
DigitalOcean文章的风格反映了我们发布文章的目的:为工程师和开发人员提供高质量的学习信息。我们努力确保所有DigitalOcean教程都是:
- 针对所有经验级别编写的综合文档
- 技术详实正确
- 实用、实用、自成体系
- 友好但正式
这些原则指导作者创建文章、教程和其他学习材料,帮助人们解决问题并成长为开发人员。
为所有经验级别编写的综合文档
我们的文章写得尽可能清晰和详细,而不是对读者的背景知识做出假设。
我们显式地包含了读者从全新服务器上的第一个SSH连接到最后的工作设置所需的每条命令。我们还为读者提供理解本教程所需的所有解释和背景信息。我们的目标是让读者学习概念,而不仅仅是复制和粘贴代码和命令。
我们避免使用简单
、直截了当
、容易
、简单
、明显
和只是
这样的词,因为这些词是对读者知识的假设。虽然作者使用这些词来鼓励和激励读者推动具有挑战性的主题,但它们往往会产生相反的效果;当读者听说某事很容易时,他们可能会在遇到问题时感到沮丧。相反,我们通过为读者提供成功所需的解释来鼓励他们。
技术详实正确
我们的文章在技术上是准确的,并遵循行业最佳实践。它们还提供了更多的细节,而不仅仅是代码和命令。我们不提供大块的配置或程序代码,并要求读者将其粘贴到他们的文本编辑器中,相信我们它是安全的。我们提供所有必要的细节,让读者理解和信任这篇文章。
每个命令都应该有详细的解释,包括必要的选项和标志。每个代码块后面都应该有散文式的解释,描述它做什么以及为什么它以这种方式工作。当您要求阅读器执行命令或修改配置文件时,首先要解释它做了什么,以及为什么要求阅读器进行这些更改。这些细节为读者提供了他们成长技能所需的信息。
作者测试他们的教程,以确保他们的工作,完全按照他们在新的服务器上写的,以确保准确性和识别缺失的步骤。我们的编辑也会将这些文章作为评论过程的一部分进行测试,以确保读者获得良好的学习体验。
实用实用,自成一体
一旦读者完成了一篇DigitalOcean文章,他们就会从头到尾安装、构建或设置一些东西。我们强调一种实用的方法:在一篇文章的结尾,读者应该有一个可用的环境或一个例子来构建。
对于作者来说,这意味着文章应该彻底地涵盖这个主题。作者应该链接到现有的DigitalOcean文章,作为读者在开始本教程之前应遵循的先决条件,并链接到可用的DigitalOcean文章,以便在教程正文中提供其他信息。如果没有现有的DigitalOcean文章,并且这些信息不能在简短的摘要中直接添加到文章中,作者应该只派读者到网站外收集信息。
友好但正式
我们的教程旨在提供一种友好但正式的语气。这意味着文章中不包含行话、表情包、过分的俚语、表情符号或笑话。当我们为全球读者写作时,我们的目标是创造一种跨越语言和文化界限的语气。
与博客文章不同,我们不使用第一人称单数(例如,我想......
).相反,我们鼓励使用第二人称(例如,您将配置.
),以保持对读者的关注和他们将完成什么。在某些情况下,我们会使用第一人称复数(例如,我们将检查…
).
我们鼓励使用注重结果的激励性语言。例如,在本教程中,不是您将学习如何安装Apache.
,而是Try
,您将安装Apache.这种方法激励了读者,并将重点放在他们需要实现的目标上。
最后,我们教程的语言尊重不同的人类体验,并遵循我们的Conduct.社区代码这意味着我们避免使用涉及(但不限于)年龄、残疾、种族、性别认同或表达、经验水平、国籍、神经多样性、个人外表、种族、宗教、政治派别、性取向、社会经济地位或技术选择的冒犯性语言或其他内容。
结构
DigitalOcean的文章具有一致的结构,包括导言、结论和读者开始阅读所需的任何先决条件。但是,具体的结构取决于文章的类型。
我们发布的大多数教程都是程序性的,引导读者逐步完成一项任务。程序性条款的结构应为:
- 标题(1级标题)
- 简介(第3级标题)
- 必备条件(第2级标题)
- 第一步-做第一件事(第二级标题)
- 第二步-做下一件事(第二级标题)
- ..
- 步骤n-做最后一件事(第2级标题)
- 结论(第2级标题)
概念性文章将有一个标题、一个导言和一个结论,但它们可能没有先决条件部分或遵循步骤
约定:
- 标题(1级标题)
- 简介(第3级标题)
- 必备条件(可选)(2级标题)
- 副主题1(2级标题)
- 副主题2(2级标题)
- ..
- 副标题n(2级标题)
- 结论(第2级标题)
有些文章更侧重于一个非常小的特定任务或解决方案,它们通常会有一个标题、一个简短的介绍性句子和一个结束语。这些文章的结构将是这样的:
- 标题(1级标题)
- 引言段
- 必备条件(可选)(2级标题)
- 条正文
- 结论段
我们的文章templates]已经在Markdown中为您编写了这个结构,我们鼓励您使用这些模板作为您自己文章的起点。
标题
当你写你的标题时,仔细考虑一下读者按照你的教程去做会有什么效果。试着在标题中包括教程的目标,而不仅仅是读者将用来实现这一目标的工具(S)。理想情况下,标题长度应在60个字符以下。
程序性教程的典型标题遵循以下格式:如何使用<软件>在<发行>上<完成任务> 。
例如,如果您的教程是关于安装Caddy Web服务器的,则目标可能是托管网站。如果你的教程是关于安装Fail 2Ban的,目标可能是保护Nginx服务器。
包含目标的标题(如)上使用Cloudflare和NGINX托管网站))更能为读者提供信息。
简介
每篇文章的第一部分是导言 ,通常有一到三段长。导言的目的是激励读者,设定期望,并总结读者将在文章中做什么。您的简介应回答以下问题:
- 教程是关于什么的? 涉及什么软件,每个组件(简要地)做什么?
- 读者为什么要学习此主题? 在此配置中使用此特定软件有什么好处?读者应该遵循本教程的一些实际原因是什么?
- 读者将在本教程中做什么或创建什么? 他们是否正在设置服务器并对其进行测试?他们是否正在构建和部署一款应用程序?要具体,因为这提供了读者所需的动力,并让他们对这个主题感到兴奋。
- 当他们完成后,读者将取得什么成就? 他们将拥有哪些新技能?他们将能够做什么他们以前做不到的事情?
在导言中回答这些问题还将帮助您设计一个清晰且以读者为中心的教程,因为您将使教程的内容与导言中提到的内容保持一致。一个好的介绍可以让学习者知道文章的其余部分是什么。
把重点放在读者和他们将会完成的事情上。不要使用像我们将学习如何
这样的短语,而要使用像您将配置
或您将构建
这样的短语。这在很大程度上可以激励读者,让他们对你的主题感到兴奋。此外,将重点放在读者正在解决的问题上,而不是技术上。例如,如果教程是关于使用Reaction构建项目的,您可以将介绍重点放在项目上,而不是解释Reaction是什么。
前提条件
DigitalOcean文章的 Preparation 部分具有非常特定的格式和目的。
其目的是准确地阐明读者在学习当前教程之前应该具备或应该做的事情。该格式是读者可以用作核对表的列表。每个点都必须链接到现有的DigitalOcean教程,该教程涵盖了必要的内容,如果没有当前的DigitalOcean教程,则必须链接到官方产品文档。这允许您依赖已知有效的现有内容,而不是从头开始。
我们的系统和DevOps教程将把读者从一个普通的分发映像的全新部署带到一个工作设置,因此它们应该从到服务器的第一个SSH连接开始,或者包括一个这样做的必备教程。
系统管理和DevOps教程的常见前提条件包括:
- 所需的服务器数量,包括分发、初始服务器设置和任何其他必要选项(如内存要求、DO API密钥、IPv6或专用网络)。
- 软件安装和配置,例如Apache、LAMP堆栈或数据库。
- 需要DNS设置或SSL证书。
我们的软件开发教程以类似的方式工作,为读者提供他们需要的所有先决条件,包括开发环境的先决条件。
软件开发教程的常见先决条件包括:
- 需要本地软件,如Git、Node.js、Python、Ruby或Docker。
- 其他用户帐户,如GitHub、Facebook、Twitter或您的读者将需要的其他服务。
- 将帮助读者开始他们的项目的教程,例如或How to Setup an HTMLProject.
- 提供读者可能会觉得有帮助的重要背景的概念性文章,例如了解DOM.
例如,有关构建和部署Node.js应用程序并使用Git将其部署到Ubuntu服务器的教程可能具有以下先决条件:
要完成本教程,您需要:
- 按照Ubuntu 22.04初始服务器设置guide,,包括非根
sudo
用户和防火墙]设置的一台Ubuntu 22.04服务器。- 配置为指向您的服务器的域名。您可以按照域名和域名系统guide.]了解如何将域名指向DigitalOcean水滴
- 您的本地机器上安装了Git。您可以按照教程开源贡献:Git入门》在您的计算机上安装和设置Git。
- node.js的本地开发环境,可以通过如何在ubuntu 22.04.上安装node.js》来设置对于其他系统,请按照如何安装Node.js并为您的系统创建本地开发Environment]中的相应教程进行操作。
通过阅读先决条件,你的读者确切地知道他们在开始之前需要做什么。不会有意外的。
当您测试您的教程时,请严格按照编写的所有必备教程进行操作,以便每个人使用相同的起点。如果您更改了一个变量或完成了其中一个先决条件中的可选步骤,请务必注意这一点。
您可以查看以下方面的良好先决条件示例:
- 本迷你教程的prerequisites.]中的Ubuntu20.04服务器、软件安装和dns记录
- 在本监控教程的prerequisites或本Nagios和Alerta教程的prerequisites.]中使用软件安装处理多台服务器
- 基于React的Web开发项目,请阅读How to Testa Reaction App with Jest and React Testing Library.》
具体说明你的先决条件。像)系列。`
步骤
步骤 部分是教程中描述读者需要做什么以及为什么要做的部分。步骤包含命令、代码清单和文件,并提供解释,不仅解释** 要做什么** ,还解释** 为什么要这样做。**
每一步都以2级标题开始。
过程教程以单词 Step 和一个数字开头,后跟一个em-破折号。步骤标题描述读者在该步骤中将完成的内容,并使用动名词(** -ing** words),如下所示:
步骤1 -创建用户帐户
在标题后面添加一个介绍性句子,描述读者在每一步中将做什么,以及它在实现本教程的总体目标方面所起的作用。把重点放在读者身上。不要用我们会学习
或我会解释
这样的短语,而要用你会建立
或你会创造
这样的短语。
步骤中的命令
读取器必须运行的所有命令都应该在它们自己的代码块中的自己的行上,并且每个命令的前面都应该有一个说明,说明该命令的作用。在命令之后,提供有关该命令的其他详细信息,例如参数的作用以及读者使用它们的原因。
执行以下命令,显示
/home/sammy
目录的内容,包括所有隐藏文件:
命令 ls-al/home/Sammy
-a
开关显示所有文件,包括隐藏的文件;-l
开关显示包括时间戳和文件大小的长列表。
您应该使用单独的代码块显示命令和程序的输出,如下例所示:
运行
hello.js
程序:
命令 node hello.js
程序的输出将打印到屏幕上:
[secondary_label输出] 你好,世界! 这是我的第一个Node.js程序!
输出块有一个标签,并与命令分开,用一些文字解释输出。将命令与输出分开,可以使读者更清楚地了解命令在哪里结束,输出在哪里开始。
如果读者要在目录之间移动,请确保提供这些移动所需的命令(S)。
打开、创建、查看文件
与命令一样,始终通过描述文件或脚本的一般用途来介绍文件或脚本,然后解释读者将在文件中进行的任何更改。如果没有这些解释,读者将无法自定义、更新或解决问题。
明确地告诉用户创建或打开您要使用的每个文件。
在面向命令行用户的教程中,指导读者使用其本行上的命令创建并打开文件:
使用以下命令打开
/etc/hginx/config
文件:
命令 Nano/etc/nginx/Sites-可用/默认
<$>[备注]
我们为Ubuntu和Debian教程使用了nan
编辑器,因为它已经安装好了。我们在CentOS和FreeBSD的教程中使用vi
。无论如何,请避免使用Touch
创建新的空文件,因为您的读者可以直接使用编辑器创建文件。
<$>
对于读者不希望使用命令行界面的教程,例如前端开发教程,您可以省略打开文件的命令。但是,一定要告诉读者要明确打开哪个文件:
在您的编辑器中打开
src/App.js
文件。
读者应该总是知道他们正在使用哪个文件。
代码块
我们将所有代码视为学习的机会。如果你要求读者写代码,遵循与命令相同的方法:介绍代码块,并对其功能进行高级解释。然后显示代码,然后说出任何重要的细节。
下面是一个例子:
在文本编辑器中创建
hello.js
文件:
命令 Nano hello.js
将以下代码添加到文件中,该文件会在屏幕上打印一条消息:
js [标签hello.js] console.log(); console.log()
console.log
函数获取一个字符串,并在自己的行上打印到屏幕上。
请注意,代码块有一个标签,该标签清楚地显示了文件名。
这个Docker Sarm tutorial是一个很好的例子,说明了如何使用我们的定制Markdown来区分在几个不同服务器上运行的命令以及本地运行的命令。
有时,你会打开一个文件,要求读者更改一些具体的内容。执行此操作时,请显示文件的相关部分并使用高亮显示,以明确应更改的内容:
在您的编辑器中打开
/etc/nginx/ites-available/default
文件:
命令 Nano/etc/nginx/Sites-可用/默认
将
server_name
值改为您的域名:`nginx [LABEL/ETC/nginx/Sites-可用/默认] 服务器{ 监听80默认服务器; LISTEN[::]:80 DEFAULT_SERVER ipv6only=on;
根目录/usr/share/nginx/html; index index.html index.htm;
服务器命名您的域名; ……
} `
一定要解释这一改变的作用以及为什么它是必要的。
DigitalOcean的定制降价和格式化指南)旨在帮助使我们的教程说明尽可能易于阅读。
过渡
每一步都应该有一个简短的介绍性句子和一个描述读者完成了什么以及他们下一步要去哪里的结束过渡句子。过渡可以引导读者,并为指令、命令和输出提供重要的上下文。为避免重复,请改变这些句子使用的语言,使其不会重复步骤标题。
以下是本教程中关于如何在Rocky Linux 8:上使用我们的加密保护ngix》的步骤1结束时的过渡示例
您现在已经安装了We‘s Encrypt客户端,但在获取证书之前,您需要确保所有需要的端口都已打开。为此,您将在下一步中更新防火墙设置。
在上面的例子中,作者总结了读者所取得的成就,介绍了下一步的任务,并解释了这两个步骤是如何联系在一起的。
以这种方式框定每一步有助于读者学习并激励他们继续前进。
结论
你的教程的结论 应该总结读者按照你的教程完成了什么。不要使用我们学会了如何
这样的短语,而要使用您配置了
或您构建了
这样的短语。
结论还应该描述读者下一步可以做什么,其中包括读者可以探索的用例或功能的描述,指向其他DigitalOcean教程的链接以及其他设置或配置的链接,以及到外部文档的链接。
一些很好的例子包括本Kubernetes教程的conclusion和[本node-csv
教程的conclusion](https://andsky.com/tech/tutorials/how-to-read-and-write-csv-files-in-node-js-using-node-csv conclusion).
格式化
DigitalOcean教程采用Markdown标记语言格式。Dering Fireball发布了一份全面的降价指南,如果你不熟悉它的话。DigitalOcean也使用一些自定义Markdown.我们的定制降价示例在下面的相应部分中提供。
标头
我们的教程的每一部分都有一个相应的标题:标题应该是H1标题;介绍应该是H3标题;先决条件,步骤和结论应该有H2标题。您可以在我们的Markdown文章模板中查看此格式。
对于程序教程,步骤标题应包含步骤编号(数字),后跟破折号(- )。
步骤标头也应该使用动名词,它是**-ing** 词。例如,步骤标题为** 步骤1-安装Nginx** 。
谨慎使用H3标题,避免使用H4标题。如果您需要使用子标题,请确保在本教程的该部分中有两个或多个该级别的标题。或者,考虑采取多个步骤。
行级格式设置
粗体文本 应用于:
- 可见的图形用户界面文本
- 主机名和用户名,如 WordPress-1** 或** Sammy**
- 术语列表
- 在更改命令上下文时强调,如切换到新服务器或用户
italics_仅应在引入技术术语时使用。例如,Nginx服务器将是OUR_LOAD BALANCER。
内联代码格式应用于:
- 命令名,如
unzip
- 包名,如
mysql-server
- 可选命令
- 文件名和路径,如
~/.ssh/AuthorizedKeys
- 示例URL,如
http://your_domain
- 端口,如
:3000
- 按键,必须全部大写,如
Enter
。如果需要同时按键,请使用加号( +** ),如CTRL+C
。
代码阻止
代码块应用于:
- 读者完成本教程需要执行的命令
- 文件和脚本
- 终端输出
- 文本形式的互动对话
用省略号(.)表示文件中的摘录和遗漏。. )。如果读者需要进行任何更改,请使用突出显示:
`nginx [label /etc/nginx/sites-available/default] 服务器{ listen 80 default_server; listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html; index index. html index. htm; 服务器名称your_domain;
...
} `
如果文件的大部分可以保留默认设置,我们通常只显示需要更改的部分。
如果读者要向现有代码添加行,请使用突出显示来指示新行或其他更改。以下是本教程中的一个示例如何使用Go Modules.
从
mymode
目录打开您的main.go
文件,通过添加以下突出显示的行来添加对PrintHello
的调用:`去 [标签项目/mymodule/main.go]
Package Main
导入(
FMT
我的模块/mypackage
)func main(){ fmt.Println()
mypackage.PrintHello() } `
在上面的示例中,读者将添加的项目都突出显示。
码块前缀
不要在代码块中包含命令提示符($
或#
)。相反,对非根用户命令、根用户命令和自定义前缀分别使用DigitalOcean的定制Markdown:
1```command
2sudo apt update
1
2`超级用户添加用户sammy`
3
4`Custom_Prefix(MySQL>)刷新权限;`
5
6这就是前面的示例如何呈现的:
7
8>`命令
9>sudo apt更新
10>`
11>
12>`超级用户
13>添加用户Sammy
14>`
15>
16>`Custom_Prefix(MySQL>)
17>同花顺权限;
18>`
19
20当您以这种方式呈现命令时,读者将不会意外地选择提示符。
21
22# 代码块标签
23
24DigitalOcean的Markdown还包括标签和二级标签。您可以通过在代码块中的任意位置添加一行`[Label Label Text]`或`[Second_Label二级标签文本]`来为代码块添加标签。
25
26使用标签可以使用文件名标记包含文件内容的代码块。例如,如果您有一个名为`app.js`的文件,则可以使用`[Label app.js]`来标记代码块:
1[label app.js]
2console.log("Hello World!");
1
2标签显示在代码清单的上方:
3
4```js
5[label app.js]
6console.log("Hello World!");
使用次级标签来标记打印到屏幕上的终端或程序输出,如下所示:
[secondary_label Output] Hello World!
次标签如下所示:
1[secondary_label Output]
2Hello World!
标签帮助读者理解他们正在读的是什么,以及它如何适应更大的图景。
码块环境颜色
有时,您会让读者在多台计算机上工作,例如他们的本地计算机和多台服务器。使用不同的环境显示颜色可以使读者更容易理解这一点。DigitalOcean的Markdown允许您通过在代码块的任何位置添加一行[环境名称]
来为代码块的背景着色。name
的选项有local
、Second d
、Third d
、ourth
、Fith
。
例如,如果您正在编写教程,并且希望显示一个应该在本地运行而不是在服务器上运行的命令,您可以使用[环境本地]
:
命令 [本地环境] ssh根@您的服务器IP
以下是非主服务器命令示例,对于多服务器设置很有用:
使用[环境秒]
将呈现如下:
1[environment second]
2echo "Secondary server"
使用[环境三]
将呈现如下:
1[environment third]
2echo "Third server"
使用[环境四]
将呈现如下:
1[environment fourth]
2echo "Fourth server"
和[环境第五
]将呈现如下:
1[environment fifth]
2echo "Fifth server
在多服务器或多环境教程中使用这些颜色。必要时,您可以堆叠环境标签和输出标签,以指示不同环境中的文件,如本地环境中的示例Output块:
[本地环境] [辅助标签输出] 你好,世界!
嵌套标签确保读取器拥有在适当的终端会话中运行命令所需的所有信息。
注意事项和警告
DigitalOcean Markdown解析器允许使用自定义 note 和** warning** 代码块来显示非常重要的文本。
以下是一个注释和警告的降价示例(这是一张图片):
以下是渲染结果:
<$>[注] 注: 这是一个注释。 <$>
<$>[警告] 警告: 这是一个警告。 <$>
Digital海洋特定信息♪
在讨论DigitalOcean的特定功能时,[INFO]
标注非常有用。
<$>[信息] 这一功能是数字海洋的水滴所特有的。 <$>
变量
突出显示读者需要更改的任何项目,如示例URL、版本号或配置文件中修改的行。您可以通过使用我们的定制* 降价将单词或行括起来来执行此操作。
以下是使用Ubuntu 22.04:进行初始服务器设置]中的一个示例
此示例创建了一个名为sammy 的新用户,但您应该将其替换为您喜欢的用户名:
超级用户 添加用户Sammy
<$>[备注]
注意 :不能用一对符号高亮显示多行,需要分别高亮显示每一行。有时,像换行符(#
)或反记号这样的符号可能会破坏一行中的突出显示功能,并且您可能需要在同一行上有两个突出显示的部分。
<$>
如果你在一个你通常也会使用in-line code
格式的上下文中引用一个变量,你应该使用both styles
。确保你的教程是尽可能容易使用的语言,如突出显示在前面的代码块
,而不是突出显示在红色以上。
避免使用以黄色突出显示
之类的语言,因为突出显示的颜色可能会改变。
图片和其他资产
图像可以快速说明一个观点或在一个步骤中提供额外的澄清。使用图形用户界面的屏幕截图、交互对话和服务器设置的图表。不要使用图片来截图代码、配置文件、输出或任何可以复制和粘贴到文章中的内容。
在教程中包含图像时,请遵循以下指导原则:
- 包括描述性Alt文本,以便使用屏幕阅读器的读者可以依赖Alt文本而不是图像。
- 包括一个简短的标题,以便在文章的上下文中对图像进行上下文设置(标题通常会比Alt文本短)。
- 使用
.png
文件格式。 - IMGUR.)上的主机镜像
- 使图像的高度尽可能短。
如果你为你的教程制作了一个图表的模型,我们将创建一个DigitalOcean风格的图表。我们还将在发布时将所有图像上传到DigitalOcean服务器。
下面是一个在教程中包含图片的Markdown示例:
1
您可以在This Matomo tutorial.]中查看图像中强描述性Alt文本的示例
有时,您可能希望读者能够访问太长而无法在教程正文中显示的配置文件。DigitalOcean将在我们的Assets服务器上托管此文件。您可以使用标准链接格式链接到该文件。
术语
技术文章和教程将使用大量术语,我们已经标准化了一些术语和单词用法。
用户、主机名、域名
我们的默认示例用户名是sammy
。您也可以选择有帮助的描述性内容,如webdav-kai
或nsd
。
默认主机名为you_server
,但您可能希望在多服务器设置中选择更具描述性的名称,如django\_replica\_1
。
默认域名为you_domain
。对于多服务器设置,您可以选择类似于main-1.you_domain
或replica-1.you_domain
的设置。虽然example.com
是一个有效的文档域名,但在教程中使用you_domain
可以清楚地表明读者应该更改示例中的域名。
在配置文件、代码和输出块中使用这些时,请使用突出显示,如下所示:
1[label example configuration file]
2ip: your_server_ip
3domain: primary-1.your_domain
这让读者清楚地知道,他们应该做出一些改变。
IP地址和URL
)中的地址。具体来说,我们建议使用203.0.113.0/24
作为公共地址,使用198.51.100.0/24
作为私有地址。
包含读者需要自定义的变量的示例URL应使用代码格式,并突出显示该变量。我们默认使用YOUR_DOMAIN
,如https://your_domain:3000/simple/
或http://your_server_ip/
.然而,实时链接应该使用标准的Markdown链接样式,没有额外的格式。
软件
使用官方网站的软件名称大写。如果产品网站与其大小写不一致,请在一篇文章中保持一致。
当您第一次提到该软件时,链接到该软件的主页。
多服务器设置
为了技术清晰,请使用该项目的术语来描述多服务器设置。请清楚,条款是来自该项目。例如:Django项目将原服务器称为**主** ,将备服务器称为** 副本** ;MySQL项目将原服务器称为** 主** ,将从服务器称为** 备** 。
在更抽象地讨论多服务器体系结构时,请使用术语主服务器 和** 副本服务器** 或** 管理器** 和** 工作者** 。
技术最佳实践♪
我们的技术最佳实践guide指南》包含更多指导,可帮助您创建一致、高质量的教程,从而帮助我们的读者。
点击此链接成为DigitalOcean作者。