jekyll-tailwindcss 0.1.0-aarch64-linux → 0.2.0-aarch64-linux

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: 402ab605fb655b2532fb23e3170d2db1f8f7f94aa446e0a2aae46cbe86f9a1ba
4
- data.tar.gz: 6544374dbb756ecf5f78493b7c428ae0a7e8611369150af0fe0308a62e76922f
3
+ metadata.gz: 4efd378135ced494aea5226f3d6b0208de1a7b3ff53f48393f293d62855f0a0e
4
+ data.tar.gz: ac4ec32a658deac536de10fb9024ac08e6ee9628b69e273fa35c699f4d7a0ad5
5
5
  SHA512:
6
- metadata.gz: bcb0c8bcf79670fa3ddfcb77ff0c8876555b917016f128469cd292916310bbcce4bf46301c32d7f0e2172191f51174ab0a6201ee53cd410e82dd5762a4c9478e
7
- data.tar.gz: fc30c5b4ed877a34940de51328d405507512708b585a29ba4bee0ae7daff48280c98e1b62dc1ca8eeaf86e013954991791d865c4f5ef988eeeef88fe7d4bb344
6
+ metadata.gz: c38714b1b5bfcf8db57286ec851c5f9290ea0003d053d83a661fb08084c45db1df0e5f2aa92a441aae6c812c5494f78fa69deb86f5ae16cd2f6e1f671b95b796
7
+ data.tar.gz: f2ad4c588411e8d9ed5a02f06b9780658d228d398671c5aa7fab415b8bafb1d063eaf581e0b2ea896443ed1b3e86571b7da3844e49e3dede01760c8228ac667e
data/README.md CHANGED
@@ -1,53 +1,152 @@
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 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
+ "./_includes/**/*.{html,liquid}",
39
+ "./_layouts/**/*.{html,liquid}",
40
+ "./_pages/*.{html,liquid}",
41
+ "./_posts/**/*.md",
42
+ "./*.md",
43
+ "./*.html",
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/)
60
+
61
+ ### Examples
21
62
 
22
- **`tailwind.config.js`**
23
63
 
24
- This is the tailwind configuration for your project. Learn [more here](https://tailwindcss.com/docs/configuration).
64
+ A CSS file with frontmatter and `@tailwind` directives:
25
65
 
26
- **`_input.css`**
66
+ ```css
67
+ /* assets/css/styles.css */
68
+ ---
69
+ # This yaml frontmatter is required for jekyll to process the file
70
+ ---
27
71
 
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)
72
+ @tailwind base;
73
+ @tailwind components;
74
+ @tailwind utilities;
29
75
 
30
- **`*.tailwindcss`**
76
+ .btn {
77
+ @apply font-bold py-2 px-4 rounded !important;
78
+ }
79
+ ```
80
+
81
+ will be converted to
82
+
83
+ ```css
84
+ /* _site/assets/css/styles.css */
31
85
 
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.
86
+ /*
87
+ * Tailwind generated CSS
88
+ */
89
+ ```
33
90
 
34
- For instance, `assets/css/styles.tailwindcss` will convert to `_site/assets/css/styles.css`
35
91
 
36
92
 
37
93
  ## Development
38
94
 
39
95
  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
96
 
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).
97
+ To install this gem on your local machine, run `bundle exec rake install`.
98
+
99
+ ### Updating to the latest upstream tailwindcss version
100
+
101
+ Update `lib/tailwindcss/upstream.rb` with the upstream version.
102
+
103
+ 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.
104
+
105
+
106
+ ## Testing this gem
107
+
108
+ ### Running the test suite
109
+
110
+ The unit tests are run with `bundle exec rspec`
111
+
112
+ There is an additional integration test which runs in CI, `spec/integration/user_journey_test.sh` which you may also want to run.
113
+
114
+
115
+ ### Testing in a Jekyll project
116
+
117
+ If you want to test modifications to this gem, you must run `rake download` once to download the upstream `tailwindcss` executables.
118
+
119
+ Then you can point your Jekyll project's `Gemfile` at the local version of the gem as you normally would:
120
+
121
+ ``` ruby
122
+ gem "jekyll-tailwindcss", path: "/path/to/jekyll-tailwindcss"
123
+ ```
124
+
125
+ ### Cutting a release
126
+
127
+ - bump the version
128
+ - [ ] update `lib/jekyll-tailwindcss/version.rb`
129
+ - [ ] update `CHANGELOG.md`
130
+ - [ ] commit and create a git tag
131
+ - build the native gems:
132
+ - [ ] `bundle exec rake clobber` to clean up possibly old tailwindcss executables
133
+ - [ ] `bundle exec rake package`
134
+ - push
135
+ - [ ] `for g in pkg/*.gem ; do gem push $g ; done`
136
+ - [ ] `git push`
137
+ - announce
138
+ - [ ] create a release at https://github.com/vormwald/jekyll-tailwindcss/releases
42
139
 
43
140
  ## Contributing
44
141
 
45
142
  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
143
 
144
+
145
+
47
146
  ## License
48
147
 
49
148
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
50
149
 
51
150
  ## Code of Conduct
52
151
 
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).
152
+ 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.2.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,16 +1,16 @@
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.2.0
5
5
  platform: aarch64-linux
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-04-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description:
13
+ description:
14
14
  email:
15
15
  - mvormwald@gmail.com
16
16
  executables:
@@ -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.7
53
+ signing_key:
54
54
  specification_version: 4
55
55
  summary: Integrate Tailwind CSS into your Jekyll site.
56
56
  test_files: []