yass 0.4.0 → 0.5.1
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/README.md +10 -118
- data/lib/yass/cli/helpers.rb +4 -3
- data/lib/yass/cli/runner.rb +7 -4
- data/lib/yass/config.rb +12 -5
- data/lib/yass/generator.rb +3 -5
- data/lib/yass/liquid_filters.rb +13 -2
- data/lib/yass/liquid_tags.rb +6 -1
- data/lib/yass/liquid_template.rb +4 -4
- data/lib/yass/source.rb +6 -9
- data/lib/yass/version.rb +1 -1
- data/site-template/layouts/default.html.liquid +1 -2
- data/site-template/site/assets/highlight.min.css +9 -0
- data/site-template/templates/asset_tags.liquid +9 -0
- metadata +8 -9
- data/site-template/site/assets/highlight-default.css +0 -117
- data/site-template/templates/css_links.liquid +0 -4
- data/site-template/templates/js_scripts.liquid +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7f845ee6ace64cb353bbf781b6af133b55c6d4005a2a88ae9c98388aa04ee44c
|
4
|
+
data.tar.gz: f24b5f5c7eb66aa796b2f8f07ae1a8d54902f83c22a01d3deb59ee35bee7d221
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e3082454ea333e73485c381ab7a55d5abc3a3238a65e7c81a1d3e9cdbd0ca7d45adbce075a0a5ebc640b4b62e15e17ce58df4b3c99801e526f7afb7a923e7b1
|
7
|
+
data.tar.gz: 55adcbf2291390aa8b47c10cd335e8b56aa612bb9407fc9bf7fa3c532ebed0e9472ae059bad94e629d5ea1205297c8318856a1186a5607b96776251e540d44bd
|
data/README.md
CHANGED
@@ -2,15 +2,7 @@
|
|
2
2
|
|
3
3
|
Yet Another Static Site (generator)
|
4
4
|
|
5
|
-
Yass is an incredibly un-opinionated static site generator.
|
6
|
-
|
7
|
-
* Write everything by hand under `site/`.
|
8
|
-
* Everything under `site/` is copied to `dist/`.
|
9
|
-
* [Markdown](https://commonmark.org/) (`.md`) and [Liquid](https://shopify.github.io/liquid/) (`.liquid`) files are processed.
|
10
|
-
* Liquid layouts and templates can be placed into `layouts/` and `templates/`.
|
11
|
-
* Helpers are available in addition to Liquid's standard functionality.
|
12
|
-
* Syntax highlighting via [Highlight.js](https://highlightjs.org/).
|
13
|
-
* Want to preview your site? Build it and open `dist/index.html` in your browser.
|
5
|
+
Yass is an incredibly un-opinionated static site generator. [Learn more!](https://jhollinger.github.io/yass/)
|
14
6
|
|
15
7
|
## Getting started
|
16
8
|
|
@@ -20,11 +12,10 @@ Starting from an empty page isn't fun, so `yass init` will create a skeleton sit
|
|
20
12
|
$ gem install yass
|
21
13
|
$ yass init blog
|
22
14
|
Creating blog/layouts/default.html.liquid
|
23
|
-
Creating blog/site/assets/highlight
|
15
|
+
Creating blog/site/assets/highlight.min.css
|
24
16
|
Creating blog/site/assets/highlight.min.js
|
25
|
-
Creating blog/site/index.
|
26
|
-
Creating blog/templates/
|
27
|
-
Creating blog/templates/js_scripts.liquid
|
17
|
+
Creating blog/site/index.html.liquid
|
18
|
+
Creating blog/templates/asset_tags.liquid
|
28
19
|
$ cd blog
|
29
20
|
```
|
30
21
|
|
@@ -36,121 +27,22 @@ The built site will be placed into `dist`.
|
|
36
27
|
yass build
|
37
28
|
```
|
38
29
|
|
39
|
-
If you're building for local viewing,
|
30
|
+
NOTE If you're building for webserverless, local viewing, and using the `skip_index` filter anywhere, use the `--no-skip-index` option.
|
40
31
|
|
41
32
|
```bash
|
42
|
-
yass build --
|
33
|
+
yass build --no-skip-index
|
43
34
|
```
|
44
35
|
|
45
36
|
Use the `watch` command to continually build your site as files change.
|
46
37
|
|
47
38
|
```bash
|
48
|
-
yass watch
|
49
|
-
```
|
50
|
-
|
51
|
-
## Layouts
|
52
|
-
|
53
|
-
Layouts live in `layouts/` and will be applied to files with matching names. The `content` variable contains the data to render in the layout.
|
54
|
-
|
55
|
-
```html
|
56
|
-
<!DOCTYPE html>
|
57
|
-
<html lang="en">
|
58
|
-
<head>
|
59
|
-
<title>{{ page.title }}</title>
|
60
|
-
</head>
|
61
|
-
<body>{{ content }}</body>
|
62
|
-
</html>
|
63
|
-
```
|
64
|
-
|
65
|
-
If the above layout is named *page.html.liquid*, it will match any file named `*.page.html*`. Examples:
|
66
|
-
|
67
|
-
* `foo.page.html`
|
68
|
-
* `foo.page.html.*`
|
69
|
-
* `foo.page.md` (because *.md* converts to *.html*)
|
70
|
-
* `foo.page.md.*`
|
71
|
-
|
72
|
-
The name of the layout (e.g. `page`) is removed from the final filename, resulting in `foo.html`.
|
73
|
-
|
74
|
-
### Default layouts
|
75
|
-
|
76
|
-
If you create a layout named `default.<ext>.liquid`, Yass will apply it to any `.<ext>` files without layouts. For example, a layout named `default.html.liquid` will match `foo.html` or `foo.not-a-layout.md.liquid`.
|
77
|
-
|
78
|
-
## Templates
|
79
|
-
|
80
|
-
Templates live in `templates/` and can be used in any `.liquid` files.
|
81
|
-
|
82
|
-
*templates/greeting.liquid*
|
83
|
-
|
84
|
-
```html
|
85
|
-
<p>Hi, my name is {{ name }}</p>
|
39
|
+
yass watch # also supports --no-skip-index
|
86
40
|
```
|
87
41
|
|
88
|
-
|
89
|
-
|
90
|
-
NOTE: Liquid is pretty strict about template filenames. They must match `^[a-zA-Z0-9_]\.liquid$`.
|
91
|
-
|
92
|
-
## Liquid variables
|
93
|
-
|
94
|
-
### page
|
95
|
-
|
96
|
-
An object representing the current page. Properties:
|
97
|
-
|
98
|
-
* `title` A titleized version of the filename (e.g. *My File* from *my-file.html*)
|
99
|
-
* `url` URL path to the file (note that *index.html* stripped unless the `--local` option is used)
|
100
|
-
* `path` Same as `url` except *index.html* is never stripped
|
101
|
-
* `dirname` Directory file is in (e.g. *foo/bar* from *foo/bar/zorp.html*)
|
102
|
-
* `filename` Name of file (e.g. *zorp.html* from *foo/bar/zorp.html*)
|
103
|
-
* `extname` File extension (e.g. *.html* from *foo/bar/zorp.html*)
|
104
|
-
* `src_path` Path with the original filename (e.g. *foo/index.md.liquid*)
|
105
|
-
|
106
|
-
### files
|
107
|
-
|
108
|
-
Any array of all files that will be written `dist/`. Same properties as `page`.
|
109
|
-
|
110
|
-
## Liquid filters
|
111
|
-
|
112
|
-
### relative_to
|
113
|
-
|
114
|
-
Modifies a path to be relative to another path. Useful in layouts and template that need to refer to another file.
|
115
|
-
|
116
|
-
```html
|
117
|
-
<script src="{{ "assets/main.js" | relative_to: page.path }}"</script>
|
118
|
-
```
|
119
|
-
|
120
|
-
### match
|
121
|
-
|
122
|
-
Returns true if the string matches the regex.
|
123
|
-
|
124
|
-
```liquid
|
125
|
-
{% assign is_asset = page.path | match: "\.(css|js|jpe?g)$"
|
126
|
-
```
|
127
|
-
|
128
|
-
## Liquid tags
|
129
|
-
|
130
|
-
### highlight
|
131
|
-
|
132
|
-
Converts the given code into something useable by [Highlight.js](https://highlightjs.org/).
|
133
|
-
|
134
|
-
```liquid
|
135
|
-
{% highlight ruby %}
|
136
|
-
puts "Yass!"
|
137
|
-
{% endhighlight %}
|
138
|
-
```
|
139
|
-
|
140
|
-
Hightlight.js CSS and JS files with common languages are included by default with `yass init`. [Download](https://highlightjs.org/download) your own versions if you want different languages or themes.
|
141
|
-
|
142
|
-
### render_content
|
143
|
-
|
144
|
-
Renders a template, passing the block as a variable named `content`.
|
145
|
-
|
146
|
-
```html
|
147
|
-
{% render_content "my_template", other_var: "other var" %}
|
148
|
-
<p>This will be passed to "my_template" as "content"</p>
|
149
|
-
{% endrender_content %}
|
150
|
-
```
|
151
|
-
|
152
|
-
## Legal
|
42
|
+
## License
|
153
43
|
|
154
44
|
MIT License. See LICENSE for details.
|
155
45
|
|
46
|
+
## Copyright
|
47
|
+
|
156
48
|
Copyright (c) 2025 Jordan Hollinger.
|
data/lib/yass/cli/helpers.rb
CHANGED
@@ -51,7 +51,8 @@ yass <command> [options] [path/to/dir]
|
|
51
51
|
Options:
|
52
52
|
).strip
|
53
53
|
opts.on("--clean", "Remove unknown files from dist/ when bulding") { config.clean = true }
|
54
|
-
opts.on("--
|
54
|
+
opts.on("--dest=", "Build to a different directory") { |d| config.dest = d }
|
55
|
+
opts.on("--no-strip-index", "Disable the strip_index Liquid filter") { config.strip_index = false }
|
55
56
|
opts.on("--debug", "Print stack traces") { config.debug = true }
|
56
57
|
opts.on("-h", "--help", "Prints this help") { config.stdout.puts opts; exit }
|
57
58
|
}
|
@@ -59,13 +60,13 @@ yass <command> [options] [path/to/dir]
|
|
59
60
|
|
60
61
|
def self.default_config
|
61
62
|
Config.new({
|
62
|
-
|
63
|
+
cwd: Pathname.new(Dir.pwd),
|
63
64
|
src: "site",
|
64
65
|
layouts: "layouts",
|
65
66
|
templates: "templates",
|
66
67
|
dest: "dist",
|
67
68
|
clean: false,
|
68
|
-
|
69
|
+
strip_index: true,
|
69
70
|
stdin: $stdin,
|
70
71
|
stdout: $stdout,
|
71
72
|
stderr: $stderr,
|
data/lib/yass/cli/runner.rb
CHANGED
@@ -7,7 +7,7 @@ module Yass
|
|
7
7
|
|
8
8
|
def self.build(config, argv:)
|
9
9
|
args = Helpers.get_args!(argv, max: 1)
|
10
|
-
config.
|
10
|
+
config.cwd = Pathname.new(args[0] || Dir.pwd)
|
11
11
|
Generator.new(config).generate!
|
12
12
|
return 0
|
13
13
|
rescue => e
|
@@ -18,10 +18,10 @@ module Yass
|
|
18
18
|
|
19
19
|
def self.init(config, argv:)
|
20
20
|
args = Helpers.get_args!(argv, max: 1)
|
21
|
-
config.
|
21
|
+
config.cwd = Pathname.new(args[0] || Dir.pwd)
|
22
22
|
|
23
23
|
Dir[INIT_DIR.join("**/*.*")].each do |path|
|
24
|
-
dest = config.
|
24
|
+
dest = config.cwd.join Pathname.new(path).relative_path_from(INIT_DIR)
|
25
25
|
config.stdout.puts "Creating #{dest}"
|
26
26
|
FileUtils.mkdir_p dest.dirname unless dest.dirname.exist?
|
27
27
|
FileUtils.cp(path, dest) unless dest.exist?
|
@@ -38,8 +38,11 @@ module Yass
|
|
38
38
|
config.stdout.puts "Watching for changes..."
|
39
39
|
watcher = Filewatcher.new([config.src_dir, config.layout_dir, config.template_dir].map(&:to_s))
|
40
40
|
yield watcher if block_given?
|
41
|
+
|
42
|
+
Yass::CLI::Runner.build(config, argv: argv)
|
41
43
|
watcher.watch do |changes|
|
42
|
-
files = changes.map { |f, _| Pathname.new(f).relative_path_from(config.
|
44
|
+
files = changes.map { |f, _| Pathname.new(f).relative_path_from(config.cwd).to_s }.reject { |f| Dir.exist? f }
|
45
|
+
# TODO use \r?
|
43
46
|
config.stdout.puts "Building #{files.join ", "}"
|
44
47
|
config.clear_cache!
|
45
48
|
Yass::CLI::Runner.build(config, argv: argv)
|
data/lib/yass/config.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module Yass
|
2
|
-
Config = Struct.new(:
|
3
|
-
def src_dir =
|
4
|
-
def dest_dir =
|
5
|
-
def template_dir =
|
6
|
-
def layout_dir =
|
2
|
+
Config = Struct.new(:cwd, :src, :dest, :layouts, :templates, :clean, :strip_index, :stdin, :stdout, :stderr, :debug, keyword_init: true) do
|
3
|
+
def src_dir = @src_dir ||= get_dir(src)
|
4
|
+
def dest_dir = @dest_dir ||= get_dir(dest)
|
5
|
+
def template_dir = @template_dir ||= get_dir(templates)
|
6
|
+
def layout_dir = @layout_dir ||= get_dir(layouts)
|
7
7
|
|
8
8
|
def clear_cache!
|
9
9
|
@sources = nil
|
@@ -34,5 +34,12 @@ module Yass
|
|
34
34
|
env.register_tag 'render_content', LiquidTags::RenderContent
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def get_dir(dir)
|
41
|
+
dir = Pathname.new(dir)
|
42
|
+
dir.absolute? ? dir : cwd.join(dir)
|
43
|
+
end
|
37
44
|
end
|
38
45
|
end
|
data/lib/yass/generator.rb
CHANGED
@@ -11,7 +11,7 @@ module Yass
|
|
11
11
|
def generate!
|
12
12
|
dest_dirs.each { |dir| FileUtils.mkdir_p dir }
|
13
13
|
config.sources.each do |source|
|
14
|
-
outfile = config.dest_dir.join(source.
|
14
|
+
outfile = config.dest_dir.join(source.src_path)
|
15
15
|
if source.dynamic?
|
16
16
|
outfile, content = generate(source, outfile)
|
17
17
|
outfile.write content
|
@@ -30,7 +30,7 @@ module Yass
|
|
30
30
|
content = Kramdown::Document.new(content).to_html
|
31
31
|
return generate(source, outfile.sub(/\.md$/, ".html"), content)
|
32
32
|
when ".liquid"
|
33
|
-
template = LiquidTemplate.compile(config, source.
|
33
|
+
template = LiquidTemplate.compile(config, source.src_path, content)
|
34
34
|
content = template.render(source)
|
35
35
|
return generate(source, outfile.sub(/\.liquid$/, ""), content)
|
36
36
|
else
|
@@ -47,8 +47,6 @@ module Yass
|
|
47
47
|
(actual_files - expected_files).each { |f| FileUtils.rm f }
|
48
48
|
end
|
49
49
|
|
50
|
-
def dest_dirs
|
51
|
-
config.sources.map { |s| config.dest_dir.join(s.relative_path).dirname }.uniq
|
52
|
-
end
|
50
|
+
def dest_dirs = config.sources.map { |s| s.outfile.dirname.to_s }.uniq
|
53
51
|
end
|
54
52
|
end
|
data/lib/yass/liquid_filters.rb
CHANGED
@@ -1,12 +1,23 @@
|
|
1
1
|
module Yass
|
2
2
|
module LiquidFilters
|
3
|
-
def
|
4
|
-
url
|
3
|
+
def relative(url)
|
4
|
+
url = Pathname.new(url)
|
5
|
+
to = context.registers[:source].dest_path
|
5
6
|
in_root = to.dirname.to_s == "."
|
6
7
|
updirs = in_root ? [] : to.dirname.to_s.split("/").map { ".." }
|
7
8
|
Pathname.new([*updirs, url].join("/")).to_s
|
8
9
|
end
|
9
10
|
|
11
|
+
def strip_index(url)
|
12
|
+
path = Pathname.new(url)
|
13
|
+
strip = path.basename.to_s == "index.html" && strip_index?
|
14
|
+
strip ? path.dirname.to_s : path.to_s
|
15
|
+
end
|
16
|
+
|
10
17
|
def match(str, regex) = Regexp.new(regex).match? str
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def strip_index? = context.registers[:source].config.strip_index
|
11
22
|
end
|
12
23
|
end
|
data/lib/yass/liquid_tags.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
|
1
3
|
module Yass
|
2
4
|
module LiquidTags
|
3
5
|
# Works like `render`, but passes the block content to the template as a variable named `content`
|
@@ -13,7 +15,10 @@ module Yass
|
|
13
15
|
|
14
16
|
# Wraps the block content in HTML for Highlight.js
|
15
17
|
class Highlight < Liquid::Block
|
16
|
-
def render(
|
18
|
+
def render(context)
|
19
|
+
block = CGI.escapeHTML super.strip
|
20
|
+
%(<pre><code class="language-#{@markup.strip}">#{block}</code></pre>)
|
21
|
+
end
|
17
22
|
end
|
18
23
|
end
|
19
24
|
end
|
data/lib/yass/liquid_template.rb
CHANGED
@@ -15,7 +15,7 @@ module Yass
|
|
15
15
|
def render(source)
|
16
16
|
vars = { "page" => file_attrs(source), "files" => files_attrs(source.config.sources) }
|
17
17
|
vars["content"] = yield if block_given?
|
18
|
-
content = @template.render(vars, { strict_variables: true, strict_filters: true })
|
18
|
+
content = @template.render(vars, { strict_variables: true, strict_filters: true, registers: { source: source } })
|
19
19
|
if @template.errors.any?
|
20
20
|
source.config.stderr.puts "Errors found in #{name}:"
|
21
21
|
source.config.stderr.puts @template.errors.map { |e| " #{e}" }.join("\n")
|
@@ -28,12 +28,12 @@ module Yass
|
|
28
28
|
def file_attrs(source)
|
29
29
|
{
|
30
30
|
"title" => source.title,
|
31
|
-
"url" => source.url.to_s,
|
32
31
|
"path" => source.dest_path.to_s,
|
33
|
-
"src_path" => source.
|
34
|
-
"dirname" => source.
|
32
|
+
"src_path" => source.src_path.to_s,
|
33
|
+
"dirname" => source.dest_path.dirname.to_s,
|
35
34
|
"filename" => source.dest_path.basename.to_s,
|
36
35
|
"extname" => source.dest_path.basename.extname,
|
36
|
+
"filesize" => File.stat(source.path).size,
|
37
37
|
}
|
38
38
|
end
|
39
39
|
|
data/lib/yass/source.rb
CHANGED
@@ -1,29 +1,26 @@
|
|
1
1
|
module Yass
|
2
2
|
class Source
|
3
3
|
EXT_CONVERSIONS = {"md" => "html"}.freeze
|
4
|
-
attr_reader :config, :path, :layout, :
|
4
|
+
attr_reader :config, :path, :layout, :src_path, :dest_path, :outfile
|
5
5
|
|
6
6
|
def initialize(config, path)
|
7
7
|
@config = config
|
8
8
|
@path = path
|
9
|
-
@
|
10
|
-
dest_filename, @layout= parse_name
|
11
|
-
@dest_path =
|
9
|
+
@src_path = path.relative_path_from config.src_dir
|
10
|
+
dest_filename, @layout = parse_name
|
11
|
+
@dest_path = src_path.dirname.join(dest_filename)
|
12
|
+
@outfile = config.dest_dir.join(dest_path)
|
12
13
|
end
|
13
14
|
|
14
|
-
def url = index? && !config.local ? dest_path.dirname : dest_path
|
15
|
-
|
16
15
|
def title
|
17
16
|
fname = dest_path.basename.sub(/\..+$/, "").to_s
|
18
|
-
fname =
|
17
|
+
fname = src_path.dirname.basename.to_s if fname == "index"
|
19
18
|
fname = "Home" if fname == "."
|
20
19
|
fname.sub(/[_-]+/, " ").split(/ +/).map(&:capitalize).join(" ")
|
21
20
|
end
|
22
21
|
|
23
22
|
def dynamic? = !!(/\.(liquid|md)(\..+)?$/ =~ path.basename.to_s || layout)
|
24
23
|
|
25
|
-
def index? = dest_path.basename.to_s == "index.html"
|
26
|
-
|
27
24
|
private
|
28
25
|
|
29
26
|
def parse_name
|
data/lib/yass/version.rb
CHANGED
@@ -4,8 +4,7 @@
|
|
4
4
|
<meta charset="utf-8">
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
6
6
|
<title>{{ page.title }}</title>
|
7
|
-
{% render "
|
8
|
-
{% render "js_scripts", files: files, page: page %}
|
7
|
+
{% render "asset_tags", files: files, page: page %}
|
9
8
|
</head>
|
10
9
|
<body>
|
11
10
|
{{ content }}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
/*!
|
2
|
+
Theme: Default
|
3
|
+
Description: Original highlight.js style
|
4
|
+
Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
|
5
|
+
Maintainer: @highlightjs/core-team
|
6
|
+
Website: https://highlightjs.org/
|
7
|
+
License: see project LICENSE
|
8
|
+
Touched: 2021
|
9
|
+
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
{% assign css_files = files | where: "extname", ".css" -%}
|
2
|
+
{% for file in css_files %}
|
3
|
+
<link rel="stylesheet" href="{{ file.path | relative }}">
|
4
|
+
{% endfor %}
|
5
|
+
|
6
|
+
{% assign js_files = files | where: "extname", ".js" -%}
|
7
|
+
{% for file in js_files %}
|
8
|
+
<script src="{{ file.path | relative }}"></script>
|
9
|
+
{% endfor %}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan Hollinger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-05-
|
11
|
+
date: 2025-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: filewatcher
|
@@ -52,7 +52,7 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.0'
|
55
|
-
description:
|
55
|
+
description: Yet Another Static Site (generator)
|
56
56
|
email: jordan.hollinger@gmail.com
|
57
57
|
executables:
|
58
58
|
- yass
|
@@ -73,16 +73,15 @@ files:
|
|
73
73
|
- lib/yass/source.rb
|
74
74
|
- lib/yass/version.rb
|
75
75
|
- site-template/layouts/default.html.liquid
|
76
|
-
- site-template/site/assets/highlight
|
76
|
+
- site-template/site/assets/highlight.min.css
|
77
77
|
- site-template/site/assets/highlight.min.js
|
78
78
|
- site-template/site/index.html.liquid
|
79
|
-
- site-template/templates/
|
80
|
-
|
81
|
-
homepage: https://github.com/jhollinger/yass/
|
79
|
+
- site-template/templates/asset_tags.liquid
|
80
|
+
homepage: https://jhollinger.github.io/yass/
|
82
81
|
licenses:
|
83
82
|
- MIT
|
84
83
|
metadata:
|
85
|
-
homepage_uri: https://github.
|
84
|
+
homepage_uri: https://jhollinger.github.io/yass/
|
86
85
|
source_code_uri: https://github.com/jhollinger/yass/
|
87
86
|
post_install_message:
|
88
87
|
rdoc_options: []
|
@@ -102,5 +101,5 @@ requirements: []
|
|
102
101
|
rubygems_version: 3.4.19
|
103
102
|
signing_key:
|
104
103
|
specification_version: 4
|
105
|
-
summary:
|
104
|
+
summary: An astonishingly un-opinionated static site generator
|
106
105
|
test_files: []
|
@@ -1,117 +0,0 @@
|
|
1
|
-
pre code.hljs {
|
2
|
-
display: block;
|
3
|
-
overflow-x: auto;
|
4
|
-
padding: 1em
|
5
|
-
}
|
6
|
-
code.hljs {
|
7
|
-
padding: 3px 5px
|
8
|
-
}
|
9
|
-
/*!
|
10
|
-
Theme: Default
|
11
|
-
Description: Original highlight.js style
|
12
|
-
Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
|
13
|
-
Maintainer: @highlightjs/core-team
|
14
|
-
Website: https://highlightjs.org/
|
15
|
-
License: see project LICENSE
|
16
|
-
Touched: 2021
|
17
|
-
*/
|
18
|
-
/*
|
19
|
-
This is left on purpose making default.css the single file that can be lifted
|
20
|
-
as-is from the repository directly without the need for a build step
|
21
|
-
|
22
|
-
Typically this "required" baseline CSS is added by `makestuff.js` during build.
|
23
|
-
*/
|
24
|
-
pre code.hljs {
|
25
|
-
display: block;
|
26
|
-
overflow-x: auto;
|
27
|
-
padding: 1em
|
28
|
-
}
|
29
|
-
code.hljs {
|
30
|
-
padding: 3px 5px
|
31
|
-
}
|
32
|
-
/* end baseline CSS */
|
33
|
-
.hljs {
|
34
|
-
background: #F3F3F3;
|
35
|
-
color: #444
|
36
|
-
}
|
37
|
-
/* Base color: saturation 0; */
|
38
|
-
.hljs-subst {
|
39
|
-
/* default */
|
40
|
-
|
41
|
-
}
|
42
|
-
/* purposely ignored */
|
43
|
-
.hljs-formula,
|
44
|
-
.hljs-attr,
|
45
|
-
.hljs-property,
|
46
|
-
.hljs-params {
|
47
|
-
|
48
|
-
}
|
49
|
-
.hljs-comment {
|
50
|
-
color: #697070
|
51
|
-
}
|
52
|
-
.hljs-tag,
|
53
|
-
.hljs-punctuation {
|
54
|
-
color: #444a
|
55
|
-
}
|
56
|
-
.hljs-tag .hljs-name,
|
57
|
-
.hljs-tag .hljs-attr {
|
58
|
-
color: #444
|
59
|
-
}
|
60
|
-
.hljs-keyword,
|
61
|
-
.hljs-attribute,
|
62
|
-
.hljs-selector-tag,
|
63
|
-
.hljs-meta .hljs-keyword,
|
64
|
-
.hljs-doctag,
|
65
|
-
.hljs-name {
|
66
|
-
font-weight: bold
|
67
|
-
}
|
68
|
-
/* User color: hue: 0 */
|
69
|
-
.hljs-type,
|
70
|
-
.hljs-string,
|
71
|
-
.hljs-number,
|
72
|
-
.hljs-selector-id,
|
73
|
-
.hljs-selector-class,
|
74
|
-
.hljs-quote,
|
75
|
-
.hljs-template-tag,
|
76
|
-
.hljs-deletion {
|
77
|
-
color: #880000
|
78
|
-
}
|
79
|
-
.hljs-title,
|
80
|
-
.hljs-section {
|
81
|
-
color: #880000;
|
82
|
-
font-weight: bold
|
83
|
-
}
|
84
|
-
.hljs-regexp,
|
85
|
-
.hljs-symbol,
|
86
|
-
.hljs-variable,
|
87
|
-
.hljs-template-variable,
|
88
|
-
.hljs-link,
|
89
|
-
.hljs-selector-attr,
|
90
|
-
.hljs-operator,
|
91
|
-
.hljs-selector-pseudo {
|
92
|
-
color: #ab5656
|
93
|
-
}
|
94
|
-
/* Language color: hue: 90; */
|
95
|
-
.hljs-literal {
|
96
|
-
color: #695
|
97
|
-
}
|
98
|
-
.hljs-built_in,
|
99
|
-
.hljs-bullet,
|
100
|
-
.hljs-code,
|
101
|
-
.hljs-addition {
|
102
|
-
color: #397300
|
103
|
-
}
|
104
|
-
/* Meta color: hue: 200 */
|
105
|
-
.hljs-meta {
|
106
|
-
color: #1f7199
|
107
|
-
}
|
108
|
-
.hljs-meta .hljs-string {
|
109
|
-
color: #38a
|
110
|
-
}
|
111
|
-
/* Misc effects */
|
112
|
-
.hljs-emphasis {
|
113
|
-
font-style: italic
|
114
|
-
}
|
115
|
-
.hljs-strong {
|
116
|
-
font-weight: bold
|
117
|
-
}
|