From 6d59f4bc92569b7edf1c28cceadab715442a718f Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Sun, 19 May 2024 17:30:06 +0200 Subject: [PATCH] added manual --- docs/config.typ | 61 +++++++++++++++++++++++++++++++++++ docs/examples.typ | 73 ++++++++++++++++++++++++++++++++++++++++++ docs/schema.typ | 14 ++++++++ manual.pdf | Bin 0 -> 114442 bytes manual.typ | 79 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 227 insertions(+) create mode 100644 docs/config.typ create mode 100644 docs/examples.typ create mode 100644 docs/schema.typ create mode 100644 manual.pdf create mode 100644 manual.typ diff --git a/docs/config.typ b/docs/config.typ new file mode 100644 index 0000000..54c8c3d --- /dev/null +++ b/docs/config.typ @@ -0,0 +1,61 @@ +/// Creates a dictionary of all configuration parameters +/// +/// - default-font-family (str): The default font family +/// - default font-size (length): The absolute default font size +/// - italic-font-family (str): The italic font family (for value descriptions) +/// - italic-font-size (length): The absolute italic font size +/// - background (color): The diagram background color +/// - text-color (color): The default color used to display text +/// - link-color (color): The color used to display links and arrows +/// - bit-i-color (color): The color used to display bit indices +/// - border-color (color): The color used to display borders +/// - bit-width (float): The width of a bit +/// - bit-height (float): The height of a bit +/// - description-margin (float): The margin between descriptions +/// - dash-length (float): The length of individual dashes (for dashed lines) +/// - dash-space (float): The space between two dashes (for dashed lines) +/// - arrow-size (float): The size of arrow heads +/// - margins (tuple[float]): TODO -> remove +/// - arrow-margin (float): The margin between arrows and the structures they link +/// - values-gap (float): The gap between individual values +/// - arrow-label-distance (float): The distance between arrows and their labels +/// - force-descs-on-side (bool): If true, descriptions are placed on the side of the structure, otherwise, they are placed as close as possible to the bit +/// - left-labels (bool): If true, descriptions are put on the left, otherwise, they default to the right hand side +/// - width (float): TODO -> remove +/// - height (float): TODO -> remove +/// - full-page (bool): If true, the page will be resized to fit the diagram and take the background color +/// -> dictionary +#let config( + default-font-family: "Ubuntu Mono", + default-font-size: 15pt, + italic-font-family: "Ubuntu Mono", + italic-font-size: 12pt, + background: white, + text-color: black, + link-color: black, + bit-i-color: black, + border-color: black, + bit-width: 30, + bit-height: 30, + description-margin: 10, + dash-length: 6, + dash-space: 4, + arrow-size: 10, + margins: (20, 20, 20, 20), + arrow-margin: 4, + values-gap: 5, + arrow-label-distance: 5, + force-descs-on-side: false, + left-labels: false, + width: 1200, + height: 800, + full-page: false +) = {} + +/// Dark theme config +/// - ..args (any): see #doc-ref("config.config") +#let dark(..args) = {} + +/// Blueprint theme config +/// - ..args (any): see #doc-ref("config.config") +#let blueprint(..args) = {} \ No newline at end of file diff --git a/docs/examples.typ b/docs/examples.typ new file mode 100644 index 0000000..ab86ae5 --- /dev/null +++ b/docs/examples.typ @@ -0,0 +1,73 @@ +#import "@preview/cetz:0.2.2": draw +#import "../src/lib.typ": schema +#import "../src/util.typ" + +#let example-preamble = "import \"../src/lib.typ\": *;" + +#let example(src, show-src: true, vertical: false, fill: true) = { + src = src.text.trim() + let full-src = example-preamble + src + let body = eval(full-src) + + block(width: 100%, + align(center, + box( + stroke: black + 1pt, + radius: .5em, + fill: if fill {yellow.lighten(80%)} else {none}, + if show-src { + let src-block = align(left, raw(src, lang: "typc")) + table( + columns: if vertical {1} else {2}, + inset: 1em, + align: horizon + center, + stroke: none, + body, + if vertical {table.hline()} else {table.vline()}, src-block + ) + } else { + table( + inset: 1em, + body + ) + } + ) + ) + ) +} + +#let config-config = example(raw(" +let ex = schema.load(```yaml +structures: + main: + bits: 4 + ranges: + 3-0: + name: default +```) +schema.render(ex, config: config.config()) +")) + +#let config-dark = example(raw(" +let ex = schema.load(```yaml +structures: + main: + bits: 4 + ranges: + 3-0: + name: dark +```) +schema.render(ex, config: config.dark()) +")) + +#let config-blueprint = example(raw(" +let ex = schema.load(```yaml +structures: + main: + bits: 4 + ranges: + 3-0: + name: blueprint +```) +schema.render(ex, config: config.blueprint()) +")) \ No newline at end of file diff --git a/docs/schema.typ b/docs/schema.typ new file mode 100644 index 0000000..db1a811 --- /dev/null +++ b/docs/schema.typ @@ -0,0 +1,14 @@ +/// Loads a schema from a file or a raw block. +/// This function returns a dictionary of structures +/// +/// Supported formats: #schema.valid-extensions.map(e => raw("." + e)).join(", ") +/// - path-or-schema (str, raw): If it is a string, defines the path to load. \ +/// If it is a raw block, its content is directly parsed (the block's language will define the format to use) +/// -> dictionary +#let load(path-or-schema) = {} + +/// Renders the given schema +/// This functions +/// - structures (dictionary): A schema dictionary, as returned by #doc-ref("schema.load") +/// - config (auto, dictionary): The configuration parameters, as returned by #doc-ref("config.config") +#let render(structures, config: auto) \ No newline at end of file diff --git a/manual.pdf b/manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3225ecb881393429f8ab5a5fb444b614f0c975d1 GIT binary patch literal 114442 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 DMzv;y literal 0 HcmV?d00001 diff --git a/manual.typ b/manual.typ new file mode 100644 index 0000000..26362b7 --- /dev/null +++ b/manual.typ @@ -0,0 +1,79 @@ +#import "@preview/tidy:0.3.0" +#import "src/lib.typ" +#import "src/schema.typ" +#import "docs/examples.typ" + +#set heading(numbering: (..num) => if num.pos().len() < 4 { + numbering("1.1", ..num) +}) +#{ + outline(indent: true, depth: 3) +} + +#set page(numbering: "1/1", header: align(right)[rivet #sym.dash.em v#lib.version]) + +#let doc-ref(target, full: false, var: false) = { + let (module, func) = target.split(".") + let label-name = module + func + let display-name = func + if full { + display-name = target + } + if not var { + label-name += "()" + display-name += "()" + } + link(label(label-name))[#display-name] +} + +#show link: set text(blue) + += Introduction + +This package provides a way to make beautiful register diagrams using the CeTZ package. It can be used to document Assembly instructions or binary registers + +This is a port of the #link("https://git.kb28.ch/HEL/rivet")[homonymous Python script] for Typst. For more information on the schema format, please check out the original project's #link("https://git.kb28.ch/HEL/rivet/src/branch/main/format.md")[format.md] + += Usage + +Simply import `schema` from #link("src/lib.typ") and call `schema.load` to parse a schema description. Then use `schema.render` to render it, et voilĂ  ! +#pad(left: 1em)[```typ +#import "src/lib.typ": schema +#let doc = schema.load("path/to/schema.typ") +#schema.render(doc) +```] + += Config presets + +Aside from the default config, some example presets are also provided: +- #doc-ref("config.config", full: true): the default theme, black on white + #examples.config-config +- #doc-ref("config.dark", full: true): a dark theme, with white text and lines on a black background + #examples.config-dark +- #doc-ref("config.blueprint", full: true): a blueprint theme, with white text and lines on a blue background + #examples.config-blueprint + +#pagebreak(weak: true) + += Reference + +#let doc-config = tidy.parse-module( + read("docs/config.typ"), + name: "config", + scope: ( + doc-ref: doc-ref + ) +) +#tidy.show-module(doc-config, sort-functions: false) + +#pagebreak() + +#let doc-schema = tidy.parse-module( + read("docs/schema.typ"), + name: "schema", + scope: ( + schema: schema, + doc-ref: doc-ref + ) +) +#tidy.show-module(doc-schema, sort-functions: false) \ No newline at end of file