forked from HEL/rivet-typst
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			v0.3.0
			...
			1dd66fd587
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 1dd66fd587 | |||
| c7c777f5fa | |||
| 7ef7f653b7 | |||
| 
						
						
							
						
						dd6d38a282
	
				 | 
					
					
						
@@ -36,6 +36,6 @@ For more information, see the [manual](manual.pdf)
 | 
				
			|||||||
To use this package, simply import `schema` from [rivet](https://typst.app/universe/package/rivet) and call `schema.load` to parse a schema description. Then use `schema.render` to render it, et voilà !
 | 
					To use this package, simply import `schema` from [rivet](https://typst.app/universe/package/rivet) and call `schema.load` to parse a schema description. Then use `schema.render` to render it, et voilà !
 | 
				
			||||||
```typ
 | 
					```typ
 | 
				
			||||||
#import "@preview/rivet:0.3.0": schema
 | 
					#import "@preview/rivet:0.3.0": schema
 | 
				
			||||||
#let doc = schema.load("path/to/schema.yaml")
 | 
					#let doc = schema.load(yaml("path/to/schema.yaml"))
 | 
				
			||||||
#schema.render(doc)
 | 
					#schema.render(doc)
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
@@ -407,6 +407,11 @@
 | 
				
			|||||||
      indices.push(r.start)
 | 
					      indices.push(r.start)
 | 
				
			||||||
      indices.push(r.end)
 | 
					      indices.push(r.end)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    // ensure first and last bits are included
 | 
				
			||||||
 | 
					    if not indices.contains(0) { indices.insert(0, struct.start) }
 | 
				
			||||||
 | 
					    if not indices.contains(struct.bits + struct.start - 1) {
 | 
				
			||||||
 | 
					      indices.push(struct.bits + struct.start - 1)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for i in range(struct.bits) {
 | 
					  for i in range(struct.bits) {
 | 
				
			||||||
@@ -453,8 +458,9 @@
 | 
				
			|||||||
  let desc-y = bits-y + bit-h * 2
 | 
					  let desc-y = bits-y + bit-h * 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Names + simple descriptions
 | 
					  // Names + simple descriptions
 | 
				
			||||||
  for range_ in ranges {
 | 
					  for (i, range_) in ranges.enumerate() {
 | 
				
			||||||
    let start-i = to-real-i(if config.ltr-bits {range_.start} else {range_.end})
 | 
					    let start-i = to-real-i(if config.ltr-bits {range_.start} else {range_.end})
 | 
				
			||||||
 | 
					    let end-i = to-real-i(if config.ltr-bits {range_.end} else {range_.start})
 | 
				
			||||||
    let start-x = bits-x + start-i * bit-w
 | 
					    let start-x = bits-x + start-i * bit-w
 | 
				
			||||||
    let width = rng.bits(range_) * bit-w
 | 
					    let width = rng.bits(range_) * bit-w
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -465,6 +471,28 @@
 | 
				
			|||||||
    shapes += draw-line(border-col, (line-x, bits-y), (line-x, bits-y + bit-h))
 | 
					    shapes += draw-line(border-col, (line-x, bits-y), (line-x, bits-y + bit-h))
 | 
				
			||||||
    shapes += draw-text(range_.name, txt-col, name-x, name-y, fill: bg-col)
 | 
					    shapes += draw-text(range_.name, txt-col, name-x, name-y, fill: bg-col)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // paint end line only if needed
 | 
				
			||||||
 | 
					    if (
 | 
				
			||||||
 | 
					      start-i != 0
 | 
				
			||||||
 | 
					        and end-i != struct.bits - 1
 | 
				
			||||||
 | 
					        and ranges
 | 
				
			||||||
 | 
					          .at(
 | 
				
			||||||
 | 
					            i
 | 
				
			||||||
 | 
					              + {
 | 
				
			||||||
 | 
					                if config.ltr-bits and i < ranges.len() - 1 { 1 } else { -1 }
 | 
				
			||||||
 | 
					              },
 | 
				
			||||||
 | 
					          )
 | 
				
			||||||
 | 
					          .end
 | 
				
			||||||
 | 
					          != range_.start - 1
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
 | 
					      line-x += if config.ltr-bits { -width } else { width }
 | 
				
			||||||
 | 
					      shapes += draw-line(
 | 
				
			||||||
 | 
					        border-col,
 | 
				
			||||||
 | 
					        (line-x, bits-y),
 | 
				
			||||||
 | 
					        (line-x, bits-y + bit-h),
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    if range_.description != "" {
 | 
					    if range_.description != "" {
 | 
				
			||||||
      let shapes_
 | 
					      let shapes_
 | 
				
			||||||
      (shapes_, desc-x, desc-y) = draw-description(
 | 
					      (shapes_, desc-x, desc-y) = draw-description(
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user