jekyll-postcss-v2 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []