jekyll-scholar 5.7.0 → 5.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5b7e5e1c9176f9047d2e7492f07b212bc6e247e7
4
- data.tar.gz: 106254e255857e66c6e5b81ebbb95c74876c9fe8
3
+ metadata.gz: b87845c10bdf8d4c729fa3e2543aece9221b8cb0
4
+ data.tar.gz: 8c0098182b2c0a89b2a5957d48040c3d44c94e71
5
5
  SHA512:
6
- metadata.gz: 6f2d2d642250db134aa6a63676ee588d9092cabf66e185c124275864e14df07316ee0121df3d0b0c5e59ee8e2bc4df23160eb589564f9bed00d4fb546f0bc95b
7
- data.tar.gz: ffffd80dabf38c39cebdd07a7052ede50a7cc30e96f48a7da4e340e7d231f2a2794ad08b0270bf16f1d8e5e536f6993ec08f62f67c59c5b673fe17f3bc2ddb3e
6
+ metadata.gz: e3974e0b5e3097b099b6ec97eaa61826e6c8c848adb19711297eae4a25c8a419eda57b80eca928f84513e61ed4868695186d89c989c2968f2c892a27e310fe32
7
+ data.tar.gz: 7ce8a8fa7a7362c50670a48d7a509ae866c0912e363b76cebb3e852c10ae0428e93bf9601b8d7e282aaff100b701851160f40abf24ba779f0de14a23cf9d1d94
data/README.md CHANGED
@@ -25,18 +25,18 @@ Or add it to your `Gemfile`:
25
25
  gem 'jekyll-scholar'
26
26
 
27
27
  ### Github Pages
28
-
29
- Note that it is not possible to use this plugin with the
28
+
29
+ Note that it is not possible to use this plugin with the
30
30
  [default Github pages workflow](https://help.github.com/articles/using-jekyll-with-pages/).
31
- Github does not allow any but a few select plugins to run for security reasons,
32
- and Jekyll-Scholar is not among them.
31
+ Github does not allow any but a few select plugins to run for security reasons,
32
+ and Jekyll-Scholar is not among them.
33
33
  You will have to generate your site locally and push the results to the `master` resp. `gh-pages`
34
34
  branch of your site repository.
35
35
  You can keep sources, configuration and plugins in a separate branch; see e.g.
36
36
  [here](http://davidensinger.com/2013/07/automating-jekyll-deployment-to-github-pages-with-rake/)
37
37
  for details.
38
38
 
39
-
39
+
40
40
 
41
41
  Usage
42
42
  -----
@@ -72,8 +72,11 @@ default configuration is as follows:
72
72
 
73
73
  replace_strings: true
74
74
  join_strings: true
75
-
75
+
76
76
  use_raw_bibtex_entry: false
77
+ bibtex_filters:
78
+ - superscript
79
+ - latex
77
80
 
78
81
  details_dir: bibliography
79
82
  details_layout: bibtex.html
@@ -130,6 +133,12 @@ extended or overridden. For example, the default name for `article` is
130
133
  *Journal Articles*, but it can be changed to *Papers* using
131
134
  `type_name: { article => 'Papers' }`.
132
135
 
136
+ The `bibtex_filters` option configures which
137
+ [BibTeX-Ruby](https://github.com/inukshuk/bibtex-ruby) formatting filters
138
+ values of entries should be passed through. This defaults to the `latex`
139
+ filter which converts LaTeX character escapes into unicode, and `superscript`
140
+ which converts the `\textsuperscript` command into a HTML `<sup>` tag.
141
+
133
142
  ### Bibliographies
134
143
 
135
144
  Once you have loaded Jekyll-Scholar, all files with the extension `.bib` or
@@ -385,9 +394,13 @@ will attempt to read the key `ruby` from file `/home/foo/bar.bib`. It will not
385
394
  fallback to the default BibTeX file.
386
395
 
387
396
  #### Citation pointing to another page in your site
388
- In some cases, you might want your citation to link to another page on your cite (ex. a separate works cited page). As a solution, Jekyll-Scholar provides the `--relative` tag. For example, if you wanted the link to point to an ID in a bibliography.html page, you would use:
397
+ In some cases, you might want your citation to link to another page on your cite (ex. a separate works cited page). As a solution, add a relative path to your scholar configurations:
398
+
399
+ ~~~ yaml
400
+ scholar:
401
+ relative: "/relative/path/file.html"
402
+ ~~~
389
403
 
390
- {% cite ruby --relative bibliography.html %}
391
404
 
392
405
  #### Multiple bibliographies within one document (like [multibib.sty](http://www.ctan.org/pkg/multibib))
393
406
 
@@ -63,6 +63,24 @@ 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
+ @superscript
67
+ Scenario: Simple Bibliography with LaTeX superscript
68
+ Given I have a scholar configuration with:
69
+ | key | value |
70
+ | style | apa |
71
+ And I have a page "references.bib":
72
+ """
73
+ ---
74
+ ---
75
+ @misc{umlaut,
76
+ title = {Look, \textsuperscript{superscript}!},
77
+ }
78
+ """
79
+ When I run jekyll
80
+ Then the _site directory should exist
81
+ And the "_site/references.html" file should exist
82
+ And I should see "Look, <sup>superscript</sup>!" in "_site/references.html"
83
+
66
84
  @tags @bibtex
67
85
  Scenario: Embedded BibTeX
68
86
  Given I have a scholar configuration with:
@@ -60,6 +60,7 @@ Feature: Details
60
60
  <html>
61
61
  <head></head>
62
62
  <body>
63
+ Page title: {{ page.title }}
63
64
  Title: {{ page.entry.title }}
64
65
  {{ page.entry.bibtex }}
65
66
  </body>
@@ -68,6 +69,7 @@ Feature: Details
68
69
  When I run jekyll
69
70
  Then the _site directory should exist
70
71
  And the "_site/bibliography/ruby.html" file should exist
72
+ And I should see "Page title: An Umlaut ä!" in "_site/bibliography/ruby.html"
71
73
  And I should see "Title: An Umlaut ä!" in "_site/bibliography/ruby.html"
72
74
  And I should see "title = {An Umlaut \\\"a!}" in "_site/bibliography/ruby.html"
73
75
 
@@ -93,6 +95,7 @@ Feature: Details
93
95
  <html>
94
96
  <head></head>
95
97
  <body>
98
+ Page title: {{ page.title }}
96
99
  Title: {{ page.entry.title }}
97
100
  {{ page.entry.bibtex }}
98
101
  </body>
@@ -101,6 +104,7 @@ Feature: Details
101
104
  When I run jekyll
102
105
  Then the _site directory should exist
103
106
  And the "_site/bibliography/ruby.html" file should exist
107
+ And I should see "Page title: An Umlaut \\\"a!" in "_site/bibliography/ruby.html"
104
108
  And I should see "Title: An Umlaut \\\"a!" in "_site/bibliography/ruby.html"
105
109
  And I should see "title = {An Umlaut \\\"a!}" in "_site/bibliography/ruby.html"
106
110
 
@@ -228,3 +228,54 @@ Feature: BibTeX
228
228
  Then the _site directory should exist
229
229
  And the "_site/scholar.html" file should exist
230
230
  And I should see "\[Pragmatic Bookshelf\]\(https://pragprog.com\)" in "_site/scholar.html"
231
+
232
+ @tags @superscript
233
+ Scenario: LaTeX Superscript as HTML
234
+ Given I have a scholar configuration with:
235
+ | key | value |
236
+ | source | ./_bibliography |
237
+ And I have the following BibTeX filters:
238
+ | superscript |
239
+ And I have a "_bibliography" directory
240
+ And I have a file "_bibliography/references.bib":
241
+ """
242
+ @misc{pickaxe,
243
+ title = {This is \textsuperscript{superscript text}.}
244
+ }
245
+ """
246
+ And I have a page "scholar.html":
247
+ """
248
+ ---
249
+ ---
250
+ {% bibliography %}
251
+ """
252
+ When I run jekyll
253
+ Then the _site directory should exist
254
+ And the "_site/scholar.html" file should exist
255
+ And I should see "This is <sup>superscript text</sup>." in "_site/scholar.html"
256
+
257
+ @tags @superscript
258
+ Scenario: LaTeX Superscript with embedded LaTeX chars as HTML
259
+ Given I have a scholar configuration with:
260
+ | key | value |
261
+ | source | ./_bibliography |
262
+ And I have the following BibTeX filters:
263
+ | superscript |
264
+ | latex |
265
+ And I have a "_bibliography" directory
266
+ And I have a file "_bibliography/references.bib":
267
+ """
268
+ @misc{pickaxe,
269
+ title = {\textsuperscript{\"u \"{u} \v{z}}}
270
+ }
271
+ """
272
+ And I have a page "scholar.html":
273
+ """
274
+ ---
275
+ ---
276
+ {% bibliography %}
277
+ """
278
+ When I run jekyll
279
+ Then the _site directory should exist
280
+ And the "_site/scholar.html" file should exist
281
+ And I should see "<sup>ü ü ž</sup>" in "_site/scholar.html"
@@ -21,3 +21,4 @@ require 'jekyll/scholar/tags/reference'
21
21
  require 'jekyll/scholar/generators/details'
22
22
 
23
23
  require 'jekyll/scholar/plugins/markdown_links'
24
+ require 'jekyll/scholar/plugins/superscript'
@@ -30,7 +30,8 @@ module Jekyll
30
30
  end
31
31
 
32
32
  def convert(content)
33
- content = BibTeX.parse(content, :strict => true, :include => [:meta_content], :filter => [:latex]).map do |b|
33
+ content = BibTeX.parse(content, :strict => true, :include => [:meta_content],
34
+ :filter => @config['scholar']['bibtex_filters']).map do |b|
34
35
  if b.respond_to?(:to_citeproc)
35
36
  render_bibliography b
36
37
  else
@@ -17,7 +17,7 @@ module Jekyll
17
17
  'repository' => nil,
18
18
 
19
19
  'bibtex_options' => { :strip => false, :parse_months => true },
20
- 'bibtex_filters' => [ :latex ],
20
+ 'bibtex_filters' => [ :superscript, :latex ],
21
21
  'bibtex_skip_fields' => [ :abstract, :month_numeric ],
22
22
 
23
23
  'replace_strings' => true,
@@ -15,8 +15,8 @@ module Jekyll
15
15
  process(@name)
16
16
  read_yaml(File.join(base, '_layouts'), config['details_layout'])
17
17
 
18
- data['title'] = entry.title.to_s if entry.field?(:title)
19
18
  data.merge!(reference_data(entry))
19
+ data['title'] = data['entry']['title'] if data['entry'].has_key?('title')
20
20
  end
21
21
 
22
22
  end
@@ -0,0 +1,12 @@
1
+ module Jekyll
2
+ class Scholar
3
+ class Superscript < BibTeX::Filter
4
+ def apply(value)
5
+ # Use of \g<1> pattern back-reference to allow for capturing nested {} groups
6
+ value.to_s.gsub(/\\textsuperscript(\{((?:.|\g<1>)*)\})/) {
7
+ "<sup>#{$2}</sup>"
8
+ }
9
+ end
10
+ end
11
+ end
12
+ end
@@ -18,7 +18,7 @@ module Jekyll
18
18
  module Utilities
19
19
 
20
20
 
21
- attr_reader :config, :site, :context, :prefix, :text, :offset, :max, :relative
21
+ attr_reader :config, :site, :context, :prefix, :text, :offset, :max
22
22
 
23
23
 
24
24
 
@@ -61,10 +61,6 @@ module Jekyll
61
61
  @prefix = prefix
62
62
  end
63
63
 
64
- opts.on('-r', '--relative RELATIVE') do |relative|
65
- @relative = relative.to_s.strip
66
- end
67
-
68
64
  opts.on('-t', '--text TEXT') do |text|
69
65
  @text = text
70
66
  end
@@ -102,7 +98,7 @@ module Jekyll
102
98
  end
103
99
  end
104
100
 
105
- argv = arguments.split(/(\B-[cCfqrptTsgGOlomA]|\B--(?:cited(_in_order)?|file|query|relative|prefix|text|style|group_(?:by|order)|type_order|template|locator|offset|max|suppress_author|))/)
101
+ argv = arguments.split(/(\B-[cCfqptTsgGOlomA]|\B--(?:cited(_in_order)?|file|query|prefix|text|style|group_(?:by|order)|type_order|template|locator|offset|max|suppress_author|))/)
106
102
 
107
103
  parser.parse argv.map(&:strip).reject(&:empty?)
108
104
  end
@@ -400,6 +396,10 @@ module Jekyll
400
396
  File.join site.source, source
401
397
  end
402
398
 
399
+ def relative
400
+ config['relative']
401
+ end
402
+
403
403
  def reference_tag(entry, index = nil)
404
404
  return missing_reference unless entry
405
405
 
@@ -560,7 +560,7 @@ module Jekyll
560
560
 
561
561
  def renderer(force = false)
562
562
  return @renderer if @renderer && !force
563
-
563
+
564
564
  @renderer = CiteProc::Ruby::Renderer.new :format => 'html',
565
565
  :style => style, :locale => config['locale']
566
566
  end
@@ -598,8 +598,8 @@ module Jekyll
598
598
  (context['citation_numbers'] ||= {})[key] ||= cited_keys.length
599
599
  end
600
600
 
601
- def link_target_for key
602
- "#{base_url}#{relative}##{[prefix, key].compact.join('-')}"
601
+ def link_target_for(key)
602
+ "#{relative}##{[prefix, key].compact.join('-')}"
603
603
  end
604
604
 
605
605
  def cite(keys)
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  class Scholar
3
- VERSION = '5.7.0'.freeze
3
+ VERSION = '5.7.1'.freeze
4
4
  end
5
5
  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: 5.7.0
4
+ version: 5.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvester Keil
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-03 00:00:00.000000000 Z
11
+ date: 2016-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -112,6 +112,7 @@ files:
112
112
  - lib/jekyll/scholar/defaults.rb
113
113
  - lib/jekyll/scholar/generators/details.rb
114
114
  - lib/jekyll/scholar/plugins/markdown_links.rb
115
+ - lib/jekyll/scholar/plugins/superscript.rb
115
116
  - lib/jekyll/scholar/tags/bibliography.rb
116
117
  - lib/jekyll/scholar/tags/bibtex.rb
117
118
  - lib/jekyll/scholar/tags/cite.rb