ucode 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +72 -0
- data/Gemfile.lock +2 -2
- data/TODO.full/00-README.md +116 -0
- data/TODO.full/01-panglyph-vision.md +112 -0
- data/TODO.full/02-panglyph-repo-bootstrap.md +184 -0
- data/TODO.full/03-panglyph-font-builder.md +201 -0
- data/TODO.full/04-panglyph-publish-pipeline.md +126 -0
- data/TODO.full/05-ucode-0-1-1-release.md +139 -0
- data/TODO.full/06-fontisan-remove-audit.md +142 -0
- data/TODO.full/07-fontisan-remove-ucd.md +125 -0
- data/TODO.full/08-archive-private-bin-build.md +143 -0
- data/TODO.full/09-archive-public-structure.md +164 -0
- data/TODO.full/10-fontist-org-woff-glyphs.md +131 -0
- data/TODO.full/11-fontist-org-audit-coverage.md +140 -0
- data/TODO.full/12-implementation-order.md +216 -0
- data/TODO.full/13-fontisan-font-writer-api.md +189 -0
- data/TODO.full/14-fontisan-table-writers.md +66 -0
- data/TODO.full/15-panglyph-builder-real.md +82 -0
- data/TODO.full/16-archive-public-sync-workflows.md +167 -0
- data/TODO.full/17-fontist-org-font-picker.md +73 -0
- data/TODO.full/18-comprehensive-spec-coverage.md +64 -0
- data/TODO.full/19-ucode-0-1-2-patch.md +32 -0
- data/TODO.full/20-fontisan-0-2-23-release.md +52 -0
- data/TODO.new/00-README.md +30 -0
- data/TODO.new/23-universal-glyph-set-source-map.md +312 -0
- data/TODO.new/24-universal-glyph-set-build.md +189 -0
- data/TODO.new/25-font-audit-against-universal-set.md +195 -0
- data/TODO.new/26-missing-glyph-reporter.md +189 -0
- data/TODO.new/27-fontist-org-consumer-integration.md +200 -0
- data/TODO.new/28-implementation-order-update.md +187 -0
- data/TODO.new/29-universal-set-curation-uc17.md +312 -0
- data/TODO.new/30-tier1-font-acquisition.md +241 -0
- data/TODO.new/31-universal-set-production-build.md +205 -0
- data/TODO.new/32-uc17-coverage-matrix.md +165 -0
- data/TODO.new/33-specialist-font-acquisition-refresh.md +138 -0
- data/TODO.new/34-pillar2-content-stream-correlator.md +147 -0
- data/TODO.new/35-universal-set-production-run.md +160 -0
- data/TODO.new/36-per-font-coverage-audit.md +145 -0
- data/TODO.new/37-coverage-highlight-reporter.md +125 -0
- data/TODO.new/38-fontist-org-glyph-consumer.md +141 -0
- data/TODO.new/39-implementation-order-update-32-38.md +258 -0
- data/TODO.new/40-archive-private-uses-ucode-audit.md +124 -0
- data/TODO.new/41-ucode-unicode-archive-bridge.md +160 -0
- data/config/specialist_fonts.yml +102 -0
- data/config/unicode17_tier1_fonts.yml +42 -0
- data/config/unicode17_universal_glyph_set.yml +293 -0
- data/lib/ucode/audit/block_aggregator.rb +57 -29
- data/lib/ucode/audit/browser/face_page.rb +128 -0
- data/lib/ucode/audit/browser/glyph_panel.rb +124 -0
- data/lib/ucode/audit/browser/library_page.rb +74 -0
- data/lib/ucode/audit/browser/missing_glyph_page.rb +87 -0
- data/lib/ucode/audit/browser/template.rb +47 -0
- data/lib/ucode/audit/browser/templates/face.css +200 -0
- data/lib/ucode/audit/browser/templates/face.html.erb +41 -0
- data/lib/ucode/audit/browser/templates/face.js +298 -0
- data/lib/ucode/audit/browser/templates/library.css +119 -0
- data/lib/ucode/audit/browser/templates/library.html.erb +42 -0
- data/lib/ucode/audit/browser/templates/library.js +99 -0
- data/lib/ucode/audit/browser/templates/missing_glyph_page.css +119 -0
- data/lib/ucode/audit/browser/templates/missing_glyph_page.html.erb +58 -0
- data/lib/ucode/audit/browser/templates/missing_glyph_page.js +2 -0
- data/lib/ucode/audit/browser.rb +32 -0
- data/lib/ucode/audit/context.rb +27 -1
- data/lib/ucode/audit/coverage_reference.rb +103 -0
- data/lib/ucode/audit/differ.rb +121 -0
- data/lib/ucode/audit/emitter/block_emitter.rb +52 -0
- data/lib/ucode/audit/emitter/codepoint_emitter.rb +87 -0
- data/lib/ucode/audit/emitter/collection_emitter.rb +80 -0
- data/lib/ucode/audit/emitter/face_directory.rb +212 -0
- data/lib/ucode/audit/emitter/glyph_emitter.rb +48 -0
- data/lib/ucode/audit/emitter/index_emitter.rb +149 -0
- data/lib/ucode/audit/emitter/library_emitter.rb +96 -0
- data/lib/ucode/audit/emitter/paths.rb +312 -0
- data/lib/ucode/audit/emitter/plane_emitter.rb +29 -0
- data/lib/ucode/audit/emitter/script_emitter.rb +29 -0
- data/lib/ucode/audit/emitter.rb +29 -0
- data/lib/ucode/audit/extractors/aggregations.rb +31 -2
- data/lib/ucode/audit/face_auditor.rb +86 -0
- data/lib/ucode/audit/formatters/audit_diff_text.rb +112 -0
- data/lib/ucode/audit/formatters/audit_text.rb +411 -0
- data/lib/ucode/audit/formatters/color.rb +48 -0
- data/lib/ucode/audit/formatters/library_summary_text.rb +98 -0
- data/lib/ucode/audit/formatters/text_formatter.rb +83 -0
- data/lib/ucode/audit/formatters.rb +23 -0
- data/lib/ucode/audit/library_aggregator.rb +86 -0
- data/lib/ucode/audit/library_auditor.rb +105 -0
- data/lib/ucode/audit/release/emitter.rb +152 -0
- data/lib/ucode/audit/release/face_card.rb +93 -0
- data/lib/ucode/audit/release/formula_audits.rb +50 -0
- data/lib/ucode/audit/release/library_index_builder.rb +78 -0
- data/lib/ucode/audit/release/manifest_builder.rb +127 -0
- data/lib/ucode/audit/release.rb +42 -0
- data/lib/ucode/audit/ucd_only_reference.rb +81 -0
- data/lib/ucode/audit/universal_set_reference.rb +136 -0
- data/lib/ucode/audit.rb +31 -0
- data/lib/ucode/cli.rb +339 -33
- data/lib/ucode/commands/audit/browser_command.rb +82 -0
- data/lib/ucode/commands/audit/collection_command.rb +103 -0
- data/lib/ucode/commands/audit/compare_command.rb +188 -0
- data/lib/ucode/commands/audit/font_command.rb +140 -0
- data/lib/ucode/commands/audit/library_command.rb +87 -0
- data/lib/ucode/commands/audit/reference_builder.rb +64 -0
- data/lib/ucode/commands/audit.rb +20 -0
- data/lib/ucode/commands/block_feed.rb +73 -0
- data/lib/ucode/commands/canonical_build.rb +138 -0
- data/lib/ucode/commands/fetch.rb +37 -1
- data/lib/ucode/commands/release.rb +115 -0
- data/lib/ucode/commands/universal_set.rb +211 -0
- data/lib/ucode/commands.rb +5 -0
- data/lib/ucode/coordinator/indices.rb +11 -0
- data/lib/ucode/coordinator.rb +138 -5
- data/lib/ucode/error.rb +30 -2
- data/lib/ucode/fetch/font_fetcher/result.rb +39 -0
- data/lib/ucode/fetch/font_fetcher.rb +16 -0
- data/lib/ucode/fetch/specialist_font_fetcher.rb +280 -0
- data/lib/ucode/fetch.rb +7 -3
- data/lib/ucode/glyphs/real_fonts/cmap_cache.rb +74 -0
- data/lib/ucode/glyphs/real_fonts.rb +1 -0
- data/lib/ucode/glyphs/resolver.rb +62 -0
- data/lib/ucode/glyphs/source.rb +48 -0
- data/lib/ucode/glyphs/source_builder.rb +61 -0
- data/lib/ucode/glyphs/source_config/coverage_assertion.rb +79 -0
- data/lib/ucode/glyphs/source_config/gap_report.rb +54 -0
- data/lib/ucode/glyphs/source_config.rb +104 -0
- data/lib/ucode/glyphs/sources/pillar1_embedded_tounicode.rb +63 -0
- data/lib/ucode/glyphs/sources/pillar3_last_resort.rb +51 -0
- data/lib/ucode/glyphs/sources/tier1_real_font.rb +104 -0
- data/lib/ucode/glyphs/sources.rb +20 -0
- data/lib/ucode/glyphs/universal_set/builder.rb +161 -0
- data/lib/ucode/glyphs/universal_set/coverage_report.rb +139 -0
- data/lib/ucode/glyphs/universal_set/idempotency.rb +86 -0
- data/lib/ucode/glyphs/universal_set/manifest_accumulator.rb +195 -0
- data/lib/ucode/glyphs/universal_set/manifest_writer.rb +61 -0
- data/lib/ucode/glyphs/universal_set/pre_build_check.rb +197 -0
- data/lib/ucode/glyphs/universal_set/validator.rb +204 -0
- data/lib/ucode/glyphs/universal_set.rb +45 -0
- data/lib/ucode/glyphs.rb +6 -0
- data/lib/ucode/models/audit/baseline.rb +6 -0
- data/lib/ucode/models/audit/block_summary.rb +7 -0
- data/lib/ucode/models/audit/codepoint_provenance.rb +39 -0
- data/lib/ucode/models/audit/release_face.rb +42 -0
- data/lib/ucode/models/audit/release_formula.rb +33 -0
- data/lib/ucode/models/audit/release_manifest.rb +43 -0
- data/lib/ucode/models/audit/release_universal_set.rb +37 -0
- data/lib/ucode/models/audit.rb +9 -0
- data/lib/ucode/models/block.rb +2 -0
- data/lib/ucode/models/build_report.rb +109 -0
- data/lib/ucode/models/codepoint/glyph.rb +42 -0
- data/lib/ucode/models/codepoint.rb +3 -0
- data/lib/ucode/models/glyph_source.rb +86 -0
- data/lib/ucode/models/glyph_source_map.rb +138 -0
- data/lib/ucode/models/specialist_font.rb +70 -0
- data/lib/ucode/models/specialist_font_manifest.rb +48 -0
- data/lib/ucode/models/unihan_entry.rb +81 -9
- data/lib/ucode/models/unihan_field.rb +21 -0
- data/lib/ucode/models/universal_set_entry.rb +47 -0
- data/lib/ucode/models/universal_set_manifest.rb +78 -0
- data/lib/ucode/models/validation_report.rb +99 -0
- data/lib/ucode/models.rb +9 -0
- data/lib/ucode/parsers/named_sequences.rb +5 -5
- data/lib/ucode/parsers/unihan.rb +50 -19
- data/lib/ucode/repo/aggregate_writer.rb +34 -2
- data/lib/ucode/repo/block_feed_emitter.rb +153 -0
- data/lib/ucode/repo/build_report_accumulator.rb +138 -0
- data/lib/ucode/repo/build_report_writer.rb +46 -0
- data/lib/ucode/repo/build_validator.rb +229 -0
- data/lib/ucode/repo/codepoint_writer.rb +50 -1
- data/lib/ucode/repo/paths.rb +8 -0
- data/lib/ucode/repo.rb +4 -0
- data/lib/ucode/version.rb +1 -1
- data/schema/block-feed.output.schema.yml +134 -0
- metadata +143 -2
- data/ucode.gemspec +0 -56
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# ucode block-feed output schema
|
|
2
|
+
#
|
|
3
|
+
# This is the canonical shape of ucode's `block-feed` output — a compact
|
|
4
|
+
# per-block Unicode data feed derived from ucode's canonical output tree.
|
|
5
|
+
#
|
|
6
|
+
# ucode emits three files under the target directory:
|
|
7
|
+
#
|
|
8
|
+
# unicode-blocks.json
|
|
9
|
+
# unicode-version.json
|
|
10
|
+
# unicode/blocks/<slug>.json
|
|
11
|
+
#
|
|
12
|
+
# Block slugs are derived from the Unicode block display name via the
|
|
13
|
+
# standard slug algorithm:
|
|
14
|
+
#
|
|
15
|
+
# name.downcase.gsub(/[^a-z0-9]+/, "-").gsub(/^-|-$/, "")
|
|
16
|
+
#
|
|
17
|
+
# Field names are short (cp, n, c, s, cc, bc, mir) because the per-block
|
|
18
|
+
# files inline every codepoint — byte size matters at the long tail
|
|
19
|
+
# (CJK Unified Ideographs alone is 20,992 chars in one file).
|
|
20
|
+
#
|
|
21
|
+
# This schema describes Unicode data only. It is not specific to any
|
|
22
|
+
# consumer; any tooling that wants a compact per-block view of Unicode
|
|
23
|
+
# can consume it.
|
|
24
|
+
|
|
25
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
26
|
+
title: UcodeBlockFeed
|
|
27
|
+
description: Canonical shape of ucode's compact per-block Unicode data feed
|
|
28
|
+
|
|
29
|
+
definitions:
|
|
30
|
+
|
|
31
|
+
codepoint:
|
|
32
|
+
description: A single Unicode codepoint's compact metadata.
|
|
33
|
+
type: object
|
|
34
|
+
additionalProperties: false
|
|
35
|
+
required: [cp]
|
|
36
|
+
properties:
|
|
37
|
+
cp:
|
|
38
|
+
type: integer
|
|
39
|
+
minimum: 0
|
|
40
|
+
maximum: 0x10FFFF
|
|
41
|
+
description: The Unicode scalar value (integer form of U+XXXX).
|
|
42
|
+
n:
|
|
43
|
+
type: string
|
|
44
|
+
minLength: 1
|
|
45
|
+
description: Codepoint name (e.g. "LATIN CAPITAL LETTER A"). Omitted when empty.
|
|
46
|
+
c:
|
|
47
|
+
type: string
|
|
48
|
+
minLength: 1
|
|
49
|
+
pattern: '^[A-Z][a-z]$'
|
|
50
|
+
description: General category short code (Lu, Ll, Mn, So, ...).
|
|
51
|
+
s:
|
|
52
|
+
type: string
|
|
53
|
+
minLength: 2
|
|
54
|
+
description: Script code (Latn, Grek, Hani, Zyyy, ...). 4-letter ISO 15924.
|
|
55
|
+
cc:
|
|
56
|
+
type: integer
|
|
57
|
+
minimum: 0
|
|
58
|
+
maximum: 255
|
|
59
|
+
description: Canonical combining class. Always present (0 for non-marks).
|
|
60
|
+
bc:
|
|
61
|
+
type: string
|
|
62
|
+
minLength: 1
|
|
63
|
+
description: Bidi class short code (L, R, AL, AN, NSM, BN, ...).
|
|
64
|
+
mir:
|
|
65
|
+
type: boolean
|
|
66
|
+
description: Bidi mirrored flag. Omitted when false.
|
|
67
|
+
|
|
68
|
+
block_summary:
|
|
69
|
+
description: One entry per Unicode block in unicode-blocks.json.
|
|
70
|
+
type: object
|
|
71
|
+
additionalProperties: false
|
|
72
|
+
required: [start, end, name, unicode_version]
|
|
73
|
+
properties:
|
|
74
|
+
start:
|
|
75
|
+
type: integer
|
|
76
|
+
minimum: 0
|
|
77
|
+
maximum: 0x10FFFF
|
|
78
|
+
description: First codepoint in the block (inclusive).
|
|
79
|
+
end:
|
|
80
|
+
type: integer
|
|
81
|
+
minimum: 0
|
|
82
|
+
maximum: 0x10FFFF
|
|
83
|
+
description: Last codepoint in the block (inclusive).
|
|
84
|
+
name:
|
|
85
|
+
type: string
|
|
86
|
+
minLength: 1
|
|
87
|
+
description: Unicode block display name (e.g. "Basic Latin", "Greek and Coptic").
|
|
88
|
+
unicode_version:
|
|
89
|
+
type: string
|
|
90
|
+
pattern: '^\d+\.\d+\.\d+$'
|
|
91
|
+
description: Earliest Unicode version of any codepoint in the block (e.g. "1.1", "17.0.0").
|
|
92
|
+
|
|
93
|
+
type: object
|
|
94
|
+
properties:
|
|
95
|
+
|
|
96
|
+
unicode-blocks.json:
|
|
97
|
+
type: array
|
|
98
|
+
description: Top-level index of all Unicode blocks (~346 entries for Unicode 17).
|
|
99
|
+
items:
|
|
100
|
+
$ref: '#/definitions/block_summary'
|
|
101
|
+
|
|
102
|
+
unicode-version.json:
|
|
103
|
+
type: object
|
|
104
|
+
additionalProperties: false
|
|
105
|
+
required: [version, blockCount, charCount, generatedAt]
|
|
106
|
+
properties:
|
|
107
|
+
version:
|
|
108
|
+
type: string
|
|
109
|
+
pattern: '^\d+\.\d+\.\d+$'
|
|
110
|
+
description: UCD version (e.g. "17.0.0").
|
|
111
|
+
blockCount:
|
|
112
|
+
type: integer
|
|
113
|
+
minimum: 1
|
|
114
|
+
description: Total number of blocks (must match length of unicode-blocks.json).
|
|
115
|
+
charCount:
|
|
116
|
+
type: integer
|
|
117
|
+
minimum: 1
|
|
118
|
+
description: Total assigned codepoints across all blocks.
|
|
119
|
+
generatedAt:
|
|
120
|
+
type: string
|
|
121
|
+
format: date-time
|
|
122
|
+
description: ISO 8601 timestamp of the emitter run.
|
|
123
|
+
|
|
124
|
+
unicode/blocks/<slug>.json:
|
|
125
|
+
type: object
|
|
126
|
+
additionalProperties: false
|
|
127
|
+
required: [chars]
|
|
128
|
+
properties:
|
|
129
|
+
chars:
|
|
130
|
+
type: array
|
|
131
|
+
minItems: 0
|
|
132
|
+
description: Codepoints in this block, ordered by cp ascending.
|
|
133
|
+
items:
|
|
134
|
+
$ref: '#/definitions/codepoint'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ucode
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
@@ -150,11 +150,33 @@ executables:
|
|
|
150
150
|
extensions: []
|
|
151
151
|
extra_rdoc_files: []
|
|
152
152
|
files:
|
|
153
|
+
- CHANGELOG.md
|
|
153
154
|
- CLAUDE.md
|
|
154
155
|
- Gemfile
|
|
155
156
|
- Gemfile.lock
|
|
156
157
|
- README.md
|
|
157
158
|
- Rakefile
|
|
159
|
+
- TODO.full/00-README.md
|
|
160
|
+
- TODO.full/01-panglyph-vision.md
|
|
161
|
+
- TODO.full/02-panglyph-repo-bootstrap.md
|
|
162
|
+
- TODO.full/03-panglyph-font-builder.md
|
|
163
|
+
- TODO.full/04-panglyph-publish-pipeline.md
|
|
164
|
+
- TODO.full/05-ucode-0-1-1-release.md
|
|
165
|
+
- TODO.full/06-fontisan-remove-audit.md
|
|
166
|
+
- TODO.full/07-fontisan-remove-ucd.md
|
|
167
|
+
- TODO.full/08-archive-private-bin-build.md
|
|
168
|
+
- TODO.full/09-archive-public-structure.md
|
|
169
|
+
- TODO.full/10-fontist-org-woff-glyphs.md
|
|
170
|
+
- TODO.full/11-fontist-org-audit-coverage.md
|
|
171
|
+
- TODO.full/12-implementation-order.md
|
|
172
|
+
- TODO.full/13-fontisan-font-writer-api.md
|
|
173
|
+
- TODO.full/14-fontisan-table-writers.md
|
|
174
|
+
- TODO.full/15-panglyph-builder-real.md
|
|
175
|
+
- TODO.full/16-archive-public-sync-workflows.md
|
|
176
|
+
- TODO.full/17-fontist-org-font-picker.md
|
|
177
|
+
- TODO.full/18-comprehensive-spec-coverage.md
|
|
178
|
+
- TODO.full/19-ucode-0-1-2-patch.md
|
|
179
|
+
- TODO.full/20-fontisan-0-2-23-release.md
|
|
158
180
|
- TODO.new/00-README.md
|
|
159
181
|
- TODO.new/01-pillar-terminology-alignment.md
|
|
160
182
|
- TODO.new/02-audit-schema-design.md
|
|
@@ -178,15 +200,65 @@ files:
|
|
|
178
200
|
- TODO.new/20-canonical-resolver-4-tier.md
|
|
179
201
|
- TODO.new/21-canonical-unicode17-build.md
|
|
180
202
|
- TODO.new/22-implementation-order.md
|
|
203
|
+
- TODO.new/23-universal-glyph-set-source-map.md
|
|
204
|
+
- TODO.new/24-universal-glyph-set-build.md
|
|
205
|
+
- TODO.new/25-font-audit-against-universal-set.md
|
|
206
|
+
- TODO.new/26-missing-glyph-reporter.md
|
|
207
|
+
- TODO.new/27-fontist-org-consumer-integration.md
|
|
208
|
+
- TODO.new/28-implementation-order-update.md
|
|
209
|
+
- TODO.new/29-universal-set-curation-uc17.md
|
|
210
|
+
- TODO.new/30-tier1-font-acquisition.md
|
|
211
|
+
- TODO.new/31-universal-set-production-build.md
|
|
212
|
+
- TODO.new/32-uc17-coverage-matrix.md
|
|
213
|
+
- TODO.new/33-specialist-font-acquisition-refresh.md
|
|
214
|
+
- TODO.new/34-pillar2-content-stream-correlator.md
|
|
215
|
+
- TODO.new/35-universal-set-production-run.md
|
|
216
|
+
- TODO.new/36-per-font-coverage-audit.md
|
|
217
|
+
- TODO.new/37-coverage-highlight-reporter.md
|
|
218
|
+
- TODO.new/38-fontist-org-glyph-consumer.md
|
|
219
|
+
- TODO.new/39-implementation-order-update-32-38.md
|
|
220
|
+
- TODO.new/40-archive-private-uses-ucode-audit.md
|
|
221
|
+
- TODO.new/41-ucode-unicode-archive-bridge.md
|
|
181
222
|
- UCODE_CHANGELOG.md
|
|
223
|
+
- config/specialist_fonts.yml
|
|
224
|
+
- config/unicode17_tier1_fonts.yml
|
|
225
|
+
- config/unicode17_universal_glyph_set.yml
|
|
182
226
|
- exe/ucode
|
|
183
227
|
- lib/ucode.rb
|
|
184
228
|
- lib/ucode/aggregator.rb
|
|
185
229
|
- lib/ucode/audit.rb
|
|
186
230
|
- lib/ucode/audit/block_aggregator.rb
|
|
231
|
+
- lib/ucode/audit/browser.rb
|
|
232
|
+
- lib/ucode/audit/browser/face_page.rb
|
|
233
|
+
- lib/ucode/audit/browser/glyph_panel.rb
|
|
234
|
+
- lib/ucode/audit/browser/library_page.rb
|
|
235
|
+
- lib/ucode/audit/browser/missing_glyph_page.rb
|
|
236
|
+
- lib/ucode/audit/browser/template.rb
|
|
237
|
+
- lib/ucode/audit/browser/templates/face.css
|
|
238
|
+
- lib/ucode/audit/browser/templates/face.html.erb
|
|
239
|
+
- lib/ucode/audit/browser/templates/face.js
|
|
240
|
+
- lib/ucode/audit/browser/templates/library.css
|
|
241
|
+
- lib/ucode/audit/browser/templates/library.html.erb
|
|
242
|
+
- lib/ucode/audit/browser/templates/library.js
|
|
243
|
+
- lib/ucode/audit/browser/templates/missing_glyph_page.css
|
|
244
|
+
- lib/ucode/audit/browser/templates/missing_glyph_page.html.erb
|
|
245
|
+
- lib/ucode/audit/browser/templates/missing_glyph_page.js
|
|
187
246
|
- lib/ucode/audit/codepoint_range_coalescer.rb
|
|
188
247
|
- lib/ucode/audit/context.rb
|
|
248
|
+
- lib/ucode/audit/coverage_reference.rb
|
|
249
|
+
- lib/ucode/audit/differ.rb
|
|
189
250
|
- lib/ucode/audit/discrepancy_detector.rb
|
|
251
|
+
- lib/ucode/audit/emitter.rb
|
|
252
|
+
- lib/ucode/audit/emitter/block_emitter.rb
|
|
253
|
+
- lib/ucode/audit/emitter/codepoint_emitter.rb
|
|
254
|
+
- lib/ucode/audit/emitter/collection_emitter.rb
|
|
255
|
+
- lib/ucode/audit/emitter/face_directory.rb
|
|
256
|
+
- lib/ucode/audit/emitter/glyph_emitter.rb
|
|
257
|
+
- lib/ucode/audit/emitter/index_emitter.rb
|
|
258
|
+
- lib/ucode/audit/emitter/library_emitter.rb
|
|
259
|
+
- lib/ucode/audit/emitter/paths.rb
|
|
260
|
+
- lib/ucode/audit/emitter/plane_emitter.rb
|
|
261
|
+
- lib/ucode/audit/emitter/script_emitter.rb
|
|
190
262
|
- lib/ucode/audit/extractors.rb
|
|
191
263
|
- lib/ucode/audit/extractors/aggregations.rb
|
|
192
264
|
- lib/ucode/audit/extractors/base.rb
|
|
@@ -200,20 +272,48 @@ files:
|
|
|
200
272
|
- lib/ucode/audit/extractors/provenance.rb
|
|
201
273
|
- lib/ucode/audit/extractors/style.rb
|
|
202
274
|
- lib/ucode/audit/extractors/variation_detail.rb
|
|
275
|
+
- lib/ucode/audit/face_auditor.rb
|
|
276
|
+
- lib/ucode/audit/formatters.rb
|
|
277
|
+
- lib/ucode/audit/formatters/audit_diff_text.rb
|
|
278
|
+
- lib/ucode/audit/formatters/audit_text.rb
|
|
279
|
+
- lib/ucode/audit/formatters/color.rb
|
|
280
|
+
- lib/ucode/audit/formatters/library_summary_text.rb
|
|
281
|
+
- lib/ucode/audit/formatters/text_formatter.rb
|
|
282
|
+
- lib/ucode/audit/library_aggregator.rb
|
|
283
|
+
- lib/ucode/audit/library_auditor.rb
|
|
203
284
|
- lib/ucode/audit/plane_aggregator.rb
|
|
204
285
|
- lib/ucode/audit/registry.rb
|
|
286
|
+
- lib/ucode/audit/release.rb
|
|
287
|
+
- lib/ucode/audit/release/emitter.rb
|
|
288
|
+
- lib/ucode/audit/release/face_card.rb
|
|
289
|
+
- lib/ucode/audit/release/formula_audits.rb
|
|
290
|
+
- lib/ucode/audit/release/library_index_builder.rb
|
|
291
|
+
- lib/ucode/audit/release/manifest_builder.rb
|
|
205
292
|
- lib/ucode/audit/script_aggregator.rb
|
|
293
|
+
- lib/ucode/audit/ucd_only_reference.rb
|
|
294
|
+
- lib/ucode/audit/universal_set_reference.rb
|
|
206
295
|
- lib/ucode/cache.rb
|
|
207
296
|
- lib/ucode/cli.rb
|
|
208
297
|
- lib/ucode/commands.rb
|
|
298
|
+
- lib/ucode/commands/audit.rb
|
|
299
|
+
- lib/ucode/commands/audit/browser_command.rb
|
|
300
|
+
- lib/ucode/commands/audit/collection_command.rb
|
|
301
|
+
- lib/ucode/commands/audit/compare_command.rb
|
|
302
|
+
- lib/ucode/commands/audit/font_command.rb
|
|
303
|
+
- lib/ucode/commands/audit/library_command.rb
|
|
304
|
+
- lib/ucode/commands/audit/reference_builder.rb
|
|
305
|
+
- lib/ucode/commands/block_feed.rb
|
|
209
306
|
- lib/ucode/commands/build.rb
|
|
210
307
|
- lib/ucode/commands/cache.rb
|
|
308
|
+
- lib/ucode/commands/canonical_build.rb
|
|
211
309
|
- lib/ucode/commands/fetch.rb
|
|
212
310
|
- lib/ucode/commands/font_coverage.rb
|
|
213
311
|
- lib/ucode/commands/glyphs.rb
|
|
214
312
|
- lib/ucode/commands/lookup.rb
|
|
215
313
|
- lib/ucode/commands/parse.rb
|
|
314
|
+
- lib/ucode/commands/release.rb
|
|
216
315
|
- lib/ucode/commands/site.rb
|
|
316
|
+
- lib/ucode/commands/universal_set.rb
|
|
217
317
|
- lib/ucode/config.rb
|
|
218
318
|
- lib/ucode/coordinator.rb
|
|
219
319
|
- lib/ucode/coordinator/indices.rb
|
|
@@ -222,7 +322,10 @@ files:
|
|
|
222
322
|
- lib/ucode/error.rb
|
|
223
323
|
- lib/ucode/fetch.rb
|
|
224
324
|
- lib/ucode/fetch/code_charts.rb
|
|
325
|
+
- lib/ucode/fetch/font_fetcher.rb
|
|
326
|
+
- lib/ucode/fetch/font_fetcher/result.rb
|
|
225
327
|
- lib/ucode/fetch/http.rb
|
|
328
|
+
- lib/ucode/fetch/specialist_font_fetcher.rb
|
|
226
329
|
- lib/ucode/fetch/ucd_zip.rb
|
|
227
330
|
- lib/ucode/fetch/unihan_zip.rb
|
|
228
331
|
- lib/ucode/glyphs.rb
|
|
@@ -256,11 +359,30 @@ files:
|
|
|
256
359
|
- lib/ucode/glyphs/pdftocairo_renderer.rb
|
|
257
360
|
- lib/ucode/glyphs/real_fonts.rb
|
|
258
361
|
- lib/ucode/glyphs/real_fonts/block_coverage.rb
|
|
362
|
+
- lib/ucode/glyphs/real_fonts/cmap_cache.rb
|
|
259
363
|
- lib/ucode/glyphs/real_fonts/coverage_auditor.rb
|
|
260
364
|
- lib/ucode/glyphs/real_fonts/font_coverage_report.rb
|
|
261
365
|
- lib/ucode/glyphs/real_fonts/font_locator.rb
|
|
262
366
|
- lib/ucode/glyphs/real_fonts/unicode_17_blocks.rb
|
|
263
367
|
- lib/ucode/glyphs/real_fonts/writer.rb
|
|
368
|
+
- lib/ucode/glyphs/resolver.rb
|
|
369
|
+
- lib/ucode/glyphs/source.rb
|
|
370
|
+
- lib/ucode/glyphs/source_builder.rb
|
|
371
|
+
- lib/ucode/glyphs/source_config.rb
|
|
372
|
+
- lib/ucode/glyphs/source_config/coverage_assertion.rb
|
|
373
|
+
- lib/ucode/glyphs/source_config/gap_report.rb
|
|
374
|
+
- lib/ucode/glyphs/sources.rb
|
|
375
|
+
- lib/ucode/glyphs/sources/pillar1_embedded_tounicode.rb
|
|
376
|
+
- lib/ucode/glyphs/sources/pillar3_last_resort.rb
|
|
377
|
+
- lib/ucode/glyphs/sources/tier1_real_font.rb
|
|
378
|
+
- lib/ucode/glyphs/universal_set.rb
|
|
379
|
+
- lib/ucode/glyphs/universal_set/builder.rb
|
|
380
|
+
- lib/ucode/glyphs/universal_set/coverage_report.rb
|
|
381
|
+
- lib/ucode/glyphs/universal_set/idempotency.rb
|
|
382
|
+
- lib/ucode/glyphs/universal_set/manifest_accumulator.rb
|
|
383
|
+
- lib/ucode/glyphs/universal_set/manifest_writer.rb
|
|
384
|
+
- lib/ucode/glyphs/universal_set/pre_build_check.rb
|
|
385
|
+
- lib/ucode/glyphs/universal_set/validator.rb
|
|
264
386
|
- lib/ucode/glyphs/writer.rb
|
|
265
387
|
- lib/ucode/index.rb
|
|
266
388
|
- lib/ucode/index_builder.rb
|
|
@@ -272,6 +394,7 @@ files:
|
|
|
272
394
|
- lib/ucode/models/audit/baseline.rb
|
|
273
395
|
- lib/ucode/models/audit/block_summary.rb
|
|
274
396
|
- lib/ucode/models/audit/codepoint_detail.rb
|
|
397
|
+
- lib/ucode/models/audit/codepoint_provenance.rb
|
|
275
398
|
- lib/ucode/models/audit/codepoint_range.rb
|
|
276
399
|
- lib/ucode/models/audit/codepoint_set_diff.rb
|
|
277
400
|
- lib/ucode/models/audit/color_capabilities.rb
|
|
@@ -288,6 +411,10 @@ files:
|
|
|
288
411
|
- lib/ucode/models/audit/named_instance.rb
|
|
289
412
|
- lib/ucode/models/audit/opentype_layout.rb
|
|
290
413
|
- lib/ucode/models/audit/plane_summary.rb
|
|
414
|
+
- lib/ucode/models/audit/release_face.rb
|
|
415
|
+
- lib/ucode/models/audit/release_formula.rb
|
|
416
|
+
- lib/ucode/models/audit/release_manifest.rb
|
|
417
|
+
- lib/ucode/models/audit/release_universal_set.rb
|
|
291
418
|
- lib/ucode/models/audit/script_coverage_row.rb
|
|
292
419
|
- lib/ucode/models/audit/script_features.rb
|
|
293
420
|
- lib/ucode/models/audit/script_summary.rb
|
|
@@ -296,6 +423,7 @@ files:
|
|
|
296
423
|
- lib/ucode/models/bidi_mirroring.rb
|
|
297
424
|
- lib/ucode/models/binary_property_assignment.rb
|
|
298
425
|
- lib/ucode/models/block.rb
|
|
426
|
+
- lib/ucode/models/build_report.rb
|
|
299
427
|
- lib/ucode/models/case_folding_rule.rb
|
|
300
428
|
- lib/ucode/models/cjk_radical.rb
|
|
301
429
|
- lib/ucode/models/codepoint.rb
|
|
@@ -306,12 +434,15 @@ files:
|
|
|
306
434
|
- lib/ucode/models/codepoint/decomposition.rb
|
|
307
435
|
- lib/ucode/models/codepoint/display.rb
|
|
308
436
|
- lib/ucode/models/codepoint/emoji.rb
|
|
437
|
+
- lib/ucode/models/codepoint/glyph.rb
|
|
309
438
|
- lib/ucode/models/codepoint/hangul.rb
|
|
310
439
|
- lib/ucode/models/codepoint/identifier.rb
|
|
311
440
|
- lib/ucode/models/codepoint/indic.rb
|
|
312
441
|
- lib/ucode/models/codepoint/joining.rb
|
|
313
442
|
- lib/ucode/models/codepoint/normalization.rb
|
|
314
443
|
- lib/ucode/models/codepoint/numeric_value.rb
|
|
444
|
+
- lib/ucode/models/glyph_source.rb
|
|
445
|
+
- lib/ucode/models/glyph_source_map.rb
|
|
315
446
|
- lib/ucode/models/name_alias.rb
|
|
316
447
|
- lib/ucode/models/named_sequence.rb
|
|
317
448
|
- lib/ucode/models/names_list_entry.rb
|
|
@@ -327,8 +458,14 @@ files:
|
|
|
327
458
|
- lib/ucode/models/relationship/variation_sequence.rb
|
|
328
459
|
- lib/ucode/models/script.rb
|
|
329
460
|
- lib/ucode/models/special_casing_rule.rb
|
|
461
|
+
- lib/ucode/models/specialist_font.rb
|
|
462
|
+
- lib/ucode/models/specialist_font_manifest.rb
|
|
330
463
|
- lib/ucode/models/standardized_variant.rb
|
|
331
464
|
- lib/ucode/models/unihan_entry.rb
|
|
465
|
+
- lib/ucode/models/unihan_field.rb
|
|
466
|
+
- lib/ucode/models/universal_set_entry.rb
|
|
467
|
+
- lib/ucode/models/universal_set_manifest.rb
|
|
468
|
+
- lib/ucode/models/validation_report.rb
|
|
332
469
|
- lib/ucode/parsers.rb
|
|
333
470
|
- lib/ucode/parsers/auxiliary.rb
|
|
334
471
|
- lib/ucode/parsers/base.rb
|
|
@@ -356,6 +493,10 @@ files:
|
|
|
356
493
|
- lib/ucode/repo.rb
|
|
357
494
|
- lib/ucode/repo/aggregate_writer.rb
|
|
358
495
|
- lib/ucode/repo/atomic_writes.rb
|
|
496
|
+
- lib/ucode/repo/block_feed_emitter.rb
|
|
497
|
+
- lib/ucode/repo/build_report_accumulator.rb
|
|
498
|
+
- lib/ucode/repo/build_report_writer.rb
|
|
499
|
+
- lib/ucode/repo/build_validator.rb
|
|
359
500
|
- lib/ucode/repo/codepoint_writer.rb
|
|
360
501
|
- lib/ucode/repo/paths.rb
|
|
361
502
|
- lib/ucode/site.rb
|
|
@@ -375,7 +516,7 @@ files:
|
|
|
375
516
|
- lib/ucode/site/template/search.md
|
|
376
517
|
- lib/ucode/version.rb
|
|
377
518
|
- lib/ucode/version_resolver.rb
|
|
378
|
-
-
|
|
519
|
+
- schema/block-feed.output.schema.yml
|
|
379
520
|
homepage: https://github.com/fontist/ucode
|
|
380
521
|
licenses:
|
|
381
522
|
- BSD-2-Clause
|
data/ucode.gemspec
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative "lib/ucode/version"
|
|
4
|
-
|
|
5
|
-
Gem::Specification.new do |spec|
|
|
6
|
-
spec.name = "ucode"
|
|
7
|
-
spec.version = Ucode::VERSION
|
|
8
|
-
spec.authors = ["Ribose Inc."]
|
|
9
|
-
spec.email = ["open.source@ribose.com"]
|
|
10
|
-
|
|
11
|
-
spec.summary = "Unicode Character Database toolkit — lookup, dataset, glyphs, site"
|
|
12
|
-
spec.description = <<~DESC
|
|
13
|
-
ucode turns the Unicode Character Database (UCD) text files and the official
|
|
14
|
-
Unicode Code Charts into a structured, browsable dataset. For every assigned
|
|
15
|
-
codepoint it produces a JSON document with full UCD properties, the
|
|
16
|
-
human-curated relationships from NamesList.txt, Unihan readings, and
|
|
17
|
-
machine-computed references; an SVG of the official glyph vector-extracted
|
|
18
|
-
from the Code Charts; and a Vitepress site for browsing Plane, Block,
|
|
19
|
-
and Character.
|
|
20
|
-
DESC
|
|
21
|
-
|
|
22
|
-
spec.homepage = "https://github.com/fontist/ucode"
|
|
23
|
-
spec.license = "BSD-2-Clause"
|
|
24
|
-
spec.required_ruby_version = ">= 3.2.0"
|
|
25
|
-
|
|
26
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
|
27
|
-
spec.metadata["source_code_uri"] = "https://github.com/fontist/ucode"
|
|
28
|
-
spec.metadata["changelog_uri"] = "https://github.com/fontist/ucode/blob/main/CHANGELOG.md"
|
|
29
|
-
spec.metadata["rubygems_mfa_required"] = "true"
|
|
30
|
-
|
|
31
|
-
spec.files = Dir.chdir(__dir__) do
|
|
32
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
|
33
|
-
f == __FILE__ ||
|
|
34
|
-
f.start_with?(".") ||
|
|
35
|
-
f.start_with?("spec/") ||
|
|
36
|
-
f.start_with?("benchmark/") ||
|
|
37
|
-
f.start_with?("TODO.impl/") ||
|
|
38
|
-
f.start_with?("docs/") ||
|
|
39
|
-
f.start_with?("site/")
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
spec.bindir = "exe"
|
|
44
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
|
45
|
-
spec.require_paths = ["lib"]
|
|
46
|
-
|
|
47
|
-
spec.add_dependency "base64"
|
|
48
|
-
spec.add_dependency "fontisan", "~> 0.2"
|
|
49
|
-
spec.add_dependency "fontist", "~> 3.0"
|
|
50
|
-
spec.add_dependency "logger"
|
|
51
|
-
spec.add_dependency "lutaml-model", "~> 0.8"
|
|
52
|
-
spec.add_dependency "nokogiri", "~> 1.16"
|
|
53
|
-
spec.add_dependency "rubyzip", "~> 2.3"
|
|
54
|
-
spec.add_dependency "sqlite3", "~> 2.0"
|
|
55
|
-
spec.add_dependency "thor", "~> 1.3"
|
|
56
|
-
end
|