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.
Files changed (207) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -3
  3. data/ext/apex_ext/apex_ext.c +260 -91
  4. data/ext/apex_ext/apex_src/CHANGELOG.md +440 -0
  5. data/ext/apex_ext/apex_src/CMakeLists.txt +15 -1
  6. data/ext/apex_ext/apex_src/Formula/apex.rb +7 -2
  7. data/ext/apex_ext/apex_src/Package.swift +15 -4
  8. data/ext/apex_ext/apex_src/README.md +94 -35
  9. data/ext/apex_ext/apex_src/VERSION +1 -1
  10. data/ext/apex_ext/apex_src/apex-debug.log +4 -0
  11. data/ext/apex_ext/apex_src/apex.code-workspace +38 -0
  12. data/ext/apex_ext/apex_src/apex.taskpaper +12 -0
  13. data/ext/apex_ext/apex_src/apex_deflist_debug.log +25 -0
  14. data/ext/apex_ext/apex_src/buildnotes.md +1435 -0
  15. data/ext/apex_ext/apex_src/cli/main.c +262 -33
  16. data/ext/apex_ext/apex_src/debug.log +7 -0
  17. data/ext/apex_ext/apex_src/docs/CITATIONS_EXAMPLES.md +274 -0
  18. data/ext/apex_ext/apex_src/docs/CITATIONS_IMPLEMENTATION_PLAN.md +749 -0
  19. data/ext/apex_ext/apex_src/docs/CITATIONS_PLAN.md +744 -0
  20. data/ext/apex_ext/apex_src/docs/INDEX_IMPLEMENTATION_ANALYSIS.md +382 -0
  21. data/ext/apex_ext/apex_src/docs/plans/2025-02-27-man-page-output-implementation.md +351 -0
  22. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-12-toc-output-format.md +745 -0
  23. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-18-bear-image-attributes.md +829 -0
  24. data/ext/apex_ext/apex_src/docs/superpowers/plans/2026-07-19-apex-node-npm.md +1148 -0
  25. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-12-toc-output-format-design.md +161 -0
  26. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-18-bear-image-attributes-design.md +184 -0
  27. data/ext/apex_ext/apex_src/docs/superpowers/specs/2026-07-19-apex-node-npm-design.md +211 -0
  28. data/ext/apex_ext/apex_src/documentation/app-settings-table.md +67 -0
  29. data/ext/apex_ext/apex_src/documentation/app-transformed/Citations.md +340 -0
  30. data/ext/apex_ext/apex_src/documentation/app-transformed/Credits.md +11 -0
  31. data/ext/apex_ext/apex_src/documentation/app-transformed/Header-IDs.md +234 -0
  32. data/ext/apex_ext/apex_src/documentation/app-transformed/Inline-Attribute-Lists.md +516 -0
  33. data/ext/apex_ext/apex_src/documentation/app-transformed/Metadata-Transforms.md +461 -0
  34. data/ext/apex_ext/apex_src/documentation/app-transformed/Modes.md +193 -0
  35. data/ext/apex_ext/apex_src/documentation/app-transformed/Multi-File-Documents.md +201 -0
  36. data/ext/apex_ext/apex_src/documentation/app-transformed/Plugins.md +678 -0
  37. data/ext/apex_ext/apex_src/documentation/app-transformed/Syntax.md +1367 -0
  38. data/ext/apex_ext/apex_src/documentation/docsets/Apex Command Line Options.cheatsheet.txt +6 -0
  39. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/C-API.html +774 -300
  40. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Callouts.html +1194 -0
  41. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Citations.html +416 -216
  42. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Command-Line-Options.html +3544 -1094
  43. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Configuration.html +371 -97
  44. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Credits.html +153 -23
  45. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Examples.html +358 -124
  46. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Filters.html +1656 -0
  47. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Generating-Man-Pages.html +1226 -0
  48. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Getting-Started.html +201 -56
  49. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Header-IDs.html +279 -109
  50. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Home.html +200 -53
  51. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Indices.html +2327 -0
  52. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Inline-Attribute-Lists.html +690 -271
  53. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Installation.html +201 -55
  54. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Limitations-and-Roadmap.html +238 -68
  55. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Metadata-Transforms.html +421 -221
  56. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Modes.html +340 -78
  57. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-File-Documents.html +251 -86
  58. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Multi-Format-Images.html +1362 -0
  59. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Pandoc-Integration.html +277 -90
  60. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Plugins.html +673 -346
  61. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Quarto-Mode.html +1405 -0
  62. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Rendering-Markdown-In-Terminal.html +1902 -0
  63. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Syntax.html +1939 -1698
  64. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Tables.html +1781 -0
  65. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Troubleshooting.html +315 -140
  66. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Usage.html +307 -113
  67. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Using-Apex-with-Jekyll.html +1132 -0
  68. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Writing-Tests.html +1754 -0
  69. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/Documents/Xcode-Integration.html +872 -376
  70. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/docSet.dsidx +0 -0
  71. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/optimizedIndex.dsidx +0 -0
  72. data/ext/apex_ext/apex_src/documentation/html/apex-app-docs.html +8746 -0
  73. data/ext/apex_ext/apex_src/documentation/shared_styles.css +20 -15
  74. data/ext/apex_ext/apex_src/documentation/transform_for_app.md +55 -0
  75. data/ext/apex_ext/apex_src/escaping-repro.md +103 -0
  76. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/Info.plist +8 -0
  77. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/QuickLook/Preview.png +0 -0
  78. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown to RTF.workflow/Contents/document.wflow +547 -0
  79. data/ext/apex_ext/apex_src/examples/quick-actions/Markdown-to-RTF.workflow.zip +0 -0
  80. data/ext/apex_ext/apex_src/examples/quick-actions/README.md +33 -0
  81. data/ext/apex_ext/apex_src/include/apex/apex.h +92 -6
  82. data/ext/apex_ext/apex_src/include/apex/ast_rtf.h +23 -0
  83. data/ext/apex_ext/apex_src/include/apex/ast_terminal.h +6 -0
  84. data/ext/apex_ext/apex_src/include/apex/module.modulemap +5 -0
  85. data/ext/apex_ext/apex_src/include/apex/plugins.h +105 -0
  86. data/ext/apex_ext/apex_src/include/apexc.h +1 -0
  87. data/ext/apex_ext/apex_src/man/apex.1 +82 -78
  88. data/ext/apex_ext/apex_src/man/apex.1.md +81 -4
  89. data/ext/apex_ext/apex_src/objc/Apex.swift +73 -0
  90. data/ext/apex_ext/apex_src/objc/ApexPlugins.swift +79 -0
  91. data/ext/apex_ext/apex_src/objc/NSString+Apex.h +83 -5
  92. data/ext/apex_ext/apex_src/objc/NSString+Apex.m +244 -1
  93. data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.h +76 -0
  94. data/ext/apex_ext/apex_src/objc/NSString+ApexPlugins.m +169 -0
  95. data/ext/apex_ext/apex_src/output.html +87 -0
  96. data/ext/apex_ext/apex_src/plans/quarto-mode.md +442 -0
  97. data/ext/apex_ext/apex_src/src/_README.md +85 -32
  98. data/ext/apex_ext/apex_src/src/apex.c +770 -200
  99. data/ext/apex_ext/apex_src/src/ast_rtf.c +848 -0
  100. data/ext/apex_ext/apex_src/src/ast_terminal.c +184 -7
  101. data/ext/apex_ext/apex_src/src/extensions/abbreviations.c +10 -3
  102. data/ext/apex_ext/apex_src/src/extensions/advanced_tables.c +7 -11
  103. data/ext/apex_ext/apex_src/src/extensions/bear_image_attrs.c +467 -0
  104. data/ext/apex_ext/apex_src/src/extensions/bear_image_attrs.h +27 -0
  105. data/ext/apex_ext/apex_src/src/extensions/callouts.c +400 -4
  106. data/ext/apex_ext/apex_src/src/extensions/callouts.h +15 -5
  107. data/ext/apex_ext/apex_src/src/extensions/citations.c +26 -5
  108. data/ext/apex_ext/apex_src/src/extensions/code_fence_attrs.c +632 -0
  109. data/ext/apex_ext/apex_src/src/extensions/code_fence_attrs.h +22 -0
  110. data/ext/apex_ext/apex_src/src/extensions/concordance.c +632 -0
  111. data/ext/apex_ext/apex_src/src/extensions/definition_list.c +129 -15
  112. data/ext/apex_ext/apex_src/src/extensions/grid_tables.c +1050 -121
  113. data/ext/apex_ext/apex_src/src/extensions/html_markdown.c +569 -16
  114. data/ext/apex_ext/apex_src/src/extensions/ial.c +502 -52
  115. data/ext/apex_ext/apex_src/src/extensions/ial.h +2 -1
  116. data/ext/apex_ext/apex_src/src/extensions/includes.c +532 -33
  117. data/ext/apex_ext/apex_src/src/extensions/includes.h +7 -1
  118. data/ext/apex_ext/apex_src/src/extensions/index.c +1427 -140
  119. data/ext/apex_ext/apex_src/src/extensions/index.h +28 -0
  120. data/ext/apex_ext/apex_src/src/extensions/metadata.c +200 -161
  121. data/ext/apex_ext/apex_src/src/extensions/quarto_diagrams.c +251 -0
  122. data/ext/apex_ext/apex_src/src/extensions/quarto_diagrams.h +22 -0
  123. data/ext/apex_ext/apex_src/src/extensions/quarto_lists.c +624 -0
  124. data/ext/apex_ext/apex_src/src/extensions/quarto_lists.h +35 -0
  125. data/ext/apex_ext/apex_src/src/extensions/quarto_polish.c +264 -0
  126. data/ext/apex_ext/apex_src/src/extensions/quarto_polish.h +23 -0
  127. data/ext/apex_ext/apex_src/src/extensions/quarto_shortcodes.c +307 -0
  128. data/ext/apex_ext/apex_src/src/extensions/quarto_shortcodes.h +21 -0
  129. data/ext/apex_ext/apex_src/src/extensions/raw_content.c +351 -0
  130. data/ext/apex_ext/apex_src/src/extensions/raw_content.h +20 -0
  131. data/ext/apex_ext/apex_src/src/extensions/relaxed_tables.c +117 -3
  132. data/ext/apex_ext/apex_src/src/extensions/special_markers.c +53 -0
  133. data/ext/apex_ext/apex_src/src/extensions/syntax_highlight.c +23 -1
  134. data/ext/apex_ext/apex_src/src/extensions/table_html_postprocess.c +83 -92
  135. data/ext/apex_ext/apex_src/src/extensions/toc.c +446 -25
  136. data/ext/apex_ext/apex_src/src/extensions/toc.h +26 -1
  137. data/ext/apex_ext/apex_src/src/extensions/wiki_links.c +28 -0
  138. data/ext/apex_ext/apex_src/src/html_renderer.c +387 -17
  139. data/ext/apex_ext/apex_src/src/plugin_catalog.c +517 -0
  140. data/ext/apex_ext/apex_src/src/plugins_remote.c +88 -14
  141. data/ext/apex_ext/apex_src/src/plugins_remote.h +34 -0
  142. data/ext/apex_ext/apex_src/src/pretty_html.c +6 -1
  143. data/ext/apex_ext/apex_src/tests/fixtures/comprehensive_test.md +21 -0
  144. data/ext/apex_ext/apex_src/tests/fixtures/images/bear_image_attributes.md +10 -0
  145. data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.md +19 -0
  146. data/ext/apex_ext/apex_src/tests/fixtures/includes/sections.txt +11 -0
  147. data/ext/apex_ext/apex_src/tests/fixtures/minimal_pb.md +2 -0
  148. data/ext/apex_ext/apex_src/tests/fixtures/obsidian-callouts.md +46 -0
  149. data/ext/apex_ext/apex_src/tests/fixtures/pagebreak_html_repro.md +5 -0
  150. data/ext/apex_ext/apex_src/tests/fixtures/python-callouts.md +47 -0
  151. data/ext/apex_ext/apex_src/tests/fixtures/quarto/callouts.md +3 -0
  152. data/ext/apex_ext/apex_src/tests/fixtures/quarto/code-attrs.md +3 -0
  153. data/ext/apex_ext/apex_src/tests/fixtures/quarto/diagrams.md +8 -0
  154. data/ext/apex_ext/apex_src/tests/fixtures/quarto/lists.md +19 -0
  155. data/ext/apex_ext/apex_src/tests/fixtures/quarto/raw-content.md +5 -0
  156. data/ext/apex_ext/apex_src/tests/fixtures/quarto/shortcodes.md +7 -0
  157. data/ext/apex_ext/apex_src/tests/fixtures/quarto/smoke.md +81 -0
  158. data/ext/apex_ext/apex_src/tests/fixtures/quarto/spans.md +5 -0
  159. data/ext/apex_ext/apex_src/tests/fixtures/quarto-callouts.md +47 -0
  160. data/ext/apex_ext/apex_src/tests/fixtures/speed.md +192 -0
  161. data/ext/apex_ext/apex_src/tests/fixtures/tables/grid-tables.md +37 -0
  162. data/ext/apex_ext/apex_src/tests/paginate_cli_test.sh +16 -0
  163. data/ext/apex_ext/apex_src/tests/test_bear_image_attrs.c +301 -0
  164. data/ext/apex_ext/apex_src/tests/test_concordance.tsv +4 -0
  165. data/ext/apex_ext/apex_src/tests/test_escaping_repro.c +82 -0
  166. data/ext/apex_ext/apex_src/tests/test_extensions.c +821 -1
  167. data/ext/apex_ext/apex_src/tests/test_ial.c +7 -0
  168. data/ext/apex_ext/apex_src/tests/test_marked_integration.c +25 -0
  169. data/ext/apex_ext/apex_src/tests/test_metadata.c +129 -0
  170. data/ext/apex_ext/apex_src/tests/test_output.c +568 -2
  171. data/ext/apex_ext/apex_src/tests/test_runner.c +11 -0
  172. data/ext/apex_ext/apex_src/tests/test_tables.c +420 -0
  173. data/ext/apex_ext/apex_src/vendor/cmark-gfm/CMakeLists.txt +1 -1
  174. data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/autolink.c +77 -1
  175. data/ext/apex_ext/apex_src/vendor/cmark-gfm/extensions/table.c +135 -5
  176. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/blocks.c +56 -1
  177. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/config.h +38 -0
  178. data/ext/apex_ext/apex_src/vendor/cmark-gfm/src/main.c +1 -1
  179. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/__pycache__/cmark.cpython-314.pyc +0 -0
  180. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/__pycache__/normalize.cpython-314.pyc +0 -0
  181. data/ext/apex_ext/apex_src/vendor/cmark-gfm/test/extensions.txt +69 -0
  182. data/ext/apex_ext/apex_src/xcode_build/CMakeScripts/ReRunCMake.make +74 -0
  183. data/ext/apex_ext/apex_src/xcode_build/CTestTestfile.cmake +22 -0
  184. data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/Apex +0 -0
  185. data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/Resources/Info.plist +44 -0
  186. data/ext/apex_ext/apex_src/xcode_build/Debug/Apex.framework/Versions/A/_CodeSignature/CodeResources +128 -0
  187. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.pbxproj +5118 -0
  188. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
  189. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcuserdata/ttscoff.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  190. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/project.xcworkspace/xcuserdata/ttscoff.xcuserdatad/WorkspaceSettings.xcsettings +8 -0
  191. data/ext/apex_ext/apex_src/xcode_build/apex.xcodeproj/xcuserdata/ttscoff.xcuserdatad/xcschemes/xcschememanagement.plist +99 -0
  192. data/ext/apex_ext/apex_src/xcode_build/cmake_install.cmake +452 -0
  193. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/CMakeScripts/ReRunCMake.make +52 -0
  194. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmake_install.cmake +55 -0
  195. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmark-gfm.xcodeproj/project.pbxproj +2455 -0
  196. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/cmark-gfm.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +8 -0
  197. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/extensions/cmake_install.cmake +171 -0
  198. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/man/cmake_install.cmake +55 -0
  199. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmake_install.cmake +220 -0
  200. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmark-gfm_export.h +43 -0
  201. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/cmark-gfm_version.h +7 -0
  202. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/config.h +76 -0
  203. data/ext/apex_ext/apex_src/xcode_build/vendor/cmark-gfm/src/libcmark-gfm.pc +10 -0
  204. data/ext/apex_ext/extconf.rb +35 -0
  205. data/lib/apex/version.rb +2 -2
  206. metadata +117 -2
  207. data/ext/apex_ext/apex_src/documentation/docsets/Apex.docset/Contents/Resources/tempOptimizedIndex.dsidx +0 -0
@@ -0,0 +1,547 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>AMApplicationBuild</key>
6
+ <string>534</string>
7
+ <key>AMApplicationVersion</key>
8
+ <string>2.10</string>
9
+ <key>AMDocumentVersion</key>
10
+ <string>2</string>
11
+ <key>actions</key>
12
+ <array>
13
+ <dict>
14
+ <key>action</key>
15
+ <dict>
16
+ <key>AMActionVersion</key>
17
+ <string>1.2.1</string>
18
+ <key>AMApplication</key>
19
+ <array>
20
+ <string>TextEdit</string>
21
+ </array>
22
+ <key>AMParameterProperties</key>
23
+ <dict>
24
+ <key>enteredRTFDData</key>
25
+ <dict/>
26
+ <key>enteredText</key>
27
+ <dict/>
28
+ </dict>
29
+ <key>AMProvides</key>
30
+ <dict>
31
+ <key>Container</key>
32
+ <string>Single</string>
33
+ <key>Types</key>
34
+ <array>
35
+ <string>com.apple.cocoa.attributed-string</string>
36
+ </array>
37
+ </dict>
38
+ <key>AMRequiredResources</key>
39
+ <array/>
40
+ <key>ActionBundlePath</key>
41
+ <string>/System/Library/Automator/Get Specified Text.action</string>
42
+ <key>ActionName</key>
43
+ <string>Get Specified Text</string>
44
+ <key>ActionParameters</key>
45
+ <dict>
46
+ <key>enteredRTFDData</key>
47
+ <data>
48
+ cnRmZAAAAAADAAAAAgAAAAcAAABUWFQucnRm
49
+ AQAAAC7tCQAAKwAAAAEAAADlCQAAe1xydGYx
50
+ XGFuc2lcYW5zaWNwZzEyNTJcY29jb2FydGYy
51
+ ODcwClxjb2NvYXRleHRzY2FsaW5nMFxjb2Nv
52
+ YXBsYXRmb3JtMHtcZm9udHRibFxmMFxmc3dp
53
+ c3NcZmNoYXJzZXQwIEhlbHZldGljYTt9Cntc
54
+ Y29sb3J0Ymw7XHJlZDI1NVxncmVlbjI1NVxi
55
+ bHVlMjU1O1xyZWQwXGdyZWVuMFxibHVlMDt9
56
+ CntcKlxleHBhbmRlZGNvbG9ydGJsOztcY3Nz
57
+ cmdiXGMwXGMwXGMwO30KXGRlZnRhYjcyMApc
58
+ cGFyZFxwYXJkZWZ0YWI3MjBcc2ExMjBccGFy
59
+ dGlnaHRlbmZhY3RvcjAKClxmMFxmczM2IFxj
60
+ ZjAgXGV4cG5kMFxleHBuZHR3MFxrZXJuaW5n
61
+ MAojIEhlYWRlciAxXApcCkxvcmVtIGlwc3Vt
62
+ IGRvbG9yIHNpdCBhbWV0LCAqKmNvbnNlY3Rl
63
+ dHVyIGFkaXBpc2ljaW5nKiogZWxpdCwgc2Vk
64
+ IGRvICplaXVzbW9kIHRlbXBvciogaW5jaWRp
65
+ ZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1h
66
+ Z25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5p
67
+ bSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVy
68
+ Y2l0YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5p
69
+ c2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2Rv
70
+ IGNvbnNlcXVhdC4gRHVpcyBhdXRlIGlydXJl
71
+ IGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4g
72
+ dm9sdXB0YXRlIHZlbGl0IGVzc2UgY2lsbHVt
73
+ IGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFy
74
+ aWF0dXIuIEV4Y2VwdGV1ciBzaW50IG9jY2Fl
75
+ Y2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQs
76
+ IHN1bnQgaW4gY3VscGEgcXVpIG9mZmljaWEg
77
+ ZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0
78
+ IGxhYm9ydW0uXApcCiMjIEhlYWRlciAyXApc
79
+ ClNlZCB1dCBbcGVyc3BpY2lhdGlzIHVuZGVd
80
+ KGh0dHBzOi8vYnJldHR0ZXJwc3RyYS5jb20p
81
+ IG9tbmlzIGlzdGUgbmF0dXMgZXJyb3Igc2l0
82
+ IHZvbHVwdGF0ZW0gYWNjdXNhbnRpdW0gZG9s
83
+ b3JlbXF1ZSBsYXVkYW50aXVtLCB0b3RhbSBy
84
+ ZW0gYXBlcmlhbSwgZWFxdWUgaXBzYSBxdWFl
85
+ IGFiIGlsbG8gaW52ZW50b3JlIHZlcml0YXRp
86
+ cyBldCBxdWFzaSBhcmNoaXRlY3RvIGJlYXRh
87
+ ZSB2aXRhZSBkaWN0YSBzdW50IGV4cGxpY2Fi
88
+ by4gTmVtbyBlbmltIGlwc2FtIHZvbHVwdGF0
89
+ ZW0gcXVpYSB2b2x1cHRhcyBzaXQgYXNwZXJu
90
+ YXR1ciBhdXQgb2RpdCBhdXQgZnVnaXQsIHNl
91
+ ZCBxdWlhIGNvbnNlcXV1bnR1ciBtYWduaSBk
92
+ b2xvcmVzIGVvcyBxdWkgcmF0aW9uZSB2b2x1
93
+ cHRhdGVtIHNlcXVpIG5lc2NpdW50LiBOZXF1
94
+ ZSBwb3JybyBxdWlzcXVhbSBlc3QsIHF1aSBk
95
+ b2xvcmVtIGlwc3VtIHF1aWEgZG9sb3Igc2l0
96
+ IGFtZXQsIGNvbnNlY3RldHVyLCBhZGlwaXNj
97
+ aSB2ZWxpdCwgc2VkIHF1aWEgbm9uIG51bXF1
98
+ YW0gZWl1cyBtb2RpIHRlbXBvcmEgaW5jaWR1
99
+ bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWdu
100
+ YW0gYWxpcXVhbSBxdWFlcmF0IHZvbHVwdGF0
101
+ ZW0uIFV0IGVuaW0gYWQgbWluaW1hIHZlbmlh
102
+ bSwgcXVpcyBub3N0cnVtIGV4ZXJjaXRhdGlv
103
+ bmVtIHVsbGFtIGNvcnBvcmlzIHN1c2NpcGl0
104
+ IGxhYm9yaW9zYW0sIG5pc2kgdXQgYWxpcXVp
105
+ ZCBleCBlYSBjb21tb2RpIGNvbnNlcXVhdHVy
106
+ PyBRdWlzIGF1dGVtIHZlbCBldW0gaXVyZSBy
107
+ ZXByZWhlbmRlcml0IHF1aSBpbiBlYSB2b2x1
108
+ cHRhdGUgdmVsaXQgZXNzZSBxdWFtIG5paGls
109
+ IG1vbGVzdGlhZSBjb25zZXF1YXR1ciwgdmVs
110
+ IGlsbHVtIHF1aSBkb2xvcmVtIGV1bSBmdWdp
111
+ YXQgcXVvIHZvbHVwdGFzIG51bGxhIHBhcmlh
112
+ dHVyP1wKXApBdCB2ZXJvIGVvcyBldCBhY2N1
113
+ c2FtdXMgZXQgaXVzdG8gb2RpbyBkaWduaXNz
114
+ aW1vcyBkdWNpbXVzIHF1aSBibGFuZGl0aWlz
115
+ IHByYWVzZW50aXVtIHZvbHVwdGF0dW0gZGVs
116
+ ZW5pdGkgYXRxdWUgY29ycnVwdGkgcXVvcyBk
117
+ b2xvcmVzIGV0IHF1YXMgbW9sZXN0aWFzIGV4
118
+ Y2VwdHVyaSBzaW50IG9jY2FlY2F0aSBjdXBp
119
+ ZGl0YXRlIG5vbiBwcm92aWRlbnQsIHNpbWls
120
+ aXF1ZSBzdW50IGluIGN1bHBhIHF1aSBvZmZp
121
+ Y2lhIGRlc2VydW50IG1vbGxpdGlhIGFuaW1p
122
+ LCBpZCBlc3QgbGFib3J1bSBldCBkb2xvcnVt
123
+ IGZ1Z2EuIEV0IGhhcnVtIHF1aWRlbSByZXJ1
124
+ bSBmYWNpbGlzIGVzdCBldCBleHBlZGl0YSBk
125
+ aXN0aW5jdGlvLiBOYW0gbGliZXJvIHRlbXBv
126
+ cmUsIGN1bSBzb2x1dGEgbm9iaXMgZXN0IGVs
127
+ aWdlbmRpIG9wdGlvIGN1bXF1ZSBuaWhpbCBp
128
+ bXBlZGl0IHF1byBtaW51cyBpZCBxdW9kIG1h
129
+ eGltZSBwbGFjZWF0IGZhY2VyZSBwb3NzaW11
130
+ cywgb21uaXMgdm9sdXB0YXMgYXNzdW1lbmRh
131
+ IGVzdCwgb21uaXMgZG9sb3IgcmVwZWxsZW5k
132
+ dXMuIFRlbXBvcmlidXMgYXV0ZW0gcXVpYnVz
133
+ ZGFtIGV0IGF1dCBvZmZpY2lpcyBkZWJpdGlz
134
+ IGF1dCByZXJ1bSBuZWNlc3NpdGF0aWJ1cyBz
135
+ YWVwZSBldmVuaWV0IHV0IGV0IHZvbHVwdGF0
136
+ ZXMgcmVwdWRpYW5kYWUgc2ludCBldCBtb2xl
137
+ c3RpYWUgbm9uIHJlY3VzYW5kYWUuIEl0YXF1
138
+ ZSBlYXJ1bSByZXJ1bSBoaWMgdGVuZXR1ciBh
139
+ IHNhcGllbnRlIGRlbGVjdHVzLCB1dCBhdXQg
140
+ cmVpY2llbmRpcyB2b2x1cHRhdGlidXMgbWFp
141
+ b3JlcyBhbGlhcyBjb25zZXF1YXR1ciBhdXQg
142
+ cGVyZmVyZW5kaXMgZG9sb3JpYnVzIGFzcGVy
143
+ aW9yZXMgcmVwZWxsYXQufQEAAAAjAAAAAQAA
144
+ AAcAAABUWFQucnRmEAAAAJ2ScGq2AQAAAAAA
145
+ AAAAAAA=
146
+ </data>
147
+ <key>enteredText</key>
148
+ <string># Header 1
149
+
150
+ Lorem ipsum dolor sit amet, **consectetur adipisicing** elit, sed do *eiusmod tempor* incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
151
+
152
+ ## Header 2
153
+
154
+ Sed ut [perspiciatis unde](https://brettterpstra.com) omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
155
+
156
+ At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</string>
157
+ </dict>
158
+ <key>BundleIdentifier</key>
159
+ <string>com.apple.GetSpecifiedText</string>
160
+ <key>CFBundleVersion</key>
161
+ <string>1.2.1</string>
162
+ <key>CanShowSelectedItemsWhenRun</key>
163
+ <false/>
164
+ <key>CanShowWhenRun</key>
165
+ <true/>
166
+ <key>Category</key>
167
+ <array>
168
+ <string>AMCategoryText</string>
169
+ </array>
170
+ <key>Class Name</key>
171
+ <string>AMGetSpecifiedTextAction</string>
172
+ <key>Keywords</key>
173
+ <array>
174
+ <string>Get</string>
175
+ <string>Text</string>
176
+ </array>
177
+ <key>OutputUUID</key>
178
+ <string>88712BBA-B69E-4F10-A478-5D44CBF145AE</string>
179
+ <key>UUID</key>
180
+ <string>09750B0B-A45A-4374-B1CB-1617EED97A1A</string>
181
+ <key>UnlocalizedApplications</key>
182
+ <array>
183
+ <string>TextEdit</string>
184
+ </array>
185
+ <key>arguments</key>
186
+ <dict>
187
+ <key>0</key>
188
+ <dict>
189
+ <key>default value</key>
190
+ <string></string>
191
+ <key>name</key>
192
+ <string>enteredRTFDData</string>
193
+ <key>required</key>
194
+ <string>0</string>
195
+ <key>type</key>
196
+ <string>0</string>
197
+ <key>uuid</key>
198
+ <string>0</string>
199
+ </dict>
200
+ <key>1</key>
201
+ <dict>
202
+ <key>default value</key>
203
+ <string></string>
204
+ <key>name</key>
205
+ <string>enteredText</string>
206
+ <key>required</key>
207
+ <string>0</string>
208
+ <key>type</key>
209
+ <string>0</string>
210
+ <key>uuid</key>
211
+ <string>1</string>
212
+ </dict>
213
+ </dict>
214
+ <key>conversionLabel</key>
215
+ <integer>0</integer>
216
+ <key>isViewVisible</key>
217
+ <integer>1</integer>
218
+ <key>location</key>
219
+ <string>309.000000:168.000000</string>
220
+ <key>nibPath</key>
221
+ <string>/System/Library/Automator/Get Specified Text.action/Contents/Resources/Base.lproj/main.nib</string>
222
+ </dict>
223
+ <key>isViewVisible</key>
224
+ <integer>1</integer>
225
+ </dict>
226
+ <dict>
227
+ <key>action</key>
228
+ <dict>
229
+ <key>AMAccepts</key>
230
+ <dict>
231
+ <key>Container</key>
232
+ <string>List</string>
233
+ <key>Optional</key>
234
+ <true/>
235
+ <key>Types</key>
236
+ <array>
237
+ <string>com.apple.cocoa.string</string>
238
+ </array>
239
+ </dict>
240
+ <key>AMActionVersion</key>
241
+ <string>2.0.3</string>
242
+ <key>AMApplication</key>
243
+ <array>
244
+ <string>Automator</string>
245
+ </array>
246
+ <key>AMParameterProperties</key>
247
+ <dict>
248
+ <key>COMMAND_STRING</key>
249
+ <dict/>
250
+ <key>CheckedForUserDefaultShell</key>
251
+ <dict/>
252
+ <key>inputMethod</key>
253
+ <dict/>
254
+ <key>shell</key>
255
+ <dict/>
256
+ <key>source</key>
257
+ <dict/>
258
+ </dict>
259
+ <key>AMProvides</key>
260
+ <dict>
261
+ <key>Container</key>
262
+ <string>List</string>
263
+ <key>Types</key>
264
+ <array>
265
+ <string>com.apple.cocoa.string</string>
266
+ </array>
267
+ </dict>
268
+ <key>ActionBundlePath</key>
269
+ <string>/System/Library/Automator/Run Shell Script.action</string>
270
+ <key>ActionName</key>
271
+ <string>Run Shell Script</string>
272
+ <key>ActionParameters</key>
273
+ <dict>
274
+ <key>COMMAND_STRING</key>
275
+ <string>set -euo pipefail
276
+
277
+ APEX_BIN=""
278
+ for candidate in /opt/homebrew/bin/apex /usr/local/bin/apex; do
279
+ if [ -x "$candidate" ]; then
280
+ APEX_BIN="$candidate"
281
+ break
282
+ fi
283
+ done
284
+ if [ -z "$APEX_BIN" ] &amp;&amp; command -v apex &gt;/dev/null 2&gt;&amp;1; then
285
+ APEX_BIN="$(command -v apex)"
286
+ fi
287
+
288
+ if [ -z "${APEX_BIN}" ]; then
289
+ osascript -e 'display notification "Install Apex: brew tap ttscoff/thelab &amp;&amp; brew install apex" with title "Markdown to RTF"' &gt;/dev/null 2&gt;&amp;1 || true
290
+ exit 1
291
+ fi
292
+
293
+ tmp="$(mktemp -t apex-md2rtf).rtf"
294
+ trap 'rm -f "$tmp"' EXIT
295
+
296
+ # Selected text arrives on stdin from Automator
297
+ "$APEX_BIN" -t rtf &gt; "$tmp"
298
+
299
+ # pbcopy auto-detects an RTF header and places rich text on the pasteboard
300
+ pbcopy &lt; "$tmp"
301
+ </string>
302
+ <key>CheckedForUserDefaultShell</key>
303
+ <true/>
304
+ <key>inputMethod</key>
305
+ <integer>0</integer>
306
+ <key>shell</key>
307
+ <string>/bin/bash</string>
308
+ <key>source</key>
309
+ <string></string>
310
+ </dict>
311
+ <key>BundleIdentifier</key>
312
+ <string>com.apple.RunShellScript</string>
313
+ <key>CFBundleVersion</key>
314
+ <string>2.0.3</string>
315
+ <key>CanShowSelectedItemsWhenRun</key>
316
+ <false/>
317
+ <key>CanShowWhenRun</key>
318
+ <true/>
319
+ <key>Category</key>
320
+ <array>
321
+ <string>AMCategoryUtilities</string>
322
+ </array>
323
+ <key>Class Name</key>
324
+ <string>RunShellScriptAction</string>
325
+ <key>InputUUID</key>
326
+ <string>EB42042E-50A9-4A48-8A72-FA600B1829A7</string>
327
+ <key>Keywords</key>
328
+ <array>
329
+ <string>Shell</string>
330
+ <string>Script</string>
331
+ <string>Command</string>
332
+ <string>Run</string>
333
+ <string>Unix</string>
334
+ </array>
335
+ <key>OutputUUID</key>
336
+ <string>7934C4C1-D4C0-4990-B38C-51267AB3EF90</string>
337
+ <key>UUID</key>
338
+ <string>85233135-6973-47CA-B8CE-5C920D68703E</string>
339
+ <key>UnlocalizedApplications</key>
340
+ <array>
341
+ <string>Automator</string>
342
+ </array>
343
+ <key>arguments</key>
344
+ <dict>
345
+ <key>0</key>
346
+ <dict>
347
+ <key>default value</key>
348
+ <integer>0</integer>
349
+ <key>name</key>
350
+ <string>inputMethod</string>
351
+ <key>required</key>
352
+ <string>0</string>
353
+ <key>type</key>
354
+ <string>0</string>
355
+ <key>uuid</key>
356
+ <string>0</string>
357
+ </dict>
358
+ <key>1</key>
359
+ <dict>
360
+ <key>default value</key>
361
+ <false/>
362
+ <key>name</key>
363
+ <string>CheckedForUserDefaultShell</string>
364
+ <key>required</key>
365
+ <string>0</string>
366
+ <key>type</key>
367
+ <string>0</string>
368
+ <key>uuid</key>
369
+ <string>1</string>
370
+ </dict>
371
+ <key>2</key>
372
+ <dict>
373
+ <key>default value</key>
374
+ <string></string>
375
+ <key>name</key>
376
+ <string>source</string>
377
+ <key>required</key>
378
+ <string>0</string>
379
+ <key>type</key>
380
+ <string>0</string>
381
+ <key>uuid</key>
382
+ <string>2</string>
383
+ </dict>
384
+ <key>3</key>
385
+ <dict>
386
+ <key>default value</key>
387
+ <string></string>
388
+ <key>name</key>
389
+ <string>COMMAND_STRING</string>
390
+ <key>required</key>
391
+ <string>0</string>
392
+ <key>type</key>
393
+ <string>0</string>
394
+ <key>uuid</key>
395
+ <string>3</string>
396
+ </dict>
397
+ <key>4</key>
398
+ <dict>
399
+ <key>default value</key>
400
+ <string>/bin/sh</string>
401
+ <key>name</key>
402
+ <string>shell</string>
403
+ <key>required</key>
404
+ <string>0</string>
405
+ <key>type</key>
406
+ <string>0</string>
407
+ <key>uuid</key>
408
+ <string>4</string>
409
+ </dict>
410
+ </dict>
411
+ <key>isViewVisible</key>
412
+ <integer>1</integer>
413
+ <key>location</key>
414
+ <string>309.000000:350.000000</string>
415
+ <key>nibPath</key>
416
+ <string>/System/Library/Automator/Run Shell Script.action/Contents/Resources/Base.lproj/main.nib</string>
417
+ </dict>
418
+ <key>isViewVisible</key>
419
+ <integer>1</integer>
420
+ </dict>
421
+ <dict>
422
+ <key>action</key>
423
+ <dict>
424
+ <key>AMAccepts</key>
425
+ <dict>
426
+ <key>Container</key>
427
+ <string>List</string>
428
+ <key>Optional</key>
429
+ <true/>
430
+ <key>Types</key>
431
+ <array>
432
+ <string>com.apple.applescript.object</string>
433
+ </array>
434
+ </dict>
435
+ <key>AMActionVersion</key>
436
+ <string>1.0.2</string>
437
+ <key>AMApplication</key>
438
+ <array>
439
+ <string>Automator</string>
440
+ </array>
441
+ <key>AMParameterProperties</key>
442
+ <dict>
443
+ <key>source</key>
444
+ <dict/>
445
+ </dict>
446
+ <key>AMProvides</key>
447
+ <dict>
448
+ <key>Container</key>
449
+ <string>List</string>
450
+ <key>Types</key>
451
+ <array>
452
+ <string>com.apple.applescript.object</string>
453
+ </array>
454
+ </dict>
455
+ <key>ActionBundlePath</key>
456
+ <string>/System/Library/Automator/Run AppleScript.action</string>
457
+ <key>ActionName</key>
458
+ <string>Run AppleScript</string>
459
+ <key>ActionParameters</key>
460
+ <dict>
461
+ <key>source</key>
462
+ <string>on run {input, parameters}
463
+ </dict>
464
+ <key>BundleIdentifier</key>
465
+ <string>com.apple.Automator.RunScript</string>
466
+ <key>CFBundleVersion</key>
467
+ <string>1.0.2</string>
468
+ <key>CanShowSelectedItemsWhenRun</key>
469
+ <false/>
470
+ <key>CanShowWhenRun</key>
471
+ <true/>
472
+ <key>Category</key>
473
+ <array>
474
+ <string>AMCategoryUtilities</string>
475
+ </array>
476
+ <key>Class Name</key>
477
+ <string>RunScriptAction</string>
478
+ <key>InputUUID</key>
479
+ <string>7934C4C1-D4C0-4990-B38C-51267AB3EF90</string>
480
+ <key>Keywords</key>
481
+ <array>
482
+ <string>Run</string>
483
+ </array>
484
+ <key>OutputUUID</key>
485
+ <string>C7CF8D85-50A9-4382-A138-921DD5A4DCF2</string>
486
+ <key>UUID</key>
487
+ <string>BA86E618-2200-4325-A6B1-DE8C4D4FACE3</string>
488
+ <key>UnlocalizedApplications</key>
489
+ <array>
490
+ <string>Automator</string>
491
+ </array>
492
+ <key>arguments</key>
493
+ <dict>
494
+ <key>0</key>
495
+ <dict>
496
+ <key>default value</key>
497
+ <string>on run {input, parameters}
498
+
499
+ (* Your script goes here *)
500
+
501
+ return input
502
+ end run</string>
503
+ <key>name</key>
504
+ <string>source</string>
505
+ <key>required</key>
506
+ <string>0</string>
507
+ <key>type</key>
508
+ <string>0</string>
509
+ <key>uuid</key>
510
+ <string>0</string>
511
+ </dict>
512
+ </dict>
513
+ <key>isViewVisible</key>
514
+ <true/>
515
+ <key>location</key>
516
+ <string>309.000000:775.000000</string>
517
+ <key>nibPath</key>
518
+ <string>/System/Library/Automator/Run AppleScript.action/Contents/Resources/Base.lproj/main.nib</string>
519
+ </dict>
520
+ <key>isViewVisible</key>
521
+ <true/>
522
+ </dict>
523
+ </array>
524
+ <key>connectors</key>
525
+ <dict>
526
+ <key>A144E864-76A7-4C22-B1D6-1578F56E27AE</key>
527
+ <dict>
528
+ <key>from</key>
529
+ <string>09750B0B-A45A-4374-B1CB-1617EED97A1A - 09750B0B-A45A-4374-B1CB-1617EED97A1A</string>
530
+ <key>to</key>
531
+ <string>85233135-6973-47CA-B8CE-5C920D68703E - 85233135-6973-47CA-B8CE-5C920D68703E</string>
532
+ </dict>
533
+ <key>D17C4E92-CF89-4D8E-9CD8-BBBA58619C82</key>
534
+ <dict>
535
+ <key>from</key>
536
+ <string>85233135-6973-47CA-B8CE-5C920D68703E - 85233135-6973-47CA-B8CE-5C920D68703E</string>
537
+ <key>to</key>
538
+ <string>BA86E618-2200-4325-A6B1-DE8C4D4FACE3 - BA86E618-2200-4325-A6B1-DE8C4D4FACE3</string>
539
+ </dict>
540
+ </dict>
541
+ <key>workflowMetaData</key>
542
+ <dict>
543
+ <key>workflowTypeIdentifier</key>
544
+ <string>com.apple.Automator.workflow</string>
545
+ </dict>
546
+ </dict>
547
+ </plist>
@@ -0,0 +1,33 @@
1
+ # Markdown to RTF Quick Action
2
+
3
+ macOS Quick Action (Service) that converts **selected Markdown** to rich text via Apex and pastes it in place (Mail, Pages, TextEdit, etc.).
4
+
5
+ ## Why not “replace selected text”?
6
+
7
+ Automator shell stdout is plain text. Printing Apex RTF would paste literal `{\rtf1...}` source. This action instead:
8
+
9
+ 1. Runs `apex -t rtf` on the selection
10
+ 2. Puts the result on the pasteboard with `pbcopy` (auto-detects the RTF header)
11
+ 3. Simulates **Cmd+V** via System Events
12
+
13
+ ## Install
14
+
15
+ 1. Install Apex: `brew tap ttscoff/thelab && brew install apex`
16
+ 2. Double-click `Markdown-to-RTF.workflow.zip` (or copy `Markdown to RTF.workflow` into `~/Library/Services/`)
17
+ 3. Open **System Settings → Privacy & Security → Accessibility** and allow **Automator** / **Script Editor** / your runner as prompted when you first use it
18
+ 4. Optional: **System Settings → Keyboard → Keyboard Shortcuts → Services** and assign a hotkey to **Markdown to RTF**
19
+
20
+ ## Use
21
+
22
+ 1. Select Markdown in a compose field (e.g. Mail)
23
+ 2. **Services → Markdown to RTF** (or your hotkey)
24
+ 3. Selection is replaced with rich paste
25
+
26
+ ## Bundle layout
27
+
28
+ ```
29
+ Markdown to RTF.workflow/
30
+ Contents/
31
+ Info.plist
32
+ document.wflow
33
+ ```