apex-ruby 1.0.6
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 +7 -0
- data/README.md +119 -0
- data/apex-ruby.gemspec +31 -0
- data/ext/apex_ext/apex_ext.c +215 -0
- data/ext/apex_ext/apex_src/BENCHMARK.md +32 -0
- data/ext/apex_ext/apex_src/BENCHMARK_COMPARISON.md +67 -0
- data/ext/apex_ext/apex_src/CHANGELOG.md +2454 -0
- data/ext/apex_ext/apex_src/CMakeLists.txt +454 -0
- data/ext/apex_ext/apex_src/Dockerfile.linux-build +15 -0
- data/ext/apex_ext/apex_src/Formula/apex.rb +38 -0
- data/ext/apex_ext/apex_src/Info.plist.in +27 -0
- data/ext/apex_ext/apex_src/LICENSE +21 -0
- data/ext/apex_ext/apex_src/Package.swift +160 -0
- data/ext/apex_ext/apex_src/PackageSupport/README.md +17 -0
- data/ext/apex_ext/apex_src/PackageSupport/cmark-gfm/cmark-gfm_export.h +20 -0
- data/ext/apex_ext/apex_src/PackageSupport/cmark-gfm/cmark-gfm_version.h +14 -0
- data/ext/apex_ext/apex_src/PackageSupport/cmark-gfm/cmark_gfm_spm_stub.c +4 -0
- data/ext/apex_ext/apex_src/PackageSupport/cmark-gfm/config.h +41 -0
- data/ext/apex_ext/apex_src/README.md +452 -0
- data/ext/apex_ext/apex_src/VERSION +1 -0
- data/ext/apex_ext/apex_src/apex-header-2-rb@2x.webp +0 -0
- data/ext/apex_ext/apex_src/apex-plugins.json.example +20 -0
- data/ext/apex_ext/apex_src/apex.pc.in +11 -0
- data/ext/apex_ext/apex_src/cli/main.c +2720 -0
- data/ext/apex_ext/apex_src/debug_test.sh +22 -0
- data/ext/apex_ext/apex_src/docs/API_REFERENCE.md +451 -0
- data/ext/apex_ext/apex_src/docs/ARCHITECTURE.md +166 -0
- data/ext/apex_ext/apex_src/docs/CMARK_INTEGRATION.md +220 -0
- data/ext/apex_ext/apex_src/docs/CRITICMARKUP.md +501 -0
- data/ext/apex_ext/apex_src/docs/DEBUGGING.md +73 -0
- data/ext/apex_ext/apex_src/docs/FINAL_STATUS.md +391 -0
- data/ext/apex_ext/apex_src/docs/FINAL_STATUS_UPDATE.md +237 -0
- data/ext/apex_ext/apex_src/docs/FUTURE_FEATURES.md +456 -0
- data/ext/apex_ext/apex_src/docs/IAL_FEATURES.md +210 -0
- data/ext/apex_ext/apex_src/docs/IAL_STATUS.md +344 -0
- data/ext/apex_ext/apex_src/docs/INTEGRATION_EXAMPLE.m +144 -0
- data/ext/apex_ext/apex_src/docs/LIMITATIONS_RESOLVED.md +278 -0
- data/ext/apex_ext/apex_src/docs/OUTPUT_MODES.md +321 -0
- data/ext/apex_ext/apex_src/docs/PROGRESS.md +167 -0
- data/ext/apex_ext/apex_src/docs/STANDALONE_FEATURE.md +174 -0
- data/ext/apex_ext/apex_src/docs/TABLE_SPANS_STATUS.md +243 -0
- data/ext/apex_ext/apex_src/docs/TEST_COVERAGE.md +316 -0
- data/ext/apex_ext/apex_src/docs/USER_GUIDE.md +803 -0
- data/ext/apex_ext/apex_src/docs/WIKI_LINKS_ISSUE.md +91 -0
- data/ext/apex_ext/apex_src/documentation/README.md +160 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex Command Line Options.cheatsheet.txt +365 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Info.plist +24 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/C-API.html +1737 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Citations.html +1420 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Command-Line-Options.html +3574 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Configuration.html +1603 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Credits.html +910 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Examples.html +1168 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Getting-Started.html +1003 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Header-IDs.html +1308 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Home.html +1078 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Inline-Attribute-Lists.html +1622 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Installation.html +1168 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Limitations-and-Roadmap.html +1698 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Metadata-Transforms.html +1531 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Modes.html +1980 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-File-Documents.html +1368 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Pandoc-Integration.html +1151 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Plugins.html +2861 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Syntax.html +3981 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Troubleshooting.html +1454 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Usage.html +1200 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Xcode-Integration.html +2066 -0
- 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/Apex.docset/Contents/Resources/tempOptimizedIndex.dsidx +0 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Info.plist +22 -0
- 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 +914 -0
- data/ext/apex_ext/apex_src/documentation/docsets/ApexCLI.docset/Contents/Resources/Documents/style.css +399 -0
- 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 +772 -0
- data/ext/apex_ext/apex_src/documentation/generate_app_docs_ai.rb +678 -0
- data/ext/apex_ext/apex_src/documentation/generate_docset.rb +873 -0
- data/ext/apex_ext/apex_src/documentation/generate_single_html.rb +733 -0
- data/ext/apex_ext/apex_src/documentation/html/apex-docs.html +17073 -0
- data/ext/apex_ext/apex_src/documentation/shared_scripts.js +64 -0
- data/ext/apex_ext/apex_src/documentation/shared_styles.css +646 -0
- data/ext/apex_ext/apex_src/documentation/transform_for_app.example.md +260 -0
- data/ext/apex_ext/apex_src/examples/bracketed_spans_demo.md +119 -0
- data/ext/apex_ext/apex_src/examples/emoji_span_plugin.yml +11 -0
- data/ext/apex_ext/apex_src/examples/example.html +53 -0
- data/ext/apex_ext/apex_src/examples/example.md +85 -0
- data/ext/apex_ext/apex_src/examples/fenced_divs_demo.md +158 -0
- data/ext/apex_ext/apex_src/examples/kbd.md +8 -0
- data/ext/apex_ext/apex_src/examples/kbd_plugin.rb +250 -0
- data/ext/apex_ext/apex_src/examples/kbd_plugin.yml +9 -0
- 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/include/apex/apex.h +247 -0
- data/ext/apex_ext/apex_src/include/apex/buffer.h +93 -0
- data/ext/apex_ext/apex_src/include/apex/module.modulemap +16 -0
- data/ext/apex_ext/apex_src/include/apex/parser.h +150 -0
- data/ext/apex_ext/apex_src/include/apex/renderer.h +39 -0
- data/ext/apex_ext/apex_src/man/apex-config.5 +374 -0
- data/ext/apex_ext/apex_src/man/apex-config.5.md +260 -0
- data/ext/apex_ext/apex_src/man/apex-plugins.7 +456 -0
- data/ext/apex_ext/apex_src/man/apex-plugins.7.md +365 -0
- data/ext/apex_ext/apex_src/man/apex.1 +828 -0
- data/ext/apex_ext/apex_src/man/apex.1.md +643 -0
- data/ext/apex_ext/apex_src/man/apex.1.new +338 -0
- data/ext/apex_ext/apex_src/objc/Apex.swift +237 -0
- data/ext/apex_ext/apex_src/objc/NSString+Apex.h +117 -0
- data/ext/apex_ext/apex_src/objc/NSString+Apex.m +332 -0
- data/ext/apex_ext/apex_src/src/_README.md +358 -0
- data/ext/apex_ext/apex_src/src/apex.c +6326 -0
- data/ext/apex_ext/apex_src/src/buffer.c +93 -0
- data/ext/apex_ext/apex_src/src/extensions/abbreviations.c +362 -0
- data/ext/apex_ext/apex_src/src/extensions/abbreviations.h +45 -0
- data/ext/apex_ext/apex_src/src/extensions/advanced_footnotes.c +184 -0
- data/ext/apex_ext/apex_src/src/extensions/advanced_footnotes.h +50 -0
- data/ext/apex_ext/apex_src/src/extensions/advanced_tables.c +1897 -0
- data/ext/apex_ext/apex_src/src/extensions/advanced_tables.h +42 -0
- data/ext/apex_ext/apex_src/src/extensions/callouts.c +215 -0
- data/ext/apex_ext/apex_src/src/extensions/callouts.h +53 -0
- data/ext/apex_ext/apex_src/src/extensions/citations.c +2042 -0
- data/ext/apex_ext/apex_src/src/extensions/citations.h +163 -0
- data/ext/apex_ext/apex_src/src/extensions/critic.c +329 -0
- data/ext/apex_ext/apex_src/src/extensions/critic.h +48 -0
- data/ext/apex_ext/apex_src/src/extensions/definition_list.c +1670 -0
- data/ext/apex_ext/apex_src/src/extensions/definition_list.h +42 -0
- data/ext/apex_ext/apex_src/src/extensions/emoji.c +710 -0
- data/ext/apex_ext/apex_src/src/extensions/emoji.h +38 -0
- data/ext/apex_ext/apex_src/src/extensions/emoji_data.h +942 -0
- data/ext/apex_ext/apex_src/src/extensions/fenced_divs.c +925 -0
- data/ext/apex_ext/apex_src/src/extensions/fenced_divs.h +43 -0
- data/ext/apex_ext/apex_src/src/extensions/github-emoji.txt +869 -0
- data/ext/apex_ext/apex_src/src/extensions/grid_tables.c +1121 -0
- data/ext/apex_ext/apex_src/src/extensions/grid_tables.h +33 -0
- data/ext/apex_ext/apex_src/src/extensions/header_ids.c +626 -0
- data/ext/apex_ext/apex_src/src/extensions/header_ids.h +60 -0
- data/ext/apex_ext/apex_src/src/extensions/highlight.c +135 -0
- data/ext/apex_ext/apex_src/src/extensions/highlight.h +16 -0
- data/ext/apex_ext/apex_src/src/extensions/html_markdown.c +408 -0
- data/ext/apex_ext/apex_src/src/extensions/html_markdown.h +42 -0
- data/ext/apex_ext/apex_src/src/extensions/ial.c +4084 -0
- data/ext/apex_ext/apex_src/src/extensions/ial.h +145 -0
- data/ext/apex_ext/apex_src/src/extensions/includes.c +1536 -0
- data/ext/apex_ext/apex_src/src/extensions/includes.h +54 -0
- data/ext/apex_ext/apex_src/src/extensions/index.c +967 -0
- data/ext/apex_ext/apex_src/src/extensions/index.h +90 -0
- data/ext/apex_ext/apex_src/src/extensions/inline_footnotes.c +205 -0
- data/ext/apex_ext/apex_src/src/extensions/inline_footnotes.h +34 -0
- data/ext/apex_ext/apex_src/src/extensions/inline_tables.c +332 -0
- data/ext/apex_ext/apex_src/src/extensions/inline_tables.h +13 -0
- data/ext/apex_ext/apex_src/src/extensions/insert.c +248 -0
- data/ext/apex_ext/apex_src/src/extensions/insert.h +18 -0
- data/ext/apex_ext/apex_src/src/extensions/math.c +279 -0
- data/ext/apex_ext/apex_src/src/extensions/math.h +32 -0
- data/ext/apex_ext/apex_src/src/extensions/metadata.c +3046 -0
- data/ext/apex_ext/apex_src/src/extensions/metadata.h +125 -0
- data/ext/apex_ext/apex_src/src/extensions/relaxed_tables.c +1297 -0
- data/ext/apex_ext/apex_src/src/extensions/relaxed_tables.h +39 -0
- data/ext/apex_ext/apex_src/src/extensions/special_markers.c +194 -0
- data/ext/apex_ext/apex_src/src/extensions/special_markers.h +29 -0
- data/ext/apex_ext/apex_src/src/extensions/sup_sub.c +405 -0
- data/ext/apex_ext/apex_src/src/extensions/sup_sub.h +16 -0
- data/ext/apex_ext/apex_src/src/extensions/syntax_highlight.c +468 -0
- data/ext/apex_ext/apex_src/src/extensions/syntax_highlight.h +44 -0
- data/ext/apex_ext/apex_src/src/extensions/table_html_postprocess.c +2679 -0
- data/ext/apex_ext/apex_src/src/extensions/table_html_postprocess.h +23 -0
- data/ext/apex_ext/apex_src/src/extensions/toc.c +255 -0
- data/ext/apex_ext/apex_src/src/extensions/toc.h +34 -0
- data/ext/apex_ext/apex_src/src/extensions/wiki_links.c +624 -0
- data/ext/apex_ext/apex_src/src/extensions/wiki_links.h +58 -0
- data/ext/apex_ext/apex_src/src/html_renderer.c +2762 -0
- data/ext/apex_ext/apex_src/src/html_renderer.h +126 -0
- data/ext/apex_ext/apex_src/src/parser.c +227 -0
- data/ext/apex_ext/apex_src/src/plugins.c +895 -0
- data/ext/apex_ext/apex_src/src/plugins.h +39 -0
- data/ext/apex_ext/apex_src/src/plugins_env.c +187 -0
- data/ext/apex_ext/apex_src/src/plugins_remote.c +263 -0
- data/ext/apex_ext/apex_src/src/pretty_html.c +358 -0
- data/ext/apex_ext/apex_src/src/renderer.c +241 -0
- data/ext/apex_ext/apex_src/src/utf8.c +56 -0
- data/ext/apex_ext/apex_src/test-linux-build.sh +20 -0
- data/ext/apex_ext/apex_src/test.html +103 -0
- data/ext/apex_ext/apex_src/test_coverage.sh +121 -0
- data/ext/apex_ext/apex_src/test_ial_fenced.md +6 -0
- data/ext/apex_ext/apex_src/test_math_norm.py +79 -0
- data/ext/apex_ext/apex_src/test_pandoc_output.html +48 -0
- data/ext/apex_ext/apex_src/test_spm.sh +107 -0
- data/ext/apex_ext/apex_src/tests/ApexSPMTest/main.swift +50 -0
- data/ext/apex_ext/apex_src/tests/BENCHMARK_RESULTS.md +229 -0
- data/ext/apex_ext/apex_src/tests/CMakeLists.txt +24 -0
- data/ext/apex_ext/apex_src/tests/README.md +146 -0
- data/ext/apex_ext/apex_src/tests/benchmark.sh +113 -0
- data/ext/apex_ext/apex_src/tests/benchmark_comparison.sh +166 -0
- data/ext/apex_ext/apex_src/tests/compare_header_ids.sh +31 -0
- data/ext/apex_ext/apex_src/tests/fixtures/basic/headers.md +25 -0
- data/ext/apex_ext/apex_src/tests/fixtures/basic/list-interruption.md +24 -0
- data/ext/apex_ext/apex_src/tests/fixtures/basic/misc_markup.md +33 -0
- data/ext/apex_ext/apex_src/tests/fixtures/basic/test_basic.md +26 -0
- data/ext/apex_ext/apex_src/tests/fixtures/code/code-blocks.md +260 -0
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/SUMMARY.md +6 -0
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/chapter1.md +7 -0
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/index.txt +9 -0
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/intro.md +5 -0
- data/ext/apex_ext/apex_src/tests/fixtures/combine_summary/section1_1.md +5 -0
- data/ext/apex_ext/apex_src/tests/fixtures/comprehensive_test.md +620 -0
- data/ext/apex_ext/apex_src/tests/fixtures/debug_ref_image_ial.md +3 -0
- data/ext/apex_ext/apex_src/tests/fixtures/demos/ial.md +11 -0
- data/ext/apex_ext/apex_src/tests/fixtures/demos/ial_demo.md +177 -0
- data/ext/apex_ext/apex_src/tests/fixtures/extensions/emoji-autocorrect.md +94 -0
- data/ext/apex_ext/apex_src/tests/fixtures/extensions/emoji_test.md +3 -0
- data/ext/apex_ext/apex_src/tests/fixtures/extensions/kbd_test.md +3 -0
- data/ext/apex_ext/apex_src/tests/fixtures/ial/bracketed_spans_test.md +74 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/image_and_encoding_test.md +27 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/multimarkdown_image_attributes_test.md +60 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/pandoc_ial_image_test.md +27 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/width_height_conversion_test.md +94 -0
- data/ext/apex_ext/apex_src/tests/fixtures/img-in-div.md +16 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/code.py +4 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/data.csv +5 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/data.tsv +5 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/image.png +2 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/metadata_options.yml +11 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/nested.md +8 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/raw.html +4 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/simple.md +7 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/test_image.png +0 -0
- data/ext/apex_ext/apex_src/tests/fixtures/large_doc.md +1094 -0
- data/ext/apex_ext/apex_src/tests/fixtures/metadata_options.yml +11 -0
- data/ext/apex_ext/apex_src/tests/fixtures/output/gfm_header_id_test.md +96 -0
- data/ext/apex_ext/apex_src/tests/fixtures/output/test_citations.md +43 -0
- data/ext/apex_ext/apex_src/tests/fixtures/output/test_def_list_links.md +12 -0
- data/ext/apex_ext/apex_src/tests/fixtures/output/test_index_mmark.md +53 -0
- data/ext/apex_ext/apex_src/tests/fixtures/output/test_index_textindex.md +37 -0
- data/ext/apex_ext/apex_src/tests/fixtures/tables/advanced_tables_test.md +93 -0
- data/ext/apex_ext/apex_src/tests/fixtures/tables/inline_tables_test.md +38 -0
- data/ext/apex_ext/apex_src/tests/fixtures/tables/relaxed-table.md +12 -0
- data/ext/apex_ext/apex_src/tests/fixtures/tables/table_cr_line_endings.md +15 -0
- data/ext/apex_ext/apex_src/tests/fixtures/tables/table_no_trailing_newline.md +15 -0
- data/ext/apex_ext/apex_src/tests/generate_gfm_ids.sh +105 -0
- data/ext/apex_ext/apex_src/tests/generate_ial_demo.sh +143 -0
- data/ext/apex_ext/apex_src/tests/gfm_id_comparison_summary.md +96 -0
- data/ext/apex_ext/apex_src/tests/gh_api_test.md +6 -0
- data/ext/apex_ext/apex_src/tests/ial_demo.html +186 -0
- data/ext/apex_ext/apex_src/tests/include_code.py +19 -0
- data/ext/apex_ext/apex_src/tests/include_snippet.md +15 -0
- data/ext/apex_ext/apex_src/tests/multi_file_cli_test.sh +64 -0
- data/ext/apex_ext/apex_src/tests/sample_data.csv +7 -0
- data/ext/apex_ext/apex_src/tests/table_escaped_ltlt.md +4 -0
- data/ext/apex_ext/apex_src/tests/test_basic.c +74 -0
- data/ext/apex_ext/apex_src/tests/test_extensions.c +2116 -0
- data/ext/apex_ext/apex_src/tests/test_helpers.c +183 -0
- data/ext/apex_ext/apex_src/tests/test_helpers.h +91 -0
- data/ext/apex_ext/apex_src/tests/test_ial.c +282 -0
- data/ext/apex_ext/apex_src/tests/test_links.c +418 -0
- data/ext/apex_ext/apex_src/tests/test_marked_integration.c +265 -0
- data/ext/apex_ext/apex_src/tests/test_metadata.c +908 -0
- data/ext/apex_ext/apex_src/tests/test_output.c +1118 -0
- data/ext/apex_ext/apex_src/tests/test_plugins.c +219 -0
- data/ext/apex_ext/apex_src/tests/test_refs.bib +31 -0
- data/ext/apex_ext/apex_src/tests/test_runner.c +244 -0
- data/ext/apex_ext/apex_src/tests/test_syntax_highlight.c +198 -0
- data/ext/apex_ext/apex_src/tests/test_tables.c +862 -0
- data/ext/apex_ext/apex_src/tests/update_benchmarks.sh +9 -0
- data/ext/apex_ext/apex_src/tests/yaml_test.md +13 -0
- data/ext/apex_ext/apex_src/tests.rb +39 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/CMakeLists.txt +48 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/COPYING +170 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/CheckFileOffsetBits.c +14 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/CheckFileOffsetBits.cmake +43 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/FindAsan.cmake +74 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/Makefile.nmake +38 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/README.md +206 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/CMakeLists.txt +30 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/cplusplus.cpp +15 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/cplusplus.h +16 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/harness.c +111 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/harness.h +35 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/api_test/main.c +1169 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/appveyor.yml +21 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-bq-flat.md +16 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-bq-nested.md +13 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-code.md +11 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-fences.md +14 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-heading.md +9 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-hr.md +10 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-html.md +32 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-lheading.md +8 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-list-flat.md +67 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-list-nested.md +36 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-ref-flat.md +15 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/block-ref-nested.md +17 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-autolink.md +14 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-backticks.md +3 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-flat.md +5 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-nested.md +5 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-em-worst.md +5 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-entity.md +11 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-escape.md +15 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-html.md +44 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-links-flat.md +23 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-links-nested.md +13 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/inline-newlines.md +24 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/lorem1.md +13 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/samples/rawtabs.md +18 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/statistics.py +595 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/bench/stats.py +19 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/benchmarks.md +33 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/changelog.txt +1245 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/data/CaseFolding.txt +1495 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/CMakeLists.txt +119 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/autolink.c +508 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/autolink.h +8 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/cmark-gfm-core-extensions.h +54 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/core-extensions.c +27 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/ext_scanners.c +879 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/ext_scanners.h +24 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/ext_scanners.re +92 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/strikethrough.c +167 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/strikethrough.h +9 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/table.c +917 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/table.h +12 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/tagfilter.c +60 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/tagfilter.h +8 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/tasklist.c +156 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/tasklist.h +8 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/CMakeLists.txt +22 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/README.md +12 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzz_quadratic.c +91 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzz_quadratic_brackets.c +110 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/fuzz/fuzzloop.sh +28 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/CMakeLists.txt +10 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/make_man_page.py +133 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/man1/cmark-gfm.1 +78 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/man/man3/cmark-gfm.3 +1041 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/nmake.bat +1 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/CMakeLists.txt +230 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/arena.c +104 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/blocks.c +1622 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/buffer.c +278 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/buffer.h +116 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/case_fold_switch.inc +4327 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/chunk.h +135 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark-gfm-extension_api.h +737 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark-gfm.h +833 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark-gfm_version.h.in +7 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark.c +55 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark_ctype.c +44 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/cmark_ctype.h +33 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/commonmark.c +514 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/config.h.in +76 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/entities.inc +2138 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/footnotes.c +63 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/footnotes.h +27 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/houdini.h +57 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/houdini_href_e.c +100 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/houdini_html_e.c +66 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/houdini_html_u.c +149 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/html.c +502 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/html.h +27 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/inlines.c +1788 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/inlines.h +29 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/iterator.c +159 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/iterator.h +26 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/latex.c +468 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/libcmark-gfm.pc.in +10 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/linked_list.c +37 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/main.c +328 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/man.c +274 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/map.c +129 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/map.h +44 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/node.c +1045 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/node.h +167 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/parser.h +59 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/plaintext.c +218 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/plugin.c +36 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/plugin.h +34 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/references.c +43 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/references.h +26 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/registry.c +63 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/registry.h +24 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/render.c +213 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/render.h +62 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/scanners.c +14056 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/scanners.h +70 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/scanners.re +365 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/syntax_extension.c +149 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/syntax_extension.h +34 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/utf8.c +317 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/utf8.h +35 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/xml.c +182 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/suppressions +10 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/CMakeLists.txt +114 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/afl_test_cases/test.md +49 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/cmark-fuzz.c +58 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/cmark.py +105 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/entity_tests.py +67 -0
- 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 +38 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions.txt +920 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/fuzzing_dictionary +67 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/normalize.py +194 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/pathological_tests.py +160 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/regression.txt +375 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/roundtrip_tests.py +50 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/run-cmark-fuzz +4 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/smart_punct.txt +177 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/spec.txt +10212 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/spec_tests.py +152 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/toolchain-mingw32.cmake +17 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/Dockerfile +41 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/appveyor-build.bat +13 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/make_entities_inc.py +32 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/mkcasefold.pl +22 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/xml2md.xsl +319 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/tools/xml2md_gfm.xsl +80 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/why-cmark-and-not-x.md +104 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.js +6 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.py +37 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.rb +15 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper.rkt +208 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/wrappers/wrapper_ext.py +109 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/CMakeLists.txt +160 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/Changes +372 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/License +20 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/Makefile.am +51 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/ReadMe.md +46 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/announcement.msg +89 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/bootstrap +3 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/cmake/config.h.in +4 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/configure.ac +73 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/doc/doxygen.cfg +222 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/README.mkd +17 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/alpine-3.7 +26 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/fedora-25 +26 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/ubuntu-14.04 +29 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/docker/ubuntu-16.04 +24 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/anchors.yaml +10 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/array.yaml +2 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/global-tag.yaml +14 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/json.yaml +1 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/mapping.yaml +2 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/numbers.yaml +1 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/strings.yaml +7 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/tags.yaml +7 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/examples/yaml-version.yaml +3 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/include/Makefile.am +17 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/include/yaml.h +1999 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/pkg/ReadMe.md +77 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/Dockerfile +32 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/output/ReadMe +1 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/pkg/docker/scripts/libyaml-dist.sh +23 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/regression-inputs/clusterfuzz-testcase-minimized-5607885063061504.yml +1 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/Makefile.am +4 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/api.c +1393 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/dumper.c +394 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/emitter.c +2358 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/loader.c +544 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/parser.c +1416 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/reader.c +469 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/scanner.c +3598 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/writer.c +141 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/src/yaml_private.h +684 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/CMakeLists.txt +27 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/Makefile.am +9 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/ReadMe.md +63 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-deconstructor-alt.c +800 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-deconstructor.c +1127 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-reformatter-alt.c +217 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/example-reformatter.c +202 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-all-tests.sh +29 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-dumper.c +314 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-emitter-test-suite.c +290 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-emitter.c +327 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-loader.c +63 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-parser-test-suite.c +196 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-parser.c +88 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/run-scanner.c +63 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/test-reader.c +354 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/tests/test-version.c +29 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/yaml-0.1.pc.in +10 -0
- data/ext/apex_ext/apex_src/vendor/libyaml/yamlConfig.cmake.in +16 -0
- data/ext/apex_ext/extconf.rb +103 -0
- data/lib/apex/configurable.rb +46 -0
- data/lib/apex/document.rb +66 -0
- data/lib/apex/version.rb +15 -0
- data/lib/apex.rb +28 -0
- metadata +544 -0
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.10)
|
|
2
|
+
# Set policy version minimum for compatibility with newer CMake versions
|
|
3
|
+
# This is especially important for cmark-gfm subdirectory
|
|
4
|
+
if(POLICY CMP0000)
|
|
5
|
+
cmake_policy(SET CMP0000 NEW)
|
|
6
|
+
endif()
|
|
7
|
+
set(CMAKE_POLICY_VERSION_MINIMUM 3.5 CACHE STRING "Minimum CMake policy version" FORCE)
|
|
8
|
+
|
|
9
|
+
project(apex VERSION 0.1.73 LANGUAGES C)
|
|
10
|
+
|
|
11
|
+
# Set C standard
|
|
12
|
+
set(CMAKE_C_STANDARD 99)
|
|
13
|
+
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
14
|
+
|
|
15
|
+
# Build type
|
|
16
|
+
if(NOT CMAKE_BUILD_TYPE)
|
|
17
|
+
set(CMAKE_BUILD_TYPE Release)
|
|
18
|
+
endif()
|
|
19
|
+
|
|
20
|
+
# Compiler flags
|
|
21
|
+
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
|
|
22
|
+
add_compile_options(-Wall -Wextra -Wpedantic)
|
|
23
|
+
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
|
24
|
+
add_compile_options(-g -O0)
|
|
25
|
+
else()
|
|
26
|
+
add_compile_options(-O3)
|
|
27
|
+
endif()
|
|
28
|
+
endif()
|
|
29
|
+
|
|
30
|
+
# Find libyaml for YAML parsing (arrays, nested structures)
|
|
31
|
+
#
|
|
32
|
+
# We try a few common pkg-config names in order:
|
|
33
|
+
# - yaml-0.1 (Homebrew / many distros)
|
|
34
|
+
# - yaml (some distros)
|
|
35
|
+
# - libyaml (fallback)
|
|
36
|
+
#
|
|
37
|
+
# If that fails, we fall back to find_package(yaml).
|
|
38
|
+
find_package(PkgConfig QUIET)
|
|
39
|
+
if(PkgConfig_FOUND)
|
|
40
|
+
pkg_check_modules(YAML yaml-0.1 QUIET)
|
|
41
|
+
if(NOT YAML_FOUND)
|
|
42
|
+
pkg_check_modules(YAML yaml QUIET)
|
|
43
|
+
endif()
|
|
44
|
+
if(NOT YAML_FOUND)
|
|
45
|
+
pkg_check_modules(YAML libyaml QUIET)
|
|
46
|
+
endif()
|
|
47
|
+
endif()
|
|
48
|
+
|
|
49
|
+
if(NOT YAML_FOUND)
|
|
50
|
+
find_package(yaml QUIET)
|
|
51
|
+
if(yaml_FOUND)
|
|
52
|
+
set(YAML_LIBRARIES yaml)
|
|
53
|
+
set(YAML_INCLUDE_DIRS ${yaml_INCLUDE_DIRS})
|
|
54
|
+
set(YAML_FOUND TRUE)
|
|
55
|
+
endif()
|
|
56
|
+
endif()
|
|
57
|
+
|
|
58
|
+
if(NOT YAML_FOUND)
|
|
59
|
+
message(WARNING "libyaml not found. YAML arrays and nested structures will not be supported.")
|
|
60
|
+
message(STATUS " Install libyaml-dev (Debian/Ubuntu) or libyaml-devel (RHEL/Fedora) or libyaml (Homebrew)")
|
|
61
|
+
set(YAML_FOUND FALSE)
|
|
62
|
+
else()
|
|
63
|
+
message(STATUS "libyaml: Found")
|
|
64
|
+
message(STATUS " Libraries: ${YAML_LIBRARIES}")
|
|
65
|
+
message(STATUS " Include dirs: ${YAML_INCLUDE_DIRS}")
|
|
66
|
+
endif()
|
|
67
|
+
|
|
68
|
+
# Build cmark-gfm as a subdirectory
|
|
69
|
+
# Disable cmark-gfm tests and programs
|
|
70
|
+
set(CMARK_TESTS OFF CACHE BOOL "Build cmark tests" FORCE)
|
|
71
|
+
set(CMARK_STATIC ON CACHE BOOL "Build static library" FORCE)
|
|
72
|
+
set(CMARK_SHARED ON CACHE BOOL "Build shared library" FORCE)
|
|
73
|
+
add_subdirectory(vendor/cmark-gfm)
|
|
74
|
+
|
|
75
|
+
# Silence noisy warnings from vendored cmark-gfm extensions
|
|
76
|
+
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
|
|
77
|
+
if(TARGET libcmark-gfm-extensions)
|
|
78
|
+
target_compile_options(libcmark-gfm-extensions PRIVATE -Wno-unused-parameter -Wno-c99-extensions)
|
|
79
|
+
endif()
|
|
80
|
+
if(TARGET libcmark-gfm-extensions_static)
|
|
81
|
+
target_compile_options(libcmark-gfm-extensions_static PRIVATE -Wno-unused-parameter -Wno-c99-extensions)
|
|
82
|
+
endif()
|
|
83
|
+
# Also suppress c99-extensions and unused-parameter warnings for cmark-gfm library targets
|
|
84
|
+
# The project name "cmark-gfm" creates an invalid macro #define cmark-gfm 1
|
|
85
|
+
if(TARGET libcmark-gfm)
|
|
86
|
+
target_compile_options(libcmark-gfm PRIVATE -Wno-c99-extensions -Wno-unused-parameter)
|
|
87
|
+
endif()
|
|
88
|
+
if(TARGET libcmark-gfm_static)
|
|
89
|
+
target_compile_options(libcmark-gfm_static PRIVATE -Wno-c99-extensions -Wno-unused-parameter)
|
|
90
|
+
endif()
|
|
91
|
+
endif()
|
|
92
|
+
|
|
93
|
+
# Include directories
|
|
94
|
+
include_directories(
|
|
95
|
+
${CMAKE_SOURCE_DIR}/include
|
|
96
|
+
${CMAKE_SOURCE_DIR}/vendor/cmark-gfm/src
|
|
97
|
+
${CMAKE_SOURCE_DIR}/vendor/cmark-gfm/extensions
|
|
98
|
+
${CMAKE_BINARY_DIR}/vendor/cmark-gfm/src # For generated headers
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
if(YAML_FOUND)
|
|
102
|
+
include_directories(${YAML_INCLUDE_DIRS})
|
|
103
|
+
link_directories(${YAML_LIBRARY_DIRS})
|
|
104
|
+
add_compile_definitions(APEX_HAVE_LIBYAML=1)
|
|
105
|
+
endif()
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
# Library source files
|
|
109
|
+
set(APEX_LIB_SOURCES
|
|
110
|
+
src/apex.c
|
|
111
|
+
src/plugins_env.c
|
|
112
|
+
src/plugins.c
|
|
113
|
+
src/plugins_remote.c
|
|
114
|
+
src/html_renderer.c
|
|
115
|
+
src/extensions/metadata.c
|
|
116
|
+
src/extensions/wiki_links.c
|
|
117
|
+
src/extensions/math.c
|
|
118
|
+
src/extensions/critic.c
|
|
119
|
+
src/extensions/callouts.c
|
|
120
|
+
src/extensions/includes.c
|
|
121
|
+
src/extensions/inline_tables.c
|
|
122
|
+
src/extensions/toc.c
|
|
123
|
+
src/extensions/abbreviations.c
|
|
124
|
+
src/extensions/emoji.c
|
|
125
|
+
src/extensions/special_markers.c
|
|
126
|
+
src/extensions/ial.c
|
|
127
|
+
src/extensions/definition_list.c
|
|
128
|
+
src/extensions/advanced_footnotes.c
|
|
129
|
+
src/extensions/advanced_tables.c
|
|
130
|
+
src/extensions/html_markdown.c
|
|
131
|
+
src/extensions/fenced_divs.c
|
|
132
|
+
src/extensions/table_html_postprocess.c
|
|
133
|
+
src/extensions/inline_footnotes.c
|
|
134
|
+
src/extensions/highlight.c
|
|
135
|
+
src/extensions/insert.c
|
|
136
|
+
src/extensions/sup_sub.c
|
|
137
|
+
src/extensions/header_ids.c
|
|
138
|
+
src/extensions/relaxed_tables.c
|
|
139
|
+
src/extensions/citations.c
|
|
140
|
+
src/extensions/index.c
|
|
141
|
+
src/extensions/syntax_highlight.c
|
|
142
|
+
src/pretty_html.c
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
# Build shared library
|
|
146
|
+
add_library(apex SHARED ${APEX_LIB_SOURCES})
|
|
147
|
+
set_target_properties(apex PROPERTIES
|
|
148
|
+
VERSION ${PROJECT_VERSION}
|
|
149
|
+
SOVERSION ${PROJECT_VERSION_MAJOR}
|
|
150
|
+
PUBLIC_HEADER include/apex/apex.h
|
|
151
|
+
)
|
|
152
|
+
if(YAML_FOUND)
|
|
153
|
+
target_link_libraries(apex libcmark-gfm-extensions libcmark-gfm ${YAML_LIBRARIES})
|
|
154
|
+
else()
|
|
155
|
+
target_link_libraries(apex libcmark-gfm-extensions libcmark-gfm)
|
|
156
|
+
endif()
|
|
157
|
+
|
|
158
|
+
# Build static library
|
|
159
|
+
add_library(apex_static STATIC ${APEX_LIB_SOURCES})
|
|
160
|
+
set_target_properties(apex_static PROPERTIES
|
|
161
|
+
OUTPUT_NAME apex
|
|
162
|
+
PUBLIC_HEADER include/apex/apex.h
|
|
163
|
+
)
|
|
164
|
+
if(YAML_FOUND)
|
|
165
|
+
target_link_libraries(apex_static libcmark-gfm-extensions_static libcmark-gfm_static ${YAML_LIBRARIES})
|
|
166
|
+
else()
|
|
167
|
+
target_link_libraries(apex_static libcmark-gfm-extensions_static libcmark-gfm_static)
|
|
168
|
+
endif()
|
|
169
|
+
|
|
170
|
+
# CLI executable
|
|
171
|
+
add_executable(apex_cli cli/main.c)
|
|
172
|
+
set_target_properties(apex_cli PROPERTIES OUTPUT_NAME apex)
|
|
173
|
+
if(YAML_FOUND)
|
|
174
|
+
target_link_libraries(apex_cli apex_static libcmark-gfm-extensions_static libcmark-gfm_static ${YAML_LIBRARIES})
|
|
175
|
+
# On macOS, change libyaml library path to use @rpath so it can be found in standard locations
|
|
176
|
+
# This allows the binary to work when copied to /usr/local/bin without requiring Homebrew
|
|
177
|
+
if(APPLE)
|
|
178
|
+
find_program(INSTALL_NAME_TOOL install_name_tool)
|
|
179
|
+
if(INSTALL_NAME_TOOL)
|
|
180
|
+
add_custom_command(TARGET apex_cli POST_BUILD
|
|
181
|
+
# Add rpaths for common libyaml locations
|
|
182
|
+
COMMAND ${INSTALL_NAME_TOOL} -add_rpath /usr/local/lib $<TARGET_FILE:apex_cli> 2>/dev/null || true
|
|
183
|
+
COMMAND ${INSTALL_NAME_TOOL} -add_rpath /opt/homebrew/lib $<TARGET_FILE:apex_cli> 2>/dev/null || true
|
|
184
|
+
# Change libyaml path from absolute to @rpath
|
|
185
|
+
# Try common Homebrew paths first
|
|
186
|
+
COMMAND ${INSTALL_NAME_TOOL} -change "/opt/homebrew/opt/libyaml/lib/libyaml-0.2.dylib" "@rpath/libyaml-0.2.dylib" $<TARGET_FILE:apex_cli> 2>/dev/null || true
|
|
187
|
+
COMMAND ${INSTALL_NAME_TOOL} -change "/usr/local/opt/libyaml/lib/libyaml-0.2.dylib" "@rpath/libyaml-0.2.dylib" $<TARGET_FILE:apex_cli> 2>/dev/null || true
|
|
188
|
+
# Handle build-time paths from CI/CD
|
|
189
|
+
COMMAND ${INSTALL_NAME_TOOL} -change "/Users/runner/work/apex/apex/deps/libyaml-universal/lib/libyaml-0.2.dylib" "@rpath/libyaml-0.2.dylib" $<TARGET_FILE:apex_cli> 2>/dev/null || true
|
|
190
|
+
COMMENT "Setting up rpaths and changing libyaml to use @rpath"
|
|
191
|
+
)
|
|
192
|
+
endif()
|
|
193
|
+
endif()
|
|
194
|
+
else()
|
|
195
|
+
target_link_libraries(apex_cli apex_static libcmark-gfm-extensions_static libcmark-gfm_static)
|
|
196
|
+
endif()
|
|
197
|
+
|
|
198
|
+
# Installation
|
|
199
|
+
install(TARGETS apex apex_static apex_cli
|
|
200
|
+
LIBRARY DESTINATION lib
|
|
201
|
+
ARCHIVE DESTINATION lib
|
|
202
|
+
RUNTIME DESTINATION bin
|
|
203
|
+
PUBLIC_HEADER DESTINATION include/apex
|
|
204
|
+
)
|
|
205
|
+
|
|
206
|
+
# macOS Framework (optional, when building on macOS)
|
|
207
|
+
if(APPLE)
|
|
208
|
+
option(BUILD_FRAMEWORK "Build macOS Framework" ON)
|
|
209
|
+
if(BUILD_FRAMEWORK)
|
|
210
|
+
add_library(apex_framework SHARED ${APEX_LIB_SOURCES})
|
|
211
|
+
set_target_properties(apex_framework PROPERTIES
|
|
212
|
+
FRAMEWORK TRUE
|
|
213
|
+
FRAMEWORK_VERSION A
|
|
214
|
+
MACOSX_FRAMEWORK_IDENTIFIER com.brettterpstra.apex
|
|
215
|
+
MACOSX_FRAMEWORK_INFO_PLIST ${CMAKE_SOURCE_DIR}/Info.plist.in
|
|
216
|
+
VERSION ${PROJECT_VERSION}
|
|
217
|
+
SOVERSION ${PROJECT_VERSION_MAJOR}
|
|
218
|
+
PUBLIC_HEADER include/apex/apex.h
|
|
219
|
+
OUTPUT_NAME Apex
|
|
220
|
+
)
|
|
221
|
+
if(YAML_FOUND)
|
|
222
|
+
target_link_libraries(apex_framework libcmark-gfm libcmark-gfm-extensions ${YAML_LIBRARIES})
|
|
223
|
+
else()
|
|
224
|
+
target_link_libraries(apex_framework libcmark-gfm libcmark-gfm-extensions)
|
|
225
|
+
endif()
|
|
226
|
+
|
|
227
|
+
# Install framework
|
|
228
|
+
# Use absolute path /Library/Frameworks (standard macOS framework location)
|
|
229
|
+
# Users can override with CMAKE_INSTALL_PREFIX if needed
|
|
230
|
+
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR CMAKE_INSTALL_PREFIX STREQUAL "/usr/local")
|
|
231
|
+
set(FRAMEWORK_INSTALL_DIR "/Library/Frameworks")
|
|
232
|
+
else()
|
|
233
|
+
set(FRAMEWORK_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/Library/Frameworks")
|
|
234
|
+
endif()
|
|
235
|
+
|
|
236
|
+
install(TARGETS apex_framework
|
|
237
|
+
FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR}
|
|
238
|
+
PUBLIC_HEADER DESTINATION ${FRAMEWORK_INSTALL_DIR}/Apex.framework/Headers
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
# Explicitly install the header file into the framework Headers directory
|
|
242
|
+
# (PUBLIC_HEADER doesn't automatically install into frameworks)
|
|
243
|
+
install(FILES include/apex/apex.h
|
|
244
|
+
DESTINATION ${FRAMEWORK_INSTALL_DIR}/Apex.framework/Headers
|
|
245
|
+
)
|
|
246
|
+
|
|
247
|
+
# Install module map for Swift support
|
|
248
|
+
install(FILES include/apex/module.modulemap
|
|
249
|
+
DESTINATION ${FRAMEWORK_INSTALL_DIR}/Apex.framework/Headers
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
# Post-install script to copy dylibs into framework and fix install names
|
|
253
|
+
# This runs after the framework is installed
|
|
254
|
+
install(CODE "
|
|
255
|
+
# Determine framework location (same logic as above)
|
|
256
|
+
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR CMAKE_INSTALL_PREFIX STREQUAL \"/usr/local\")
|
|
257
|
+
set(FRAMEWORK_INSTALL_DIR \"/Library/Frameworks\")
|
|
258
|
+
else()
|
|
259
|
+
set(FRAMEWORK_INSTALL_DIR \"\${CMAKE_INSTALL_PREFIX}/Library/Frameworks\")
|
|
260
|
+
endif()
|
|
261
|
+
set(FRAMEWORK_DIR \"\${FRAMEWORK_INSTALL_DIR}/Apex.framework\")
|
|
262
|
+
set(FRAMEWORK_FRAMEWORKS_DIR \"\${FRAMEWORK_DIR}/Frameworks\")
|
|
263
|
+
set(FRAMEWORK_BINARY \"\${FRAMEWORK_DIR}/Apex\")
|
|
264
|
+
set(BUILD_DIR \"${CMAKE_BINARY_DIR}\")
|
|
265
|
+
|
|
266
|
+
# Create Frameworks directory inside the framework
|
|
267
|
+
file(MAKE_DIRECTORY \"\${FRAMEWORK_FRAMEWORKS_DIR}\")
|
|
268
|
+
|
|
269
|
+
# Find dylibs in build directory
|
|
270
|
+
file(GLOB CMARK_GFM_DYLIB_BUILD \"\${BUILD_DIR}/vendor/cmark-gfm/src/libcmark-gfm*.dylib\")
|
|
271
|
+
file(GLOB CMARK_GFM_EXTENSIONS_DYLIB_BUILD \"\${BUILD_DIR}/vendor/cmark-gfm/extensions/libcmark-gfm-extensions*.dylib\")
|
|
272
|
+
|
|
273
|
+
# Copy and fix cmark-gfm dylib
|
|
274
|
+
if(CMARK_GFM_DYLIB_BUILD)
|
|
275
|
+
# Get first file from glob result (in case multiple files found)
|
|
276
|
+
list(GET CMARK_GFM_DYLIB_BUILD 0 CMARK_GFM_DYLIB_SINGLE)
|
|
277
|
+
get_filename_component(CMARK_GFM_NAME \"\${CMARK_GFM_DYLIB_SINGLE}\" NAME)
|
|
278
|
+
set(CMARK_GFM_DEST \"\${FRAMEWORK_FRAMEWORKS_DIR}/\${CMARK_GFM_NAME}\")
|
|
279
|
+
file(COPY \"\${CMARK_GFM_DYLIB_SINGLE}\" DESTINATION \"\${FRAMEWORK_FRAMEWORKS_DIR}\")
|
|
280
|
+
# Fix install name
|
|
281
|
+
execute_process(
|
|
282
|
+
COMMAND install_name_tool -id \"@rpath/Apex.framework/Frameworks/\${CMARK_GFM_NAME}\" \"\${CMARK_GFM_DEST}\"
|
|
283
|
+
RESULT_VARIABLE RESULT
|
|
284
|
+
ERROR_QUIET
|
|
285
|
+
)
|
|
286
|
+
# Fix framework binary reference
|
|
287
|
+
execute_process(
|
|
288
|
+
COMMAND install_name_tool -change \"@rpath/\${CMARK_GFM_NAME}\" \"@rpath/Apex.framework/Frameworks/\${CMARK_GFM_NAME}\" \"\${FRAMEWORK_BINARY}\"
|
|
289
|
+
RESULT_VARIABLE RESULT
|
|
290
|
+
ERROR_QUIET
|
|
291
|
+
)
|
|
292
|
+
endif()
|
|
293
|
+
|
|
294
|
+
# Copy and fix cmark-gfm-extensions dylib
|
|
295
|
+
if(CMARK_GFM_EXTENSIONS_DYLIB_BUILD)
|
|
296
|
+
# Get first file from glob result (in case multiple files found)
|
|
297
|
+
list(GET CMARK_GFM_EXTENSIONS_DYLIB_BUILD 0 CMARK_GFM_EXTENSIONS_DYLIB_SINGLE)
|
|
298
|
+
get_filename_component(CMARK_GFM_EXTENSIONS_NAME \"\${CMARK_GFM_EXTENSIONS_DYLIB_SINGLE}\" NAME)
|
|
299
|
+
set(CMARK_GFM_EXTENSIONS_DEST \"\${FRAMEWORK_FRAMEWORKS_DIR}/\${CMARK_GFM_EXTENSIONS_NAME}\")
|
|
300
|
+
file(COPY \"\${CMARK_GFM_EXTENSIONS_DYLIB_SINGLE}\" DESTINATION \"\${FRAMEWORK_FRAMEWORKS_DIR}\")
|
|
301
|
+
# Fix install name
|
|
302
|
+
execute_process(
|
|
303
|
+
COMMAND install_name_tool -id \"@rpath/Apex.framework/Frameworks/\${CMARK_GFM_EXTENSIONS_NAME}\" \"\${CMARK_GFM_EXTENSIONS_DEST}\"
|
|
304
|
+
RESULT_VARIABLE RESULT
|
|
305
|
+
ERROR_QUIET
|
|
306
|
+
)
|
|
307
|
+
# Fix framework binary reference
|
|
308
|
+
execute_process(
|
|
309
|
+
COMMAND install_name_tool -change \"@rpath/\${CMARK_GFM_EXTENSIONS_NAME}\" \"@rpath/Apex.framework/Frameworks/\${CMARK_GFM_EXTENSIONS_NAME}\" \"\${FRAMEWORK_BINARY}\"
|
|
310
|
+
RESULT_VARIABLE RESULT
|
|
311
|
+
ERROR_QUIET
|
|
312
|
+
)
|
|
313
|
+
# Fix cmark-gfm-extensions to reference cmark-gfm from within framework
|
|
314
|
+
if(CMARK_GFM_DYLIB_BUILD)
|
|
315
|
+
# Get first file from glob result (in case multiple files found)
|
|
316
|
+
list(GET CMARK_GFM_DYLIB_BUILD 0 CMARK_GFM_DYLIB_SINGLE)
|
|
317
|
+
get_filename_component(CMARK_GFM_NAME \"\${CMARK_GFM_DYLIB_SINGLE}\" NAME)
|
|
318
|
+
execute_process(
|
|
319
|
+
COMMAND install_name_tool -change \"@rpath/\${CMARK_GFM_NAME}\" \"@rpath/Apex.framework/Frameworks/\${CMARK_GFM_NAME}\" \"\${CMARK_GFM_EXTENSIONS_DEST}\"
|
|
320
|
+
RESULT_VARIABLE RESULT
|
|
321
|
+
ERROR_QUIET
|
|
322
|
+
)
|
|
323
|
+
endif()
|
|
324
|
+
endif()
|
|
325
|
+
")
|
|
326
|
+
endif()
|
|
327
|
+
endif()
|
|
328
|
+
|
|
329
|
+
# Testing
|
|
330
|
+
enable_testing()
|
|
331
|
+
|
|
332
|
+
# Test runner executable
|
|
333
|
+
add_executable(apex_test_runner
|
|
334
|
+
tests/test_helpers.c
|
|
335
|
+
tests/test_runner.c
|
|
336
|
+
tests/test_basic.c
|
|
337
|
+
tests/test_metadata.c
|
|
338
|
+
tests/test_links.c
|
|
339
|
+
tests/test_tables.c
|
|
340
|
+
tests/test_ial.c
|
|
341
|
+
tests/test_extensions.c
|
|
342
|
+
tests/test_output.c
|
|
343
|
+
tests/test_marked_integration.c
|
|
344
|
+
tests/test_syntax_highlight.c
|
|
345
|
+
tests/test_plugins.c
|
|
346
|
+
)
|
|
347
|
+
target_link_libraries(apex_test_runner apex_static)
|
|
348
|
+
target_compile_definitions(apex_test_runner PRIVATE TEST_FIXTURES_DIR="${CMAKE_SOURCE_DIR}/tests/fixtures/includes")
|
|
349
|
+
|
|
350
|
+
# Add test
|
|
351
|
+
add_test(NAME apex_tests COMMAND apex_test_runner)
|
|
352
|
+
|
|
353
|
+
# Documentation
|
|
354
|
+
option(BUILD_DOCS "Build documentation" OFF)
|
|
355
|
+
if(BUILD_DOCS)
|
|
356
|
+
find_package(Doxygen)
|
|
357
|
+
if(DOXYGEN_FOUND)
|
|
358
|
+
add_custom_target(docs
|
|
359
|
+
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Doxyfile
|
|
360
|
+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
361
|
+
COMMENT "Generating API documentation with Doxygen"
|
|
362
|
+
)
|
|
363
|
+
endif()
|
|
364
|
+
endif()
|
|
365
|
+
|
|
366
|
+
# Man page handling
|
|
367
|
+
# Define all man page sources and their sections
|
|
368
|
+
set(MAN_PAGES
|
|
369
|
+
"apex.1.md:1:apex"
|
|
370
|
+
"apex-config.5.md:5:apex-config"
|
|
371
|
+
"apex-plugins.7.md:7:apex-plugins"
|
|
372
|
+
)
|
|
373
|
+
|
|
374
|
+
# Find man page generation tools
|
|
375
|
+
find_program(PANDOC_EXECUTABLE pandoc)
|
|
376
|
+
find_program(GO_MD2MAN_EXECUTABLE go-md2man)
|
|
377
|
+
|
|
378
|
+
set(MAN_AVAILABLE FALSE)
|
|
379
|
+
set(MAN_OUTPUTS "")
|
|
380
|
+
|
|
381
|
+
# Process each man page
|
|
382
|
+
foreach(MAN_PAGE_SPEC ${MAN_PAGES})
|
|
383
|
+
string(REPLACE ":" ";" MAN_PAGE_PARTS ${MAN_PAGE_SPEC})
|
|
384
|
+
list(GET MAN_PAGE_PARTS 0 MAN_SOURCE_NAME)
|
|
385
|
+
list(GET MAN_PAGE_PARTS 1 MAN_SECTION)
|
|
386
|
+
list(GET MAN_PAGE_PARTS 2 MAN_NAME)
|
|
387
|
+
|
|
388
|
+
set(MAN_SOURCE ${CMAKE_SOURCE_DIR}/man/${MAN_SOURCE_NAME})
|
|
389
|
+
set(MAN_PREGENERATED ${CMAKE_SOURCE_DIR}/man/${MAN_NAME}.${MAN_SECTION})
|
|
390
|
+
set(MAN_OUTPUT ${CMAKE_BINARY_DIR}/${MAN_NAME}.${MAN_SECTION})
|
|
391
|
+
|
|
392
|
+
list(APPEND MAN_OUTPUTS ${MAN_OUTPUT})
|
|
393
|
+
|
|
394
|
+
# Check if pre-generated man page exists
|
|
395
|
+
if(EXISTS ${MAN_PREGENERATED})
|
|
396
|
+
# Use pre-generated man page (copy to build directory for installation)
|
|
397
|
+
add_custom_command(
|
|
398
|
+
OUTPUT ${MAN_OUTPUT}
|
|
399
|
+
COMMAND ${CMAKE_COMMAND} -E copy ${MAN_PREGENERATED} ${MAN_OUTPUT}
|
|
400
|
+
DEPENDS ${MAN_PREGENERATED}
|
|
401
|
+
COMMENT "Using pre-generated man/${MAN_NAME}.${MAN_SECTION}"
|
|
402
|
+
)
|
|
403
|
+
set(MAN_AVAILABLE TRUE)
|
|
404
|
+
else()
|
|
405
|
+
# Try to generate man page from Markdown source
|
|
406
|
+
if(PANDOC_EXECUTABLE)
|
|
407
|
+
add_custom_command(
|
|
408
|
+
OUTPUT ${MAN_OUTPUT}
|
|
409
|
+
COMMAND ${PANDOC_EXECUTABLE} -s -t man -o ${MAN_OUTPUT} ${MAN_SOURCE}
|
|
410
|
+
DEPENDS ${MAN_SOURCE}
|
|
411
|
+
COMMENT "Generating man page ${MAN_NAME}.${MAN_SECTION} from Markdown using pandoc"
|
|
412
|
+
)
|
|
413
|
+
set(MAN_AVAILABLE TRUE)
|
|
414
|
+
elseif(GO_MD2MAN_EXECUTABLE)
|
|
415
|
+
add_custom_command(
|
|
416
|
+
OUTPUT ${MAN_OUTPUT}
|
|
417
|
+
COMMAND ${GO_MD2MAN_EXECUTABLE} -in=${MAN_SOURCE} -out=${MAN_OUTPUT}
|
|
418
|
+
DEPENDS ${MAN_SOURCE}
|
|
419
|
+
COMMENT "Generating man page ${MAN_NAME}.${MAN_SECTION} from Markdown using go-md2man"
|
|
420
|
+
)
|
|
421
|
+
set(MAN_AVAILABLE TRUE)
|
|
422
|
+
endif()
|
|
423
|
+
endif()
|
|
424
|
+
|
|
425
|
+
# Install man page
|
|
426
|
+
if(MAN_AVAILABLE)
|
|
427
|
+
install(FILES ${MAN_OUTPUT}
|
|
428
|
+
DESTINATION share/man/man${MAN_SECTION}
|
|
429
|
+
RENAME ${MAN_NAME}.${MAN_SECTION}
|
|
430
|
+
)
|
|
431
|
+
endif()
|
|
432
|
+
endforeach()
|
|
433
|
+
|
|
434
|
+
# Create a target that depends on all man pages
|
|
435
|
+
if(MAN_AVAILABLE)
|
|
436
|
+
if(PANDOC_EXECUTABLE OR GO_MD2MAN_EXECUTABLE)
|
|
437
|
+
add_custom_target(man_pages ALL DEPENDS ${MAN_OUTPUTS})
|
|
438
|
+
message(STATUS "Man pages: Will be generated from Markdown sources")
|
|
439
|
+
else()
|
|
440
|
+
add_custom_target(man_pages_copy ALL DEPENDS ${MAN_OUTPUTS})
|
|
441
|
+
message(STATUS "Man pages: Using pre-generated man pages")
|
|
442
|
+
endif()
|
|
443
|
+
else()
|
|
444
|
+
message(WARNING "Pre-generated man pages not found and neither pandoc nor go-md2man available.")
|
|
445
|
+
message(STATUS " Man pages will not be installed. Generate them with 'make man' before building.")
|
|
446
|
+
endif()
|
|
447
|
+
|
|
448
|
+
# Print configuration
|
|
449
|
+
message(STATUS "Apex ${PROJECT_VERSION}")
|
|
450
|
+
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
|
|
451
|
+
message(STATUS "C Compiler: ${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}")
|
|
452
|
+
if(APPLE AND BUILD_FRAMEWORK)
|
|
453
|
+
message(STATUS "macOS Framework: Enabled")
|
|
454
|
+
endif()
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Dockerfile for testing Linux builds locally
|
|
2
|
+
# Matches the GitHub Actions ubuntu-latest environment
|
|
3
|
+
|
|
4
|
+
FROM ubuntu:latest
|
|
5
|
+
|
|
6
|
+
# Install build dependencies
|
|
7
|
+
RUN apt-get update && apt-get install -y \
|
|
8
|
+
build-essential \
|
|
9
|
+
cmake \
|
|
10
|
+
git \
|
|
11
|
+
libyaml-dev \
|
|
12
|
+
pkg-config \
|
|
13
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
14
|
+
|
|
15
|
+
WORKDIR /workspace
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Homebrew formula for Apex
|
|
2
|
+
# To use this formula, create a tap:
|
|
3
|
+
# brew tap ttscoff/thelab https://github.com/ttscoff/homebrew-thelab
|
|
4
|
+
# Then install:
|
|
5
|
+
# brew install apex
|
|
6
|
+
|
|
7
|
+
class Apex < Formula
|
|
8
|
+
desc "Unified Markdown processor supporting CommonMark, GFM, MultiMarkdown, and Kramdown"
|
|
9
|
+
homepage "https://github.com/ApexMarkdown/apex"
|
|
10
|
+
version "0.1.73"
|
|
11
|
+
license "MIT"
|
|
12
|
+
|
|
13
|
+
depends_on "libyaml"
|
|
14
|
+
|
|
15
|
+
on_macos do
|
|
16
|
+
url "https://github.com/ApexMarkdown/apex/releases/download/v#{version}/apex-#{version}-macos-universal.tar.gz"
|
|
17
|
+
sha256 "cdcdc77d43cff76cd0bca0936f482f4053c0970f65e4165666251ad7e768ade4"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def install
|
|
21
|
+
bin.install "apex"
|
|
22
|
+
# Fix libyaml path to point to Homebrew's libyaml
|
|
23
|
+
# This handles both Apple Silicon (/opt/homebrew) and Intel (/usr/local) installations
|
|
24
|
+
libyaml_path = "#{HOMEBREW_PREFIX}/lib/libyaml-0.2.dylib"
|
|
25
|
+
if File.exist?(libyaml_path)
|
|
26
|
+
system "install_name_tool", "-change",
|
|
27
|
+
"/Users/runner/work/apex/apex/deps/libyaml-universal/lib/libyaml-0.2.dylib",
|
|
28
|
+
libyaml_path,
|
|
29
|
+
bin/"apex"
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
test do
|
|
34
|
+
(testpath / "test.md").write("# Hello World\n")
|
|
35
|
+
assert_match "<h1 id=\"hello-world\">Hello World</h1>", shell_output("#{bin}/apex test.md")
|
|
36
|
+
assert_match version.to_s, shell_output("#{bin}/apex --version", 2)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
3
|
+
<plist version="1.0">
|
|
4
|
+
<dict>
|
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
|
6
|
+
<string>en</string>
|
|
7
|
+
<key>CFBundleExecutable</key>
|
|
8
|
+
<string>${MACOSX_FRAMEWORK_NAME}</string>
|
|
9
|
+
<key>CFBundleIdentifier</key>
|
|
10
|
+
<string>${MACOSX_FRAMEWORK_IDENTIFIER}</string>
|
|
11
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
|
12
|
+
<string>6.0</string>
|
|
13
|
+
<key>CFBundleName</key>
|
|
14
|
+
<string>${MACOSX_FRAMEWORK_NAME}</string>
|
|
15
|
+
<key>CFBundlePackageType</key>
|
|
16
|
+
<string>FMWK</string>
|
|
17
|
+
<key>CFBundleShortVersionString</key>
|
|
18
|
+
<string>${MACOSX_FRAMEWORK_SHORT_VERSION_STRING}</string>
|
|
19
|
+
<key>CFBundleVersion</key>
|
|
20
|
+
<string>${MACOSX_FRAMEWORK_BUNDLE_VERSION}</string>
|
|
21
|
+
<key>NSHumanReadableCopyright</key>
|
|
22
|
+
<string>Copyright © 2025 Brett Terpstra. All rights reserved.</string>
|
|
23
|
+
<key>NSPrincipalClass</key>
|
|
24
|
+
<string></string>
|
|
25
|
+
</dict>
|
|
26
|
+
</plist>
|
|
27
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Brett Terpstra
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|