jekyll-zettel 0.2.0 → 0.3.0
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/lib/jekyll/zettel/references.rb +15 -1
- data/lib/jekyll/zettel/tags.rb +36 -0
- data/lib/jekyll/zettel/timeline.rb +29 -0
- data/lib/jekyll/zettel/version.rb +1 -1
- data/lib/jekyll/zettel.rb +19 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b445f911f00123795c40b497bdb038984d72d20b65136fa9a268e266523e142a
|
|
4
|
+
data.tar.gz: '0781199351ad2a4027f91bdf57a087b6cca0af4d6185a56cd792452d9065e78b'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: bdb0e69d2530555911fc72418bfe2f0306b7d6359d0d8f60c04a24aacb559f702175b728d358fcd6557cadb2781ca42b56344625e322ed14d7d7ddb003b4b4b9
|
|
7
|
+
data.tar.gz: 2a254ad2f926bebb23c6c8f005e45e0bbee7436cb7b94f9e626ab7e3b74f50adcae487bb356b54898afc256fc6e0795719372378fe7d3328d7b7d2c109473610
|
|
@@ -2,6 +2,7 @@ module Jekyll
|
|
|
2
2
|
module Zettel
|
|
3
3
|
# Enrich page front matter with object meta data
|
|
4
4
|
class References < Jekyll::Generator
|
|
5
|
+
include Zettel
|
|
5
6
|
|
|
6
7
|
priority :highest
|
|
7
8
|
|
|
@@ -10,13 +11,24 @@ module Jekyll
|
|
|
10
11
|
def generate(site)
|
|
11
12
|
@site = site
|
|
12
13
|
|
|
13
|
-
@site.
|
|
14
|
+
@site.data['references'] = {}
|
|
15
|
+
configure_citeproc
|
|
14
16
|
|
|
15
17
|
site.pages.each do |page|
|
|
16
18
|
next unless page.path.to_s.end_with?('index.html') || page.path.to_s.end_with?('index.md')
|
|
17
19
|
|
|
18
20
|
tie_reference(page)
|
|
19
21
|
end
|
|
22
|
+
|
|
23
|
+
write_catalog 'references'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def configure_citeproc
|
|
27
|
+
locale = @site.config['citation']['locale'] || 'en-US'
|
|
28
|
+
style = @site.config['citation']['style'] || 'apa'
|
|
29
|
+
|
|
30
|
+
@site.config['citeproc'] = CiteProc::Processor.new locale: locale, style: style, format: 'html'
|
|
31
|
+
Jekyll.logger.info LOG_KEY, "Configured cite processor `#{locale}`/`#{style}`"
|
|
20
32
|
end
|
|
21
33
|
|
|
22
34
|
def tie_reference(doc)
|
|
@@ -31,6 +43,7 @@ module Jekyll
|
|
|
31
43
|
|
|
32
44
|
def register_reference(doc, file)
|
|
33
45
|
if doc.data['reference'].include?('id')
|
|
46
|
+
@site.data['references'][doc.data['reference']['id']] = doc.data['reference']
|
|
34
47
|
@site.config['citeproc'].register doc.data['reference']
|
|
35
48
|
doc.data['citekey'] = doc.data['reference']['id']
|
|
36
49
|
else
|
|
@@ -38,6 +51,7 @@ module Jekyll
|
|
|
38
51
|
Jekyll.logger.warn '', "./#{file}"
|
|
39
52
|
end
|
|
40
53
|
end
|
|
54
|
+
|
|
41
55
|
end
|
|
42
56
|
end
|
|
43
57
|
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Jekyll
|
|
2
|
+
module Zettel
|
|
3
|
+
# Generate tags.json from page front matter
|
|
4
|
+
class Tags < Jekyll::Generator
|
|
5
|
+
include Zettel
|
|
6
|
+
|
|
7
|
+
SLUG_FORMAT = %r{glosse/(?<slug>.*)/index.(?<ext>html|md)}i.freeze
|
|
8
|
+
|
|
9
|
+
attr_reader :site
|
|
10
|
+
|
|
11
|
+
def generate(site)
|
|
12
|
+
@site = site
|
|
13
|
+
@site.data['tags'] = {}
|
|
14
|
+
|
|
15
|
+
site.pages.each do |page|
|
|
16
|
+
next unless SLUG_FORMAT.match?(page.path.to_s)
|
|
17
|
+
|
|
18
|
+
register_tag(page)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
write_catalog 'tags'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def register_tag(doc)
|
|
25
|
+
parts = doc.path.to_s.match(SLUG_FORMAT)
|
|
26
|
+
@site.data['tags'][parts[:slug]] = {
|
|
27
|
+
'slug' => parts[:slug],
|
|
28
|
+
'tag' => doc.data['tag'] || 'Missing @tag',
|
|
29
|
+
'label' => doc.data['title'] || 'Missing @title',
|
|
30
|
+
'description' => doc.data['description'] || 'Missing @description'
|
|
31
|
+
}
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Jekyll
|
|
2
|
+
module Zettel
|
|
3
|
+
# Enrich page front matter with timeline data
|
|
4
|
+
class Timeline < Jekyll::Generator
|
|
5
|
+
|
|
6
|
+
attr_reader :site
|
|
7
|
+
|
|
8
|
+
def generate(site)
|
|
9
|
+
@site = site
|
|
10
|
+
|
|
11
|
+
site.pages.each do |page|
|
|
12
|
+
next unless page.path.to_s.end_with?('index.html') || page.path.to_s.end_with?('index.md')
|
|
13
|
+
|
|
14
|
+
tie_timeline(page)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def tie_timeline(doc)
|
|
19
|
+
dir = File.dirname(doc.path)
|
|
20
|
+
file = @site.in_source_dir(dir, 'timeline.json')
|
|
21
|
+
return unless File.exist?(file)
|
|
22
|
+
|
|
23
|
+
doc.data['timeline'] = SafeYAML.load_file(file)
|
|
24
|
+
doc.data['timeline']['src'] = "#{doc.url}timeline.json"
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
data/lib/jekyll/zettel.rb
CHANGED
|
@@ -10,12 +10,30 @@ module Jekyll
|
|
|
10
10
|
|
|
11
11
|
autoload :VERSION, 'jekyll/zettel/version'
|
|
12
12
|
|
|
13
|
-
LOG_KEY = '
|
|
13
|
+
LOG_KEY = 'Zettel:'.freeze
|
|
14
14
|
|
|
15
15
|
class Error < StandardError; end
|
|
16
|
+
|
|
17
|
+
def write_catalog(object)
|
|
18
|
+
Jekyll.logger.info LOG_KEY, "Created references in `#{@site.in_dest_dir('.objects', "#{object}.json")}`"
|
|
19
|
+
|
|
20
|
+
page = Jekyll::PageWithoutAFile.new(@site, @site.source, '.objects', "#{object}.json").tap do |file|
|
|
21
|
+
file.content = JSON.pretty_generate(@site.data[object.to_s])
|
|
22
|
+
file.data.merge!(
|
|
23
|
+
'layout' => nil,
|
|
24
|
+
'sitemap' => false,
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
file.output
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
@site.pages << page
|
|
31
|
+
end
|
|
16
32
|
end
|
|
17
33
|
end
|
|
18
34
|
|
|
19
35
|
require 'jekyll/commands/zettel'
|
|
20
36
|
require 'jekyll/zettel/references'
|
|
21
37
|
require 'jekyll/zettel/reference'
|
|
38
|
+
require 'jekyll/zettel/timeline'
|
|
39
|
+
require 'jekyll/zettel/tags'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: jekyll-zettel
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michael Gerzabek
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-01-
|
|
11
|
+
date: 2022-01-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: citeproc-ruby
|
|
@@ -110,6 +110,8 @@ files:
|
|
|
110
110
|
- lib/jekyll/zettel.rb
|
|
111
111
|
- lib/jekyll/zettel/reference.rb
|
|
112
112
|
- lib/jekyll/zettel/references.rb
|
|
113
|
+
- lib/jekyll/zettel/tags.rb
|
|
114
|
+
- lib/jekyll/zettel/timeline.rb
|
|
113
115
|
- lib/jekyll/zettel/version.rb
|
|
114
116
|
homepage: https://michaelgerzabek.com/gems/jekyll-zettel
|
|
115
117
|
licenses:
|