jekyll-postcss-v2 1.0.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 +7 -0
- data/.gitignore +3 -0
- data/.rubocop.yml +4 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +110 -0
- data/README.md +58 -0
- data/Rakefile +3 -0
- data/jekyll-postcss-v2.gemspec +37 -0
- data/lib/jekyll-postcss-v2.rb +10 -0
- data/lib/jekyll-postcss-v2/hook.rb +44 -0
- data/lib/jekyll-postcss-v2/version.rb +7 -0
- metadata +125 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: ba330d199aa1671ac43e2cfe7d61072d6d73b6d5e3280d1051bf75113948440c
|
|
4
|
+
data.tar.gz: 7acf137ddb7e194a625ff6b2a8ec09afb4a1f774fa240d5c4a36e3347d7dddbb
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 3682a8afa70f816943a0ee63e04cdb25276cfe748699e17af9d5d2d5bda639adb4e17255fef5fdd931bbde3d8f6ef21e637deb786d34072fa0517e451d531dc4
|
|
7
|
+
data.tar.gz: cbfff3eedc371741b44bfa6ea7eabdbac94ab8c72c5e98804f214c273efc849f61183989b705b639a4547ec2662e8f82cc8c0aec3d31c9e9e82fe1d93b3b17f4
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
jekyll-postcss-v2 (1.0.0)
|
|
5
|
+
|
|
6
|
+
GEM
|
|
7
|
+
remote: https://rubygems.org/
|
|
8
|
+
specs:
|
|
9
|
+
addressable (2.7.0)
|
|
10
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
11
|
+
ast (2.4.2)
|
|
12
|
+
colorator (1.1.0)
|
|
13
|
+
concurrent-ruby (1.1.9)
|
|
14
|
+
diff-lcs (1.4.4)
|
|
15
|
+
em-websocket (0.5.2)
|
|
16
|
+
eventmachine (>= 0.12.9)
|
|
17
|
+
http_parser.rb (~> 0.6.0)
|
|
18
|
+
eventmachine (1.2.7)
|
|
19
|
+
ffi (1.15.1)
|
|
20
|
+
forwardable-extended (2.6.0)
|
|
21
|
+
http_parser.rb (0.6.0)
|
|
22
|
+
i18n (1.8.10)
|
|
23
|
+
concurrent-ruby (~> 1.0)
|
|
24
|
+
jaro_winkler (1.5.4)
|
|
25
|
+
jekyll (4.2.0)
|
|
26
|
+
addressable (~> 2.4)
|
|
27
|
+
colorator (~> 1.0)
|
|
28
|
+
em-websocket (~> 0.5)
|
|
29
|
+
i18n (~> 1.0)
|
|
30
|
+
jekyll-sass-converter (~> 2.0)
|
|
31
|
+
jekyll-watch (~> 2.0)
|
|
32
|
+
kramdown (~> 2.3)
|
|
33
|
+
kramdown-parser-gfm (~> 1.0)
|
|
34
|
+
liquid (~> 4.0)
|
|
35
|
+
mercenary (~> 0.4.0)
|
|
36
|
+
pathutil (~> 0.9)
|
|
37
|
+
rouge (~> 3.0)
|
|
38
|
+
safe_yaml (~> 1.0)
|
|
39
|
+
terminal-table (~> 2.0)
|
|
40
|
+
jekyll-sass-converter (2.1.0)
|
|
41
|
+
sassc (> 2.0.1, < 3.0)
|
|
42
|
+
jekyll-watch (2.2.1)
|
|
43
|
+
listen (~> 3.0)
|
|
44
|
+
kramdown (2.3.1)
|
|
45
|
+
rexml
|
|
46
|
+
kramdown-parser-gfm (1.1.0)
|
|
47
|
+
kramdown (~> 2.0)
|
|
48
|
+
liquid (4.0.3)
|
|
49
|
+
listen (3.5.1)
|
|
50
|
+
rb-fsevent (~> 0.10, >= 0.10.3)
|
|
51
|
+
rb-inotify (~> 0.9, >= 0.9.10)
|
|
52
|
+
mercenary (0.4.0)
|
|
53
|
+
parallel (1.20.1)
|
|
54
|
+
parser (3.0.1.1)
|
|
55
|
+
ast (~> 2.4.1)
|
|
56
|
+
pathutil (0.16.2)
|
|
57
|
+
forwardable-extended (~> 2.6)
|
|
58
|
+
powerpack (0.1.3)
|
|
59
|
+
public_suffix (4.0.6)
|
|
60
|
+
rainbow (3.0.0)
|
|
61
|
+
rake (13.0.3)
|
|
62
|
+
rb-fsevent (0.11.0)
|
|
63
|
+
rb-inotify (0.10.1)
|
|
64
|
+
ffi (~> 1.0)
|
|
65
|
+
rexml (3.2.5)
|
|
66
|
+
rouge (3.26.0)
|
|
67
|
+
rspec (3.10.0)
|
|
68
|
+
rspec-core (~> 3.10.0)
|
|
69
|
+
rspec-expectations (~> 3.10.0)
|
|
70
|
+
rspec-mocks (~> 3.10.0)
|
|
71
|
+
rspec-core (3.10.1)
|
|
72
|
+
rspec-support (~> 3.10.0)
|
|
73
|
+
rspec-expectations (3.10.1)
|
|
74
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
75
|
+
rspec-support (~> 3.10.0)
|
|
76
|
+
rspec-mocks (3.10.2)
|
|
77
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
78
|
+
rspec-support (~> 3.10.0)
|
|
79
|
+
rspec-support (3.10.2)
|
|
80
|
+
rubocop (0.62.0)
|
|
81
|
+
jaro_winkler (~> 1.5.1)
|
|
82
|
+
parallel (~> 1.10)
|
|
83
|
+
parser (>= 2.5, != 2.5.1.1)
|
|
84
|
+
powerpack (~> 0.1)
|
|
85
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
86
|
+
ruby-progressbar (~> 1.7)
|
|
87
|
+
unicode-display_width (~> 1.4.0)
|
|
88
|
+
rubocop-jekyll (0.5.1)
|
|
89
|
+
rubocop (>= 0.57.2, < 0.63.0)
|
|
90
|
+
ruby-progressbar (1.11.0)
|
|
91
|
+
safe_yaml (1.0.5)
|
|
92
|
+
sassc (2.4.0)
|
|
93
|
+
ffi (~> 1.9)
|
|
94
|
+
terminal-table (2.0.0)
|
|
95
|
+
unicode-display_width (~> 1.1, >= 1.1.1)
|
|
96
|
+
unicode-display_width (1.4.1)
|
|
97
|
+
|
|
98
|
+
PLATFORMS
|
|
99
|
+
ruby
|
|
100
|
+
|
|
101
|
+
DEPENDENCIES
|
|
102
|
+
bundler (~> 2.1)
|
|
103
|
+
jekyll (>= 3.0)
|
|
104
|
+
jekyll-postcss-v2!
|
|
105
|
+
rake (>= 12.3.3)
|
|
106
|
+
rspec (~> 3.0)
|
|
107
|
+
rubocop-jekyll (~> 0.5.1)
|
|
108
|
+
|
|
109
|
+
BUNDLED WITH
|
|
110
|
+
2.1.4
|
data/README.md
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Jekyll PostCSS v2
|
|
2
|
+
A revamp of [jekyll-postcss](https://github.com/mhanberg/jekyll-postcss) that uses Jekyll hooks and generally tries to be less complicated.
|
|
3
|
+
|
|
4
|
+
## Table of contents
|
|
5
|
+
|
|
6
|
+
- [Installation](README.md#installation)
|
|
7
|
+
- [Usage](README.md#usage)
|
|
8
|
+
- [Why v2?](README.md#why-v2)
|
|
9
|
+
- [Why not?](README.md#why-not)
|
|
10
|
+
- [TODO](README.md#todo)
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
_`Gemfile`_
|
|
15
|
+
```ruby
|
|
16
|
+
group :jekyll_plugins do
|
|
17
|
+
gem 'jekyll-postcss-v2'
|
|
18
|
+
end
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
_`_config.yml`
|
|
22
|
+
<sup>(Until [jekyll#8585](https://github.com/jekyll/jekyll/pull/8585) is released)</sup>_
|
|
23
|
+
```yml
|
|
24
|
+
plugins:
|
|
25
|
+
- jekyll-postcss-v2
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
_In your jekyll source directory:_
|
|
29
|
+
```bash
|
|
30
|
+
npm i -D postcss postcss-cli
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
Configure your `postcss.config.js` file in your jekyll source directory.
|
|
36
|
+
|
|
37
|
+
## Why v2?
|
|
38
|
+
- Better logging to help catch when things aren't running
|
|
39
|
+
- Processes the output file on disk, skipping the need to parse Sass
|
|
40
|
+
- Doesn't transfer file contents over a network or cli parameter, avoiding issues when files are too large for buffers
|
|
41
|
+
- Respects the Jekyll source directory for configuration files
|
|
42
|
+
- Fewer moving parts. No sockets, no bundled node scripts, no internal caching
|
|
43
|
+
- Probably works with Tailwind JIT<sup>[citation needed]</sup> 🤷♂️
|
|
44
|
+
|
|
45
|
+
## Why not?
|
|
46
|
+
- Potentially slower<sup>[citation needed]</sup>, but more than fast enough for my needs.
|
|
47
|
+
|
|
48
|
+
## TODO
|
|
49
|
+
- Write tests
|
|
50
|
+
- Wire up a CI
|
|
51
|
+
- Add configuration
|
|
52
|
+
- _postcss.config.js location_
|
|
53
|
+
- _node_modules location_
|
|
54
|
+
- Profile in production / development
|
|
55
|
+
- Investigate what needs to be done around the sourcemap
|
|
56
|
+
- More logging.
|
|
57
|
+
- Before/after filesizes
|
|
58
|
+
- Timings
|
data/Rakefile
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
|
+
require "jekyll-postcss-v2/version"
|
|
6
|
+
|
|
7
|
+
Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
|
|
8
|
+
spec.name = "jekyll-postcss-v2"
|
|
9
|
+
spec.version = Jekyll::PostCssV2::VERSION
|
|
10
|
+
spec.authors = ["Liam Bigelow"]
|
|
11
|
+
spec.email = ["liam@bigelow.io"]
|
|
12
|
+
spec.summary = "Straight up PostCSS for Jekyll."
|
|
13
|
+
spec.description = "Straight up PostCSS for Jekyll."
|
|
14
|
+
spec.homepage = "https://github.com/bglw/jekyll-postcss-v2"
|
|
15
|
+
spec.license = "MIT"
|
|
16
|
+
|
|
17
|
+
if spec.respond_to?(:metadata)
|
|
18
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
|
19
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
|
20
|
+
else
|
|
21
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
|
22
|
+
"public gem pushes."
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r!^(test|spec|features)/!) }
|
|
27
|
+
end
|
|
28
|
+
spec.bindir = "exe"
|
|
29
|
+
spec.executables = spec.files.grep(%r!^exe/!) { |f| File.basename(f) }
|
|
30
|
+
spec.require_paths = ["lib"]
|
|
31
|
+
|
|
32
|
+
spec.add_development_dependency "bundler", "~> 2.1"
|
|
33
|
+
spec.add_development_dependency "jekyll", ">= 3.0"
|
|
34
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
|
35
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
|
36
|
+
spec.add_development_dependency "rubocop-jekyll", "~> 0.5.1"
|
|
37
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "pathname"
|
|
4
|
+
|
|
5
|
+
module PostCssV2
|
|
6
|
+
class Engine
|
|
7
|
+
def initialize(source)
|
|
8
|
+
@script = Pathname.new(source + "/node_modules/.bin/postcss")
|
|
9
|
+
unless @script.exist?
|
|
10
|
+
Jekyll.logger.error "PostCSS v2:",
|
|
11
|
+
"PostCSS not found.
|
|
12
|
+
Make sure postcss and postcss-cli
|
|
13
|
+
are installed in your Jekyll source."
|
|
14
|
+
Jekyll.logger.error "PostCSS v2:",
|
|
15
|
+
"Couldn't find #{@script}"
|
|
16
|
+
exit 1
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
config = Pathname.new(source + "/postcss.config.js")
|
|
20
|
+
unless config.exist?
|
|
21
|
+
Jekyll.logger.error "PostCSS v2:",
|
|
22
|
+
"postcss.config.js not found.
|
|
23
|
+
Make sure it exists in your Jekyll source."
|
|
24
|
+
Jekyll.logger.error "PostCSS v2:",
|
|
25
|
+
"Couldn't find #{config}"
|
|
26
|
+
exit 1
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def process(page)
|
|
31
|
+
file_path = Pathname.new(page.site.dest + page.url)
|
|
32
|
+
postcss_command = `#{@script} #{file_path} -r`
|
|
33
|
+
Jekyll.logger.info "PostCSS v2:",
|
|
34
|
+
"Rewrote #{page.url} #{postcss_command}"
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
Jekyll::Hooks.register :pages, :post_write do |page|
|
|
40
|
+
if %r!\.css$! =~ page.url
|
|
41
|
+
engine = PostCssV2::Engine.new(page.site.source)
|
|
42
|
+
engine.process(page)
|
|
43
|
+
end
|
|
44
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: jekyll-postcss-v2
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Liam Bigelow
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2021-06-12 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: bundler
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '2.1'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '2.1'
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: jekyll
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '3.0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '3.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rake
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: 12.3.3
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - ">="
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: 12.3.3
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: rspec
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - "~>"
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '3.0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - "~>"
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '3.0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: rubocop-jekyll
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 0.5.1
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 0.5.1
|
|
83
|
+
description: Straight up PostCSS for Jekyll.
|
|
84
|
+
email:
|
|
85
|
+
- liam@bigelow.io
|
|
86
|
+
executables: []
|
|
87
|
+
extensions: []
|
|
88
|
+
extra_rdoc_files: []
|
|
89
|
+
files:
|
|
90
|
+
- ".gitignore"
|
|
91
|
+
- ".rubocop.yml"
|
|
92
|
+
- Gemfile
|
|
93
|
+
- Gemfile.lock
|
|
94
|
+
- README.md
|
|
95
|
+
- Rakefile
|
|
96
|
+
- jekyll-postcss-v2.gemspec
|
|
97
|
+
- lib/jekyll-postcss-v2.rb
|
|
98
|
+
- lib/jekyll-postcss-v2/hook.rb
|
|
99
|
+
- lib/jekyll-postcss-v2/version.rb
|
|
100
|
+
homepage: https://github.com/bglw/jekyll-postcss-v2
|
|
101
|
+
licenses:
|
|
102
|
+
- MIT
|
|
103
|
+
metadata:
|
|
104
|
+
homepage_uri: https://github.com/bglw/jekyll-postcss-v2
|
|
105
|
+
source_code_uri: https://github.com/bglw/jekyll-postcss-v2
|
|
106
|
+
post_install_message:
|
|
107
|
+
rdoc_options: []
|
|
108
|
+
require_paths:
|
|
109
|
+
- lib
|
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
|
+
requirements:
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: '0'
|
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
|
+
requirements:
|
|
117
|
+
- - ">="
|
|
118
|
+
- !ruby/object:Gem::Version
|
|
119
|
+
version: '0'
|
|
120
|
+
requirements: []
|
|
121
|
+
rubygems_version: 3.0.3
|
|
122
|
+
signing_key:
|
|
123
|
+
specification_version: 4
|
|
124
|
+
summary: Straight up PostCSS for Jekyll.
|
|
125
|
+
test_files: []
|