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.
- checksums.yaml +4 -4
- data/assets/icons/social/reddit.png +0 -0
- data/assets/icons/social/x-logo.png +0 -0
- data/assets/imagenotfound.jpg +0 -0
- data/bin/sblog +84 -5
- data/bin/scriptorium +1 -0
- data/doc/anti-amnesia/20250727-054000-scriptorium-overview.md +0 -1
- data/doc/anti-amnesia/20250727-123000-anti-amnesia-conventions.md +0 -29
- data/doc/anti-amnesia/20250727-172600-cursor-rbenv-ruby-version-mystery.md +0 -19
- data/doc/anti-amnesia/20250727-172900-ai-cognitive-assessment-capabilities.md +1 -1
- data/doc/anti-amnesia/20250728-124243-aaa-syntax-clarification.md +1 -1
- data/doc/anti-amnesia/20250729-210000-reddit-autopost-integration-complete.md +1 -1
- data/doc/anti-amnesia/20250804-190500-cognitive-loop-bug.md +0 -10
- data/doc/anti-amnesia/20250804-190700-anti-amnesia-timestamping-fix.md +1 -4
- data/doc/anti-amnesia/20250901-211714-codemirror-integration-and-web-tests.md +172 -0
- data/doc/anti-amnesia/20250902-002402-backup-restore-system.md +126 -0
- data/doc/anti-amnesia/20250907-203339-backup-metadata-implementation.md +66 -0
- data/doc/imported/0001-elixir-conf-2014/metadata.txt +7 -0
- data/doc/imported/0001-elixir-conf-2014/post.html +37 -0
- data/doc/imported/0001-elixir-conf-2014/source.lt3 +22 -0
- data/doc/imported/0002-programmers-and-word-processing/metadata.txt +7 -0
- data/doc/imported/0002-programmers-and-word-processing/post.html +192 -0
- data/doc/imported/0002-programmers-and-word-processing/source.lt3 +146 -0
- data/doc/imported/0003-how-to-turn-your-brain-sideways/metadata.txt +7 -0
- data/doc/imported/0003-how-to-turn-your-brain-sideways/post.html +60 -0
- data/doc/imported/0003-how-to-turn-your-brain-sideways/source.lt3 +40 -0
- data/doc/imported/0004-upcoming-lone-star-ruby-conference/metadata.txt +7 -0
- data/doc/imported/0004-upcoming-lone-star-ruby-conference/post.html +42 -0
- data/doc/imported/0004-upcoming-lone-star-ruby-conference/source.lt3 +24 -0
- data/doc/imported/0005-elixir-conf-2015-announced/metadata.txt +7 -0
- data/doc/imported/0005-elixir-conf-2015-announced/post.html +30 -0
- data/doc/imported/0005-elixir-conf-2015-announced/source.lt3 +16 -0
- data/doc/imported/0006-ruby-for-dinosaurs/metadata.txt +7 -0
- data/doc/imported/0006-ruby-for-dinosaurs/post.html +43 -0
- data/doc/imported/0006-ruby-for-dinosaurs/source.lt3 +27 -0
- data/doc/imported/0007-phoenix-isnt-rails/metadata.txt +7 -0
- data/doc/imported/0007-phoenix-isnt-rails/post.html +116 -0
- data/doc/imported/0007-phoenix-isnt-rails/source.lt3 +87 -0
- data/doc/imported/0008-concerning-the-term-monkeypatching/metadata.txt +7 -0
- data/doc/imported/0008-concerning-the-term-monkeypatching/post.html +129 -0
- data/doc/imported/0008-concerning-the-term-monkeypatching/source.lt3 +92 -0
- data/doc/imported/0009-announcement-coming-soon/metadata.txt +7 -0
- data/doc/imported/0009-announcement-coming-soon/post.html +33 -0
- data/doc/imported/0009-announcement-coming-soon/source.lt3 +19 -0
- data/doc/imported/0010-immutable-data-ditching-the-wax-tablet/metadata.txt +7 -0
- data/doc/imported/0010-immutable-data-ditching-the-wax-tablet/post.html +175 -0
- data/doc/imported/0010-immutable-data-ditching-the-wax-tablet/source.lt3 +139 -0
- data/doc/imported/0011-computer-science-as-a-lost-art/metadata.txt +7 -0
- data/doc/imported/0011-computer-science-as-a-lost-art/post.html +139 -0
- data/doc/imported/0011-computer-science-as-a-lost-art/source.lt3 +104 -0
- data/doc/imported/0012-ruby-day-in-turin-italy/metadata.txt +7 -0
- data/doc/imported/0012-ruby-day-in-turin-italy/post.html +42 -0
- data/doc/imported/0012-ruby-day-in-turin-italy/source.lt3 +24 -0
- data/doc/imported/0013-rubyday-was-a-success/metadata.txt +7 -0
- data/doc/imported/0013-rubyday-was-a-success/post.html +44 -0
- data/doc/imported/0013-rubyday-was-a-success/source.lt3 +27 -0
- data/doc/imported/0014-working-on-the-blogging-software/metadata.txt +7 -0
- data/doc/imported/0014-working-on-the-blogging-software/post.html +63 -0
- data/doc/imported/0014-working-on-the-blogging-software/source.lt3 +41 -0
- data/doc/imported/0015-ok-its-not-really-a-lost-art/metadata.txt +7 -0
- data/doc/imported/0015-ok-its-not-really-a-lost-art/post.html +172 -0
- data/doc/imported/0015-ok-its-not-really-a-lost-art/source.lt3 +134 -0
- data/doc/imported/0016-an-in-operator-for-ruby/metadata.txt +7 -0
- data/doc/imported/0016-an-in-operator-for-ruby/post.html +155 -0
- data/doc/imported/0016-an-in-operator-for-ruby/source.lt3 +106 -0
- data/doc/imported/0017-the-forgotten-mathematician/metadata.txt +7 -0
- data/doc/imported/0017-the-forgotten-mathematician/post.html +161 -0
- data/doc/imported/0017-the-forgotten-mathematician/source.lt3 +119 -0
- data/doc/imported/0018-ruby-puns/metadata.txt +7 -0
- data/doc/imported/0018-ruby-puns/post.html +46 -0
- data/doc/imported/0018-ruby-puns/source.lt3 +28 -0
- data/doc/imported/0019-custom-exceptions-via-metaprogramming/metadata.txt +7 -0
- data/doc/imported/0019-custom-exceptions-via-metaprogramming/post.html +138 -0
- data/doc/imported/0019-custom-exceptions-via-metaprogramming/source.lt3 +101 -0
- data/doc/imported/0020-fffff/metadata.txt +7 -0
- data/doc/imported/0020-fffff/post.html +24 -0
- data/doc/imported/0020-fffff/source.lt3 +12 -0
- data/doc/imported/0021-trying-ror-yet-again/metadata.txt +7 -0
- data/doc/imported/0021-trying-ror-yet-again/post.html +26 -0
- data/doc/imported/0021-trying-ror-yet-again/source.lt3 +12 -0
- data/doc/imported/0023-doctor-sleep/metadata.txt +7 -0
- data/doc/imported/0023-doctor-sleep/post.html +63 -0
- data/doc/imported/0023-doctor-sleep/source.lt3 +44 -0
- data/doc/imported/0024-just-a-test/metadata.txt +7 -0
- data/doc/imported/0024-just-a-test/post.html +24 -0
- data/doc/imported/0024-just-a-test/source.lt3 +12 -0
- data/doc/imported/import_summary.txt +98 -0
- data/doc/livetext-informal-spec.txt +65 -0
- data/doc/myuserdoc/ch-0.lt3 +31 -0
- data/doc/myuserdoc/ch-1.lt3 +37 -0
- data/doc/myuserdoc/ch-10.lt3 +22 -0
- data/doc/myuserdoc/ch-2.lt3 +37 -0
- data/doc/myuserdoc/ch-3.lt3 +19 -0
- data/doc/myuserdoc/ch-4.lt3 +43 -0
- data/doc/myuserdoc/ch-5.lt3 +22 -0
- data/doc/myuserdoc/ch-6.lt3 +19 -0
- data/doc/myuserdoc/ch-7.lt3 +16 -0
- data/doc/myuserdoc/ch-8.lt3 +13 -0
- data/doc/myuserdoc/ch-9.lt3 +19 -0
- data/doc/myuserdoc/tweak.rb +18 -0
- data/doc/{userdoc-toc.txt → myuserdoc/userdoc-toc.txt} +27 -27
- data/doc/old-posts/0001-elixir-conf-2014.lt3 +24 -0
- data/doc/old-posts/0002-programmers-and-word-processing.lt3 +150 -0
- data/doc/old-posts/0003-how-to-turn-your-brain-sideways.lt3 +43 -0
- data/doc/old-posts/0004-upcoming-lone-star-ruby-conference.lt3 +26 -0
- data/doc/old-posts/0005-elixir-conf-2015-announced.lt3 +17 -0
- data/doc/old-posts/0006-ruby-for-dinosaurs.lt3 +30 -0
- data/doc/old-posts/0007-phoenix-isnt-rails.lt3 +90 -0
- data/doc/old-posts/0008-concerning-the-term-monkeypatching.lt3 +105 -0
- data/doc/old-posts/0009-announcement-coming-soon.lt3 +20 -0
- data/doc/old-posts/0010-immutable-data-ditching-the-wax-tablet.lt3 +142 -0
- data/doc/old-posts/0011-computer-science-as-a-lost-art.lt3 +117 -0
- data/doc/old-posts/0012-ruby-day-in-turin-italy.lt3 +26 -0
- data/doc/old-posts/0013-rubyday-was-a-success.lt3 +28 -0
- data/doc/old-posts/0014-working-on-the-blogging-software.lt3 +42 -0
- data/doc/old-posts/0015-ok-its-not-really-a-lost-art.lt3 +137 -0
- data/doc/old-posts/0016-an-in-operator-for-ruby.lt3 +142 -0
- data/doc/old-posts/0017-the-forgotten-mathematician.lt3 +129 -0
- data/doc/old-posts/0018-ruby-puns.lt3 +31 -0
- data/doc/old-posts/0019-custom-exceptions-via-metaprogramming.lt3 +116 -0
- data/doc/old-posts/0021-trying-ror-yet-again.lt3 +35 -0
- data/doc/old-posts/0023-doctor-sleep.lt3 +43 -0
- data/doc/old-posts/0024-just-a-test.lt3 +12 -0
- data/doc/old-posts/0025-trying-another-post.lt3 +12 -0
- data/doc/old-repo +1 -0
- data/doc/reddit_integration.md +2 -2
- data/doc/user.lt3 +0 -3
- data/lib/scriptorium/api.rb +1811 -78
- data/lib/scriptorium/banner_svg.rb +55 -68
- data/lib/scriptorium/contract.rb +3 -2
- data/lib/scriptorium/exceptions.rb +133 -102
- data/lib/scriptorium/helpers.rb +282 -82
- data/lib/scriptorium/post.rb +81 -17
- data/lib/scriptorium/reddit.rb +1 -1
- data/lib/scriptorium/repo.rb +478 -164
- data/lib/scriptorium/standard_files.rb +30 -396
- data/lib/scriptorium/support/common_js/clipboard.js +35 -0
- data/lib/scriptorium/support/common_js/content-loader.js +187 -0
- data/lib/scriptorium/support/common_js/navigation.js +52 -0
- data/lib/scriptorium/support/common_js/syntax-highlighting.js +27 -0
- data/lib/scriptorium/support/config/reddit_template.txt +17 -0
- data/{test/scriptorium-TEST-1754622690-146/views/sample → lib/scriptorium/support}/config/social.txt +1 -0
- data/lib/scriptorium/support/highlight/css.txt +2 -0
- data/lib/scriptorium/support/highlight/custom.css +119 -0
- data/lib/scriptorium/support/highlight/js.txt +1 -0
- data/lib/scriptorium/support/post_index/config.txt +15 -0
- data/lib/scriptorium/support/post_index/style.css +55 -0
- data/lib/scriptorium/support/templates/index_entry.lt3 +16 -0
- data/{test/scriptorium-TEST-1754622690-146/themes/standard/initial/post.lt3 → lib/scriptorium/support/templates/initial_post.lt3} +5 -5
- data/lib/scriptorium/support/templates/post.lt3 +104 -0
- data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/header.txt → lib/scriptorium/support/theme/header.lt3} +1 -1
- data/lib/scriptorium/theme.rb +83 -70
- data/lib/scriptorium/version.rb +2 -2
- data/lib/scriptorium/view.rb +194 -149
- data/lib/scriptorium.rb +24 -1
- data/lib/skeleton.rb +4 -1
- data/scriptorium.gemspec +2 -1
- data/test/WEB_INTEGRATION_README.md +196 -0
- data/test/all +40 -0
- data/test/banner_svg/unit.rb +267 -35
- data/test/config/deployment.txt +5 -0
- data/test/integration/integration_test.rb +7 -7
- data/test/integration/preview_flow_test.rb +94 -0
- data/test/livetext_plugin_test.rb +453 -182
- data/test/manual/banner-tests/test01.html +82 -18
- data/test/manual/banner-tests/test02.html +82 -18
- data/test/manual/banner-tests/test03.html +82 -18
- data/test/manual/banner-tests/test04.html +89 -25
- data/test/manual/banner-tests/test05.html +89 -25
- data/test/manual/banner-tests/test06.html +89 -25
- data/test/manual/banner-tests/test07.html +89 -25
- data/test/manual/banner-tests/test08.html +82 -18
- data/test/manual/banner-tests/test09.html +82 -18
- data/test/manual/banner-tests/test10.html +82 -18
- data/test/manual/banner-tests/test11.html +82 -18
- data/test/manual/banner-tests/test12.html +82 -18
- data/test/manual/banner-tests/test13.html +82 -18
- data/test/manual/banner-tests/test14.html +82 -18
- data/test/manual/banner-tests/test15.html +82 -18
- data/test/manual/banner-tests/test16.html +82 -18
- data/test/manual/banner-tests/test17.html +82 -18
- data/test/manual/banner-tests/test18.html +90 -26
- data/test/manual/banner-tests/test19.html +90 -26
- data/test/manual/banner-tests/test20.html +90 -26
- data/test/manual/banner-tests/test21.html +90 -26
- data/test/manual/banner-tests/test22.html +90 -26
- data/test/manual/banner-tests/test23.html +90 -26
- data/test/manual/banner-tests/test24.html +90 -26
- data/test/manual/banner-tests/test25.html +89 -25
- data/test/manual/banner_environment.rb +15 -2
- data/test/manual/codemirror_demo.html +773 -0
- data/test/manual/create_posts_for_web.rb +114 -0
- data/test/manual/preview_manual_test.rb +129 -0
- data/test/manual/test_banner_features.rb +14 -14
- data/test/manual/test_banner_integration.rb +115 -0
- data/test/manual/test_banner_radial.rb +87 -0
- data/test/manual/test_syntax_highlighting.rb +60 -40
- data/test/support/preview_utils.rb +88 -0
- data/test/test_gem_assets.rb +48 -0
- data/test/test_helpers.rb +10 -0
- data/test/tui_editor_integration_test.rb +15 -15
- data/test/tui_integration_test.rb +687 -441
- data/test/unit/api.rb +757 -37
- data/test/unit/asset_management.rb +195 -221
- data/test/unit/backup_test.rb +451 -0
- data/test/unit/contract_test.rb +1 -23
- data/test/unit/core.rb +415 -61
- data/test/unit/deploy_config_test.rb +248 -0
- data/test/unit/deploy_test.rb +312 -21
- data/test/unit/edit_post_test.rb +168 -0
- data/test/unit/gem_asset_management.rb +36 -42
- data/test/unit/livetext_basic.rb +23 -35
- data/test/unit/livetext_compatibility.rb +7 -14
- data/test/unit/parse_cmd_test.rb +260 -0
- data/test/unit/{symlink_test.rb → permalink_copy_test.rb} +47 -49
- data/test/unit/post.rb +91 -26
- data/test/unit/post_index_config_test.rb +258 -0
- data/test/unit/post_state_helpers_test.rb +137 -0
- data/test/unit/read_commented_file_test.rb +8 -6
- data/test/unit/repo.rb +75 -54
- data/test/unit/social_test.rb +41 -44
- data/test/unit/syntax_highlighting.rb +70 -0
- data/test/unit/theme_management_test.rb +91 -0
- data/test/unit/view.rb +79 -12
- data/test/unit/widgets.rb +8 -8
- data/test/web_integration_test.rb +231 -0
- data/test/web_test_helper.rb +218 -0
- data/test/web_workflow_test.rb +527 -0
- data/ui/tui/bin/scriptorium +885 -415
- data/ui/web/app/app.rb +1398 -176
- data/ui/web/app/assets/livetext_mode.js +244 -0
- data/ui/web/app/error_helpers.rb +16 -16
- data/ui/web/app/views/advanced_config.erb +8 -2
- data/ui/web/app/views/asset_management.erb +56 -0
- data/ui/web/app/views/backup_management.erb +238 -0
- data/ui/web/app/views/config_widget.erb +232 -0
- data/ui/web/app/views/dashboard.erb +64 -72
- data/ui/web/app/views/deploy_config.erb +3 -0
- data/ui/web/app/views/edit_pages.erb +170 -2
- data/ui/web/app/views/edit_post.erb +130 -9
- data/ui/web/app/views/edit_theme.erb +73 -0
- data/ui/web/app/views/edit_theme_file.erb +74 -0
- data/ui/web/app/views/theme_management.erb +130 -0
- data/ui/web/app/views/view_dashboard.erb +666 -25
- data/ui/web/app/views/widgets.erb +249 -0
- data/ui/web/bin/scriptorium-web +35 -24
- data/ui/web/tmp/timing.log +17 -0
- data/ui/web/tmp/web_server.log +0 -5
- metadata +190 -116
- data/assets/back-icon.png +0 -0
- data/assets/icons/facebook.svg +0 -1
- data/assets/icons/github.svg +0 -1
- data/assets/icons/instagram.svg +0 -1
- data/assets/icons/reddit.svg +0 -1
- data/assets/icons/x.svg +0 -1
- data/assets/icons/youtube.svg +0 -1
- data/bin/scriptorium +0 -1511
- data/doc/anti-amnesia/20250727-060000-api-design-tui-planning.md +0 -34
- data/doc/anti-amnesia/20250727-061000-runeblog-tui-analysis.md +0 -50
- data/doc/anti-amnesia/20250727-154000-livetext-plugin-file-stats.md +0 -73
- data/doc/anti-amnesia/20250727-172600-unified-minitest-framework.md +0 -70
- data/doc/anti-amnesia/20250727-173000-widget-testing-achievement.md +0 -110
- data/doc/anti-amnesia/20250727-180000-post-id-num-refactoring.md +0 -73
- data/doc/anti-amnesia/20250728-124421-conversation-summary-concise.md +0 -124
- data/doc/anti-amnesia/20250729-190000-scriptorium-tui-testing-complete.md +0 -46
- data/doc/anti-amnesia/20250729-200000-scriptorium-tui-testing-edit-file-workflow.md +0 -97
- data/doc/anti-amnesia/20250729-211500-dependency-management-system.md +0 -211
- data/doc/anti-amnesia/20250729-213000-python-virtual-environment-setup.md +0 -141
- data/doc/anti-amnesia/20250729-214500-theme-management-commands.md +0 -211
- data/doc/anti-amnesia/20250729-215000-version-update-to-0.6.0.md +0 -134
- data/doc/anti-amnesia/20250729-220000-user-guide-complete.md +0 -41
- data/doc/anti-amnesia/20250804-213700-publishing-test-fix.md +0 -49
- data/doc/anti-amnesia/20250804-214400-additional-test-fixes.md +0 -46
- data/doc/anti-amnesia/20250804-220000-asset-function-logic-clarification.md +0 -41
- data/doc/anti-amnesia/20250806-202032-asset-function-logic-clarification.md +0 -41
- data/doc/anti-amnesia/20250813-082428-syntax-highlighting-and-navigation-improvements.md +0 -256
- data/lib/scriptorium/syntax_highlighter.rb +0 -234
- data/test/manual/deploy_symlink_demo.rb +0 -142
- data/test/manual/symlink_demo.rb +0 -117
- data/test/manual/test2.rb +0 -12
- data/test/manual/test_banner_from_file.rb +0 -150
- data/test/manual/test_banner_in_header.rb +0 -35
- data/test/manual/test_code_highlighting.rb +0 -68
- data/test/manual/test_complex_header.rb +0 -74
- data/test/manual/test_empty_header.rb +0 -32
- data/test/manual/test_radial_custom.rb +0 -58
- data/test/manual/test_radial_large_radius.rb +0 -52
- data/test/manual/test_svg_debug.rb +0 -47
- data/test/pages-demo/config/currentview.txt +0 -1
- data/test/pages-demo/views/demo/config/common.js +0 -57
- data/test/pages-demo/views/demo/config/footer.txt +0 -1
- data/test/pages-demo/views/demo/config/global-head.txt +0 -8
- data/test/pages-demo/views/demo/config/header.txt +0 -1
- data/test/pages-demo/views/demo/config/layout.txt +0 -1
- data/test/pages-demo/views/demo/config/left.txt +0 -1
- data/test/pages-demo/views/demo/config/main.txt +0 -1
- data/test/pages-demo/views/demo/config/right.txt +0 -1
- data/test/pages-demo/views/demo/config.txt +0 -3
- data/test/pages-demo/views/demo/output/panes/footer.html +0 -1
- data/test/pages-demo/views/demo/output/panes/header.html +0 -1
- data/test/pages-demo/views/demo/output/panes/left.html +0 -1
- data/test/pages-demo/views/demo/output/panes/main.html +0 -1
- data/test/pages-demo/views/demo/output/panes/right.html +0 -1
- data/test/scriptorium-TEST-1754622690-146/config/bootstrap_css.txt +0 -5
- data/test/scriptorium-TEST-1754622690-146/config/bootstrap_js.txt +0 -4
- data/test/scriptorium-TEST-1754622690-146/config/common.js +0 -57
- data/test/scriptorium-TEST-1754622690-146/config/currentview.txt +0 -1
- data/test/scriptorium-TEST-1754622690-146/config/global-head.txt +0 -9
- data/test/scriptorium-TEST-1754622690-146/config/last_post_num.txt +0 -1
- data/test/scriptorium-TEST-1754622690-146/config/os_helpers.rb +0 -4
- data/test/scriptorium-TEST-1754622690-146/config/widgets.txt +0 -3
- data/test/scriptorium-TEST-1754622690-146/posts/0001/meta.txt +0 -8
- data/test/scriptorium-TEST-1754622690-146/posts/0001/source.lt3 +0 -6
- data/test/scriptorium-TEST-1754622690-146/themes/standard/README.txt +0 -1
- data/test/scriptorium-TEST-1754622690-146/themes/standard/config.txt +0 -1
- data/test/scriptorium-TEST-1754622690-146/themes/standard/layout/gen/text.css +0 -1
- data/test/scriptorium-TEST-1754622690-146/themes/standard/templates/index.lt3 +0 -1
- data/test/scriptorium-TEST-1754622690-146/themes/standard/templates/index_entry.lt3 +0 -14
- data/test/scriptorium-TEST-1754622690-146/themes/standard/templates/post.lt3 +0 -13
- data/test/scriptorium-TEST-1754622690-146/themes/standard/templates/widget.lt3 +0 -1
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/bootstrap_css.txt +0 -5
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/bootstrap_js.txt +0 -4
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/common.js +0 -57
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/deploy.txt +0 -5
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/footer.txt +0 -2
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/global-head.txt +0 -9
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/header.txt +0 -4
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/layout.txt +0 -5
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/left.txt +0 -3
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/main.txt +0 -5
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/right.txt +0 -3
- data/test/scriptorium-TEST-1754622690-146/views/sample/config/status.txt +0 -7
- data/test/scriptorium-TEST-1754622690-146/views/sample/config.txt +0 -3
- data/test/scriptorium-TEST-1754622690-146/views/sample/layout/footer.html +0 -3
- data/test/scriptorium-TEST-1754622690-146/views/sample/layout/header.html +0 -3
- data/test/scriptorium-TEST-1754622690-146/views/sample/layout/left.html +0 -3
- data/test/scriptorium-TEST-1754622690-146/views/sample/layout/main.html +0 -3
- data/test/scriptorium-TEST-1754622690-146/views/sample/layout/right.html +0 -3
- data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/footer.html +0 -1
- data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/header.html +0 -1
- data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/left.html +0 -1
- data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/main.html +0 -1
- data/test/scriptorium-TEST-1754622690-146/views/sample/output/panes/right.html +0 -1
- data/ui/web/tmp/web_server.pid +0 -1
- /data/{test/pages-demo/views/demo/config/bootstrap_css.txt → lib/scriptorium/support/bootstrap/css.txt} +0 -0
- /data/{test/pages-demo/views/demo/config/bootstrap_js.txt → lib/scriptorium/support/bootstrap/js.txt} +0 -0
- /data/{test/scriptorium-TEST-1754622690-146/views/sample → lib/scriptorium/support}/config/reddit.txt +0 -0
- /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout → lib/scriptorium/support/templates}/layout.txt +0 -0
- /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/footer.txt → lib/scriptorium/support/theme/footer.lt3} +0 -0
- /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/left.txt → lib/scriptorium/support/theme/left.lt3} +0 -0
- /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/main.txt → lib/scriptorium/support/theme/main.lt3} +0 -0
- /data/{test/scriptorium-TEST-1754622690-146/themes/standard/layout/config/right.txt → lib/scriptorium/support/theme/right.lt3} +0 -0
- /data/test/manual/banner-tests/{config.txt → svg.txt} +0 -0
- /data/test/manual/{test6.rb → test_advanced_widgets.rb} +0 -0
- /data/test/manual/{test1.rb → test_basic_posts.rb} +0 -0
- /data/test/manual/{test4.rb → test_layout_widgets.rb} +0 -0
- /data/test/manual/{test5.rb → test_pagination.rb} +0 -0
- /data/test/manual/{test3.rb → test_random_posts.rb} +0 -0
@@ -1,68 +0,0 @@
|
|
1
|
-
require_relative "./environment"
|
2
|
-
|
3
|
-
manual_setup
|
4
|
-
|
5
|
-
@repo.create_view("testview", "Test View", "A test view for manual inspection")
|
6
|
-
|
7
|
-
# Post with code highlighting
|
8
|
-
draft_body = <<~BODY
|
9
|
-
.blurb Testing code highlighting with Prism.
|
10
|
-
This post tests the .code function and Prism syntax highlighting.
|
11
|
-
|
12
|
-
Here's some Ruby code:
|
13
|
-
|
14
|
-
.code ruby
|
15
|
-
def hello_world
|
16
|
-
puts "Hello, World!"
|
17
|
-
@greeting = "Welcome to Scriptorium"
|
18
|
-
return @greeting
|
19
|
-
end
|
20
|
-
.end
|
21
|
-
|
22
|
-
And some JavaScript:
|
23
|
-
|
24
|
-
.code javascript
|
25
|
-
function greet(name) {
|
26
|
-
console.log("Hello, " + name);
|
27
|
-
return "Greeting sent";
|
28
|
-
}
|
29
|
-
.end
|
30
|
-
|
31
|
-
And plain text:
|
32
|
-
|
33
|
-
.code text
|
34
|
-
This is just plain text
|
35
|
-
No syntax highlighting needed
|
36
|
-
But it should still be in a code block
|
37
|
-
.end
|
38
|
-
|
39
|
-
And some more Ruby:
|
40
|
-
|
41
|
-
.code ruby
|
42
|
-
class Example
|
43
|
-
def initialize
|
44
|
-
@data = []
|
45
|
-
end
|
46
|
-
|
47
|
-
def add_item(item)
|
48
|
-
@data << item
|
49
|
-
end
|
50
|
-
end
|
51
|
-
.end
|
52
|
-
BODY
|
53
|
-
|
54
|
-
name = @repo.create_draft(title: "Code Highlighting Test", views: ["testview"], body: draft_body)
|
55
|
-
num = @repo.finish_draft(name)
|
56
|
-
@repo.generate_post(num)
|
57
|
-
|
58
|
-
@repo.generate_front_page("testview")
|
59
|
-
|
60
|
-
instruct <<~EOS
|
61
|
-
Front page should have one post with code highlighting.
|
62
|
-
Ruby code should be highlighted with Ruby syntax.
|
63
|
-
JavaScript code should be highlighted with JS syntax.
|
64
|
-
Plain text should be in code blocks but not highlighted.
|
65
|
-
Check that Prism CSS and JS are included in the generated HTML.
|
66
|
-
EOS
|
67
|
-
|
68
|
-
examine("testview")
|
@@ -1,74 +0,0 @@
|
|
1
|
-
require_relative './environment'
|
2
|
-
|
3
|
-
manual_setup
|
4
|
-
|
5
|
-
# Create a view with a complex header
|
6
|
-
view = @repo.create_view("complex-header", "My Awesome Blog", "Exploring the Power of SVG Banners")
|
7
|
-
|
8
|
-
# Set up layout with header
|
9
|
-
File.open(view.dir/:config/"layout.txt", "w") do |f|
|
10
|
-
f.puts "header"
|
11
|
-
f.puts "main"
|
12
|
-
end
|
13
|
-
|
14
|
-
# Generate the empty containers
|
15
|
-
view.generate_empty_containers
|
16
|
-
|
17
|
-
# Create a complex SVG banner configuration
|
18
|
-
File.open(view.dir/:config/"header.txt", "w") do |f|
|
19
|
-
f.puts "banner_svg"
|
20
|
-
f.puts "title"
|
21
|
-
f.puts "subtitle"
|
22
|
-
end
|
23
|
-
|
24
|
-
# Create a complex SVG banner config file
|
25
|
-
File.open(view.dir/:config/"config.txt", "w") do |f|
|
26
|
-
f.puts "# Complex SVG Banner Configuration"
|
27
|
-
f.puts "# This exercises multiple features at once"
|
28
|
-
f.puts ""
|
29
|
-
f.puts "# Background: Radial gradient from purple to blue"
|
30
|
-
f.puts "back.radial #8B5CF6 #3B82F6"
|
31
|
-
f.puts ""
|
32
|
-
f.puts "# Custom aspect ratio (wider banner)"
|
33
|
-
f.puts "aspect 6.0"
|
34
|
-
f.puts ""
|
35
|
-
f.puts "# Custom font"
|
36
|
-
f.puts "text.font Georgia serif"
|
37
|
-
f.puts ""
|
38
|
-
f.puts "# Title styling: Bold, larger scale, custom color"
|
39
|
-
f.puts "title.scale 1.2"
|
40
|
-
f.puts "title.style bold"
|
41
|
-
f.puts "title.color #FFFFFF"
|
42
|
-
f.puts "title.align center"
|
43
|
-
f.puts ""
|
44
|
-
f.puts "# Subtitle styling: Italic, smaller scale, different color"
|
45
|
-
f.puts "subtitle.scale 0.6"
|
46
|
-
f.puts "subtitle.style italic"
|
47
|
-
f.puts "subtitle.color #E5E7EB"
|
48
|
-
f.puts "subtitle.align center"
|
49
|
-
f.puts ""
|
50
|
-
f.puts "# Custom positioning for both title and subtitle"
|
51
|
-
f.puts "title.xy 50% 45%"
|
52
|
-
f.puts "subtitle.xy 50% 75%"
|
53
|
-
end
|
54
|
-
|
55
|
-
# Generate the front page
|
56
|
-
view.generate_front_page
|
57
|
-
|
58
|
-
instruct <<~EOS
|
59
|
-
Complex Header Test - Multiple SVG Banner Features
|
60
|
-
|
61
|
-
This header demonstrates:
|
62
|
-
- Radial gradient background (purple to blue)
|
63
|
-
- Custom aspect ratio (6:1 - wider banner)
|
64
|
-
- Georgia serif font
|
65
|
-
- Title: Bold, larger scale (1.2x), white color, centered
|
66
|
-
- Subtitle: Italic, smaller scale (0.6x), light gray color, centered
|
67
|
-
- Custom positioning for both title and subtitle
|
68
|
-
- Responsive SVG that scales with window width
|
69
|
-
|
70
|
-
The banner should look sophisticated with the gradient background
|
71
|
-
and well-positioned, styled text elements.
|
72
|
-
EOS
|
73
|
-
|
74
|
-
examine view
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require_relative './environment'
|
2
|
-
|
3
|
-
manual_setup
|
4
|
-
|
5
|
-
# Create a view with an empty header
|
6
|
-
view = @repo.create_view("empty-header-test", "Empty Header Test", "Testing placeholder text")
|
7
|
-
|
8
|
-
# Set up layout with header
|
9
|
-
File.open(view.dir/:config/"layout.txt", "w") do |f|
|
10
|
-
f.puts "header"
|
11
|
-
f.puts "main"
|
12
|
-
end
|
13
|
-
|
14
|
-
# Generate the empty containers
|
15
|
-
view.generate_empty_containers
|
16
|
-
|
17
|
-
# Leave header.txt empty (no content)
|
18
|
-
File.open(view.dir/:config/"header.txt", "w") do |f|
|
19
|
-
# Empty file - should trigger placeholder
|
20
|
-
end
|
21
|
-
|
22
|
-
# Generate the front page
|
23
|
-
view.generate_front_page
|
24
|
-
|
25
|
-
instruct <<~EOS
|
26
|
-
This test verifies that placeholder text appears when header has no content.
|
27
|
-
|
28
|
-
The header.txt is empty, so it should show "This is header..." as placeholder text.
|
29
|
-
This confirms that our fix only removes placeholders when there's real content.
|
30
|
-
EOS
|
31
|
-
|
32
|
-
examine view
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require_relative './environment'
|
2
|
-
|
3
|
-
manual_setup
|
4
|
-
|
5
|
-
# Create a view with custom radial gradient
|
6
|
-
view = @repo.create_view("radial-custom", "Custom Radial Test", "Testing custom radial gradient parameters")
|
7
|
-
|
8
|
-
# Set up layout with header
|
9
|
-
File.open(view.dir/:config/"layout.txt", "w") do |f|
|
10
|
-
f.puts "header"
|
11
|
-
end
|
12
|
-
|
13
|
-
# Generate the empty containers
|
14
|
-
view.generate_empty_containers
|
15
|
-
|
16
|
-
# Configure the header to only have the SVG banner
|
17
|
-
File.open(view.dir/:config/"header.txt", "w") do |f|
|
18
|
-
f.puts "banner_svg"
|
19
|
-
end
|
20
|
-
|
21
|
-
# Create a custom radial gradient config
|
22
|
-
File.open(view.dir/:config/"config.txt", "w") do |f|
|
23
|
-
f.puts "# Custom Radial Gradient Test"
|
24
|
-
f.puts "# Default: circular vignette (ar omitted, will use 1/aspect)"
|
25
|
-
f.puts "aspect 5.0"
|
26
|
-
f.puts "back.radial #FF6B6B #4ECDC4 75% 25% 60%"
|
27
|
-
f.puts ""
|
28
|
-
f.puts "# Custom: elliptical vignette (ar = 0.5, i.e. squished horizontally)"
|
29
|
-
f.puts "# Uncomment to test:"
|
30
|
-
f.puts "# back.radial #FF6B6B #4ECDC4 75% 25% 60% 0.5"
|
31
|
-
f.puts ""
|
32
|
-
f.puts "# Title styling"
|
33
|
-
f.puts "title.color #FFFFFF"
|
34
|
-
f.puts "title.style bold"
|
35
|
-
f.puts "title.align center"
|
36
|
-
f.puts ""
|
37
|
-
f.puts "# Subtitle styling"
|
38
|
-
f.puts "subtitle.color #FFFFFF"
|
39
|
-
f.puts "subtitle.style italic"
|
40
|
-
f.puts "subtitle.align center"
|
41
|
-
end
|
42
|
-
|
43
|
-
# Generate the front page
|
44
|
-
view.generate_front_page
|
45
|
-
|
46
|
-
instruct <<~EOS
|
47
|
-
Custom Radial Gradient Test
|
48
|
-
|
49
|
-
This test demonstrates the new aspect-ratio compensation for radial gradients:
|
50
|
-
- aspect 5.0 (wide banner)
|
51
|
-
- back.radial #FF6B6B #4ECDC4 75% 25% 60% # default: circular vignette
|
52
|
-
- Uncomment the line with ar=0.5 for an elliptical vignette
|
53
|
-
|
54
|
-
By default, the vignette should be circular even in a wide banner.
|
55
|
-
If you set ar < 1/aspect, the vignette will be squished horizontally.
|
56
|
-
EOS
|
57
|
-
|
58
|
-
examine view
|
@@ -1,52 +0,0 @@
|
|
1
|
-
require_relative './environment'
|
2
|
-
|
3
|
-
manual_setup
|
4
|
-
|
5
|
-
# Create a view with a large-radius radial gradient
|
6
|
-
view = @repo.create_view("radial-large-radius", "Large Radius Radial Test", "Testing r > 100% for soft vignette")
|
7
|
-
|
8
|
-
# Set up layout with header
|
9
|
-
File.open(view.dir/:config/"layout.txt", "w") do |f|
|
10
|
-
f.puts "header"
|
11
|
-
end
|
12
|
-
|
13
|
-
# Generate the empty containers
|
14
|
-
view.generate_empty_containers
|
15
|
-
|
16
|
-
# Configure the header to only have the SVG banner
|
17
|
-
File.open(view.dir/:config/"header.txt", "w") do |f|
|
18
|
-
f.puts "banner_svg"
|
19
|
-
end
|
20
|
-
|
21
|
-
# Create a config with a large radius
|
22
|
-
File.open(view.dir/:config/"config.txt", "w") do |f|
|
23
|
-
f.puts "# Large Radius Radial Gradient Test"
|
24
|
-
f.puts "aspect 5.0"
|
25
|
-
f.puts "# r = 150% (soft vignette, gradient extends beyond banner)"
|
26
|
-
f.puts "back.radial #FF6B6B #4ECDC4 50% 50% 150%"
|
27
|
-
f.puts ""
|
28
|
-
f.puts "# Title styling"
|
29
|
-
f.puts "title.color #FFFFFF"
|
30
|
-
f.puts "title.style bold"
|
31
|
-
f.puts "title.align center"
|
32
|
-
f.puts ""
|
33
|
-
f.puts "# Subtitle styling"
|
34
|
-
f.puts "subtitle.color #FFFFFF"
|
35
|
-
f.puts "subtitle.style italic"
|
36
|
-
f.puts "subtitle.align center"
|
37
|
-
end
|
38
|
-
|
39
|
-
# Generate the front page
|
40
|
-
view.generate_front_page
|
41
|
-
|
42
|
-
instruct <<~EOS
|
43
|
-
Large Radius Radial Gradient Test
|
44
|
-
|
45
|
-
This test demonstrates a radial gradient with r > 100% (here, 150%).
|
46
|
-
- aspect 5.0 (wide banner)
|
47
|
-
- back.radial #FF6B6B #4ECDC4 50% 50% 150%
|
48
|
-
|
49
|
-
The gradient should be very soft, with the color fading in from outside the banner.
|
50
|
-
EOS
|
51
|
-
|
52
|
-
examine view
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require_relative './environment'
|
2
|
-
|
3
|
-
manual_setup
|
4
|
-
|
5
|
-
# Create a simple view for debugging
|
6
|
-
view = @repo.create_view("svg-debug", "SVG Debug Test", "Testing SVG insertion")
|
7
|
-
|
8
|
-
# Set up layout with header only
|
9
|
-
File.open(view.dir/:config/"layout.txt", "w") do |f|
|
10
|
-
f.puts "header"
|
11
|
-
end
|
12
|
-
|
13
|
-
# Generate the empty containers
|
14
|
-
view.generate_empty_containers
|
15
|
-
|
16
|
-
# Configure the header to only have the SVG banner
|
17
|
-
File.open(view.dir/:config/"header.txt", "w") do |f|
|
18
|
-
f.puts "banner_svg"
|
19
|
-
end
|
20
|
-
|
21
|
-
# Create a simple SVG config
|
22
|
-
File.open(view.dir/:config/"config.txt", "w") do |f|
|
23
|
-
f.puts "# Simple debug config"
|
24
|
-
f.puts "back.radial #FF0000 #0000FF"
|
25
|
-
f.puts "title.color #FFFFFF"
|
26
|
-
f.puts "subtitle.color #FFFF00"
|
27
|
-
f.puts "title.style bold"
|
28
|
-
f.puts "subtitle.style italic"
|
29
|
-
end
|
30
|
-
|
31
|
-
# Generate the front page
|
32
|
-
view.generate_front_page
|
33
|
-
|
34
|
-
instruct <<~EOS
|
35
|
-
SVG Debug Test
|
36
|
-
|
37
|
-
This test has:
|
38
|
-
- Only the SVG banner (no title/subtitle HTML elements)
|
39
|
-
- Red to blue radial gradient
|
40
|
-
- White bold title
|
41
|
-
- Yellow italic subtitle
|
42
|
-
- No header background color
|
43
|
-
|
44
|
-
Check if the SVG displays correctly now.
|
45
|
-
EOS
|
46
|
-
|
47
|
-
examine view
|
@@ -1 +0,0 @@
|
|
1
|
-
demo
|
@@ -1,57 +0,0 @@
|
|
1
|
-
// Handle the back button (or JavaScript history.go(-1))
|
2
|
-
window.onpopstate = function(event) {
|
3
|
-
console.log('onpopstate event:', event); // Log the event object
|
4
|
-
if (event.state && event.state.slug) {
|
5
|
-
console.log('Navigating to slug:', event.state.slug); // Log the slug
|
6
|
-
load_main(event.state.slug); // Load the post for the previous history state
|
7
|
-
}
|
8
|
-
};
|
9
|
-
|
10
|
-
// Initialize with the front page when navigating via the back button or similar
|
11
|
-
window.onload = function() {
|
12
|
-
// Check if the initial state exists, if not, set it
|
13
|
-
if (!history.state) {
|
14
|
-
// Don't try to load post_index.html if there are no posts
|
15
|
-
// The "No posts yet!" message is already in the main container
|
16
|
-
history.replaceState({ slug: "index.html" }, "", "index.html");
|
17
|
-
}
|
18
|
-
};
|
19
|
-
|
20
|
-
// Load the main content and other page containers (header, footer, left, right)
|
21
|
-
function load_main(slug) {
|
22
|
-
// Get all container elements (header, footer, left, right, and main)
|
23
|
-
const contentDiv = document.getElementById("main");
|
24
|
-
const headerDiv = document.querySelector("header");
|
25
|
-
const footerDiv = document.querySelector("footer");
|
26
|
-
const leftDiv = document.querySelector(".left");
|
27
|
-
const rightDiv = document.querySelector(".right");
|
28
|
-
console.log('Loading main with slug:', slug); // Log the slug
|
29
|
-
|
30
|
-
fetch(slug)
|
31
|
-
.then(response => {
|
32
|
-
if (response.ok) {
|
33
|
-
console.log('Response is ok');
|
34
|
-
return response.text();
|
35
|
-
} else {
|
36
|
-
console.error('Failed to load:', response.status); // Log the failed response
|
37
|
-
}
|
38
|
-
})
|
39
|
-
.then(content => {
|
40
|
-
console.log('Loaded content into div'); // Log successful content insertion
|
41
|
-
|
42
|
-
// Now, reload the content into the respective containers:
|
43
|
-
// Main section
|
44
|
-
contentDiv.innerHTML = content;
|
45
|
-
|
46
|
-
// Re-insert header, footer, left, and right (if necessary)
|
47
|
-
// If you want the static layout to be kept, you can preserve these parts
|
48
|
-
// with additional logic or predefined structure (here it's assumed
|
49
|
-
// that header/footer/left/right are already statically included).
|
50
|
-
|
51
|
-
// You can also replace the other parts (left, right, header, footer) if needed.
|
52
|
-
history.pushState({slug: slug}, "", slug); // Update browser history
|
53
|
-
})
|
54
|
-
.catch(error => {
|
55
|
-
console.log("Error loading content:", error); // Log any errors during fetch
|
56
|
-
});
|
57
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1,8 +0,0 @@
|
|
1
|
-
# This view-specific file supplies the default values for this view.
|
2
|
-
# title is omitted - filled in at generation
|
3
|
-
charset UTF-8
|
4
|
-
desc A blog powered by Scriptorium. This is default text intended to be changed by the user.
|
5
|
-
viewport width=device-width initial-scale=1.0
|
6
|
-
robots index follow
|
7
|
-
javascript # See common.js
|
8
|
-
bootstrap # See bootstrap.txt
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-07-28 14:13:03 -0500
|
@@ -1,57 +0,0 @@
|
|
1
|
-
// Handle the back button (or JavaScript history.go(-1))
|
2
|
-
window.onpopstate = function(event) {
|
3
|
-
console.log('onpopstate event:', event); // Log the event object
|
4
|
-
if (event.state && event.state.slug) {
|
5
|
-
console.log('Navigating to slug:', event.state.slug); // Log the slug
|
6
|
-
load_main(event.state.slug); // Load the post for the previous history state
|
7
|
-
}
|
8
|
-
};
|
9
|
-
|
10
|
-
// Initialize with the front page when navigating via the back button or similar
|
11
|
-
window.onload = function() {
|
12
|
-
// Check if the initial state exists, if not, set it
|
13
|
-
if (!history.state) {
|
14
|
-
// Don't try to load post_index.html if there are no posts
|
15
|
-
// The "No posts yet!" message is already in the main container
|
16
|
-
history.replaceState({ slug: "index.html" }, "", "index.html");
|
17
|
-
}
|
18
|
-
};
|
19
|
-
|
20
|
-
// Load the main content and other page containers (header, footer, left, right)
|
21
|
-
function load_main(slug) {
|
22
|
-
// Get all container elements (header, footer, left, right, and main)
|
23
|
-
const contentDiv = document.getElementById("main");
|
24
|
-
const headerDiv = document.querySelector("header");
|
25
|
-
const footerDiv = document.querySelector("footer");
|
26
|
-
const leftDiv = document.querySelector(".left");
|
27
|
-
const rightDiv = document.querySelector(".right");
|
28
|
-
console.log('Loading main with slug:', slug); // Log the slug
|
29
|
-
|
30
|
-
fetch(slug)
|
31
|
-
.then(response => {
|
32
|
-
if (response.ok) {
|
33
|
-
console.log('Response is ok');
|
34
|
-
return response.text();
|
35
|
-
} else {
|
36
|
-
console.error('Failed to load:', response.status); // Log the failed response
|
37
|
-
}
|
38
|
-
})
|
39
|
-
.then(content => {
|
40
|
-
console.log('Loaded content into div'); // Log successful content insertion
|
41
|
-
|
42
|
-
// Now, reload the content into the respective containers:
|
43
|
-
// Main section
|
44
|
-
contentDiv.innerHTML = content;
|
45
|
-
|
46
|
-
// Re-insert header, footer, left, and right (if necessary)
|
47
|
-
// If you want the static layout to be kept, you can preserve these parts
|
48
|
-
// with additional logic or predefined structure (here it's assumed
|
49
|
-
// that header/footer/left/right are already statically included).
|
50
|
-
|
51
|
-
// You can also replace the other parts (left, right, header, footer) if needed.
|
52
|
-
history.pushState({slug: slug}, "", slug); // Update browser history
|
53
|
-
})
|
54
|
-
.catch(error => {
|
55
|
-
console.log("Error loading content:", error); // Log any errors during fetch
|
56
|
-
});
|
57
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
sample
|
@@ -1,9 +0,0 @@
|
|
1
|
-
# This global file supplies the default values for all views.
|
2
|
-
# title is omitted - filled in at generation
|
3
|
-
charset UTF-8
|
4
|
-
desc A blog powered by Scriptorium. This is default text intended to be changed by the user.
|
5
|
-
viewport width=device-width initial-scale=1.0
|
6
|
-
robots index follow
|
7
|
-
javascript # See common.js
|
8
|
-
bootstrap # See bootstrap.txt
|
9
|
-
social # See social.txt for configuration
|
@@ -1 +0,0 @@
|
|
1
|
-
1
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-08-07 22:11:30 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-08-07 22:11:30 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-08-07 22:11:30 -0500
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-08-07 22:11:30 -0500
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<div class="index-entry" style="display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px;">
|
2
|
-
<!-- Left Side: Date (right aligned) -->
|
3
|
-
<div style="text-align: right; font-size: 0.7em; flex-basis: 10%%; padding-top: 3px;">
|
4
|
-
<div>%{post.pubdate.month} %{post.pubdate.day}</div>
|
5
|
-
<div>%{post.pubdate.year}</div>
|
6
|
-
</div>
|
7
|
-
<!-- Right Side: Title and Blurb (left aligned) -->
|
8
|
-
<div style="font-size: 1.2em; margin-left: 10px; flex-grow: 1; padding-top: 0;">
|
9
|
-
<div><a href="javascript:void(0)"
|
10
|
-
style="text-decoration: none;"
|
11
|
-
onclick="load_main('posts/%{post.slug}')">%{post.title}</a></div>
|
12
|
-
<div style="font-size: 0.9em;">%{post.blurb}</div>
|
13
|
-
</div>
|
14
|
-
</div>
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<!-- theme: standard -->
|
2
|
-
|
3
|
-
<div align='right'><a style="text-decoration: none" href="javascript:history.go(-1)">
|
4
|
-
<img src="assets/back-icon.png" width=24 height=24 alt="Go back"></img></a>
|
5
|
-
</div>
|
6
|
-
<div style="display: flex; justify-content: space-between; align-items: baseline;">
|
7
|
-
<span style="text-align: left; font-size: 1.5em;">%{post.title}</span>
|
8
|
-
<span style="text-align: right; font-size: 0.9em;">%{reddit_button}%{post.pubdate}</span>
|
9
|
-
</div>
|
10
|
-
<hr>
|
11
|
-
%{post.body}
|
12
|
-
<hr>
|
13
|
-
<div style="text-align: right; font-size: 0.8em;">%{post.tags}</div>
|
@@ -1 +0,0 @@
|
|
1
|
-
Empty file generated at 2025-08-07 22:11:30 -0500
|