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,745 +0,0 @@
1
- # TOC Output Format Implementation Plan
2
-
3
- > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
-
5
- **Goal:** Add `-t toc` that emits a Markdown unordered list of heading links, plus `--toc-min-max` defaults shared with HTML TOC markers.
6
-
7
- **Architecture:** Early-exit `APEX_OUTPUT_TOC` after AST prep (same point as markdown/json-filtered). Refactor `src/extensions/toc.c` to share heading collection/ID assignment between HTML marker TOC and a new Markdown TOC emitter. Option defaults (`toc_min`/`toc_max`, default 1,3) seed both paths; marker-specified ranges still override.
8
-
9
- **Tech Stack:** C (Apex + cmark-gfm), existing `tests/test_output.c` suite runner, man page / wiki docs.
10
-
11
- **Spec:** `docs/superpowers/specs/2026-07-12-toc-output-format-design.md`
12
-
13
- ---
14
-
15
- ## File map
16
-
17
- | File | Responsibility |
18
- |------|----------------|
19
- | `include/apex/apex.h` | `APEX_OUTPUT_TOC`; `toc_min` / `toc_max` on `apex_options` |
20
- | `src/apex.c` | Defaults; early-exit for TOC; pass defaults into `apex_process_toc` |
21
- | `src/extensions/toc.h` | Public Markdown helper; update `apex_process_toc` signature |
22
- | `src/extensions/toc.c` | Prefer manual IDs; Markdown emitter; default min/max when marker omits range |
23
- | `cli/main.c` | `-t toc`, `--toc-min-max`, help, option mask |
24
- | `src/extensions/metadata.c` | `toc-min-max` metadata key |
25
- | `tests/test_output.c` | `-t toc` + default-depth HTML TOC tests |
26
- | `tests/test_metadata.c` | Metadata `toc-min-max` parsing |
27
- | `man/apex.1.md` (+ regenerate `man/apex.1`) | Document format + flag |
28
- | `apex.wiki/Command-Line-Options.md`, `Syntax.md`, `Header-IDs.md` as needed | User docs |
29
-
30
- ---
31
-
32
- ### Task 1: Options + enum surface
33
-
34
- **Files:**
35
- - Modify: `include/apex/apex.h`
36
- - Modify: `src/apex.c` (`apex_options_default`, and any `apex_options_for_mode` copies that re-init options)
37
-
38
- - [ ] **Step 1: Add enum value and option fields**
39
-
40
- In `include/apex/apex.h`, extend the output format enum:
41
-
42
- ```c
43
- APEX_OUTPUT_MAN = 10, /* roff (man page source) */
44
- APEX_OUTPUT_MAN_HTML = 11, /* styled HTML man page */
45
- APEX_OUTPUT_TOC = 12 /* Markdown TOC list only */
46
- ```
47
-
48
- Near the header ID fields on `apex_options` (after `id_format`), add:
49
-
50
- ```c
51
- /* TOC depth defaults (used by -t toc and by HTML TOC markers without an explicit range) */
52
- int toc_min; /* Inclusive min heading level (default 1) */
53
- int toc_max; /* Inclusive max heading level (default 3) */
54
- ```
55
-
56
- - [ ] **Step 2: Initialize defaults in `apex_options_default`**
57
-
58
- In `src/apex.c` inside `apex_options_default()`, after `opts.id_format = 0;`:
59
-
60
- ```c
61
- opts.toc_min = 1;
62
- opts.toc_max = 3;
63
- ```
64
-
65
- If `apex_options_for_mode()` rebuilds options via `apex_options_default()`, no extra work. If any mode path zeroes the struct without going through default, set `toc_min`/`toc_max` there too.
66
-
67
- - [ ] **Step 3: Commit**
68
-
69
- ```bash
70
- git add include/apex/apex.h src/apex.c
71
- git commit -m "Add APEX_OUTPUT_TOC and toc_min/toc_max options"
72
- ```
73
-
74
- ---
75
-
76
- ### Task 2: Prefer manual heading IDs in TOC collection
77
-
78
- **Files:**
79
- - Modify: `src/extensions/toc.c`
80
- - Test: `tests/test_output.c`
81
-
82
- - [ ] **Step 1: Write failing test for manual ID in HTML TOC**
83
-
84
- Append inside `test_toc()` in `tests/test_output.c` (before suite_end):
85
-
86
- ```c
87
- /* Manual {#id} must appear in TOC hrefs */
88
- const char *manual_id_toc =
89
- "# Custom {#my-custom}\n\n{{TOC}}\n\n## Other";
90
- html = apex_markdown_to_html(manual_id_toc, strlen(manual_id_toc), &opts);
91
- assert_contains(html, "href=\"#my-custom\"", "TOC uses manual heading ID");
92
- apex_free_string(html);
93
- ```
94
-
95
- - [ ] **Step 2: Run test to verify it fails**
96
-
97
- ```bash
98
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex_test_runner -j4 && ./apex_test_runner toc 2>&1 | rg -i "manual|FAIL|passed|failed"
99
- ```
100
-
101
- Expected: failure on "TOC uses manual heading ID" (current code always regenerates from text).
102
-
103
- - [ ] **Step 3: Assign IDs from `user_data` when present**
104
-
105
- In `src/extensions/toc.c`, replace the ID assignment loop in `apex_process_toc` (and share later with Markdown) with a helper:
106
-
107
- ```c
108
- static char *heading_id_from_attrs_or_text(const char *attrs, const char *text,
109
- apex_id_format_t id_format) {
110
- if (attrs) {
111
- const char *id_attr = strstr(attrs, "id=\"");
112
- if (id_attr) {
113
- const char *id_start = id_attr + 4;
114
- const char *id_end = strchr(id_start, '"');
115
- if (id_end && id_end > id_start) {
116
- size_t id_len = (size_t)(id_end - id_start);
117
- char *id = malloc(id_len + 1);
118
- if (id) {
119
- memcpy(id, id_start, id_len);
120
- id[id_len] = '\0';
121
- return id;
122
- }
123
- }
124
- }
125
- }
126
- return apex_generate_header_id(text, id_format);
127
- }
128
- ```
129
-
130
- Update `collect_headers` to store attrs (or look them up again). Simplest: keep attrs on the node and, when assigning IDs, pass `cmark_node` — better: store `char *attrs_copy` is unnecessary if we assign IDs during collection:
131
-
132
- In `collect_headers`, after creating `item`:
133
-
134
- ```c
135
- const char *attrs = (const char *)cmark_node_get_user_data(node);
136
- /* no_toc check already uses attrs */
137
- item->id = NULL; /* assigned in assign_header_ids */
138
- ```
139
-
140
- Add:
141
-
142
- ```c
143
- static void assign_header_ids(header_item *headers, cmark_node *document,
144
- int id_format) {
145
- /* Walk headers list in document order; for each, find matching heading
146
- * OR store attrs on header_item during collect. Prefer storing attrs: */
147
- }
148
- ```
149
-
150
- Preferred approach — extend `header_item`:
151
-
152
- ```c
153
- typedef struct header_item {
154
- int level;
155
- char *text;
156
- char *id;
157
- char *attrs; /* borrowed? NO — strdup user_data or extract id immediately */
158
- struct header_item *next;
159
- } header_item;
160
- ```
161
-
162
- Simplest reliable approach: extract ID during `collect_headers` once you know `id_format` — change signature to:
163
-
164
- ```c
165
- static header_item *collect_headers(cmark_node *node, header_item **tail,
166
- int id_format);
167
- ```
168
-
169
- and inside, after `normalize_toc_text`:
170
-
171
- ```c
172
- item->id = heading_id_from_attrs_or_text(attrs, item->text,
173
- (apex_id_format_t)id_format);
174
- ```
175
-
176
- Update `free_headers` (already frees `id`). Remove the separate ID loop in `apex_process_toc`.
177
-
178
- - [ ] **Step 4: Run test to verify it passes**
179
-
180
- ```bash
181
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex_test_runner -j4 && ./apex_test_runner toc 2>&1 | rg -i "manual|FAIL|Results"
182
- ```
183
-
184
- Expected: "TOC uses manual heading ID" passes; suite overall green enough to proceed (note: Task 3 will change bare-marker max depth).
185
-
186
- - [ ] **Step 5: Commit**
187
-
188
- ```bash
189
- git add src/extensions/toc.c tests/test_output.c
190
- git commit -m "Prefer manual heading IDs when building TOC links"
191
- ```
192
-
193
- ---
194
-
195
- ### Task 3: Thread default min/max into HTML TOC markers
196
-
197
- **Files:**
198
- - Modify: `src/extensions/toc.h`
199
- - Modify: `src/extensions/toc.c`
200
- - Modify: `src/apex.c` (call site)
201
- - Test: `tests/test_output.c`
202
-
203
- - [ ] **Step 1: Write failing tests for option defaults on bare markers**
204
-
205
- In `test_toc()`:
206
-
207
- ```c
208
- /* Bare {{TOC}} should use option defaults (1-3): exclude H4 */
209
- const char *bare_default_depth =
210
- "# H1\n\n{{TOC}}\n\n## H2\n\n### H3\n\n#### H4";
211
- html = apex_markdown_to_html(bare_default_depth, strlen(bare_default_depth), &opts);
212
- assert_contains(html, "href=\"#h1\"", "Bare TOC includes H1 by default");
213
- assert_contains(html, "href=\"#h3\"", "Bare TOC includes H3 by default");
214
- assert_not_contains(html, "href=\"#h4\"", "Bare TOC excludes H4 by default (max 3)");
215
- apex_free_string(html);
216
-
217
- /* --toc-min-max via options: 2,4 */
218
- apex_options depth_opts = opts;
219
- depth_opts.toc_min = 2;
220
- depth_opts.toc_max = 4;
221
- html = apex_markdown_to_html(bare_default_depth, strlen(bare_default_depth), &depth_opts);
222
- assert_not_contains(html, "href=\"#h1\"", "toc_min=2 excludes H1");
223
- assert_contains(html, "href=\"#h4\"", "toc_max=4 includes H4");
224
- apex_free_string(html);
225
-
226
- /* Marker override wins over options */
227
- const char *override_toc =
228
- "# H1\n\n{{TOC:1-6}}\n\n## H2\n\n### H3\n\n#### H4\n\n##### H5";
229
- html = apex_markdown_to_html(override_toc, strlen(override_toc), &depth_opts);
230
- assert_contains(html, "href=\"#h1\"", "Marker range overrides toc_min");
231
- assert_contains(html, "href=\"#h5\"", "Marker range overrides toc_max");
232
- apex_free_string(html);
233
- ```
234
-
235
- - [ ] **Step 2: Run tests to verify failure on H4 exclusion**
236
-
237
- ```bash
238
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex_test_runner -j4 && ./apex_test_runner toc 2>&1 | rg -i "Bare TOC excludes|FAIL|Results"
239
- ```
240
-
241
- Expected: "Bare TOC excludes H4 by default" fails (today bare marker uses max 6).
242
-
243
- - [ ] **Step 3: Update API and `parse_toc_marker`**
244
-
245
- `src/extensions/toc.h`:
246
-
247
- ```c
248
- char *apex_process_toc(const char *html, cmark_node *document, int id_format,
249
- int default_min, int default_max);
250
- ```
251
-
252
- In `toc.c`, change `parse_toc_marker` to accept defaults:
253
-
254
- ```c
255
- static void parse_toc_marker(const char *marker, int *min_level, int *max_level,
256
- int default_min, int default_max) {
257
- *min_level = default_min;
258
- *max_level = default_max;
259
- /* ... existing parsing that overwrites when marker specifies min/max ... */
260
- }
261
- ```
262
-
263
- Clamp after parse:
264
-
265
- ```c
266
- if (*min_level < 1) *min_level = 1;
267
- if (*max_level > 6) *max_level = 6;
268
- if (*min_level > *max_level) *max_level = *min_level;
269
- ```
270
-
271
- Update `apex_process_toc` signature and call:
272
-
273
- ```c
274
- parse_toc_marker(marker, &min_level, &max_level, default_min, default_max);
275
- ```
276
-
277
- In `src/apex.c`:
278
-
279
- ```c
280
- char *with_toc = apex_process_toc(html, document, options->id_format,
281
- options->toc_min, options->toc_max);
282
- ```
283
-
284
- - [ ] **Step 4: Run `toc` suite**
285
-
286
- ```bash
287
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex_test_runner -j4 && ./apex_test_runner toc
288
- ```
289
-
290
- Expected: all TOC tests pass. If any older test assumed H4+ from bare `{{TOC}}`, update that test to use an explicit marker range.
291
-
292
- - [ ] **Step 5: Commit**
293
-
294
- ```bash
295
- git add src/extensions/toc.h src/extensions/toc.c src/apex.c tests/test_output.c
296
- git commit -m "Use toc_min/toc_max defaults for HTML TOC markers without a range"
297
- ```
298
-
299
- ---
300
-
301
- ### Task 4: Markdown TOC emitter + `-t toc` early exit
302
-
303
- **Files:**
304
- - Modify: `src/extensions/toc.h`
305
- - Modify: `src/extensions/toc.c`
306
- - Modify: `src/apex.c`
307
- - Test: `tests/test_output.c`
308
-
309
- - [ ] **Step 1: Write failing `-t toc` tests**
310
-
311
- Add to `test_toc()`:
312
-
313
- ```c
314
- /* -t toc: Markdown list, default depth 1-3 */
315
- apex_options toc_opts = apex_options_default();
316
- toc_opts.output_format = APEX_OUTPUT_TOC;
317
- const char *doc =
318
- "# Introduction\n\n"
319
- "## Getting Started\n\n"
320
- "### Installation\n\n"
321
- "#### Too Deep\n\n"
322
- "## Configuration\n\n"
323
- "# API\n"
324
- "{: .no_toc}\n";
325
- char *md = apex_markdown_to_html(doc, strlen(doc), &toc_opts);
326
- assert_contains(md, "- [Introduction](#introduction)\n", "TOC md has H1");
327
- assert_contains(md, " - [Getting Started](#getting-started)\n", "TOC md indents H2");
328
- assert_contains(md, " - [Installation](#installation)\n", "TOC md indents H3");
329
- assert_not_contains(md, "Too Deep", "TOC md excludes H4 by default");
330
- assert_not_contains(md, "API", "TOC md excludes no_toc heading");
331
- assert_not_contains(md, "<nav", "TOC md is not HTML");
332
- apex_free_string(md);
333
-
334
- toc_opts.toc_min = 2;
335
- toc_opts.toc_max = 4;
336
- md = apex_markdown_to_html(doc, strlen(doc), &toc_opts);
337
- assert_not_contains(md, "Introduction", "toc-min-max excludes H1");
338
- assert_contains(md, "Too Deep", "toc-min-max includes H4");
339
- apex_free_string(md);
340
-
341
- /* id-format mmd */
342
- toc_opts = apex_options_default();
343
- toc_opts.output_format = APEX_OUTPUT_TOC;
344
- toc_opts.id_format = 1; /* MMD */
345
- md = apex_markdown_to_html("# Hello World\n", 14, &toc_opts);
346
- assert_contains(md, "- [Hello World](#HelloWorld)\n", "TOC md respects MMD id-format");
347
- apex_free_string(md);
348
-
349
- /* empty */
350
- toc_opts = apex_options_default();
351
- toc_opts.output_format = APEX_OUTPUT_TOC;
352
- md = apex_markdown_to_html("No headings here.\n", 18, &toc_opts);
353
- if (md && (md[0] == '\0' || strcmp(md, "\n") == 0)) {
354
- test_result(true, "TOC md empty when no headings");
355
- } else {
356
- test_result(false, "TOC md empty when no headings");
357
- }
358
- apex_free_string(md);
359
- ```
360
-
361
- Adjust the MMD id expectation if `apex_generate_header_id` for "Hello World" differs — run a quick HTML render with `--id-format mmd` if needed and match that slug.
362
-
363
- - [ ] **Step 2: Run tests — expect missing format / wrong output**
364
-
365
- ```bash
366
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex_test_runner -j4 && ./apex_test_runner toc 2>&1 | rg -i "TOC md|FAIL|Results"
367
- ```
368
-
369
- Expected: failures (TOC still goes through HTML path or ignores `APEX_OUTPUT_TOC`).
370
-
371
- - [ ] **Step 3: Implement `apex_generate_toc_markdown`**
372
-
373
- `toc.h`:
374
-
375
- ```c
376
- char *apex_generate_toc_markdown(cmark_node *document, int id_format,
377
- int min_level, int max_level);
378
- ```
379
-
380
- `toc.c` — mirror nesting logic of `generate_toc_html`, but emit Markdown:
381
-
382
- ```c
383
- char *apex_generate_toc_markdown(cmark_node *document, int id_format,
384
- int min_level, int max_level) {
385
- if (!document) return strdup("");
386
- if (min_level < 1) min_level = 1;
387
- if (max_level > 6) max_level = 6;
388
- if (min_level > max_level) max_level = min_level;
389
-
390
- header_item *tail = NULL;
391
- header_item *headers = collect_headers(document, &tail, id_format);
392
- if (!headers) return strdup("");
393
-
394
- size_t capacity = 4096;
395
- char *out = malloc(capacity);
396
- if (!out) {
397
- free_headers(headers);
398
- return strdup("");
399
- }
400
- char *write = out;
401
- size_t remaining = capacity;
402
-
403
- #define ENSURE(n) do { \
404
- if ((size_t)(n) >= remaining) { \
405
- size_t used = (size_t)(write - out); \
406
- capacity = used + (size_t)(n) + 1024; \
407
- char *nbuf = realloc(out, capacity); \
408
- if (!nbuf) { free(out); free_headers(headers); return strdup(""); } \
409
- out = nbuf; write = out + used; remaining = capacity - used; \
410
- } \
411
- } while (0)
412
-
413
- #define APPEND(str) do { \
414
- size_t len = strlen(str); \
415
- ENSURE(len + 1); \
416
- memcpy(write, str, len); \
417
- write += len; \
418
- remaining -= len; \
419
- } while (0)
420
-
421
- for (header_item *h = headers; h; h = h->next) {
422
- if (h->level < min_level || h->level > max_level) continue;
423
- int depth = h->level - min_level; /* 0 = flush */
424
- ENSURE((size_t)depth * 2 + strlen(h->text) + strlen(h->id) + 16);
425
- for (int i = 0; i < depth; i++) APPEND(" ");
426
- APPEND("- [");
427
- APPEND(h->text);
428
- APPEND("](#");
429
- APPEND(h->id);
430
- APPEND(")\n");
431
- }
432
-
433
- #undef APPEND
434
- #undef ENSURE
435
-
436
- *write = '\0';
437
- free_headers(headers);
438
- return out;
439
- }
440
- ```
441
-
442
- - [ ] **Step 4: Early-exit in `apex_markdown_to_html`**
443
-
444
- In `src/apex.c`, immediately after the JSON_FILTERED early return (before Markdown dialects), add:
445
-
446
- ```c
447
- if (options->output_format == APEX_OUTPUT_TOC) {
448
- char *toc_md = apex_generate_toc_markdown(document, options->id_format,
449
- options->toc_min, options->toc_max);
450
- return toc_md ? toc_md : strdup("");
451
- }
452
- ```
453
-
454
- Include `toc.h` if not already included at the top of `apex.c`.
455
-
456
- - [ ] **Step 5: Run tests**
457
-
458
- ```bash
459
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex_test_runner -j4 && ./apex_test_runner toc
460
- ```
461
-
462
- Expected: all pass. Fix MMD slug assertion if the actual slug differs.
463
-
464
- - [ ] **Step 6: Commit**
465
-
466
- ```bash
467
- git add src/extensions/toc.h src/extensions/toc.c src/apex.c tests/test_output.c
468
- git commit -m "Add -t toc Markdown TOC output format"
469
- ```
470
-
471
- ---
472
-
473
- ### Task 5: CLI `--to toc` and `--toc-min-max`
474
-
475
- **Files:**
476
- - Modify: `cli/main.c`
477
-
478
- - [ ] **Step 1: Add option mask fields**
479
-
480
- In `apex_cli_option_mask`:
481
-
482
- ```c
483
- bool toc_min_max;
484
- ```
485
-
486
- In `apex_apply_cli_option_mask` (or equivalent merge helper), copy when masked:
487
-
488
- ```c
489
- if (m->toc_min_max) {
490
- opts->toc_min = snap->toc_min;
491
- opts->toc_max = snap->toc_max;
492
- }
493
- ```
494
-
495
- - [ ] **Step 2: Parse `-t toc` and `--toc-min-max`**
496
-
497
- In the `-t` / `--to` branch, after `man-html`:
498
-
499
- ```c
500
- } else if (strcmp(format, "toc") == 0) {
501
- options.output_format = APEX_OUTPUT_TOC;
502
- ```
503
-
504
- Add flag parsing near `--id-format`:
505
-
506
- ```c
507
- } else if (strncmp(argv[i], "--toc-min-max=", 14) == 0 ||
508
- strcmp(argv[i], "--toc-min-max") == 0) {
509
- const char *val = NULL;
510
- if (strncmp(argv[i], "--toc-min-max=", 14) == 0) {
511
- val = argv[i] + 14;
512
- } else {
513
- if (i + 1 >= argc) {
514
- fprintf(stderr, "Error: --toc-min-max requires MIN,MAX (e.g. 1,3)\n");
515
- return 1;
516
- }
517
- val = argv[++i];
518
- }
519
- int min = 0, max = 0;
520
- if (sscanf(val, "%d,%d", &min, &max) != 2 ||
521
- min < 1 || max > 6 || min > max) {
522
- fprintf(stderr, "Error: --toc-min-max must be MIN,MAX with 1 <= MIN <= MAX <= 6\n");
523
- return 1;
524
- }
525
- cli_opt_mask.toc_min_max = true;
526
- options.toc_min = min;
527
- options.toc_max = max;
528
- ```
529
-
530
- - [ ] **Step 3: Help text**
531
-
532
- In `print_usage` / help:
533
-
534
- - Add `toc` to the `-t` formats list.
535
- - Add:
536
-
537
- ```c
538
- fprintf(stderr, " --toc-min-max MIN,MAX TOC heading depth range (default: 1,3); also seeds HTML TOC markers without an explicit range\n");
539
- ```
540
-
541
- - [ ] **Step 4: Manual CLI smoke check**
542
-
543
- ```bash
544
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex -j4
545
- ./apex -t toc --toc-min-max=2,4 <<'MD'
546
- # A
547
- ## B
548
- ### C
549
- #### D
550
- MD
551
- ```
552
-
553
- Expected:
554
-
555
- ```markdown
556
- - [B](#b)
557
- - [C](#c)
558
- - [D](#d)
559
- ```
560
-
561
- Invalid flag:
562
-
563
- ```bash
564
- ./apex -t toc --toc-min-max=0,9 </dev/null; echo exit:$?
565
- ```
566
-
567
- Expected: non-zero exit and error message.
568
-
569
- - [ ] **Step 5: Commit**
570
-
571
- ```bash
572
- git add cli/main.c
573
- git commit -m "Add CLI -t toc and --toc-min-max"
574
- ```
575
-
576
- ---
577
-
578
- ### Task 6: Metadata `toc-min-max`
579
-
580
- **Files:**
581
- - Modify: `src/extensions/metadata.c`
582
- - Test: `tests/test_metadata.c` (suite that covers option keys — `test_metadata_control_options` or nearest)
583
-
584
- - [ ] **Step 1: Write failing metadata test**
585
-
586
- Follow existing `id-format` metadata tests in `tests/test_metadata.c`:
587
-
588
- ```c
589
- opts = apex_options_default();
590
- /* build metadata list with key toc-min-max value 2,4 — same pattern as id-format test */
591
- apex_apply_metadata_to_options(metadata, &opts); /* use actual helper name from nearby tests */
592
- assert_option_bool(opts.toc_min == 2, true, "toc-min-max sets toc_min");
593
- assert_option_bool(opts.toc_max == 4, true, "toc-min-max sets toc_max");
594
- ```
595
-
596
- Read the surrounding `id-format` test and mirror its metadata list construction exactly.
597
-
598
- - [ ] **Step 2: Run test — expect fail**
599
-
600
- ```bash
601
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex_test_runner -j4 && ./apex_test_runner metadata_control_options 2>&1 | rg -i "toc-min|FAIL|Results"
602
- ```
603
-
604
- (If the suite name differs, use the suite that contains the id-format metadata assertions.)
605
-
606
- - [ ] **Step 3: Parse in `metadata.c`**
607
-
608
- Near the `id-format` branch:
609
-
610
- ```c
611
- } else if (strcasecmp(key, "toc-min-max") == 0 || strcasecmp(key, "toc_min_max") == 0) {
612
- int min = 0, max = 0;
613
- if (sscanf(value, "%d,%d", &min, &max) == 2 &&
614
- min >= 1 && max <= 6 && min <= max) {
615
- options->toc_min = min;
616
- options->toc_max = max;
617
- }
618
- ```
619
-
620
- Ignore invalid values silently (match how other metadata keys behave) unless nearby keys error loudly — stay consistent.
621
-
622
- - [ ] **Step 4: Run metadata + toc suites**
623
-
624
- ```bash
625
- cd /Users/ttscoff/Desktop/Code/apex/build && make apex_test_runner -j4 && ./apex_test_runner toc && ./apex_test_runner metadata_control_options
626
- ```
627
-
628
- - [ ] **Step 5: Commit**
629
-
630
- ```bash
631
- git add src/extensions/metadata.c tests/test_metadata.c
632
- git commit -m "Support toc-min-max metadata for TOC depth defaults"
633
- ```
634
-
635
- ---
636
-
637
- ### Task 7: Documentation
638
-
639
- **Files:**
640
- - Modify: `man/apex.1.md` (then `make man`)
641
- - Modify: `/Users/ttscoff/Desktop/Code/apex.wiki/Command-Line-Options.md`
642
- - Modify: `/Users/ttscoff/Desktop/Code/apex.wiki/Syntax.md` (TOC section)
643
- - Optionally: `/Users/ttscoff/Desktop/Code/apex.wiki/Header-IDs.md` (note `-t toc` uses same IDs)
644
-
645
- - [ ] **Step 1: Man page**
646
-
647
- Under `-t` / `--to` list, add:
648
-
649
- ```markdown
650
- - **toc** - Markdown unordered list of heading links only (default depth `#`–`###`)
651
- ```
652
-
653
- Add flag section:
654
-
655
- ```markdown
656
- **--toc-min-max** *MIN,MAX*
657
- : Inclusive heading depth range for **--to toc** and for HTML TOC markers that do not specify their own range. Default **1,3**. Marker syntax such as `{{TOC:2-5}}` still overrides. Values must satisfy `1 <= MIN <= MAX <= 6`.
658
- ```
659
-
660
- Regenerate:
661
-
662
- ```bash
663
- cd /Users/ttscoff/Desktop/Code/apex && make man
664
- ```
665
-
666
- - [ ] **Step 2: Wiki**
667
-
668
- In `Command-Line-Options.md`, document `-t toc` and `--toc-min-max` near other output/format flags.
669
-
670
- In `Syntax.md` TOC section, note:
671
-
672
- - Bare `{{TOC}}` / `<!--TOC-->` / `{:toc}` now default to levels 1–3 (or `--toc-min-max` / `toc-min-max` metadata).
673
- - `-t toc` extracts a Markdown TOC without markers.
674
-
675
- - [ ] **Step 3: Commit**
676
-
677
- ```bash
678
- git add man/apex.1.md man/apex.1
679
- # wiki is a separate repo:
680
- cd /Users/ttscoff/Desktop/Code/apex.wiki && git add Command-Line-Options.md Syntax.md Header-IDs.md && git status
681
- ```
682
-
683
- Commit apex and wiki separately with clear messages. Do not push unless asked.
684
-
685
- ---
686
-
687
- ### Task 8: Final verification
688
-
689
- - [ ] **Step 1: Full relevant test pass**
690
-
691
- ```bash
692
- cd /Users/ttscoff/Desktop/Code/apex/build && make -j4 && ./apex_test_runner toc && ./apex_test_runner header_ids && ./apex_test_runner metadata_control_options
693
- ```
694
-
695
- - [ ] **Step 2: End-to-end smoke**
696
-
697
- ```bash
698
- ./apex -t toc <<'MD'
699
- # Intro
700
- ## Details
701
- ### Deep
702
- #### Deeper
703
- MD
704
- ./apex -t toc --toc-min-max=1,6 <<'MD'
705
- # Intro
706
- ## Details
707
- ### Deep
708
- #### Deeper
709
- MD
710
- ./apex -t html <<'MD'
711
- # Intro
712
- {{TOC}}
713
- ## Details
714
- ### Deep
715
- #### Deeper
716
- MD
717
- ```
718
-
719
- Confirm Markdown TOC and HTML bare TOC both stop at `###` by default; `--toc-min-max=1,6` includes `####`.
720
-
721
- - [ ] **Step 3: Update `commit_message.txt` only if the user asks for a changelog commit message**
722
-
723
- ---
724
-
725
- ## Spec coverage checklist
726
-
727
- | Spec requirement | Task |
728
- |------------------|------|
729
- | `-t toc` Markdown list `[Title](#id)` | 4, 5 |
730
- | Default depth 1–3 | 1, 3, 4 |
731
- | `--toc-min-max` | 5 |
732
- | Flag seeds HTML markers; marker overrides | 3 |
733
- | `.no_toc` excluded | 4 (existing collect_headers) |
734
- | IDs match `--id-format` / manual IDs | 2, 4 |
735
- | Metadata `toc-min-max` | 6 |
736
- | Docs / man | 7 |
737
- | Empty doc behavior | 4 |
738
- | Invalid CLI values rejected | 5 |
739
-
740
- ## Notes for implementers
741
-
742
- - `apex_markdown_to_html` is the library entry for all formats despite the name — follow existing early-return patterns for JSON/markdown.
743
- - Bare HTML TOC default change (1–6 → 1–3) is intentional; call it out in changelog with `@changed` when the user requests a commit message.
744
- - Do not add separate `--toc-min` / `--toc-max` flags.
745
- - Wiki lives in `/Users/ttscoff/Desktop/Code/apex.wiki` (separate git repo).