jekyll-zettel 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02b66d771bacc8ea5d103e26706e46cffc5a14ac058382bb334bef55034cead1
4
- data.tar.gz: ad1e60f0bdd4081013d3807bcab977635b50fb2f4f0b0eca2771f1bce3ae9318
3
+ metadata.gz: 5996b719e0aab85cc7a2b63e4463ea3285a29446602e65062886afa3ccc94b25
4
+ data.tar.gz: 2ebf053164cbaa31206ad9c1f8f8e05608b62f9172e475a8125efd6bfc1740f3
5
5
  SHA512:
6
- metadata.gz: 6c047b842b94732637dd92126a052d795760e5ff27a8cbf31795f18ce737822a3ac0528c9eaa192c63bafd62231d2d17910cc84bb4a825561e1f728205a4e2d9
7
- data.tar.gz: 1ec2d5da3e11c43ad38c2f42c48e834bfd500f26700d4ba529b99898dcfaff984ad5fc8f7e5df8ea5783dabef73312d15a4575c21d2fecdd652398e7606b3462
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 Zettel within subdir zettel'
11
- c.action do |_args, _options|
12
- uuid = new_zettel
13
- file = "zettel/#{uuid}/index.md"
14
- new_page(uuid, file)
15
-
16
- Jekyll.logger.info '✓', "Created new Zettel with UUID: `#{uuid}`"
17
- system("code #{File.expand_path(file)}")
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 new_zettel
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 new_zettel if File.directory?(dir)
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 new_page(uuid, file)
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(uuid, file)
39
- template = File.read(File.expand_path("../stubs/#{file}", __dir__))
40
- eval("\"#{template}\"")
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
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module Zettel
3
- VERSION = '0.5.2'.freeze
3
+ VERSION = '0.5.3'.freeze
4
4
  end
5
5
  end
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.2
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-14 00:00:00.000000000 Z
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/index.md
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