bridgetown-core 0.21.1 → 1.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bridgetown +2 -0
  3. data/bridgetown-core.gemspec +3 -0
  4. data/lib/bridgetown-core/cleaner.rb +0 -8
  5. data/lib/bridgetown-core/collection.rb +59 -81
  6. data/lib/bridgetown-core/commands/base.rb +60 -1
  7. data/lib/bridgetown-core/commands/build.rb +26 -6
  8. data/lib/bridgetown-core/commands/concerns/build_options.rb +3 -10
  9. data/lib/bridgetown-core/commands/concerns/configuration_overridable.rb +3 -1
  10. data/lib/bridgetown-core/commands/doctor.rb +3 -3
  11. data/lib/bridgetown-core/commands/new.rb +9 -3
  12. data/lib/bridgetown-core/commands/plugins.rb +1 -2
  13. data/lib/bridgetown-core/commands/serve.rb +14 -12
  14. data/lib/bridgetown-core/commands/start.rb +106 -0
  15. data/lib/bridgetown-core/commands/webpack/webpack.defaults.js.erb +2 -2
  16. data/lib/bridgetown-core/concerns/site/configurable.rb +0 -12
  17. data/lib/bridgetown-core/concerns/site/content.rb +16 -117
  18. data/lib/bridgetown-core/concerns/site/localizable.rb +3 -1
  19. data/lib/bridgetown-core/concerns/site/processable.rb +9 -20
  20. data/lib/bridgetown-core/concerns/site/renderable.rb +19 -30
  21. data/lib/bridgetown-core/concerns/site/ssr.rb +53 -0
  22. data/lib/bridgetown-core/concerns/site/writable.rb +5 -8
  23. data/lib/bridgetown-core/configuration.rb +18 -47
  24. data/lib/bridgetown-core/configurations/minitesting.rb +1 -1
  25. data/lib/bridgetown-core/configurations/turbo.rb +1 -1
  26. data/lib/bridgetown-core/converters/erb_templates.rb +2 -1
  27. data/lib/bridgetown-core/converters/liquid_templates.rb +3 -2
  28. data/lib/bridgetown-core/current.rb +4 -0
  29. data/lib/bridgetown-core/drops/collection_drop.rb +1 -1
  30. data/lib/bridgetown-core/drops/generated_page_drop.rb +23 -0
  31. data/lib/bridgetown-core/drops/resource_drop.rb +3 -3
  32. data/lib/bridgetown-core/drops/site_drop.rb +3 -47
  33. data/lib/bridgetown-core/errors.rb +0 -2
  34. data/lib/bridgetown-core/filters/url_filters.rb +3 -1
  35. data/lib/bridgetown-core/frontmatter_defaults.rb +52 -88
  36. data/lib/bridgetown-core/{page.rb → generated_page.rb} +34 -58
  37. data/lib/bridgetown-core/generators/prototype_generator.rb +13 -24
  38. data/lib/bridgetown-core/helpers.rb +7 -2
  39. data/lib/bridgetown-core/layout.rb +15 -4
  40. data/lib/bridgetown-core/log_writer.rb +6 -0
  41. data/lib/bridgetown-core/model/base.rb +10 -2
  42. data/lib/bridgetown-core/model/builder_origin.rb +22 -10
  43. data/lib/bridgetown-core/model/origin.rb +3 -0
  44. data/lib/bridgetown-core/model/plugin_origin.rb +34 -0
  45. data/lib/bridgetown-core/model/repo_origin.rb +1 -1
  46. data/lib/bridgetown-core/plugin_manager.rb +8 -8
  47. data/lib/bridgetown-core/rack/boot.rb +47 -0
  48. data/lib/bridgetown-core/rack/logger.rb +22 -0
  49. data/lib/bridgetown-core/rack/roda.rb +66 -0
  50. data/lib/bridgetown-core/rack/routes.rb +92 -0
  51. data/lib/bridgetown-core/rack/static_indexes.rb +30 -0
  52. data/lib/bridgetown-core/reader.rb +20 -47
  53. data/lib/bridgetown-core/readers/plugin_content_reader.rb +8 -7
  54. data/lib/bridgetown-core/renderer.rb +1 -11
  55. data/lib/bridgetown-core/resource/base.rb +50 -26
  56. data/lib/bridgetown-core/resource/permalink_processor.rb +20 -10
  57. data/lib/bridgetown-core/resource/relations.rb +2 -3
  58. data/lib/bridgetown-core/resource/transformer.rb +1 -1
  59. data/lib/bridgetown-core/ruby_template_view.rb +5 -5
  60. data/lib/bridgetown-core/site.rb +4 -8
  61. data/lib/bridgetown-core/static_file.rb +10 -15
  62. data/lib/bridgetown-core/tags/include.rb +0 -13
  63. data/lib/bridgetown-core/tags/link.rb +4 -0
  64. data/lib/bridgetown-core/tags/live_reload_dev_js.rb +13 -0
  65. data/lib/bridgetown-core/tags/post_url.rb +4 -9
  66. data/lib/bridgetown-core/tasks/bridgetown_tasks.rake +54 -0
  67. data/lib/bridgetown-core/url.rb +2 -1
  68. data/lib/bridgetown-core/utils/aux.rb +57 -0
  69. data/lib/bridgetown-core/utils/ruby_exec.rb +3 -45
  70. data/lib/bridgetown-core/utils/ruby_front_matter.rb +22 -7
  71. data/lib/bridgetown-core/utils.rb +53 -24
  72. data/lib/bridgetown-core/version.rb +2 -2
  73. data/lib/bridgetown-core/watcher.rb +2 -4
  74. data/lib/bridgetown-core.rb +14 -22
  75. data/lib/site_template/Gemfile.erb +6 -2
  76. data/lib/site_template/README.md +6 -6
  77. data/lib/site_template/Rakefile +49 -0
  78. data/lib/site_template/bridgetown.config.yml +2 -3
  79. data/lib/site_template/config/puma.rb +27 -0
  80. data/lib/site_template/config.ru +7 -0
  81. data/lib/site_template/frontend/javascript/index.js.erb +3 -3
  82. data/lib/site_template/package.json.erb +8 -13
  83. data/lib/site_template/server/roda_app.rb +22 -0
  84. data/lib/site_template/server/routes/hello.rb.sample +10 -0
  85. data/lib/site_template/src/_components/head.liquid +2 -1
  86. data/lib/site_template/src/about.md +0 -1
  87. data/lib/site_template/src/posts.md +2 -3
  88. metadata +62 -18
  89. data/lib/bridgetown-core/concerns/data_accessible.rb +0 -20
  90. data/lib/bridgetown-core/concerns/validatable.rb +0 -56
  91. data/lib/bridgetown-core/document.rb +0 -437
  92. data/lib/bridgetown-core/drops/document_drop.rb +0 -80
  93. data/lib/bridgetown-core/drops/excerpt_drop.rb +0 -19
  94. data/lib/bridgetown-core/drops/page_drop.rb +0 -18
  95. data/lib/bridgetown-core/excerpt.rb +0 -200
  96. data/lib/bridgetown-core/readers/data_reader.rb +0 -89
  97. data/lib/bridgetown-core/readers/page_reader.rb +0 -26
  98. data/lib/bridgetown-core/readers/post_reader.rb +0 -109
  99. data/lib/bridgetown-core/regenerator.rb +0 -202
  100. data/lib/bridgetown-core/related_posts.rb +0 -55
  101. data/lib/site_template/config/.keep +0 -0
  102. data/lib/site_template/start.js +0 -17
  103. data/lib/site_template/sync.js +0 -35
@@ -0,0 +1,49 @@
1
+ require "bridgetown"
2
+
3
+ Bridgetown.load_tasks
4
+
5
+ #
6
+ # Standard set of tasks, which you can customize if you wish:
7
+ #
8
+ desc "Build the Bridgetown site for deployment"
9
+ task :deploy => [:clean, "frontend:build"] do
10
+ Bridgetown::Commands::Build.start
11
+ end
12
+
13
+ desc "Build the site in a test environment"
14
+ task :test do
15
+ ENV["BRIDGETOWN_ENV"] = "test"
16
+ Bridgetown::Commands::Build.start
17
+ end
18
+
19
+ desc "Runs the clean command"
20
+ task :clean do
21
+ Bridgetown::Commands::Clean.start
22
+ end
23
+
24
+ namespace :frontend do
25
+ desc "Build the frontend with Webpack for deployment"
26
+ task :build do
27
+ sh "yarn run webpack-build"
28
+ end
29
+
30
+ desc "Watch the frontend with Webpack during development"
31
+ task :dev do
32
+ sh "yarn run webpack-dev --color"
33
+ rescue Interrupt
34
+ end
35
+ end
36
+
37
+ #
38
+ # Add your own Rake tasks here! You can use `environment` as a prerequisite
39
+ # in order to write automations or other commands requiring a loaded site.
40
+ #
41
+ # task :my_task => :environment do
42
+ # puts site.root_dir
43
+ # automation do
44
+ # say_status :rake, "I'm a Rake tast =) #{site.config.url}"
45
+ # end
46
+ # end
47
+
48
+ # Run rake without specifying any command to execute a deploy build by default.
49
+ task default: :deploy
@@ -4,11 +4,10 @@
4
4
  # which you are expected to set up once and rarely edit after that.
5
5
  #
6
6
  # For technical reasons, this file is *NOT* reloaded automatically when you use
7
- # 'bundle exec bridgetown serve'. If you change this file, please restart the
8
- # server process.
7
+ # `bin/bridgetown start`. If you change this file, please restart the server process.
9
8
  #
10
9
  # For reloadable site metadata like title, SEO description, social media
11
- # handles, etc., take a look at src/_data/site_metadata.yml
10
+ # handles, etc., take a look at `src/_data/site_metadata.yml`
12
11
  #
13
12
  # If you need help with YAML syntax, here are some quick references for you:
14
13
  # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
@@ -0,0 +1,27 @@
1
+ # Puma is a fast, concurrent web server for Ruby & Rack
2
+ #
3
+ # Learn more at: https://puma.io
4
+ #
5
+ port ENV.fetch("BRIDGETOWN_PORT") { 4000 }
6
+
7
+ # You can adjust the number of workers (separate processes) and threads
8
+ # (per process) based on your production system
9
+ #
10
+ if ENV["BRIDGETOWN_ENV"] == "production"
11
+ workers ENV.fetch("BRIDGETOWN_CONCURRENCY") { 4 }
12
+ end
13
+
14
+ max_threads_count = ENV.fetch("BRIDGETOWN_MAX_THREADS") { 5 }
15
+ min_threads_count = ENV.fetch("BRIDGETOWN_MIN_THREADS") { max_threads_count }
16
+ threads min_threads_count, max_threads_count
17
+
18
+ # Preload the application for maximum performance
19
+ #
20
+ preload_app!
21
+
22
+ # Use the Bridgetown logger format
23
+ #
24
+ require "bridgetown-core/rack/logger"
25
+ log_formatter do |msg|
26
+ Bridgetown::Rack::Logger.message_with_prefix msg
27
+ end
@@ -0,0 +1,7 @@
1
+ # This file is used by Rack-based servers during the Bridgetown boot process.
2
+
3
+ require "bridgetown-core/rack/boot"
4
+
5
+ Bridgetown::Rack.boot
6
+
7
+ run RodaApp.freeze.app # see server/roda_app.rb
@@ -1,8 +1,8 @@
1
- <% if options["use-postcss"] %>
1
+ <%- if options["use-postcss"] -%>
2
2
  import "index.css"
3
- <% else %>
3
+ <%- else -%>
4
4
  import "index.scss"
5
- <% end %>
5
+ <%- end -%>
6
6
 
7
7
  // Import all javascript files from src/_components
8
8
  const componentsContext = require.context("bridgetownComponents", true, /.js$/)
@@ -3,35 +3,30 @@
3
3
  "version": "1.0.0",
4
4
  "private": true,
5
5
  "scripts": {
6
- "build": "bundle exec bridgetown build",
7
- "serve": "bundle exec bridgetown serve",
8
- "clean": "bundle exec bridgetown clean",
9
6
  "webpack-build": "webpack --mode production",
10
- "webpack-dev": "webpack --mode development -w",
11
- "deploy": "yarn clean && yarn webpack-build && yarn build",
12
- "sync": "node sync.js",
13
- "start": "node start.js"
7
+ "webpack-dev": "webpack --mode development -w"
14
8
  },
15
9
  "devDependencies": {
16
- "browser-sync": "^2.26.7",
17
- "concurrently": "^5.2.0",
18
10
  "css-loader": "^4.3.0",
19
11
  "esbuild": "^0.12.7",
20
12
  "esbuild-loader": "^2.13.1",
21
13
  "file-loader": "^6.2.0",
22
14
  "mini-css-extract-plugin": "^1.3.1",
23
- <% if options["use-postcss"] %>
15
+ <%- if options["use-postcss"] -%>
24
16
  "postcss": "^8.3.0",
25
17
  "postcss-flexbugs-fixes": "^4.1.0",
26
18
  "postcss-loader": "^4.3.0",
27
19
  "postcss-preset-env": "^6.7.0",
28
- <% else %>
20
+ <%- else -%>
29
21
  "sass": "^1.32.8",
30
22
  "sass-loader": "^8.0.2",
31
- <% end %>
23
+ <%- end -%>
32
24
  "webpack": "^5.39.1",
33
25
  "webpack-cli": "^4.7.2",
34
- "webpack-manifest-plugin": "^3.1.1"
26
+ "webpack-manifest-plugin": "^3.1.1",
35
27
  "webpack-merge": "^5.8.0"
28
+ },
29
+ "resolutions": {
30
+ "postcss-focus-within": "^4.0.0"
36
31
  }
37
32
  }
@@ -0,0 +1,22 @@
1
+ # Roda is a simple Rack-based framework with a flexible architecture based
2
+ # on the concept of a routing tree. Bridgetown uses it for its development
3
+ # server, but you can also run it in production for fast, dynamic applications.
4
+ #
5
+ # Learn more at: http://roda.jeremyevans.net
6
+
7
+ # Uncomment to use the file-based routing for Bridgetown SSR:
8
+ # require "bridgetown-routes"
9
+
10
+ class RodaApp < Bridgetown::Rack::Roda
11
+ # Add additional Roda configuration here if needed
12
+
13
+ # Uncomment to use Bridgetown SSR:
14
+ # plugin :bridgetown_ssr
15
+ # plugin :bridgetown_routes
16
+
17
+ route do |r|
18
+ # Load all files in server/routes and src/_routes if "bridgetown-routes" is loaded
19
+ # (see server/routes/hello.rb.sample)
20
+ Bridgetown::Rack::Routes.start! self
21
+ end
22
+ end
@@ -0,0 +1,10 @@
1
+ # Rename this file to hello.rb to try out
2
+
3
+ class Routes::Hello < Bridgetown::Rack::Routes
4
+ route do |r|
5
+ # route: GET /hello/:name
6
+ r.get "hello", String do |name|
7
+ { hello: "friend #{name}" }
8
+ end
9
+ end
10
+ end
@@ -1,9 +1,10 @@
1
1
  <meta charset="utf-8" />
2
2
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3
3
  {% capture page_title %}{{ title | strip_html | strip_newlines }}{% endcapture %}
4
- <title>{% if page_title != "" %}{{ page_title | escape }} | {{ metadata.title | escape }}{% else %}{{ metadata.title | escape }}: {{ metadata.tagline | escape }}{% endif %}</title>
4
+ <title>{% if page_title != "Index" %}{{ page_title | escape }} | {{ metadata.title | escape }}{% else %}{{ metadata.title | escape }}: {{ metadata.tagline | escape }}{% endif %}</title>
5
5
 
6
6
  <meta name="description" content="{{ metadata.description }}" />
7
7
 
8
8
  <link rel="stylesheet" href="{% webpack_path css %}" />
9
9
  <script src="{% webpack_path js %}" defer></script>
10
+ {% live_reload_dev_js %}
@@ -1,7 +1,6 @@
1
1
  ---
2
2
  layout: page
3
3
  title: About
4
- permalink: /about/
5
4
  ---
6
5
 
7
6
  This is the basic Bridgetown site template. You can find out more info about customizing your Bridgetown site, as well as basic Bridgetown usage documentation at [bridgetownrb.com](https://bridgetownrb.com/)
@@ -1,13 +1,12 @@
1
1
  ---
2
2
  layout: page
3
3
  title: Posts
4
- permalink: /posts/
5
4
  ---
6
5
 
7
6
  <ul>
8
- {% for post in site.posts %}
7
+ {% for post in collections.posts.resources %}
9
8
  <li>
10
- <a href="{{ post.url }}">{{ post.title }}</a>
9
+ <a href="{{ post.relative_url }}">{{ post.title }}</a>
11
10
  </li>
12
11
  {% endfor %}
13
12
  </ul>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridgetown-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.1
4
+ version: 1.0.0.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bridgetown Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-19 00:00:00.000000000 Z
11
+ date: 2021-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -220,6 +220,48 @@ dependencies:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
222
  version: '3.0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: rack-indifferent
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: 1.2.0
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: 1.2.0
237
+ - !ruby/object:Gem::Dependency
238
+ name: rake
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '13.0'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '13.0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: roda
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: '3.46'
258
+ type: :runtime
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: '3.46'
223
265
  - !ruby/object:Gem::Dependency
224
266
  name: rouge
225
267
  requirement: !ruby/object:Gem::Requirement
@@ -323,6 +365,7 @@ files:
323
365
  - lib/bridgetown-core/commands/registrations.rb
324
366
  - lib/bridgetown-core/commands/serve.rb
325
367
  - lib/bridgetown-core/commands/serve/servlet.rb
368
+ - lib/bridgetown-core/commands/start.rb
326
369
  - lib/bridgetown-core/commands/webpack.rb
327
370
  - lib/bridgetown-core/commands/webpack/enable-postcss.rb
328
371
  - lib/bridgetown-core/commands/webpack/setup.rb
@@ -330,7 +373,6 @@ files:
330
373
  - lib/bridgetown-core/commands/webpack/webpack.config.js
331
374
  - lib/bridgetown-core/commands/webpack/webpack.defaults.js.erb
332
375
  - lib/bridgetown-core/component.rb
333
- - lib/bridgetown-core/concerns/data_accessible.rb
334
376
  - lib/bridgetown-core/concerns/front_matter_importer.rb
335
377
  - lib/bridgetown-core/concerns/layout_placeable.rb
336
378
  - lib/bridgetown-core/concerns/liquid_renderable.rb
@@ -341,8 +383,8 @@ files:
341
383
  - lib/bridgetown-core/concerns/site/localizable.rb
342
384
  - lib/bridgetown-core/concerns/site/processable.rb
343
385
  - lib/bridgetown-core/concerns/site/renderable.rb
386
+ - lib/bridgetown-core/concerns/site/ssr.rb
344
387
  - lib/bridgetown-core/concerns/site/writable.rb
345
- - lib/bridgetown-core/concerns/validatable.rb
346
388
  - lib/bridgetown-core/configuration.rb
347
389
  - lib/bridgetown-core/configurations/.keep
348
390
  - lib/bridgetown-core/configurations/bt-postcss.rb
@@ -369,13 +411,10 @@ files:
369
411
  - lib/bridgetown-core/core_ext/psych.rb
370
412
  - lib/bridgetown-core/current.rb
371
413
  - lib/bridgetown-core/deprecator.rb
372
- - lib/bridgetown-core/document.rb
373
414
  - lib/bridgetown-core/drops/bridgetown_drop.rb
374
415
  - lib/bridgetown-core/drops/collection_drop.rb
375
- - lib/bridgetown-core/drops/document_drop.rb
376
416
  - lib/bridgetown-core/drops/drop.rb
377
- - lib/bridgetown-core/drops/excerpt_drop.rb
378
- - lib/bridgetown-core/drops/page_drop.rb
417
+ - lib/bridgetown-core/drops/generated_page_drop.rb
379
418
  - lib/bridgetown-core/drops/relations_drop.rb
380
419
  - lib/bridgetown-core/drops/resource_drop.rb
381
420
  - lib/bridgetown-core/drops/site_drop.rb
@@ -384,7 +423,6 @@ files:
384
423
  - lib/bridgetown-core/drops/url_drop.rb
385
424
  - lib/bridgetown-core/entry_filter.rb
386
425
  - lib/bridgetown-core/errors.rb
387
- - lib/bridgetown-core/excerpt.rb
388
426
  - lib/bridgetown-core/filters.rb
389
427
  - lib/bridgetown-core/filters/condition_helpers.rb
390
428
  - lib/bridgetown-core/filters/date_filters.rb
@@ -392,6 +430,7 @@ files:
392
430
  - lib/bridgetown-core/filters/grouping_filters.rb
393
431
  - lib/bridgetown-core/filters/url_filters.rb
394
432
  - lib/bridgetown-core/frontmatter_defaults.rb
433
+ - lib/bridgetown-core/generated_page.rb
395
434
  - lib/bridgetown-core/generator.rb
396
435
  - lib/bridgetown-core/generators/prototype_generator.rb
397
436
  - lib/bridgetown-core/helpers.rb
@@ -408,20 +447,20 @@ files:
408
447
  - lib/bridgetown-core/model/base.rb
409
448
  - lib/bridgetown-core/model/builder_origin.rb
410
449
  - lib/bridgetown-core/model/origin.rb
450
+ - lib/bridgetown-core/model/plugin_origin.rb
411
451
  - lib/bridgetown-core/model/repo_origin.rb
412
- - lib/bridgetown-core/page.rb
413
452
  - lib/bridgetown-core/plugin.rb
414
453
  - lib/bridgetown-core/plugin_manager.rb
415
454
  - lib/bridgetown-core/publisher.rb
455
+ - lib/bridgetown-core/rack/boot.rb
456
+ - lib/bridgetown-core/rack/logger.rb
457
+ - lib/bridgetown-core/rack/roda.rb
458
+ - lib/bridgetown-core/rack/routes.rb
459
+ - lib/bridgetown-core/rack/static_indexes.rb
416
460
  - lib/bridgetown-core/reader.rb
417
- - lib/bridgetown-core/readers/data_reader.rb
418
461
  - lib/bridgetown-core/readers/defaults_reader.rb
419
462
  - lib/bridgetown-core/readers/layout_reader.rb
420
- - lib/bridgetown-core/readers/page_reader.rb
421
463
  - lib/bridgetown-core/readers/plugin_content_reader.rb
422
- - lib/bridgetown-core/readers/post_reader.rb
423
- - lib/bridgetown-core/regenerator.rb
424
- - lib/bridgetown-core/related_posts.rb
425
464
  - lib/bridgetown-core/renderer.rb
426
465
  - lib/bridgetown-core/resource/base.rb
427
466
  - lib/bridgetown-core/resource/destination.rb
@@ -438,14 +477,17 @@ files:
438
477
  - lib/bridgetown-core/tags/highlight.rb
439
478
  - lib/bridgetown-core/tags/include.rb
440
479
  - lib/bridgetown-core/tags/link.rb
480
+ - lib/bridgetown-core/tags/live_reload_dev_js.rb
441
481
  - lib/bridgetown-core/tags/post_url.rb
442
482
  - lib/bridgetown-core/tags/render_content.rb
443
483
  - lib/bridgetown-core/tags/t.rb
444
484
  - lib/bridgetown-core/tags/webpack_path.rb
445
485
  - lib/bridgetown-core/tags/with.rb
486
+ - lib/bridgetown-core/tasks/bridgetown_tasks.rake
446
487
  - lib/bridgetown-core/url.rb
447
488
  - lib/bridgetown-core/utils.rb
448
489
  - lib/bridgetown-core/utils/ansi.rb
490
+ - lib/bridgetown-core/utils/aux.rb
449
491
  - lib/bridgetown-core/utils/require_gems.rb
450
492
  - lib/bridgetown-core/utils/ruby_exec.rb
451
493
  - lib/bridgetown-core/utils/ruby_front_matter.rb
@@ -455,8 +497,10 @@ files:
455
497
  - lib/site_template/.gitignore
456
498
  - lib/site_template/Gemfile.erb
457
499
  - lib/site_template/README.md
500
+ - lib/site_template/Rakefile
458
501
  - lib/site_template/bridgetown.config.yml
459
- - lib/site_template/config/.keep
502
+ - lib/site_template/config.ru
503
+ - lib/site_template/config/puma.rb
460
504
  - lib/site_template/frontend/javascript/index.js.erb
461
505
  - lib/site_template/frontend/styles/index.css
462
506
  - lib/site_template/frontend/styles/index.scss
@@ -464,6 +508,8 @@ files:
464
508
  - lib/site_template/plugins/builders/.keep
465
509
  - lib/site_template/plugins/site_builder.rb
466
510
  - lib/site_template/postcss.config.js.erb
511
+ - lib/site_template/server/roda_app.rb
512
+ - lib/site_template/server/routes/hello.rb.sample
467
513
  - lib/site_template/src/404.html
468
514
  - lib/site_template/src/_components/footer.liquid
469
515
  - lib/site_template/src/_components/head.liquid
@@ -479,8 +525,6 @@ files:
479
525
  - lib/site_template/src/images/.keep
480
526
  - lib/site_template/src/index.md
481
527
  - lib/site_template/src/posts.md
482
- - lib/site_template/start.js
483
- - lib/site_template/sync.js
484
528
  homepage: https://www.bridgetownrb.com
485
529
  licenses:
486
530
  - MIT
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bridgetown
4
- # TODO: to be retired once the Resource engine is made official
5
- module DataAccessible
6
- # Returns the contents as a String.
7
- def to_s
8
- output || content || ""
9
- end
10
-
11
- # Accessor for data properties by Liquid.
12
- #
13
- # property - The String name of the property to retrieve.
14
- #
15
- # Returns the String value or nil if the property isn't included.
16
- def [](property)
17
- data[property]
18
- end
19
- end
20
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bridgetown
4
- # TODO: to be retired once the Resource engine is made official
5
- module Validatable
6
- # Read the YAML frontmatter.
7
- #
8
- # base - The String path to the dir containing the file.
9
- # name - The String filename of the file.
10
- # opts - optional parameter to File.read, default at site configs
11
- #
12
- # Returns nothing.
13
- # rubocop:disable Metrics/AbcSize
14
- def read_yaml(base, name, opts = {})
15
- filename = File.join(base, name)
16
-
17
- begin
18
- self.content = File.read(@path || site.in_source_dir(base, name),
19
- **Utils.merged_file_read_opts(site, opts))
20
- if content =~ Document::YAML_FRONT_MATTER_REGEXP
21
- self.content = $POSTMATCH
22
- self.data = YAMLParser.load(Regexp.last_match(1))&.with_dot_access
23
- end
24
- rescue Psych::SyntaxError => e
25
- Bridgetown.logger.warn "YAML Exception reading #{filename}: #{e.message}"
26
- raise e if site.config["strict_front_matter"]
27
- rescue StandardError => e
28
- Bridgetown.logger.warn "Error reading file #{filename}: #{e.message}"
29
- raise e if site.config["strict_front_matter"]
30
- end
31
-
32
- self.data ||= HashWithDotAccess::Hash.new
33
-
34
- validate_data! filename
35
- validate_permalink! filename
36
-
37
- self.data
38
- end
39
- # rubocop:enable Metrics/AbcSize
40
-
41
- # FIXME: why doesn't Document validate data too?
42
- def validate_data!(filename)
43
- unless self.data.is_a?(Hash)
44
- raise Errors::InvalidYAMLFrontMatterError,
45
- "Invalid YAML front matter in #{filename}"
46
- end
47
- end
48
-
49
- # FIXME: Layouts don't have permalinks...d'oh
50
- def validate_permalink!(filename)
51
- if self.data["permalink"]&.to_s&.empty?
52
- raise Errors::InvalidPermalinkError, "Invalid permalink in #{filename}"
53
- end
54
- end
55
- end
56
- end