Compare commits

..

No commits in common. "99b90377196d23918b75d7635a7d87f129d2040c" and "8bcedbfc534a2745137bdea0735ba466d06580c1" have entirely different histories.

8 changed files with 16 additions and 60 deletions

View File

@ -24,7 +24,6 @@
/// - width (float): TODO -> remove /// - width (float): TODO -> remove
/// - height (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 /// - full-page (bool): If true, the page will be resized to fit the diagram and take the background color
/// - all-bit-i (bool): If true, all bit indices will be rendered, otherwise, only the ends of each range will be displayed
/// -> dictionary /// -> dictionary
#let config( #let config(
default-font-family: "Ubuntu Mono", default-font-family: "Ubuntu Mono",
@ -50,8 +49,7 @@
left-labels: false, left-labels: false,
width: 1200, width: 1200,
height: 800, height: 800,
full-page: false, full-page: false
all-bit-i: true
) = {} ) = {}
/// Dark theme config /// Dark theme config

View File

@ -11,5 +11,4 @@
/// This functions /// This functions
/// - structures (dictionary): A schema dictionary, as returned by #doc-ref("schema.load") /// - 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") /// - config (auto, dictionary): The configuration parameters, as returned by #doc-ref("config.config")
/// - width (ratio, length): The width of the generated figure #let render(structures, config: auto)
#let render(structures, config: auto, width: 100%) = {}

Binary file not shown.

View File

@ -22,8 +22,7 @@
left-labels: false, left-labels: false,
width: 1200, width: 1200,
height: 800, height: 800,
full-page: false, full-page: false
all-bit-i: true
) = { ) = {
return ( return (
default-font-family: default-font-family, default-font-family: default-font-family,
@ -49,8 +48,7 @@
left-labels: left-labels, left-labels: left-labels,
width: width, width: width,
height: height, height: height,
full-page: full-page, full-page: full-page
all-bit-i: all-bit-i
) )
} }

View File

@ -1,4 +1,4 @@
#let version = version((0,0,2)) #let version = version((0,0,1))
#import "config.typ" #import "config.typ"
#import "schema.typ" #import "schema.typ"

View File

@ -356,27 +356,14 @@
// Draw rectangle around structure // Draw rectangle around structure
shapes += draw-rect(border-col, bits-x, bits-y, bits-width, bit-h, thickness: 2) shapes += draw-rect(border-col, bits-x, bits-y, bits-width, bit-h, thickness: 2)
let indices = range(struct.bits)
if not config.all-bit-i {
indices = ()
for r in struct.ranges.values() {
indices.push(r.start)
indices.push(r.end)
}
}
for i in range(struct.bits) { for i in range(struct.bits) {
let bit-x = ox + i * bit-w let bit-x = ox + i * bit-w
let real-i = struct.bits - i - 1 + start-bit shapes += draw-text(
str(struct.bits - i - 1 + start-bit),
if real-i in indices { txt-col,
shapes += draw-text( bit-x + bit-w / 2,
str(real-i), oy + bit-h / 2
txt-col, )
bit-x + bit-w / 2,
oy + bit-h / 2
)
}
// Draw separator // Draw separator
if i != 0 { if i != 0 {
@ -446,7 +433,7 @@
return (shapes, desc-y) return (shapes, desc-y)
} }
#let render(config, structures, width: 100%) = { #let render(config, structures) = {
set text( set text(
font: config.default-font-family, font: config.default-font-family,
size: config.default-font-size size: config.default-font-size
@ -471,7 +458,7 @@
set page(..params) set page(..params)
let cnvs = canvas(length: 1pt, background: config.background, { canvas(length: 1pt, background: config.background, {
let (shapes, _) = draw-structure( let (shapes, _) = draw-structure(
config, main, structures, config, main, structures,
ox: ox, ox: ox,
@ -488,32 +475,6 @@
fill: none fill: none
) )
}) })
layout(size => {
let m = measure(cnvs)
let w = m.width
let h = m.height
let base-w = if type(width) == ratio {
size.width * width
} else {
width
}
let r = if w == 0 {
0
} else {
base-w / w
}
let new-w = w * r
let new-h = h * r
r *= 100%
box(
width: new-w,
height: new-h,
scale(x: r, y: r, cnvs, reflow: true)
)
})
} }
#let make(config) = { #let make(config) = {

View File

@ -56,10 +56,10 @@
return structures return structures
} }
#let render(structures, width: 100%, config: auto) = { #let render(structures, config: auto) = {
if config == auto { if config == auto {
config = conf.config() config = conf.config()
} }
let renderer_ = renderer.make(config) let renderer_ = renderer.make(config)
(renderer_.render)(structures, width: width) (renderer_.render)(structures)
} }

View File

@ -1,6 +1,6 @@
[package] [package]
name = "rivet" name = "rivet"
version = "0.0.2" version = "0.0.1"
compiler = "0.11.0" compiler = "0.11.0"
repository = "https://git.kb28.ch/HEL/rivet-typst" repository = "https://git.kb28.ch/HEL/rivet-typst"
entrypoint = "src/lib.typ" entrypoint = "src/lib.typ"