jekyll-documents 0.1.1

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.
Files changed (117) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +42 -0
  3. data/LICENSE +661 -0
  4. data/README.md +126 -0
  5. data/_includes/category_list.html +10 -0
  6. data/_includes/documents_list.html +10 -0
  7. data/_includes/documents_search.html +4 -0
  8. data/_includes/latest_documents.html +11 -0
  9. data/_layouts/document.html +20 -0
  10. data/assets/icons/color/ai-document-svgrepo-com.svg +2 -0
  11. data/assets/icons/color/attachment-document-svgrepo-com.svg +10 -0
  12. data/assets/icons/color/audio-document-svgrepo-com.svg +10 -0
  13. data/assets/icons/color/box-notes-svgrepo-com.svg +21 -0
  14. data/assets/icons/color/csv-document-svgrepo-com.svg +10 -0
  15. data/assets/icons/color/eps-document-svgrepo-com.svg +10 -0
  16. data/assets/icons/color/excel-document-svgrepo-com.svg +2 -0
  17. data/assets/icons/color/exe-document-svgrepo-com.svg +10 -0
  18. data/assets/icons/color/flash-document-svgrepo-com.svg +10 -0
  19. data/assets/icons/color/folder-svgrepo-com.svg +2 -0
  20. data/assets/icons/color/gdoc-document-svgrepo-com.svg +10 -0
  21. data/assets/icons/color/gdocs-document-svgrepo-com.svg +12 -0
  22. data/assets/icons/color/gform-document-svgrepo-com.svg +16 -0
  23. data/assets/icons/color/gpres-document-svgrepo-com.svg +10 -0
  24. data/assets/icons/color/gsheet-document-svgrepo-com.svg +10 -0
  25. data/assets/icons/color/html-document-svgrepo-com.svg +10 -0
  26. data/assets/icons/color/image-document-svgrepo-com.svg +10 -0
  27. data/assets/icons/color/keynote-document-svgrepo-com.svg +10 -0
  28. data/assets/icons/color/library-folder-svgrepo-com.svg +19 -0
  29. data/assets/icons/color/link-svgrepo-com.svg +10 -0
  30. data/assets/icons/color/mp4-document-svgrepo-com.svg +10 -0
  31. data/assets/icons/color/overlay-document-svgrepo-com.svg +11 -0
  32. data/assets/icons/color/pack-document-svgrepo-com.svg +10 -0
  33. data/assets/icons/color/pages-document-svgrepo-com.svg +10 -0
  34. data/assets/icons/color/pdf-document-svgrepo-com.svg +16 -0
  35. data/assets/icons/color/ppt-document-svgrepo-com.svg +10 -0
  36. data/assets/icons/color/psd-document-svgrepo-com.svg +10 -0
  37. data/assets/icons/color/quip-doc-svgrepo-com.svg +21 -0
  38. data/assets/icons/color/quip-sheet-document-svgrepo-com.svg +21 -0
  39. data/assets/icons/color/quip-slide-document-svgrepo-com.svg +21 -0
  40. data/assets/icons/color/rtf-document-svgrepo-com.svg +10 -0
  41. data/assets/icons/color/slide-document-svgrepo-com.svg +2 -0
  42. data/assets/icons/color/stypi-document-svgrepo-com.svg +11 -0
  43. data/assets/icons/color/txt-document-svgrepo-com.svg +10 -0
  44. data/assets/icons/color/unknown-document-svgrepo-com.svg +9 -0
  45. data/assets/icons/color/video-document-svgrepo-com.svg +10 -0
  46. data/assets/icons/color/visio-document-svgrepo-com.svg +10 -0
  47. data/assets/icons/color/webex-document-svgrepo-com.svg +11 -0
  48. data/assets/icons/color/word-document-svgrepo-com.svg +10 -0
  49. data/assets/icons/color/xml-document-svgrepo-com.svg +10 -0
  50. data/assets/icons/color/zip-document-svgrepo-com.svg +10 -0
  51. data/assets/icons/lines/ae-file-type-svgrepo-com.svg +18 -0
  52. data/assets/icons/lines/ai-file-type-svgrepo-com.svg +18 -0
  53. data/assets/icons/lines/avi-file-type-svgrepo-com.svg +19 -0
  54. data/assets/icons/lines/css-file-type-svgrepo-com.svg +19 -0
  55. data/assets/icons/lines/csv-file-type-svgrepo-com (1).svg +19 -0
  56. data/assets/icons/lines/eps-file-type-svgrepo-com.svg +19 -0
  57. data/assets/icons/lines/excel-file-type-svgrepo-com.svg +21 -0
  58. data/assets/icons/lines/file-file-type-svgrepo-com.svg +16 -0
  59. data/assets/icons/lines/folder-svgrepo-com.svg +3 -0
  60. data/assets/icons/lines/html-file-type-svgrepo-com.svg +20 -0
  61. data/assets/icons/lines/jpg-file-type-svgrepo-com.svg +19 -0
  62. data/assets/icons/lines/mov-file-type-svgrepo-com.svg +19 -0
  63. data/assets/icons/lines/mp3-file-type-svgrepo-com.svg +19 -0
  64. data/assets/icons/lines/other-file-type-svgrepo-com.svg +17 -0
  65. data/assets/icons/lines/pdf-file-type-svgrepo-com.svg +19 -0
  66. data/assets/icons/lines/png-file-type-svgrepo-com.svg +19 -0
  67. data/assets/icons/lines/ppt-file-type-svgrepo-com.svg +19 -0
  68. data/assets/icons/lines/psd-file-type-svgrepo-com.svg +19 -0
  69. data/assets/icons/lines/rar-file-type-svgrepo-com.svg +19 -0
  70. data/assets/icons/lines/txt-file-type-svgrepo-com.svg +19 -0
  71. data/assets/icons/lines/wav-file-type-svgrepo-com.svg +19 -0
  72. data/assets/icons/lines/word-file-type-svgrepo-com.svg +20 -0
  73. data/assets/icons/lines/zip-file-type-svgrepo-com.svg +19 -0
  74. data/assets/icons/minimal/c-file-format-document-extension-file-format-2-svgrepo-com.svg +7 -0
  75. data/assets/icons/minimal/c-file-format-document-extension-file-format-svgrepo-com.svg +7 -0
  76. data/assets/icons/minimal/css-file-format-document-extension-file-format-svgrepo-com.svg +7 -0
  77. data/assets/icons/minimal/dwg-file-format-document-extension-file-format-svgrepo-com.svg +7 -0
  78. data/assets/icons/minimal/dxf-file-format-document-extension-file-format-svgrepo-com.svg +7 -0
  79. data/assets/icons/minimal/extension-file-format-document-file-format-2-svgrepo-com.svg +7 -0
  80. data/assets/icons/minimal/extension-file-format-document-file-format-svgrepo-com.svg +7 -0
  81. data/assets/icons/minimal/extension-file-format-html-document-file-format-svgrepo-com.svg +7 -0
  82. data/assets/icons/minimal/extension-file-format-jpg-document-file-format-svgrepo-com.svg +7 -0
  83. data/assets/icons/minimal/extension-file-format-json-document-file-format-svgrepo-com (1).svg +7 -0
  84. data/assets/icons/minimal/extension-file-format-pdf-document-file-format-svgrepo-com.svg +7 -0
  85. data/assets/icons/minimal/extension-file-format-php-document-file-format-svgrepo-com.svg +7 -0
  86. data/assets/icons/minimal/extension-file-format-sql-document-file-format-svgrepo-com.svg +7 -0
  87. data/assets/icons/minimal/extension-file-format-txt-document-file-format-svgrepo-com.svg +7 -0
  88. data/assets/icons/minimal/file-format-gif-document-extension-file-format-svgrepo-com.svg +7 -0
  89. data/assets/icons/minimal/file-format-jpeg-document-extension-file-format-svgrepo-com.svg +7 -0
  90. data/assets/icons/minimal/file-format-js-document-extension-file-format-svgrepo-com.svg +7 -0
  91. data/assets/icons/minimal/file-format-vb-document-extension-file-format-svgrepo-com.svg +7 -0
  92. data/assets/icons/minimal/folder-svgrepo-com.svg +3 -0
  93. data/assets/icons/minimal/ico-file-format-svgrepo-com.svg +7 -0
  94. data/assets/icons/ultra-minimal/doc.svg +7 -0
  95. data/assets/icons/ultra-minimal/file.svg +4 -0
  96. data/assets/icons/ultra-minimal/folder-svgrepo-com.svg +3 -0
  97. data/assets/icons/ultra-minimal/jpg.svg +6 -0
  98. data/assets/icons/ultra-minimal/mp3.svg +5 -0
  99. data/assets/icons/ultra-minimal/mp4.svg +5 -0
  100. data/assets/icons/ultra-minimal/pdf.svg +7 -0
  101. data/assets/icons/ultra-minimal/png.svg +5 -0
  102. data/assets/icons/ultra-minimal/ppt.svg +5 -0
  103. data/assets/icons/ultra-minimal/txt.svg +7 -0
  104. data/assets/icons/ultra-minimal/xls.svg +6 -0
  105. data/assets/icons/ultra-minimal/zip.svg +5 -0
  106. data/assets/js/documents-search.js +139 -0
  107. data/jekyll-documents.gemspec +27 -0
  108. data/lib/jekyll/documents/configuration.rb +37 -0
  109. data/lib/jekyll/documents/file_type_icons.rb +144 -0
  110. data/lib/jekyll/documents/filters.rb +34 -0
  111. data/lib/jekyll/documents/generator.rb +142 -0
  112. data/lib/jekyll/documents/json_index_generator.rb +38 -0
  113. data/lib/jekyll/documents/tags/latest_documents.rb +64 -0
  114. data/lib/jekyll/documents/utils.rb +27 -0
  115. data/lib/jekyll/documents/version.rb +7 -0
  116. data/lib/jekyll-documents.rb +19 -0
  117. metadata +215 -0
@@ -0,0 +1,142 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "date"
4
+
5
+ module Jekyll
6
+ module Documents
7
+ # Main generator that scans document files and creates Jekyll collection items
8
+ # @api public
9
+ class Generator < ::Jekyll::Generator
10
+ safe true
11
+ priority :normal
12
+
13
+ # Generates document collection from files in configured root directory
14
+ # @param site [Jekyll::Site] the Jekyll site instance
15
+ # @return [void]
16
+ def generate(site)
17
+ @site = site
18
+ @config = Configuration.read(site)
19
+
20
+ root = File.join(site.source, @config["root"])
21
+ unless Dir.exist?(root)
22
+ ::Jekyll.logger.warn "jekyll-documents", "Directory not found: #{root}"
23
+ return
24
+ end
25
+
26
+ collection = ensure_collection(site, "documents")
27
+
28
+ Dir.glob("#{root}/**/*").each do |path|
29
+ next unless File.file?(path)
30
+
31
+ ext = File.extname(path).downcase
32
+ if @config["strict_extensions"] && !@config["include_extensions"].include?(ext)
33
+ ::Jekyll.logger.abort_with "jekyll-documents",
34
+ "Unsupported file type: #{path} (#{ext})"
35
+ end
36
+ next unless @config["include_extensions"].include?(ext)
37
+
38
+ rel_path = path.start_with?(site.source) ? path[(site.source.length + 1)..-1] : path
39
+ category = infer_category_from(rel_path)
40
+ basename = File.basename(path, ext)
41
+
42
+ date, title, valid = parse_filename(basename)
43
+ if !valid && @config["strict_filename"]
44
+ ::Jekyll.logger.abort_with "jekyll-documents",
45
+ "Filename must be 'YYYY-MM-DD_Title.ext' → #{rel_path}"
46
+ end
47
+
48
+ slug = build_slug(basename)
49
+
50
+ doc = ::Jekyll::Document.new(
51
+ source_stub_for(basename, category),
52
+ site: site,
53
+ collection: collection
54
+ )
55
+
56
+ doc.data["layout"] = @config["layout"]
57
+ doc.data["title"] = title
58
+ doc.data["date"] = date || File.mtime(path)
59
+ doc.data["category"] = remap_category(category)
60
+ doc.data["file_url"] = "/" + rel_path
61
+ doc.data["extension"] = ext
62
+ doc.data["file_type"] = ext.sub(".", "").downcase
63
+ doc.data["slug"] = slug
64
+ doc.data["permalink"] = @config["permalink"]
65
+ .gsub(":category", doc.data["category"].to_s)
66
+ .gsub(":slug", slug)
67
+
68
+ doc.content = "Auto-generated document page."
69
+
70
+ collection.docs << doc
71
+ end
72
+ end
73
+
74
+ private
75
+
76
+ # Ensures a collection exists and is configured for output
77
+ # @param site [Jekyll::Site] the Jekyll site instance
78
+ # @param label [String] the collection name
79
+ # @return [Jekyll::Collection] the collection
80
+ def ensure_collection(site, label)
81
+ unless site.collections[label]
82
+ site.collections[label] = ::Jekyll::Collection.new(site, label)
83
+ site.config["collections"] ||= {}
84
+ site.config["collections"][label] = { "output" => true }
85
+ end
86
+ site.collections[label]
87
+ end
88
+
89
+ # Creates a virtual source path for the document
90
+ # @param basename [String] the file basename
91
+ # @param category [String] the document category
92
+ # @return [String] virtual source path
93
+ def source_stub_for(basename, category)
94
+ File.join("_documents", "#{category}-#{basename}.md")
95
+ end
96
+
97
+ # Infers category from the file's directory path
98
+ # @param rel_path [String] relative path from site source
99
+ # @return [String] the category name
100
+ def infer_category_from(rel_path)
101
+ return "uncategorized" unless @config["categories_from_path"]
102
+ category_dir = File.dirname(rel_path).sub("#{@config['root']}", "")
103
+ category_dir.split("/").reject(&:empty?).last || "uncategorized"
104
+ end
105
+
106
+ # Remaps category name using category_map configuration
107
+ # @param cat [String] the original category
108
+ # @return [String] the remapped category (lowercased)
109
+ def remap_category(cat)
110
+ map = @config["category_map"] || {}
111
+ (map[cat] || cat).to_s.downcase
112
+ end
113
+
114
+ # Parses filename to extract date and title
115
+ # @param basename [String] the filename without extension
116
+ # @return [Array<Date, String, Boolean>] date, title, and validity flag
117
+ def parse_filename(basename)
118
+ if basename =~ /^(\d{4})-(\d{2})-(\d{2})_(.+)$/
119
+ date = Date.parse("#{Regexp.last_match(1)}-#{Regexp.last_match(2)}-#{Regexp.last_match(3)}")
120
+ title = Regexp.last_match(4).tr("_", " ")
121
+ [date, title, true]
122
+ else
123
+ [nil, basename.tr("_", " "), false]
124
+ end
125
+ rescue ArgumentError
126
+ [nil, basename.tr("_", " "), false]
127
+ end
128
+
129
+ # Builds a URL-safe slug from filename
130
+ # @param basename [String] the filename without extension
131
+ # @return [String] the generated slug
132
+ def build_slug(basename)
133
+ s = basename.sub(/^\d{4}-\d{2}-\d{2}_/, "")
134
+ s = s.gsub(/[æøåÆØÅ]/, {"æ"=>"ae","ø"=>"oe","å"=>"aa","Æ"=>"Ae","Ø"=>"Oe","Å"=>"Aa"}) if @config["slug_danish_map"]
135
+ s = s.downcase if @config["slug_downcase"]
136
+ s = s.gsub(/[^\p{Alnum}\-_\s]/u, "").tr("_ ", "--").gsub(/-+/, "-")
137
+ s = s.sub(/^-+/, "").sub(/-+$/, "") # Remove leading/trailing hyphens
138
+ s.empty? ? "untitled" : s
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "utils"
5
+
6
+ module Jekyll
7
+ module Documents
8
+ class JsonIndexGenerator < ::Jekyll::Generator
9
+ safe true
10
+ priority :low
11
+
12
+ def generate(site)
13
+ cfg = Configuration.read(site)
14
+ return unless cfg["json_index"]
15
+
16
+ docs = site.collections["documents"]&.docs || []
17
+ return if docs.empty?
18
+
19
+ items = docs.map do |d|
20
+ {
21
+ "url" => d.url,
22
+ "title" => d.data["title"],
23
+ "category" => d.data["category"],
24
+ "date" => (d.data["date"] || Time.at(0)).strftime("%Y-%m-%d"),
25
+ "slug" => d.data["slug"],
26
+ "file_type" => d.data["file_type"],
27
+ "extension" => d.data["extension"]
28
+ }
29
+ end
30
+
31
+ json = JSON.pretty_generate(items)
32
+ path = cfg["json_index_path"] || "/documents.json"
33
+
34
+ site.static_files << TextStaticFile.new(site, site.source, path, json)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module Documents
5
+ class LatestDocumentsTag < Liquid::Tag
6
+ def initialize(tag_name, markup, tokens)
7
+ super
8
+ @args = parse_args(markup)
9
+ end
10
+
11
+ public_class_method :new
12
+
13
+ def render(context)
14
+ site = context.registers[:site]
15
+ cfg = Configuration.read(site)
16
+ count = (@args["count"] || cfg["latest_default_count"] || 5).to_i
17
+ category = @args["category"]
18
+
19
+ docs = site.collections["documents"]&.docs || []
20
+ docs = docs.select { |d| d.data["category"] == category } if category
21
+ docs = docs.sort_by { |d| d.data["date"] || Time.at(0) }.reverse.first(count)
22
+
23
+ out = +"<ul class=\"latest-documents\">\n"
24
+ docs.each do |d|
25
+ title = escape_html(d.data["title"])
26
+ url = escape_html(d.url)
27
+ date = (d.data["date"] || Time.at(0)).strftime("%Y-%m-%d")
28
+ out << %(<li><a href="#{url}">#{title}</a> <small>(#{date})</small></li>\n)
29
+ end
30
+ out << "</ul>\n"
31
+ out
32
+ end
33
+
34
+ private
35
+
36
+ def escape_html(text)
37
+ return "" unless text
38
+ text.to_s.gsub(/[&<>"']/, {
39
+ "&" => "&amp;",
40
+ "<" => "&lt;",
41
+ ">" => "&gt;",
42
+ '"' => "&quot;",
43
+ "'" => "&#39;"
44
+ })
45
+ end
46
+
47
+ def parse_args(markup)
48
+ # supports: count:5 category:'referat'
49
+ args = {}
50
+ markup.scan(/(\w+)\s*:\s*'([^']*)'|(\w+)\s*:\s*([^\s]+)/).each do |m|
51
+ if m[0]
52
+ args[m[0]] = m[1]
53
+ else
54
+ args[m[2]] = m[3]
55
+ end
56
+ end
57
+ args
58
+ end
59
+ end
60
+ end
61
+ end
62
+
63
+ Liquid::Template.register_tag("latest_documents", Jekyll::Documents::LatestDocumentsTag)
64
+
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module Documents
5
+ # A tiny StaticFile subclass for writing text files during build.
6
+ class TextStaticFile < ::Jekyll::StaticFile
7
+ def initialize(site, base, rel_dest, content)
8
+ @site = site
9
+ @base = base
10
+ @dir = File.dirname(rel_dest)
11
+ @name = File.basename(rel_dest)
12
+ @content = content
13
+ super(site, base, @dir, @name)
14
+ end
15
+
16
+ def write(dest)
17
+ dest_path = destination(dest)
18
+ FileUtils.mkdir_p(File.dirname(dest_path))
19
+ File.write(dest_path, @content)
20
+ true
21
+ rescue StandardError => e
22
+ Jekyll.logger.error "jekyll-documents", "Failed to write #{dest_path}: #{e.message}"
23
+ false
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jekyll
4
+ module Documents
5
+ VERSION = "0.1.1"
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "jekyll"
4
+ require_relative "jekyll/documents/version"
5
+ require_relative "jekyll/documents/configuration"
6
+ require_relative "jekyll/documents/utils"
7
+ require_relative "jekyll/documents/filters"
8
+ require_relative "jekyll/documents/file_type_icons"
9
+ require_relative "jekyll/documents/generator"
10
+ require_relative "jekyll/documents/json_index_generator"
11
+
12
+ # Liquid tag(s)
13
+ require_relative "jekyll/documents/tags/latest_documents"
14
+
15
+ module Jekyll
16
+ module Documents
17
+ # Namespace module for the plugin.
18
+ end
19
+ end
metadata ADDED
@@ -0,0 +1,215 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jekyll-documents
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Svend Gundestrup
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: jekyll
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '4.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '4.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.12'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '3.12'
40
+ - !ruby/object:Gem::Dependency
41
+ name: rake
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '13.0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '13.0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: yard
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '0.9'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.9'
68
+ description: A Jekyll plugin + theme that scans assets/documents/**, creates a collection
69
+ item per file, adds metadata (title/date/category), outputs pages, generates a JSON
70
+ index for Lunr, and integrates with jekyll-sitemap.
71
+ email:
72
+ - no-reply@borg-collective.eu
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - CHANGELOG.md
78
+ - LICENSE
79
+ - README.md
80
+ - _includes/category_list.html
81
+ - _includes/documents_list.html
82
+ - _includes/documents_search.html
83
+ - _includes/latest_documents.html
84
+ - _layouts/document.html
85
+ - assets/icons/color/ai-document-svgrepo-com.svg
86
+ - assets/icons/color/attachment-document-svgrepo-com.svg
87
+ - assets/icons/color/audio-document-svgrepo-com.svg
88
+ - assets/icons/color/box-notes-svgrepo-com.svg
89
+ - assets/icons/color/csv-document-svgrepo-com.svg
90
+ - assets/icons/color/eps-document-svgrepo-com.svg
91
+ - assets/icons/color/excel-document-svgrepo-com.svg
92
+ - assets/icons/color/exe-document-svgrepo-com.svg
93
+ - assets/icons/color/flash-document-svgrepo-com.svg
94
+ - assets/icons/color/folder-svgrepo-com.svg
95
+ - assets/icons/color/gdoc-document-svgrepo-com.svg
96
+ - assets/icons/color/gdocs-document-svgrepo-com.svg
97
+ - assets/icons/color/gform-document-svgrepo-com.svg
98
+ - assets/icons/color/gpres-document-svgrepo-com.svg
99
+ - assets/icons/color/gsheet-document-svgrepo-com.svg
100
+ - assets/icons/color/html-document-svgrepo-com.svg
101
+ - assets/icons/color/image-document-svgrepo-com.svg
102
+ - assets/icons/color/keynote-document-svgrepo-com.svg
103
+ - assets/icons/color/library-folder-svgrepo-com.svg
104
+ - assets/icons/color/link-svgrepo-com.svg
105
+ - assets/icons/color/mp4-document-svgrepo-com.svg
106
+ - assets/icons/color/overlay-document-svgrepo-com.svg
107
+ - assets/icons/color/pack-document-svgrepo-com.svg
108
+ - assets/icons/color/pages-document-svgrepo-com.svg
109
+ - assets/icons/color/pdf-document-svgrepo-com.svg
110
+ - assets/icons/color/ppt-document-svgrepo-com.svg
111
+ - assets/icons/color/psd-document-svgrepo-com.svg
112
+ - assets/icons/color/quip-doc-svgrepo-com.svg
113
+ - assets/icons/color/quip-sheet-document-svgrepo-com.svg
114
+ - assets/icons/color/quip-slide-document-svgrepo-com.svg
115
+ - assets/icons/color/rtf-document-svgrepo-com.svg
116
+ - assets/icons/color/slide-document-svgrepo-com.svg
117
+ - assets/icons/color/stypi-document-svgrepo-com.svg
118
+ - assets/icons/color/txt-document-svgrepo-com.svg
119
+ - assets/icons/color/unknown-document-svgrepo-com.svg
120
+ - assets/icons/color/video-document-svgrepo-com.svg
121
+ - assets/icons/color/visio-document-svgrepo-com.svg
122
+ - assets/icons/color/webex-document-svgrepo-com.svg
123
+ - assets/icons/color/word-document-svgrepo-com.svg
124
+ - assets/icons/color/xml-document-svgrepo-com.svg
125
+ - assets/icons/color/zip-document-svgrepo-com.svg
126
+ - assets/icons/lines/ae-file-type-svgrepo-com.svg
127
+ - assets/icons/lines/ai-file-type-svgrepo-com.svg
128
+ - assets/icons/lines/avi-file-type-svgrepo-com.svg
129
+ - assets/icons/lines/css-file-type-svgrepo-com.svg
130
+ - assets/icons/lines/csv-file-type-svgrepo-com (1).svg
131
+ - assets/icons/lines/eps-file-type-svgrepo-com.svg
132
+ - assets/icons/lines/excel-file-type-svgrepo-com.svg
133
+ - assets/icons/lines/file-file-type-svgrepo-com.svg
134
+ - assets/icons/lines/folder-svgrepo-com.svg
135
+ - assets/icons/lines/html-file-type-svgrepo-com.svg
136
+ - assets/icons/lines/jpg-file-type-svgrepo-com.svg
137
+ - assets/icons/lines/mov-file-type-svgrepo-com.svg
138
+ - assets/icons/lines/mp3-file-type-svgrepo-com.svg
139
+ - assets/icons/lines/other-file-type-svgrepo-com.svg
140
+ - assets/icons/lines/pdf-file-type-svgrepo-com.svg
141
+ - assets/icons/lines/png-file-type-svgrepo-com.svg
142
+ - assets/icons/lines/ppt-file-type-svgrepo-com.svg
143
+ - assets/icons/lines/psd-file-type-svgrepo-com.svg
144
+ - assets/icons/lines/rar-file-type-svgrepo-com.svg
145
+ - assets/icons/lines/txt-file-type-svgrepo-com.svg
146
+ - assets/icons/lines/wav-file-type-svgrepo-com.svg
147
+ - assets/icons/lines/word-file-type-svgrepo-com.svg
148
+ - assets/icons/lines/zip-file-type-svgrepo-com.svg
149
+ - assets/icons/minimal/c-file-format-document-extension-file-format-2-svgrepo-com.svg
150
+ - assets/icons/minimal/c-file-format-document-extension-file-format-svgrepo-com.svg
151
+ - assets/icons/minimal/css-file-format-document-extension-file-format-svgrepo-com.svg
152
+ - assets/icons/minimal/dwg-file-format-document-extension-file-format-svgrepo-com.svg
153
+ - assets/icons/minimal/dxf-file-format-document-extension-file-format-svgrepo-com.svg
154
+ - assets/icons/minimal/extension-file-format-document-file-format-2-svgrepo-com.svg
155
+ - assets/icons/minimal/extension-file-format-document-file-format-svgrepo-com.svg
156
+ - assets/icons/minimal/extension-file-format-html-document-file-format-svgrepo-com.svg
157
+ - assets/icons/minimal/extension-file-format-jpg-document-file-format-svgrepo-com.svg
158
+ - assets/icons/minimal/extension-file-format-json-document-file-format-svgrepo-com
159
+ (1).svg
160
+ - assets/icons/minimal/extension-file-format-pdf-document-file-format-svgrepo-com.svg
161
+ - assets/icons/minimal/extension-file-format-php-document-file-format-svgrepo-com.svg
162
+ - assets/icons/minimal/extension-file-format-sql-document-file-format-svgrepo-com.svg
163
+ - assets/icons/minimal/extension-file-format-txt-document-file-format-svgrepo-com.svg
164
+ - assets/icons/minimal/file-format-gif-document-extension-file-format-svgrepo-com.svg
165
+ - assets/icons/minimal/file-format-jpeg-document-extension-file-format-svgrepo-com.svg
166
+ - assets/icons/minimal/file-format-js-document-extension-file-format-svgrepo-com.svg
167
+ - assets/icons/minimal/file-format-vb-document-extension-file-format-svgrepo-com.svg
168
+ - assets/icons/minimal/folder-svgrepo-com.svg
169
+ - assets/icons/minimal/ico-file-format-svgrepo-com.svg
170
+ - assets/icons/ultra-minimal/doc.svg
171
+ - assets/icons/ultra-minimal/file.svg
172
+ - assets/icons/ultra-minimal/folder-svgrepo-com.svg
173
+ - assets/icons/ultra-minimal/jpg.svg
174
+ - assets/icons/ultra-minimal/mp3.svg
175
+ - assets/icons/ultra-minimal/mp4.svg
176
+ - assets/icons/ultra-minimal/pdf.svg
177
+ - assets/icons/ultra-minimal/png.svg
178
+ - assets/icons/ultra-minimal/ppt.svg
179
+ - assets/icons/ultra-minimal/txt.svg
180
+ - assets/icons/ultra-minimal/xls.svg
181
+ - assets/icons/ultra-minimal/zip.svg
182
+ - assets/js/documents-search.js
183
+ - jekyll-documents.gemspec
184
+ - lib/jekyll-documents.rb
185
+ - lib/jekyll/documents/configuration.rb
186
+ - lib/jekyll/documents/file_type_icons.rb
187
+ - lib/jekyll/documents/filters.rb
188
+ - lib/jekyll/documents/generator.rb
189
+ - lib/jekyll/documents/json_index_generator.rb
190
+ - lib/jekyll/documents/tags/latest_documents.rb
191
+ - lib/jekyll/documents/utils.rb
192
+ - lib/jekyll/documents/version.rb
193
+ homepage: https://github.com/gundestrup/jekyll-documents
194
+ licenses:
195
+ - AGPL-3.0-only
196
+ metadata: {}
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '2.7'
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ requirements: []
211
+ rubygems_version: 4.0.3
212
+ specification_version: 4
213
+ summary: Auto-generate Jekyll pages for documents (PDF/DOCX/...) with category/date/title
214
+ parsing.
215
+ test_files: []