canon 0.1.6 → 0.1.7
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/.rubocop_todo.yml +163 -67
- data/README.adoc +400 -7
- data/docs/Gemfile +9 -0
- data/docs/INDEX.adoc +99 -182
- data/docs/_config.yml +100 -0
- data/docs/advanced/diff-classification.adoc +547 -0
- data/docs/advanced/diff-pipeline.adoc +358 -0
- data/docs/advanced/index.adoc +214 -0
- data/docs/advanced/semantic-diff-report.adoc +390 -0
- data/docs/{VERBOSE.adoc → advanced/verbose-mode-architecture.adoc} +51 -53
- data/docs/features/diff-formatting/algorithm-specific-output.adoc +533 -0
- data/docs/{CHARACTER_VISUALIZATION.adoc → features/diff-formatting/character-visualization.adoc} +23 -62
- data/docs/features/diff-formatting/colors-and-symbols.adoc +606 -0
- data/docs/features/diff-formatting/context-and-grouping.adoc +490 -0
- data/docs/features/diff-formatting/display-filtering.adoc +472 -0
- data/docs/features/diff-formatting/index.adoc +140 -0
- data/docs/features/environment-configuration/index.adoc +327 -0
- data/docs/features/environment-configuration/override-system.adoc +436 -0
- data/docs/features/environment-configuration/size-limits.adoc +273 -0
- data/docs/features/index.adoc +173 -0
- data/docs/features/input-validation/index.adoc +521 -0
- data/docs/features/match-options/algorithm-specific-behavior.adoc +365 -0
- data/docs/features/match-options/html-policies.adoc +312 -0
- data/docs/features/match-options/index.adoc +621 -0
- data/docs/getting-started/index.adoc +83 -0
- data/docs/getting-started/quick-start.adoc +76 -0
- data/docs/guides/choosing-configuration.adoc +689 -0
- data/docs/guides/index.adoc +181 -0
- data/docs/{CLI.adoc → interfaces/cli/index.adoc} +18 -13
- data/docs/interfaces/index.adoc +101 -0
- data/docs/{RSPEC.adoc → interfaces/rspec/index.adoc} +242 -31
- data/docs/{RUBY_API.adoc → interfaces/ruby-api/index.adoc} +118 -16
- data/docs/lychee.toml +65 -0
- data/docs/reference/cli-options.adoc +418 -0
- data/docs/reference/environment-variables.adoc +375 -0
- data/docs/reference/index.adoc +204 -0
- data/docs/reference/options-across-interfaces.adoc +417 -0
- data/docs/understanding/algorithms/dom-diff.adoc +389 -0
- data/docs/understanding/algorithms/index.adoc +314 -0
- data/docs/understanding/algorithms/semantic-tree-diff.adoc +533 -0
- data/docs/understanding/architecture.adoc +447 -0
- data/docs/understanding/comparison-pipeline.adoc +317 -0
- data/docs/understanding/formats/html.adoc +380 -0
- data/docs/understanding/formats/index.adoc +261 -0
- data/docs/understanding/formats/json.adoc +390 -0
- data/docs/understanding/formats/xml.adoc +366 -0
- data/docs/understanding/formats/yaml.adoc +504 -0
- data/docs/understanding/index.adoc +130 -0
- data/lib/canon/cli.rb +42 -1
- data/lib/canon/commands/diff_command.rb +108 -23
- data/lib/canon/comparison/compare_profile.rb +101 -0
- data/lib/canon/comparison/comparison_result.rb +41 -2
- data/lib/canon/comparison/html_comparator.rb +292 -71
- data/lib/canon/comparison/html_compare_profile.rb +117 -0
- data/lib/canon/comparison/match_options.rb +42 -4
- data/lib/canon/comparison/strategies/base_match_strategy.rb +99 -0
- data/lib/canon/comparison/strategies/match_strategy_factory.rb +74 -0
- data/lib/canon/comparison/strategies/semantic_tree_match_strategy.rb +220 -0
- data/lib/canon/comparison/xml_comparator.rb +695 -91
- data/lib/canon/comparison.rb +207 -2
- data/lib/canon/config/env_provider.rb +71 -0
- data/lib/canon/config/env_schema.rb +58 -0
- data/lib/canon/config/override_resolver.rb +55 -0
- data/lib/canon/config/type_converter.rb +59 -0
- data/lib/canon/config.rb +158 -29
- data/lib/canon/data_model.rb +29 -0
- data/lib/canon/diff/diff_classifier.rb +74 -14
- data/lib/canon/diff/diff_context_builder.rb +41 -0
- data/lib/canon/diff/diff_line.rb +18 -2
- data/lib/canon/diff/diff_node.rb +18 -3
- data/lib/canon/diff/diff_node_mapper.rb +71 -12
- data/lib/canon/diff/formatting_detector.rb +53 -0
- data/lib/canon/diff_formatter/by_line/base_formatter.rb +60 -5
- data/lib/canon/diff_formatter/by_line/html_formatter.rb +68 -16
- data/lib/canon/diff_formatter/by_line/json_formatter.rb +0 -37
- data/lib/canon/diff_formatter/by_line/simple_formatter.rb +0 -42
- data/lib/canon/diff_formatter/by_line/xml_formatter.rb +116 -31
- data/lib/canon/diff_formatter/by_line/yaml_formatter.rb +0 -37
- data/lib/canon/diff_formatter/by_object/base_formatter.rb +126 -19
- data/lib/canon/diff_formatter/by_object/xml_formatter.rb +30 -1
- data/lib/canon/diff_formatter/debug_output.rb +7 -1
- data/lib/canon/diff_formatter/diff_detail_formatter.rb +674 -57
- data/lib/canon/diff_formatter/legend.rb +42 -0
- data/lib/canon/diff_formatter.rb +78 -9
- data/lib/canon/errors.rb +56 -0
- data/lib/canon/formatters/html_formatter_base.rb +35 -1
- data/lib/canon/formatters/json_formatter.rb +3 -0
- data/lib/canon/formatters/yaml_formatter.rb +3 -0
- data/lib/canon/html/data_model.rb +229 -0
- data/lib/canon/html.rb +9 -0
- data/lib/canon/options/cli_generator.rb +70 -0
- data/lib/canon/options/registry.rb +234 -0
- data/lib/canon/rspec_matchers.rb +34 -13
- data/lib/canon/tree_diff/adapters/html_adapter.rb +316 -0
- data/lib/canon/tree_diff/adapters/json_adapter.rb +204 -0
- data/lib/canon/tree_diff/adapters/xml_adapter.rb +285 -0
- data/lib/canon/tree_diff/adapters/yaml_adapter.rb +213 -0
- data/lib/canon/tree_diff/core/attribute_comparator.rb +84 -0
- data/lib/canon/tree_diff/core/matching.rb +241 -0
- data/lib/canon/tree_diff/core/node_signature.rb +164 -0
- data/lib/canon/tree_diff/core/node_weight.rb +135 -0
- data/lib/canon/tree_diff/core/tree_node.rb +450 -0
- data/lib/canon/tree_diff/matchers/hash_matcher.rb +258 -0
- data/lib/canon/tree_diff/matchers/similarity_matcher.rb +168 -0
- data/lib/canon/tree_diff/matchers/structural_propagator.rb +242 -0
- data/lib/canon/tree_diff/matchers/universal_matcher.rb +220 -0
- data/lib/canon/tree_diff/operation_converter.rb +631 -0
- data/lib/canon/tree_diff/operations/operation.rb +92 -0
- data/lib/canon/tree_diff/operations/operation_detector.rb +626 -0
- data/lib/canon/tree_diff/tree_diff_integrator.rb +140 -0
- data/lib/canon/tree_diff.rb +33 -0
- data/lib/canon/validators/json_validator.rb +3 -1
- data/lib/canon/validators/yaml_validator.rb +3 -1
- data/lib/canon/version.rb +1 -1
- data/lib/canon/xml/data_model.rb +22 -23
- data/lib/canon/xml/element_matcher.rb +128 -20
- data/lib/canon/xml/namespace_helper.rb +110 -0
- data/lib/canon.rb +3 -0
- metadata +81 -23
- data/_config.yml +0 -116
- data/docs/ADVANCED_TOPICS.adoc +0 -20
- data/docs/BASIC_USAGE.adoc +0 -16
- data/docs/CUSTOMIZING_BEHAVIOR.adoc +0 -19
- data/docs/DIFF_ARCHITECTURE.adoc +0 -435
- data/docs/DIFF_FORMATTING.adoc +0 -540
- data/docs/FORMATS.adoc +0 -447
- data/docs/INPUT_VALIDATION.adoc +0 -477
- data/docs/MATCH_ARCHITECTURE.adoc +0 -463
- data/docs/MATCH_OPTIONS.adoc +0 -719
- data/docs/MODES.adoc +0 -432
- data/docs/NORMATIVE_INFORMATIVE_DIFFS.adoc +0 -219
- data/docs/OPTIONS.adoc +0 -1387
- data/docs/PREPROCESSING.adoc +0 -491
- data/docs/SEMANTIC_DIFF_REPORT.adoc +0 -528
- data/docs/UNDERSTANDING_CANON.adoc +0 -17
data/docs/INDEX.adoc
CHANGED
|
@@ -1,222 +1,139 @@
|
|
|
1
1
|
---
|
|
2
2
|
layout: default
|
|
3
|
-
title:
|
|
3
|
+
title: Home
|
|
4
4
|
nav_order: 1
|
|
5
|
-
|
|
5
|
+
description: "Canon: Semantic comparison and formatting for serialization formats"
|
|
6
|
+
permalink: /
|
|
6
7
|
---
|
|
7
|
-
=
|
|
8
|
-
:toc:
|
|
8
|
+
= Canon Documentation
|
|
9
|
+
:toc: macro
|
|
9
10
|
:toclevels: 2
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
[.lead]
|
|
13
|
+
Canon provides canonicalization, pretty-printing, and semantic comparison for XML, HTML, JSON, and YAML formats.
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
basic usage to advanced technical topics.
|
|
15
|
+
toc::[]
|
|
15
16
|
|
|
16
|
-
==
|
|
17
|
+
== Welcome
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
Canon helps you:
|
|
19
20
|
|
|
20
|
-
* **
|
|
21
|
-
|
|
21
|
+
* **Format** documents into canonical or human-readable forms
|
|
22
|
+
* **Compare** documents semantically, not just textually
|
|
23
|
+
* **Test** with RSpec matchers that understand structure
|
|
24
|
+
* **Debug** with clear, color-coded diff output
|
|
22
25
|
|
|
23
|
-
==
|
|
26
|
+
== Quick Navigation
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
needs):
|
|
28
|
+
=== By Your Role
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* **link:RSPEC[RSpec matchers]** - Testing with Canon in RSpec
|
|
30
|
+
**Developer**::
|
|
31
|
+
Start with link:interfaces/ruby-api/[Ruby API] to integrate Canon into your applications.
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
**QA Engineer**::
|
|
34
|
+
Start with link:interfaces/rspec/[RSpec Matchers] for testing XML/JSON/YAML generation.
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
**DevOps**::
|
|
37
|
+
Start with link:interfaces/cli/[CLI] for command-line formatting and comparison.
|
|
35
38
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
* **link:MODES[Diff modes]** - By-line vs by-object comparison modes
|
|
39
|
-
* **link:MATCH_ARCHITECTURE[Match architecture]** - Three-phase
|
|
40
|
-
comparison flow
|
|
39
|
+
**Architect**::
|
|
40
|
+
Start with link:understanding/architecture[Architecture] to understand Canon's design.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
=== By Task
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
**Format a document**::
|
|
45
|
+
* link:getting-started/quick-start#formatting[Quick Start: Formatting]
|
|
46
|
+
* link:interfaces/ruby-api/formatting[Ruby API: Formatting]
|
|
47
|
+
* link:interfaces/cli/format-command[CLI: format command]
|
|
45
48
|
|
|
46
|
-
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* **link:CHARACTER_VISUALIZATION[Character visualization]** - Whitespace
|
|
51
|
-
visibility
|
|
49
|
+
**Compare documents**::
|
|
50
|
+
* link:getting-started/quick-start#comparing[Quick Start: Comparing]
|
|
51
|
+
* link:interfaces/ruby-api/comparison[Ruby API: Comparison]
|
|
52
|
+
* link:interfaces/cli/diff-command[CLI: diff command]
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
**Test XML generation**::
|
|
55
|
+
* link:guides/testing-xml-generation[Guide: Testing XML Generation]
|
|
56
|
+
* link:interfaces/rspec/matchers[RSpec Matchers]
|
|
54
57
|
|
|
55
|
-
|
|
58
|
+
**Debug test failures**::
|
|
59
|
+
* link:guides/debugging-test-failures[Guide: Debugging Test Failures]
|
|
60
|
+
* link:features/diff-formatting/character-visualization[Character Visualization]
|
|
56
61
|
|
|
57
|
-
|
|
58
|
-
* **link:SEMANTIC_DIFF_REPORT[Semantic diff report]** - Detailed report
|
|
59
|
-
format
|
|
60
|
-
* **link:NORMATIVE_INFORMATIVE_DIFFS[Normative vs informative diffs]** - Diff
|
|
61
|
-
classification
|
|
62
|
-
* **link:DIFF_ARCHITECTURE[Diff architecture]** - Six-layer technical
|
|
63
|
-
pipeline
|
|
62
|
+
=== By Format
|
|
64
63
|
|
|
65
|
-
|
|
64
|
+
link:understanding/formats/xml[**XML**]::
|
|
65
|
+
W3C Canonical XML 1.1, namespace handling, attribute ordering
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
link:understanding/formats/html[**HTML**]::
|
|
68
|
+
HTML4/5 detection, rendered whitespace handling
|
|
68
69
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
* link:CLI#format-command[CLI: Format command]
|
|
70
|
+
link:understanding/formats/json[**JSON**]::
|
|
71
|
+
Sorted keys, semantic comparison
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
link:understanding/formats/yaml[**YAML**]::
|
|
74
|
+
Sorted keys, alias handling
|
|
74
75
|
|
|
75
|
-
|
|
76
|
-
* link:MATCH_OPTIONS[Match options] - Dimensions and profiles
|
|
77
|
-
* link:PREPROCESSING[Preprocessing] - Document normalization
|
|
78
|
-
* link:RUBY_API#comparison[Ruby API: Comparison]
|
|
79
|
-
* link:CLI#diff-command[CLI: Diff command]
|
|
76
|
+
== Learning Path
|
|
80
77
|
|
|
81
|
-
===
|
|
78
|
+
=== Level 1: Get Started (5 minutes)
|
|
82
79
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
visibility
|
|
87
|
-
* link:VERBOSE[Verbose mode] - Detailed diff output
|
|
88
|
-
* link:SEMANTIC_DIFF_REPORT[Semantic diff report] - Report structure
|
|
80
|
+
. link:getting-started/installation[Install Canon]
|
|
81
|
+
. link:getting-started/quick-start[Try basic examples]
|
|
82
|
+
. link:getting-started/core-concepts[Understand core concepts]
|
|
89
83
|
|
|
90
|
-
===
|
|
84
|
+
=== Level 2: Learn Interfaces (15 minutes)
|
|
91
85
|
|
|
92
|
-
|
|
93
|
-
* link:MATCH_OPTIONS#match-profiles[Match profiles] - Test-friendly
|
|
94
|
-
profiles
|
|
95
|
-
* link:INPUT_VALIDATION[Input validation] - Error handling in tests
|
|
86
|
+
Choose your interface:
|
|
96
87
|
|
|
97
|
-
|
|
88
|
+
* link:interfaces/ruby-api/[Ruby API] - Integrate into applications
|
|
89
|
+
* link:interfaces/cli/[CLI] - Command-line usage
|
|
90
|
+
* link:interfaces/rspec/[RSpec] - Testing integration
|
|
98
91
|
|
|
99
|
-
|
|
100
|
-
* link:DIFF_ARCHITECTURE[Diff architecture] - Six-layer pipeline
|
|
101
|
-
* link:NORMATIVE_INFORMATIVE_DIFFS[Normative vs informative diffs] - Classification
|
|
102
|
-
system
|
|
92
|
+
=== Level 3: Understand Canon (30 minutes)
|
|
103
93
|
|
|
104
|
-
|
|
94
|
+
. link:understanding/architecture[Architecture overview]
|
|
95
|
+
. link:understanding/algorithms/[Comparison algorithms]
|
|
96
|
+
. link:understanding/diff-modes/[Diff output modes]
|
|
105
97
|
|
|
106
|
-
===
|
|
98
|
+
=== Level 4: Master Features (1 hour)
|
|
107
99
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
100
|
+
. link:features/match-options/[Match options and profiles]
|
|
101
|
+
. link:features/canonicalization/[Format-specific canonicalization]
|
|
102
|
+
. link:features/diff-formatting/[Customizing diff output]
|
|
111
103
|
|
|
112
|
-
|
|
113
|
-
* Ruby: link:RUBY_API#comparison[Comparison section]
|
|
114
|
-
* CLI: link:CLI#diff-command[Diff command]
|
|
115
|
-
* RSpec: link:RSPEC#basic-usage[Basic usage]
|
|
104
|
+
=== Level 5: Advanced Topics (As needed)
|
|
116
105
|
|
|
117
|
-
|
|
118
|
-
* link:
|
|
119
|
-
* link:
|
|
106
|
+
* link:advanced/dom-diff-internals[DOM Diff Algorithm Details]
|
|
107
|
+
* link:advanced/semantic-tree-diff-internals[Semantic Tree Diff Details]
|
|
108
|
+
* link:advanced/extending-canon[Extending Canon]
|
|
120
109
|
|
|
121
|
-
|
|
122
|
-
* link:DIFF_FORMATTING[Diff formatting] - Colors, context, grouping
|
|
123
|
-
* link:MODES[Diff modes] - By-line or by-object
|
|
110
|
+
== Popular Topics
|
|
124
111
|
|
|
125
|
-
|
|
126
|
-
* link:
|
|
127
|
-
* link:
|
|
128
|
-
* link:
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
**
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
*
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
When updating Canon documentation, follow these principles:
|
|
154
|
-
|
|
155
|
-
**Heading style**::
|
|
156
|
-
* Use sentence-case for all headings (e.g., "Match architecture", not "Match
|
|
157
|
-
Architecture")
|
|
158
|
-
* Use descriptive, clear headings that indicate content scope
|
|
159
|
-
|
|
160
|
-
**Structure**::
|
|
161
|
-
* Begin with a Scope section explaining what the document covers
|
|
162
|
-
* Include a General section for background and key concepts
|
|
163
|
-
* Organize content into logical sections with clear hierarchy
|
|
164
|
-
* Use "See also" section at the end for cross-references
|
|
165
|
-
|
|
166
|
-
**MECE principle**::
|
|
167
|
-
* **Mutually Exclusive**: Each document covers a distinct topic without
|
|
168
|
-
overlap
|
|
169
|
-
* **Collectively Exhaustive**: All topics covered without gaps
|
|
170
|
-
* Avoid duplicate information across documents
|
|
171
|
-
|
|
172
|
-
**Examples and code**::
|
|
173
|
-
* Wrap examples with `[example]` and `====` delimiters
|
|
174
|
-
* Use `[source,lang]` with `----` delimiters for code blocks
|
|
175
|
-
* Provide clear example titles describing what is shown
|
|
176
|
-
* Include explanation after code examples
|
|
177
|
-
* Use practical, real-world examples when possible
|
|
178
|
-
|
|
179
|
-
**Lists**::
|
|
180
|
-
* Separate lists from surrounding content with blank lines before and after
|
|
181
|
-
* Ordered lists: Use `. ` flush with the line beginning
|
|
182
|
-
* Unordered lists: Use `* ` flush with the line beginning
|
|
183
|
-
* Second-level ordered: Use `.. `
|
|
184
|
-
* Second-level unordered: Use `** `
|
|
185
|
-
* Definition lists: Use `term:: description` format
|
|
186
|
-
|
|
187
|
-
**Line length and formatting**::
|
|
188
|
-
* Wrap lines at 80 characters
|
|
189
|
-
* Exceptions: Cross-references, formulas, and code blocks
|
|
190
|
-
* No "hanging paragraphs" - if needed, create a "General" subsection
|
|
191
|
-
|
|
192
|
-
**Cross-references**::
|
|
193
|
-
* Link to related documents using `link:DOCUMENT[Link text]`
|
|
194
|
-
* Include "See also" section listing related documentation
|
|
195
|
-
* Reference specific sections using anchors where appropriate
|
|
196
|
-
|
|
197
|
-
**File organization**::
|
|
198
|
-
* Each file uses `:toc:` and `:toclevels: 3` for navigation
|
|
199
|
-
* Keep files focused on a single topic
|
|
200
|
-
* Aim for 200-500 lines per document (except comprehensive references)
|
|
201
|
-
|
|
202
|
-
=== Content guidelines
|
|
203
|
-
|
|
204
|
-
**Clarity**::
|
|
205
|
-
* Write in clear, technical prose
|
|
206
|
-
* Define terms when first introduced
|
|
207
|
-
* Use consistent terminology throughout
|
|
208
|
-
|
|
209
|
-
**Completeness**::
|
|
210
|
-
* Provide complete syntax definitions
|
|
211
|
-
* Include "Where," legend explaining syntax elements
|
|
212
|
-
* Show both basic and advanced usage
|
|
213
|
-
|
|
214
|
-
**Accuracy**::
|
|
215
|
-
* Verify all code examples work correctly
|
|
216
|
-
* Ensure cross-references point to existing documents
|
|
217
|
-
* Keep documentation synchronized with code changes
|
|
218
|
-
|
|
219
|
-
**Accessibility**::
|
|
220
|
-
* Write for users with varying expertise levels
|
|
221
|
-
* Progress from simple to complex topics
|
|
222
|
-
* Link to prerequisite knowledge
|
|
112
|
+
* link:reference/options-across-interfaces[Options Across Interfaces] - Same options in CLI, Ruby API, and RSpec
|
|
113
|
+
* link:reference/environment-variables[Environment Variables] - Configure Canon via ENV variables
|
|
114
|
+
* link:features/match-options/profiles[Match Profiles] - Pre-configured comparison strategies
|
|
115
|
+
* link:features/diff-formatting/colors-and-symbols[Color-Coded Diffs] - Understanding diff output
|
|
116
|
+
* link:features/environment-configuration/size-limits[Size Limits] - Preventing hangs on large files
|
|
117
|
+
* link:reference/cli-options[CLI Options Reference] - Complete option listing
|
|
118
|
+
|
|
119
|
+
== Getting Help
|
|
120
|
+
|
|
121
|
+
**Found a bug?**::
|
|
122
|
+
link:https://github.com/lutaml/canon/issues[Report an issue on GitHub]
|
|
123
|
+
|
|
124
|
+
**Have a question?**::
|
|
125
|
+
Check link:reference/glossary[Glossary] or search this documentation
|
|
126
|
+
|
|
127
|
+
**Want to contribute?**::
|
|
128
|
+
See link:contributing[Contributing to Documentation]
|
|
129
|
+
|
|
130
|
+
== What's New
|
|
131
|
+
|
|
132
|
+
=== Version 0.x (Current)
|
|
133
|
+
|
|
134
|
+
* Semantic tree diff algorithm (experimental)
|
|
135
|
+
* Size limits for large files
|
|
136
|
+
* Enhanced character visualization
|
|
137
|
+
* Environment variable configuration
|
|
138
|
+
|
|
139
|
+
See link:https://github.com/lutaml/canon/blob/main/CHANGELOG.md[Full Changelog]
|
data/docs/_config.yml
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Jekyll configuration for Canon documentation
|
|
2
|
+
# Uses Just the Docs theme - https://just-the-docs.com/
|
|
3
|
+
|
|
4
|
+
# Site settings
|
|
5
|
+
title: Canon Documentation
|
|
6
|
+
description: Semantic comparison and formatting for serialization formats (XML, HTML, JSON, YAML)
|
|
7
|
+
url: https://www.lutaml.org
|
|
8
|
+
baseurl: /canon
|
|
9
|
+
|
|
10
|
+
# Repository
|
|
11
|
+
repository: lutaml/canon
|
|
12
|
+
|
|
13
|
+
# Theme
|
|
14
|
+
theme: just-the-docs
|
|
15
|
+
color_scheme: light
|
|
16
|
+
|
|
17
|
+
# AsciiDoc support
|
|
18
|
+
asciidoc: {}
|
|
19
|
+
asciidoctor:
|
|
20
|
+
attributes:
|
|
21
|
+
idprefix: ''
|
|
22
|
+
idseparator: '-'
|
|
23
|
+
source-highlighter: rouge
|
|
24
|
+
icons: font
|
|
25
|
+
experimental: true
|
|
26
|
+
sectanchors: true
|
|
27
|
+
linkattrs: true
|
|
28
|
+
sectnums: true
|
|
29
|
+
toc: left
|
|
30
|
+
toclevels: 3
|
|
31
|
+
|
|
32
|
+
# Search configuration
|
|
33
|
+
search_enabled: true
|
|
34
|
+
search:
|
|
35
|
+
heading_level: 3
|
|
36
|
+
previews: 3
|
|
37
|
+
preview_words_before: 5
|
|
38
|
+
preview_words_after: 10
|
|
39
|
+
tokenizer_separator: /[\s/]+/
|
|
40
|
+
rel_url: true
|
|
41
|
+
button: true
|
|
42
|
+
|
|
43
|
+
# Navigation
|
|
44
|
+
nav_sort: case_insensitive
|
|
45
|
+
nav_fold: true
|
|
46
|
+
|
|
47
|
+
# External links
|
|
48
|
+
aux_links:
|
|
49
|
+
"Source":
|
|
50
|
+
- "https://github.com/lutaml/canon"
|
|
51
|
+
"Report Issues":
|
|
52
|
+
- "https://github.com/lutaml/canon/issues"
|
|
53
|
+
|
|
54
|
+
aux_links_new_tab: true
|
|
55
|
+
|
|
56
|
+
# Back to top
|
|
57
|
+
back_to_top: true
|
|
58
|
+
back_to_top_text: "Back to top"
|
|
59
|
+
|
|
60
|
+
# Heading anchors
|
|
61
|
+
heading_anchors: true
|
|
62
|
+
|
|
63
|
+
# Footer
|
|
64
|
+
footer_content: 'Copyright © 2025 Ribose. Distributed under the <a href="https://github.com/lutaml/canon/blob/main/LICENSE.txt">BSD 2-Clause License</a>.'
|
|
65
|
+
|
|
66
|
+
# Plugins
|
|
67
|
+
plugins:
|
|
68
|
+
- jekyll-asciidoc
|
|
69
|
+
- jekyll-seo-tag
|
|
70
|
+
|
|
71
|
+
# Markdown settings (for any markdown files)
|
|
72
|
+
markdown: kramdown
|
|
73
|
+
kramdown:
|
|
74
|
+
input: GFM
|
|
75
|
+
hard_wrap: false
|
|
76
|
+
syntax_highlighter: rouge
|
|
77
|
+
|
|
78
|
+
# Defaults
|
|
79
|
+
defaults:
|
|
80
|
+
- scope:
|
|
81
|
+
path: ""
|
|
82
|
+
type: pages
|
|
83
|
+
values:
|
|
84
|
+
layout: default
|
|
85
|
+
|
|
86
|
+
# Exclude from processing
|
|
87
|
+
exclude:
|
|
88
|
+
- Gemfile
|
|
89
|
+
- Gemfile.lock
|
|
90
|
+
- node_modules
|
|
91
|
+
- vendor
|
|
92
|
+
- .sass-cache
|
|
93
|
+
- .jekyll-cache
|
|
94
|
+
- .bundle
|
|
95
|
+
- README.md
|
|
96
|
+
- LICENSE
|
|
97
|
+
- .git
|
|
98
|
+
- .gitignore
|
|
99
|
+
|
|
100
|
+
permalink: pretty
|