jekyll-zettel 0.5.2 → 0.5.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/lib/jekyll/commands/zettel.rb +81 -18
- data/lib/jekyll/stubs/glosse.md +22 -0
- data/lib/jekyll/stubs/{index.md → zettel.md} +1 -1
- data/lib/jekyll/zettel/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5996b719e0aab85cc7a2b63e4463ea3285a29446602e65062886afa3ccc94b25
|
4
|
+
data.tar.gz: 2ebf053164cbaa31206ad9c1f8f8e05608b62f9172e475a8125efd6bfc1740f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73f5d566617cc067433031c652760b77f0192d975bc63234f06d91c165b123c9b8c3b13fb91c3c2dc4f7d3829a0ee71edab68174106c6f15be8bcc88fc0e8958
|
7
|
+
data.tar.gz: eb86bc4170690f4ae4e7d5ca0b6282576dbc84077e5e7b5d85abe589ffd97c5b9f2743548d26f0637f201a6f9227c61c7a4b3012b0249d2533668817624b7caf
|
@@ -4,42 +4,105 @@ module Jekyll
|
|
4
4
|
class Zettel < Command
|
5
5
|
class << self
|
6
6
|
|
7
|
+
# rubocop:disable Metrics/MethodLength
|
7
8
|
def init_with_program(prog)
|
8
9
|
prog.command(:zettel) do |c|
|
9
10
|
c.syntax 'zettel'
|
10
|
-
c.description 'Creates a new
|
11
|
-
c.action do |
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
11
|
+
c.description 'Creates a new Infotype'
|
12
|
+
c.action do |args, _options|
|
13
|
+
|
14
|
+
infotype = args[0] || 'zettel'
|
15
|
+
|
16
|
+
if respond_to?("new_#{infotype}")
|
17
|
+
|
18
|
+
file = public_send("new_#{infotype}", args)
|
19
|
+
system("code #{File.expand_path(file)}") unless file.nil?
|
20
|
+
|
21
|
+
else
|
22
|
+
Jekyll.logger.error Jekyll::Zettel::LOG_KEY, "Invalid infotype #{infotype}"
|
23
|
+
end
|
24
|
+
|
18
25
|
end
|
19
26
|
end
|
20
27
|
end
|
21
28
|
|
22
|
-
def
|
29
|
+
def new_glosse(args)
|
30
|
+
if args[1].nil?
|
31
|
+
Jekyll.logger.error Jekyll::Zettel::LOG_KEY, 'Missing argument slug'
|
32
|
+
Jekyll.logger.info Jekyll::Zettel::LOG_KEY, 'usage: jekyll zettel glosse <slug>'
|
33
|
+
nil
|
34
|
+
else
|
35
|
+
slug = create_slug(args[1])
|
36
|
+
file = "glosse/#{slug}/index.md"
|
37
|
+
return file if create_dir_defensively('Glosse', slug, file).nil?
|
38
|
+
|
39
|
+
create_page({ 'slug' => slug, 'title' => args[1] }, file, 'glosse.md')
|
40
|
+
|
41
|
+
Jekyll.logger.info '✓', "Created glosse with slug `#{slug}`"
|
42
|
+
file
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def create_slug(title)
|
47
|
+
I18n.config.available_locales = :de
|
48
|
+
I18n.locale = :de
|
49
|
+
I18n.backend.store_translations(:de, i18n: {
|
50
|
+
transliterate: {
|
51
|
+
rule: {
|
52
|
+
'Ä' => 'Ae',
|
53
|
+
'Ö' => 'Oe',
|
54
|
+
'Ü' => 'Ue',
|
55
|
+
'ü' => 'ue',
|
56
|
+
'ö' => 'oe',
|
57
|
+
'ä' => 'ae',
|
58
|
+
'ß' => 'sz'
|
59
|
+
}
|
60
|
+
}
|
61
|
+
})
|
62
|
+
Jekyll::Utils.slugify(title, mode: 'latin')
|
63
|
+
end
|
64
|
+
|
65
|
+
def create_dir_defensively(infotype, slug, file)
|
66
|
+
dir = File.dirname(file)
|
67
|
+
if File.directory?(dir)
|
68
|
+
if File.exist?(file)
|
69
|
+
Jekyll.logger.error Jekyll::Zettel::LOG_KEY, "#{infotype} `#{slug}` already present"
|
70
|
+
nil
|
71
|
+
else
|
72
|
+
dir
|
73
|
+
end
|
74
|
+
else
|
75
|
+
FileUtils.mkdir_p(dir)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def new_zettel(_args)
|
80
|
+
uuid = create_uuid
|
81
|
+
file = "zettel/#{uuid}/index.md"
|
82
|
+
create_page({ 'uuid' => uuid }, file, 'zettel.md')
|
83
|
+
|
84
|
+
Jekyll.logger.info '✓', "Created new Zettel with UUID `#{uuid}`"
|
85
|
+
file
|
86
|
+
end
|
87
|
+
|
88
|
+
def create_uuid
|
23
89
|
uuid = SecureRandom.uuid
|
24
90
|
dir = "zettel/#{uuid}"
|
25
|
-
return
|
91
|
+
return create_uuid if File.directory?(dir)
|
26
92
|
|
27
93
|
FileUtils.mkdir_p(dir)
|
28
94
|
uuid
|
29
95
|
end
|
30
96
|
|
31
|
-
def
|
32
|
-
File.open(file, 'w') { |out|
|
33
|
-
out.write evaluate_template(uuid, 'index.md')
|
34
|
-
}
|
97
|
+
def create_page(args, file, template)
|
98
|
+
File.open(file, 'w') { |out| out.write evaluate_template(args, template) }
|
35
99
|
end
|
36
100
|
|
37
101
|
# rubocop:disable Style/EvalWithLocation, Security/Eval, Lint/UnusedMethodArgument
|
38
|
-
def evaluate_template(
|
39
|
-
|
40
|
-
eval("\"#{
|
102
|
+
def evaluate_template(args, template)
|
103
|
+
string = File.read(File.expand_path("../stubs/#{template}", __dir__))
|
104
|
+
eval("\"#{string}\"")
|
41
105
|
end
|
42
|
-
# rubocop:enable Style/EvalWithLocation, Security/Eval, Lint/UnusedMethodArgument
|
43
106
|
|
44
107
|
end
|
45
108
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
---
|
2
|
+
layout: glosse
|
3
|
+
#
|
4
|
+
# created_at: #{Time.now}
|
5
|
+
#
|
6
|
+
# Die ID der Glosse entspricht dem Namen des Unterverzeichnisses.
|
7
|
+
# Dieser Wert darf auf keinen Fall geändert werden!
|
8
|
+
#
|
9
|
+
glosse: #{args['slug']}
|
10
|
+
#
|
11
|
+
# Die Dokumentation aller Properties findest du unter
|
12
|
+
# https://jessas.org/projekt/dokumentation/glosse/#frontmatter
|
13
|
+
#
|
14
|
+
title: #{args['title']}
|
15
|
+
description:
|
16
|
+
author:
|
17
|
+
#
|
18
|
+
# Optionale Properties
|
19
|
+
#
|
20
|
+
# tags: []
|
21
|
+
# image:
|
22
|
+
---
|
@@ -6,7 +6,7 @@ layout: zettel
|
|
6
6
|
# Die UUID des Zettels entspricht dem Namen des Unterverzeichnisses.
|
7
7
|
# Dieser Wert darf auf keinen Fall geändert werden!
|
8
8
|
#
|
9
|
-
zettel: #{uuid}
|
9
|
+
zettel: #{args['uuid']}
|
10
10
|
#
|
11
11
|
# Die Dokumentation aller Properties findest du unter
|
12
12
|
# https://jessas.org/projekt/dokumentation/zettel/#frontmatter
|
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.5.
|
4
|
+
version: 0.5.3
|
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-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: citeproc-ruby
|
@@ -106,7 +106,8 @@ files:
|
|
106
106
|
- Rakefile
|
107
107
|
- jekyll-zettel.gemspec
|
108
108
|
- lib/jekyll/commands/zettel.rb
|
109
|
-
- lib/jekyll/stubs/
|
109
|
+
- lib/jekyll/stubs/glosse.md
|
110
|
+
- lib/jekyll/stubs/zettel.md
|
110
111
|
- lib/jekyll/zettel.rb
|
111
112
|
- lib/jekyll/zettel/globals.rb
|
112
113
|
- lib/jekyll/zettel/reference.rb
|