apex-ruby 1.0.29 → 1.0.31

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 (490) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -8
  3. data/apex-ruby.gemspec +14 -3
  4. data/ext/apex_ext/apex_src/include/apex/apex.h +11 -2
  5. data/ext/apex_ext/apex_src/src/apex.c +64 -5
  6. data/ext/apex_ext/apex_src/src/ast_terminal.c +2 -4
  7. data/ext/apex_ext/apex_src/src/extensions/callouts.c +103 -63
  8. data/ext/apex_ext/apex_src/src/extensions/callouts.h +3 -2
  9. data/ext/apex_ext/apex_src/src/extensions/citations.c +15 -2
  10. data/ext/apex_ext/apex_src/src/extensions/emoji.c +73 -7
  11. data/ext/apex_ext/apex_src/src/extensions/html_markdown.c +25 -4
  12. data/ext/apex_ext/apex_src/src/extensions/html_markdown.h +4 -1
  13. data/ext/apex_ext/apex_src/src/extensions/insert.c +49 -0
  14. data/ext/apex_ext/apex_src/src/extensions/metadata.c +275 -55
  15. data/ext/apex_ext/apex_src/src/extensions/metadata.h +9 -0
  16. data/ext/apex_ext/apex_src/src/extensions/relaxed_tables.c +172 -254
  17. data/ext/apex_ext/apex_src/src/extensions/table_html_postprocess.c +36 -127
  18. data/ext/apex_ext/apex_src/src/html_renderer.c +99 -157
  19. data/ext/apex_ext/extconf.rb +31 -79
  20. data/lib/apex/version.rb +1 -1
  21. metadata +1 -470
  22. data/ext/apex_ext/apex_src/AGENTS.md +0 -41
  23. data/ext/apex_ext/apex_src/BENCHMARK.md +0 -32
  24. data/ext/apex_ext/apex_src/BENCHMARK_COMPARISON.md +0 -67
  25. data/ext/apex_ext/apex_src/CHANGELOG.md +0 -3373
  26. data/ext/apex_ext/apex_src/CMakeLists.txt +0 -481
  27. data/ext/apex_ext/apex_src/Dockerfile.linux-build +0 -15
  28. data/ext/apex_ext/apex_src/Formula/apex.rb +0 -43
  29. data/ext/apex_ext/apex_src/Info.plist.in +0 -27
  30. data/ext/apex_ext/apex_src/Package.swift +0 -192
  31. data/ext/apex_ext/apex_src/PackageSupport/README.md +0 -17
  32. data/ext/apex_ext/apex_src/PackageSupport/cmark-gfm/cmark_gfm_spm_stub.c +0 -4
  33. data/ext/apex_ext/apex_src/README.md +0 -536
  34. data/ext/apex_ext/apex_src/ROADMAP.md +0 -5
  35. data/ext/apex_ext/apex_src/VERSION +0 -1
  36. data/ext/apex_ext/apex_src/apex-debug.log +0 -4
  37. data/ext/apex_ext/apex_src/apex-header-2-rb@2x.webp +0 -0
  38. data/ext/apex_ext/apex_src/apex-plugins.json.example +0 -20
  39. data/ext/apex_ext/apex_src/apex.code-workspace +0 -38
  40. data/ext/apex_ext/apex_src/apex.pc.in +0 -11
  41. data/ext/apex_ext/apex_src/apex.taskpaper +0 -12
  42. data/ext/apex_ext/apex_src/apex_deflist_debug.log +0 -25
  43. data/ext/apex_ext/apex_src/buildnotes.md +0 -1435
  44. data/ext/apex_ext/apex_src/cli/main.c +0 -4588
  45. data/ext/apex_ext/apex_src/debug.log +0 -7
  46. data/ext/apex_ext/apex_src/debug_test.sh +0 -22
  47. data/ext/apex_ext/apex_src/docs/API_REFERENCE.md +0 -451
  48. data/ext/apex_ext/apex_src/docs/ARCHITECTURE.md +0 -166
  49. data/ext/apex_ext/apex_src/docs/CITATIONS_EXAMPLES.md +0 -274
  50. data/ext/apex_ext/apex_src/docs/CITATIONS_IMPLEMENTATION_PLAN.md +0 -749
  51. data/ext/apex_ext/apex_src/docs/CITATIONS_PLAN.md +0 -744
  52. data/ext/apex_ext/apex_src/docs/CMARK_INTEGRATION.md +0 -220
  53. data/ext/apex_ext/apex_src/docs/CRITICMARKUP.md +0 -501
  54. data/ext/apex_ext/apex_src/docs/DEBUGGING.md +0 -73
  55. data/ext/apex_ext/apex_src/docs/FINAL_STATUS.md +0 -391
  56. data/ext/apex_ext/apex_src/docs/FINAL_STATUS_UPDATE.md +0 -237
  57. data/ext/apex_ext/apex_src/docs/IAL_FEATURES.md +0 -210
  58. data/ext/apex_ext/apex_src/docs/IAL_STATUS.md +0 -344
  59. data/ext/apex_ext/apex_src/docs/INDEX_IMPLEMENTATION_ANALYSIS.md +0 -382
  60. data/ext/apex_ext/apex_src/docs/INTEGRATION_EXAMPLE.m +0 -144
  61. data/ext/apex_ext/apex_src/docs/LIMITATIONS_RESOLVED.md +0 -278
  62. data/ext/apex_ext/apex_src/docs/OUTPUT_MODES.md +0 -321
  63. data/ext/apex_ext/apex_src/docs/PROGRESS.md +0 -167
  64. data/ext/apex_ext/apex_src/docs/STANDALONE_FEATURE.md +0 -174
  65. data/ext/apex_ext/apex_src/docs/TABLE_SPANS_STATUS.md +0 -243
  66. data/ext/apex_ext/apex_src/docs/TEST_COVERAGE.md +0 -316
  67. data/ext/apex_ext/apex_src/docs/USER_GUIDE.md +0 -803
  68. data/ext/apex_ext/apex_src/docs/WIKI_LINKS_ISSUE.md +0 -91
  69. data/ext/apex_ext/apex_src/docs/index.md +0 -459
  70. data/ext/apex_ext/apex_src/docs/plans/2025-02-27-man-page-output-implementation.md +0 -351
  71. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-12-toc-output-format.md +0 -745
  72. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-18-bear-image-attributes.md +0 -829
  73. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-19-apex-node-npm.md +0 -1148
  74. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-12-toc-output-format-design.md +0 -161
  75. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-18-bear-image-attributes-design.md +0 -184
  76. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-19-apex-node-npm-design.md +0 -211
  77. data/ext/apex_ext/apex_src/documentation/README.md +0 -160
  78. data/ext/apex_ext/apex_src/documentation/app-settings-table.md +0 -67
  79. data/ext/apex_ext/apex_src/documentation/app-transformed/Citations.md +0 -340
  80. data/ext/apex_ext/apex_src/documentation/app-transformed/Credits.md +0 -11
  81. data/ext/apex_ext/apex_src/documentation/app-transformed/Header-IDs.md +0 -234
  82. data/ext/apex_ext/apex_src/documentation/app-transformed/Inline-Attribute-Lists.md +0 -516
  83. data/ext/apex_ext/apex_src/documentation/app-transformed/Metadata-Transforms.md +0 -461
  84. data/ext/apex_ext/apex_src/documentation/app-transformed/Modes.md +0 -193
  85. data/ext/apex_ext/apex_src/documentation/app-transformed/Multi-File-Documents.md +0 -201
  86. data/ext/apex_ext/apex_src/documentation/app-transformed/Plugins.md +0 -678
  87. data/ext/apex_ext/apex_src/documentation/app-transformed/Syntax.md +0 -1367
  88. data/ext/apex_ext/apex_src/documentation/docsets/Apex Command Line Options.cheatsheet.txt +0 -371
  89. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Info.plist +0 -24
  90. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/C-API.html +0 -2211
  91. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Callouts.html +0 -1194
  92. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Citations.html +0 -1620
  93. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Command-Line-Options.html +0 -6024
  94. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Configuration.html +0 -1877
  95. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Credits.html +0 -1040
  96. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Examples.html +0 -1402
  97. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Filters.html +0 -1656
  98. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Generating-Man-Pages.html +0 -1226
  99. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Getting-Started.html +0 -1148
  100. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Header-IDs.html +0 -1478
  101. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Home.html +0 -1225
  102. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Indices.html +0 -2327
  103. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Inline-Attribute-Lists.html +0 -2041
  104. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Installation.html +0 -1314
  105. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Limitations-and-Roadmap.html +0 -1868
  106. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Metadata-Transforms.html +0 -1731
  107. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Modes.html +0 -2242
  108. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-File-Documents.html +0 -1533
  109. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-Format-Images.html +0 -1362
  110. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Pandoc-Integration.html +0 -1338
  111. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Plugins.html +0 -3188
  112. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Quarto-Mode.html +0 -1405
  113. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Rendering-Markdown-In-Terminal.html +0 -1902
  114. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Syntax.html +0 -4222
  115. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Tables.html +0 -1781
  116. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Troubleshooting.html +0 -1629
  117. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Usage.html +0 -1394
  118. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Using-Apex-with-Jekyll.html +0 -1132
  119. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Writing-Tests.html +0 -1754
  120. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Xcode-Integration.html +0 -2562
  121. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/docSet.dsidx +0 -0
  122. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/optimizedIndex.dsidx +0 -0
  123. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Info.plist +0 -22
  124. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans.woff +0 -0
  125. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Bold.woff +0 -0
  126. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Bold_Italic.woff +0 -0
  127. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Extrabold.woff +0 -0
  128. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Extrabold_Italic.woff +0 -0
  129. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Italic.woff +0 -0
  130. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Semibold.woff +0 -0
  131. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Semibold_Italic.woff +0 -0
  132. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/index.html +0 -914
  133. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/style.css +0 -399
  134. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/docSet.dsidx +0 -0
  135. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/optimizedIndex.dsidx +0 -0
  136. data/ext/apex_ext/apex_src/documentation/generate_app_docs.rb +0 -772
  137. data/ext/apex_ext/apex_src/documentation/generate_app_docs_ai.rb +0 -678
  138. data/ext/apex_ext/apex_src/documentation/generate_docset.rb +0 -873
  139. data/ext/apex_ext/apex_src/documentation/generate_single_html.rb +0 -733
  140. data/ext/apex_ext/apex_src/documentation/html/apex-app-docs.html +0 -8746
  141. data/ext/apex_ext/apex_src/documentation/html/apex-docs.html +0 -17073
  142. data/ext/apex_ext/apex_src/documentation/shared_scripts.js +0 -64
  143. data/ext/apex_ext/apex_src/documentation/shared_styles.css +0 -651
  144. data/ext/apex_ext/apex_src/documentation/transform_for_app.example.md +0 -260
  145. data/ext/apex_ext/apex_src/documentation/transform_for_app.md +0 -55
  146. data/ext/apex_ext/apex_src/escaping-repro.md +0 -103
  147. data/ext/apex_ext/apex_src/examples/bracketed_spans_demo.md +0 -119
  148. data/ext/apex_ext/apex_src/examples/emoji_span_plugin.yml +0 -11
  149. data/ext/apex_ext/apex_src/examples/example.html +0 -53
  150. data/ext/apex_ext/apex_src/examples/example.md +0 -85
  151. data/ext/apex_ext/apex_src/examples/fenced_divs_demo.md +0 -158
  152. data/ext/apex_ext/apex_src/examples/kbd.md +0 -8
  153. data/ext/apex_ext/apex_src/examples/kbd_plugin.rb +0 -250
  154. data/ext/apex_ext/apex_src/examples/kbd_plugin.yml +0 -9
  155. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/Info.plist +0 -8
  156. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/QuickLook/Preview.png +0 -0
  157. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/document.wflow +0 -547
  158. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown-to-RTF.workflow.zip +0 -0
  159. data/ext/apex_ext/apex_src/examples/quick-actions/README.md +0 -33
  160. data/ext/apex_ext/apex_src/ial.html +0 -24
  161. data/ext/apex_ext/apex_src/icon/apexicon-outline-black.png +0 -0
  162. data/ext/apex_ext/apex_src/icon/apexicon-outline-black@2x.png +0 -0
  163. data/ext/apex_ext/apex_src/icon/apexicon-outline-mark.png +0 -0
  164. data/ext/apex_ext/apex_src/icon/apexicon-outline-mark@2x.png +0 -0
  165. data/ext/apex_ext/apex_src/icon/apexicon-outline-white.png +0 -0
  166. data/ext/apex_ext/apex_src/icon/apexicon-outline-white@2x.png +0 -0
  167. data/ext/apex_ext/apex_src/icon/apexicon.png +0 -0
  168. data/ext/apex_ext/apex_src/icon/apexicon@2x.png +0 -0
  169. data/ext/apex_ext/apex_src/man/apex-config.5 +0 -455
  170. data/ext/apex_ext/apex_src/man/apex-config.5.md +0 -262
  171. data/ext/apex_ext/apex_src/man/apex-plugins.7 +0 -541
  172. data/ext/apex_ext/apex_src/man/apex-plugins.7.md +0 -365
  173. data/ext/apex_ext/apex_src/man/apex.1 +0 -583
  174. data/ext/apex_ext/apex_src/man/apex.1.html +0 -703
  175. data/ext/apex_ext/apex_src/man/apex.1.md +0 -803
  176. data/ext/apex_ext/apex_src/man/apex.1.new +0 -338
  177. data/ext/apex_ext/apex_src/objc/Apex.swift +0 -316
  178. data/ext/apex_ext/apex_src/objc/ApexPlugins.swift +0 -79
  179. data/ext/apex_ext/apex_src/objc/NSString+Apex.h +0 -207
  180. data/ext/apex_ext/apex_src/objc/NSString+Apex.m +0 -584
  181. data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.h +0 -76
  182. data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.m +0 -169
  183. data/ext/apex_ext/apex_src/output.html +0 -87
  184. data/ext/apex_ext/apex_src/pages/index.md +0 -459
  185. data/ext/apex_ext/apex_src/plans/quarto-mode.md +0 -442
  186. data/ext/apex_ext/apex_src/src/_README.md +0 -413
  187. data/ext/apex_ext/apex_src/src/extensions/github-emoji.txt +0 -869
  188. data/ext/apex_ext/apex_src/test-linux-build.sh +0 -20
  189. data/ext/apex_ext/apex_src/test.html +0 -103
  190. data/ext/apex_ext/apex_src/test_coverage.sh +0 -121
  191. data/ext/apex_ext/apex_src/test_ial_fenced.md +0 -6
  192. data/ext/apex_ext/apex_src/test_math_norm.py +0 -79
  193. data/ext/apex_ext/apex_src/test_pandoc_output.html +0 -48
  194. data/ext/apex_ext/apex_src/test_spm.sh +0 -107
  195. data/ext/apex_ext/apex_src/tests/ApexSPMTest/main.swift +0 -50
  196. data/ext/apex_ext/apex_src/tests/BENCHMARK_RESULTS.md +0 -229
  197. data/ext/apex_ext/apex_src/tests/CMakeLists.txt +0 -25
  198. data/ext/apex_ext/apex_src/tests/README.md +0 -152
  199. data/ext/apex_ext/apex_src/tests/benchmark.sh +0 -113
  200. data/ext/apex_ext/apex_src/tests/benchmark_comparison.sh +0 -166
  201. data/ext/apex_ext/apex_src/tests/compare_header_ids.sh +0 -31
  202. data/ext/apex_ext/apex_src/tests/fixtures/basic/headers.md +0 -25
  203. data/ext/apex_ext/apex_src/tests/fixtures/basic/list-interruption.md +0 -24
  204. data/ext/apex_ext/apex_src/tests/fixtures/basic/misc_markup.md +0 -33
  205. data/ext/apex_ext/apex_src/tests/fixtures/basic/test_basic.md +0 -26
  206. data/ext/apex_ext/apex_src/tests/fixtures/code/code-blocks.md +0 -260
  207. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/SUMMARY.md +0 -6
  208. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/chapter1.md +0 -7
  209. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/index.txt +0 -9
  210. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/intro.md +0 -5
  211. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/section1_1.md +0 -5
  212. data/ext/apex_ext/apex_src/tests/fixtures/comprehensive_test.md +0 -652
  213. data/ext/apex_ext/apex_src/tests/fixtures/debug_ref_image_ial.md +0 -3
  214. data/ext/apex_ext/apex_src/tests/fixtures/demos/ial.md +0 -11
  215. data/ext/apex_ext/apex_src/tests/fixtures/demos/ial_demo.md +0 -177
  216. data/ext/apex_ext/apex_src/tests/fixtures/extensions/emoji-autocorrect.md +0 -94
  217. data/ext/apex_ext/apex_src/tests/fixtures/extensions/emoji_test.md +0 -3
  218. data/ext/apex_ext/apex_src/tests/fixtures/extensions/kbd_test.md +0 -3
  219. data/ext/apex_ext/apex_src/tests/fixtures/filters/filter_output_with_rawblock.json +0 -1
  220. data/ext/apex_ext/apex_src/tests/fixtures/filters/unwrap.md +0 -7
  221. data/ext/apex_ext/apex_src/tests/fixtures/ial/bracketed_spans_test.md +0 -74
  222. data/ext/apex_ext/apex_src/tests/fixtures/images/auto-wildcard.md +0 -8
  223. data/ext/apex_ext/apex_src/tests/fixtures/images/bear_image_attributes.md +0 -10
  224. data/ext/apex_ext/apex_src/tests/fixtures/images/image_and_encoding_test.md +0 -27
  225. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.avif +0 -0
  226. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.jpg +0 -0
  227. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.webp +0 -0
  228. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.avif +0 -0
  229. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.jpg +0 -0
  230. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.webp +0 -0
  231. data/ext/apex_ext/apex_src/tests/fixtures/images/media_formats_test.md +0 -63
  232. data/ext/apex_ext/apex_src/tests/fixtures/images/multimarkdown_image_attributes_test.md +0 -60
  233. data/ext/apex_ext/apex_src/tests/fixtures/images/pandoc_ial_image_test.md +0 -27
  234. data/ext/apex_ext/apex_src/tests/fixtures/images/width_height_conversion_test.md +0 -94
  235. data/ext/apex_ext/apex_src/tests/fixtures/img-in-div.md +0 -16
  236. data/ext/apex_ext/apex_src/tests/fixtures/includes/code.py +0 -4
  237. data/ext/apex_ext/apex_src/tests/fixtures/includes/data-semi.csv +0 -3
  238. data/ext/apex_ext/apex_src/tests/fixtures/includes/data.csv +0 -5
  239. data/ext/apex_ext/apex_src/tests/fixtures/includes/data.tsv +0 -5
  240. data/ext/apex_ext/apex_src/tests/fixtures/includes/image.png +0 -2
  241. data/ext/apex_ext/apex_src/tests/fixtures/includes/metadata_options.yml +0 -11
  242. data/ext/apex_ext/apex_src/tests/fixtures/includes/nested.md +0 -8
  243. data/ext/apex_ext/apex_src/tests/fixtures/includes/raw.html +0 -4
  244. data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.md +0 -19
  245. data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.txt +0 -11
  246. data/ext/apex_ext/apex_src/tests/fixtures/includes/simple.md +0 -7
  247. data/ext/apex_ext/apex_src/tests/fixtures/includes/test_image.png +0 -0
  248. data/ext/apex_ext/apex_src/tests/fixtures/includes/with space.txt +0 -1
  249. data/ext/apex_ext/apex_src/tests/fixtures/large_doc.md +0 -1094
  250. data/ext/apex_ext/apex_src/tests/fixtures/metadata/mmd-metadata.md +0 -5
  251. data/ext/apex_ext/apex_src/tests/fixtures/metadata/pandoc-meta.md +0 -4
  252. data/ext/apex_ext/apex_src/tests/fixtures/metadata/yaml-frontmatter.md +0 -6
  253. data/ext/apex_ext/apex_src/tests/fixtures/metadata_options.yml +0 -11
  254. data/ext/apex_ext/apex_src/tests/fixtures/minimal_pb.md +0 -2
  255. data/ext/apex_ext/apex_src/tests/fixtures/obsidian-callouts.md +0 -46
  256. data/ext/apex_ext/apex_src/tests/fixtures/output/gfm_header_id_test.md +0 -96
  257. data/ext/apex_ext/apex_src/tests/fixtures/output/test_citations.md +0 -43
  258. data/ext/apex_ext/apex_src/tests/fixtures/output/test_def_list_links.md +0 -12
  259. data/ext/apex_ext/apex_src/tests/fixtures/output/test_index_mmark.md +0 -53
  260. data/ext/apex_ext/apex_src/tests/fixtures/output/test_index_textindex.md +0 -37
  261. data/ext/apex_ext/apex_src/tests/fixtures/pagebreak_html_repro.md +0 -5
  262. data/ext/apex_ext/apex_src/tests/fixtures/python-callouts.md +0 -47
  263. data/ext/apex_ext/apex_src/tests/fixtures/quarto/callouts.md +0 -3
  264. data/ext/apex_ext/apex_src/tests/fixtures/quarto/code-attrs.md +0 -3
  265. data/ext/apex_ext/apex_src/tests/fixtures/quarto/diagrams.md +0 -8
  266. data/ext/apex_ext/apex_src/tests/fixtures/quarto/lists.md +0 -19
  267. data/ext/apex_ext/apex_src/tests/fixtures/quarto/raw-content.md +0 -5
  268. data/ext/apex_ext/apex_src/tests/fixtures/quarto/shortcodes.md +0 -7
  269. data/ext/apex_ext/apex_src/tests/fixtures/quarto/smoke.md +0 -81
  270. data/ext/apex_ext/apex_src/tests/fixtures/quarto/spans.md +0 -5
  271. data/ext/apex_ext/apex_src/tests/fixtures/quarto-callouts.md +0 -47
  272. data/ext/apex_ext/apex_src/tests/fixtures/speed.md +0 -192
  273. data/ext/apex_ext/apex_src/tests/fixtures/tables/advanced_tables_test.md +0 -93
  274. data/ext/apex_ext/apex_src/tests/fixtures/tables/grid-tables.md +0 -37
  275. data/ext/apex_ext/apex_src/tests/fixtures/tables/inline_tables_test.md +0 -41
  276. data/ext/apex_ext/apex_src/tests/fixtures/tables/relaxed-table.md +0 -12
  277. data/ext/apex_ext/apex_src/tests/fixtures/tables/table_cr_line_endings.md +0 -15
  278. data/ext/apex_ext/apex_src/tests/fixtures/tables/table_no_trailing_newline.md +0 -15
  279. data/ext/apex_ext/apex_src/tests/generate_gfm_ids.sh +0 -105
  280. data/ext/apex_ext/apex_src/tests/generate_ial_demo.sh +0 -143
  281. data/ext/apex_ext/apex_src/tests/gfm_id_comparison_summary.md +0 -96
  282. data/ext/apex_ext/apex_src/tests/gh_api_test.md +0 -6
  283. data/ext/apex_ext/apex_src/tests/ial_demo.html +0 -186
  284. data/ext/apex_ext/apex_src/tests/include_code.py +0 -19
  285. data/ext/apex_ext/apex_src/tests/include_snippet.md +0 -15
  286. data/ext/apex_ext/apex_src/tests/metadata_cli_test.sh +0 -119
  287. data/ext/apex_ext/apex_src/tests/multi_file_cli_test.sh +0 -64
  288. data/ext/apex_ext/apex_src/tests/paginate_cli_test.sh +0 -80
  289. data/ext/apex_ext/apex_src/tests/sample_data.csv +0 -7
  290. data/ext/apex_ext/apex_src/tests/table_escaped_ltlt.md +0 -4
  291. data/ext/apex_ext/apex_src/tests/terminal_width_test.sh +0 -29
  292. data/ext/apex_ext/apex_src/tests/test-swift-package.sh +0 -14
  293. data/ext/apex_ext/apex_src/tests/test_basic.c +0 -74
  294. data/ext/apex_ext/apex_src/tests/test_bear_image_attrs.c +0 -301
  295. data/ext/apex_ext/apex_src/tests/test_cmark_callback.c +0 -189
  296. data/ext/apex_ext/apex_src/tests/test_concordance.tsv +0 -4
  297. data/ext/apex_ext/apex_src/tests/test_custom_plugins.c +0 -78
  298. data/ext/apex_ext/apex_src/tests/test_escaping_repro.c +0 -82
  299. data/ext/apex_ext/apex_src/tests/test_extensions.c +0 -3337
  300. data/ext/apex_ext/apex_src/tests/test_helpers.c +0 -183
  301. data/ext/apex_ext/apex_src/tests/test_helpers.h +0 -91
  302. data/ext/apex_ext/apex_src/tests/test_ial.c +0 -289
  303. data/ext/apex_ext/apex_src/tests/test_links.c +0 -418
  304. data/ext/apex_ext/apex_src/tests/test_marked_integration.c +0 -290
  305. data/ext/apex_ext/apex_src/tests/test_metadata.c +0 -1147
  306. data/ext/apex_ext/apex_src/tests/test_output.c +0 -2056
  307. data/ext/apex_ext/apex_src/tests/test_plugins.c +0 -219
  308. data/ext/apex_ext/apex_src/tests/test_refs.bib +0 -31
  309. data/ext/apex_ext/apex_src/tests/test_runner.c +0 -268
  310. data/ext/apex_ext/apex_src/tests/test_syntax_highlight.c +0 -198
  311. data/ext/apex_ext/apex_src/tests/test_tables.c +0 -1298
  312. data/ext/apex_ext/apex_src/tests/update_benchmarks.sh +0 -9
  313. data/ext/apex_ext/apex_src/tests/yaml_test.md +0 -13
  314. data/ext/apex_ext/apex_src/tests.rb +0 -39
  315. data/ext/apex_ext/apex_src/vendor/cmark-gfm/CMakeLists.txt +0 -48
  316. data/ext/apex_ext/apex_src/vendor/cmark-gfm/CheckFileOffsetBits.c +0 -14
  317. data/ext/apex_ext/apex_src/vendor/cmark-gfm/CheckFileOffsetBits.cmake +0 -43
  318. data/ext/apex_ext/apex_src/vendor/cmark-gfm/FindAsan.cmake +0 -74
  319. data/ext/apex_ext/apex_src/vendor/cmark-gfm/Makefile.nmake +0 -38
  320. data/ext/apex_ext/apex_src/vendor/cmark-gfm/README.md +0 -206
  321. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/CMakeLists.txt +0 -30
  322. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/cplusplus.cpp +0 -15
  323. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/cplusplus.h +0 -16
  324. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/harness.c +0 -111
  325. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/harness.h +0 -35
  326. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/main.c +0 -1169
  327. data/ext/apex_ext/apex_src/vendor/cmark-gfm/appveyor.yml +0 -21
  328. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-bq-flat.md +0 -16
  329. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-bq-nested.md +0 -13
  330. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-code.md +0 -11
  331. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-fences.md +0 -14
  332. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-heading.md +0 -9
  333. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-hr.md +0 -10
  334. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-html.md +0 -32
  335. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-lheading.md +0 -8
  336. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-list-flat.md +0 -67
  337. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-list-nested.md +0 -36
  338. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-ref-flat.md +0 -15
  339. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-ref-nested.md +0 -17
  340. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-autolink.md +0 -14
  341. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-backticks.md +0 -3
  342. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-flat.md +0 -5
  343. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-nested.md +0 -5
  344. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-worst.md +0 -5
  345. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-entity.md +0 -11
  346. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-escape.md +0 -15
  347. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-html.md +0 -44
  348. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-links-flat.md +0 -23
  349. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-links-nested.md +0 -13
  350. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-newlines.md +0 -24
  351. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/lorem1.md +0 -13
  352. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/rawtabs.md +0 -18
  353. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/statistics.py +0 -595
  354. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/stats.py +0 -19
  355. data/ext/apex_ext/apex_src/vendor/cmark-gfm/benchmarks.md +0 -33
  356. data/ext/apex_ext/apex_src/vendor/cmark-gfm/changelog.txt +0 -1245
  357. data/ext/apex_ext/apex_src/vendor/cmark-gfm/data/CaseFolding.txt +0 -1495
  358. data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/CMakeLists.txt +0 -119
  359. data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/ext_scanners.re +0 -92
  360. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/CMakeLists.txt +0 -22
  361. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/README.md +0 -12
  362. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzz_quadratic.c +0 -91
  363. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzz_quadratic_brackets.c +0 -110
  364. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzzloop.sh +0 -28
  365. data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/CMakeLists.txt +0 -10
  366. data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/make_man_page.py +0 -133
  367. data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/man1/cmark-gfm.1 +0 -78
  368. data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/man3/cmark-gfm.3 +0 -1041
  369. data/ext/apex_ext/apex_src/vendor/cmark-gfm/nmake.bat +0 -1
  370. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/CMakeLists.txt +0 -230
  371. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark-gfm_version.h.in +0 -7
  372. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/config.h +0 -38
  373. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/config.h.in +0 -76
  374. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/libcmark-gfm.pc.in +0 -10
  375. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/scanners.re +0 -365
  376. data/ext/apex_ext/apex_src/vendor/cmark-gfm/suppressions +0 -10
  377. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/CMakeLists.txt +0 -114
  378. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/__pycache__/cmark.cpython-314.pyc +0 -0
  379. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/__pycache__/normalize.cpython-314.pyc +0 -0
  380. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/afl_test_cases/test.md +0 -49
  381. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/cmark-fuzz.c +0 -58
  382. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/cmark.py +0 -105
  383. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/entity_tests.py +0 -67
  384. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions-full-info-string.txt +0 -0
  385. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions-table-prefer-style-attributes.txt +0 -38
  386. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions.txt +0 -989
  387. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/fuzzing_dictionary +0 -67
  388. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/normalize.py +0 -194
  389. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/pathological_tests.py +0 -160
  390. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/regression.txt +0 -375
  391. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/roundtrip_tests.py +0 -50
  392. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/run-cmark-fuzz +0 -4
  393. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/smart_punct.txt +0 -177
  394. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/spec.txt +0 -10212
  395. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/spec_tests.py +0 -152
  396. data/ext/apex_ext/apex_src/vendor/cmark-gfm/toolchain-mingw32.cmake +0 -17
  397. data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/Dockerfile +0 -41
  398. data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/appveyor-build.bat +0 -13
  399. data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/make_entities_inc.py +0 -32
  400. data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/mkcasefold.pl +0 -22
  401. data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/xml2md.xsl +0 -319
  402. data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/xml2md_gfm.xsl +0 -80
  403. data/ext/apex_ext/apex_src/vendor/cmark-gfm/why-cmark-and-not-x.md +0 -104
  404. data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.js +0 -6
  405. data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.py +0 -37
  406. data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.rb +0 -15
  407. data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.rkt +0 -208
  408. data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper_ext.py +0 -109
  409. data/ext/apex_ext/apex_src/vendor/libyaml/CMakeLists.txt +0 -160
  410. data/ext/apex_ext/apex_src/vendor/libyaml/Changes +0 -372
  411. data/ext/apex_ext/apex_src/vendor/libyaml/License +0 -20
  412. data/ext/apex_ext/apex_src/vendor/libyaml/Makefile.am +0 -51
  413. data/ext/apex_ext/apex_src/vendor/libyaml/ReadMe.md +0 -46
  414. data/ext/apex_ext/apex_src/vendor/libyaml/announcement.msg +0 -89
  415. data/ext/apex_ext/apex_src/vendor/libyaml/bootstrap +0 -3
  416. data/ext/apex_ext/apex_src/vendor/libyaml/cmake/config.h.in +0 -4
  417. data/ext/apex_ext/apex_src/vendor/libyaml/configure.ac +0 -73
  418. data/ext/apex_ext/apex_src/vendor/libyaml/doc/doxygen.cfg +0 -222
  419. data/ext/apex_ext/apex_src/vendor/libyaml/docker/README.mkd +0 -17
  420. data/ext/apex_ext/apex_src/vendor/libyaml/docker/alpine-3.7 +0 -26
  421. data/ext/apex_ext/apex_src/vendor/libyaml/docker/fedora-25 +0 -26
  422. data/ext/apex_ext/apex_src/vendor/libyaml/docker/ubuntu-14.04 +0 -29
  423. data/ext/apex_ext/apex_src/vendor/libyaml/docker/ubuntu-16.04 +0 -24
  424. data/ext/apex_ext/apex_src/vendor/libyaml/examples/anchors.yaml +0 -10
  425. data/ext/apex_ext/apex_src/vendor/libyaml/examples/array.yaml +0 -2
  426. data/ext/apex_ext/apex_src/vendor/libyaml/examples/global-tag.yaml +0 -14
  427. data/ext/apex_ext/apex_src/vendor/libyaml/examples/json.yaml +0 -1
  428. data/ext/apex_ext/apex_src/vendor/libyaml/examples/mapping.yaml +0 -2
  429. data/ext/apex_ext/apex_src/vendor/libyaml/examples/numbers.yaml +0 -1
  430. data/ext/apex_ext/apex_src/vendor/libyaml/examples/strings.yaml +0 -7
  431. data/ext/apex_ext/apex_src/vendor/libyaml/examples/tags.yaml +0 -7
  432. data/ext/apex_ext/apex_src/vendor/libyaml/examples/yaml-version.yaml +0 -3
  433. data/ext/apex_ext/apex_src/vendor/libyaml/include/Makefile.am +0 -17
  434. data/ext/apex_ext/apex_src/vendor/libyaml/include/yaml.h +0 -1999
  435. data/ext/apex_ext/apex_src/vendor/libyaml/pkg/ReadMe.md +0 -77
  436. data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/Dockerfile +0 -32
  437. data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/output/ReadMe +0 -1
  438. data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/scripts/libyaml-dist.sh +0 -23
  439. data/ext/apex_ext/apex_src/vendor/libyaml/regression-inputs/clusterfuzz-testcase-minimized-5607885063061504.yml +0 -1
  440. data/ext/apex_ext/apex_src/vendor/libyaml/src/Makefile.am +0 -4
  441. data/ext/apex_ext/apex_src/vendor/libyaml/src/api.c +0 -1393
  442. data/ext/apex_ext/apex_src/vendor/libyaml/src/dumper.c +0 -394
  443. data/ext/apex_ext/apex_src/vendor/libyaml/src/emitter.c +0 -2358
  444. data/ext/apex_ext/apex_src/vendor/libyaml/src/loader.c +0 -544
  445. data/ext/apex_ext/apex_src/vendor/libyaml/src/parser.c +0 -1416
  446. data/ext/apex_ext/apex_src/vendor/libyaml/src/reader.c +0 -469
  447. data/ext/apex_ext/apex_src/vendor/libyaml/src/scanner.c +0 -3598
  448. data/ext/apex_ext/apex_src/vendor/libyaml/src/writer.c +0 -141
  449. data/ext/apex_ext/apex_src/vendor/libyaml/src/yaml_private.h +0 -684
  450. data/ext/apex_ext/apex_src/vendor/libyaml/tests/CMakeLists.txt +0 -27
  451. data/ext/apex_ext/apex_src/vendor/libyaml/tests/Makefile.am +0 -9
  452. data/ext/apex_ext/apex_src/vendor/libyaml/tests/ReadMe.md +0 -63
  453. data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-deconstructor-alt.c +0 -800
  454. data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-deconstructor.c +0 -1127
  455. data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-reformatter-alt.c +0 -217
  456. data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-reformatter.c +0 -202
  457. data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-all-tests.sh +0 -29
  458. data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-dumper.c +0 -314
  459. data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-emitter-test-suite.c +0 -290
  460. data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-emitter.c +0 -327
  461. data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-loader.c +0 -63
  462. data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-parser-test-suite.c +0 -196
  463. data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-parser.c +0 -88
  464. data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-scanner.c +0 -63
  465. data/ext/apex_ext/apex_src/vendor/libyaml/tests/test-reader.c +0 -354
  466. data/ext/apex_ext/apex_src/vendor/libyaml/tests/test-version.c +0 -29
  467. data/ext/apex_ext/apex_src/vendor/libyaml/yaml-0.1.pc.in +0 -10
  468. data/ext/apex_ext/apex_src/vendor/libyaml/yamlConfig.cmake.in +0 -16
  469. data/ext/apex_ext/apex_src/xcode_build/CMakeScripts/ReRunCMake.make +0 -74
  470. data/ext/apex_ext/apex_src/xcode_build/CTestTestfile.cmake +0 -22
  471. data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/Apex +0 -0
  472. data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/Resources/Info.plist +0 -44
  473. data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/_CodeSignature/CodeResources +0 -128
  474. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.pbxproj +0 -5118
  475. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +0 -8
  476. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcuserdata/ttscoff.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  477. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcuserdata/ttscoff.xcuserdatad/WorkspaceSettings.xcsettings +0 -8
  478. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/xcuserdata/ttscoff.xcuserdatad/xcschemes/xcschememanagement.plist +0 -99
  479. data/ext/apex_ext/apex_src/xcode_build/cmake_install.cmake +0 -452
  480. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/CMakeScripts/ReRunCMake.make +0 -52
  481. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmake_install.cmake +0 -55
  482. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmark-gfm.xcodeproj/project.pbxproj +0 -2455
  483. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmark-gfm.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +0 -8
  484. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/extensions/cmake_install.cmake +0 -171
  485. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/man/cmake_install.cmake +0 -55
  486. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmake_install.cmake +0 -220
  487. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmark-gfm_export.h +0 -43
  488. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmark-gfm_version.h +0 -7
  489. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/config.h +0 -76
  490. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/libcmark-gfm.pc +0 -10
@@ -1,229 +0,0 @@
1
- # Apex Markdown Processor - Benchmark Results
2
-
3
- ## Test Document Specifications
4
-
5
- | Metric | Value |
6
- |--------|-------|
7
- | **File** | `tests/comprehensive_test.md` |
8
- | **Lines** | 592 |
9
- | **Words** | 2,360 |
10
- | **Size** | 16,436 bytes (16 KB) |
11
- | **Output** | 28,151 bytes (27.5 KB HTML) |
12
-
13
- ## Features Tested
14
-
15
- The comprehensive test document exercises **all** Apex
16
- features:
17
-
18
- - ✅ Basic Markdown (headings, paragraphs, lists, emphasis)
19
- - ✅ Extended Markdown (tables, footnotes, task lists)
20
- - ✅ YAML/MMD/Pandoc metadata extraction
21
- - ✅ Metadata variable replacement `[%key]`
22
- - ✅ Wiki links `[[Page]]`
23
- - ✅ Mathematics (inline `$x$` and display `$$math$$`)
24
- - ✅ Critic Markup (all 5 types)
25
- - ✅ Callouts (Bear/Obsidian/Xcode syntax)
26
- - ✅ Definition lists with block content
27
- - ✅ Abbreviations (multiple syntaxes)
28
- - ✅ GitHub emoji `:rocket:`
29
- - ✅ Kramdown IAL attributes `{: #id .class}`
30
- - ✅ Smart typography (em-dash, quotes, ellipsis)
31
- - ✅ Advanced tables (rowspan, colspan, captions)
32
- - ✅ Code blocks with language tags
33
- - ✅ HTML with markdown attributes
34
- - ✅ File includes (markdown, code, HTML, CSV)
35
- - ✅ TOC generation
36
- - ✅ Special markers (page breaks, pauses)
37
- - ✅ Inline footnotes
38
- - ✅ End-of-block markers
39
-
40
- ## Performance Benchmarks
41
-
42
- ### Processing Times (50 iterations average)
43
-
44
- | Mode | Average | Min | Max | Throughput |
45
- |------|---------|-----|-----|------------|
46
- | **Fragment** (default) | 14ms | 8ms | 125ms | ~236,000
47
- words/sec |
48
- | **Pretty-Print** | 10ms | 9ms | 19ms | ~236,000 words/sec
49
- |
50
- | **Standalone** | 9ms | 9ms | 11ms | ~262,000 words/sec |
51
- | **Standalone + Pretty** | 13ms | 9ms | 44ms | ~181,000
52
- words/sec |
53
-
54
- ### Mode Comparison
55
-
56
- | Mode | Time | Description |
57
- |------|------|-------------|
58
- | CommonMark only | 5ms | Minimal parsing (baseline) |
59
- | GFM extensions | 4ms | GitHub Flavored Markdown |
60
- | **Full Apex** | **6ms** | All custom features enabled |
61
-
62
- ## Feature Verification
63
-
64
- Generated HTML contains:
65
-
66
- | Feature | Count in Output |
67
- |---------|----------------|
68
- | Metadata references | 21 |
69
- | Tables | 5 |
70
- | Code blocks | 1+ |
71
- | Footnotes | 14 |
72
- | Math expressions | 5 |
73
- | Callouts | 9 |
74
- | Definition lists | 8 |
75
- | Task lists | 4 |
76
-
77
- ## Performance Analysis
78
-
79
- ### Speed Metrics
80
-
81
- - **Processing rate**: ~236,000 words per second
82
- - **Overhead**: Only ~2ms for all custom extensions vs base
83
-
84
- CommonMark
85
-
86
- - **Memory efficiency**: Processes 16 KB document in < 10ms
87
- - **Consistency**: Low variance (max/min ratio < 5x)
88
-
89
- ### Real-World Implications
90
-
91
- For typical documents:
92
-
93
- | Document Size | Estimated Processing Time |
94
- |---------------|--------------------------|
95
- | 1,000 words (blog post) | < 5ms |
96
- | 5,000 words (article) | < 20ms |
97
- | 10,000 words (chapter) | < 40ms |
98
- | 50,000 words (book) | < 200ms |
99
-
100
- ### Performance Characteristics
101
-
102
- **Strengths:**
103
-
104
- - Extremely fast baseline (cmark-gfm)
105
- - Minimal overhead from extensions
106
- - Excellent for batch processing
107
- - Suitable for real-time preview
108
-
109
- **Observations:**
110
-
111
- - Pretty-print adds minimal overhead (~3-4ms)
112
- - Standalone HTML generation is actually *faster* (more
113
-
114
- consistent caching)
115
-
116
- - Combined features scale linearly
117
-
118
- ## Testing Methodology
119
-
120
- ### Benchmark Setup
121
-
122
- - **Iterations**: 50 runs per test
123
- - **Warm-up**: 1 iteration before timing
124
- - **Environment**: macOS, AppleClang 17.0.0
125
- - **Build**: Release mode with optimizations
126
- - **Measurement**: Wall-clock time (real time)
127
-
128
- ### Test Document Design
129
-
130
- The comprehensive test document includes:
131
-
132
- 1. **Variety**: All features used at least once
133
- 2. **Realism**: Structured like actual documentation
134
- 3. **Scale**: Large enough to measure accurately (592 lines)
135
- 4. **Complexity**: Nested structures, mixed content types
136
-
137
- **Edge cases**: Tables with text after, nested lists, etc.
138
-
139
- ## Output Quality
140
-
141
- ### HTML Generation
142
-
143
- - **Valid HTML5**: Proper structure and semantics
144
- - **Pretty-print**: Well-formatted with 2-space indentation
145
- - **Standalone**: Complete document with CSS and meta tags
146
- - **Classes**: Proper CSS classes for styling hooks
147
-
148
- ### Feature Rendering
149
-
150
- All tested features render correctly:
151
-
152
- - Tables properly formatted with thead/tbody
153
- - Footnotes generated with backlinks
154
- - Math wrapped in appropriate span classes
155
- - Callouts with semantic HTML and classes
156
- - Definition lists with dl/dt/dd structure
157
- - Task lists with checkbox inputs
158
- - Code blocks with language classes
159
-
160
- ## Regression Testing
161
-
162
- ### Table Row Bug (Fixed)
163
-
164
- The benchmark document specifically tests the table row
165
- regression:
166
-
167
- ```markdown
168
- | Header |
169
- |--------|
170
- | Row 1 |
171
- | Row 2 |
172
-
173
- Text after table.
174
-
175
- ```
176
-
177
- **Result**: ✅ All rows properly rendered in table, text
178
- correctly follows.
179
-
180
- ## Comparison with Other Processors
181
-
182
- ### Relative Performance
183
-
184
- While we haven't benchmarked against other processors in
185
- this session, Apex's performance characteristics suggest:
186
-
187
- - Faster than most interpreted Markdown processors (Ruby,
188
-
189
- Python)
190
-
191
- - Competitive with native processors (cmark, Discount)
192
- - More features than any single alternative
193
-
194
- ### Feature Parity
195
-
196
- | Processor | Features | Speed | Extensibility |
197
- |-----------|----------|-------|---------------|
198
- | CommonMark | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ |
199
- | GFM | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐ |
200
- | MMD | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
201
- | Kramdown | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
202
- | **Apex** | **⭐⭐⭐⭐⭐** | **⭐⭐⭐⭐⭐** | **⭐⭐⭐⭐⭐** |
203
-
204
- ## Conclusion
205
-
206
- Apex demonstrates:
207
-
208
- **Exceptional speed**: < 15ms for complex 592-line documents
209
-
210
- 2. **Feature completeness**: All planned features working
211
- 3. **Reliability**: Consistent performance across runs
212
- 4. **Production readiness**: Suitable for real-world use
213
-
214
- ### Throughput Summary
215
-
216
- - **236,000 words/second** sustained throughput
217
- - **~0.006ms per word** average processing time
218
- - **~0.025ms per line** for complex markdown
219
-
220
- **This places Apex among the fastest Markdown processors
221
- available while offering the most comprehensive feature
222
- set.**
223
-
224
- ---
225
-
226
- *Benchmark Date: 2025-12-05*
227
- *Apex Version: 0.1.0*
228
- *Build: Release (optimized)*
229
-
@@ -1,25 +0,0 @@
1
- cmake_minimum_required(VERSION 3.10)
2
-
3
- # Test runner - split into multiple files for better organization
4
- add_executable(test_runner
5
- test_helpers.c
6
- test_runner.c
7
- test_basic.c
8
- test_cmark_callback.c
9
- test_metadata.c
10
- test_links.c
11
- test_tables.c
12
- test_ial.c
13
- test_extensions.c
14
- test_output.c
15
- test_marked_integration.c
16
- )
17
- target_link_libraries(test_runner apex)
18
- target_compile_definitions(test_runner PRIVATE TEST_FIXTURES_DIR="${CMAKE_CURRENT_SOURCE_DIR}/fixtures/includes")
19
-
20
- # Add tests
21
- add_test(NAME basic_tests COMMAND test_runner)
22
-
23
- # Example test files
24
- configure_file(test_basic.md test_basic.md COPYONLY)
25
-
@@ -1,152 +0,0 @@
1
- # Apex Test Suite
2
-
3
- ## Running Tests
4
-
5
- ```bash
6
- cd /path/to/apex
7
- ./build/apex_test_runner
8
-
9
- ```
10
-
11
- ## Test Coverage
12
-
13
- **Total Tests**: 623
14
- **Status**: All passing ✓
15
- **Coverage**: 95% of implemented features
16
-
17
- ## Code Coverage (Optional)
18
-
19
- If you want **line/branch coverage** (as opposed to feature coverage), Apex includes an optional helper script that builds with clang’s coverage instrumentation and generates an `llvm-cov` report.
20
-
21
- ```bash
22
- cd /path/to/apex
23
- ./test_coverage.sh
24
- ```
25
-
26
- Notes:
27
- - Requires **clang** and LLVM tools (`llvm-cov` + `llvm-profdata`). On macOS, Xcode’s `xcrun` can provide these.
28
- - Output goes to `build-coverage/` and does not affect the normal `build/` directory.
29
- - Useful flags:
30
- - `./test_coverage.sh --no-html` (print summary only)
31
- - `./test_coverage.sh --no-open` (don’t auto-open the HTML report)
32
-
33
- ### Test Categories
34
-
35
- 1. **Basic Markdown** (5 tests)
36
- - Headers, emphasis, lists
37
-
38
- 2. **GFM Features** (5 tests)
39
- - Strikethrough, task lists, tables
40
-
41
- 3. **Metadata** (4 tests)
42
- - YAML, MMD, Pandoc formats
43
- - Variable replacement (`[%key]`)
44
-
45
- 4. **Wiki Links** (15 tests)
46
- - Basic links, display text, sections
47
- - Space modes: dash, none, underscore, space
48
- - Extension handling (with/without leading dot)
49
- - Combinations of space modes and extensions
50
-
51
- 5. **Math Support** (4 tests)
52
- - Inline and display math
53
- - False positive prevention
54
-
55
- 6. **Critic Markup** (3 tests)
56
- - Addition, deletion, highlight
57
-
58
- 7. **Processor Modes** (4 tests)
59
- - CommonMark, GFM, MMD, Unified
60
-
61
- 8. **File Includes** (16 tests) ✨ NEW
62
- - Marked: `<<[md]`, `<<(code)`, `<<{html}`
63
- - MMD: `{{file}}`
64
- - iA Writer: `/filename`
65
- - CSV/TSV to table
66
-
67
- 9. **IAL** (5 tests) ✨ NEW
68
- - ID and class attributes
69
- - Multiple classes
70
-
71
- 10. **Definition Lists** (11 tests) ✨ NEW
72
- - Basic syntax
73
- - Multiple definitions
74
-
75
- 11. **Advanced Tables** (6 tests)
76
- - Captions, rowspan, colspan
77
-
78
- 12. **Callouts** (10 tests) ✨ NEW
79
- - Bear/Obsidian/Xcode syntax
80
- - All callout types
81
- - Collapsible callouts
82
-
83
- 13. **TOC Generation** (14 tests) ✨ NEW
84
- - Multiple marker formats
85
- - Depth control
86
- - Nested structure
87
-
88
- 14. **Terminal Output** (12 tests)
89
- - ANSI terminal and terminal256 format
90
- - List markers (bullet and ordered, default list_marker styling)
91
- - terminal_width option (library)
92
- - Optional script: `./tests/terminal_width_test.sh` checks CLI `--width` wrapping
93
-
94
- 15. **HTML Markdown Attributes** (9 tests) ✨ NEW
95
- - markdown="1", "block", "span", "0"
96
- - Nested HTML parsing
97
-
98
- 16. **Abbreviations** (4 tests) ✨ NEW
99
- - Definition syntax (partial support)
100
-
101
- 17. **Emoji** (10 tests) ✨ NEW
102
- - 350+ GitHub emoji
103
- - Unknown emoji handling
104
-
105
- 18. **Special Markers** (7 tests) ✨ NEW
106
- - Page breaks, pauses
107
- - End-of-block markers
108
-
109
- 19. **Advanced Footnotes** (3 tests) ✨ NEW
110
- - Basic and inline footnotes
111
- - Markdown in footnotes
112
-
113
- ## Test Fixtures
114
-
115
- Test files are located in `tests/fixtures/includes/`:
116
-
117
- - `simple.md` - Markdown content for includes
118
- - `code.py` - Python code file
119
- - `raw.html` - Raw HTML content
120
- - `data.csv` - CSV data
121
- - `data.tsv` - Tab-separated data
122
- - `image.png` - Image file (for type detection)
123
-
124
- ## Adding New Tests
125
-
126
- 1. Add test function to `test_runner.c`
127
-
128
- Use `assert_contains(html, expected, "Test name")` for validation
129
-
130
- 3. Add test function call in `main()`
131
- 4. Rebuild: `cmake --build build`
132
- 5. Run: `./build/apex_test_runner`
133
-
134
- ## Known Limitations
135
-
136
- Some advanced features work but have limited test coverage:
137
-
138
- - **Advanced Tables**: Rowspan/colspan rendering needs
139
-
140
- custom renderer
141
-
142
- - **Critic Markup**: Some edge cases with
143
-
144
- substitution/comment syntax
145
-
146
- See `docs/TEST_COVERAGE.md` for detailed analysis.
147
-
148
- ## License
149
-
150
- Copyright &copy; 2026 Brett Terpstra
151
-
152
- [MIT License](LICENSE)
@@ -1,113 +0,0 @@
1
- #!/bin/bash
2
- # Comprehensive Apex Performance Benchmark
3
-
4
- # Get script directory and ensure we're in the right place
5
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
- PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
7
- cd "$PROJECT_ROOT" || exit 1
8
-
9
- APEX="$PROJECT_ROOT/build/apex"
10
- TEST_FILE="$PROJECT_ROOT/tests/fixtures/comprehensive_test.md"
11
- ITERATIONS=50
12
-
13
- # Verify files exist
14
- if [ ! -f "$APEX" ]; then
15
- echo "ERROR: Apex binary not found at $APEX"
16
- echo "Please build the project first: make"
17
- exit 1
18
- fi
19
-
20
- if [ ! -f "$TEST_FILE" ]; then
21
- echo "ERROR: Test file not found at $TEST_FILE"
22
- exit 1
23
- fi
24
-
25
- echo "# Apex Markdown Processor - Performance Benchmark"
26
- echo ""
27
- echo "## Test Document"
28
- echo ""
29
- LINES=$(wc -l <"$TEST_FILE")
30
- WORDS=$(wc -w <"$TEST_FILE")
31
- BYTES=$(wc -c <"$TEST_FILE")
32
-
33
- echo "- **File:** \`$TEST_FILE\`"
34
- echo "- **Lines:** $LINES"
35
- echo "- **Words:** $WORDS"
36
- echo "- **Size:** $BYTES bytes"
37
- echo ""
38
-
39
- # Function to run benchmark and return results
40
- benchmark() {
41
- local mode="$1"
42
- local args="$2"
43
- local desc="$3"
44
-
45
- # Warm-up run
46
- if ! $APEX $args "$TEST_FILE" >/dev/null 2>&1; then
47
- echo "ERROR: Failed to run apex command. Check if binary exists and test file is valid." >&2
48
- return 1
49
- fi
50
-
51
- # Timed runs
52
- local total=0
53
- local min=999999
54
- local max=0
55
-
56
- for i in $(seq 1 $ITERATIONS); do
57
- local start=$(gdate +%s%N 2>/dev/null || echo "$(date +%s)000000000")
58
- if ! $APEX $args "$TEST_FILE" >/dev/null 2>&1; then
59
- echo "ERROR: Failed on iteration $i" >&2
60
- return 1
61
- fi
62
- local end=$(gdate +%s%N 2>/dev/null || echo "$(date +%s)000000000")
63
- local elapsed=$(((end - start) / 1000000))
64
-
65
- # Sanity check - elapsed should be positive
66
- if [ $elapsed -lt 0 ]; then
67
- echo "WARNING: Negative elapsed time on iteration $i, skipping" >&2
68
- continue
69
- fi
70
-
71
- total=$((total + elapsed))
72
- [ $elapsed -lt $min ] && min=$elapsed
73
- [ $elapsed -gt $max ] && max=$elapsed
74
- done
75
-
76
- local avg=$((total / ITERATIONS))
77
- local throughput="0"
78
- if [ $avg -gt 0 ]; then
79
- throughput=$(echo "scale=2; $WORDS / ($avg / 1000)" | bc 2>/dev/null || echo "0")
80
- fi
81
-
82
- # Output as table row
83
- printf "| %s | %d | %d | %d | %d | %.2f |\n" "$desc" "$ITERATIONS" "$avg" "$min" "$max" "$throughput"
84
- }
85
-
86
- # Run benchmarks
87
- echo "## Output Modes"
88
- echo ""
89
- echo "| Mode | Iterations | Average (ms) | Min (ms) | Max (ms) | Throughput (words/sec) |"
90
- echo "|------|------------|--------------|---------|---------|------------------------|"
91
-
92
- benchmark "fragment" "" "Fragment Mode (default HTML output)"
93
- benchmark "pretty" "--pretty" "Pretty-Print Mode (formatted HTML)"
94
- benchmark "standalone" "--standalone" "Standalone Mode (complete HTML document)"
95
- benchmark "combined" "--standalone --pretty" "Standalone + Pretty (full features)"
96
-
97
- echo ""
98
- echo "## Mode Comparison"
99
- echo ""
100
- echo "| Mode | Iterations | Average (ms) | Min (ms) | Max (ms) | Throughput (words/sec) |"
101
- echo "|------|------------|--------------|---------|---------|------------------------|"
102
-
103
- benchmark "commonmark" "--mode commonmark" "CommonMark Mode (minimal, spec-compliant)"
104
- benchmark "gfm" "--mode gfm" "GFM Mode (GitHub Flavored Markdown)"
105
- benchmark "mmd" "--mode mmd" "MultiMarkdown Mode (metadata, footnotes, tables)"
106
- benchmark "kramdown" "--mode kramdown" "Kramdown Mode (attributes, definition lists)"
107
- benchmark "unified" "--mode unified" "Unified Mode (all features enabled)"
108
- benchmark "default" "" "Default Mode (unified, all features)"
109
-
110
- echo ""
111
- echo "---"
112
- echo ""
113
- echo "*Benchmark Complete*"
@@ -1,166 +0,0 @@
1
- #!/bin/bash
2
- # Comparative benchmark: Apex vs other Markdown processors
3
-
4
- set -e
5
-
6
- # Get script directory and ensure we're in the right place
7
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
- PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
9
- cd "$PROJECT_ROOT" || exit 1
10
-
11
- ITERATIONS=20
12
- TEST_FILES=(
13
- "$PROJECT_ROOT/tests/fixtures/comprehensive_test.md"
14
- )
15
-
16
- # Add larger test files if they exist
17
- [ -f "$PROJECT_ROOT/tests/fixtures/large_doc.md" ] && TEST_FILES+=("$PROJECT_ROOT/tests/fixtures/large_doc.md")
18
-
19
- echo "# Markdown Processor Comparison Benchmark"
20
- echo ""
21
-
22
- # Check which tools are available
23
- TOOLS=()
24
- APEX_BIN="$PROJECT_ROOT/build/apex"
25
- [ -f "$APEX_BIN" ] && TOOLS+=("apex:$APEX_BIN")
26
- command -v cmark-gfm >/dev/null && TOOLS+=("cmark-gfm:cmark-gfm -e table -e strikethrough -e autolink")
27
- command -v cmark >/dev/null && TOOLS+=("cmark:cmark")
28
- command -v pandoc >/dev/null && TOOLS+=("pandoc:pandoc -f markdown -t html")
29
- command -v multimarkdown >/dev/null && TOOLS+=("multimarkdown:multimarkdown")
30
- command -v kramdown >/dev/null && TOOLS+=("kramdown:kramdown")
31
- command -v marked >/dev/null && TOOLS+=("marked:marked")
32
-
33
- echo "## Available Tools"
34
- echo ""
35
- echo "Found ${#TOOLS[@]} tools:"
36
- for tool in "${TOOLS[@]}"; do
37
- echo "- ${tool%%:*}"
38
- done
39
- echo ""
40
-
41
- # Function to benchmark a single tool
42
- benchmark_tool() {
43
- local name="$1"
44
- local cmd="$2"
45
- local file="$3"
46
- local iterations="$4"
47
-
48
- # Warm-up
49
- eval "$cmd \"$file\"" >/dev/null 2>&1 || return 1
50
-
51
- # Timed runs using hyperfine if available, else manual timing
52
- if command -v hyperfine >/dev/null 2>&1; then
53
- result=$(hyperfine --warmup 3 --runs "$iterations" --export-json /dev/stdout \
54
- "$cmd \"$file\"" 2>/dev/null | tail -n +5 | jq -r '.results[0].mean * 1000' 2>/dev/null)
55
- echo "${result:-N/A}"
56
- else
57
- local total=0
58
- for i in $(seq 1 $iterations); do
59
- local start=$(python3 -c 'import time; print(int(time.time() * 1000))')
60
- eval "$cmd \"$file\"" >/dev/null 2>&1
61
- local end=$(python3 -c 'import time; print(int(time.time() * 1000))')
62
- total=$((total + end - start))
63
- done
64
- echo "$((total / iterations))"
65
- fi
66
- }
67
-
68
- # Run benchmarks for each file
69
- for file in "${TEST_FILES[@]}"; do
70
- if [ ! -f "$file" ]; then
71
- echo "⚠️ File not found: $file" >&2
72
- continue
73
- fi
74
-
75
- size=$(wc -c <"$file" | tr -d ' ')
76
- lines=$(wc -l <"$file" | tr -d ' ')
77
-
78
- echo "## Processor Comparison"
79
- echo ""
80
- echo "**File:** \`$file\` ($size bytes, $lines lines)"
81
- echo ""
82
- echo "| Processor | Time (ms) | Relative |"
83
- echo "|-----------|-----------|----------|"
84
-
85
- baseline=""
86
- for tool in "${TOOLS[@]}"; do
87
- name="${tool%%:*}"
88
- cmd="${tool#*:}"
89
-
90
- result=$(benchmark_tool "$name" "$cmd" "$file" "$ITERATIONS" 2>/dev/null)
91
-
92
- if [ -n "$result" ] && [ "$result" != "N/A" ]; then
93
- if [ -z "$baseline" ]; then
94
- baseline="$result"
95
- relative="1.00x"
96
- else
97
- relative=$(echo "scale=2; $result / $baseline" | bc 2>/dev/null || echo "N/A")
98
- relative="${relative}x"
99
- fi
100
- printf "| %s | %.2f | %s |\n" "$name" "$result" "$relative"
101
- else
102
- printf "| %s | failed | - |\n" "$name"
103
- fi
104
- done
105
- echo ""
106
- done
107
-
108
- # Apex mode comparison
109
- echo "## Apex Mode Comparison"
110
- echo ""
111
- echo "**Test File:** \`${TEST_FILES[0]}\`"
112
- echo ""
113
- echo "| Mode | Time (ms) | Relative |"
114
- echo "|------|-----------|----------|"
115
-
116
- mode_baseline=""
117
- for mode in "commonmark" "gfm" "mmd" "kramdown" "unified" "default"; do
118
- if [ "$mode" = "default" ]; then
119
- cmd="$APEX_BIN"
120
- display="default (unified)"
121
- else
122
- cmd="$APEX_BIN --mode $mode"
123
- display="$mode"
124
- fi
125
-
126
- result=$(benchmark_tool "apex-$mode" "$cmd" "${TEST_FILES[0]}" "$ITERATIONS" 2>/dev/null)
127
-
128
- if [ -n "$result" ] && [ "$result" != "N/A" ]; then
129
- if [ -z "$mode_baseline" ]; then
130
- mode_baseline="$result"
131
- relative="1.00x"
132
- else
133
- relative=$(echo "scale=2; $result / $mode_baseline" | bc 2>/dev/null || echo "N/A")
134
- relative="${relative}x"
135
- fi
136
- printf "| %s | %.2f | %s |\n" "$display" "$result" "$relative"
137
- else
138
- printf "| %s | failed | - |\n" "$display"
139
- fi
140
- done
141
-
142
- echo ""
143
- echo "## Apex Feature Overhead"
144
- echo ""
145
- echo "| Features | Time (ms) |"
146
- echo "|----------|-----------|"
147
-
148
- base=$(benchmark_tool "base" "$APEX_BIN --mode commonmark --no-ids" "${TEST_FILES[0]}" "$ITERATIONS")
149
- printf "| CommonMark (minimal) | %.2f |\n" "$base"
150
-
151
- with_tables=$(benchmark_tool "tables" "$APEX_BIN --mode gfm" "${TEST_FILES[0]}" "$ITERATIONS")
152
- printf "| + GFM tables/strikethrough | %.2f |\n" "$with_tables"
153
-
154
- with_all=$(benchmark_tool "all" "$APEX_BIN" "${TEST_FILES[0]}" "$ITERATIONS")
155
- printf "| + All Apex features | %.2f |\n" "$with_all"
156
-
157
- with_pretty=$(benchmark_tool "pretty" "$APEX_BIN --pretty" "${TEST_FILES[0]}" "$ITERATIONS")
158
- printf "| + Pretty printing | %.2f |\n" "$with_pretty"
159
-
160
- with_standalone=$(benchmark_tool "standalone" "$APEX_BIN --standalone --pretty" "${TEST_FILES[0]}" "$ITERATIONS")
161
- printf "| + Standalone document | %.2f |\n" "$with_standalone"
162
-
163
- echo ""
164
- echo "---"
165
- echo ""
166
- echo "*Benchmark Complete*"