bridgetown-core 0.19.3 → 0.20.0
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/bridgetown-core.gemspec +1 -1
- data/lib/bridgetown-core.rb +30 -11
- data/lib/bridgetown-core/cleaner.rb +7 -1
- data/lib/bridgetown-core/collection.rb +173 -77
- data/lib/bridgetown-core/commands/base.rb +9 -0
- data/lib/bridgetown-core/commands/configure.rb +4 -0
- data/lib/bridgetown-core/commands/console.rb +4 -0
- data/lib/bridgetown-core/concerns/data_accessible.rb +1 -0
- data/lib/bridgetown-core/concerns/site/configurable.rb +7 -3
- data/lib/bridgetown-core/concerns/site/content.rb +57 -15
- data/lib/bridgetown-core/concerns/site/processable.rb +1 -0
- data/lib/bridgetown-core/concerns/site/renderable.rb +26 -0
- data/lib/bridgetown-core/concerns/site/writable.rb +11 -1
- data/lib/bridgetown-core/concerns/validatable.rb +1 -0
- data/lib/bridgetown-core/configuration.rb +39 -19
- data/lib/bridgetown-core/converter.rb +14 -0
- data/lib/bridgetown-core/converters/identity.rb +0 -9
- data/lib/bridgetown-core/converters/markdown.rb +14 -4
- data/lib/bridgetown-core/converters/markdown/kramdown_parser.rb +3 -0
- data/lib/bridgetown-core/current.rb +10 -0
- data/lib/bridgetown-core/document.rb +6 -14
- data/lib/bridgetown-core/drops/collection_drop.rb +1 -1
- data/lib/bridgetown-core/drops/page_drop.rb +4 -0
- data/lib/bridgetown-core/drops/resource_drop.rb +81 -0
- data/lib/bridgetown-core/drops/site_drop.rb +33 -8
- data/lib/bridgetown-core/drops/unified_payload_drop.rb +4 -0
- data/lib/bridgetown-core/entry_filter.rb +10 -23
- data/lib/bridgetown-core/errors.rb +0 -2
- data/lib/bridgetown-core/filters.rb +2 -1
- data/lib/bridgetown-core/generators/prototype_generator.rb +37 -19
- data/lib/bridgetown-core/layout.rb +2 -2
- data/lib/bridgetown-core/liquid_renderer/file.rb +1 -0
- data/lib/bridgetown-core/liquid_renderer/table.rb +1 -0
- data/lib/bridgetown-core/model/base.rb +138 -0
- data/lib/bridgetown-core/model/builder_origin.rb +40 -0
- data/lib/bridgetown-core/model/file_origin.rb +119 -0
- data/lib/bridgetown-core/model/origin.rb +38 -0
- data/lib/bridgetown-core/page.rb +9 -1
- data/lib/bridgetown-core/plugin_manager.rb +0 -2
- data/lib/bridgetown-core/publisher.rb +7 -1
- data/lib/bridgetown-core/reader.rb +25 -12
- data/lib/bridgetown-core/readers/data_reader.rb +3 -4
- data/lib/bridgetown-core/readers/post_reader.rb +1 -1
- data/lib/bridgetown-core/regenerator.rb +8 -1
- data/lib/bridgetown-core/related_posts.rb +1 -1
- data/lib/bridgetown-core/renderer.rb +5 -12
- data/lib/bridgetown-core/resource/base.rb +275 -0
- data/lib/bridgetown-core/resource/destination.rb +49 -0
- data/lib/bridgetown-core/resource/permalink_processor.rb +179 -0
- data/lib/bridgetown-core/resource/taxonomy_term.rb +25 -0
- data/lib/bridgetown-core/resource/taxonomy_type.rb +47 -0
- data/lib/bridgetown-core/resource/transformer.rb +173 -0
- data/lib/bridgetown-core/ruby_template_view.rb +4 -0
- data/lib/bridgetown-core/site.rb +9 -1
- data/lib/bridgetown-core/static_file.rb +33 -10
- data/lib/bridgetown-core/url.rb +1 -0
- data/lib/bridgetown-core/utils.rb +40 -40
- data/lib/bridgetown-core/utils/platforms.rb +1 -0
- data/lib/bridgetown-core/version.rb +2 -2
- data/lib/site_template/webpack.config.js.erb +8 -6
- metadata +28 -21
- data/lib/bridgetown-core/page_without_a_file.rb +0 -17
- data/lib/bridgetown-core/readers/collection_reader.rb +0 -23
- data/lib/bridgetown-core/utils/exec.rb +0 -26
- data/lib/bridgetown-core/utils/internet.rb +0 -37
- data/lib/bridgetown-core/utils/win_tz.rb +0 -75
@@ -3,7 +3,9 @@ const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
3
3
|
const ManifestPlugin = require("webpack-manifest-plugin");
|
4
4
|
|
5
5
|
module.exports = {
|
6
|
-
entry:
|
6
|
+
entry: {
|
7
|
+
main: "./frontend/javascript/index.js"
|
8
|
+
},
|
7
9
|
devtool: "source-map",
|
8
10
|
// Set some or all of these to true if you want more verbose logging:
|
9
11
|
stats: {
|
@@ -14,7 +16,7 @@ module.exports = {
|
|
14
16
|
},
|
15
17
|
output: {
|
16
18
|
path: path.resolve(__dirname, "output", "_bridgetown", "static", "js"),
|
17
|
-
filename: "
|
19
|
+
filename: "[name].[contenthash].js",
|
18
20
|
},
|
19
21
|
resolve: {
|
20
22
|
extensions: [".js", ".jsx"],
|
@@ -29,7 +31,7 @@ module.exports = {
|
|
29
31
|
},
|
30
32
|
plugins: [
|
31
33
|
new MiniCssExtractPlugin({
|
32
|
-
filename: "../css/
|
34
|
+
filename: "../css/[name].[contenthash].css",
|
33
35
|
}),
|
34
36
|
new ManifestPlugin({
|
35
37
|
fileName: path.resolve(__dirname, ".bridgetown-webpack", "manifest.json"),
|
@@ -108,9 +110,9 @@ module.exports = {
|
|
108
110
|
test: /\.png?$|\.gif$|\.jpg$|\.svg$/,
|
109
111
|
loader: "file-loader",
|
110
112
|
options: {
|
111
|
-
name: "[name]-[contenthash].[ext]",
|
112
|
-
outputPath: "../
|
113
|
-
publicPath: "../
|
113
|
+
name: "[path][name]-[contenthash].[ext]",
|
114
|
+
outputPath: "../",
|
115
|
+
publicPath: "../",
|
114
116
|
},
|
115
117
|
},
|
116
118
|
],
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bridgetown-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.20.0
|
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-
|
11
|
+
date: 2021-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activemodel
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '6.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '6.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: activesupport
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,20 +220,6 @@ dependencies:
|
|
206
220
|
- - "~>"
|
207
221
|
- !ruby/object:Gem::Version
|
208
222
|
version: '3.0'
|
209
|
-
- !ruby/object:Gem::Dependency
|
210
|
-
name: pathutil
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
212
|
-
requirements:
|
213
|
-
- - "~>"
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0.9'
|
216
|
-
type: :runtime
|
217
|
-
prerelease: false
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
requirements:
|
220
|
-
- - "~>"
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0.9'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: rouge
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -370,6 +370,7 @@ files:
|
|
370
370
|
- lib/bridgetown-core/converters/markdown.rb
|
371
371
|
- lib/bridgetown-core/converters/markdown/kramdown_parser.rb
|
372
372
|
- lib/bridgetown-core/converters/smartypants.rb
|
373
|
+
- lib/bridgetown-core/current.rb
|
373
374
|
- lib/bridgetown-core/deprecator.rb
|
374
375
|
- lib/bridgetown-core/document.rb
|
375
376
|
- lib/bridgetown-core/drops/bridgetown_drop.rb
|
@@ -378,6 +379,7 @@ files:
|
|
378
379
|
- lib/bridgetown-core/drops/drop.rb
|
379
380
|
- lib/bridgetown-core/drops/excerpt_drop.rb
|
380
381
|
- lib/bridgetown-core/drops/page_drop.rb
|
382
|
+
- lib/bridgetown-core/drops/resource_drop.rb
|
381
383
|
- lib/bridgetown-core/drops/site_drop.rb
|
382
384
|
- lib/bridgetown-core/drops/static_file_drop.rb
|
383
385
|
- lib/bridgetown-core/drops/unified_payload_drop.rb
|
@@ -405,14 +407,16 @@ files:
|
|
405
407
|
- lib/bridgetown-core/log_adapter.rb
|
406
408
|
- lib/bridgetown-core/log_writer.rb
|
407
409
|
- lib/bridgetown-core/mime.types
|
410
|
+
- lib/bridgetown-core/model/base.rb
|
411
|
+
- lib/bridgetown-core/model/builder_origin.rb
|
412
|
+
- lib/bridgetown-core/model/file_origin.rb
|
413
|
+
- lib/bridgetown-core/model/origin.rb
|
408
414
|
- lib/bridgetown-core/page.rb
|
409
|
-
- lib/bridgetown-core/page_without_a_file.rb
|
410
415
|
- lib/bridgetown-core/path_manager.rb
|
411
416
|
- lib/bridgetown-core/plugin.rb
|
412
417
|
- lib/bridgetown-core/plugin_manager.rb
|
413
418
|
- lib/bridgetown-core/publisher.rb
|
414
419
|
- lib/bridgetown-core/reader.rb
|
415
|
-
- lib/bridgetown-core/readers/collection_reader.rb
|
416
420
|
- lib/bridgetown-core/readers/data_reader.rb
|
417
421
|
- lib/bridgetown-core/readers/defaults_reader.rb
|
418
422
|
- lib/bridgetown-core/readers/layout_reader.rb
|
@@ -423,6 +427,12 @@ files:
|
|
423
427
|
- lib/bridgetown-core/regenerator.rb
|
424
428
|
- lib/bridgetown-core/related_posts.rb
|
425
429
|
- lib/bridgetown-core/renderer.rb
|
430
|
+
- lib/bridgetown-core/resource/base.rb
|
431
|
+
- lib/bridgetown-core/resource/destination.rb
|
432
|
+
- lib/bridgetown-core/resource/permalink_processor.rb
|
433
|
+
- lib/bridgetown-core/resource/taxonomy_term.rb
|
434
|
+
- lib/bridgetown-core/resource/taxonomy_type.rb
|
435
|
+
- lib/bridgetown-core/resource/transformer.rb
|
426
436
|
- lib/bridgetown-core/ruby_template_view.rb
|
427
437
|
- lib/bridgetown-core/site.rb
|
428
438
|
- lib/bridgetown-core/static_file.rb
|
@@ -439,12 +449,9 @@ files:
|
|
439
449
|
- lib/bridgetown-core/url.rb
|
440
450
|
- lib/bridgetown-core/utils.rb
|
441
451
|
- lib/bridgetown-core/utils/ansi.rb
|
442
|
-
- lib/bridgetown-core/utils/exec.rb
|
443
|
-
- lib/bridgetown-core/utils/internet.rb
|
444
452
|
- lib/bridgetown-core/utils/platforms.rb
|
445
453
|
- lib/bridgetown-core/utils/ruby_exec.rb
|
446
454
|
- lib/bridgetown-core/utils/thread_event.rb
|
447
|
-
- lib/bridgetown-core/utils/win_tz.rb
|
448
455
|
- lib/bridgetown-core/version.rb
|
449
456
|
- lib/bridgetown-core/watcher.rb
|
450
457
|
- lib/site_template/.gitignore
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Bridgetown
|
4
|
-
# A Bridgetown::Page subclass to handle processing files without reading it to
|
5
|
-
# determine the page-data and page-content based on Front Matter delimiters.
|
6
|
-
#
|
7
|
-
# The class instance is basically just a bare-bones entity with just
|
8
|
-
# attributes "dir", "name", "path", "url" defined on it.
|
9
|
-
class PageWithoutAFile < Page
|
10
|
-
Bridgetown.logger.warn "NOTICE: the PageWithoutAFile class is deprecated and" \
|
11
|
-
" will be removed in Bridgetown 0.20."
|
12
|
-
|
13
|
-
def read_yaml(*)
|
14
|
-
@data ||= {}
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Bridgetown
|
4
|
-
class CollectionReader
|
5
|
-
SPECIAL_COLLECTIONS = %w(posts data).freeze
|
6
|
-
|
7
|
-
attr_reader :site, :content
|
8
|
-
|
9
|
-
def initialize(site)
|
10
|
-
@site = site
|
11
|
-
@content = {}
|
12
|
-
end
|
13
|
-
|
14
|
-
# Read in all collections specified in the configuration
|
15
|
-
#
|
16
|
-
# Returns nothing.
|
17
|
-
def read
|
18
|
-
site.collections.each_value do |collection|
|
19
|
-
collection.read unless SPECIAL_COLLECTIONS.include?(collection.label)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "open3"
|
4
|
-
|
5
|
-
module Bridgetown
|
6
|
-
module Utils
|
7
|
-
module Exec
|
8
|
-
extend self
|
9
|
-
|
10
|
-
# Runs a program in a sub-shell.
|
11
|
-
#
|
12
|
-
# *args - a list of strings containing the program name and arguments
|
13
|
-
#
|
14
|
-
# Returns a Process::Status and a String of output in an array in
|
15
|
-
# that order.
|
16
|
-
def run(*args)
|
17
|
-
stdin, stdout, stderr, process = Open3.popen3(*args)
|
18
|
-
out = stdout.read.strip
|
19
|
-
err = stderr.read.strip
|
20
|
-
|
21
|
-
[stdin, stdout, stderr].each(&:close)
|
22
|
-
[process.value, out + err]
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Bridgetown
|
4
|
-
module Utils
|
5
|
-
module Internet
|
6
|
-
# Public: Determine whether the present device has a connection to
|
7
|
-
# the Internet. This allows plugin writers which require the outside
|
8
|
-
# world to have a neat fallback mechanism for offline building.
|
9
|
-
#
|
10
|
-
# Example:
|
11
|
-
# if Internet.connected?
|
12
|
-
# Typhoeus.get("https://pages.github.com/versions.json")
|
13
|
-
# else
|
14
|
-
# Bridgetown.logger.warn "Warning:", "Version check has been disabled."
|
15
|
-
# Bridgetown.logger.warn "", "Connect to the Internet to enable it."
|
16
|
-
# nil
|
17
|
-
# end
|
18
|
-
#
|
19
|
-
# Returns true if a DNS call can successfully be made, or false if not.
|
20
|
-
|
21
|
-
module_function
|
22
|
-
|
23
|
-
def connected?
|
24
|
-
!dns("example.com").nil?
|
25
|
-
end
|
26
|
-
|
27
|
-
def dns(domain)
|
28
|
-
require "resolv"
|
29
|
-
Resolv::DNS.open do |resolver|
|
30
|
-
resolver.getaddress(domain)
|
31
|
-
end
|
32
|
-
rescue Resolv::ResolvError, Resolv::ResolvTimeout
|
33
|
-
nil
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,75 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Bridgetown
|
4
|
-
module Utils
|
5
|
-
module WinTZ
|
6
|
-
extend self
|
7
|
-
|
8
|
-
# Public: Calculate the Timezone for Windows when the config file has a defined
|
9
|
-
# 'timezone' key.
|
10
|
-
#
|
11
|
-
# timezone - the IANA Time Zone specified in "_config.yml"
|
12
|
-
#
|
13
|
-
# Returns a string that ultimately re-defines ENV["TZ"] in Windows
|
14
|
-
def calculate(timezone)
|
15
|
-
External.require_with_graceful_fail("tzinfo") unless defined?(TZInfo)
|
16
|
-
tz = TZInfo::Timezone.get(timezone)
|
17
|
-
difference = Time.now.to_i - tz.now.to_i
|
18
|
-
#
|
19
|
-
# POSIX style definition reverses the offset sign.
|
20
|
-
# e.g. Eastern Standard Time (EST) that is 5Hrs. to the 'west' of Prime Meridian
|
21
|
-
# is denoted as:
|
22
|
-
# EST+5 (or) EST+05:00
|
23
|
-
# Reference: http://www.gnu.org/software/libc/manual/html_node/TZ-Variable.html
|
24
|
-
sign = difference.negative? ? "-" : "+"
|
25
|
-
offset = sign == "-" ? "+" : "-" unless difference.zero?
|
26
|
-
#
|
27
|
-
# convert the difference (in seconds) to hours, as a rational number, and perform
|
28
|
-
# a modulo operation on it.
|
29
|
-
modulo = modulo_of(rational_hour(difference))
|
30
|
-
#
|
31
|
-
# Format the hour as a two-digit number.
|
32
|
-
# Establish the minutes based on modulo expression.
|
33
|
-
hh = format("%<hour>02d", hour: absolute_hour(difference).ceil)
|
34
|
-
mm = modulo.zero? ? "00" : "30"
|
35
|
-
|
36
|
-
Bridgetown.logger.debug "Timezone:", "#{timezone} #{offset}#{hh}:#{mm}"
|
37
|
-
#
|
38
|
-
# Note: The 3-letter-word below doesn't have a particular significance.
|
39
|
-
"WTZ#{sign}#{hh}:#{mm}"
|
40
|
-
end
|
41
|
-
|
42
|
-
private
|
43
|
-
|
44
|
-
# Private: Convert given seconds to an hour as a rational number.
|
45
|
-
#
|
46
|
-
# seconds - supplied as an integer, it is converted to a rational number.
|
47
|
-
# 3600 - no. of seconds in an hour.
|
48
|
-
#
|
49
|
-
# Returns a rational number.
|
50
|
-
def rational_hour(seconds)
|
51
|
-
seconds.to_r / 3600
|
52
|
-
end
|
53
|
-
|
54
|
-
# Private: Convert given seconds to an hour as an absolute number.
|
55
|
-
#
|
56
|
-
# seconds - supplied as an integer, it is converted to its absolute.
|
57
|
-
# 3600 - no. of seconds in an hour.
|
58
|
-
#
|
59
|
-
# Returns an integer.
|
60
|
-
def absolute_hour(seconds)
|
61
|
-
seconds.abs / 3600
|
62
|
-
end
|
63
|
-
|
64
|
-
# Private: Perform a modulo operation on a given fraction.
|
65
|
-
#
|
66
|
-
# fraction - supplied as a rational number, its numerator is divided
|
67
|
-
# by its denominator and the remainder returned.
|
68
|
-
#
|
69
|
-
# Returns an integer.
|
70
|
-
def modulo_of(fraction)
|
71
|
-
fraction.numerator % fraction.denominator
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|