From a9014e03e9257c345a88d4a41ca1b5bbc4bc59b2 Mon Sep 17 00:00:00 2001 From: LordBaryhobal Date: Fri, 17 May 2024 18:12:25 +0200 Subject: [PATCH] added doc cross-reference links --- manual.pdf | Bin 183077 -> 191990 bytes manual.typ | 24 +++++++++++++++++++++--- src/elements/alu.typ | 20 ++++++++++---------- src/elements/block.typ | 24 ++++++++++++------------ src/elements/extender.typ | 20 ++++++++++---------- src/elements/multiplexer.typ | 22 +++++++++++----------- src/wire.typ | 2 +- 7 files changed, 65 insertions(+), 47 deletions(-) diff --git a/manual.pdf b/manual.pdf index 5750a47ff7bf84285e24a4945596330c9a4c8bd7..06521eb5a925bf608ac3569245acb12b35296b5f 100644 GIT binary patch delta 24264 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

i>NM1JY+_g`EJ#E#KsLZq9_wz)W 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 diff --git a/manual.typ b/manual.typ index 99ea598..08a5137 100644 --- a/manual.typ +++ b/manual.typ @@ -44,6 +44,20 @@ ] } +#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] +} + = Introduction This package provides a way to make beautiful block circuit diagrams using the CeTZ package. @@ -92,7 +106,8 @@ Simply import #link("src/lib.typ") and call the `circuit` function: wire: wire, circuit: circuit, draw: draw, - examples: examples + examples: examples, + doc-ref: doc-ref ) ) #tidy.show-module(wire-docs) @@ -113,8 +128,11 @@ Simply import #link("src/lib.typ") and call the `circuit` function: draw: draw, wire: wire, tidy: tidy, - examples: examples + examples: examples, + doc-ref: doc-ref ) ) -#tidy.show-module(element-docs, sort-functions: false) \ No newline at end of file +#tidy.show-module(element-docs, sort-functions: false) + +#(tidy.utilities.get-style-functions(tidy.styles.default).show-reference)(label("wirewire()"), "test") \ No newline at end of file diff --git a/src/elements/alu.typ b/src/elements/alu.typ index d15b9d6..1c09ce9 100644 --- a/src/elements/alu.typ +++ b/src/elements/alu.typ @@ -40,16 +40,16 @@ /// Draws an ALU with two inputs /// /// #examples.alu -/// - x (number, dictionary): see `elmt()` -/// - y (number, dictionary): see `elmt()` -/// - w (number): see `elmt()` -/// - h (number): see `elmt()` -/// - name (none, str): see `elmt()` -/// - name-anchor (str): see `elmt()` -/// - fill (none, color): see `elmt()` -/// - stroke (stroke): see `elmt()` -/// - id (str): see `elmt()` -/// - debug (dictionary): see `elmt()` +/// - x (number, dictionary): see #doc-ref("element.elmt") +/// - y (number, dictionary): see #doc-ref("element.elmt") +/// - w (number): see #doc-ref("element.elmt") +/// - h (number): see #doc-ref("element.elmt") +/// - name (none, str): see #doc-ref("element.elmt") +/// - name-anchor (str): see #doc-ref("element.elmt") +/// - fill (none, color): see #doc-ref("element.elmt") +/// - stroke (stroke): see #doc-ref("element.elmt") +/// - id (str): see #doc-ref("element.elmt") +/// - debug (dictionary): see #doc-ref("element.elmt") #let alu( x: none, y: none, diff --git a/src/elements/block.typ b/src/elements/block.typ index bb41fc0..31bda9e 100644 --- a/src/elements/block.typ +++ b/src/elements/block.typ @@ -16,18 +16,18 @@ /// Draws a block element /// /// #examples.block -/// - x (number, dictionary): see `elmt()` -/// - y (number, dictionary): see `elmt()` -/// - w (number): see `elmt()` -/// - h (number): see `elmt()` -/// - name (none, str): see `elmt()` -/// - name-anchor (str): see `elmt()` -/// - ports (dictionary): see `elmt()` -/// - ports-margins (dictionary): see `elmt()` -/// - fill (none, color): see `elmt()` -/// - stroke (stroke): see `elmt()` -/// - id (str): see `elmt()` -/// - debug (dictionary): see `elmt()` +/// - x (number, dictionary): see #doc-ref("element.elmt") +/// - y (number, dictionary): see #doc-ref("element.elmt") +/// - w (number): see #doc-ref("element.elmt") +/// - h (number): see #doc-ref("element.elmt") +/// - name (none, str): see #doc-ref("element.elmt") +/// - name-anchor (str): see #doc-ref("element.elmt") +/// - ports (dictionary): see #doc-ref("element.elmt") +/// - ports-margins (dictionary): see #doc-ref("element.elmt") +/// - fill (none, color): see #doc-ref("element.elmt") +/// - stroke (stroke): see #doc-ref("element.elmt") +/// - id (str): see #doc-ref("element.elmt") +/// - debug (dictionary): see #doc-ref("element.elmt") #let block( x: none, y: none, diff --git a/src/elements/extender.typ b/src/elements/extender.typ index bb789c5..86a86c9 100644 --- a/src/elements/extender.typ +++ b/src/elements/extender.typ @@ -28,16 +28,16 @@ /// Draws a bit extender /// /// #examples.extender -/// - x (number, dictionary): see `elmt()` -/// - y (number, dictionary): see `elmt()` -/// - w (number): see `elmt()` -/// - h (number): see `elmt()` -/// - name (none, str): see `elmt()` -/// - name-anchor (str): see `elmt()` -/// - fill (none, color): see `elmt()` -/// - stroke (stroke): see `elmt()` -/// - id (str): see `elmt()` -/// - debug (dictionary): see `elmt()` +/// - x (number, dictionary): see #doc-ref("element.elmt") +/// - y (number, dictionary): see #doc-ref("element.elmt") +/// - w (number): see #doc-ref("element.elmt") +/// - h (number): see #doc-ref("element.elmt") +/// - name (none, str): see #doc-ref("element.elmt") +/// - name-anchor (str): see #doc-ref("element.elmt") +/// - fill (none, color): see #doc-ref("element.elmt") +/// - stroke (stroke): see #doc-ref("element.elmt") +/// - id (str): see #doc-ref("element.elmt") +/// - debug (dictionary): see #doc-ref("element.elmt") #let extender( x: none, y: none, diff --git a/src/elements/multiplexer.typ b/src/elements/multiplexer.typ index 49dad5c..c0da305 100644 --- a/src/elements/multiplexer.typ +++ b/src/elements/multiplexer.typ @@ -24,17 +24,17 @@ /// Draws a multiplexer /// /// #examples.multiplexer -/// - x (number, dictionary): see `elmt()` -/// - y (number, dictionary): see `elmt()` -/// - w (number): see `elmt()` -/// - h (number): see `elmt()` -/// - name (none, str): see `elmt()` -/// - name-anchor (str): see `elmt()` -/// - entries (int, array): If it is an integer, it defines the number of input ports (automatically named with their binary index). If it is an array of string, it defines the name of each input. -/// - fill (none, color): see `elmt()` -/// - stroke (stroke): see `elmt()` -/// - id (str): see `elmt()` -/// - debug (dictionary): see `elmt()` +/// - x (number, dictionary): see #doc-ref("element.elmt") +/// - y (number, dictionary): see #doc-ref("element.elmt") +/// - w (number): see #doc-ref("element.elmt") +/// - h (number): see #doc-ref("element.elmt") +/// - name (none, str): see #doc-ref("element.elmt") +/// - name-anchor (str): see #doc-ref("element.elmt") +/// - entries (int, array): If it is an integer, it defines the number of input ports (automatically named with their binary index). If it is an array of strings, it defines the name of each input. +/// - fill (none, color): see #doc-ref("element.elmt") +/// - stroke (stroke): see #doc-ref("element.elmt") +/// - id (str): see #doc-ref("element.elmt") +/// - debug (dictionary): see #doc-ref("element.elmt") #let multiplexer( x: none, y: none, diff --git a/src/wire.typ b/src/wire.typ index 809fc46..4b12679 100644 --- a/src/wire.typ +++ b/src/wire.typ @@ -100,7 +100,7 @@ /// - slice (none, array): Optional bits slice (start and end bit indices). If set, it will be displayed at the start of the wire /// - color (color): The stroke color /// - dashed (bool): Whether the stroke is dashed or not -/// - style (str): The wire's style (see `wire-styles` for possible values) +/// - style (str): The wire's style (see #doc-ref("wire.wire-styles", var: true) for possible values) /// - reverse (bool): If true, the start and end points will be swapped (useful in cases where the start point depends on the end point, for example with perpendiculars) /// - zigzag-ratio (ratio): Position of the zigzag vertical relative to the horizontal span (only with style "zigzag") /// - dodge-y (number): Y position to dodge the wire to (only with style "dodge")