时间线图
时间线:目前这是一个实验性的图表。语法和属性在未来的版本中可能会发生变化。除了图标集成(这是实验部分)之外,语法是稳定的。
“时间线是一种图表,用于说明事件、日期或时间的年表。它通常以图形方式呈现,以指示时间的流逝,通常按时间顺序组织。基本的时间线按时间顺序呈现事件列表,通常使用日期作为标记。时间线也可以用来显示事件之间的关系,例如一个人生活中事件之间的关系”(维基百科)。
时间线示例
语法
创建时间线图的语法很简单。你总是以timeline
关键字开头,让mermaid知道你想要创建一个时间线图。
之后可以为时间线添加标题。这是通过添加一行带有title
关键字以及标题文本来完成的。
然后添加时间线数据,你总是从一个时间段开始,后面跟着一个冒号,然后是事件的文本。可以选择添加第二个冒号,然后是事件的文本。因此,每个时间段可以有一个或多个事件。
{时间段} : {事件}
或者
{时间段} : {事件} : {事件}
或者
{时间段} : {事件}
: {事件}
: {事件}
注意: 时间段和事件都是简单的文本,不限于数字。
让我们看看上面示例的语法。
Code:
通过这种方式,我们可以使用文本大纲来生成时间线图。时间段和事件的顺序很重要,因为它将用于绘制时间线。第一个时间段将放置在时间线的左侧,最后一个时间段将放置在时间线的右侧。
同样,第一个事件将放置在特定时间段的顶部,最后一个事件将放置在底部。
将时间段分组到节/时代
您可以将时间段分组到节/时代。这是通过添加一行带有section
关键字以及节名称来完成的。
所有后续的时间段都将放置在这个节中,直到定义一个新的节。
如果没有定义节,所有时间段都将放置在默认节中。
让我们看一个示例,其中我们将时间段分组到节中。
Code:
正如你所看到的,时间段被放置在节中,节按定义的顺序排列。
给定节下的所有时间段和事件都遵循类似的配色方案。这样做是为了更容易看出时间段和事件之间的关系。
长时间段或事件的文本换行
默认情况下,如果时间段和事件的文本太长,则会换行。这样做是为了避免文本绘制在图表之外。
您也可以使用<br>
强制换行。
让我们看另一个例子,其中我们有一个长时间段和一个长事件。
Code:
Code:
时间段和事件的样式
如前所述,每个节都有一个配色方案,并且节下的每个时间段和事件都遵循类似的配色方案。
但是,如果没有定义节,那么我们有两种可能性:
- 单独设置时间段的样式,即每个时间段(及其相应的事件)将有其自己的配色方案。这是默认行为。
Code:
注意: 没有定义节,每个时间段及其相应的事件将有其自己的配色方案。
- 使用
disableMultiColor
选项禁用multiColor
选项。这将使所有时间段和事件遵循相同的配色方案。
你需要通过mermaid.initialize
函数或指令来添加此选项。
mermaid.initialize({
theme: 'base',
startOnLoad: true,
logLevel: 0,
timeline: {
disableMulticolor: false,
},
...
...
让我们看看同一个例子,我们在此禁用了multiColor
选项。
Code:
自定义配色方案
您可以使用cScale0
到cScale11
主题变量自定义配色方案,这将更改背景颜色。Mermaid允许您为最多12个节设置独特的颜色,其中cScale0
变量将驱动第一个节或时间段的值,cScale1
将驱动第二个节的值,依此类推。如果您有超过12个节,配色方案将开始重复。
如果您还想更改节的前景色,可以使用对应于cScaleLabel0
到cScaleLabel11
变量的主题变量。
注意: 这些主题变量的默认值是从所选主题中选择的。如果您想覆盖默认值,可以使用initialize
调用添加您自定义的主题变量值。
示例:
现在让我们覆盖cScale0
到cScale2
变量的默认值:
Code:
查看颜色如何更改为主题变量中指定的值。
主题
Mermaid 支持许多预定义的主题,您可以使用它们来找到适合您的主题。PS:您实际上可以覆盖现有主题的变量来创建您自己的自定义主题。在这里了解更多关于主题设置的信息这里。
以下是不同的预定义主题选项:
base
forest
dark
default
neutral
注意: 要更改主题,您可以使用initialize
调用或_指令_。了解更多关于指令的信息 让我们使用它们,看看我们的示例图表在不同主题中的外观:
Base 主题
Code:
Forest 主题
Code:
Dark 主题
Code:
Default 主题
Code:
Neutral 主题
Code:
集成到您的库/网站
时间线使用实验性的延迟加载和异步渲染功能,这些功能将来可能会更改。为了能够添加其他图表,延迟加载非常重要。
您可以使用此方法将包括时间线图在内的mermaid添加到网页:
<script type="module">
import mermaid from '<CDN_URL>/mermaid@<MERMAID_VERSION>/dist/mermaid.esm.min.mjs';
</script>
您还可以参考实时编辑器这里中的实现,以了解如何执行异步加载。