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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d520abe308c57950c7215ff67f420b807a04877c2c871e561fede4eff273d93a
4
- data.tar.gz: 10d65ec2011a5f8ba550d3781fec148cb0db646ccf33ae465abd81bbbeb1d0a8
3
+ metadata.gz: 7f845ee6ace64cb353bbf781b6af133b55c6d4005a2a88ae9c98388aa04ee44c
4
+ data.tar.gz: f24b5f5c7eb66aa796b2f8f07ae1a8d54902f83c22a01d3deb59ee35bee7d221
5
5
  SHA512:
6
- metadata.gz: e888b46f195cfcde35f56480555b07eaa150b8ad2d64f37fc81ceb67589cbe856d2b8acac7169b6bf8d42e5abc45b16246b7890986c9ad50aaba12406e841a71
7
- data.tar.gz: a25ceff7ecc103ef8106da4c19fb4dfbba78d523384c6bbe2f5a20b5f5189a791dd7ec69dbc900d765e5ea0a5c432b169b22677304fc973df550057f1d70d8ca
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. Here's how it works:
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-default.css
15
+ Creating blog/site/assets/highlight.min.css
24
16
  Creating blog/site/assets/highlight.min.js
25
- Creating blog/site/index.default.html.liquid
26
- Creating blog/templates/css_links.liquid
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, use the `--local` option. It ensures any generated URLs ending in `/` have `.index.html` appended.
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 --local
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
- Render the above template with `{% render "greeting", name: "Pleck" %}`.
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.
@@ -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("--local", "Build in local mode (with links to /index.html's)") { config.local = true }
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
- root: Pathname.new(Dir.pwd),
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
- local: false,
69
+ strip_index: true,
69
70
  stdin: $stdin,
70
71
  stdout: $stdout,
71
72
  stderr: $stderr,
@@ -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.root = Pathname.new(args[0] || Dir.pwd)
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.root = Pathname.new(args[0] || Dir.pwd)
21
+ config.cwd = Pathname.new(args[0] || Dir.pwd)
22
22
 
23
23
  Dir[INIT_DIR.join("**/*.*")].each do |path|
24
- dest = config.root.join Pathname.new(path).relative_path_from(INIT_DIR)
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.root).to_s }.reject { |f| Dir.exist? f }
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(:root, :src, :dest, :layouts, :templates, :clean, :local, :stdin, :stdout, :stderr, :debug, keyword_init: true) do
3
- def src_dir = root.join src
4
- def dest_dir = root.join dest
5
- def template_dir = root.join templates
6
- def layout_dir = root.join layouts
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
@@ -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.relative_path)
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.relative_path, content)
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
@@ -1,12 +1,23 @@
1
1
  module Yass
2
2
  module LiquidFilters
3
- def relative_to(url, to)
4
- url, to = Pathname.new(url), Pathname.new(to)
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
@@ -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(_context) = %(<pre><code class="language-#{@markup.strip}">#{super}</code></pre>)
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
@@ -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.relative_path.to_s,
34
- "dirname" => source.relative_path.dirname.to_s,
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, :relative_path, :dest_path
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
- @relative_path = path.relative_path_from config.src_dir
10
- dest_filename, @layout= parse_name
11
- @dest_path = relative_path.dirname.join(dest_filename)
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 = relative_path.dirname.basename.to_s if fname == "index"
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
@@ -1,3 +1,3 @@
1
1
  module Yass
2
- VERSION = "0.4.0".freeze
2
+ VERSION = "0.5.1".freeze
3
3
  end
@@ -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 "css_links", files: files, page: page %}
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.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-09 00:00:00.000000000 Z
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: A dead-simple static site generator
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-default.css
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/css_links.liquid
80
- - site-template/templates/js_scripts.liquid
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.com/jhollinger/yass/
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: Yet Another Static Site (generator)
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
- }
@@ -1,4 +0,0 @@
1
- {% assign css_files = files | where: "extname", ".css" -%}
2
- {% for file in css_files %}
3
- <link rel="stylesheet" href="{{ file.url | relative_to: page.url }}">
4
- {% endfor %}
@@ -1,4 +0,0 @@
1
- {% assign js_files = files | where: "extname", ".js" -%}
2
- {% for file in js_files %}
3
- <script src="{{ file.url | relative_to: page.url }}"></script>
4
- {% endfor %}