jekyll-scholar 0.4.0 → 1.0.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 +15 -0
- data/Gemfile +1 -1
- data/LICENSE +1 -1
- data/README.md +75 -14
- data/features/bibtex.feature +36 -2
- data/features/citation.feature +27 -0
- data/features/cite_details.feature +1 -1
- data/features/sorting.feature +2 -2
- data/lib/jekyll/scholar.rb +2 -0
- data/lib/jekyll/scholar/tags/bibliography.rb +4 -11
- data/lib/jekyll/scholar/tags/cite.rb +4 -6
- data/lib/jekyll/scholar/tags/cite_details.rb +3 -4
- data/lib/jekyll/scholar/tags/quote.rb +3 -3
- data/lib/jekyll/scholar/tags/reference.rb +4 -20
- data/lib/jekyll/scholar/utilities.rb +55 -6
- data/lib/jekyll/scholar/version.rb +1 -1
- metadata +5 -31
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
Y2VlZTg5Njk5MjEzNjZhMmQxYjZmYzc2ZTBmMTdlODJlYTBmNzAyZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OGNmMjQ4NzA1MWUzOThhMjEzNjgyYWFjYzA1ZWUwYTc4YmExMTc5OQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NjhiNGUzYWQ3NTk0MDY4MDQ1OWZkMGYzYjlmYzJhMmY0Njk3YzhhMzRjYjMw
|
10
|
+
ODdmYzU0ZmFmNWY1OGU2ZDQ2Yzg4MGMxZmE2NDk3NWY2ZTM4ZmZjOGM2NDI4
|
11
|
+
MWFmNTEyYmEzYmYzNTk5ODIyNTVhMzY3NGI4MTBkMWNjNjUzMzE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MzVjYTkzMjhjYzU0MjYxZWVkODBkZTI3MDY4Y2VlNjQxNzY0ZGViYTVjMTAz
|
14
|
+
MjIxYzBjNTFjMDNmYjVjYzQ4ODA3MGY3YzZhM2YwYzc4YmMwMWFhNWFmYzUx
|
15
|
+
ODFhNTMzODcxZjhiNDYyYjgwNjA3MGNiY2FjNDRmMGJmZmJjMWU=
|
data/Gemfile
CHANGED
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -101,8 +101,8 @@ also pass in a name to tell Jekyll-Scholar which bibliography it should render.
|
|
101
101
|
|
102
102
|
Let's say you have two bibliographies stored in `_bibliography/books.bib` and
|
103
103
|
`_bibliography/papers.bib`; you can include the bibliographies on your site
|
104
|
-
by respectively calling `{% bibliography books %}` and
|
105
|
-
`{% bibliography papers %}`. For example, you could have a file `references.md`
|
104
|
+
by respectively calling `{% bibliography --file books %}` and
|
105
|
+
`{% bibliography --file papers %}`. For example, you could have a file `references.md`
|
106
106
|
with several reference lists:
|
107
107
|
|
108
108
|
---
|
@@ -120,18 +120,18 @@ with several reference lists:
|
|
120
120
|
Secondary References
|
121
121
|
--------------------
|
122
122
|
|
123
|
-
{% bibliography secondary %}
|
123
|
+
{% bibliography --file secondary %}
|
124
124
|
|
125
125
|
Finally, the bibliography tag supports an optional filter parameter. This
|
126
126
|
filter takes precedence over the global filter defined in your configuration.
|
127
127
|
|
128
|
-
{% bibliography
|
128
|
+
{% bibliography --query @*[year=2013] %}
|
129
129
|
|
130
130
|
The example above would print a bibliography of all entires published in
|
131
131
|
the year 2013. Of course you can also combine the file and filter parameters
|
132
132
|
like this:
|
133
133
|
|
134
|
-
{% bibliography secondary
|
134
|
+
{% bibliography -f secondary -q @*[year=2013] %}
|
135
135
|
|
136
136
|
This would print the publications from 2013 of the bibliography at
|
137
137
|
`_bibliography/secondary.bib`.
|
@@ -179,7 +179,7 @@ Note that this will print your entire bibliography in the Reference section.
|
|
179
179
|
If you would like to include only those entries you cited on the page, pass
|
180
180
|
the `cited` option to the bibliography tag:
|
181
181
|
|
182
|
-
{% bibliography cited %}
|
182
|
+
{% bibliography --cited %}
|
183
183
|
|
184
184
|
For longer quotes, Jekyll-Scholar provides a `quote` tag:
|
185
185
|
|
@@ -217,17 +217,70 @@ using `{% reference ruby %}` anywhere in your page, it will print
|
|
217
217
|
"Flanagan, D., & Matsumoto, Y. (2008). *The Ruby Programming Language.*.
|
218
218
|
O'Reilly Media" (the exact result depends on your formatting style).
|
219
219
|
|
220
|
-
The `reference` tag accepts
|
221
|
-
|
222
|
-
|
223
|
-
want to use a special BibTeX file as input for a specific page. As an example,
|
224
|
-
the tag
|
220
|
+
The `reference` tag accepts the same --file/-f parameter as the bibliography
|
221
|
+
tag. This can be handy if you want to use a special BibTeX file as input for
|
222
|
+
a specific page. As an example, the tag
|
225
223
|
|
226
|
-
{% reference ruby
|
224
|
+
{% reference ruby --file /home/foo/bar.bib %}
|
227
225
|
|
228
226
|
will attempt to read the key `ruby` from file `/home/foo/bar.bib`. It will not
|
229
227
|
fallback to the default BibTeX file.
|
230
228
|
|
229
|
+
#### Citations to multiple bibliographies within one document (like [multibib.sty](http://www.ctan.org/pkg/multibib))
|
230
|
+
|
231
|
+
When you have multiple `{% bibliography %}` sections in one file,
|
232
|
+
Jekyll-Scholar will generate serveral lists containing the same
|
233
|
+
publications that have the same `id` attributes. As a result, when you
|
234
|
+
cite a reference the link to an `id` attribute cannot be resolved
|
235
|
+
uniquely. Your browser will always take you take you to the first
|
236
|
+
occurence of the `id`. Moreover, valid HTML requires unique `id`
|
237
|
+
attributes. This scenario may happen, for example, if you cite the
|
238
|
+
same reference in different blog posts, and all of these posts are
|
239
|
+
shown in one html document.
|
240
|
+
|
241
|
+
As a solution, Jekyll-Scholar provides the `--prefix` tag. In your
|
242
|
+
first post you might cite as
|
243
|
+
|
244
|
+
---
|
245
|
+
title: Post 1
|
246
|
+
---
|
247
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
|
248
|
+
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
|
249
|
+
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
250
|
+
Duis 'aute irure dolor in reprehenderit in voluptate'
|
251
|
+
{% cite derrida:purveyor --prefix post1 %} velit esse cillum
|
252
|
+
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
|
253
|
+
non proident, 'sunt in culpa qui officia deserunt mollit anim id
|
254
|
+
est laborum' {% cite rabinowitz --prefix post1 %}.
|
255
|
+
|
256
|
+
References
|
257
|
+
----------
|
258
|
+
|
259
|
+
{% bibliography --cited --prefix post1 %}
|
260
|
+
|
261
|
+
|
262
|
+
For the second blog post you would cite as follows:
|
263
|
+
|
264
|
+
---
|
265
|
+
title: Post 2
|
266
|
+
---
|
267
|
+
Duis 'aute irure dolor in reprehenderit in voluptate'
|
268
|
+
{% cite rabinowitz --prefix post2 %} velit esse cillum
|
269
|
+
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
|
270
|
+
non proident, 'sunt in culpa qui officia deserunt mollit anim id
|
271
|
+
est laborum' {% cite rainey --prefix post2 %}.
|
272
|
+
|
273
|
+
References
|
274
|
+
----------
|
275
|
+
|
276
|
+
{% bibliography --cited --prefix post2 %}
|
277
|
+
|
278
|
+
Even though both posts cite rabinowitz, both citations will be
|
279
|
+
assigned unique identifiers linking to the respective References
|
280
|
+
section., even if both posts will be rendered into a single HTML
|
281
|
+
document.
|
282
|
+
|
283
|
+
|
231
284
|
### Detail Pages
|
232
285
|
|
233
286
|
If your layouts directory contains a layout file for bibliography details
|
@@ -271,7 +324,7 @@ can be set via the 'details_link' configuration option).
|
|
271
324
|
|
272
325
|
Duis 'aute irure dolor in reprehenderit in voluptate' velit esse cillum
|
273
326
|
dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
|
274
|
-
proident {% cite_details key
|
327
|
+
proident {% cite_details key --text Click Here For More Details %}.
|
275
328
|
|
276
329
|
|
277
330
|
### Bibliography Filters
|
@@ -300,6 +353,14 @@ You can check out a copy of the latest code using Git:
|
|
300
353
|
|
301
354
|
$ git clone https://github.com/inukshuk/jekyll-scholar.git
|
302
355
|
|
356
|
+
To use this lasted version instead of the one provide by RubyGems,
|
357
|
+
just add the line
|
358
|
+
|
359
|
+
$:.unshift '/full/path/to/the/repository/lib'
|
360
|
+
|
361
|
+
to your `_plugins/ext.rb` before requiring 'jekyll/scholar', where
|
362
|
+
`/full/path/to/the/repository` is where you have cloned jekyll-scholar into.
|
363
|
+
|
303
364
|
If you've found a bug or have a question, please open an issue on the
|
304
365
|
[Jekyll-Scholar issue tracker](http://github.com/inukshuk/jekyll-scholar/issues).
|
305
366
|
Or, for extra credit, clone the Jekyll-Scholar repository, write a failing
|
@@ -310,7 +371,7 @@ License
|
|
310
371
|
|
311
372
|
Jekyll-Scholar is distributed under the same license as Jekyll.
|
312
373
|
|
313
|
-
Copyright (c) 2011-
|
374
|
+
Copyright (c) 2011-2013 [Sylvester Keil](http://sylvester.keil.or.at/)
|
314
375
|
|
315
376
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
316
377
|
of this software and associated documentation files (the 'Software'), to deal
|
data/features/bibtex.feature
CHANGED
@@ -83,7 +83,7 @@ Feature: BibTeX
|
|
83
83
|
"""
|
84
84
|
---
|
85
85
|
---
|
86
|
-
{% bibliography references %}
|
86
|
+
{% bibliography -f references %}
|
87
87
|
"""
|
88
88
|
When I run jekyll
|
89
89
|
Then the _site directory should exist
|
@@ -116,10 +116,44 @@ Feature: BibTeX
|
|
116
116
|
"""
|
117
117
|
---
|
118
118
|
---
|
119
|
-
{% bibliography references
|
119
|
+
{% bibliography -f references --query @book[year <= 2000] %}
|
120
120
|
"""
|
121
121
|
When I run jekyll
|
122
122
|
Then the _site directory should exist
|
123
123
|
And the "_site/scholar.html" file should exist
|
124
124
|
And I should not see "<i>The Ruby Programming Language</i>" in "_site/scholar.html"
|
125
125
|
And I should see "<i>Smalltalk Best Practice Patterns</i>" in "_site/scholar.html"
|
126
|
+
|
127
|
+
@tags @bibliography @prefix
|
128
|
+
Scenario: A Prefixed Bibliography
|
129
|
+
Given I have a scholar configuration with:
|
130
|
+
| key | value |
|
131
|
+
| source | ./_bibliography |
|
132
|
+
And I have a "_bibliography" directory
|
133
|
+
And I have a file "_bibliography/references.bib":
|
134
|
+
"""
|
135
|
+
@book{ruby,
|
136
|
+
title = {The Ruby Programming Language},
|
137
|
+
author = {Flanagan, David and Matsumoto, Yukihiro},
|
138
|
+
year = {2008},
|
139
|
+
publisher = {O'Reilly Media}
|
140
|
+
},
|
141
|
+
@book{smalltalk,
|
142
|
+
title = {Smalltalk Best Practice Patterns},
|
143
|
+
author = {Kent Beck},
|
144
|
+
year = {1996},
|
145
|
+
publisher = {Prentice Hall}
|
146
|
+
}
|
147
|
+
|
148
|
+
"""
|
149
|
+
And I have a page "scholar.html":
|
150
|
+
"""
|
151
|
+
---
|
152
|
+
---
|
153
|
+
{% bibliography --file references --prefix a -q @book[year <= 2000] %}
|
154
|
+
"""
|
155
|
+
When I run jekyll
|
156
|
+
Then the _site directory should exist
|
157
|
+
And the "_site/scholar.html" file should exist
|
158
|
+
And I should not see "ruby" in "_site/scholar.html"
|
159
|
+
And I should see "id=\"a-smalltalk\"" in "_site/scholar.html"
|
data/features/citation.feature
CHANGED
@@ -84,3 +84,30 @@ Feature: Citations
|
|
84
84
|
Then the _site directory should exist
|
85
85
|
And the "_site/scholar.html" file should exist
|
86
86
|
And I should see "<blockquote><p>We <3 Ruby</p><cite><a .*#ruby.+\(Flanagan" in "_site/scholar.html"
|
87
|
+
|
88
|
+
@tags @cite
|
89
|
+
Scenario: A prefixed citation
|
90
|
+
Given I have a scholar configuration with:
|
91
|
+
| key | value |
|
92
|
+
| source | ./_bibliography |
|
93
|
+
| bibliography | my_references |
|
94
|
+
And I have a "_bibliography" directory
|
95
|
+
And I have a file "_bibliography/my_references.bib":
|
96
|
+
"""
|
97
|
+
@book{ruby,
|
98
|
+
title = {The Ruby Programming Language},
|
99
|
+
author = {Flanagan, David and Matsumoto, Yukihiro},
|
100
|
+
year = {2008},
|
101
|
+
publisher = {O'Reilly Media}
|
102
|
+
}
|
103
|
+
"""
|
104
|
+
And I have a page "scholar.html":
|
105
|
+
"""
|
106
|
+
---
|
107
|
+
---
|
108
|
+
{% cite ruby --prefix a %}
|
109
|
+
"""
|
110
|
+
When I run jekyll
|
111
|
+
Then the _site directory should exist
|
112
|
+
And the "_site/scholar.html" file should exist
|
113
|
+
And I should see "#a-ruby" in "_site/scholar.html"
|
data/features/sorting.feature
CHANGED
@@ -27,7 +27,7 @@ Feature: Sorting BibTeX Bibliographies
|
|
27
27
|
"""
|
28
28
|
---
|
29
29
|
---
|
30
|
-
{% bibliography references %}
|
30
|
+
{% bibliography -f references %}
|
31
31
|
"""
|
32
32
|
When I run jekyll
|
33
33
|
Then the _site directory should exist
|
@@ -60,7 +60,7 @@ Feature: Sorting BibTeX Bibliographies
|
|
60
60
|
"""
|
61
61
|
---
|
62
62
|
---
|
63
|
-
{% bibliography references %}
|
63
|
+
{% bibliography -f references %}
|
64
64
|
"""
|
65
65
|
When I run jekyll
|
66
66
|
Then the _site directory should exist
|
data/lib/jekyll/scholar.rb
CHANGED
@@ -8,12 +8,8 @@ module Jekyll
|
|
8
8
|
super
|
9
9
|
|
10
10
|
@config = Scholar.defaults.dup
|
11
|
-
|
12
|
-
|
13
|
-
if @bibtex_file == 'cited'
|
14
|
-
@bibtex_file = nil
|
15
|
-
@cited = true
|
16
|
-
end
|
11
|
+
|
12
|
+
optparse(arguments)
|
17
13
|
end
|
18
14
|
|
19
15
|
def render(context)
|
@@ -21,17 +17,14 @@ module Jekyll
|
|
21
17
|
|
22
18
|
references = entries
|
23
19
|
|
24
|
-
if
|
20
|
+
if cited_only?
|
25
21
|
references = cited_references.map do |key|
|
26
22
|
references.detect { |e| e.key == key }
|
27
23
|
end
|
28
24
|
end
|
29
25
|
|
30
26
|
references.map! do |entry|
|
31
|
-
reference =
|
32
|
-
:locale => config['locale'], :format => 'html'
|
33
|
-
|
34
|
-
reference = content_tag :span, reference, :id => entry.key
|
27
|
+
reference = reference_tag entry
|
35
28
|
|
36
29
|
if generate_details?
|
37
30
|
reference << link_to(details_link_for(entry),
|
@@ -4,21 +4,19 @@ module Jekyll
|
|
4
4
|
class CiteTag < Liquid::Tag
|
5
5
|
include Scholar::Utilities
|
6
6
|
|
7
|
-
attr_reader :
|
7
|
+
attr_reader :pages
|
8
8
|
|
9
9
|
def initialize(tag_name, arguments, tokens)
|
10
10
|
super
|
11
11
|
|
12
12
|
@config = Scholar.defaults.dup
|
13
|
-
@key = arguments.strip.split(/\s
|
13
|
+
@key, arguments = arguments.strip.split(/\s+/, 2)
|
14
|
+
|
15
|
+
optparse(arguments)
|
14
16
|
end
|
15
17
|
|
16
18
|
def render(context)
|
17
19
|
set_context_to context
|
18
|
-
|
19
|
-
context['cited'] ||= []
|
20
|
-
context['cited'] << key
|
21
|
-
|
22
20
|
cite key
|
23
21
|
end
|
24
22
|
|
@@ -4,20 +4,19 @@ module Jekyll
|
|
4
4
|
class CiteDetailsTag < Liquid::Tag
|
5
5
|
include Scholar::Utilities
|
6
6
|
|
7
|
-
attr_reader :key, :text
|
8
|
-
|
9
7
|
def initialize(tag_name, arguments, tokens)
|
10
8
|
super
|
11
9
|
|
12
10
|
@config = Scholar.defaults.dup
|
13
|
-
@key,
|
11
|
+
@key, arguments = arguments.strip.split(/\s+/, 2)
|
12
|
+
|
13
|
+
optparse(arguments)
|
14
14
|
end
|
15
15
|
|
16
16
|
def render(context)
|
17
17
|
set_context_to context
|
18
18
|
cite_details key, text
|
19
19
|
end
|
20
|
-
|
21
20
|
end
|
22
21
|
|
23
22
|
end
|
@@ -4,13 +4,13 @@ module Jekyll
|
|
4
4
|
class QuoteTag < Liquid::Block
|
5
5
|
include Scholar::Utilities
|
6
6
|
|
7
|
-
attr_reader :
|
7
|
+
attr_reader :pages
|
8
8
|
|
9
9
|
def initialize(tag_name, arguments, tokens)
|
10
10
|
super
|
11
11
|
|
12
12
|
@config = Scholar.defaults.dup
|
13
|
-
@key = arguments.strip.split(/\s
|
13
|
+
@key, arguments = arguments.strip.split(/\s+/, 2)
|
14
14
|
end
|
15
15
|
|
16
16
|
def render(context)
|
@@ -19,7 +19,7 @@ module Jekyll
|
|
19
19
|
quote = super.strip.gsub(/\n\n/, '</p><p>').gsub(/\n/, '<br/>')
|
20
20
|
quote = content_tag :p, quote
|
21
21
|
|
22
|
-
citation = cite
|
22
|
+
citation = cite key
|
23
23
|
|
24
24
|
quote << content_tag(:cite, citation)
|
25
25
|
|
@@ -4,34 +4,18 @@ module Jekyll
|
|
4
4
|
class ReferenceTag < Liquid::Tag
|
5
5
|
include Scholar::Utilities
|
6
6
|
|
7
|
-
attr_reader :key, :file
|
8
|
-
|
9
7
|
def initialize(tag_name, arguments, tokens)
|
10
8
|
super
|
11
9
|
|
12
10
|
@config = Scholar.defaults.dup
|
13
|
-
@key,
|
11
|
+
@key, arguments = arguments.strip.split(/\s+/, 2)
|
12
|
+
|
13
|
+
optparse(arguments)
|
14
14
|
end
|
15
15
|
|
16
16
|
def render(context)
|
17
17
|
set_context_to context
|
18
|
-
|
19
|
-
BibTeX.open(file, { :filter => :latex })
|
20
|
-
else
|
21
|
-
set_context_to context
|
22
|
-
bibliography
|
23
|
-
end
|
24
|
-
|
25
|
-
entry = bib[key]
|
26
|
-
|
27
|
-
if bib.key?(key)
|
28
|
-
CiteProc.process entry.to_citeproc,
|
29
|
-
:style => config['style'],
|
30
|
-
:locale => config['locale'],
|
31
|
-
:format => 'html'
|
32
|
-
else
|
33
|
-
"(missing reference)"
|
34
|
-
end
|
18
|
+
reference_tag bibliography[key]
|
35
19
|
rescue
|
36
20
|
"(#{key})"
|
37
21
|
end
|
@@ -6,7 +6,38 @@ module Jekyll
|
|
6
6
|
# #site readers
|
7
7
|
module Utilities
|
8
8
|
|
9
|
-
attr_reader :bibtex_file, :config, :site, :query,
|
9
|
+
attr_reader :bibtex_file, :config, :site, :query,
|
10
|
+
:context, :prefix, :key, :text
|
11
|
+
|
12
|
+
def optparse(arguments)
|
13
|
+
return if arguments.nil? || arguments.empty?
|
14
|
+
|
15
|
+
parser = OptionParser.new do |opts|
|
16
|
+
opts.on('-c', '--cited') do |cited|
|
17
|
+
@cited = true
|
18
|
+
end
|
19
|
+
|
20
|
+
opts.on('-f', '--file FILE') do |file|
|
21
|
+
@bibtex_file = file
|
22
|
+
end
|
23
|
+
|
24
|
+
opts.on('-q', '--query QUERY') do |query|
|
25
|
+
@query = query
|
26
|
+
end
|
27
|
+
|
28
|
+
opts.on('-p', '--prefix PREFIX') do |prefix|
|
29
|
+
@prefix = prefix
|
30
|
+
end
|
31
|
+
|
32
|
+
opts.on('-t', '--text TEXT') do |text|
|
33
|
+
@text = text
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
argv = arguments.split(/(\B-[cfqpt]|\B--(?:cited|file|query|prefix|text))/)
|
38
|
+
|
39
|
+
parser.parse argv.map(&:strip).reject(&:empty?)
|
40
|
+
end
|
10
41
|
|
11
42
|
def bibtex_options
|
12
43
|
@bibtex_options ||= { :filter => :latex }
|
@@ -31,16 +62,32 @@ module Jekyll
|
|
31
62
|
b
|
32
63
|
end
|
33
64
|
|
65
|
+
def cited_only?
|
66
|
+
!!@cited
|
67
|
+
end
|
68
|
+
|
34
69
|
def extend_path(name)
|
35
70
|
if name.nil? || name.empty?
|
36
71
|
name = config['bibliography']
|
37
72
|
end
|
38
73
|
|
74
|
+
# return as is if it is an absolute path
|
75
|
+
return name if name.start_with?('/') && File.exists?(name)
|
76
|
+
|
39
77
|
p = File.join(config['source'], name)
|
40
78
|
p << '.bib' unless File.exists?(p)
|
41
79
|
p
|
42
80
|
end
|
43
81
|
|
82
|
+
def reference_tag(entry)
|
83
|
+
return '(missing reference)' unless entry
|
84
|
+
|
85
|
+
reference = CiteProc.process entry.to_citeproc,
|
86
|
+
:style => config['style'], :locale => config['locale'], :format => 'html'
|
87
|
+
|
88
|
+
content_tag :span, reference, :id => [prefix, entry.key].compact.join('-')
|
89
|
+
end
|
90
|
+
|
44
91
|
def generate_details?
|
45
92
|
site.layouts.key?(File.basename(config['details_layout'], '.html'))
|
46
93
|
end
|
@@ -68,23 +115,26 @@ module Jekyll
|
|
68
115
|
def cite(key)
|
69
116
|
entry = bibliography[key]
|
70
117
|
|
118
|
+
context['cited'] ||= []
|
119
|
+
context['cited'] << key
|
120
|
+
|
71
121
|
if bibliography.key?(key)
|
72
122
|
citation = CiteProc.process entry.to_citeproc, :style => config['style'],
|
73
123
|
:locale => config['locale'], :format => 'html', :mode => :citation
|
74
124
|
|
75
|
-
link_to "##{entry.key}", citation.join
|
125
|
+
link_to "##{[prefix, entry.key].compact.join('-')}", citation.join
|
76
126
|
else
|
77
|
-
|
127
|
+
'(missing reference)'
|
78
128
|
end
|
79
129
|
rescue
|
80
130
|
"(#{key})"
|
81
131
|
end
|
82
|
-
|
132
|
+
|
83
133
|
def cite_details(key, text)
|
84
134
|
if bibliography.key?(key)
|
85
135
|
link_to details_link_for(bibliography[key]), text || config['details_link']
|
86
136
|
else
|
87
|
-
|
137
|
+
'(missing reference)'
|
88
138
|
end
|
89
139
|
end
|
90
140
|
|
@@ -116,7 +166,6 @@ module Jekyll
|
|
116
166
|
@context, @site, = context, context.registers[:site]
|
117
167
|
config.merge!(site.config['scholar'] || {})
|
118
168
|
end
|
119
|
-
|
120
169
|
end
|
121
170
|
|
122
171
|
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-scholar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Sylvester Keil
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-03-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: jekyll
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: citeproc-ruby
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: bibtex-ruby
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rake
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: rdoc
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: redgreen
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: shoulda
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: rr
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ~>
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ~>
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: cucumber
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - '='
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - '='
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: RedCloth
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - ~>
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - ~>
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,7 +153,6 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: rdiscount
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - ~>
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - ~>
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -190,7 +167,6 @@ dependencies:
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: redcarpet
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
171
|
- - ~>
|
196
172
|
- !ruby/object:Gem::Version
|
@@ -198,7 +174,6 @@ dependencies:
|
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
178
|
- - ~>
|
204
179
|
- !ruby/object:Gem::Version
|
@@ -240,27 +215,26 @@ files:
|
|
240
215
|
- lib/jekyll/scholar/version.rb
|
241
216
|
homepage: http://github.com/inukshuk/jekyll-scholar
|
242
217
|
licenses: []
|
218
|
+
metadata: {}
|
243
219
|
post_install_message:
|
244
220
|
rdoc_options: []
|
245
221
|
require_paths:
|
246
222
|
- lib
|
247
223
|
required_ruby_version: !ruby/object:Gem::Requirement
|
248
|
-
none: false
|
249
224
|
requirements:
|
250
225
|
- - ! '>='
|
251
226
|
- !ruby/object:Gem::Version
|
252
227
|
version: '0'
|
253
228
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
254
|
-
none: false
|
255
229
|
requirements:
|
256
230
|
- - ! '>='
|
257
231
|
- !ruby/object:Gem::Version
|
258
232
|
version: 1.3.6
|
259
233
|
requirements: []
|
260
234
|
rubyforge_project: jekyll-scholar
|
261
|
-
rubygems_version:
|
235
|
+
rubygems_version: 2.0.3
|
262
236
|
signing_key:
|
263
|
-
specification_version:
|
237
|
+
specification_version: 4
|
264
238
|
summary: Jekyll extensions for the academic blogger.
|
265
239
|
test_files:
|
266
240
|
- features/bibtex.feature
|