jekyll-scholar 0.4.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|