jekyll-lab-notebook-plugins 0.1.1 → 0.1.6
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 +5 -5
- data/jekyll-lab-notebook-plugins.gemspec +4 -4
- data/lib/count_days.rb +1 -1
- data/lib/jekyll-lab-notebook-plugins.rb +1 -0
- data/lib/jekyll-lab-notebook-plugins/version.rb +1 -1
- data/lib/jekyll_build_search.rb +76 -0
- data/lib/logtags.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bc33aaf73e224e02c012ca095f169e0f48e258f682005cefd4e0a1f66e1ab1ac
|
4
|
+
data.tar.gz: 0cca2a54410a5c145f5571db1e4ff892553f3b28b03f71d7fb51e1c2a96f71a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60efeb96d5242d5a6c471e27c216424851e6962b8248c53f60c8f80cdfbba99c2817d00333c03afc147a3d6361fd386661023893b1b7fcced0b92e5b20c42888
|
7
|
+
data.tar.gz: 86859f7a2c0fa07f540845925192833ae1298472fdd6b7439d374fa36eb2a3694ed5f72728f1d0c7260a5529a75360a11e78d5ff099b972fa258ed623e1a590b
|
@@ -20,9 +20,9 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_runtime_dependency "nokogiri", "~> 1
|
24
|
-
spec.add_runtime_dependency "jekyll", "~> 3
|
23
|
+
spec.add_runtime_dependency "nokogiri", "~> 1"
|
24
|
+
spec.add_runtime_dependency "jekyll", "~> 3"
|
25
25
|
|
26
|
-
spec.add_development_dependency "bundler", "~>
|
27
|
-
spec.add_development_dependency "rake", "~>
|
26
|
+
spec.add_development_dependency "bundler", "~> 2"
|
27
|
+
spec.add_development_dependency "rake", "~> 13"
|
28
28
|
end
|
data/lib/count_days.rb
CHANGED
@@ -17,7 +17,7 @@ module DayLister
|
|
17
17
|
doc = Nokogiri::HTML::DocumentFragment.parse(post.content)
|
18
18
|
|
19
19
|
doc.search('h3').each do |header|
|
20
|
-
if dt = DateTime.parse(header.
|
20
|
+
if dt = DateTime.parse(header.attribute("id")) rescue false
|
21
21
|
result += (dt + Rational(12, 24)).strftime('%s') + ": 4,\n"
|
22
22
|
end
|
23
23
|
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
module Jekyll
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
|
5
|
+
class SearchFileGenerator < Generator
|
6
|
+
safe true
|
7
|
+
|
8
|
+
def generate(site)
|
9
|
+
output = [{"title" => "Test"}]
|
10
|
+
|
11
|
+
path = Pathname.new(site.dest) + "search.json"
|
12
|
+
|
13
|
+
converter = site.find_converter_instance(::Jekyll::Converters::Markdown)
|
14
|
+
search_list = []
|
15
|
+
|
16
|
+
site.posts.docs.each do |post|
|
17
|
+
search_list.push(*build_post_hashes(post, converter))
|
18
|
+
end
|
19
|
+
|
20
|
+
FileUtils.mkdir_p(File.dirname(path))
|
21
|
+
File.open(path, 'w') do |f|
|
22
|
+
f.write(search_list.to_json)
|
23
|
+
end
|
24
|
+
site.keep_files << "search.json"
|
25
|
+
end
|
26
|
+
|
27
|
+
def build_post_hashes(post, converter)
|
28
|
+
post_hashes = []
|
29
|
+
curr_post = nil
|
30
|
+
curr_hash = {}
|
31
|
+
curr_hash["content"] = []
|
32
|
+
|
33
|
+
converted_lines = post.content.split("\n").map do |line|
|
34
|
+
|
35
|
+
curr_hash["content"] << line
|
36
|
+
|
37
|
+
# skip code blocks
|
38
|
+
in_code_block = !in_code_block if line.match(/^```/)
|
39
|
+
next line if in_code_block
|
40
|
+
|
41
|
+
# drop lines that aren't markdown headers
|
42
|
+
matched = line.match(/^(#+) /)
|
43
|
+
next line unless matched
|
44
|
+
|
45
|
+
# drop headers that don't start with dates
|
46
|
+
DateTime.parse(line.strip) rescue next line
|
47
|
+
|
48
|
+
# pretty format dates
|
49
|
+
date = DateTime.parse(line.strip)
|
50
|
+
yearmonth = date.strftime("%Y_%m")
|
51
|
+
iddate = date.strftime("%Y%m%d")
|
52
|
+
displaydate = date.strftime("%a, %b %e")
|
53
|
+
|
54
|
+
# we've found a new entry, remove it from the previous entry's lines
|
55
|
+
curr_hash["content"].pop()
|
56
|
+
|
57
|
+
# extract project tags and flatten into a single array
|
58
|
+
tags = line.strip.scan(/#([a-zA-Z0-9._-]{3,} ?)/).flatten(1)
|
59
|
+
|
60
|
+
if !curr_post.nil?
|
61
|
+
curr_hash["content"] = converter.convert(curr_hash["content"].join("\n"))
|
62
|
+
post_hashes << curr_hash
|
63
|
+
end
|
64
|
+
|
65
|
+
curr_hash = {}
|
66
|
+
curr_hash["content"] = []
|
67
|
+
curr_hash["title"] = displaydate
|
68
|
+
curr_hash["url"] = "/log/#{yearmonth}/##{iddate}"
|
69
|
+
curr_hash["tags"] = tags
|
70
|
+
|
71
|
+
curr_post = date
|
72
|
+
end
|
73
|
+
return post_hashes
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/logtags.rb
CHANGED
@@ -128,7 +128,7 @@ Jekyll::Hooks.register :posts, :post_render do |post|
|
|
128
128
|
|
129
129
|
tags.each do |tag|
|
130
130
|
dir = post.site.config['projects_dir'] || 'projects'
|
131
|
-
old_path = post.url
|
131
|
+
old_path = post.url.dup
|
132
132
|
old_path[0] = ''
|
133
133
|
fix_links(new_node_set, old_path, File.join(dir, tag)) # fix rel links
|
134
134
|
content = new_node_set.to_html
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-lab-notebook-plugins
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tamas Nagy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -16,56 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
19
|
+
version: '1'
|
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: '1
|
26
|
+
version: '1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: jekyll
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '3
|
33
|
+
version: '3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '3
|
40
|
+
version: '3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '2'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '2'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '13'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '13'
|
69
69
|
description:
|
70
70
|
email:
|
71
71
|
- tamas@tamasnagy.com
|
@@ -88,6 +88,7 @@ files:
|
|
88
88
|
- lib/jekyll-lab-notebook-plugins.rb
|
89
89
|
- lib/jekyll-lab-notebook-plugins/version.rb
|
90
90
|
- lib/jekyll-postfiles.rb
|
91
|
+
- lib/jekyll_build_search.rb
|
91
92
|
- lib/logtags.rb
|
92
93
|
- lib/thought_tag.rb
|
93
94
|
homepage: https://github.com/tlnagy/jekyll-lab-notebook-plugins
|
@@ -109,8 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
110
|
- !ruby/object:Gem::Version
|
110
111
|
version: '0'
|
111
112
|
requirements: []
|
112
|
-
|
113
|
-
rubygems_version: 2.6.11
|
113
|
+
rubygems_version: 3.1.2
|
114
114
|
signing_key:
|
115
115
|
specification_version: 4
|
116
116
|
summary: A collection of Jekyll plugins for better electronic lab notebooks
|