= WikiFormatting [[TracGuideToc]] [[TranslatedPages(revision=121)]] Wiki标记是Trac的核心特性,它和Trac的其它部分紧密结合在一起构成了一个灵活而又强大的整体。 Trac拥有一个小而强大的wiki渲染引擎,它借鉴了许多其它流行wiki的标记命令,特别是[http://moinmo.in/ MoinMoin]和[trac:WikiCreole]。 wiki标记可以出现在任何允许WikiFormatting的地方,本页将为你深入讲解这些wiki标记。 下面的章节提供了最常见的语法的概述,''类别''列中的每一个链接指向该语法在本页后面的详细解释。 Trac的wiki标记的一些高级特性在其它的页面中进行了更深入的描述: - TracLinks 涵盖了所有可以精确指向任何Trac资源或其中的一部分的方式。 - WikiPageNames 涵盖了wiki页面的各种命名方式,无论是驼峰式(CamelCase)或其他方式。 - WikiMacros 列出可用于生成动态内容的宏。 - WikiProcessors 和 WikiHtml 详细描述了部分wiki文本如何可以进行特殊处理。 - [trac:wiki:TracDev/Proposals/AdvancedWikiOperations AdvancedWikiOperations] 提供了一些不常用的或管理方面的操作。 == 常用wiki标记 ||= '''类别''' =||= '''Wiki 标记''' =||= '''显示''' =|| |----------------------------------------------------------- {{{#!th rowspan=3 [#字体样式 字体样式] }}} || `'''粗体'''`, `''斜体''`, `'''''Wikipedia 样式'''''` || \ || '''粗体''', ''斜体'', '''''Wikipedia 样式''''' || || {{{`等宽字体 (''其他标记会被忽略'')`}}} || \ || `等宽字体 (''其他标记会被忽略'')` || || `**粗体**`, `//斜体//`, `**//!WikiCreole 样式//**` || \ || **粗体**, //斜体//, **//!WikiCreole 样式//** || |----------------------------------------------------------- ||= [#Headings 标题] =||\ {{{#!td {{{ == Level 2 === Level 3 ^([#hn note])^ }}} }}} {{{#!td style="padding-left: 2em" == Level 2 === Level 3 ^([#hn note])^ }}} |----------------------------------------------------------- ||= [#段落 段落] =||\ {{{#!td {{{ 写成多行的 第一段。 第二段 }}} }}} {{{#!td 写成多行的 第一段。 第二段 }}} |----------------------------------------------------------- ||= [#列表 列表] =||\ {{{#!td {{{ * 符号列表 可以写成多行 1. 嵌套列表 a. 不同的编号 样式 }}} }}} {{{#!td * 符号列表 可以写成多行 1. 嵌套列表 a. 不同的编号 样式 }}} |----------------------------------------------------------- {{{#!th [#定义列表 定义列表] }}} {{{#!td {{{ 术语:: 定义内容 可以写成多行 }}} }}} {{{#!td 术语:: 定义内容 可以写成多行 }}} |----------------------------------------------------------- ||= [#预格式化文本 预格式化文本] =||\ {{{#!td {{{ {{{ 多行,''不进行wiki格式化'' 空 格 被 原 样 保 留 }}} }}} }}} {{{#!td {{{ 多行,''不进行wiki格式化'' 空格 被 原样 保留 }}} }}} |----------------------------------------------------------- ||= [#引用 引用] =||\ {{{#!td {{{ 如果行头包含空格 会显示成引用文本 }}} }}} {{{#!td 如果行头包含空格 会显示成引用文本 }}} |----------------------------------------------------------- ||= [#讨论引文 讨论引文] =||\ {{{#!td {{{ >> ... (我说的) > (他回复的) }}} }}} {{{#!td >>... (我说的) > (他回复的) }}} |----------------------------------------------------------- ||= [#表格 表格] =||\ {{{#!td {{{ ||= 表头 =|| 单元格 || |||| (详细说明在下面) || }}} }}} {{{#!td ||= 表头 =|| 单元格 || |||| (详细说明在下面) || }}} |----------------------------------------------------------- {{{#!th rowspan=2 [#链接 链接] }}} || `http://trac.edgewall.org` ||\ || http://trac.edgewall.org || || `WikiFormatting (CamelCase)` ||\ || WikiFormatting (CamelCase) || |----------------------------------------------------------- {{{#!th rowspan=5 [#Trac链接 Trac链接] }}} || `wiki:WikiFormatting`, `wiki:"WikiFormatting"` ||\ || wiki:WikiFormatting, wiki:"WikiFormatting" || || `#1 (任务单)`, `[1] (变更集)`, `{1} (报告)` ||\ || #1 (任务单), [1] (变更集), {1} (报告) || || `ticket:1, ticket:1#comment:1` ||\ || ticket:1, ticket:1#comment:1 || || `任务单 [ticket:1]`, `[ticket:1 任务单1]` ||\ || 任务单 [ticket:1], [ticket:1 任务单1] || || `任务单 [[ticket:1]]`, `[[ticket:1|任务单1]]` ||\ || 任务单 [[ticket:1]], [[ticket:1|任务单1]] || |----------------------------------------------------------- {{{#!th rowspan=2 [#设置锚点 设置锚点] }}} || `[=#point1 (1)] 第一个...` ||\ || [=#point1 (1)] 第一个... || || `see [#point1 (1)]` ||\ || see [#point1 (1)] || |----------------------------------------------------------- {{{#!th rowspan=3 [#转义 转义标记] }}} || `!'' 两个单引号` ||\ || !'' 两个单引号 || || `!wiki:WikiFormatting`, `!WikiFormatting` ||\ || !wiki:WikiFormatting, !WikiFormatting || || [[html(`{{{-}}}` 三个大括号)]] ||\ || `{{{-}}}` 三个大括号 || |----------------------------------------------------------- ||= [#Images 图像] =|| `[[Image(`''图像链接''`)]]` || [[Image(htdocs:../common/trac_logo_mini.png)]] || |----------------------------------------------------------- {{{#!th rowspan=2 [#宏 宏] }}} || `[[MacroList(*)]]` || ''(所有可用宏的简短列表)'' || || `[[Image?]]` || ''(Image的说明)'' || |----------------------------------------------------------- ||= [#Processors Processors] =||\ {{{#!td {{{ {{{ #!div style="font-size: 80%" 代码高亮: {{{#!python hello = lambda: "world" }}} }}} }}} }}} {{{#!td style="padding-left: 2em" {{{ #!div style="font-size: 80%" 代码高亮: {{{#!python hello = lambda: "world" }}} }}} }}} |----------------------------------------------------------- ||= [#注释 注释] =||\ {{{#!td {{{ {{{#!comment 提示编辑人员: ... }}} }}} }}} {{{#!td style="padding-left: 2em" {{{#!comment 提示编辑人员: ... }}} }}} |----------------------------------------------------------- ||= [#其他 其他] =||\ {{{#!td {{{ 分行 [[br]] 符 分行 \\ 符 ---- }}} }}} {{{#!td style="padding-left: 2em" 分行 [[br]] 符 分行 \\ 符 ---- }}} == 字体样式 Trac的wiki支持以下字体样式: ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ * '''粗体''', ''' 三重引号 !''' 也可以加粗,只要前面加上叹号 ! ''', * ''斜体'' * '''''粗斜体''''' 或者 ''斜体 和 ''' 粗斜体 ''' '' * __下划线__ * {{{等宽体}}} 或 `等宽体` (因此可以这样将等宽体标记字符显示成等宽体: `{{{` 或 {{{`}}} ) * ~~删除线~~ * ^上标^ * ,,下标,, * **也是粗体**, //也是斜体//, 和 **'' 粗斜体 **'' //(since 0.12)// * [[span(style=color: #FF0000, 红色文本 )]] }}} }}} {{{#!td * '''粗体''', ''' 三重引号 !''' 也可以加粗,只要前面加上叹号 ! ''', * ''斜体'' * '''''粗斜体''''' 或者 ''斜体 和 ''' 粗斜体 ''' '' * __下划线__ * {{{等宽体}}} 或 `等宽体` (因此可以这样将等宽体标记字符显示成等宽体: `{{{` 或 {{{`}}} ) * ~~删除线~~ * ^上标^ * ,,下标,, * **也是粗体**, //也是斜体//, 和 **'' 粗斜体 **'' //(since 0.12)// * [[span(style=color: #FF0000, 红色文本 )]] }}} 注意: * `{{{...}}}` 命令 {{{`...`}}} 不仅仅是选择使用等宽字体,同时也会将其内容原样输出,也就是说其文本内容不会做进一步的wiki处理。 * {{{ ! }}} 告诉wiki解析器不要将接下来的字符当作wiki格式,注意要在 ! 后面加上空格。举例来说,当结束粗体时使用。(译者注:此段翻译没把握,原文是 tells wiki parser to not take the following characters as wiki format, so pay attention to put a space after !, e.g. when ending bold.) * 所有的字体样式标记应该成对使用, 并且必须正确进行嵌套。特别要注意的是`''`斜体不能和`//`配对,`'''`不能和`**`配对。 == 标题 标题的格式是,在行头写一到六个''等号''字符("="),空一格,然后写标题文本。 [=#hn] 标题文本后可以跟着同样数目的"="字符,这不是必须的。也就是说 `=== Section3 ===` 等价于 `=== Section3`。 最后,标题后面可以选择带上一个显式定义的id,如果没有定义,也会隐含生成一个可读的id。 ||= Wiki标记 =||= 显示 =|| {{{#!td {{{ = 标题 = == 子标题 === About ''this'' === === 显式定义id === #using-explicit-id-in-heading == 子标题 #sub2 }}} }}} {{{#!td style="padding: 1em;" {{{ #!div = 标题 = == 子标题 === About ''this'' === === 显式定义id === #using-explicit-id-in-heading == 子标题 #sub2 }}} }}} == 段落 段落是由空行分隔的一段文本。 也可以插入一个强制的断行,使用: ||= Wiki标记 =||= 显示 =|| {{{#!td {{{ 第一行[[BR]]第二行 }}} {{{ 第一 段 第二 段 }}} }}} {{{#!td 第一行[[BR]]第二行 第一 段 第二 段 }}} == 列表 Trac的wiki支持有序(编号)和无序两种列表格式。 示例: ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ * Item 1 * Item 1.1 * Item 1.1.1 * Item 1.1.2 * Item 1.1.3 * Item 1.2 * Item 2 - 列表项从行头开始写, 也可以分成多行 - 分成多行写的时候, 要注意使用正确的缩进,否则 可能就新开始一个段落了(译者注:就像这句话这样)... 1. Item 1 a. Item 1.a a. Item 1.b i. Item 1.b.i i. Item 1.b.ii 1. Item 2 也可以使用特定的数字重新开始一个列表: 3. Item 3 }}} }}} {{{#!td * Item 1 * Item 1.1 * Item 1.1.1 * Item 1.1.2 * Item 1.1.3 * Item 1.2 * Item 2 - 列表项从行头开始写, 也可以分成多行 - 分成多行写的时候, 要注意使用正确的缩进,否则 可能就新开始一个段落了(译者注:就像这句话这样)... 1. Item 1 a. Item 1.a a. Item 1.b i. Item 1.b.i i. Item 1.b.ii 1. Item 2 也可以使用特定的数字重新开始一个列表: 3. Item 3 }}} == 定义列表 Trac的wiki还支持定义列表。 ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ llama:: 一种哺乳动物,有毛 ppython:: 一种爬行动物,没有毛 (can you spot the typo?) }}} }}} {{{#!td llama:: 一种哺乳动物,有毛 ppython:: 一种爬行动物,没有毛 (can you spot the typo?) }}} 注意定义的术语前需要加空格。 == 预格式化文本 预格式化文本块适用于代码片段、注意事项和示例。使用三重''花括号''包含一段文本可以定义一个引用块,花括号要单独占一行。 ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ {{{ def HelloWorld(): print '''Hello World''' }}} }}} }}} {{{#!td {{{ def HelloWorld(): print '''Hello World''' }}} }}} 注意,这种块也用于选择需要WikiProcessors处理的行。 == 引用 使用两个空格缩进一个段落,可以将其标记为一个块引用。 ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ 段落 这是引用别人的一段话。 }}} }}} {{{#!td 段落 这是引用别人的一段话 }}} == 讨论引文 在正在进行的讨论中描述一个引用(比如任务单注释区域),可以使用类似电子邮件那样的引用标记(">", ">>", 等等)。 ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ >> 某人的原话 > 别人回复的话 > - 可以使用任何wiki标记 我的回复 }}} }}} {{{#!td >> 某人的原话 > 别人回复的话 > - 可以使用任何wiki标记 我的回复 }}} == 表格 === 简单表格 简单表格可以像这样进行创建: ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ ||Cell 1||Cell 2||Cell 3|| ||Cell 4||Cell 5||Cell 6|| }}} }}} {{{#!td style="padding: 2em;" ||Cell 1||Cell 2||Cell 3|| ||Cell 4||Cell 5||Cell 6|| }}} 可以通过将文本用一对'='字符括起来来指定单元格标题。 注意,'='字符应该紧挨着分隔符,就像这样: ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ || ||= stable =||= latest =|| ||= 0.10 =|| 0.10.5 || 0.10.6dev|| ||= 0.11 =|| 0.11.6 || 0.11.7dev|| }}} }}} {{{#!td style="padding: 2em;" || ||= stable =||= latest =|| ||= 0.10 =|| 0.10.5 || 0.10.6dev|| ||= 0.11 =|| 0.11.6 || 0.11.7dev|| }}} 最后,指定一个空单元格意味着下一个非空单元格将跨越空单元格,例如: ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ || 1 || 2 || 3 || |||| 1-2 || 3 || || 1 |||| 2-3 || |||||| 1-2-3 || }}} }}} {{{#!td style="padding: 2em;" || 1 || 2 || 3 || |||| 1-2 || 3 || || 1 |||| 2-3 || |||||| 1-2-3 || }}} 注意,如果单元格的内容"紧挨着"单元格的一侧,文本将向该侧对齐。例如: ||= Wiki 标记 =||= 显示 =|| {{{#!td {{{ ||=文本 =||= 数字 =|| ||左对齐 || 1.0|| || 居中 || 4.5|| || 右对齐|| 4.5|| || 默认对齐 || 2.5|| ||默认|| 2.5|| || 默认 || 2.5|| || 默认 || 2.5|| }}} }}} {{{#!td style="padding: 2em;" ||=文本 =||= 数字 =|| ||左对齐 || 1.0|| || 居中 || 4.5|| || 右对齐|| 4.5|| || 默认对齐 || 2.5|| ||默认|| 2.5|| || 默认 || 2.5|| || 默认 || 2.5|| }}} 如果与上面的例子不同,您的表中的单元格中包含更多的文本,将表中的一行扩展为多行可能会更方便。只要将`\`字符放在一行的末尾,就表示下一行文本依然是属于当前行的。 ||= Wiki Markup =|| {{{#!td {{{ || 这是第1列 [http://trac.edgewall.org/newticket new ticket] || \ || 这是第2列 [http://trac.edgewall.org/roadmap the road ahead] || \ || 这是第3列,也是最后一列 || }}} }}} |------------- ||= Display =|| {{{#!td style="padding: 2em;" || 这是第1列 [http://trac.edgewall.org/newticket new ticket] || \ || 这是第2列 [http://trac.edgewall.org/roadmap the road ahead] || \ || 这是第3列,也是最后一列 || }}} === 复杂表格 如果通过简单竖线标记(`||`)创建的表格无法满足你的需要,你可以使用[#Processors-example-tables 基于WikiProcessor的表格]创建更复杂的表格。