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,1622 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
|
|
4
|
+
<head>
|
|
5
|
+
|
|
6
|
+
<meta charset="UTF-8">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
8
|
+
<meta name="generator" content="Apex 0.1.49">
|
|
9
|
+
<title>Document</title>
|
|
10
|
+
<style>
|
|
11
|
+
body {
|
|
12
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
|
|
13
|
+
line-height: 1.6;
|
|
14
|
+
max-width: 800px;
|
|
15
|
+
margin: 2rem auto;
|
|
16
|
+
padding: 0 1rem;
|
|
17
|
+
color: #333;
|
|
18
|
+
}
|
|
19
|
+
pre { background: #f5f5f5; padding: 1rem; overflow-x: auto; }
|
|
20
|
+
code { background: #f0f0f0; padding: 0.2em 0.4em; border-radius: 3px; }
|
|
21
|
+
blockquote { border-left: 4px solid #ddd; margin: 0; padding-left: 1rem; color: #666; }
|
|
22
|
+
table { border-collapse: collapse; width: 100%%; }
|
|
23
|
+
th, td { border: 1px solid #ddd; padding: 0.5rem; }
|
|
24
|
+
th { background: #f5f5f5; }
|
|
25
|
+
tfoot td { background: #e8e8e8; }
|
|
26
|
+
figure.table-figure { width: fit-content; margin: 1em 0; }
|
|
27
|
+
figure.table-figure table { width: auto; }
|
|
28
|
+
figcaption { text-align: center; font-weight: bold; font-size: 0.8em; }
|
|
29
|
+
.page-break { page-break-after: always; }
|
|
30
|
+
.callout { padding: 1rem; margin: 1rem 0; border-left: 4px solid; }
|
|
31
|
+
.callout-note { border-color: #3b82f6; background: #eff6ff; }
|
|
32
|
+
.callout-warning { border-color: #f59e0b; background: #fffbeb; }
|
|
33
|
+
.callout-tip { border-color: #10b981; background: #f0fdf4; }
|
|
34
|
+
.callout-danger { border-color: #ef4444; background: #fef2f2; }
|
|
35
|
+
ins { background: #d4fcbc; text-decoration: none; }
|
|
36
|
+
del { background: #fbb6c2; text-decoration: line-through; }
|
|
37
|
+
mark { background: #fff3cd; }
|
|
38
|
+
.critic.comment { background: #e7e7e7; color: #666; font-style: italic; }
|
|
39
|
+
</style>
|
|
40
|
+
<style>
|
|
41
|
+
/* Base styles */
|
|
42
|
+
body {
|
|
43
|
+
-webkit-font-smoothing: antialiased;
|
|
44
|
+
-moz-osx-font-smoothing: grayscale;
|
|
45
|
+
font-size: 17px;
|
|
46
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
|
47
|
+
"Helvetica Neue", Arial, sans-serif;
|
|
48
|
+
line-height: 1.65;
|
|
49
|
+
color: #1e293b;
|
|
50
|
+
background-color: #fff;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* Sidebar / Main TOC - wider on larger screens */
|
|
54
|
+
.main-toc,
|
|
55
|
+
.sidebar {
|
|
56
|
+
position: fixed;
|
|
57
|
+
left: 0;
|
|
58
|
+
top: 0;
|
|
59
|
+
width: auto;
|
|
60
|
+
min-width: 180px;
|
|
61
|
+
max-width: 250px;
|
|
62
|
+
height: 100vh;
|
|
63
|
+
overflow-y: auto;
|
|
64
|
+
background: #1e293b;
|
|
65
|
+
color: rgba(255, 255, 255, 0.9);
|
|
66
|
+
border-right: 2px solid rgba(255, 255, 255, 0.1);
|
|
67
|
+
padding: 24px 20px 130px;
|
|
68
|
+
font-size: 14px;
|
|
69
|
+
z-index: 100;
|
|
70
|
+
margin-right: 1rem;
|
|
71
|
+
box-shadow: 4px 0 24px rgba(0, 0, 0, 0.08);
|
|
72
|
+
transition: transform 0.3s ease;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.main-toc ul,
|
|
76
|
+
.sidebar ul {
|
|
77
|
+
list-style: none;
|
|
78
|
+
padding-left: 0;
|
|
79
|
+
margin: 0;
|
|
80
|
+
padding-bottom: 80px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.main-toc ul::after,
|
|
84
|
+
.sidebar ul::after {
|
|
85
|
+
content: "";
|
|
86
|
+
display: block;
|
|
87
|
+
height: 80px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.main-toc li,
|
|
91
|
+
.sidebar li {
|
|
92
|
+
margin: 0.25em 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.main-toc a,
|
|
96
|
+
.sidebar a {
|
|
97
|
+
color: rgba(255, 255, 255, 0.85);
|
|
98
|
+
text-decoration: none;
|
|
99
|
+
display: block;
|
|
100
|
+
padding: 6px 12px;
|
|
101
|
+
border-radius: 4px;
|
|
102
|
+
transition: all 0.15s ease;
|
|
103
|
+
white-space: nowrap;
|
|
104
|
+
overflow: hidden;
|
|
105
|
+
text-overflow: ellipsis;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.main-toc a:hover,
|
|
109
|
+
.sidebar a:hover {
|
|
110
|
+
background: #334155;
|
|
111
|
+
color: #fff;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.sidebar a.active {
|
|
115
|
+
color: #0ea5e9;
|
|
116
|
+
font-weight: 500;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* Body margin for sidebar */
|
|
120
|
+
body {
|
|
121
|
+
margin-left: 270px;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* Hamburger menu button */
|
|
125
|
+
.hamburger-menu {
|
|
126
|
+
display: none;
|
|
127
|
+
position: fixed;
|
|
128
|
+
top: 12px;
|
|
129
|
+
left: 12px;
|
|
130
|
+
z-index: 200;
|
|
131
|
+
background: #1e293b;
|
|
132
|
+
border: 2px solid rgba(255, 255, 255, 0.1);
|
|
133
|
+
border-radius: 6px;
|
|
134
|
+
padding: 10px;
|
|
135
|
+
cursor: pointer;
|
|
136
|
+
color: rgba(255, 255, 255, 0.9);
|
|
137
|
+
font-size: 20px;
|
|
138
|
+
line-height: 1;
|
|
139
|
+
width: 44px;
|
|
140
|
+
height: 44px;
|
|
141
|
+
align-items: center;
|
|
142
|
+
justify-content: center;
|
|
143
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
|
|
144
|
+
transition: all 0.2s ease;
|
|
145
|
+
opacity: 0.2;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.hamburger-menu:hover {
|
|
149
|
+
background: #334155;
|
|
150
|
+
color: #fff;
|
|
151
|
+
opacity: 1;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/* Move hamburger to the right of the sidebar when menu is open */
|
|
155
|
+
.hamburger-menu.active {
|
|
156
|
+
left: calc(
|
|
157
|
+
250px + 12px
|
|
158
|
+
); /* Position just to the right of sidebar (max-width 250px + 12px padding) */
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.hamburger-menu.active {
|
|
162
|
+
background: #0ea5e9;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.hamburger-menu::before {
|
|
166
|
+
content: "☰";
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.hamburger-menu.active::before {
|
|
170
|
+
content: "✕";
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* Mobile menu overlay */
|
|
174
|
+
.mobile-menu-overlay {
|
|
175
|
+
display: none;
|
|
176
|
+
position: fixed;
|
|
177
|
+
top: 0;
|
|
178
|
+
left: 0;
|
|
179
|
+
right: 0;
|
|
180
|
+
bottom: 0;
|
|
181
|
+
background: rgba(0, 0, 0, 0.5);
|
|
182
|
+
z-index: 150;
|
|
183
|
+
opacity: 0;
|
|
184
|
+
visibility: hidden;
|
|
185
|
+
transition: opacity 0.3s ease, visibility 0.3s ease;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.mobile-menu-overlay.active {
|
|
189
|
+
opacity: 1;
|
|
190
|
+
visibility: visible;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/* Page TOC */
|
|
194
|
+
.page-toc {
|
|
195
|
+
background: #f9f9f9;
|
|
196
|
+
border: 1px solid #ddd;
|
|
197
|
+
border-radius: 4px;
|
|
198
|
+
padding: 1rem;
|
|
199
|
+
margin: 1.5rem 0;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.page-toc ul {
|
|
203
|
+
list-style: none;
|
|
204
|
+
padding-left: 0;
|
|
205
|
+
margin: 0;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.page-toc > ul {
|
|
209
|
+
padding-left: 0;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.page-toc li {
|
|
213
|
+
margin: 0.25em 0;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.page-toc a {
|
|
217
|
+
color: #0066cc;
|
|
218
|
+
text-decoration: none;
|
|
219
|
+
display: block;
|
|
220
|
+
padding: 0.25em 0.5em;
|
|
221
|
+
border-radius: 3px;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.page-toc a:hover {
|
|
225
|
+
background: #e0e0e0;
|
|
226
|
+
color: #004499;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.page-toc ul ul {
|
|
230
|
+
list-style: none;
|
|
231
|
+
padding-left: 1.5em;
|
|
232
|
+
margin-top: 0.25em;
|
|
233
|
+
margin-left: 0;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.page-toc ul ul ul {
|
|
237
|
+
padding-left: 1.5em;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.page-toc ul ul a {
|
|
241
|
+
font-size: 0.9em;
|
|
242
|
+
color: #555;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.page-toc ul ul ul a {
|
|
246
|
+
font-size: 0.85em;
|
|
247
|
+
color: #666;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* Floating TOC */
|
|
251
|
+
.floating-toc {
|
|
252
|
+
position: fixed;
|
|
253
|
+
top: 0;
|
|
254
|
+
left: 270px;
|
|
255
|
+
right: 0;
|
|
256
|
+
z-index: 50;
|
|
257
|
+
opacity: 0;
|
|
258
|
+
visibility: hidden;
|
|
259
|
+
transition: opacity 0.2s ease, visibility 0.2s ease;
|
|
260
|
+
pointer-events: none;
|
|
261
|
+
display: flex;
|
|
262
|
+
justify-content: flex-end;
|
|
263
|
+
padding-right: 2rem;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.floating-toc.visible {
|
|
267
|
+
opacity: 1;
|
|
268
|
+
visibility: visible;
|
|
269
|
+
pointer-events: auto;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.floating-toc-container {
|
|
273
|
+
background: rgba(255, 255, 255, 0.95);
|
|
274
|
+
backdrop-filter: blur(10px);
|
|
275
|
+
border-bottom: 1px solid #ddd;
|
|
276
|
+
border-radius: 0 0 12px 12px;
|
|
277
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
278
|
+
width: fit-content;
|
|
279
|
+
max-width: 400px;
|
|
280
|
+
min-width: 200px;
|
|
281
|
+
overflow: hidden;
|
|
282
|
+
transition: max-height 0.3s ease;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.floating-toc-header {
|
|
286
|
+
padding: 8px 16px;
|
|
287
|
+
cursor: pointer;
|
|
288
|
+
user-select: none;
|
|
289
|
+
font-size: 14px;
|
|
290
|
+
font-weight: 500;
|
|
291
|
+
color: #1e293b;
|
|
292
|
+
display: flex;
|
|
293
|
+
align-items: center;
|
|
294
|
+
justify-content: space-between;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
.floating-toc-header:hover {
|
|
298
|
+
background: rgba(0, 0, 0, 0.02);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.floating-toc-content {
|
|
302
|
+
max-height: 0;
|
|
303
|
+
overflow: hidden;
|
|
304
|
+
transition: max-height 0.3s ease;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.floating-toc-container:hover .floating-toc-content {
|
|
308
|
+
max-height: 70vh;
|
|
309
|
+
overflow-y: auto;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.floating-toc-content ul {
|
|
313
|
+
list-style: none;
|
|
314
|
+
padding: 8px 16px 16px;
|
|
315
|
+
margin: 0;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.floating-toc-content li {
|
|
319
|
+
margin: 0.1em 0;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.floating-toc-content a {
|
|
323
|
+
color: #0066cc;
|
|
324
|
+
text-decoration: none;
|
|
325
|
+
display: block;
|
|
326
|
+
padding: 0.2em 0.5em;
|
|
327
|
+
border-radius: 4px;
|
|
328
|
+
font-size: 13px;
|
|
329
|
+
transition: background 0.15s ease;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
.floating-toc-content a:hover {
|
|
333
|
+
background: #e0e0e0;
|
|
334
|
+
color: #004499;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
.floating-toc-content ul ul {
|
|
338
|
+
padding-left: 1.2em;
|
|
339
|
+
margin-top: 0;
|
|
340
|
+
margin-bottom: 0;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.floating-toc-content ul ul ul {
|
|
344
|
+
margin-top: 0;
|
|
345
|
+
margin-bottom: 0;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
.floating-toc-content ul ul a {
|
|
349
|
+
font-size: 12px;
|
|
350
|
+
color: #555;
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
.floating-toc-content ul ul ul a {
|
|
354
|
+
font-size: 11px;
|
|
355
|
+
color: #666;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/* Smooth scrolling */
|
|
359
|
+
html {
|
|
360
|
+
scroll-behavior: smooth;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/* Code blocks */
|
|
364
|
+
code {
|
|
365
|
+
background: #f0f0f0;
|
|
366
|
+
padding: 0.2em 0.4em;
|
|
367
|
+
border-radius: 3px;
|
|
368
|
+
font-family: "Monaco", "Menlo", "Ubuntu Mono", monospace;
|
|
369
|
+
font-size: 0.9em;
|
|
370
|
+
margin: 0 0.1em;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
pre {
|
|
374
|
+
background: #f5f5f5;
|
|
375
|
+
padding: 1rem;
|
|
376
|
+
overflow-x: auto;
|
|
377
|
+
border-radius: 4px;
|
|
378
|
+
margin: 1em 0;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
pre code {
|
|
382
|
+
background: none;
|
|
383
|
+
padding: 0;
|
|
384
|
+
margin: 0;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
/* Rouge syntax highlighting - GitHub theme, scoped to .highlight containers */
|
|
388
|
+
.highlight {
|
|
389
|
+
color: #24292e;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
.highlight .c {
|
|
393
|
+
color: #6a737d;
|
|
394
|
+
font-style: italic;
|
|
395
|
+
} /* Comment */
|
|
396
|
+
.highlight .err {
|
|
397
|
+
color: #a61717;
|
|
398
|
+
background-color: #e3d2d2;
|
|
399
|
+
} /* Error */
|
|
400
|
+
.highlight .k {
|
|
401
|
+
color: #d73a49;
|
|
402
|
+
font-weight: bold;
|
|
403
|
+
} /* Keyword */
|
|
404
|
+
.highlight .l {
|
|
405
|
+
color: #032f62;
|
|
406
|
+
} /* Literal */
|
|
407
|
+
.highlight .n {
|
|
408
|
+
color: #24292e;
|
|
409
|
+
} /* Name */
|
|
410
|
+
.highlight .o {
|
|
411
|
+
color: #d73a49;
|
|
412
|
+
} /* Operator */
|
|
413
|
+
.highlight .p {
|
|
414
|
+
color: #24292e;
|
|
415
|
+
} /* Punctuation */
|
|
416
|
+
.highlight .cm {
|
|
417
|
+
color: #6a737d;
|
|
418
|
+
font-style: italic;
|
|
419
|
+
} /* Comment.Multiline */
|
|
420
|
+
.highlight .cp {
|
|
421
|
+
color: #6a737d;
|
|
422
|
+
font-weight: bold;
|
|
423
|
+
} /* Comment.Preproc */
|
|
424
|
+
.highlight .c1 {
|
|
425
|
+
color: #6a737d;
|
|
426
|
+
font-style: italic;
|
|
427
|
+
} /* Comment.Single */
|
|
428
|
+
.highlight .cs {
|
|
429
|
+
color: #6a737d;
|
|
430
|
+
font-weight: bold;
|
|
431
|
+
font-style: italic;
|
|
432
|
+
} /* Comment.Special */
|
|
433
|
+
.highlight .gd {
|
|
434
|
+
color: #24292e;
|
|
435
|
+
background-color: #ffeef0;
|
|
436
|
+
} /* Generic.Deleted */
|
|
437
|
+
.highlight .ge {
|
|
438
|
+
color: #24292e;
|
|
439
|
+
font-style: italic;
|
|
440
|
+
} /* Generic.Emph */
|
|
441
|
+
.highlight .gr {
|
|
442
|
+
color: #aa0000;
|
|
443
|
+
} /* Generic.Error */
|
|
444
|
+
.highlight .gh {
|
|
445
|
+
color: #999999;
|
|
446
|
+
font-weight: bold;
|
|
447
|
+
} /* Generic.Heading */
|
|
448
|
+
.highlight .gi {
|
|
449
|
+
color: #24292e;
|
|
450
|
+
background-color: #f0fff4;
|
|
451
|
+
} /* Generic.Inserted */
|
|
452
|
+
.highlight .go {
|
|
453
|
+
color: #888888;
|
|
454
|
+
} /* Generic.Output */
|
|
455
|
+
.highlight .gp {
|
|
456
|
+
color: #555555;
|
|
457
|
+
} /* Generic.Prompt */
|
|
458
|
+
.highlight .gs {
|
|
459
|
+
font-weight: bold;
|
|
460
|
+
} /* Generic.Strong */
|
|
461
|
+
.highlight .gu {
|
|
462
|
+
color: #aaaaaa;
|
|
463
|
+
} /* Generic.Subheading */
|
|
464
|
+
.highlight .gt {
|
|
465
|
+
color: #aa0000;
|
|
466
|
+
} /* Generic.Traceback */
|
|
467
|
+
.highlight .kc {
|
|
468
|
+
color: #d73a49;
|
|
469
|
+
font-weight: bold;
|
|
470
|
+
} /* Keyword.Constant */
|
|
471
|
+
.highlight .kd {
|
|
472
|
+
color: #d73a49;
|
|
473
|
+
font-weight: bold;
|
|
474
|
+
} /* Keyword.Declaration */
|
|
475
|
+
.highlight .kn {
|
|
476
|
+
color: #d73a49;
|
|
477
|
+
font-weight: bold;
|
|
478
|
+
} /* Keyword.Namespace */
|
|
479
|
+
.highlight .kp {
|
|
480
|
+
color: #d73a49;
|
|
481
|
+
font-weight: bold;
|
|
482
|
+
} /* Keyword.Pseudo */
|
|
483
|
+
.highlight .kr {
|
|
484
|
+
color: #d73a49;
|
|
485
|
+
font-weight: bold;
|
|
486
|
+
} /* Keyword.Reserved */
|
|
487
|
+
.highlight .kt {
|
|
488
|
+
color: #d73a49;
|
|
489
|
+
font-weight: bold;
|
|
490
|
+
} /* Keyword.Type */
|
|
491
|
+
.highlight .ld {
|
|
492
|
+
color: #032f62;
|
|
493
|
+
} /* Literal.Date */
|
|
494
|
+
.highlight .m {
|
|
495
|
+
color: #005cc5;
|
|
496
|
+
} /* Literal.Number */
|
|
497
|
+
.highlight .s {
|
|
498
|
+
color: #032f62;
|
|
499
|
+
} /* Literal.String */
|
|
500
|
+
.highlight .na {
|
|
501
|
+
color: #6f42c1;
|
|
502
|
+
} /* Name.Attribute */
|
|
503
|
+
.highlight .nb {
|
|
504
|
+
color: #005cc5;
|
|
505
|
+
} /* Name.Builtin */
|
|
506
|
+
.highlight .nc {
|
|
507
|
+
color: #6f42c1;
|
|
508
|
+
font-weight: bold;
|
|
509
|
+
} /* Name.Class */
|
|
510
|
+
.highlight .no {
|
|
511
|
+
color: #005cc5;
|
|
512
|
+
} /* Name.Constant */
|
|
513
|
+
.highlight .nd {
|
|
514
|
+
color: #6f42c1;
|
|
515
|
+
font-weight: bold;
|
|
516
|
+
} /* Name.Decorator */
|
|
517
|
+
.highlight .ni {
|
|
518
|
+
color: #800080;
|
|
519
|
+
} /* Name.Entity */
|
|
520
|
+
.highlight .ne {
|
|
521
|
+
color: #990000;
|
|
522
|
+
font-weight: bold;
|
|
523
|
+
} /* Name.Exception */
|
|
524
|
+
.highlight .nf {
|
|
525
|
+
color: #6f42c1;
|
|
526
|
+
} /* Name.Function */
|
|
527
|
+
.highlight .nl {
|
|
528
|
+
color: #990000;
|
|
529
|
+
} /* Name.Label */
|
|
530
|
+
.highlight .nn {
|
|
531
|
+
color: #555555;
|
|
532
|
+
} /* Name.Namespace */
|
|
533
|
+
.highlight .nx {
|
|
534
|
+
color: #6f42c1;
|
|
535
|
+
} /* Name.Other */
|
|
536
|
+
.highlight .py {
|
|
537
|
+
color: #990000;
|
|
538
|
+
} /* Name.Property */
|
|
539
|
+
.highlight .nt {
|
|
540
|
+
color: #22863a;
|
|
541
|
+
} /* Name.Tag */
|
|
542
|
+
.highlight .nv {
|
|
543
|
+
color: #e36209;
|
|
544
|
+
} /* Name.Variable */
|
|
545
|
+
.highlight .ow {
|
|
546
|
+
color: #d73a49;
|
|
547
|
+
font-weight: bold;
|
|
548
|
+
} /* Operator.Word */
|
|
549
|
+
.highlight .w {
|
|
550
|
+
color: #bbbbbb;
|
|
551
|
+
} /* Text.Whitespace */
|
|
552
|
+
.highlight .mf {
|
|
553
|
+
color: #005cc5;
|
|
554
|
+
} /* Literal.Number.Float */
|
|
555
|
+
.highlight .mh {
|
|
556
|
+
color: #005cc5;
|
|
557
|
+
} /* Literal.Number.Hex */
|
|
558
|
+
.highlight .mi {
|
|
559
|
+
color: #005cc5;
|
|
560
|
+
} /* Literal.Number.Integer */
|
|
561
|
+
.highlight .mo {
|
|
562
|
+
color: #005cc5;
|
|
563
|
+
} /* Literal.Number.Oct */
|
|
564
|
+
.highlight .sb {
|
|
565
|
+
color: #032f62;
|
|
566
|
+
} /* Literal.String.Backtick */
|
|
567
|
+
.highlight .sc {
|
|
568
|
+
color: #032f62;
|
|
569
|
+
} /* Literal.String.Char */
|
|
570
|
+
.highlight .sd {
|
|
571
|
+
color: #032f62;
|
|
572
|
+
} /* Literal.String.Doc */
|
|
573
|
+
.highlight .s2 {
|
|
574
|
+
color: #032f62;
|
|
575
|
+
} /* Literal.String.Double */
|
|
576
|
+
.highlight .se {
|
|
577
|
+
color: #032f62;
|
|
578
|
+
} /* Literal.String.Escape */
|
|
579
|
+
.highlight .sh {
|
|
580
|
+
color: #032f62;
|
|
581
|
+
} /* Literal.String.Heredoc */
|
|
582
|
+
.highlight .si {
|
|
583
|
+
color: #032f62;
|
|
584
|
+
} /* Literal.String.Interpol */
|
|
585
|
+
.highlight .sx {
|
|
586
|
+
color: #032f62;
|
|
587
|
+
} /* Literal.String.Other */
|
|
588
|
+
.highlight .sr {
|
|
589
|
+
color: #22863a;
|
|
590
|
+
} /* Literal.String.Regex */
|
|
591
|
+
.highlight .s1 {
|
|
592
|
+
color: #032f62;
|
|
593
|
+
} /* Literal.String.Single */
|
|
594
|
+
.highlight .ss {
|
|
595
|
+
color: #032f62;
|
|
596
|
+
} /* Literal.String.Symbol */
|
|
597
|
+
.highlight .bp {
|
|
598
|
+
color: #005cc5;
|
|
599
|
+
} /* Name.Builtin.Pseudo */
|
|
600
|
+
.highlight .vc {
|
|
601
|
+
color: #e36209;
|
|
602
|
+
} /* Name.Variable.Class */
|
|
603
|
+
.highlight .vg {
|
|
604
|
+
color: #e36209;
|
|
605
|
+
} /* Name.Variable.Global */
|
|
606
|
+
.highlight .vi {
|
|
607
|
+
color: #e36209;
|
|
608
|
+
} /* Name.Variable.Instance */
|
|
609
|
+
.highlight .il {
|
|
610
|
+
color: #005cc5;
|
|
611
|
+
} /* Literal.Number.Integer.Long */
|
|
612
|
+
|
|
613
|
+
/* Additional Rouge token classes that may be used */
|
|
614
|
+
.highlight .token {
|
|
615
|
+
color: #5670a0;
|
|
616
|
+
}
|
|
617
|
+
.highlight .token.list {
|
|
618
|
+
color: #546e9f;
|
|
619
|
+
}
|
|
620
|
+
.highlight .token.punctuation {
|
|
621
|
+
color: #3e8dad;
|
|
622
|
+
}
|
|
623
|
+
.highlight .token.list.punctuation {
|
|
624
|
+
color: #e05b78;
|
|
625
|
+
}
|
|
626
|
+
.highlight .token.content {
|
|
627
|
+
padding: 0;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/* Nested lists in page content */
|
|
631
|
+
ul ul,
|
|
632
|
+
ol ol,
|
|
633
|
+
ul ol,
|
|
634
|
+
ol ul {
|
|
635
|
+
padding-left: 1.5em;
|
|
636
|
+
margin-top: 0.25em;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
/* Page footer */
|
|
640
|
+
.page-footer {
|
|
641
|
+
background: #f5f5f5;
|
|
642
|
+
border-top: 1px solid #ddd;
|
|
643
|
+
padding: 1.5rem;
|
|
644
|
+
margin-top: 3rem;
|
|
645
|
+
color: #666;
|
|
646
|
+
font-size: 0.9em;
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
.page-footer p {
|
|
650
|
+
margin: 0.5em 0;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
.page-footer a {
|
|
654
|
+
color: #0066cc;
|
|
655
|
+
text-decoration: none;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
.page-footer a:hover {
|
|
659
|
+
text-decoration: underline;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
/* Mobile responsive */
|
|
663
|
+
@media (max-width: 768px) {
|
|
664
|
+
.hamburger-menu {
|
|
665
|
+
display: flex;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.main-toc,
|
|
669
|
+
.sidebar {
|
|
670
|
+
transform: translateX(-100%);
|
|
671
|
+
z-index: 175;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
.main-toc.mobile-open,
|
|
675
|
+
.sidebar.mobile-open {
|
|
676
|
+
transform: translateX(0);
|
|
677
|
+
}
|
|
678
|
+
|
|
679
|
+
body {
|
|
680
|
+
margin-left: 0;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
.floating-toc {
|
|
684
|
+
left: 0;
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
</style></head>
|
|
689
|
+
|
|
690
|
+
<body>
|
|
691
|
+
<div class="floating-toc" id="floating-toc">
|
|
692
|
+
<div class="floating-toc-container">
|
|
693
|
+
<div class="floating-toc-header">
|
|
694
|
+
<span>Table of Contents 🔻</span>
|
|
695
|
+
</div>
|
|
696
|
+
<div class="floating-toc-content" id="floating-toc-content">
|
|
697
|
+
<!-- Content will be populated by JavaScript -->
|
|
698
|
+
</div>
|
|
699
|
+
</div>
|
|
700
|
+
</div>
|
|
701
|
+
|
|
702
|
+
<button class="hamburger-menu" id="hamburger-menu" aria-label="Toggle navigation"></button>
|
|
703
|
+
<div class="mobile-menu-overlay" id="mobile-menu-overlay"></div>
|
|
704
|
+
|
|
705
|
+
<nav class="main-toc"><ul><li><a href="Home.html">Home</a></li><li><a href="Getting-Started.html">Getting Started</a></li><li><a href="Installation.html">Installation</a></li><li><a href="Usage.html">Usage</a></li><li><a href="Syntax.html">Syntax</a></li><li><a href="Inline-Attribute-Lists.html">Inline Attribute Lists</a></li><li><a href="Modes.html">Modes</a></li><li><a href="Command-Line-Options.html">Command Line Options</a></li><li><a href="Multi-File-Documents.html">Multi-file Documents</a></li><li><a href="Citations.html">Citations</a></li><li><a href="Metadata-Transforms.html">Metadata Transforms</a></li><li><a href="Pandoc-Integration.html">Integrating with Pandoc</a></li><li><a href="Header-IDs.html">Header IDs</a></li><li><a href="C-API.html">C API</a></li><li><a href="Xcode-Integration.html">Xcode Integration</a></li><li><a href="Examples.html">Examples</a></li><li><a href="Plugins.html">Plugins</a></li><li><a href="Troubleshooting.html">Troubleshooting</a></li><li><a href="Credits.html">Credits</a></li></ul></nav>
|
|
706
|
+
|
|
707
|
+
<h1 id="inline-attribute-lists-ials-and-attribute-list-definitions-alds">
|
|
708
|
+
Inline Attribute Lists (IALs) and Attribute List Definitions (ALDs)
|
|
709
|
+
</h1>
|
|
710
|
+
<nav class="page-toc" id="page-toc-top"><ul><li><a href="#inline-attribute-lists-ials-and-attribute-list-definitions-alds">Inline Attribute Lists (IALs) and Attribute List Definitions (ALDs)</a><ul><li><a href="#overview">Overview</a></li><li><a href="#block-level-ials">Block-Level IALs</a><ul><li><a href="#paragraphs">Paragraphs</a></li><li><a href="#headings">Headings</a></li><li><a href="#lists">Lists</a></li><li><a href="#blockquotes">Blockquotes</a></li><li><a href="#tables">Tables</a></li></ul></li><li><a href="#inline-ials">Inline IALs</a><ul><li><a href="#links">Links</a></li><li><a href="#images">Images</a></li><li><a href="#emphasis-and-strong">Emphasis and Strong</a></li><li><a href="#code-spans">Code Spans</a></li></ul></li><li><a href="#attribute-syntax">Attribute Syntax</a><ul><li><a href="#1-ids">1. IDs</a></li><li><a href="#2-classes">2. Classes</a></li><li><a href="#3-key-value-pairs">3. Key-Value Pairs</a></li><li><a href="#combining-attributes">Combining Attributes</a></li></ul></li><li><a href="#attribute-list-definitions-alds">Attribute List Definitions (ALDs)</a><ul><li><a href="#defining-alds">Defining ALDs</a></li><li><a href="#ald-syntax">ALD Syntax</a></li><li><a href="#referencing-alds">Referencing ALDs</a></li><li><a href="#mixed-usage">Mixed Usage</a></li></ul></li><li><a href="#important-notes">Important Notes</a><ul><li><a href="#block-level-ial-positioning">Block-Level IAL Positioning</a></li><li><a href="#inline-ial-positioning">Inline IAL Positioning</a></li><li><a href="#multiple-elements-with-same-attributes">Multiple Elements with Same Attributes</a></li><li><a href="#nested-elements">Nested Elements</a></li></ul></li><li><a href="#examples">Examples</a><ul><li><a href="#complete-example">Complete Example</a></li><li><a href="#using-alds-for-consistent-styling">Using ALDs for Consistent Styling</a></li></ul></li><li><a href="#related">Related</a></li></ul></li></ul></nav>
|
|
711
|
+
|
|
712
|
+
<p>
|
|
713
|
+
Inline Attribute Lists (IALs) allow you to add HTML attributes (IDs, classes, and custom key-value pairs) to Markdown elements. Attribute List Definitions (ALDs) let you define reusable attribute sets that can be referenced multiple times.
|
|
714
|
+
</p>
|
|
715
|
+
|
|
716
|
+
<p>
|
|
717
|
+
This feature is available in <strong>Kramdown</strong> and <strong>unified</strong> modes.
|
|
718
|
+
</p>
|
|
719
|
+
|
|
720
|
+
<h2 id="overview">
|
|
721
|
+
Overview
|
|
722
|
+
</h2>
|
|
723
|
+
|
|
724
|
+
<p>
|
|
725
|
+
IALs use the syntax <code>{: attributes}</code> (Kramdown-style) or <code>{#id .class}</code> (Pandoc-style) and can be applied to:
|
|
726
|
+
</p>
|
|
727
|
+
|
|
728
|
+
<ul>
|
|
729
|
+
|
|
730
|
+
<li>
|
|
731
|
+
<strong> Block-level elements</strong>: Headings, paragraphs, lists, blockquotes, code blocks, tables
|
|
732
|
+
</li>
|
|
733
|
+
|
|
734
|
+
<li>
|
|
735
|
+
<strong> Span-level elements</strong>: Links, images, emphasis (italic), strong (bold), code spans
|
|
736
|
+
</li>
|
|
737
|
+
|
|
738
|
+
</ul>
|
|
739
|
+
|
|
740
|
+
<p>
|
|
741
|
+
Apex supports both formats:
|
|
742
|
+
</p>
|
|
743
|
+
|
|
744
|
+
<ul>
|
|
745
|
+
|
|
746
|
+
<li>
|
|
747
|
+
<strong> Kramdown-style</strong>: <code>{: #id .class key="value"}</code> - requires a colon after the opening brace
|
|
748
|
+
</li>
|
|
749
|
+
|
|
750
|
+
<li>
|
|
751
|
+
<strong> Pandoc-style</strong>: <code>{#id .class key="value"}</code> - no colon required
|
|
752
|
+
</li>
|
|
753
|
+
|
|
754
|
+
</ul>
|
|
755
|
+
|
|
756
|
+
<p>
|
|
757
|
+
Both formats work identically. For example, <code>{#my-id .my-class}</code> is equivalent to <code>{:#my-id .my-class}</code>.
|
|
758
|
+
</p>
|
|
759
|
+
|
|
760
|
+
<p>
|
|
761
|
+
ALDs define reusable attribute sets with the syntax <code>{🚗 attributes}</code> and can be referenced in IALs using <code>{:ref-name}</code>.
|
|
762
|
+
</p>
|
|
763
|
+
|
|
764
|
+
<h2 id="block-level-ials">
|
|
765
|
+
Block-Level IALs
|
|
766
|
+
</h2>
|
|
767
|
+
|
|
768
|
+
<p>
|
|
769
|
+
For block-level elements, IALs appear on a separate line immediately after the element (no blank line).
|
|
770
|
+
</p>
|
|
771
|
+
|
|
772
|
+
<h3 id="paragraphs">
|
|
773
|
+
Paragraphs
|
|
774
|
+
</h3>
|
|
775
|
+
|
|
776
|
+
<pre><code class="highlight language-markdown">This is a paragraph with an ID and classes.
|
|
777
|
+
|
|
778
|
+
{: #para-id .important .note}
|
|
779
|
+
|
|
780
|
+
This is a paragraph using Pandoc-style IAL.
|
|
781
|
+
|
|
782
|
+
{#para-id-2 .important .note}
|
|
783
|
+
|
|
784
|
+
Another paragraph with custom attributes.
|
|
785
|
+
|
|
786
|
+
{: title="Important Note" lang="en"}
|
|
787
|
+
</code></pre>
|
|
788
|
+
|
|
789
|
+
<p>
|
|
790
|
+
Output:
|
|
791
|
+
</p>
|
|
792
|
+
|
|
793
|
+
<pre><code class="highlight language-html"><span class="nt"><p</span> <span class="na">id=</span><span class="s">"para-id"</span> <span class="na">class=</span><span class="s">"important note"</span><span class="nt">></span>This is a paragraph with an ID and classes.<span class="nt"></p></span>
|
|
794
|
+
<span class="nt"><p</span> <span class="na">id=</span><span class="s">"para-id-2"</span> <span class="na">class=</span><span class="s">"important note"</span><span class="nt">></span>This is a paragraph using Pandoc-style IAL.<span class="nt"></p></span>
|
|
795
|
+
<span class="nt"><p</span> <span class="na">title=</span><span class="s">"Important Note"</span> <span class="na">lang=</span><span class="s">"en"</span><span class="nt">></span>Another paragraph with custom attributes.<span class="nt"></p></span>
|
|
796
|
+
</code></pre>
|
|
797
|
+
|
|
798
|
+
<h3 id="headings">
|
|
799
|
+
Headings
|
|
800
|
+
</h3>
|
|
801
|
+
|
|
802
|
+
<p>
|
|
803
|
+
Headings can have IALs on the same line or the next line:
|
|
804
|
+
</p>
|
|
805
|
+
|
|
806
|
+
<p>
|
|
807
|
+
<strong> Same line:</strong>
|
|
808
|
+
</p>
|
|
809
|
+
|
|
810
|
+
<pre><code class="highlight language-markdown"><span class="gh"># Heading {: #custom-id}</span>
|
|
811
|
+
<span class="gu">## Another Heading {: .highlight .large}</span>
|
|
812
|
+
<span class="gu">## Pandoc-style Heading {#pandoc-id .highlight}</span>
|
|
813
|
+
</code></pre>
|
|
814
|
+
|
|
815
|
+
<p>
|
|
816
|
+
<strong> Next line:</strong>
|
|
817
|
+
</p>
|
|
818
|
+
|
|
819
|
+
<pre><code class="highlight language-markdown"><span class="gh"># Heading</span>
|
|
820
|
+
|
|
821
|
+
{: #custom-id .highlight}
|
|
822
|
+
|
|
823
|
+
<span class="gh"># Pandoc-style Heading</span>
|
|
824
|
+
|
|
825
|
+
{#pandoc-id-2 .highlight}
|
|
826
|
+
|
|
827
|
+
<span class="gu">## Another Heading</span>
|
|
828
|
+
|
|
829
|
+
{: .section-title lang="en"}
|
|
830
|
+
</code></pre>
|
|
831
|
+
|
|
832
|
+
<p>
|
|
833
|
+
Output:
|
|
834
|
+
</p>
|
|
835
|
+
|
|
836
|
+
<pre><code class="highlight language-html"><span class="nt"><h1</span> <span class="na">id=</span><span class="s">"custom-id"</span><span class="nt">></span>Heading<span class="nt"></h1></span>
|
|
837
|
+
<span class="nt"><h2</span> <span class="na">class=</span><span class="s">"highlight large"</span><span class="nt">></span>Another Heading<span class="nt"></h2></span>
|
|
838
|
+
<span class="nt"><h2</span> <span class="na">id=</span><span class="s">"pandoc-id"</span> <span class="na">class=</span><span class="s">"highlight"</span><span class="nt">></span>Pandoc-style Heading<span class="nt"></h2></span>
|
|
839
|
+
<span class="nt"><h1</span> <span class="na">id=</span><span class="s">"custom-id"</span> <span class="na">class=</span><span class="s">"highlight"</span><span class="nt">></span>Heading<span class="nt"></h1></span>
|
|
840
|
+
<span class="nt"><h1</span> <span class="na">id=</span><span class="s">"pandoc-id-2"</span> <span class="na">class=</span><span class="s">"highlight"</span><span class="nt">></span>Pandoc-style Heading<span class="nt"></h1></span>
|
|
841
|
+
<span class="nt"><h2</span> <span class="na">class=</span><span class="s">"section-title"</span> <span class="na">lang=</span><span class="s">"en"</span><span class="nt">></span>Another Heading<span class="nt"></h2></span>
|
|
842
|
+
</code></pre>
|
|
843
|
+
|
|
844
|
+
<h3 id="lists">
|
|
845
|
+
Lists
|
|
846
|
+
</h3>
|
|
847
|
+
|
|
848
|
+
<pre><code class="highlight language-markdown"><span class="p">-</span> Item 1
|
|
849
|
+
<span class="p">-</span> Item 2
|
|
850
|
+
<span class="p">-</span> Item 3
|
|
851
|
+
|
|
852
|
+
{: .unordered-list .compact}
|
|
853
|
+
<span class="p">
|
|
854
|
+
1.</span> First
|
|
855
|
+
<span class="p">2.</span> Second
|
|
856
|
+
<span class="p">3.</span> Third
|
|
857
|
+
|
|
858
|
+
{: #ordered-list .numbered}
|
|
859
|
+
</code></pre>
|
|
860
|
+
|
|
861
|
+
<p>
|
|
862
|
+
Output:
|
|
863
|
+
</p>
|
|
864
|
+
|
|
865
|
+
<pre><code class="highlight language-html"><span class="nt"><ul</span> <span class="na">class=</span><span class="s">"unordered-list compact"</span><span class="nt">></span>
|
|
866
|
+
<span class="nt"><li></span>Item 1<span class="nt"></li></span>
|
|
867
|
+
<span class="nt"><li></span>Item 2<span class="nt"></li></span>
|
|
868
|
+
<span class="nt"><li></span>Item 3<span class="nt"></li></span>
|
|
869
|
+
<span class="nt"></ul></span>
|
|
870
|
+
<span class="nt"><ol</span> <span class="na">id=</span><span class="s">"ordered-list"</span> <span class="na">class=</span><span class="s">"numbered"</span><span class="nt">></span>
|
|
871
|
+
<span class="nt"><li></span>First<span class="nt"></li></span>
|
|
872
|
+
<span class="nt"><li></span>Second<span class="nt"></li></span>
|
|
873
|
+
<span class="nt"><li></span>Third<span class="nt"></li></span>
|
|
874
|
+
<span class="nt"></ol></span>
|
|
875
|
+
</code></pre>
|
|
876
|
+
|
|
877
|
+
<h3 id="blockquotes">
|
|
878
|
+
Blockquotes
|
|
879
|
+
</h3>
|
|
880
|
+
|
|
881
|
+
<pre><code class="highlight language-markdown"><span class="gt">> This is a quote.</span>
|
|
882
|
+
|
|
883
|
+
{: .quote .inspirational}
|
|
884
|
+
<span class="gt">
|
|
885
|
+
> Another quote with attribution.</span>
|
|
886
|
+
</code></pre>
|
|
887
|
+
|
|
888
|
+
<p>
|
|
889
|
+
Output:
|
|
890
|
+
</p>
|
|
891
|
+
|
|
892
|
+
<pre><code class="highlight language-html"><span class="nt"><blockquote</span> <span class="na">class=</span><span class="s">"quote inspirational"</span><span class="nt">></span>
|
|
893
|
+
<span class="nt"><p></span>This is a quote.<span class="nt"></p></span>
|
|
894
|
+
<span class="nt"></blockquote></span>
|
|
895
|
+
<span class="nt"><blockquote</span> <span class="na">cite=</span><span class="s">"https://example.com"</span><span class="nt">></span>
|
|
896
|
+
<span class="nt"><p></span>Another quote with attribution.<span class="nt"></p></span>
|
|
897
|
+
<span class="nt"></blockquote></span>
|
|
898
|
+
</code></pre>
|
|
899
|
+
|
|
900
|
+
<h3 id="tables">
|
|
901
|
+
Tables
|
|
902
|
+
</h3>
|
|
903
|
+
|
|
904
|
+
<p>
|
|
905
|
+
Tables can have IALs applied on a separate line after the table:
|
|
906
|
+
</p>
|
|
907
|
+
|
|
908
|
+
<pre><code class="highlight language-markdown">| Key | Value |
|
|
909
|
+
| --- | :---: |
|
|
910
|
+
| one | 1 |
|
|
911
|
+
| --- | --- |
|
|
912
|
+
| two | 2 |
|
|
913
|
+
|
|
914
|
+
{: #data-table .striped .bordered}
|
|
915
|
+
</code></pre>
|
|
916
|
+
|
|
917
|
+
<p>
|
|
918
|
+
Output:
|
|
919
|
+
</p>
|
|
920
|
+
|
|
921
|
+
<pre><code class="highlight language-html"><span class="nt"><table</span> <span class="na">id=</span><span class="s">"data-table"</span> <span class="na">class=</span><span class="s">"striped bordered"</span><span class="nt">></span>
|
|
922
|
+
<span class="c"><!-- table content --></span>
|
|
923
|
+
<span class="nt"></table></span>
|
|
924
|
+
</code></pre>
|
|
925
|
+
|
|
926
|
+
<p>
|
|
927
|
+
<strong> Pandoc table_attributes extension:</strong>
|
|
928
|
+
</p>
|
|
929
|
+
|
|
930
|
+
<p>
|
|
931
|
+
Apex also supports Pandoc’s <code>table_attributes</code> extension, which allows IAL attributes to be specified in table captions. When using Pandoc-style captions with the <code>: Caption</code> syntax, IAL attributes in the caption are extracted and applied to the table:
|
|
932
|
+
</p>
|
|
933
|
+
|
|
934
|
+
<pre><code class="highlight language-markdown">| Key | Value |
|
|
935
|
+
| --- | :---: |
|
|
936
|
+
| one | 1 |
|
|
937
|
+
| --- | --- |
|
|
938
|
+
| two | 2 |
|
|
939
|
+
|
|
940
|
+
: Key value table {#table-id .testing key="value"}
|
|
941
|
+
</code></pre>
|
|
942
|
+
|
|
943
|
+
<p>
|
|
944
|
+
This is equivalent to:
|
|
945
|
+
</p>
|
|
946
|
+
|
|
947
|
+
<pre><code class="highlight language-markdown">| Key | Value |
|
|
948
|
+
| --- | :---: |
|
|
949
|
+
| one | 1 |
|
|
950
|
+
| --- | --- |
|
|
951
|
+
| two | 2 |
|
|
952
|
+
|
|
953
|
+
{: #table-id .testing key="value"}
|
|
954
|
+
</code></pre>
|
|
955
|
+
|
|
956
|
+
<p>
|
|
957
|
+
Both Kramdown-style IALs (<code>{: #id .class}</code>) and Pandoc-style IALs without the colon (<code>{#id .class}</code>) are supported in table captions.
|
|
958
|
+
</p>
|
|
959
|
+
|
|
960
|
+
<p>
|
|
961
|
+
<strong> Note:</strong> The <code>: Caption</code> syntax only works when adjacent to a table to avoid conflicts with definition list syntax. See <a href="Syntax.html">Syntax</a> for more details on table captions.
|
|
962
|
+
</p>
|
|
963
|
+
|
|
964
|
+
<h2 id="inline-ials">
|
|
965
|
+
Inline IALs
|
|
966
|
+
</h2>
|
|
967
|
+
|
|
968
|
+
<p>
|
|
969
|
+
Inline IALs appear immediately after the element they apply to, within the same paragraph.
|
|
970
|
+
</p>
|
|
971
|
+
|
|
972
|
+
<h3 id="links">
|
|
973
|
+
Links
|
|
974
|
+
</h3>
|
|
975
|
+
|
|
976
|
+
<pre><code class="highlight language-markdown">This is a <span class="p">[</span><span class="nv">regular link</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span> without attributes.
|
|
977
|
+
|
|
978
|
+
Here's a <span class="p">[</span><span class="nv">styled link</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span>{:.button} with a button class.
|
|
979
|
+
|
|
980
|
+
Here's a <span class="p">[</span><span class="nv">Pandoc-style link</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span>{#link-id .button} with attributes.
|
|
981
|
+
|
|
982
|
+
You can have <span class="p">[</span><span class="nv">multiple links</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span>{:.link-primary} with <span class="p">[</span><span class="nv">different classes</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span>{:.link-secondary} in the same paragraph.
|
|
983
|
+
|
|
984
|
+
A link with <span class="p">[</span><span class="nv">custom attributes</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span>{:rel="nofollow" title="External Link"}.
|
|
985
|
+
</code></pre>
|
|
986
|
+
|
|
987
|
+
<p>
|
|
988
|
+
Output:
|
|
989
|
+
</p>
|
|
990
|
+
|
|
991
|
+
<pre><code class="highlight language-html"><span class="nt"><p></span>This is a <span class="nt"><a</span> <span class="na">href=</span><span class="s">"https://example.com"</span><span class="nt">></span>regular link<span class="nt"></a></span> without attributes.<span class="nt"></p></span>
|
|
992
|
+
<span class="nt"><p></span>Here's a <span class="nt"><a</span> <span class="na">href=</span><span class="s">"https://example.com"</span> <span class="na">class=</span><span class="s">"button"</span><span class="nt">></span>styled link<span class="nt"></a></span> with a button class.<span class="nt"></p></span>
|
|
993
|
+
<span class="nt"><p></span>Here's a <span class="nt"><a</span> <span class="na">href=</span><span class="s">"https://example.com"</span> <span class="na">id=</span><span class="s">"link-id"</span> <span class="na">class=</span><span class="s">"button"</span><span class="nt">></span>Pandoc-style link<span class="nt"></a></span> with attributes.<span class="nt"></p></span>
|
|
994
|
+
<span class="nt"><p></span>You can have <span class="nt"><a</span> <span class="na">href=</span><span class="s">"https://example.com"</span> <span class="na">class=</span><span class="s">"link-primary"</span><span class="nt">></span>multiple links<span class="nt"></a></span> with <span class="nt"><a</span> <span class="na">href=</span><span class="s">"https://example.com"</span> <span class="na">class=</span><span class="s">"link-secondary"</span><span class="nt">></span>different classes<span class="nt"></a></span> in the same paragraph.<span class="nt"></p></span>
|
|
995
|
+
<span class="nt"><p></span>A link with <span class="nt"><a</span> <span class="na">href=</span><span class="s">"https://example.com"</span> <span class="na">rel=</span><span class="s">"nofollow"</span> <span class="na">title=</span><span class="s">"External Link"</span><span class="nt">></span>custom attributes<span class="nt"></a></span>.<span class="nt"></p></span>
|
|
996
|
+
</code></pre>
|
|
997
|
+
|
|
998
|
+
<h3 id="images">
|
|
999
|
+
Images
|
|
1000
|
+
</h3>
|
|
1001
|
+
|
|
1002
|
+
<pre><code class="highlight language-markdown"><span class="p"></span>
|
|
1003
|
+
|
|
1004
|
+
<span class="p"></span>
|
|
1005
|
+
|
|
1006
|
+
<span class="p"></span>
|
|
1007
|
+
|
|
1008
|
+
<span class="p"></span>
|
|
1009
|
+
</code></pre>
|
|
1010
|
+
|
|
1011
|
+
<p>
|
|
1012
|
+
Output:
|
|
1013
|
+
</p>
|
|
1014
|
+
|
|
1015
|
+
<pre><code class="highlight language-html"><span class="nt"><p><img</span> <span class="na">src=</span><span class="s">"image.png"</span> <span class="na">alt=</span><span class="s">"Regular image"</span> <span class="nt">/></p></span>
|
|
1016
|
+
<span class="nt"><p><img</span> <span class="na">src=</span><span class="s">"logo.png"</span> <span class="na">alt=</span><span class="s">"Styled image"</span> <span class="na">class=</span><span class="s">"logo centered"</span> <span class="nt">/></p></span>
|
|
1017
|
+
<span class="nt"><p><img</span> <span class="na">src=</span><span class="s">"icon.png"</span> <span class="na">alt=</span><span class="s">"Image with ID"</span> <span class="na">id=</span><span class="s">"site-icon"</span> <span class="na">class=</span><span class="s">"icon"</span> <span class="nt">/></p></span>
|
|
1018
|
+
<span class="nt"><p><img</span> <span class="na">src=</span><span class="s">"photo.jpg"</span> <span class="na">alt=</span><span class="s">"Image with title"</span> <span class="na">title=</span><span class="s">"Photo Title"</span> <span class="na">alt=</span><span class="s">"Photo description"</span> <span class="nt">/></p></span>
|
|
1019
|
+
</code></pre>
|
|
1020
|
+
|
|
1021
|
+
<h3 id="emphasis-and-strong">
|
|
1022
|
+
Emphasis and Strong
|
|
1023
|
+
</h3>
|
|
1024
|
+
|
|
1025
|
+
<pre><code class="highlight language-markdown">This paragraph has <span class="gs">**bold text**</span>{:.bold-style} with a custom class and <span class="ge">*italic text*</span>{:.italic-style} with another class.
|
|
1026
|
+
|
|
1027
|
+
You can combine <span class="gs">**bold**</span>{:.bold} and <span class="ge">*italic*</span>{:.italic} in the same paragraph with different styles.
|
|
1028
|
+
|
|
1029
|
+
Nested <span class="ge">**</span>bold with <span class="ge">*italic*</span>{:.nested-italic} inside<span class="ge">**</span>{:.bold-wrapper} works too.
|
|
1030
|
+
</code></pre>
|
|
1031
|
+
|
|
1032
|
+
<p>
|
|
1033
|
+
Output:
|
|
1034
|
+
</p>
|
|
1035
|
+
|
|
1036
|
+
<pre><code class="highlight language-html"><span class="nt"><p></span>This paragraph has <span class="nt"><strong</span> <span class="na">class=</span><span class="s">"bold-style"</span><span class="nt">></span>bold text<span class="nt"></strong></span> with a custom class and <span class="nt"><em</span> <span class="na">class=</span><span class="s">"italic-style"</span><span class="nt">></span>italic text<span class="nt"></em></span> with another class.<span class="nt"></p></span>
|
|
1037
|
+
<span class="nt"><p></span>You can combine <span class="nt"><strong</span> <span class="na">class=</span><span class="s">"bold"</span><span class="nt">></span>bold<span class="nt"></strong></span> and <span class="nt"><em</span> <span class="na">class=</span><span class="s">"italic"</span><span class="nt">></span>italic<span class="nt"></em></span> in the same paragraph with different styles.<span class="nt"></p></span>
|
|
1038
|
+
<span class="nt"><p></span>Nested <span class="nt"><strong</span> <span class="na">class=</span><span class="s">"bold-wrapper"</span><span class="nt">></span>bold with <span class="nt"><em</span> <span class="na">class=</span><span class="s">"nested-italic"</span><span class="nt">></span>italic<span class="nt"></em></span> inside<span class="nt"></strong></span> works too.<span class="nt"></p></span>
|
|
1039
|
+
</code></pre>
|
|
1040
|
+
|
|
1041
|
+
<h3 id="code-spans">
|
|
1042
|
+
Code Spans
|
|
1043
|
+
</h3>
|
|
1044
|
+
|
|
1045
|
+
<pre><code class="highlight language-markdown">Use <span class="sb">`inline code`</span>{:.code-inline} for code snippets with styling.
|
|
1046
|
+
|
|
1047
|
+
You can have multiple <span class="sb">`code spans`</span>{:.code-1} and <span class="sb">`more code`</span>{:.code-2} with different classes.
|
|
1048
|
+
</code></pre>
|
|
1049
|
+
|
|
1050
|
+
<p>
|
|
1051
|
+
Output:
|
|
1052
|
+
</p>
|
|
1053
|
+
|
|
1054
|
+
<pre><code class="highlight language-html"><span class="nt"><p></span>Use <span class="nt"><code</span> <span class="na">class=</span><span class="s">"code-inline"</span><span class="nt">></span>inline code<span class="nt"></code></span> for code snippets with styling.<span class="nt"></p></span>
|
|
1055
|
+
<span class="nt"><p></span>You can have multiple <span class="nt"><code</span> <span class="na">class=</span><span class="s">"code-1"</span><span class="nt">></span>code spans<span class="nt"></code></span> and <span class="nt"><code</span> <span class="na">class=</span><span class="s">"code-2"</span><span class="nt">></span>more code<span class="nt"></code></span> with different classes.<span class="nt"></p></span>
|
|
1056
|
+
</code></pre>
|
|
1057
|
+
|
|
1058
|
+
<h2 id="attribute-syntax">
|
|
1059
|
+
Attribute Syntax
|
|
1060
|
+
</h2>
|
|
1061
|
+
|
|
1062
|
+
<p>
|
|
1063
|
+
IALs support three types of attributes:
|
|
1064
|
+
</p>
|
|
1065
|
+
|
|
1066
|
+
<h3 id="1-ids">
|
|
1067
|
+
1. IDs
|
|
1068
|
+
</h3>
|
|
1069
|
+
|
|
1070
|
+
<p>
|
|
1071
|
+
Use <code>#</code> followed by the ID name:
|
|
1072
|
+
</p>
|
|
1073
|
+
|
|
1074
|
+
<pre><code class="highlight language-markdown"><span class="gh"># Heading {: #section-1}</span>
|
|
1075
|
+
</code></pre>
|
|
1076
|
+
|
|
1077
|
+
<p>
|
|
1078
|
+
Output: <code><h1 id="section-1">Heading</h1></code>
|
|
1079
|
+
</p>
|
|
1080
|
+
|
|
1081
|
+
<h3 id="2-classes">
|
|
1082
|
+
2. Classes
|
|
1083
|
+
</h3>
|
|
1084
|
+
|
|
1085
|
+
<p>
|
|
1086
|
+
Use <code>.</code> followed by the class name. Multiple classes can be specified:
|
|
1087
|
+
</p>
|
|
1088
|
+
|
|
1089
|
+
<pre><code class="highlight language-markdown">Paragraph.
|
|
1090
|
+
|
|
1091
|
+
{: .important .note .highlight}
|
|
1092
|
+
</code></pre>
|
|
1093
|
+
|
|
1094
|
+
<p>
|
|
1095
|
+
Output: <code><p class="important note highlight">Paragraph.</p></code>
|
|
1096
|
+
</p>
|
|
1097
|
+
|
|
1098
|
+
<p>
|
|
1099
|
+
<strong> Note:</strong> Multiple <code>.class</code> specifiers are equivalent to a single <code>class</code> attribute with space-separated values.
|
|
1100
|
+
</p>
|
|
1101
|
+
|
|
1102
|
+
<h3 id="3-key-value-pairs">
|
|
1103
|
+
3. Key-Value Pairs
|
|
1104
|
+
</h3>
|
|
1105
|
+
|
|
1106
|
+
<p>
|
|
1107
|
+
Use <code>key="value"</code> or <code>key='value'</code> for custom attributes. Values can be quoted (single or double quotes) or unquoted:
|
|
1108
|
+
</p>
|
|
1109
|
+
|
|
1110
|
+
<pre><code class="highlight language-markdown">Paragraph.
|
|
1111
|
+
|
|
1112
|
+
{: title="Important Note" lang="en" data-id="123"}
|
|
1113
|
+
|
|
1114
|
+
Link with attributes.
|
|
1115
|
+
<span class="p">[</span><span class="nv">Click here</span><span class="p">](</span><span class="sx">url</span><span class="p">)</span>{:rel="nofollow" target="_blank"}
|
|
1116
|
+
</code></pre>
|
|
1117
|
+
|
|
1118
|
+
<p>
|
|
1119
|
+
Output:
|
|
1120
|
+
</p>
|
|
1121
|
+
|
|
1122
|
+
<pre><code class="highlight language-html"><span class="nt"><p</span> <span class="na">title=</span><span class="s">"Important Note"</span> <span class="na">lang=</span><span class="s">"en"</span> <span class="na">data-id=</span><span class="s">"123"</span><span class="nt">></span>Paragraph.<span class="nt"></p></span>
|
|
1123
|
+
<span class="nt"><p></span>Link with attributes.
|
|
1124
|
+
<span class="nt"><a</span> <span class="na">href=</span><span class="s">"url"</span> <span class="na">rel=</span><span class="s">"nofollow"</span> <span class="na">target=</span><span class="s">"_blank"</span><span class="nt">></span>Click here<span class="nt"></a></p></span>
|
|
1125
|
+
</code></pre>
|
|
1126
|
+
|
|
1127
|
+
<p>
|
|
1128
|
+
<strong> Quoted values:</strong> Use quotes when values contain spaces or special characters:
|
|
1129
|
+
</p>
|
|
1130
|
+
|
|
1131
|
+
<pre><code class="highlight language-markdown">
|
|
1132
|
+
{: title="This is a title with spaces" lang="en-US"}
|
|
1133
|
+
</code></pre>
|
|
1134
|
+
|
|
1135
|
+
<p>
|
|
1136
|
+
<strong> Unquoted values:</strong> Simple values without spaces can be unquoted:
|
|
1137
|
+
</p>
|
|
1138
|
+
|
|
1139
|
+
<pre><code class="highlight language-markdown">
|
|
1140
|
+
{: lang=en data-visible=true}
|
|
1141
|
+
</code></pre>
|
|
1142
|
+
|
|
1143
|
+
<p>
|
|
1144
|
+
<strong> Escaping quotes:</strong> Inside quoted values, escape quotes with backslash:
|
|
1145
|
+
</p>
|
|
1146
|
+
|
|
1147
|
+
<pre><code class="highlight language-markdown">
|
|
1148
|
+
{: title="He said <span class="se">\"</span>Hello<span class="se">\"</span>"}
|
|
1149
|
+
</code></pre>
|
|
1150
|
+
|
|
1151
|
+
<h3 id="combining-attributes">
|
|
1152
|
+
Combining Attributes
|
|
1153
|
+
</h3>
|
|
1154
|
+
|
|
1155
|
+
<p>
|
|
1156
|
+
All three types can be combined in a single IAL:
|
|
1157
|
+
</p>
|
|
1158
|
+
|
|
1159
|
+
<pre><code class="highlight language-markdown"><span class="gh"># Heading</span>
|
|
1160
|
+
|
|
1161
|
+
{: #section-1 .important .highlight title="Section Title" lang="en"}
|
|
1162
|
+
</code></pre>
|
|
1163
|
+
|
|
1164
|
+
<p>
|
|
1165
|
+
Output: <code><h1 id="section-1" class="important highlight" title="Section Title" lang="en">Heading</h1></code>
|
|
1166
|
+
</p>
|
|
1167
|
+
|
|
1168
|
+
<h2 id="attribute-list-definitions-alds">
|
|
1169
|
+
Attribute List Definitions (ALDs)
|
|
1170
|
+
</h2>
|
|
1171
|
+
|
|
1172
|
+
<p>
|
|
1173
|
+
ALDs let you define reusable attribute sets that can be referenced multiple times. This is useful for maintaining consistent styling across a document.
|
|
1174
|
+
</p>
|
|
1175
|
+
|
|
1176
|
+
<h3 id="defining-alds">
|
|
1177
|
+
Defining ALDs
|
|
1178
|
+
</h3>
|
|
1179
|
+
|
|
1180
|
+
<p>
|
|
1181
|
+
ALDs use the syntax <code>{🚗 attributes}</code> and can appear anywhere in your document (though typically at the end for organization):
|
|
1182
|
+
</p>
|
|
1183
|
+
|
|
1184
|
+
<pre><code class="highlight language-markdown"><span class="gh"># Header 1</span>
|
|
1185
|
+
|
|
1186
|
+
{:header-style}
|
|
1187
|
+
|
|
1188
|
+
<span class="gh"># Header 2</span>
|
|
1189
|
+
|
|
1190
|
+
{:header-style}
|
|
1191
|
+
|
|
1192
|
+
<span class="gh"># Header 3</span>
|
|
1193
|
+
|
|
1194
|
+
{:header-style}
|
|
1195
|
+
|
|
1196
|
+
</code></pre>
|
|
1197
|
+
|
|
1198
|
+
<p>
|
|
1199
|
+
Output:
|
|
1200
|
+
</p>
|
|
1201
|
+
|
|
1202
|
+
<pre><code class="highlight language-html"><span class="nt"><h1</span> <span class="na">id=</span><span class="s">"section-title"</span> <span class="na">class=</span><span class="s">"large bold"</span> <span class="na">lang=</span><span class="s">"en"</span><span class="nt">></span>Header 1<span class="nt"></h1></span>
|
|
1203
|
+
<span class="nt"><h1</span> <span class="na">id=</span><span class="s">"section-title"</span> <span class="na">class=</span><span class="s">"large bold"</span> <span class="na">lang=</span><span class="s">"en"</span><span class="nt">></span>Header 2<span class="nt"></h1></span>
|
|
1204
|
+
<span class="nt"><h1</span> <span class="na">id=</span><span class="s">"section-title"</span> <span class="na">class=</span><span class="s">"large bold"</span> <span class="na">lang=</span><span class="s">"en"</span><span class="nt">></span>Header 3<span class="nt"></h1></span>
|
|
1205
|
+
</code></pre>
|
|
1206
|
+
|
|
1207
|
+
<h3 id="ald-syntax">
|
|
1208
|
+
ALD Syntax
|
|
1209
|
+
</h3>
|
|
1210
|
+
|
|
1211
|
+
<p>
|
|
1212
|
+
ALD definitions follow the same attribute syntax as IALs:
|
|
1213
|
+
</p>
|
|
1214
|
+
|
|
1215
|
+
<pre lang="markdown"><code></code></pre>
|
|
1216
|
+
|
|
1217
|
+
<h3 id="referencing-alds">
|
|
1218
|
+
Referencing ALDs
|
|
1219
|
+
</h3>
|
|
1220
|
+
|
|
1221
|
+
<p>
|
|
1222
|
+
Reference an ALD in an IAL using just the reference name:
|
|
1223
|
+
</p>
|
|
1224
|
+
|
|
1225
|
+
<pre><code class="highlight language-markdown"><span class="gh"># Heading</span>
|
|
1226
|
+
|
|
1227
|
+
{:my-style}
|
|
1228
|
+
|
|
1229
|
+
Paragraph.
|
|
1230
|
+
|
|
1231
|
+
{:my-style}
|
|
1232
|
+
</code></pre>
|
|
1233
|
+
|
|
1234
|
+
<p>
|
|
1235
|
+
If the ALD <code>{💪 ...}</code> is defined, both elements will receive those attributes.
|
|
1236
|
+
</p>
|
|
1237
|
+
|
|
1238
|
+
<h3 id="mixed-usage">
|
|
1239
|
+
Mixed Usage
|
|
1240
|
+
</h3>
|
|
1241
|
+
|
|
1242
|
+
<p>
|
|
1243
|
+
You can mix ALD references with additional attributes in the same IAL. The additional attributes override or extend the ALD:
|
|
1244
|
+
</p>
|
|
1245
|
+
|
|
1246
|
+
<pre><code class="highlight language-markdown">
|
|
1247
|
+
<span class="gh"># Heading 1</span>
|
|
1248
|
+
|
|
1249
|
+
{:base-style}
|
|
1250
|
+
|
|
1251
|
+
<span class="gh"># Heading 2</span>
|
|
1252
|
+
|
|
1253
|
+
{:base-style .class3}
|
|
1254
|
+
|
|
1255
|
+
<span class="gh"># Heading 3</span>
|
|
1256
|
+
|
|
1257
|
+
{:base-style #override-id}
|
|
1258
|
+
|
|
1259
|
+
<span class="gh"># Heading 4</span>
|
|
1260
|
+
|
|
1261
|
+
{:base-style .class3 rel="nofollow"}
|
|
1262
|
+
</code></pre>
|
|
1263
|
+
|
|
1264
|
+
<p>
|
|
1265
|
+
Output:
|
|
1266
|
+
</p>
|
|
1267
|
+
|
|
1268
|
+
<pre><code class="highlight language-html"><span class="nt"><h1</span> <span class="na">id=</span><span class="s">"main"</span> <span class="na">class=</span><span class="s">"class1 class2"</span><span class="nt">></span>Heading 1<span class="nt"></h1></span>
|
|
1269
|
+
<span class="nt"><h1</span> <span class="na">id=</span><span class="s">"main"</span> <span class="na">class=</span><span class="s">"class1 class2 class3"</span><span class="nt">></span>Heading 2<span class="nt"></h1></span>
|
|
1270
|
+
<span class="nt"><h1</span> <span class="na">id=</span><span class="s">"override-id"</span> <span class="na">class=</span><span class="s">"class1 class2"</span><span class="nt">></span>Heading 3<span class="nt"></h1></span>
|
|
1271
|
+
<span class="nt"><h1</span> <span class="na">id=</span><span class="s">"main"</span> <span class="na">class=</span><span class="s">"class1 class2 class3"</span> <span class="na">rel=</span><span class="s">"nofollow"</span><span class="nt">></span>Heading 4<span class="nt"></h1></span>
|
|
1272
|
+
</code></pre>
|
|
1273
|
+
|
|
1274
|
+
<p>
|
|
1275
|
+
<strong> Behavior:</strong>
|
|
1276
|
+
</p>
|
|
1277
|
+
|
|
1278
|
+
<ul>
|
|
1279
|
+
|
|
1280
|
+
<li>
|
|
1281
|
+
<strong> Classes</strong>: Additional classes are appended to the ALD classes
|
|
1282
|
+
</li>
|
|
1283
|
+
|
|
1284
|
+
<li>
|
|
1285
|
+
<strong> IDs</strong>: If an ID is specified in the IAL, it overrides the ALD’s ID
|
|
1286
|
+
</li>
|
|
1287
|
+
|
|
1288
|
+
<li>
|
|
1289
|
+
<strong> Key-value attributes</strong>: If a key exists in both ALD and IAL, the IAL value overrides the ALD value
|
|
1290
|
+
</li>
|
|
1291
|
+
|
|
1292
|
+
</ul>
|
|
1293
|
+
|
|
1294
|
+
<h2 id="important-notes">
|
|
1295
|
+
Important Notes
|
|
1296
|
+
</h2>
|
|
1297
|
+
|
|
1298
|
+
<h3 id="block-level-ial-positioning">
|
|
1299
|
+
Block-Level IAL Positioning
|
|
1300
|
+
</h3>
|
|
1301
|
+
|
|
1302
|
+
<p>
|
|
1303
|
+
For block-level elements, the IAL <strong>must</strong> appear immediately after the element with <strong>no blank line</strong> between them:
|
|
1304
|
+
</p>
|
|
1305
|
+
|
|
1306
|
+
<p>
|
|
1307
|
+
<strong> Correct:</strong>
|
|
1308
|
+
</p>
|
|
1309
|
+
|
|
1310
|
+
<pre><code class="highlight language-markdown">Paragraph text.
|
|
1311
|
+
|
|
1312
|
+
{: .class}
|
|
1313
|
+
</code></pre>
|
|
1314
|
+
|
|
1315
|
+
<p>
|
|
1316
|
+
<strong> Incorrect:</strong>
|
|
1317
|
+
</p>
|
|
1318
|
+
|
|
1319
|
+
<pre><code class="highlight language-markdown">Paragraph text.
|
|
1320
|
+
|
|
1321
|
+
{: .class}
|
|
1322
|
+
</code></pre>
|
|
1323
|
+
|
|
1324
|
+
<p>
|
|
1325
|
+
The blank line will cause the IAL to be treated as a separate paragraph.
|
|
1326
|
+
</p>
|
|
1327
|
+
|
|
1328
|
+
<h3 id="inline-ial-positioning">
|
|
1329
|
+
Inline IAL Positioning
|
|
1330
|
+
</h3>
|
|
1331
|
+
|
|
1332
|
+
<p>
|
|
1333
|
+
For inline elements, the IAL must appear immediately after the element, with optional whitespace:
|
|
1334
|
+
</p>
|
|
1335
|
+
|
|
1336
|
+
<pre><code class="highlight language-markdown"><span class="p">[</span><span class="nv">link</span><span class="p">](</span><span class="sx">url</span><span class="p">)</span>{:.class} text after
|
|
1337
|
+
<span class="gs">**bold**</span>{:.bold-style} more text
|
|
1338
|
+
</code></pre>
|
|
1339
|
+
|
|
1340
|
+
<h3 id="multiple-elements-with-same-attributes">
|
|
1341
|
+
Multiple Elements with Same Attributes
|
|
1342
|
+
</h3>
|
|
1343
|
+
|
|
1344
|
+
<p>
|
|
1345
|
+
When multiple links share the same URL, IALs are correctly matched using element indexing:
|
|
1346
|
+
</p>
|
|
1347
|
+
|
|
1348
|
+
<pre><code class="highlight language-markdown">Here's a <span class="p">[</span><span class="nv">regular link</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span> and <span class="p">[</span><span class="nv">another link</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span>{:.button}.
|
|
1349
|
+
</code></pre>
|
|
1350
|
+
|
|
1351
|
+
<p>
|
|
1352
|
+
Both links point to the same URL, but only the second one receives the <code>button</code> class.
|
|
1353
|
+
</p>
|
|
1354
|
+
|
|
1355
|
+
<h3 id="nested-elements">
|
|
1356
|
+
Nested Elements
|
|
1357
|
+
</h3>
|
|
1358
|
+
|
|
1359
|
+
<p>
|
|
1360
|
+
IALs work with nested inline elements:
|
|
1361
|
+
</p>
|
|
1362
|
+
|
|
1363
|
+
<pre><code class="highlight language-markdown"><span class="ge">**</span>Bold text with <span class="ge">*italic*</span>{:.nested} inside<span class="ge">**</span>{:.wrapper}
|
|
1364
|
+
</code></pre>
|
|
1365
|
+
|
|
1366
|
+
<p>
|
|
1367
|
+
The italic element gets the <code>nested</code> class, and the bold element gets the <code>wrapper</code> class.
|
|
1368
|
+
</p>
|
|
1369
|
+
|
|
1370
|
+
<h2 id="examples">
|
|
1371
|
+
Examples
|
|
1372
|
+
</h2>
|
|
1373
|
+
|
|
1374
|
+
<h3 id="complete-example">
|
|
1375
|
+
Complete Example
|
|
1376
|
+
</h3>
|
|
1377
|
+
|
|
1378
|
+
<pre><code class="highlight language-markdown"><span class="gh"># Main Title</span>
|
|
1379
|
+
|
|
1380
|
+
{: #main-title .page-title}
|
|
1381
|
+
|
|
1382
|
+
<span class="gu">## Section 1</span>
|
|
1383
|
+
|
|
1384
|
+
{:section-heading}
|
|
1385
|
+
|
|
1386
|
+
This paragraph has <span class="p">[</span><span class="nv">a link</span><span class="p">](</span><span class="sx">https://example.com</span><span class="p">)</span>{:.external-link} with styling.
|
|
1387
|
+
|
|
1388
|
+
Another paragraph with <span class="gs">**bold text**</span>{:.highlight}.
|
|
1389
|
+
|
|
1390
|
+
<span class="gu">## Section 2</span>
|
|
1391
|
+
|
|
1392
|
+
{:section-heading}
|
|
1393
|
+
|
|
1394
|
+
More content here.
|
|
1395
|
+
|
|
1396
|
+
</code></pre>
|
|
1397
|
+
|
|
1398
|
+
<p>
|
|
1399
|
+
Output:
|
|
1400
|
+
</p>
|
|
1401
|
+
|
|
1402
|
+
<pre><code class="highlight language-html"><span class="nt"><h1</span> <span class="na">id=</span><span class="s">"main-title"</span> <span class="na">class=</span><span class="s">"page-title"</span><span class="nt">></span>Main Title<span class="nt"></h1></span>
|
|
1403
|
+
<span class="nt"><h2</span> <span class="na">class=</span><span class="s">"section important"</span> <span class="na">lang=</span><span class="s">"en"</span><span class="nt">></span>Section 1<span class="nt"></h2></span>
|
|
1404
|
+
<span class="nt"><p></span>This paragraph has <span class="nt"><a</span> <span class="na">href=</span><span class="s">"https://example.com"</span> <span class="na">class=</span><span class="s">"external-link"</span><span class="nt">></span>a link<span class="nt"></a></span> with styling.<span class="nt"></p></span>
|
|
1405
|
+
<span class="nt"><p></span>Another paragraph with <span class="nt"><strong</span> <span class="na">class=</span><span class="s">"highlight"</span><span class="nt">></span>bold text<span class="nt"></strong></span>.<span class="nt"></p></span>
|
|
1406
|
+
<span class="nt"><h2</span> <span class="na">class=</span><span class="s">"section important"</span> <span class="na">lang=</span><span class="s">"en"</span><span class="nt">></span>Section 2<span class="nt"></h2></span>
|
|
1407
|
+
<span class="nt"><p></span>More content here.<span class="nt"></p></span>
|
|
1408
|
+
</code></pre>
|
|
1409
|
+
|
|
1410
|
+
<h3 id="using-alds-for-consistent-styling">
|
|
1411
|
+
Using ALDs for Consistent Styling
|
|
1412
|
+
</h3>
|
|
1413
|
+
|
|
1414
|
+
<pre><code class="highlight language-markdown"><span class="gh"># Introduction</span>
|
|
1415
|
+
|
|
1416
|
+
{:intro}
|
|
1417
|
+
|
|
1418
|
+
<span class="gu">## Overview</span>
|
|
1419
|
+
|
|
1420
|
+
{:intro}
|
|
1421
|
+
|
|
1422
|
+
<span class="gu">## Details</span>
|
|
1423
|
+
|
|
1424
|
+
{:intro}
|
|
1425
|
+
|
|
1426
|
+
<span class="gh"># Conclusion</span>
|
|
1427
|
+
|
|
1428
|
+
{:conclusion}
|
|
1429
|
+
|
|
1430
|
+
<span class="gu">## Summary</span>
|
|
1431
|
+
|
|
1432
|
+
{:conclusion}
|
|
1433
|
+
|
|
1434
|
+
</code></pre>
|
|
1435
|
+
|
|
1436
|
+
<p>
|
|
1437
|
+
This allows you to maintain consistent styling across multiple elements by defining the attributes once and referencing them multiple times.
|
|
1438
|
+
</p>
|
|
1439
|
+
|
|
1440
|
+
<h2 id="related">
|
|
1441
|
+
Related
|
|
1442
|
+
</h2>
|
|
1443
|
+
|
|
1444
|
+
<ul>
|
|
1445
|
+
|
|
1446
|
+
<li>
|
|
1447
|
+
<a href="Syntax.html"> Syntax</a> - Complete syntax reference
|
|
1448
|
+
</li>
|
|
1449
|
+
|
|
1450
|
+
<li>
|
|
1451
|
+
<a href="Modes.html"> Modes</a> - Understanding processor modes (IALs available in Kramdown and unified modes)
|
|
1452
|
+
</li>
|
|
1453
|
+
|
|
1454
|
+
</ul>
|
|
1455
|
+
|
|
1456
|
+
<script>
|
|
1457
|
+
// Hamburger menu functionality
|
|
1458
|
+
(function() {
|
|
1459
|
+
function initHamburgerMenu() {
|
|
1460
|
+
var hamburger = document.getElementById('hamburger-menu');
|
|
1461
|
+
var sidebar = document.querySelector('.main-toc, .sidebar');
|
|
1462
|
+
var overlay = document.getElementById('mobile-menu-overlay');
|
|
1463
|
+
|
|
1464
|
+
if (!hamburger || !sidebar) return;
|
|
1465
|
+
|
|
1466
|
+
function toggleMenu() {
|
|
1467
|
+
var isOpen = sidebar.classList.contains('mobile-open');
|
|
1468
|
+
if (isOpen) {
|
|
1469
|
+
sidebar.classList.remove('mobile-open');
|
|
1470
|
+
hamburger.classList.remove('active');
|
|
1471
|
+
if (overlay) overlay.classList.remove('active');
|
|
1472
|
+
} else {
|
|
1473
|
+
sidebar.classList.add('mobile-open');
|
|
1474
|
+
hamburger.classList.add('active');
|
|
1475
|
+
if (overlay) overlay.classList.add('active');
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1478
|
+
|
|
1479
|
+
hamburger.addEventListener('click', function(e) {
|
|
1480
|
+
e.stopPropagation();
|
|
1481
|
+
toggleMenu();
|
|
1482
|
+
});
|
|
1483
|
+
|
|
1484
|
+
if (overlay) {
|
|
1485
|
+
overlay.addEventListener('click', function() {
|
|
1486
|
+
toggleMenu();
|
|
1487
|
+
});
|
|
1488
|
+
}
|
|
1489
|
+
|
|
1490
|
+
// Close menu when clicking on a sidebar link (mobile only)
|
|
1491
|
+
if (window.innerWidth <= 768) {
|
|
1492
|
+
var sidebarLinks = sidebar.querySelectorAll('a');
|
|
1493
|
+
sidebarLinks.forEach(function(link) {
|
|
1494
|
+
link.addEventListener('click', function() {
|
|
1495
|
+
setTimeout(function() {
|
|
1496
|
+
sidebar.classList.remove('mobile-open');
|
|
1497
|
+
hamburger.classList.remove('active');
|
|
1498
|
+
if (overlay) overlay.classList.remove('active');
|
|
1499
|
+
}, 100);
|
|
1500
|
+
});
|
|
1501
|
+
});
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
// Close menu on window resize if going to desktop
|
|
1505
|
+
window.addEventListener('resize', function() {
|
|
1506
|
+
if (window.innerWidth > 768) {
|
|
1507
|
+
sidebar.classList.remove('mobile-open');
|
|
1508
|
+
hamburger.classList.remove('active');
|
|
1509
|
+
if (overlay) overlay.classList.remove('active');
|
|
1510
|
+
}
|
|
1511
|
+
});
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
// Initialize when DOM is ready
|
|
1515
|
+
if (document.readyState === 'loading') {
|
|
1516
|
+
document.addEventListener('DOMContentLoaded', initHamburgerMenu);
|
|
1517
|
+
} else {
|
|
1518
|
+
initHamburgerMenu();
|
|
1519
|
+
}
|
|
1520
|
+
})();
|
|
1521
|
+
|
|
1522
|
+
</script>
|
|
1523
|
+
<script>
|
|
1524
|
+
(function() {
|
|
1525
|
+
// Clone the page TOC for floating TOC
|
|
1526
|
+
function initFloatingTOC() {
|
|
1527
|
+
var pageTOC = document.getElementById('page-toc-top');
|
|
1528
|
+
var floatingTOCContent = document.getElementById('floating-toc-content');
|
|
1529
|
+
var floatingTOC = document.getElementById('floating-toc');
|
|
1530
|
+
|
|
1531
|
+
if (!pageTOC || !floatingTOCContent || !floatingTOC) return;
|
|
1532
|
+
|
|
1533
|
+
// Clone the TOC structure
|
|
1534
|
+
var tocClone = pageTOC.cloneNode(true);
|
|
1535
|
+
tocClone.id = 'floating-toc-clone';
|
|
1536
|
+
floatingTOCContent.appendChild(tocClone);
|
|
1537
|
+
|
|
1538
|
+
// Update all links to use smooth scrolling
|
|
1539
|
+
var allTOCLinks = document.querySelectorAll('.page-toc a, .floating-toc-content a');
|
|
1540
|
+
allTOCLinks.forEach(function(link) {
|
|
1541
|
+
link.addEventListener('click', function(e) {
|
|
1542
|
+
var href = this.getAttribute('href');
|
|
1543
|
+
if (href && href.startsWith('#')) {
|
|
1544
|
+
e.preventDefault();
|
|
1545
|
+
var targetId = href.substring(1);
|
|
1546
|
+
var targetElement = document.getElementById(targetId);
|
|
1547
|
+
if (targetElement) {
|
|
1548
|
+
var offset = 20; // Offset from top
|
|
1549
|
+
|
|
1550
|
+
// Function to calculate absolute position from document top
|
|
1551
|
+
function getAbsoluteTop(element) {
|
|
1552
|
+
var top = 0;
|
|
1553
|
+
while (element) {
|
|
1554
|
+
top += element.offsetTop;
|
|
1555
|
+
element = element.offsetParent;
|
|
1556
|
+
}
|
|
1557
|
+
return top;
|
|
1558
|
+
}
|
|
1559
|
+
|
|
1560
|
+
var absoluteTop = getAbsoluteTop(targetElement);
|
|
1561
|
+
var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
|
|
1562
|
+
var offsetPosition = absoluteTop - offset;
|
|
1563
|
+
|
|
1564
|
+
// Only scroll if we're not already at the target position
|
|
1565
|
+
if (Math.abs(scrollTop - offsetPosition) > 10) {
|
|
1566
|
+
window.scrollTo({
|
|
1567
|
+
top: Math.max(0, offsetPosition),
|
|
1568
|
+
behavior: 'smooth'
|
|
1569
|
+
});
|
|
1570
|
+
}
|
|
1571
|
+
|
|
1572
|
+
// Update URL hash without triggering scroll
|
|
1573
|
+
if (history.pushState) {
|
|
1574
|
+
history.pushState(null, null, href);
|
|
1575
|
+
}
|
|
1576
|
+
}
|
|
1577
|
+
}
|
|
1578
|
+
});
|
|
1579
|
+
});
|
|
1580
|
+
|
|
1581
|
+
// Handle scroll to show/hide floating TOC
|
|
1582
|
+
var tocTop = pageTOC.getBoundingClientRect().top + window.pageYOffset;
|
|
1583
|
+
var tocBottom = tocTop + pageTOC.offsetHeight;
|
|
1584
|
+
|
|
1585
|
+
function updateFloatingTOC() {
|
|
1586
|
+
var scrollY = window.pageYOffset || document.documentElement.scrollTop;
|
|
1587
|
+
|
|
1588
|
+
if (scrollY > tocBottom) {
|
|
1589
|
+
floatingTOC.classList.add('visible');
|
|
1590
|
+
} else {
|
|
1591
|
+
floatingTOC.classList.remove('visible');
|
|
1592
|
+
}
|
|
1593
|
+
}
|
|
1594
|
+
|
|
1595
|
+
// Throttle scroll events
|
|
1596
|
+
var ticking = false;
|
|
1597
|
+
window.addEventListener('scroll', function() {
|
|
1598
|
+
if (!ticking) {
|
|
1599
|
+
window.requestAnimationFrame(function() {
|
|
1600
|
+
updateFloatingTOC();
|
|
1601
|
+
ticking = false;
|
|
1602
|
+
});
|
|
1603
|
+
ticking = true;
|
|
1604
|
+
}
|
|
1605
|
+
});
|
|
1606
|
+
|
|
1607
|
+
// Initial check
|
|
1608
|
+
updateFloatingTOC();
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
// Initialize when DOM is ready
|
|
1612
|
+
if (document.readyState === 'loading') {
|
|
1613
|
+
document.addEventListener('DOMContentLoaded', initFloatingTOC);
|
|
1614
|
+
} else {
|
|
1615
|
+
initFloatingTOC();
|
|
1616
|
+
}
|
|
1617
|
+
})();
|
|
1618
|
+
</script>
|
|
1619
|
+
<footer class="page-footer"><p>Copyright 2025 Brett Terpstra, All Rights Reserved | MIT License</p></footer></body>
|
|
1620
|
+
|
|
1621
|
+
</html>
|
|
1622
|
+
|