From ff56ff5f3e0cfae1bec8299cd312d66db27c906c Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 29 May 2026 18:27:20 +0000 Subject: [PATCH 01/25] Change to active voice --- .../configurations/condition/constant_codepoint_count.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snippets/character_table/configurations/condition/constant_codepoint_count.md b/snippets/character_table/configurations/condition/constant_codepoint_count.md index 77089a2..c7771ed 100644 --- a/snippets/character_table/configurations/condition/constant_codepoint_count.md +++ b/snippets/character_table/configurations/condition/constant_codepoint_count.md @@ -1 +1 @@ -If `use_constant_codepoint_count` is enabled. \ No newline at end of file +If `use_constant_codepoint_count` enabled. \ No newline at end of file From 656077e81dac4bc87a4189f9eb743eb58e540bc3 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 5 Jun 2026 14:26:56 +0000 Subject: [PATCH 02/25] Add missing snippet files and polish field names --- package.json | 3 +- scripts/snippet-tool.ts | 14 +- .../brief/constant_code_point_count.md | 1 + .../brief/constant_codepoint_count.md | 1 - .../condition/constant_code_point_count.md | 1 + .../condition/constant_codepoint_count.md | 1 - .../flag/use_constant_code_point_count.md | 1 + .../flag/use_constant_codepoint_count.md | 1 - .../brief/{codepoints.md => code_points.md} | 0 .../{codepoints.md => code_points.md} | 2 +- snippets/color_table/brief.md | 7 +- .../configurations/brief/constant_alpha.md | 3 - .../condition/constant_alpha.md | 0 .../configurations/flag/use_constant_alpha.md | 0 .../color_table/records/condition/alpha.md | 3 + .../color_table/records/condition/blue.md | 3 + .../records/condition/color_type.md | 3 + .../color_table/records/condition/green.md | 3 + snippets/color_table/records/condition/red.md | 3 + .../links/condition/character_tables.md | 0 .../links/flag/link_character_tables.md | 0 .../font_table/records/condition/author.md | 3 + .../condition/character_table_indexes.md | 3 + .../font_table/records/condition/font_type.md | 3 + snippets/font_table/records/condition/name.md | 3 + .../font_table/records/condition/version.md | 3 + .../condition/constant_bits_per_pixel.md | 3 + .../condition/constant_height.md | 3 + .../condition/constant_width.md | 3 + .../flag/use_constant_bits_per_pixel.md | 3 + .../flag/use_constant_height.md | 3 + .../configurations/flag/use_constant_width.md | 3 + .../links/condition/color_tables.md | 0 .../links/flag/link_color_tables.md | 0 .../records/condition/bits_per_pixel.md | 3 + .../pixmap_table/records/condition/data.md | 3 + .../pixmap_table/records/condition/height.md | 3 + .../pixmap_table/records/condition/width.md | 3 + src/Character Table.md | 8 +- src/Color Table.md | 70 ++++++ vale.log | 204 ++++++++++++++++++ 41 files changed, 359 insertions(+), 18 deletions(-) create mode 100644 snippets/character_table/configurations/brief/constant_code_point_count.md delete mode 100644 snippets/character_table/configurations/brief/constant_codepoint_count.md create mode 100644 snippets/character_table/configurations/condition/constant_code_point_count.md delete mode 100644 snippets/character_table/configurations/condition/constant_codepoint_count.md create mode 100644 snippets/character_table/configurations/flag/use_constant_code_point_count.md delete mode 100644 snippets/character_table/configurations/flag/use_constant_codepoint_count.md rename snippets/character_table/records/brief/{codepoints.md => code_points.md} (100%) rename snippets/character_table/records/condition/{codepoints.md => code_points.md} (68%) create mode 100644 snippets/color_table/configurations/condition/constant_alpha.md create mode 100644 snippets/color_table/configurations/flag/use_constant_alpha.md create mode 100644 snippets/color_table/records/condition/alpha.md create mode 100644 snippets/color_table/records/condition/blue.md create mode 100644 snippets/color_table/records/condition/color_type.md create mode 100644 snippets/color_table/records/condition/green.md create mode 100644 snippets/color_table/records/condition/red.md create mode 100644 snippets/font_table/links/condition/character_tables.md create mode 100644 snippets/font_table/links/flag/link_character_tables.md create mode 100644 snippets/font_table/records/condition/author.md create mode 100644 snippets/font_table/records/condition/character_table_indexes.md create mode 100644 snippets/font_table/records/condition/font_type.md create mode 100644 snippets/font_table/records/condition/name.md create mode 100644 snippets/font_table/records/condition/version.md create mode 100644 snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md create mode 100644 snippets/pixmap_table/configurations/condition/constant_height.md create mode 100644 snippets/pixmap_table/configurations/condition/constant_width.md create mode 100644 snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md create mode 100644 snippets/pixmap_table/configurations/flag/use_constant_height.md create mode 100644 snippets/pixmap_table/configurations/flag/use_constant_width.md create mode 100644 snippets/pixmap_table/links/condition/color_tables.md create mode 100644 snippets/pixmap_table/links/flag/link_color_tables.md create mode 100644 snippets/pixmap_table/records/condition/bits_per_pixel.md create mode 100644 snippets/pixmap_table/records/condition/data.md create mode 100644 snippets/pixmap_table/records/condition/height.md create mode 100644 snippets/pixmap_table/records/condition/width.md create mode 100644 src/Color Table.md create mode 100644 vale.log diff --git a/package.json b/package.json index cc32b82..09011a9 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "scripts": { "snippet:generate": "tsx scripts/snippet-tool.ts generate", "snippet:collapse": "tsx scripts/snippet-tool.ts collapse", - "snippet:expand": "tsx scripts/snippet-tool.ts expand" + "snippet:expand": "tsx scripts/snippet-tool.ts expand", + "snippet:document": "tsx scripts/snippet-tool.ts document" }, "devDependencies": { "@types/node": "^25.9.1", diff --git a/scripts/snippet-tool.ts b/scripts/snippet-tool.ts index 0862d63..8e791cf 100644 --- a/scripts/snippet-tool.ts +++ b/scripts/snippet-tool.ts @@ -89,9 +89,13 @@ async function generateStructure(options: Record) { for (const name of configurations) { await writePlaceholder(path.join(root, "configurations", "brief", toFileName(name)), name); + await writePlaceholder(path.join(root, "configurations", "condition", toFileName(name)), `${name} condition`); + await writePlaceholder(path.join(root, "configurations", "flag", toFileName(`use_${name}`)), `use_${name}`); } for (const name of links) { await writePlaceholder(path.join(root, "links", "brief", toFileName(name)), name); + await writePlaceholder(path.join(root, "links", "condition", toFileName(name)), `${name} condition`); + await writePlaceholder(path.join(root, "links", "flag", toFileName(`link_${name}`)), `link_${name}`); } for (const name of modifiers) { await writePlaceholder(path.join(root, "modifiers", "brief", toFileName(name)), name); @@ -99,6 +103,7 @@ async function generateStructure(options: Record) { } for (const name of records) { await writePlaceholder(path.join(root, "records", "brief", toFileName(name)), name); + await writePlaceholder(path.join(root, "records", "condition", toFileName(name)), `${name} condition`); } console.log(`Generated snippet structure for table '${tableName}' at snippets/${tableName}`); @@ -234,8 +239,8 @@ function generateConfigurationsSection( lines.push("| --- | ---- | ----------- |"); for (let i = 0; i < configs.length; i++) { - const configBriefName = configs[i]; // e.g., "constant_codepoint_count" - const flagName = "use_" + configBriefName; // e.g., "use_constant_codepoint_count" + const configBriefName = configs[i]; // e.g., "constant_code_point_count" + const flagName = "use_" + configBriefName; // e.g., "use_constant_code_point_count" const flagPath = getRelativeSnippetPath(snippetType, "configurations/flag", flagName); lines.push( `| ${i} | \`${flagName}\` | \\textinput{${flagPath}} |` @@ -370,7 +375,7 @@ async function generateDocument(options: Record) { const tableDir = path.join(process.cwd(), "snippets", tableName); const outputPath = path.resolve( - options.output || path.join(process.cwd(), `${tableName}.md`) + options.output || path.join(process.cwd(), `src/${tableName}.md`) ); // Check if table directory exists @@ -424,7 +429,8 @@ async function generateDocument(options: Record) { await fs.writeFile(outputPath, doc, "utf8"); console.log( - `Generated document for table '${tableName}' at ${path.relative(process.cwd(), outputPath)}` + `Generated document for table '${tableName}' at ${path.relative(process.cwd(), outputPath)} + Make sure to reorder fields accordingly!` ); } diff --git a/snippets/character_table/configurations/brief/constant_code_point_count.md b/snippets/character_table/configurations/brief/constant_code_point_count.md new file mode 100644 index 0000000..09af662 --- /dev/null +++ b/snippets/character_table/configurations/brief/constant_code_point_count.md @@ -0,0 +1 @@ +The exact codepoint length of each `code_points` field in this table \ No newline at end of file diff --git a/snippets/character_table/configurations/brief/constant_codepoint_count.md b/snippets/character_table/configurations/brief/constant_codepoint_count.md deleted file mode 100644 index ecb49b4..0000000 --- a/snippets/character_table/configurations/brief/constant_codepoint_count.md +++ /dev/null @@ -1 +0,0 @@ -The exact codepoint length of each `codepoints` field in this table \ No newline at end of file diff --git a/snippets/character_table/configurations/condition/constant_code_point_count.md b/snippets/character_table/configurations/condition/constant_code_point_count.md new file mode 100644 index 0000000..ec5f1d6 --- /dev/null +++ b/snippets/character_table/configurations/condition/constant_code_point_count.md @@ -0,0 +1 @@ +If `use_constant_code_point_count` is enabled. \ No newline at end of file diff --git a/snippets/character_table/configurations/condition/constant_codepoint_count.md b/snippets/character_table/configurations/condition/constant_codepoint_count.md deleted file mode 100644 index c7771ed..0000000 --- a/snippets/character_table/configurations/condition/constant_codepoint_count.md +++ /dev/null @@ -1 +0,0 @@ -If `use_constant_codepoint_count` enabled. \ No newline at end of file diff --git a/snippets/character_table/configurations/flag/use_constant_code_point_count.md b/snippets/character_table/configurations/flag/use_constant_code_point_count.md new file mode 100644 index 0000000..3d72541 --- /dev/null +++ b/snippets/character_table/configurations/flag/use_constant_code_point_count.md @@ -0,0 +1 @@ +All characters in this table have the same number of code points. \ No newline at end of file diff --git a/snippets/character_table/configurations/flag/use_constant_codepoint_count.md b/snippets/character_table/configurations/flag/use_constant_codepoint_count.md deleted file mode 100644 index 5541d3f..0000000 --- a/snippets/character_table/configurations/flag/use_constant_codepoint_count.md +++ /dev/null @@ -1 +0,0 @@ -All characters in this table have the same number of codepoints. \ No newline at end of file diff --git a/snippets/character_table/records/brief/codepoints.md b/snippets/character_table/records/brief/code_points.md similarity index 100% rename from snippets/character_table/records/brief/codepoints.md rename to snippets/character_table/records/brief/code_points.md diff --git a/snippets/character_table/records/condition/codepoints.md b/snippets/character_table/records/condition/code_points.md similarity index 68% rename from snippets/character_table/records/condition/codepoints.md rename to snippets/character_table/records/condition/code_points.md index eb77441..cb7cf4c 100644 --- a/snippets/character_table/records/condition/codepoints.md +++ b/snippets/character_table/records/condition/code_points.md @@ -1 +1 @@ -UTF-8 encoded codepoint sequence (null-terminated unless `constant_codepoint_count` is set). \ No newline at end of file +UTF-8 encoded codepoint sequence (null-terminated unless `constant_code_point_count` is set). \ No newline at end of file diff --git a/snippets/color_table/brief.md b/snippets/color_table/brief.md index 107e876..9f5e6c4 100644 --- a/snippets/color_table/brief.md +++ b/snippets/color_table/brief.md @@ -1,3 +1,6 @@ -# color_table table +Stores RGBA color values that can be referenced by pixmap data. -Write the documentation content for color_table table here. \ No newline at end of file +## Use Cases + +- **Pixmap palettes** - When linked to a Pixmap Table, provides the color palette for indexed pixel data. +- **Color storage** - Can store color sets independently for other purposes. \ No newline at end of file diff --git a/snippets/color_table/configurations/brief/constant_alpha.md b/snippets/color_table/configurations/brief/constant_alpha.md index 7f826b6..e69de29 100644 --- a/snippets/color_table/configurations/brief/constant_alpha.md +++ b/snippets/color_table/configurations/brief/constant_alpha.md @@ -1,3 +0,0 @@ -# constant_alpha - -Write the documentation content for constant_alpha here. \ No newline at end of file diff --git a/snippets/color_table/configurations/condition/constant_alpha.md b/snippets/color_table/configurations/condition/constant_alpha.md new file mode 100644 index 0000000..e69de29 diff --git a/snippets/color_table/configurations/flag/use_constant_alpha.md b/snippets/color_table/configurations/flag/use_constant_alpha.md new file mode 100644 index 0000000..e69de29 diff --git a/snippets/color_table/records/condition/alpha.md b/snippets/color_table/records/condition/alpha.md new file mode 100644 index 0000000..ef43a25 --- /dev/null +++ b/snippets/color_table/records/condition/alpha.md @@ -0,0 +1,3 @@ +# alpha + +Write the documentation content for alpha here. \ No newline at end of file diff --git a/snippets/color_table/records/condition/blue.md b/snippets/color_table/records/condition/blue.md new file mode 100644 index 0000000..b8af9da --- /dev/null +++ b/snippets/color_table/records/condition/blue.md @@ -0,0 +1,3 @@ +# blue + +Write the documentation content for blue here. \ No newline at end of file diff --git a/snippets/color_table/records/condition/color_type.md b/snippets/color_table/records/condition/color_type.md new file mode 100644 index 0000000..67ef467 --- /dev/null +++ b/snippets/color_table/records/condition/color_type.md @@ -0,0 +1,3 @@ +# color_type + +Write the documentation content for color_type here. \ No newline at end of file diff --git a/snippets/color_table/records/condition/green.md b/snippets/color_table/records/condition/green.md new file mode 100644 index 0000000..21c49bd --- /dev/null +++ b/snippets/color_table/records/condition/green.md @@ -0,0 +1,3 @@ +# green + +Write the documentation content for green here. \ No newline at end of file diff --git a/snippets/color_table/records/condition/red.md b/snippets/color_table/records/condition/red.md new file mode 100644 index 0000000..201aceb --- /dev/null +++ b/snippets/color_table/records/condition/red.md @@ -0,0 +1,3 @@ +# red + +Write the documentation content for red here. \ No newline at end of file diff --git a/snippets/font_table/links/condition/character_tables.md b/snippets/font_table/links/condition/character_tables.md new file mode 100644 index 0000000..e69de29 diff --git a/snippets/font_table/links/flag/link_character_tables.md b/snippets/font_table/links/flag/link_character_tables.md new file mode 100644 index 0000000..e69de29 diff --git a/snippets/font_table/records/condition/author.md b/snippets/font_table/records/condition/author.md new file mode 100644 index 0000000..72cc428 --- /dev/null +++ b/snippets/font_table/records/condition/author.md @@ -0,0 +1,3 @@ +# author + +Write the documentation content for author here. \ No newline at end of file diff --git a/snippets/font_table/records/condition/character_table_indexes.md b/snippets/font_table/records/condition/character_table_indexes.md new file mode 100644 index 0000000..606449c --- /dev/null +++ b/snippets/font_table/records/condition/character_table_indexes.md @@ -0,0 +1,3 @@ +# character_table_indexes + +Write the documentation content for character_table_indexes here. \ No newline at end of file diff --git a/snippets/font_table/records/condition/font_type.md b/snippets/font_table/records/condition/font_type.md new file mode 100644 index 0000000..5361012 --- /dev/null +++ b/snippets/font_table/records/condition/font_type.md @@ -0,0 +1,3 @@ +# font_type + +Write the documentation content for font_type here. \ No newline at end of file diff --git a/snippets/font_table/records/condition/name.md b/snippets/font_table/records/condition/name.md new file mode 100644 index 0000000..44891f8 --- /dev/null +++ b/snippets/font_table/records/condition/name.md @@ -0,0 +1,3 @@ +# name + +Write the documentation content for name here. \ No newline at end of file diff --git a/snippets/font_table/records/condition/version.md b/snippets/font_table/records/condition/version.md new file mode 100644 index 0000000..eb818fb --- /dev/null +++ b/snippets/font_table/records/condition/version.md @@ -0,0 +1,3 @@ +# version + +Write the documentation content for version here. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md b/snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md new file mode 100644 index 0000000..32df24b --- /dev/null +++ b/snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md @@ -0,0 +1,3 @@ +# constant_bits_per_pixel + +Write the documentation content for constant_bits_per_pixel here. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/condition/constant_height.md b/snippets/pixmap_table/configurations/condition/constant_height.md new file mode 100644 index 0000000..936e729 --- /dev/null +++ b/snippets/pixmap_table/configurations/condition/constant_height.md @@ -0,0 +1,3 @@ +# constant_height + +Write the documentation content for constant_height here. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/condition/constant_width.md b/snippets/pixmap_table/configurations/condition/constant_width.md new file mode 100644 index 0000000..eda1ddc --- /dev/null +++ b/snippets/pixmap_table/configurations/condition/constant_width.md @@ -0,0 +1,3 @@ +# constant_width + +Write the documentation content for constant_width here. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md b/snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md new file mode 100644 index 0000000..32df24b --- /dev/null +++ b/snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md @@ -0,0 +1,3 @@ +# constant_bits_per_pixel + +Write the documentation content for constant_bits_per_pixel here. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/flag/use_constant_height.md b/snippets/pixmap_table/configurations/flag/use_constant_height.md new file mode 100644 index 0000000..936e729 --- /dev/null +++ b/snippets/pixmap_table/configurations/flag/use_constant_height.md @@ -0,0 +1,3 @@ +# constant_height + +Write the documentation content for constant_height here. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/flag/use_constant_width.md b/snippets/pixmap_table/configurations/flag/use_constant_width.md new file mode 100644 index 0000000..eda1ddc --- /dev/null +++ b/snippets/pixmap_table/configurations/flag/use_constant_width.md @@ -0,0 +1,3 @@ +# constant_width + +Write the documentation content for constant_width here. \ No newline at end of file diff --git a/snippets/pixmap_table/links/condition/color_tables.md b/snippets/pixmap_table/links/condition/color_tables.md new file mode 100644 index 0000000..e69de29 diff --git a/snippets/pixmap_table/links/flag/link_color_tables.md b/snippets/pixmap_table/links/flag/link_color_tables.md new file mode 100644 index 0000000..e69de29 diff --git a/snippets/pixmap_table/records/condition/bits_per_pixel.md b/snippets/pixmap_table/records/condition/bits_per_pixel.md new file mode 100644 index 0000000..7091d01 --- /dev/null +++ b/snippets/pixmap_table/records/condition/bits_per_pixel.md @@ -0,0 +1,3 @@ +# bits_per_pixel + +Write the documentation content for bits_per_pixel here. \ No newline at end of file diff --git a/snippets/pixmap_table/records/condition/data.md b/snippets/pixmap_table/records/condition/data.md new file mode 100644 index 0000000..bd849a7 --- /dev/null +++ b/snippets/pixmap_table/records/condition/data.md @@ -0,0 +1,3 @@ +# data + +Write the documentation content for data here. \ No newline at end of file diff --git a/snippets/pixmap_table/records/condition/height.md b/snippets/pixmap_table/records/condition/height.md new file mode 100644 index 0000000..154ea86 --- /dev/null +++ b/snippets/pixmap_table/records/condition/height.md @@ -0,0 +1,3 @@ +# height + +Write the documentation content for height here. \ No newline at end of file diff --git a/snippets/pixmap_table/records/condition/width.md b/snippets/pixmap_table/records/condition/width.md new file mode 100644 index 0000000..28f6238 --- /dev/null +++ b/snippets/pixmap_table/records/condition/width.md @@ -0,0 +1,3 @@ +# width + +Write the documentation content for width here. \ No newline at end of file diff --git a/src/Character Table.md b/src/Character Table.md index b1cfa5f..4376c49 100644 --- a/src/Character Table.md +++ b/src/Character Table.md @@ -24,14 +24,14 @@ | Bit | Name | Description | | --- | ------------------------------ | --------------------------------------------------------------- | -| 0 | `use_constant_codepoint_count` | \textinput{../snippets/character_table/configurations/flag/use_constant_codepoint_count.md} | +| 0 | `use_constant_code_point_count` | \textinput{../snippets/character_table/configurations/flag/use_constant_code_point_count.md} | | 1-7 | — | \textinput{../snippets/phrase/reserved.md} | #### Configuration Values | Name | Type | Condition | Description | | -------------------------- | ---- | -------------------------------------------- | ------------------------------------------------------------------- | -| `constant_codepoint_count` | `u8` | \textinput{../snippets/character_table/configurations/condition/constant_codepoint_count.md} | \textinput{../snippets/character_table/configurations/brief/constant_codepoint_count.md} | +| `constant_code_point_count` | `u8` | \textinput{../snippets/character_table/configurations/condition/constant_code_point_count.md} | \textinput{../snippets/character_table/configurations/brief/constant_code_point_count.md} | ### Table Links @@ -54,8 +54,8 @@ Each character record contains the following fields in order: | -------------------- | -------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------- | | `advance_x` | `u8` | \textinput{../snippets/character_table/records/condition/advance_x.md} | \textinput{../snippets/character_table/records/brief/advance_x.md} | | `pixmap_index` | `u8` | \textinput{../snippets/character_table/records/condition/pixmap_index.md} | \textinput{../snippets/character_table/records/brief/pixmap_index.md} | -| `pixmap_table_index` | `Index` | \textinput{../snippets/character_table/records/condition/pixmap_table_index.md} | \textinput{../snippets/character_table/records/brief/pixmap_table_index.md} | -| `codepoints` | `str` | \textinput{../snippets/character_table/records/condition/codepoints.md} | \textinput{../snippets/character_table/records/brief/codepoints.md} | +| `pixmap_table_index` | `u8` | \textinput{../snippets/character_table/records/condition/pixmap_table_index.md} | \textinput{../snippets/character_table/records/brief/pixmap_table_index.md} | +| `code_points` | `String` | \textinput{../snippets/character_table/records/condition/code_points.md} | \textinput{../snippets/character_table/records/brief/codepoints.md} | ### Record Layout Examples diff --git a/src/Color Table.md b/src/Color Table.md new file mode 100644 index 0000000..4b0968a --- /dev/null +++ b/src/Color Table.md @@ -0,0 +1,70 @@ +\textinput{../snippets/color_table/brief.md} + +## Table Structure + +### Identifier +- **Value**: `0x03` + + +## Modifier Flags + +| Bit | Name | Description | +| --- | ---- | ----------- | +| 0 | `use_color_type` | \textinput{../snippets/color_table/modifiers/brief/use_color_type.md} | +| 1-7 | — | \textinput{../snippets/phrase/reserved.md} | + +### Flag Details + +- **`use_color_type`**: \textinput{../snippets/color_table/modifiers/details/use_color_type.md} + +## Configuration Flags + +| Bit | Name | Description | +| --- | ---- | ----------- | +| 0 | `use_constant_alpha` | \textinput{../snippets/color_table/configurations/flag/use_constant_alpha.md} | +| 1-7 | — | \textinput{../snippets/phrase/reserved.md} | + +### Configuration Values + +| Name | Type | Condition | Description | +| ---- | ---- | --------- | ----------- | +| `constant_alpha` | `u8` | \textinput{../snippets/color_table/configurations/condition/constant_alpha.md} | \textinput{../snippets/color_table/configurations/brief/constant_alpha.md} | + +## Record Fields + + +Each record contains the following fields in order: + +| Field | Type | Condition | Description | +| ----- | ---- | --------- | ----------- | +| `color_type` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/color_type.md} | \textinput{../snippets/color_table/records/brief/color_type.md} | +| `alpha` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/alpha.md} | \textinput{../snippets/color_table/records/brief/alpha.md} | +| `red` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/red.md} | \textinput{../snippets/color_table/records/brief/red.md} | +| `green` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/green.md} | \textinput{../snippets/color_table/records/brief/green.md} | +| `blue` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/blue.md} | \textinput{../snippets/color_table/records/brief/blue.md} | + +## Examples + + +Provide example records demonstrating various field combinations: + +**Example 1: Minimal record** (no optional fields) +``` +[EXAMPLE_PLACEHOLDER] +``` + +**Example 2: With optional fields** +``` +[EXAMPLE_PLACEHOLDER] +``` + + +## Complete Table Example + + +The following byte sequence defines a minimal table with example records: + +| Byte(s) | Binary | Hex | Description | +| ------- | ------ | --- | ----------- | +| 1 | `[BINARY_PLACEHOLDER]` | `[HEX_PLACEHOLDER]` | Table identifier | +| ... | ... | ... | [DESCRIPTION_PLACEHOLDER] | \ No newline at end of file diff --git a/vale.log b/vale.log new file mode 100644 index 0000000..db1f761 --- /dev/null +++ b/vale.log @@ -0,0 +1,204 @@ + {"message": "[write-good.Passive] 'is enabled' may be passive voice. Use active voice if you can.", "location": {"path": "snippets/character_table/configurations/condition/constant_codepoint_count.md", "range": {"start": {"line": 1, "column": 35}}}, "severity": "WARNING"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('is enabled').", "location": {"path": "snippets/character_table/configurations/condition/constant_codepoint_count.md", "range": {"start": {"line": 1, "column": 35}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "snippets/character_table/configurations/condition/constant_codepoint_count.md", "range": {"start": {"line": 1, "column": 35}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'codepoint'?", "location": {"path": "snippets/character_table/configurations/brief/constant_codepoint_count.md", "range": {"start": {"line": 1, "column": 11}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'codepoints'?", "location": {"path": "snippets/character_table/configurations/flag/use_constant_codepoint_count.md", "range": {"start": {"line": 1, "column": 54}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "snippets/character_table/links/brief/pixmap_tables.md", "range": {"start": {"line": 1, "column": 11}}}, "severity": "ERROR"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('is enabled').", "location": {"path": "snippets/character_table/links/condition/pixmap_tables.md", "range": {"start": {"line": 1, "column": 25}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "snippets/character_table/links/condition/pixmap_tables.md", "range": {"start": {"line": 1, "column": 25}}}, "severity": "INFO"} + {"message": "[write-good.Passive] 'is enabled' may be passive voice. Use active voice if you can.", "location": {"path": "snippets/character_table/links/condition/pixmap_tables.md", "range": {"start": {"line": 1, "column": 25}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'codepoint'?", "location": {"path": "snippets/character_table/brief.md", "range": {"start": {"line": 1, "column": 32}}}, "severity": "ERROR"} + {"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "snippets/character_table/brief.md", "range": {"start": {"line": 1, "column": 52}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'pixmaps'?", "location": {"path": "snippets/character_table/brief.md", "range": {"start": {"line": 1, "column": 99}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'Use Cases' should use sentence-style capitalization.", "location": {"path": "snippets/character_table/brief.md", "range": {"start": {"line": 3, "column": 4}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'codepoints'?", "location": {"path": "snippets/character_table/brief.md", "range": {"start": {"line": 5, "column": 86}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap'?", "location": {"path": "snippets/character_table/brief.md", "range": {"start": {"line": 5, "column": 143}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "snippets/character_table/links/flag/link_pixmap_tables.md", "range": {"start": {"line": 1, "column": 33}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap'?", "location": {"path": "snippets/character_table/modifiers/brief/use_pixmap_index.md", "range": {"start": {"line": 1, "column": 71}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "snippets/character_table/modifiers/brief/use_pixmap_table_index.md", "range": {"start": {"line": 1, "column": 75}}}, "severity": "ERROR"} + {"message": "[Google.WordList] Use 'turn off' or 'off' instead of 'disabled'.", "location": {"path": "snippets/character_table/modifiers/details/use_pixmap_index.md", "range": {"start": {"line": 1, "column": 6}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap'?", "location": {"path": "snippets/character_table/modifiers/details/use_pixmap_index.md", "range": {"start": {"line": 1, "column": 20}}}, "severity": "ERROR"} + {"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "snippets/character_table/modifiers/details/use_pixmap_index.md", "range": {"start": {"line": 1, "column": 78}}}, "severity": "INFO"} + {"message": "[Google.WordList] Use 'turn off' or 'off' instead of 'disabled'.", "location": {"path": "snippets/character_table/modifiers/details/use_advance_x.md", "range": {"start": {"line": 1, "column": 6}}}, "severity": "WARNING"} + {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "snippets/character_table/modifiers/details/use_advance_x.md", "range": {"start": {"line": 1, "column": 36}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap's'?", "location": {"path": "snippets/character_table/modifiers/details/use_advance_x.md", "range": {"start": {"line": 1, "column": 43}}}, "severity": "ERROR"} + {"message": "[write-good.Passive] 'is added' may be passive voice. Use active voice if you can.", "location": {"path": "snippets/character_table/modifiers/details/use_advance_x.md", "range": {"start": {"line": 1, "column": 83}}}, "severity": "WARNING"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('is added').", "location": {"path": "snippets/character_table/modifiers/details/use_advance_x.md", "range": {"start": {"line": 1, "column": 83}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "snippets/character_table/modifiers/details/use_advance_x.md", "range": {"start": {"line": 1, "column": 83}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "snippets/character_table/records/brief/pixmap_index.md", "range": {"start": {"line": 1, "column": 32}}}, "severity": "INFO"} + {"message": "[write-good.Passive] 'is enabled' may be passive voice. Use active voice if you can.", "location": {"path": "snippets/character_table/records/brief/pixmap_index.md", "range": {"start": {"line": 1, "column": 32}}}, "severity": "WARNING"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('is enabled').", "location": {"path": "snippets/character_table/records/brief/pixmap_index.md", "range": {"start": {"line": 1, "column": 32}}}, "severity": "INFO"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('is enabled').", "location": {"path": "snippets/character_table/records/brief/pixmap_table_index.md", "range": {"start": {"line": 1, "column": 38}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "snippets/character_table/records/brief/pixmap_table_index.md", "range": {"start": {"line": 1, "column": 38}}}, "severity": "INFO"} + {"message": "[write-good.Passive] 'is enabled' may be passive voice. Use active voice if you can.", "location": {"path": "snippets/character_table/records/brief/pixmap_table_index.md", "range": {"start": {"line": 1, "column": 38}}}, "severity": "WARNING"} + {"message": "[Google.WordList] Use 'turn off' or 'off' instead of 'disabled'.", "location": {"path": "snippets/character_table/modifiers/details/use_pixmap_table_index.md", "range": {"start": {"line": 1, "column": 6}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "snippets/character_table/modifiers/details/use_pixmap_table_index.md", "range": {"start": {"line": 1, "column": 45}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap'?", "location": {"path": "snippets/character_table/modifiers/details/use_pixmap_table_index.md", "range": {"start": {"line": 1, "column": 90}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap'?", "location": {"path": "snippets/character_table/modifiers/details/use_pixmap_table_index.md", "range": {"start": {"line": 1, "column": 133}}}, "severity": "ERROR"} + {"message": "[Google.Will] Avoid using 'will'.", "location": {"path": "snippets/character_table/modifiers/details/use_pixmap_table_index.md", "range": {"start": {"line": 1, "column": 147}}}, "severity": "WARNING"} + {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "snippets/character_table/records/condition/advance_x.md", "range": {"start": {"line": 1, "column": 29}}}, "severity": "INFO"} + {"message": "[write-good.Passive] 'is enabled' may be passive voice. Use active voice if you can.", "location": {"path": "snippets/character_table/records/condition/advance_x.md", "range": {"start": {"line": 1, "column": 29}}}, "severity": "WARNING"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('is enabled').", "location": {"path": "snippets/character_table/records/condition/advance_x.md", "range": {"start": {"line": 1, "column": 29}}}, "severity": "INFO"} + {"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "snippets/character_table/records/condition/codepoints.md", "range": {"start": {"line": 1, "column": 1}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'codepoint'?", "location": {"path": "snippets/character_table/records/condition/codepoints.md", "range": {"start": {"line": 1, "column": 15}}}, "severity": "ERROR"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('is set').", "location": {"path": "snippets/character_table/records/condition/codepoints.md", "range": {"start": {"line": 1, "column": 85}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'is'.", "location": {"path": "snippets/character_table/records/condition/codepoints.md", "range": {"start": {"line": 1, "column": 85}}}, "severity": "INFO"} + {"message": "[write-good.Passive] 'is set' may be passive voice. Use active voice if you can.", "location": {"path": "snippets/character_table/records/condition/codepoints.md", "range": {"start": {"line": 1, "column": 85}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap'?", "location": {"path": "snippets/character_table/records/condition/pixmap_index.md", "range": {"start": {"line": 1, "column": 14}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "snippets/character_table/records/condition/pixmap_index.md", "range": {"start": {"line": 1, "column": 43}}}, "severity": "ERROR"} + {"message": "[Google.OptionalPlurals] Don't use plurals in parentheses such as in 'Table(s)'.", "location": {"path": "snippets/character_table/records/condition/pixmap_index.md", "range": {"start": {"line": 1, "column": 50}}}, "severity": "ERROR"} + {"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "snippets/character_table/records/condition/pixmap_index.md", "range": {"start": {"line": 1, "column": 55}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "snippets/character_table/records/condition/pixmap_table_index.md", "range": {"start": {"line": 1, "column": 23}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'constant_alpha' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/configurations/brief/constant_alpha.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'constant_alpha'?", "location": {"path": "snippets/color_table/configurations/brief/constant_alpha.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'constant_alpha'?", "location": {"path": "snippets/color_table/configurations/brief/constant_alpha.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'color_table table' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/brief.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'color_table'?", "location": {"path": "snippets/color_table/brief.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'color_table'?", "location": {"path": "snippets/color_table/brief.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'use_color_type'?", "location": {"path": "snippets/color_table/modifiers/brief/use_color_type.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'use_color_type' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/modifiers/brief/use_color_type.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'use_color_type'?", "location": {"path": "snippets/color_table/modifiers/brief/use_color_type.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'use_color_type'?", "location": {"path": "snippets/color_table/modifiers/details/use_color_type.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'use_color_type details' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/modifiers/details/use_color_type.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'use_color_type'?", "location": {"path": "snippets/color_table/modifiers/details/use_color_type.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'alpha' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/records/brief/alpha.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'blue' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/records/brief/blue.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'color_type' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/records/brief/color_type.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'color_type'?", "location": {"path": "snippets/color_table/records/brief/color_type.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'color_type'?", "location": {"path": "snippets/color_table/records/brief/color_type.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'green' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/records/brief/green.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'red' should use sentence-style capitalization.", "location": {"path": "snippets/color_table/records/brief/red.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'font_table table' should use sentence-style capitalization.", "location": {"path": "snippets/font_table/brief.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'font_table'?", "location": {"path": "snippets/font_table/brief.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'font_table'?", "location": {"path": "snippets/font_table/brief.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'author' should use sentence-style capitalization.", "location": {"path": "snippets/font_table/records/brief/author.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'character_tables' should use sentence-style capitalization.", "location": {"path": "snippets/font_table/links/brief/character_tables.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'character_tables'?", "location": {"path": "snippets/font_table/links/brief/character_tables.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'character_tables'?", "location": {"path": "snippets/font_table/links/brief/character_tables.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'character_table_indexes'?", "location": {"path": "snippets/font_table/records/brief/character_table_indexes.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'character_table_indexes' should use sentence-style capitalization.", "location": {"path": "snippets/font_table/records/brief/character_table_indexes.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'character_table_indexes'?", "location": {"path": "snippets/font_table/records/brief/character_table_indexes.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'font_type' should use sentence-style capitalization.", "location": {"path": "snippets/font_table/records/brief/font_type.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'font_type'?", "location": {"path": "snippets/font_table/records/brief/font_type.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'font_type'?", "location": {"path": "snippets/font_table/records/brief/font_type.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'version' should use sentence-style capitalization.", "location": {"path": "snippets/font_table/records/brief/version.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap_table'?", "location": {"path": "snippets/pixmap_table/brief.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'pixmap_table table' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/brief.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap_table'?", "location": {"path": "snippets/pixmap_table/brief.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'name' should use sentence-style capitalization.", "location": {"path": "snippets/font_table/records/brief/name.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'constant_bits_per_pixel'?", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_bits_per_pixel.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'constant_bits_per_pixel' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_bits_per_pixel.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'constant_bits_per_pixel'?", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_bits_per_pixel.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'constant_height'?", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_height.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'constant_height' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_height.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'constant_height'?", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_height.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'bits_per_pixel'?", "location": {"path": "snippets/pixmap_table/records/brief/bits_per_pixel.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'bits_per_pixel' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/records/brief/bits_per_pixel.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'bits_per_pixel'?", "location": {"path": "snippets/pixmap_table/records/brief/bits_per_pixel.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'constant_width' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_width.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'constant_width'?", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_width.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'constant_width'?", "location": {"path": "snippets/pixmap_table/configurations/brief/constant_width.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'data' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/records/brief/data.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'height' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/records/brief/height.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'color_tables'?", "location": {"path": "snippets/pixmap_table/links/brief/color_tables.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'color_tables' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/links/brief/color_tables.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'color_tables'?", "location": {"path": "snippets/pixmap_table/links/brief/color_tables.md", "range": {"start": {"line": 3, "column": 37}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'width' should use sentence-style capitalization.", "location": {"path": "snippets/pixmap_table/records/brief/width.md", "range": {"start": {"line": 1, "column": 3}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'Suchow'?", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 1, "column": 31}}}, "severity": "ERROR"} + {"message": "[Google.OxfordComma] Use the Oxford comma in 'Redistribution and use in source and binary forms, with or'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 4, "column": 1}}}, "severity": "WARNING"} + {"message": "[write-good.Passive] 'are permitted' may be passive voice. Use active voice if you can.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 4, "column": 82}}}, "severity": "WARNING"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('are permitted').", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 4, "column": 82}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'are'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 4, "column": 82}}}, "severity": "INFO"} + {"message": "[write-good.TooWordy] 'provided that' is too wordy.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 4, "column": 96}}}, "severity": "WARNING"} + {"message": "[write-good.Passive] 'are met' may be passive voice. Use active voice if you can.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 4, "column": 135}}}, "severity": "WARNING"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('are met').", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 4, "column": 135}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'are'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 4, "column": 135}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'Redistributions'?", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 6, "column": 4}}}, "severity": "ERROR"} + {"message": "[write-good.TooWordy] 'retain' is too wordy.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 6, "column": 40}}}, "severity": "WARNING"} + {"message": "[Google.WordList] Use 'preceding' instead of 'above'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 6, "column": 51}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'Redistributions'?", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 8, "column": 4}}}, "severity": "ERROR"} + {"message": "[Google.WordList] Use 'preceding' instead of 'above'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 8, "column": 54}}}, "severity": "WARNING"} + {"message": "[write-good.Passive] 'be used' may be passive voice. Use active voice if you can.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 10, "column": 83}}}, "severity": "WARNING"} + {"message": "[write-good.E-Prime] Try to avoid using 'be'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 10, "column": 83}}}, "severity": "INFO"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('be used').", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 10, "column": 83}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'THIS', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 1}}}, "severity": "INFO"} + {"message": "[write-good.Passive] 'IS PROVIDED' may be passive voice. Use active voice if you can.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 15}}}, "severity": "WARNING"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('IS PROVIDED').", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 15}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'IS'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 15}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'THE', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 30}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'AND', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 52}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'AND', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 77}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'ANY', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 81}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'BUT', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 127}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'NOT', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 131}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'THE', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 147}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'AND', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 189}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'FOR', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 201}}}, "severity": "INFO"} + {"message": "[Google.Passive] In general, use active voice instead of passive voice ('ARE DISCLAIMED').", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 226}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'ARE'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 226}}}, "severity": "INFO"} + {"message": "[write-good.Passive] 'ARE DISCLAIMED' may be passive voice. Use active voice if you can.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 226}}}, "severity": "WARNING"} + {"message": "[Google.Acronyms] Spell out 'ARE', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 226}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'EVENT', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 248}}}, "severity": "INFO"} + {"message": "[write-good.TooWordy] 'SHALL' is too wordy.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 254}}}, "severity": "WARNING"} + {"message": "[Google.Acronyms] Spell out 'SHALL', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 254}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'THE', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 260}}}, "severity": "INFO"} + {"message": "[write-good.E-Prime] Try to avoid using 'BE'.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 297}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'FOR', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 307}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'ANY', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 311}}}, "severity": "INFO"} + {"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 390}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'NOT', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 406}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'GOODS', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 448}}}, "severity": "INFO"} + {"message": "[Google.Semicolons] Use semicolons judiciously.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 465}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'LOSS', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 467}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'USE', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 475}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'DATA', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 480}}}, "severity": "INFO"} + {"message": "[Google.Semicolons] Use semicolons judiciously.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 496}}}, "severity": "INFO"} + {"message": "[write-good.TooWordy] 'HOWEVER' is too wordy.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 524}}}, "severity": "WARNING"} + {"message": "[Google.Acronyms] Spell out 'AND', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 539}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'ANY', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 546}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'TORT', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 613}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'ANY', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 665}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'WAY', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 669}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'OUT', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 673}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'THE', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 680}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'USE', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 684}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'THIS', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 691}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'EVEN', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 706}}}, "severity": "INFO"} + {"message": "[Google.Acronyms] Spell out 'SUCH', if it's unfamiliar to the audience.", "location": {"path": ".ci/styles/proselint/README.md", "range": {"start": {"line": 12, "column": 744}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'bitflags'?", "location": {"path": "src/Specification Glossary.md", "range": {"start": {"line": 3, "column": 31}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'Serializer'?", "location": {"path": "src/Specification Glossary.md", "range": {"start": {"line": 5, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.WordList] Use 'capability' or 'feature' instead of 'functionality'.", "location": {"path": "src/Specification Glossary.md", "range": {"start": {"line": 5, "column": 30}}}, "severity": "WARNING"} + {"message": "[Google.WordList] Use 'app' instead of 'application'.", "location": {"path": "src/Specification Glossary.md", "range": {"start": {"line": 5, "column": 50}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'Deserializer'?", "location": {"path": "src/Specification Glossary.md", "range": {"start": {"line": 7, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.WordList] Use 'capability' or 'feature' instead of 'functionality'.", "location": {"path": "src/Specification Glossary.md", "range": {"start": {"line": 7, "column": 32}}}, "severity": "WARNING"} + {"message": "[Google.WordList] Use 'app' instead of 'application'.", "location": {"path": "src/Specification Glossary.md", "range": {"start": {"line": 7, "column": 52}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Table Structure' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 3, "column": 4}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Modifier Flags' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 8, "column": 5}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Flag Details' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 17, "column": 6}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Configuration Flags' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 23, "column": 5}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Configuration Values' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 30, "column": 6}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Table Links' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 36, "column": 5}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Link Arrays' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 43, "column": 6}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Character Record' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 49, "column": 4}}}, "severity": "WARNING"} + {"message": "[Google.Headings] 'Record Layout Examples' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 60, "column": 5}}}, "severity": "WARNING"} + {"message": "[Google.Colons] ': M' should be in lowercase.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 62, "column": 12}}}, "severity": "WARNING"} + {"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 62, "column": 31}}}, "severity": "INFO"} + {"message": "[Google.Colons] ': W' should be in lowercase.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 72, "column": 12}}}, "severity": "WARNING"} + {"message": "[Google.Colons] ': W' should be in lowercase.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 82, "column": 12}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 82, "column": 19}}}, "severity": "ERROR"} + {"message": "[Google.Colons] ': W' should be in lowercase.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 92, "column": 12}}}, "severity": "WARNING"} + {"message": "[Google.Colons] ': W' should be in lowercase.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 102, "column": 12}}}, "severity": "WARNING"} + {"message": "[Vale.Spelling] Did you really mean 'codepoints'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 102, "column": 36}}}, "severity": "ERROR"} + {"message": "[Google.Headings] 'Complete Table Example' should use sentence-style capitalization.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 113, "column": 4}}}, "severity": "WARNING"} + {"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 115, "column": 83}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 115, "column": 145}}}, "severity": "ERROR"} + {"message": "[Google.OptionalPlurals] Don't use plurals in parentheses such as in 'Byte(s)'.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 117, "column": 3}}}, "severity": "ERROR"} + {"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 117, "column": 7}}}, "severity": "INFO"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 124, "column": 33}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'Pixmap'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 125, "column": 41}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'advance_x'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 127, "column": 43}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap_index'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 128, "column": 43}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'codepoints'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 129, "column": 43}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'advance_x'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 130, "column": 43}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'pixmap_index'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 131, "column": 43}}}, "severity": "ERROR"} + {"message": "[Vale.Spelling] Did you really mean 'codepoints'?", "location": {"path": "src/Character Table.md", "range": {"start": {"line": 132, "column": 43}}}, "severity": "ERROR"} From c38768de9d08fd7c8031e9f770a71f5f592f3ada Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:17:22 +0000 Subject: [PATCH 03/25] Allow running workflow in documentation branch for debugging. --- .github/workflows/wiki.yml | 1 + snippets/color_table/modifiers/brief/use_color_type.md | 3 --- src/Character Table.md | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/wiki.yml b/.github/workflows/wiki.yml index b2d38ef..b59e3cd 100644 --- a/.github/workflows/wiki.yml +++ b/.github/workflows/wiki.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - documentation jobs: sync-wiki: diff --git a/snippets/color_table/modifiers/brief/use_color_type.md b/snippets/color_table/modifiers/brief/use_color_type.md index 157cd30..e69de29 100644 --- a/snippets/color_table/modifiers/brief/use_color_type.md +++ b/snippets/color_table/modifiers/brief/use_color_type.md @@ -1,3 +0,0 @@ -# use_color_type - -Write the documentation content for use_color_type here. \ No newline at end of file diff --git a/src/Character Table.md b/src/Character Table.md index 4376c49..03fc508 100644 --- a/src/Character Table.md +++ b/src/Character Table.md @@ -1,4 +1,4 @@ -\textinput{../snippets/character_table/breif.md} +\textinput{snippets/character_table/breif.md} ## Table Structure From 42fdd287bed02fe2092b57fe07efa0b2ea4db255 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:19:26 +0000 Subject: [PATCH 04/25] Fix relative markdown links in Character Table --- src/Character Table.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Character Table.md b/src/Character Table.md index 03fc508..4376c49 100644 --- a/src/Character Table.md +++ b/src/Character Table.md @@ -1,4 +1,4 @@ -\textinput{snippets/character_table/breif.md} +\textinput{../snippets/character_table/breif.md} ## Table Structure From e4ba5c32da115f1766707d16b831688433b08139 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:23:42 +0000 Subject: [PATCH 05/25] Fix markdown inclusion path --- src/Character Table.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Character Table.md b/src/Character Table.md index 4376c49..537a0ce 100644 --- a/src/Character Table.md +++ b/src/Character Table.md @@ -1,4 +1,4 @@ -\textinput{../snippets/character_table/breif.md} +\textinput{../snippets/character_table/brief.md} ## Table Structure From cfb217977a5a0479c1a84c5b0fc0b5a1ff97c1be Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:31:18 +0000 Subject: [PATCH 06/25] Fix tooling to output correct paths for table link flags --- scripts/snippet-tool.ts | 2 +- src/Character Table.md | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/snippet-tool.ts b/scripts/snippet-tool.ts index 8e791cf..a260a89 100644 --- a/scripts/snippet-tool.ts +++ b/scripts/snippet-tool.ts @@ -286,7 +286,7 @@ function generateLinksSection( const linkBriefName = links[i]; // e.g., "pixmap_tables" const flagName = "link_" + linkBriefName; // e.g., "link_pixmap_tables" // Note: Template shows looking in condition directory for the flag description - const flagPath = getRelativeSnippetPath(snippetType, "links/condition", flagName); + const flagPath = getRelativeSnippetPath(snippetType, "links/flag", flagName); lines.push( `| ${i} | \`${flagName}\` | \\textinput{${flagPath}} |` ); diff --git a/src/Character Table.md b/src/Character Table.md index 537a0ce..8d3098d 100644 --- a/src/Character Table.md +++ b/src/Character Table.md @@ -1,5 +1,7 @@ \textinput{../snippets/character_table/brief.md} +Specification/snippets/character_table/links/condition/link_pixmap_tables.md + ## Table Structure ### Identifier @@ -37,7 +39,7 @@ | Bit | Name | Description | | --- | -------------------- | --------------------------------------------- | -| 0 | `link_pixmap_tables` | \textinput{../snippets/character_table/links/condition/link_pixmap_tables.md} | +| 0 | `link_pixmap_tables` | \textinput{../snippets/character_table/links/flag/link_pixmap_tables.md} | | 1-7 | — | \textinput{../snippets/phrase/reserved.md} | #### Link Arrays From ce4a064705e0f67fd3deb0e4e704290099a83321 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:37:19 +0000 Subject: [PATCH 07/25] Fix remaining out-dated field names in Character Table document. --- src/Character Table.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Character Table.md b/src/Character Table.md index 8d3098d..1cb8ea0 100644 --- a/src/Character Table.md +++ b/src/Character Table.md @@ -57,7 +57,7 @@ Each character record contains the following fields in order: | `advance_x` | `u8` | \textinput{../snippets/character_table/records/condition/advance_x.md} | \textinput{../snippets/character_table/records/brief/advance_x.md} | | `pixmap_index` | `u8` | \textinput{../snippets/character_table/records/condition/pixmap_index.md} | \textinput{../snippets/character_table/records/brief/pixmap_index.md} | | `pixmap_table_index` | `u8` | \textinput{../snippets/character_table/records/condition/pixmap_table_index.md} | \textinput{../snippets/character_table/records/brief/pixmap_table_index.md} | -| `code_points` | `String` | \textinput{../snippets/character_table/records/condition/code_points.md} | \textinput{../snippets/character_table/records/brief/codepoints.md} | +| `code_points` | `String` | \textinput{../snippets/character_table/records/condition/code_points.md} | \textinput{../snippets/character_table/records/brief/code_points.md} | ### Record Layout Examples @@ -65,7 +65,7 @@ Each character record contains the following fields in order: ``` Character 'A' with default pixmap index 0 and default advance -Byte layout: [codepoints] [null] +Byte layout: [code_points] [null] Binary: 01000001 00000000 Hex: 41 00 Represents: 'A' (U+0041) @@ -75,7 +75,7 @@ Represents: 'A' (U+0041) ``` Character 'W' with custom 12-pixel advance -Byte layout: [advance_x] [codepoints] [null] +Byte layout: [advance_x] [code_points] [null] Binary: 00001100 01010111 00000000 Hex: 0C 57 00 Represents: advance=12, 'W' (U+0057) @@ -85,7 +85,7 @@ Represents: advance=12, 'W' (U+0057) ``` Character 'é' using pixmap at index 5 -Byte layout: [pixmap_index] [codepoints] [null] +Byte layout: [pixmap_index] [code_points] [null] Binary: 00000101 11000011 10101001 00000000 Hex: 05 C3 A9 00 Represents: pixmap_index=5, 'é' (U+00E9, UTF-8: 0xC3 0xA9) @@ -95,7 +95,7 @@ Represents: pixmap_index=5, 'é' (U+00E9, UTF-8: 0xC3 0xA9) ``` Character '👍' with advance=16, pixmap_index=42, pixmap_table_index=1 -Byte layout: [advance_x] [pixmap_index] [table_index] [codepoints (4 bytes)] [null] +Byte layout: [advance_x] [pixmap_index] [table_index] [code_points (4 bytes)] [null] Binary: 00010000 00101010 00000001 11110000 10011111 10010001 10001101 00000000 Hex: 10 2A 01 F0 9F 91 8D 00 Represents: advance=16, pixmap=42, table=1, '👍' (U+1F44D, UTF-8: 0xF0 0x9F 0x91 0x8D) @@ -103,7 +103,7 @@ Represents: advance=16, pixmap=42, table=1, '👍' (U+1F44D, UTF-8: 0xF0 0x9F **Example 5: With constant cluster codepoints** ``` -Configuration: constant_cluster_codepoints = 1 (all ASCII) +Configuration: constant_cluster_code_points = 1 (all ASCII) Character 'B' with fixed 1-byte length Byte layout: [grapheme_cluster] @@ -120,7 +120,7 @@ The following byte sequence defines a minimal Character Table with two character | ------- | ---------- | ---- | -------------------------------------------------------------- | | 1 | `00000001` | `01` | Table identifier for Character Table | | 2 | `00000011` | `03` | Modifier flags: `use_advance_x` and `use_pixmap_index` enabled | -| 3 | `00000001` | `01` | Configuration flags: `constant_codepoint_count` enabled | +| 3 | `00000001` | `01` | Configuration flags: `constant_code_point_count` enabled | | 4 | `00000001` | `01` | Configuration value: cluster length = 1 byte | | 5 | `00000001` | `01` | Table links: `pixmap_tables` enabled | | 6 | `00000001` | `01` | Pixmap table array length = 1 | From 5093cd0cab9976a347126db14793d2ef3ae12abe Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:45:46 +0000 Subject: [PATCH 08/25] Add Color Table documentation --- .../configurations/brief/constant_alpha.md | 1 + .../condition/constant_alpha.md | 1 + .../configurations/flag/use_constant_alpha.md | 1 + .../modifiers/brief/use_color_type.md | 1 + .../modifiers/details/use_color_type.md | 4 +--- snippets/color_table/records/brief/alpha.md | 4 +--- snippets/color_table/records/brief/blue.md | 4 +--- .../color_table/records/brief/color_type.md | 4 +--- snippets/color_table/records/brief/green.md | 4 +--- snippets/color_table/records/brief/red.md | 4 +--- .../color_table/records/condition/alpha.md | 4 +--- .../color_table/records/condition/blue.md | 4 +--- .../records/condition/color_type.md | 4 +--- .../color_table/records/condition/green.md | 4 +--- snippets/color_table/records/condition/red.md | 4 +--- src/Color Table.md | 24 ++++++++++++++----- 16 files changed, 33 insertions(+), 39 deletions(-) diff --git a/snippets/color_table/configurations/brief/constant_alpha.md b/snippets/color_table/configurations/brief/constant_alpha.md index e69de29..47b8835 100644 --- a/snippets/color_table/configurations/brief/constant_alpha.md +++ b/snippets/color_table/configurations/brief/constant_alpha.md @@ -0,0 +1 @@ +The alpha channel value applied to all colors in this table. \ No newline at end of file diff --git a/snippets/color_table/configurations/condition/constant_alpha.md b/snippets/color_table/configurations/condition/constant_alpha.md index e69de29..adf9daf 100644 --- a/snippets/color_table/configurations/condition/constant_alpha.md +++ b/snippets/color_table/configurations/condition/constant_alpha.md @@ -0,0 +1 @@ +If `use_constant_alpha` is enabled. \ No newline at end of file diff --git a/snippets/color_table/configurations/flag/use_constant_alpha.md b/snippets/color_table/configurations/flag/use_constant_alpha.md index e69de29..eecd81e 100644 --- a/snippets/color_table/configurations/flag/use_constant_alpha.md +++ b/snippets/color_table/configurations/flag/use_constant_alpha.md @@ -0,0 +1 @@ +All colors in this table share the same alpha value. \ No newline at end of file diff --git a/snippets/color_table/modifiers/brief/use_color_type.md b/snippets/color_table/modifiers/brief/use_color_type.md index e69de29..a034088 100644 --- a/snippets/color_table/modifiers/brief/use_color_type.md +++ b/snippets/color_table/modifiers/brief/use_color_type.md @@ -0,0 +1 @@ +Each record includes a `color_type` field indicating the color mutability type. \ No newline at end of file diff --git a/snippets/color_table/modifiers/details/use_color_type.md b/snippets/color_table/modifiers/details/use_color_type.md index de312b3..aa8785e 100644 --- a/snippets/color_table/modifiers/details/use_color_type.md +++ b/snippets/color_table/modifiers/details/use_color_type.md @@ -1,3 +1 @@ -# use_color_type details - -Write the documentation content for use_color_type details here. \ No newline at end of file +When disabled, the default color type is dynamic. The rendering engine may change the RGBA color to support features such as, but not limited to; text color, and/or palette theming. \ No newline at end of file diff --git a/snippets/color_table/records/brief/alpha.md b/snippets/color_table/records/brief/alpha.md index ef43a25..d18c10f 100644 --- a/snippets/color_table/records/brief/alpha.md +++ b/snippets/color_table/records/brief/alpha.md @@ -1,3 +1 @@ -# alpha - -Write the documentation content for alpha here. \ No newline at end of file +Alpha channel value (0 = fully transparent, 255 = fully opaque). \ No newline at end of file diff --git a/snippets/color_table/records/brief/blue.md b/snippets/color_table/records/brief/blue.md index b8af9da..97f092d 100644 --- a/snippets/color_table/records/brief/blue.md +++ b/snippets/color_table/records/brief/blue.md @@ -1,3 +1 @@ -# blue - -Write the documentation content for blue here. \ No newline at end of file +Blue channel value. \ No newline at end of file diff --git a/snippets/color_table/records/brief/color_type.md b/snippets/color_table/records/brief/color_type.md index 67ef467..d8bf647 100644 --- a/snippets/color_table/records/brief/color_type.md +++ b/snippets/color_table/records/brief/color_type.md @@ -1,3 +1 @@ -# color_type - -Write the documentation content for color_type here. \ No newline at end of file +Color Type value (0 = Dynamic, 1 = Absolute). \ No newline at end of file diff --git a/snippets/color_table/records/brief/green.md b/snippets/color_table/records/brief/green.md index 21c49bd..d8c8819 100644 --- a/snippets/color_table/records/brief/green.md +++ b/snippets/color_table/records/brief/green.md @@ -1,3 +1 @@ -# green - -Write the documentation content for green here. \ No newline at end of file +Green channel value. \ No newline at end of file diff --git a/snippets/color_table/records/brief/red.md b/snippets/color_table/records/brief/red.md index 201aceb..27c40df 100644 --- a/snippets/color_table/records/brief/red.md +++ b/snippets/color_table/records/brief/red.md @@ -1,3 +1 @@ -# red - -Write the documentation content for red here. \ No newline at end of file +Red channel value. \ No newline at end of file diff --git a/snippets/color_table/records/condition/alpha.md b/snippets/color_table/records/condition/alpha.md index ef43a25..502041c 100644 --- a/snippets/color_table/records/condition/alpha.md +++ b/snippets/color_table/records/condition/alpha.md @@ -1,3 +1 @@ -# alpha - -Write the documentation content for alpha here. \ No newline at end of file +If `constant_alpha` configuration is **not** set \ No newline at end of file diff --git a/snippets/color_table/records/condition/blue.md b/snippets/color_table/records/condition/blue.md index b8af9da..439dd4b 100644 --- a/snippets/color_table/records/condition/blue.md +++ b/snippets/color_table/records/condition/blue.md @@ -1,3 +1 @@ -# blue - -Write the documentation content for blue here. \ No newline at end of file +Always present \ No newline at end of file diff --git a/snippets/color_table/records/condition/color_type.md b/snippets/color_table/records/condition/color_type.md index 67ef467..85be9fd 100644 --- a/snippets/color_table/records/condition/color_type.md +++ b/snippets/color_table/records/condition/color_type.md @@ -1,3 +1 @@ -# color_type - -Write the documentation content for color_type here. \ No newline at end of file +If `use_color_type` modifier is enabled. \ No newline at end of file diff --git a/snippets/color_table/records/condition/green.md b/snippets/color_table/records/condition/green.md index 21c49bd..439dd4b 100644 --- a/snippets/color_table/records/condition/green.md +++ b/snippets/color_table/records/condition/green.md @@ -1,3 +1 @@ -# green - -Write the documentation content for green here. \ No newline at end of file +Always present \ No newline at end of file diff --git a/snippets/color_table/records/condition/red.md b/snippets/color_table/records/condition/red.md index 201aceb..439dd4b 100644 --- a/snippets/color_table/records/condition/red.md +++ b/snippets/color_table/records/condition/red.md @@ -1,3 +1 @@ -# red - -Write the documentation content for red here. \ No newline at end of file +Always present \ No newline at end of file diff --git a/src/Color Table.md b/src/Color Table.md index 4b0968a..ff89d92 100644 --- a/src/Color Table.md +++ b/src/Color Table.md @@ -43,19 +43,31 @@ Each record contains the following fields in order: | `green` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/green.md} | \textinput{../snippets/color_table/records/brief/green.md} | | `blue` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/blue.md} | \textinput{../snippets/color_table/records/brief/blue.md} | -## Examples +### Record Layout Examples -Provide example records demonstrating various field combinations: +**Example 1: Minimal record** (no modifiers or configurations) +``` +Byte layout: [red] [green] [blue] +Binary: 11111111 00000000 10101010 +Hex: FF 00 AA +Color: rgb(255, 0, 170) - fully opaque magenta +``` -**Example 1: Minimal record** (no optional fields) +**Example 2: With custom alpha** (constant_alpha not set) ``` -[EXAMPLE_PLACEHOLDER] +Byte layout: [alpha] [red] [green] [blue] +Binary: 10000000 11111111 11111111 11111111 +Hex: 80 FF FF FF +Color: rgba(255, 255, 255, 128) - 50% transparent white ``` -**Example 2: With optional fields** +**Example 3: With all optional fields** ``` -[EXAMPLE_PLACEHOLDER] +Byte layout: [color_type] [alpha] [red] [green] [blue] +Binary: 00000001 11111111 00000000 00000000 00000000 +Hex: 01 FF 00 00 00 +Color: rgba(0, 0, 0, 255) - absolute black (cannot / should not be modified by renderer) ``` From e9f43de864aa3817e3098923ddbb5f3d5fe399ca Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:47:57 +0000 Subject: [PATCH 09/25] Update Record Examples generated header --- scripts/snippet-tool.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/snippet-tool.ts b/scripts/snippet-tool.ts index a260a89..8226f0f 100644 --- a/scripts/snippet-tool.ts +++ b/scripts/snippet-tool.ts @@ -342,7 +342,7 @@ function generateRecordsSection( function generateExamplesSection(tableName: string): string { const lines: string[] = []; - lines.push(addTableHeader("Examples\n")); + lines.push(addTableHeader("Record Layout Examples\n")); lines.push( "Provide example records demonstrating various field combinations:\n" ); From 0f9204ef5fa87ec360a4c494cd93febdf8cf628e Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Thu, 11 Jun 2026 16:58:22 +0000 Subject: [PATCH 10/25] Add Pixmap Table (incomplete). --- .../brief/constant_bits_per_pixel.md | 4 +- .../configurations/brief/constant_height.md | 4 +- .../configurations/brief/constant_width.md | 4 +- .../condition/constant_bits_per_pixel.md | 4 +- .../condition/constant_height.md | 4 +- .../condition/constant_width.md | 4 +- .../flag/use_constant_bits_per_pixel.md | 4 +- .../flag/use_constant_height.md | 4 +- .../configurations/flag/use_constant_width.md | 4 +- src/Pixmap Table.md | 143 ++++++++++++++++++ 10 files changed, 152 insertions(+), 27 deletions(-) create mode 100644 src/Pixmap Table.md diff --git a/snippets/pixmap_table/configurations/brief/constant_bits_per_pixel.md b/snippets/pixmap_table/configurations/brief/constant_bits_per_pixel.md index 32df24b..b35cb2d 100644 --- a/snippets/pixmap_table/configurations/brief/constant_bits_per_pixel.md +++ b/snippets/pixmap_table/configurations/brief/constant_bits_per_pixel.md @@ -1,3 +1 @@ -# constant_bits_per_pixel - -Write the documentation content for constant_bits_per_pixel here. \ No newline at end of file +The bits per pixel shared by all pixmaps in this table (only 1-8 supported). \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/brief/constant_height.md b/snippets/pixmap_table/configurations/brief/constant_height.md index 936e729..70a5e0f 100644 --- a/snippets/pixmap_table/configurations/brief/constant_height.md +++ b/snippets/pixmap_table/configurations/brief/constant_height.md @@ -1,3 +1 @@ -# constant_height - -Write the documentation content for constant_height here. \ No newline at end of file +The height in pixels shared by all pixmaps in this table. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/brief/constant_width.md b/snippets/pixmap_table/configurations/brief/constant_width.md index eda1ddc..fa126c4 100644 --- a/snippets/pixmap_table/configurations/brief/constant_width.md +++ b/snippets/pixmap_table/configurations/brief/constant_width.md @@ -1,3 +1 @@ -# constant_width - -Write the documentation content for constant_width here. \ No newline at end of file +The width in pixels shared by all pixmaps in this table. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md b/snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md index 32df24b..4243c8d 100644 --- a/snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md +++ b/snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md @@ -1,3 +1 @@ -# constant_bits_per_pixel - -Write the documentation content for constant_bits_per_pixel here. \ No newline at end of file +If `use_constant_bits_per_pixel` is enabled \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/condition/constant_height.md b/snippets/pixmap_table/configurations/condition/constant_height.md index 936e729..71e5197 100644 --- a/snippets/pixmap_table/configurations/condition/constant_height.md +++ b/snippets/pixmap_table/configurations/condition/constant_height.md @@ -1,3 +1 @@ -# constant_height - -Write the documentation content for constant_height here. \ No newline at end of file +If `use_constant_height` is enabled. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/condition/constant_width.md b/snippets/pixmap_table/configurations/condition/constant_width.md index eda1ddc..728f9ad 100644 --- a/snippets/pixmap_table/configurations/condition/constant_width.md +++ b/snippets/pixmap_table/configurations/condition/constant_width.md @@ -1,3 +1 @@ -# constant_width - -Write the documentation content for constant_width here. \ No newline at end of file +If `use_constant_width` is enabled. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md b/snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md index 32df24b..cb935c5 100644 --- a/snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md +++ b/snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md @@ -1,3 +1 @@ -# constant_bits_per_pixel - -Write the documentation content for constant_bits_per_pixel here. \ No newline at end of file +All pixmaps in this table use the same number of bits to represent a pixel. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/flag/use_constant_height.md b/snippets/pixmap_table/configurations/flag/use_constant_height.md index 936e729..f3e4a08 100644 --- a/snippets/pixmap_table/configurations/flag/use_constant_height.md +++ b/snippets/pixmap_table/configurations/flag/use_constant_height.md @@ -1,3 +1 @@ -# constant_height - -Write the documentation content for constant_height here. \ No newline at end of file +All pixmaps in this table share the same height. \ No newline at end of file diff --git a/snippets/pixmap_table/configurations/flag/use_constant_width.md b/snippets/pixmap_table/configurations/flag/use_constant_width.md index eda1ddc..de552bb 100644 --- a/snippets/pixmap_table/configurations/flag/use_constant_width.md +++ b/snippets/pixmap_table/configurations/flag/use_constant_width.md @@ -1,3 +1 @@ -# constant_width - -Write the documentation content for constant_width here. \ No newline at end of file +All pixmaps in this table share the same width. \ No newline at end of file diff --git a/src/Pixmap Table.md b/src/Pixmap Table.md new file mode 100644 index 0000000..175ff0e --- /dev/null +++ b/src/Pixmap Table.md @@ -0,0 +1,143 @@ +\textinput{../snippets/pixmap_table/brief.md} + +## Table Structure + +### Identifier +- **Value**: `[IDENTIFIER_PLACEHOLDER]` + + +## Configuration Flags + +| Bit | Name | Description | +| --- | ---- | ----------- | +| 0 | `use_constant_width` | \textinput{../snippets/pixmap_table/configurations/flag/use_constant_width.md} | +| 1 | `use_constant_height` | \textinput{../snippets/pixmap_table/configurations/flag/use_constant_height.md} | +| 2 | `use_constant_bits_per_pixel` | \textinput{../snippets/pixmap_table/configurations/flag/use_constant_bits_per_pixel.md} | +| 3-7 | — | \textinput{../snippets/phrase/reserved.md} | + +### Configuration Values + +| Name | Type | Condition | Description | +| ---- | ---- | --------- | ----------- | +| `constant_width` | `u8` | \textinput{../snippets/pixmap_table/configurations/condition/constant_width.md} | \textinput{../snippets/pixmap_table/configurations/brief/constant_width.md} | +| `constant_height` | `u8` | \textinput{../snippets/pixmap_table/configurations/condition/constant_height.md} | \textinput{../snippets/pixmap_table/configurations/brief/constant_height.md} | +| `constant_bits_per_pixel` | `u8` | \textinput{../snippets/pixmap_table/configurations/condition/constant_bits_per_pixel.md} | \textinput{../snippets/pixmap_table/configurations/brief/constant_bits_per_pixel.md} | + +## Table Links + +| Bit | Name | Description | +| --- | ---- | ----------- | +| 0 | `link_color_tables` | \textinput{../snippets/pixmap_table/links/flag/link_color_tables.md} | +| 1-7 | — | \textinput{../snippets/phrase/reserved.md} | + +### Link Arrays + +| Name | Type | Condition | Description | +| ---- | ---- | --------- | ----------- | +| `color_tables` | `Vec` | \textinput{../snippets/pixmap_table/links/condition/color_tables.md} | \textinput{../snippets/pixmap_table/links/brief/color_tables.md} | + +## Record Fields + + +Each record contains the following fields in order: + +| Field | Type | Condition | Description | +| ----- | ---- | --------- | ----------- | +| `width` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/width.md} | \textinput{../snippets/pixmap_table/records/brief/width.md} | +| `height` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/height.md} | \textinput{../snippets/pixmap_table/records/brief/height.md} | +| `bits_per_pixel` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/bits_per_pixel.md} | \textinput{../snippets/pixmap_table/records/brief/bits_per_pixel.md} | +| `data` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/data.md} | \textinput{../snippets/pixmap_table/records/brief/data.md} | + +## Record Layout Examples + +**Example 1: Minimal pixmap** (all constants set) +``` +Configuration: constant_width=8, constant_height=8, constant_bits_per_pixel=1 +Pixmap: 8×8 monochrome bitmap + +Byte layout: [data (8 bytes)] +Binary: 11111111 10000001 10000001 10000001 10000001 10000001 10000001 11111111 +Hex: FF 81 81 81 81 81 81 FF +Represents: 8×8 square outline (64 pixels, 1 bit each = 8 bytes) +``` + +**Example 2: Custom dimensions** +``` +Configuration: constant_bits_per_pixel=1 +Pixmap: 5×3 monochrome bitmap + +Byte layout: [width] [height] [data (2 bytes)] +Binary: 00000101 00000011 11111000 01110000 +Hex: 05 03 F8 70 +Calculation: 5×3 = 15 pixels × 1 bit = 15 bits = 2 bytes (1 unused bit) +Data: 11111 (row 1) + 000 01 (partial row 2) + 110 00 (partial row 3) + 00 (padding) +``` + +**Example 3: Custom bits per pixel** +``` +Configuration: constant_width=4, constant_height=4 +Pixmap: 4×4 bitmap with 4 colors (2 bits per pixel) + +Byte layout: [bits_per_pixel] [data (4 bytes)] +Binary: 00000010 00011011 00011011 00011011 00011011 +Hex: 02 1B 1B 1B 1B +Calculation: 4×4 = 16 pixels × 2 bits = 32 bits = 4 bytes +Data: 00 01 10 11 | 00 01 10 11 | 00 01 10 11 | 00 01 10 11 + (Each group of 2 bits is a color index: 0, 1, 2, 3) +``` + +**Example 4: Full custom record** +``` +Pixmap: 3×3 bitmap with 8-bit color (256 colors per pixel) + +Byte layout: [width] [height] [bits_per_pixel] [data (9 bytes)] +Binary: 00000011 00000011 00001000 + 11111111 00000000 00000000 + 00000000 11111111 00000000 + 00000000 00000000 11111111 +Hex: 03 03 08 + FF 00 00 + 00 FF 00 + 00 00 FF +Calculation: 3×3 = 9 pixels × 8 bits = 72 bits = 9 bytes +Data: Red (255,0,0), Green (0,255,0), Blue (0,0,255), repeated 3 times +``` + +**Example 5: Multi-bit packing detail** +``` +Pixmap: 6×1 with 2 bits per pixel (4 colors) + +Configuration: constant_height=1, constant_bits_per_pixel=2 +Byte layout: [width] [data (2 bytes)] +Binary: 00000110 11100100 01000000 +Hex: 06 E4 40 +Calculation: 6 pixels × 2 bits = 12 bits = 2 bytes (4 unused bits) + +Bit breakdown: +Byte 0: 11 10 01 00 + ││ ││ ││ ││ + ││ ││ ││ └└─ Pixel 3: color index 0 + ││ ││ └└──── Pixel 2: color index 1 + ││ └└─────── Pixel 1: color index 2 + └└────────── Pixel 0: color index 3 + +Byte 1: 01 00 00 00 + ││ ││ ││ ││ + ││ └└─└└─└└─ Unused padding bits + └└────────── Pixel 5: color index 1 + (Pixel 4: 00 = color index 0, spans bytes) +``` + + +## Complete Table Example + + +The following byte sequence defines a minimal table with example records: + +| Byte(s) | Binary | Hex | Description | +| ------- | ------ | --- | ----------- | +| 1 | `[BINARY_PLACEHOLDER]` | `[HEX_PLACEHOLDER]` | Table identifier | +| ... | ... | ... | [DESCRIPTION_PLACEHOLDER] | \ No newline at end of file From 4d59eaea826d6155d5112e85a12f1fb735d96a99 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:50:26 -0400 Subject: [PATCH 11/25] Polish character, color, and pixmap documents --- .../links/brief/pixmap_tables.md | 2 +- .../records/brief/code_points.md | 2 +- .../records/brief/pixmap_index.md | 2 +- .../records/brief/pixmap_table_index.md | 2 +- .../records/condition/code_points.md | 2 +- .../records/condition/pixmap_index.md | 2 +- .../records/condition/pixmap_table_index.md | 2 +- snippets/pixmap_table/brief.md | 6 +- .../pixmap_table/links/brief/color_tables.md | 4 +- .../links/condition/color_tables.md | 1 + .../links/flag/link_color_tables.md | 1 + .../records/brief/bits_per_pixel.md | 4 +- snippets/pixmap_table/records/brief/data.md | 4 +- snippets/pixmap_table/records/brief/height.md | 4 +- snippets/pixmap_table/records/brief/width.md | 4 +- .../records/condition/bits_per_pixel.md | 4 +- .../pixmap_table/records/condition/data.md | 4 +- .../pixmap_table/records/condition/height.md | 4 +- .../pixmap_table/records/condition/width.md | 4 +- src/Character Table.md | 141 ++++++----- src/Color Table.md | 99 +++++--- src/Pixmap Table.md | 232 +++++++++++------- 22 files changed, 304 insertions(+), 226 deletions(-) diff --git a/snippets/character_table/links/brief/pixmap_tables.md b/snippets/character_table/links/brief/pixmap_tables.md index cb70157..40b389b 100644 --- a/snippets/character_table/links/brief/pixmap_tables.md +++ b/snippets/character_table/links/brief/pixmap_tables.md @@ -1 +1 @@ -Vector of Pixmap Table indices this character table references. \ No newline at end of file +Length byte followed by that many Pixmap Table indices this character table may reference. diff --git a/snippets/character_table/records/brief/code_points.md b/snippets/character_table/records/brief/code_points.md index 439dd4b..29c4a23 100644 --- a/snippets/character_table/records/brief/code_points.md +++ b/snippets/character_table/records/brief/code_points.md @@ -1 +1 @@ -Always present \ No newline at end of file +UTF-8 encoded codepoint sequence (null-terminated unless `constant_code_point_count` is set). diff --git a/snippets/character_table/records/brief/pixmap_index.md b/snippets/character_table/records/brief/pixmap_index.md index ac0c402..8f2cfc3 100644 --- a/snippets/character_table/records/brief/pixmap_index.md +++ b/snippets/character_table/records/brief/pixmap_index.md @@ -1 +1 @@ -If `use_pixmap_index` modifier is enabled. \ No newline at end of file +Index of the pixmap within the referenced Pixmap Table(s). diff --git a/snippets/character_table/records/brief/pixmap_table_index.md b/snippets/character_table/records/brief/pixmap_table_index.md index 3776f02..c1e6b86 100644 --- a/snippets/character_table/records/brief/pixmap_table_index.md +++ b/snippets/character_table/records/brief/pixmap_table_index.md @@ -1 +1 @@ -If `use_pixmap_table_index` modifier is enabled. \ No newline at end of file +Index of the specific Pixmap Table to use for this character. diff --git a/snippets/character_table/records/condition/code_points.md b/snippets/character_table/records/condition/code_points.md index cb7cf4c..aca5e32 100644 --- a/snippets/character_table/records/condition/code_points.md +++ b/snippets/character_table/records/condition/code_points.md @@ -1 +1 @@ -UTF-8 encoded codepoint sequence (null-terminated unless `constant_code_point_count` is set). \ No newline at end of file +Always present diff --git a/snippets/character_table/records/condition/pixmap_index.md b/snippets/character_table/records/condition/pixmap_index.md index e289f97..dfa7000 100644 --- a/snippets/character_table/records/condition/pixmap_index.md +++ b/snippets/character_table/records/condition/pixmap_index.md @@ -1 +1 @@ -Index of the pixmap within the referenced Pixmap Table(s). \ No newline at end of file +If `use_pixmap_index` modifier is enabled. diff --git a/snippets/character_table/records/condition/pixmap_table_index.md b/snippets/character_table/records/condition/pixmap_table_index.md index 3b46389..048236d 100644 --- a/snippets/character_table/records/condition/pixmap_table_index.md +++ b/snippets/character_table/records/condition/pixmap_table_index.md @@ -1 +1 @@ -Index of the specific Pixmap Table to use for this character. \ No newline at end of file +If `use_pixmap_table_index` modifier is enabled. diff --git a/snippets/pixmap_table/brief.md b/snippets/pixmap_table/brief.md index 1ccdfd4..bd0e19b 100644 --- a/snippets/pixmap_table/brief.md +++ b/snippets/pixmap_table/brief.md @@ -1,3 +1,5 @@ -# pixmap_table table +Stores glyph data as collections of pixels within pixmaps, representing the visual appearance of a character. -Write the documentation content for pixmap_table table here. \ No newline at end of file +## Use Cases + +- **Glyph storage** - Contains the pixmap images for font characters diff --git a/snippets/pixmap_table/links/brief/color_tables.md b/snippets/pixmap_table/links/brief/color_tables.md index 554ebb2..97db1ff 100644 --- a/snippets/pixmap_table/links/brief/color_tables.md +++ b/snippets/pixmap_table/links/brief/color_tables.md @@ -1,3 +1 @@ -# color_tables - -Write the documentation content for color_tables here. \ No newline at end of file +Length byte followed by that many Color Table indices supplying the palette that pixel values index into. diff --git a/snippets/pixmap_table/links/condition/color_tables.md b/snippets/pixmap_table/links/condition/color_tables.md index e69de29..4bb434c 100644 --- a/snippets/pixmap_table/links/condition/color_tables.md +++ b/snippets/pixmap_table/links/condition/color_tables.md @@ -0,0 +1 @@ +If `link_color_tables` is enabled. diff --git a/snippets/pixmap_table/links/flag/link_color_tables.md b/snippets/pixmap_table/links/flag/link_color_tables.md index e69de29..56f8949 100644 --- a/snippets/pixmap_table/links/flag/link_color_tables.md +++ b/snippets/pixmap_table/links/flag/link_color_tables.md @@ -0,0 +1 @@ +This table links to one or more Color Tables for palette mapping diff --git a/snippets/pixmap_table/records/brief/bits_per_pixel.md b/snippets/pixmap_table/records/brief/bits_per_pixel.md index 7091d01..3982cf6 100644 --- a/snippets/pixmap_table/records/brief/bits_per_pixel.md +++ b/snippets/pixmap_table/records/brief/bits_per_pixel.md @@ -1,3 +1 @@ -# bits_per_pixel - -Write the documentation content for bits_per_pixel here. \ No newline at end of file +Bits used to represent each pixel of this pixmap (only 1-8 supported). diff --git a/snippets/pixmap_table/records/brief/data.md b/snippets/pixmap_table/records/brief/data.md index bd849a7..ef9fea9 100644 --- a/snippets/pixmap_table/records/brief/data.md +++ b/snippets/pixmap_table/records/brief/data.md @@ -1,3 +1 @@ -# data - -Write the documentation content for data here. \ No newline at end of file +Packed pixel data as a bit array diff --git a/snippets/pixmap_table/records/brief/height.md b/snippets/pixmap_table/records/brief/height.md index 154ea86..e50664a 100644 --- a/snippets/pixmap_table/records/brief/height.md +++ b/snippets/pixmap_table/records/brief/height.md @@ -1,3 +1 @@ -# height - -Write the documentation content for height here. \ No newline at end of file +Height of this pixmap in pixels. diff --git a/snippets/pixmap_table/records/brief/width.md b/snippets/pixmap_table/records/brief/width.md index 28f6238..9e90876 100644 --- a/snippets/pixmap_table/records/brief/width.md +++ b/snippets/pixmap_table/records/brief/width.md @@ -1,3 +1 @@ -# width - -Write the documentation content for width here. \ No newline at end of file +Width of this pixmap in pixels. diff --git a/snippets/pixmap_table/records/condition/bits_per_pixel.md b/snippets/pixmap_table/records/condition/bits_per_pixel.md index 7091d01..baafbd7 100644 --- a/snippets/pixmap_table/records/condition/bits_per_pixel.md +++ b/snippets/pixmap_table/records/condition/bits_per_pixel.md @@ -1,3 +1 @@ -# bits_per_pixel - -Write the documentation content for bits_per_pixel here. \ No newline at end of file + If use_constant_bits_per_pixel is not enabled. diff --git a/snippets/pixmap_table/records/condition/data.md b/snippets/pixmap_table/records/condition/data.md index bd849a7..3850371 100644 --- a/snippets/pixmap_table/records/condition/data.md +++ b/snippets/pixmap_table/records/condition/data.md @@ -1,3 +1 @@ -# data - -Write the documentation content for data here. \ No newline at end of file +Always present. diff --git a/snippets/pixmap_table/records/condition/height.md b/snippets/pixmap_table/records/condition/height.md index 154ea86..b2f3733 100644 --- a/snippets/pixmap_table/records/condition/height.md +++ b/snippets/pixmap_table/records/condition/height.md @@ -1,3 +1 @@ -# height - -Write the documentation content for height here. \ No newline at end of file + If use_constant_height is not enabled. diff --git a/snippets/pixmap_table/records/condition/width.md b/snippets/pixmap_table/records/condition/width.md index 28f6238..ce556a8 100644 --- a/snippets/pixmap_table/records/condition/width.md +++ b/snippets/pixmap_table/records/condition/width.md @@ -1,3 +1 @@ -# width - -Write the documentation content for width here. \ No newline at end of file + If use_constant_width is not enabled. diff --git a/src/Character Table.md b/src/Character Table.md index 1cb8ea0..bfeeb52 100644 --- a/src/Character Table.md +++ b/src/Character Table.md @@ -1,7 +1,5 @@ \textinput{../snippets/character_table/brief.md} -Specification/snippets/character_table/links/condition/link_pixmap_tables.md - ## Table Structure ### Identifier @@ -60,76 +58,87 @@ Each character record contains the following fields in order: | `code_points` | `String` | \textinput{../snippets/character_table/records/condition/code_points.md} | \textinput{../snippets/character_table/records/brief/code_points.md} | ### Record Layout Examples - -**Example 1: Minimal record** (no modifiers) -``` -Character 'A' with default pixmap index 0 and default advance - -Byte layout: [code_points] [null] -Binary: 01000001 00000000 -Hex: 41 00 -Represents: 'A' (U+0041) -``` - -**Example 2: With custom advance** -``` -Character 'W' with custom 12-pixel advance - -Byte layout: [advance_x] [code_points] [null] -Binary: 00001100 01010111 00000000 -Hex: 0C 57 00 -Represents: advance=12, 'W' (U+0057) -``` - -**Example 3: With pixmap index** -``` -Character 'é' using pixmap at index 5 - -Byte layout: [pixmap_index] [code_points] [null] -Binary: 00000101 11000011 10101001 00000000 -Hex: 05 C3 A9 00 -Represents: pixmap_index=5, 'é' (U+00E9, UTF-8: 0xC3 0xA9) -``` - + +**Example 1: Minimal record** (no modifier flags enabled) + +Character `A`, using the default advance and the default pixmap index. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------------- | ---------- | ---- | ------------------------- | +| 1 | `code_points` | `01000001` | `41` | `A` (U+0041) | +| 2 | — | `00000000` | `00` | Null terminator | + +**Example 2: With custom advance** (`use_advance_x`) + +Character `W` with a custom 12 pixel advance. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------------- | ---------- | ---- | ------------------------- | +| 1 | `advance_x` | `00001100` | `0C` | Advance 12 pixels | +| 2 | `code_points` | `01010111` | `57` | `W` (U+0057) | +| 3 | — | `00000000` | `00` | Null terminator | + +**Example 3: With pixmap index** (`use_pixmap_index`) + +Character `é` drawn with the pixmap at index 5. The code point needs two UTF-8 bytes. + +| Byte | Field | Binary | Hex | Description | +| ---- | -------------- | ---------- | ---- | ---------------------------------- | +| 1 | `pixmap_index` | `00000101` | `05` | Pixmap 5 | +| 2 | `code_points` | `11000011` | `C3` | `é` (U+00E9), byte 1 of 2 | +| 3 | `code_points` | `10101001` | `A9` | `é` (U+00E9), byte 2 of 2 | +| 4 | — | `00000000` | `00` | Null terminator | + **Example 4: With all optional fields** -``` -Character '👍' with advance=16, pixmap_index=42, pixmap_table_index=1 - -Byte layout: [advance_x] [pixmap_index] [table_index] [code_points (4 bytes)] [null] -Binary: 00010000 00101010 00000001 11110000 10011111 10010001 10001101 00000000 -Hex: 10 2A 01 F0 9F 91 8D 00 -Represents: advance=16, pixmap=42, table=1, '👍' (U+1F44D, UTF-8: 0xF0 0x9F 0x91 0x8D) -``` - -**Example 5: With constant cluster codepoints** -``` -Configuration: constant_cluster_code_points = 1 (all ASCII) -Character 'B' with fixed 1-byte length - -Byte layout: [grapheme_cluster] -Binary: 01000010 -Hex: 42 -Represents: 'B' (U+0042, no null terminator needed) -``` - + +Character `👍` with advance 16, pixmap index 42, drawn from linked Pixmap Table 1. + +| Byte | Field | Binary | Hex | Description | +| ---- | -------------------- | ---------- | ---- | ---------------------------------- | +| 1 | `advance_x` | `00010000` | `10` | Advance 16 pixels | +| 2 | `pixmap_index` | `00101010` | `2A` | Pixmap 42 | +| 3 | `pixmap_table_index` | `00000001` | `01` | Pixmap Table 1 | +| 4 | `code_points` | `11110000` | `F0` | `👍` (U+1F44D), byte 1 of 4 | +| 5 | `code_points` | `10011111` | `9F` | `👍` (U+1F44D), byte 2 of 4 | +| 6 | `code_points` | `10010001` | `91` | `👍` (U+1F44D), byte 3 of 4 | +| 7 | `code_points` | `10001101` | `8D` | `👍` (U+1F44D), byte 4 of 4 | +| 8 | — | `00000000` | `00` | Null terminator | + +**Example 5: With a constant code point count** + +Configuration: `constant_code_point_count = 1`, so every character in the table is exactly one code point. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------------- | ---------- | ---- | ------------------------------------ | +| 1 | `code_points` | `01000010` | `42` | `B` (U+0042), no terminator required | + +**Example 6: Multi-code-point cluster** + +The ligature `!=` stored as a single character, with no constant code point count set. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------------- | ---------- | ---- | --------------------------------- | +| 1 | `code_points` | `00100001` | `21` | `!` (U+0021), code point 1 of 2 | +| 2 | `code_points` | `00111101` | `3D` | `=` (U+003D), code point 2 of 2 | +| 3 | — | `00000000` | `00` | Null terminator ends the cluster | + ## Complete Table Example - -The following byte sequence defines a minimal Character Table with two characters ('A' and 'B'), using custom advance values and linking to one Pixmap Table: - + +The following byte sequence defines a minimal Character Table with two characters (`A` and `B`), using custom advance values and linking to one Pixmap Table: + | Byte(s) | Binary | Hex | Description | | ------- | ---------- | ---- | -------------------------------------------------------------- | | 1 | `00000001` | `01` | Table identifier for Character Table | | 2 | `00000011` | `03` | Modifier flags: `use_advance_x` and `use_pixmap_index` enabled | -| 3 | `00000001` | `01` | Configuration flags: `constant_code_point_count` enabled | -| 4 | `00000001` | `01` | Configuration value: cluster length = 1 byte | -| 5 | `00000001` | `01` | Table links: `pixmap_tables` enabled | +| 3 | `00000001` | `01` | Configuration flags: `use_constant_code_point_count` enabled | +| 4 | `00000001` | `01` | `constant_code_point_count` = 1 code point | +| 5 | `00000001` | `01` | Table links: `link_pixmap_tables` enabled | | 6 | `00000001` | `01` | Pixmap table array length = 1 | | 7 | `00000000` | `00` | Link to Pixmap Table at index 0 | | 8 | `00000010` | `02` | Record count = 2 characters | -| 9 | `00001000` | `08` | Record 0: advance_x = 8 pixels | -| 10 | `00000000` | `00` | Record 0: pixmap_index = 0 | -| 11 | `01000001` | `41` | Record 0: codepoints = 'A' | -| 12 | `00001000` | `08` | Record 1: advance_x = 8 pixels | -| 13 | `00000001` | `01` | Record 1: pixmap_index = 1 | -| 14 | `01000010` | `42` | Record 1: codepoints = 'B' | - +| 9 | `00001000` | `08` | Character 0: `advance_x` = 8 pixels | +| 10 | `00000000` | `00` | Character 0: `pixmap_index` = 0 | +| 11 | `01000001` | `41` | Character 0: `code_points` = `A` | +| 12 | `00001000` | `08` | Character 1: `advance_x` = 8 pixels | +| 13 | `00000001` | `01` | Character 1: `pixmap_index` = 1 | +| 14 | `01000010` | `42` | Character 1: `code_points` = `B` | diff --git a/src/Color Table.md b/src/Color Table.md index ff89d92..17a5ac2 100644 --- a/src/Color Table.md +++ b/src/Color Table.md @@ -30,6 +30,14 @@ | ---- | ---- | --------- | ----------- | | `constant_alpha` | `u8` | \textinput{../snippets/color_table/configurations/condition/constant_alpha.md} | \textinput{../snippets/color_table/configurations/brief/constant_alpha.md} | +### Table Links + +| Bit | Name | Description | +| --- | ---- | ------------------------ | +| 0-7 | — | Reserved for future use. | + +The Color Table links to no other table. The byte is still written, as `0x00`. + ## Record Fields @@ -45,38 +53,63 @@ Each record contains the following fields in order: ### Record Layout Examples - -**Example 1: Minimal record** (no modifiers or configurations) -``` -Byte layout: [red] [green] [blue] -Binary: 11111111 00000000 10101010 -Hex: FF 00 AA -Color: rgb(255, 0, 170) - fully opaque magenta -``` - -**Example 2: With custom alpha** (constant_alpha not set) -``` -Byte layout: [alpha] [red] [green] [blue] -Binary: 10000000 11111111 11111111 11111111 -Hex: 80 FF FF FF -Color: rgba(255, 255, 255, 128) - 50% transparent white -``` - + +**Example 1: Minimal record** + +No modifier flags, and `use_constant_alpha` enabled so the table supplies alpha. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------- | ---------- | ---- | ------------- | +| 1 | `red` | `11111111` | `FF` | Red = 255 | +| 2 | `green` | `00000000` | `00` | Green = 0 | +| 3 | `blue` | `10101010` | `AA` | Blue = 170 | + +Result: `rgb(255, 0, 170)`, a magenta taking its alpha from `constant_alpha`. + +**Example 2: With custom alpha** + +`use_constant_alpha` is not set, so every record carries its own alpha. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------- | ---------- | ---- | ------------------------- | +| 1 | `alpha` | `10000000` | `80` | Alpha = 128, roughly 50% | +| 2 | `red` | `11111111` | `FF` | Red = 255 | +| 3 | `green` | `11111111` | `FF` | Green = 255 | +| 4 | `blue` | `11111111` | `FF` | Blue = 255 | + +Result: `rgba(255, 255, 255, 128)`, a 50% transparent white. + **Example 3: With all optional fields** -``` -Byte layout: [color_type] [alpha] [red] [green] [blue] -Binary: 00000001 11111111 00000000 00000000 00000000 -Hex: 01 FF 00 00 00 -Color: rgba(0, 0, 0, 255) - absolute black (cannot / should not be modified by renderer) -``` - - + +`use_color_type` enabled and no `constant_alpha` set. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------------ | ---------- | ---- | ---------------------------- | +| 1 | `color_type` | `00000001` | `01` | 1 = Absolute | +| 2 | `alpha` | `11111111` | `FF` | Alpha = 255, fully opaque | +| 3 | `red` | `00000000` | `00` | Red = 0 | +| 4 | `green` | `00000000` | `00` | Green = 0 | +| 5 | `blue` | `00000000` | `00` | Blue = 0 | + +Result: `rgba(0, 0, 0, 255)`, an absolute black that a renderer should not recolor. + ## Complete Table Example - - -The following byte sequence defines a minimal table with example records: - -| Byte(s) | Binary | Hex | Description | -| ------- | ------ | --- | ----------- | -| 1 | `[BINARY_PLACEHOLDER]` | `[HEX_PLACEHOLDER]` | Table identifier | -| ... | ... | ... | [DESCRIPTION_PLACEHOLDER] | \ No newline at end of file + +The following byte sequence defines a two-entry palette with a shared alpha, one dynamic color and one absolute color: + +| Byte(s) | Binary | Hex | Description | +| ------- | ---------- | ---- | -------------------------------------------------- | +| 1 | `00000011` | `03` | Table identifier for Color Table | +| 2 | `00000001` | `01` | Modifier flags: `use_color_type` enabled | +| 3 | `00000001` | `01` | Configuration flags: `use_constant_alpha` enabled | +| 4 | `11111111` | `FF` | `constant_alpha` = 255, fully opaque | +| 5 | `00000000` | `00` | Table links: none set | +| 6 | `00000010` | `02` | Record count = 2 colors | +| 7 | `00000000` | `00` | Color 0: `color_type` = 0 (Dynamic) | +| 8 | `00000000` | `00` | Color 0: `red` = 0 | +| 9 | `00000000` | `00` | Color 0: `green` = 0 | +| 10 | `00000000` | `00` | Color 0: `blue` = 0 | +| 11 | `00000001` | `01` | Color 1: `color_type` = 1 (Absolute) | +| 12 | `11111111` | `FF` | Color 1: `red` = 255 | +| 13 | `11111111` | `FF` | Color 1: `green` = 255 | +| 14 | `11111111` | `FF` | Color 1: `blue` = 255 | diff --git a/src/Pixmap Table.md b/src/Pixmap Table.md index 175ff0e..cd874d1 100644 --- a/src/Pixmap Table.md +++ b/src/Pixmap Table.md @@ -48,96 +48,146 @@ Each record contains the following fields in order: | `bits_per_pixel` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/bits_per_pixel.md} | \textinput{../snippets/pixmap_table/records/brief/bits_per_pixel.md} | | `data` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/data.md} | \textinput{../snippets/pixmap_table/records/brief/data.md} | -## Record Layout Examples - -**Example 1: Minimal pixmap** (all constants set) -``` -Configuration: constant_width=8, constant_height=8, constant_bits_per_pixel=1 -Pixmap: 8×8 monochrome bitmap - -Byte layout: [data (8 bytes)] -Binary: 11111111 10000001 10000001 10000001 10000001 10000001 10000001 11111111 -Hex: FF 81 81 81 81 81 81 FF -Represents: 8×8 square outline (64 pixels, 1 bit each = 8 bytes) -``` - -**Example 2: Custom dimensions** -``` -Configuration: constant_bits_per_pixel=1 -Pixmap: 5×3 monochrome bitmap - -Byte layout: [width] [height] [data (2 bytes)] -Binary: 00000101 00000011 11111000 01110000 -Hex: 05 03 F8 70 -Calculation: 5×3 = 15 pixels × 1 bit = 15 bits = 2 bytes (1 unused bit) -Data: 11111 (row 1) - 000 01 (partial row 2) - 110 00 (partial row 3) - 00 (padding) -``` - +### Pixel Data Encoding + +Resolve `width`, `height`, and `bits_per_pixel` first, taking the table constant where one exists and the record's own value otherwise, then: + +| Quantity | Formula | +| --------------------- | -------------------------------------- | +| `total_bits` | `width × height × bits_per_pixel` | +| `complete_bytes_used` | `total_bits / 8` | +| `remainder_bits` | `total_bits % 8` | + +Pixels are stored row-major, origin top-left, left to right then top to bottom, and packed least significant bit first: pixel 0 takes the lowest unused bits of the first byte (LSB), each following pixel uses the next bits available, resuming at bit 0 of the next byte if cut off. + +Every pixel value is an index into the linked Color Table. If no Color Table is linked, then the renderer should assume 0 as transparent and 1 as opaque. `bits_per_pixel` determines how many records from the Color Table the pixmap can address. + +The final partial byte is where the file-level `compact` property applies: + +| `compact` | Trailing bits | +| --------- | ---------------------------------------------------------------------------------------------------- | +| Disabled | The remainder is written as a full padded byte, wasting up to 7 bits but keeping every record byte-aligned. | +| Enabled | Only `remainder_bits` bits are written, so the next record or table begins mid-byte. | + +### Record Layout Examples + +**Example 1: Fully constant table** + +Configuration: `constant_width = 8`, `constant_height = 8`, `constant_bits_per_pixel = 1`. All three dimensions come from the table, so the record is nothing but data. 8 × 8 × 1 = 64 bits = 8 whole bytes, no remainder. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------ | ---------- | ---- | --------------------------- | +| 1 | `data` | `11111111` | `FF` | Row 0 | +| 2 | `data` | `10000001` | `81` | Row 1 | +| 3 | `data` | `10000001` | `81` | Row 2 | +| 4 | `data` | `10000001` | `81` | Row 3 | +| 5 | `data` | `10000001` | `81` | Row 4 | +| 6 | `data` | `10000001` | `81` | Row 5 | +| 7 | `data` | `10000001` | `81` | Row 6 | +| 8 | `data` | `11111111` | `FF` | Row 7 | + +The result is an 8 × 8 square outline, one byte per row. + +**Example 2: Custom width and height** + +Configuration: `constant_bits_per_pixel = 1` only. A 5 × 3 glyph addressing a two-entry palette. 5 × 3 × 1 = 15 bits, so one whole byte plus 7 remainder bits. + +| Byte | Field | Binary | Hex | Description | +| ---- | -------- | ---------- | ---- | ----------------------------------------------- | +| 1 | `width` | `00000101` | `05` | 5 pixels wide | +| 2 | `height` | `00000011` | `03` | 3 pixels tall | +| 3 | `data` | `10011111` | `9F` | Pixels 0-7 | +| 4 | `data` | `00010000` | `10` | Pixels 8-14 in the low 7 bits, 1 bit padding | + +Unpacked into rows: + +| Row | Palette indices | Shape / Visual | +| --- | --------------- | ------- | +| 0 | `1 1 1 1 1` | `#####` | +| 1 | `0 0 1 0 0` | `..#..` | +| 2 | `0 0 1 0 0` | `..#..` | + **Example 3: Custom bits per pixel** -``` -Configuration: constant_width=4, constant_height=4 -Pixmap: 4×4 bitmap with 4 colors (2 bits per pixel) - -Byte layout: [bits_per_pixel] [data (4 bytes)] -Binary: 00000010 00011011 00011011 00011011 00011011 -Hex: 02 1B 1B 1B 1B -Calculation: 4×4 = 16 pixels × 2 bits = 32 bits = 4 bytes -Data: 00 01 10 11 | 00 01 10 11 | 00 01 10 11 | 00 01 10 11 - (Each group of 2 bits is a color index: 0, 1, 2, 3) -``` - -**Example 4: Full custom record** -``` -Pixmap: 3×3 bitmap with 8-bit color (256 colors per pixel) - -Byte layout: [width] [height] [bits_per_pixel] [data (9 bytes)] -Binary: 00000011 00000011 00001000 - 11111111 00000000 00000000 - 00000000 11111111 00000000 - 00000000 00000000 11111111 -Hex: 03 03 08 - FF 00 00 - 00 FF 00 - 00 00 FF -Calculation: 3×3 = 9 pixels × 8 bits = 72 bits = 9 bytes -Data: Red (255,0,0), Green (0,255,0), Blue (0,0,255), repeated 3 times -``` - -**Example 5: Multi-bit packing detail** -``` -Pixmap: 6×1 with 2 bits per pixel (4 colors) - -Configuration: constant_height=1, constant_bits_per_pixel=2 -Byte layout: [width] [data (2 bytes)] -Binary: 00000110 11100100 01000000 -Hex: 06 E4 40 -Calculation: 6 pixels × 2 bits = 12 bits = 2 bytes (4 unused bits) - -Bit breakdown: -Byte 0: 11 10 01 00 - ││ ││ ││ ││ - ││ ││ ││ └└─ Pixel 3: color index 0 - ││ ││ └└──── Pixel 2: color index 1 - ││ └└─────── Pixel 1: color index 2 - └└────────── Pixel 0: color index 3 - -Byte 1: 01 00 00 00 - ││ ││ ││ ││ - ││ └└─└└─└└─ Unused padding bits - └└────────── Pixel 5: color index 1 - (Pixel 4: 00 = color index 0, spans bytes) -``` - - + +Configuration: `constant_width = 4`, `constant_height = 4`. A 4 × 4 glyph with 2 bits per pixel, so 4 palette entries. 4 × 4 × 2 = 32 bits = 4 whole bytes. + +| Byte | Field | Binary | Hex | Description | +| ---- | ---------------- | ---------- | ---- | ------------------------------------------ | +| 1 | `bits_per_pixel` | `00000010` | `02` | 2 bits per pixel | +| 2 | `data` | `11100100` | `E4` | Row 0: palette indices 0, 1, 2, 3 | +| 3 | `data` | `11100100` | `E4` | Row 1: palette indices 0, 1, 2, 3 | +| 4 | `data` | `11100100` | `E4` | Row 2: palette indices 0, 1, 2, 3 | +| 5 | `data` | `11100100` | `E4` | Row 3: palette indices 0, 1, 2, 3 | + +**Example 4: Fully custom record** + +No configuration constants set. A 3 × 3 glyph at 8 bits per pixel, so every pixel is one byte holding a palette index. 3 × 3 × 8 = 72 bits = 9 whole bytes. + +| Byte | Field | Binary | Hex | Description | +| ---- | ---------------- | ---------- | ---- | ------------------------------------ | +| 1 | `width` | `00000011` | `03` | 3 pixels wide | +| 2 | `height` | `00000011` | `03` | 3 pixels tall | +| 3 | `bits_per_pixel` | `00001000` | `08` | 8 bits per pixel, up to 256 entries | +| 4 | `data` | `00000001` | `01` | Row 0, pixel 0: palette index 1 | +| 5 | `data` | `00000000` | `00` | Row 0, pixel 1: palette index 0 | +| 6 | `data` | `00000000` | `00` | Row 0, pixel 2: palette index 0 | +| 7 | `data` | `00000000` | `00` | Row 1, pixel 0: palette index 0 | +| 8 | `data` | `00000001` | `01` | Row 1, pixel 1: palette index 1 | +| 9 | `data` | `00000000` | `00` | Row 1, pixel 2: palette index 0 | +| 10 | `data` | `00000000` | `00` | Row 2, pixel 0: palette index 0 | +| 11 | `data` | `00000000` | `00` | Row 2, pixel 1: palette index 0 | +| 12 | `data` | `00000001` | `01` | Row 2, pixel 2: palette index 1 | + +The result is a diagonal drawn in palette entry 1 over a background of palette entry 0. + +**Example 5: Partial trailing byte** + +Configuration: `constant_height = 1`, `constant_bits_per_pixel = 2`. A 6 × 1 strip. 6 × 1 × 2 = 12 bits, so one whole byte plus 4 remainder bits. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------- | ---------- | ---- | ---------------------------------------- | +| 1 | `width` | `00000110` | `06` | 6 pixels wide | +| 2 | `data` | `00011011` | `1B` | Pixels 0-3 | +| 3 | `data` | `00001001` | `09` | Pixels 4-5 in the low 4 bits | + +Pixel by pixel: + +| Pixel | Bits | Palette index | Location | +| ----- | ---- | ------------- | ------------------- | +| 0 | `11` | 3 | Byte 2, bits 1-0 | +| 1 | `10` | 2 | Byte 2, bits 3-2 | +| 2 | `01` | 1 | Byte 2, bits 5-4 | +| 3 | `00` | 0 | Byte 2, bits 7-6 | +| 4 | `01` | 1 | Byte 3, bits 1-0 | +| 5 | `10` | 2 | Byte 3, bits 3-2 | + +Byte 3 holds four used bits, so its value `0x09` stays within the `(1 << 4) - 1 = 0x0F` limit. In a compact file only those four bits are written and the next record begins mid-byte. + ## Complete Table Example - - -The following byte sequence defines a minimal table with example records: - -| Byte(s) | Binary | Hex | Description | -| ------- | ------ | --- | ----------- | -| 1 | `[BINARY_PLACEHOLDER]` | `[HEX_PLACEHOLDER]` | Table identifier | -| ... | ... | ... | [DESCRIPTION_PLACEHOLDER] | \ No newline at end of file + +The following byte sequence defines a Pixmap Table with two 5 × 3 pixmaps at 1 bit per pixel, all three dimensions fixed at the table level, linked to one Color Table: + +| Byte(s) | Binary | Hex | Description | +| ------- | ---------- | ---- | ---------------------------------------------------------------------------------------------- | +| 1 | `00000010` | `02` | Table identifier for Pixmap Table | +| 2 | `00000000` | `00` | Modifier flags: none set | +| 3 | `00000111` | `07` | Configuration flags: `use_constant_width`, `use_constant_height`, `use_constant_bits_per_pixel` | +| 4 | `00000101` | `05` | `constant_width` = 5 pixels | +| 5 | `00000011` | `03` | `constant_height` = 3 pixels | +| 6 | `00000001` | `01` | `constant_bits_per_pixel` = 1 | +| 7 | `00000001` | `01` | Table links: `link_color_tables` enabled | +| 8 | `00000001` | `01` | Color table array length = 1 | +| 9 | `00000000` | `00` | Link to Color Table at index 0 | +| 10 | `00000010` | `02` | Record count = 2 pixmaps | +| 11 | `10011111` | `9F` | Pixmap 0: pixels 0-7 | +| 12 | `00010000` | `10` | Pixmap 0: pixels 8-14 in the low 7 bits | +| 13 | `00100001` | `21` | Pixmap 1: pixels 0-7 | +| 14 | `01111100` | `7C` | Pixmap 1: pixels 8-14 in the low 7 bits | + +Pixmap 0 is the `T` shape from Example 2. Pixmap 1 unpacks to \ +`#....` \ +`#....` \ +`#####`,\ +an `L`. + +Bytes 12 and 14 each carry seven used bits. Assume the parent Layout has compact set to false, and therefore each data field is padded out to a full byte. In a compact file only the seven bits are written, so pixmap 1 and everything following it shifts by one bit. From 2f152b9160fe5dc4aac2dd8984eae949e0c0126e Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 20:54:38 -0400 Subject: [PATCH 12/25] Replace type placeholders for Pixmap and Color Table docuemnts --- src/Color Table.md | 10 +++++----- src/Pixmap Table.md | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Color Table.md b/src/Color Table.md index 17a5ac2..97ae6f5 100644 --- a/src/Color Table.md +++ b/src/Color Table.md @@ -45,11 +45,11 @@ Each record contains the following fields in order: | Field | Type | Condition | Description | | ----- | ---- | --------- | ----------- | -| `color_type` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/color_type.md} | \textinput{../snippets/color_table/records/brief/color_type.md} | -| `alpha` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/alpha.md} | \textinput{../snippets/color_table/records/brief/alpha.md} | -| `red` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/red.md} | \textinput{../snippets/color_table/records/brief/red.md} | -| `green` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/green.md} | \textinput{../snippets/color_table/records/brief/green.md} | -| `blue` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/color_table/records/condition/blue.md} | \textinput{../snippets/color_table/records/brief/blue.md} | +| `color_type` | `u8` | \textinput{../snippets/color_table/records/condition/color_type.md} | \textinput{../snippets/color_table/records/brief/color_type.md} | +| `alpha` | `u8` | \textinput{../snippets/color_table/records/condition/alpha.md} | \textinput{../snippets/color_table/records/brief/alpha.md} | +| `red` | `u8` | \textinput{../snippets/color_table/records/condition/red.md} | \textinput{../snippets/color_table/records/brief/red.md} | +| `green` | `u8` | \textinput{../snippets/color_table/records/condition/green.md} | \textinput{../snippets/color_table/records/brief/green.md} | +| `blue` | `u8` | \textinput{../snippets/color_table/records/condition/blue.md} | \textinput{../snippets/color_table/records/brief/blue.md} | ### Record Layout Examples diff --git a/src/Pixmap Table.md b/src/Pixmap Table.md index cd874d1..9e50bb3 100644 --- a/src/Pixmap Table.md +++ b/src/Pixmap Table.md @@ -3,7 +3,7 @@ ## Table Structure ### Identifier -- **Value**: `[IDENTIFIER_PLACEHOLDER]` +- **Value**: `0x02` ## Configuration Flags @@ -43,10 +43,10 @@ Each record contains the following fields in order: | Field | Type | Condition | Description | | ----- | ---- | --------- | ----------- | -| `width` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/width.md} | \textinput{../snippets/pixmap_table/records/brief/width.md} | -| `height` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/height.md} | \textinput{../snippets/pixmap_table/records/brief/height.md} | -| `bits_per_pixel` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/bits_per_pixel.md} | \textinput{../snippets/pixmap_table/records/brief/bits_per_pixel.md} | -| `data` | `[TYPE_PLACEHOLDER]` | \textinput{../snippets/pixmap_table/records/condition/data.md} | \textinput{../snippets/pixmap_table/records/brief/data.md} | +| `width` | `u8` | \textinput{../snippets/pixmap_table/records/condition/width.md} | \textinput{../snippets/pixmap_table/records/brief/width.md} | +| `height` | `u8` | \textinput{../snippets/pixmap_table/records/condition/height.md} | \textinput{../snippets/pixmap_table/records/brief/height.md} | +| `bits_per_pixel` | `u8` | \textinput{../snippets/pixmap_table/records/condition/bits_per_pixel.md} | \textinput{../snippets/pixmap_table/records/brief/bits_per_pixel.md} | +| `data` | `Vec` | \textinput{../snippets/pixmap_table/records/condition/data.md} | \textinput{../snippets/pixmap_table/records/brief/data.md} | ### Pixel Data Encoding From 4622fa82ce1b42ad50bee1d2216d2b613e69443c Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:09:43 -0400 Subject: [PATCH 13/25] remove trailing newline in snippets --- snippets/character_table/links/brief/pixmap_tables.md | 2 +- snippets/character_table/records/brief/code_points.md | 2 +- snippets/character_table/records/brief/pixmap_index.md | 2 +- snippets/character_table/records/brief/pixmap_table_index.md | 2 +- snippets/character_table/records/condition/code_points.md | 2 +- snippets/character_table/records/condition/pixmap_index.md | 2 +- .../character_table/records/condition/pixmap_table_index.md | 2 +- snippets/pixmap_table/links/brief/color_tables.md | 2 +- snippets/pixmap_table/links/condition/color_tables.md | 2 +- snippets/pixmap_table/links/flag/link_color_tables.md | 2 +- snippets/pixmap_table/records/brief/bits_per_pixel.md | 2 +- snippets/pixmap_table/records/brief/data.md | 2 +- snippets/pixmap_table/records/brief/height.md | 2 +- snippets/pixmap_table/records/brief/width.md | 2 +- snippets/pixmap_table/records/condition/bits_per_pixel.md | 2 +- snippets/pixmap_table/records/condition/data.md | 2 +- snippets/pixmap_table/records/condition/height.md | 2 +- snippets/pixmap_table/records/condition/width.md | 2 +- 18 files changed, 18 insertions(+), 18 deletions(-) diff --git a/snippets/character_table/links/brief/pixmap_tables.md b/snippets/character_table/links/brief/pixmap_tables.md index 40b389b..852ac1c 100644 --- a/snippets/character_table/links/brief/pixmap_tables.md +++ b/snippets/character_table/links/brief/pixmap_tables.md @@ -1 +1 @@ -Length byte followed by that many Pixmap Table indices this character table may reference. +Length byte followed by that many Pixmap Table indices this character table may reference. \ No newline at end of file diff --git a/snippets/character_table/records/brief/code_points.md b/snippets/character_table/records/brief/code_points.md index 29c4a23..cb7cf4c 100644 --- a/snippets/character_table/records/brief/code_points.md +++ b/snippets/character_table/records/brief/code_points.md @@ -1 +1 @@ -UTF-8 encoded codepoint sequence (null-terminated unless `constant_code_point_count` is set). +UTF-8 encoded codepoint sequence (null-terminated unless `constant_code_point_count` is set). \ No newline at end of file diff --git a/snippets/character_table/records/brief/pixmap_index.md b/snippets/character_table/records/brief/pixmap_index.md index 8f2cfc3..e289f97 100644 --- a/snippets/character_table/records/brief/pixmap_index.md +++ b/snippets/character_table/records/brief/pixmap_index.md @@ -1 +1 @@ -Index of the pixmap within the referenced Pixmap Table(s). +Index of the pixmap within the referenced Pixmap Table(s). \ No newline at end of file diff --git a/snippets/character_table/records/brief/pixmap_table_index.md b/snippets/character_table/records/brief/pixmap_table_index.md index c1e6b86..3b46389 100644 --- a/snippets/character_table/records/brief/pixmap_table_index.md +++ b/snippets/character_table/records/brief/pixmap_table_index.md @@ -1 +1 @@ -Index of the specific Pixmap Table to use for this character. +Index of the specific Pixmap Table to use for this character. \ No newline at end of file diff --git a/snippets/character_table/records/condition/code_points.md b/snippets/character_table/records/condition/code_points.md index aca5e32..439dd4b 100644 --- a/snippets/character_table/records/condition/code_points.md +++ b/snippets/character_table/records/condition/code_points.md @@ -1 +1 @@ -Always present +Always present \ No newline at end of file diff --git a/snippets/character_table/records/condition/pixmap_index.md b/snippets/character_table/records/condition/pixmap_index.md index dfa7000..ac0c402 100644 --- a/snippets/character_table/records/condition/pixmap_index.md +++ b/snippets/character_table/records/condition/pixmap_index.md @@ -1 +1 @@ -If `use_pixmap_index` modifier is enabled. +If `use_pixmap_index` modifier is enabled. \ No newline at end of file diff --git a/snippets/character_table/records/condition/pixmap_table_index.md b/snippets/character_table/records/condition/pixmap_table_index.md index 048236d..3776f02 100644 --- a/snippets/character_table/records/condition/pixmap_table_index.md +++ b/snippets/character_table/records/condition/pixmap_table_index.md @@ -1 +1 @@ -If `use_pixmap_table_index` modifier is enabled. +If `use_pixmap_table_index` modifier is enabled. \ No newline at end of file diff --git a/snippets/pixmap_table/links/brief/color_tables.md b/snippets/pixmap_table/links/brief/color_tables.md index 97db1ff..44d9223 100644 --- a/snippets/pixmap_table/links/brief/color_tables.md +++ b/snippets/pixmap_table/links/brief/color_tables.md @@ -1 +1 @@ -Length byte followed by that many Color Table indices supplying the palette that pixel values index into. +Length byte followed by that many Color Table indices supplying the palette that pixel values index into. \ No newline at end of file diff --git a/snippets/pixmap_table/links/condition/color_tables.md b/snippets/pixmap_table/links/condition/color_tables.md index 4bb434c..5b1f06c 100644 --- a/snippets/pixmap_table/links/condition/color_tables.md +++ b/snippets/pixmap_table/links/condition/color_tables.md @@ -1 +1 @@ -If `link_color_tables` is enabled. +If `link_color_tables` is enabled. \ No newline at end of file diff --git a/snippets/pixmap_table/links/flag/link_color_tables.md b/snippets/pixmap_table/links/flag/link_color_tables.md index 56f8949..3a0e8f6 100644 --- a/snippets/pixmap_table/links/flag/link_color_tables.md +++ b/snippets/pixmap_table/links/flag/link_color_tables.md @@ -1 +1 @@ -This table links to one or more Color Tables for palette mapping +This table links to one or more Color Tables for palette mapping \ No newline at end of file diff --git a/snippets/pixmap_table/records/brief/bits_per_pixel.md b/snippets/pixmap_table/records/brief/bits_per_pixel.md index 3982cf6..02021ec 100644 --- a/snippets/pixmap_table/records/brief/bits_per_pixel.md +++ b/snippets/pixmap_table/records/brief/bits_per_pixel.md @@ -1 +1 @@ -Bits used to represent each pixel of this pixmap (only 1-8 supported). +Bits used to represent each pixel of this pixmap (only 1-8 supported). \ No newline at end of file diff --git a/snippets/pixmap_table/records/brief/data.md b/snippets/pixmap_table/records/brief/data.md index ef9fea9..20ab5f2 100644 --- a/snippets/pixmap_table/records/brief/data.md +++ b/snippets/pixmap_table/records/brief/data.md @@ -1 +1 @@ -Packed pixel data as a bit array +Packed pixel data as a bit array \ No newline at end of file diff --git a/snippets/pixmap_table/records/brief/height.md b/snippets/pixmap_table/records/brief/height.md index e50664a..299130e 100644 --- a/snippets/pixmap_table/records/brief/height.md +++ b/snippets/pixmap_table/records/brief/height.md @@ -1 +1 @@ -Height of this pixmap in pixels. +Height of this pixmap in pixels. \ No newline at end of file diff --git a/snippets/pixmap_table/records/brief/width.md b/snippets/pixmap_table/records/brief/width.md index 9e90876..4f2d132 100644 --- a/snippets/pixmap_table/records/brief/width.md +++ b/snippets/pixmap_table/records/brief/width.md @@ -1 +1 @@ -Width of this pixmap in pixels. +Width of this pixmap in pixels. \ No newline at end of file diff --git a/snippets/pixmap_table/records/condition/bits_per_pixel.md b/snippets/pixmap_table/records/condition/bits_per_pixel.md index baafbd7..853ed5e 100644 --- a/snippets/pixmap_table/records/condition/bits_per_pixel.md +++ b/snippets/pixmap_table/records/condition/bits_per_pixel.md @@ -1 +1 @@ - If use_constant_bits_per_pixel is not enabled. +If `use_constant_bits_per_pixel` is not enabled. \ No newline at end of file diff --git a/snippets/pixmap_table/records/condition/data.md b/snippets/pixmap_table/records/condition/data.md index 3850371..23aba0f 100644 --- a/snippets/pixmap_table/records/condition/data.md +++ b/snippets/pixmap_table/records/condition/data.md @@ -1 +1 @@ -Always present. +Always present. \ No newline at end of file diff --git a/snippets/pixmap_table/records/condition/height.md b/snippets/pixmap_table/records/condition/height.md index b2f3733..e640408 100644 --- a/snippets/pixmap_table/records/condition/height.md +++ b/snippets/pixmap_table/records/condition/height.md @@ -1 +1 @@ - If use_constant_height is not enabled. +If `use_constant_height` is not enabled. diff --git a/snippets/pixmap_table/records/condition/width.md b/snippets/pixmap_table/records/condition/width.md index ce556a8..6952f69 100644 --- a/snippets/pixmap_table/records/condition/width.md +++ b/snippets/pixmap_table/records/condition/width.md @@ -1 +1 @@ - If use_constant_width is not enabled. +If `use_constant_width` is not enabled. \ No newline at end of file From bc7539be333842f7e21b10e686eb47c5bb6db5eb Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:13:20 -0400 Subject: [PATCH 14/25] remove trailing newline in missed snippet --- snippets/pixmap_table/records/condition/height.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/snippets/pixmap_table/records/condition/height.md b/snippets/pixmap_table/records/condition/height.md index e640408..feb657c 100644 --- a/snippets/pixmap_table/records/condition/height.md +++ b/snippets/pixmap_table/records/condition/height.md @@ -1 +1 @@ -If `use_constant_height` is not enabled. +If `use_constant_height` is not enabled. \ No newline at end of file From cf12fd98a233c899b2af3fe598f2c452830935b5 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:43:04 -0400 Subject: [PATCH 15/25] Add Font table document and snippets --- snippets/font_table/brief.md | 8 +- .../links/brief/character_tables.md | 4 +- .../links/condition/character_tables.md | 1 + .../links/flag/link_character_tables.md | 1 + snippets/font_table/records/brief/author.md | 4 +- .../records/brief/character_table_indexes.md | 4 +- .../font_table/records/brief/font_type.md | 4 +- snippets/font_table/records/brief/name.md | 4 +- snippets/font_table/records/brief/version.md | 4 +- .../font_table/records/condition/author.md | 4 +- .../condition/character_table_indexes.md | 4 +- .../font_table/records/condition/font_type.md | 4 +- snippets/font_table/records/condition/name.md | 4 +- .../font_table/records/condition/version.md | 4 +- src/Font Table.md | 150 ++++++++++++++++++ 15 files changed, 168 insertions(+), 36 deletions(-) create mode 100644 src/Font Table.md diff --git a/snippets/font_table/brief.md b/snippets/font_table/brief.md index 69b28b0..6d2c5bd 100644 --- a/snippets/font_table/brief.md +++ b/snippets/font_table/brief.md @@ -1,3 +1,5 @@ -# font_table table - -Write the documentation content for font_table table here. \ No newline at end of file +Groups Character Tables into named fonts and carries the metadata to identify them. + +## Use Cases + +- **Sub-font grouping** - A single file can carry several related fonts, such as Regular, Bold, and Italic, each pointing at its own Character Tables. \ No newline at end of file diff --git a/snippets/font_table/links/brief/character_tables.md b/snippets/font_table/links/brief/character_tables.md index 925e6db..a2e0aee 100644 --- a/snippets/font_table/links/brief/character_tables.md +++ b/snippets/font_table/links/brief/character_tables.md @@ -1,3 +1 @@ -# character_tables - -Write the documentation content for character_tables here. \ No newline at end of file +Length byte followed by that many Character Table indices this font table may reference. \ No newline at end of file diff --git a/snippets/font_table/links/condition/character_tables.md b/snippets/font_table/links/condition/character_tables.md index e69de29..ffb677d 100644 --- a/snippets/font_table/links/condition/character_tables.md +++ b/snippets/font_table/links/condition/character_tables.md @@ -0,0 +1 @@ +If `link_character_tables` is enabled. \ No newline at end of file diff --git a/snippets/font_table/links/flag/link_character_tables.md b/snippets/font_table/links/flag/link_character_tables.md index e69de29..c7549ec 100644 --- a/snippets/font_table/links/flag/link_character_tables.md +++ b/snippets/font_table/links/flag/link_character_tables.md @@ -0,0 +1 @@ +This table links to one or more Character Tables. \ No newline at end of file diff --git a/snippets/font_table/records/brief/author.md b/snippets/font_table/records/brief/author.md index 72cc428..40d51e0 100644 --- a/snippets/font_table/records/brief/author.md +++ b/snippets/font_table/records/brief/author.md @@ -1,3 +1 @@ -# author - -Write the documentation content for author here. \ No newline at end of file +Author, manufacturer, or credits for the font. \ No newline at end of file diff --git a/snippets/font_table/records/brief/character_table_indexes.md b/snippets/font_table/records/brief/character_table_indexes.md index 606449c..172fd1c 100644 --- a/snippets/font_table/records/brief/character_table_indexes.md +++ b/snippets/font_table/records/brief/character_table_indexes.md @@ -1,3 +1 @@ -# character_table_indexes - -Write the documentation content for character_table_indexes here. \ No newline at end of file +Length byte followed by that many Character Table indices this font may access and use. \ No newline at end of file diff --git a/snippets/font_table/records/brief/font_type.md b/snippets/font_table/records/brief/font_type.md index 5361012..f1140e4 100644 --- a/snippets/font_table/records/brief/font_type.md +++ b/snippets/font_table/records/brief/font_type.md @@ -1,3 +1 @@ -# font_type - -Write the documentation content for font_type here. \ No newline at end of file +Style of this font (0 = Regular, 1 = Bold, 2 = Italic). \ No newline at end of file diff --git a/snippets/font_table/records/brief/name.md b/snippets/font_table/records/brief/name.md index 44891f8..cda885b 100644 --- a/snippets/font_table/records/brief/name.md +++ b/snippets/font_table/records/brief/name.md @@ -1,3 +1 @@ -# name - -Write the documentation content for name here. \ No newline at end of file +Human-readable font name. \ No newline at end of file diff --git a/snippets/font_table/records/brief/version.md b/snippets/font_table/records/brief/version.md index eb818fb..6309a5b 100644 --- a/snippets/font_table/records/brief/version.md +++ b/snippets/font_table/records/brief/version.md @@ -1,3 +1 @@ -# version - -Write the documentation content for version here. \ No newline at end of file +Revision number of this font, \ No newline at end of file diff --git a/snippets/font_table/records/condition/author.md b/snippets/font_table/records/condition/author.md index 72cc428..23aba0f 100644 --- a/snippets/font_table/records/condition/author.md +++ b/snippets/font_table/records/condition/author.md @@ -1,3 +1 @@ -# author - -Write the documentation content for author here. \ No newline at end of file +Always present. \ No newline at end of file diff --git a/snippets/font_table/records/condition/character_table_indexes.md b/snippets/font_table/records/condition/character_table_indexes.md index 606449c..23aba0f 100644 --- a/snippets/font_table/records/condition/character_table_indexes.md +++ b/snippets/font_table/records/condition/character_table_indexes.md @@ -1,3 +1 @@ -# character_table_indexes - -Write the documentation content for character_table_indexes here. \ No newline at end of file +Always present. \ No newline at end of file diff --git a/snippets/font_table/records/condition/font_type.md b/snippets/font_table/records/condition/font_type.md index 5361012..23aba0f 100644 --- a/snippets/font_table/records/condition/font_type.md +++ b/snippets/font_table/records/condition/font_type.md @@ -1,3 +1 @@ -# font_type - -Write the documentation content for font_type here. \ No newline at end of file +Always present. \ No newline at end of file diff --git a/snippets/font_table/records/condition/name.md b/snippets/font_table/records/condition/name.md index 44891f8..23aba0f 100644 --- a/snippets/font_table/records/condition/name.md +++ b/snippets/font_table/records/condition/name.md @@ -1,3 +1 @@ -# name - -Write the documentation content for name here. \ No newline at end of file +Always present. \ No newline at end of file diff --git a/snippets/font_table/records/condition/version.md b/snippets/font_table/records/condition/version.md index eb818fb..23aba0f 100644 --- a/snippets/font_table/records/condition/version.md +++ b/snippets/font_table/records/condition/version.md @@ -1,3 +1 @@ -# version - -Write the documentation content for version here. \ No newline at end of file +Always present. \ No newline at end of file diff --git a/src/Font Table.md b/src/Font Table.md new file mode 100644 index 0000000..95e1184 --- /dev/null +++ b/src/Font Table.md @@ -0,0 +1,150 @@ +\textinput{../snippets\font_table/brief.md} + +## Table Structure + +### Identifier +- **Value**: `0x04` + +### Modifier Flags + +| Bit | Name | Description | +| --- | ---- | ------------------------ | +| 0-7 | — | Reserved for future use. | + +The Font Table has no modifier flags currently. The byte is still written, as `0x00`. + +### Configuration Flags + +| Bit | Name | Description | +| --- | ---- | ------------------------ | +| 0-7 | — | Reserved for future use. | + +The Font Table has no configuration flags currently, and therefore no configuration values. The byte is still written, as `0x00`. + +## Table Links + +| Bit | Name | Description | +| --- | ---- | ----------- | +| 0 | `link_character_tables` | \textinput{../snippets/font_table/links/flag/link_character_tables.md} | +| 1-7 | — | \textinput{../snippets/phrase/reserved.md} | + +### Link Arrays + +| Name | Type | Condition | Description | +| ---- | ---- | --------- | ----------- | +| `character_tables` | `Vec` | \textinput{../snippets/font_table/links/condition/character_tables.md} | \textinput{../snippets/font_table/links/brief/character_tables.md} | + +## Record Fields + + +Each record contains the following fields in order: + +| Field | Type | Condition | Description | +| ----- | ---- | --------- | ----------- | +| `name` | `CString` | \textinput{../snippets/font_table/records/condition/name.md} | \textinput{../snippets/font_table/records/brief/name.md} | +| `author` | `CString` | \textinput{../snippets/font_table/records/condition/author.md} | \textinput{../snippets/font_table/records/brief/author.md} | +| `version` | `u8` | \textinput{../snippets/font_table/records/condition/version.md} | \textinput{../snippets/font_table/records/brief/version.md} | +| `font_type` | `u8` | \textinput{../snippets/font_table/records/condition/font_type.md} | \textinput{../snippets/font_table/records/brief/font_type.md} | +| `character_table_indexes` | `Vec` | \textinput{../snippets/font_table/records/condition/character_table_indexes.md} | \textinput{../snippets/font_table/records/brief/character_table_indexes.md} | + +### Record Layout Examples + +**Example 1: Minimal record** + +An unnamed, uncredited font drawing from a single Character Table. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------------------ | ---------- | ---- | ------------------------------------ | +| 1 | `name` | `00000000` | `00` | Empty name, terminator only | +| 2 | `author` | `00000000` | `00` | Empty author, terminator only | +| 3 | `version` | `00000001` | `01` | Version 1 | +| 4 | `font_type` | `00000000` | `00` | 0 = Regular | +| 5 | `character_tables` | `00000001` | `01` | Array length = 1 | +| 6 | `character_tables` | `00000000` | `00` | Uses Character Table 0 | + +**Example 2: Typical record** + +The font `Toys` by `Nice`, linking one Character Table. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------------------ | ---------- | ---- | ------------------------------------ | +| 1 | `name` | `01010100` | `54` | `T` | +| 2 | `name` | `01101111` | `6F` | `o` | +| 3 | `name` | `01111001` | `79` | `y` | +| 4 | `name` | `01110011` | `73` | `s` | +| 5 | — | `00000000` | `00` | Null terminator ends `name` | +| 6 | `author` | `01001110` | `4E` | `N` | +| 7 | `author` | `01101001` | `69` | `i` | +| 8 | `author` | `01100011` | `63` | `c` | +| 9 | `author` | `01100101` | `65` | `e` | +| 10 | — | `00000000` | `00` | Null terminator ends `author` | +| 11 | `version` | `00000001` | `01` | Version 1 | +| 12 | `font_type` | `00000000` | `00` | 0 = Regular | +| 13 | `character_tables` | `00000001` | `01` | Array length = 1 | +| 14 | `character_tables` | `00000000` | `00` | Uses Character Table 0 | + +**Example 3: Non-ASCII metadata and multiple Character Tables** + +The font `Toys` by `Nicé`, a bold variant drawing from two Character Tables. The author's last code point needs two UTF-8 bytes. + +| Byte | Field | Binary | Hex | Description | +| ---- | ------------------ | ---------- | ---- | ------------------------------------ | +| 1 | `name` | `01010100` | `54` | `T` | +| 2 | `name` | `01101111` | `6F` | `o` | +| 3 | `name` | `01111001` | `79` | `y` | +| 4 | `name` | `01110011` | `73` | `s` | +| 5 | — | `00000000` | `00` | Null terminator ends `name` | +| 6 | `author` | `01001110` | `4E` | `N` | +| 7 | `author` | `01101001` | `69` | `i` | +| 8 | `author` | `01100011` | `63` | `c` | +| 9 | `author` | `11000011` | `C3` | `é` (U+00E9), byte 1 of 2 | +| 10 | `author` | `10101001` | `A9` | `é` (U+00E9), byte 2 of 2 | +| 11 | — | `00000000` | `00` | Null terminator ends `author` | +| 12 | `version` | `00000010` | `02` | Version 2 | +| 13 | `font_type` | `00000001` | `01` | 1 = Bold | +| 14 | `character_tables` | `00000010` | `02` | Array length = 2 | +| 15 | `character_tables` | `00000000` | `00` | Uses Character Table 0 | +| 16 | `character_tables` | `00000010` | `02` | Uses Character Table 2 | + +## Complete Table Example + +The following byte sequence defines a Font Table holding two fonts, a Regular and a Bold. Between them they use the two Character Tables the table links to: + +| Byte(s) | Binary | Hex | Description | +| ------- | ---------- | ---- | -------------------------------------------------- | +| 1 | `00000100` | `04` | Table identifier for Font Table | +| 2 | `00000000` | `00` | Modifier flags: none set | +| 3 | `00000000` | `00` | Configuration flags: none set | +| 4 | `00000001` | `01` | Table links: `link_character_tables` enabled | +| 5 | `00000010` | `02` | Character table array length = 2 | +| 6 | `00000000` | `00` | Link to Character Table at index 0 | +| 7 | `00000001` | `01` | Link to Character Table at index 1 | +| 8 | `00000010` | `02` | Record count = 2 fonts | +| 9 | `01010100` | `54` | Font 0: `name` = `T` | +| 10 | `01101111` | `6F` | Font 0: `name` = `o` | +| 11 | `01111001` | `79` | Font 0: `name` = `y` | +| 12 | `01110011` | `73` | Font 0: `name` = `s` | +| 13 | `00000000` | `00` | Font 0: `name` terminator | +| 14 | `01001110` | `4E` | Font 0: `author` = `N` | +| 15 | `01101001` | `69` | Font 0: `author` = `i` | +| 16 | `01100011` | `63` | Font 0: `author` = `c` | +| 17 | `01100101` | `65` | Font 0: `author` = `e` | +| 18 | `00000000` | `00` | Font 0: `author` terminator | +| 19 | `00000001` | `01` | Font 0: `version` = 1 | +| 20 | `00000000` | `00` | Font 0: `font_type` = 0 (Regular) | +| 21 | `00000001` | `01` | Font 0: character table array length = 1 | +| 22 | `00000000` | `00` | Font 0: uses Character Table 0 | +| 23 | `01010100` | `54` | Font 1: `name` = `T` | +| 24 | `01101111` | `6F` | Font 1: `name` = `o` | +| 25 | `01111001` | `79` | Font 1: `name` = `y` | +| 26 | `01110011` | `73` | Font 1: `name` = `s` | +| 27 | `00000000` | `00` | Font 1: `name` terminator | +| 28 | `01001110` | `4E` | Font 1: `author` = `N` | +| 29 | `01101001` | `69` | Font 1: `author` = `i` | +| 30 | `01100011` | `63` | Font 1: `author` = `c` | +| 31 | `01100101` | `65` | Font 1: `author` = `e` | +| 32 | `00000000` | `00` | Font 1: `author` terminator | +| 33 | `00000001` | `01` | Font 1: `version` = 1 | +| 34 | `00000001` | `01` | Font 1: `font_type` = 1 (Bold) | +| 35 | `00000001` | `01` | Font 1: character table array length = 1 | +| 36 | `00000001` | `01` | Font 1: uses Character Table 1 | From 5b8056279a89a539807cabb64689bc28d9d1564b Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:59:31 -0400 Subject: [PATCH 16/25] Readd old documents --- src/Home.md | 3 +++ src/Table Architecture.md | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 src/Home.md create mode 100644 src/Table Architecture.md diff --git a/src/Home.md b/src/Home.md new file mode 100644 index 0000000..6ff4cb7 --- /dev/null +++ b/src/Home.md @@ -0,0 +1,3 @@ +Welcome to the SimplePixelFont (SPF) Format Specifications! + +**Note: This wiki is under development.** \ No newline at end of file diff --git a/src/Table Architecture.md b/src/Table Architecture.md new file mode 100644 index 0000000..4b0b6ac --- /dev/null +++ b/src/Table Architecture.md @@ -0,0 +1,11 @@ +# Table Architecture + +SimplePixelFont uses tables to structure each component of your font in an expressive and modular way. Each table defines properties for a certain aspect of your font. A table consists of five sections: `identifier`, `modifiers`, `configurations`, `links`, and `records`. The following is a chart with explanations of what each section is for: + +| Section | Structure | +| ------- | ----- | +| `Identifier` | This is a single byte used by the parser to determine how to parse the table's data. | +| `Modifiers` | This is a single byte that behaves as a series of bit flags; each bit, if true, alters the data stored in the `Records` section. | +| `Configurations` | The first byte behaves as a series of bit flags; each bit, if true, allows a configuration value to be supplied after the first byte. Configurations are often used to supply values to each `Record`. The order of the supplied configuration values is based on the flags enabled, starting from the rightmost bit and skipping values for any flag not enabled. | +| `Links` | Similarly, the first byte is a flag byte; each bit, if true, allows you to specify a set of table links after the byte. Each set of table links uses the first byte to specify the length of the next array of links, and the following bytes correspond to the index of the table linked. | +| `Records` | This is the main data section of a table; it contains indexed sets of data referred to as records. The table type defines the structure that will be used by the records. | \ No newline at end of file From 408e337e0589fe7252241a653c6f6af9bb79d677 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:02:36 -0400 Subject: [PATCH 17/25] Edit Font Table.md to trigger sync --- src/Font Table.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Font Table.md b/src/Font Table.md index 95e1184..04c8093 100644 --- a/src/Font Table.md +++ b/src/Font Table.md @@ -1,5 +1,5 @@ \textinput{../snippets\font_table/brief.md} - + ## Table Structure ### Identifier From fa88281264d1908f1aa6a36e9fd843e4d919a69d Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:05:41 -0400 Subject: [PATCH 18/25] Edit Font Table.md to fix path error --- src/Font Table.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Font Table.md b/src/Font Table.md index 04c8093..ee97eb1 100644 --- a/src/Font Table.md +++ b/src/Font Table.md @@ -1,5 +1,5 @@ -\textinput{../snippets\font_table/brief.md} - +\textinput{../snippets/font_table/brief.md} + ## Table Structure ### Identifier From 1c03eaa5c534bbbad1989d12694a6df6318764e7 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:21:18 -0400 Subject: [PATCH 19/25] Fix all vale errors --- .ci/styles/config/vocabularies/SimplePixelFont/accept.txt | 1 + .ci/styles/txt | 0 .vale.ini | 1 + .../configurations/brief/constant_code_point_count.md | 2 +- snippets/character_table/records/brief/code_points.md | 2 +- snippets/character_table/records/brief/pixmap_index.md | 2 +- src/Color Table.md | 2 +- src/Font Table.md | 2 +- src/Home.md | 2 +- src/Pixmap Table.md | 2 +- 10 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 .ci/styles/config/vocabularies/SimplePixelFont/accept.txt delete mode 100644 .ci/styles/txt diff --git a/.ci/styles/config/vocabularies/SimplePixelFont/accept.txt b/.ci/styles/config/vocabularies/SimplePixelFont/accept.txt new file mode 100644 index 0000000..b936cac --- /dev/null +++ b/.ci/styles/config/vocabularies/SimplePixelFont/accept.txt @@ -0,0 +1 @@ +(?i)pixmap \ No newline at end of file diff --git a/.ci/styles/txt b/.ci/styles/txt deleted file mode 100644 index e69de29..0000000 diff --git a/.vale.ini b/.vale.ini index bf966b5..40ddd23 100644 --- a/.vale.ini +++ b/.vale.ini @@ -3,4 +3,5 @@ StylesPath = .ci/styles Packages = Google, write-good, proselint [*.md] +Vocab = SimplePixelFont BasedOnStyles = Vale, Google, write-good, proselint \ No newline at end of file diff --git a/snippets/character_table/configurations/brief/constant_code_point_count.md b/snippets/character_table/configurations/brief/constant_code_point_count.md index 09af662..43d7150 100644 --- a/snippets/character_table/configurations/brief/constant_code_point_count.md +++ b/snippets/character_table/configurations/brief/constant_code_point_count.md @@ -1 +1 @@ -The exact codepoint length of each `code_points` field in this table \ No newline at end of file +The exact code point length of each `code_points` field in this table \ No newline at end of file diff --git a/snippets/character_table/records/brief/code_points.md b/snippets/character_table/records/brief/code_points.md index cb7cf4c..dec03f2 100644 --- a/snippets/character_table/records/brief/code_points.md +++ b/snippets/character_table/records/brief/code_points.md @@ -1 +1 @@ -UTF-8 encoded codepoint sequence (null-terminated unless `constant_code_point_count` is set). \ No newline at end of file +UTF-8 encoded code point sequence (null-terminated unless `constant_code_point_count` is set). \ No newline at end of file diff --git a/snippets/character_table/records/brief/pixmap_index.md b/snippets/character_table/records/brief/pixmap_index.md index e289f97..9ae2c77 100644 --- a/snippets/character_table/records/brief/pixmap_index.md +++ b/snippets/character_table/records/brief/pixmap_index.md @@ -1 +1 @@ -Index of the pixmap within the referenced Pixmap Table(s). \ No newline at end of file +Index of the pixmap within the referenced Pixmap Tables. \ No newline at end of file diff --git a/src/Color Table.md b/src/Color Table.md index 97ae6f5..e9573d9 100644 --- a/src/Color Table.md +++ b/src/Color Table.md @@ -97,7 +97,7 @@ Result: `rgba(0, 0, 0, 255)`, an absolute black that a renderer should not recol The following byte sequence defines a two-entry palette with a shared alpha, one dynamic color and one absolute color: -| Byte(s) | Binary | Hex | Description | +| Bytes | Binary | Hex | Description | | ------- | ---------- | ---- | -------------------------------------------------- | | 1 | `00000011` | `03` | Table identifier for Color Table | | 2 | `00000001` | `01` | Modifier flags: `use_color_type` enabled | diff --git a/src/Font Table.md b/src/Font Table.md index ee97eb1..277cf52 100644 --- a/src/Font Table.md +++ b/src/Font Table.md @@ -110,7 +110,7 @@ The font `Toys` by `Nicé`, a bold variant drawing from two Character Tables. Th The following byte sequence defines a Font Table holding two fonts, a Regular and a Bold. Between them they use the two Character Tables the table links to: -| Byte(s) | Binary | Hex | Description | +| Byte | Binary | Hex | Description | | ------- | ---------- | ---- | -------------------------------------------------- | | 1 | `00000100` | `04` | Table identifier for Font Table | | 2 | `00000000` | `00` | Modifier flags: none set | diff --git a/src/Home.md b/src/Home.md index 6ff4cb7..b89d9e8 100644 --- a/src/Home.md +++ b/src/Home.md @@ -1,3 +1,3 @@ -Welcome to the SimplePixelFont (SPF) Format Specifications! +Welcome to the SimplePixelFont (SPF) Format Specifications. **Note: This wiki is under development.** \ No newline at end of file diff --git a/src/Pixmap Table.md b/src/Pixmap Table.md index 9e50bb3..41df871 100644 --- a/src/Pixmap Table.md +++ b/src/Pixmap Table.md @@ -167,7 +167,7 @@ Byte 3 holds four used bits, so its value `0x09` stays within the `(1 << 4) - 1 The following byte sequence defines a Pixmap Table with two 5 × 3 pixmaps at 1 bit per pixel, all three dimensions fixed at the table level, linked to one Color Table: -| Byte(s) | Binary | Hex | Description | +| Bytes | Binary | Hex | Description | | ------- | ---------- | ---- | ---------------------------------------------------------------------------------------------- | | 1 | `00000010` | `02` | Table identifier for Pixmap Table | | 2 | `00000000` | `00` | Modifier flags: none set | From 933d6116df61af8371d226ca7e5c1ff215330b54 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:27:56 -0400 Subject: [PATCH 20/25] Fix ambiguity in Font Table record examples --- src/Font Table.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Font Table.md b/src/Font Table.md index 277cf52..5140453 100644 --- a/src/Font Table.md +++ b/src/Font Table.md @@ -48,9 +48,9 @@ Each record contains the following fields in order: | `character_table_indexes` | `Vec` | \textinput{../snippets/font_table/records/condition/character_table_indexes.md} | \textinput{../snippets/font_table/records/brief/character_table_indexes.md} | ### Record Layout Examples - + **Example 1: Minimal record** - + An unnamed, uncredited font drawing from a single Character Table. | Byte | Field | Binary | Hex | Description | @@ -59,8 +59,8 @@ An unnamed, uncredited font drawing from a single Character Table. | 2 | `author` | `00000000` | `00` | Empty author, terminator only | | 3 | `version` | `00000001` | `01` | Version 1 | | 4 | `font_type` | `00000000` | `00` | 0 = Regular | -| 5 | `character_tables` | `00000001` | `01` | Array length = 1 | -| 6 | `character_tables` | `00000000` | `00` | Uses Character Table 0 | +| 5 | `character_table_indexes` | `00000001` | `01` | Array length = 1 | +| 6 | `character_table_indexes` | `00000000` | `00` | Uses Character Table 0 | **Example 2: Typical record** @@ -80,8 +80,8 @@ The font `Toys` by `Nice`, linking one Character Table. | 10 | — | `00000000` | `00` | Null terminator ends `author` | | 11 | `version` | `00000001` | `01` | Version 1 | | 12 | `font_type` | `00000000` | `00` | 0 = Regular | -| 13 | `character_tables` | `00000001` | `01` | Array length = 1 | -| 14 | `character_tables` | `00000000` | `00` | Uses Character Table 0 | +| 13 | `character_table_indexes` | `00000001` | `01` | Array length = 1 | +| 14 | `character_table_indexes` | `00000000` | `00` | Uses Character Table 0 | **Example 3: Non-ASCII metadata and multiple Character Tables** @@ -102,9 +102,9 @@ The font `Toys` by `Nicé`, a bold variant drawing from two Character Tables. Th | 11 | — | `00000000` | `00` | Null terminator ends `author` | | 12 | `version` | `00000010` | `02` | Version 2 | | 13 | `font_type` | `00000001` | `01` | 1 = Bold | -| 14 | `character_tables` | `00000010` | `02` | Array length = 2 | -| 15 | `character_tables` | `00000000` | `00` | Uses Character Table 0 | -| 16 | `character_tables` | `00000010` | `02` | Uses Character Table 2 | +| 14 | `character_table_indexes` | `00000010` | `02` | Array length = 2 | +| 15 | `character_table_indexes` | `00000000` | `00` | Uses Character Table 0 | +| 16 | `character_table_indexes` | `00000010` | `02` | Uses Character Table 2 | ## Complete Table Example From 55c9d1807162471289512f9fe13df8c16d71d497 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:34:12 -0400 Subject: [PATCH 21/25] Remove documentation branch from triggering wiki workflow --- .github/workflows/wiki.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wiki.yml b/.github/workflows/wiki.yml index b59e3cd..4977c45 100644 --- a/.github/workflows/wiki.yml +++ b/.github/workflows/wiki.yml @@ -4,7 +4,6 @@ on: push: branches: - main - - documentation jobs: sync-wiki: @@ -12,10 +11,10 @@ jobs: steps: - name: Checkout Repo uses: actions/checkout@v2 - + - name: Process markdown files run: npx https://github.com/The-Nice-One/rail-yard.git preprocess -i ./src -o ./build - + - name: Sync docs to wiki uses: newrelic/wiki-sync-action@main with: From b45c08b706800714870f3ec8fc00c02ea150324a Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Fri, 24 Jul 2026 22:48:38 -0400 Subject: [PATCH 22/25] Update Vocab setting in .vale.ini --- .vale.ini | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.vale.ini b/.vale.ini index 40ddd23..abf146d 100644 --- a/.vale.ini +++ b/.vale.ini @@ -1,7 +1,6 @@ StylesPath = .ci/styles - +Vocab = SimplePixelFont Packages = Google, write-good, proselint [*.md] -Vocab = SimplePixelFont -BasedOnStyles = Vale, Google, write-good, proselint \ No newline at end of file +BasedOnStyles = Vale, Google, write-good, proselint From 11e62bf1b8cd29b94a3700ad32d15e852c7d3d35 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Sat, 25 Jul 2026 11:19:15 -0400 Subject: [PATCH 23/25] Prevent proselint documents from generating errors. --- .vale.ini | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.vale.ini b/.vale.ini index abf146d..c51e7e4 100644 --- a/.vale.ini +++ b/.vale.ini @@ -2,5 +2,8 @@ StylesPath = .ci/styles Vocab = SimplePixelFont Packages = Google, write-good, proselint +[.ci/styles/proselint/*.md] +BasedOnStyles = + [*.md] BasedOnStyles = Vale, Google, write-good, proselint From 1642b37e742a914395b1740acb70afa013a03001 Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Sat, 25 Jul 2026 11:25:04 -0400 Subject: [PATCH 24/25] Add pixmaps to vale vocab --- .ci/styles/config/vocabularies/SimplePixelFont/accept.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.ci/styles/config/vocabularies/SimplePixelFont/accept.txt b/.ci/styles/config/vocabularies/SimplePixelFont/accept.txt index b936cac..0342d66 100644 --- a/.ci/styles/config/vocabularies/SimplePixelFont/accept.txt +++ b/.ci/styles/config/vocabularies/SimplePixelFont/accept.txt @@ -1 +1,2 @@ -(?i)pixmap \ No newline at end of file +(?i)pixmap +(?i)pixmaps \ No newline at end of file From 360072bda55b960895479b545ed7e381d1dac1ea Mon Sep 17 00:00:00 2001 From: Alexis Osorio <113266346+The-Nice-One@users.noreply.github.com> Date: Sat, 25 Jul 2026 11:43:28 -0400 Subject: [PATCH 25/25] Some fixes in snippets --- snippets/character_table/modifiers/details/use_pixmap_index.md | 2 +- snippets/character_table/records/brief/code_points.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/snippets/character_table/modifiers/details/use_pixmap_index.md b/snippets/character_table/modifiers/details/use_pixmap_index.md index b1fb6c9..9f78b98 100644 --- a/snippets/character_table/modifiers/details/use_pixmap_index.md +++ b/snippets/character_table/modifiers/details/use_pixmap_index.md @@ -1 +1 @@ -When disabled, the pixmap index defaults to match the character record index (1:1 mapping). \ No newline at end of file +When disabled, the pixmap index defaults to match the character record index creating a one to one mapping. \ No newline at end of file diff --git a/snippets/character_table/records/brief/code_points.md b/snippets/character_table/records/brief/code_points.md index dec03f2..89c573e 100644 --- a/snippets/character_table/records/brief/code_points.md +++ b/snippets/character_table/records/brief/code_points.md @@ -1 +1 @@ -UTF-8 encoded code point sequence (null-terminated unless `constant_code_point_count` is set). \ No newline at end of file +UTF-8 encoded code point sequence, null-terminated unless `constant_code_point_count` is set. \ No newline at end of file