From 995564382ab477df0802bd985ca939f88d4d12ca Mon Sep 17 00:00:00 2001 From: LordBaryhobal <lordbaryhobal@gmail.com> Date: Sat, 15 Jun 2024 13:17:27 +0200 Subject: [PATCH] added color support for json, yaml and xml --- gallery/test.json | 6 ++++++ gallery/test.pdf | Bin 53286 -> 53418 bytes gallery/test.xml | 3 +++ gallery/test.yaml | 8 ++++++++ src/schema.typ | 22 ++++++++++++++++++++++ src/xml-loader.typ | 15 ++++++++++++++- 6 files changed, 53 insertions(+), 1 deletion(-) diff --git a/gallery/test.json b/gallery/test.json index fc15e6d..f247bea 100644 --- a/gallery/test.json +++ b/gallery/test.json @@ -101,5 +101,11 @@ } } } + }, + "colors": { + "main": { + "31-28": "#FF0000", + "11-4": [34, 176, 43] + } } } diff --git a/gallery/test.pdf b/gallery/test.pdf index 925be2cc4343370fe8ff5679751f2898de13dd5a..d08058f4e325c793ef21fbe391a6440d406ebf04 100644 GIT binary patch delta 18375 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 delta 17830 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 diff --git a/gallery/test.xml b/gallery/test.xml index ab92e22..4a8b716 100644 --- a/gallery/test.xml +++ b/gallery/test.xml @@ -65,4 +65,7 @@ <description>offset register</description> </range> </structure> + <color structure="main" color="#FF0000" start="28" end="31" /> + <color structure="main" color="#255961" start="4" end="11" /> + <color structure="immediateOffset" color="89,97,37" start="4" end="11" /> </schema> \ No newline at end of file diff --git a/gallery/test.yaml b/gallery/test.yaml index 2ca7964..f7119ae 100644 --- a/gallery/test.yaml +++ b/gallery/test.yaml @@ -71,3 +71,11 @@ structures: 3-0: name: Rm description: offset register + +colors: + main: + 31-28: "#3EFA6B" + 25-23: + - 100 + - 150 + - 200 \ No newline at end of file diff --git a/src/schema.typ b/src/schema.typ index 0602329..5c1f650 100644 --- a/src/schema.typ +++ b/src/schema.typ @@ -50,6 +50,28 @@ parse-raw(path-or-schema) } + if "colors" in schema { + for struct in schema.colors.keys() { + for (span, col) in schema.colors.at(struct) { + if type(col) == str { + if col.starts-with("#") { + col = rgb(col) + } else { + let (r, g, b) = col.split(",").map(v => int(v)) + col = rgb(r, g, b) + } + } else if type(col) == array { + col = rgb(..col) + } else if type(col) != color { + panic("Invalid color format") + } + schema.colors.at(struct).at(span) = col + } + } + } else { + schema.insert("colors", (:)) + } + let structures = (:) for (id, data) in schema.structures { id = str(id) diff --git a/src/xml-loader.typ b/src/xml-loader.typ index 1f00c42..9513766 100644 --- a/src/xml-loader.typ +++ b/src/xml-loader.typ @@ -83,8 +83,10 @@ #let parse(content) = { let struct-elmts = content.children.filter(e => "tag" in e and e.tag == "structure") + let color-elmts = content.children.filter(e => "tag" in e and e.tag == "color") let structures = (:) + let colors = (:) for struct-elmt in struct-elmts { structures.insert( @@ -93,8 +95,19 @@ ) } + for color-elmt in color-elmts { + let struct = color-elmt.attrs.structure + if not struct in colors { + colors.insert(struct, (:)) + } + + let span = color-elmt.attrs.end + "-" + color-elmt.attrs.start + colors.at(struct).insert(span, color-elmt.attrs.color) + } + return ( - structures: structures + structures: structures, + colors: colors ) }