- Removed tablex dependencies
- Fixed bracket hight calculation
- Feat: Add option to specify row to note-fields.
- Feat: Allow pattern as fill arguments
- Replaced locate with context
- Option to style the header with a background color (
fill
) and stroke (stroke
). - Option to specify the row heights of the bytefield with a
row
argument. - Option to add labels without a number by using a negative number.
- Improved option to show or hide markers underneath a label.
This release is a complete refactor of the bytefield package.
Huge thanks to nopeslide for his many ideas through out this process and the annotation feature.
- The
bitheader
argument was dropped. The header is now defined with the newbitheader()
function. - The
flagtext
helper function was removed.
Just a short list of some new features which have been added.
note
andgroup
field to add annotations on the left and right of the bytefield.- First draft of the new
bitheader
api. - Multirow and breaking fields look much nicer now.
- ... see example.typ for what is possible now.
Functions are now grouped and separated into multiple files.
bytefield.typ
Contains now only the entry points to the package and exposes the user facing api and a collection of common network protocols
lib/api.typ
Contains the user facing api.
lib/gen.typ
Holds all functions for the new generation pipeline system. As of now the this contains.
- generation of meta data which is necessary for further processing.
- finalization of bf-fields, like indexing and additional information.
- generation of bf-cells from the bf-fields
- generation of the final outcome by mapping bf-cells to tablex cells
lib/types.typ
Contains all type definitions and creator functions.
The following types are defined: bf-field
, data-field
, note-field
, header-field
, bf-cell
, header-cell
lib/states.typ
Contains states which are used for global config with bf-config
- Added state for defining the
row_height
of the table - Added state for defining the
header-font-size
lib/asserts.typ
Contains some assertion functions
lib/utils.typ
Contains some utility functions
- Added "smart" bit headers thanks to hgruniaux
- Added "smart-firstline" to only consider the first row for calculation.
- Added option to pass an
int
as bitheader, which shows all multiples of this number. - Added experimental "text_header" support by passing a
dictionary
to bitheader. - Fixed bitheader number alignment on edge cases. (This could be improved and extended in a future version.)
- Added support for reversed bitheader order with
msb_first:true
. - Quick way to show all headerbits with
bitheader: "all"
. - Updated
flagtext
center alignment.
Initial Release
- Added
bytefield
, as main function to create an new bytefield diagram. - Added
bit
,bits
,byte
,bytes
,padding
, as high level API for adding fields to a bytefield. - Added
flagtext
as a utility function to create rotate text for short flag descriptions. - Added
ipv4
,ipv6
,icmp
,icmpv6
,dns
,tcp
,udp
as predefined diagrams.