bridgetown-core 1.1.0.beta3 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bridgetown-core/configuration.rb +2 -1
- data/lib/bridgetown-core/configurations/purgecss.rb +37 -25
- data/lib/bridgetown-core/configurations/shoelace.rb +25 -3
- data/lib/bridgetown-core/configurations/tailwindcss.rb +6 -4
- data/lib/bridgetown-core/version.rb +1 -1
- data/lib/site_template/TEMPLATES/liquid/_layouts/default.liquid +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1a8e2712c8b2f218d0082a2d890bb53401efb354a055c323189bbefd1d9f9a6
|
4
|
+
data.tar.gz: 99d3049dabe2ba5e3e812240268fb754c842b1bbcf0acbe46345fbc1ada7194f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d820196117aad565c3dd7150c535ccd98b08b1d4cdad4b439855ea4a2666ce58f67abe67a0b68dc40959fd3e9d7eac299bf9261a43f4ef119294549bd7a95595
|
7
|
+
data.tar.gz: 40a94f0d056e35ea8f1f34d2e0f5684ed0990ee2a2804aac4d91766d2d8ead3528dbdbbf555f14035878a1287a58cf60a70e9ffc7a60a41bcf6c1cfcf9b2bf31
|
@@ -48,7 +48,6 @@ module Bridgetown
|
|
48
48
|
"content_engine" => "resource",
|
49
49
|
"markdown" => "kramdown",
|
50
50
|
"highlighter" => "rouge",
|
51
|
-
"excerpt_separator" => "\n\n",
|
52
51
|
|
53
52
|
# Serving
|
54
53
|
"port" => "4000",
|
@@ -155,6 +154,8 @@ module Bridgetown
|
|
155
154
|
raise ArgumentError,
|
156
155
|
"No parser for '#{filename}' is available. Use a .y(a)ml or .toml file instead."
|
157
156
|
end
|
157
|
+
rescue Psych::DisallowedClass => e
|
158
|
+
raise "Unable to parse `#{File.basename(filename)}'. #{e.message}"
|
158
159
|
end
|
159
160
|
|
160
161
|
# Public: Generate list of configuration files from the override
|
@@ -10,33 +10,45 @@ create_builder "purgecss.rb" do
|
|
10
10
|
<<~RUBY
|
11
11
|
class Builders::Purgecss < SiteBuilder
|
12
12
|
def build
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
13
|
+
return if config[:watch] # don't run in "watch mode"
|
14
|
+
|
15
|
+
hook :site, :post_write do
|
16
|
+
purgecss_file = site.in_root_dir("purgecss.config.js")
|
17
|
+
|
18
|
+
unless File.exist?(purgecss_file)
|
19
|
+
config_js = <<~PURGE
|
20
|
+
module.exports = {
|
21
|
+
content: ['frontend/javascript/*.js','./output/**/*.html'],
|
22
|
+
output: "./output/_bridgetown/static"
|
23
|
+
}
|
24
|
+
PURGE
|
25
|
+
File.write(purgecss_file, config_js.strip)
|
26
|
+
end
|
27
|
+
|
28
|
+
manifest_file = File.join(site.frontend_bundling_path, "manifest.json")
|
29
|
+
|
30
|
+
if File.exist?(manifest_file)
|
31
|
+
manifest = JSON.parse(File.read(manifest_file))
|
32
|
+
|
33
|
+
if Bridgetown::Utils.frontend_bundler_type == :esbuild
|
34
|
+
css_file = manifest["styles/index.css"].split("/").last
|
35
|
+
css_path = ["output", "_bridgetown", "static", css_file].join("/")
|
36
|
+
else
|
29
37
|
css_file = manifest["main.css"].split("/").last
|
30
38
|
css_path = ["output", "_bridgetown", "static", "css", css_file].join("/")
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
39
|
+
end
|
40
|
+
|
41
|
+
Bridgetown.logger.info "PurgeCSS", "Purging \#{css_file}"
|
42
|
+
oldsize = File.stat(css_path).size / 1000
|
43
|
+
system "./node_modules/.bin/purgecss -c purgecss.config.js -css \#{css_path}"
|
44
|
+
newsize = File.stat(css_path).size / 1000
|
45
|
+
|
46
|
+
if newsize < oldsize
|
47
|
+
Bridgetown.logger.info "PurgeCSS",
|
48
|
+
"Done! File size reduced from \#{oldsize}kB to \#{newsize}kB"
|
49
|
+
else
|
50
|
+
Bridgetown.logger.info "PurgeCSS",
|
51
|
+
"Done. No apparent change in file size (\#{newsize}kB)."
|
40
52
|
end
|
41
53
|
end
|
42
54
|
end
|
@@ -4,14 +4,27 @@ say_status :shoelace, "Installing Shoelace..."
|
|
4
4
|
|
5
5
|
run "yarn add @shoelace-style/shoelace"
|
6
6
|
|
7
|
+
stylesheet_import = <<~CSS
|
8
|
+
/* Import the base Shoelace stylesheet: */
|
9
|
+
@import "@shoelace-style/shoelace/dist/themes/light.css";
|
10
|
+
|
11
|
+
CSS
|
12
|
+
|
13
|
+
if File.exist?("frontend/styles/index.css")
|
14
|
+
prepend_to_file "frontend/styles/index.css", stylesheet_import
|
15
|
+
elsif File.exist?("frontend/styles/index.scss")
|
16
|
+
prepend_to_file "frontend/styles/index.scss", stylesheet_import
|
17
|
+
else
|
18
|
+
say "\nPlease add the following lines to your CSS index file:"
|
19
|
+
say stylesheet_import
|
20
|
+
end
|
21
|
+
|
7
22
|
say 'Adding Shoelace to "frontend/javascript/index.js"...', :magenta
|
8
23
|
|
9
24
|
javascript_import do
|
10
25
|
<<~JS
|
11
|
-
// Import the base Shoelace stylesheet:
|
12
|
-
import "@shoelace-style/shoelace/dist/themes/light.css"
|
13
26
|
|
14
|
-
// Example components
|
27
|
+
// Example Shoelace components. Mix 'n' match however you like!
|
15
28
|
import "@shoelace-style/shoelace/dist/components/button/button.js"
|
16
29
|
import "@shoelace-style/shoelace/dist/components/icon/icon.js"
|
17
30
|
import "@shoelace-style/shoelace/dist/components/spinner/spinner.js"
|
@@ -45,6 +58,15 @@ else
|
|
45
58
|
'"webpack-dev": "yarn shoelace:copy-assets && webpack'
|
46
59
|
end
|
47
60
|
|
61
|
+
if File.exist?(".gitignore")
|
62
|
+
append_to_file ".gitignore" do
|
63
|
+
<<~FILES
|
64
|
+
|
65
|
+
src/shoelace-assets
|
66
|
+
FILES
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
48
70
|
say_status :shoelace, "Shoelace is now configured!"
|
49
71
|
|
50
72
|
say 'For further reading, check out "https://shoelace.style"', :blue
|
@@ -45,11 +45,13 @@ insert_into_file "Rakefile",
|
|
45
45
|
JS
|
46
46
|
end
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
if File.exist?(".gitignore")
|
49
|
+
append_to_file ".gitignore" do
|
50
|
+
<<~FILES
|
50
51
|
|
51
|
-
|
52
|
-
|
52
|
+
frontend/styles/jit-refresh.css
|
53
|
+
FILES
|
54
|
+
end
|
53
55
|
end
|
54
56
|
|
55
57
|
create_builder "tailwind_jit.rb" do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<!doctype html>
|
2
2
|
<html lang="{{ site.locale }}">
|
3
3
|
<head>
|
4
|
-
{% render "head", metadata: site.metadata, title:
|
4
|
+
{% render "head", metadata: site.metadata, title: resource.data.title %}
|
5
5
|
</head>
|
6
6
|
<body class="{{ resource.data.layout }} {{ resource.data.page_class }}">
|
7
7
|
{% render "navbar", metadata: site.metadata, resource: resource %}
|
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: 1.1.0
|
4
|
+
version: 1.1.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: 2022-
|
11
|
+
date: 2022-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -608,9 +608,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
608
608
|
version: 2.7.0
|
609
609
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
610
610
|
requirements:
|
611
|
-
- - "
|
611
|
+
- - ">="
|
612
612
|
- !ruby/object:Gem::Version
|
613
|
-
version:
|
613
|
+
version: '0'
|
614
614
|
requirements: []
|
615
615
|
rubygems_version: 3.1.4
|
616
616
|
signing_key:
|