prosereflect 0.1.1 → 0.3.0
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/.github/workflows/docs.yml +63 -0
- data/.github/workflows/links.yml +97 -0
- data/.github/workflows/rake.yml +4 -0
- data/.github/workflows/release.yml +5 -0
- data/.gitignore +4 -0
- data/.rubocop.yml +19 -1
- data/.rubocop_todo.yml +119 -183
- data/CLAUDE.md +78 -0
- data/Gemfile +8 -4
- data/README.adoc +2 -0
- data/Rakefile +3 -3
- data/docs/Gemfile +10 -0
- data/docs/INDEX.adoc +45 -0
- data/docs/_advanced/index.adoc +15 -0
- data/docs/_advanced/schema.adoc +112 -0
- data/docs/_advanced/step-map.adoc +66 -0
- data/docs/_advanced/steps.adoc +88 -0
- data/docs/_advanced/test-builder.adoc +61 -0
- data/docs/_advanced/transform.adoc +92 -0
- data/docs/_config.yml +174 -0
- data/docs/_features/html-input.adoc +69 -0
- data/docs/_features/html-output.adoc +45 -0
- data/docs/_features/index.adoc +15 -0
- data/docs/_features/marks.adoc +86 -0
- data/docs/_features/node-types.adoc +124 -0
- data/docs/_features/user-mentions.adoc +47 -0
- data/docs/_guides/custom-nodes.adoc +107 -0
- data/docs/_guides/index.adoc +13 -0
- data/docs/_guides/round-trip-html.adoc +91 -0
- data/docs/_guides/serialization.adoc +109 -0
- data/docs/_pages/index.adoc +67 -0
- data/docs/_reference/document-api.adoc +49 -0
- data/docs/_reference/index.adoc +14 -0
- data/docs/_reference/node-api.adoc +79 -0
- data/docs/_reference/schema-api.adoc +95 -0
- data/docs/_reference/transform-api.adoc +77 -0
- data/docs/_understanding/document-model.adoc +65 -0
- data/docs/_understanding/fragment.adoc +52 -0
- data/docs/_understanding/index.adoc +14 -0
- data/docs/_understanding/resolved-position.adoc +53 -0
- data/docs/_understanding/slice.adoc +54 -0
- data/docs/lychee.toml +63 -0
- data/lib/prosereflect/attribute/base.rb +4 -6
- data/lib/prosereflect/attribute/bold.rb +2 -4
- data/lib/prosereflect/attribute/href.rb +1 -3
- data/lib/prosereflect/attribute/id.rb +7 -7
- data/lib/prosereflect/attribute.rb +4 -7
- data/lib/prosereflect/blockquote.rb +19 -11
- data/lib/prosereflect/bullet_list.rb +36 -29
- data/lib/prosereflect/code_block.rb +23 -27
- data/lib/prosereflect/code_block_wrapper.rb +12 -13
- data/lib/prosereflect/document.rb +14 -22
- data/lib/prosereflect/fragment.rb +249 -0
- data/lib/prosereflect/hard_break.rb +6 -6
- data/lib/prosereflect/heading.rb +14 -15
- data/lib/prosereflect/horizontal_rule.rb +23 -14
- data/lib/prosereflect/image.rb +32 -23
- data/lib/prosereflect/input/html.rb +179 -104
- data/lib/prosereflect/input.rb +7 -0
- data/lib/prosereflect/list_item.rb +11 -12
- data/lib/prosereflect/mark/base.rb +9 -11
- data/lib/prosereflect/mark/bold.rb +1 -3
- data/lib/prosereflect/mark/code.rb +1 -3
- data/lib/prosereflect/mark/italic.rb +1 -3
- data/lib/prosereflect/mark/link.rb +1 -3
- data/lib/prosereflect/mark/strike.rb +1 -3
- data/lib/prosereflect/mark/subscript.rb +1 -3
- data/lib/prosereflect/mark/superscript.rb +1 -3
- data/lib/prosereflect/mark/underline.rb +1 -3
- data/lib/prosereflect/mark.rb +9 -5
- data/lib/prosereflect/node.rb +171 -33
- data/lib/prosereflect/ordered_list.rb +17 -14
- data/lib/prosereflect/output/html.rb +279 -50
- data/lib/prosereflect/output.rb +7 -0
- data/lib/prosereflect/paragraph.rb +11 -13
- data/lib/prosereflect/parser.rb +56 -66
- data/lib/prosereflect/resolved_pos.rb +256 -0
- data/lib/prosereflect/schema/attribute.rb +57 -0
- data/lib/prosereflect/schema/content_match.rb +656 -0
- data/lib/prosereflect/schema/fragment.rb +166 -0
- data/lib/prosereflect/schema/mark.rb +121 -0
- data/lib/prosereflect/schema/mark_type.rb +130 -0
- data/lib/prosereflect/schema/node.rb +236 -0
- data/lib/prosereflect/schema/node_type.rb +274 -0
- data/lib/prosereflect/schema/schema_main.rb +190 -0
- data/lib/prosereflect/schema/spec.rb +92 -0
- data/lib/prosereflect/schema.rb +39 -0
- data/lib/prosereflect/table.rb +12 -13
- data/lib/prosereflect/table_cell.rb +13 -13
- data/lib/prosereflect/table_header.rb +17 -17
- data/lib/prosereflect/table_row.rb +12 -12
- data/lib/prosereflect/text.rb +35 -11
- data/lib/prosereflect/transform/attr_step.rb +157 -0
- data/lib/prosereflect/transform/insert_step.rb +115 -0
- data/lib/prosereflect/transform/mapping.rb +82 -0
- data/lib/prosereflect/transform/mark_step.rb +269 -0
- data/lib/prosereflect/transform/replace_around_step.rb +181 -0
- data/lib/prosereflect/transform/replace_step.rb +157 -0
- data/lib/prosereflect/transform/slice.rb +91 -0
- data/lib/prosereflect/transform/step.rb +89 -0
- data/lib/prosereflect/transform/step_map.rb +126 -0
- data/lib/prosereflect/transform/structure.rb +120 -0
- data/lib/prosereflect/transform/transform.rb +341 -0
- data/lib/prosereflect/transform.rb +26 -0
- data/lib/prosereflect/user.rb +15 -15
- data/lib/prosereflect/version.rb +1 -1
- data/lib/prosereflect.rb +30 -17
- data/prosereflect.gemspec +17 -16
- data/spec/fixtures/documents/formatted_text.yaml +14 -0
- data/spec/fixtures/documents/heading_paragraph.yaml +16 -0
- data/spec/fixtures/documents/lists_doc.yaml +32 -0
- data/spec/fixtures/documents/mixed_content.yaml +40 -0
- data/spec/fixtures/documents/nested_doc.yaml +20 -0
- data/spec/fixtures/documents/simple_doc.yaml +6 -0
- data/spec/fixtures/documents/table_doc.yaml +32 -0
- data/spec/fixtures/documents/transform_test.yaml +14 -0
- data/spec/fixtures/schema/custom_schema.rb +37 -0
- data/spec/fixtures/schema/test_schema.rb +46 -0
- data/spec/fixtures/test_builder/helpers.rb +212 -0
- data/spec/prosereflect/document_spec.rb +332 -330
- data/spec/prosereflect/fragment_spec.rb +273 -0
- data/spec/prosereflect/hard_break_spec.rb +125 -125
- data/spec/prosereflect/input/html_spec.rb +718 -522
- data/spec/prosereflect/node_spec.rb +311 -182
- data/spec/prosereflect/output/html_spec.rb +105 -105
- data/spec/prosereflect/output/whitespace_spec.rb +248 -0
- data/spec/prosereflect/paragraph_spec.rb +275 -274
- data/spec/prosereflect/parser/round_trip_spec.rb +472 -0
- data/spec/prosereflect/parser_spec.rb +185 -180
- data/spec/prosereflect/resolved_pos_spec.rb +74 -0
- data/spec/prosereflect/schema/conftest.rb +68 -0
- data/spec/prosereflect/schema/content_match_spec.rb +237 -0
- data/spec/prosereflect/schema/mark_spec.rb +274 -0
- data/spec/prosereflect/schema/mark_type_spec.rb +86 -0
- data/spec/prosereflect/schema/node_type_spec.rb +142 -0
- data/spec/prosereflect/schema/schema_spec.rb +194 -0
- data/spec/prosereflect/table_cell_spec.rb +183 -183
- data/spec/prosereflect/table_row_spec.rb +149 -149
- data/spec/prosereflect/table_spec.rb +320 -318
- data/spec/prosereflect/test_builder/marks_spec.rb +127 -0
- data/spec/prosereflect/text_spec.rb +133 -132
- data/spec/prosereflect/transform/equivalence_spec.rb +487 -0
- data/spec/prosereflect/transform/mapping_spec.rb +226 -0
- data/spec/prosereflect/transform/replace_spec.rb +832 -0
- data/spec/prosereflect/transform/replace_step_spec.rb +157 -0
- data/spec/prosereflect/transform/slice_spec.rb +48 -0
- data/spec/prosereflect/transform/step_map_spec.rb +70 -0
- data/spec/prosereflect/transform/step_spec.rb +211 -0
- data/spec/prosereflect/transform/structure_spec.rb +98 -0
- data/spec/prosereflect/transform/transform_spec.rb +238 -0
- data/spec/prosereflect/user_spec.rb +31 -28
- data/spec/prosereflect_spec.rb +28 -26
- data/spec/spec_helper.rb +7 -6
- data/spec/support/matchers.rb +6 -6
- data/spec/support/shared_examples.rb +49 -49
- metadata +96 -5
- data/spec/prosereflect/version_spec.rb +0 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
RSpec.shared_examples
|
|
3
|
+
RSpec.shared_examples "a parsable format" do |format|
|
|
4
4
|
it "parses #{format} content correctly" do
|
|
5
5
|
document = case format
|
|
6
6
|
when :yaml
|
|
@@ -43,11 +43,11 @@ RSpec.shared_examples 'a parsable format' do |format|
|
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
RSpec.shared_examples
|
|
47
|
-
it
|
|
46
|
+
RSpec.shared_examples "a document with tables" do
|
|
47
|
+
it "contains at least one table" do
|
|
48
48
|
document = case file_content
|
|
49
49
|
when String
|
|
50
|
-
if file_content.strip.start_with?(
|
|
50
|
+
if file_content.strip.start_with?("{")
|
|
51
51
|
Prosereflect::Parser.parse_document(JSON.parse(file_content))
|
|
52
52
|
else
|
|
53
53
|
Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
|
|
@@ -59,10 +59,10 @@ RSpec.shared_examples 'a document with tables' do
|
|
|
59
59
|
expect(document.tables.size).to be > 0
|
|
60
60
|
end
|
|
61
61
|
|
|
62
|
-
it
|
|
62
|
+
it "has tables with rows and cells" do
|
|
63
63
|
document = case file_content
|
|
64
64
|
when String
|
|
65
|
-
if file_content.strip.start_with?(
|
|
65
|
+
if file_content.strip.start_with?("{")
|
|
66
66
|
Prosereflect::Parser.parse_document(JSON.parse(file_content))
|
|
67
67
|
else
|
|
68
68
|
Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
|
|
@@ -77,11 +77,11 @@ RSpec.shared_examples 'a document with tables' do
|
|
|
77
77
|
end
|
|
78
78
|
end
|
|
79
79
|
|
|
80
|
-
RSpec.shared_examples
|
|
81
|
-
it
|
|
80
|
+
RSpec.shared_examples "document traversal" do
|
|
81
|
+
it "can find nodes by type" do
|
|
82
82
|
document = case file_content
|
|
83
83
|
when String
|
|
84
|
-
if file_content.strip.start_with?(
|
|
84
|
+
if file_content.strip.start_with?("{")
|
|
85
85
|
Prosereflect::Parser.parse_document(JSON.parse(file_content))
|
|
86
86
|
else
|
|
87
87
|
Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
|
|
@@ -90,17 +90,17 @@ RSpec.shared_examples 'document traversal' do
|
|
|
90
90
|
Prosereflect::Parser.parse_document(file_content)
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
expect(document.find_all(
|
|
94
|
-
expect(document.find_all(
|
|
95
|
-
expect(document.find_all(
|
|
93
|
+
expect(document.find_all("table").size).to be > 0
|
|
94
|
+
expect(document.find_all("paragraph").size).to be >= 0
|
|
95
|
+
expect(document.find_all("text").size).to be > 0
|
|
96
96
|
end
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
-
RSpec.shared_examples
|
|
100
|
-
it
|
|
99
|
+
RSpec.shared_examples "text content extraction" do
|
|
100
|
+
it "extracts text content from nodes" do
|
|
101
101
|
document = case file_content
|
|
102
102
|
when String
|
|
103
|
-
if file_content.strip.start_with?(
|
|
103
|
+
if file_content.strip.start_with?("{")
|
|
104
104
|
Prosereflect::Parser.parse_document(JSON.parse(file_content))
|
|
105
105
|
else
|
|
106
106
|
Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
|
|
@@ -110,39 +110,39 @@ RSpec.shared_examples 'text content extraction' do
|
|
|
110
110
|
end
|
|
111
111
|
|
|
112
112
|
# Get text from the first paragraph or table cell that contains text
|
|
113
|
-
text_container = document.find_first(
|
|
113
|
+
text_container = document.find_first("paragraph") || document.find_first("table_cell")
|
|
114
114
|
|
|
115
115
|
if text_container
|
|
116
116
|
expect(text_container.text_content).to be_a(String)
|
|
117
|
-
expect(text_container.text_content).not_to be_empty if text_container.find_first(
|
|
117
|
+
expect(text_container.text_content).not_to be_empty if text_container.find_first("text")
|
|
118
118
|
end
|
|
119
119
|
end
|
|
120
120
|
end
|
|
121
121
|
|
|
122
|
-
RSpec.shared_examples
|
|
123
|
-
it
|
|
122
|
+
RSpec.shared_examples "document creation" do
|
|
123
|
+
it "creates an empty document" do
|
|
124
124
|
document = Prosereflect::Document.create
|
|
125
125
|
expect(document).to be_a(Prosereflect::Document)
|
|
126
|
-
expect(document.type).to eq(
|
|
126
|
+
expect(document.type).to eq("doc")
|
|
127
127
|
expect(document.content).to eq([])
|
|
128
128
|
end
|
|
129
129
|
|
|
130
|
-
it
|
|
131
|
-
attrs = {
|
|
130
|
+
it "creates a document with attributes" do
|
|
131
|
+
attrs = { "version" => "1.0" }
|
|
132
132
|
document = Prosereflect::Document.new(attrs: attrs)
|
|
133
133
|
expect(document.attrs).to eq(attrs)
|
|
134
134
|
end
|
|
135
135
|
|
|
136
|
-
it
|
|
136
|
+
it "adds paragraphs to a document" do
|
|
137
137
|
document = Prosereflect::Document.create
|
|
138
|
-
paragraph = document.add_paragraph(
|
|
138
|
+
paragraph = document.add_paragraph("Test paragraph")
|
|
139
139
|
|
|
140
140
|
expect(document.content.size).to eq(1)
|
|
141
141
|
expect(paragraph).to be_a(Prosereflect::Paragraph)
|
|
142
|
-
expect(paragraph.text_content).to eq(
|
|
142
|
+
expect(paragraph.text_content).to eq("Test paragraph")
|
|
143
143
|
end
|
|
144
144
|
|
|
145
|
-
it
|
|
145
|
+
it "adds tables to a document" do
|
|
146
146
|
document = Prosereflect::Document.create
|
|
147
147
|
table = document.add_table
|
|
148
148
|
|
|
@@ -152,11 +152,11 @@ RSpec.shared_examples 'document creation' do
|
|
|
152
152
|
end
|
|
153
153
|
|
|
154
154
|
# Helper for parsing any format of content
|
|
155
|
-
RSpec.
|
|
155
|
+
RSpec.shared_context "format parsing" do
|
|
156
156
|
let(:document) do
|
|
157
157
|
case file_content
|
|
158
158
|
when String
|
|
159
|
-
if file_content.strip.start_with?(
|
|
159
|
+
if file_content.strip.start_with?("{")
|
|
160
160
|
Prosereflect::Parser.parse_document(JSON.parse(file_content))
|
|
161
161
|
else
|
|
162
162
|
Prosereflect::Parser.parse_document(YAML.safe_load(file_content))
|
|
@@ -167,25 +167,25 @@ RSpec.shared_examples 'format parsing' do
|
|
|
167
167
|
end
|
|
168
168
|
end
|
|
169
169
|
|
|
170
|
-
RSpec.shared_examples
|
|
170
|
+
RSpec.shared_examples "format round-trip" do |format|
|
|
171
171
|
it "maintains document structure after #{format} round-trip" do
|
|
172
172
|
# Create a rich document
|
|
173
173
|
document = Prosereflect::Document.create
|
|
174
174
|
|
|
175
175
|
# Add paragraph with formatted text
|
|
176
|
-
para = document.add_paragraph(
|
|
177
|
-
para.add_text(
|
|
176
|
+
para = document.add_paragraph("Plain text")
|
|
177
|
+
para.add_text(" bold text", [{ "type" => "bold" }])
|
|
178
178
|
para.add_hard_break
|
|
179
|
-
para.add_text(
|
|
179
|
+
para.add_text("After line break", [{ "type" => "italic" }])
|
|
180
180
|
|
|
181
181
|
# Add a table
|
|
182
182
|
table = document.add_table
|
|
183
|
-
table.add_header([
|
|
183
|
+
table.add_header(["Header 1", "Header 2", "Header 3"])
|
|
184
184
|
table.add_row(%w[R1C1 R1C2 R1C3])
|
|
185
185
|
table.add_row(%w[R2C1 R2C2 R2C3])
|
|
186
186
|
|
|
187
187
|
# Add another paragraph
|
|
188
|
-
document.add_paragraph(
|
|
188
|
+
document.add_paragraph("Concluding paragraph")
|
|
189
189
|
|
|
190
190
|
# Convert to specified format and back
|
|
191
191
|
parsed_doc = round_trip_conversion(document, format)
|
|
@@ -193,12 +193,12 @@ RSpec.shared_examples 'format round-trip' do |format|
|
|
|
193
193
|
# Verify structure is maintained
|
|
194
194
|
expect(parsed_doc.paragraphs.size).to eq(document.paragraphs.size)
|
|
195
195
|
expect(parsed_doc.tables.size).to eq(document.tables.size)
|
|
196
|
-
expect(parsed_doc.find_all(
|
|
196
|
+
expect(parsed_doc.find_all("hard_break").size).to eq(document.find_all("hard_break").size)
|
|
197
197
|
|
|
198
198
|
# Verify table structure
|
|
199
|
-
table_in_parsed = parsed_doc.find_first(
|
|
200
|
-
expect(table_in_parsed.rows.size).to eq(document.find_first(
|
|
201
|
-
expect(table_in_parsed.header_row.cells.size).to eq(document.find_first(
|
|
199
|
+
table_in_parsed = parsed_doc.find_first("table")
|
|
200
|
+
expect(table_in_parsed.rows.size).to eq(document.find_first("table").rows.size)
|
|
201
|
+
expect(table_in_parsed.header_row.cells.size).to eq(document.find_first("table").header_row.cells.size)
|
|
202
202
|
end
|
|
203
203
|
|
|
204
204
|
def round_trip_conversion(doc, format)
|
|
@@ -214,21 +214,21 @@ RSpec.shared_examples 'format round-trip' do |format|
|
|
|
214
214
|
end
|
|
215
215
|
end
|
|
216
216
|
|
|
217
|
-
RSpec.shared_examples
|
|
218
|
-
it
|
|
217
|
+
RSpec.shared_examples "html conversion" do
|
|
218
|
+
it "converts to HTML and back" do
|
|
219
219
|
# Create a document with various elements
|
|
220
220
|
document = Prosereflect::Document.create
|
|
221
221
|
|
|
222
222
|
# Add paragraph with formatted text
|
|
223
|
-
para = document.add_paragraph(
|
|
224
|
-
para.add_text(
|
|
223
|
+
para = document.add_paragraph("Plain text")
|
|
224
|
+
para.add_text(" bold text", [Prosereflect::Mark::Bold.new])
|
|
225
225
|
para.add_hard_break
|
|
226
|
-
para.add_text(
|
|
226
|
+
para.add_text("After line break", [Prosereflect::Mark::Italic.new])
|
|
227
227
|
|
|
228
228
|
# Add a table
|
|
229
229
|
table = document.add_table
|
|
230
|
-
table.add_header([
|
|
231
|
-
table.add_row([
|
|
230
|
+
table.add_header(["Header 1", "Header 2"])
|
|
231
|
+
table.add_row(["Cell 1", "Cell 2"])
|
|
232
232
|
|
|
233
233
|
# Convert to HTML
|
|
234
234
|
html = Prosereflect::Output::Html.convert(document)
|
|
@@ -241,9 +241,9 @@ RSpec.shared_examples 'html conversion' do
|
|
|
241
241
|
|
|
242
242
|
# Check content was preserved
|
|
243
243
|
expect(parsed_doc.content.size).to be > 0
|
|
244
|
-
expect(parsed_doc.text_content).to include(
|
|
245
|
-
expect(parsed_doc.text_content).to include(
|
|
246
|
-
expect(parsed_doc.text_content).to include(
|
|
247
|
-
expect(parsed_doc.find_all(
|
|
244
|
+
expect(parsed_doc.text_content).to include("Plain text")
|
|
245
|
+
expect(parsed_doc.text_content).to include("bold text")
|
|
246
|
+
expect(parsed_doc.text_content).to include("After line break")
|
|
247
|
+
expect(parsed_doc.find_all("table").size).to eq(1)
|
|
248
248
|
end
|
|
249
249
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: prosereflect
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-04-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: lutaml-model
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.
|
|
19
|
+
version: '0.8'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0.
|
|
26
|
+
version: '0.8'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: nokogiri
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -45,15 +45,49 @@ executables: []
|
|
|
45
45
|
extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
|
47
47
|
files:
|
|
48
|
+
- ".github/workflows/docs.yml"
|
|
49
|
+
- ".github/workflows/links.yml"
|
|
48
50
|
- ".github/workflows/rake.yml"
|
|
49
51
|
- ".github/workflows/release.yml"
|
|
50
52
|
- ".gitignore"
|
|
51
53
|
- ".rubocop.yml"
|
|
52
54
|
- ".rubocop_todo.yml"
|
|
55
|
+
- CLAUDE.md
|
|
53
56
|
- CODE_OF_CONDUCT.md
|
|
54
57
|
- Gemfile
|
|
55
58
|
- README.adoc
|
|
56
59
|
- Rakefile
|
|
60
|
+
- docs/Gemfile
|
|
61
|
+
- docs/INDEX.adoc
|
|
62
|
+
- docs/_advanced/index.adoc
|
|
63
|
+
- docs/_advanced/schema.adoc
|
|
64
|
+
- docs/_advanced/step-map.adoc
|
|
65
|
+
- docs/_advanced/steps.adoc
|
|
66
|
+
- docs/_advanced/test-builder.adoc
|
|
67
|
+
- docs/_advanced/transform.adoc
|
|
68
|
+
- docs/_config.yml
|
|
69
|
+
- docs/_features/html-input.adoc
|
|
70
|
+
- docs/_features/html-output.adoc
|
|
71
|
+
- docs/_features/index.adoc
|
|
72
|
+
- docs/_features/marks.adoc
|
|
73
|
+
- docs/_features/node-types.adoc
|
|
74
|
+
- docs/_features/user-mentions.adoc
|
|
75
|
+
- docs/_guides/custom-nodes.adoc
|
|
76
|
+
- docs/_guides/index.adoc
|
|
77
|
+
- docs/_guides/round-trip-html.adoc
|
|
78
|
+
- docs/_guides/serialization.adoc
|
|
79
|
+
- docs/_pages/index.adoc
|
|
80
|
+
- docs/_reference/document-api.adoc
|
|
81
|
+
- docs/_reference/index.adoc
|
|
82
|
+
- docs/_reference/node-api.adoc
|
|
83
|
+
- docs/_reference/schema-api.adoc
|
|
84
|
+
- docs/_reference/transform-api.adoc
|
|
85
|
+
- docs/_understanding/document-model.adoc
|
|
86
|
+
- docs/_understanding/fragment.adoc
|
|
87
|
+
- docs/_understanding/index.adoc
|
|
88
|
+
- docs/_understanding/resolved-position.adoc
|
|
89
|
+
- docs/_understanding/slice.adoc
|
|
90
|
+
- docs/lychee.toml
|
|
57
91
|
- lib/prosereflect.rb
|
|
58
92
|
- lib/prosereflect/attribute.rb
|
|
59
93
|
- lib/prosereflect/attribute/base.rb
|
|
@@ -65,10 +99,12 @@ files:
|
|
|
65
99
|
- lib/prosereflect/code_block.rb
|
|
66
100
|
- lib/prosereflect/code_block_wrapper.rb
|
|
67
101
|
- lib/prosereflect/document.rb
|
|
102
|
+
- lib/prosereflect/fragment.rb
|
|
68
103
|
- lib/prosereflect/hard_break.rb
|
|
69
104
|
- lib/prosereflect/heading.rb
|
|
70
105
|
- lib/prosereflect/horizontal_rule.rb
|
|
71
106
|
- lib/prosereflect/image.rb
|
|
107
|
+
- lib/prosereflect/input.rb
|
|
72
108
|
- lib/prosereflect/input/html.rb
|
|
73
109
|
- lib/prosereflect/list_item.rb
|
|
74
110
|
- lib/prosereflect/mark.rb
|
|
@@ -83,18 +119,50 @@ files:
|
|
|
83
119
|
- lib/prosereflect/mark/underline.rb
|
|
84
120
|
- lib/prosereflect/node.rb
|
|
85
121
|
- lib/prosereflect/ordered_list.rb
|
|
122
|
+
- lib/prosereflect/output.rb
|
|
86
123
|
- lib/prosereflect/output/html.rb
|
|
87
124
|
- lib/prosereflect/paragraph.rb
|
|
88
125
|
- lib/prosereflect/parser.rb
|
|
126
|
+
- lib/prosereflect/resolved_pos.rb
|
|
127
|
+
- lib/prosereflect/schema.rb
|
|
128
|
+
- lib/prosereflect/schema/attribute.rb
|
|
129
|
+
- lib/prosereflect/schema/content_match.rb
|
|
130
|
+
- lib/prosereflect/schema/fragment.rb
|
|
131
|
+
- lib/prosereflect/schema/mark.rb
|
|
132
|
+
- lib/prosereflect/schema/mark_type.rb
|
|
133
|
+
- lib/prosereflect/schema/node.rb
|
|
134
|
+
- lib/prosereflect/schema/node_type.rb
|
|
135
|
+
- lib/prosereflect/schema/schema_main.rb
|
|
136
|
+
- lib/prosereflect/schema/spec.rb
|
|
89
137
|
- lib/prosereflect/table.rb
|
|
90
138
|
- lib/prosereflect/table_cell.rb
|
|
91
139
|
- lib/prosereflect/table_header.rb
|
|
92
140
|
- lib/prosereflect/table_row.rb
|
|
93
141
|
- lib/prosereflect/text.rb
|
|
142
|
+
- lib/prosereflect/transform.rb
|
|
143
|
+
- lib/prosereflect/transform/attr_step.rb
|
|
144
|
+
- lib/prosereflect/transform/insert_step.rb
|
|
145
|
+
- lib/prosereflect/transform/mapping.rb
|
|
146
|
+
- lib/prosereflect/transform/mark_step.rb
|
|
147
|
+
- lib/prosereflect/transform/replace_around_step.rb
|
|
148
|
+
- lib/prosereflect/transform/replace_step.rb
|
|
149
|
+
- lib/prosereflect/transform/slice.rb
|
|
150
|
+
- lib/prosereflect/transform/step.rb
|
|
151
|
+
- lib/prosereflect/transform/step_map.rb
|
|
152
|
+
- lib/prosereflect/transform/structure.rb
|
|
153
|
+
- lib/prosereflect/transform/transform.rb
|
|
94
154
|
- lib/prosereflect/user.rb
|
|
95
155
|
- lib/prosereflect/version.rb
|
|
96
156
|
- prosereflect.gemspec
|
|
97
157
|
- sig/prosemirror.rbs
|
|
158
|
+
- spec/fixtures/documents/formatted_text.yaml
|
|
159
|
+
- spec/fixtures/documents/heading_paragraph.yaml
|
|
160
|
+
- spec/fixtures/documents/lists_doc.yaml
|
|
161
|
+
- spec/fixtures/documents/mixed_content.yaml
|
|
162
|
+
- spec/fixtures/documents/nested_doc.yaml
|
|
163
|
+
- spec/fixtures/documents/simple_doc.yaml
|
|
164
|
+
- spec/fixtures/documents/table_doc.yaml
|
|
165
|
+
- spec/fixtures/documents/transform_test.yaml
|
|
98
166
|
- spec/fixtures/ituob-1000/ituob-1000-DP.json
|
|
99
167
|
- spec/fixtures/ituob-1000/ituob-1000-DP.yaml
|
|
100
168
|
- spec/fixtures/ituob-1000/ituob-1000-E118_IIN.json
|
|
@@ -131,19 +199,41 @@ files:
|
|
|
131
199
|
- spec/fixtures/ituob-1001/ituob-1001-NNP.yaml
|
|
132
200
|
- spec/fixtures/ituob-1001/ituob-1001-Q708_ISPC.json
|
|
133
201
|
- spec/fixtures/ituob-1001/ituob-1001-Q708_ISPC.yaml
|
|
202
|
+
- spec/fixtures/schema/custom_schema.rb
|
|
203
|
+
- spec/fixtures/schema/test_schema.rb
|
|
204
|
+
- spec/fixtures/test_builder/helpers.rb
|
|
134
205
|
- spec/prosereflect/document_spec.rb
|
|
206
|
+
- spec/prosereflect/fragment_spec.rb
|
|
135
207
|
- spec/prosereflect/hard_break_spec.rb
|
|
136
208
|
- spec/prosereflect/input/html_spec.rb
|
|
137
209
|
- spec/prosereflect/node_spec.rb
|
|
138
210
|
- spec/prosereflect/output/html_spec.rb
|
|
211
|
+
- spec/prosereflect/output/whitespace_spec.rb
|
|
139
212
|
- spec/prosereflect/paragraph_spec.rb
|
|
213
|
+
- spec/prosereflect/parser/round_trip_spec.rb
|
|
140
214
|
- spec/prosereflect/parser_spec.rb
|
|
215
|
+
- spec/prosereflect/resolved_pos_spec.rb
|
|
216
|
+
- spec/prosereflect/schema/conftest.rb
|
|
217
|
+
- spec/prosereflect/schema/content_match_spec.rb
|
|
218
|
+
- spec/prosereflect/schema/mark_spec.rb
|
|
219
|
+
- spec/prosereflect/schema/mark_type_spec.rb
|
|
220
|
+
- spec/prosereflect/schema/node_type_spec.rb
|
|
221
|
+
- spec/prosereflect/schema/schema_spec.rb
|
|
141
222
|
- spec/prosereflect/table_cell_spec.rb
|
|
142
223
|
- spec/prosereflect/table_row_spec.rb
|
|
143
224
|
- spec/prosereflect/table_spec.rb
|
|
225
|
+
- spec/prosereflect/test_builder/marks_spec.rb
|
|
144
226
|
- spec/prosereflect/text_spec.rb
|
|
227
|
+
- spec/prosereflect/transform/equivalence_spec.rb
|
|
228
|
+
- spec/prosereflect/transform/mapping_spec.rb
|
|
229
|
+
- spec/prosereflect/transform/replace_spec.rb
|
|
230
|
+
- spec/prosereflect/transform/replace_step_spec.rb
|
|
231
|
+
- spec/prosereflect/transform/slice_spec.rb
|
|
232
|
+
- spec/prosereflect/transform/step_map_spec.rb
|
|
233
|
+
- spec/prosereflect/transform/step_spec.rb
|
|
234
|
+
- spec/prosereflect/transform/structure_spec.rb
|
|
235
|
+
- spec/prosereflect/transform/transform_spec.rb
|
|
145
236
|
- spec/prosereflect/user_spec.rb
|
|
146
|
-
- spec/prosereflect/version_spec.rb
|
|
147
237
|
- spec/prosereflect_spec.rb
|
|
148
238
|
- spec/spec_helper.rb
|
|
149
239
|
- spec/support/matchers.rb
|
|
@@ -155,6 +245,7 @@ metadata:
|
|
|
155
245
|
homepage_uri: https://github.com/metanorma/prosereflect
|
|
156
246
|
source_code_uri: https://github.com/metanorma/prosereflect
|
|
157
247
|
bug_tracker_uri: https://github.com/metanorma/prosereflect/issues
|
|
248
|
+
rubygems_mfa_required: 'true'
|
|
158
249
|
post_install_message:
|
|
159
250
|
rdoc_options: []
|
|
160
251
|
require_paths:
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
RSpec.describe Prosereflect::VERSION do
|
|
6
|
-
it 'has a version number' do
|
|
7
|
-
expect(Prosereflect::VERSION).not_to be nil
|
|
8
|
-
expect(Prosereflect::VERSION).to be_a(String)
|
|
9
|
-
expect(Prosereflect::VERSION).to match(/\d+\.\d+\.\d+/)
|
|
10
|
-
end
|
|
11
|
-
end
|