bridgetown-core 0.21.4 → 1.0.0.alpha4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +35 -0
  3. data/Rakefile +5 -5
  4. data/bin/bridgetown +2 -0
  5. data/bridgetown-core.gemspec +3 -0
  6. data/lib/bridgetown-core/cache.rb +3 -5
  7. data/lib/bridgetown-core/cleaner.rb +2 -10
  8. data/lib/bridgetown-core/collection.rb +62 -86
  9. data/lib/bridgetown-core/commands/base.rb +62 -2
  10. data/lib/bridgetown-core/commands/build.rb +33 -12
  11. data/lib/bridgetown-core/commands/concerns/actions.rb +2 -2
  12. data/lib/bridgetown-core/commands/concerns/build_options.rb +3 -10
  13. data/lib/bridgetown-core/commands/concerns/configuration_overridable.rb +3 -1
  14. data/lib/bridgetown-core/commands/console.rb +3 -3
  15. data/lib/bridgetown-core/commands/doctor.rb +13 -11
  16. data/lib/bridgetown-core/commands/new.rb +14 -6
  17. data/lib/bridgetown-core/commands/plugins.rb +8 -11
  18. data/lib/bridgetown-core/commands/serve/servlet.rb +4 -4
  19. data/lib/bridgetown-core/commands/serve.rb +37 -37
  20. data/lib/bridgetown-core/commands/start.rb +106 -0
  21. data/lib/bridgetown-core/commands/webpack/webpack.defaults.js.erb +2 -2
  22. data/lib/bridgetown-core/commands/webpack.rb +1 -1
  23. data/lib/bridgetown-core/component.rb +2 -6
  24. data/lib/bridgetown-core/concerns/liquid_renderable.rb +2 -2
  25. data/lib/bridgetown-core/concerns/site/configurable.rb +1 -13
  26. data/lib/bridgetown-core/concerns/site/content.rb +7 -118
  27. data/lib/bridgetown-core/concerns/site/extensible.rb +3 -4
  28. data/lib/bridgetown-core/concerns/site/localizable.rb +3 -1
  29. data/lib/bridgetown-core/concerns/site/processable.rb +8 -20
  30. data/lib/bridgetown-core/concerns/site/renderable.rb +19 -30
  31. data/lib/bridgetown-core/concerns/site/ssr.rb +53 -0
  32. data/lib/bridgetown-core/concerns/site/writable.rb +6 -9
  33. data/lib/bridgetown-core/configuration.rb +19 -48
  34. data/lib/bridgetown-core/configurations/minitesting.rb +1 -1
  35. data/lib/bridgetown-core/configurations/turbo.rb +1 -1
  36. data/lib/bridgetown-core/converter.rb +1 -0
  37. data/lib/bridgetown-core/converters/erb_templates.rb +8 -5
  38. data/lib/bridgetown-core/converters/liquid_templates.rb +5 -2
  39. data/lib/bridgetown-core/converters/markdown/kramdown_parser.rb +1 -1
  40. data/lib/bridgetown-core/converters/smartypants.rb +1 -0
  41. data/lib/bridgetown-core/current.rb +4 -0
  42. data/lib/bridgetown-core/drops/collection_drop.rb +1 -1
  43. data/lib/bridgetown-core/drops/drop.rb +4 -4
  44. data/lib/bridgetown-core/drops/generated_page_drop.rb +23 -0
  45. data/lib/bridgetown-core/drops/resource_drop.rb +3 -3
  46. data/lib/bridgetown-core/drops/site_drop.rb +3 -47
  47. data/lib/bridgetown-core/entry_filter.rb +1 -0
  48. data/lib/bridgetown-core/filters/url_filters.rb +2 -0
  49. data/lib/bridgetown-core/filters.rb +11 -12
  50. data/lib/bridgetown-core/frontmatter_defaults.rb +44 -82
  51. data/lib/bridgetown-core/{page.rb → generated_page.rb} +34 -60
  52. data/lib/bridgetown-core/generators/prototype_generator.rb +46 -58
  53. data/lib/bridgetown-core/helpers.rb +8 -3
  54. data/lib/bridgetown-core/hooks.rb +2 -2
  55. data/lib/bridgetown-core/layout.rb +15 -4
  56. data/lib/bridgetown-core/liquid_renderer.rb +1 -3
  57. data/lib/bridgetown-core/log_adapter.rb +1 -1
  58. data/lib/bridgetown-core/log_writer.rb +7 -1
  59. data/lib/bridgetown-core/model/base.rb +12 -4
  60. data/lib/bridgetown-core/model/builder_origin.rb +23 -11
  61. data/lib/bridgetown-core/model/origin.rb +3 -0
  62. data/lib/bridgetown-core/model/plugin_origin.rb +34 -0
  63. data/lib/bridgetown-core/model/repo_origin.rb +1 -1
  64. data/lib/bridgetown-core/plugin_manager.rb +10 -10
  65. data/lib/bridgetown-core/publisher.rb +1 -1
  66. data/lib/bridgetown-core/rack/boot.rb +55 -0
  67. data/lib/bridgetown-core/rack/logger.rb +22 -0
  68. data/lib/bridgetown-core/rack/roda.rb +66 -0
  69. data/lib/bridgetown-core/rack/routes.rb +88 -0
  70. data/lib/bridgetown-core/rack/static_indexes.rb +30 -0
  71. data/lib/bridgetown-core/reader.rb +16 -48
  72. data/lib/bridgetown-core/readers/layout_reader.rb +2 -2
  73. data/lib/bridgetown-core/readers/plugin_content_reader.rb +8 -7
  74. data/lib/bridgetown-core/renderer.rb +2 -12
  75. data/lib/bridgetown-core/resource/base.rb +34 -11
  76. data/lib/bridgetown-core/resource/permalink_processor.rb +23 -12
  77. data/lib/bridgetown-core/resource/relations.rb +2 -3
  78. data/lib/bridgetown-core/resource/taxonomy_term.rb +1 -5
  79. data/lib/bridgetown-core/resource/transformer.rb +8 -6
  80. data/lib/bridgetown-core/ruby_template_view.rb +6 -8
  81. data/lib/bridgetown-core/site.rb +4 -8
  82. data/lib/bridgetown-core/static_file.rb +14 -21
  83. data/lib/bridgetown-core/tags/find.rb +6 -6
  84. data/lib/bridgetown-core/tags/highlight.rb +5 -5
  85. data/lib/bridgetown-core/tags/include.rb +22 -32
  86. data/lib/bridgetown-core/tags/link.rb +4 -0
  87. data/lib/bridgetown-core/tags/live_reload_dev_js.rb +13 -0
  88. data/lib/bridgetown-core/tags/post_url.rb +9 -14
  89. data/lib/bridgetown-core/tags/render_content.rb +2 -2
  90. data/lib/bridgetown-core/tasks/bridgetown_tasks.rake +60 -0
  91. data/lib/bridgetown-core/url.rb +5 -4
  92. data/lib/bridgetown-core/utils/aux.rb +57 -0
  93. data/lib/bridgetown-core/utils/ruby_exec.rb +3 -45
  94. data/lib/bridgetown-core/utils/ruby_front_matter.rb +22 -7
  95. data/lib/bridgetown-core/utils.rb +44 -11
  96. data/lib/bridgetown-core/version.rb +2 -2
  97. data/lib/bridgetown-core/watcher.rb +4 -6
  98. data/lib/bridgetown-core.rb +16 -23
  99. data/lib/site_template/Gemfile.erb +6 -2
  100. data/lib/site_template/README.md +6 -6
  101. data/lib/site_template/Rakefile +49 -0
  102. data/lib/site_template/bridgetown.config.yml +2 -3
  103. data/lib/site_template/config/puma.rb +27 -0
  104. data/lib/site_template/config.ru +7 -0
  105. data/lib/site_template/package.json.erb +1 -9
  106. data/lib/site_template/server/roda_app.rb +22 -0
  107. data/lib/site_template/server/routes/hello.rb.sample +10 -0
  108. data/lib/site_template/src/_components/head.liquid +2 -1
  109. data/lib/site_template/src/_layouts/default.liquid +1 -1
  110. data/lib/site_template/src/about.md +0 -1
  111. data/lib/site_template/src/posts.md +2 -3
  112. metadata +63 -18
  113. data/lib/bridgetown-core/concerns/data_accessible.rb +0 -20
  114. data/lib/bridgetown-core/concerns/validatable.rb +0 -56
  115. data/lib/bridgetown-core/document.rb +0 -437
  116. data/lib/bridgetown-core/drops/document_drop.rb +0 -80
  117. data/lib/bridgetown-core/drops/excerpt_drop.rb +0 -19
  118. data/lib/bridgetown-core/drops/page_drop.rb +0 -18
  119. data/lib/bridgetown-core/excerpt.rb +0 -200
  120. data/lib/bridgetown-core/readers/data_reader.rb +0 -89
  121. data/lib/bridgetown-core/readers/page_reader.rb +0 -26
  122. data/lib/bridgetown-core/readers/post_reader.rb +0 -109
  123. data/lib/bridgetown-core/regenerator.rb +0 -202
  124. data/lib/bridgetown-core/related_posts.rb +0 -55
  125. data/lib/site_template/config/.keep +0 -0
  126. data/lib/site_template/start.js +0 -17
  127. data/lib/site_template/sync.js +0 -35
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.4
4
+ version: 1.0.0.alpha4
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-09-10 00:00:00.000000000 Z
11
+ date: 2021-10-19 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
@@ -298,6 +340,7 @@ executables:
298
340
  extensions: []
299
341
  extra_rdoc_files: []
300
342
  files:
343
+ - ".rubocop.yml"
301
344
  - ".yardopts"
302
345
  - Rakefile
303
346
  - bin/bridgetown
@@ -323,6 +366,7 @@ files:
323
366
  - lib/bridgetown-core/commands/registrations.rb
324
367
  - lib/bridgetown-core/commands/serve.rb
325
368
  - lib/bridgetown-core/commands/serve/servlet.rb
369
+ - lib/bridgetown-core/commands/start.rb
326
370
  - lib/bridgetown-core/commands/webpack.rb
327
371
  - lib/bridgetown-core/commands/webpack/enable-postcss.rb
328
372
  - lib/bridgetown-core/commands/webpack/setup.rb
@@ -330,7 +374,6 @@ files:
330
374
  - lib/bridgetown-core/commands/webpack/webpack.config.js
331
375
  - lib/bridgetown-core/commands/webpack/webpack.defaults.js.erb
332
376
  - lib/bridgetown-core/component.rb
333
- - lib/bridgetown-core/concerns/data_accessible.rb
334
377
  - lib/bridgetown-core/concerns/front_matter_importer.rb
335
378
  - lib/bridgetown-core/concerns/layout_placeable.rb
336
379
  - lib/bridgetown-core/concerns/liquid_renderable.rb
@@ -341,8 +384,8 @@ files:
341
384
  - lib/bridgetown-core/concerns/site/localizable.rb
342
385
  - lib/bridgetown-core/concerns/site/processable.rb
343
386
  - lib/bridgetown-core/concerns/site/renderable.rb
387
+ - lib/bridgetown-core/concerns/site/ssr.rb
344
388
  - lib/bridgetown-core/concerns/site/writable.rb
345
- - lib/bridgetown-core/concerns/validatable.rb
346
389
  - lib/bridgetown-core/configuration.rb
347
390
  - lib/bridgetown-core/configurations/.keep
348
391
  - lib/bridgetown-core/configurations/bt-postcss.rb
@@ -369,13 +412,10 @@ files:
369
412
  - lib/bridgetown-core/core_ext/psych.rb
370
413
  - lib/bridgetown-core/current.rb
371
414
  - lib/bridgetown-core/deprecator.rb
372
- - lib/bridgetown-core/document.rb
373
415
  - lib/bridgetown-core/drops/bridgetown_drop.rb
374
416
  - lib/bridgetown-core/drops/collection_drop.rb
375
- - lib/bridgetown-core/drops/document_drop.rb
376
417
  - lib/bridgetown-core/drops/drop.rb
377
- - lib/bridgetown-core/drops/excerpt_drop.rb
378
- - lib/bridgetown-core/drops/page_drop.rb
418
+ - lib/bridgetown-core/drops/generated_page_drop.rb
379
419
  - lib/bridgetown-core/drops/relations_drop.rb
380
420
  - lib/bridgetown-core/drops/resource_drop.rb
381
421
  - lib/bridgetown-core/drops/site_drop.rb
@@ -384,7 +424,6 @@ files:
384
424
  - lib/bridgetown-core/drops/url_drop.rb
385
425
  - lib/bridgetown-core/entry_filter.rb
386
426
  - lib/bridgetown-core/errors.rb
387
- - lib/bridgetown-core/excerpt.rb
388
427
  - lib/bridgetown-core/filters.rb
389
428
  - lib/bridgetown-core/filters/condition_helpers.rb
390
429
  - lib/bridgetown-core/filters/date_filters.rb
@@ -392,6 +431,7 @@ files:
392
431
  - lib/bridgetown-core/filters/grouping_filters.rb
393
432
  - lib/bridgetown-core/filters/url_filters.rb
394
433
  - lib/bridgetown-core/frontmatter_defaults.rb
434
+ - lib/bridgetown-core/generated_page.rb
395
435
  - lib/bridgetown-core/generator.rb
396
436
  - lib/bridgetown-core/generators/prototype_generator.rb
397
437
  - lib/bridgetown-core/helpers.rb
@@ -408,20 +448,20 @@ files:
408
448
  - lib/bridgetown-core/model/base.rb
409
449
  - lib/bridgetown-core/model/builder_origin.rb
410
450
  - lib/bridgetown-core/model/origin.rb
451
+ - lib/bridgetown-core/model/plugin_origin.rb
411
452
  - lib/bridgetown-core/model/repo_origin.rb
412
- - lib/bridgetown-core/page.rb
413
453
  - lib/bridgetown-core/plugin.rb
414
454
  - lib/bridgetown-core/plugin_manager.rb
415
455
  - lib/bridgetown-core/publisher.rb
456
+ - lib/bridgetown-core/rack/boot.rb
457
+ - lib/bridgetown-core/rack/logger.rb
458
+ - lib/bridgetown-core/rack/roda.rb
459
+ - lib/bridgetown-core/rack/routes.rb
460
+ - lib/bridgetown-core/rack/static_indexes.rb
416
461
  - lib/bridgetown-core/reader.rb
417
- - lib/bridgetown-core/readers/data_reader.rb
418
462
  - lib/bridgetown-core/readers/defaults_reader.rb
419
463
  - lib/bridgetown-core/readers/layout_reader.rb
420
- - lib/bridgetown-core/readers/page_reader.rb
421
464
  - 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
465
  - lib/bridgetown-core/renderer.rb
426
466
  - lib/bridgetown-core/resource/base.rb
427
467
  - lib/bridgetown-core/resource/destination.rb
@@ -438,14 +478,17 @@ files:
438
478
  - lib/bridgetown-core/tags/highlight.rb
439
479
  - lib/bridgetown-core/tags/include.rb
440
480
  - lib/bridgetown-core/tags/link.rb
481
+ - lib/bridgetown-core/tags/live_reload_dev_js.rb
441
482
  - lib/bridgetown-core/tags/post_url.rb
442
483
  - lib/bridgetown-core/tags/render_content.rb
443
484
  - lib/bridgetown-core/tags/t.rb
444
485
  - lib/bridgetown-core/tags/webpack_path.rb
445
486
  - lib/bridgetown-core/tags/with.rb
487
+ - lib/bridgetown-core/tasks/bridgetown_tasks.rake
446
488
  - lib/bridgetown-core/url.rb
447
489
  - lib/bridgetown-core/utils.rb
448
490
  - lib/bridgetown-core/utils/ansi.rb
491
+ - lib/bridgetown-core/utils/aux.rb
449
492
  - lib/bridgetown-core/utils/require_gems.rb
450
493
  - lib/bridgetown-core/utils/ruby_exec.rb
451
494
  - lib/bridgetown-core/utils/ruby_front_matter.rb
@@ -455,8 +498,10 @@ files:
455
498
  - lib/site_template/.gitignore
456
499
  - lib/site_template/Gemfile.erb
457
500
  - lib/site_template/README.md
501
+ - lib/site_template/Rakefile
458
502
  - lib/site_template/bridgetown.config.yml
459
- - lib/site_template/config/.keep
503
+ - lib/site_template/config.ru
504
+ - lib/site_template/config/puma.rb
460
505
  - lib/site_template/frontend/javascript/index.js.erb
461
506
  - lib/site_template/frontend/styles/index.css
462
507
  - lib/site_template/frontend/styles/index.scss
@@ -464,6 +509,8 @@ files:
464
509
  - lib/site_template/plugins/builders/.keep
465
510
  - lib/site_template/plugins/site_builder.rb
466
511
  - lib/site_template/postcss.config.js.erb
512
+ - lib/site_template/server/roda_app.rb
513
+ - lib/site_template/server/routes/hello.rb.sample
467
514
  - lib/site_template/src/404.html
468
515
  - lib/site_template/src/_components/footer.liquid
469
516
  - lib/site_template/src/_components/head.liquid
@@ -479,8 +526,6 @@ files:
479
526
  - lib/site_template/src/images/.keep
480
527
  - lib/site_template/src/index.md
481
528
  - lib/site_template/src/posts.md
482
- - lib/site_template/start.js
483
- - lib/site_template/sync.js
484
529
  homepage: https://www.bridgetownrb.com
485
530
  licenses:
486
531
  - 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