jekyll-scholar 4.0.5 → 4.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 +11 -4
- data/features/bibtex.feature +26 -0
- data/features/repository.feature +6 -1
- data/lib/jekyll/scholar.rb +1 -0
- data/lib/jekyll/scholar/tags/bibtex.rb +30 -0
- data/lib/jekyll/scholar/utilities.rb +19 -5
- data/lib/jekyll/scholar/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3526ee5f1f1f511cb8af9059c0da3e82331ff87b
|
4
|
+
data.tar.gz: 147e99c0e375f097015d4fa527c04d565f8011ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf53a90ba56215c0f4bd6bb5b68520766bdb7457f3f20f93b6de5668fc7d4840af3d49140cd558d09a2d10a3d0438be1e25cc227b76f318ab29c817cbe14bbb7
|
7
|
+
data.tar.gz: e2cc049bc9eb96dc9425ef5fa475d7f5b0c0c8de4a6311c3456e67bdaeb0a5dd27c1692921de4d0a127e3cf746ffcc16ced4ac96d591ba8d6bfef871cbde0dff
|
data/README.md
CHANGED
@@ -379,12 +379,19 @@ Postscript files of your papers, you can use the configuration option
|
|
379
379
|
`repository` to indicate this directory. When generating bibliographies,
|
380
380
|
Jekyll-Scholar will look in that folder to see if it contains a filename
|
381
381
|
matching each entry's BibTeX key: if it does, the path to that file
|
382
|
-
will be exposed to the bibliography template.
|
382
|
+
will be exposed to the bibliography template as the `link` property.
|
383
|
+
|
384
|
+
Since version 4.1.0 repositories are not limited to PDF and PS files.
|
385
|
+
These files are mapped to the `links` property in your bibliography
|
386
|
+
template. Here is an example of template that utilizes this feature
|
387
|
+
to link to supporting material in a ZIP archive:
|
388
|
+
|
389
|
+
{{ reference }} [<a href="{{links.zip}}">Supporting Materials</a>]
|
383
390
|
|
384
391
|
### Detail Pages
|
385
392
|
|
386
393
|
If your layouts directory contains a layout file for bibliography details
|
387
|
-
(the
|
394
|
+
(the `details_layout` configuration options), Jekyll-Scholar will generate
|
388
395
|
a details page for each entry in you main bibliography. That is to say, if
|
389
396
|
your bibliography contains the following entry:
|
390
397
|
|
@@ -437,8 +444,8 @@ configuration option. For example:
|
|
437
444
|
query: "@book" #=> includes only books
|
438
445
|
query: "@article[year>=2003]" #=> includes only articles published 2003 or later
|
439
446
|
query: "@*[url]" #=> includes all entries with a url field
|
440
|
-
query: "@*[status!=review]" #=> includes all entries whose status field is not set to 'review'
|
441
|
-
query: "@book[year <= 1900 && author ^= Poe]" #=> Books published before 1900 where the author matches /Poe/
|
447
|
+
query: "@*[status!=review]" #=> includes all entries whose status field is not set to 'review'
|
448
|
+
query: "@book[year <= 1900 && author ^= Poe]" #=> Books published before 1900 where the author matches /Poe/
|
442
449
|
query: "!@book" #=> includes all entries with a type other than book
|
443
450
|
|
444
451
|
Please note that some of these queries require BibTeX-Ruby 2.3.0 or
|
data/features/bibtex.feature
CHANGED
@@ -63,6 +63,32 @@ Feature: BibTeX
|
|
63
63
|
And the "_site/references.html" file should exist
|
64
64
|
And I should see "Look, an umlaut: ü!" in "_site/references.html"
|
65
65
|
|
66
|
+
@tags @bibtex @wip
|
67
|
+
Scenario: Embedded BibTeX
|
68
|
+
Given I have a scholar configuration with:
|
69
|
+
| key | value |
|
70
|
+
| style | apa |
|
71
|
+
And I have a page "references.md":
|
72
|
+
"""
|
73
|
+
---
|
74
|
+
---
|
75
|
+
References
|
76
|
+
==========
|
77
|
+
|
78
|
+
{% bibtex %}
|
79
|
+
@book{ruby,
|
80
|
+
title = {The Ruby Programming Language},
|
81
|
+
author = {Flanagan, David and Matsumoto, Yukihiro},
|
82
|
+
year = {2008},
|
83
|
+
publisher = {O'Reilly Media}
|
84
|
+
}
|
85
|
+
{% endbibtex %}
|
86
|
+
"""
|
87
|
+
When I run jekyll
|
88
|
+
Then the _site directory should exist
|
89
|
+
And the "_site/references.html" file should exist
|
90
|
+
And I should see "<i>The Ruby Programming Language</i>" in "_site/references.html"
|
91
|
+
|
66
92
|
@tags
|
67
93
|
Scenario: Simple Bibliography Loaded From Default Directory
|
68
94
|
Given I have a scholar configuration with:
|
data/features/repository.feature
CHANGED
@@ -25,12 +25,16 @@ Feature: PDF Repository
|
|
25
25
|
"""
|
26
26
|
The PDF
|
27
27
|
"""
|
28
|
+
And I have a file "papers/ruby.ppt":
|
29
|
+
"""
|
30
|
+
The PPT
|
31
|
+
"""
|
28
32
|
And I have a "_layouts" directory
|
29
33
|
And I have a file "_layouts/bibliography.html":
|
30
34
|
"""
|
31
35
|
---
|
32
36
|
---
|
33
|
-
{{ reference }} Link: {{ link }}
|
37
|
+
{{ reference }} Link: {{ link }} Slides: {{ links.ppt }}
|
34
38
|
"""
|
35
39
|
And I have a page "scholar.html":
|
36
40
|
"""
|
@@ -43,6 +47,7 @@ Feature: PDF Repository
|
|
43
47
|
And the "_site/papers/ruby.pdf" file should exist
|
44
48
|
And I should see "The Ruby Programming Language" in "_site/scholar.html"
|
45
49
|
And I should see "Link: /papers/ruby.pdf" in "_site/scholar.html"
|
50
|
+
And I should see "Slides: /papers/ruby.ppt" in "_site/scholar.html"
|
46
51
|
|
47
52
|
|
48
53
|
|
data/lib/jekyll/scholar.rb
CHANGED
@@ -13,6 +13,7 @@ require 'jekyll/scholar/utilities'
|
|
13
13
|
|
14
14
|
require 'jekyll/scholar/converters/bibtex'
|
15
15
|
require 'jekyll/scholar/tags/bibliography'
|
16
|
+
require 'jekyll/scholar/tags/bibtex'
|
16
17
|
require 'jekyll/scholar/tags/cite'
|
17
18
|
require 'jekyll/scholar/tags/cite_details'
|
18
19
|
require 'jekyll/scholar/tags/quote'
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Jekyll
|
2
|
+
class Scholar
|
3
|
+
|
4
|
+
class BibTeXTag < Liquid::Block
|
5
|
+
include Scholar::Utilities
|
6
|
+
|
7
|
+
def initialize(tag_name, arguments, tokens)
|
8
|
+
super
|
9
|
+
|
10
|
+
@config = Scholar.defaults.dup
|
11
|
+
@keys, arguments = split_arguments arguments
|
12
|
+
|
13
|
+
optparse(arguments)
|
14
|
+
end
|
15
|
+
|
16
|
+
def render(context)
|
17
|
+
set_context_to context
|
18
|
+
|
19
|
+
BibTeX.parse(super, bibtex_options).map { |entry|
|
20
|
+
reference_tag entry
|
21
|
+
|
22
|
+
}.join("\n")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
Liquid::Template.register_tag('bibtex', Jekyll::Scholar::BibTeXTag)
|
30
|
+
|
@@ -151,11 +151,16 @@ module Jekyll
|
|
151
151
|
end
|
152
152
|
|
153
153
|
def load_repository
|
154
|
-
|
154
|
+
repo = Hash.new { |h,k| h[k] = {} }
|
155
155
|
|
156
|
-
|
157
|
-
|
158
|
-
|
156
|
+
return repo unless repository?
|
157
|
+
|
158
|
+
Dir[File.join(repository_path, '**/*')].each do |path|
|
159
|
+
extname = File.extname(path)
|
160
|
+
repo[File.basename(path, extname)][extname[1..-1]] = path
|
161
|
+
end
|
162
|
+
|
163
|
+
repo
|
159
164
|
end
|
160
165
|
|
161
166
|
def repository_path
|
@@ -241,6 +246,7 @@ module Jekyll
|
|
241
246
|
'key' => entry.key,
|
242
247
|
'type' => entry.type.to_s,
|
243
248
|
'link' => repository_link_for(entry),
|
249
|
+
'links' => repository_links_for(entry),
|
244
250
|
'index' => index,
|
245
251
|
'details' => details_link_for(entry)
|
246
252
|
})
|
@@ -281,12 +287,20 @@ module Jekyll
|
|
281
287
|
end
|
282
288
|
|
283
289
|
def repository_link_for(entry, base = base_url)
|
284
|
-
|
290
|
+
links = repository[entry.key]
|
291
|
+
url = links['pdf'] || links['ps']
|
292
|
+
|
285
293
|
return unless url
|
286
294
|
|
287
295
|
File.join(base, url)
|
288
296
|
end
|
289
297
|
|
298
|
+
def repository_links_for(entry, base = base_url)
|
299
|
+
Hash[repository[entry.key].map { |ext, url|
|
300
|
+
[ext, File.join(base, url)]
|
301
|
+
}]
|
302
|
+
end
|
303
|
+
|
290
304
|
def details_link_for(entry, base = base_url)
|
291
305
|
File.join(base, details_path, details_file_for(entry))
|
292
306
|
end
|
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.0
|
4
|
+
version: 4.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: 2014-
|
11
|
+
date: 2014-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- lib/jekyll/scholar/defaults.rb
|
106
106
|
- lib/jekyll/scholar/generators/details.rb
|
107
107
|
- lib/jekyll/scholar/tags/bibliography.rb
|
108
|
+
- lib/jekyll/scholar/tags/bibtex.rb
|
108
109
|
- lib/jekyll/scholar/tags/cite.rb
|
109
110
|
- lib/jekyll/scholar/tags/cite_details.rb
|
110
111
|
- lib/jekyll/scholar/tags/quote.rb
|
@@ -131,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
132
|
version: 1.3.6
|
132
133
|
requirements: []
|
133
134
|
rubyforge_project: jekyll-scholar
|
134
|
-
rubygems_version: 2.
|
135
|
+
rubygems_version: 2.1.8
|
135
136
|
signing_key:
|
136
137
|
specification_version: 4
|
137
138
|
summary: Jekyll extensions for the academic blogger.
|