jekyll-vite 0.0.2 → 0.0.3
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 +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +13 -24
- data/lib/jekyll/vite/config.rb +3 -3
- data/lib/jekyll/vite/generator.rb +25 -7
- data/lib/jekyll/vite/proxy.rb +1 -2
- data/lib/jekyll/vite/tags.rb +14 -2
- data/lib/jekyll/vite/version.rb +1 -1
- metadata +60 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09f74ae904a39710fe2f34f9ec3ff05e66be66ea18367446f90bbd0cbc8bac72'
|
4
|
+
data.tar.gz: e4b55188f946f6e954875ca7d18b439f17723765514f5ae017602d8b18e498b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37cc23bee69476952fbc375f5f9af05a7de2ec3a8d673953cd10078b96a5f04f5a850edbb8c3d241ba4a2052c932271970d46bcaf09a94083ebe3d24d226fe36
|
7
|
+
data.tar.gz: 40c5d905b8825b6a62b583c01cd2d2dc1fdcdee2615bc0d3c18257b783a930b8793f95b93053855d105e98252d79835ad1037448bb4e2fee5d26b454fd7e8b86
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## <small>0.0.3 (2021-07-05)</small>
|
2
|
+
|
3
|
+
* docs: Add documentation site and add test coverage (#1) ([d88f4bb](https://github.com/ElMassimo/vite_ruby/commit/d88f4bb)), closes [#1](https://github.com/ElMassimo/vite_ruby/issues/1)
|
4
|
+
* docs: Avoid adding netlify.toml to the final site ([63514c6](https://github.com/ElMassimo/vite_ruby/commit/63514c6))
|
5
|
+
* docs: Avoid dark theme flash ([96aea65](https://github.com/ElMassimo/vite_ruby/commit/96aea65))
|
6
|
+
* docs: Debug netlify cache ([ab0806e](https://github.com/ElMassimo/vite_ruby/commit/ab0806e))
|
7
|
+
* docs: Deploy to netlify (#2) ([efb0683](https://github.com/ElMassimo/vite_ruby/commit/efb0683)), closes [#2](https://github.com/ElMassimo/vite_ruby/issues/2)
|
8
|
+
|
9
|
+
|
10
|
+
|
1
11
|
## [0.0.2](https://github.com/ElMassimo/vite_ruby/compare/v0.0.1...v0.0.2) (2021-07-03)
|
2
12
|
|
3
13
|
|
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
<h1 align="center">
|
2
|
-
<a href="https://vite
|
2
|
+
<a href="https://jekyll-vite.netlify.app/">
|
3
3
|
<img src="https://raw.githubusercontent.com/ElMassimo/vite_ruby/main/docs/public/logo.svg" width="120px"/>
|
4
4
|
</a>
|
5
5
|
|
6
6
|
<br>
|
7
7
|
|
8
|
-
<a href="https://vite
|
8
|
+
<a href="https://jekyll-vite.netlify.app/">
|
9
9
|
Jekyll ➕ Vite.js
|
10
10
|
</a>
|
11
11
|
|
@@ -31,7 +31,7 @@
|
|
31
31
|
</h1>
|
32
32
|
|
33
33
|
[vite ruby]: https://github.com/ElMassimo/vite-ruby
|
34
|
-
[website]: https://vite
|
34
|
+
[website]: https://jekyll-vite.netlify.app/
|
35
35
|
[jekyll]: https://jekyllrb.com/
|
36
36
|
[configuration reference]: https://vite-ruby.netlify.app/config/
|
37
37
|
[features]: https://vite-ruby.netlify.app/guide/introduction.html
|
@@ -44,6 +44,7 @@
|
|
44
44
|
[bundling]: https://vitejs.dev/guide/why.html#why-bundle-for-production
|
45
45
|
[rollup.js]: https://rollupjs.org
|
46
46
|
[esbuild]: https://esbuild.github.io/
|
47
|
+
[example]: https://github.com/ElMassimo/jekyll-vite/tree/main/docs
|
47
48
|
|
48
49
|
Use [Vite.js] in [Jekyll] and enjoy a modern assets pipeline! ⚡️
|
49
50
|
|
@@ -53,7 +54,7 @@ Use [Vite.js] in [Jekyll] and enjoy a modern assets pipeline! ⚡️
|
|
53
54
|
|
54
55
|
- ⚡️ Blazing fast hot reload
|
55
56
|
- 📦 Zero-config builds
|
56
|
-
- 🎨 Use your favorite
|
57
|
+
- 🎨 Use your favorite tools (TypeScript, Tailwind CSS, etc.)
|
57
58
|
|
58
59
|
## Why Vite? 🤔
|
59
60
|
|
@@ -66,6 +67,13 @@ a result there is an active ecosystem of plugins and tooling available. In addit
|
|
66
67
|
it's [no bundling] design provides a very fluid authoring experience—changes to
|
67
68
|
your assets are reflected instantly in your browser.
|
68
69
|
|
70
|
+
## Documentation 📖
|
71
|
+
|
72
|
+
The [documentation website][website] is built using `jekyll-vite`.
|
73
|
+
|
74
|
+
You can [check the source to see an example setup][example], or visit it to
|
75
|
+
[learn how to use `jekyll-vite`][website].
|
76
|
+
|
69
77
|
## Installation 💿
|
70
78
|
|
71
79
|
Add this line to your site's Gemfile:
|
@@ -81,23 +89,6 @@ bundle install
|
|
81
89
|
bundle exec vite install
|
82
90
|
```
|
83
91
|
|
84
|
-
This will install the plugin in `_config.yml`, and generate a sample setup in
|
85
|
-
`_layouts/default.html` (if it exists).
|
86
|
-
|
87
|
-
```yml
|
88
|
-
plugins:
|
89
|
-
- jekyll/vite
|
90
|
-
```
|
91
|
-
|
92
|
-
```html
|
93
|
-
<head>
|
94
|
-
<!-- meta tags, etc -->
|
95
|
-
{% vite_client_tag %}
|
96
|
-
{% vite_javascript_tag application %}
|
97
|
-
{% vite_stylesheet_tag styles.scss %}
|
98
|
-
</head>
|
99
|
-
```
|
100
|
-
|
101
92
|
Additional installation instructions are available in the [documentation website][website].
|
102
93
|
|
103
94
|
## Getting Started 💻
|
@@ -107,9 +98,7 @@ restart your Jekyll server with <kbd>bin/jekyll serve</kbd>.
|
|
107
98
|
|
108
99
|
Visit any page and you should see a printed console output: `Vite ⚡️ Ruby`.
|
109
100
|
|
110
|
-
|
111
|
-
|
112
|
-
_A new section for Jekyll is coming soon!_
|
101
|
+
Check the [documentation website][website] for more information.
|
113
102
|
|
114
103
|
## Contact ✉️
|
115
104
|
|
data/lib/jekyll/vite/config.rb
CHANGED
@@ -4,10 +4,10 @@ module Jekyll::Vite::Config
|
|
4
4
|
# Override: Provide default values for a typical Jekyll site.
|
5
5
|
def config_defaults(**opts)
|
6
6
|
require 'jekyll'
|
7
|
-
|
7
|
+
cache_dir = Jekyll.configuration['cache_dir'] || '.jekyll-cache'
|
8
8
|
super(**opts, mode: Jekyll.env).tap do |defaults|
|
9
|
-
defaults['public_dir'] =
|
10
|
-
defaults['build_cache_dir'] = File.join(
|
9
|
+
defaults['public_dir'] = cache_dir
|
10
|
+
defaults['build_cache_dir'] = File.join(cache_dir, 'vite-build')
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -7,9 +7,22 @@ class Jekyll::Vite::Generator < Jekyll::Generator
|
|
7
7
|
priority :highest
|
8
8
|
|
9
9
|
class ViteAssetFile < Jekyll::StaticFile
|
10
|
+
# Override (4.2): Copy to the configured public_output_dir
|
11
|
+
if method_defined?(:cleaned_relative_path)
|
12
|
+
def cleaned_relative_path
|
13
|
+
replace_build_path(super)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
10
17
|
# Override: Copy to the configured public_output_dir
|
11
|
-
def
|
12
|
-
super
|
18
|
+
def destination_rel_dir
|
19
|
+
replace_build_path(super)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def replace_build_path(src)
|
25
|
+
src.sub(
|
13
26
|
ViteRuby.config.build_output_dir.relative_path_from(@site.source).to_s,
|
14
27
|
ViteRuby.config.public_output_dir,
|
15
28
|
)
|
@@ -27,12 +40,17 @@ class Jekyll::Vite::Generator < Jekyll::Generator
|
|
27
40
|
# Internal: Build all assets with Vite and add them to the site's static files.
|
28
41
|
def generate_vite_build(site)
|
29
42
|
ViteRuby.commands.build_from_task
|
30
|
-
|
31
|
-
|
43
|
+
add_static_files(site, ViteRuby.config.build_output_dir)
|
44
|
+
end
|
45
|
+
|
46
|
+
# Internal: Add generated assets to the site's static files.
|
47
|
+
def add_static_files(site, assets_dir)
|
48
|
+
relative_assets_dir = assets_dir.relative_path_from(site.source).to_s
|
49
|
+
vite_static_files = Dir.chdir(assets_dir.to_s) {
|
32
50
|
Dir.glob('**/*').select { |f| File.file?(f) }
|
51
|
+
}.map { |file|
|
52
|
+
ViteAssetFile.new(site, site.source, relative_assets_dir, file)
|
33
53
|
}
|
34
|
-
site.static_files.concat(
|
35
|
-
ViteAssetFile.new(site, site.source, assets_dir, file)
|
36
|
-
})
|
54
|
+
site.static_files.concat(vite_static_files)
|
37
55
|
end
|
38
56
|
end
|
data/lib/jekyll/vite/proxy.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rack'
|
4
|
-
require 'webrick'
|
5
4
|
require 'jekyll/commands/serve/servlet'
|
6
5
|
|
7
6
|
# Internal: Extend the default servlet to add a Rack-based proxy in order to
|
@@ -29,7 +28,7 @@ module Jekyll::Vite::Proxy
|
|
29
28
|
def service(req, res)
|
30
29
|
proxy_servlet.service(req, res)
|
31
30
|
if res.status == STATUS_SERVE_ORIGINAL
|
32
|
-
res.status =
|
31
|
+
res.status = 200
|
33
32
|
super
|
34
33
|
end
|
35
34
|
end
|
data/lib/jekyll/vite/tags.rb
CHANGED
@@ -64,7 +64,7 @@ protected
|
|
64
64
|
['', '.css', '.js', '.ts'].each do |ext|
|
65
65
|
if File.file?(asset_path = "#{ path }#{ ext }")
|
66
66
|
return [asset_path, last_build_metadata_path].each do |filename|
|
67
|
-
add_include_to_dependency(site, filename, @context)
|
67
|
+
add_include_to_dependency(site, filename.to_s, @context)
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
@@ -80,7 +80,7 @@ end
|
|
80
80
|
# Public: Renders a path to a Vite asset.
|
81
81
|
class Jekyll::Vite::AssetPathTag < Jekyll::Vite::Tag
|
82
82
|
def render(context)
|
83
|
-
super { vite_asset_path(@file,
|
83
|
+
super { vite_asset_path(@file, **@params) }
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -99,6 +99,17 @@ class Jekyll::Vite::ClientTag < Jekyll::Vite::Tag
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
+
# Public: Renders a script tag to enable HMR with React Refresh.
|
103
|
+
class Jekyll::Vite::ReactRefreshTag < Jekyll::Vite::Tag
|
104
|
+
def render(_context)
|
105
|
+
vite_manifest.react_refresh_preamble&.html_safe
|
106
|
+
end
|
107
|
+
|
108
|
+
def syntax_example
|
109
|
+
"{% #{ @tag_name } %}"
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
102
113
|
# Public: Renders a <link> tag for the specified stylesheet.
|
103
114
|
class Jekyll::Vite::StylesheetTag < Jekyll::Vite::Tag
|
104
115
|
def render(context)
|
@@ -149,6 +160,7 @@ end
|
|
149
160
|
'vite_javascript_tag' => Jekyll::Vite::JavascriptTag,
|
150
161
|
'vite_typescript_tag' => Jekyll::Vite::JavascriptTag,
|
151
162
|
'vite_stylesheet_tag' => Jekyll::Vite::StylesheetTag,
|
163
|
+
'vite_react_refresh_tag' => Jekyll::Vite::ReactRefreshTag,
|
152
164
|
}.each do |name, tag|
|
153
165
|
Liquid::Template.register_tag(name, tag)
|
154
166
|
end
|
data/lib/jekyll/vite/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-vite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Máximo Mussini
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-07-
|
11
|
+
date: 2021-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -50,6 +50,20 @@ dependencies:
|
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '2'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: pry-byebug
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
type: :development
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
53
67
|
- !ruby/object:Gem::Dependency
|
54
68
|
name: rake
|
55
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -64,6 +78,48 @@ dependencies:
|
|
64
78
|
- - ">="
|
65
79
|
- !ruby/object:Gem::Version
|
66
80
|
version: '0'
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rspec
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :development
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: simplecov
|
97
|
+
requirement: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - "<"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0.18'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - "<"
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0.18'
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: webrick
|
111
|
+
requirement: !ruby/object:Gem::Requirement
|
112
|
+
requirements:
|
113
|
+
- - ">="
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
version: '0'
|
116
|
+
type: :development
|
117
|
+
prerelease: false
|
118
|
+
version_requirements: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
67
123
|
description:
|
68
124
|
email:
|
69
125
|
- maximomussini@gmail.com
|
@@ -86,8 +142,8 @@ homepage: https://github.com/ElMassimo/jekyll-vite
|
|
86
142
|
licenses:
|
87
143
|
- MIT
|
88
144
|
metadata:
|
89
|
-
source_code_uri: https://github.com/ElMassimo/jekyll-vite/tree/v0.0.
|
90
|
-
changelog_uri: https://github.com/ElMassimo/jekyll-vite/blob/v0.0.
|
145
|
+
source_code_uri: https://github.com/ElMassimo/jekyll-vite/tree/v0.0.3
|
146
|
+
changelog_uri: https://github.com/ElMassimo/jekyll-vite/blob/v0.0.3/CHANGELOG.md
|
91
147
|
post_install_message:
|
92
148
|
rdoc_options: []
|
93
149
|
require_paths:
|