improved doc + moved examples to separate file

This commit is contained in:
2024-05-17 16:52:43 +02:00
parent ccc38c3e1d
commit 4d97062d30
10 changed files with 192 additions and 98 deletions

View File

@ -3,7 +3,7 @@
/// Draws a block circuit diagram
///
/// This function is also available as `circuiteria.circuit()`
/// This function is also available at the package root
///
/// - body (none, array, element): A code block in which draw functions have been called
/// - length (length, ratio): Optional base unit

View File

@ -39,14 +39,7 @@
/// Draws an ALU with two inputs
///
/// #box(width: 100%, align(center)[
/// #circuit({
/// element.alu(x: 0, y: 0, w: 1, h: 2, id: "alu")
/// wire.stub("alu-port-in1", "west")
/// wire.stub("alu-port-in2", "west")
/// wire.stub("alu-port-out", "east")
/// })
/// ])
/// #examples.alu
/// - x (number, dictionary): see `elmt()`
/// - y (number, dictionary): see `elmt()`
/// - w (number): see `elmt()`

View File

@ -15,37 +15,15 @@
/// Draws a block element
///
/// #box(width: 100%, align(center)[
/// #circuit({
/// element.block(
/// x: 0, y: 0,
/// w: 2, h: 2,
/// id: "block",
/// ports: (
/// north: ((id: "clk", clock: true),),
/// west: (
/// (id: "in1", name: "A"),
/// (id: "in2", name: "B"),
/// ),
/// east: (
/// (id: "out", name: "C"),
/// )
/// )
/// )
/// wire.stub("block-port-clk", "north")
/// wire.stub("block-port-in1", "west")
/// wire.stub("block-port-in2", "west")
/// wire.stub("block-port-out", "east")
/// })
/// ])
/// #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()`
/// - ports (dictionary): see `elmt()`
/// - ports-margins (dictionary): see `elmt()`
/// - fill (none, color): see `elmt()`
/// - stroke (stroke): see `elmt()`
/// - id (str): see `elmt()`

View File

@ -27,17 +27,7 @@
/// Draws a bit extender
///
/// #box(width: 100%, align(center)[
/// #circuit({
/// element.extender(
/// x: 0, y: 0,
/// w: 3, h: 1,
/// id: "extender"
/// )
/// wire.stub("extender-port-in", "west")
/// wire.stub("extender-port-out", "east")
/// })
/// ])
/// #examples.extender
/// - x (number, dictionary): see `elmt()`
/// - y (number, dictionary): see `elmt()`
/// - w (number): see `elmt()`

View File

@ -23,32 +23,7 @@
/// Draws a multiplexer
///
/// #box(width: 100%, align(center)[
/// #circuit({
/// element.multiplexer(
/// x: 0, y: 0,
/// w: 1, h: 3,
/// id: "multiplexer",
/// entries: 3
/// )
/// wire.stub("multiplexer-port-in0", "west")
/// wire.stub("multiplexer-port-in1", "west")
/// wire.stub("multiplexer-port-in2", "west")
/// wire.stub("multiplexer.north", "north")
/// wire.stub("multiplexer-port-out", "east")
/// element.multiplexer(
/// x: 3, y: 0,
/// w: 1, h: 3,
/// id: "multiplexer2",
/// entries: ("A", "B", "C")
/// )
/// wire.stub("multiplexer2-port-in0", "west")
/// wire.stub("multiplexer2-port-in1", "west")
/// wire.stub("multiplexer2-port-in2", "west")
/// wire.stub("multiplexer2.south", "south")
/// wire.stub("multiplexer2-port-out", "east")
/// })
/// ])
/// #examples.multiplexer
/// - x (number, dictionary): see `elmt()`
/// - y (number, dictionary): see `elmt()`
/// - w (number): see `elmt()`

View File

@ -2,22 +2,7 @@
#import "util.typ": opposite-anchor
/// List of valid wire styles
/// #box(width: 100%, align(center)[
/// #circuit({
/// draw.circle((0, 0), radius: .1, name: "p1")
/// draw.circle((2, 1), radius: .1, name: "p2")
/// draw.circle((3, 0), radius: .1, name: "p3")
/// draw.circle((5, 1), radius: .1, name: "p4")
/// draw.circle((6, 0), radius: .1, name: "p5")
/// draw.circle((8, 1), radius: .1, name: "p6")
/// wire.wire("w1", ("p1", "p2"), style: "direct")
/// wire.wire("w2", ("p3", "p4"), style: "zigzag")
/// wire.wire("w3", ("p5", "p6"), style: "dodge", dodge-y: -0.5, dodge-margins: (0.5, 0.5))
/// draw.content((1, -1), [`direct`])
/// draw.content((4, -1), [`zigzag`])
/// draw.content((7, -1), [`dodge`])
/// })
/// ])
/// #examples.wires
#let wire-styles = ("direct", "zigzag", "dodge")
#let signal-width = 1pt
#let bus-width = 1.5pt
@ -233,13 +218,7 @@
/// Draws a wire stub (useful for unlinked ports)
///
/// #box(width: 100%, align(center)[
/// #circuit({
/// draw.circle((0, 0), radius: .1, name: "p")
/// wire.stub("p", "east", name: "port")
/// })
/// ])
///
/// #examples.stub
/// - port-id (str): The port anchor
/// - side (str): The side on which the port is (one of "north", "east", "south", "west")
/// - name (none, str): Optional name displayed at the end of the stub