jekyll-documents 0.3.3 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2e673dc309679ea3bc1ce25687bb9fbf52901f27b7b29517c63ef9337291e82
4
- data.tar.gz: f89cef0e3d22c85665b516bd52da7f137b612c62c21f24e22ef33dc7a10170a8
3
+ metadata.gz: 76640be0741d32137905f8281bc4e83e4e895971a9ad39e7f360bccf06ba5eef
4
+ data.tar.gz: 93ac35f0606b84b474ef6aff260e21c7dab78ce5e4a8f7f80b4b97493755ae8d
5
5
  SHA512:
6
- metadata.gz: 956c33415793dd9e285f9e81874b612278c188d0dd39237a1bbdeea7964af1d784655b171d7efbf485b37dfa948c02ade3703b4e82e1b411a90d9c2049cb0f65
7
- data.tar.gz: c6069125baef1f06acbd58124f5993881b2e595a60b02e470fb0a8a3a94a764f62b0bbd8ad53320b325d614590aa494fb469f83674145f1924db945e1afc0e46
6
+ metadata.gz: db8fa1ad5fd90e910238d8b3b41427d8eeb8451ba70ca095cd610e26b56db88ae564e32856b6890c8c1e8af7b4a294fa8a9a9e7219fdd157bc7b0d80aa0c4181
7
+ data.tar.gz: a19a1da88694fd8282f3040a3bdad01ca5627667a116a984d16d916a875a346bb156bb371374b6b0ae241b6cbe2a97c8ecfc8cb40a1728960243ce1359e60e97
data/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.4.0] - 2026-08-26
6
+
7
+ ### Added
8
+ - `categories` array baked into each document's data (in addition to the existing singular `category`) for compatibility with search plugins like `jekyll-client-search` that expect the plural Jekyll convention
9
+ - Searchable content string (title, category, file type, date) set as document content so client-side search engines can index uploaded documents
10
+
11
+ ### Changed
12
+ - Refactored `Generator#generate` by extracting `bake_document_data` and `searchable_content` helper methods to keep method length within RuboCop limits
13
+
14
+ ### Changed
15
+ - Simplified release workflow to tag-push trigger (`push: tags: v*`) — no manual `gh release create` needed
16
+ - Switched to RubyGems trusted publishing (`rubygems/release-gem@v1` with OIDC)
17
+ - Centralized version in `version.rb` as single source of truth — removed `version` field from `package.json` (was drifted to 0.3.1)
18
+ - Added `rake version:bump` and `rake version:check_changelog` tasks
19
+ - Added CHANGELOG gate to release workflow (fails if entry missing for the version)
20
+ - Added `npm audit` and `npm outdated` (non-blocking) to CI
21
+ - Replaced `setup_hooks.sh` with `bin/install-hooks.sh` (pre-commit: rubocop only, pre-push: rubocop + rspec)
22
+ - Dropped reek from gemspec, Rakefile, and deleted `.reek.yml` (KISS)
23
+ - Deleted `bump_version.sh`, `release.sh`, `rollback.sh` — replaced by rake tasks and release workflow
24
+ - Renamed `AI_INSTRUCTIONS.md` to `AGENTS.md` (agents.md open convention)
25
+ - Updated `CLAUDE.md` and `.windsurfrules` to point to `AGENTS.md`
26
+
5
27
  ## [0.3.3] - 2026-08-12
6
28
 
7
29
  ### Added
data/README.md CHANGED
@@ -139,8 +139,13 @@ See [README.Development.md](README.Development.md) for details.
139
139
  ## Release
140
140
 
141
141
  ```bash
142
- ./bump_version.sh patch
143
- ./release.sh
142
+ bundle exec rake "version:bump[patch]"
143
+ # Edit CHANGELOG.md
144
+ git add lib/jekyll/documents/version.rb CHANGELOG.md
145
+ git commit -m "Release X.Y.Z: summary"
146
+ git tag -a vX.Y.Z -m "Release X.Y.Z"
147
+ git push origin main
148
+ git push origin vX.Y.Z
144
149
  ```
145
150
 
146
151
  ## License
@@ -35,7 +35,6 @@ Gem::Specification.new do |spec|
35
35
 
36
36
  spec.add_development_dependency "bundler-audit", "~> 0.9"
37
37
  spec.add_development_dependency "rake", "~> 13.0"
38
- spec.add_development_dependency "reek", "~> 6.5"
39
38
  spec.add_development_dependency "rspec", "~> 3.13"
40
39
  spec.add_development_dependency "rubocop", "~> 1.88"
41
40
  spec.add_development_dependency "rubocop-performance", "~> 1.26"
@@ -55,24 +55,10 @@ module Jekyll
55
55
  collection: collection
56
56
  )
57
57
 
58
- data = doc.data
59
- data["layout"] = @config["layout"]
60
- data["title"] = title
61
- data["date"] = date ? date.to_time : File.mtime(path)
62
- data["category"] = remap_category(category)
63
- data["file_url"] = "/#{rel_path}"
64
- data["extension"] = ext
65
- data["file_type"] = file_type
66
- data["icon_set"] = icon_set
67
- data["icon_url"] = Jekyll::Documents::FileTypeIcons.icon_for(file_type, icon_set)
68
- data["file_size"] = File.size(path)
69
- data["slug"] = slug
70
- data["permalink"] = @config["permalink"]
71
- .gsub(":category", data["category"].to_s)
72
- .gsub(":slug", slug)
73
-
74
- doc.content = "Auto-generated document page."
75
-
58
+ file_info = { title: title, date: date, category: category,
59
+ rel_path: rel_path, ext: ext, file_type: file_type,
60
+ icon_set: icon_set, slug: slug, path: path }
61
+ bake_document_data(doc, file_info)
76
62
  collection.docs << doc
77
63
  end
78
64
  end
@@ -92,6 +78,33 @@ module Jekyll
92
78
  site.collections[label]
93
79
  end
94
80
 
81
+ def searchable_content(title, data, file_type)
82
+ date_str = data["date"].strftime("%Y-%m-%d")
83
+ "#{title} #{data['category']} #{file_type} #{date_str}"
84
+ end
85
+
86
+ def bake_document_data(doc, info)
87
+ data = doc.data
88
+ category = remap_category(info[:category])
89
+ data["layout"] = @config["layout"]
90
+ data["title"] = info[:title]
91
+ data["date"] = info[:date] ? info[:date].to_time : File.mtime(info[:path])
92
+ data["category"] = category
93
+ data["categories"] = [category] if category
94
+ data["file_url"] = "/#{info[:rel_path]}"
95
+ data["extension"] = info[:ext]
96
+ data["file_type"] = info[:file_type]
97
+ data["icon_set"] = info[:icon_set]
98
+ icon = FileTypeIcons.icon_for(info[:file_type], info[:icon_set])
99
+ data["icon_url"] = icon
100
+ data["file_size"] = File.size(info[:path])
101
+ data["slug"] = info[:slug]
102
+ data["permalink"] = @config["permalink"]
103
+ .gsub(":category", category.to_s)
104
+ .gsub(":slug", info[:slug])
105
+ doc.content = searchable_content(info[:title], data, info[:file_type])
106
+ end
107
+
95
108
  # Creates a virtual source path for the document
96
109
  # @param basename [String] the file basename
97
110
  # @param category [String] the document category
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module Documents
5
- VERSION = "0.3.3"
5
+ VERSION = "0.4.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-documents
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Svend Gundestrup
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-08-13 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: jekyll
@@ -58,20 +57,6 @@ dependencies:
58
57
  - - "~>"
59
58
  - !ruby/object:Gem::Version
60
59
  version: '13.0'
61
- - !ruby/object:Gem::Dependency
62
- name: reek
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '6.5'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '6.5'
75
60
  - !ruby/object:Gem::Dependency
76
61
  name: rspec
77
62
  requirement: !ruby/object:Gem::Requirement
@@ -282,7 +267,6 @@ metadata:
282
267
  documentation_uri: https://github.com/gundestrup/jekyll-documents
283
268
  homepage_uri: https://github.com/gundestrup/jekyll-documents
284
269
  rubygems_mfa_required: 'true'
285
- post_install_message:
286
270
  rdoc_options: []
287
271
  require_paths:
288
272
  - lib
@@ -297,8 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
297
281
  - !ruby/object:Gem::Version
298
282
  version: '0'
299
283
  requirements: []
300
- rubygems_version: 3.5.22
301
- signing_key:
284
+ rubygems_version: 3.6.9
302
285
  specification_version: 4
303
286
  summary: Auto-generate Jekyll pages for documents (PDF/DOCX/...) with category/date/title
304
287
  parsing.