scriptorium 0.6.1 → 0.7.2

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 (358) hide show
  1. checksums.yaml +4 -4
  2. data/assets/icons/social/reddit.png +0 -0
  3. data/assets/icons/social/x-logo.png +0 -0
  4. data/assets/imagenotfound.jpg +0 -0
  5. data/bin/sblog +84 -5
  6. data/bin/scriptorium +1 -0
  7. data/doc/anti-amnesia/20250727-054000-scriptorium-overview.md +0 -1
  8. data/doc/anti-amnesia/20250727-123000-anti-amnesia-conventions.md +0 -29
  9. data/doc/anti-amnesia/20250727-172600-cursor-rbenv-ruby-version-mystery.md +0 -19
  10. data/doc/anti-amnesia/20250727-172900-ai-cognitive-assessment-capabilities.md +1 -1
  11. data/doc/anti-amnesia/20250728-124243-aaa-syntax-clarification.md +1 -1
  12. data/doc/anti-amnesia/20250729-210000-reddit-autopost-integration-complete.md +1 -1
  13. data/doc/anti-amnesia/20250804-190500-cognitive-loop-bug.md +0 -10
  14. data/doc/anti-amnesia/20250804-190700-anti-amnesia-timestamping-fix.md +1 -4
  15. data/doc/anti-amnesia/20250901-211714-codemirror-integration-and-web-tests.md +172 -0
  16. data/doc/anti-amnesia/20250902-002402-backup-restore-system.md +126 -0
  17. data/doc/anti-amnesia/20250907-203339-backup-metadata-implementation.md +66 -0
  18. data/doc/imported/0001-elixir-conf-2014/metadata.txt +7 -0
  19. data/doc/imported/0001-elixir-conf-2014/post.html +37 -0
  20. data/doc/imported/0001-elixir-conf-2014/source.lt3 +22 -0
  21. data/doc/imported/0002-programmers-and-word-processing/metadata.txt +7 -0
  22. data/doc/imported/0002-programmers-and-word-processing/post.html +192 -0
  23. data/doc/imported/0002-programmers-and-word-processing/source.lt3 +146 -0
  24. data/doc/imported/0003-how-to-turn-your-brain-sideways/metadata.txt +7 -0
  25. data/doc/imported/0003-how-to-turn-your-brain-sideways/post.html +60 -0
  26. data/doc/imported/0003-how-to-turn-your-brain-sideways/source.lt3 +40 -0
  27. data/doc/imported/0004-upcoming-lone-star-ruby-conference/metadata.txt +7 -0
  28. data/doc/imported/0004-upcoming-lone-star-ruby-conference/post.html +42 -0
  29. data/doc/imported/0004-upcoming-lone-star-ruby-conference/source.lt3 +24 -0
  30. data/doc/imported/0005-elixir-conf-2015-announced/metadata.txt +7 -0
  31. data/doc/imported/0005-elixir-conf-2015-announced/post.html +30 -0
  32. data/doc/imported/0005-elixir-conf-2015-announced/source.lt3 +16 -0
  33. data/doc/imported/0006-ruby-for-dinosaurs/metadata.txt +7 -0
  34. data/doc/imported/0006-ruby-for-dinosaurs/post.html +43 -0
  35. data/doc/imported/0006-ruby-for-dinosaurs/source.lt3 +27 -0
  36. data/doc/imported/0007-phoenix-isnt-rails/metadata.txt +7 -0
  37. data/doc/imported/0007-phoenix-isnt-rails/post.html +116 -0
  38. data/doc/imported/0007-phoenix-isnt-rails/source.lt3 +87 -0
  39. data/doc/imported/0008-concerning-the-term-monkeypatching/metadata.txt +7 -0
  40. data/doc/imported/0008-concerning-the-term-monkeypatching/post.html +129 -0
  41. data/doc/imported/0008-concerning-the-term-monkeypatching/source.lt3 +92 -0
  42. data/doc/imported/0009-announcement-coming-soon/metadata.txt +7 -0
  43. data/doc/imported/0009-announcement-coming-soon/post.html +33 -0
  44. data/doc/imported/0009-announcement-coming-soon/source.lt3 +19 -0
  45. data/doc/imported/0010-immutable-data-ditching-the-wax-tablet/metadata.txt +7 -0
  46. data/doc/imported/0010-immutable-data-ditching-the-wax-tablet/post.html +175 -0
  47. data/doc/imported/0010-immutable-data-ditching-the-wax-tablet/source.lt3 +139 -0
  48. data/doc/imported/0011-computer-science-as-a-lost-art/metadata.txt +7 -0
  49. data/doc/imported/0011-computer-science-as-a-lost-art/post.html +139 -0
  50. data/doc/imported/0011-computer-science-as-a-lost-art/source.lt3 +104 -0
  51. data/doc/imported/0012-ruby-day-in-turin-italy/metadata.txt +7 -0
  52. data/doc/imported/0012-ruby-day-in-turin-italy/post.html +42 -0
  53. data/doc/imported/0012-ruby-day-in-turin-italy/source.lt3 +24 -0
  54. data/doc/imported/0013-rubyday-was-a-success/metadata.txt +7 -0
  55. data/doc/imported/0013-rubyday-was-a-success/post.html +44 -0
  56. data/doc/imported/0013-rubyday-was-a-success/source.lt3 +27 -0
  57. data/doc/imported/0014-working-on-the-blogging-software/metadata.txt +7 -0
  58. data/doc/imported/0014-working-on-the-blogging-software/post.html +63 -0
  59. data/doc/imported/0014-working-on-the-blogging-software/source.lt3 +41 -0
  60. data/doc/imported/0015-ok-its-not-really-a-lost-art/metadata.txt +7 -0
  61. data/doc/imported/0015-ok-its-not-really-a-lost-art/post.html +172 -0
  62. data/doc/imported/0015-ok-its-not-really-a-lost-art/source.lt3 +134 -0
  63. data/doc/imported/0016-an-in-operator-for-ruby/metadata.txt +7 -0
  64. data/doc/imported/0016-an-in-operator-for-ruby/post.html +155 -0
  65. data/doc/imported/0016-an-in-operator-for-ruby/source.lt3 +106 -0
  66. data/doc/imported/0017-the-forgotten-mathematician/metadata.txt +7 -0
  67. data/doc/imported/0017-the-forgotten-mathematician/post.html +161 -0
  68. data/doc/imported/0017-the-forgotten-mathematician/source.lt3 +119 -0
  69. data/doc/imported/0018-ruby-puns/metadata.txt +7 -0
  70. data/doc/imported/0018-ruby-puns/post.html +46 -0
  71. data/doc/imported/0018-ruby-puns/source.lt3 +28 -0
  72. data/doc/imported/0019-custom-exceptions-via-metaprogramming/metadata.txt +7 -0
  73. data/doc/imported/0019-custom-exceptions-via-metaprogramming/post.html +138 -0
  74. data/doc/imported/0019-custom-exceptions-via-metaprogramming/source.lt3 +101 -0
  75. data/doc/imported/0020-fffff/metadata.txt +7 -0
  76. data/doc/imported/0020-fffff/post.html +24 -0
  77. data/doc/imported/0020-fffff/source.lt3 +12 -0
  78. data/doc/imported/0021-trying-ror-yet-again/metadata.txt +7 -0
  79. data/doc/imported/0021-trying-ror-yet-again/post.html +26 -0
  80. data/doc/imported/0021-trying-ror-yet-again/source.lt3 +12 -0
  81. data/doc/imported/0023-doctor-sleep/metadata.txt +7 -0
  82. data/doc/imported/0023-doctor-sleep/post.html +63 -0
  83. data/doc/imported/0023-doctor-sleep/source.lt3 +44 -0
  84. data/doc/imported/0024-just-a-test/metadata.txt +7 -0
  85. data/doc/imported/0024-just-a-test/post.html +24 -0
  86. data/doc/imported/0024-just-a-test/source.lt3 +12 -0
  87. data/doc/imported/import_summary.txt +98 -0
  88. data/doc/livetext-informal-spec.txt +65 -0
  89. data/doc/myuserdoc/ch-0.lt3 +31 -0
  90. data/doc/myuserdoc/ch-1.lt3 +37 -0
  91. data/doc/myuserdoc/ch-10.lt3 +22 -0
  92. data/doc/myuserdoc/ch-2.lt3 +37 -0
  93. data/doc/myuserdoc/ch-3.lt3 +19 -0
  94. data/doc/myuserdoc/ch-4.lt3 +43 -0
  95. data/doc/myuserdoc/ch-5.lt3 +22 -0
  96. data/doc/myuserdoc/ch-6.lt3 +19 -0
  97. data/doc/myuserdoc/ch-7.lt3 +16 -0
  98. data/doc/myuserdoc/ch-8.lt3 +13 -0
  99. data/doc/myuserdoc/ch-9.lt3 +19 -0
  100. data/doc/myuserdoc/tweak.rb +18 -0
  101. data/doc/{userdoc-toc.txt → myuserdoc/userdoc-toc.txt} +27 -27
  102. data/doc/old-posts/0001-elixir-conf-2014.lt3 +24 -0
  103. data/doc/old-posts/0002-programmers-and-word-processing.lt3 +150 -0
  104. data/doc/old-posts/0003-how-to-turn-your-brain-sideways.lt3 +43 -0
  105. data/doc/old-posts/0004-upcoming-lone-star-ruby-conference.lt3 +26 -0
  106. data/doc/old-posts/0005-elixir-conf-2015-announced.lt3 +17 -0
  107. data/doc/old-posts/0006-ruby-for-dinosaurs.lt3 +30 -0
  108. data/doc/old-posts/0007-phoenix-isnt-rails.lt3 +90 -0
  109. data/doc/old-posts/0008-concerning-the-term-monkeypatching.lt3 +105 -0
  110. data/doc/old-posts/0009-announcement-coming-soon.lt3 +20 -0
  111. data/doc/old-posts/0010-immutable-data-ditching-the-wax-tablet.lt3 +142 -0
  112. data/doc/old-posts/0011-computer-science-as-a-lost-art.lt3 +117 -0
  113. data/doc/old-posts/0012-ruby-day-in-turin-italy.lt3 +26 -0
  114. data/doc/old-posts/0013-rubyday-was-a-success.lt3 +28 -0
  115. data/doc/old-posts/0014-working-on-the-blogging-software.lt3 +42 -0
  116. data/doc/old-posts/0015-ok-its-not-really-a-lost-art.lt3 +137 -0
  117. data/doc/old-posts/0016-an-in-operator-for-ruby.lt3 +142 -0
  118. data/doc/old-posts/0017-the-forgotten-mathematician.lt3 +129 -0
  119. data/doc/old-posts/0018-ruby-puns.lt3 +31 -0
  120. data/doc/old-posts/0019-custom-exceptions-via-metaprogramming.lt3 +116 -0
  121. data/doc/old-posts/0021-trying-ror-yet-again.lt3 +35 -0
  122. data/doc/old-posts/0023-doctor-sleep.lt3 +43 -0
  123. data/doc/old-posts/0024-just-a-test.lt3 +12 -0
  124. data/doc/old-posts/0025-trying-another-post.lt3 +12 -0
  125. data/doc/old-repo +1 -0
  126. data/doc/reddit_integration.md +2 -2
  127. data/doc/user.lt3 +0 -3
  128. data/lib/scriptorium/api.rb +1811 -78
  129. data/lib/scriptorium/banner_svg.rb +55 -68
  130. data/lib/scriptorium/contract.rb +3 -2
  131. data/lib/scriptorium/exceptions.rb +133 -102
  132. data/lib/scriptorium/helpers.rb +282 -82
  133. data/lib/scriptorium/post.rb +81 -17
  134. data/lib/scriptorium/reddit.rb +1 -1
  135. data/lib/scriptorium/repo.rb +478 -164
  136. data/lib/scriptorium/standard_files.rb +30 -396
  137. data/lib/scriptorium/support/common_js/clipboard.js +35 -0
  138. data/lib/scriptorium/support/common_js/content-loader.js +187 -0
  139. data/lib/scriptorium/support/common_js/navigation.js +52 -0
  140. data/lib/scriptorium/support/common_js/syntax-highlighting.js +27 -0
  141. data/lib/scriptorium/support/config/reddit_template.txt +17 -0
  142. data/{test/scriptorium-TEST-1754622690-146/views/sample → lib/scriptorium/support}/config/social.txt +1 -0
  143. data/lib/scriptorium/support/highlight/css.txt +2 -0
  144. data/lib/scriptorium/support/highlight/custom.css +119 -0
  145. data/lib/scriptorium/support/highlight/js.txt +1 -0
  146. data/lib/scriptorium/support/post_index/config.txt +15 -0
  147. data/lib/scriptorium/support/post_index/style.css +55 -0
  148. data/lib/scriptorium/support/templates/index_entry.lt3 +16 -0
  149. data/{test/scriptorium-TEST-1754622690-146/themes/standard/initial/post.lt3 → lib/scriptorium/support/templates/initial_post.lt3} +5 -5
  150. data/lib/scriptorium/support/templates/post.lt3 +104 -0
  151. data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/header.txt → lib/scriptorium/support/theme/header.lt3} +1 -1
  152. data/lib/scriptorium/theme.rb +83 -70
  153. data/lib/scriptorium/version.rb +2 -2
  154. data/lib/scriptorium/view.rb +194 -149
  155. data/lib/scriptorium.rb +24 -1
  156. data/lib/skeleton.rb +4 -1
  157. data/scriptorium.gemspec +2 -1
  158. data/test/WEB_INTEGRATION_README.md +196 -0
  159. data/test/all +40 -0
  160. data/test/banner_svg/unit.rb +267 -35
  161. data/test/config/deployment.txt +5 -0
  162. data/test/integration/integration_test.rb +7 -7
  163. data/test/integration/preview_flow_test.rb +94 -0
  164. data/test/livetext_plugin_test.rb +453 -182
  165. data/test/manual/banner-tests/test01.html +82 -18
  166. data/test/manual/banner-tests/test02.html +82 -18
  167. data/test/manual/banner-tests/test03.html +82 -18
  168. data/test/manual/banner-tests/test04.html +89 -25
  169. data/test/manual/banner-tests/test05.html +89 -25
  170. data/test/manual/banner-tests/test06.html +89 -25
  171. data/test/manual/banner-tests/test07.html +89 -25
  172. data/test/manual/banner-tests/test08.html +82 -18
  173. data/test/manual/banner-tests/test09.html +82 -18
  174. data/test/manual/banner-tests/test10.html +82 -18
  175. data/test/manual/banner-tests/test11.html +82 -18
  176. data/test/manual/banner-tests/test12.html +82 -18
  177. data/test/manual/banner-tests/test13.html +82 -18
  178. data/test/manual/banner-tests/test14.html +82 -18
  179. data/test/manual/banner-tests/test15.html +82 -18
  180. data/test/manual/banner-tests/test16.html +82 -18
  181. data/test/manual/banner-tests/test17.html +82 -18
  182. data/test/manual/banner-tests/test18.html +90 -26
  183. data/test/manual/banner-tests/test19.html +90 -26
  184. data/test/manual/banner-tests/test20.html +90 -26
  185. data/test/manual/banner-tests/test21.html +90 -26
  186. data/test/manual/banner-tests/test22.html +90 -26
  187. data/test/manual/banner-tests/test23.html +90 -26
  188. data/test/manual/banner-tests/test24.html +90 -26
  189. data/test/manual/banner-tests/test25.html +89 -25
  190. data/test/manual/banner_environment.rb +15 -2
  191. data/test/manual/codemirror_demo.html +773 -0
  192. data/test/manual/create_posts_for_web.rb +114 -0
  193. data/test/manual/preview_manual_test.rb +129 -0
  194. data/test/manual/test_banner_features.rb +14 -14
  195. data/test/manual/test_banner_integration.rb +115 -0
  196. data/test/manual/test_banner_radial.rb +87 -0
  197. data/test/manual/test_syntax_highlighting.rb +60 -40
  198. data/test/support/preview_utils.rb +88 -0
  199. data/test/test_gem_assets.rb +48 -0
  200. data/test/test_helpers.rb +10 -0
  201. data/test/tui_editor_integration_test.rb +15 -15
  202. data/test/tui_integration_test.rb +687 -441
  203. data/test/unit/api.rb +757 -37
  204. data/test/unit/asset_management.rb +195 -221
  205. data/test/unit/backup_test.rb +451 -0
  206. data/test/unit/contract_test.rb +1 -23
  207. data/test/unit/core.rb +415 -61
  208. data/test/unit/deploy_config_test.rb +248 -0
  209. data/test/unit/deploy_test.rb +312 -21
  210. data/test/unit/edit_post_test.rb +168 -0
  211. data/test/unit/gem_asset_management.rb +36 -42
  212. data/test/unit/livetext_basic.rb +23 -35
  213. data/test/unit/livetext_compatibility.rb +7 -14
  214. data/test/unit/parse_cmd_test.rb +260 -0
  215. data/test/unit/{symlink_test.rb → permalink_copy_test.rb} +47 -49
  216. data/test/unit/post.rb +91 -26
  217. data/test/unit/post_index_config_test.rb +258 -0
  218. data/test/unit/post_state_helpers_test.rb +137 -0
  219. data/test/unit/read_commented_file_test.rb +8 -6
  220. data/test/unit/repo.rb +75 -54
  221. data/test/unit/social_test.rb +41 -44
  222. data/test/unit/syntax_highlighting.rb +70 -0
  223. data/test/unit/theme_management_test.rb +91 -0
  224. data/test/unit/view.rb +79 -12
  225. data/test/unit/widgets.rb +8 -8
  226. data/test/web_integration_test.rb +231 -0
  227. data/test/web_test_helper.rb +218 -0
  228. data/test/web_workflow_test.rb +527 -0
  229. data/ui/tui/bin/scriptorium +885 -415
  230. data/ui/web/app/app.rb +1398 -176
  231. data/ui/web/app/assets/livetext_mode.js +244 -0
  232. data/ui/web/app/error_helpers.rb +16 -16
  233. data/ui/web/app/views/advanced_config.erb +8 -2
  234. data/ui/web/app/views/asset_management.erb +56 -0
  235. data/ui/web/app/views/backup_management.erb +238 -0
  236. data/ui/web/app/views/config_widget.erb +232 -0
  237. data/ui/web/app/views/dashboard.erb +64 -72
  238. data/ui/web/app/views/deploy_config.erb +3 -0
  239. data/ui/web/app/views/edit_pages.erb +170 -2
  240. data/ui/web/app/views/edit_post.erb +130 -9
  241. data/ui/web/app/views/edit_theme.erb +73 -0
  242. data/ui/web/app/views/edit_theme_file.erb +74 -0
  243. data/ui/web/app/views/theme_management.erb +130 -0
  244. data/ui/web/app/views/view_dashboard.erb +666 -25
  245. data/ui/web/app/views/widgets.erb +249 -0
  246. data/ui/web/bin/scriptorium-web +35 -24
  247. data/ui/web/tmp/timing.log +17 -0
  248. data/ui/web/tmp/web_server.log +0 -5
  249. metadata +190 -116
  250. data/assets/back-icon.png +0 -0
  251. data/assets/icons/facebook.svg +0 -1
  252. data/assets/icons/github.svg +0 -1
  253. data/assets/icons/instagram.svg +0 -1
  254. data/assets/icons/reddit.svg +0 -1
  255. data/assets/icons/x.svg +0 -1
  256. data/assets/icons/youtube.svg +0 -1
  257. data/bin/scriptorium +0 -1511
  258. data/doc/anti-amnesia/20250727-060000-api-design-tui-planning.md +0 -34
  259. data/doc/anti-amnesia/20250727-061000-runeblog-tui-analysis.md +0 -50
  260. data/doc/anti-amnesia/20250727-154000-livetext-plugin-file-stats.md +0 -73
  261. data/doc/anti-amnesia/20250727-172600-unified-minitest-framework.md +0 -70
  262. data/doc/anti-amnesia/20250727-173000-widget-testing-achievement.md +0 -110
  263. data/doc/anti-amnesia/20250727-180000-post-id-num-refactoring.md +0 -73
  264. data/doc/anti-amnesia/20250728-124421-conversation-summary-concise.md +0 -124
  265. data/doc/anti-amnesia/20250729-190000-scriptorium-tui-testing-complete.md +0 -46
  266. data/doc/anti-amnesia/20250729-200000-scriptorium-tui-testing-edit-file-workflow.md +0 -97
  267. data/doc/anti-amnesia/20250729-211500-dependency-management-system.md +0 -211
  268. data/doc/anti-amnesia/20250729-213000-python-virtual-environment-setup.md +0 -141
  269. data/doc/anti-amnesia/20250729-214500-theme-management-commands.md +0 -211
  270. data/doc/anti-amnesia/20250729-215000-version-update-to-0.6.0.md +0 -134
  271. data/doc/anti-amnesia/20250729-220000-user-guide-complete.md +0 -41
  272. data/doc/anti-amnesia/20250804-213700-publishing-test-fix.md +0 -49
  273. data/doc/anti-amnesia/20250804-214400-additional-test-fixes.md +0 -46
  274. data/doc/anti-amnesia/20250804-220000-asset-function-logic-clarification.md +0 -41
  275. data/doc/anti-amnesia/20250806-202032-asset-function-logic-clarification.md +0 -41
  276. data/doc/anti-amnesia/20250813-082428-syntax-highlighting-and-navigation-improvements.md +0 -256
  277. data/lib/scriptorium/syntax_highlighter.rb +0 -234
  278. data/test/manual/deploy_symlink_demo.rb +0 -142
  279. data/test/manual/symlink_demo.rb +0 -117
  280. data/test/manual/test2.rb +0 -12
  281. data/test/manual/test_banner_from_file.rb +0 -150
  282. data/test/manual/test_banner_in_header.rb +0 -35
  283. data/test/manual/test_code_highlighting.rb +0 -68
  284. data/test/manual/test_complex_header.rb +0 -74
  285. data/test/manual/test_empty_header.rb +0 -32
  286. data/test/manual/test_radial_custom.rb +0 -58
  287. data/test/manual/test_radial_large_radius.rb +0 -52
  288. data/test/manual/test_svg_debug.rb +0 -47
  289. data/test/pages-demo/config/currentview.txt +0 -1
  290. data/test/pages-demo/views/demo/config/common.js +0 -57
  291. data/test/pages-demo/views/demo/config/footer.txt +0 -1
  292. data/test/pages-demo/views/demo/config/global-head.txt +0 -8
  293. data/test/pages-demo/views/demo/config/header.txt +0 -1
  294. data/test/pages-demo/views/demo/config/layout.txt +0 -1
  295. data/test/pages-demo/views/demo/config/left.txt +0 -1
  296. data/test/pages-demo/views/demo/config/main.txt +0 -1
  297. data/test/pages-demo/views/demo/config/right.txt +0 -1
  298. data/test/pages-demo/views/demo/config.txt +0 -3
  299. data/test/pages-demo/views/demo/output/panes/footer.html +0 -1
  300. data/test/pages-demo/views/demo/output/panes/header.html +0 -1
  301. data/test/pages-demo/views/demo/output/panes/left.html +0 -1
  302. data/test/pages-demo/views/demo/output/panes/main.html +0 -1
  303. data/test/pages-demo/views/demo/output/panes/right.html +0 -1
  304. data/test/scriptorium-TEST-1754622690-146/config/bootstrap_css.txt +0 -5
  305. data/test/scriptorium-TEST-1754622690-146/config/bootstrap_js.txt +0 -4
  306. data/test/scriptorium-TEST-1754622690-146/config/common.js +0 -57
  307. data/test/scriptorium-TEST-1754622690-146/config/currentview.txt +0 -1
  308. data/test/scriptorium-TEST-1754622690-146/config/global-head.txt +0 -9
  309. data/test/scriptorium-TEST-1754622690-146/config/last_post_num.txt +0 -1
  310. data/test/scriptorium-TEST-1754622690-146/config/os_helpers.rb +0 -4
  311. data/test/scriptorium-TEST-1754622690-146/config/widgets.txt +0 -3
  312. data/test/scriptorium-TEST-1754622690-146/posts/0001/meta.txt +0 -8
  313. data/test/scriptorium-TEST-1754622690-146/posts/0001/source.lt3 +0 -6
  314. data/test/scriptorium-TEST-1754622690-146/themes/standard/README.txt +0 -1
  315. data/test/scriptorium-TEST-1754622690-146/themes/standard/config.txt +0 -1
  316. data/test/scriptorium-TEST-1754622690-146/themes/standard/layout/gen/text.css +0 -1
  317. data/test/scriptorium-TEST-1754622690-146/themes/standard/templates/index.lt3 +0 -1
  318. data/test/scriptorium-TEST-1754622690-146/themes/standard/templates/index_entry.lt3 +0 -14
  319. data/test/scriptorium-TEST-1754622690-146/themes/standard/templates/post.lt3 +0 -13
  320. data/test/scriptorium-TEST-1754622690-146/themes/standard/templates/widget.lt3 +0 -1
  321. data/test/scriptorium-TEST-1754622690-146/views/sample/config/bootstrap_css.txt +0 -5
  322. data/test/scriptorium-TEST-1754622690-146/views/sample/config/bootstrap_js.txt +0 -4
  323. data/test/scriptorium-TEST-1754622690-146/views/sample/config/common.js +0 -57
  324. data/test/scriptorium-TEST-1754622690-146/views/sample/config/deploy.txt +0 -5
  325. data/test/scriptorium-TEST-1754622690-146/views/sample/config/footer.txt +0 -2
  326. data/test/scriptorium-TEST-1754622690-146/views/sample/config/global-head.txt +0 -9
  327. data/test/scriptorium-TEST-1754622690-146/views/sample/config/header.txt +0 -4
  328. data/test/scriptorium-TEST-1754622690-146/views/sample/config/layout.txt +0 -5
  329. data/test/scriptorium-TEST-1754622690-146/views/sample/config/left.txt +0 -3
  330. data/test/scriptorium-TEST-1754622690-146/views/sample/config/main.txt +0 -5
  331. data/test/scriptorium-TEST-1754622690-146/views/sample/config/right.txt +0 -3
  332. data/test/scriptorium-TEST-1754622690-146/views/sample/config/status.txt +0 -7
  333. data/test/scriptorium-TEST-1754622690-146/views/sample/config.txt +0 -3
  334. data/test/scriptorium-TEST-1754622690-146/views/sample/layout/footer.html +0 -3
  335. data/test/scriptorium-TEST-1754622690-146/views/sample/layout/header.html +0 -3
  336. data/test/scriptorium-TEST-1754622690-146/views/sample/layout/left.html +0 -3
  337. data/test/scriptorium-TEST-1754622690-146/views/sample/layout/main.html +0 -3
  338. data/test/scriptorium-TEST-1754622690-146/views/sample/layout/right.html +0 -3
  339. data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/footer.html +0 -1
  340. data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/header.html +0 -1
  341. data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/left.html +0 -1
  342. data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/main.html +0 -1
  343. data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/right.html +0 -1
  344. data/ui/web/tmp/web_server.pid +0 -1
  345. /data/{test/pages-demo/views/demo/config/bootstrap_css.txt → lib/scriptorium/support/bootstrap/css.txt} +0 -0
  346. /data/{test/pages-demo/views/demo/config/bootstrap_js.txt → lib/scriptorium/support/bootstrap/js.txt} +0 -0
  347. /data/{test/scriptorium-TEST-1754622690-146/views/sample → lib/scriptorium/support}/config/reddit.txt +0 -0
  348. /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout → lib/scriptorium/support/templates}/layout.txt +0 -0
  349. /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/footer.txt → lib/scriptorium/support/theme/footer.lt3} +0 -0
  350. /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/left.txt → lib/scriptorium/support/theme/left.lt3} +0 -0
  351. /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/main.txt → lib/scriptorium/support/theme/main.lt3} +0 -0
  352. /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/right.txt → lib/scriptorium/support/theme/right.lt3} +0 -0
  353. /data/test/manual/banner-tests/{config.txt → svg.txt} +0 -0
  354. /data/test/manual/{test6.rb → test_advanced_widgets.rb} +0 -0
  355. /data/test/manual/{test1.rb → test_basic_posts.rb} +0 -0
  356. /data/test/manual/{test4.rb → test_layout_widgets.rb} +0 -0
  357. /data/test/manual/{test5.rb → test_pagination.rb} +0 -0
  358. /data/test/manual/{test3.rb → test_random_posts.rb} +0 -0
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scriptorium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-08-14 00:00:00.000000000 Z
10
+ date: 2025-09-19 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: livetext
@@ -103,6 +103,20 @@ dependencies:
103
103
  - - "~>"
104
104
  - !ruby/object:Gem::Version
105
105
  version: 0.8.8
106
+ - !ruby/object:Gem::Dependency
107
+ name: x
108
+ requirement: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '1.0'
113
+ type: :runtime
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '1.0'
106
120
  - !ruby/object:Gem::Dependency
107
121
  name: htmlbeautifier
108
122
  requirement: !ruby/object:Gem::Requirement
@@ -176,11 +190,8 @@ files:
176
190
  - "./scriptorium.gemspec"
177
191
  - assets/.DS_Store
178
192
  - assets/README.md
179
- - assets/back-icon.png
180
- - assets/icons/facebook.svg
181
- - assets/icons/github.svg
182
- - assets/icons/instagram.svg
183
- - assets/icons/reddit.svg
193
+ - assets/icons/social/reddit.png
194
+ - assets/icons/social/x-logo.png
184
195
  - assets/icons/ui/.DS_Store
185
196
  - assets/icons/ui/back.png
186
197
  - assets/icons/ui/copy.png
@@ -194,45 +205,136 @@ files:
194
205
  - assets/icons/ui/right.png
195
206
  - assets/icons/ui/start.png
196
207
  - assets/icons/ui/up.png
197
- - assets/icons/x.svg
198
- - assets/icons/youtube.svg
208
+ - assets/imagenotfound.jpg
199
209
  - assets/samples/placeholder.svg
200
210
  - assets/themes/standard/favicon.svg
201
211
  - bin/sblog
202
212
  - bin/scriptorium
203
213
  - doc/README.txt
204
214
  - doc/anti-amnesia/20250727-054000-scriptorium-overview.md
205
- - doc/anti-amnesia/20250727-060000-api-design-tui-planning.md
206
- - doc/anti-amnesia/20250727-061000-runeblog-tui-analysis.md
207
215
  - doc/anti-amnesia/20250727-123000-anti-amnesia-conventions.md
208
- - doc/anti-amnesia/20250727-154000-livetext-plugin-file-stats.md
209
216
  - doc/anti-amnesia/20250727-172600-cursor-rbenv-ruby-version-mystery.md
210
- - doc/anti-amnesia/20250727-172600-unified-minitest-framework.md
211
217
  - doc/anti-amnesia/20250727-172900-ai-cognitive-assessment-capabilities.md
212
- - doc/anti-amnesia/20250727-173000-widget-testing-achievement.md
213
- - doc/anti-amnesia/20250727-180000-post-id-num-refactoring.md
214
218
  - doc/anti-amnesia/20250728-124243-aaa-syntax-clarification.md
215
- - doc/anti-amnesia/20250728-124421-conversation-summary-concise.md
216
- - doc/anti-amnesia/20250729-190000-scriptorium-tui-testing-complete.md
217
- - doc/anti-amnesia/20250729-200000-scriptorium-tui-testing-edit-file-workflow.md
218
219
  - doc/anti-amnesia/20250729-210000-reddit-autopost-integration-complete.md
219
- - doc/anti-amnesia/20250729-211500-dependency-management-system.md
220
- - doc/anti-amnesia/20250729-213000-python-virtual-environment-setup.md
221
- - doc/anti-amnesia/20250729-214500-theme-management-commands.md
222
- - doc/anti-amnesia/20250729-215000-version-update-to-0.6.0.md
223
- - doc/anti-amnesia/20250729-220000-user-guide-complete.md
224
220
  - doc/anti-amnesia/20250804-190500-cognitive-loop-bug.md
225
221
  - doc/anti-amnesia/20250804-190700-anti-amnesia-timestamping-fix.md
226
- - doc/anti-amnesia/20250804-213700-publishing-test-fix.md
227
- - doc/anti-amnesia/20250804-214400-additional-test-fixes.md
228
- - doc/anti-amnesia/20250804-220000-asset-function-logic-clarification.md
229
- - doc/anti-amnesia/20250806-202032-asset-function-logic-clarification.md
230
222
  - doc/anti-amnesia/20250807-213025.md
231
- - doc/anti-amnesia/20250813-082428-syntax-highlighting-and-navigation-improvements.md
223
+ - doc/anti-amnesia/20250901-211714-codemirror-integration-and-web-tests.md
224
+ - doc/anti-amnesia/20250902-002402-backup-restore-system.md
225
+ - doc/anti-amnesia/20250907-203339-backup-metadata-implementation.md
232
226
  - doc/banner_svg_config.md
233
227
  - doc/contrib.lt3
234
228
  - doc/dependencies.md
235
229
  - doc/hacker.lt3
230
+ - doc/imported/0001-elixir-conf-2014/metadata.txt
231
+ - doc/imported/0001-elixir-conf-2014/post.html
232
+ - doc/imported/0001-elixir-conf-2014/source.lt3
233
+ - doc/imported/0002-programmers-and-word-processing/metadata.txt
234
+ - doc/imported/0002-programmers-and-word-processing/post.html
235
+ - doc/imported/0002-programmers-and-word-processing/source.lt3
236
+ - doc/imported/0003-how-to-turn-your-brain-sideways/metadata.txt
237
+ - doc/imported/0003-how-to-turn-your-brain-sideways/post.html
238
+ - doc/imported/0003-how-to-turn-your-brain-sideways/source.lt3
239
+ - doc/imported/0004-upcoming-lone-star-ruby-conference/metadata.txt
240
+ - doc/imported/0004-upcoming-lone-star-ruby-conference/post.html
241
+ - doc/imported/0004-upcoming-lone-star-ruby-conference/source.lt3
242
+ - doc/imported/0005-elixir-conf-2015-announced/metadata.txt
243
+ - doc/imported/0005-elixir-conf-2015-announced/post.html
244
+ - doc/imported/0005-elixir-conf-2015-announced/source.lt3
245
+ - doc/imported/0006-ruby-for-dinosaurs/metadata.txt
246
+ - doc/imported/0006-ruby-for-dinosaurs/post.html
247
+ - doc/imported/0006-ruby-for-dinosaurs/source.lt3
248
+ - doc/imported/0007-phoenix-isnt-rails/metadata.txt
249
+ - doc/imported/0007-phoenix-isnt-rails/post.html
250
+ - doc/imported/0007-phoenix-isnt-rails/source.lt3
251
+ - doc/imported/0008-concerning-the-term-monkeypatching/metadata.txt
252
+ - doc/imported/0008-concerning-the-term-monkeypatching/post.html
253
+ - doc/imported/0008-concerning-the-term-monkeypatching/source.lt3
254
+ - doc/imported/0009-announcement-coming-soon/metadata.txt
255
+ - doc/imported/0009-announcement-coming-soon/post.html
256
+ - doc/imported/0009-announcement-coming-soon/source.lt3
257
+ - doc/imported/0010-immutable-data-ditching-the-wax-tablet/metadata.txt
258
+ - doc/imported/0010-immutable-data-ditching-the-wax-tablet/post.html
259
+ - doc/imported/0010-immutable-data-ditching-the-wax-tablet/source.lt3
260
+ - doc/imported/0011-computer-science-as-a-lost-art/metadata.txt
261
+ - doc/imported/0011-computer-science-as-a-lost-art/post.html
262
+ - doc/imported/0011-computer-science-as-a-lost-art/source.lt3
263
+ - doc/imported/0012-ruby-day-in-turin-italy/metadata.txt
264
+ - doc/imported/0012-ruby-day-in-turin-italy/post.html
265
+ - doc/imported/0012-ruby-day-in-turin-italy/source.lt3
266
+ - doc/imported/0013-rubyday-was-a-success/metadata.txt
267
+ - doc/imported/0013-rubyday-was-a-success/post.html
268
+ - doc/imported/0013-rubyday-was-a-success/source.lt3
269
+ - doc/imported/0014-working-on-the-blogging-software/metadata.txt
270
+ - doc/imported/0014-working-on-the-blogging-software/post.html
271
+ - doc/imported/0014-working-on-the-blogging-software/source.lt3
272
+ - doc/imported/0015-ok-its-not-really-a-lost-art/metadata.txt
273
+ - doc/imported/0015-ok-its-not-really-a-lost-art/post.html
274
+ - doc/imported/0015-ok-its-not-really-a-lost-art/source.lt3
275
+ - doc/imported/0016-an-in-operator-for-ruby/metadata.txt
276
+ - doc/imported/0016-an-in-operator-for-ruby/post.html
277
+ - doc/imported/0016-an-in-operator-for-ruby/source.lt3
278
+ - doc/imported/0017-the-forgotten-mathematician/metadata.txt
279
+ - doc/imported/0017-the-forgotten-mathematician/post.html
280
+ - doc/imported/0017-the-forgotten-mathematician/source.lt3
281
+ - doc/imported/0018-ruby-puns/metadata.txt
282
+ - doc/imported/0018-ruby-puns/post.html
283
+ - doc/imported/0018-ruby-puns/source.lt3
284
+ - doc/imported/0019-custom-exceptions-via-metaprogramming/metadata.txt
285
+ - doc/imported/0019-custom-exceptions-via-metaprogramming/post.html
286
+ - doc/imported/0019-custom-exceptions-via-metaprogramming/source.lt3
287
+ - doc/imported/0020-fffff/metadata.txt
288
+ - doc/imported/0020-fffff/post.html
289
+ - doc/imported/0020-fffff/source.lt3
290
+ - doc/imported/0021-trying-ror-yet-again/metadata.txt
291
+ - doc/imported/0021-trying-ror-yet-again/post.html
292
+ - doc/imported/0021-trying-ror-yet-again/source.lt3
293
+ - doc/imported/0023-doctor-sleep/metadata.txt
294
+ - doc/imported/0023-doctor-sleep/post.html
295
+ - doc/imported/0023-doctor-sleep/source.lt3
296
+ - doc/imported/0024-just-a-test/metadata.txt
297
+ - doc/imported/0024-just-a-test/post.html
298
+ - doc/imported/0024-just-a-test/source.lt3
299
+ - doc/imported/import_summary.txt
300
+ - doc/livetext-informal-spec.txt
301
+ - doc/myuserdoc/ch-0.lt3
302
+ - doc/myuserdoc/ch-1.lt3
303
+ - doc/myuserdoc/ch-10.lt3
304
+ - doc/myuserdoc/ch-2.lt3
305
+ - doc/myuserdoc/ch-3.lt3
306
+ - doc/myuserdoc/ch-4.lt3
307
+ - doc/myuserdoc/ch-5.lt3
308
+ - doc/myuserdoc/ch-6.lt3
309
+ - doc/myuserdoc/ch-7.lt3
310
+ - doc/myuserdoc/ch-8.lt3
311
+ - doc/myuserdoc/ch-9.lt3
312
+ - doc/myuserdoc/tweak.rb
313
+ - doc/myuserdoc/userdoc-toc.txt
314
+ - doc/old-posts/0001-elixir-conf-2014.lt3
315
+ - doc/old-posts/0002-programmers-and-word-processing.lt3
316
+ - doc/old-posts/0003-how-to-turn-your-brain-sideways.lt3
317
+ - doc/old-posts/0004-upcoming-lone-star-ruby-conference.lt3
318
+ - doc/old-posts/0005-elixir-conf-2015-announced.lt3
319
+ - doc/old-posts/0006-ruby-for-dinosaurs.lt3
320
+ - doc/old-posts/0007-phoenix-isnt-rails.lt3
321
+ - doc/old-posts/0008-concerning-the-term-monkeypatching.lt3
322
+ - doc/old-posts/0009-announcement-coming-soon.lt3
323
+ - doc/old-posts/0010-immutable-data-ditching-the-wax-tablet.lt3
324
+ - doc/old-posts/0011-computer-science-as-a-lost-art.lt3
325
+ - doc/old-posts/0012-ruby-day-in-turin-italy.lt3
326
+ - doc/old-posts/0013-rubyday-was-a-success.lt3
327
+ - doc/old-posts/0014-working-on-the-blogging-software.lt3
328
+ - doc/old-posts/0015-ok-its-not-really-a-lost-art.lt3
329
+ - doc/old-posts/0016-an-in-operator-for-ruby.lt3
330
+ - doc/old-posts/0017-the-forgotten-mathematician.lt3
331
+ - doc/old-posts/0018-ruby-puns.lt3
332
+ - doc/old-posts/0019-custom-exceptions-via-metaprogramming.lt3
333
+ - doc/old-posts/0021-trying-ror-yet-again.lt3
334
+ - doc/old-posts/0023-doctor-sleep.lt3
335
+ - doc/old-posts/0024-just-a-test.lt3
336
+ - doc/old-posts/0025-trying-another-post.lt3
337
+ - doc/old-repo
236
338
  - doc/reddit_credentials_template.json
237
339
  - doc/reddit_integration.md
238
340
  - doc/user.lt3
@@ -247,7 +349,6 @@ files:
247
349
  - doc/user_guide_section_7.md
248
350
  - doc/user_guide_section_8.md
249
351
  - doc/user_guide_section_9.md
250
- - doc/userdoc-toc.txt
251
352
  - lib/rouge/lexers/livetext.rb
252
353
  - lib/scriptorium.rb
253
354
  - lib/scriptorium/api.rb
@@ -259,7 +360,29 @@ files:
259
360
  - lib/scriptorium/reddit.rb
260
361
  - lib/scriptorium/repo.rb
261
362
  - lib/scriptorium/standard_files.rb
262
- - lib/scriptorium/syntax_highlighter.rb
363
+ - lib/scriptorium/support/bootstrap/css.txt
364
+ - lib/scriptorium/support/bootstrap/js.txt
365
+ - lib/scriptorium/support/common_js/clipboard.js
366
+ - lib/scriptorium/support/common_js/content-loader.js
367
+ - lib/scriptorium/support/common_js/navigation.js
368
+ - lib/scriptorium/support/common_js/syntax-highlighting.js
369
+ - lib/scriptorium/support/config/reddit.txt
370
+ - lib/scriptorium/support/config/reddit_template.txt
371
+ - lib/scriptorium/support/config/social.txt
372
+ - lib/scriptorium/support/highlight/css.txt
373
+ - lib/scriptorium/support/highlight/custom.css
374
+ - lib/scriptorium/support/highlight/js.txt
375
+ - lib/scriptorium/support/post_index/config.txt
376
+ - lib/scriptorium/support/post_index/style.css
377
+ - lib/scriptorium/support/templates/index_entry.lt3
378
+ - lib/scriptorium/support/templates/initial_post.lt3
379
+ - lib/scriptorium/support/templates/layout.txt
380
+ - lib/scriptorium/support/templates/post.lt3
381
+ - lib/scriptorium/support/theme/footer.lt3
382
+ - lib/scriptorium/support/theme/header.lt3
383
+ - lib/scriptorium/support/theme/left.lt3
384
+ - lib/scriptorium/support/theme/main.lt3
385
+ - lib/scriptorium/support/theme/right.lt3
263
386
  - lib/scriptorium/theme.rb
264
387
  - lib/scriptorium/version.rb
265
388
  - lib/scriptorium/view.rb
@@ -269,6 +392,7 @@ files:
269
392
  - lib/scriptorium/widgets/widget.rb
270
393
  - lib/skeleton.rb
271
394
  - test/README.md
395
+ - test/WEB_INTEGRATION_README.md
272
396
  - test/all
273
397
  - test/api_demo.rb
274
398
  - test/assets/imagenotfound.jpg
@@ -284,14 +408,16 @@ files:
284
408
  - test/assets/testbanner.jpg
285
409
  - test/banner_svg/simple_helpers.rb
286
410
  - test/banner_svg/unit.rb
411
+ - test/config/deployment.txt
287
412
  - test/ed_test.rb
288
413
  - test/integration/cursor_banner_combinations.rb
289
414
  - test/integration/cursor_banner_features.rb
290
415
  - test/integration/integration_test.rb
416
+ - test/integration/preview_flow_test.rb
291
417
  - test/livetext_plugin_test.rb
292
418
  - test/manual/asset_mgmt.rb
293
- - test/manual/banner-tests/config.txt
294
419
  - test/manual/banner-tests/index.html
420
+ - test/manual/banner-tests/svg.txt
295
421
  - test/manual/banner-tests/test01.html
296
422
  - test/manual/banner-tests/test02.html
297
423
  - test/manual/banner-tests/test03.html
@@ -318,120 +444,61 @@ files:
318
444
  - test/manual/banner-tests/test24.html
319
445
  - test/manual/banner-tests/test25.html
320
446
  - test/manual/banner_environment.rb
321
- - test/manual/deploy_symlink_demo.rb
447
+ - test/manual/codemirror_demo.html
448
+ - test/manual/create_posts_for_web.rb
322
449
  - test/manual/environment.rb
323
450
  - test/manual/make_banner.rb
451
+ - test/manual/preview_manual_test.rb
324
452
  - test/manual/sample_banner_config.txt
325
- - test/manual/symlink_demo.rb
326
- - test/manual/test1.rb
327
- - test/manual/test2.rb
328
- - test/manual/test3.rb
329
- - test/manual/test4.rb
330
- - test/manual/test5.rb
331
- - test/manual/test6.rb
453
+ - test/manual/test_advanced_widgets.rb
332
454
  - test/manual/test_banner_combinations.rb
333
455
  - test/manual/test_banner_features.rb
334
- - test/manual/test_banner_from_file.rb
335
- - test/manual/test_banner_in_header.rb
336
- - test/manual/test_code_highlighting.rb
337
- - test/manual/test_complex_header.rb
338
- - test/manual/test_empty_header.rb
339
- - test/manual/test_radial_custom.rb
340
- - test/manual/test_radial_large_radius.rb
341
- - test/manual/test_svg_debug.rb
456
+ - test/manual/test_banner_integration.rb
457
+ - test/manual/test_banner_radial.rb
458
+ - test/manual/test_basic_posts.rb
459
+ - test/manual/test_layout_widgets.rb
460
+ - test/manual/test_pagination.rb
461
+ - test/manual/test_random_posts.rb
342
462
  - test/manual/test_syntax_highlighting.rb
343
- - test/pages-demo/config/currentview.txt
344
- - test/pages-demo/views/demo/config.txt
345
- - test/pages-demo/views/demo/config/bootstrap_css.txt
346
- - test/pages-demo/views/demo/config/bootstrap_js.txt
347
- - test/pages-demo/views/demo/config/common.js
348
- - test/pages-demo/views/demo/config/footer.txt
349
- - test/pages-demo/views/demo/config/global-head.txt
350
- - test/pages-demo/views/demo/config/header.txt
351
- - test/pages-demo/views/demo/config/layout.txt
352
- - test/pages-demo/views/demo/config/left.txt
353
- - test/pages-demo/views/demo/config/main.txt
354
- - test/pages-demo/views/demo/config/right.txt
355
- - test/pages-demo/views/demo/output/panes/footer.html
356
- - test/pages-demo/views/demo/output/panes/header.html
357
- - test/pages-demo/views/demo/output/panes/left.html
358
- - test/pages-demo/views/demo/output/panes/main.html
359
- - test/pages-demo/views/demo/output/panes/right.html
360
463
  - test/rubytext/rubytext_comprehensive_test.rb
361
464
  - test/rubytext/rubytext_demo_test.rb
362
465
  - test/rubytext/rubytext_testing_guide.md
363
466
  - test/run_automated_tests.rb
364
- - test/scriptorium-TEST-1754622690-146/config/bootstrap_css.txt
365
- - test/scriptorium-TEST-1754622690-146/config/bootstrap_js.txt
366
- - test/scriptorium-TEST-1754622690-146/config/common.js
367
- - test/scriptorium-TEST-1754622690-146/config/currentview.txt
368
- - test/scriptorium-TEST-1754622690-146/config/global-head.txt
369
- - test/scriptorium-TEST-1754622690-146/config/last_post_num.txt
370
- - test/scriptorium-TEST-1754622690-146/config/os_helpers.rb
371
- - test/scriptorium-TEST-1754622690-146/config/widgets.txt
372
- - test/scriptorium-TEST-1754622690-146/posts/0001/meta.txt
373
- - test/scriptorium-TEST-1754622690-146/posts/0001/source.lt3
374
- - test/scriptorium-TEST-1754622690-146/themes/standard/README.txt
375
- - test/scriptorium-TEST-1754622690-146/themes/standard/config.txt
376
- - test/scriptorium-TEST-1754622690-146/themes/standard/initial/post.lt3
377
- - test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/footer.txt
378
- - test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/header.txt
379
- - test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/left.txt
380
- - test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/main.txt
381
- - test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/right.txt
382
- - test/scriptorium-TEST-1754622690-146/themes/standard/layout/gen/text.css
383
- - test/scriptorium-TEST-1754622690-146/themes/standard/layout/layout.txt
384
- - test/scriptorium-TEST-1754622690-146/themes/standard/templates/index.lt3
385
- - test/scriptorium-TEST-1754622690-146/themes/standard/templates/index_entry.lt3
386
- - test/scriptorium-TEST-1754622690-146/themes/standard/templates/post.lt3
387
- - test/scriptorium-TEST-1754622690-146/themes/standard/templates/widget.lt3
388
- - test/scriptorium-TEST-1754622690-146/views/sample/config.txt
389
- - test/scriptorium-TEST-1754622690-146/views/sample/config/bootstrap_css.txt
390
- - test/scriptorium-TEST-1754622690-146/views/sample/config/bootstrap_js.txt
391
- - test/scriptorium-TEST-1754622690-146/views/sample/config/common.js
392
- - test/scriptorium-TEST-1754622690-146/views/sample/config/deploy.txt
393
- - test/scriptorium-TEST-1754622690-146/views/sample/config/footer.txt
394
- - test/scriptorium-TEST-1754622690-146/views/sample/config/global-head.txt
395
- - test/scriptorium-TEST-1754622690-146/views/sample/config/header.txt
396
- - test/scriptorium-TEST-1754622690-146/views/sample/config/layout.txt
397
- - test/scriptorium-TEST-1754622690-146/views/sample/config/left.txt
398
- - test/scriptorium-TEST-1754622690-146/views/sample/config/main.txt
399
- - test/scriptorium-TEST-1754622690-146/views/sample/config/reddit.txt
400
- - test/scriptorium-TEST-1754622690-146/views/sample/config/right.txt
401
- - test/scriptorium-TEST-1754622690-146/views/sample/config/social.txt
402
- - test/scriptorium-TEST-1754622690-146/views/sample/config/status.txt
403
- - test/scriptorium-TEST-1754622690-146/views/sample/layout/footer.html
404
- - test/scriptorium-TEST-1754622690-146/views/sample/layout/header.html
405
- - test/scriptorium-TEST-1754622690-146/views/sample/layout/left.html
406
- - test/scriptorium-TEST-1754622690-146/views/sample/layout/main.html
407
- - test/scriptorium-TEST-1754622690-146/views/sample/layout/right.html
408
- - test/scriptorium-TEST-1754622690-146/views/sample/output/panes/footer.html
409
- - test/scriptorium-TEST-1754622690-146/views/sample/output/panes/header.html
410
- - test/scriptorium-TEST-1754622690-146/views/sample/output/panes/left.html
411
- - test/scriptorium-TEST-1754622690-146/views/sample/output/panes/main.html
412
- - test/scriptorium-TEST-1754622690-146/views/sample/output/panes/right.html
413
467
  - test/staging/.DS_Store
468
+ - test/support/preview_utils.rb
414
469
  - test/syntax_highlighting_test.lt3
470
+ - test/test_gem_assets.rb
415
471
  - test/test_helpers.rb
416
472
  - test/tui_editor_integration_test.rb
417
473
  - test/tui_integration_test.rb
418
474
  - test/unit/api.rb
419
475
  - test/unit/asset_management.rb
476
+ - test/unit/backup_test.rb
420
477
  - test/unit/clipboard_test.rb
421
478
  - test/unit/contract_test.rb
422
479
  - test/unit/core.rb
480
+ - test/unit/deploy_config_test.rb
423
481
  - test/unit/deploy_test.rb
482
+ - test/unit/edit_post_test.rb
424
483
  - test/unit/gem_asset_management.rb
425
484
  - test/unit/livetext_basic.rb
426
485
  - test/unit/livetext_compatibility.rb
486
+ - test/unit/parse_cmd_test.rb
487
+ - test/unit/permalink_copy_test.rb
427
488
  - test/unit/post.rb
489
+ - test/unit/post_index_config_test.rb
490
+ - test/unit/post_state_helpers_test.rb
428
491
  - test/unit/read_commented_file_test.rb
429
492
  - test/unit/reddit_test.rb
430
493
  - test/unit/repo.rb
431
494
  - test/unit/social_test.rb
432
- - test/unit/symlink_test.rb
495
+ - test/unit/syntax_highlighting.rb
496
+ - test/unit/theme_management_test.rb
433
497
  - test/unit/view.rb
434
498
  - test/unit/widgets.rb
499
+ - test/web_integration_test.rb
500
+ - test/web_test_helper.rb
501
+ - test/web_workflow_test.rb
435
502
  - test/wizard_test.rb
436
503
  - ui/README.md
437
504
  - ui/common/lib/ui_common.rb
@@ -441,30 +508,37 @@ files:
441
508
  - ui/tui/bin/scriptorium
442
509
  - ui/tui/test/tui_test.rb
443
510
  - ui/web/app/app.rb
511
+ - ui/web/app/assets/livetext_mode.js
444
512
  - ui/web/app/error_helpers.rb
445
513
  - ui/web/app/views/advanced_config.erb
446
514
  - ui/web/app/views/asset_management.erb
515
+ - ui/web/app/views/backup_management.erb
447
516
  - ui/web/app/views/banner_config.erb
517
+ - ui/web/app/views/config_widget.erb
448
518
  - ui/web/app/views/configure_view.erb
449
519
  - ui/web/app/views/dashboard.erb
450
520
  - ui/web/app/views/deploy_config.erb
451
521
  - ui/web/app/views/edit_pages.erb
452
522
  - ui/web/app/views/edit_post.erb
523
+ - ui/web/app/views/edit_theme.erb
524
+ - ui/web/app/views/edit_theme_file.erb
453
525
  - ui/web/app/views/error_page.erb
454
526
  - ui/web/app/views/header_config.erb
455
527
  - ui/web/app/views/layout_config.erb
456
528
  - ui/web/app/views/navbar_config.erb
529
+ - ui/web/app/views/theme_management.erb
457
530
  - ui/web/app/views/view_dashboard.erb
531
+ - ui/web/app/views/widgets.erb
458
532
  - ui/web/bin/scriptorium-web
459
533
  - ui/web/test/web_basic_test.rb
460
534
  - ui/web/test_navbar.txt
535
+ - ui/web/tmp/timing.log
461
536
  - ui/web/tmp/web_server.log
462
- - ui/web/tmp/web_server.pid
463
537
  homepage: https://github.com/Hal9000/scriptorium
464
538
  licenses:
465
539
  - Ruby
466
540
  metadata: {}
467
- post_install_message: "\n Success! Run 'sblog' command and type h for help.\n "
541
+ post_install_message: "\n Success! Run command 'sblog help' to get started.\n "
468
542
  rdoc_options: []
469
543
  require_paths:
470
544
  - lib
data/assets/back-icon.png DELETED
Binary file
@@ -1 +0,0 @@
1
- <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path d="M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z"/></svg>
@@ -1 +0,0 @@
1
- <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
@@ -1 +0,0 @@
1
- <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Instagram</title><path d="M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077"/></svg>
@@ -1 +0,0 @@
1
- <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Reddit</title><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></svg>
data/assets/icons/x.svg DELETED
@@ -1 +0,0 @@
1
- <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>X</title><path d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"/></svg>
@@ -1 +0,0 @@
1
- <svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>YouTube</title><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>