apex-ruby 1.0.29 → 1.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -8
- data/apex-ruby.gemspec +14 -3
- data/ext/apex_ext/apex_src/include/apex/apex.h +11 -2
- data/ext/apex_ext/apex_src/src/apex.c +64 -5
- data/ext/apex_ext/apex_src/src/ast_terminal.c +2 -4
- data/ext/apex_ext/apex_src/src/extensions/callouts.c +103 -63
- data/ext/apex_ext/apex_src/src/extensions/callouts.h +3 -2
- data/ext/apex_ext/apex_src/src/extensions/citations.c +15 -2
- data/ext/apex_ext/apex_src/src/extensions/emoji.c +73 -7
- data/ext/apex_ext/apex_src/src/extensions/html_markdown.c +25 -4
- data/ext/apex_ext/apex_src/src/extensions/html_markdown.h +4 -1
- data/ext/apex_ext/apex_src/src/extensions/insert.c +49 -0
- data/ext/apex_ext/apex_src/src/extensions/metadata.c +275 -55
- data/ext/apex_ext/apex_src/src/extensions/metadata.h +9 -0
- data/ext/apex_ext/apex_src/src/extensions/relaxed_tables.c +172 -254
- data/ext/apex_ext/apex_src/src/extensions/table_html_postprocess.c +36 -127
- data/ext/apex_ext/apex_src/src/html_renderer.c +99 -157
- data/ext/apex_ext/extconf.rb +31 -79
- data/lib/apex/version.rb +1 -1
- metadata +1 -470
- data/ext/apex_ext/apex_src/AGENTS.md +0 -41
- data/ext/apex_ext/apex_src/BENCHMARK.md +0 -32
- data/ext/apex_ext/apex_src/BENCHMARK_COMPARISON.md +0 -67
- data/ext/apex_ext/apex_src/CHANGELOG.md +0 -3373
- data/ext/apex_ext/apex_src/CMakeLists.txt +0 -481
- data/ext/apex_ext/apex_src/Dockerfile.linux-build +0 -15
- data/ext/apex_ext/apex_src/Formula/apex.rb +0 -43
- data/ext/apex_ext/apex_src/Info.plist.in +0 -27
- data/ext/apex_ext/apex_src/Package.swift +0 -192
- data/ext/apex_ext/apex_src/PackageSupport/README.md +0 -17
- data/ext/apex_ext/apex_src/PackageSupport/cmark-gfm/cmark_gfm_spm_stub.c +0 -4
- data/ext/apex_ext/apex_src/README.md +0 -536
- data/ext/apex_ext/apex_src/ROADMAP.md +0 -5
- data/ext/apex_ext/apex_src/VERSION +0 -1
- data/ext/apex_ext/apex_src/apex-debug.log +0 -4
- data/ext/apex_ext/apex_src/apex-header-2-rb@2x.webp +0 -0
- data/ext/apex_ext/apex_src/apex-plugins.json.example +0 -20
- data/ext/apex_ext/apex_src/apex.code-workspace +0 -38
- data/ext/apex_ext/apex_src/apex.pc.in +0 -11
- data/ext/apex_ext/apex_src/apex.taskpaper +0 -12
- data/ext/apex_ext/apex_src/apex_deflist_debug.log +0 -25
- data/ext/apex_ext/apex_src/buildnotes.md +0 -1435
- data/ext/apex_ext/apex_src/cli/main.c +0 -4588
- data/ext/apex_ext/apex_src/debug.log +0 -7
- data/ext/apex_ext/apex_src/debug_test.sh +0 -22
- data/ext/apex_ext/apex_src/docs/API_REFERENCE.md +0 -451
- data/ext/apex_ext/apex_src/docs/ARCHITECTURE.md +0 -166
- data/ext/apex_ext/apex_src/docs/CITATIONS_EXAMPLES.md +0 -274
- data/ext/apex_ext/apex_src/docs/CITATIONS_IMPLEMENTATION_PLAN.md +0 -749
- data/ext/apex_ext/apex_src/docs/CITATIONS_PLAN.md +0 -744
- data/ext/apex_ext/apex_src/docs/CMARK_INTEGRATION.md +0 -220
- data/ext/apex_ext/apex_src/docs/CRITICMARKUP.md +0 -501
- data/ext/apex_ext/apex_src/docs/DEBUGGING.md +0 -73
- data/ext/apex_ext/apex_src/docs/FINAL_STATUS.md +0 -391
- data/ext/apex_ext/apex_src/docs/FINAL_STATUS_UPDATE.md +0 -237
- data/ext/apex_ext/apex_src/docs/IAL_FEATURES.md +0 -210
- data/ext/apex_ext/apex_src/docs/IAL_STATUS.md +0 -344
- data/ext/apex_ext/apex_src/docs/INDEX_IMPLEMENTATION_ANALYSIS.md +0 -382
- data/ext/apex_ext/apex_src/docs/INTEGRATION_EXAMPLE.m +0 -144
- data/ext/apex_ext/apex_src/docs/LIMITATIONS_RESOLVED.md +0 -278
- data/ext/apex_ext/apex_src/docs/OUTPUT_MODES.md +0 -321
- data/ext/apex_ext/apex_src/docs/PROGRESS.md +0 -167
- data/ext/apex_ext/apex_src/docs/STANDALONE_FEATURE.md +0 -174
- data/ext/apex_ext/apex_src/docs/TABLE_SPANS_STATUS.md +0 -243
- data/ext/apex_ext/apex_src/docs/TEST_COVERAGE.md +0 -316
- data/ext/apex_ext/apex_src/docs/USER_GUIDE.md +0 -803
- data/ext/apex_ext/apex_src/docs/WIKI_LINKS_ISSUE.md +0 -91
- data/ext/apex_ext/apex_src/docs/index.md +0 -459
- data/ext/apex_ext/apex_src/docs/plans/2025-02-27-man-page-output-implementation.md +0 -351
- data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-12-toc-output-format.md +0 -745
- data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-18-bear-image-attributes.md +0 -829
- data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-19-apex-node-npm.md +0 -1148
- data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-12-toc-output-format-design.md +0 -161
- data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-18-bear-image-attributes-design.md +0 -184
- data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-19-apex-node-npm-design.md +0 -211
- data/ext/apex_ext/apex_src/documentation/README.md +0 -160
- data/ext/apex_ext/apex_src/documentation/app-settings-table.md +0 -67
- data/ext/apex_ext/apex_src/documentation/app-transformed/Citations.md +0 -340
- data/ext/apex_ext/apex_src/documentation/app-transformed/Credits.md +0 -11
- data/ext/apex_ext/apex_src/documentation/app-transformed/Header-IDs.md +0 -234
- data/ext/apex_ext/apex_src/documentation/app-transformed/Inline-Attribute-Lists.md +0 -516
- data/ext/apex_ext/apex_src/documentation/app-transformed/Metadata-Transforms.md +0 -461
- data/ext/apex_ext/apex_src/documentation/app-transformed/Modes.md +0 -193
- data/ext/apex_ext/apex_src/documentation/app-transformed/Multi-File-Documents.md +0 -201
- data/ext/apex_ext/apex_src/documentation/app-transformed/Plugins.md +0 -678
- data/ext/apex_ext/apex_src/documentation/app-transformed/Syntax.md +0 -1367
- data/ext/apex_ext/apex_src/documentation/docsets/Apex Command Line Options.cheatsheet.txt +0 -371
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Info.plist +0 -24
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/C-API.html +0 -2211
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Callouts.html +0 -1194
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Citations.html +0 -1620
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Command-Line-Options.html +0 -6024
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Configuration.html +0 -1877
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Credits.html +0 -1040
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Examples.html +0 -1402
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Filters.html +0 -1656
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Generating-Man-Pages.html +0 -1226
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Getting-Started.html +0 -1148
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Header-IDs.html +0 -1478
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Home.html +0 -1225
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Indices.html +0 -2327
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Inline-Attribute-Lists.html +0 -2041
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Installation.html +0 -1314
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Limitations-and-Roadmap.html +0 -1868
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Metadata-Transforms.html +0 -1731
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Modes.html +0 -2242
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-File-Documents.html +0 -1533
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-Format-Images.html +0 -1362
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Pandoc-Integration.html +0 -1338
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Plugins.html +0 -3188
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Quarto-Mode.html +0 -1405
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Rendering-Markdown-In-Terminal.html +0 -1902
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Syntax.html +0 -4222
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Tables.html +0 -1781
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Troubleshooting.html +0 -1629
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Usage.html +0 -1394
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Using-Apex-with-Jekyll.html +0 -1132
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Writing-Tests.html +0 -1754
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Xcode-Integration.html +0 -2562
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/docSet.dsidx +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/optimizedIndex.dsidx +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Info.plist +0 -22
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans.woff +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Bold.woff +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Bold_Italic.woff +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Extrabold.woff +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Extrabold_Italic.woff +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Italic.woff +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Semibold.woff +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/cheatset_resources/Open_Sans_Semibold_Italic.woff +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/index.html +0 -914
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/style.css +0 -399
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/docSet.dsidx +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/optimizedIndex.dsidx +0 -0
- data/ext/apex_ext/apex_src/documentation/generate_app_docs.rb +0 -772
- data/ext/apex_ext/apex_src/documentation/generate_app_docs_ai.rb +0 -678
- data/ext/apex_ext/apex_src/documentation/generate_docset.rb +0 -873
- data/ext/apex_ext/apex_src/documentation/generate_single_html.rb +0 -733
- data/ext/apex_ext/apex_src/documentation/html/apex-app-docs.html +0 -8746
- data/ext/apex_ext/apex_src/documentation/html/apex-docs.html +0 -17073
- data/ext/apex_ext/apex_src/documentation/shared_scripts.js +0 -64
- data/ext/apex_ext/apex_src/documentation/shared_styles.css +0 -651
- data/ext/apex_ext/apex_src/documentation/transform_for_app.example.md +0 -260
- data/ext/apex_ext/apex_src/documentation/transform_for_app.md +0 -55
- data/ext/apex_ext/apex_src/escaping-repro.md +0 -103
- data/ext/apex_ext/apex_src/examples/bracketed_spans_demo.md +0 -119
- data/ext/apex_ext/apex_src/examples/emoji_span_plugin.yml +0 -11
- data/ext/apex_ext/apex_src/examples/example.html +0 -53
- data/ext/apex_ext/apex_src/examples/example.md +0 -85
- data/ext/apex_ext/apex_src/examples/fenced_divs_demo.md +0 -158
- data/ext/apex_ext/apex_src/examples/kbd.md +0 -8
- data/ext/apex_ext/apex_src/examples/kbd_plugin.rb +0 -250
- data/ext/apex_ext/apex_src/examples/kbd_plugin.yml +0 -9
- data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/Info.plist +0 -8
- data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/QuickLook/Preview.png +0 -0
- data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/document.wflow +0 -547
- data/ext/apex_ext/apex_src/examples/quick-actions/Markdown-to-RTF.workflow.zip +0 -0
- data/ext/apex_ext/apex_src/examples/quick-actions/README.md +0 -33
- data/ext/apex_ext/apex_src/ial.html +0 -24
- data/ext/apex_ext/apex_src/icon/apexicon-outline-black.png +0 -0
- data/ext/apex_ext/apex_src/icon/apexicon-outline-black@2x.png +0 -0
- data/ext/apex_ext/apex_src/icon/apexicon-outline-mark.png +0 -0
- data/ext/apex_ext/apex_src/icon/apexicon-outline-mark@2x.png +0 -0
- data/ext/apex_ext/apex_src/icon/apexicon-outline-white.png +0 -0
- data/ext/apex_ext/apex_src/icon/apexicon-outline-white@2x.png +0 -0
- data/ext/apex_ext/apex_src/icon/apexicon.png +0 -0
- data/ext/apex_ext/apex_src/icon/apexicon@2x.png +0 -0
- data/ext/apex_ext/apex_src/man/apex-config.5 +0 -455
- data/ext/apex_ext/apex_src/man/apex-config.5.md +0 -262
- data/ext/apex_ext/apex_src/man/apex-plugins.7 +0 -541
- data/ext/apex_ext/apex_src/man/apex-plugins.7.md +0 -365
- data/ext/apex_ext/apex_src/man/apex.1 +0 -583
- data/ext/apex_ext/apex_src/man/apex.1.html +0 -703
- data/ext/apex_ext/apex_src/man/apex.1.md +0 -803
- data/ext/apex_ext/apex_src/man/apex.1.new +0 -338
- data/ext/apex_ext/apex_src/objc/Apex.swift +0 -316
- data/ext/apex_ext/apex_src/objc/ApexPlugins.swift +0 -79
- data/ext/apex_ext/apex_src/objc/NSString+Apex.h +0 -207
- data/ext/apex_ext/apex_src/objc/NSString+Apex.m +0 -584
- data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.h +0 -76
- data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.m +0 -169
- data/ext/apex_ext/apex_src/output.html +0 -87
- data/ext/apex_ext/apex_src/pages/index.md +0 -459
- data/ext/apex_ext/apex_src/plans/quarto-mode.md +0 -442
- data/ext/apex_ext/apex_src/src/_README.md +0 -413
- data/ext/apex_ext/apex_src/src/extensions/github-emoji.txt +0 -869
- data/ext/apex_ext/apex_src/test-linux-build.sh +0 -20
- data/ext/apex_ext/apex_src/test.html +0 -103
- data/ext/apex_ext/apex_src/test_coverage.sh +0 -121
- data/ext/apex_ext/apex_src/test_ial_fenced.md +0 -6
- data/ext/apex_ext/apex_src/test_math_norm.py +0 -79
- data/ext/apex_ext/apex_src/test_pandoc_output.html +0 -48
- data/ext/apex_ext/apex_src/test_spm.sh +0 -107
- data/ext/apex_ext/apex_src/tests/ApexSPMTest/main.swift +0 -50
- data/ext/apex_ext/apex_src/tests/BENCHMARK_RESULTS.md +0 -229
- data/ext/apex_ext/apex_src/tests/CMakeLists.txt +0 -25
- data/ext/apex_ext/apex_src/tests/README.md +0 -152
- data/ext/apex_ext/apex_src/tests/benchmark.sh +0 -113
- data/ext/apex_ext/apex_src/tests/benchmark_comparison.sh +0 -166
- data/ext/apex_ext/apex_src/tests/compare_header_ids.sh +0 -31
- data/ext/apex_ext/apex_src/tests/fixtures/basic/headers.md +0 -25
- data/ext/apex_ext/apex_src/tests/fixtures/basic/list-interruption.md +0 -24
- data/ext/apex_ext/apex_src/tests/fixtures/basic/misc_markup.md +0 -33
- data/ext/apex_ext/apex_src/tests/fixtures/basic/test_basic.md +0 -26
- data/ext/apex_ext/apex_src/tests/fixtures/code/code-blocks.md +0 -260
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/SUMMARY.md +0 -6
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/chapter1.md +0 -7
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/index.txt +0 -9
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/intro.md +0 -5
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/section1_1.md +0 -5
- data/ext/apex_ext/apex_src/tests/fixtures/comprehensive_test.md +0 -652
- data/ext/apex_ext/apex_src/tests/fixtures/debug_ref_image_ial.md +0 -3
- data/ext/apex_ext/apex_src/tests/fixtures/demos/ial.md +0 -11
- data/ext/apex_ext/apex_src/tests/fixtures/demos/ial_demo.md +0 -177
- data/ext/apex_ext/apex_src/tests/fixtures/extensions/emoji-autocorrect.md +0 -94
- data/ext/apex_ext/apex_src/tests/fixtures/extensions/emoji_test.md +0 -3
- data/ext/apex_ext/apex_src/tests/fixtures/extensions/kbd_test.md +0 -3
- data/ext/apex_ext/apex_src/tests/fixtures/filters/filter_output_with_rawblock.json +0 -1
- data/ext/apex_ext/apex_src/tests/fixtures/filters/unwrap.md +0 -7
- data/ext/apex_ext/apex_src/tests/fixtures/ial/bracketed_spans_test.md +0 -74
- data/ext/apex_ext/apex_src/tests/fixtures/images/auto-wildcard.md +0 -8
- data/ext/apex_ext/apex_src/tests/fixtures/images/bear_image_attributes.md +0 -10
- data/ext/apex_ext/apex_src/tests/fixtures/images/image_and_encoding_test.md +0 -27
- data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.avif +0 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.jpg +0 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu.webp +0 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.avif +0 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.jpg +0 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/img/app-pass-1-profile-menu@2x.webp +0 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/media_formats_test.md +0 -63
- data/ext/apex_ext/apex_src/tests/fixtures/images/multimarkdown_image_attributes_test.md +0 -60
- data/ext/apex_ext/apex_src/tests/fixtures/images/pandoc_ial_image_test.md +0 -27
- data/ext/apex_ext/apex_src/tests/fixtures/images/width_height_conversion_test.md +0 -94
- data/ext/apex_ext/apex_src/tests/fixtures/img-in-div.md +0 -16
- data/ext/apex_ext/apex_src/tests/fixtures/includes/code.py +0 -4
- data/ext/apex_ext/apex_src/tests/fixtures/includes/data-semi.csv +0 -3
- data/ext/apex_ext/apex_src/tests/fixtures/includes/data.csv +0 -5
- data/ext/apex_ext/apex_src/tests/fixtures/includes/data.tsv +0 -5
- data/ext/apex_ext/apex_src/tests/fixtures/includes/image.png +0 -2
- data/ext/apex_ext/apex_src/tests/fixtures/includes/metadata_options.yml +0 -11
- data/ext/apex_ext/apex_src/tests/fixtures/includes/nested.md +0 -8
- data/ext/apex_ext/apex_src/tests/fixtures/includes/raw.html +0 -4
- data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.md +0 -19
- data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.txt +0 -11
- data/ext/apex_ext/apex_src/tests/fixtures/includes/simple.md +0 -7
- data/ext/apex_ext/apex_src/tests/fixtures/includes/test_image.png +0 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/with space.txt +0 -1
- data/ext/apex_ext/apex_src/tests/fixtures/large_doc.md +0 -1094
- data/ext/apex_ext/apex_src/tests/fixtures/metadata/mmd-metadata.md +0 -5
- data/ext/apex_ext/apex_src/tests/fixtures/metadata/pandoc-meta.md +0 -4
- data/ext/apex_ext/apex_src/tests/fixtures/metadata/yaml-frontmatter.md +0 -6
- data/ext/apex_ext/apex_src/tests/fixtures/metadata_options.yml +0 -11
- data/ext/apex_ext/apex_src/tests/fixtures/minimal_pb.md +0 -2
- data/ext/apex_ext/apex_src/tests/fixtures/obsidian-callouts.md +0 -46
- data/ext/apex_ext/apex_src/tests/fixtures/output/gfm_header_id_test.md +0 -96
- data/ext/apex_ext/apex_src/tests/fixtures/output/test_citations.md +0 -43
- data/ext/apex_ext/apex_src/tests/fixtures/output/test_def_list_links.md +0 -12
- data/ext/apex_ext/apex_src/tests/fixtures/output/test_index_mmark.md +0 -53
- data/ext/apex_ext/apex_src/tests/fixtures/output/test_index_textindex.md +0 -37
- data/ext/apex_ext/apex_src/tests/fixtures/pagebreak_html_repro.md +0 -5
- data/ext/apex_ext/apex_src/tests/fixtures/python-callouts.md +0 -47
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/callouts.md +0 -3
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/code-attrs.md +0 -3
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/diagrams.md +0 -8
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/lists.md +0 -19
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/raw-content.md +0 -5
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/shortcodes.md +0 -7
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/smoke.md +0 -81
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/spans.md +0 -5
- data/ext/apex_ext/apex_src/tests/fixtures/quarto-callouts.md +0 -47
- data/ext/apex_ext/apex_src/tests/fixtures/speed.md +0 -192
- data/ext/apex_ext/apex_src/tests/fixtures/tables/advanced_tables_test.md +0 -93
- data/ext/apex_ext/apex_src/tests/fixtures/tables/grid-tables.md +0 -37
- data/ext/apex_ext/apex_src/tests/fixtures/tables/inline_tables_test.md +0 -41
- data/ext/apex_ext/apex_src/tests/fixtures/tables/relaxed-table.md +0 -12
- data/ext/apex_ext/apex_src/tests/fixtures/tables/table_cr_line_endings.md +0 -15
- data/ext/apex_ext/apex_src/tests/fixtures/tables/table_no_trailing_newline.md +0 -15
- data/ext/apex_ext/apex_src/tests/generate_gfm_ids.sh +0 -105
- data/ext/apex_ext/apex_src/tests/generate_ial_demo.sh +0 -143
- data/ext/apex_ext/apex_src/tests/gfm_id_comparison_summary.md +0 -96
- data/ext/apex_ext/apex_src/tests/gh_api_test.md +0 -6
- data/ext/apex_ext/apex_src/tests/ial_demo.html +0 -186
- data/ext/apex_ext/apex_src/tests/include_code.py +0 -19
- data/ext/apex_ext/apex_src/tests/include_snippet.md +0 -15
- data/ext/apex_ext/apex_src/tests/metadata_cli_test.sh +0 -119
- data/ext/apex_ext/apex_src/tests/multi_file_cli_test.sh +0 -64
- data/ext/apex_ext/apex_src/tests/paginate_cli_test.sh +0 -80
- data/ext/apex_ext/apex_src/tests/sample_data.csv +0 -7
- data/ext/apex_ext/apex_src/tests/table_escaped_ltlt.md +0 -4
- data/ext/apex_ext/apex_src/tests/terminal_width_test.sh +0 -29
- data/ext/apex_ext/apex_src/tests/test-swift-package.sh +0 -14
- data/ext/apex_ext/apex_src/tests/test_basic.c +0 -74
- data/ext/apex_ext/apex_src/tests/test_bear_image_attrs.c +0 -301
- data/ext/apex_ext/apex_src/tests/test_cmark_callback.c +0 -189
- data/ext/apex_ext/apex_src/tests/test_concordance.tsv +0 -4
- data/ext/apex_ext/apex_src/tests/test_custom_plugins.c +0 -78
- data/ext/apex_ext/apex_src/tests/test_escaping_repro.c +0 -82
- data/ext/apex_ext/apex_src/tests/test_extensions.c +0 -3337
- data/ext/apex_ext/apex_src/tests/test_helpers.c +0 -183
- data/ext/apex_ext/apex_src/tests/test_helpers.h +0 -91
- data/ext/apex_ext/apex_src/tests/test_ial.c +0 -289
- data/ext/apex_ext/apex_src/tests/test_links.c +0 -418
- data/ext/apex_ext/apex_src/tests/test_marked_integration.c +0 -290
- data/ext/apex_ext/apex_src/tests/test_metadata.c +0 -1147
- data/ext/apex_ext/apex_src/tests/test_output.c +0 -2056
- data/ext/apex_ext/apex_src/tests/test_plugins.c +0 -219
- data/ext/apex_ext/apex_src/tests/test_refs.bib +0 -31
- data/ext/apex_ext/apex_src/tests/test_runner.c +0 -268
- data/ext/apex_ext/apex_src/tests/test_syntax_highlight.c +0 -198
- data/ext/apex_ext/apex_src/tests/test_tables.c +0 -1298
- data/ext/apex_ext/apex_src/tests/update_benchmarks.sh +0 -9
- data/ext/apex_ext/apex_src/tests/yaml_test.md +0 -13
- data/ext/apex_ext/apex_src/tests.rb +0 -39
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/CMakeLists.txt +0 -48
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/CheckFileOffsetBits.c +0 -14
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/CheckFileOffsetBits.cmake +0 -43
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/FindAsan.cmake +0 -74
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/Makefile.nmake +0 -38
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/README.md +0 -206
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/CMakeLists.txt +0 -30
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/cplusplus.cpp +0 -15
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/cplusplus.h +0 -16
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/harness.c +0 -111
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/harness.h +0 -35
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/main.c +0 -1169
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/appveyor.yml +0 -21
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-bq-flat.md +0 -16
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-bq-nested.md +0 -13
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-code.md +0 -11
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-fences.md +0 -14
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-heading.md +0 -9
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-hr.md +0 -10
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-html.md +0 -32
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-lheading.md +0 -8
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-list-flat.md +0 -67
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-list-nested.md +0 -36
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-ref-flat.md +0 -15
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-ref-nested.md +0 -17
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-autolink.md +0 -14
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-backticks.md +0 -3
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-flat.md +0 -5
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-nested.md +0 -5
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-worst.md +0 -5
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-entity.md +0 -11
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-escape.md +0 -15
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-html.md +0 -44
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-links-flat.md +0 -23
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-links-nested.md +0 -13
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-newlines.md +0 -24
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/lorem1.md +0 -13
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/rawtabs.md +0 -18
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/statistics.py +0 -595
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/stats.py +0 -19
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/benchmarks.md +0 -33
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/changelog.txt +0 -1245
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/data/CaseFolding.txt +0 -1495
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/CMakeLists.txt +0 -119
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/ext_scanners.re +0 -92
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/CMakeLists.txt +0 -22
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/README.md +0 -12
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzz_quadratic.c +0 -91
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzz_quadratic_brackets.c +0 -110
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzzloop.sh +0 -28
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/CMakeLists.txt +0 -10
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/make_man_page.py +0 -133
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/man1/cmark-gfm.1 +0 -78
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/man3/cmark-gfm.3 +0 -1041
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/nmake.bat +0 -1
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/CMakeLists.txt +0 -230
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark-gfm_version.h.in +0 -7
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/config.h +0 -38
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/config.h.in +0 -76
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/libcmark-gfm.pc.in +0 -10
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/scanners.re +0 -365
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/suppressions +0 -10
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/CMakeLists.txt +0 -114
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/__pycache__/cmark.cpython-314.pyc +0 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/__pycache__/normalize.cpython-314.pyc +0 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/afl_test_cases/test.md +0 -49
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/cmark-fuzz.c +0 -58
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/cmark.py +0 -105
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/entity_tests.py +0 -67
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions-full-info-string.txt +0 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions-table-prefer-style-attributes.txt +0 -38
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions.txt +0 -989
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/fuzzing_dictionary +0 -67
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/normalize.py +0 -194
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/pathological_tests.py +0 -160
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/regression.txt +0 -375
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/roundtrip_tests.py +0 -50
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/run-cmark-fuzz +0 -4
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/smart_punct.txt +0 -177
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/spec.txt +0 -10212
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/spec_tests.py +0 -152
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/toolchain-mingw32.cmake +0 -17
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/Dockerfile +0 -41
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/appveyor-build.bat +0 -13
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/make_entities_inc.py +0 -32
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/mkcasefold.pl +0 -22
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/xml2md.xsl +0 -319
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/xml2md_gfm.xsl +0 -80
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/why-cmark-and-not-x.md +0 -104
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.js +0 -6
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.py +0 -37
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.rb +0 -15
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.rkt +0 -208
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper_ext.py +0 -109
- data/ext/apex_ext/apex_src/vendor/libyaml/CMakeLists.txt +0 -160
- data/ext/apex_ext/apex_src/vendor/libyaml/Changes +0 -372
- data/ext/apex_ext/apex_src/vendor/libyaml/License +0 -20
- data/ext/apex_ext/apex_src/vendor/libyaml/Makefile.am +0 -51
- data/ext/apex_ext/apex_src/vendor/libyaml/ReadMe.md +0 -46
- data/ext/apex_ext/apex_src/vendor/libyaml/announcement.msg +0 -89
- data/ext/apex_ext/apex_src/vendor/libyaml/bootstrap +0 -3
- data/ext/apex_ext/apex_src/vendor/libyaml/cmake/config.h.in +0 -4
- data/ext/apex_ext/apex_src/vendor/libyaml/configure.ac +0 -73
- data/ext/apex_ext/apex_src/vendor/libyaml/doc/doxygen.cfg +0 -222
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/README.mkd +0 -17
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/alpine-3.7 +0 -26
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/fedora-25 +0 -26
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/ubuntu-14.04 +0 -29
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/ubuntu-16.04 +0 -24
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/anchors.yaml +0 -10
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/array.yaml +0 -2
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/global-tag.yaml +0 -14
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/json.yaml +0 -1
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/mapping.yaml +0 -2
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/numbers.yaml +0 -1
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/strings.yaml +0 -7
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/tags.yaml +0 -7
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/yaml-version.yaml +0 -3
- data/ext/apex_ext/apex_src/vendor/libyaml/include/Makefile.am +0 -17
- data/ext/apex_ext/apex_src/vendor/libyaml/include/yaml.h +0 -1999
- data/ext/apex_ext/apex_src/vendor/libyaml/pkg/ReadMe.md +0 -77
- data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/Dockerfile +0 -32
- data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/output/ReadMe +0 -1
- data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/scripts/libyaml-dist.sh +0 -23
- data/ext/apex_ext/apex_src/vendor/libyaml/regression-inputs/clusterfuzz-testcase-minimized-5607885063061504.yml +0 -1
- data/ext/apex_ext/apex_src/vendor/libyaml/src/Makefile.am +0 -4
- data/ext/apex_ext/apex_src/vendor/libyaml/src/api.c +0 -1393
- data/ext/apex_ext/apex_src/vendor/libyaml/src/dumper.c +0 -394
- data/ext/apex_ext/apex_src/vendor/libyaml/src/emitter.c +0 -2358
- data/ext/apex_ext/apex_src/vendor/libyaml/src/loader.c +0 -544
- data/ext/apex_ext/apex_src/vendor/libyaml/src/parser.c +0 -1416
- data/ext/apex_ext/apex_src/vendor/libyaml/src/reader.c +0 -469
- data/ext/apex_ext/apex_src/vendor/libyaml/src/scanner.c +0 -3598
- data/ext/apex_ext/apex_src/vendor/libyaml/src/writer.c +0 -141
- data/ext/apex_ext/apex_src/vendor/libyaml/src/yaml_private.h +0 -684
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/CMakeLists.txt +0 -27
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/Makefile.am +0 -9
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/ReadMe.md +0 -63
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-deconstructor-alt.c +0 -800
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-deconstructor.c +0 -1127
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-reformatter-alt.c +0 -217
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-reformatter.c +0 -202
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-all-tests.sh +0 -29
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-dumper.c +0 -314
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-emitter-test-suite.c +0 -290
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-emitter.c +0 -327
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-loader.c +0 -63
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-parser-test-suite.c +0 -196
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-parser.c +0 -88
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-scanner.c +0 -63
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/test-reader.c +0 -354
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/test-version.c +0 -29
- data/ext/apex_ext/apex_src/vendor/libyaml/yaml-0.1.pc.in +0 -10
- data/ext/apex_ext/apex_src/vendor/libyaml/yamlConfig.cmake.in +0 -16
- data/ext/apex_ext/apex_src/xcode_build/CMakeScripts/ReRunCMake.make +0 -74
- data/ext/apex_ext/apex_src/xcode_build/CTestTestfile.cmake +0 -22
- data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/Apex +0 -0
- data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/Resources/Info.plist +0 -44
- data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/_CodeSignature/CodeResources +0 -128
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.pbxproj +0 -5118
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +0 -8
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcuserdata/ttscoff.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcuserdata/ttscoff.xcuserdatad/WorkspaceSettings.xcsettings +0 -8
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/xcuserdata/ttscoff.xcuserdatad/xcschemes/xcschememanagement.plist +0 -99
- data/ext/apex_ext/apex_src/xcode_build/cmake_install.cmake +0 -452
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/CMakeScripts/ReRunCMake.make +0 -52
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmake_install.cmake +0 -55
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmark-gfm.xcodeproj/project.pbxproj +0 -2455
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmark-gfm.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +0 -8
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/extensions/cmake_install.cmake +0 -171
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/man/cmake_install.cmake +0 -55
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmake_install.cmake +0 -220
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmark-gfm_export.h +0 -43
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmark-gfm_version.h +0 -7
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/config.h +0 -76
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/libcmark-gfm.pc +0 -10
|
@@ -1,3373 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to Apex will be documented in this file.
|
|
4
|
-
|
|
5
|
-
## [1.1.20] - 2026-09-05
|
|
6
|
-
|
|
7
|
-
### Fixed
|
|
8
|
-
|
|
9
|
-
- **Metadata file string ownership** keeps paths, titles, themes, and stylesheet values valid after `apex_options_apply_meta_file` returns
|
|
10
|
-
|
|
11
|
-
## [1.1.19] - 2026-09-05
|
|
12
|
-
|
|
13
|
-
### New
|
|
14
|
-
|
|
15
|
-
- **Metadata file API** lets embedding hosts load and apply CLI-compatible YAML, Pandoc, or MultiMarkdown metadata files to `apex_options`
|
|
16
|
-
|
|
17
|
-
## [1.1.18] - 2026-09-05
|
|
18
|
-
|
|
19
|
-
### New
|
|
20
|
-
|
|
21
|
-
- **Quoted heading overrides** (`{^"term"}` and `[visible]{^"override"}`) so standalone marks and custom index headings work without falling through to superscript
|
|
22
|
-
- **Underscore emphasis in TextIndex headings** renders as `<em>` in the index and sorts as plain text
|
|
23
|
-
- *** and ** wildcards** expand the preceding heading (stripping emphasis; `**` also lowercases)
|
|
24
|
-
- **Prefix wildcards** (`*^` / `*^-`) reuse an earlier matching heading path
|
|
25
|
-
- **See and see-also cross-references** (`|target`, `|+target`, hierarchical `parent>"child"`) with see-type marks omitting locators
|
|
26
|
-
- **Inbound cross-references** (`@` / `@+`) attach see/see-also refs onto the target entry
|
|
27
|
-
- **Aliases** (`#name` after a path, usable in headings and cross-refs) plus **unreferenced aliases** (`##name`) that define without a locator
|
|
28
|
-
- **Hierarchical TextIndex paths** (`"Parent">"Child"`) as nested index entries
|
|
29
|
-
- **`--concordance FILE`** loads TextIndex concordance TSV files and auto-inserts `[match]{^...}` marks before index processing (enables indices; repeatable)
|
|
30
|
-
- **Processing toggles** (`{^-}` / `{^+}`) to leave TextIndex marks literal in selected regions
|
|
31
|
-
|
|
32
|
-
### Improved
|
|
33
|
-
|
|
34
|
-
- **Duplicate headings merge into one entry** with multiple locators (TextIndex and mmark)
|
|
35
|
-
- **Homebrew installs man pages** (`apex.1`, `apex-config.5`, `apex-plugins.7`) from the release archive
|
|
36
|
-
|
|
37
|
-
### Fixed
|
|
38
|
-
|
|
39
|
-
- **`[phrase]{^}` strips square brackets** from visible text while indexing the phrase
|
|
40
|
-
- **Bare `word{^}` indexes only the adjacent word**, not a multi-word run of preceding text
|
|
41
|
-
|
|
42
|
-
## [1.1.17] - 2026-09-05
|
|
43
|
-
|
|
44
|
-
### New
|
|
45
|
-
|
|
46
|
-
- **Quoted heading overrides** (`{^"term"}` and `[visible]{^"override"}`) so standalone marks and custom index headings work without falling through to superscript
|
|
47
|
-
- **Underscore emphasis in TextIndex headings** renders as `<em>` in the index and sorts as plain text
|
|
48
|
-
- *** and ** wildcards** expand the preceding heading (stripping emphasis; `**` also lowercases)
|
|
49
|
-
- **Prefix wildcards** (`*^` / `*^-`) reuse an earlier matching heading path
|
|
50
|
-
- **See and see-also cross-references** (`|target`, `|+target`, hierarchical `parent>"child"`) with see-type marks omitting locators
|
|
51
|
-
- **Inbound cross-references** (`@` / `@+`) attach see/see-also refs onto the target entry
|
|
52
|
-
- **Aliases** (`#name` after a path, usable in headings and cross-refs) plus **unreferenced aliases** (`##name`) that define without a locator
|
|
53
|
-
- **Hierarchical TextIndex paths** (`"Parent">"Child"`) as nested index entries
|
|
54
|
-
- **`--concordance FILE`** loads TextIndex concordance TSV files and auto-inserts `[match]{^...}` marks before index processing (enables indices; repeatable)
|
|
55
|
-
- **Processing toggles** (`{^-}` / `{^+}`) to leave TextIndex marks literal in selected regions
|
|
56
|
-
- **Duplicate headings merge into one entry** with multiple locators (TextIndex and mmark)
|
|
57
|
-
- **Homebrew installs man pages** (`apex.1`, `apex-config.5`, `apex-plugins.7`) from the release archive
|
|
58
|
-
- **`[phrase]{^}` strips square brackets** from visible text while indexing the phrase
|
|
59
|
-
- **Bare `word{^}` indexes only the adjacent word**, not a multi-word run of preceding text
|
|
60
|
-
|
|
61
|
-
### Fixed
|
|
62
|
-
|
|
63
|
-
- **Spaced pipes (`| |`) stay blank cells** even when a later row uses consecutive pipes (`|||||`) for colspan
|
|
64
|
-
- **Colspan only from consecutive pipes** (`||` / `|||`) or bare `<<`, not from whitespace-only cells
|
|
65
|
-
- **Indent/blank columns keep alignment** when a full-width colspan row follows (Hazel-style tables)
|
|
66
|
-
|
|
67
|
-
## [1.1.16] - 2026-08-14
|
|
68
|
-
|
|
69
|
-
## [1.1.15] - 2026-08-07
|
|
70
|
-
|
|
71
|
-
### Fixed
|
|
72
|
-
|
|
73
|
-
- **Link IAL attributes** (e.g. {.js-lightbox}) are preserved when a raw HTML <a> appears earlier in the document.
|
|
74
|
-
|
|
75
|
-
## [1.1.14] - 2026-08-07
|
|
76
|
-
|
|
77
|
-
### Fixed
|
|
78
|
-
|
|
79
|
-
- **Link IAL attributes** (e.g. `{.js-lightbox}`) are preserved when a raw HTML `<a>` appears earlier in the document.
|
|
80
|
-
- **RTF remote images** show a hyperlinked alt label (or "image" when alt is empty) instead of dumping raw URLs.
|
|
81
|
-
- **-t rtf** writes Rich Text Format from the CLI (also `-o file.rtf`).
|
|
82
|
-
- **APEX_OUTPUT_RTF** / **apex_cmark_to_rtf()** return RTF from the C API.
|
|
83
|
-
- **RTF writer** covers headings, emphasis, links, lists (including tasks), code, quotes, tables, images, footnotes, definition lists, strike/sup/sub, and best-effort callouts/HTML.
|
|
84
|
-
- **ObjC/Swift apexRTF** and **apexAttributedString** (RTF preferred, HTML fallback) for AppKit/UIKit.
|
|
85
|
-
- Additional docset pages
|
|
86
|
-
- **RTF local images** embed as PNG/JPEG picts by default without needing --embed-images.
|
|
87
|
-
- **Link IAL attributes** (e.g. {.js-lightbox}) are preserved when a raw HTML <a> appears earlier in the document.
|
|
88
|
-
|
|
89
|
-
## [1.1.13] - 2026-08-03
|
|
90
|
-
|
|
91
|
-
### Changed
|
|
92
|
-
|
|
93
|
-
- **RTF remote images** show a hyperlinked alt label (or "image" when alt is empty) instead of dumping raw URLs.
|
|
94
|
-
- **-t rtf** writes Rich Text Format from the CLI (also `-o file.rtf`).
|
|
95
|
-
- **APEX_OUTPUT_RTF** / **apex_cmark_to_rtf()** return RTF from the C API.
|
|
96
|
-
- **RTF writer** covers headings, emphasis, links, lists (including tasks), code, quotes, tables, images, footnotes, definition lists, strike/sup/sub, and best-effort callouts/HTML.
|
|
97
|
-
- **ObjC/Swift apexRTF** and **apexAttributedString** (RTF preferred, HTML fallback) for AppKit/UIKit.
|
|
98
|
-
- Additional docset pages
|
|
99
|
-
- **RTF local images** embed as PNG/JPEG picts by default without needing --embed-images.
|
|
100
|
-
|
|
101
|
-
### New
|
|
102
|
-
|
|
103
|
-
- **Node npm binding design** documenting @apexmarkdown/apex native distribution, camelCase options, and v1 platform scope.
|
|
104
|
-
- **Node npm implementation plan** covering CMake binding, complete options mapping, and platform prebuilds.
|
|
105
|
-
- **Autolinking** scales linearly on large documents instead of slowing quadratically.
|
|
106
|
-
|
|
107
|
-
## [1.1.12] - 2026-07-19
|
|
108
|
-
|
|
109
|
-
### New
|
|
110
|
-
|
|
111
|
-
- **Bear image attributes** Apply safe JSON metadata while preserving its comment.
|
|
112
|
-
- **Reference metadata** Apply attributes to every matching image.
|
|
113
|
-
- **Per-image reference attributes** Override shared metadata on one image.
|
|
114
|
-
|
|
115
|
-
### Fixed
|
|
116
|
-
|
|
117
|
-
- **Bear image metadata parser** releases prior results when an output struct is reused, so early parse failures no longer leak or retain stale attributes
|
|
118
|
-
- **Bear image attributes** no longer apply in Kramdown, which only enters the image preprocessor for URL encoding.
|
|
119
|
-
- **Reference metadata** only applies when the Bear comment directly follows the definition URL, title, or attributes.
|
|
120
|
-
- **Definition comments** keep their original line ending so following blocks are not glued to the comment.
|
|
121
|
-
- **Bear titles** override quoted definition titles instead of being shadowed.
|
|
122
|
-
|
|
123
|
-
## [1.1.11] - 2026-07-14
|
|
124
|
-
|
|
125
|
-
### Improved
|
|
126
|
-
|
|
127
|
-
- Undelimited MMD metadata keys may only contain letters, digits, spaces, hyphens, and underscores; punctuation in the key rejects the line as ordinary text
|
|
128
|
-
- A single candidate metadata line longer than 100 characters is treated as prose rather than a lone MMD key/value pair
|
|
129
|
-
|
|
130
|
-
### Fixed
|
|
131
|
-
|
|
132
|
-
- Undelimited MultiMarkdown metadata is only recognized at the very start of a file; a leading blank line or any content before the first key/value pair (including headings) disables it
|
|
133
|
-
- Prose paragraphs with a colon after an H1 are no longer mistaken for MMD metadata and stripped from the output
|
|
134
|
-
|
|
135
|
-
## [1.1.9] - 2026-07-14
|
|
136
|
-
|
|
137
|
-
### Fixed
|
|
138
|
-
|
|
139
|
-
- Undelimited MultiMarkdown metadata is only recognized at the very start of a file; a leading blank line or any content before the first key/value pair (including headings) disables it
|
|
140
|
-
- Prose paragraphs with a colon after an H1 are no longer mistaken for MMD metadata and stripped from the output
|
|
141
|
-
|
|
142
|
-
### Improved
|
|
143
|
-
|
|
144
|
-
- Undelimited MMD metadata keys may only contain letters, digits, spaces, hyphens, and underscores; punctuation in the key rejects the line as ordinary text
|
|
145
|
-
- A single candidate metadata line longer than 100 characters is treated as prose rather than a lone MMD key/value pair
|
|
146
|
-
|
|
147
|
-
## [1.1.5] - 2026-07-06
|
|
148
|
-
|
|
149
|
-
### Fixed
|
|
150
|
-
|
|
151
|
-
- Buffered definition-list term text before a fenced code block is no longer discarded when the preprocessor closes the list for the fence
|
|
152
|
-
- Images and reference link definitions immediately after a blockquote line without a blank line are no longer swallowed into the blockquote by CommonMark lazy continuation
|
|
153
|
-
- Reference-style images like ![][id] following a blockquote render outside the blockquote with the reference resolved correctly
|
|
154
|
-
|
|
155
|
-
## [1.1.4] - 2026-06-25
|
|
156
|
-
|
|
157
|
-
### Changed
|
|
158
|
-
|
|
159
|
-
- Homebrew formula bumped to 1.1.3
|
|
160
|
-
|
|
161
|
-
### New
|
|
162
|
-
|
|
163
|
-
- --paginate-symbols renders images as chafa ANSI art compatible with less -R when paging terminal output
|
|
164
|
-
- --no-paginate disables terminal pagination, overriding -p/--paginate and paginate settings from config or metadata
|
|
165
|
-
- Paginate: symbols metadata enables pager-friendly terminal images (chafa -f symbols) alongside normal pagination
|
|
166
|
-
- APEX_DEBUG_TERMINAL environment variable logs terminal image viewer selection, exec commands, and syntax highlighter invocations to stderr
|
|
167
|
-
|
|
168
|
-
### Improved
|
|
169
|
-
|
|
170
|
-
- Terminal image tools use terminal-aware chafa formats (iterm, kitty, symbols) with 256- or 16-color levels matching terminal256 vs terminal
|
|
171
|
-
- --width wrapping preserves OSC, DCS, and Kitty graphics escape sequences instead of breaking inline image output
|
|
172
|
-
|
|
173
|
-
### Fixed
|
|
174
|
-
|
|
175
|
-
- Imgcat is only used in iTerm2 so inline images no longer appear as raw binary garbage in Cursor and other non-iTerm terminals
|
|
176
|
-
- Apex automatically skips the pager when inline terminal graphics are present, since less -R and most pagers only support ANSI color
|
|
177
|
-
|
|
178
|
-
## [1.1.3] - 2026-06-24
|
|
179
|
-
|
|
180
|
-
### Changed
|
|
181
|
-
|
|
182
|
-
- Quarto mode enables callouts and image captions, disables wiki links, marked extensions, py callouts, and index generation
|
|
183
|
-
|
|
184
|
-
### New
|
|
185
|
-
|
|
186
|
-
- Add APEX_MODE_QUARTO and --mode quarto / mode: quarto metadata for Quarto-compatible processing with unified-family defaults
|
|
187
|
-
- Add apex_mode_is_unified_family() and apex_mode_is_kramdown_or_unified_family() helpers to share unified/quarto code paths
|
|
188
|
-
- Add enable_quarto_extensions flag for future Pandoc/Quarto preprocessors
|
|
189
|
-
- Images with {fig-alt="..."} use markdown alt text as figure caption and fig-alt as accessible img alt attribute
|
|
190
|
-
- Add .smallcaps, .underline, and span.mark CSS in quarto standalone output
|
|
191
|
-
- Add quarto mode test suite and smoke fixtures (callouts, spans, fig-alt, fenced divs)
|
|
192
|
-
- Quarto mode preprocesses Pandoc/Quarto raw content: fenced ```{=html} blocks and inline `content`{=html} passthrough HTML when unsafe is enabled; non-html formats are wrapped in <!-- raw format=... --> comments
|
|
193
|
-
- Add raw content examples to quarto smoke fixture and quarto mode test suite
|
|
194
|
-
- Quarto mode supports Pandoc list continuation markers: standalone (@) lines are stripped and split ordered lists merge when only blank lines interrupt them; interrupted lists keep intervening content and continue numbering with start attribute
|
|
195
|
-
- Quarto mode supports roman list markers (i), ii), I), etc.) with lower-roman and upper-roman list-style-type in HTML output
|
|
196
|
-
- Quarto mode converts Pandoc line blocks (lines starting with |) to div.line-block with preserved spacing
|
|
197
|
-
- Add list extension tests and smoke fixture examples for (@), roman lists, and line blocks
|
|
198
|
-
- Quarto mode supports labeled example list markers such as (@good) with labels stripped from output
|
|
199
|
-
- Quarto mode preprocesses Pandoc/Quarto fenced code block attributes ({.python filename="run.py" linenos=true}): normalizes to plain language fences and preserves filename, linenos, and other keys as data-* attributes on the rendered pre element
|
|
200
|
-
- Per-block linenos=true on fenced code blocks enables line numbers during external syntax highlighting even when global --code-line-numbers is off
|
|
201
|
-
- Add code fence attribute tests and smoke fixture example
|
|
202
|
-
- Quarto mode preprocesses {mermaid}, {dot}, and {graphviz} fenced blocks into raw pre elements with matching diagram classes (requires unsafe)
|
|
203
|
-
- Standalone Quarto output auto-injects mermaid.js when mermaid diagrams are present and no mermaid script is already configured
|
|
204
|
-
- Add quarto-diagrams metadata key, diagram tests, and smoke fixture examples
|
|
205
|
-
- Quarto mode converts {{< pagebreak >}} shortcodes to page breaks in HTML output (raw HTML when unsafe, Leanpub marker otherwise)
|
|
206
|
-
- Quarto mode converts {{< kbd ... >}} and {{% kbd ... %}} shortcodes to {% kbd %} liquid tags for use with the kbd plugin
|
|
207
|
-
- Quarto mode converts {{< include path >}} shortcodes to <<[path]> Marked file include syntax
|
|
208
|
-
- Add enable_quarto_shortcodes option (enabled by default in --mode quarto) and quarto-shortcodes metadata key to toggle the shortcode preprocessor
|
|
209
|
-
- Unknown Quarto shortcodes are left unchanged; set APEX_VERBOSE=1 to log warnings for unrecognized shortcode names
|
|
210
|
-
- Wrap Quarto cross-ref tokens (@fig-id, @sec-id, @tbl-id, @eq-id) in span.quarto-xref in HTML output
|
|
211
|
-
- Add per-feature Quarto metadata toggles (quarto-raw, quarto-list-continuation, quarto-line-blocks, quarto-roman-lists, quarto-code-attrs, quarto-strict-lists, quarto-xrefs, quarto-extensions)
|
|
212
|
-
- Add optional quarto-strict-lists preprocessor for Pandoc strict blank-line-before-list behavior
|
|
213
|
-
- Add .hidden and .quarto-xref rules to standalone default CSS
|
|
214
|
-
- Split Quarto test fixtures by topic and add wiki Quarto-Mode documentation
|
|
215
|
-
|
|
216
|
-
### Improved
|
|
217
|
-
|
|
218
|
-
- CLI --mode quarto restores quarto extension flags after global/project config metadata merge
|
|
219
|
-
|
|
220
|
-
### Fixed
|
|
221
|
-
|
|
222
|
-
- Bracketed span IAL class attributes now emit valid HTML (class="..." instead of class="...")
|
|
223
|
-
- Quarto mode treats (@) and (@label) as Pandoc example_lists list markers (line-start markers with item text), not as standalone list-continuation lines between numbered items
|
|
224
|
-
- Example lists interrupted by paragraphs continue document-wide numbering with ol start on resumed lists
|
|
225
|
-
- When quarto-xrefs is enabled, bare @fig-/@sec-/@tbl-/@eq- tokens are no longer parsed as author-in-text citations (bracketed [@key] citations unchanged)
|
|
226
|
-
|
|
227
|
-
## [1.1.2] - 2026-06-23
|
|
228
|
-
|
|
229
|
-
### New
|
|
230
|
-
|
|
231
|
-
- Public C API (apex/plugins.h) to fetch the plugin directory, list installed plugins, and install or uninstall plugins programmatically.
|
|
232
|
-
- ApexPluginManager Swift API and ApexPluginCatalog Objective-C wrappers for building plugin picker UIs in Xcode apps.
|
|
233
|
-
- EnablePlugins option in ApexOptions and the NSString options dictionary to turn on external plugin processing during conversion.
|
|
234
|
-
|
|
235
|
-
## [1.1.1] - 2026-06-21
|
|
236
|
-
|
|
237
|
-
### Changed
|
|
238
|
-
|
|
239
|
-
- Version bumped to 1.1.0.
|
|
240
|
-
|
|
241
|
-
### New
|
|
242
|
-
|
|
243
|
-
- Pandoc grid table syntax via --grid-tables / --enable-grid-tables (opt-in; converts +---+ grids to tables before parsing).
|
|
244
|
-
- Enable_grid_tables API option (default off; requires enable_tables).
|
|
245
|
-
- --no-grid-tables explicitly disables Pandoc grid table preprocessing (grid tables remain off by default in unified mode).
|
|
246
|
-
- Grid-tables / grid_tables metadata key enables or disables Pandoc grid tables per document.
|
|
247
|
-
|
|
248
|
-
### Improved
|
|
249
|
-
|
|
250
|
-
- Grid tables support colspan rows, nested grids inside cells, multiline list content in cells, and HTML output for tables with partial in-cell separators.
|
|
251
|
-
- Embedded nested grids inside grid table cells convert to HTML tables so they display inside markdown="1" cells (pipe tables are not parsed there).
|
|
252
|
-
- Headerless single-row grid tables emit a valid pipe-table header row instead of a lone delimiter line.
|
|
253
|
-
|
|
254
|
-
### Fixed
|
|
255
|
-
|
|
256
|
-
- Reference-style links in markdown="1" HTML blocks (callouts, blockquotes, divs, etc.) now resolve definitions from the full document instead of rendering as literal text.
|
|
257
|
-
- Reference footnotes [^id] in markdown="1" blocks now resolve definitions from the full document and render footnote refs and a footnotes section inside the block.
|
|
258
|
-
- Markdown="1" blocks with footnotes no longer render as empty elements when parsed HTML exceeds the initial output buffer.
|
|
259
|
-
- Grid tables no longer treat every row with fewer pipe cells than columns as a full-row colspan (e.g. Property | Earth headers now render as separate cells with correct colspan, not one merged cell).
|
|
260
|
-
- Colspan rows with nested grids no longer leak raw pipe or grid syntax as paragraphs after the table; nested grids inside colspan cells render as HTML tables.
|
|
261
|
-
- Grid tables with in-row partial separators (+---+ inside a row) now parse Pandoc-style layouts with rowspan/colspan (e.g. Temperature / 1961-1990 spanning rows with min/mean/min data).
|
|
262
|
-
- Multiline grid table cells (lists, multiple lines) now render markdown correctly via HTML cells instead of literal text with <br> tags.
|
|
263
|
-
- Lines starting with "+" alone (e.g. list items) are no longer mistaken for grid tables; only "+---" / "+===" border rows start a grid block.
|
|
264
|
-
- Invalid or unconvertible grid blocks now preserve the original source lines instead of silently dropping content.
|
|
265
|
-
|
|
266
|
-
## [1.0.15] - 2026-06-11
|
|
267
|
-
|
|
268
|
-
### Fixed
|
|
269
|
-
|
|
270
|
-
- Reference-style links in markdown="1" HTML blocks (callouts, blockquotes, divs, etc.) now resolve link definitions from the full document instead of rendering as literal text.
|
|
271
|
-
|
|
272
|
-
## [1.0.14] - 2026-06-09
|
|
273
|
-
|
|
274
|
-
### Fixed
|
|
275
|
-
|
|
276
|
-
- Special markers (<!--BREAK-->, <!--PAUSE:N-->, {::pagebreak /}, {index}, and ^ end-of-block) are no longer converted inside fenced code blocks, indented code blocks, or inline code spans.
|
|
277
|
-
- Backslash-escaped MultiMarkdown TOC markers like \{\{TOC\}\} are no longer expanded into a table of contents after markdown strips the escape backslashes.
|
|
278
|
-
- Kramdown {:toc} markers inside fenced or indented code blocks are no longer converted to <!--TOC--> during IAL preprocessing.
|
|
279
|
-
|
|
280
|
-
## [1.0.13] - 2026-05-06
|
|
281
|
-
|
|
282
|
-
### New
|
|
283
|
-
|
|
284
|
-
- Add --py-callouts and --quarto-callouts CLI toggles to enable Python/markdown-callouts and Quarto callout parsing only when explicitly requested.
|
|
285
|
-
- Support Python callouts in both !!! type "Title" blocks and NOTE: label style, including collapsed >? NOTE: syntax when --py-callouts is enabled.
|
|
286
|
-
- Support Quarto callout fences (::: {.callout-*}) as callouts behind --quarto-callouts.
|
|
287
|
-
|
|
288
|
-
### Improved
|
|
289
|
-
|
|
290
|
-
- Fenced code examples with pipelines now render as code without unexpected table artifacts in highlighted HTML and markdown output.
|
|
291
|
-
- Preserve normal fenced div behavior for non-callout ::: blocks while Quarto callouts are enabled.
|
|
292
|
-
- Add dedicated fixtures and expanded tests for Obsidian, Python, and Quarto callout formats to prevent regressions.
|
|
293
|
-
|
|
294
|
-
### Fixed
|
|
295
|
-
|
|
296
|
-
- Relaxed table processing no longer injects ---|---|---| separator rows inside fenced code blocks that contain pipe-heavy shell commands.
|
|
297
|
-
- Remove leading empty paragraph artifacts from converted Quarto callout content blocks.
|
|
298
|
-
|
|
299
|
-
## [1.0.12] - 2026-04-20
|
|
300
|
-
|
|
301
|
-
### Improved
|
|
302
|
-
|
|
303
|
-
- Pre-parse plugin transforms now apply to the final selected include content (including section/address-filtered text) instead of rewriting source files before section matching.
|
|
304
|
-
|
|
305
|
-
### Fixed
|
|
306
|
-
|
|
307
|
-
- Section-targeted transclusions now extract the requested section before pre-parse plugins run, so ![[file#Section]] and other include syntaxes return the correct section content.
|
|
308
|
-
|
|
309
|
-
## [1.0.11] - 2026-04-20
|
|
310
|
-
|
|
311
|
-
### Changed
|
|
312
|
-
|
|
313
|
-
- Homebrew installs now point to Apex 1.0.10 with the updated macOS release artifact checksum.
|
|
314
|
-
|
|
315
|
-
### Improved
|
|
316
|
-
|
|
317
|
-
- Included file content now runs through pre-parse plugins before section slicing, address extraction, and nested include processing so plugin transformations apply consistently to transclusions.
|
|
318
|
-
|
|
319
|
-
### Fixed
|
|
320
|
-
|
|
321
|
-
- Section-targeted includes now fall back to including the full source document when the requested section heading does not exist.
|
|
322
|
-
- Obsidian ![[file#section]] and MultiMarkdown {{file#section}} now behave consistently when section names are missing or mistyped.
|
|
323
|
-
|
|
324
|
-
## [1.0.10] - 2026-04-20
|
|
325
|
-
|
|
326
|
-
### Changed
|
|
327
|
-
|
|
328
|
-
- Homebrew installs now point to Apex 1.0.9 with the updated macOS release artifact checksum.
|
|
329
|
-
|
|
330
|
-
### New
|
|
331
|
-
|
|
332
|
-
- Supports Obsidian embed transclusion syntax ![[file]] and ![[file#Section]] with section extraction.
|
|
333
|
-
- Section-targeted includes now work consistently across Marked, MultiMarkdown, and iA Writer include syntaxes.
|
|
334
|
-
|
|
335
|
-
### Fixed
|
|
336
|
-
|
|
337
|
-
- Obsidian embeds now respect --wikilink-extension for extensionless targets and fall back to .md when the configured extension file does not exist.
|
|
338
|
-
- Wiki link parsing no longer rewrites ![[...]] embeds into !<a ...> output.
|
|
339
|
-
|
|
340
|
-
## [1.0.9] - 2026-04-19
|
|
341
|
-
|
|
342
|
-
### Changed
|
|
343
|
-
|
|
344
|
-
- Homebrew installs now point to Apex 1.0.8 with the updated macOS release artifact checksum.
|
|
345
|
-
|
|
346
|
-
### Fixed
|
|
347
|
-
|
|
348
|
-
- Picture generation now preserves image attributes like loading, width, and height on fallback img tags when using avif/webp with retina variants.
|
|
349
|
-
|
|
350
|
-
## [1.0.8] - 2026-04-19
|
|
351
|
-
|
|
352
|
-
### Changed
|
|
353
|
-
|
|
354
|
-
- Homebrew users now install Apex v1.0.7 from the release tarball.
|
|
355
|
-
|
|
356
|
-
### Fixed
|
|
357
|
-
|
|
358
|
-
- Autolinking no longer rewrites image density filenames like text-basic@2x.jpg into mailto links.
|
|
359
|
-
- Autolinking now ignores content inside HTML tags and attributes such as href and srcset values.
|
|
360
|
-
|
|
361
|
-
## [1.0.7] - 2026-04-15
|
|
362
|
-
|
|
363
|
-
### New
|
|
364
|
-
|
|
365
|
-
- Tests for CommonMark !\[ (non-image), false .
|
|
370
|
-
|
|
371
|
-
## [1.0.6] - 2026-04-02
|
|
372
|
-
|
|
373
|
-
### Changed
|
|
374
|
-
|
|
375
|
-
- Update Homebrew formula to Apex 1.0.5 and refresh the macOS release checksum.
|
|
376
|
-
|
|
377
|
-
### Fixed
|
|
378
|
-
|
|
379
|
-
- Keep synthetic nested ordered sublists tight in unified mode so first-level list items do not get unwanted paragraph wrappers.
|
|
380
|
-
- Preserve intentionally loose list rendering when users add explicit blank lines before nested ordered sublists.
|
|
381
|
-
- Prevent <<[file] includes from consuming following [ref]: and [^id]: lines as include address specs.
|
|
382
|
-
- Stop definition lines after included CSV tables from being misread as table captions.
|
|
383
|
-
|
|
384
|
-
## [1.0.5] - 2026-04-01
|
|
385
|
-
|
|
386
|
-
### Changed
|
|
387
|
-
|
|
388
|
-
- Update Homebrew formula to Apex 1.0.4 and refresh the macOS release checksum.
|
|
389
|
-
|
|
390
|
-
### Improved
|
|
391
|
-
|
|
392
|
-
- Strengthen public module exports so Swift and ObjC module consumers can resolve markdown and man serializer APIs consistently across build environments.
|
|
393
|
-
- Fix compiler warnings
|
|
394
|
-
- Tighten [Caption] detection so caption parsing only triggers when the paragraph contains standalone caption content.
|
|
395
|
-
- Restrict backward caption lookup to the nearest valid caption context so distant captions cannot be reused.
|
|
396
|
-
- Normalize TOC nesting relative to the selected minimum heading level so depth filtering produces stable structure.
|
|
397
|
-
- Normalize TOC labels by trimming and collapsing whitespace so generated links stay clean.
|
|
398
|
-
|
|
399
|
-
### Fixed
|
|
400
|
-
|
|
401
|
-
- Render indented numeric sublists as nested ordered lists in unified mode instead of flattening them into parent list item text.
|
|
402
|
-
- Correct alpha lists with nested sublists so continuation items render as proper list items instead of plain text.
|
|
403
|
-
- Remove leaked [apex-alpha-list:lower] markers from rendered HTML when alpha lists contain nested sublists.
|
|
404
|
-
- Prevent "$40" and similar currency amounts from being parsed as inline math delimiters.
|
|
405
|
-
- Restore Swift package and release-check builds that failed after merge due to missing markdown/man serializer type and function declarations.
|
|
406
|
-
- Render {{TOC}} markers in MultiMarkdown mode so table of contents placeholders are expanded instead of being left as literal text.
|
|
407
|
-
- Prevent footnote definitions like [^1]: ... from being treated as table captions.
|
|
408
|
-
- Prevent footnote and link definition lines like [ref]: ... from being treated as table captions.
|
|
409
|
-
- Stop inclusion-table captions from leaking onto other nearby tables that do not define their own caption.
|
|
410
|
-
- Make {{TOC:2}} render matching headings instead of an empty TOC.
|
|
411
|
-
- Keep same-level headings as siblings in range TOCs like {{TOC:2-6}}.
|
|
412
|
-
- Remove extra indentation whitespace that appeared inside TOC link text in pretty HTML output.
|
|
413
|
-
|
|
414
|
-
## [1.0.4] - 2026-03-31
|
|
415
|
-
|
|
416
|
-
### Fixed
|
|
417
|
-
|
|
418
|
-
- Prevent heading ID generation crashes on very large headings by making heading text extraction buffer growth handle required size safely.
|
|
419
|
-
|
|
420
|
-
## [1.0.3] - 2026-03-29
|
|
421
|
-
|
|
422
|
-
## [1.0.2] - 2026-03-29
|
|
423
|
-
|
|
424
|
-
## [1.0.1] - 2026-03-29
|
|
425
|
-
|
|
426
|
-
## [0.1.104] - 2026-03-29
|
|
427
|
-
|
|
428
|
-
### Fixed
|
|
429
|
-
|
|
430
|
-
- After merging global/project/document/`--meta` metadata, the CLI now re-applies every option that was set on the command line so config and YAML metadata cannot override explicit flags (including `--mode`, `-t`/`--to`, feature toggles, `--standalone`, `--style`/`--css`, bibliography/CSL, and the rest of the documented CLI surface).
|
|
431
|
-
- Track argv-set fields with apex_cli_option_mask, snapshot options after wiring bibliography/stylesheet, and re-apply after apex_apply_metadata_to_options so global/project/document metadata cannot override explicit flags.
|
|
432
|
-
|
|
433
|
-
## [0.1.103] - 2026-03-29
|
|
434
|
-
|
|
435
|
-
### New
|
|
436
|
-
|
|
437
|
-
- `i/--info` prints version, merged config (global, project, --meta-file, --meta),
|
|
438
|
-
- `--extract-meta` and `-e KEY` merge per-file document metadata in order (mode-aware)
|
|
439
|
-
- Add metadata_yaml_emit unit tests and man page entries.
|
|
440
|
-
- CLI `-s`/`--standalone` (and `--style`/`--css`, which imply standalone) now wins over `standalone: false` from document or config metadata, so explicit standalone output is not downgraded to an HTML fragment.
|
|
441
|
-
|
|
442
|
-
### Fixed
|
|
443
|
-
|
|
444
|
-
- Track explicit -s/--standalone and --style/--css and re-apply standalone after apex_apply_metadata_to_options so document or config YAML cannot force a fragment when the user asked for a full document.
|
|
445
|
-
|
|
446
|
-
## [0.1.102] - 2026-03-22
|
|
447
|
-
|
|
448
|
-
### Changed
|
|
449
|
-
|
|
450
|
-
- Use `--to xhtml`/`-t strict-xhtml` for semantic reasons, original `--[strict-]xhtml` flags left in place
|
|
451
|
-
|
|
452
|
-
## [0.1.100] - 2026-03-22
|
|
453
|
-
|
|
454
|
-
### Changed
|
|
455
|
-
|
|
456
|
-
- Homebrew formula bumped to 0.1.97.
|
|
457
|
-
- Bump Homebrew formula to v0.1.98 with updated release tarball SHA256.
|
|
458
|
-
|
|
459
|
-
### New
|
|
460
|
-
|
|
461
|
-
- Display inline images in terminal output using imgcat, chafa, viu, or catimg
|
|
462
|
-
- `--[no-]terminal-images`, `--terminal-image-width
|
|
463
|
-
- Remote images are downloaded to temp directory for terminal display (requires curl)
|
|
464
|
-
- Rough tests for image output
|
|
465
|
-
|
|
466
|
-
### Improved
|
|
467
|
-
|
|
468
|
-
- SwiftPM now exports the raw C API via the `ApexC` product.
|
|
469
|
-
|
|
470
|
-
### Fixed
|
|
471
|
-
|
|
472
|
-
- Avoid Swift module-name collisions so `apex_*` symbols are visible from Swift.
|
|
473
|
-
- Include new module map
|
|
474
|
-
|
|
475
|
-
## [0.1.98] - 2026-03-19
|
|
476
|
-
|
|
477
|
-
### Changed
|
|
478
|
-
|
|
479
|
-
- Homebrew formula bumped to 0.1.97.
|
|
480
|
-
|
|
481
|
-
### Improved
|
|
482
|
-
|
|
483
|
-
- SwiftPM now exports the raw C API via the `ApexC` product.
|
|
484
|
-
|
|
485
|
-
### Fixed
|
|
486
|
-
|
|
487
|
-
- Avoid Swift module-name collisions so `apex_*` symbols are visible from Swift.
|
|
488
|
-
|
|
489
|
-
## [0.1.97] - 2026-03-19
|
|
490
|
-
|
|
491
|
-
### Changed
|
|
492
|
-
|
|
493
|
-
- Metadata extraction is now mode-aware so Combined/Unified and Kramdown keep YAML-first interpretation of delimiter blocks, while MMD uses MMD-compatible precedence.
|
|
494
|
-
|
|
495
|
-
### New
|
|
496
|
-
|
|
497
|
-
- CSV and TSV includes now support custom separators via {delimiter=X} and single-character shorthand {X} while keeping comma/tab defaults when no override is provided.
|
|
498
|
-
- This release adds delimiter support as discussed in [#13](https://github.com/ApexMarkdown/apex/issues/13)
|
|
499
|
-
|
|
500
|
-
### Improved
|
|
501
|
-
|
|
502
|
-
- Metadata-to-meta conversion now works consistently in MultiMarkdown, Unified (combined), and Kramdown modes.
|
|
503
|
-
- In --mode mmd, delimiter-style metadata is parsed using MultiMarkdown rules while still falling back to YAML parsing for true YAML front matter.
|
|
504
|
-
- Include parsing now recognizes explicit delimiter overrides consistently across iA Writer, Marked, and MultiMarkdown include styles for CSV/TSV table conversion.
|
|
505
|
-
|
|
506
|
-
### Fixed
|
|
507
|
-
|
|
508
|
-
- Standalone HTML now emits generic metadata headers as <meta name="..."> tags instead of dropping them.
|
|
509
|
-
- Generated meta tags preserve declared metadata order and safely escape attribute content.
|
|
510
|
-
- MultiMarkdown mode now accepts delimited metadata blocks with dash or dot closers (for example "----" ... "......") without leaking the delimiter into HTML output.
|
|
511
|
-
- Marked include syntax now supports embedded delimiter overrides inside the include token (for example <<[data.csv{;}] and <<[data.csv{delimiter=;}] ) to avoid conflicts with bracket-plus-brace parsing patterns.
|
|
512
|
-
- MultiMarkdown transclusions now accept embedded delimiter overrides (for example {{data.csv{;}}} and {{data.csv{delimiter=;}}}) and no longer fail when braces appear inside the transclusion path.
|
|
513
|
-
- This release resolves [#17](https://github.com/ApexMarkdown/apex/issues/17)
|
|
514
|
-
|
|
515
|
-
## [0.1.96] - 2026-03-19
|
|
516
|
-
|
|
517
|
-
### Improved
|
|
518
|
-
|
|
519
|
-
- Swift plugin integrations can now fetch default low-level options through NSString.defaultApexOptions() and mutate apex_options fields directly.
|
|
520
|
-
|
|
521
|
-
### Fixed
|
|
522
|
-
|
|
523
|
-
- Swift-side module visibility for C interop is improved by exporting ApexC from the Apex Swift module.
|
|
524
|
-
|
|
525
|
-
## [0.1.95] - 2026-03-16
|
|
526
|
-
|
|
527
|
-
### Improved
|
|
528
|
-
|
|
529
|
-
- Added all_checks target that runs C tests and Swift package builds together for one-command verification before publishing
|
|
530
|
-
- Cleanup: quieter tests by fixing logical-op and unused-variable warnings in table test suite
|
|
531
|
-
|
|
532
|
-
### Fixed
|
|
533
|
-
|
|
534
|
-
- Swift package now compiles cleanly in debug and release as part of all_checks, catching Swift-side breakage before release
|
|
535
|
-
- Man-page renderer builds without enum or options-type warnings in both CMake CLI and Swift package builds
|
|
536
|
-
|
|
537
|
-
## [0.1.94] - 2026-03-07
|
|
538
|
-
|
|
539
|
-
### Fixed
|
|
540
|
-
|
|
541
|
-
- CMake/C99 build: add missing stdlib.h so malloc, free, realloc, getenv, and strtol are declared (fixes build on strict compilers)
|
|
542
|
-
- Bracketed spans like [-]{.taskmarker} no longer trigger list parsing; markdown="span" is only emitted when the span content contains inline markdown syntax (emphasis, links, code, etc.)
|
|
543
|
-
|
|
544
|
-
## [0.1.93] - 2026-03-05
|
|
545
|
-
|
|
546
|
-
### New
|
|
547
|
-
|
|
548
|
-
- Tests that one-line definition list syntax (term::definition) is not converted inside inline code spans, fenced code blocks, indented code blocks, and multi-line inline code
|
|
549
|
-
- Tests that emoji (:name:) patterns are not converted inside inline code spans, fenced code blocks, and indented code blocks
|
|
550
|
-
|
|
551
|
-
### Improved
|
|
552
|
-
|
|
553
|
-
- HTML emoji replacement skips content inside <code> and <pre> elements so code examples display :emoji: patterns as written
|
|
554
|
-
|
|
555
|
-
### Fixed
|
|
556
|
-
|
|
557
|
-
- Definition list one-line term::definition no longer converts inside inline code spans (backticks), preserving literal syntax in code examples
|
|
558
|
-
- Definition list processing now skips indented code blocks (4+ spaces or tab), not just fenced blocks
|
|
559
|
-
- Kramdown-style : definition lines inside multi-line inline code spans are no longer incorrectly parsed as definition list items
|
|
560
|
-
- Emoji replacement (:name:) is now skipped inside fenced code blocks, indented code blocks, and inline code spans so patterns remain literal
|
|
561
|
-
- Emoji autocorrect no longer modifies :emoji: patterns inside any code context
|
|
562
|
-
|
|
563
|
-
## [0.1.92] - 2026-03-05
|
|
564
|
-
|
|
565
|
-
### Changed
|
|
566
|
-
|
|
567
|
-
- Update apex_options cmark_init/cmark_done callback signatures to add a user_data parameter, requiring existing C/Obj-C callback implementations to add a fourth void* argument when upgrading
|
|
568
|
-
|
|
569
|
-
### Improved
|
|
570
|
-
|
|
571
|
-
- Ensure custom cmark-gfm init/done callbacks configured via apex_options work consistently so extension-based integrations remain stable across builds
|
|
572
|
-
- Better integration of Apex as library
|
|
573
|
-
|
|
574
|
-
### Fixed
|
|
575
|
-
|
|
576
|
-
- Fix cmark_done callback invocation to match the 3-argument apex_options callback signature so builds succeed again
|
|
577
|
-
- Update test cmark callback helper signatures and option fields to use the current cmark_init/cmark_done API and keep the test runner passing
|
|
578
|
-
- Fix cmark_done callback invocation to match the 4-argument apex_options callback signature including user_data so builds succeed again
|
|
579
|
-
- Add new tests and fix missing includes
|
|
580
|
-
|
|
581
|
-
## [0.1.91] - 2026-03-04
|
|
582
|
-
|
|
583
|
-
### New
|
|
584
|
-
|
|
585
|
-
- Add test fixtures for percent decoding
|
|
586
|
-
|
|
587
|
-
### Improved
|
|
588
|
-
|
|
589
|
-
- Apex_extract_heading_text now recurses into inline containers (EMPH, STRONG, LINK) and includes HTML_INLINE literal content so extracted text matches rendered HTML for reliable (level, text) matching during ID injection
|
|
590
|
-
|
|
591
|
-
### Fixed
|
|
592
|
-
|
|
593
|
-
- Headings with inline emphasis (e.g. "### *Processing* modes") now receive IDs correctly instead of being skipped
|
|
594
|
-
- Headings with ampersands (e.g. "## Documentation & resources") now receive IDs correctly by extracting text from HTML_INLINE nodes
|
|
595
|
-
|
|
596
|
-
## [0.1.90] - 2026-03-04
|
|
597
|
-
|
|
598
|
-
### New
|
|
599
|
-
|
|
600
|
-
- Apex_options.cmark_init callback: register custom cmark-gfm syntax extensions before parsing; call cmark_parser_attach_syntax_extension() in your callback (include cmark-gfm.h and cmark-gfm-extension_api.h when implementing) Resolves [#10](https://github.com/ApexMarkdown/apex/issues/10)
|
|
601
|
-
- Apex_version_string() exposed in ObjC/Swift via [NSString apexVersion] and Apex.version
|
|
602
|
-
|
|
603
|
-
### Improved
|
|
604
|
-
|
|
605
|
-
- CSV/TSV inline tables (```table fences, <!--TABLE-->, includes) now accept Markdown-style alignment specs in the second row. Cells containing only colons and dashes (e.g. :--, --:, :--:) are parsed by colon position: leading = left, trailing = right, both = center, neither = auto. Keywords (left, right, center, auto) continue to work unchanged. Resolves [#14](https://github.com/ApexMarkdown/apex/issues/14)
|
|
606
|
-
|
|
607
|
-
### Fixed
|
|
608
|
-
|
|
609
|
-
- Include paths now support percent encoding (e.g. <<[with%20space.txt], {{file%20name}}, /path%20to%2Ffile) so paths with spaces and special characters resolve correctly to files on disk. Resolves [#12](https://github.com/ApexMarkdown/apex/issues/12)
|
|
610
|
-
|
|
611
|
-
## [0.1.89] - 2026-03-04
|
|
612
|
-
|
|
613
|
-
### Improved
|
|
614
|
-
|
|
615
|
-
- CSV/TSV inline tables: alignment row may use Markdown-style syntax (`:--`, `--:`, `:--:`) in addition to keywords (left, right, center, auto). Cells containing only colons and dashes are parsed by colon position: leading colon = left, trailing = right, both = center, neither = auto.
|
|
616
|
-
|
|
617
|
-
### Changed
|
|
618
|
-
|
|
619
|
-
- Definition lists rewritten as preprocessing (no cmark extension): supports Kramdown "term" + ": definition" or ":: definition", plus one-line "term::definition" and "term :: definition" using last :: to avoid splitting URLs
|
|
620
|
-
- CLI flags --one-line-definitions and --no-one-line-definitions to enable or disable definition list processing
|
|
621
|
-
- Metadata keys one-line-definitions and one_line_definitions for front-matter control of definition lists
|
|
622
|
-
- Table caption ": Caption" no longer misparses Kramdown definition lines (e.g. "Term\n\n: definition 1") by requiring prev_line_was_table_row or in_table_section instead of prev_line_was_blank alone
|
|
623
|
-
- Table captions before tables: ": Caption" now recognized when the next non-blank line is a table row
|
|
624
|
-
- Table caption paragraphs removed from output so captions appear only in figcaption, not duplicated as standalone paragraphs
|
|
625
|
-
|
|
626
|
-
## [0.1.88] - 2026-03-02
|
|
627
|
-
|
|
628
|
-
### Changed
|
|
629
|
-
|
|
630
|
-
- Formula/apex.rb: version 0.1.87, update macOS universal tarball sha256
|
|
631
|
-
|
|
632
|
-
### Improved
|
|
633
|
-
|
|
634
|
-
- Definition lists: support indented continuation lines (4+ spaces) so multi-line definitions stay within a single dd element instead of splitting into separate paragraphs
|
|
635
|
-
|
|
636
|
-
### Fixed
|
|
637
|
-
|
|
638
|
-
- Disable smart typography for man and man-html output so option names like --to and --standalone render as literal double hyphen instead of en-dash
|
|
639
|
-
- Prevent metadata from overwriting -t man-html when document sets mode or other options in front matter
|
|
640
|
-
- Force disable smart typography for man and man-html output in apex_markdown_to_html so option names stay as literal --
|
|
641
|
-
- Man-html: Replace UTF-8 en-dash (U+2013) with "--" in rendered text and definition list HTML blocks so options like --standalone display correctly even when smart typography slips through
|
|
642
|
-
|
|
643
|
-
## [0.1.87] - 2026-03-02
|
|
644
|
-
|
|
645
|
-
### Changed
|
|
646
|
-
|
|
647
|
-
- Formula/apex.rb: version 0.1.86, update macOS universal tarball sha256
|
|
648
|
-
|
|
649
|
-
### Fixed
|
|
650
|
-
|
|
651
|
-
- Linux release build: add missing limits.h include for INT_MAX in apex_cli_terminal_width
|
|
652
|
-
|
|
653
|
-
## [0.1.86] - 2026-03-02
|
|
654
|
-
|
|
655
|
-
### Changed
|
|
656
|
-
|
|
657
|
-
- Syntax highlighter chooses HTML or ANSI output based on destination format (--format html vs --format ansi for Shiki when output is terminal).
|
|
658
|
-
- Apex_apply_syntax_highlighting() now takes a fifth parameter ansi_output (bool); pass false for HTML output, true for terminal/ANSI. All internal call sites updated; direct callers (e.g. Swift/SPM) must be updated.
|
|
659
|
-
- Pygments highlighting now respects code-highlight-theme for both HTML and terminal/terminal256 output (maps to style=THEME).
|
|
660
|
-
- Skylighting highlighting now respects code-highlight-theme for both HTML and ANSI terminal output (maps to --style THEME) and chooses --color-level=16/256 based on terminal vs terminal256.
|
|
661
|
-
- Shiki highlighting now uses --theme THEME for both HTML and ANSI output and chooses --format html/ansi based on destination format.
|
|
662
|
-
|
|
663
|
-
### New
|
|
664
|
-
|
|
665
|
-
- Support --code-highlight shiki (and abbreviation sh) on the command line; uses the shiki CLI (@shikijs/cli) when available.
|
|
666
|
-
- Support code-highlight: shiki and code-highlight: sh in metadata and config (front matter, meta-file, config.yml).
|
|
667
|
-
- Add --list-themes CLI command to print available Pygments and Skylighting themes in columns and point to bundled Shiki themes.
|
|
668
|
-
- Add -p/--paginate flag to page terminal/cli/terminal256 output through a user-configurable pager instead of writing directly to stdout.
|
|
669
|
-
- Add paginate: true config option (and terminal.paginate) to enable pagination by default for terminal-style output while still allowing per-run overrides.
|
|
670
|
-
|
|
671
|
-
### Improved
|
|
672
|
-
|
|
673
|
-
- When Shiki exits with an error (e.g. language not specified and cannot be auto-detected), the code block is left as plain text instead of failing.
|
|
674
|
-
|
|
675
|
-
### Fixed
|
|
676
|
-
|
|
677
|
-
- Prevent segfault when external code highlighting is enabled without an explicit theme by initializing the code highlight theme option safely in the default configuration.
|
|
678
|
-
|
|
679
|
-
## [0.1.85] - 2026-03-01
|
|
680
|
-
|
|
681
|
-
### Changed
|
|
682
|
-
|
|
683
|
-
- Makefile "make man" now generates man pages with the built apex binary (apex -t man) after running "make build"; pandoc and go-md2man are no longer required.
|
|
684
|
-
- When both a TOC marker in code and a TOC marker in normal flow exist, only the first marker that is not inside <code> or <pre> is replaced with the generated table of contents.
|
|
685
|
-
|
|
686
|
-
### New
|
|
687
|
-
|
|
688
|
-
- Definition list terms may use Kramdown-style double colon :: as well as single : before the definition (e.g. "term:: definition").
|
|
689
|
-
- Man page creation
|
|
690
|
-
- Man-html without -s/--standalone outputs content snippet only (no wrapper, no nav); with -s outputs full document with sidebar and headline.
|
|
691
|
-
- Man-html standalone: fixed left sidebar nav (TOC) for top-level sections only (NAME, SYNOPSIS, etc.), large headline from NAME section (command and description), document_title metadata used when present (e.g. APEX(1)).
|
|
692
|
-
- Man-html standalone: custom CSS via --css/--style emitted as <link rel="stylesheet"> after embedded style; optional syntax highlighting via --code-highlight (pygmentize/skylighting) for code blocks in both snippet and standalone output.
|
|
693
|
-
|
|
694
|
-
### Improved
|
|
695
|
-
|
|
696
|
-
- CMake man page generation uses only apex_cli -t man when pre-generated pages are missing; removed duplicate/broken pandoc branch from merge and fixed invalid add_custom_command structure.
|
|
697
|
-
- Man-html CSS: bold and headline color #a02172, links #2376b1, section headings #3f789b, sidebar background #f5f4f0 and border #e0ddd6.
|
|
698
|
-
- CLI help: --css/--style describes use with man-html and -s; -s/--standalone describes man-html behavior (with -s: nav sidebar and full page; without -s: snippet only).
|
|
699
|
-
|
|
700
|
-
### Fixed
|
|
701
|
-
|
|
702
|
-
- Man pages generated from Markdown no longer convert option hyphens to em dashes; pandoc is invoked with -f markdown-smart so -- stays as literal ASCII double hyphen in roff output.
|
|
703
|
-
- When both MMD inline abbreviations [>(abbr) expansion] and reference-style definitions [>abbr]: expansion appear in the same document, all abbreviations are now wrapped in <abbr> tags instead of only the reference-style ones (inline entries were previously overwritten in the list).
|
|
704
|
-
- Definition list terms and definitions now render with correct content when using "**term**" followed by ":: definition" (previously produced empty <dt></dt><dd></dd>).
|
|
705
|
-
- TOC markers ({{TOC}}, <!--TOC--> and variants) inside inline code (backticks) or inside code blocks (fenced or indented) are no longer expanded; they are left as literal text in the output.
|
|
706
|
-
|
|
707
|
-
## [0.1.84] - 2026-02-27
|
|
708
|
-
|
|
709
|
-
### Changed
|
|
710
|
-
|
|
711
|
-
- Homebrew formula bumped to 0.1.83 with updated release checksum
|
|
712
|
-
|
|
713
|
-
### New
|
|
714
|
-
|
|
715
|
-
- --width flag wraps terminal and terminal256 output to a fixed column width for better integration with terminal file managers and previews
|
|
716
|
-
- Terminal.width metadata and config option lets you set a default wrap width per document instead of relying only on CLI flags
|
|
717
|
-
- Terminal.theme metadata and config option lets documents select a default terminal theme when using -t terminal or -t terminal256
|
|
718
|
-
- Terminal theme list_marker style controls the color and emphasis of bullet and numbered list markers, defaulting to bold bright red when unset
|
|
719
|
-
|
|
720
|
-
### Improved
|
|
721
|
-
|
|
722
|
-
- Terminal themes can now mark headings, links, code spans, code blocks, blockquotes, and tables as bold with a bold: true flag in theme YAML instead of encoding bold in the color string
|
|
723
|
-
- Span_classes mappings in terminal themes style inline span classes and attribute list classes consistently in terminal and terminal256 output
|
|
724
|
-
|
|
725
|
-
## [0.1.83] - 2026-02-26
|
|
726
|
-
|
|
727
|
-
### New
|
|
728
|
-
|
|
729
|
-
- Span_classes theme mapping lets you define styles for inline span classes in terminal and terminal256 output
|
|
730
|
-
|
|
731
|
-
### Improved
|
|
732
|
-
|
|
733
|
-
- Terminal output now respects classes from inline attribute lists and bracketed spans (e.g. *emphasis*{.tag} and [text]{.tag}) including spans generated by plugins
|
|
734
|
-
- Terminal theme YAML parsing is more robust so existing themes continue to work even when libyaml is unavailable
|
|
735
|
-
|
|
736
|
-
## [0.1.82] - 2026-02-25
|
|
737
|
-
|
|
738
|
-
### New
|
|
739
|
-
|
|
740
|
-
- Add -t/--to output formats for html, json, json-filtered/ast-json/ast, markdown/md, mmd, commonmark/cmark, kramdown, gfm, terminal/cli, and terminal256.
|
|
741
|
-
- Add terminal and terminal256 ANSI renderers with theme support and compact list and blockquote formatting for comfortable reading in a TTY.
|
|
742
|
-
- Add --theme option and support for user theme files in ~/.config/apex/terminal/themes/NAME.theme with automatic default.theme selection when no explicit theme is given.
|
|
743
|
-
- Add JSON and AST JSON output points before and after AST filters so external tools can consume either the raw or fully-processed document structure.
|
|
744
|
-
|
|
745
|
-
### Improved
|
|
746
|
-
|
|
747
|
-
- Improve MultiMarkdown output so TOC markers and escaping work correctly in -t mmd output without breaking MMD-specific syntax.
|
|
748
|
-
- Improve terminal table rendering with Unicode box drawing, column alignment, captions, footer rules, and advanced colspan/rowspan handling that more closely matches advanced_tables behavior.
|
|
749
|
-
- Terminal output now replaces :emoji: patterns with Unicode emoji when in GFM or unified mode, matching HTML behavior.
|
|
750
|
-
|
|
751
|
-
### Fixed
|
|
752
|
-
|
|
753
|
-
- Replace APEXLTLT placeholders with literal << in terminal table cells so escaped \<< renders correctly in CLI output.
|
|
754
|
-
- Integrate external code highlighters (Pygments/Skylighting) into terminal output when --code-highlight is enabled, using readable pastel styles appropriate for 8-color and 256-color modes.
|
|
755
|
-
- Compact list item spacing and blockquote rendering in terminal output so lists, quotes, and callouts read cleanly without stray blank lines.
|
|
756
|
-
|
|
757
|
-
## [0.1.81] - 2026-02-23
|
|
758
|
-
|
|
759
|
-
### New
|
|
760
|
-
|
|
761
|
-
- Tests for extended syntax in indented and fenced code blocks, inline code, nested list lines with 4-space indent, and real indented code without list markers
|
|
762
|
-
|
|
763
|
-
### Improved
|
|
764
|
-
|
|
765
|
-
- Lines that start with a list marker after 4+ spaces or tab (nested or continuation list lines) are no longer treated as code blocks, so sup/sub and highlight are still applied there
|
|
766
|
-
|
|
767
|
-
### Fixed
|
|
768
|
-
|
|
769
|
-
- Superscript (^), subscript (~), underline (~text~), strikethrough (~~), and highlight (==) are no longer processed inside indented code blocks (4+ spaces or tab)
|
|
770
|
-
- Extended syntax remains skipped inside fenced code blocks and inline code as before
|
|
771
|
-
|
|
772
|
-
## [0.1.80] - 2026-02-18
|
|
773
|
-
|
|
774
|
-
## [0.1.79] - 2026-02-18
|
|
775
|
-
|
|
776
|
-
### New
|
|
777
|
-
|
|
778
|
-
- IAL attributes for picture formats: webp, avif (emit <picture> with srcset), and video formats: webm, ogg, mp4, mov, m4v (emit <video> with <source> elements)
|
|
779
|
-
- IAL attribute "auto" discovers format variants (2x, 3x, webp, avif, video) from filesystem and expands img to picture/video when files exist
|
|
780
|
-
- Video URLs (mp4, webm, ogg, mov, m4v, ogv) automatically render as <video> elements instead of <img>
|
|
781
|
-
- --[no-]image-captions and --[no-]title-captions-only CLI options to control figure/figcaption wrapping (title-captions-only: only add captions for images with title, alt-only images get no caption)
|
|
782
|
-
- Image URL ending in .* (e.g. ) auto-discovers format variants from filesystem, same as auto attribute
|
|
783
|
-
|
|
784
|
-
### Improved
|
|
785
|
-
|
|
786
|
-
- Image attribute matching uses URL + alt to disambiguate same-src images when injecting IAL attributes
|
|
787
|
-
- Picture elements with title or alt now get figure/figcaption wrapping when image captions are enabled
|
|
788
|
-
|
|
789
|
-
### Fixed
|
|
790
|
-
|
|
791
|
-
- TOC HTML structure now produces valid ul > li > ul nesting instead of invalid ul > ul (nested lists inside list items, never ul directly in ul)
|
|
792
|
-
- Image captions from title:  now correctly uses the title for figcaption instead of alt text (quoted titles were being stripped by preprocessor before cmark could parse them)
|
|
793
|
-
- Wildcard image syntax () now expands correctly when document contains image examples in code blocks (e.g. `` in documentation)
|
|
794
|
-
- Truncated </figure> tag in picture output (memcpy used wrong length for "</figcaption></figure>")
|
|
795
|
-
- Invalid HTML5: strip <p> wrapper around figure, video, and picture elements (p may only contain phrasing content)
|
|
796
|
-
- Auto media expansion when replacement exceeds buffer (grow buffer instead of falling back to original img tag)
|
|
797
|
-
|
|
798
|
-
## [0.1.78] - 2026-02-13
|
|
799
|
-
|
|
800
|
-
### New
|
|
801
|
-
|
|
802
|
-
- Test added to verify autolinking does not run inside indented code blocks.
|
|
803
|
-
|
|
804
|
-
### Fixed
|
|
805
|
-
|
|
806
|
-
- Autolink preprocessor now skips indented code blocks (4+ spaces or tab at line start) so URLs inside them are not converted to links.
|
|
807
|
-
|
|
808
|
-
## [0.1.77] - 2026-02-09
|
|
809
|
-
|
|
810
|
-
### Fixed
|
|
811
|
-
|
|
812
|
-
- Package.swift missing filters
|
|
813
|
-
- Package.swift missing ast_json
|
|
814
|
-
|
|
815
|
-
## [0.1.76] - 2026-02-07
|
|
816
|
-
|
|
817
|
-
### Changed
|
|
818
|
-
|
|
819
|
-
- Formula/apex.rb: version 0.1.75 and release sha256.
|
|
820
|
-
|
|
821
|
-
### New
|
|
822
|
-
|
|
823
|
-
- Install filter by path: directory JSON can specify "path" (e.g. "contrib/code-includes.lua"); apex clones repo to temp, copies that file to filters/<basename>, then removes temp.
|
|
824
|
-
- Code blocks with info string "inc" emit Pandoc keyvals [["inc","yes"]] in AST JSON so code-includes-style filters can replace block content with file contents.
|
|
825
|
-
|
|
826
|
-
### Improved
|
|
827
|
-
|
|
828
|
-
- Uninstall: when filter is not a directory, try filters/NAME.lua, NAME.py, NAME.rb and remove that file.
|
|
829
|
-
- Filter resolution: --filter NAME now resolves to filters/NAME, filters/NAME.lua, filters/NAME.py, or filters/NAME.rb (regular files) before trying NAME as a directory.
|
|
830
|
-
|
|
831
|
-
### Fixed
|
|
832
|
-
|
|
833
|
-
- .lua filters are run via `lua "path"` so scripts without a shebang work.
|
|
834
|
-
|
|
835
|
-
## [0.1.75] - 2026-02-06
|
|
836
|
-
|
|
837
|
-
## [0.1.74] - 2026-02-06
|
|
838
|
-
|
|
839
|
-
### New
|
|
840
|
-
|
|
841
|
-
- AST filters (Pandoc-style JSON): run filters via --filter, --filters, and --lua-filter; apex_options gains ast_filter_commands, ast_filter_count, and ast_filter_strict
|
|
842
|
-
- --install-filter to install AST filters from the apex-filters directory or from a Git URL
|
|
843
|
-
- --no-strict-filters to skip failing filters and invalid filter JSON instead of aborting
|
|
844
|
-
- Div blocks in Pandoc JSON are now parsed (attributes skipped, inner blocks appended to the document)
|
|
845
|
-
- --list-filters lists installed filters (from the user filters directory) and available filters from the central apex-filters directory, with titles, authors, descriptions, and homepages for available entries
|
|
846
|
-
- --uninstall-filter ID removes a filter by id (file or directory) after a confirmation prompt; cannot be combined with --install-filter
|
|
847
|
-
|
|
848
|
-
### Improved
|
|
849
|
-
|
|
850
|
-
- Silence C compiler narrowing warnings in the abbreviations extension so embedding Apex and building language bindings can run with cleaner, warning-free builds
|
|
851
|
-
- Images already inside a <figure> (e.g. from ::: >figure) are no longer wrapped again in figure/figcaption by the image-caption logic
|
|
852
|
-
- Redundant <p> around a single <img> inside <figure> is stripped so ::: >figure with "< " yields <figure><img...></figure> without an inner paragraph
|
|
853
|
-
- Pandoc JSON parser accepts block and inline objects with keys in any order (e.g. "c" before "t" as emitted by dkjson/Lua) so filter output from Lua and other generators parses correctly
|
|
854
|
-
- Filter directory JSON parsing is shared for both "plugins" and "filters" arrays; apex_remote_fetch_filters_directory fetches and parses apex-filters.json for list/install
|
|
855
|
-
- Apex_remote_print_plugins_filtered accepts an optional noun so the empty-list message says "filters" when listing filters instead of "plugins"
|
|
856
|
-
|
|
857
|
-
### Fixed
|
|
858
|
-
|
|
859
|
-
- Pandoc JSON parser now consumes the closing "c" array bracket after Header inlines so multi-block filter output (e.g. unwrap filter with heading plus figure) parses correctly and renders full output
|
|
860
|
-
- Multi-block Pandoc JSON (e.g. Header + RawBlock) now parses to all blocks instead of only the first; parse_blocks_array returns the container and callers adopt its children then free it so the block chain is preserved
|
|
861
|
-
|
|
862
|
-
## [0.1.73] - 2026-02-04
|
|
863
|
-
|
|
864
|
-
### New
|
|
865
|
-
|
|
866
|
-
- Multi-image test coverage ensures that a reference-style image with attributes between two @2x images keeps its attributes without gaining an unwanted 2x srcset, and that the surrounding images still emit correct srcset values
|
|
867
|
-
- @3x image attribute adds support for 3x retina assets and automatically emits srcset entries for 1x, 2x, and 3x variants of the same path for both inline and reference-style images
|
|
868
|
-
|
|
869
|
-
### Fixed
|
|
870
|
-
|
|
871
|
-
- @2x image attribute no longer mangles domains or query-string-only URLs; srcset 2x URLs are only generated when the path has a real file extension and the domain portion is never altered
|
|
872
|
-
- Reference-style image attributes (width, height, style, classes, id) are correctly applied in Unified, MultiMarkdown, and GFM modes, even when mixed with inline images and fenced div/figure blocks
|
|
873
|
-
- Reference-style image attributes no longer leak across images; inline images with @2x keep their own srcset and reference-style images only gain 2x srcset when explicitly marked
|
|
874
|
-
|
|
875
|
-
## [0.1.72] - 2026-02-02
|
|
876
|
-
|
|
877
|
-
### Changed
|
|
878
|
-
|
|
879
|
-
- --indices now enables mmark, TextIndex, and Leanpub syntax; Leanpub is on by default in unified mode.
|
|
880
|
-
- Index anchor IDs use idxref-N format (was idxref:N) to avoid emoji processing corrupting placeholders.
|
|
881
|
-
|
|
882
|
-
### New
|
|
883
|
-
|
|
884
|
-
- Add Leanpub index syntax: {i: term}, {i: "term"}, and {i: "Main!sub"} for hierarchical entries under headings.
|
|
885
|
-
- {index} marker: write {index} in the document to place the generated index at that position (replaced with <!--INDEX--> internally).
|
|
886
|
-
|
|
887
|
-
### Fixed
|
|
888
|
-
|
|
889
|
-
- TextIndex [term]{^} no longer includes the closing bracket in the index entry (e.g. "fresh" instead of "fresh]").
|
|
890
|
-
- Leanpub {i: term} is no longer consumed by MMD metadata or parsed as IAL; content is preserved in output.
|
|
891
|
-
|
|
892
|
-
## [0.1.71] - 2026-01-30
|
|
893
|
-
|
|
894
|
-
### Changed
|
|
895
|
-
|
|
896
|
-
- Strikethrough is now controlled by the enable_strikethrough option instead of mode; can be enabled in modes that lack it by default (commonmark, mmd, kramdown) and disabled in modes that include it (gfm, unified).
|
|
897
|
-
|
|
898
|
-
### New
|
|
899
|
-
|
|
900
|
-
- Add --strikethrough and --no-strikethrough CLI flags to enable or disable GFM-style ~~strikethrough~~ processing independent of mode.
|
|
901
|
-
- Strikethrough is configurable via metadata using the strikethrough or strike-through keys (true/false).
|
|
902
|
-
|
|
903
|
-
## [0.1.70] - 2026-01-30
|
|
904
|
-
|
|
905
|
-
### Changed
|
|
906
|
-
|
|
907
|
-
- Strikethrough is now controlled by the enable_strikethrough option instead of mode; can be enabled in modes that lack it by default (commonmark, mmd, kramdown) and disabled in modes that include it (gfm, unified).
|
|
908
|
-
|
|
909
|
-
### New
|
|
910
|
-
|
|
911
|
-
- Add --strikethrough and --no-strikethrough CLI flags to enable or disable GFM-style ~~strikethrough~~ processing independent of mode.
|
|
912
|
-
- Strikethrough is configurable via metadata using the strikethrough or strike-through keys (true/false).
|
|
913
|
-
|
|
914
|
-
## [0.1.69] - 2026-01-30
|
|
915
|
-
|
|
916
|
-
### Improved
|
|
917
|
-
|
|
918
|
-
- URLs with a protocol (http, https, etc.) are no longer URL-encoded so query parameters in image URLs are preserved.
|
|
919
|
-
- Image reference definitions with key= attributes or bare @2x after the URL are now split and applied (width, height, srcset) in all modes, not only when image attributes are enabled.
|
|
920
|
-
|
|
921
|
-
### Fixed
|
|
922
|
-
|
|
923
|
-
- Paragraph IAL on the same line (no blank line), e.g. "Text\n{: .lead }", now applies the class to the paragraph.
|
|
924
|
-
- Block IAL (e.g. {: .lead }) inside fenced divs and markdown="1" blocks now applies to the previous paragraph and the IAL line is removed from output.
|
|
925
|
-
- Block IAL is now recognized when an HTML block (e.g. </div>) sits between the content paragraph and the IAL paragraph.
|
|
926
|
-
- Reference-style images (e.g. ![alt][ref] with [ref]: url width=250 height=83) no longer produce blank output; attributes are applied and refs are expanded correctly.
|
|
927
|
-
- First line of document that looks like a Markdown link or image (e.g. [{: .class }]) is no longer consumed as MMD metadata, fixing blank output for such content.
|
|
928
|
-
- Image width, height, and other attributes from reference definitions are now applied to images inside fenced divs (::: ... :::) and other HTML elements with markdown="1"; they were previously dropped when inner content was parsed and rendered separately.
|
|
929
|
-
|
|
930
|
-
## [0.1.68] - 2026-01-30
|
|
931
|
-
|
|
932
|
-
### Changed
|
|
933
|
-
|
|
934
|
-
- Run image caption conversion whenever HTML is produced so caption="" is always honored; pass enable_image_captions and title_captions_only into the converter.
|
|
935
|
-
|
|
936
|
-
### New
|
|
937
|
-
|
|
938
|
-
- Allow caption="TEXT" attribute on images (IAL); always wraps in figure/figcaption even when --image-captions is disabled, and strips the caption attribute from the emitted img tag.
|
|
939
|
-
- Add --title-captions-only and --no-title-captions-only CLI flags.
|
|
940
|
-
- Add title-captions-only / title_captions_only metadata support.
|
|
941
|
-
|
|
942
|
-
### Improved
|
|
943
|
-
|
|
944
|
-
- When --title-captions-only is set, automatically enable image captions so both flags are not required.
|
|
945
|
-
|
|
946
|
-
## [0.1.67] - 2026-01-30
|
|
947
|
-
|
|
948
|
-
### New
|
|
949
|
-
|
|
950
|
-
- Image attribute @2x in inline, reference-style, or IAL (e.g.  or [ref]: url @2x) emits srcset="url 1x, url@2x 2x"; the 2x asset is assumed to have the same path with @2x before the extension (e.g. icon.png -> icon@2x.png).
|
|
951
|
-
|
|
952
|
-
### Fixed
|
|
953
|
-
|
|
954
|
-
- SPM builds no longer fail with "config.h" file not found or "Could not build module 'CcmarkGFM'" when adding Apex as an integrated Xcode package or as a Swift Package dependency.
|
|
955
|
-
|
|
956
|
-
## [0.1.66] - 2026-01-30
|
|
957
|
-
|
|
958
|
-
### New
|
|
959
|
-
|
|
960
|
-
- Image attribute @2x in inline, reference-style, or IAL (e.g.  or [ref]: url @2x) emits srcset="url 1x, url@2x 2x"; the 2x asset is assumed to have the same path with @2x before the extension (e.g. icon.png -> icon@2x.png).
|
|
961
|
-
|
|
962
|
-
### Fixed
|
|
963
|
-
|
|
964
|
-
- SPM builds no longer fail with "config.h" file not found or "Could not build module 'CcmarkGFM'" when adding Apex as an integrated Xcode package or as a Swift Package dependency.
|
|
965
|
-
|
|
966
|
-
## [0.1.65] - 2026-01-29
|
|
967
|
-
|
|
968
|
-
### Fixed
|
|
969
|
-
|
|
970
|
-
- SPM builds no longer fail with missing config.h or cmark-gfm_export.h when adding Apex via Swift Package Manager.
|
|
971
|
-
- SPM builds no longer fail at link time with undefined symbol _apex_apply_syntax_highlighting when adding Apex via Swift Package Manager.
|
|
972
|
-
|
|
973
|
-
## [0.1.64] - 2026-01-29
|
|
974
|
-
|
|
975
|
-
### Fixed
|
|
976
|
-
|
|
977
|
-
- Require Marked-style include syntax (`<<[file]`, `<<(file)`, `<<{file}`) to appear at the very beginning of a line, preventing indented code blocks from being processed as includes.
|
|
978
|
-
- Normalize even-numbered fenced code block delimiters to odd backticks so include syntax inside fenced code blocks (e.g. ````...````) is never processed; only fence delimiters at line start are normalized, not backticks inside code block content.
|
|
979
|
-
- Pandoc fenced divs using custom element names (e.g. ::: >custom-element customclass) now output correct HTML: the custom element wraps its paragraphs instead of the opening tag being incorrectly wrapped in a <p> (fixes GitHub issue #5).
|
|
980
|
-
- Escaped `\<<` in table cells now renders as literal `<<` in HTML (placeholder APEXLTLT is replaced with << in table HTML postprocess).
|
|
981
|
-
- Rowspan no longer puts cell content in the opening tag (e.g. <td Engineering rowspan="2">); rowspan is now applied correctly so the first cell shows <td rowspan="2">A</td>.
|
|
982
|
-
- When injecting rowspan/colspan into table HTML, only the tag name (<td or <th) is copied then attributes are injected; content between tag name and ">" is skipped so malformed or erroneously placed content is never written into the tag.
|
|
983
|
-
|
|
984
|
-
## [0.1.63] - 2026-01-29
|
|
985
|
-
|
|
986
|
-
### Fixed
|
|
987
|
-
|
|
988
|
-
- Pandoc fenced divs using custom element names (e.g. ::: >custom-element customclass) now output correct HTML: the custom element wraps its paragraphs instead of the opening tag being incorrectly wrapped in a <p> (fixes GitHub issue #5).
|
|
989
|
-
- Escaped `\<<` in table cells now renders as literal `<<` in HTML (placeholder APEXLTLT is replaced with << in table HTML postprocess).
|
|
990
|
-
|
|
991
|
-
## [0.1.62] - 2026-01-29
|
|
992
|
-
|
|
993
|
-
### Fixed
|
|
994
|
-
|
|
995
|
-
- Require Marked-style include syntax (`<<[file]`, `<<(file)`, `<<{file}`) to appear at the very beginning of a line, preventing indented code blocks from being processed as includes.
|
|
996
|
-
- Normalize even-numbered fenced code block delimiters to odd backticks so include syntax inside fenced code blocks (e.g. ````...````) is never processed; only fence delimiters at line start are normalized, not backticks inside code block content.
|
|
997
|
-
|
|
998
|
-
## [0.1.61] - 2026-01-28
|
|
999
|
-
|
|
1000
|
-
### Fixed
|
|
1001
|
-
|
|
1002
|
-
- Preserve literal include syntax inside backticked code spans so examples like `<<[path/file]` render correctly in HTML without being processed.
|
|
1003
|
-
|
|
1004
|
-
## [0.1.60] - 2026-01-28
|
|
1005
|
-
|
|
1006
|
-
### Changed
|
|
1007
|
-
|
|
1008
|
-
- Convert images with alt or title text to <figure> and <figcaption> in supported modes while leaving plain images unchanged.
|
|
1009
|
-
|
|
1010
|
-
### New
|
|
1011
|
-
|
|
1012
|
-
- Add --[no-]image-captions CLI flag to control automatic figure and figcaption wrapping of images.
|
|
1013
|
-
- Enable automatic image captions by default in MultiMarkdown and Unified modes, configurable per document via metadata.
|
|
1014
|
-
|
|
1015
|
-
### Improved
|
|
1016
|
-
|
|
1017
|
-
- Add regression tests covering image caption behavior across modes and configuration combinations.
|
|
1018
|
-
|
|
1019
|
-
### Fixed
|
|
1020
|
-
|
|
1021
|
-
- Prevent image titles and other inline image attributes from bleeding onto different images when parsing and rendering image attributes.
|
|
1022
|
-
|
|
1023
|
-
## [0.1.59] - 2026-01-27
|
|
1024
|
-
|
|
1025
|
-
### Changed
|
|
1026
|
-
|
|
1027
|
-
- Show plugin metadata (id, title, author, description, homepage) in a stable order grouped under a single Installed Plugins section when using --list-plugins
|
|
1028
|
-
|
|
1029
|
-
### New
|
|
1030
|
-
|
|
1031
|
-
- --wikilink-sanitize to sanitize the wiki links
|
|
1032
|
-
- Add comprehensive --wikilink-sanitize documentation to Command-Line-Options.md wiki page
|
|
1033
|
-
- Support ++insert++ syntax that renders to <ins> and supports IAL attributes for ids and classes on inserted spans
|
|
1034
|
-
- Discover project plugins from .apex directories in the current directory, base directory, and git repository root in addition to global config
|
|
1035
|
-
- List installed plugins from project and global .apex/plugins roots in the CLI, following the same precedence rules as runtime plugin loading so users can see exactly which plugins are active for a given project
|
|
1036
|
-
|
|
1037
|
-
### Improved
|
|
1038
|
-
|
|
1039
|
-
- Highlight detection logic now properly validates both opening and closing == markers with stricter requirements
|
|
1040
|
-
- Allow project plugins to shadow global plugins with the same id so projects can locally override or disable user-global plugins
|
|
1041
|
-
- Add APEX_SUPPRESS_HIGHLIGHT_WARNINGS environment variable to suppress noisy missing-syntax-highlighter warnings when running in controlled environments
|
|
1042
|
-
- Read configuration from project .apex/config.yml (with global config as a fallback) so per-project defaults override user-wide settings while keeping existing metadata and CLI precedence intact
|
|
1043
|
-
|
|
1044
|
-
### Fixed
|
|
1045
|
-
|
|
1046
|
-
- Highlight conversion now correctly rejects === (three equals) and only matches == (exactly two equals) for mark tags
|
|
1047
|
-
- Highlight conversion no longer matches when preceded by = or + characters
|
|
1048
|
-
- Highlight conversion no longer matches when followed by + character
|
|
1049
|
-
- Highlight conversion no longer matches when closing == is preceded by space or followed by = or +
|
|
1050
|
-
- Honor MultiMarkdown-style image attributes on reference-style images in unified and MultiMarkdown modes so definitions like [id]: path \"Title\" class=center width=300 height=200 style=\"...\" correctly apply class, width, height, and style
|
|
1051
|
-
- Honor MultiMarkdown-style image attributes on inline and reference-style images in unified and MultiMarkdown modes so syntax like  or [id]: /img.jpg \"Title\" class=center width=300 height=200 style=\"...\" correctly applies class, width, height, and style to the rendered img tag
|
|
1052
|
-
- Preserve MMD6-style image titles in parentheses like ) so they render a proper title attribute instead of leaving a stray closing parenthesis in the output
|
|
1053
|
-
|
|
1054
|
-
## [0.1.58] - 2026-01-15
|
|
1055
|
-
|
|
1056
|
-
### Fixed
|
|
1057
|
-
|
|
1058
|
-
- Missing test files
|
|
1059
|
-
|
|
1060
|
-
## [0.1.57] - 2026-01-15
|
|
1061
|
-
|
|
1062
|
-
### New
|
|
1063
|
-
|
|
1064
|
-
- Definition lists now support blank lines between the term and first definition, and between multiple definitions. Terms are preserved across blank lines and definition lists remain open across blank lines instead of closing prematurely.
|
|
1065
|
-
|
|
1066
|
-
### Improved
|
|
1067
|
-
|
|
1068
|
-
- Expanded test coverage
|
|
1069
|
-
|
|
1070
|
-
### Fixed
|
|
1071
|
-
|
|
1072
|
-
- Definition lists with blank lines between definitions no longer create separate <dl> blocks - all definitions for a term are now grouped in a single definition list.
|
|
1073
|
-
- Terms with blank lines before their definitions are now correctly converted to <dt> tags instead of being rendered as paragraphs.
|
|
1074
|
-
|
|
1075
|
-
## [0.1.56] - 2026-01-14
|
|
1076
|
-
|
|
1077
|
-
### New
|
|
1078
|
-
|
|
1079
|
-
- Add test_marked_integration.c test file for Marked integration features
|
|
1080
|
-
|
|
1081
|
-
## [0.1.55] - 2026-01-14
|
|
1082
|
-
|
|
1083
|
-
### New
|
|
1084
|
-
|
|
1085
|
-
- Add test_marked_integration.c test file for Marked integration features
|
|
1086
|
-
|
|
1087
|
-
## [0.1.54] - 2026-01-14
|
|
1088
|
-
|
|
1089
|
-
### New
|
|
1090
|
-
|
|
1091
|
-
- --highlight-language-only flag to only highlight code blocks that have a language specified (via ```language or IAL), leaving plain code blocks unhighlighted
|
|
1092
|
-
- Config file support for code-highlight option (accepts pygments, skylighting, or abbreviations p/pyg, s/sky)
|
|
1093
|
-
- Config file support for code-line-numbers option (boolean)
|
|
1094
|
-
- Config file support for highlight-language-only option (boolean)
|
|
1095
|
-
- Display 256-color ANSI art logo alongside version info when running `apex --version` in a wide terminal (>=70 columns)
|
|
1096
|
-
|
|
1097
|
-
### Improved
|
|
1098
|
-
|
|
1099
|
-
- Version output detects terminal capabilities and falls back gracefully (narrow terminal, piped output, NO_COLOR set)
|
|
1100
|
-
- Logo uses transparent background, blending with user's terminal colors instead of forcing black rectangle
|
|
1101
|
-
|
|
1102
|
-
### Fixed
|
|
1103
|
-
|
|
1104
|
-
- Blank line above ASCII art in --version output
|
|
1105
|
-
|
|
1106
|
-
## [0.1.53] - 2026-01-13
|
|
1107
|
-
|
|
1108
|
-
### New
|
|
1109
|
-
|
|
1110
|
-
- Display ASCII art logo alongside version info when running `apex --version` in a wide enough terminal (>=80 columns)
|
|
1111
|
-
- --code-highlight TOOL flag for syntax highlighting via external tools (pygments, skylighting, or abbreviations p, s)
|
|
1112
|
-
- --code-line-numbers flag to include line numbers in syntax-highlighted code blocks (requires --code-highlight)
|
|
1113
|
-
- --css flag now accepts multiple stylesheets via repeated flags or comma-separated list (e.g., --css style.css --css syntax.css or --css style.css,syntax.css)
|
|
1114
|
-
- Automatic GitHub-style syntax highlighting CSS embedded when --code-highlight is used (covers both Pygments and Skylighting class names)
|
|
1115
|
-
- Add test runner `--badge` mode that outputs pass/fail count (e.g., "981/981") for badge generation
|
|
1116
|
-
|
|
1117
|
-
### Improved
|
|
1118
|
-
|
|
1119
|
-
- Version output automatically detects terminal capabilities and falls back to text-only when logo cannot display (narrow terminal, piped output, NO_COLOR set)
|
|
1120
|
-
- --embed-css now embeds all specified stylesheets as inline <style> blocks
|
|
1121
|
-
- Test output in errors-only mode (`-e`) now only prints suite titles for suites with failures
|
|
1122
|
-
|
|
1123
|
-
## [0.1.52] - 2026-01-11
|
|
1124
|
-
|
|
1125
|
-
### Changed
|
|
1126
|
-
|
|
1127
|
-
- Per-cell alignment is now enabled by default only in unified mode, disabled in all other modes (CommonMark, GFM, MultiMarkdown, Kramdown)
|
|
1128
|
-
|
|
1129
|
-
### New
|
|
1130
|
-
|
|
1131
|
-
- Table preprocessing converts consecutive pipes without whitespace (|||) to << markers for colspan detection, distinguishing between whitespace-separated empty cells (| | |) which remain separate and consecutive pipes (|||) which create colspans.
|
|
1132
|
-
- Table cells can now specify alignment by adding colons at the start and/or end of cell content: leading colon (:) for left-align, trailing colon (:) for right-align, or both (:content:) for center-align. The colons are stripped from the output and replaced with style="text-align: ..." attributes.
|
|
1133
|
-
- Added --per-cell-alignment and --no-per-cell-alignment CLI flags to enable or disable per-cell alignment markers in tables
|
|
1134
|
-
- Added tests to verify colspan behavior with consecutive pipes vs empty cells with whitespace
|
|
1135
|
-
|
|
1136
|
-
### Improved
|
|
1137
|
-
|
|
1138
|
-
- Colspan attribute injection in HTML post-processing now includes fallback matching that checks nearby rows when position-based matching fails, ensuring colspan attributes are applied correctly even when row indices shift due to removed cells.
|
|
1139
|
-
- HTML post-processing now removes cells containing << markers (entity-encoded <<) that were missed by AST-level removal.
|
|
1140
|
-
- Cell text extraction for attribute matching now recursively checks nested text nodes (paragraphs, etc.) to properly match cells with complex content structures.
|
|
1141
|
-
- Colspan merge logic now preserves cell alignment styles when cells are merged together, ensuring alignment attributes are maintained correctly when cells span multiple columns.
|
|
1142
|
-
- Per-cell alignment processing is now conditional and only runs when the feature is enabled, improving performance when disabled
|
|
1143
|
-
- Row-header detection in tables now correctly identifies empty first header cells
|
|
1144
|
-
|
|
1145
|
-
### Fixed
|
|
1146
|
-
|
|
1147
|
-
- Colspan detection now only triggers on cells with << markers (from consecutive pipes), not plain empty cells, so whitespace-separated pipes create separate empty cells as intended.
|
|
1148
|
-
- Cells with << markers now always merge with previous cell to create colspan, even when followed by additional content in subsequent cells.
|
|
1149
|
-
- Colspan now only merges consecutive empty cells (|||), not empty cells with whitespace between pipes (| |)
|
|
1150
|
-
- Email autolinking no longer converts @ symbols in URLs to email addresses (e.g., Mastodon profile links like https://hachyderm.io/@ttscoff)
|
|
1151
|
-
- Email autolinking now requires that the @ symbol is preceded by an alphanumeric character (not space or punctuation)
|
|
1152
|
-
- Email autolinking now requires a TLD (top-level domain) to match, so only [user]@[domain].[tld] format is autolinked
|
|
1153
|
-
- Email autolinking is now skipped inside markdown link URLs [text](url) to prevent incorrect conversions
|
|
1154
|
-
- Row-header tables (tables with empty first header cell) now correctly convert first-column body cells to `<th scope="row">` even when `relaxed_tables` is disabled
|
|
1155
|
-
|
|
1156
|
-
## [0.1.51] - 2026-01-09
|
|
1157
|
-
|
|
1158
|
-
### New
|
|
1159
|
-
|
|
1160
|
-
- Support for : Caption syntax before tables, with or without IAL attributes
|
|
1161
|
-
- Caption format now works before tables (previously only worked after tables)
|
|
1162
|
-
- Added tests for : Caption before tables (basic, with IAL, without blank line)
|
|
1163
|
-
- Add regression test to ensure table parsing works correctly when files don't end with a newline, preventing future regressions
|
|
1164
|
-
- Add regression test to ensure table parsing works correctly when files use CR line endings, preventing future regressions with Table: Caption syntax
|
|
1165
|
-
|
|
1166
|
-
### Improved
|
|
1167
|
-
|
|
1168
|
-
- Definition list processor now skips : Caption lines that are followed by tables to avoid conflicts
|
|
1169
|
-
- Table caption detection now handles blank lines between captions and tables
|
|
1170
|
-
- Paragraph removal logic now recognizes and removes : Caption format paragraphs from output
|
|
1171
|
-
- Refactored test suite to use centralized test_result() and test_resultf() helper functions instead of scattered printf statements with manual errors_only_output checks
|
|
1172
|
-
|
|
1173
|
-
### Fixed
|
|
1174
|
-
|
|
1175
|
-
- Buffer overflow in stdin reading that caused segfaults when piping from pbpaste
|
|
1176
|
-
- Prevent memory leak in is_table_caption by only storing full_text in user_data when caption is confirmed, not before validation
|
|
1177
|
-
- Fix potential crash when processing multiple tables by ensuring full_text is properly freed when caption validation fails
|
|
1178
|
-
- Fix double-free in add_table_caption by checking for existing caption before freeing user_data, preventing use-after-free errors
|
|
1179
|
-
- Fix : Caption lines before tables being incorrectly parsed as definition lists by always treating them as captions when followed by a table, regardless of IAL presence or blank lines
|
|
1180
|
-
- Fix table parsing issue where last row of first table is not parsed when file doesn't end with a newline by normalizing input to always end with a line ending character before preprocessing and parsing
|
|
1181
|
-
- Normalization breaking file includes
|
|
1182
|
-
- Fix table parsing issue where last row of first table is not parsed when file doesn't end with a newline by normalizing input to always end with a line ending character before table preprocessing and final parsing
|
|
1183
|
-
- Fix Table: Caption syntax not being processed when file uses CR line endings by updating table caption preprocessing to handle CR, LF, and CRLF line endings correctly
|
|
1184
|
-
- --errors-only flag now correctly suppresses all passing test output, including negative tests that pass
|
|
1185
|
-
|
|
1186
|
-
## [0.1.50] - 2026-01-04
|
|
1187
|
-
|
|
1188
|
-
### Changed
|
|
1189
|
-
|
|
1190
|
-
- Removed rouge_css function from documentation generators (generate_docset.rb, generate_single_html.rb, generate_app_docs.rb) in favor of using the shared stylesheet approach.
|
|
1191
|
-
|
|
1192
|
-
### New
|
|
1193
|
-
|
|
1194
|
-
- Added generate_docset.rb script to generate Dash docsets from Apex documentation
|
|
1195
|
-
- Added support for single-page CLI options docset using mmd2cheatset
|
|
1196
|
-
- Added support for multi-page docset from wiki files with full navigation
|
|
1197
|
-
- Added shared_styles.css with common styling for all documentation generators
|
|
1198
|
-
- Added shared_scripts.js with hamburger menu functionality for mobile navigation
|
|
1199
|
-
- Added hamburger menu button for mobile navigation that slides sidebar in from left
|
|
1200
|
-
- Added mobile menu overlay that closes sidebar when clicked
|
|
1201
|
-
|
|
1202
|
-
### Improved
|
|
1203
|
-
|
|
1204
|
-
- Documentation generators now use shared CSS and JavaScript files for consistency
|
|
1205
|
-
- Sidebar width increased to 180-250px on larger screens to prevent menu item wrapping
|
|
1206
|
-
- Hamburger menu fades to 0.2 opacity when not hovered, full opacity on hover
|
|
1207
|
-
- Hamburger menu repositions to right of sidebar when menu is open
|
|
1208
|
-
- Hash handling on page load now supports both page IDs and section IDs
|
|
1209
|
-
- Added hashchange event listener to handle URL hash changes after page load
|
|
1210
|
-
- Moved Rouge syntax highlighting CSS to shared stylesheet (shared_styles.css) for better maintainability. All documentation generators now use the centralized GitHub theme CSS instead of generating it dynamically.
|
|
1211
|
-
- Documentation generators now prioritize build/apex over build-release/apex when searching for the Apex binary, ensuring the most recently built version is used for documentation generation.
|
|
1212
|
-
|
|
1213
|
-
### Fixed
|
|
1214
|
-
|
|
1215
|
-
- TOC link navigation now uses getAbsoluteTop function for reliable scroll positioning
|
|
1216
|
-
- Hash navigation in single-page HTML files now correctly shows page and scrolls to section
|
|
1217
|
-
- TOC links in C API and other pages now scroll correctly instead of only moving 5px
|
|
1218
|
-
- Definition lists are no longer incorrectly processed inside fenced code blocks. The definition list preprocessor now detects code block boundaries and skips processing when inside a code block, preserving the literal markdown syntax in code examples.
|
|
1219
|
-
- Definition lists are no longer incorrectly processed inside fenced code blocks. The definition list preprocessor now detects code block boundaries and distinguishes between closing fences (```) and opening fences (```markdown). When inside a code block, only closing fences exit the block, while opening fences with language identifiers are treated as content, preventing definition list syntax from being rendered as HTML in code examples.
|
|
1220
|
-
- Fixed double-free memory error in definition list preprocessor by setting ref_definitions to NULL after freeing and adding NULL checks in error paths to prevent attempting to free already-freed memory.
|
|
1221
|
-
|
|
1222
|
-
## [0.1.49] - 2026-01-03
|
|
1223
|
-
|
|
1224
|
-
### New
|
|
1225
|
-
|
|
1226
|
-
- Added standalone HTML document generation method with stylesheet and title support
|
|
1227
|
-
- Added pretty-printing option method for formatted HTML output
|
|
1228
|
-
- Added dictionary-based options method for flexible configuration
|
|
1229
|
-
- Added Swift-friendly convenience method combining common options (generateHeaderIDs, hardBreaks, pretty)
|
|
1230
|
-
- Added instance methods (apexHTML and apexHTMLWithMode) for fluent NSString usage
|
|
1231
|
-
- Added Swift API wrapper (Apex.swift) with type-safe ApexMode enum and ApexOptions struct
|
|
1232
|
-
- Added String extensions providing idiomatic Swift API for Markdown conversion
|
|
1233
|
-
- Added static Apex converter struct for functional-style Swift usage
|
|
1234
|
-
- Swift Package Manager (SPM) support - Apex can now be added as a package dependency in Xcode projects via SPM
|
|
1235
|
-
- IOS support - Apex now supports iOS 11+ in addition to macOS 10.13+ through bundled libyaml dependency
|
|
1236
|
-
- Module map for Swift C API imports - Added module.modulemap to enable direct C API access from Swift
|
|
1237
|
-
- Add Package.swift for Swift Package Manager integration
|
|
1238
|
-
- Add module.modulemap for Swift/Objective-C interop
|
|
1239
|
-
- Add SPM test script and test project
|
|
1240
|
-
|
|
1241
|
-
### Improved
|
|
1242
|
-
|
|
1243
|
-
- Framework build now includes module map for proper Swift module support
|
|
1244
|
-
- Add default initializer to ApexOptions struct for better Swift ergonomics
|
|
1245
|
-
|
|
1246
|
-
### Fixed
|
|
1247
|
-
|
|
1248
|
-
- Swift/Objective-C bridging issues in Apex.swift to work correctly with SPM module structure
|
|
1249
|
-
- Fix node type declarations to use enum values instead of extern variables for better module compatibility
|
|
1250
|
-
|
|
1251
|
-
## [0.1.48] - 2026-01-03
|
|
1252
|
-
|
|
1253
|
-
### Fixed
|
|
1254
|
-
|
|
1255
|
-
- Linux build error: add missing stdint.h include to emoji.c for SIZE_MAX definition
|
|
1256
|
-
|
|
1257
|
-
## [0.1.47] - 2026-01-03
|
|
1258
|
-
|
|
1259
|
-
### Changed
|
|
1260
|
-
|
|
1261
|
-
- Updated Objective-C API to use mode constants instead of string literals in default implementation
|
|
1262
|
-
|
|
1263
|
-
### New
|
|
1264
|
-
|
|
1265
|
-
- Added emoji autocorrect option to enable automatic conversion of emoji names like :rocket: to Unicode emoji characters
|
|
1266
|
-
- Added progress indicator option to show processing progress on stderr for operations longer than 1 second
|
|
1267
|
-
|
|
1268
|
-
### Improved
|
|
1269
|
-
|
|
1270
|
-
- Added mode constants (ApexModeCommonmark, ApexModeGFM, etc.) to Objective-C API for better type safety and code clarity
|
|
1271
|
-
|
|
1272
|
-
## [0.1.46] - 2026-01-03
|
|
1273
|
-
|
|
1274
|
-
## [0.1.45] - 2026-01-03
|
|
1275
|
-
|
|
1276
|
-
### Improved
|
|
1277
|
-
|
|
1278
|
-
- Table caption preprocessing now handles blank lines between tables and captions by buffering and discarding them appropriately
|
|
1279
|
-
- Table matching in HTML renderer now uses sequential matching instead of index-based matching to correctly handle tables with attributes
|
|
1280
|
-
- Caption detection now concatenates all text nodes in a paragraph to ensure IAL attributes are found even when split across nodes
|
|
1281
|
-
|
|
1282
|
-
### Fixed
|
|
1283
|
-
|
|
1284
|
-
- Table captions now work correctly when separated from tables by blank lines
|
|
1285
|
-
- IAL attributes (id, class) are now correctly extracted and applied to tables with captions
|
|
1286
|
-
- Table: caption format now works when appearing immediately after table rows without blank lines
|
|
1287
|
-
- Table: caption format now supports case-insensitive "table:" in addition to "Table:"
|
|
1288
|
-
|
|
1289
|
-
## [0.1.44] - 2026-01-02
|
|
1290
|
-
|
|
1291
|
-
### Changed
|
|
1292
|
-
|
|
1293
|
-
- Updated emoji_entry structure to support both unicode and image-based emojis with separate unicode and image_url fields
|
|
1294
|
-
- Table alignment test now accepts both align="center" and style="text-align: center" attributes to be more flexible with cmark-gfm's output format
|
|
1295
|
-
|
|
1296
|
-
### New
|
|
1297
|
-
|
|
1298
|
-
- Fenced divs now support specifying different HTML block elements using >blocktype syntax (e.g., ::: >aside {.sidebar} creates <aside> instead of <div>)
|
|
1299
|
-
- Support for common HTML5 block elements: aside, article, section, details, summary, header, footer, nav, and custom elements
|
|
1300
|
-
- Block type syntax works with all attribute types including IDs, classes, and custom attributes
|
|
1301
|
-
- Added comprehensive test coverage for block type feature including nesting, multiple attributes, and edge cases
|
|
1302
|
-
- In GFM format, emojis in headers are converted to their textual names in generated IDs (e.g., # Support -> id="smile-support"), matching Pandoc's GFM behavior
|
|
1303
|
-
- Added support for all 861 GitHub emojis (expanded from ~200), including 14 image-based emojis like :bowtie:, :octocat:, and :feelsgood:
|
|
1304
|
-
- Added emoji name autocorrect feature using fuzzy matching with Levenshtein distance algorithm to correct typos and formatting errors in emoji names
|
|
1305
|
-
- Added --emoji-autocorrect and --no-emoji-autocorrect command-line flags to control emoji autocorrection
|
|
1306
|
-
- Emoji autocorrect is enabled by default in unified mode and can be enabled in GFM mode
|
|
1307
|
-
- Image-based emojis in headers now use em units (height: 1em) for proper scaling instead of fixed pixel sizes
|
|
1308
|
-
|
|
1309
|
-
### Improved
|
|
1310
|
-
|
|
1311
|
-
- Fenced div block types can be nested and mixed with regular divs
|
|
1312
|
-
- Emoji processing now validates that only complete :emoji_name: patterns are processed (requires at least one character and no spaces between colons)
|
|
1313
|
-
- Emoji names are normalized (lowercase, hyphens to underscores) before matching to handle case variations and formatting differences
|
|
1314
|
-
- Table processing now completes in under 30ms for large tables (previously timing out after 5+ seconds) by avoiding expensive string comparisons when no changes are made
|
|
1315
|
-
- Added early exit in table attribute injection to skip processing for simple tables without special attributes, avoiding expensive AST traversal for tables that don't need it
|
|
1316
|
-
- Table post-processing performance significantly improved for large tables (2600+ cells) by implementing lazy cell content extraction, only extracting content when needed for attribute matching or alignment processing
|
|
1317
|
-
- Added timeout protection (10 seconds) to table post-processing loop to prevent hangs on extremely large tables, gracefully exiting and returning processed HTML
|
|
1318
|
-
- Per-cell alignment processing now disabled automatically for tables with more than 1000 cells to avoid timeouts, while column alignment from delimiter rows continues to work (handled by cmark-gfm)
|
|
1319
|
-
- Optimized alignment colon detection to only check first and last non-whitespace characters instead of scanning entire cell content, reducing character comparisons by ~50x
|
|
1320
|
-
- Added early exit for tables with only simple attributes (no rowspan/colspan/data-remove) to skip expensive HTML processing when no complex features are needed
|
|
1321
|
-
- Content-based cell matching now skipped for tables with more than 500 attributes to avoid performance degradation
|
|
1322
|
-
- Added CMARK_OPT_LIBERAL_HTML_TAG option when unsafe mode is enabled to allow cmark-gfm to properly recognize inline HTML tags instead of encoding them
|
|
1323
|
-
- MacOS binaries now use @rpath for libyaml instead of hardcoded Homebrew paths, allowing the binary to work when copied to /usr/local/bin as long as libyaml is installed in /usr/local/lib or /opt/homebrew/lib
|
|
1324
|
-
- Emoji name resolution now prefers longer, more descriptive names (e.g., "thumbsup" over "+1")
|
|
1325
|
-
- Header ID generation now normalizes common Latin diacritics (e, a, c, etc.)
|
|
1326
|
-
- Table rowspan matching now extracts cell content for more accurate matching
|
|
1327
|
-
|
|
1328
|
-
### Fixed
|
|
1329
|
-
|
|
1330
|
-
- Fixed issue where partial emoji patterns or empty patterns could cause incorrect matches
|
|
1331
|
-
- Emoji replacement now correctly ignores table alignment patterns like :---: and :|: to prevent incorrect emoji processing in table delimiter rows
|
|
1332
|
-
- Emoji patterns (like :bowtie:) inside HTML tag attributes are now correctly ignored and not processed, preventing mangled HTML output when emojis appear in attributes like title=":emoji:"
|
|
1333
|
-
- Autolink processing now skips URLs inside HTML tag attributes, preventing URLs in attributes like src="https://..." from being converted to markdown links
|
|
1334
|
-
- Inline HTML tags like <img> are no longer HTML-encoded when --unsafe is enabled, preserving raw HTML in paragraphs, blockquotes, and definition lists
|
|
1335
|
-
- Header IDs with emojis now correctly replace cmark-gfm's auto-generated IDs instead of being skipped, ensuring custom ID formats (like emoji-to-name conversion) are applied
|
|
1336
|
-
- Emoji processing now correctly skips index placeholders (<!--IDX:...-->)
|
|
1337
|
-
- Table processing now correctly detects and processes rowspan markers (^^)
|
|
1338
|
-
- Table attribute processing optimization no longer incorrectly skips rowspan/colspan attributes
|
|
1339
|
-
- Table formatting in fixture
|
|
1340
|
-
- Remove unused function
|
|
1341
|
-
|
|
1342
|
-
## [0.1.43] - 2025-12-31
|
|
1343
|
-
|
|
1344
|
-
### Changed
|
|
1345
|
-
|
|
1346
|
-
- Reference image attribute expansion now converts IAL
|
|
1347
|
-
|
|
1348
|
-
attributes (ID, classes) to key=value format for
|
|
1349
|
-
compatibility with inline image parsing
|
|
1350
|
-
|
|
1351
|
-
- Test suite refactored: split test_runner.c into multiple
|
|
1352
|
-
|
|
1353
|
-
files (test_basic.c, test_extensions.c, test_helpers.c,
|
|
1354
|
-
test_ial.c, test_links.c, test_metadata.c, test_output.c,
|
|
1355
|
-
test_tables.c) for better organization
|
|
1356
|
-
|
|
1357
|
-
- Test fixtures reorganized: moved all .md test files from
|
|
1358
|
-
|
|
1359
|
-
tests/ to tests/fixtures/ with subdirectories (basic/,
|
|
1360
|
-
demos/, extensions/, ial/, images/, output/, tables/)
|
|
1361
|
-
|
|
1362
|
-
### New
|
|
1363
|
-
|
|
1364
|
-
Support for Pandoc-style table captions using `: Caption` syntax (in addition to existing `[Caption]` and `Table: Caption` formats)
|
|
1365
|
-
|
|
1366
|
-
IAL attributes in table captions are now extracted and applied to the table element (e.g., `: Caption {#id .class}` applies `id` and `class` to the table)
|
|
1367
|
-
|
|
1368
|
-
Support for Pandoc-style IAL syntax without colon prefix (`{#id .class}` in addition to Kramdown `{:#id .class}` format)
|
|
1369
|
-
|
|
1370
|
-
- Support Pandoc-style IAL syntax ({#id .class}) in addition
|
|
1371
|
-
|
|
1372
|
-
to Kramdown-style ({: #id .class}) for all IAL contexts
|
|
1373
|
-
including block-level, inline, and paragraph IALs
|
|
1374
|
-
|
|
1375
|
-
- Extract_ial_from_text function now recognizes both {: and
|
|
1376
|
-
|
|
1377
|
-
{# or {. formats when extracting IALs from text
|
|
1378
|
-
|
|
1379
|
-
- Extract_ial_from_paragraph function now accepts
|
|
1380
|
-
|
|
1381
|
-
Pandoc-style IALs for pure IAL paragraphs
|
|
1382
|
-
|
|
1383
|
-
- Process_span_ial_in_container function now processes
|
|
1384
|
-
|
|
1385
|
-
Pandoc-style IALs for inline elements like links, images,
|
|
1386
|
-
and emphasis
|
|
1387
|
-
|
|
1388
|
-
- Is_ial_line function now detects Pandoc-style IAL-only
|
|
1389
|
-
|
|
1390
|
-
lines in addition to Kramdown format
|
|
1391
|
-
|
|
1392
|
-
- Support Pandoc-style IAL syntax ({#id .class}) in addition
|
|
1393
|
-
|
|
1394
|
-
to Kramdown-style ({: #id .class}) for all IAL contexts
|
|
1395
|
-
including block-level elements, paragraphs, inline
|
|
1396
|
-
elements, and headings
|
|
1397
|
-
|
|
1398
|
-
- Add support for Pandoc fenced divs syntax (::::: {#id
|
|
1399
|
-
|
|
1400
|
-
.class} ... :::::) in unified mode, enabled by default
|
|
1401
|
-
|
|
1402
|
-
- Add --divs and --no-divs command-line flags to control
|
|
1403
|
-
|
|
1404
|
-
fenced divs processing
|
|
1405
|
-
|
|
1406
|
-
- Add comprehensive test suite for Pandoc fenced divs
|
|
1407
|
-
|
|
1408
|
-
covering basic divs, nested divs, attributes, and edge
|
|
1409
|
-
cases
|
|
1410
|
-
|
|
1411
|
-
- Add bracketed spans feature that converts [text]{IAL}
|
|
1412
|
-
|
|
1413
|
-
syntax to HTML span elements with attributes, enabled by
|
|
1414
|
-
default in unified mode
|
|
1415
|
-
|
|
1416
|
-
- Add --spans and --no-spans command-line flags to
|
|
1417
|
-
|
|
1418
|
-
enable/disable bracketed spans in other modes
|
|
1419
|
-
|
|
1420
|
-
- Bracketed spans support all IAL attribute types (IDs,
|
|
1421
|
-
|
|
1422
|
-
classes, key-value pairs) and process markdown inside
|
|
1423
|
-
spans
|
|
1424
|
-
|
|
1425
|
-
- Reference link definitions take precedence over bracketed
|
|
1426
|
-
|
|
1427
|
-
spans - if [text] matches a reference link, it remains a
|
|
1428
|
-
link
|
|
1429
|
-
|
|
1430
|
-
- Add comprehensive test suite for bracketed spans including
|
|
1431
|
-
|
|
1432
|
-
reference link precedence, nested brackets, and markdown
|
|
1433
|
-
processing
|
|
1434
|
-
|
|
1435
|
-
- Add bracketed spans examples and documentation
|
|
1436
|
-
- Add automatic width/height attribute conversion:
|
|
1437
|
-
|
|
1438
|
-
percentages and non-integer/non-px values convert to style
|
|
1439
|
-
attributes, Xpx values convert to integer width/height
|
|
1440
|
-
attributes (strips px suffix), bare integers remain as
|
|
1441
|
-
width/height attributes
|
|
1442
|
-
|
|
1443
|
-
- Add support for Pandoc/Kramdown IAL syntax on images:
|
|
1444
|
-
|
|
1445
|
-
inline images support IAL after closing paren like
|
|
1446
|
-
{#id .class width=50%}
|
|
1447
|
-
|
|
1448
|
-
- Add support for IAL syntax after titles in reference image
|
|
1449
|
-
|
|
1450
|
-
definitions: [ref]: url "title" {#id .class width=50%}
|
|
1451
|
-
|
|
1452
|
-
- Add support for Pandoc-style IAL with space prefix: {
|
|
1453
|
-
|
|
1454
|
-
width=50% } syntax works for images
|
|
1455
|
-
|
|
1456
|
-
- Add comprehensive test suite for width/height conversion
|
|
1457
|
-
|
|
1458
|
-
covering percentages, pixels, integers, mixed cases, and
|
|
1459
|
-
edge cases like decimals and viewport units
|
|
1460
|
-
|
|
1461
|
-
- Reference image definitions now preserve and include title
|
|
1462
|
-
|
|
1463
|
-
attributes from definitions like [ref]: url "title" {#id}
|
|
1464
|
-
|
|
1465
|
-
### Improved
|
|
1466
|
-
|
|
1467
|
-
- Table caption preprocessing now converts `: Caption`
|
|
1468
|
-
|
|
1469
|
-
format to `[Caption]` format before definition list
|
|
1470
|
-
processing to avoid conflicts
|
|
1471
|
-
|
|
1472
|
-
- HTML renderer now extracts and injects IAL attributes from
|
|
1473
|
-
|
|
1474
|
-
table captions while excluding internal attributes like
|
|
1475
|
-
`data-caption`
|
|
1476
|
-
|
|
1477
|
-
- IAL parsing automatically detects format and adjusts
|
|
1478
|
-
|
|
1479
|
-
content offset accordingly (2 chars for {: format, 1 char
|
|
1480
|
-
for {# or {. format)
|
|
1481
|
-
|
|
1482
|
-
- HTML markdown extension now uses CMARK_OPT_UNSAFE to allow
|
|
1483
|
-
|
|
1484
|
-
raw HTML including nested divs in processed content
|
|
1485
|
-
|
|
1486
|
-
- Width/height conversion properly merges with existing
|
|
1487
|
-
|
|
1488
|
-
style attributes when both are present
|
|
1489
|
-
|
|
1490
|
-
- IAL detection now properly handles whitespace before IAL
|
|
1491
|
-
|
|
1492
|
-
syntax for both inline and reference images
|
|
1493
|
-
|
|
1494
|
-
- Reference image expansion now correctly skips IAL even
|
|
1495
|
-
|
|
1496
|
-
when closing paren is not found
|
|
1497
|
-
|
|
1498
|
-
### Fixed
|
|
1499
|
-
|
|
1500
|
-
- Table caption test assertions now correctly match table
|
|
1501
|
-
|
|
1502
|
-
tags with attributes by using <table instead of <table>
|
|
1503
|
-
|
|
1504
|
-
- Extract_ial_from_paragraph now allows newline character
|
|
1505
|
-
|
|
1506
|
-
after closing brace in IAL syntax
|
|
1507
|
-
|
|
1508
|
-
- List items with key:value format (e.g., "- Foo: Bar") are
|
|
1509
|
-
|
|
1510
|
-
no longer incorrectly parsed as MMD metadata in unified
|
|
1511
|
-
mode
|
|
1512
|
-
|
|
1513
|
-
- Fenced divs now add markdown="1" attribute so content
|
|
1514
|
-
|
|
1515
|
-
inside divs is properly parsed as markdown
|
|
1516
|
-
|
|
1517
|
-
- HTML markdown extension now preserves all attributes (id,
|
|
1518
|
-
|
|
1519
|
-
class, custom attributes) when processing divs with
|
|
1520
|
-
markdown="1"
|
|
1521
|
-
|
|
1522
|
-
- HTML markdown extension now recursively processes nested
|
|
1523
|
-
|
|
1524
|
-
divs with markdown="1" attributes
|
|
1525
|
-
|
|
1526
|
-
- HTML markdown extension now adds newline after closing div
|
|
1527
|
-
|
|
1528
|
-
tags to ensure following markdown headers and content are
|
|
1529
|
-
parsed correctly
|
|
1530
|
-
|
|
1531
|
-
- Bracketed spans now correctly handle nested brackets by
|
|
1532
|
-
|
|
1533
|
-
matching outer brackets instead of first closing bracket
|
|
1534
|
-
|
|
1535
|
-
- Remove test assertions checking for markdown attribute on
|
|
1536
|
-
|
|
1537
|
-
bracketed spans which is correctly removed by
|
|
1538
|
-
html_markdown extension
|
|
1539
|
-
|
|
1540
|
-
- IAL syntax with spaces (e.g., { width=50% }) now correctly
|
|
1541
|
-
|
|
1542
|
-
detected and processed for images
|
|
1543
|
-
|
|
1544
|
-
- IAL syntax is now properly stripped from output even when
|
|
1545
|
-
|
|
1546
|
-
parsing fails, preventing raw IAL from appearing in HTML
|
|
1547
|
-
|
|
1548
|
-
- Reference image definitions with IAL after URL (no title)
|
|
1549
|
-
|
|
1550
|
-
now correctly detected and processed
|
|
1551
|
-
|
|
1552
|
-
- Test string length issues: replaced hardcoded lengths with
|
|
1553
|
-
|
|
1554
|
-
strlen() calls to ensure full IAL syntax is processed in
|
|
1555
|
-
width/height conversion tests
|
|
1556
|
-
|
|
1557
|
-
- Removed unused style_attr_index variable to eliminate
|
|
1558
|
-
|
|
1559
|
-
compiler warning
|
|
1560
|
-
|
|
1561
|
-
## [0.1.42] - 2025-12-30
|
|
1562
|
-
|
|
1563
|
-
### New
|
|
1564
|
-
|
|
1565
|
-
- ALD references can now be combined with additional
|
|
1566
|
-
|
|
1567
|
-
attributes in the same IAL (e.g., {:id .class3} where id
|
|
1568
|
-
is an ALD reference and .class3 is an additional class)
|
|
1569
|
-
|
|
1570
|
-
### Improved
|
|
1571
|
-
|
|
1572
|
-
- When merging ALD attributes with additional attributes,
|
|
1573
|
-
|
|
1574
|
-
duplicate key-value pairs are now replaced instead of
|
|
1575
|
-
duplicated (e.g., if ALD defines rel="x" and IAL includes
|
|
1576
|
-
rel="y", the result is rel="y")
|
|
1577
|
-
|
|
1578
|
-
- Classes from additional attributes are appended to ALD
|
|
1579
|
-
|
|
1580
|
-
classes, and IDs in IALs override ALD IDs when specified
|
|
1581
|
-
|
|
1582
|
-
- Enhanced merge_attributes function to properly handle
|
|
1583
|
-
|
|
1584
|
-
attribute key conflicts by replacing existing values
|
|
1585
|
-
rather than creating duplicates
|
|
1586
|
-
|
|
1587
|
-
## [0.1.41] - 2025-12-30
|
|
1588
|
-
|
|
1589
|
-
### New
|
|
1590
|
-
|
|
1591
|
-
- Inline Attribute Lists (IALs) can now appear immediately
|
|
1592
|
-
|
|
1593
|
-
after inline elements within paragraphs, not just at the
|
|
1594
|
-
end of paragraphs
|
|
1595
|
-
|
|
1596
|
-
- IALs can be applied to strong (bold), emphasis (italic),
|
|
1597
|
-
|
|
1598
|
-
and code elements in addition to links and images
|
|
1599
|
-
|
|
1600
|
-
- IALs now work with nested inline elements, allowing
|
|
1601
|
-
|
|
1602
|
-
attributes to be applied to italic text inside bold text
|
|
1603
|
-
and similar nested structures
|
|
1604
|
-
|
|
1605
|
-
- Added comprehensive test suite for inline IAL
|
|
1606
|
-
|
|
1607
|
-
functionality covering links, strong, emphasis, code,
|
|
1608
|
-
multiple IALs, and edge cases
|
|
1609
|
-
|
|
1610
|
-
- Added IAL demo markdown file (tests/ial_demo.md)
|
|
1611
|
-
|
|
1612
|
-
demonstrating all supported IAL features
|
|
1613
|
-
|
|
1614
|
-
- Added script (tests/generate_ial_demo.sh) to automatically
|
|
1615
|
-
|
|
1616
|
-
generate an HTML file with interactive attribute
|
|
1617
|
-
inspection tooltips
|
|
1618
|
-
|
|
1619
|
-
### Fixed
|
|
1620
|
-
|
|
1621
|
-
- IALs (Inline Attribute Lists) are now correctly applied to
|
|
1622
|
-
|
|
1623
|
-
the intended link element when multiple links in a
|
|
1624
|
-
document share the same URL
|
|
1625
|
-
|
|
1626
|
-
- IALs are now correctly applied to the intended element
|
|
1627
|
-
|
|
1628
|
-
when multiple elements share the same URL or content,
|
|
1629
|
-
using separate element counters for each inline element
|
|
1630
|
-
type
|
|
1631
|
-
|
|
1632
|
-
- Block-level HTML elements now correctly include a space
|
|
1633
|
-
|
|
1634
|
-
between the tag name and attributes when IAL attributes
|
|
1635
|
-
are injected
|
|
1636
|
-
|
|
1637
|
-
## [0.1.40] - 2025-12-23
|
|
1638
|
-
|
|
1639
|
-
### Changed
|
|
1640
|
-
|
|
1641
|
-
- Table captions now default to below the table instead of
|
|
1642
|
-
|
|
1643
|
-
above
|
|
1644
|
-
|
|
1645
|
-
- Tfoot row detection in AST now separates the logic for
|
|
1646
|
-
|
|
1647
|
-
marking the === row itself versus rows that come after it,
|
|
1648
|
-
improving accuracy of tfoot section identification.
|
|
1649
|
-
|
|
1650
|
-
- Disallow using --combine and --mmd-merge together to avoid
|
|
1651
|
-
|
|
1652
|
-
ambiguous multi-file behavior
|
|
1653
|
-
|
|
1654
|
-
- Update CSV include and inline table handling so both share
|
|
1655
|
-
|
|
1656
|
-
the same CSV-to-table conversion and alignment behavior
|
|
1657
|
-
|
|
1658
|
-
### New
|
|
1659
|
-
|
|
1660
|
-
- Added --captions option to control caption position (above
|
|
1661
|
-
|
|
1662
|
-
or below)
|
|
1663
|
-
|
|
1664
|
-
- Added default CSS styling for figcaption elements in
|
|
1665
|
-
|
|
1666
|
-
standalone output (centered, bold, 0.8em)
|
|
1667
|
-
|
|
1668
|
-
- Added CSS styling for table figures to align captions with
|
|
1669
|
-
|
|
1670
|
-
tables (fit-content width)
|
|
1671
|
-
|
|
1672
|
-
- Support for tables that start with alignment rows
|
|
1673
|
-
|
|
1674
|
-
(separator rows) without header rows. Column alignment
|
|
1675
|
-
specified in the separator row is automatically applied to
|
|
1676
|
-
all data columns.
|
|
1677
|
-
|
|
1678
|
-
- Support for individual cell alignment in tables using
|
|
1679
|
-
|
|
1680
|
-
colons, similar to Jekyll Spaceship. Cells can be aligned
|
|
1681
|
-
independently with :Text (left), Text: (right), or :Text:
|
|
1682
|
-
(center). Colons are removed from output and alignment is
|
|
1683
|
-
applied via CSS text-align styles.
|
|
1684
|
-
|
|
1685
|
-
- Support per-cell alignment markers inside table cells
|
|
1686
|
-
- Support multiline table cells using trailing backslash
|
|
1687
|
-
|
|
1688
|
-
markers
|
|
1689
|
-
|
|
1690
|
-
- Support header and footer colspans based on empty cells
|
|
1691
|
-
- Add --combine CLI mode to concatenate Markdown files with
|
|
1692
|
-
|
|
1693
|
-
include expansion and GitBook-style SUMMARY.md index
|
|
1694
|
-
support.
|
|
1695
|
-
|
|
1696
|
-
- Add --mmd-merge CLI mode to merge MultiMarkdown index
|
|
1697
|
-
|
|
1698
|
-
files into a single Markdown stream
|
|
1699
|
-
|
|
1700
|
-
- Support indentation-based header level shifting when
|
|
1701
|
-
|
|
1702
|
-
merging mmd_merge index entries
|
|
1703
|
-
|
|
1704
|
-
- Support inline CSV/TSV tables using ```table fenced blocks
|
|
1705
|
-
|
|
1706
|
-
with automatic CSV/TSV delimiter detection
|
|
1707
|
-
|
|
1708
|
-
- Support <!--TABLE--> markers that convert following
|
|
1709
|
-
|
|
1710
|
-
CSV/TSV lines into Markdown tables until a blank line
|
|
1711
|
-
|
|
1712
|
-
- Add --aria command-line option to enable ARIA labels and
|
|
1713
|
-
|
|
1714
|
-
accessibility attributes in HTML output
|
|
1715
|
-
|
|
1716
|
-
- Add aria-label="Table of contents" to TOC navigation
|
|
1717
|
-
|
|
1718
|
-
elements when --aria is enabled
|
|
1719
|
-
|
|
1720
|
-
Add role="figure" to figure elements when --aria is enabled
|
|
1721
|
-
|
|
1722
|
-
- Add role="table" to table elements when --aria is enabled
|
|
1723
|
-
- Generate id attributes for figcaption elements in table
|
|
1724
|
-
|
|
1725
|
-
figures when --aria is enabled
|
|
1726
|
-
|
|
1727
|
-
- Add aria-describedby attributes linking tables to their
|
|
1728
|
-
|
|
1729
|
-
captions when --aria is enabled
|
|
1730
|
-
|
|
1731
|
-
### Improved
|
|
1732
|
-
|
|
1733
|
-
- Removed unused variables to eliminate compiler warnings
|
|
1734
|
-
- Empty thead sections from headerless tables are now
|
|
1735
|
-
|
|
1736
|
-
removed from HTML output instead of rendering empty header
|
|
1737
|
-
cells.
|
|
1738
|
-
|
|
1739
|
-
- Table row mapping now better handles the relationship
|
|
1740
|
-
|
|
1741
|
-
between HTML row indices and AST row indices, accounting
|
|
1742
|
-
for separator rows that are removed from HTML output.
|
|
1743
|
-
|
|
1744
|
-
- Added safeguards to prevent rows that should be in tbody
|
|
1745
|
-
|
|
1746
|
-
from being skipped, including protection for the first few
|
|
1747
|
-
rows (header and first two data rows) when a === separator
|
|
1748
|
-
is present.
|
|
1749
|
-
|
|
1750
|
-
- Make table captions positionable above or below tables
|
|
1751
|
-
- Center and style figcaptions in standalone HTML output
|
|
1752
|
-
- Support optional alignment keyword rows (left, right,
|
|
1753
|
-
|
|
1754
|
-
center, auto) and headless tables for both included CSV
|
|
1755
|
-
files and inline CSV/TSV data
|
|
1756
|
-
|
|
1757
|
-
- Preserve ```table fences without commas or tabs by leaving
|
|
1758
|
-
|
|
1759
|
-
them as code blocks so users can show literal CSV/TSV
|
|
1760
|
-
without conversion
|
|
1761
|
-
|
|
1762
|
-
### Fixed
|
|
1763
|
-
|
|
1764
|
-
- Removed unused variable 'row_idx' from advanced_tables.c
|
|
1765
|
-
|
|
1766
|
-
to eliminate compiler warnings.
|
|
1767
|
-
|
|
1768
|
-
- Rows before the === separator are now correctly placed in
|
|
1769
|
-
|
|
1770
|
-
tbody instead of being incorrectly placed in tfoot or
|
|
1771
|
-
skipped entirely. The fix includes HTML position
|
|
1772
|
-
verification to ensure rows that appear before the === row
|
|
1773
|
-
in the rendered HTML are always in tbody, regardless of
|
|
1774
|
-
AST marking.
|
|
1775
|
-
|
|
1776
|
-
- Prevent === separator rows from appearing as table content
|
|
1777
|
-
|
|
1778
|
-
Ensure footer rows render in tfoot without losing body rows
|
|
1779
|
-
|
|
1780
|
-
- Preserve legitimate empty cells such as missing Q4 values
|
|
1781
|
-
- Apply ^^ rowspans correctly for all table sections
|
|
1782
|
-
- Apply ^^ rowspans correctly across table sections without
|
|
1783
|
-
|
|
1784
|
-
leaking into unrelated rows
|
|
1785
|
-
|
|
1786
|
-
- Support footer colspans so footer cells can span multiple
|
|
1787
|
-
|
|
1788
|
-
columns like headers and body rows
|
|
1789
|
-
|
|
1790
|
-
- Preserve legitimate empty table cells that are not part of
|
|
1791
|
-
|
|
1792
|
-
colspans or rowspans
|
|
1793
|
-
|
|
1794
|
-
- KaTeX auto-render now properly configures delimiters and
|
|
1795
|
-
|
|
1796
|
-
manually renders math spans to prevent plain text from
|
|
1797
|
-
appearing after rendered equations
|
|
1798
|
-
|
|
1799
|
-
- Relaxed table header conversion now only runs when
|
|
1800
|
-
|
|
1801
|
-
relaxed_tables option is enabled
|
|
1802
|
-
|
|
1803
|
-
- HTML document wrapping now strips existing </body></html>
|
|
1804
|
-
|
|
1805
|
-
tags to prevent duplicates when content already contains
|
|
1806
|
-
them
|
|
1807
|
-
|
|
1808
|
-
- KaTeX auto-render now properly configures delimiters and
|
|
1809
|
-
|
|
1810
|
-
manually renders math spans to prevent plain text from
|
|
1811
|
-
appearing after rendered equations
|
|
1812
|
-
|
|
1813
|
-
- Relaxed table header conversion now only runs when
|
|
1814
|
-
|
|
1815
|
-
relaxed_tables option is enabled
|
|
1816
|
-
|
|
1817
|
-
- HTML document wrapping now strips existing </body></html>
|
|
1818
|
-
|
|
1819
|
-
tags to prevent duplicates when content already contains
|
|
1820
|
-
them
|
|
1821
|
-
|
|
1822
|
-
- Table captions appearing after their tables now correctly
|
|
1823
|
-
|
|
1824
|
-
link via aria-describedby attributes
|
|
1825
|
-
|
|
1826
|
-
## [0.1.39] - 2025-12-19
|
|
1827
|
-
|
|
1828
|
-
### Changed
|
|
1829
|
-
|
|
1830
|
-
- Table post-processing now tracks all cells (including
|
|
1831
|
-
|
|
1832
|
-
removed ones) to correctly map HTML column positions to
|
|
1833
|
-
original AST column indices, ensuring attributes are
|
|
1834
|
-
applied to the correct cells.
|
|
1835
|
-
|
|
1836
|
-
- Added content-based detection for ^^ marker cells during
|
|
1837
|
-
|
|
1838
|
-
HTML post-processing to ensure they are properly removed
|
|
1839
|
-
even when attribute matching fails.
|
|
1840
|
-
|
|
1841
|
-
### New
|
|
1842
|
-
|
|
1843
|
-
- Added content verification to prevent false matches when
|
|
1844
|
-
|
|
1845
|
-
cells are covered by rowspans
|
|
1846
|
-
|
|
1847
|
-
- Added tracking of previous cell's colspan to detect and
|
|
1848
|
-
|
|
1849
|
-
remove empty cells after colspan
|
|
1850
|
-
|
|
1851
|
-
- Added detection and removal of === marker rows in tfoot
|
|
1852
|
-
|
|
1853
|
-
sections
|
|
1854
|
-
|
|
1855
|
-
### Improved
|
|
1856
|
-
|
|
1857
|
-
- Rowspan cell tracking now uses a per-column active cell
|
|
1858
|
-
|
|
1859
|
-
approach (inspired by Jekyll Spaceship) for more reliable
|
|
1860
|
-
rowspan calculation across complex table structures.
|
|
1861
|
-
|
|
1862
|
-
- Cell matching now uses position-based fallback to previous
|
|
1863
|
-
|
|
1864
|
-
row when current row match fails
|
|
1865
|
-
|
|
1866
|
-
- Row mapping accounts for rowspan coverage to correctly
|
|
1867
|
-
|
|
1868
|
-
identify visible columns
|
|
1869
|
-
|
|
1870
|
-
- Tfoot row detection now uses AST row indices instead of
|
|
1871
|
-
|
|
1872
|
-
HTML row indices for accuracy
|
|
1873
|
-
|
|
1874
|
-
### Fixed
|
|
1875
|
-
|
|
1876
|
-
- Table rowspan rendering now correctly handles rows where
|
|
1877
|
-
|
|
1878
|
-
most cells use ^^ markers. Previously, cells like "Beta"
|
|
1879
|
-
and "Gamma" in rows with multiple ^^ cells would be
|
|
1880
|
-
missing or appear in the wrong position. The fix includes
|
|
1881
|
-
proper mapping between HTML row indices and AST row
|
|
1882
|
-
indices, accounting for separator rows that are removed
|
|
1883
|
-
from HTML output.
|
|
1884
|
-
|
|
1885
|
-
- Missing cells after colspan (e.g., "92.00" cell was
|
|
1886
|
-
|
|
1887
|
-
missing when "Absent" had colspan="2")
|
|
1888
|
-
|
|
1889
|
-
- Rowspan not applying correctly when HTML row mapping was
|
|
1890
|
-
|
|
1891
|
-
off by one
|
|
1892
|
-
|
|
1893
|
-
- Footer alignment rows (=== markers) appearing in output
|
|
1894
|
-
|
|
1895
|
-
instead of being removed
|
|
1896
|
-
|
|
1897
|
-
- Empty cells after colspan not being removed from rendered
|
|
1898
|
-
|
|
1899
|
-
HTML
|
|
1900
|
-
|
|
1901
|
-
## [0.1.38] - 2025-12-18
|
|
1902
|
-
|
|
1903
|
-
### Changed
|
|
1904
|
-
|
|
1905
|
-
- In standalone mode, insert script tags just before </body>
|
|
1906
|
-
- In snippet mode, append script tags at the end of the HTML
|
|
1907
|
-
|
|
1908
|
-
fragment
|
|
1909
|
-
|
|
1910
|
-
- When --embed-css is used with --css, replace the
|
|
1911
|
-
|
|
1912
|
-
stylesheet <link> tag with an inline <style> block
|
|
1913
|
-
containing the CSS file contents
|
|
1914
|
-
|
|
1915
|
-
### New
|
|
1916
|
-
|
|
1917
|
-
- Support Pandoc-style "Table: Caption" syntax and
|
|
1918
|
-
- Add --script CLI flag to inject scripts into HTML output
|
|
1919
|
-
- Support shorthands for common JS libraries (mermaid,
|
|
1920
|
-
|
|
1921
|
-
mathjax, katex, highlightjs, prism, htmx, alpine)
|
|
1922
|
-
|
|
1923
|
-
- Add --embed-css option to inline CSS files into the
|
|
1924
|
-
|
|
1925
|
-
standalone document head
|
|
1926
|
-
|
|
1927
|
-
### Improved
|
|
1928
|
-
|
|
1929
|
-
- Compress extraneous newlines between HTML elements
|
|
1930
|
-
- Remove unused apex_remote_trim helper to eliminate
|
|
1931
|
-
|
|
1932
|
-
compiler warnings
|
|
1933
|
-
|
|
1934
|
-
### Fixed
|
|
1935
|
-
|
|
1936
|
-
- Prevent caption paragraphs from being reused across
|
|
1937
|
-
- Skip URL encoding for footnote definitions ([^id]: ...) so
|
|
1938
|
-
|
|
1939
|
-
footnote
|
|
1940
|
-
|
|
1941
|
-
## [0.1.37] - 2025-12-17
|
|
1942
|
-
|
|
1943
|
-
### Changed
|
|
1944
|
-
|
|
1945
|
-
- Image attributes are mode-dependent: work in Unified and
|
|
1946
|
-
|
|
1947
|
-
MultiMarkdown modes only
|
|
1948
|
-
|
|
1949
|
-
- URL encoding is mode-dependent: works in Unified,
|
|
1950
|
-
|
|
1951
|
-
MultiMarkdown, and Kramdown modes
|
|
1952
|
-
|
|
1953
|
-
- Improved caption detection to check all table rows for
|
|
1954
|
-
|
|
1955
|
-
caption markers, not just the last row, to handle cases
|
|
1956
|
-
where captions come after tfoot rows.
|
|
1957
|
-
|
|
1958
|
-
### New
|
|
1959
|
-
|
|
1960
|
-
- Support for MultiMarkdown-style image attributes in
|
|
1961
|
-
|
|
1962
|
-
unified and MultiMarkdown modes
|
|
1963
|
-
|
|
1964
|
-
Inline image attributes: 
|
|
1965
|
-
|
|
1966
|
-
- Reference-style image attributes: ![][ref] with [ref]: url
|
|
1967
|
-
|
|
1968
|
-
width=300
|
|
1969
|
-
|
|
1970
|
-
- Automatic URL encoding for links with spaces in unified,
|
|
1971
|
-
|
|
1972
|
-
MultiMarkdown, and Kramdown modes
|
|
1973
|
-
|
|
1974
|
-
- URLs with spaces are automatically percent-encoded (e.g.,
|
|
1975
|
-
|
|
1976
|
-
"path with spaces.png" becomes "path%20with%20spaces.png")
|
|
1977
|
-
|
|
1978
|
-
- Added support for MultiMarkdown-style image attributes in
|
|
1979
|
-
|
|
1980
|
-
reference-style images. Reference definitions can now
|
|
1981
|
-
include attributes: [img1]: image.png width=300
|
|
1982
|
-
style="float:left"
|
|
1983
|
-
|
|
1984
|
-
Added support for inline image attributes: 
|
|
1985
|
-
|
|
1986
|
-
- Added automatic URL encoding for all link URLs (images and
|
|
1987
|
-
|
|
1988
|
-
regular links). URLs with spaces are automatically
|
|
1989
|
-
percent-encoded (e.g., "path to/image.png" becomes
|
|
1990
|
-
"path%20to/image.png")
|
|
1991
|
-
|
|
1992
|
-
- Added detection and removal of table alignment separator
|
|
1993
|
-
|
|
1994
|
-
rows that were incorrectly being rendered as table rows.
|
|
1995
|
-
|
|
1996
|
-
- Added test cases for table captions appearing before and
|
|
1997
|
-
|
|
1998
|
-
after tables.
|
|
1999
|
-
|
|
2000
|
-
Added support for tfoot sections in tables using `===` row markers. Rows containing `===` markers are now placed in `<tfoot>` sections, and all subsequent rows after the first `===` row are also placed in tfoot.
|
|
2001
|
-
|
|
2002
|
-
- Added comprehensive table feature tests that validate
|
|
2003
|
-
|
|
2004
|
-
rowspan,
|
|
2005
|
-
|
|
2006
|
-
### Improved
|
|
2007
|
-
|
|
2008
|
-
- Improved attribute injection in HTML renderer to correctly
|
|
2009
|
-
|
|
2010
|
-
place attributes before closing > or /> in img and link
|
|
2011
|
-
tags
|
|
2012
|
-
|
|
2013
|
-
- Enhanced URL parsing to distinguish between spaces within
|
|
2014
|
-
|
|
2015
|
-
URLs vs spaces before attributes using forward-scanning
|
|
2016
|
-
pattern detection
|
|
2017
|
-
|
|
2018
|
-
- Self-closing img tags now consistently use " />" (space
|
|
2019
|
-
|
|
2020
|
-
before slash) when attributes are injected, matching the
|
|
2021
|
-
format used by cmark-gfm for img tags without injected
|
|
2022
|
-
attributes
|
|
2023
|
-
|
|
2024
|
-
- Rowspan and colspan attribute handling now properly
|
|
2025
|
-
|
|
2026
|
-
appends to existing attributes instead of replacing them,
|
|
2027
|
-
allowing multiple attributes to coexist on table cells.
|
|
2028
|
-
|
|
2029
|
-
- Alignment rows (rows containing only '' characters) are
|
|
2030
|
-
|
|
2031
|
-
now detected and marked for removal, preventing them from
|
|
2032
|
-
appearing in HTML output.
|
|
2033
|
-
|
|
2034
|
-
### Fixed
|
|
2035
|
-
|
|
2036
|
-
- Fixed bug where image prefix "![" was incorrectly removed
|
|
2037
|
-
|
|
2038
|
-
during preprocessing of expanded reference-style images
|
|
2039
|
-
|
|
2040
|
-
- URL encoding now only encodes unsafe characters (space,
|
|
2041
|
-
|
|
2042
|
-
control chars, non-ASCII). Valid URL characters like /, :,
|
|
2043
|
-
?, #, ~, etc. are preserved and no longer incorrectly
|
|
2044
|
-
encoded.
|
|
2045
|
-
|
|
2046
|
-
- Titles in links and images are now correctly detected and
|
|
2047
|
-
|
|
2048
|
-
excluded from URL encoding. Supports quoted titles
|
|
2049
|
-
("title", 'title') and parentheses titles ((title)). URLs
|
|
2050
|
-
with parentheses (like Wikipedia links) are correctly
|
|
2051
|
-
distinguished from titles based on whether a space
|
|
2052
|
-
precedes the opening parenthesis.
|
|
2053
|
-
|
|
2054
|
-
- Reference-style images with attributes now render
|
|
2055
|
-
|
|
2056
|
-
correctly. Reference definitions with image attributes are
|
|
2057
|
-
removed from output, while those without attributes are
|
|
2058
|
-
preserved (with URL encoding) so cmark can resolve the
|
|
2059
|
-
references.
|
|
2060
|
-
|
|
2061
|
-
- Spacing between attributes in HTML output. Attributes
|
|
2062
|
-
|
|
2063
|
-
injected into img and link tags now have proper spacing,
|
|
2064
|
-
preventing malformed HTML like alt="text"width="100".
|
|
2065
|
-
|
|
2066
|
-
- Table attributes now render correctly with proper spacing.
|
|
2067
|
-
|
|
2068
|
-
Fixed missing space in table tag when id attribute
|
|
2069
|
-
immediately follows (e.g., <tableid="..." now renders as
|
|
2070
|
-
<table id="...").
|
|
2071
|
-
|
|
2072
|
-
- Rowspan and colspan injection now works correctly in all
|
|
2073
|
-
|
|
2074
|
-
cases. Fixed bug where table tracking variables weren't
|
|
2075
|
-
set when fixing missing space in table tag (e.g.,
|
|
2076
|
-
<tableid="..."), causing row and cell processing to be
|
|
2077
|
-
skipped. Table tracking is now properly initialized even
|
|
2078
|
-
when correcting tag spacing.
|
|
2079
|
-
|
|
2080
|
-
- Captions after tables were not being detected when tables
|
|
2081
|
-
|
|
2082
|
-
had IAL attributes, as IAL processing replaced the caption
|
|
2083
|
-
data stored in user_data. Added fallback logic to check
|
|
2084
|
-
for caption paragraphs directly in the AST when user_data
|
|
2085
|
-
lookup fails.
|
|
2086
|
-
|
|
2087
|
-
- Rows containing only `===` markers are now properly
|
|
2088
|
-
|
|
2089
|
-
skipped entirely rather than rendering as empty cells in
|
|
2090
|
-
tfoot sections.
|
|
2091
|
-
|
|
2092
|
-
- Caption paragraphs before tables are now properly removed,
|
|
2093
|
-
|
|
2094
|
-
## [0.1.36] - 2025-12-16
|
|
2095
|
-
|
|
2096
|
-
### Fixed
|
|
2097
|
-
|
|
2098
|
-
- Resolve CMake error when building framework where
|
|
2099
|
-
|
|
2100
|
-
file(GLOB) returns multiple dylib files, causing
|
|
2101
|
-
semicolon-concatenated paths in file(COPY) command. Now
|
|
2102
|
-
extracts first file from glob result before copying.
|
|
2103
|
-
|
|
2104
|
-
- Homebrew installation now correctly links to system
|
|
2105
|
-
|
|
2106
|
-
libyaml instead of hardcoded CI path
|
|
2107
|
-
|
|
2108
|
-
## [0.1.35] - 2025-12-16
|
|
2109
|
-
|
|
2110
|
-
### Changed
|
|
2111
|
-
|
|
2112
|
-
- Update Homebrew formula to install from a precompiled
|
|
2113
|
-
|
|
2114
|
-
macOS universal binary instead of building from source
|
|
2115
|
-
with cmake.
|
|
2116
|
-
|
|
2117
|
-
- Allow --install-plugin to accept a Git URL or GitHub
|
|
2118
|
-
|
|
2119
|
-
shorthand (user/repo) in addition to directory IDs when
|
|
2120
|
-
installing plugins.
|
|
2121
|
-
|
|
2122
|
-
### Improved
|
|
2123
|
-
|
|
2124
|
-
- Simplify Homebrew installation so users no longer need
|
|
2125
|
-
|
|
2126
|
-
cmake or Xcode build tools to install apex.
|
|
2127
|
-
|
|
2128
|
-
- Add an interactive security confirmation when installing
|
|
2129
|
-
|
|
2130
|
-
plugins from a direct Git URL or GitHub repo name,
|
|
2131
|
-
reminding users that plugins execute unverified code.
|
|
2132
|
-
|
|
2133
|
-
## [0.1.34] - 2025-12-16
|
|
2134
|
-
|
|
2135
|
-
## [0.1.33] - 2025-12-16
|
|
2136
|
-
|
|
2137
|
-
## [0.1.32] - 2025-12-16
|
|
2138
|
-
|
|
2139
|
-
## [0.1.31] - 2025-12-16
|
|
2140
|
-
|
|
2141
|
-
## [0.1.30] - 2025-12-16
|
|
2142
|
-
|
|
2143
|
-
### Changed
|
|
2144
|
-
|
|
2145
|
-
- Make --list-plugins show installed plugins before remote
|
|
2146
|
-
|
|
2147
|
-
ones.
|
|
2148
|
-
|
|
2149
|
-
- Prevent remote plugins that are already installed from
|
|
2150
|
-
|
|
2151
|
-
being listed under Available Plugins.
|
|
2152
|
-
|
|
2153
|
-
- Build system now detects libyaml via multiple methods
|
|
2154
|
-
|
|
2155
|
-
(yaml-0.1, yaml, libyaml) for better cross-platform
|
|
2156
|
-
support.
|
|
2157
|
-
|
|
2158
|
-
- Homebrew formula now includes libyaml as a dependency to
|
|
2159
|
-
|
|
2160
|
-
ensure full YAML support.
|
|
2161
|
-
|
|
2162
|
-
- Suppressed unused-parameter warnings from vendored
|
|
2163
|
-
|
|
2164
|
-
cmark-gfm extensions to reduce build noise.
|
|
2165
|
-
|
|
2166
|
-
### New
|
|
2167
|
-
|
|
2168
|
-
Add --uninstall-plugin CLI flag to remove installed plugins.
|
|
2169
|
-
|
|
2170
|
-
- Run optional post_install command from plugin.yml after
|
|
2171
|
-
|
|
2172
|
-
cloning a plugin.
|
|
2173
|
-
|
|
2174
|
-
- Full YAML parsing support using libyaml for arrays and
|
|
2175
|
-
|
|
2176
|
-
nested structures in metadata and plugin manifests.
|
|
2177
|
-
|
|
2178
|
-
- Plugin bundle support allowing multiple plugins to be
|
|
2179
|
-
|
|
2180
|
-
defined in a single plugin.yml manifest.
|
|
2181
|
-
|
|
2182
|
-
- Expose APEX_FILE_PATH to external plugins so scripts can
|
|
2183
|
-
|
|
2184
|
-
see the original input path or base directory when
|
|
2185
|
-
processing.
|
|
2186
|
-
|
|
2187
|
-
### Improved
|
|
2188
|
-
|
|
2189
|
-
- Split() metadata transform now accepts regular expressions
|
|
2190
|
-
|
|
2191
|
-
as delimiters (for example split(,\s*)).
|
|
2192
|
-
|
|
2193
|
-
- YAML arrays are automatically normalized to
|
|
2194
|
-
|
|
2195
|
-
comma-separated strings for backward compatibility with
|
|
2196
|
-
existing metadata transforms.
|
|
2197
|
-
|
|
2198
|
-
- External plugin environment now includes the source file
|
|
2199
|
-
|
|
2200
|
-
path (when available) alongside APEX_PLUGIN_DIR and
|
|
2201
|
-
APEX_SUPPORT_DIR.
|
|
2202
|
-
|
|
2203
|
-
### Fixed
|
|
2204
|
-
|
|
2205
|
-
- Tighten mutual-exclusion checks between install and
|
|
2206
|
-
|
|
2207
|
-
uninstall plugin flags.
|
|
2208
|
-
|
|
2209
|
-
- Ensure CMake policy version is compatible with vendored
|
|
2210
|
-
|
|
2211
|
-
cmark-gfm on newer CMake releases.
|
|
2212
|
-
|
|
2213
|
-
- Install the Apex framework with its public apex.h header
|
|
2214
|
-
|
|
2215
|
-
correctly embedded in Apex.framework/Headers for Xcode
|
|
2216
|
-
use.
|
|
2217
|
-
|
|
2218
|
-
- Bundle libcmark-gfm and libcmark-gfm-extensions dylibs
|
|
2219
|
-
|
|
2220
|
-
into Apex.framework so dependent apps no longer hit
|
|
2221
|
-
missing library errors at runtime.
|
|
2222
|
-
|
|
2223
|
-
## [0.1.29] - 2025-12-15
|
|
2224
|
-
|
|
2225
|
-
### Changed
|
|
2226
|
-
|
|
2227
|
-
- Make --list-plugins show installed plugins before remote
|
|
2228
|
-
|
|
2229
|
-
ones.
|
|
2230
|
-
|
|
2231
|
-
- Prevent remote plugins that are already installed from
|
|
2232
|
-
|
|
2233
|
-
being listed under Available Plugins.
|
|
2234
|
-
|
|
2235
|
-
### New
|
|
2236
|
-
|
|
2237
|
-
- Initial planning for a remote plugin directory and install
|
|
2238
|
-
|
|
2239
|
-
features
|
|
2240
|
-
|
|
2241
|
-
Add --uninstall-plugin CLI flag to remove installed plugins.
|
|
2242
|
-
|
|
2243
|
-
### Fixed
|
|
2244
|
-
|
|
2245
|
-
- Superscript/subscript no longer process content inside
|
|
2246
|
-
|
|
2247
|
-
Liquid {% %} tags.
|
|
2248
|
-
|
|
2249
|
-
- Autolink detection skips Liquid {% %} tags so emails and
|
|
2250
|
-
|
|
2251
|
-
URLs are not rewritten there.
|
|
2252
|
-
|
|
2253
|
-
- Fix directory url for `--list-plugins`
|
|
2254
|
-
|
|
2255
|
-
## [0.1.28] - 2025-12-15
|
|
2256
|
-
|
|
2257
|
-
### Changed
|
|
2258
|
-
|
|
2259
|
-
- Default wikilink URLs now replace spaces with dashes (e.g.
|
|
2260
|
-
|
|
2261
|
-
[[Home Page]] -> href="Home-Page").
|
|
2262
|
-
|
|
2263
|
-
### New
|
|
2264
|
-
|
|
2265
|
-
- Add --wikilink-space and --wikilink-extension flags to
|
|
2266
|
-
|
|
2267
|
-
control how [[WikiLink]] hrefs are generated.
|
|
2268
|
-
|
|
2269
|
-
- Allow wikilink space and extension configuration via
|
|
2270
|
-
|
|
2271
|
-
metadata keys wikilink-space and wikilink-extension.
|
|
2272
|
-
|
|
2273
|
-
- Support Kramdown-style {:toc ...} markers mapped to Apex
|
|
2274
|
-
|
|
2275
|
-
TOC generation.
|
|
2276
|
-
|
|
2277
|
-
- Add tests for `{:toc}` syntaxes
|
|
2278
|
-
- MMD includes support full glob patterns like {{*.md}} and
|
|
2279
|
-
|
|
2280
|
-
{{c?de.py}}.
|
|
2281
|
-
|
|
2282
|
-
- Add plugin discovery from .apex/plugins and
|
|
2283
|
-
|
|
2284
|
-
~/.config/apex/plugins.
|
|
2285
|
-
|
|
2286
|
-
- Allow external handler plugins in any language via JSON
|
|
2287
|
-
|
|
2288
|
-
stdin/stdout.
|
|
2289
|
-
|
|
2290
|
-
- Support declarative regex plugins for pre_parse and
|
|
2291
|
-
|
|
2292
|
-
post_render phases.
|
|
2293
|
-
|
|
2294
|
-
- Add `--no-plugins` CLI flag to disable all plugins for a
|
|
2295
|
-
|
|
2296
|
-
run.
|
|
2297
|
-
|
|
2298
|
-
- Support `plugins: true/false` metadata to enable or
|
|
2299
|
-
|
|
2300
|
-
disable plugins.
|
|
2301
|
-
|
|
2302
|
-
- Initial planning for a remote plugin directory and install
|
|
2303
|
-
|
|
2304
|
-
features
|
|
2305
|
-
|
|
2306
|
-
### Improved
|
|
2307
|
-
|
|
2308
|
-
- Exclude headings with .no_toc class from generated tables
|
|
2309
|
-
|
|
2310
|
-
of contents for finer-grained TOC control.
|
|
2311
|
-
|
|
2312
|
-
- MMD-style {{file.*}} now resolves preferred extensions
|
|
2313
|
-
|
|
2314
|
-
before globbing.
|
|
2315
|
-
|
|
2316
|
-
- Transclusion respects brace-style patterns such as
|
|
2317
|
-
|
|
2318
|
-
{{{intro,part1}.md}} where supported.
|
|
2319
|
-
|
|
2320
|
-
- Provide `APEX_PLUGIN_DIR` and `APEX_SUPPORT_DIR` for
|
|
2321
|
-
|
|
2322
|
-
plugin code and data.
|
|
2323
|
-
|
|
2324
|
-
- Add profiling (APEX_PROFILE_PLUGINS=1) for plugins
|
|
2325
|
-
|
|
2326
|
-
## [0.1.27] - 2025-12-15
|
|
2327
|
-
|
|
2328
|
-
### Changed
|
|
2329
|
-
|
|
2330
|
-
- Default wikilink URLs now replace spaces with dashes (e.g.
|
|
2331
|
-
|
|
2332
|
-
[[Home Page]] -> href="Home-Page").
|
|
2333
|
-
|
|
2334
|
-
### New
|
|
2335
|
-
|
|
2336
|
-
- Add --wikilink-space and --wikilink-extension flags to
|
|
2337
|
-
|
|
2338
|
-
control how [[WikiLink]] hrefs are generated.
|
|
2339
|
-
|
|
2340
|
-
- Allow wikilink space and extension configuration via
|
|
2341
|
-
|
|
2342
|
-
metadata keys wikilink-space and wikilink-extension.
|
|
2343
|
-
|
|
2344
|
-
- Support Kramdown-style {:toc ...} markers mapped to Apex
|
|
2345
|
-
|
|
2346
|
-
TOC generation.
|
|
2347
|
-
|
|
2348
|
-
- Add tests for `{:toc}` syntaxes
|
|
2349
|
-
- MMD includes support full glob patterns like {{*.md}} and
|
|
2350
|
-
|
|
2351
|
-
{{c?de.py}}.
|
|
2352
|
-
|
|
2353
|
-
- Add plugin discovery from .apex/plugins and
|
|
2354
|
-
|
|
2355
|
-
~/.config/apex/plugins.
|
|
2356
|
-
|
|
2357
|
-
- Allow external handler plugins in any language via JSON
|
|
2358
|
-
|
|
2359
|
-
stdin/stdout.
|
|
2360
|
-
|
|
2361
|
-
- Support declarative regex plugins for pre_parse and
|
|
2362
|
-
|
|
2363
|
-
post_render phases.
|
|
2364
|
-
|
|
2365
|
-
- Add `--no-plugins` CLI flag to disable all plugins for a
|
|
2366
|
-
|
|
2367
|
-
run.
|
|
2368
|
-
|
|
2369
|
-
- Support `plugins: true/false` metadata to enable or
|
|
2370
|
-
|
|
2371
|
-
disable plugins.
|
|
2372
|
-
|
|
2373
|
-
- Initial planning for a remote plugin directory and install
|
|
2374
|
-
|
|
2375
|
-
features
|
|
2376
|
-
|
|
2377
|
-
### Improved
|
|
2378
|
-
|
|
2379
|
-
- Exclude headings with .no_toc class from generated tables
|
|
2380
|
-
|
|
2381
|
-
of contents for finer-grained TOC control.
|
|
2382
|
-
|
|
2383
|
-
- MMD-style {{file.*}} now resolves preferred extensions
|
|
2384
|
-
|
|
2385
|
-
before globbing.
|
|
2386
|
-
|
|
2387
|
-
- Transclusion respects brace-style patterns such as
|
|
2388
|
-
|
|
2389
|
-
{{{intro,part1}.md}} where supported.
|
|
2390
|
-
|
|
2391
|
-
- Provide `APEX_PLUGIN_DIR` and `APEX_SUPPORT_DIR` for
|
|
2392
|
-
|
|
2393
|
-
plugin code and data.
|
|
2394
|
-
|
|
2395
|
-
- Add profiling (APEX_PROFILE_PLUGINS=1) for plugins
|
|
2396
|
-
|
|
2397
|
-
## [0.1.26] - 2025-12-14
|
|
2398
|
-
|
|
2399
|
-
### Changed
|
|
2400
|
-
|
|
2401
|
-
- Change `--enable-includes` to `--[no-]includes`, allowing
|
|
2402
|
-
|
|
2403
|
-
`--no-includes` to disable includes in unified mode and
|
|
2404
|
-
shortening the flag
|
|
2405
|
-
|
|
2406
|
-
- Integrate metadata-to-options application into CLI after
|
|
2407
|
-
|
|
2408
|
-
metadata merging
|
|
2409
|
-
|
|
2410
|
-
- Preserve bibliography files array when metadata mode
|
|
2411
|
-
|
|
2412
|
-
resets options structure
|
|
2413
|
-
|
|
2414
|
-
### New
|
|
2415
|
-
|
|
2416
|
-
- Add apex_apply_metadata_to_options() function to apply
|
|
2417
|
-
|
|
2418
|
-
metadata values to apex_options structure
|
|
2419
|
-
|
|
2420
|
-
- Support controlling boolean flags via metadata (indices,
|
|
2421
|
-
|
|
2422
|
-
wikilinks, includes, relaxed-tables, alpha-lists,
|
|
2423
|
-
mixed-lists, sup-sub, autolink, transforms, unsafe,
|
|
2424
|
-
tables, footnotes, smart, math, ids, header-anchors,
|
|
2425
|
-
embed-images, link-citations, show-tooltips,
|
|
2426
|
-
suppress-bibliography, suppress-index,
|
|
2427
|
-
group-index-by-letter, obfuscate-emails, pretty,
|
|
2428
|
-
standalone, hardbreaks)
|
|
2429
|
-
|
|
2430
|
-
- Support controlling string options via metadata
|
|
2431
|
-
|
|
2432
|
-
(bibliography, csl, title, style/css, id-format, base-dir,
|
|
2433
|
-
mode)
|
|
2434
|
-
|
|
2435
|
-
- Boolean metadata values accept true/false, yes/no, or 1/0
|
|
2436
|
-
|
|
2437
|
-
(case-insensitive, downcased)
|
|
2438
|
-
|
|
2439
|
-
- String metadata values used directly for options that take
|
|
2440
|
-
|
|
2441
|
-
arguments
|
|
2442
|
-
|
|
2443
|
-
- Metadata mode option resets options to mode defaults
|
|
2444
|
-
|
|
2445
|
-
before applying other metadata
|
|
2446
|
-
|
|
2447
|
-
- Comprehensive tests for metadata control of command line
|
|
2448
|
-
|
|
2449
|
-
options
|
|
2450
|
-
|
|
2451
|
-
## [0.1.25] - 2025-12-13
|
|
2452
|
-
|
|
2453
|
-
### New
|
|
2454
|
-
|
|
2455
|
-
- Add citation processing with support for Pandoc,
|
|
2456
|
-
|
|
2457
|
-
MultiMarkdown, and mmark syntaxes
|
|
2458
|
-
|
|
2459
|
-
- Add bibliography loading from BibTeX, CSL JSON, and CSL
|
|
2460
|
-
|
|
2461
|
-
YAML formats
|
|
2462
|
-
|
|
2463
|
-
- Add --bibliography CLI option to specify bibliography
|
|
2464
|
-
|
|
2465
|
-
files (can be used multiple times)
|
|
2466
|
-
|
|
2467
|
-
- Add --csl CLI option to specify citation style file
|
|
2468
|
-
- Add --no-bibliography CLI option to suppress bibliography
|
|
2469
|
-
|
|
2470
|
-
output
|
|
2471
|
-
|
|
2472
|
-
- Add --link-citations CLI option to link citations to
|
|
2473
|
-
|
|
2474
|
-
bibliography entries
|
|
2475
|
-
|
|
2476
|
-
- Add --show-tooltips CLI option for citation tooltips
|
|
2477
|
-
- Add bibliography generation and insertion at <!--
|
|
2478
|
-
|
|
2479
|
-
REFERENCES --> marker
|
|
2480
|
-
|
|
2481
|
-
Add support for bibliography specified in document metadata
|
|
2482
|
-
|
|
2483
|
-
- Added missing docs and man page for citation support
|
|
2484
|
-
- Add support for transclude base metadata to control file
|
|
2485
|
-
|
|
2486
|
-
transclusion paths
|
|
2487
|
-
|
|
2488
|
-
- Add Base Header Level and HTML Header Level metadata to
|
|
2489
|
-
|
|
2490
|
-
adjust heading levels
|
|
2491
|
-
|
|
2492
|
-
- Add CSS metadata to link external stylesheets in
|
|
2493
|
-
|
|
2494
|
-
standalone HTML documents
|
|
2495
|
-
|
|
2496
|
-
- Add HTML Header and HTML Footer metadata to inject custom
|
|
2497
|
-
|
|
2498
|
-
HTML
|
|
2499
|
-
|
|
2500
|
-
- Add Language metadata to set HTML lang attribute in
|
|
2501
|
-
|
|
2502
|
-
standalone documents
|
|
2503
|
-
|
|
2504
|
-
- Add Quotes Language metadata to control smart quote styles
|
|
2505
|
-
|
|
2506
|
-
(French, German, Spanish, etc.)
|
|
2507
|
-
|
|
2508
|
-
- Add --css CLI flag as alias for --style with metadata
|
|
2509
|
-
|
|
2510
|
-
override precedence
|
|
2511
|
-
|
|
2512
|
-
- Add metadata key normalization: case-insensitive matching
|
|
2513
|
-
|
|
2514
|
-
with spaces removed (e.g., "HTML Header Level" matches
|
|
2515
|
-
"htmlheaderlevel")
|
|
2516
|
-
|
|
2517
|
-
- Add index extension supporting mmark syntax (!item),
|
|
2518
|
-
|
|
2519
|
-
(!item, subitem), and (!!item, subitem) for primary
|
|
2520
|
-
entries
|
|
2521
|
-
|
|
2522
|
-
- Add TextIndex syntax support with {^}, [term]{^}, and
|
|
2523
|
-
|
|
2524
|
-
{^params} patterns
|
|
2525
|
-
|
|
2526
|
-
- Add automatic index generation at end of document or at
|
|
2527
|
-
|
|
2528
|
-
<!--INDEX--> marker
|
|
2529
|
-
|
|
2530
|
-
- Add alphabetical sorting and optional grouping by first
|
|
2531
|
-
|
|
2532
|
-
letter for index entries
|
|
2533
|
-
|
|
2534
|
-
- Add hierarchical sub-item support in generated index
|
|
2535
|
-
- Add --indices CLI flag to enable index processing
|
|
2536
|
-
- Add --no-indices CLI flag to disable index processing
|
|
2537
|
-
- Add --no-index CLI flag to suppress index generation while
|
|
2538
|
-
|
|
2539
|
-
keeping markers
|
|
2540
|
-
|
|
2541
|
-
- Add comprehensive test suite with 40 index tests covering
|
|
2542
|
-
|
|
2543
|
-
both syntaxes
|
|
2544
|
-
|
|
2545
|
-
### Improved
|
|
2546
|
-
|
|
2547
|
-
- Only process citations when bibliography is actually
|
|
2548
|
-
|
|
2549
|
-
provided for better performance
|
|
2550
|
-
|
|
2551
|
-
- Add comprehensive tests for MultiMarkdown metadata keys
|
|
2552
|
-
- Add comprehensive performance profiling system
|
|
2553
|
-
|
|
2554
|
-
(APEX_PROFILE=1) to measure processing time for all
|
|
2555
|
-
extensions and CLI operations
|
|
2556
|
-
|
|
2557
|
-
- Add early exit checks for IAL processing when no {:
|
|
2558
|
-
|
|
2559
|
-
markers are present
|
|
2560
|
-
|
|
2561
|
-
- Add early exit checks for index processing when no index
|
|
2562
|
-
|
|
2563
|
-
patterns are found
|
|
2564
|
-
|
|
2565
|
-
- Add early exit checks for citation processing when no
|
|
2566
|
-
|
|
2567
|
-
citation patterns are found
|
|
2568
|
-
|
|
2569
|
-
- Add early exit checks for definition list processing when
|
|
2570
|
-
|
|
2571
|
-
no : patterns are found
|
|
2572
|
-
|
|
2573
|
-
- Optimize alpha lists postprocessing with single-pass
|
|
2574
|
-
|
|
2575
|
-
algorithm replacing O(n*m) strstr() loops
|
|
2576
|
-
|
|
2577
|
-
- Add early exit check for alpha lists postprocessing when
|
|
2578
|
-
|
|
2579
|
-
no markers are present
|
|
2580
|
-
|
|
2581
|
-
- Optimize file I/O by using fwrite() with known length
|
|
2582
|
-
|
|
2583
|
-
instead of fputs()
|
|
2584
|
-
|
|
2585
|
-
- Add markdown syntax detection in definition lists to skip
|
|
2586
|
-
|
|
2587
|
-
parser creation for plain text
|
|
2588
|
-
|
|
2589
|
-
- Optimize definition lists by selectively extracting only
|
|
2590
|
-
|
|
2591
|
-
needed reference definitions instead of prepending all
|
|
2592
|
-
|
|
2593
|
-
- Add profiling instrumentation for all preprocessing,
|
|
2594
|
-
|
|
2595
|
-
parsing, rendering, and post-processing steps
|
|
2596
|
-
|
|
2597
|
-
- Add profiling instrumentation for CLI operations (file
|
|
2598
|
-
|
|
2599
|
-
I/O, metadata processing)
|
|
2600
|
-
|
|
2601
|
-
### Fixed
|
|
2602
|
-
|
|
2603
|
-
- Prevent autolinking of @ symbols in citation syntax (e.g.,
|
|
2604
|
-
|
|
2605
|
-
[@key])
|
|
2606
|
-
|
|
2607
|
-
- Handle HTML comments in autolinker to preserve citation
|
|
2608
|
-
|
|
2609
|
-
placeholders
|
|
2610
|
-
|
|
2611
|
-
- Fix quote language adjustment to handle Unicode curly
|
|
2612
|
-
|
|
2613
|
-
quotes in addition to HTML entities
|
|
2614
|
-
|
|
2615
|
-
Fix bibliography_files assignment to remove unnecessary cast
|
|
2616
|
-
|
|
2617
|
-
- Fix heap-buffer-overflow in html_renderer.c when writing
|
|
2618
|
-
|
|
2619
|
-
null terminator (allocate capacity+1)
|
|
2620
|
-
|
|
2621
|
-
- Fix use-after-free in ial.c by deferring node unlinking
|
|
2622
|
-
|
|
2623
|
-
until after iteration completes
|
|
2624
|
-
|
|
2625
|
-
- Fix buffer overflow in definition_list.c HTML entity
|
|
2626
|
-
|
|
2627
|
-
escaping (correct length calculation for & and ")
|
|
2628
|
-
|
|
2629
|
-
## [0.1.24] - 2025-12-13
|
|
2630
|
-
|
|
2631
|
-
### New
|
|
2632
|
-
|
|
2633
|
-
- Add citation processing with support for Pandoc,
|
|
2634
|
-
|
|
2635
|
-
MultiMarkdown, and mmark syntaxes
|
|
2636
|
-
|
|
2637
|
-
- Add bibliography loading from BibTeX, CSL JSON, and CSL
|
|
2638
|
-
|
|
2639
|
-
YAML formats
|
|
2640
|
-
|
|
2641
|
-
- Add --bibliography CLI option to specify bibliography
|
|
2642
|
-
|
|
2643
|
-
files (can be used multiple times)
|
|
2644
|
-
|
|
2645
|
-
- Add --csl CLI option to specify citation style file
|
|
2646
|
-
- Add --no-bibliography CLI option to suppress bibliography
|
|
2647
|
-
|
|
2648
|
-
output
|
|
2649
|
-
|
|
2650
|
-
- Add --link-citations CLI option to link citations to
|
|
2651
|
-
|
|
2652
|
-
bibliography entries
|
|
2653
|
-
|
|
2654
|
-
- Add --show-tooltips CLI option for citation tooltips
|
|
2655
|
-
- Add bibliography generation and insertion at <!--
|
|
2656
|
-
|
|
2657
|
-
REFERENCES --> marker
|
|
2658
|
-
|
|
2659
|
-
Add support for bibliography specified in document metadata
|
|
2660
|
-
|
|
2661
|
-
### Improved
|
|
2662
|
-
|
|
2663
|
-
- Only process citations when bibliography is actually
|
|
2664
|
-
|
|
2665
|
-
provided for better performance
|
|
2666
|
-
|
|
2667
|
-
### Fixed
|
|
2668
|
-
|
|
2669
|
-
- Raw HTML tags and comments are now preserved in definition
|
|
2670
|
-
|
|
2671
|
-
lists by default in unified mode. Previously, HTML content
|
|
2672
|
-
in definition list definitions was being replaced with
|
|
2673
|
-
"raw HTML omitted" even when using --unsafe or in unified
|
|
2674
|
-
mode.
|
|
2675
|
-
|
|
2676
|
-
- Unified mode now explicitly sets unsafe=true by default to
|
|
2677
|
-
|
|
2678
|
-
ensure raw HTML is allowed.
|
|
2679
|
-
|
|
2680
|
-
- Prevent autolinking of @ symbols in citation syntax (e.g.,
|
|
2681
|
-
|
|
2682
|
-
[@key])
|
|
2683
|
-
|
|
2684
|
-
- Handle HTML comments in autolinker to preserve citation
|
|
2685
|
-
|
|
2686
|
-
placeholders
|
|
2687
|
-
|
|
2688
|
-
## [0.1.23] - 2025-12-12
|
|
2689
|
-
|
|
2690
|
-
### Changed
|
|
2691
|
-
|
|
2692
|
-
- Remove remote image embedding support (curl dependency
|
|
2693
|
-
|
|
2694
|
-
removed)
|
|
2695
|
-
|
|
2696
|
-
### New
|
|
2697
|
-
|
|
2698
|
-
- Add metadata variable transforms with [%key:transform]
|
|
2699
|
-
|
|
2700
|
-
syntax
|
|
2701
|
-
|
|
2702
|
-
- Add --transforms and --no-transforms flags to
|
|
2703
|
-
|
|
2704
|
-
enable/disable transforms
|
|
2705
|
-
|
|
2706
|
-
- Add 19 text transforms: upper, lower, title, capitalize,
|
|
2707
|
-
|
|
2708
|
-
trim, slug, replace (with regex support), substring,
|
|
2709
|
-
truncate, default, html_escape, basename, urlencode,
|
|
2710
|
-
urldecode, prefix, suffix, remove, repeat, reverse,
|
|
2711
|
-
format, length, pad, contains
|
|
2712
|
-
|
|
2713
|
-
- Add array transforms: split, join, first, last, slice
|
|
2714
|
-
- Add date/time transform: strftime with date parsing
|
|
2715
|
-
- Add transform chaining support (multiple transforms
|
|
2716
|
-
|
|
2717
|
-
separated by colons)
|
|
2718
|
-
|
|
2719
|
-
- Add --meta-file flag to load metadata from external files
|
|
2720
|
-
|
|
2721
|
-
(YAML, MMD, or Pandoc format, auto-detected)
|
|
2722
|
-
|
|
2723
|
-
- Add --meta KEY=VALUE flag to set metadata from command
|
|
2724
|
-
|
|
2725
|
-
line (supports multiple flags and comma-separated pairs)
|
|
2726
|
-
|
|
2727
|
-
- Add metadata merging with proper precedence: command-line
|
|
2728
|
-
> document > file
|
|
2729
|
-
- Add --embed-images flag to embed local images as base64
|
|
2730
|
-
|
|
2731
|
-
data URLs in HTML output
|
|
2732
|
-
|
|
2733
|
-
- Add --base-dir flag to set base directory for resolving
|
|
2734
|
-
|
|
2735
|
-
relative paths (images, includes, wiki links)
|
|
2736
|
-
|
|
2737
|
-
- Add automatic base directory detection from input file
|
|
2738
|
-
|
|
2739
|
-
directory when reading from file
|
|
2740
|
-
|
|
2741
|
-
- Add base64 encoding utility for image data
|
|
2742
|
-
- Add MIME type detection from file extensions (supports
|
|
2743
|
-
|
|
2744
|
-
jpg, png, gif, webp, svg, bmp, ico)
|
|
2745
|
-
|
|
2746
|
-
- Add image embedding function that processes HTML and
|
|
2747
|
-
|
|
2748
|
-
replaces local image src attributes with data URLs
|
|
2749
|
-
|
|
2750
|
-
- Add test suite for image embedding functionality
|
|
2751
|
-
|
|
2752
|
-
### Improved
|
|
2753
|
-
|
|
2754
|
-
- Wiki link scanner now processes all links in a text node
|
|
2755
|
-
|
|
2756
|
-
in a single pass instead of recursively processing one at
|
|
2757
|
-
a time, significantly improving performance for documents
|
|
2758
|
-
with multiple wiki links per text node.
|
|
2759
|
-
|
|
2760
|
-
- Added early-exit optimization to skip wiki link AST
|
|
2761
|
-
|
|
2762
|
-
traversal entirely when no wiki link markers are present
|
|
2763
|
-
in the document.
|
|
2764
|
-
|
|
2765
|
-
- Improve error handling in transform execution to return
|
|
2766
|
-
|
|
2767
|
-
original value instead of NULL on failure
|
|
2768
|
-
|
|
2769
|
-
- Add comprehensive test coverage for all transforms
|
|
2770
|
-
|
|
2771
|
-
including edge cases
|
|
2772
|
-
|
|
2773
|
-
- Relative path resolution for images now uses
|
|
2774
|
-
|
|
2775
|
-
base_directory option
|
|
2776
|
-
|
|
2777
|
-
- Base directory is automatically set from input file
|
|
2778
|
-
|
|
2779
|
-
location when not specified
|
|
2780
|
-
|
|
2781
|
-
### Fixed
|
|
2782
|
-
|
|
2783
|
-
- Fix bracket handling in regex patterns - properly match
|
|
2784
|
-
|
|
2785
|
-
closing brackets in [%...] syntax when patterns contain
|
|
2786
|
-
brackets
|
|
2787
|
-
|
|
2788
|
-
- Fix YAML metadata parsing to strip quotes from quoted
|
|
2789
|
-
|
|
2790
|
-
string values
|
|
2791
|
-
|
|
2792
|
-
- Raw HTML tags and comments are now preserved in definition
|
|
2793
|
-
|
|
2794
|
-
lists by default in unified mode. Previously, HTML content
|
|
2795
|
-
in definition list definitions was being replaced with
|
|
2796
|
-
"raw HTML omitted" even when using --unsafe or in unified
|
|
2797
|
-
mode.
|
|
2798
|
-
|
|
2799
|
-
- Unified mode now explicitly sets unsafe=true by default to
|
|
2800
|
-
|
|
2801
|
-
ensure raw HTML is allowed.
|
|
2802
|
-
|
|
2803
|
-
## [0.1.20] - 2025-12-11
|
|
2804
|
-
|
|
2805
|
-
#### NEW
|
|
2806
|
-
|
|
2807
|
-
- Added man page generation and installation support. Man
|
|
2808
|
-
|
|
2809
|
-
pages can be generated from Markdown source using pandoc
|
|
2810
|
-
or go-md2man, with pre-generated man pages included in the
|
|
2811
|
-
repository as fallback. CMake build system now handles man
|
|
2812
|
-
page installation, and Homebrew formula installs the man
|
|
2813
|
-
page.
|
|
2814
|
-
|
|
2815
|
-
- Added comprehensive test suite for MMD 6 features
|
|
2816
|
-
|
|
2817
|
-
including multi-line setext headers and link/image titles
|
|
2818
|
-
with different quote styles (single quotes, double quotes,
|
|
2819
|
-
parentheses). Tests verify these features work in both
|
|
2820
|
-
MultiMarkdown and unified modes.
|
|
2821
|
-
|
|
2822
|
-
- Added build-test man_page_copy target for man page
|
|
2823
|
-
|
|
2824
|
-
installation.
|
|
2825
|
-
|
|
2826
|
-
- Added --obfuscate-emails flag to hex-encode mailto links.
|
|
2827
|
-
|
|
2828
|
-
#### IMPROVED
|
|
2829
|
-
|
|
2830
|
-
- Superscript processing now stops at sentence terminators
|
|
2831
|
-
|
|
2832
|
-
(. , ; : ! ?) instead of including them in the superscript
|
|
2833
|
-
content. This prevents punctuation from being incorrectly
|
|
2834
|
-
included in superscripts.
|
|
2835
|
-
|
|
2836
|
-
- Enhanced subscript and underline detection logic. The
|
|
2837
|
-
|
|
2838
|
-
processor now correctly differentiates between subscript
|
|
2839
|
-
(tildes within a word, e.g., H~2~O) and underline (tildes
|
|
2840
|
-
at word boundaries, e.g., ~text~) by checking if tildes
|
|
2841
|
-
are within alphanumeric words or at word boundaries.
|
|
2842
|
-
|
|
2843
|
-
- Expanded test coverage for superscript, subscript,
|
|
2844
|
-
|
|
2845
|
-
underline, strikethrough, and highlight features with
|
|
2846
|
-
additional edge case tests.
|
|
2847
|
-
|
|
2848
|
-
- Email autolink detection trims trailing punctuation.
|
|
2849
|
-
|
|
2850
|
-
#### FIXED
|
|
2851
|
-
|
|
2852
|
-
- Autolink now only wraps real URLs/emails instead of every
|
|
2853
|
-
|
|
2854
|
-
word.
|
|
2855
|
-
|
|
2856
|
-
Email autolinks now use mailto: hrefs instead of bare text.
|
|
2857
|
-
|
|
2858
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
2859
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
2860
|
-
|
|
2861
|
-
## [0.1.19] - 2025-12-09
|
|
2862
|
-
|
|
2863
|
-
#### CHANGED
|
|
2864
|
-
|
|
2865
|
-
- HTML comments now replaced with "raw HTML omitted" in
|
|
2866
|
-
|
|
2867
|
-
CommonMark and GFM modes by default
|
|
2868
|
-
|
|
2869
|
-
- Added enable_sup_sub flag to apex_options struct
|
|
2870
|
-
- Updated mode configurations to enable sup/sub in
|
|
2871
|
-
|
|
2872
|
-
appropriate modes
|
|
2873
|
-
|
|
2874
|
-
- Added sup_sub.c to CMakeLists.txt build configuration
|
|
2875
|
-
- Removed unused variables to resolve compiler warnings
|
|
2876
|
-
- Tag filter (GFM security feature) now only applies in GFM
|
|
2877
|
-
|
|
2878
|
-
mode, not Unified mode, allowing raw HTML and autolinks in
|
|
2879
|
-
Unified mode as intended.
|
|
2880
|
-
|
|
2881
|
-
- Autolink extension registration now respects the
|
|
2882
|
-
|
|
2883
|
-
enable_autolink option flag.
|
|
2884
|
-
|
|
2885
|
-
#### NEW
|
|
2886
|
-
|
|
2887
|
-
- Added MultiMarkdown-style superscript (^text^) and
|
|
2888
|
-
|
|
2889
|
-
subscript (~text~) syntax support
|
|
2890
|
-
|
|
2891
|
-
- Added --[no-]sup-sub command-line option to enable/disable
|
|
2892
|
-
|
|
2893
|
-
superscript/subscript
|
|
2894
|
-
|
|
2895
|
-
- Superscript/subscript enabled by default in unified and
|
|
2896
|
-
|
|
2897
|
-
MultiMarkdown modes
|
|
2898
|
-
|
|
2899
|
-
- Created sup_sub extension (sup_sub.c and sup_sub.h) for
|
|
2900
|
-
|
|
2901
|
-
processing ^ and ~ syntax
|
|
2902
|
-
|
|
2903
|
-
- Added --[no-]unsafe command-line option to control raw
|
|
2904
|
-
|
|
2905
|
-
HTML handling
|
|
2906
|
-
|
|
2907
|
-
- Added test_sup_sub() function with 13 tests covering
|
|
2908
|
-
|
|
2909
|
-
superscript and
|
|
2910
|
-
|
|
2911
|
-
- Added test_mixed_lists() function with 10 tests covering
|
|
2912
|
-
|
|
2913
|
-
mixed list
|
|
2914
|
-
|
|
2915
|
-
- Added test_unsafe_mode() function with 8 tests covering
|
|
2916
|
-
|
|
2917
|
-
raw HTML
|
|
2918
|
-
|
|
2919
|
-
- Added preprocessing for angle-bracket autolinks
|
|
2920
|
-
|
|
2921
|
-
(<http://...>) to convert them to explicit markdown links,
|
|
2922
|
-
ensuring they work correctly with custom rendering paths.
|
|
2923
|
-
|
|
2924
|
-
- Added --[no-]autolink CLI option to control automatic
|
|
2925
|
-
|
|
2926
|
-
linking of URLs and email addresses. Autolinking is
|
|
2927
|
-
enabled by default in GFM, MultiMarkdown, Kramdown, and
|
|
2928
|
-
unified modes, and disabled in CommonMark mode.
|
|
2929
|
-
|
|
2930
|
-
- Added enable_autolink field to apex_options structure to
|
|
2931
|
-
|
|
2932
|
-
control autolink behavior programmatically.
|
|
2933
|
-
|
|
2934
|
-
- Added underline syntax support: ~text~ now renders as
|
|
2935
|
-
|
|
2936
|
-
<u>text</u> when there's a closing ~ with no space before
|
|
2937
|
-
it.
|
|
2938
|
-
|
|
2939
|
-
#### IMPROVED
|
|
2940
|
-
|
|
2941
|
-
- Test suite now includes 36 additional tests, increasing
|
|
2942
|
-
|
|
2943
|
-
total test
|
|
2944
|
-
|
|
2945
|
-
- Autolink preprocessing now skips processing inside code
|
|
2946
|
-
|
|
2947
|
-
spans (`...`) and code blocks (```...```), preventing URLs
|
|
2948
|
-
from being converted to links when they appear in code
|
|
2949
|
-
examples.
|
|
2950
|
-
|
|
2951
|
-
- Metadata replacement retains HTML edge-case handling and
|
|
2952
|
-
|
|
2953
|
-
properly cleans up intermediate buffers.
|
|
2954
|
-
|
|
2955
|
-
#### FIXED
|
|
2956
|
-
|
|
2957
|
-
- Unified mode now correctly enables mixed list markers and
|
|
2958
|
-
|
|
2959
|
-
alpha lists by default when no --mode is specified
|
|
2960
|
-
|
|
2961
|
-
- ^ marker now properly separates lists by creating a
|
|
2962
|
-
|
|
2963
|
-
paragraph break instead of just blank lines
|
|
2964
|
-
|
|
2965
|
-
- Empty paragraphs created by ^ marker are now removed from
|
|
2966
|
-
|
|
2967
|
-
final HTML output
|
|
2968
|
-
|
|
2969
|
-
- Superscript and subscript processing now skips ^ and ~
|
|
2970
|
-
|
|
2971
|
-
characters
|
|
2972
|
-
|
|
2973
|
-
- Superscript processing now skips ^ when part of footnote
|
|
2974
|
-
|
|
2975
|
-
reference
|
|
2976
|
-
|
|
2977
|
-
- Subscript processing now skips ~ when part of critic
|
|
2978
|
-
|
|
2979
|
-
markup patterns
|
|
2980
|
-
|
|
2981
|
-
- Setext headers are no longer broken when followed by
|
|
2982
|
-
|
|
2983
|
-
highlight syntax (==text==). Highlight processing now
|
|
2984
|
-
stops at line breaks to prevent interference with header
|
|
2985
|
-
parsing.
|
|
2986
|
-
|
|
2987
|
-
- Metadata parser no longer incorrectly treats URLs and
|
|
2988
|
-
|
|
2989
|
-
angle-bracket autolinks as metadata. Lines containing < or
|
|
2990
|
-
URLs (http://, https://, mailto:) are now skipped during
|
|
2991
|
-
metadata extraction.
|
|
2992
|
-
|
|
2993
|
-
- Superscript/subscript processor now correctly
|
|
2994
|
-
|
|
2995
|
-
differentiates between ~text~ (underline), ~word
|
|
2996
|
-
(subscript), and ~~text~~ (strikethrough). Double-tilde
|
|
2997
|
-
sequences are skipped so strikethrough extension can
|
|
2998
|
-
handle them.
|
|
2999
|
-
|
|
3000
|
-
- Subscript processing now stops at sentence terminators (.
|
|
3001
|
-
|
|
3002
|
-
, ; : ! ?) instead of including them in the subscript
|
|
3003
|
-
content.
|
|
3004
|
-
|
|
3005
|
-
- Metadata variable replacement now runs before autolinking
|
|
3006
|
-
|
|
3007
|
-
so [%key] values containing URLs are turned into links
|
|
3008
|
-
when autolinking is enabled.
|
|
3009
|
-
|
|
3010
|
-
- MMD metadata parsing no longer incorrectly rejects entries
|
|
3011
|
-
|
|
3012
|
-
with URL values; only URL-like keys or '<' characters in
|
|
3013
|
-
keys are rejected, allowing "URL: https://example.com" as
|
|
3014
|
-
valid metadata.
|
|
3015
|
-
|
|
3016
|
-
Headers starting with `#` are now correctly recognized instead of being treated as autolinks. The autolink preprocessor now skips `#` at the start of a line when followed by whitespace.
|
|
3017
|
-
|
|
3018
|
-
Math processor now validates that `\(...\)` sequences contain actual math content (letters, numbers, or operators) before processing them. This prevents false positives like `\(%\)` from being treated as math when they only contain special characters.
|
|
3019
|
-
|
|
3020
|
-
## [0.1.18] - 2025-12-06
|
|
3021
|
-
|
|
3022
|
-
### Fixed
|
|
3023
|
-
- GitHub Actions workflow now properly builds separate Linux
|
|
3024
|
-
|
|
3025
|
-
x86_64 and ARM64 binaries
|
|
3026
|
-
|
|
3027
|
-
## [0.1.17] - 2025-12-06
|
|
3028
|
-
|
|
3029
|
-
### Fixed
|
|
3030
|
-
- Relaxed tables now disabled by default for CommonMark,
|
|
3031
|
-
|
|
3032
|
-
GFM, and MultiMarkdown modes (only enabled for Kramdown
|
|
3033
|
-
and Unified modes)
|
|
3034
|
-
|
|
3035
|
-
- Header ID extraction no longer incorrectly parses metadata
|
|
3036
|
-
|
|
3037
|
-
variables like `[%title]` as MMD-style header IDs
|
|
3038
|
-
|
|
3039
|
-
- Tables with alignment/separator rows now correctly
|
|
3040
|
-
|
|
3041
|
-
generate `<thead>` even when relaxed table mode is enabled
|
|
3042
|
-
|
|
3043
|
-
- Relaxed tables preprocessor preserves input newline
|
|
3044
|
-
|
|
3045
|
-
behavior in output
|
|
3046
|
-
|
|
3047
|
-
- Memory management bug in IAL preprocessing removed
|
|
3048
|
-
|
|
3049
|
-
unnecessary free call
|
|
3050
|
-
|
|
3051
|
-
## [0.1.16] - 2025-12-06
|
|
3052
|
-
|
|
3053
|
-
### Fixed
|
|
3054
|
-
- IAL (Inline Attribute List) markers appearing immediately
|
|
3055
|
-
|
|
3056
|
-
after content without a blank line are now correctly
|
|
3057
|
-
parsed
|
|
3058
|
-
|
|
3059
|
-
Added `apex_preprocess_ial()` function to ensure Kramdown-style IAL syntax works correctly with cmark-gfm parser
|
|
3060
|
-
|
|
3061
|
-
## [0.1.15] - 2025-12-06
|
|
3062
|
-
|
|
3063
|
-
### Fixed
|
|
3064
|
-
- Homebrew formula updated with correct version and commit
|
|
3065
|
-
|
|
3066
|
-
hash
|
|
3067
|
-
|
|
3068
|
-
## [0.1.10] - 2025-12-06
|
|
3069
|
-
|
|
3070
|
-
### Changed
|
|
3071
|
-
- License changed to MIT
|
|
3072
|
-
|
|
3073
|
-
### Added
|
|
3074
|
-
- Homebrew formula update scripts
|
|
3075
|
-
|
|
3076
|
-
## [0.1.9] - 2025-12-06
|
|
3077
|
-
|
|
3078
|
-
### Fixed
|
|
3079
|
-
- Shell syntax in Linux checksum step for GitHub Actions
|
|
3080
|
-
|
|
3081
|
-
## [0.1.8] - 2025-12-06
|
|
3082
|
-
|
|
3083
|
-
### Fixed
|
|
3084
|
-
- Link order for Linux static builds
|
|
3085
|
-
|
|
3086
|
-
## [0.1.7] - 2025-12-06
|
|
3087
|
-
|
|
3088
|
-
### Fixed
|
|
3089
|
-
- Added write permissions for GitHub releases
|
|
3090
|
-
|
|
3091
|
-
## [0.1.6] - 2025-12-06
|
|
3092
|
-
|
|
3093
|
-
### Fixed
|
|
3094
|
-
`.gitignore` pattern fixed to properly include apex headers (was incorrectly matching `include/apex/`)
|
|
3095
|
-
|
|
3096
|
-
## [0.1.5] - 2025-12-06
|
|
3097
|
-
|
|
3098
|
-
### Changed
|
|
3099
|
-
- Added verbose build output for CI debugging
|
|
3100
|
-
|
|
3101
|
-
## [0.1.4] - 2025-12-06
|
|
3102
|
-
|
|
3103
|
-
### Fixed
|
|
3104
|
-
- CMake build rules updated
|
|
3105
|
-
|
|
3106
|
-
## [0.1.3] - 2025-12-06
|
|
3107
|
-
|
|
3108
|
-
### Fixed
|
|
3109
|
-
- CMake policy version for cmark-gfm compatibility
|
|
3110
|
-
|
|
3111
|
-
## [0.1.2] - 2025-12-06
|
|
3112
|
-
|
|
3113
|
-
### Fixed
|
|
3114
|
-
- GitHub Actions workflow fixes
|
|
3115
|
-
|
|
3116
|
-
## [0.1.1] - 2025-12-04
|
|
3117
|
-
|
|
3118
|
-
### Added
|
|
3119
|
-
- CMake setup documentation
|
|
3120
|
-
|
|
3121
|
-
## [0.1.0] - 2025-12-04
|
|
3122
|
-
|
|
3123
|
-
### Added
|
|
3124
|
-
|
|
3125
|
-
**Core Features:**
|
|
3126
|
-
|
|
3127
|
-
- Initial release of Apex unified Markdown processor
|
|
3128
|
-
- Based on cmark-gfm for CommonMark + GFM support
|
|
3129
|
-
- Support for 5 processor modes: CommonMark, GFM,
|
|
3130
|
-
|
|
3131
|
-
MultiMarkdown, Kramdown, Unified
|
|
3132
|
-
|
|
3133
|
-
**Metadata:**
|
|
3134
|
-
|
|
3135
|
-
- YAML front matter parsing
|
|
3136
|
-
- MultiMarkdown metadata format
|
|
3137
|
-
- Pandoc title block format
|
|
3138
|
-
- Metadata variable replacement with `[%key]` syntax
|
|
3139
|
-
|
|
3140
|
-
**Extended Syntax:**
|
|
3141
|
-
|
|
3142
|
-
- Wiki-style links: `[[Page]]`, `[[Page|Display]]`,
|
|
3143
|
-
|
|
3144
|
-
`[[Page#Section]]`
|
|
3145
|
-
|
|
3146
|
-
- Math support: `$inline$` and `$$display$$` with LaTeX
|
|
3147
|
-
- Critic Markup: All 5 types ({++add++}, {--del--},
|
|
3148
|
-
|
|
3149
|
-
{~~sub~~}, {==mark==}, {>>comment<<})
|
|
3150
|
-
|
|
3151
|
-
- GFM tables, strikethrough, task lists, autolinks
|
|
3152
|
-
- Reference-style footnotes
|
|
3153
|
-
- Smart typography (smart quotes, dashes, ellipsis)
|
|
3154
|
-
|
|
3155
|
-
**Build System:**
|
|
3156
|
-
|
|
3157
|
-
- CMake build system for cross-platform support
|
|
3158
|
-
- Builds shared library, static library, CLI binary, and
|
|
3159
|
-
|
|
3160
|
-
macOS framework
|
|
3161
|
-
|
|
3162
|
-
- Clean compilation on macOS with Apple Clang
|
|
3163
|
-
|
|
3164
|
-
**CLI Tool:**
|
|
3165
|
-
|
|
3166
|
-
- `apex` command-line binary
|
|
3167
|
-
- Support for all processor modes via `--mode` flag
|
|
3168
|
-
- Stdin/stdout support for Unix pipes
|
|
3169
|
-
- Comprehensive help and version information
|
|
3170
|
-
|
|
3171
|
-
**Integration:**
|
|
3172
|
-
|
|
3173
|
-
Objective-C wrapper (`NSString+Apex`) for Marked integration
|
|
3174
|
-
|
|
3175
|
-
- macOS framework with proper exports
|
|
3176
|
-
- Detailed integration documentation and examples
|
|
3177
|
-
|
|
3178
|
-
**Testing:**
|
|
3179
|
-
|
|
3180
|
-
- Automated test suite with 31 tests
|
|
3181
|
-
- 90% pass rate across all feature areas
|
|
3182
|
-
- Manual testing validated
|
|
3183
|
-
|
|
3184
|
-
**Documentation:**
|
|
3185
|
-
|
|
3186
|
-
- Comprehensive user guide
|
|
3187
|
-
- Complete API reference
|
|
3188
|
-
- Architecture documentation
|
|
3189
|
-
- Integration guides
|
|
3190
|
-
- Code examples
|
|
3191
|
-
|
|
3192
|
-
### Known Issues
|
|
3193
|
-
|
|
3194
|
-
- Critic Markup substitutions have edge cases with certain
|
|
3195
|
-
|
|
3196
|
-
inputs
|
|
3197
|
-
|
|
3198
|
-
- Definition lists not yet implemented
|
|
3199
|
-
- Kramdown attributes not yet implemented
|
|
3200
|
-
- Inline footnotes not yet implemented
|
|
3201
|
-
|
|
3202
|
-
### Performance
|
|
3203
|
-
|
|
3204
|
-
- Small documents (< 10KB): < 10ms
|
|
3205
|
-
- Medium documents (< 100KB): < 100ms
|
|
3206
|
-
- Large documents (< 1MB): < 1s
|
|
3207
|
-
|
|
3208
|
-
### Credits
|
|
3209
|
-
|
|
3210
|
-
Based on [cmark-gfm](https://github.com/github/cmark-gfm) by GitHub
|
|
3211
|
-
|
|
3212
|
-
Developed for [Marked](https://marked2app.com) by Brett Terpstra
|
|
3213
|
-
|
|
3214
|
-
[1.1.20]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.20
|
|
3215
|
-
[1.1.19]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.19
|
|
3216
|
-
[1.1.18]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.18
|
|
3217
|
-
[1.1.17]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.17
|
|
3218
|
-
[1.1.16]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.16
|
|
3219
|
-
[1.1.15]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.15
|
|
3220
|
-
[1.1.14]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.14
|
|
3221
|
-
[1.1.13]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.13
|
|
3222
|
-
[1.1.12]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.12
|
|
3223
|
-
[1.1.11]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.11
|
|
3224
|
-
[1.1.10]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.10
|
|
3225
|
-
[1.1.9]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.9
|
|
3226
|
-
[1.1.8]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.8
|
|
3227
|
-
[1.1.7]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.7
|
|
3228
|
-
[1.1.6]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.6
|
|
3229
|
-
[1.1.5]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.5
|
|
3230
|
-
[1.1.4]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.4
|
|
3231
|
-
[1.1.3]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.3
|
|
3232
|
-
[1.1.2]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.2
|
|
3233
|
-
[1.1.1]: https://github.com/ApexMarkdown/apex/releases/tag/v1.1.1
|
|
3234
|
-
[1.0.15]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.15
|
|
3235
|
-
[1.0.14]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.14
|
|
3236
|
-
[1.0.13]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.13
|
|
3237
|
-
[1.0.12]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.12
|
|
3238
|
-
[1.0.11]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.11
|
|
3239
|
-
[1.0.10]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.10
|
|
3240
|
-
[1.0.9]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.9
|
|
3241
|
-
[1.0.8]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.8
|
|
3242
|
-
[1.0.7]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.7
|
|
3243
|
-
[1.0.6]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.6
|
|
3244
|
-
[1.0.5]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.5
|
|
3245
|
-
[1.0.4]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.4
|
|
3246
|
-
[1.0.3]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.3
|
|
3247
|
-
[1.0.2]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.2
|
|
3248
|
-
[1.0.1]: https://github.com/ApexMarkdown/apex/releases/tag/v1.0.1
|
|
3249
|
-
[0.1.104]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.104
|
|
3250
|
-
[0.1.103]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.103
|
|
3251
|
-
[0.1.102]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.102
|
|
3252
|
-
[0.1.100]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.100
|
|
3253
|
-
[0.1.98]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.98
|
|
3254
|
-
[0.1.97]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.97
|
|
3255
|
-
[0.1.96]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.96
|
|
3256
|
-
[0.1.95]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.95
|
|
3257
|
-
[0.1.94]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.94
|
|
3258
|
-
[0.1.93]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.93
|
|
3259
|
-
[0.1.92]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.92
|
|
3260
|
-
[0.1.91]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.91
|
|
3261
|
-
[0.1.90]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.90
|
|
3262
|
-
[0.1.89]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.89
|
|
3263
|
-
[0.1.88]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.88
|
|
3264
|
-
[0.1.87]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.87
|
|
3265
|
-
[0.1.86]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.86
|
|
3266
|
-
[0.1.85]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.85
|
|
3267
|
-
[0.1.84]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.84
|
|
3268
|
-
[0.1.83]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.83
|
|
3269
|
-
[0.1.82]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.82
|
|
3270
|
-
[0.1.81]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.81
|
|
3271
|
-
[0.1.80]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.80
|
|
3272
|
-
[0.1.79]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.79
|
|
3273
|
-
[0.1.78]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.78
|
|
3274
|
-
[0.1.77]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.77
|
|
3275
|
-
[0.1.76]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.76
|
|
3276
|
-
[0.1.75]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.75
|
|
3277
|
-
[0.1.74]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.74
|
|
3278
|
-
[0.1.73]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.73
|
|
3279
|
-
[0.1.72]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.72
|
|
3280
|
-
[0.1.71]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.71
|
|
3281
|
-
[0.1.70]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.70
|
|
3282
|
-
[0.1.69]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.69
|
|
3283
|
-
[0.1.68]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.68
|
|
3284
|
-
[0.1.67]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.67
|
|
3285
|
-
[0.1.66]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.66
|
|
3286
|
-
[0.1.65]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.65
|
|
3287
|
-
[0.1.64]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.64
|
|
3288
|
-
[0.1.63]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.63
|
|
3289
|
-
[0.1.62]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.62
|
|
3290
|
-
[0.1.61]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.61
|
|
3291
|
-
[0.1.60]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.60
|
|
3292
|
-
[0.1.59]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.59
|
|
3293
|
-
[0.1.58]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.58
|
|
3294
|
-
[0.1.57]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.57
|
|
3295
|
-
[0.1.56]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.56
|
|
3296
|
-
[0.1.55]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.55
|
|
3297
|
-
[0.1.54]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.54
|
|
3298
|
-
[0.1.53]: https://github.com/ApexMarkdown/apex/releases/tag/v0.1.53
|
|
3299
|
-
[0.1.52]: https://github.com/ttscoff/apex/releases/tag/v0.1.52
|
|
3300
|
-
[0.1.51]: https://github.com/ttscoff/apex/releases/tag/v0.1.51
|
|
3301
|
-
[0.1.50]: https://github.com/ttscoff/apex/releases/tag/v0.1.50
|
|
3302
|
-
[0.1.49]: https://github.com/ttscoff/apex/releases/tag/v0.1.49
|
|
3303
|
-
[0.1.48]: https://github.com/ttscoff/apex/releases/tag/v0.1.48
|
|
3304
|
-
[0.1.47]: https://github.com/ttscoff/apex/releases/tag/v0.1.47
|
|
3305
|
-
[0.1.46]: https://github.com/ttscoff/apex/releases/tag/v0.1.46
|
|
3306
|
-
[0.1.45]: https://github.com/ttscoff/apex/releases/tag/v0.1.45
|
|
3307
|
-
[0.1.44]: https://github.com/ttscoff/apex/releases/tag/v0.1.44
|
|
3308
|
-
[0.1.43]:
|
|
3309
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.43
|
|
3310
|
-
[0.1.42]:
|
|
3311
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.42
|
|
3312
|
-
[0.1.41]:
|
|
3313
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.41
|
|
3314
|
-
[0.1.40]:
|
|
3315
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.40
|
|
3316
|
-
[0.1.39]:
|
|
3317
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.39
|
|
3318
|
-
[0.1.38]:
|
|
3319
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.38
|
|
3320
|
-
[0.1.37]:
|
|
3321
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.37
|
|
3322
|
-
[0.1.36]:
|
|
3323
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.36
|
|
3324
|
-
[0.1.35]:
|
|
3325
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.35
|
|
3326
|
-
[0.1.34]:
|
|
3327
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.34
|
|
3328
|
-
[0.1.33]:
|
|
3329
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.33
|
|
3330
|
-
[0.1.32]:
|
|
3331
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.32
|
|
3332
|
-
[0.1.31]:
|
|
3333
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.31
|
|
3334
|
-
[0.1.30]:
|
|
3335
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.30
|
|
3336
|
-
[0.1.29]:
|
|
3337
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.29
|
|
3338
|
-
[0.1.28]:
|
|
3339
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.28
|
|
3340
|
-
[0.1.27]:
|
|
3341
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.27
|
|
3342
|
-
[0.1.26]:
|
|
3343
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.26
|
|
3344
|
-
[0.1.25]:
|
|
3345
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.25
|
|
3346
|
-
[0.1.24]:
|
|
3347
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.24
|
|
3348
|
-
[0.1.23]:
|
|
3349
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.23
|
|
3350
|
-
[0.1.20]:
|
|
3351
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.20
|
|
3352
|
-
[0.1.19]:
|
|
3353
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.19
|
|
3354
|
-
[0.1.18]:
|
|
3355
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.18
|
|
3356
|
-
[0.1.17]:
|
|
3357
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.17
|
|
3358
|
-
[0.1.16]:
|
|
3359
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.16
|
|
3360
|
-
[0.1.15]:
|
|
3361
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.15
|
|
3362
|
-
[0.1.10]:
|
|
3363
|
-
https://github.com/ttscoff/apex/releases/tag/v0.1.10
|
|
3364
|
-
[0.1.9]: https://github.com/ttscoff/apex/releases/tag/v0.1.9
|
|
3365
|
-
[0.1.8]: https://github.com/ttscoff/apex/releases/tag/v0.1.8
|
|
3366
|
-
[0.1.7]: https://github.com/ttscoff/apex/releases/tag/v0.1.7
|
|
3367
|
-
[0.1.6]: https://github.com/ttscoff/apex/releases/tag/v0.1.6
|
|
3368
|
-
[0.1.5]: https://github.com/ttscoff/apex/releases/tag/v0.1.5
|
|
3369
|
-
[0.1.4]: https://github.com/ttscoff/apex/releases/tag/v0.1.4
|
|
3370
|
-
[0.1.3]: https://github.com/ttscoff/apex/releases/tag/v0.1.3
|
|
3371
|
-
[0.1.2]: https://github.com/ttscoff/apex/releases/tag/v0.1.2
|
|
3372
|
-
[0.1.1]: https://github.com/ttscoff/apex/releases/tag/v0.1.1
|
|
3373
|
-
[0.1.0]: https://github.com/ttscoff/apex/releases/tag/v0.1.0
|