Files
UnrealEngineUWP/Engine/Documentation/Source/DocumentationGuidelines/SyntaxSource/EpicMarkdownSyntaxSource.CHN.udn
mitchell wilson 62805384bf Copying //UE4/Dev-Documentation to Samples-Main (//UE4/Samples-Main) CL - 4860397
#rb none

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: mitchell.wilson
#ROBOMERGE-SOURCE: CL 4860421 in //UE4/Main/...
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 4860484 by mitchell wilson in Dev-VR branch]
2019-01-31 15:44:30 -05:00

551 lines
18 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
INTSourceChangelist:3782314
Availability:Docs
Title:
Crumbs:
Description:
Keywords: Metadata is added at the top of the document with semi-colon's
Title: Epic使用Markdown和语法扩展
Crumbs:DocumentationGuidelines
Description:如何使用Epic自定义Markdown扩展创建新文档源文件。
DoIndex:false
[TOC (start:2 end:3)]
[REGION:note]
**注:**本文使用Epic的Markdown编写的您可以[在此查看源代码](DocumentationGuidelines\SyntaxSource)。
[/REGION]
(#overview)
## 概述
Epic版本的Markdown基于[MarkdownSharp](http://code.google.com/p/markdownsharp/)。MarkdownSharp基于[Markdown](http://daringfireball.net/projects/markdown/),部分功能源自于[PHP Markdown Extra](http://michelf.com/projects/php-markdown/)。
本文旨在介绍一些为支持Epic功能而推出的扩展以及具体支持Markdown Extra中的哪些功能。本语法指南是对原[Markdown语法](http://daringfireball.net/projects/markdown/syntax)的补充说明。
(#epic'sfunctionality)
## Epic功能
(#autogenerationoftableofcontentsandheadings)
### 自动生成目录和标题
标头生成已更改为包含书签书签将成为除去空格的标题。为支持相同名称的多个标头后续标头将从2开始依次追加一个索引编号。
生成的标头列表时,会在文档顶部设置正确缩进,并更换标记\[TOC\]
通过指定\[TOC (start:HeadingStartLevel end:HeadingEndLevel)\]可以设置标题级别级别将包含目录中开始和结束是可选变量如果省略则开始会被赋值1结束会被赋值6。如果同时设置了开始和结束变量则结束变量必须在开始后面。
如果标头的前几个字符是!!,则标头不会包含在目录中。
(#markdownsyntax)
#### Markdown语法
#Heading
[TOC(start:2)]
(#htmloutput)
#### HTML输出
<h1 id="Heading1">标题</h1>
<ul><li><a href="#Heading">标题</a></ul>
(#results)
#### 结果
本页顶部的目录是通过\[TOC\] (start:2 end:3)概括的方法生成的
(#linkingtobookmarkswithindocument)
### 链接到文档中的书签
允许用户链接到文档中的标头,此外还允许用户在文档中加入可以链接的书签
(#markdownsyntax)
#### Markdown语法
这是一个指向文件[自动生成目录](#AutogenerationofTableofContents)中的标题的示例链接。链接该标头文本时移除了文本中的空格。此外如果多个标头有相同的名称则后续标头通过在名称后追加2、3等并删掉空格进行引用例如[Markdown语法1](#MarkdownSyntax) [Markdown语法2](#MarkdownSyntax2) [Markdown语法3](#MarkdownSyntax3)
这是一个指向文档中用户定义的书签[书签1](#Bookmark1)的示例链接。
(#Bookmark1) 该书签文本必须是一行最开头的文字。
(#htmloutput)
#### HTML输出
<p>这是一个指向文件<a href="#AutogenerationofTableofContents">自动生成目录</a>中的标题的示例链接。链接该标头文本时移除了文本中的空格。此外如果多个标头有相同的名称则后续标头通过在名称后追加2、3等并删掉空格进行引用例如<a href="#MarkdownSyntax">Markdown语法1</a> <a href="#MarkdownSyntax2">Markdown语法2</a> <a href="#MarkdownSyntax3">Markdown语法3</a> </p>
<p>这是一个指向文档中用户定义的书签<a href="#Bookmark1">书签1</a>的示例链接。</p>
<p><a id="Bookmark1"/>该书签文本必须是一行最开头的文字。</p>
(#results)
#### 结果
这是一个指向文件[自动生成目录](#AutogenerationofTableofContents)中的标题的示例链接。链接该标头文本时移除了文本中的空格。此外如果多个标头有相同的名称则后续标头通过在名称后追加2、3等并删掉空格进行引用例如[Markdown语法1](#MarkdownSyntax) [Markdown语法2](#MarkdownSyntax2) [Markdown语法3](#MarkdownSyntax3)
这是一个指向文档中用户定义的书签[书签1](#Bookmark1)的示例链接。
(#Bookmark1) 该书签文本必须是一行最开头的文字。
(#linkingtootherpagesinourdocumentation)
### 链接到文档中的其他页面
如果文档位于Markdown文件夹的根目录则通过相对链接来链接到其他页面可使用\%ROOT\%来引用它。如果链接中不指定语言,则假设您将链接到您当前查看的语言的文件。
(#markdownsyntax)
#### Markdown语法
[UE4主页](\%ROOT\%)
[虚幻编辑器用户指南](Engine/UI)
(#htmloutput)
#### HTML输出
<a href="./../../../INT\index.html">UE4主页</a>
<a href="./../../../INT\Editor\index.html">虚幻编辑器用户指南</a>
(#results)
#### 结果
[UE4主页](\%ROOT\%)
[虚幻编辑器用户指南](Engine/UI)
(#linkingtolocalimages)
### 链接到本地图像
我们无需引用图像文件夹。如果图像属于文档中的另一个页面只需要引用其他路径。如果链接中不指定语言则先尝试在语言文件夹图像目录中查找图像然后默认为INT图像文件夹。
(#markdownsyntax)
#### Markdown语法
![标志](Logo_Epic-New.jpg)
![编辑器视口](Engine/UI/LevelEditor\Viewports\viewport.png)
(#htmloutput)
#### HTML输出
<img alt="Logo" src="./../../../images\EpicMarkdownDocGuides\EpicMarkdownExtension\Logo_Epic-New.jpg"/>
<img alt="Editor Viewprot" src="./../../../images\Editor\viewport.png"/>
(#results)
#### 结果
![标志](Logo_Epic-New.jpg)
![编辑器视口](Engine/UI/LevelEditor\Viewports\viewport.png)
(#imagealignment)
### 图像对齐
能够针对图像提供一些格式指令以及如何转换图像格式的指令是十分必要的。
* (w: h: a: convert: type: quality: fill:) 在图像信息后用来指示:
* **w**宽度
* **h**高度
* **a**指示应用于图像的浮动样式,设置选项有左、右和无
* **convert**是false或true表示图像应该压缩和/或转换为其他类型
* **type**可以是jpg、png、gif
* **quality**是jpeg压缩质量
* **fill**是一个数字表示的是格式转换为jpg时的图像背景色。
* 以上选项的顺序很重要,但每个选项都是可选的,可以省略,或者可以省略图像信息后面的整个括号样式。
* 如果有转换参数缺失则使用app.config文件中的默认值。
* 现有的Markdown图像包含方法Inline和Reference都已扩展为支持格式设置。
* 如果将图像浮动显示在左侧或右侧可能会产生意想不到的结果,导致图像周围出现无关内容,例如,移到新部分时,我们不希望在无关图像旁边显示标题。该文字位于与图像并排的段落中。样式表元素通过指定`clear: both;`来控制何时清除浮动样式目前标题级别1和2以及hr元素将停止浮动。
(#markdownsyntax)
#### Markdown语法
这是指定了右![Epic标志](Logo_Epic-New.jpg "Here's a title")(a:right) 浮动的内嵌图像,高度和宽度都未指定
这是指定了宽度、高度和左浮动的参照图像![Epic标志][RefEpicLogo]。
[RefEpicLogo]:Logo_Epic-New.jpg "这是标题"(w:50 h:50 a:left convert:true quality:75 fill:#000000)
该文字位于与图像并排的段落中。结束浮动后面跟了一个特殊div元素。
[REGION:clear]
[COMMENT:none]
clear float
[/COMMENT]
[/REGION]
(#htmloutput)
#### HTML输出
<p>这是指定了右<img style="float: right;" title="这是标题" alt="Epic标志" src="./../../../images\EpicMarkdownDocGuides\EpicMarkdownExtension\Logo_Epic-New.jpg"/>浮动的内嵌图像,高度和宽度均未指定。</p>
<p>这是指定了宽度、高度和左浮动的参照图像<img width="50" height="50" style="float: left;" title="这是标题" alt="Epic标志" src="./../../../images\EpicMarkdownDocGuides\EpicMarkdownExtension\Logo_Epic-New.jpg"/>。</p>
<p>该文字位于与图像并排的段落中。结束浮动后面跟了一个特殊div元素。</p>
[REGION:clear]
[COMMENT:none]
clear float
[/COMMENT]
[/REGION]
(#results)
#### 结果
这是指定了右![Epic标志](Logo_Epic-New.jpg "Here's a title")(a:right) 浮动的内嵌图像,高度和宽度都未指定。
这是指定了宽度、高度和左浮动的参照图像![Epic标志][RefEpicLogo]。
[RefEpicLogo]:Logo_Epic-New.jpg "这是标题"(w:50 h:50 a:left convert:true quality:75 fill:#000000)
该文字位于与图像并排的段落中。结束浮动后面跟了一个特殊div元素。
[REGION:clear]
[COMMENT:none]
clear float
[/COMMENT]
[/REGION]
(#tables)
### 表
MultiMarkdown语法中提供了支持设置格式的表格而且非常灵活因此被选作Epic的基础。
* 冒号用于指示标题行中的表格数据的对齐方式。
* 行头和行尾可以有竖线,也可以省略。
* 可以添加标号。
* 可以使用跨列。
* 在单元格中使用^符号支持跨行
(#markdownsyntax)
#### Markdown语法
[表1——顶部标题]
| | 分组 ||
第一个标题 | 第二个标题 | 第三个标题 |
------------ | :------------:| ------------:|
内容 | *长单元格* ||
内容 | **单元格** | 单元格 |
新部分 | 更多 | 数据 |
^ | 以及更多 ||
------------ | :------------:| ------------:|
内容 | *长单元格* ||
内容 | **单元格** | 单元格 |
新部分 | 更多 | 数据 |
^ | 以及更多 ||
[<caption>表2——右侧标题</caption>]
| ------------ | :------------:| ------------:|
| 内容 | *长单元格* ||
| 内容 | **单元格** | 单元格 |
| 新部分 | 更多 | 数据 |
| ^ | 以及更多 ||
(#htmloutput)
#### HTML输出
<table>
<caption>表1——顶部标题</caption>
<colgroup><col/>
<col align="center"/>
<col align="right"/>
</colgroup><thead>
<tr>
<th colspan="1"/>
<th colspan="2">分组</th>
</tr>
<tr>
<th colspan="1">第一个标题</th>
<th colspan="1">第二个标题</th>
<th colspan="1">第三个标题</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="1">内容</td>
<td align="center" colspan="2"><em>长单元格</em></td>
</tr>
<tr>
<td colspan="1">Content</td>
<td align="center" colspan="1"><strong>单元格</strong></td>
<td align="right" colspan="1">单元格</td>
</tr>
<tr>
<td rowspan="2" colspan="1">新部分</td>
<td align="center" colspan="1">更多</td>
<td align="right" colspan="1">数据</td>
</tr>
<tr>
<td align="center" colspan="2">以及更多</td>
</tr>
</tbody>
</table>
<table>
<caption>表2——右侧标题</caption>
<colgroup><col/>
<col align="center"/>
<col align="right"/>
</colgroup><tbody>
<tr>
<th colspan="1">内容</th>
<td align="center" colspan="2"><em>长单元格</em></td>
</tr>
<tr>
<th colspan="1">Content</th>
<td align="center" colspan="1"><strong>单元格</strong></td>
<td align="right" colspan="1">单元格</td>
</tr>
<tr>
<th rowspan="2" colspan="1">新部分</th>
<td align="center" colspan="1">更多</td>
<td align="right" colspan="1">数据</td>
</tr>
<tr>
<td align="center" colspan="2">以及更多</td>
</tr>
</tbody>
</table>
(#results)
#### 结果
[表1——顶部标题]
| | 分组 ||
第一个标题 | 第二个标题 | 第三个标题 |
------------ | :-----------:| -----------:|
内容 | *长单元格* ||
内容 | **单元格** | 单元格 |
新部分 | 更多 | 数据 |
^ | 以及更多 ||
由于对齐行上面没有标题信息,因此最左侧的列被视为标题。
[<caption>表2——右侧标题</caption>]
| ------------ | :------------:| ------------:|
| 内容 | *长单元格* ||
| 内容 | **单元格** | 单元格 |
| 新部分 | 更多 | 数据 |
| ^ | 以及更多 ||
(#metadata)
### 元数据
该示例的实现方法类似于MultiMarkdowns的元数据语法规则如下。
* 元数据必须从文档最顶部开始——前面不能有任何空白行。
* 元数据包含两部分——键和值
* 元数据键必须从行开头处开始。它必须以字母或数字开头,后面的字符可以包含字母、数字、空格、短划线或下划线字符。
* 元数据键结尾以冒号指定
* 冒号后面是元数据值,值几乎可以包含任意字符(换行字符除外)。
* 元数据完成后,用空白行表示开始文档的其余部分
所有元数据都放置在文档标头的<meta name="Key" content="Value"/> html 块中。
除上述规则外,某些键还有特殊功能。
* Title元数据在标头块`<title>Title</title>`中使用
* HtmlDocumentType元数据用于定义使用include/templates文件夹中的哪个元素来生成html。如果缺少该元数据则使用default.html模板文件。
* DoIndex:false告诉索引编制器从所以中排除文档因此也从搜索结果中将其排除。所有文档的默认值都是true
* ForcePublishFiles:可以用于强制将附件和图像发布到html文件夹。
(#markdownsyntax)
#### Markdown语法
Keywords:元数据使用分号添加在文档顶部
Title:它指定文档标题,但如果缺少该元数据,则将文档路径用作标题。
(#htmloutput)
#### HTML输出
<title>它指定文档标题,但如果缺少该元数据,则将文档路径用作标题。</title>
<meta name="Keywords" content="元数据使用分号添加在文档顶部" />
<meta name="Title" content="它指定文档标题,但如果缺少该元数据,则将文档路径用作标题。"/>
(#results)
#### 结果
您可以看到,文档标题栏已经更新了标题元数据标记。
查看文档源代码会看到文档标题中的元数据。
(#definitionlists)
### 定义列表
用于支持定义列表的语法已添加到转换中。定义列表使用与Markdown标准列表相同的对齐和嵌入规则工作。
(#markdownsyntax)
#### Markdown语法
顶级定义列表元素:
$定义1描述1
$定义2描述2
* 列表元素1
1.有序
1.有序
* 列表元素2
$定义3描述3
嵌入的定义列表元素:
* 列表元素1
$定义1描述1
$定义2描述2
* 列表元素2
(#htmloutput)
#### HTML输出
<dl>
<dt>定义1 </dt>
<dd>描述1</dd>
<dt>定义2 </dt>
<dd>描述2
<br/>
<ul>
<li>列表元素1
<br/>
<ol>
<li>有序</li>
<li>有序</li>
</ol></li>
<li>列表元素2</li>
</ul></dd>
<dt>定义3</dt>
<dd>描述3</dd>
</dl>
<ul>
<li>列表元素1
<br/>
<dl>
<dt>定义1 </dt>
<dd>描述1</dd>
<dt>定义2 </dt>
<dd>描述2</dd>
</dl></li>
<li>列表元素2</li>
</ul>
(#results)
#### 结果
顶级定义列表元素:
$定义1描述1
$定义2描述2
* 列表元素1
1.有序
1.有序
* 列表元素2
$定义3描述3
嵌入的定义列表元素:
* 列表元素1
$定义1描述1
$定义2描述2
* 列表元素2
(#additionalbackslashescapes)
### 其他反斜杠转义
除了可以用Markdown转义的字符之外我们还允许转义以下字符
> 大于
| 竖线
\% 百分号
(#markdownextrafunctionsused)
## 使用的Markdown额外功能
(#strictbolditalic)
### 严格粗斜体
左右`_italics_`和`__bold__`语法的左右两侧必须有空格这是为了避免在File_names_including_underscores中使用时误报检测到这些语法。
(#fencedcodeblocks)
### 围栏式代码块
(#markdownsyntax)
#### Markdown语法
`~~~`
由3个或更多~字符围起来的代码
`~~~`
(#htmloutput)
#### HTML输出
<pre class="prettyprint"><code>由3个或更多~字符围起来的代码
</code></pre>
(#results)
#### 结果
~~~
由3个或更多~字符围起来的代码
~~~
(#regions)
### 区域
区域是可以应用样式的基本区域即HTML中的div。您可以使用下面的语法来指定区域
[REGION:stylename]
...
[/REGION]
在HTML生成中这将转换为
<div class="stylename">
...
</div>
还必须在css文件中创建对应的样式规则
.stylename
{
background:#123456;
border:1px solid #654321;
}
(#built-inregions)
#### 内置区域
对于注释、提示、警告和引言等常见内容,已经存在相应的区域样式。
[REGION:note]
这是注释。它位于一个黄色的框中,您可以在左上方看到注释图标。
[/REGION]
[REGION:note]
这是注释。它位于一个黄色的框中,您可以在左上方看到注释图标。
[/REGION]
[REGION:tip]
这是提示。它位于一个绿色的框中,您可以在左上方看到提示图标。
[/REGION]
[REGION:tip]
这是提示。它位于一个绿色的框中,您可以在左上方看到提示图标。
[/REGION]
[REGION:warning]
这是警告。它位于一个红色的框中,您可以在左上方看到警告图标。
[/REGION]
[REGION:warning]
这是警告。它位于一个红色的框中,您可以在左上方看到警告图标。
[/REGION]
[REGION:quote]
这是引言文本。它位于一个蓝色的框中,您可以在左上方看到引言图标。
[/REGION]
[REGION:quote]
这是引言文本。它位于一个蓝色的框中,您可以在左上方看到引言图标。
[/REGION]
(#includingfilesandexcerpts)
### 包含文件和摘要
所有内容或一页的部分内容可以包含在另一页内容中。
包含整页内容的语法如下:
[INCLUDE:Engine/Landscape]
这会将整个横向页面转换并插入到包含这一行的页面中。
使用以下语法可以在页面中定义摘录内容:
[EXCERPT:TerrainLayerCoords]
...
[/EXCERPT:TerrainLayerCoords]
可以使用以下语法包含该摘录:
[INCLUDE:Engine/Landscape/Materials#TerrainLayerCoords]
结果(显示在引言区域中):
[REGION:quote]
[INCLUDE:Engine/Landscape/Materials#TerrainLayerCoords]
[/REGION]