jekyll-scholar 6.8.0 → 7.1.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 +4 -4
- data/README.md +4 -4
- data/features/nocite.feature +78 -0
- data/features/page_config.feature +30 -0
- data/jekyll-scholar.gemspec +1 -1
- data/lib/jekyll/scholar/converters/bibtex.rb +2 -2
- data/lib/jekyll/scholar/tags/nocite.rb +28 -0
- data/lib/jekyll/scholar/utilities.rb +15 -2
- data/lib/jekyll/scholar/version.rb +1 -1
- data/lib/jekyll/scholar.rb +1 -0
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 287c638fa9bd7e062280db1af05a5d98cc9d509c423ce1b8d0f7d948f3498b16
|
4
|
+
data.tar.gz: 606db44855a017a7694b61560ef7779c95118f461301298e7875bc1fbf5d2785
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: babca3507daca599a095c21b0c7d517bc6dd0ad3e4f3cce22763b36784fc8be09fe84d2af9b32efdf221239a4ef4b0bdbbd9b85d7eca513368e2e6e6e99297c7
|
7
|
+
data.tar.gz: c40b99a30e36cce98d1bcc11fb3e9bf53dd0c605f79b1701499f7d21a91fe63f26ad836cff952d9ca8bba7d2c52b89fbb25afff87cade2faf404f4808f5d69a4
|
data/README.md
CHANGED
@@ -32,7 +32,7 @@ You can keep sources, configuration and plugins in a separate branch; see e.g.
|
|
32
32
|
[here](http://davidensinger.com/2013/07/automating-jekyll-deployment-to-github-pages-with-rake/)
|
33
33
|
for details.
|
34
34
|
|
35
|
-
|
35
|
+
Alternatively, you can use a [Github Actions](https://github.com/features/actions) called [jekyll-action](https://github.com/helaili/jekyll-action) to deploy your site to Github Pages
|
36
36
|
|
37
37
|
Usage
|
38
38
|
-----
|
@@ -53,10 +53,10 @@ configuration:
|
|
53
53
|
|
54
54
|
In your Jekyll configuration file you can adjust the Jekyll-Scholar settings
|
55
55
|
using the `scholar` key. For example, the following sets the bibliography style
|
56
|
-
to `
|
56
|
+
to `modern-language-association`.
|
57
57
|
|
58
58
|
scholar:
|
59
|
-
style:
|
59
|
+
style: modern-language-association
|
60
60
|
|
61
61
|
The table below describes some commonly used configuration options. For a
|
62
62
|
description of all options and their defaults, see
|
@@ -64,7 +64,7 @@ description of all options and their defaults, see
|
|
64
64
|
|
65
65
|
| Option | Default | Description |
|
66
66
|
|--------|---------|-------------|
|
67
|
-
| `style` | `apa` | Indicates the style used for the bibliography and citations. You can use any style that ships with [CiteProc-Ruby](https://github.com/inukshuk/citeproc-ruby) by name (e.g., apa,
|
67
|
+
| `style` | `apa` | Indicates the style used for the bibliography and citations. You can use any style that ships with [CiteProc-Ruby](https://github.com/inukshuk/citeproc-ruby) by name (e.g., apa, chicago-fullnote-bibliography) which is usually the filename as seen [here](https://github.com/citation-style-language/styles) without the `.csl` ending; note that you have to use `dependent/style` if you want to use one from that directory. Alternatively you can add a link to any CSL style (e.g., you could link to any of the styles available at the official [CSL style repository](https://github.com/citation-style-language/styles)). |
|
68
68
|
| `locale` | `en` | Defines what language to use when formatting your references (this typically applies to localized terms, e.g., 'Eds.' for editors in English). |
|
69
69
|
| `source` | `./_bibliography` | Indicates where your bibliographies are stored. |
|
70
70
|
| `bibliography` | `references.bib` | Indicates the name of your default bibliography. For best results, please ensure that your bibliography is encoded as ASCII or UTF-8. A string that contains a `*` will be passed to `Dir::glob`, so `**/*.bib{,tex}` will find all files named `*.bib` and `*.bibtex` under `source`. |
|
@@ -0,0 +1,78 @@
|
|
1
|
+
Feature: Nocited Bibliographies
|
2
|
+
As a scholar who likes to blog
|
3
|
+
I want to sort my bibliography by hand
|
4
|
+
But do not want to cite anything
|
5
|
+
|
6
|
+
Scenario: Nocite references from a single bibliography
|
7
|
+
Given I have a scholar configuration with:
|
8
|
+
| key | value |
|
9
|
+
| source | ./_bibliography |
|
10
|
+
And I have a "_bibliography" directory
|
11
|
+
And I have a file "_bibliography/references.bib":
|
12
|
+
"""
|
13
|
+
@book{ruby1,
|
14
|
+
title = {The Ruby Programming Language},
|
15
|
+
author = {Flanagan, David and Matsumoto, Yukihiro},
|
16
|
+
year = {2008},
|
17
|
+
publisher = {O'Reilly Media}
|
18
|
+
},
|
19
|
+
@book{ruby2,
|
20
|
+
title = {Ruby Not Cited},
|
21
|
+
author = {Flanagan, David and Matsumoto, Yukihiro},
|
22
|
+
year = {2007},
|
23
|
+
publisher = {O'Reilly Media}
|
24
|
+
},
|
25
|
+
@book{smalltalk,
|
26
|
+
title = {Smalltalk Best Practice Patterns},
|
27
|
+
author = {Kent Beck},
|
28
|
+
year = {1996},
|
29
|
+
publisher = {Prentice Hall}
|
30
|
+
}
|
31
|
+
|
32
|
+
"""
|
33
|
+
And I have a page "scholar.html":
|
34
|
+
"""
|
35
|
+
---
|
36
|
+
---
|
37
|
+
{% nocite smalltalk ruby1 %}
|
38
|
+
{% bibliography --cited %}
|
39
|
+
"""
|
40
|
+
When I run jekyll
|
41
|
+
Then the _site directory should exist
|
42
|
+
And the "_site/scholar.html" file should exist
|
43
|
+
And I should see "<i>Smalltalk Best Practice Patterns</i>" in "_site/scholar.html"
|
44
|
+
And I should see "<i>The Ruby Programming Language</i>" in "_site/scholar.html"
|
45
|
+
And I should not see "<i>Ruby Not Cited</i>" in "_site/scholar.html"
|
46
|
+
|
47
|
+
Scenario: No nocite references results in empty bibliography
|
48
|
+
Given I have a scholar configuration with:
|
49
|
+
| key | value |
|
50
|
+
| source | ./_bibliography |
|
51
|
+
And I have a "_bibliography" directory
|
52
|
+
And I have a file "_bibliography/references.bib":
|
53
|
+
"""
|
54
|
+
@book{ruby,
|
55
|
+
title = {The Ruby Programming Language},
|
56
|
+
author = {Flanagan, David and Matsumoto, Yukihiro},
|
57
|
+
year = {2008},
|
58
|
+
publisher = {O'Reilly Media}
|
59
|
+
},
|
60
|
+
@book{smalltalk,
|
61
|
+
title = {Smalltalk Best Practice Patterns},
|
62
|
+
author = {Kent Beck},
|
63
|
+
year = {1996},
|
64
|
+
publisher = {Prentice Hall}
|
65
|
+
}
|
66
|
+
|
67
|
+
"""
|
68
|
+
And I have a page "scholar.html":
|
69
|
+
"""
|
70
|
+
---
|
71
|
+
---
|
72
|
+
{% bibliography --cited %}
|
73
|
+
"""
|
74
|
+
When I run jekyll
|
75
|
+
Then the _site directory should exist
|
76
|
+
And the "_site/scholar.html" file should exist
|
77
|
+
And I should not see "<i>Smalltalk Best Practice Patterns</i>" in "_site/scholar.html"
|
78
|
+
And I should not see "<i>The Ruby Programming Language</i>" in "_site/scholar.html"
|
@@ -40,3 +40,33 @@ Feature: Page Configuration
|
|
40
40
|
And I should see "The Ruby Programming Language" in "_site/scholar.html"
|
41
41
|
And I should not see "Programming Ruby" in "_site/scholar.html"
|
42
42
|
|
43
|
+
|
44
|
+
@tags
|
45
|
+
Scenario: Template access to page config
|
46
|
+
Given I have a scholar configuration with:
|
47
|
+
| key | value |
|
48
|
+
| source | ./_bibliography |
|
49
|
+
| bibliography_template | <p>{{page.scholar.x}}</p> |
|
50
|
+
And I have a "_bibliography" directory
|
51
|
+
And I have a file "_bibliography/references.bib":
|
52
|
+
"""
|
53
|
+
@book{ruby,
|
54
|
+
title = {The Ruby Programming Language},
|
55
|
+
author = {Flanagan, David and Matsumoto, Yukihiro},
|
56
|
+
year = {2008},
|
57
|
+
publisher = {O'Reilly Media}
|
58
|
+
}
|
59
|
+
"""
|
60
|
+
And I have a page "scholar.html":
|
61
|
+
"""
|
62
|
+
---
|
63
|
+
scholar:
|
64
|
+
x: Asa-Nisi-Masa
|
65
|
+
---
|
66
|
+
{% bibliography %}
|
67
|
+
"""
|
68
|
+
When I run jekyll
|
69
|
+
Then the _site directory should exist
|
70
|
+
And the "_site/scholar.html" file should exist
|
71
|
+
And I should see "<p>Asa-Nisi-Masa</p>" in "_site/scholar.html"
|
72
|
+
|
data/jekyll-scholar.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_runtime_dependency('jekyll', '~> 4.0')
|
28
28
|
s.add_runtime_dependency('citeproc-ruby', '~> 1.0')
|
29
29
|
s.add_runtime_dependency('csl-styles', '~> 1.0')
|
30
|
-
s.add_runtime_dependency('bibtex-ruby', '~>
|
30
|
+
s.add_runtime_dependency('bibtex-ruby', '~> 6.0')
|
31
31
|
|
32
32
|
s.files = `git ls-files`.split("\n")
|
33
33
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -17,7 +17,7 @@ module Jekyll
|
|
17
17
|
|
18
18
|
def initialize(config = {})
|
19
19
|
super
|
20
|
-
@config
|
20
|
+
@config = Scholar.defaults.merge(@config['scholar'] || {})
|
21
21
|
@markdown = Jekyll::Converters::Markdown.new(config)
|
22
22
|
end
|
23
23
|
|
@@ -31,7 +31,7 @@ module Jekyll
|
|
31
31
|
|
32
32
|
def convert(content)
|
33
33
|
content = BibTeX.parse(content, :strict => true, :include => [:meta_content],
|
34
|
-
:filter =>
|
34
|
+
:filter => config['bibtex_filters']).map do |b|
|
35
35
|
if b.respond_to?(:to_citeproc)
|
36
36
|
render_bibliography b
|
37
37
|
else
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class Scholar
|
3
|
+
|
4
|
+
class NoCiteTag < Liquid::Tag
|
5
|
+
include Scholar::Utilities
|
6
|
+
|
7
|
+
attr_reader :pages
|
8
|
+
|
9
|
+
def initialize(tag_name, arguments, tokens)
|
10
|
+
super
|
11
|
+
|
12
|
+
@config = Scholar.defaults.dup
|
13
|
+
@keys, arguments = split_arguments(arguments)
|
14
|
+
|
15
|
+
optparse(arguments)
|
16
|
+
end
|
17
|
+
|
18
|
+
def render(context)
|
19
|
+
set_context_to context
|
20
|
+
nocite keys
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Liquid::Template.register_tag('nocite', Jekyll::Scholar::NoCiteTag)
|
@@ -384,7 +384,7 @@ module Jekyll
|
|
384
384
|
def month_names
|
385
385
|
return @month_names unless @month_names.nil?
|
386
386
|
|
387
|
-
@month_names = config['month_names'].nil? ? Date::MONTHNAMES : config['month_names']
|
387
|
+
@month_names = config['month_names'].nil? ? Date::MONTHNAMES : [nil] + config['month_names']
|
388
388
|
end
|
389
389
|
|
390
390
|
def remove_duplicates?
|
@@ -527,10 +527,11 @@ module Jekyll
|
|
527
527
|
.merge(site.site_payload)
|
528
528
|
.merge({
|
529
529
|
'index' => index,
|
530
|
+
'page' => context.registers[:page],
|
530
531
|
'details' => details_link_for(entry)
|
531
532
|
}),
|
532
533
|
{
|
533
|
-
:registers =>
|
534
|
+
:registers => context.registers,
|
534
535
|
:filters => [Jekyll::Filters]
|
535
536
|
})
|
536
537
|
end
|
@@ -730,6 +731,18 @@ module Jekyll
|
|
730
731
|
link_to link_target_for(keys[0]), render_citation(items), {class: config['cite_class']}
|
731
732
|
end
|
732
733
|
|
734
|
+
def nocite(keys)
|
735
|
+
items = keys.map do |key|
|
736
|
+
if bibliography.key?(key)
|
737
|
+
entry = bibliography[key]
|
738
|
+
cited_keys << entry.key
|
739
|
+
cited_keys.uniq!
|
740
|
+
else
|
741
|
+
return missing_reference
|
742
|
+
end
|
743
|
+
end
|
744
|
+
end
|
745
|
+
|
733
746
|
def cite_details(key, text)
|
734
747
|
if bibliography.key?(key)
|
735
748
|
link_to details_link_for(bibliography[key]), text || config['details_link']
|
data/lib/jekyll/scholar.rb
CHANGED
@@ -18,6 +18,7 @@ require 'jekyll/scholar/tags/bibtex'
|
|
18
18
|
require 'jekyll/scholar/tags/cite'
|
19
19
|
require 'jekyll/scholar/tags/cite_details'
|
20
20
|
require 'jekyll/scholar/tags/details_link'
|
21
|
+
require 'jekyll/scholar/tags/nocite'
|
21
22
|
require 'jekyll/scholar/tags/quote'
|
22
23
|
require 'jekyll/scholar/tags/reference'
|
23
24
|
require 'jekyll/scholar/generators/details'
|
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:
|
4
|
+
version: 7.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvester Keil
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '6.0'
|
62
62
|
type: :runtime
|
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: '6.0'
|
69
69
|
description: " Jekyll-Scholar is for all the academic bloggers out there. It is a
|
70
70
|
set of extensions for Jekyll the awesome, blog aware, static site generator; it
|
71
71
|
formats your BibTeX bibliographies for the web using CSL citation styles and generally
|
@@ -97,6 +97,7 @@ files:
|
|
97
97
|
- features/interpolate.feature
|
98
98
|
- features/layout.feature
|
99
99
|
- features/multiple_files.feature
|
100
|
+
- features/nocite.feature
|
100
101
|
- features/page_config.feature
|
101
102
|
- features/reference.feature
|
102
103
|
- features/removeduplicate.feature
|
@@ -127,6 +128,7 @@ files:
|
|
127
128
|
- lib/jekyll/scholar/tags/cite.rb
|
128
129
|
- lib/jekyll/scholar/tags/cite_details.rb
|
129
130
|
- lib/jekyll/scholar/tags/details_link.rb
|
131
|
+
- lib/jekyll/scholar/tags/nocite.rb
|
130
132
|
- lib/jekyll/scholar/tags/quote.rb
|
131
133
|
- lib/jekyll/scholar/tags/reference.rb
|
132
134
|
- lib/jekyll/scholar/utilities.rb
|
@@ -150,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
152
|
- !ruby/object:Gem::Version
|
151
153
|
version: 1.3.6
|
152
154
|
requirements: []
|
153
|
-
rubygems_version: 3.
|
155
|
+
rubygems_version: 3.2.15
|
154
156
|
signing_key:
|
155
157
|
specification_version: 4
|
156
158
|
summary: Jekyll extensions for the academic blogger.
|
@@ -168,6 +170,7 @@ test_files:
|
|
168
170
|
- features/interpolate.feature
|
169
171
|
- features/layout.feature
|
170
172
|
- features/multiple_files.feature
|
173
|
+
- features/nocite.feature
|
171
174
|
- features/page_config.feature
|
172
175
|
- features/reference.feature
|
173
176
|
- features/removeduplicate.feature
|