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,749 +0,0 @@
1
- # Apex Citations and Bibliography Implementation Plan
2
-
3
- ## Executive Summary
4
-
5
- This document provides a comprehensive plan for implementing
6
- citations and bibliographies in Apex, based on analysis of
7
- how mmark, MultiMarkdown, and Pandoc handle citations. It
8
- addresses key questions about bibliography formats, external
9
- files, metadata integration, and syntax modes.
10
-
11
- ## Analysis of Existing Tools
12
-
13
- ### Pandoc Output Analysis
14
-
15
- **Citation Format:**
16
-
17
- Uses `<span class="citation" data-cites="key1 key2">(Formatted Citation)</span>`
18
-
19
- Supports multiple citations in one span: `data-cites="doe99 smith2000 smith2004"`
20
-
21
- - Author-date style: `(Doe 1999; Jane Smith 2000, 2004)`
22
- - Author-in-text: `John Smith (2004)` (no parentheses)
23
- - Author-suppressed: `(2004)` (no author name)
24
-
25
- **Bibliography Format:**
26
-
27
- Uses `<div id="refs" class="references csl-bib-body hanging-indent">`
28
-
29
- - Each entry: `<div id="ref-key" class="csl-entry">`
30
- - Formatted with CSL (Citation Style Language)
31
- - Includes proper typography (em dashes, quotes, italics)
32
-
33
- **Key Observations:**
34
-
35
- Pandoc uses CSL (Citation Style Language) for all formatting
36
-
37
- - Citations are processed through citeproc
38
- - Bibliography is automatically generated from cited items
39
- - Supports BibTeX, CSL JSON, and other formats as input
40
-
41
- ### mmark Output Analysis
42
-
43
- **Citation Format:**
44
-
45
- - Uses XML2RFC format: `<xref target="RFC2535"></xref>`
46
-
47
- For HTML output, converts to simple links or formatted text
48
-
49
- - Special handling for RFC/BCP/STD/I-D/W3C documents
50
- - Auto-generates references for these document types
51
-
52
- **Bibliography Format:**
53
-
54
- - Requires `{backmatter}` marker to generate bibliography
55
- - Uses XML2RFC `<reference>` elements
56
- - Auto-fetches RFC/I-D metadata from citation index
57
-
58
- **Key Observations:**
59
-
60
- - mmark is specialized for RFC documents
61
- - Uses external citation index for RFC/I-D metadata
62
- - Bibliography only appears if `{backmatter}` is present
63
- - Less flexible than Pandoc for general academic citations
64
-
65
- ### MultiMarkdown Output Analysis
66
-
67
- **Citation Format:**
68
-
69
- Uses numeric references: `<a href="#Doe:2006" id="Doe:2006:1">[1]</a>`
70
-
71
- - Simple numbered citations
72
- - Links to bibliography entries
73
-
74
- **Bibliography Format:**
75
-
76
- Uses `<div id="bibliography">` with entries like `<div id="Doe:2006">`
77
-
78
- - Simple format, no CSL styling
79
- - References defined inline or in separate section
80
-
81
- **Key Observations:**
82
-
83
- - Simpler than Pandoc
84
- - No CSL support
85
- - Numeric citations only
86
- - Good for basic use cases
87
-
88
- ## Recommended Approach for Apex
89
-
90
- ### Bibliography Format: CSL JSON (Primary)
91
-
92
- **Why CSL JSON?**
93
-
94
- 1. **Native Format**: CSL JSON is the native format for
95
-
96
- citation processing
97
-
98
- 2. **Flexibility**: Supports all citation styles via CSL
99
-
100
- stylesheets
101
-
102
- **Standard**: Widely used (Pandoc, Zotero, Mendeley, etc.)
103
-
104
- 4. **Extensibility**: Easy to add new fields and entry types
105
- 5. **Processing**: Can be directly consumed by citeproc
106
-
107
- processors
108
-
109
- **Format Priority:**
110
-
111
- 1. **CSL JSON** (`.json`) - Primary format, native support
112
- 2. **BibTeX** (`.bib`) - Most common, convert to CSL JSON
113
-
114
- internally
115
-
116
- **CSL YAML** (`.yaml`) - Human-readable, convert to CSL JSON
117
-
118
- 4. **RIS** (`.ris`) - Lower priority, can add later
119
-
120
- ### Bibliography Storage: External Files (Recommended)
121
-
122
- **Yes, external files should be supported** for the
123
- following reasons:
124
-
125
- 1. **Reusability**: Same bibliography can be used across
126
-
127
- multiple documents
128
-
129
- 2. **Management**: Reference managers (Zotero, Mendeley)
130
-
131
- export to `.bib` or `.json`
132
-
133
- 3. **Standard Practice**: Pandoc, Quarto, and other tools
134
-
135
- use external files
136
-
137
- 4. **Scalability**: Large bibliographies are easier to
138
-
139
- manage in separate files
140
-
141
- **Implementation Options:**
142
-
143
- #### Option 1: External Files Only (Recommended)
144
- - Specify via metadata: `bibliography: references.bib`
145
- - Specify via CLI: `--bibliography references.bib`
146
-
147
- Support multiple files: `bibliography: [refs1.bib, refs2.bib]`
148
-
149
- - Auto-detect format from extension
150
-
151
- #### Option 2: Hybrid (External + Inline)
152
- - Support external files (primary)
153
- - Support inline YAML `references:` field (for small
154
-
155
- bibliographies)
156
-
157
- - Support MultiMarkdown reference definitions (for
158
-
159
- compatibility)
160
-
161
- - Merge all sources (inline takes precedence)
162
-
163
- **Recommendation**: Implement Option 2 (Hybrid) for maximum
164
- flexibility.
165
-
166
- ### Metadata Integration
167
-
168
- **YAML Front Matter:**
169
- ```yaml
170
- ---
171
- bibliography: references.bib
172
- # or multiple files:
173
- bibliography:
174
- - refs1.bib
175
- - refs2.bib
176
-
177
- csl: apa.csl # Citation style file
178
- suppress-bibliography: false
179
- link-citations: true
180
- show-tooltips: false
181
- nocite: |
182
- @item1, @item2
183
- # or include all:
184
- nocite: '@*'
185
-
186
- references: # Inline references (CSL JSON format)
187
- - id: doe99
188
- type: article-journal
189
- author:
190
- - family: Doe
191
- given: John
192
- issued:
193
- date-parts: [[1999]]
194
- title: Article Title
195
- container-title: Journal Name
196
- volume: 1
197
- page: 1-10
198
- ---
199
-
200
- ```
201
-
202
- **MultiMarkdown Metadata:**
203
- ```
204
- Bibliography: references.bib
205
- CSL: apa.csl
206
- Suppress Bibliography: false
207
- Link Citations: true
208
-
209
- ```
210
-
211
- **Pandoc Title Block:**
212
- ```
213
- % Bibliography: references.bib
214
- % CSL: apa.csl
215
-
216
- ```
217
-
218
- ### Command-Line Flags
219
-
220
- ```bash
221
- # Single bibliography file
222
- apex input.md --bibliography refs.bib
223
-
224
- # Multiple bibliography files
225
- apex input.md --bibliography refs1.bib --bibliography refs2.bib
226
-
227
- # Citation style
228
- apex input.md --bibliography refs.bib --csl apa.csl
229
-
230
- # Suppress bibliography
231
- apex input.md --bibliography refs.bib --no-bibliography
232
-
233
- # Link citations to bibliography
234
- apex input.md --bibliography refs.bib --link-citations
235
-
236
- # Show tooltips on citations
237
- apex input.md --bibliography refs.bib --show-tooltips
238
-
239
- ```
240
-
241
- **Precedence Order:**
242
-
243
- 1. Command-line flags (highest priority)
244
- 2. Document metadata
245
- 3. Default values (lowest priority)
246
-
247
- ### Syntax Modes
248
-
249
- #### Mode-Specific Behavior
250
-
251
- **CommonMark Mode:**
252
-
253
- - Citations: **Disabled** (pure CommonMark, no extensions)
254
- - Syntax: None
255
-
256
- **GFM Mode:**
257
-
258
- - Citations: **Disabled** (GFM doesn't support citations)
259
- - Syntax: None
260
-
261
- **MultiMarkdown Mode:**
262
-
263
- - Citations: **Enabled**
264
- - Syntax: MultiMarkdown syntax only (`[#key]`)
265
- - Bibliography: From reference definitions or external file
266
- - Output: Numeric citations (like MultiMarkdown)
267
-
268
- **Kramdown Mode:**
269
-
270
- - Citations: **Disabled** (Kramdown uses different citation
271
-
272
- system)
273
-
274
- - Syntax: None
275
- - *Note: Could add Kramdown citation syntax in future*
276
-
277
- **Unified Mode:**
278
-
279
- - Citations: **Enabled**
280
- - Syntax: **All syntaxes** (Pandoc, MultiMarkdown, mmark)
281
- - Auto-detection: Flexible parsing
282
- - Bibliography: All sources (external files, inline YAML,
283
-
284
- MMD definitions)
285
-
286
- #### Syntax Detection in Unified Mode
287
-
288
- **Strategy: Pattern-Based Detection**
289
-
290
- 1. **Pandoc Syntax** (`[@key]` or `@key`):
291
- - Pattern: `[@` followed by alphanumeric key
292
- - Most common, try first
293
-
294
- Supports: prefixes, locators, suffixes, author suppression
295
-
296
- 2. **MultiMarkdown Syntax** (`[#key]`):
297
- - Pattern: `[#` followed by citation key
298
- - Distinctive `#` marker
299
- - Supports: locators before citation
300
-
301
- 3. **mmark Syntax** (`[@RFC1234]`):
302
- - Pattern: `[@` followed by RFC/BCP/STD/I-D/W3C prefix
303
- - Special case: auto-generate references
304
-
305
- Supports: modifiers (`!`, `?`, `-`), combined references
306
-
307
- **Detection Algorithm:**
308
- ```
309
- For each potential citation:
310
- 1. Check for mmark pattern: [@RFC...] or [@BCP...] etc.
311
- → If match: Process as mmark citation
312
- 2. Check for MultiMarkdown pattern: [#key]
313
- → If match: Process as MMD citation
314
- 3. Check for Pandoc pattern: [@key] or @key
315
- → If match: Process as Pandoc citation
316
- 4. If no match: Leave as-is (not a citation)
317
-
318
- ```
319
-
320
- **Edge Cases:**
321
-
322
- - `[@RFC1234]` could be Pandoc or mmark → Prefer mmark if
323
-
324
- matches RFC pattern
325
-
326
- - `[#key]` is unambiguous → Always MultiMarkdown
327
- - `[@key]` without RFC prefix → Pandoc syntax
328
-
329
- ## Implementation Architecture
330
-
331
- ### Processing Pipeline
332
-
333
- ```
334
- 1. Preprocessing Phase
335
- ├─ Extract metadata (YAML, MMD, Pandoc)
336
- ├─ Load bibliography files (from metadata or CLI)
337
- ├─ Parse bibliography (BibTeX → CSL JSON, CSL JSON, CSL YAML)
338
- └─ Build citation index (map keys to entries)
339
-
340
- 2. Parsing Phase
341
- ├─ Scan for citations (mode-aware)
342
- ├─ Extract citation data (key, locator, prefix, suffix)
343
- ├─ Match citations to bibliography entries
344
- └─ Store citation registry
345
-
346
- 3. Rendering Phase
347
- ├─ Process citations through CSL (or simple formatter)
348
- ├─ Generate citation HTML
349
- ├─ Collect cited items for bibliography
350
- └─ Format bibliography entries
351
-
352
- 4. Post-processing Phase
353
- ├─ Insert bibliography at marker or end
354
- ├─ Add links between citations and bibliography
355
- ├─ Add tooltips (if enabled)
356
- └─ Final HTML output
357
-
358
- ```
359
-
360
- ### File Structure
361
-
362
- ```
363
- src/extensions/
364
- ├── citations.h # Citation parsing header
365
- ├── citations.c # Citation parsing implementation
366
- ├── bibliography.h # Bibliography handling header
367
- ├── bibliography.c # Bibliography parsing/formatting
368
- ├── bibtex_parser.h # BibTeX parser header
369
- ├── bibtex_parser.c # BibTeX parser implementation
370
- └── csl_formatter.h # CSL formatter header (if implementing minimal CSL)
371
- └── csl_formatter.c # CSL formatter implementation (if implementing minimal CSL)
372
-
373
- ```
374
-
375
- ### Core Data Structures
376
-
377
- ```c
378
- /* Citation structure */
379
- typedef struct {
380
- char *key; // Citation key (e.g., "doe99")
381
- char *prefix; // Prefix text (e.g., "see")
382
- char *locator; // Locator (e.g., "pp. 33-35")
383
- char *suffix; // Suffix text (e.g., "and passim")
384
- bool author_suppressed; // -@key syntax
385
- bool author_in_text; // @key syntax (no brackets)
386
- int syntax_type; // PANDOC, MMD, MMARK
387
- int position; // Position in document
388
- } apex_citation;
389
-
390
- /* Bibliography entry (CSL JSON format) */
391
- typedef struct {
392
- char *id; // Citation key
393
- char *type; // Entry type (article-journal, book, etc.)
394
- cJSON *data; // Full CSL JSON object (using cJSON)
395
- } apex_bibliography_entry;
396
-
397
- /* Citation registry */
398
- typedef struct {
399
- apex_citation **citations; // Array of citations
400
- size_t count; // Number of citations
401
- apex_bibliography_entry **entries; // Bibliography entries
402
- size_t entry_count; // Number of entries
403
- cJSON *csl_style; // CSL style (if using)
404
- } apex_citation_registry;
405
-
406
- ```
407
-
408
- ## Bibliography Format Details
409
-
410
- ### CSL JSON Structure
411
-
412
- ```json
413
- [
414
- {
415
- "id": "doe99",
416
- "type": "article-journal",
417
- "author": [
418
- {
419
- "family": "Doe",
420
- "given": "John"
421
- }
422
- ],
423
- "issued": {
424
- "date-parts": [[1999]]
425
- },
426
- "title": "Article Title",
427
- "container-title": "Journal Name",
428
- "volume": "1",
429
- "page": "1-10"
430
- }
431
- ]
432
-
433
- ```
434
-
435
- ### BibTeX to CSL JSON Conversion
436
-
437
- **Common BibTeX Entry Types:**
438
-
439
- - `@article` → `article-journal`
440
- - `@book` → `book`
441
- - `@inbook` → `chapter`
442
- - `@incollection` → `chapter`
443
- - `@inproceedings` → `paper-conference`
444
- - `@phdthesis` → `thesis`
445
- - `@mastersthesis` → `thesis`
446
- - `@techreport` → `report`
447
-
448
- **Field Mapping:**
449
-
450
- - `author` → `author` (parse names)
451
- - `title` → `title`
452
- - `journal` → `container-title`
453
- - `year` → `issued.date-parts`
454
- - `pages` → `page`
455
- - `publisher` → `publisher`
456
- - `volume` → `volume`
457
- - `number` → `issue`
458
-
459
- ### CSL YAML Structure
460
-
461
- ```yaml
462
- - id: doe99
463
- type: article-journal
464
- author:
465
- - family: Doe
466
- given: John
467
- issued:
468
- date-parts:
469
- - - 1999
470
- title: Article Title
471
- container-title: Journal Name
472
- volume: 1
473
- page: 1-10
474
-
475
- ```
476
-
477
- ## Output Format
478
-
479
- ### Citation HTML (Pandoc-style)
480
-
481
- **Author-Date Style:**
482
- ```html
483
- <span class="citation" data-cites="doe99">(Doe 1999)</span>
484
-
485
- ```
486
-
487
- **Multiple Citations:**
488
- ```html
489
- <span class="citation" data-cites="doe99 smith2000 smith2004">
490
- (Doe 1999; Jane Smith 2000, 2004)
491
- </span>
492
-
493
- ```
494
-
495
- **With Locator:**
496
- ```html
497
- <span class="citation" data-cites="doe99">Doe (1999, 33–35)</span>
498
-
499
- ```
500
-
501
- **Author-Suppressed:**
502
- ```html
503
- <span class="citation" data-cites="smith04">(2004)</span>
504
-
505
- ```
506
-
507
- **With Links:**
508
- ```html
509
- <a href="#ref-doe99" class="citation" data-cites="doe99">
510
- (Doe 1999)
511
- </a>
512
-
513
- ```
514
-
515
- **With Tooltips:**
516
- ```html
517
- <a href="#ref-doe99" class="citation" data-cites="doe99"
518
- title="Doe, John. 1999. 'Article Title.' Journal Name 1: 1-10.">
519
- (Doe 1999)
520
- </a>
521
-
522
- ```
523
-
524
- ### Bibliography HTML
525
-
526
- ```html
527
- <div id="refs" class="references csl-bib-body hanging-indent" role="doc-bibliography">
528
- <div id="ref-doe99" class="csl-entry" role="doc-biblioentry">
529
- Doe, John. 1999. <span>"Article Title."</span> <em>Journal Name</em> 1: 1–10.
530
- </div>
531
- <div id="ref-smith2000" class="csl-entry" role="doc-biblioentry">
532
- Smith, Jane. 2000. <em>Book Title</em>. Publisher.
533
- </div>
534
- </div>
535
-
536
- ```
537
-
538
- ### Bibliography Insertion Points
539
-
540
- 1. **`<!-- REFERENCES -->` marker** (if present)
541
- 2. **`{backmatter}` marker** (mmark style, if present)
542
- 3. **`<div id="refs">`** (if present)
543
- 4. **End of document** (default)
544
-
545
- ## Dependencies
546
-
547
- ### Required Libraries
548
-
549
- 1. **JSON Parser**: `cJSON` (lightweight C JSON library)
550
- - For parsing CSL JSON and BibTeX (after conversion)
551
- - License: MIT
552
- - Small footprint
553
-
554
- 2. **BibTeX Parser**: Implement minimal parser in C
555
- - Parse BibTeX entries
556
- - Convert to CSL JSON
557
- - Handle common entry types and fields
558
-
559
- 3. **YAML Parser**: Reuse existing Apex YAML parser
560
- - Already used for metadata
561
- - Can parse CSL YAML format
562
-
563
- ### CSL Processing Options
564
-
565
- **Option 1: Minimal CSL Implementation (Recommended for
566
- MVP)**
567
-
568
- - Implement basic author-date formatting
569
- - Support common entry types (article, book, chapter)
570
- - Simple formatting rules
571
- - **Pros**: No external dependencies, full control
572
- - **Cons**: Limited style support, more work
573
-
574
- **Option 2: Use citeproc-rs via FFI**
575
-
576
- - Rust library with C bindings
577
- - Full CSL support
578
- - **Pros**: Complete CSL support, well-tested
579
- - **Cons**: Requires Rust toolchain, FFI complexity
580
-
581
- **Option 3: Use citeproc-js via Node.js**
582
-
583
- - JavaScript library
584
- - **Pros**: Full CSL support
585
- - **Cons**: Requires Node.js, complex integration
586
-
587
- **Recommendation**: Start with Option 1 (minimal
588
- implementation) for MVP, consider Option 2 for full CSL
589
- support later.
590
-
591
- ## Implementation Phases
592
-
593
- ### Phase 1: Basic Citation Parsing (MVP)
594
- - [ ] Parse Pandoc syntax `[@key]` (simple keys only)
595
- - [ ] Parse MultiMarkdown syntax `[#key]`
596
- - [ ] Parse mmark syntax `[@RFC1234]` (basic)
597
- - [ ] Store citations in registry
598
- - [ ] Basic HTML output (show key or simple format)
599
- - [ ] Mode-aware syntax detection
600
-
601
- ### Phase 2: Bibliography Loading
602
- - [ ] Load CSL JSON files
603
- - [ ] Parse CSL JSON to internal format
604
- - [ ] Load BibTeX files
605
- - [ ] Convert BibTeX to CSL JSON
606
- - [ ] Load CSL YAML files
607
- - [ ] Parse MultiMarkdown reference definitions
608
- - [ ] Merge multiple bibliography sources
609
- - [ ] Match citations to bibliography entries
610
-
611
- ### Phase 3: Basic Citation Formatting
612
- - [ ] Implement minimal author-date formatter
613
- - [ ] Format citations with author names and years
614
- - [ ] Handle multiple citations
615
- - [ ] Generate proper HTML output
616
- - [ ] Add CSS classes
617
-
618
- ### Phase 4: Bibliography Generation
619
- - [ ] Collect cited items
620
- - [ ] Sort bibliography entries
621
- - [ ] Format bibliography entries
622
- - [ ] Generate bibliography HTML
623
- - [ ] Insert bibliography at marker or end
624
-
625
- ### Phase 5: Advanced Features
626
- - [ ] Support locators (pages, chapters, etc.)
627
- - [ ] Support prefixes and suffixes
628
- - [ ] Support author suppression (`-@key`)
629
- - [ ] Support author-in-text (`@key`)
630
- - [ ] Add citation links
631
- - [ ] Add tooltips
632
- - [ ] Support `nocite` metadata
633
-
634
- ### Phase 6: Full CSL Support (Future)
635
- - [ ] Integrate full CSL processor
636
- - [ ] Support multiple citation styles
637
- - [ ] Load CSL style files
638
- - [ ] Support numeric and note styles
639
-
640
- ## Testing Strategy
641
-
642
- ### Unit Tests
643
-
644
- 1. **Citation Parsing**:
645
- - Test each syntax (Pandoc, MMD, mmark)
646
- - Test edge cases (nested brackets, special characters)
647
- - Test mode detection in unified mode
648
-
649
- 2. **Bibliography Parsing**:
650
- - Test each format (BibTeX, CSL JSON, CSL YAML)
651
- - Test multiple files
652
- - Test inline references
653
- - Test error handling (missing files, invalid format)
654
-
655
- 3. **Citation Formatting**:
656
- - Test author-date formatting
657
- - Test multiple citations
658
- - Test with/without links
659
- - Test with/without tooltips
660
-
661
- 4. **Bibliography Generation**:
662
- - Test sorting
663
- - Test formatting
664
- - Test insertion points
665
- - Test suppression
666
-
667
- ### Integration Tests
668
-
669
- 1. **End-to-end**:
670
- - Full document with citations
671
- - Multiple bibliography sources
672
- - Different citation styles
673
- - Different output formats
674
-
675
- 2. **Mode Compatibility**:
676
-
677
- Test in each mode (commonmark, gfm, mmd, kramdown, unified)
678
-
679
- - Test syntax detection in unified mode
680
- - Test feature flags
681
-
682
- ## Configuration
683
-
684
- ### API Options
685
-
686
- ```c
687
- typedef struct {
688
- // ... existing options ...
689
-
690
- // Citation options
691
- bool enable_citations;
692
- char **bibliography_files; // NULL-terminated array
693
- const char *csl_file; // CSL style file
694
- bool suppress_bibliography;
695
- bool link_citations;
696
- bool show_tooltips;
697
- const char *nocite; // Comma-separated keys, or "*" for all
698
- } apex_options;
699
-
700
- ```
701
-
702
- ## Open Questions
703
-
704
- 1. **CSL Processor**: Start with minimal implementation or
705
-
706
- use existing library?
707
-
708
- - **Recommendation**: Start minimal, add full CSL later
709
-
710
- 2. **BibTeX Parser**: Implement or use library?
711
- - **Recommendation**: Implement minimal parser
712
-
713
- 3. **Performance**: How to handle large bibliographies
714
-
715
- (1000+ entries)?
716
-
717
- - **Recommendation**: Use hash table for lookup, cache
718
-
719
- parsed bibliographies
720
-
721
- 4. **Validation**: How strict should citation validation be?
722
- - **Recommendation**: Warn on missing citations, don't
723
-
724
- error (like Pandoc)
725
-
726
- 5. **Error Handling**: How to handle missing citations?
727
-
728
- **Recommendation**: Show citation key in output with warning
729
-
730
- 6. **Backwards Compatibility**: How to ensure existing
731
-
732
- documents still work?
733
-
734
- - **Recommendation**: Citations only processed if
735
-
736
- bibliography is provided
737
-
738
- ## References
739
-
740
- [Pandoc Citations](https://pandoc.org/demo/example33/8.20-citation-syntax.html)
741
-
742
- [MultiMarkdown Citations](https://fletcher.github.io/MultiMarkdown-6/Documentation/bibliography.html)
743
-
744
- - [mmark Citations](https://mmark.miek.nl/post/citations/)
745
- - [CSL Project](https://citationstyles.org/)
746
-
747
- [Citation Style Language](https://docs.citationstyles.org/en/stable/)
748
-
749
- - [cJSON Library](https://github.com/DaveGamble/cJSON)