Markdown
通常情况下,使用 Markdown 编写演示文稿内容更加方便。若要创建 Markdown 幻灯片,请将 data-markdown
属性添加到 <section>
元素,并将内容包装在 <textarea data-template>
中,如以下示例所示。
<section data-markdown>
<textarea data-template>
## Slide 1
A paragraph with some text and a [link](https://hakim.se).
---
## Slide 2
---
## Slide 3
</textarea>
</section>
请注意,这会受到缩进(避免混用制表符和空格)和换行符(避免连续换行)的影响。
Markdown 插件
此功能由内置的 Markdown 插件提供支持,该插件又对所有的解析使用 marked。Markdown 插件包含在我们的默认演示文稿示例中。如果您想将其手动添加到新的展示文中,这里有操作方法
<script src="plugin/markdown/markdown.js"></script>
<script>
Reveal.initialize({
plugins: [RevealMarkdown],
});
</script>
外部链接 Markdown
你可以将你的内容编写为一个单独文件,让 Reveal.js 在运行时加载它。请注意,分隔符参数决定了外部文件中幻灯片的划分方式:data-separator
属性定义了横向幻灯片的正则表达式(默认为 ^\r?\n---\r?\n$
,换行符为横向规则界限),而 data-separator-vertical
定义了纵向幻灯片(默认情况下禁用)。data-separator-notes
属性是一个正则表达式,用于指定当前幻灯片的演讲者备注的开头(默认为 notes?:
,因此它将匹配“note:”和“notes:”)。data-charset
属性是可选的,它指定了在加载外部文件时使用哪种字符集。
当在本地使用时,此功能要求 Reveal.js 从本地 Web 服务器运行。以下示例自定义了所有可用的选项
<section
data-markdown="example.md"
data-separator="^\n\n\n"
data-separator-vertical="^\n\n"
data-separator-notes="^Note:"
data-charset="iso-8859-15"
>
<!--
Note that Windows uses `\r\n` instead of `\n` as its linefeed character.
For a regex that supports all operating systems, use `\r?\n` instead of `\n`.
-->
</section>
元素属性
可以使用特殊语法(通过 HTML 注释)为 Markdown 元素添加属性。这对于片段非常有用。
<section data-markdown>
<script type="text/template">
- Item 1 <!-- .element: class="fragment" data-fragment-index="2" -->
- Item 2 <!-- .element: class="fragment" data-fragment-index="1" -->
</script>
</section>
幻灯片属性
可以使用特殊语法(通过 HTML 注释)为 Markdown 生成的幻灯片 <section>
元素添加属性。
<section data-markdown>
<script type="text/template">
<!-- .slide: data-background="#ff0000" -->
Markdown content
</script>
</section>
语法高亮
Reveal.js 内置了强大的语法高亮功能。使用下面显示的括号语法,你可以高亮单个行,甚至逐步浏览多个单独的高亮项。了解更多关于行高亮的信息。
<section data-markdown>
<textarea data-template>
```js [1-2|3|4]
let a = 1;
let b = 2;
let c = x => 1 + 2 + x;
c(3);
```
</textarea>
</section>
行号偏移
你可以在高亮的开头添加一个数字和冒号,添加行号偏移。
<section data-markdown>
<textarea data-template>
```js [712: 1-2|3|4]
let a = 1;
let b = 2;
let c = x => 1 + 2 + x;
c(3);
```
</textarea>
</section>
配置 marked
我们使用 marked 来解析 Markdown。要在 配置 Reveal 时自定义 marked 的呈现,你可以传入选项
Reveal.initialize({
// Options which are passed into marked
// See https://marked.js.org/using_advanced#options
markdown: {
smartypants: true,
},
});