apex-ruby 1.0.18 → 1.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +17 -3
- data/ext/apex_ext/apex_ext.c +260 -91
- data/ext/apex_ext/apex_src/CHANGELOG.md +440 -0
- data/ext/apex_ext/apex_src/CMakeLists.txt +15 -1
- data/ext/apex_ext/apex_src/Formula/apex.rb +7 -2
- data/ext/apex_ext/apex_src/Package.swift +15 -4
- data/ext/apex_ext/apex_src/README.md +94 -35
- data/ext/apex_ext/apex_src/VERSION +1 -1
- data/ext/apex_ext/apex_src/apex-debug.log +4 -0
- data/ext/apex_ext/apex_src/apex.code-workspace +38 -0
- data/ext/apex_ext/apex_src/apex.taskpaper +12 -0
- data/ext/apex_ext/apex_src/apex_deflist_debug.log +25 -0
- data/ext/apex_ext/apex_src/buildnotes.md +1435 -0
- data/ext/apex_ext/apex_src/cli/main.c +262 -33
- data/ext/apex_ext/apex_src/debug.log +7 -0
- data/ext/apex_ext/apex_src/docs/CITATIONS_EXAMPLES.md +274 -0
- data/ext/apex_ext/apex_src/docs/CITATIONS_IMPLEMENTATION_PLAN.md +749 -0
- data/ext/apex_ext/apex_src/docs/CITATIONS_PLAN.md +744 -0
- data/ext/apex_ext/apex_src/docs/INDEX_IMPLEMENTATION_ANALYSIS.md +382 -0
- data/ext/apex_ext/apex_src/docs/plans/2025-02-27-man-page-output-implementation.md +351 -0
- data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-12-toc-output-format.md +745 -0
- data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-18-bear-image-attributes.md +829 -0
- data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-19-apex-node-npm.md +1148 -0
- data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-12-toc-output-format-design.md +161 -0
- data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-18-bear-image-attributes-design.md +184 -0
- data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-19-apex-node-npm-design.md +211 -0
- data/ext/apex_ext/apex_src/documentation/app-settings-table.md +67 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Citations.md +340 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Credits.md +11 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Header-IDs.md +234 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Inline-Attribute-Lists.md +516 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Metadata-Transforms.md +461 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Modes.md +193 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Multi-File-Documents.md +201 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Plugins.md +678 -0
- data/ext/apex_ext/apex_src/documentation/app-transformed/Syntax.md +1367 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex Command Line Options.cheatsheet.txt +6 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/C-API.html +774 -300
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Callouts.html +1194 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Citations.html +416 -216
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Command-Line-Options.html +3544 -1094
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Configuration.html +371 -97
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Credits.html +153 -23
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Examples.html +358 -124
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Filters.html +1656 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Generating-Man-Pages.html +1226 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Getting-Started.html +201 -56
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Header-IDs.html +279 -109
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Home.html +200 -53
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Indices.html +2327 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Inline-Attribute-Lists.html +690 -271
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Installation.html +201 -55
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Limitations-and-Roadmap.html +238 -68
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Metadata-Transforms.html +421 -221
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Modes.html +340 -78
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-File-Documents.html +251 -86
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-Format-Images.html +1362 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Pandoc-Integration.html +277 -90
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Plugins.html +673 -346
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Quarto-Mode.html +1405 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Rendering-Markdown-In-Terminal.html +1902 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Syntax.html +1939 -1698
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Tables.html +1781 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Troubleshooting.html +315 -140
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Usage.html +307 -113
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Using-Apex-with-Jekyll.html +1132 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Writing-Tests.html +1754 -0
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Xcode-Integration.html +872 -376
- 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/html/apex-app-docs.html +8746 -0
- data/ext/apex_ext/apex_src/documentation/shared_styles.css +20 -15
- data/ext/apex_ext/apex_src/documentation/transform_for_app.md +55 -0
- data/ext/apex_ext/apex_src/escaping-repro.md +103 -0
- data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/Info.plist +8 -0
- data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/QuickLook/Preview.png +0 -0
- data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/document.wflow +547 -0
- data/ext/apex_ext/apex_src/examples/quick-actions/Markdown-to-RTF.workflow.zip +0 -0
- data/ext/apex_ext/apex_src/examples/quick-actions/README.md +33 -0
- data/ext/apex_ext/apex_src/include/apex/apex.h +92 -6
- data/ext/apex_ext/apex_src/include/apex/ast_rtf.h +23 -0
- data/ext/apex_ext/apex_src/include/apex/ast_terminal.h +6 -0
- data/ext/apex_ext/apex_src/include/apex/module.modulemap +5 -0
- data/ext/apex_ext/apex_src/include/apex/plugins.h +105 -0
- data/ext/apex_ext/apex_src/include/apexc.h +1 -0
- data/ext/apex_ext/apex_src/man/apex.1 +82 -78
- data/ext/apex_ext/apex_src/man/apex.1.md +81 -4
- data/ext/apex_ext/apex_src/objc/Apex.swift +73 -0
- data/ext/apex_ext/apex_src/objc/ApexPlugins.swift +79 -0
- data/ext/apex_ext/apex_src/objc/NSString+Apex.h +83 -5
- data/ext/apex_ext/apex_src/objc/NSString+Apex.m +244 -1
- data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.h +76 -0
- data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.m +169 -0
- data/ext/apex_ext/apex_src/output.html +87 -0
- data/ext/apex_ext/apex_src/plans/quarto-mode.md +442 -0
- data/ext/apex_ext/apex_src/src/_README.md +85 -32
- data/ext/apex_ext/apex_src/src/apex.c +770 -200
- data/ext/apex_ext/apex_src/src/ast_rtf.c +848 -0
- data/ext/apex_ext/apex_src/src/ast_terminal.c +184 -7
- data/ext/apex_ext/apex_src/src/extensions/abbreviations.c +10 -3
- data/ext/apex_ext/apex_src/src/extensions/advanced_tables.c +7 -11
- data/ext/apex_ext/apex_src/src/extensions/bear_image_attrs.c +467 -0
- data/ext/apex_ext/apex_src/src/extensions/bear_image_attrs.h +27 -0
- data/ext/apex_ext/apex_src/src/extensions/callouts.c +400 -4
- data/ext/apex_ext/apex_src/src/extensions/callouts.h +15 -5
- data/ext/apex_ext/apex_src/src/extensions/citations.c +26 -5
- data/ext/apex_ext/apex_src/src/extensions/code_fence_attrs.c +632 -0
- data/ext/apex_ext/apex_src/src/extensions/code_fence_attrs.h +22 -0
- data/ext/apex_ext/apex_src/src/extensions/concordance.c +632 -0
- data/ext/apex_ext/apex_src/src/extensions/definition_list.c +129 -15
- data/ext/apex_ext/apex_src/src/extensions/grid_tables.c +1050 -121
- data/ext/apex_ext/apex_src/src/extensions/html_markdown.c +569 -16
- data/ext/apex_ext/apex_src/src/extensions/ial.c +502 -52
- data/ext/apex_ext/apex_src/src/extensions/ial.h +2 -1
- data/ext/apex_ext/apex_src/src/extensions/includes.c +532 -33
- data/ext/apex_ext/apex_src/src/extensions/includes.h +7 -1
- data/ext/apex_ext/apex_src/src/extensions/index.c +1427 -140
- data/ext/apex_ext/apex_src/src/extensions/index.h +28 -0
- data/ext/apex_ext/apex_src/src/extensions/metadata.c +200 -161
- data/ext/apex_ext/apex_src/src/extensions/quarto_diagrams.c +251 -0
- data/ext/apex_ext/apex_src/src/extensions/quarto_diagrams.h +22 -0
- data/ext/apex_ext/apex_src/src/extensions/quarto_lists.c +624 -0
- data/ext/apex_ext/apex_src/src/extensions/quarto_lists.h +35 -0
- data/ext/apex_ext/apex_src/src/extensions/quarto_polish.c +264 -0
- data/ext/apex_ext/apex_src/src/extensions/quarto_polish.h +23 -0
- data/ext/apex_ext/apex_src/src/extensions/quarto_shortcodes.c +307 -0
- data/ext/apex_ext/apex_src/src/extensions/quarto_shortcodes.h +21 -0
- data/ext/apex_ext/apex_src/src/extensions/raw_content.c +351 -0
- data/ext/apex_ext/apex_src/src/extensions/raw_content.h +20 -0
- data/ext/apex_ext/apex_src/src/extensions/relaxed_tables.c +117 -3
- data/ext/apex_ext/apex_src/src/extensions/special_markers.c +53 -0
- data/ext/apex_ext/apex_src/src/extensions/syntax_highlight.c +23 -1
- data/ext/apex_ext/apex_src/src/extensions/table_html_postprocess.c +83 -92
- data/ext/apex_ext/apex_src/src/extensions/toc.c +446 -25
- data/ext/apex_ext/apex_src/src/extensions/toc.h +26 -1
- data/ext/apex_ext/apex_src/src/extensions/wiki_links.c +28 -0
- data/ext/apex_ext/apex_src/src/html_renderer.c +387 -17
- data/ext/apex_ext/apex_src/src/plugin_catalog.c +517 -0
- data/ext/apex_ext/apex_src/src/plugins_remote.c +88 -14
- data/ext/apex_ext/apex_src/src/plugins_remote.h +34 -0
- data/ext/apex_ext/apex_src/src/pretty_html.c +6 -1
- data/ext/apex_ext/apex_src/tests/fixtures/comprehensive_test.md +21 -0
- data/ext/apex_ext/apex_src/tests/fixtures/images/bear_image_attributes.md +10 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.md +19 -0
- data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.txt +11 -0
- data/ext/apex_ext/apex_src/tests/fixtures/minimal_pb.md +2 -0
- data/ext/apex_ext/apex_src/tests/fixtures/obsidian-callouts.md +46 -0
- data/ext/apex_ext/apex_src/tests/fixtures/pagebreak_html_repro.md +5 -0
- data/ext/apex_ext/apex_src/tests/fixtures/python-callouts.md +47 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/callouts.md +3 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/code-attrs.md +3 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/diagrams.md +8 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/lists.md +19 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/raw-content.md +5 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/shortcodes.md +7 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/smoke.md +81 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto/spans.md +5 -0
- data/ext/apex_ext/apex_src/tests/fixtures/quarto-callouts.md +47 -0
- data/ext/apex_ext/apex_src/tests/fixtures/speed.md +192 -0
- data/ext/apex_ext/apex_src/tests/fixtures/tables/grid-tables.md +37 -0
- data/ext/apex_ext/apex_src/tests/paginate_cli_test.sh +16 -0
- data/ext/apex_ext/apex_src/tests/test_bear_image_attrs.c +301 -0
- data/ext/apex_ext/apex_src/tests/test_concordance.tsv +4 -0
- data/ext/apex_ext/apex_src/tests/test_escaping_repro.c +82 -0
- data/ext/apex_ext/apex_src/tests/test_extensions.c +821 -1
- data/ext/apex_ext/apex_src/tests/test_ial.c +7 -0
- data/ext/apex_ext/apex_src/tests/test_marked_integration.c +25 -0
- data/ext/apex_ext/apex_src/tests/test_metadata.c +129 -0
- data/ext/apex_ext/apex_src/tests/test_output.c +568 -2
- data/ext/apex_ext/apex_src/tests/test_runner.c +11 -0
- data/ext/apex_ext/apex_src/tests/test_tables.c +420 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/CMakeLists.txt +1 -1
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/autolink.c +77 -1
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/table.c +135 -5
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/blocks.c +56 -1
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/config.h +38 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/main.c +1 -1
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/__pycache__/cmark.cpython-314.pyc +0 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/__pycache__/normalize.cpython-314.pyc +0 -0
- data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions.txt +69 -0
- data/ext/apex_ext/apex_src/xcode_build/CMakeScripts/ReRunCMake.make +74 -0
- data/ext/apex_ext/apex_src/xcode_build/CTestTestfile.cmake +22 -0
- data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/Apex +0 -0
- data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/Resources/Info.plist +44 -0
- data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/_CodeSignature/CodeResources +128 -0
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.pbxproj +5118 -0
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcuserdata/ttscoff.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcuserdata/ttscoff.xcuserdatad/WorkspaceSettings.xcsettings +8 -0
- data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/xcuserdata/ttscoff.xcuserdatad/xcschemes/xcschememanagement.plist +99 -0
- data/ext/apex_ext/apex_src/xcode_build/cmake_install.cmake +452 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/CMakeScripts/ReRunCMake.make +52 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmake_install.cmake +55 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmark-gfm.xcodeproj/project.pbxproj +2455 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmark-gfm.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/extensions/cmake_install.cmake +171 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/man/cmake_install.cmake +55 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmake_install.cmake +220 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmark-gfm_export.h +43 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmark-gfm_version.h +7 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/config.h +76 -0
- data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/libcmark-gfm.pc +10 -0
- data/ext/apex_ext/extconf.rb +35 -0
- data/lib/apex/version.rb +2 -2
- metadata +117 -2
- data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/tempOptimizedIndex.dsidx +0 -0
|
@@ -234,6 +234,27 @@ Use `^^` to merge cells vertically (rowspan):
|
|
|
234
234
|
> This callout starts expanded but can be collapsed.
|
|
235
235
|
> It contains multiple lines of content.
|
|
236
236
|
|
|
237
|
+
### Python-Markdown Callouts (requires `--py-callouts`)
|
|
238
|
+
|
|
239
|
+
!!! note "Python Note"
|
|
240
|
+
This callout uses Python-Markdown syntax.
|
|
241
|
+
The body is indented.
|
|
242
|
+
|
|
243
|
+
!!! warning
|
|
244
|
+
This warning has no explicit title.
|
|
245
|
+
|
|
246
|
+
### Quarto Callouts (requires `--quarto-callouts`)
|
|
247
|
+
|
|
248
|
+
::: {.callout-tip}
|
|
249
|
+
## Quarto Tip
|
|
250
|
+
|
|
251
|
+
This callout uses Quarto fenced syntax and heading title extraction.
|
|
252
|
+
:::
|
|
253
|
+
|
|
254
|
+
::: {.callout-warning title="Quarto Warning" collapse="true"}
|
|
255
|
+
This callout uses explicit title and collapse attributes.
|
|
256
|
+
:::
|
|
257
|
+
|
|
237
258
|
## Definition Lists
|
|
238
259
|
|
|
239
260
|
Markdown
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
## Obsidian/Bear Callouts
|
|
2
|
+
|
|
3
|
+
> [!NOTE] Note title
|
|
4
|
+
> Note body
|
|
5
|
+
|
|
6
|
+
> [!ABSTRACT] Abstract title
|
|
7
|
+
> Abstract body
|
|
8
|
+
|
|
9
|
+
> [!INFO] Info title
|
|
10
|
+
> Info body
|
|
11
|
+
|
|
12
|
+
> [!TODO] Todo title
|
|
13
|
+
> Todo body
|
|
14
|
+
|
|
15
|
+
> [!TIP] Tip title
|
|
16
|
+
> Tip body
|
|
17
|
+
|
|
18
|
+
> [!SUCCESS] Success title
|
|
19
|
+
> Success body
|
|
20
|
+
|
|
21
|
+
> [!QUESTION] Question title
|
|
22
|
+
> Question body
|
|
23
|
+
|
|
24
|
+
> [!WARNING] Warning title
|
|
25
|
+
> Warning body
|
|
26
|
+
|
|
27
|
+
> [!FAILURE] Failure title
|
|
28
|
+
> Failure body
|
|
29
|
+
|
|
30
|
+
> [!DANGER] Danger title
|
|
31
|
+
> Danger body
|
|
32
|
+
|
|
33
|
+
> [!BUG] Bug title
|
|
34
|
+
> Bug body
|
|
35
|
+
|
|
36
|
+
> [!EXAMPLE] Example title
|
|
37
|
+
> Example body
|
|
38
|
+
|
|
39
|
+
> [!QUOTE] Quote title
|
|
40
|
+
> Quote body
|
|
41
|
+
|
|
42
|
+
> [!NOTE]+ Expanded collapsible
|
|
43
|
+
> Expanded body
|
|
44
|
+
|
|
45
|
+
> [!NOTE]- Collapsed collapsible
|
|
46
|
+
> Collapsed body
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
## Python-Markdown Callouts (`--py-callouts`)
|
|
2
|
+
|
|
3
|
+
!!! note "Note title"
|
|
4
|
+
Note body
|
|
5
|
+
|
|
6
|
+
!!! abstract "Abstract title"
|
|
7
|
+
Abstract body
|
|
8
|
+
|
|
9
|
+
!!! info "Info title"
|
|
10
|
+
Info body
|
|
11
|
+
|
|
12
|
+
!!! todo "Todo title"
|
|
13
|
+
Todo body
|
|
14
|
+
|
|
15
|
+
!!! tip "Tip title"
|
|
16
|
+
Tip body
|
|
17
|
+
|
|
18
|
+
!!! success "Success title"
|
|
19
|
+
Success body
|
|
20
|
+
|
|
21
|
+
!!! question "Question title"
|
|
22
|
+
Question body
|
|
23
|
+
|
|
24
|
+
!!! warning "Warning title"
|
|
25
|
+
Warning body
|
|
26
|
+
|
|
27
|
+
!!! failure "Failure title"
|
|
28
|
+
Failure body
|
|
29
|
+
|
|
30
|
+
!!! danger "Danger title"
|
|
31
|
+
Danger body
|
|
32
|
+
|
|
33
|
+
!!! bug "Bug title"
|
|
34
|
+
Bug body
|
|
35
|
+
|
|
36
|
+
!!! example "Example title"
|
|
37
|
+
Example body
|
|
38
|
+
|
|
39
|
+
!!! quote "Quote title"
|
|
40
|
+
Quote body
|
|
41
|
+
|
|
42
|
+
NOTE: Label-style note body
|
|
43
|
+
|
|
44
|
+
WARNING: Label-style warning body
|
|
45
|
+
|
|
46
|
+
>? NOTE: Collapsed label-style note
|
|
47
|
+
> Body line for collapsed callout
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
(@) My first example will be numbered (1).
|
|
2
|
+
(@) My second example will be numbered (2).
|
|
3
|
+
|
|
4
|
+
Explanation of examples.
|
|
5
|
+
|
|
6
|
+
(@) My third example will be numbered (3).
|
|
7
|
+
|
|
8
|
+
i) Alpha
|
|
9
|
+
ii) Beta
|
|
10
|
+
|
|
11
|
+
| Line one
|
|
12
|
+
| preserved spaces
|
|
13
|
+
| Line three
|
|
14
|
+
|
|
15
|
+
1. First
|
|
16
|
+
|
|
17
|
+
::: {}
|
|
18
|
+
|
|
19
|
+
1. Second
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Quarto smoke test
|
|
2
|
+
|
|
3
|
+
## Callouts
|
|
4
|
+
|
|
5
|
+
::: {.callout-note}
|
|
6
|
+
Quarto callout note body.
|
|
7
|
+
:::
|
|
8
|
+
|
|
9
|
+
## Spans
|
|
10
|
+
|
|
11
|
+
[smallcaps text]{.smallcaps}
|
|
12
|
+
|
|
13
|
+
[underlined text]{.underline}
|
|
14
|
+
|
|
15
|
+
[highlighted text]{.mark}
|
|
16
|
+
|
|
17
|
+
## Figure
|
|
18
|
+
|
|
19
|
+
{fig-alt="Alt text"}
|
|
20
|
+
|
|
21
|
+
## Div
|
|
22
|
+
|
|
23
|
+
::: {.border}
|
|
24
|
+
Bordered div content.
|
|
25
|
+
:::
|
|
26
|
+
|
|
27
|
+
## Raw content
|
|
28
|
+
|
|
29
|
+
```{=html}
|
|
30
|
+
<strong>raw html</strong>
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Text `<span class="x">inline</span>`{=html} after.
|
|
34
|
+
|
|
35
|
+
## Example lists
|
|
36
|
+
|
|
37
|
+
(@) My first example will be numbered (1).
|
|
38
|
+
(@) My second example will be numbered (2).
|
|
39
|
+
|
|
40
|
+
Explanation of examples.
|
|
41
|
+
|
|
42
|
+
(@) My third example will be numbered (3).
|
|
43
|
+
|
|
44
|
+
## Roman list
|
|
45
|
+
|
|
46
|
+
i) Alpha
|
|
47
|
+
ii) Beta
|
|
48
|
+
|
|
49
|
+
## Line block
|
|
50
|
+
|
|
51
|
+
| Line one
|
|
52
|
+
| preserved spaces
|
|
53
|
+
| Line three
|
|
54
|
+
|
|
55
|
+
## Code fence attributes
|
|
56
|
+
|
|
57
|
+
```{.python filename="run.py"}
|
|
58
|
+
print("hello")
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Diagram fences
|
|
62
|
+
|
|
63
|
+
```{mermaid}
|
|
64
|
+
flowchart LR
|
|
65
|
+
A --> B
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```{dot}
|
|
69
|
+
digraph { A -> B; }
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Shortcodes
|
|
73
|
+
|
|
74
|
+
Page 1
|
|
75
|
+
|
|
76
|
+
{{< pagebreak >}}
|
|
77
|
+
|
|
78
|
+
Page 2
|
|
79
|
+
|
|
80
|
+
Press {{< kbd $@3 >}} to save.
|
|
81
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
## Quarto Callouts (`--quarto-callouts`)
|
|
2
|
+
|
|
3
|
+
::: {.callout-note}
|
|
4
|
+
## Note title
|
|
5
|
+
|
|
6
|
+
Note body
|
|
7
|
+
:::
|
|
8
|
+
|
|
9
|
+
::: {.callout-abstract}
|
|
10
|
+
## Abstract title
|
|
11
|
+
|
|
12
|
+
Abstract body
|
|
13
|
+
:::
|
|
14
|
+
|
|
15
|
+
::: {.callout-info}
|
|
16
|
+
## Info title
|
|
17
|
+
|
|
18
|
+
Info body
|
|
19
|
+
:::
|
|
20
|
+
|
|
21
|
+
::: {.callout-tip}
|
|
22
|
+
## Tip title
|
|
23
|
+
|
|
24
|
+
Tip body
|
|
25
|
+
:::
|
|
26
|
+
|
|
27
|
+
::: {.callout-important}
|
|
28
|
+
## Important title
|
|
29
|
+
|
|
30
|
+
Important body
|
|
31
|
+
:::
|
|
32
|
+
|
|
33
|
+
::: {.callout-warning}
|
|
34
|
+
## Warning title
|
|
35
|
+
|
|
36
|
+
Warning body
|
|
37
|
+
:::
|
|
38
|
+
|
|
39
|
+
::: {.callout-caution}
|
|
40
|
+
## Caution title
|
|
41
|
+
|
|
42
|
+
Caution body
|
|
43
|
+
:::
|
|
44
|
+
|
|
45
|
+
::: {.callout-note title="Collapsed note" collapse="true"}
|
|
46
|
+
Collapsed body
|
|
47
|
+
:::
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
### Network speed history chart (`waveform`)
|
|
2
|
+
|
|
3
|
+
Run Ookla speedtest CLI and convert results to waveform widgets. Requires [the Ookla version](https://www.speedtest.net/apps/cli), not the Homebrew version.
|
|
4
|
+
|
|
5
|
+
Add medium widgets with ids "download" and "upload" to use this, and edit the bin variables at the top to match your setup. This script can be run in the background using launchd.
|
|
6
|
+
|
|
7
|
+
Append each speed test result to a history file, then render the latest 20 samples:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
#!/usr/bin/env bash
|
|
11
|
+
# Example: Speedtest background widget updater
|
|
12
|
+
# runs speedtest, logs, and updates terminal-widget waveform widgets.
|
|
13
|
+
# Requires: /usr/local/bin/speedtest, /opt/homebrew/bin/terminal-widget
|
|
14
|
+
# Add medium widgets with ids "download" and "upload" to your Desktop/iPhone.
|
|
15
|
+
set -e
|
|
16
|
+
|
|
17
|
+
# Set paths to executables here
|
|
18
|
+
SPEEDTEST_BIN="/usr/local/bin/speedtest"
|
|
19
|
+
TERMINAL_WIDGET_BIN="/opt/homebrew/bin/terminal-widget"
|
|
20
|
+
|
|
21
|
+
LOGDIR="$HOME/logs"
|
|
22
|
+
LOGFILE="$LOGDIR/speed.csv"
|
|
23
|
+
mkdir -p "$LOGDIR"
|
|
24
|
+
|
|
25
|
+
WIDGET_COUNT=20
|
|
26
|
+
|
|
27
|
+
# Helper to get values from log
|
|
28
|
+
gather_log_values() {
|
|
29
|
+
local count="$1"
|
|
30
|
+
local col="$2"
|
|
31
|
+
tail -n "$count" "$LOGFILE" | awk -F, -v c="$col" '{print ($c==""?0:$c)}'
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# Run speedtest and log result
|
|
35
|
+
run_speedtest() {
|
|
36
|
+
local jsonfile
|
|
37
|
+
jsonfile=$(mktemp)
|
|
38
|
+
"$SPEEDTEST_BIN" -f json -p no >"$jsonfile"
|
|
39
|
+
local status=$?
|
|
40
|
+
if [[ $status -ne 0 ]]; then
|
|
41
|
+
rm -f "$jsonfile"
|
|
42
|
+
exit $status
|
|
43
|
+
fi
|
|
44
|
+
read -r DOWNLOAD UPLOAD < <(python3 -c '
|
|
45
|
+
import json,sys
|
|
46
|
+
with open(sys.argv[1]) as f:
|
|
47
|
+
data=json.load(f)
|
|
48
|
+
def calc(b): return int(round(b/(1024*100)))
|
|
49
|
+
print(calc(data["download"]["bandwidth"]), calc(data["upload"]["bandwidth"]))
|
|
50
|
+
' "$jsonfile")
|
|
51
|
+
rm -f "$jsonfile"
|
|
52
|
+
TIMESTAMP=$(date -Iseconds)
|
|
53
|
+
echo "$TIMESTAMP,$DOWNLOAD,$UPLOAD" >>"$LOGFILE"
|
|
54
|
+
tmpfile=$(mktemp)
|
|
55
|
+
tail -n 100 "$LOGFILE" >"$tmpfile"
|
|
56
|
+
mv "$tmpfile" "$LOGFILE"
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
# Update terminal-widget waveform widgets for both download and upload
|
|
60
|
+
update_widgets() {
|
|
61
|
+
DOWN_VALS=($(gather_log_values "$WIDGET_COUNT" 2))
|
|
62
|
+
UP_VALS=($(gather_log_values "$WIDGET_COUNT" 3))
|
|
63
|
+
printf "%s " "${DOWN_VALS[@]}" | sed 's/ $//' | "$TERMINAL_WIDGET_BIN" --target download --text "Download Speeds" --caption --chart - --chart-format waveform --bg ffffff --fg "rgb(237, 78, 195)" --text-color 222222 --caption-color 888888
|
|
64
|
+
printf "%s " "${UP_VALS[@]}" | sed 's/ $//' | "$TERMINAL_WIDGET_BIN" --target upload --text "Upload Speeds" --caption --chart - --chart-format waveform --bg ffffff --fg "rgb(78, 155, 237)" --text-color 222222 --caption-color 888888
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
# Main: always run speedtest and update widgets
|
|
68
|
+
run_speedtest
|
|
69
|
+
update_widgets
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Here's a luanchd example for the speedtest script. This assumes you've saved the script as speed-widget.sh, and you'll need to update your path in the ProgramArguments.
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
76
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
77
|
+
<plist version="1.0">
|
|
78
|
+
<dict>
|
|
79
|
+
<key>Label</key>
|
|
80
|
+
<string>com.brettterpstra.speed</string>
|
|
81
|
+
<key>ProgramArguments</key>
|
|
82
|
+
<array>
|
|
83
|
+
<string>/Users/ttscoff/scripts/speed-widget.sh</string>
|
|
84
|
+
</array>
|
|
85
|
+
<key>RunAtLoad</key>
|
|
86
|
+
<true/>
|
|
87
|
+
<key>StandardErrorPath</key>
|
|
88
|
+
<string>/Users/ttscoff/logs/com.brettterpstra.speedtest.err</string>
|
|
89
|
+
<key>StandardOutPath</key>
|
|
90
|
+
<string>/Users/ttscoff/logs/com.brettterpstra.speedtest.out</string>
|
|
91
|
+
<key>StartInterval</key>
|
|
92
|
+
<integer>900</integer>
|
|
93
|
+
</dict>
|
|
94
|
+
</plist>
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
### Network speed history chart (`waveform`)
|
|
98
|
+
|
|
99
|
+
Run Ookla speedtest CLI and convert results to waveform widgets. Requires [the Ookla version](https://www.speedtest.net/apps/cli), not the Homebrew version.
|
|
100
|
+
|
|
101
|
+
Add medium widgets with ids "download" and "upload" to use this, and edit the bin variables at the top to match your setup. This script can be run in the background using launchd.
|
|
102
|
+
|
|
103
|
+
Append each speed test result to a history file, then render the latest 20 samples:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
#!/usr/bin/env bash
|
|
107
|
+
# Example: Speedtest background widget updater
|
|
108
|
+
# runs speedtest, logs, and updates terminal-widget waveform widgets.
|
|
109
|
+
# Requires: /usr/local/bin/speedtest, /opt/homebrew/bin/terminal-widget
|
|
110
|
+
# Add medium widgets with ids "download" and "upload" to your Desktop/iPhone.
|
|
111
|
+
set -e
|
|
112
|
+
|
|
113
|
+
# Set paths to executables here
|
|
114
|
+
SPEEDTEST_BIN="/usr/local/bin/speedtest"
|
|
115
|
+
TERMINAL_WIDGET_BIN="/opt/homebrew/bin/terminal-widget"
|
|
116
|
+
|
|
117
|
+
LOGDIR="$HOME/logs"
|
|
118
|
+
LOGFILE="$LOGDIR/speed.csv"
|
|
119
|
+
mkdir -p "$LOGDIR"
|
|
120
|
+
|
|
121
|
+
WIDGET_COUNT=20
|
|
122
|
+
|
|
123
|
+
# Helper to get values from log
|
|
124
|
+
gather_log_values() {
|
|
125
|
+
local count="$1"
|
|
126
|
+
local col="$2"
|
|
127
|
+
tail -n "$count" "$LOGFILE" | awk -F, -v c="$col" '{print ($c==""?0:$c)}'
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
# Run speedtest and log result
|
|
131
|
+
run_speedtest() {
|
|
132
|
+
local jsonfile
|
|
133
|
+
jsonfile=$(mktemp)
|
|
134
|
+
"$SPEEDTEST_BIN" -f json -p no >"$jsonfile"
|
|
135
|
+
local status=$?
|
|
136
|
+
if [[ $status -ne 0 ]]; then
|
|
137
|
+
rm -f "$jsonfile"
|
|
138
|
+
exit $status
|
|
139
|
+
fi
|
|
140
|
+
read -r DOWNLOAD UPLOAD < <(python3 -c '
|
|
141
|
+
import json,sys
|
|
142
|
+
with open(sys.argv[1]) as f:
|
|
143
|
+
data=json.load(f)
|
|
144
|
+
def calc(b): return int(round(b/(1024*100)))
|
|
145
|
+
print(calc(data["download"]["bandwidth"]), calc(data["upload"]["bandwidth"]))
|
|
146
|
+
' "$jsonfile")
|
|
147
|
+
rm -f "$jsonfile"
|
|
148
|
+
TIMESTAMP=$(date -Iseconds)
|
|
149
|
+
echo "$TIMESTAMP,$DOWNLOAD,$UPLOAD" >>"$LOGFILE"
|
|
150
|
+
tmpfile=$(mktemp)
|
|
151
|
+
tail -n 100 "$LOGFILE" >"$tmpfile"
|
|
152
|
+
mv "$tmpfile" "$LOGFILE"
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
# Update terminal-widget waveform widgets for both download and upload
|
|
156
|
+
update_widgets() {
|
|
157
|
+
DOWN_VALS=($(gather_log_values "$WIDGET_COUNT" 2))
|
|
158
|
+
UP_VALS=($(gather_log_values "$WIDGET_COUNT" 3))
|
|
159
|
+
printf "%s " "${DOWN_VALS[@]}" | sed 's/ $//' | "$TERMINAL_WIDGET_BIN" --target download --text "Download Speeds" --caption --chart - --chart-format waveform --bg ffffff --fg "rgb(237, 78, 195)" --text-color 222222 --caption-color 888888
|
|
160
|
+
printf "%s " "${UP_VALS[@]}" | sed 's/ $//' | "$TERMINAL_WIDGET_BIN" --target upload --text "Upload Speeds" --caption --chart - --chart-format waveform --bg ffffff --fg "rgb(78, 155, 237)" --text-color 222222 --caption-color 888888
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
# Main: always run speedtest and update widgets
|
|
164
|
+
run_speedtest
|
|
165
|
+
update_widgets
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Here's a luanchd example for the speedtest script. This assumes you've saved the script as speed-widget.sh, and you'll need to update your path in the ProgramArguments.
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
172
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
173
|
+
<plist version="1.0">
|
|
174
|
+
<dict>
|
|
175
|
+
<key>Label</key>
|
|
176
|
+
<string>com.brettterpstra.speed</string>
|
|
177
|
+
<key>ProgramArguments</key>
|
|
178
|
+
<array>
|
|
179
|
+
<string>/Users/ttscoff/scripts/speed-widget.sh</string>
|
|
180
|
+
</array>
|
|
181
|
+
<key>RunAtLoad</key>
|
|
182
|
+
<true/>
|
|
183
|
+
<key>StandardErrorPath</key>
|
|
184
|
+
<string>/Users/ttscoff/logs/com.brettterpstra.speedtest.err</string>
|
|
185
|
+
<key>StandardOutPath</key>
|
|
186
|
+
<string>/Users/ttscoff/logs/com.brettterpstra.speedtest.out</string>
|
|
187
|
+
<key>StartInterval</key>
|
|
188
|
+
<integer>900</integer>
|
|
189
|
+
</dict>
|
|
190
|
+
</plist>
|
|
191
|
+
|
|
192
|
+
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
## Fist example
|
|
2
|
+
|
|
3
|
+
+-------------------+-------------------+
|
|
4
|
+
| Grid Tables | Are Beautiful |
|
|
5
|
+
+===================+===================+
|
|
6
|
+
| | In code and docs |
|
|
7
|
+
| Easy to read | |
|
|
8
|
+
| | |
|
|
9
|
+
+-------------------+-------------------+
|
|
10
|
+
| Exceptionally flexible and powerful |
|
|
11
|
+
+-------+-------+-------+-------+-------+
|
|
12
|
+
| Col 1 | Col 2 | Col 3 | Col 4 | Col 5 |
|
|
13
|
+
+-------+-------+-------+-------+-------+
|
|
14
|
+
|
|
15
|
+
## Second
|
|
16
|
+
|
|
17
|
+
+---------------------+----------+
|
|
18
|
+
| Property | Earth |
|
|
19
|
+
+=============+=======+==========+
|
|
20
|
+
| | min | -89.2 °C |
|
|
21
|
+
| Temperature +-------+----------+
|
|
22
|
+
| 1961-1990 | mean | 14 °C |
|
|
23
|
+
| +-------+----------+
|
|
24
|
+
| | min | 56.7 °C |
|
|
25
|
+
+-------------+-------+----------+
|
|
26
|
+
|
|
27
|
+
## Markdown in cells
|
|
28
|
+
|
|
29
|
+
+---------------+---------------+--------------------+
|
|
30
|
+
| Fruit | Price | Advantages |
|
|
31
|
+
+===============+===============+====================+
|
|
32
|
+
| Bananas | $1.34 | - built-in wrapper |
|
|
33
|
+
| | | - bright color |
|
|
34
|
+
+---------------+---------------+--------------------+
|
|
35
|
+
| Oranges | $2.10 | - cures scurvy |
|
|
36
|
+
| | | - tasty |
|
|
37
|
+
+---------------+---------------+--------------------+
|
|
@@ -46,6 +46,22 @@ fi
|
|
|
46
46
|
|
|
47
47
|
echo "paginate_cli_test: paginate: true config matches baseline output with APEX_PAGER=cat."
|
|
48
48
|
|
|
49
|
+
echo
|
|
50
|
+
echo "== Testing paginate: symbols via config metadata with APEX_PAGER=cat =="
|
|
51
|
+
|
|
52
|
+
CFG_SYM="$TMPDIR/config-symbols.yml"
|
|
53
|
+
cat >"$CFG_SYM" <<'YAML'
|
|
54
|
+
paginate: symbols
|
|
55
|
+
YAML
|
|
56
|
+
|
|
57
|
+
SYM_OUT=$(APEX_PAGER=cat "$APEX_BIN" --meta-file "$CFG_SYM" -t terminal <<< "$DOC")
|
|
58
|
+
if [[ "$BASE_OUT" != "$SYM_OUT" ]]; then
|
|
59
|
+
echo "paginate_cli_test: paginate: symbols output differs from baseline when using APEX_PAGER=cat" >&2
|
|
60
|
+
exit 1
|
|
61
|
+
fi
|
|
62
|
+
|
|
63
|
+
echo "paginate_cli_test: paginate: symbols config matches baseline output with APEX_PAGER=cat."
|
|
64
|
+
|
|
49
65
|
echo
|
|
50
66
|
echo "== Testing that --paginate is ignored for non-terminal formats =="
|
|
51
67
|
|