Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
caesr-pub
jekyll-scholar
Commits
50c4ded7
Commit
50c4ded7
authored
Apr 06, 2013
by
Sylvester Keil
Browse files
add bibliography templates
#19
parent
e7108207
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
104 additions
and
21 deletions
+104
-21
features/bibtex.feature
features/bibtex.feature
+28
-0
features/reference.feature
features/reference.feature
+31
-2
lib/jekyll/scholar/defaults.rb
lib/jekyll/scholar/defaults.rb
+20
-16
lib/jekyll/scholar/tags/bibliography.rb
lib/jekyll/scholar/tags/bibliography.rb
+1
-1
lib/jekyll/scholar/utilities.rb
lib/jekyll/scholar/utilities.rb
+24
-2
No files found.
features/bibtex.feature
View file @
50c4ded7
...
...
@@ -90,6 +90,34 @@ Feature: BibTeX
And
the
"_site/scholar.html"
file should exist
And
I should see
"<i>The Ruby Programming Language</i>"
in
"_site/scholar.html"
@tags
@bibliography
@config
Scenario
:
Simple Bibliography With Custom Template
Given I have a scholar configuration with
:
|
key
|
value
|
|
source
|
./_bibliography
|
|
bibliography_template
|
<abbr>[%{key}]</abbr>%{reference}
|
And
I have a
"_bibliography"
directory
And I have a file "_bibliography/references.bib"
:
"""
@book{ruby,
title = {The Ruby Programming Language},
author = {Flanagan, David and Matsumoto, Yukihiro},
year = {2008},
publisher = {O'Reilly Media}
}
"""
And I have a page "scholar.html"
:
"""
---
---
{% bibliography -f references %}
"""
When
I run jekyll
Then
the _site directory should exist
And
the
"_site/scholar.html"
file should exist
And
I should see
"<i>The Ruby Programming Language</i>"
in
"_site/scholar.html"
And
I should see
"<abbr>\[ruby\]</abbr><span"
in
"_site/scholar.html"
@tags
@filter
Scenario
:
Filtered Bibliography Loaded From Default Directory
Given I have a scholar configuration with
:
...
...
features/reference.feature
View file @
50c4ded7
...
...
@@ -29,7 +29,7 @@ Feature: Formatted References
And
the
"_site/scholar.html"
file should exist
And
I should see
"Matsumoto, Y. \(2008\). <i>The Ruby"
in
"_site/scholar.html"
@tags
@reference
@tags
@reference
@missing
Scenario
:
Missing references
Given I have a scholar configuration with
:
|
key
|
value
|
...
...
@@ -54,4 +54,33 @@ Feature: Formatted References
When
I run jekyll
Then
the _site directory should exist
And
the
"_site/scholar.html"
file should exist
And
I should see
"missing reference"
in
"_site/scholar.html"
And
I should see
"(missing reference)"
in
"_site/scholar.html"
@tags
@reference
@missing
Scenario
:
Missing references with a custom text
Given I have a scholar configuration with
:
|
key
|
value
|
|
source
|
./_bibliography
|
|
bibliography
|
my_references
|
|
missing_reference
|
not
found!
|
And
I have a
"_bibliography"
directory
And I have a file "_bibliography/my_references.bib"
:
"""
@book{ruby,
title = {The Ruby Programming Language},
author = {Flanagan, David and Matsumoto, Yukihiro},
year = {2008},
publisher = {O'Reilly Media}
}
"""
And I have a page "scholar.html"
:
"""
---
---
{% reference java %}
"""
When
I run jekyll
Then
the _site directory should exist
And
the
"_site/scholar.html"
file should exist
And
I should see
"not found!"
in
"_site/scholar.html"
And
I should not see
"(missing reference)"
in
"_site/scholar.html"
lib/jekyll/scholar/defaults.rb
View file @
50c4ded7
module
Jekyll
class
Scholar
@defaults
=
Hash
[
*
%w{
@defaults
=
{
'style'
=>
'apa'
,
'locale'
=>
'en'
,
style apa
locale en
'sort_by'
=>
'none'
,
'order'
=>
'ascending'
,
so
rt_by none
order ascending
'
so
urce'
=>
'./_bibliography'
,
'bibliography'
=>
'references.bib'
,
source ./_bibliography
bibliography references.bib
'details_dir'
=>
'bibliography'
,
'details_layout'
=>
'bibtex.html'
,
'details_link'
=>
'Details'
,
details_dir bibliography
details_layout bibtex.html
details_link Details
bibliography_class bibliography
details_link_class details
'bibliography_class'
=>
'bibliography'
,
'bibliography_template'
=>
'%{reference}'
,
query @*
}
].
freeze
'reference_tagname'
=>
'span'
,
'missing_reference'
=>
'(missing reference)'
,
'details_link_class'
=>
'details'
,
'query'
=>
'@*'
}.
freeze
class
<<
self
attr_reader
:defaults
...
...
lib/jekyll/scholar/tags/bibliography.rb
View file @
50c4ded7
...
...
@@ -24,7 +24,7 @@ module Jekyll
end
references
.
map!
do
|
entry
|
reference
=
reference
_tag
entry
reference
=
bibliography
_tag
entry
if
generate_details?
reference
<<
link_to
(
details_link_for
(
entry
),
...
...
lib/jekyll/scholar/utilities.rb
View file @
50c4ded7
...
...
@@ -80,13 +80,35 @@ module Jekyll
end
def
reference_tag
(
entry
)
return
'(
missing
reference
)'
unless
entry
return
missing
_
reference
unless
entry
entry
=
entry
.
convert
(
:latex
)
reference
=
CiteProc
.
process
entry
.
to_citeproc
,
:style
=>
config
[
'style'
],
:locale
=>
config
[
'locale'
],
:format
=>
'html'
content_tag
:span
,
reference
,
:id
=>
[
prefix
,
entry
.
key
].
compact
.
join
(
'-'
)
content_tag
reference_tagname
,
reference
,
:id
=>
[
prefix
,
entry
.
key
].
compact
.
join
(
'-'
)
end
def
missing_reference
config
[
'missing_reference'
]
end
def
reference_tagname
config
[
'reference_tagname'
]
||
:span
end
def
bibliography_template
config
[
'bibliography_template'
]
||
'%{reference}'
end
def
bibliography_tag
(
entry
)
return
missing_reference
unless
entry
bibliography_template
%
{
:reference
=>
reference_tag
(
entry
),
:key
=>
entry
.
key
}
end
def
generate_details?
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment