在 Graphviz 上的 HTML 标签中使用 CSS 类

Pet*_*ter 2 css graphviz

我有一个 graphviz (2.38.0 (20140413.2041)) 图,其中每个节点都包含几行文本,我希望不同的行具有不同的样式。目前我有:

digraph G{
    stylesheet = "styles.css";
    graph[rankdir=BT];
    node[shape=box];

    Andrew[label=<
        Andrew
        <br />Red
        <br />34
        >];
    James[label=<
        James
        <br />Yellow
        <br />26
        >];

    Andrew -> James;
}
Run Code Online (Sandbox Code Playgroud)

使用样式表:

.name {
    font-weight: bold;
}

.age{
    color: blue;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够使用以下功能:

   Andrew[label=<
        <font class="name">Andrew</font>
        <br />Red
        <br /><font class="age">34</font>
        >];
Run Code Online (Sandbox Code Playgroud)

但不幸的是 dot 给了我:

Warning: Illegal attribute class in <FONT> - ignored
Warning: Illegal attribute class in <FONT> - ignored
Run Code Online (Sandbox Code Playgroud)

我进行了搜索但找不到任何东西,所以我不确定是否有首选的方式来完成我想要实现的目标(例如某种生成重复格式的宏),我错过了.

mal*_*res 7

看起来graphviz接受的HTML子集不包含class里面的属性<font>

 <!-- Font specification -->

<FONT
  COLOR="color"
  FACE="fontname"
  POINT-SIZE="value"
>
Run Code Online (Sandbox Code Playgroud)

(来自https://www.graphviz.org/doc/info/shapes.html#html

正如你在评论中指出的那样,

dot 抱怨 div、p 和 span 的未知 HTML 元素

他们谈论它:

注意:这些标签支持的功能和语法以 HTML 为模型。然而,有许多与 Graphviz 标签相关的方面不在 HTML 中,相反,HTML 允许各种在 Graphviz 中毫无意义的构造。我们通常将这些标签称为“HTML 标签”,而不是繁琐的“类似 HTML 的标签”,但警告读者这些并不是真正的 HTML。下面的语法准确描述了 Graphviz 将接受的内容。