apex-ruby 1.0.30 → 1.0.32

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/apex_src/vendor/cmark-gfm/extensions/table.c +7 -0
  20. data/ext/apex_ext/extconf.rb +31 -79
  21. data/lib/apex/version.rb +1 -1
  22. metadata +1 -469
  23. data/ext/apex_ext/apex_src/AGENTS.md +0 -41
  24. data/ext/apex_ext/apex_src/BENCHMARK.md +0 -32
  25. data/ext/apex_ext/apex_src/BENCHMARK_COMPARISON.md +0 -67
  26. data/ext/apex_ext/apex_src/CHANGELOG.md +0 -3373
  27. data/ext/apex_ext/apex_src/CMakeLists.txt +0 -481
  28. data/ext/apex_ext/apex_src/Dockerfile.linux-build +0 -15
  29. data/ext/apex_ext/apex_src/Formula/apex.rb +0 -43
  30. data/ext/apex_ext/apex_src/Info.plist.in +0 -27
  31. data/ext/apex_ext/apex_src/Package.swift +0 -192
  32. data/ext/apex_ext/apex_src/PackageSupport/README.md +0 -17
  33. data/ext/apex_ext/apex_src/PackageSupport/cmark-gfm/cmark_gfm_spm_stub.c +0 -4
  34. data/ext/apex_ext/apex_src/README.md +0 -536
  35. data/ext/apex_ext/apex_src/ROADMAP.md +0 -5
  36. data/ext/apex_ext/apex_src/VERSION +0 -1
  37. data/ext/apex_ext/apex_src/apex-debug.log +0 -4
  38. data/ext/apex_ext/apex_src/apex-header-2-rb@2x.webp +0 -0
  39. data/ext/apex_ext/apex_src/apex-plugins.json.example +0 -20
  40. data/ext/apex_ext/apex_src/apex.code-workspace +0 -38
  41. data/ext/apex_ext/apex_src/apex.pc.in +0 -11
  42. data/ext/apex_ext/apex_src/apex.taskpaper +0 -12
  43. data/ext/apex_ext/apex_src/apex_deflist_debug.log +0 -25
  44. data/ext/apex_ext/apex_src/buildnotes.md +0 -1435
  45. data/ext/apex_ext/apex_src/cli/main.c +0 -4588
  46. data/ext/apex_ext/apex_src/debug.log +0 -7
  47. data/ext/apex_ext/apex_src/debug_test.sh +0 -22
  48. data/ext/apex_ext/apex_src/docs/API_REFERENCE.md +0 -451
  49. data/ext/apex_ext/apex_src/docs/ARCHITECTURE.md +0 -166
  50. data/ext/apex_ext/apex_src/docs/CITATIONS_EXAMPLES.md +0 -274
  51. data/ext/apex_ext/apex_src/docs/CITATIONS_IMPLEMENTATION_PLAN.md +0 -749
  52. data/ext/apex_ext/apex_src/docs/CITATIONS_PLAN.md +0 -744
  53. data/ext/apex_ext/apex_src/docs/CMARK_INTEGRATION.md +0 -220
  54. data/ext/apex_ext/apex_src/docs/CRITICMARKUP.md +0 -501
  55. data/ext/apex_ext/apex_src/docs/DEBUGGING.md +0 -73
  56. data/ext/apex_ext/apex_src/docs/FINAL_STATUS.md +0 -391
  57. data/ext/apex_ext/apex_src/docs/FINAL_STATUS_UPDATE.md +0 -237
  58. data/ext/apex_ext/apex_src/docs/IAL_FEATURES.md +0 -210
  59. data/ext/apex_ext/apex_src/docs/IAL_STATUS.md +0 -344
  60. data/ext/apex_ext/apex_src/docs/INDEX_IMPLEMENTATION_ANALYSIS.md +0 -382
  61. data/ext/apex_ext/apex_src/docs/INTEGRATION_EXAMPLE.m +0 -144
  62. data/ext/apex_ext/apex_src/docs/LIMITATIONS_RESOLVED.md +0 -278
  63. data/ext/apex_ext/apex_src/docs/OUTPUT_MODES.md +0 -321
  64. data/ext/apex_ext/apex_src/docs/PROGRESS.md +0 -167
  65. data/ext/apex_ext/apex_src/docs/STANDALONE_FEATURE.md +0 -174
  66. data/ext/apex_ext/apex_src/docs/TABLE_SPANS_STATUS.md +0 -243
  67. data/ext/apex_ext/apex_src/docs/TEST_COVERAGE.md +0 -316
  68. data/ext/apex_ext/apex_src/docs/USER_GUIDE.md +0 -803
  69. data/ext/apex_ext/apex_src/docs/WIKI_LINKS_ISSUE.md +0 -91
  70. data/ext/apex_ext/apex_src/docs/index.md +0 -459
  71. data/ext/apex_ext/apex_src/docs/plans/2025-02-27-man-page-output-implementation.md +0 -351
  72. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-12-toc-output-format.md +0 -745
  73. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-18-bear-image-attributes.md +0 -829
  74. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-19-apex-node-npm.md +0 -1148
  75. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-12-toc-output-format-design.md +0 -161
  76. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-18-bear-image-attributes-design.md +0 -184
  77. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-19-apex-node-npm-design.md +0 -211
  78. data/ext/apex_ext/apex_src/documentation/README.md +0 -160
  79. data/ext/apex_ext/apex_src/documentation/app-settings-table.md +0 -67
  80. data/ext/apex_ext/apex_src/documentation/app-transformed/Citations.md +0 -340
  81. data/ext/apex_ext/apex_src/documentation/app-transformed/Credits.md +0 -11
  82. data/ext/apex_ext/apex_src/documentation/app-transformed/Header-IDs.md +0 -234
  83. data/ext/apex_ext/apex_src/documentation/app-transformed/Inline-Attribute-Lists.md +0 -516
  84. data/ext/apex_ext/apex_src/documentation/app-transformed/Metadata-Transforms.md +0 -461
  85. data/ext/apex_ext/apex_src/documentation/app-transformed/Modes.md +0 -193
  86. data/ext/apex_ext/apex_src/documentation/app-transformed/Multi-File-Documents.md +0 -201
  87. data/ext/apex_ext/apex_src/documentation/app-transformed/Plugins.md +0 -678
  88. data/ext/apex_ext/apex_src/documentation/app-transformed/Syntax.md +0 -1367
  89. data/ext/apex_ext/apex_src/documentation/docsets/Apex Command Line Options.cheatsheet.txt +0 -371
  90. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Info.plist +0 -24
  91. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/C-API.html +0 -2211
  92. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Callouts.html +0 -1194
  93. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Citations.html +0 -1620
  94. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Command-Line-Options.html +0 -6024
  95. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Configuration.html +0 -1877
  96. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Credits.html +0 -1040
  97. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Examples.html +0 -1402
  98. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Filters.html +0 -1656
  99. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Generating-Man-Pages.html +0 -1226
  100. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Getting-Started.html +0 -1148
  101. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Header-IDs.html +0 -1478
  102. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Home.html +0 -1225
  103. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Indices.html +0 -2327
  104. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Inline-Attribute-Lists.html +0 -2041
  105. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Installation.html +0 -1314
  106. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Limitations-and-Roadmap.html +0 -1868
  107. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Metadata-Transforms.html +0 -1731
  108. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Modes.html +0 -2242
  109. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-File-Documents.html +0 -1533
  110. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-Format-Images.html +0 -1362
  111. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Pandoc-Integration.html +0 -1338
  112. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Plugins.html +0 -3188
  113. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Quarto-Mode.html +0 -1405
  114. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Rendering-Markdown-In-Terminal.html +0 -1902
  115. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Syntax.html +0 -4222
  116. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Tables.html +0 -1781
  117. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Troubleshooting.html +0 -1629
  118. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Usage.html +0 -1394
  119. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Using-Apex-with-Jekyll.html +0 -1132
  120. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Writing-Tests.html +0 -1754
  121. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Xcode-Integration.html +0 -2562
  122. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/docSet.dsidx +0 -0
  123. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/optimizedIndex.dsidx +0 -0
  124. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Info.plist +0 -22
  125. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans.woff +0 -0
  126. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Bold.woff +0 -0
  127. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Bold_Italic.woff +0 -0
  128. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Extrabold.woff +0 -0
  129. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Extrabold_Italic.woff +0 -0
  130. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Italic.woff +0 -0
  131. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Semibold.woff +0 -0
  132. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Semibold_Italic.woff +0 -0
  133. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/index.html +0 -914
  134. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/style.css +0 -399
  135. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/docSet.dsidx +0 -0
  136. data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/optimizedIndex.dsidx +0 -0
  137. data/ext/apex_ext/apex_src/documentation/generate_app_docs.rb +0 -772
  138. data/ext/apex_ext/apex_src/documentation/generate_app_docs_ai.rb +0 -678
  139. data/ext/apex_ext/apex_src/documentation/generate_docset.rb +0 -873
  140. data/ext/apex_ext/apex_src/documentation/generate_single_html.rb +0 -733
  141. data/ext/apex_ext/apex_src/documentation/html/apex-app-docs.html +0 -8746
  142. data/ext/apex_ext/apex_src/documentation/html/apex-docs.html +0 -17073
  143. data/ext/apex_ext/apex_src/documentation/shared_scripts.js +0 -64
  144. data/ext/apex_ext/apex_src/documentation/shared_styles.css +0 -651
  145. data/ext/apex_ext/apex_src/documentation/transform_for_app.example.md +0 -260
  146. data/ext/apex_ext/apex_src/documentation/transform_for_app.md +0 -55
  147. data/ext/apex_ext/apex_src/escaping-repro.md +0 -103
  148. data/ext/apex_ext/apex_src/examples/bracketed_spans_demo.md +0 -119
  149. data/ext/apex_ext/apex_src/examples/emoji_span_plugin.yml +0 -11
  150. data/ext/apex_ext/apex_src/examples/example.html +0 -53
  151. data/ext/apex_ext/apex_src/examples/example.md +0 -85
  152. data/ext/apex_ext/apex_src/examples/fenced_divs_demo.md +0 -158
  153. data/ext/apex_ext/apex_src/examples/kbd.md +0 -8
  154. data/ext/apex_ext/apex_src/examples/kbd_plugin.rb +0 -250
  155. data/ext/apex_ext/apex_src/examples/kbd_plugin.yml +0 -9
  156. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/Info.plist +0 -8
  157. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/QuickLook/Preview.png +0 -0
  158. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/document.wflow +0 -547
  159. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown-to-RTF.workflow.zip +0 -0
  160. data/ext/apex_ext/apex_src/examples/quick-actions/README.md +0 -33
  161. data/ext/apex_ext/apex_src/ial.html +0 -24
  162. data/ext/apex_ext/apex_src/icon/apexicon-outline-black.png +0 -0
  163. data/ext/apex_ext/apex_src/icon/apexicon-outline-black@2x.png +0 -0
  164. data/ext/apex_ext/apex_src/icon/apexicon-outline-mark.png +0 -0
  165. data/ext/apex_ext/apex_src/icon/apexicon-outline-mark@2x.png +0 -0
  166. data/ext/apex_ext/apex_src/icon/apexicon-outline-white.png +0 -0
  167. data/ext/apex_ext/apex_src/icon/apexicon-outline-white@2x.png +0 -0
  168. data/ext/apex_ext/apex_src/icon/apexicon.png +0 -0
  169. data/ext/apex_ext/apex_src/icon/apexicon@2x.png +0 -0
  170. data/ext/apex_ext/apex_src/man/apex-config.5 +0 -455
  171. data/ext/apex_ext/apex_src/man/apex-config.5.md +0 -262
  172. data/ext/apex_ext/apex_src/man/apex-plugins.7 +0 -541
  173. data/ext/apex_ext/apex_src/man/apex-plugins.7.md +0 -365
  174. data/ext/apex_ext/apex_src/man/apex.1 +0 -583
  175. data/ext/apex_ext/apex_src/man/apex.1.html +0 -703
  176. data/ext/apex_ext/apex_src/man/apex.1.md +0 -803
  177. data/ext/apex_ext/apex_src/man/apex.1.new +0 -338
  178. data/ext/apex_ext/apex_src/objc/Apex.swift +0 -316
  179. data/ext/apex_ext/apex_src/objc/ApexPlugins.swift +0 -79
  180. data/ext/apex_ext/apex_src/objc/NSString+Apex.h +0 -207
  181. data/ext/apex_ext/apex_src/objc/NSString+Apex.m +0 -584
  182. data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.h +0 -76
  183. data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.m +0 -169
  184. data/ext/apex_ext/apex_src/output.html +0 -87
  185. data/ext/apex_ext/apex_src/pages/index.md +0 -459
  186. data/ext/apex_ext/apex_src/plans/quarto-mode.md +0 -442
  187. data/ext/apex_ext/apex_src/src/_README.md +0 -413
  188. data/ext/apex_ext/apex_src/src/extensions/github-emoji.txt +0 -869
  189. data/ext/apex_ext/apex_src/test-linux-build.sh +0 -20
  190. data/ext/apex_ext/apex_src/test.html +0 -103
  191. data/ext/apex_ext/apex_src/test_coverage.sh +0 -121
  192. data/ext/apex_ext/apex_src/test_ial_fenced.md +0 -6
  193. data/ext/apex_ext/apex_src/test_math_norm.py +0 -79
  194. data/ext/apex_ext/apex_src/test_pandoc_output.html +0 -48
  195. data/ext/apex_ext/apex_src/test_spm.sh +0 -107
  196. data/ext/apex_ext/apex_src/tests/ApexSPMTest/main.swift +0 -50
  197. data/ext/apex_ext/apex_src/tests/BENCHMARK_RESULTS.md +0 -229
  198. data/ext/apex_ext/apex_src/tests/CMakeLists.txt +0 -25
  199. data/ext/apex_ext/apex_src/tests/README.md +0 -152
  200. data/ext/apex_ext/apex_src/tests/benchmark.sh +0 -113
  201. data/ext/apex_ext/apex_src/tests/benchmark_comparison.sh +0 -166
  202. data/ext/apex_ext/apex_src/tests/compare_header_ids.sh +0 -31
  203. data/ext/apex_ext/apex_src/tests/fixtures/basic/headers.md +0 -25
  204. data/ext/apex_ext/apex_src/tests/fixtures/basic/list-interruption.md +0 -24
  205. data/ext/apex_ext/apex_src/tests/fixtures/basic/misc_markup.md +0 -33
  206. data/ext/apex_ext/apex_src/tests/fixtures/basic/test_basic.md +0 -26
  207. data/ext/apex_ext/apex_src/tests/fixtures/code/code-blocks.md +0 -260
  208. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/SUMMARY.md +0 -6
  209. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/chapter1.md +0 -7
  210. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/index.txt +0 -9
  211. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/intro.md +0 -5
  212. data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/section1_1.md +0 -5
  213. data/ext/apex_ext/apex_src/tests/fixtures/comprehensive_test.md +0 -652
  214. data/ext/apex_ext/apex_src/tests/fixtures/debug_ref_image_ial.md +0 -3
  215. data/ext/apex_ext/apex_src/tests/fixtures/demos/ial.md +0 -11
  216. data/ext/apex_ext/apex_src/tests/fixtures/demos/ial_demo.md +0 -177
  217. data/ext/apex_ext/apex_src/tests/fixtures/extensions/emoji-autocorrect.md +0 -94
  218. data/ext/apex_ext/apex_src/tests/fixtures/extensions/emoji_test.md +0 -3
  219. data/ext/apex_ext/apex_src/tests/fixtures/extensions/kbd_test.md +0 -3
  220. data/ext/apex_ext/apex_src/tests/fixtures/filters/filter_output_with_rawblock.json +0 -1
  221. data/ext/apex_ext/apex_src/tests/fixtures/filters/unwrap.md +0 -7
  222. data/ext/apex_ext/apex_src/tests/fixtures/ial/bracketed_spans_test.md +0 -74
  223. data/ext/apex_ext/apex_src/tests/fixtures/images/auto-wildcard.md +0 -8
  224. data/ext/apex_ext/apex_src/tests/fixtures/images/bear_image_attributes.md +0 -10
  225. data/ext/apex_ext/apex_src/tests/fixtures/images/image_and_encoding_test.md +0 -27
  226. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.avif +0 -0
  227. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.jpg +0 -0
  228. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.webp +0 -0
  229. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.avif +0 -0
  230. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.jpg +0 -0
  231. data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.webp +0 -0
  232. data/ext/apex_ext/apex_src/tests/fixtures/images/media_formats_test.md +0 -63
  233. data/ext/apex_ext/apex_src/tests/fixtures/images/multimarkdown_image_attributes_test.md +0 -60
  234. data/ext/apex_ext/apex_src/tests/fixtures/images/pandoc_ial_image_test.md +0 -27
  235. data/ext/apex_ext/apex_src/tests/fixtures/images/width_height_conversion_test.md +0 -94
  236. data/ext/apex_ext/apex_src/tests/fixtures/img-in-div.md +0 -16
  237. data/ext/apex_ext/apex_src/tests/fixtures/includes/code.py +0 -4
  238. data/ext/apex_ext/apex_src/tests/fixtures/includes/data-semi.csv +0 -3
  239. data/ext/apex_ext/apex_src/tests/fixtures/includes/data.csv +0 -5
  240. data/ext/apex_ext/apex_src/tests/fixtures/includes/data.tsv +0 -5
  241. data/ext/apex_ext/apex_src/tests/fixtures/includes/image.png +0 -2
  242. data/ext/apex_ext/apex_src/tests/fixtures/includes/metadata_options.yml +0 -11
  243. data/ext/apex_ext/apex_src/tests/fixtures/includes/nested.md +0 -8
  244. data/ext/apex_ext/apex_src/tests/fixtures/includes/raw.html +0 -4
  245. data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.md +0 -19
  246. data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.txt +0 -11
  247. data/ext/apex_ext/apex_src/tests/fixtures/includes/simple.md +0 -7
  248. data/ext/apex_ext/apex_src/tests/fixtures/includes/test_image.png +0 -0
  249. data/ext/apex_ext/apex_src/tests/fixtures/includes/with space.txt +0 -1
  250. data/ext/apex_ext/apex_src/tests/fixtures/large_doc.md +0 -1094
  251. data/ext/apex_ext/apex_src/tests/fixtures/metadata/mmd-metadata.md +0 -5
  252. data/ext/apex_ext/apex_src/tests/fixtures/metadata/pandoc-meta.md +0 -4
  253. data/ext/apex_ext/apex_src/tests/fixtures/metadata/yaml-frontmatter.md +0 -6
  254. data/ext/apex_ext/apex_src/tests/fixtures/metadata_options.yml +0 -11
  255. data/ext/apex_ext/apex_src/tests/fixtures/minimal_pb.md +0 -2
  256. data/ext/apex_ext/apex_src/tests/fixtures/obsidian-callouts.md +0 -46
  257. data/ext/apex_ext/apex_src/tests/fixtures/output/gfm_header_id_test.md +0 -96
  258. data/ext/apex_ext/apex_src/tests/fixtures/output/test_citations.md +0 -43
  259. data/ext/apex_ext/apex_src/tests/fixtures/output/test_def_list_links.md +0 -12
  260. data/ext/apex_ext/apex_src/tests/fixtures/output/test_index_mmark.md +0 -53
  261. data/ext/apex_ext/apex_src/tests/fixtures/output/test_index_textindex.md +0 -37
  262. data/ext/apex_ext/apex_src/tests/fixtures/pagebreak_html_repro.md +0 -5
  263. data/ext/apex_ext/apex_src/tests/fixtures/python-callouts.md +0 -47
  264. data/ext/apex_ext/apex_src/tests/fixtures/quarto/callouts.md +0 -3
  265. data/ext/apex_ext/apex_src/tests/fixtures/quarto/code-attrs.md +0 -3
  266. data/ext/apex_ext/apex_src/tests/fixtures/quarto/diagrams.md +0 -8
  267. data/ext/apex_ext/apex_src/tests/fixtures/quarto/lists.md +0 -19
  268. data/ext/apex_ext/apex_src/tests/fixtures/quarto/raw-content.md +0 -5
  269. data/ext/apex_ext/apex_src/tests/fixtures/quarto/shortcodes.md +0 -7
  270. data/ext/apex_ext/apex_src/tests/fixtures/quarto/smoke.md +0 -81
  271. data/ext/apex_ext/apex_src/tests/fixtures/quarto/spans.md +0 -5
  272. data/ext/apex_ext/apex_src/tests/fixtures/quarto-callouts.md +0 -47
  273. data/ext/apex_ext/apex_src/tests/fixtures/speed.md +0 -192
  274. data/ext/apex_ext/apex_src/tests/fixtures/tables/advanced_tables_test.md +0 -93
  275. data/ext/apex_ext/apex_src/tests/fixtures/tables/grid-tables.md +0 -37
  276. data/ext/apex_ext/apex_src/tests/fixtures/tables/inline_tables_test.md +0 -41
  277. data/ext/apex_ext/apex_src/tests/fixtures/tables/relaxed-table.md +0 -12
  278. data/ext/apex_ext/apex_src/tests/fixtures/tables/table_cr_line_endings.md +0 -15
  279. data/ext/apex_ext/apex_src/tests/fixtures/tables/table_no_trailing_newline.md +0 -15
  280. data/ext/apex_ext/apex_src/tests/generate_gfm_ids.sh +0 -105
  281. data/ext/apex_ext/apex_src/tests/generate_ial_demo.sh +0 -143
  282. data/ext/apex_ext/apex_src/tests/gfm_id_comparison_summary.md +0 -96
  283. data/ext/apex_ext/apex_src/tests/gh_api_test.md +0 -6
  284. data/ext/apex_ext/apex_src/tests/ial_demo.html +0 -186
  285. data/ext/apex_ext/apex_src/tests/include_code.py +0 -19
  286. data/ext/apex_ext/apex_src/tests/include_snippet.md +0 -15
  287. data/ext/apex_ext/apex_src/tests/metadata_cli_test.sh +0 -119
  288. data/ext/apex_ext/apex_src/tests/multi_file_cli_test.sh +0 -64
  289. data/ext/apex_ext/apex_src/tests/paginate_cli_test.sh +0 -80
  290. data/ext/apex_ext/apex_src/tests/sample_data.csv +0 -7
  291. data/ext/apex_ext/apex_src/tests/table_escaped_ltlt.md +0 -4
  292. data/ext/apex_ext/apex_src/tests/terminal_width_test.sh +0 -29
  293. data/ext/apex_ext/apex_src/tests/test-swift-package.sh +0 -14
  294. data/ext/apex_ext/apex_src/tests/test_basic.c +0 -74
  295. data/ext/apex_ext/apex_src/tests/test_bear_image_attrs.c +0 -301
  296. data/ext/apex_ext/apex_src/tests/test_cmark_callback.c +0 -189
  297. data/ext/apex_ext/apex_src/tests/test_concordance.tsv +0 -4
  298. data/ext/apex_ext/apex_src/tests/test_custom_plugins.c +0 -78
  299. data/ext/apex_ext/apex_src/tests/test_escaping_repro.c +0 -82
  300. data/ext/apex_ext/apex_src/tests/test_extensions.c +0 -3337
  301. data/ext/apex_ext/apex_src/tests/test_helpers.c +0 -183
  302. data/ext/apex_ext/apex_src/tests/test_helpers.h +0 -91
  303. data/ext/apex_ext/apex_src/tests/test_ial.c +0 -289
  304. data/ext/apex_ext/apex_src/tests/test_links.c +0 -418
  305. data/ext/apex_ext/apex_src/tests/test_marked_integration.c +0 -290
  306. data/ext/apex_ext/apex_src/tests/test_metadata.c +0 -1147
  307. data/ext/apex_ext/apex_src/tests/test_output.c +0 -2056
  308. data/ext/apex_ext/apex_src/tests/test_plugins.c +0 -219
  309. data/ext/apex_ext/apex_src/tests/test_refs.bib +0 -31
  310. data/ext/apex_ext/apex_src/tests/test_runner.c +0 -268
  311. data/ext/apex_ext/apex_src/tests/test_syntax_highlight.c +0 -198
  312. data/ext/apex_ext/apex_src/tests/test_tables.c +0 -1298
  313. data/ext/apex_ext/apex_src/tests/update_benchmarks.sh +0 -9
  314. data/ext/apex_ext/apex_src/tests/yaml_test.md +0 -13
  315. data/ext/apex_ext/apex_src/tests.rb +0 -39
  316. data/ext/apex_ext/apex_src/vendor/cmark-gfm/CMakeLists.txt +0 -48
  317. data/ext/apex_ext/apex_src/vendor/cmark-gfm/CheckFileOffsetBits.c +0 -14
  318. data/ext/apex_ext/apex_src/vendor/cmark-gfm/CheckFileOffsetBits.cmake +0 -43
  319. data/ext/apex_ext/apex_src/vendor/cmark-gfm/FindAsan.cmake +0 -74
  320. data/ext/apex_ext/apex_src/vendor/cmark-gfm/Makefile.nmake +0 -38
  321. data/ext/apex_ext/apex_src/vendor/cmark-gfm/README.md +0 -206
  322. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/CMakeLists.txt +0 -30
  323. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/cplusplus.cpp +0 -15
  324. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/cplusplus.h +0 -16
  325. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/harness.c +0 -111
  326. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/harness.h +0 -35
  327. data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/main.c +0 -1169
  328. data/ext/apex_ext/apex_src/vendor/cmark-gfm/appveyor.yml +0 -21
  329. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-bq-flat.md +0 -16
  330. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-bq-nested.md +0 -13
  331. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-code.md +0 -11
  332. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-fences.md +0 -14
  333. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-heading.md +0 -9
  334. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-hr.md +0 -10
  335. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-html.md +0 -32
  336. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-lheading.md +0 -8
  337. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-list-flat.md +0 -67
  338. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-list-nested.md +0 -36
  339. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-ref-flat.md +0 -15
  340. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-ref-nested.md +0 -17
  341. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-autolink.md +0 -14
  342. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-backticks.md +0 -3
  343. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-flat.md +0 -5
  344. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-nested.md +0 -5
  345. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-worst.md +0 -5
  346. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-entity.md +0 -11
  347. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-escape.md +0 -15
  348. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-html.md +0 -44
  349. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-links-flat.md +0 -23
  350. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-links-nested.md +0 -13
  351. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-newlines.md +0 -24
  352. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/lorem1.md +0 -13
  353. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/rawtabs.md +0 -18
  354. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/statistics.py +0 -595
  355. data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/stats.py +0 -19
  356. data/ext/apex_ext/apex_src/vendor/cmark-gfm/benchmarks.md +0 -33
  357. data/ext/apex_ext/apex_src/vendor/cmark-gfm/changelog.txt +0 -1245
  358. data/ext/apex_ext/apex_src/vendor/cmark-gfm/data/CaseFolding.txt +0 -1495
  359. data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/CMakeLists.txt +0 -119
  360. data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/ext_scanners.re +0 -92
  361. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/CMakeLists.txt +0 -22
  362. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/README.md +0 -12
  363. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzz_quadratic.c +0 -91
  364. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzz_quadratic_brackets.c +0 -110
  365. data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzzloop.sh +0 -28
  366. data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/CMakeLists.txt +0 -10
  367. data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/make_man_page.py +0 -133
  368. data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/man1/cmark-gfm.1 +0 -78
  369. data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/man3/cmark-gfm.3 +0 -1041
  370. data/ext/apex_ext/apex_src/vendor/cmark-gfm/nmake.bat +0 -1
  371. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/CMakeLists.txt +0 -230
  372. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark-gfm_version.h.in +0 -7
  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*"