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 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
@@ -0,0 +1,3 @@
1
+ .jekyll-cache
2
+ _site
3
+ node_modules
data/.rubocop.yml ADDED
@@ -0,0 +1,4 @@
1
+ require: rubocop-jekyll
2
+
3
+ inherit_gem:
4
+ rubocop-jekyll: .rubocop.yml
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in jekyll-postcss.gemspec
6
+ gemspec
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,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
@@ -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,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "jekyll"
4
+ require "jekyll-postcss-v2/version"
5
+ require "jekyll-postcss-v2/hook"
6
+
7
+ module Jekyll
8
+ module PostCssV2
9
+ end
10
+ 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
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module PostCssV2
5
+ VERSION = "1.0.0"
6
+ end
7
+ 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: []