jekyll-scholar 6.3.0 → 6.3.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.
- checksums.yaml +4 -4
- data/features/cited_only.feature +1 -1
- data/features/interpolate.feature +93 -1
- data/lib/jekyll/scholar/utilities.rb +54 -46
- data/lib/jekyll/scholar/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 452e18974fffbcc53b889b3c5669fbcd545a327462a72b3d331764019e9fc664
|
4
|
+
data.tar.gz: 90aab98a5f43f43c90a576b8eb1df3a2c05c9ca7581d6112871ad9172f4ddcb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03156b59764f5e578aa60b227b4308d3590b96490a2a5ae2dd5bc4c50b689a3aedcfb98e98a1415207e59b7b60eba0fd7f0d6d8cf2d4b0d4e7b75d417e50e6d3
|
7
|
+
data.tar.gz: 6a626feb3f485af7d4f7ef8ff76064f520bf7351fed4ee764b27e0c2f5ea15b4046acd07a5520a7248b91d166300ff0372b25cba939f88ac82658f04a3575c5d
|
data/features/cited_only.feature
CHANGED
@@ -44,7 +44,7 @@ Feature: Interpolations ...
|
|
44
44
|
Then the _site directory should exist
|
45
45
|
And the "_site/scholar.html" file should exist
|
46
46
|
And I should see "The Ruby Programming Language" in "_site/scholar.html"
|
47
|
-
|
47
|
+
|
48
48
|
|
49
49
|
@tags @grouping
|
50
50
|
Scenario: Local grouping override - grouping by year with interpolation
|
@@ -81,3 +81,95 @@ Feature: Interpolations ...
|
|
81
81
|
Then I should see "<h2 class=\"bibliography\">2007</h2>" in "_site/scholar.html"
|
82
82
|
And I should see "<h2 class=\"bibliography\">2008</h2>" in "_site/scholar.html"
|
83
83
|
And "2008" should come before "2007" in "_site/scholar.html"
|
84
|
+
|
85
|
+
@tags @reference @liquid @interpolate
|
86
|
+
Scenario: Interpolate liquid variables in queries
|
87
|
+
Given I have a scholar configuration with:
|
88
|
+
| key | value |
|
89
|
+
| source | ./_bibliography |
|
90
|
+
| bibliography | my_references |
|
91
|
+
And I have a "_bibliography" directory
|
92
|
+
And I have a file "_bibliography/my_references.bib":
|
93
|
+
"""
|
94
|
+
@book{a,
|
95
|
+
title = {Book A},
|
96
|
+
year = {2008}
|
97
|
+
}
|
98
|
+
@book{b,
|
99
|
+
title = {Book B},
|
100
|
+
year = {2018}
|
101
|
+
}
|
102
|
+
"""
|
103
|
+
And I have a page "scholar.html":
|
104
|
+
"""
|
105
|
+
---
|
106
|
+
---
|
107
|
+
{% assign from = 2000 %}
|
108
|
+
{% assign to = 2010 %}
|
109
|
+
{% bibliography --query @book[year >= {{from}} && year <= {{to}}] %}
|
110
|
+
"""
|
111
|
+
When I run jekyll
|
112
|
+
Then the _site directory should exist
|
113
|
+
And the "_site/scholar.html" file should exist
|
114
|
+
And I should see "Book A" in "_site/scholar.html"
|
115
|
+
And I should not see "Book B" in "_site/scholar.html"
|
116
|
+
|
117
|
+
@tags @bibliography @liquid @interpolate
|
118
|
+
Scenario: Interpolate page variables in queries
|
119
|
+
Given I have a scholar configuration with:
|
120
|
+
| key | value |
|
121
|
+
| source | ./_bibliography |
|
122
|
+
And I have a "_bibliography" directory
|
123
|
+
And I have a file "_bibliography/references.bib":
|
124
|
+
"""
|
125
|
+
@book{a,
|
126
|
+
title = {Book A},
|
127
|
+
year = {2008}
|
128
|
+
}
|
129
|
+
@book{b,
|
130
|
+
title = {Book B},
|
131
|
+
year = {2018}
|
132
|
+
}
|
133
|
+
"""
|
134
|
+
And I have a page "scholar.html":
|
135
|
+
"""
|
136
|
+
---
|
137
|
+
bibquery: year >= 2000 && year <= 2010
|
138
|
+
---
|
139
|
+
{% bibliography --query @*[{{page.bibquery}}] %}
|
140
|
+
"""
|
141
|
+
When I run jekyll
|
142
|
+
Then the _site directory should exist
|
143
|
+
And the "_site/scholar.html" file should exist
|
144
|
+
And I should see "Book A" in "_site/scholar.html"
|
145
|
+
And I should not see "Book B" in "_site/scholar.html"
|
146
|
+
|
147
|
+
@tags @bibliography @liquid @interpolate
|
148
|
+
Scenario: Interpolate page variables in queries
|
149
|
+
Given I have a scholar configuration with:
|
150
|
+
| key | value |
|
151
|
+
| source | ./_bibliography |
|
152
|
+
And I have a "_bibliography" directory
|
153
|
+
And I have a file "_bibliography/references.bib":
|
154
|
+
"""
|
155
|
+
@book{a,
|
156
|
+
title = {Book A},
|
157
|
+
year = {2008}
|
158
|
+
}
|
159
|
+
@book{b,
|
160
|
+
title = {Book B},
|
161
|
+
year = {2018}
|
162
|
+
}
|
163
|
+
"""
|
164
|
+
And I have a page "scholar.html":
|
165
|
+
"""
|
166
|
+
---
|
167
|
+
bibquery: "@book[year >= 2000 && year <= 2010]"
|
168
|
+
---
|
169
|
+
{% bibliography --query {{page.bibquery}} %}
|
170
|
+
"""
|
171
|
+
When I run jekyll
|
172
|
+
Then the _site directory should exist
|
173
|
+
And the "_site/scholar.html" file should exist
|
174
|
+
And I should see "Book A" in "_site/scholar.html"
|
175
|
+
And I should not see "Book B" in "_site/scholar.html"
|
@@ -33,7 +33,7 @@ module Jekyll
|
|
33
33
|
|
34
34
|
parser = OptionParser.new do |opts|
|
35
35
|
|
36
|
-
|
36
|
+
opts.on('-c', '--cited') do |cited|
|
37
37
|
@cited = true
|
38
38
|
end
|
39
39
|
|
@@ -41,6 +41,10 @@ module Jekyll
|
|
41
41
|
@cited, @skip_sort = true, true
|
42
42
|
end
|
43
43
|
|
44
|
+
opts.on('--clear') do |cited|
|
45
|
+
@clear = true
|
46
|
+
end
|
47
|
+
|
44
48
|
opts.on('-r', '--remove_duplicates [MATCH_FIELDS]') do |match_field|
|
45
49
|
@remove_duplicates = true
|
46
50
|
@match_fields = match_field.split(/,\s+/) if not match_field.nil?
|
@@ -108,17 +112,17 @@ module Jekyll
|
|
108
112
|
end
|
109
113
|
end
|
110
114
|
|
111
|
-
argv = arguments.split(/(\B-[cCfhqptTsgGOlLomAr]|\B--(?:cited(_in_order)?|bibliography_list_tag|file|query|prefix|text|style|group_(?:by|order)|type_order|template|locator|label|offset|max|suppress_author|remove_duplicates|))/)
|
115
|
+
argv = arguments.split(/(\B-[cCfhqptTsgGOlLomAr]|\B--(?:cited(_in_order)?|clear|bibliography_list_tag|file|query|prefix|text|style|group_(?:by|order)|type_order|template|locator|label|offset|max|suppress_author|remove_duplicates|))/)
|
112
116
|
|
113
117
|
parser.parse argv.map(&:strip).reject(&:empty?)
|
114
118
|
end
|
115
119
|
|
116
120
|
def bibliography_list_tag
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
121
|
+
if @bibliography_list_tag.nil?
|
122
|
+
config['bibliography_list_tag']
|
123
|
+
else
|
124
|
+
@bibliography_list_tag
|
125
|
+
end
|
122
126
|
end
|
123
127
|
|
124
128
|
def allow_locale_overrides?
|
@@ -128,7 +132,7 @@ module Jekyll
|
|
128
132
|
|
129
133
|
def match_fields
|
130
134
|
@match_fields ||= []
|
131
|
-
end
|
135
|
+
end
|
132
136
|
|
133
137
|
def locators
|
134
138
|
@locators ||= []
|
@@ -163,8 +167,8 @@ module Jekyll
|
|
163
167
|
|
164
168
|
def bibtex_paths
|
165
169
|
@bibtex_paths ||= bibtex_files.map { |file|
|
166
|
-
|
167
|
-
|
170
|
+
interpolated_file = interpolate file
|
171
|
+
extend_path interpolated_file
|
168
172
|
}
|
169
173
|
end
|
170
174
|
|
@@ -215,14 +219,14 @@ module Jekyll
|
|
215
219
|
sorted = unsorted.sort do |e1, e2|
|
216
220
|
sort_keys
|
217
221
|
.map.with_index do |key, idx|
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
end
|
222
|
+
v1 = e1[key].nil? ? BibTeX::Value.new : e1[key]
|
223
|
+
v2 = e2[key].nil? ? BibTeX::Value.new : e2[key]
|
224
|
+
if (sort_order[idx] || sort_order.last) =~ /^(desc|reverse)/i
|
225
|
+
v2 <=> v1
|
226
|
+
else
|
227
|
+
v1 <=> v2
|
225
228
|
end
|
229
|
+
end
|
226
230
|
.find { |c| c != 0 } || 0
|
227
231
|
end
|
228
232
|
|
@@ -420,6 +424,10 @@ module Jekyll
|
|
420
424
|
!!@cited
|
421
425
|
end
|
422
426
|
|
427
|
+
def clear?
|
428
|
+
!!@clear
|
429
|
+
end
|
430
|
+
|
423
431
|
def skip_sort?
|
424
432
|
@skip_sort || config['sort_by'] == 'none'
|
425
433
|
end
|
@@ -498,15 +506,15 @@ module Jekyll
|
|
498
506
|
|
499
507
|
tmp = liquid_template.render(
|
500
508
|
reference_data(entry,index)
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
509
|
+
.merge(site.site_payload)
|
510
|
+
.merge({
|
511
|
+
'index' => index,
|
512
|
+
'details' => details_link_for(entry)
|
513
|
+
}),
|
514
|
+
{
|
515
|
+
:registers => { :site => site },
|
516
|
+
:filters => [Jekyll::Filters]
|
517
|
+
}
|
510
518
|
)
|
511
519
|
# process the generated reference with Liquid, to get the same behaviour as
|
512
520
|
# when it is used on a page
|
@@ -660,10 +668,10 @@ module Jekyll
|
|
660
668
|
rescue
|
661
669
|
# Locale failed to load; just use original one!
|
662
670
|
end if allow_locale_overrides? &&
|
663
|
-
|
671
|
+
entry['language'] != renderer.locale.language
|
664
672
|
|
665
673
|
renderer.render citation_item_for(entry, index),
|
666
|
-
|
674
|
+
styles(style).bibliography
|
667
675
|
ensure
|
668
676
|
renderer.locale = original_locale unless original_locale.nil?
|
669
677
|
end
|
@@ -784,32 +792,32 @@ module Jekyll
|
|
784
792
|
end
|
785
793
|
|
786
794
|
def update_dependency_tree
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
795
|
+
# Add bibtex files to dependency tree
|
796
|
+
if context.registers[:page] and context.registers[:page].key? "path"
|
797
|
+
bibtex_paths.each do |bibtex_path|
|
798
|
+
site.regenerator.add_dependency(
|
799
|
+
site.in_source_dir(context.registers[:page]["path"]),
|
800
|
+
bibtex_path
|
801
|
+
)
|
802
|
+
end
|
803
|
+
end
|
796
804
|
end
|
797
805
|
|
798
806
|
def cited_entries
|
799
807
|
items = entries
|
800
808
|
if cited_only?
|
801
809
|
items = if skip_sort?
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
+
cited_references.uniq.map do |key|
|
811
|
+
items.detect { |e| e.key == key }
|
812
|
+
end
|
813
|
+
else
|
814
|
+
entries.select do |e|
|
815
|
+
cited_references.include? e.key
|
816
|
+
end
|
817
|
+
end
|
810
818
|
|
811
819
|
# See #90
|
812
|
-
cited_keys.clear
|
820
|
+
cited_keys.clear if clear?
|
813
821
|
end
|
814
822
|
|
815
823
|
items
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-scholar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.3.
|
4
|
+
version: 6.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvester Keil
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -154,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
154
154
|
- !ruby/object:Gem::Version
|
155
155
|
version: 1.3.6
|
156
156
|
requirements: []
|
157
|
-
rubygems_version: 3.0.
|
157
|
+
rubygems_version: 3.0.6
|
158
158
|
signing_key:
|
159
159
|
specification_version: 4
|
160
160
|
summary: Jekyll extensions for the academic blogger.
|