]> granicus.if.org Git - graphviz/commit
gv2gxl: in GXL output, indicate when a label originated as an HTML like label
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Thu, 24 Jun 2021 02:55:29 +0000 (19:55 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 5 Jul 2021 23:09:09 +0000 (16:09 -0700)
commit80ff3d1f8d05672e5d983e8696f5f2fb51d9e4bb
treedfd404ab053c1a91489040c712ed7ae3ad7080fa
parentc53ddd487c5e453d8859b84393569a740ffbd314
gv2gxl: in GXL output, indicate when a label originated as an HTML like label

When translating Dot to GXL, labels come out as strings. Input something like:
`label="foo"` and the GXL output is something like
`<attr name="label"><string>foo</string></attr>`. This translation is fine and
works well, until you start using HTML like labels.

Graphviz allows `<` and `>` as delimiters to indicate your label string contains
HTML that should be parsed. When you try to use this feature in combination with
gv2gxl, you get a lossy translation. E.g. the labels `label="foo"` and
`label=<foo>` come out identically in GXL.

This commit makes use of the GXL ‘kind’ field on attributes to note that the
source was an HTML like label. If you translate the two labels from above, you
will now get:

  <attr name="label"><string>foo</string></attr>

and

  <attr name="label" kind="HTML-like string"><string>foo</string></attr>

respectively.

This is a partial fix for #517. This makes the translation to GXL no longer
lossy. The other half of this is recognizing the ‘kind’ field during gxl2gv
translation and preserving it on the way back.
CHANGELOG.md
cmd/tools/gv2gxl.c