jekyll-wikirefs 0.0.14 → 0.0.16

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: 6ffaf29b4a348e3036a6508d41df6cc915ae3459a2afb250a4c778242f4dff69
4
- data.tar.gz: 939fa037711ee9f265ee73edc709f34264188f71dca4f7d7e8f972f97be9eb3b
3
+ metadata.gz: be7c77cfcb3bf9b8e1436bfc05438429c1fbac900097f136fab84ea10bf19bfe
4
+ data.tar.gz: d3f687257ee5840faa40a946680a2c1c40810d3f4737e9824a2400a947fc25a8
5
5
  SHA512:
6
- metadata.gz: 97d3144acc57f975dfb1fb6799bc90df9c93de66b9b1bca5f2c6cfc34a5fe4b24316830d87410a90e5ba867516f68326dc9e4de688098e879e5cfd50f2ab0e33
7
- data.tar.gz: 01c27427d75cb71a22965f91f890deca40fbfa8955560aea6fa01518d02343da53a26c927389624f12d771d574127383af61a7f65255a7111d1d1ef7b3d5b90f
6
+ metadata.gz: bcb1edfc6653c50e091b0c4c4dca6481b97d4b2104952af5423881cf1fabc3b06129b08596e63495b5cc3f2042aaf73fdbcac07ef6b7d08a95dddd60072919d6
7
+ data.tar.gz: 728c0c4d5ec75ae7a874d432a73baf4f22fc575344972eeadf3a19950f3a69a1a8e91a89b99e544eae2f9fc32d44986998c09c65fc8f0b25b9773a03aac6fb2e
@@ -13,6 +13,8 @@ module Jekyll
13
13
  # css-related
14
14
  CSS_KEY = "css"
15
15
  NAME_KEY = "name"
16
+ # text styling
17
+ CASE_KEY = "case"
16
18
  # names
17
19
  ## valid
18
20
  TYPED_KEY = "typed"
@@ -63,6 +65,17 @@ module Jekyll
63
65
  option_attributes(ENABLED_KEY) == false
64
66
  end
65
67
 
68
+ def text_case_style
69
+ style = option(CASE_KEY)
70
+ valid_styles = [
71
+ "UPPER CASE", "Train-Case", "Macro_Case",
72
+ "lower case", "kebab-case", "snake_case",
73
+ "camelCase", "PascalCase", "none",
74
+ ]
75
+ return style if valid_styles.include?(style)
76
+ return "lowercase" # default
77
+ end
78
+
66
79
  def exclude?(type)
67
80
  return false unless option(EXCLUDE_KEY)
68
81
  return option(EXCLUDE_KEY).include?(type.to_s)
@@ -131,15 +131,18 @@ module Jekyll
131
131
  if wikilink.labelled?
132
132
  inner_txt = wikilink.label_txt
133
133
  elsif linked_doc.data.keys.include?('title')
134
- inner_txt = linked_doc.data['title'].downcase
134
+ title_text = linked_doc.data['title']
135
+ inner_txt = apply_case_style(title_text)
135
136
  # in case there is no 'title' frontmatter attribute
136
137
  # (i'm seeing deprecation warnings, but there might
137
138
  # be bugs caused by not using this...)
138
139
  elsif linked_doc.respond_to?(:title)
139
- inner_txt = linked_doc.title.downcase
140
+ title_text = linked_doc.title
141
+ inner_txt = apply_case_style(title_text)
140
142
  # pages don't have automatically generated titles
141
143
  else
142
- inner_txt = Jekyll::Utils.slugify(linked_doc.basename)
144
+ title_text = Jekyll::Utils.slugify(linked_doc.basename)
145
+ inner_txt = apply_case_style(title_text)
143
146
  end
144
147
  # level-specific
145
148
  if (wikilink.level == "file_path" || wikilink.level == "filename")
@@ -163,6 +166,32 @@ module Jekyll
163
166
 
164
167
  # helpers
165
168
 
169
+ def apply_case_style(text)
170
+ case $wiki_conf.text_case_style
171
+ when "UPPER CASE"
172
+ return text.upcase
173
+ when "Train-Case"
174
+ return text.split(/[\s_-]/).map(&:upcase).join('-')
175
+ when "Macro_Case"
176
+ return text.split(/[\s_-]/).map(&:upcase).join('_')
177
+ when "lower case"
178
+ return text.downcase
179
+ when "kebab-case"
180
+ return text.downcase.gsub(/\s+/, '-')
181
+ when "snake_case"
182
+ return text.downcase.gsub(/\s+/, '_')
183
+ when "camelCase"
184
+ words = text.split(/[\s_-]/)
185
+ return words[0].downcase + words[1..-1].map(&:capitalize).join('')
186
+ when "PascalCase"
187
+ return text.split(/[\s_-]/).map(&:capitalize).join('')
188
+ when "none"
189
+ return text
190
+ else
191
+ return text.downcase # fallback to current behavior
192
+ end
193
+ end
194
+
166
195
  def sort_for_replacement
167
196
  # sorting inline wikilinks is necessary so when wikilinks are replaced,
168
197
  # !embeds and longer strings are replaced first so as not to accidentally overwrite
@@ -3,7 +3,7 @@
3
3
  module Jekyll
4
4
  module WikiRefs
5
5
 
6
- VERSION = "0.0.14"
6
+ VERSION = "0.0.16"
7
7
 
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-wikirefs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - manunamz
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-25 00:00:00.000000000 Z
11
+ date: 2025-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.0
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.0
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement