jekyll-tailwindcss 0.1.0-arm64-darwin → 0.3.0-arm64-darwin

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53ffce1860a23354185d3306f2eab7ebfe71df9f6e23486802d9f24157722f3d
4
- data.tar.gz: b6a2860550b9e5cc47b0cfd043a8f85ea6cc6032d28dec0bff0c8c1ef3311e9a
3
+ metadata.gz: ddfa6ecf094f34df164f44db591e64cba466cbbf47b4445f470bd6b3e2f4dac9
4
+ data.tar.gz: f96013ef903a9343360e3dfbb7e1c1796c3a8746aa8c52130b65a2690cc4c99e
5
5
  SHA512:
6
- metadata.gz: 52a9b347387087f13e72aca8f74c06aa6974bdda860c6abbf8262935f4b2798a315f39194decbc77c505abf798499caec39da42043e7df3ae5ec72354686c258
7
- data.tar.gz: e51d759000e31c63e8b74824d7771f357d87242d09608eaf0b4cf23c052e0cc96472b6118e6653234431060c38d89b3a9ff0793939785ce2fc90b1d7d9ab8977
6
+ metadata.gz: e8b9c7a226f13e5ea7cb5dfffd76ad12928f9952108f4e3419de0b4d463314a8e44b337acba603f2c9caa1bc6d28d26fbffbd53ac376623c2a77257269637706
7
+ data.tar.gz: aed1bab04b118e828efbb58f3fce252fb9b431fda8cb57c5c1ad8281bed43a35c367e7f20c4160fb08163e4cc33117a96af26f42410b13632ac4fea6ddd9d7d3
data/README.md CHANGED
@@ -1,53 +1,151 @@
1
1
  # Jekyll::Tailwindcss
2
2
 
3
+ Bring the fun of building with TailwindCSS into your Jekyll project (without any JavaScript)
4
+
5
+ **TL;DR** This gem borrows *heavily* from github.com/rails/tailwindcss-rails to provide platform-specific tailwind executables and provide a smooth developer experience in Jekyll projects
6
+
7
+ Much like the Rails gem, this gem wraps [the standalone executable version](https://tailwindcss.com/blog/standalone-cli) of the Tailwind CSS v3 framework. It installs these as platform-specific executables, so there are separate underlying gems per platform, but the correct gem will automatically be picked for your platform.
8
+
9
+ > “Because building a great jekyll site shouldn’t require a `node_modules` folder
10
+
3
11
  ## Installation
4
12
 
5
13
  Install the gem in your jekyll project's Gemfile by executing the following:
6
14
 
7
- ```sh
8
- $ bundle add jekyll-tailwindcss
15
+ ```
16
+ bundle add jekyll-tailwindcss
9
17
  ```
10
18
 
11
- Add it to your list of jekyll-plugins
19
+ Add the plugin to your list of jekyll plugins in `_config.yml`
12
20
 
13
21
  ```yml
14
22
  plugins:
15
23
  - jekyll-tailwindcss
16
24
  ```
17
25
 
26
+ ## Tailwind Configuration
27
+
28
+ This plugin requires you to have a tailwind configuration file (`tailwind.config.js`) at the root level of your project, which can be generated by running:
29
+
30
+ ```
31
+ bundle exec jekyll-tailwindcss init
32
+ ```
33
+
34
+ Tailwind will include the CSS for the classes found in `content` directories. For most jekyll sites, this would work well.
35
+
36
+ ```js
37
+ content: [
38
+ "./_drafts/**/*.md",
39
+ "./_includes/**/*.html",
40
+ "./_layouts/**/*.html",
41
+ "./_pages/*.{html,md}",
42
+ "./_posts/*.md",
43
+ "./*.{html,md}",
44
+ ],
45
+ ```
46
+
47
+ Learn more at https://tailwindcss.com/docs/configuration
48
+
49
+
50
+
18
51
  ## Usage
19
52
 
20
- Currently, this gem assumes you have several files in your project:
53
+ ```sh
54
+ bundle exec jekyll serve # or build
55
+ ```
56
+
57
+ Any `*.css` file processed by jekyll [^1] that contains the `@tailwind` [directive](https://tailwindcss.com/docs/functions-and-directives#config) will now be converted through the Tailwind CLI.
58
+
59
+ [^1]: Jekyll will process any file that begins with yaml [frontmatter](https://jekyllrb.com/docs/front-matter/)
21
60
 
22
- **`tailwind.config.js`**
61
+ ### Examples
23
62
 
24
- This is the tailwind configuration for your project. Learn [more here](https://tailwindcss.com/docs/configuration).
25
63
 
26
- **`_input.css`**
64
+ A CSS file with frontmatter and `@tailwind` directives:
27
65
 
28
- This file will contain your tailwind directives and any custom classes. Read more in the [docs here](https://tailwindcss.com/docs/functions-and-directives#config)
66
+ ```css
67
+ /* assets/css/styles.css */
68
+ ---
69
+ # This yaml frontmatter is required for jekyll to process the file
70
+ ---
29
71
 
30
- **`*.tailwindcss`**
72
+ @tailwind base;
73
+ @tailwind components;
74
+ @tailwind utilities;
31
75
 
32
- Any files with this extension (and contain [frontmatter](https://jekyllrb.com/docs/front-matter/)) will be processed by tailwind, and converted into a corresponding filename with a `.css` extension.
76
+ .btn {
77
+ @apply font-bold py-2 px-4 rounded !important;
78
+ }
79
+ ```
80
+
81
+ will be converted to
33
82
 
34
- For instance, `assets/css/styles.tailwindcss` will convert to `_site/assets/css/styles.css`
83
+ ```css
84
+ /* _site/assets/css/styles.css */
35
85
 
86
+ /*
87
+ * Tailwind generated CSS
88
+ * ...
89
+ */
90
+ ```
36
91
 
37
92
  ## Development
38
93
 
39
94
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
40
95
 
41
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
96
+ To install this gem on your local machine, run `bundle exec rake install`.
97
+
98
+ ### Updating to the latest upstream tailwindcss version
99
+
100
+ Update `lib/tailwindcss/upstream.rb` with the upstream version.
101
+
102
+ Run `bundle exec rake clobber` and then `bundle exec rake download` to ensure the tailwindcss binaries can be downloaded and you have the correct versions on the local disk.
103
+
104
+
105
+ ## Testing this gem
106
+
107
+ ### Running the test suite
108
+
109
+ The unit tests are run with `bundle exec rspec`
110
+
111
+ There is an additional integration test which runs in CI, `spec/integration/user_journey_test.sh` which you may also want to run.
112
+
113
+
114
+ ### Testing in a Jekyll project
115
+
116
+ If you want to test modifications to this gem, you must run `rake download` once to download the upstream `tailwindcss` executables.
117
+
118
+ Then you can point your Jekyll project's `Gemfile` at the local version of the gem as you normally would:
119
+
120
+ ``` ruby
121
+ gem "jekyll-tailwindcss", path: "/path/to/jekyll-tailwindcss"
122
+ ```
123
+
124
+ ### Cutting a release
125
+
126
+ - bump the version
127
+ - [ ] update `lib/jekyll-tailwindcss/version.rb`
128
+ - [ ] update `CHANGELOG.md`
129
+ - [ ] commit and create a git tag
130
+ - build the native gems:
131
+ - [ ] `bundle exec rake clobber` to clean up possibly old tailwindcss executables
132
+ - [ ] `bundle exec rake package`
133
+ - push
134
+ - [ ] `for g in pkg/*.gem ; do gem push $g ; done`
135
+ - [ ] `git push`
136
+ - announce
137
+ - [ ] create a release at https://github.com/vormwald/jekyll-tailwindcss/releases
42
138
 
43
139
  ## Contributing
44
140
 
45
141
  Bug reports and pull requests are welcome on GitHub at https://github.com/vormwald/jekyll-tailwindcss. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/vormwald/jekyll-tailwindcss/blob/main/CODE_OF_CONDUCT.md).
46
142
 
143
+
144
+
47
145
  ## License
48
146
 
49
147
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
50
148
 
51
149
  ## Code of Conduct
52
150
 
53
- Everyone interacting in the Jekyll::Tailwindcss project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/vormwald/jekyll-tailwindcss/blob/main/CODE_OF_CONDUCT.md).
151
+ Everyone interacting in the Jekyll::Tailwindcss project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the [code of conduct](https://github.com/vormwald/jekyll-tailwindcss/blob/main/CODE_OF_CONDUCT.md).
@@ -1,3 +1,5 @@
1
+ require "open3"
2
+
1
3
  module Jekyll
2
4
  module Converters
3
5
  class Tailwindcss < Converter
@@ -5,20 +7,43 @@ module Jekyll
5
7
  priority :low
6
8
 
7
9
  def matches(ext)
8
- /^\.tailwindcss$/i.match?(ext)
10
+ /^\.css$/i.match?(ext)
9
11
  end
10
12
 
11
13
  def output_ext(ext)
12
- ".css"
14
+ # At this point, we will have a CSS file
15
+ ext
13
16
  end
14
17
 
15
18
  def convert(content)
19
+ return content unless /@tailwind/i.match?(content)
20
+
16
21
  dev_mode = Jekyll.env == "development"
17
22
  Jekyll.logger.info "Jekyll Tailwind:", "Generating #{dev_mode ? "" : "minified "}CSS"
18
23
 
19
24
  compile_command = ::Tailwindcss::Commands.compile_command(debug: dev_mode).join(" ")
20
25
 
21
- `#{compile_command}`
26
+ output, error = nil
27
+ Open3.popen3(tailwindcss_env_options, compile_command) do |stdin, stdout, stderr, _wait_thread|
28
+ stdin.write content # write the content of *.tailwindcss to the tailwindcss CLI as input
29
+ stdin.close
30
+ error = stderr.read
31
+ output = stdout.read
32
+ end
33
+ Jekyll.logger.warn "Jekyll Tailwind:", error unless error.nil?
34
+
35
+ output
36
+ rescue => e
37
+ Jekyll.logger.error "Jekyll Tailwind:", e.message
38
+ content
39
+ end
40
+
41
+ private
42
+
43
+ def tailwindcss_env_options
44
+ # Without this ENV you'll get a warning about `Browserslist: caniuse-lite is outdated`
45
+ # Since we're using the CLI, we can't update the data, so we ignore it.
46
+ {"BROWSERSLIST_IGNORE_OLD_DATA" => "1"}
22
47
  end
23
48
  end
24
49
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module Tailwindcss
5
- VERSION = "0.1.0"
5
+ VERSION = "0.3.0"
6
6
  end
7
7
  end
@@ -76,8 +76,8 @@ module Tailwindcss
76
76
  def compile_command(debug: false, **kwargs)
77
77
  command = [
78
78
  executable(**kwargs),
79
- "-i", "./_input.css",
80
- "-c", "./tailwind.config.js"
79
+ "--input", "-",
80
+ "--config", "./tailwind.config.js"
81
81
  ]
82
82
 
83
83
  command << "--minify" unless debug
metadata CHANGED
@@ -1,20 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-tailwindcss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: arm64-darwin
6
6
  authors:
7
7
  - Mike Vormwald
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-16 00:00:00.000000000 Z
11
+ date: 2024-06-09 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description:
13
+ description:
14
14
  email:
15
15
  - mvormwald@gmail.com
16
16
  executables:
17
- - tailwindcss
17
+ - jekyll-tailwindcss
18
18
  extensions: []
19
19
  extra_rdoc_files: []
20
20
  files:
@@ -23,7 +23,7 @@ files:
23
23
  - README.md
24
24
  - Rakefile
25
25
  - exe/arm64-darwin/tailwindcss
26
- - exe/tailwindcss
26
+ - exe/jekyll-tailwindcss
27
27
  - lib/jekyll-tailwindcss.rb
28
28
  - lib/jekyll-tailwindcss/version.rb
29
29
  - lib/jekyll/converters/tailwindcss.rb
@@ -34,7 +34,7 @@ licenses:
34
34
  - MIT
35
35
  metadata:
36
36
  homepage_uri: https://github.com/vormwald/jekyll-tailwindcss
37
- post_install_message:
37
+ post_install_message:
38
38
  rdoc_options: []
39
39
  require_paths:
40
40
  - lib
@@ -49,8 +49,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
49
49
  - !ruby/object:Gem::Version
50
50
  version: '0'
51
51
  requirements: []
52
- rubygems_version: 3.4.20
53
- signing_key:
52
+ rubygems_version: 3.5.11
53
+ signing_key:
54
54
  specification_version: 4
55
55
  summary: Integrate Tailwind CSS into your Jekyll site.
56
56
  test_files: []
File without changes