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 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