在维基文本中使用 HTML
Trac 支持在任何维基上下文中显示 HTML,通过使用 #!html
维基处理器。
然而,此 HTML 必须是格式良好的。特别是,您不能在一个 #!html
块中插入一个开始标签,然后继续正常的维基文本,并在第二个 #!html
块中插入相应的结束标签。
为了创建样式化的 <div>
、<span>
甚至包含任意维基文本的复杂表格,存在一个强大的替代方案:#!div
、#!span
以及 #!table
、#!tr
、#!td
和 #!th
块。这些维基处理器是内置的,无需安装额外的软件包。
如何使用 #!html
要告知维基引擎某个文本块应被视为 HTML,请使用 html 处理器
维基标记 | 显示 |
---|---|
{{{#!html <h1 style="text-align: right; color: blue">HTML Test</h1> }}} | HTML 测试 |
请注意,Trac 会在显示您的 HTML 代码之前对其进行净化。这意味着潜在危险的构造,例如 Javascript 事件处理程序,将从输出中移除。
过滤是由 Genshi 完成的,输出将是格式良好的 HTML 片段。这意味着您不能使用两个 HTML 块,一个用于打开 <div>,另一个用于关闭它,以包裹任意维基文本。
如何使用 #!div
和 #!span
维基标记 | 显示 |
---|---|
{{{#!div class="important" **important** is a predefined class. }}} {{{#!div style="border: 1pt dotted; margin: 1em" **wikipage** is another predefined class that will be used when no class is specified. }}} {{{#!div class="compact" style="border: 1pt dotted; margin: 1em" **compact** is another predefined class reducing the padding within the `<div>` to a minimum. }}} {{{#!div class="wikipage compact" style="border: 1pt dotted" Classes can be combined (here **wikipage** and **compact**) which results in this case in reduced //vertical// padding but there's still some horizontal space for coping with headings. }}} {{{#!div class="" style="border: 1pt dotted; margin: 1em" Explicitly specifying no classes is //not// the same as specifying no class attribute, as this will remove the //wikipage// default class. }}} | important 是一个预定义类。 wikipage 是另一个预定义类,当未指定类时将使用此预定义类。
compact 是另一个预定义类,可将 类可以组合使用(此处为 wikipage 和 compact),在这种情况下会减少垂直内边距,但仍有一些水平空间用于处理标题。 明确指定不使用任何类不等同于不指定类属性,因为这将移除 wikipage 默认类。 |
请注意,#!div
块的内容包含在一个或多个段落中,这些段落具有非零的上下边距。这导致了上述示例中的上下内边距。要移除内容的上下边距,请将 compact
类添加到 #!div
中。除了 wikipage
和 compact
之外,另一个预定义类是 important
,可用于突出显示段落。额外的 CSS 类可以通过 site/style.css 定义。
对于 span,您应该使用宏调用语法
维基标记 |
---|
Hello [[span(''WORLD'' (click [#anchor here]), style=color: green; font-size: 120%, id=anchor)]]! |
显示 |
|
如何使用 #!td
和其他表格相关处理器
#!td
或 #!th
处理器应分别用于创建表格数据和表格标题单元格。其他处理器 #!table
和 #!tr
对于引入表格结构不是必需的,因为 #!td
和 #!th
将自动完成此操作。|-
行分隔符可以在需要时用于开始新行,但有些人可能更喜欢为此使用 #!tr
块,因为这引入了更正式的分组,并提供了使用额外缩进级别的可能性。#!table
和 #!tr
的主要目的是提供为这些元素指定 HTML 属性(例如 style 或 valign)的可能性。
维基标记 | 显示 | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Simple 2x2 table with rich content: {{{#!th align=left - Left - Header }}} {{{#!th align=left - Right - Header }}} |---------------------------------- {{{#!td style="background: #ffd" - Left - Content }}} {{{#!td style="vertical-align: top" !RightContent }}} |---------------------------------- || ... and this can be mixed||\ ||with pipe-based cells || {{{#!td colspan=2 Pick the style the more appropriate to your content See WikiFormatting#Tables for details on the pipe-based table syntax. }}} If one needs to add some attributes to the table itself... {{{#!table style="border:none;text-align:center;margin:auto" {{{#!tr ==================================== {{{#!th style="border: none" Left header }}} {{{#!th style="border: none" Right header }}} }}} {{{#!tr ==== style="border: 1px dotted grey" {{{#!td style="border: none" 1.1 }}} {{{#!td style="border: none" 1.2 }}} }}} {{{#!tr ==================================== {{{#!td style="border: none" 2.1 }}} {{{#!td 2.2 }}} }}} }}} | 带有富内容的简单 2x2 表格
如果需要向表格本身添加一些属性...
|
请注意,默认情况下,表格会被分配 "wiki" CSS 类,这使得标题单元格具有独特的样式,并为表格和单元格提供了默认边框,如本页上的表格所示。通过移除此类别(#!table class=""
),您可以完全控制表格的呈现。特别是,表格、行或单元格都不会有边框,因此这是一种更有效的方法来实现这种效果,而不是必须在每个地方指定 style="border: no"
参数。
维基标记 | 显示 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{{#!table class="" || 0|| 1|| 2|| || 10|| 20|| 30|| || 11|| 22|| 33|| ||||||= numbers =|| }}} |
|
其他类可以作为替代方案指定(请记住,您可以在 site/style.css 中定义自己的类)。
维基标记 | 显示 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{{{#!table class="listing" || 0|| 1|| 2|| || 10|| 20|| 30|| || 11|| 22|| 33|| ||||||= numbers =|| }}} |
|
HTML 注释
HTML 注释会从 html
处理器的输出中剥离。要向维基页面添加 HTML 注释,请使用 htmlcomment
处理器,此处理器自 Trac 0.12 起可用。
维基标记 |
---|
{{{#!htmlcomment This block is translated to an HTML comment. It can contain <tags> and &entities; that will not be escaped in the output. }}} |
显示 |
<!-- This block is translated to an HTML comment. It can contain <tags> and &entities; that will not be escaped in the output. --> |
字符序列 --
在 HTML 注释中是不允许的,否则会生成渲染错误。
更多信息
- https://www.w3.org/ -- 万维网联盟
- https://www.w3.org/MarkUp/ -- HTML 标记主页