coradoc 1.1.0 → 1.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.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +35 -0
  3. data/{.docker/readme.md → README.Docker.adoc} +21 -25
  4. data/README.adoc +121 -0
  5. data/coradoc.gemspec +4 -0
  6. data/docker-compose.yml +14 -0
  7. data/exe/coradoc +5 -0
  8. data/exe/reverse_adoc +24 -34
  9. data/exe/w2a +16 -28
  10. data/lib/coradoc/cli.rb +105 -0
  11. data/lib/coradoc/converter.rb +145 -0
  12. data/lib/coradoc/document.rb +13 -0
  13. data/lib/coradoc/element/admonition.rb +5 -0
  14. data/lib/coradoc/element/attribute_list.rb +1 -1
  15. data/lib/coradoc/element/author.rb +4 -4
  16. data/lib/coradoc/element/bibliography.rb +24 -0
  17. data/lib/coradoc/element/bibliography_entry.rb +24 -0
  18. data/lib/coradoc/element/block/core.rb +6 -4
  19. data/lib/coradoc/element/block/example.rb +1 -0
  20. data/lib/coradoc/element/block/pass.rb +21 -0
  21. data/lib/coradoc/element/block/quote.rb +1 -1
  22. data/lib/coradoc/element/block/reviewer_comment.rb +19 -0
  23. data/lib/coradoc/element/block/side.rb +4 -2
  24. data/lib/coradoc/element/block/sourcecode.rb +1 -0
  25. data/lib/coradoc/element/block.rb +2 -0
  26. data/lib/coradoc/element/comment_block.rb +22 -0
  27. data/lib/coradoc/element/comment_line.rb +18 -0
  28. data/lib/coradoc/element/document_attributes.rb +8 -1
  29. data/lib/coradoc/element/header.rb +1 -1
  30. data/lib/coradoc/element/image/block_image.rb +8 -0
  31. data/lib/coradoc/element/image/core.rb +6 -5
  32. data/lib/coradoc/element/include.rb +18 -0
  33. data/lib/coradoc/element/inline/citation.rb +24 -0
  34. data/lib/coradoc/element/inline/cross_reference.rb +29 -8
  35. data/lib/coradoc/element/inline.rb +1 -0
  36. data/lib/coradoc/element/list/core.rb +10 -2
  37. data/lib/coradoc/element/list_item.rb +7 -5
  38. data/lib/coradoc/element/paragraph.rb +8 -5
  39. data/lib/coradoc/element/revision.rb +1 -1
  40. data/lib/coradoc/element/section.rb +6 -4
  41. data/lib/coradoc/element/table.rb +2 -2
  42. data/lib/coradoc/element/tag.rb +19 -0
  43. data/lib/coradoc/element/term.rb +21 -0
  44. data/lib/coradoc/element/text_element.rb +9 -1
  45. data/lib/coradoc/element/title.rb +1 -1
  46. data/lib/coradoc/generator.rb +2 -0
  47. data/lib/coradoc/input/adoc.rb +28 -0
  48. data/lib/coradoc/input/docx.rb +35 -0
  49. data/lib/coradoc/{reverse_adoc → input/html}/README.adoc +9 -9
  50. data/lib/coradoc/{reverse_adoc → input/html}/cleaner.rb +18 -4
  51. data/lib/coradoc/input/html/config.rb +75 -0
  52. data/lib/coradoc/{reverse_adoc → input/html}/converters/a.rb +1 -1
  53. data/lib/coradoc/{reverse_adoc → input/html}/converters/aside.rb +1 -1
  54. data/lib/coradoc/{reverse_adoc → input/html}/converters/audio.rb +1 -1
  55. data/lib/coradoc/{reverse_adoc → input/html}/converters/base.rb +1 -1
  56. data/lib/coradoc/{reverse_adoc → input/html}/converters/blockquote.rb +2 -2
  57. data/lib/coradoc/{reverse_adoc → input/html}/converters/br.rb +1 -1
  58. data/lib/coradoc/{reverse_adoc → input/html}/converters/bypass.rb +1 -1
  59. data/lib/coradoc/{reverse_adoc → input/html}/converters/code.rb +1 -1
  60. data/lib/coradoc/{reverse_adoc → input/html}/converters/div.rb +1 -1
  61. data/lib/coradoc/{reverse_adoc → input/html}/converters/dl.rb +1 -1
  62. data/lib/coradoc/{reverse_adoc → input/html}/converters/drop.rb +1 -1
  63. data/lib/coradoc/{reverse_adoc → input/html}/converters/em.rb +1 -1
  64. data/lib/coradoc/{reverse_adoc → input/html}/converters/figure.rb +1 -1
  65. data/lib/coradoc/{reverse_adoc → input/html}/converters/h.rb +1 -1
  66. data/lib/coradoc/{reverse_adoc → input/html}/converters/head.rb +1 -1
  67. data/lib/coradoc/{reverse_adoc → input/html}/converters/hr.rb +1 -1
  68. data/lib/coradoc/{reverse_adoc → input/html}/converters/ignore.rb +1 -1
  69. data/lib/coradoc/{reverse_adoc → input/html}/converters/img.rb +7 -7
  70. data/lib/coradoc/{reverse_adoc → input/html}/converters/li.rb +1 -1
  71. data/lib/coradoc/{reverse_adoc → input/html}/converters/mark.rb +1 -1
  72. data/lib/coradoc/{reverse_adoc → input/html}/converters/markup.rb +1 -1
  73. data/lib/coradoc/{reverse_adoc → input/html}/converters/math.rb +3 -3
  74. data/lib/coradoc/{reverse_adoc → input/html}/converters/ol.rb +1 -1
  75. data/lib/coradoc/{reverse_adoc → input/html}/converters/p.rb +1 -1
  76. data/lib/coradoc/{reverse_adoc → input/html}/converters/pass_through.rb +1 -1
  77. data/lib/coradoc/{reverse_adoc → input/html}/converters/pre.rb +1 -1
  78. data/lib/coradoc/{reverse_adoc → input/html}/converters/q.rb +1 -1
  79. data/lib/coradoc/{reverse_adoc → input/html}/converters/strong.rb +1 -1
  80. data/lib/coradoc/{reverse_adoc → input/html}/converters/sub.rb +1 -1
  81. data/lib/coradoc/{reverse_adoc → input/html}/converters/sup.rb +1 -1
  82. data/lib/coradoc/{reverse_adoc → input/html}/converters/table.rb +4 -4
  83. data/lib/coradoc/{reverse_adoc → input/html}/converters/td.rb +1 -1
  84. data/lib/coradoc/{reverse_adoc → input/html}/converters/text.rb +2 -2
  85. data/lib/coradoc/{reverse_adoc → input/html}/converters/th.rb +1 -1
  86. data/lib/coradoc/{reverse_adoc → input/html}/converters/tr.rb +1 -1
  87. data/lib/coradoc/{reverse_adoc → input/html}/converters/video.rb +1 -1
  88. data/lib/coradoc/input/html/converters.rb +57 -0
  89. data/lib/coradoc/input/html/errors.rb +12 -0
  90. data/lib/coradoc/{reverse_adoc → input/html}/html_converter.rb +37 -22
  91. data/lib/coradoc/{reverse_adoc → input/html}/plugin.rb +6 -6
  92. data/lib/coradoc/{reverse_adoc → input/html}/plugins/plateau.rb +3 -3
  93. data/lib/coradoc/{reverse_adoc → input/html}/postprocessor.rb +3 -3
  94. data/lib/coradoc/input/html.rb +59 -0
  95. data/lib/coradoc/input.rb +12 -0
  96. data/lib/coradoc/output/adoc.rb +17 -0
  97. data/lib/coradoc/output/coradoc_tree_debug.rb +19 -0
  98. data/lib/coradoc/output.rb +11 -0
  99. data/lib/coradoc/parser/asciidoc/admonition.rb +24 -0
  100. data/lib/coradoc/parser/asciidoc/attribute_list.rb +67 -0
  101. data/lib/coradoc/parser/asciidoc/base.rb +101 -13
  102. data/lib/coradoc/parser/asciidoc/bibliography.rb +30 -0
  103. data/lib/coradoc/parser/asciidoc/block.rb +82 -0
  104. data/lib/coradoc/parser/asciidoc/citation.rb +48 -0
  105. data/lib/coradoc/parser/asciidoc/content.rb +15 -120
  106. data/lib/coradoc/parser/asciidoc/document_attributes.rb +12 -5
  107. data/lib/coradoc/parser/asciidoc/header.rb +1 -4
  108. data/lib/coradoc/parser/asciidoc/inline.rb +72 -0
  109. data/lib/coradoc/parser/asciidoc/list.rb +81 -0
  110. data/lib/coradoc/parser/asciidoc/paragraph.rb +33 -0
  111. data/lib/coradoc/parser/asciidoc/section.rb +36 -31
  112. data/lib/coradoc/parser/asciidoc/table.rb +32 -0
  113. data/lib/coradoc/parser/asciidoc/term.rb +23 -0
  114. data/lib/coradoc/parser/base.rb +39 -4
  115. data/lib/coradoc/transformer.rb +353 -82
  116. data/lib/coradoc/util.rb +1 -1
  117. data/lib/coradoc/version.rb +1 -1
  118. data/lib/coradoc.rb +8 -5
  119. data/lib/reverse_adoc.rb +6 -6
  120. data/utils/parser_analyzer.rb +66 -0
  121. data/utils/round_trip.rb +37 -0
  122. metadata +112 -54
  123. data/.docker/Makefile +0 -35
  124. data/.docker/docker-compose.yml +0 -14
  125. data/Makefile +0 -1
  126. data/README.md +0 -73
  127. data/docker-compose.yml +0 -1
  128. data/lib/coradoc/reverse_adoc/config.rb +0 -73
  129. data/lib/coradoc/reverse_adoc/converters.rb +0 -55
  130. data/lib/coradoc/reverse_adoc/errors.rb +0 -10
  131. data/lib/coradoc/reverse_adoc.rb +0 -30
  132. /data/{.docker/Dockerfile → Dockerfile} +0 -0
  133. /data/lib/coradoc/{reverse_adoc → input/html}/LICENSE.txt +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coradoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2024-06-07 00:00:00.000000000 Z
12
+ date: 2024-09-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: marcel
@@ -109,6 +109,34 @@ dependencies:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: base64
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: thor
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
112
140
  - !ruby/object:Gem::Dependency
113
141
  name: codeclimate-test-reporter
114
142
  requirement: !ruby/object:Gem::Requirement
@@ -226,31 +254,33 @@ email:
226
254
  - open.source@ribose.com
227
255
  - abunashir@gmail.com
228
256
  executables:
257
+ - coradoc
229
258
  - reverse_adoc
230
259
  - w2a
231
260
  extensions: []
232
261
  extra_rdoc_files: []
233
262
  files:
234
- - ".docker/Dockerfile"
235
- - ".docker/Makefile"
236
- - ".docker/docker-compose.yml"
237
- - ".docker/readme.md"
238
263
  - ".editorconfig"
239
264
  - ".hound.yml"
240
265
  - ".pryrc.sample"
241
266
  - ".rubocop.yml"
242
267
  - CHANGELOG.md
243
268
  - CODE_OF_CONDUCT.md
269
+ - Dockerfile
244
270
  - Gemfile
245
271
  - LICENSE.txt
246
272
  - Makefile
247
- - README.md
273
+ - README.Docker.adoc
274
+ - README.adoc
248
275
  - Rakefile
249
276
  - coradoc.gemspec
250
277
  - docker-compose.yml
278
+ - exe/coradoc
251
279
  - exe/reverse_adoc
252
280
  - exe/w2a
253
281
  - lib/coradoc.rb
282
+ - lib/coradoc/cli.rb
283
+ - lib/coradoc/converter.rb
254
284
  - lib/coradoc/document.rb
255
285
  - lib/coradoc/element/admonition.rb
256
286
  - lib/coradoc/element/attribute.rb
@@ -258,23 +288,31 @@ files:
258
288
  - lib/coradoc/element/audio.rb
259
289
  - lib/coradoc/element/author.rb
260
290
  - lib/coradoc/element/base.rb
291
+ - lib/coradoc/element/bibliography.rb
292
+ - lib/coradoc/element/bibliography_entry.rb
261
293
  - lib/coradoc/element/block.rb
262
294
  - lib/coradoc/element/block/core.rb
263
295
  - lib/coradoc/element/block/example.rb
264
296
  - lib/coradoc/element/block/literal.rb
297
+ - lib/coradoc/element/block/pass.rb
265
298
  - lib/coradoc/element/block/quote.rb
299
+ - lib/coradoc/element/block/reviewer_comment.rb
266
300
  - lib/coradoc/element/block/side.rb
267
301
  - lib/coradoc/element/block/sourcecode.rb
268
302
  - lib/coradoc/element/break.rb
303
+ - lib/coradoc/element/comment_block.rb
304
+ - lib/coradoc/element/comment_line.rb
269
305
  - lib/coradoc/element/document_attributes.rb
270
306
  - lib/coradoc/element/header.rb
271
307
  - lib/coradoc/element/image.rb
272
308
  - lib/coradoc/element/image/block_image.rb
273
309
  - lib/coradoc/element/image/core.rb
274
310
  - lib/coradoc/element/image/inline_image.rb
311
+ - lib/coradoc/element/include.rb
275
312
  - lib/coradoc/element/inline.rb
276
313
  - lib/coradoc/element/inline/anchor.rb
277
314
  - lib/coradoc/element/inline/bold.rb
315
+ - lib/coradoc/element/inline/citation.rb
278
316
  - lib/coradoc/element/inline/cross_reference.rb
279
317
  - lib/coradoc/element/inline/hard_line_break.rb
280
318
  - lib/coradoc/element/inline/highlight.rb
@@ -295,71 +333,91 @@ files:
295
333
  - lib/coradoc/element/revision.rb
296
334
  - lib/coradoc/element/section.rb
297
335
  - lib/coradoc/element/table.rb
336
+ - lib/coradoc/element/tag.rb
337
+ - lib/coradoc/element/term.rb
298
338
  - lib/coradoc/element/text_element.rb
299
339
  - lib/coradoc/element/title.rb
300
340
  - lib/coradoc/element/video.rb
301
341
  - lib/coradoc/generator.rb
342
+ - lib/coradoc/input.rb
343
+ - lib/coradoc/input/adoc.rb
344
+ - lib/coradoc/input/docx.rb
345
+ - lib/coradoc/input/html.rb
346
+ - lib/coradoc/input/html/LICENSE.txt
347
+ - lib/coradoc/input/html/README.adoc
348
+ - lib/coradoc/input/html/cleaner.rb
349
+ - lib/coradoc/input/html/config.rb
350
+ - lib/coradoc/input/html/converters.rb
351
+ - lib/coradoc/input/html/converters/a.rb
352
+ - lib/coradoc/input/html/converters/aside.rb
353
+ - lib/coradoc/input/html/converters/audio.rb
354
+ - lib/coradoc/input/html/converters/base.rb
355
+ - lib/coradoc/input/html/converters/blockquote.rb
356
+ - lib/coradoc/input/html/converters/br.rb
357
+ - lib/coradoc/input/html/converters/bypass.rb
358
+ - lib/coradoc/input/html/converters/code.rb
359
+ - lib/coradoc/input/html/converters/div.rb
360
+ - lib/coradoc/input/html/converters/dl.rb
361
+ - lib/coradoc/input/html/converters/drop.rb
362
+ - lib/coradoc/input/html/converters/em.rb
363
+ - lib/coradoc/input/html/converters/figure.rb
364
+ - lib/coradoc/input/html/converters/h.rb
365
+ - lib/coradoc/input/html/converters/head.rb
366
+ - lib/coradoc/input/html/converters/hr.rb
367
+ - lib/coradoc/input/html/converters/ignore.rb
368
+ - lib/coradoc/input/html/converters/img.rb
369
+ - lib/coradoc/input/html/converters/li.rb
370
+ - lib/coradoc/input/html/converters/mark.rb
371
+ - lib/coradoc/input/html/converters/markup.rb
372
+ - lib/coradoc/input/html/converters/math.rb
373
+ - lib/coradoc/input/html/converters/ol.rb
374
+ - lib/coradoc/input/html/converters/p.rb
375
+ - lib/coradoc/input/html/converters/pass_through.rb
376
+ - lib/coradoc/input/html/converters/pre.rb
377
+ - lib/coradoc/input/html/converters/q.rb
378
+ - lib/coradoc/input/html/converters/strong.rb
379
+ - lib/coradoc/input/html/converters/sub.rb
380
+ - lib/coradoc/input/html/converters/sup.rb
381
+ - lib/coradoc/input/html/converters/table.rb
382
+ - lib/coradoc/input/html/converters/td.rb
383
+ - lib/coradoc/input/html/converters/text.rb
384
+ - lib/coradoc/input/html/converters/th.rb
385
+ - lib/coradoc/input/html/converters/tr.rb
386
+ - lib/coradoc/input/html/converters/video.rb
387
+ - lib/coradoc/input/html/errors.rb
388
+ - lib/coradoc/input/html/html_converter.rb
389
+ - lib/coradoc/input/html/plugin.rb
390
+ - lib/coradoc/input/html/plugins/plateau.rb
391
+ - lib/coradoc/input/html/postprocessor.rb
302
392
  - lib/coradoc/legacy_parser.rb
303
393
  - lib/coradoc/oscal.rb
394
+ - lib/coradoc/output.rb
395
+ - lib/coradoc/output/adoc.rb
396
+ - lib/coradoc/output/coradoc_tree_debug.rb
304
397
  - lib/coradoc/parser.rb
398
+ - lib/coradoc/parser/asciidoc/admonition.rb
399
+ - lib/coradoc/parser/asciidoc/attribute_list.rb
305
400
  - lib/coradoc/parser/asciidoc/base.rb
401
+ - lib/coradoc/parser/asciidoc/bibliography.rb
402
+ - lib/coradoc/parser/asciidoc/block.rb
403
+ - lib/coradoc/parser/asciidoc/citation.rb
306
404
  - lib/coradoc/parser/asciidoc/content.rb
307
405
  - lib/coradoc/parser/asciidoc/document_attributes.rb
308
406
  - lib/coradoc/parser/asciidoc/header.rb
407
+ - lib/coradoc/parser/asciidoc/inline.rb
408
+ - lib/coradoc/parser/asciidoc/list.rb
409
+ - lib/coradoc/parser/asciidoc/paragraph.rb
309
410
  - lib/coradoc/parser/asciidoc/section.rb
411
+ - lib/coradoc/parser/asciidoc/table.rb
412
+ - lib/coradoc/parser/asciidoc/term.rb
310
413
  - lib/coradoc/parser/base.rb
311
- - lib/coradoc/reverse_adoc.rb
312
- - lib/coradoc/reverse_adoc/LICENSE.txt
313
- - lib/coradoc/reverse_adoc/README.adoc
314
- - lib/coradoc/reverse_adoc/cleaner.rb
315
- - lib/coradoc/reverse_adoc/config.rb
316
- - lib/coradoc/reverse_adoc/converters.rb
317
- - lib/coradoc/reverse_adoc/converters/a.rb
318
- - lib/coradoc/reverse_adoc/converters/aside.rb
319
- - lib/coradoc/reverse_adoc/converters/audio.rb
320
- - lib/coradoc/reverse_adoc/converters/base.rb
321
- - lib/coradoc/reverse_adoc/converters/blockquote.rb
322
- - lib/coradoc/reverse_adoc/converters/br.rb
323
- - lib/coradoc/reverse_adoc/converters/bypass.rb
324
- - lib/coradoc/reverse_adoc/converters/code.rb
325
- - lib/coradoc/reverse_adoc/converters/div.rb
326
- - lib/coradoc/reverse_adoc/converters/dl.rb
327
- - lib/coradoc/reverse_adoc/converters/drop.rb
328
- - lib/coradoc/reverse_adoc/converters/em.rb
329
- - lib/coradoc/reverse_adoc/converters/figure.rb
330
- - lib/coradoc/reverse_adoc/converters/h.rb
331
- - lib/coradoc/reverse_adoc/converters/head.rb
332
- - lib/coradoc/reverse_adoc/converters/hr.rb
333
- - lib/coradoc/reverse_adoc/converters/ignore.rb
334
- - lib/coradoc/reverse_adoc/converters/img.rb
335
- - lib/coradoc/reverse_adoc/converters/li.rb
336
- - lib/coradoc/reverse_adoc/converters/mark.rb
337
- - lib/coradoc/reverse_adoc/converters/markup.rb
338
- - lib/coradoc/reverse_adoc/converters/math.rb
339
- - lib/coradoc/reverse_adoc/converters/ol.rb
340
- - lib/coradoc/reverse_adoc/converters/p.rb
341
- - lib/coradoc/reverse_adoc/converters/pass_through.rb
342
- - lib/coradoc/reverse_adoc/converters/pre.rb
343
- - lib/coradoc/reverse_adoc/converters/q.rb
344
- - lib/coradoc/reverse_adoc/converters/strong.rb
345
- - lib/coradoc/reverse_adoc/converters/sub.rb
346
- - lib/coradoc/reverse_adoc/converters/sup.rb
347
- - lib/coradoc/reverse_adoc/converters/table.rb
348
- - lib/coradoc/reverse_adoc/converters/td.rb
349
- - lib/coradoc/reverse_adoc/converters/text.rb
350
- - lib/coradoc/reverse_adoc/converters/th.rb
351
- - lib/coradoc/reverse_adoc/converters/tr.rb
352
- - lib/coradoc/reverse_adoc/converters/video.rb
353
- - lib/coradoc/reverse_adoc/errors.rb
354
- - lib/coradoc/reverse_adoc/html_converter.rb
355
- - lib/coradoc/reverse_adoc/plugin.rb
356
- - lib/coradoc/reverse_adoc/plugins/plateau.rb
357
- - lib/coradoc/reverse_adoc/postprocessor.rb
358
414
  - lib/coradoc/transformer.rb
359
415
  - lib/coradoc/util.rb
360
416
  - lib/coradoc/version.rb
361
417
  - lib/reverse_adoc.rb
362
418
  - todo.md
419
+ - utils/parser_analyzer.rb
420
+ - utils/round_trip.rb
363
421
  homepage: https://www.metanorma.org
364
422
  licenses:
365
423
  - MIT
data/.docker/Makefile DELETED
@@ -1,35 +0,0 @@
1
- export SPEC ?= spec
2
- SPEC_FILE = $(subst ../,, $(SPEC))
3
- export RUBY_IMAGE ?= ruby:3.1.2-slim
4
-
5
- .PHONY: up
6
- up:
7
- docker-compose up
8
-
9
- .PHONY: down
10
- down:
11
- docker-compose down
12
-
13
- .PHONY: test
14
- test: rspec
15
-
16
- .PHONY: ssh
17
- ssh:
18
- docker-compose run lib bash
19
-
20
- .PHONY: install
21
- install:
22
- docker-compose run lib bin/setup
23
-
24
- .PHONY: console
25
- console:
26
- docker-compose run lib bin/console
27
-
28
- .PHONY: rspec
29
- rspec:
30
- docker-compose run lib bin/rspec ${SPEC_FILE}
31
-
32
- .PHONY: setup
33
- setup:
34
- docker-compose build --build-arg RUBY_IMAGE=${RUBY_IMAGE}
35
- docker-compose run lib bin/setup
@@ -1,14 +0,0 @@
1
- version: "3"
2
-
3
- services:
4
- lib:
5
- build:
6
- context: .
7
- dockerfile: ./.docker/Dockerfile
8
-
9
- volumes:
10
- - .:/workspace:z
11
- - bundle:/bundle:z
12
-
13
- volumes:
14
- bundle:
data/Makefile DELETED
@@ -1 +0,0 @@
1
- .docker/Makefile
data/README.md DELETED
@@ -1,73 +0,0 @@
1
- # Coradoc
2
-
3
- Coradoc is a modern Parser for Asciidoc document. It defines a grammar for
4
- AsciiDoc, and then build the Parser for that grammar.
5
-
6
- Once the document is parsed, it provides a pure ruby object `Coradoc::Document`,
7
- which can used to customize the document in easiest way.
8
-
9
- ## Installation
10
-
11
- Add this line to your application's Gemfile:
12
-
13
- ```ruby
14
- gem "coradoc"
15
- ```
16
-
17
- And then execute:
18
-
19
- ```sh
20
- bundle install
21
- ```
22
-
23
- Or install it yourself as:
24
-
25
- ```sh
26
- gem install coradoc
27
- ```
28
-
29
- ## Development
30
-
31
- We are following Sandi Metz's Rules for this gem, you can read the
32
- [description of the rules here][sandi-metz] All new code should follow these
33
- rules. If you make changes in a pre-existing file that violates these rules you
34
- should fix the violations as part of your contribution.
35
-
36
- ### Setup
37
-
38
- Clone the repository.
39
-
40
- ```sh
41
- git clone https://github.com/metanorma/coradoc.git
42
- ```
43
-
44
- Setup your environment in docker
45
-
46
- ```sh
47
- make setup
48
- ```
49
-
50
- Run the test suite
51
-
52
- ```sh
53
- make test
54
- ```
55
-
56
-
57
- ## Usages
58
-
59
- ### Parsing a document
60
-
61
- To parse any AsciiDoc, we can use the following:
62
-
63
- ```ruby
64
- Coradoc::Parser.parse(sample_asciidoc)
65
- ```
66
-
67
- This interface will return the abstract syntax tree.
68
-
69
- ### Converting from HTML to AsciiDoc (reverse_adoc)
70
-
71
- See: [reverse_adoc README](https://github.com/metanorma/coradoc/blob/main/lib/coradoc/reverse_adoc/README.adoc)
72
-
73
- [sandi-metz]: http://robots.thoughtbot.com/post/50655960596/sandi-metz-rules-for-developers
data/docker-compose.yml DELETED
@@ -1 +0,0 @@
1
- .docker/docker-compose.yml
@@ -1,73 +0,0 @@
1
- require "tmpdir"
2
-
3
- module Coradoc::ReverseAdoc
4
- class Config
5
- def initialize
6
- @unknown_tags = :pass_through
7
- @input_format = :html
8
- @mathml2asciimath = false
9
- @external_images = false
10
-
11
- # Destination to save file and images
12
- @destination = nil
13
-
14
- # Source of HTML
15
- # @sourcedir = nil
16
-
17
- # Image counter, assuming there are max 999 images
18
- @image_counter = 1
19
- # pad with 0s
20
- @image_counter_pattern = "%03d"
21
-
22
- @em_delimiter = "_".freeze
23
- @strong_delimiter = "*".freeze
24
- @inline_options = {}
25
- @tag_border = " ".freeze
26
-
27
- @split_sections = nil
28
-
29
- # Document width - used to compute table sizes.
30
- # This is an assumption for screen size in input document.
31
- # If column widths are specified in absolute values, then we
32
- # have to convert them to relative values, as AsciiDoc only
33
- # supports those.
34
- @doc_width = 1000
35
-
36
- # Plugin system
37
- @plugins = []
38
-
39
- # Debugging options
40
- @track_time = false
41
- end
42
-
43
- def with(options = {})
44
- old_options = @inline_options
45
- @inline_options = options
46
- result = yield
47
- @inline_options = old_options
48
- result
49
- end
50
-
51
- def self.declare_option(option)
52
- define_method(option) do
53
- @inline_options[option] || instance_variable_get(:"@#{option}")
54
- end
55
-
56
- attr_writer option
57
- end
58
-
59
- declare_option :unknown_tags
60
- declare_option :tag_border
61
- declare_option :mathml2asciimath
62
- declare_option :external_images
63
- declare_option :destination
64
- declare_option :sourcedir
65
- declare_option :image_counter
66
- declare_option :image_counter_pattern
67
- declare_option :input_format
68
- declare_option :split_sections
69
- declare_option :doc_width
70
- declare_option :plugins
71
- declare_option :track_time
72
- end
73
- end
@@ -1,55 +0,0 @@
1
- module Coradoc::ReverseAdoc
2
- module Converters
3
- def self.register(tag_name, converter)
4
- @@converters ||= {}
5
- @@converters[tag_name.to_sym] = converter
6
- end
7
-
8
- def self.unregister(tag_name)
9
- @@converters.delete(tag_name.to_sym)
10
- end
11
-
12
- def self.lookup(tag_name)
13
- converter = @@converters[tag_name.to_sym] || default_converter(tag_name)
14
- converter = converter.new if converter.respond_to? :new
15
- converter
16
- end
17
-
18
- # Note: process won't run plugin hooks
19
- def self.process(node, state)
20
- node = node.to_a if node.is_a? Nokogiri::XML::NodeSet
21
- return node.map { |i| process(i, state) }.join if node.is_a? Array
22
-
23
- lookup(node.name).convert(node, state)
24
- end
25
-
26
- def self.process_coradoc(node, state)
27
- node = node.to_a if node.is_a? Nokogiri::XML::NodeSet
28
- return node.map { |i| process_coradoc(i, state) } if node.is_a? Array
29
-
30
- plugins = state[:plugin_instances] || {}
31
- process = proc { lookup(node.name).to_coradoc(node, state) }
32
- plugins.each do |i|
33
- prev_process = process
34
- process = proc { i.html_tree_run_hooks(node, state, &prev_process) }
35
- end
36
- process.(node, state)
37
- end
38
-
39
- def self.default_converter(tag_name)
40
- case Coradoc::ReverseAdoc.config.unknown_tags.to_sym
41
- when :pass_through
42
- Coradoc::ReverseAdoc::Converters::PassThrough.new
43
- when :drop
44
- Coradoc::ReverseAdoc::Converters::Drop.new
45
- when :bypass
46
- Coradoc::ReverseAdoc::Converters::Bypass.new
47
- when :raise
48
- raise UnknownTagError, "unknown tag: #{tag_name}"
49
- else
50
- raise InvalidConfigurationError,
51
- "unknown value #{Coradoc::ReverseAdoc.config.unknown_tags.inspect} for Coradoc::ReverseAdoc.config.unknown_tags"
52
- end
53
- end
54
- end
55
- end
@@ -1,10 +0,0 @@
1
- module Coradoc::ReverseAdoc
2
- class Error < StandardError
3
- end
4
-
5
- class UnknownTagError < Error
6
- end
7
-
8
- class InvalidConfigurationError < Error
9
- end
10
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "digest"
4
- require "nokogiri"
5
- require_relative "../coradoc"
6
- require_relative "reverse_adoc/errors"
7
- require_relative "reverse_adoc/cleaner"
8
- require_relative "reverse_adoc/config"
9
- require_relative "reverse_adoc/converters"
10
- require_relative "reverse_adoc/converters/base"
11
- require_relative "reverse_adoc/html_converter"
12
- require_relative "reverse_adoc/plugin"
13
- require_relative "reverse_adoc/postprocessor"
14
-
15
-
16
- module Coradoc::ReverseAdoc
17
- def self.convert(input, options = {})
18
- Coradoc::ReverseAdoc::HtmlConverter.convert(input, options)
19
- end
20
-
21
- def self.config
22
- @config ||= Config.new
23
- yield @config if block_given?
24
- @config
25
- end
26
-
27
- def self.cleaner
28
- @cleaner ||= Cleaner.new
29
- end
30
- end
File without changes