jekyll-scholar 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -74,4 +74,4 @@ Feature: BibTeX
74
74
  When I run jekyll
75
75
  Then the _site directory should exist
76
76
  And the "_site/scholar.html" file should exist
77
- And I should see "<a href=\"/bibliography/ruby.html\">" in "_site/scholar.html"
77
+ And I should see "<a[^>]+href=\"/bibliography/ruby.html\">" in "_site/scholar.html"
@@ -15,6 +15,9 @@ module Jekyll
15
15
  details_layout bibtex.html
16
16
  details_link Details
17
17
 
18
+ bibliography_class bibliography
19
+ details_link_class details
20
+
18
21
  query @*
19
22
 
20
23
  }].freeze
@@ -17,21 +17,30 @@ module Jekyll
17
17
  references = entries.map do |entry|
18
18
  reference = CiteProc.process entry.to_citeproc, :style => config['style'],
19
19
  :locale => config['locale'], :format => 'html'
20
-
20
+
21
21
  reference = content_tag :span, reference, :id => entry.key
22
-
22
+
23
23
  if generate_details?
24
- reference << link_to(details_link_for(entry), config['details_link'])
24
+ reference << link_to(details_link_for(entry),
25
+ config['details_link'], :class => config['details_link_class'])
25
26
  end
26
-
27
+
27
28
  content_tag :li, reference
28
29
  end
29
30
 
30
- content_tag :ol, references.join("\n")
31
- end
32
-
31
+ content_tag :ol, references.join("\n"), :class => config['bibliography_class']
32
+ end
33
33
  end
34
34
 
35
+ private
36
+
37
+ def citeproc
38
+ @citeproc ||= CiteProc::Processor.new do |p|
39
+ p.style = config['style']
40
+ p.format = 'html'
41
+ p.locale = config['locale']
42
+ end
43
+ end
35
44
  end
36
45
  end
37
46
 
@@ -1,25 +1,25 @@
1
1
  module Jekyll
2
2
  class Scholar
3
-
3
+
4
4
  # Utility methods used by several Scholar plugins. The methods in this
5
5
  # module may depend on the presence of #config, #bibtex_file, and
6
6
  # #site readers
7
7
  module Utilities
8
-
8
+
9
9
  attr_reader :bibtex_file, :config, :site
10
-
10
+
11
11
  def bibtex_options
12
12
  @bibtex_options ||= { :filter => :latex }
13
13
  end
14
-
14
+
15
15
  def bibtex_path
16
16
  @bibtex_path ||= extend_path(bibtex_file)
17
17
  end
18
-
18
+
19
19
  def bibliography
20
20
  @bibliography ||= BibTeX.open(bibtex_path, bibtex_options)
21
- end
22
-
21
+ end
22
+
23
23
  def entries
24
24
  b = bibliography[config['query']]
25
25
 
@@ -27,83 +27,85 @@ module Jekyll
27
27
  b = b.sort_by { |e| e[config['sort_by']].to_s }
28
28
  b.reverse! if config['order'] =~ /^(desc|reverse)/i
29
29
  end
30
-
30
+
31
31
  b
32
32
  end
33
-
33
+
34
34
  def extend_path(name)
35
35
  if name.nil? || name.empty?
36
36
  name = config['bibliography']
37
37
  end
38
-
38
+
39
39
  p = File.join(config['source'], name)
40
40
  p << '.bib' unless File.exists?(p)
41
41
  p
42
42
  end
43
-
43
+
44
44
  def generate_details?
45
45
  site.layouts.key?(File.basename(config['details_layout'], '.html'))
46
46
  end
47
-
47
+
48
48
  def details_file_for(entry)
49
49
  name = entry.key.to_s.dup
50
-
50
+
51
51
  name.gsub!(/[:\s]+/, '_')
52
-
52
+
53
53
  [name, 'html'].join('.')
54
54
  end
55
-
55
+
56
56
  def details_link_for(entry, base = base_url)
57
57
  File.join(base, details_path, details_file_for(entry))
58
58
  end
59
-
59
+
60
60
  def base_url
61
61
  @base_url ||= site.config['baseurl'] || site.config['base_url'] || ''
62
62
  end
63
-
63
+
64
64
  def details_path
65
65
  config['details_dir']
66
66
  end
67
-
67
+
68
68
  def cite(key)
69
69
  entry = bibliography[key]
70
70
 
71
71
  if bibliography.key?(key)
72
72
  citation = CiteProc.process entry.to_citeproc, :style => config['style'],
73
73
  :locale => config['locale'], :format => 'html', :mode => :citation
74
-
74
+
75
75
  link_to "##{entry.key}", citation.join
76
76
  else
77
77
  "(missing reference)"
78
78
  end
79
+ rescue
80
+ "(#{key})"
79
81
  end
80
-
82
+
81
83
  def content_tag(name, content_or_attributes, attributes = {})
82
84
  if content_or_attributes.is_a?(Hash)
83
85
  content, attributes = nil, content_or_attributes
84
86
  else
85
87
  content = content_or_attributes
86
88
  end
87
-
89
+
88
90
  attributes = attributes.map { |k,v| %Q(#{k}="#{v}") }
89
-
91
+
90
92
  if content.nil?
91
93
  "<#{[name, attributes].flatten.compact.join(' ')}/>"
92
94
  else
93
95
  "<#{[name, attributes].flatten.compact.join(' ')}>#{content}</#{name}>"
94
96
  end
95
97
  end
96
-
98
+
97
99
  def link_to(href, content, attributes = {})
98
100
  content_tag :a, content || href, attributes.merge(:href => href)
99
101
  end
100
-
102
+
101
103
  def set_context_to(context)
102
104
  @site = context.registers[:site]
103
105
  config.merge!(site.config['scholar'] || {})
104
106
  end
105
-
107
+
106
108
  end
107
-
109
+
108
110
  end
109
111
  end
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  class Scholar
3
- VERSION = '0.0.11'.freeze
3
+ VERSION = '0.0.12'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-scholar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-12 00:00:00.000000000 Z
12
+ date: 2012-07-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jekyll
16
- requirement: &70145612581280 !ruby/object:Gem::Requirement
16
+ requirement: &70317780805480 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.10'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70145612581280
24
+ version_requirements: *70317780805480
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: citeproc-ruby
27
- requirement: &70145612580280 !ruby/object:Gem::Requirement
27
+ requirement: &70317780802520 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.0.6
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70145612580280
35
+ version_requirements: *70317780802520
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bibtex-ruby
38
- requirement: &70145612579140 !ruby/object:Gem::Requirement
38
+ requirement: &70317780801380 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.0.7
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70145612579140
46
+ version_requirements: *70317780801380
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &70145612577320 !ruby/object:Gem::Requirement
49
+ requirement: &70317780799460 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.9'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70145612577320
57
+ version_requirements: *70317780799460
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rdoc
60
- requirement: &70145612589280 !ruby/object:Gem::Requirement
60
+ requirement: &70317780813820 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '3.11'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70145612589280
68
+ version_requirements: *70317780813820
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: redgreen
71
- requirement: &70145612587940 !ruby/object:Gem::Requirement
71
+ requirement: &70317780812440 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '1.2'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70145612587940
79
+ version_requirements: *70317780812440
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: shoulda
82
- requirement: &70145612601140 !ruby/object:Gem::Requirement
82
+ requirement: &70317780811040 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '2.11'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70145612601140
90
+ version_requirements: *70317780811040
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rr
93
- requirement: &70145612598500 !ruby/object:Gem::Requirement
93
+ requirement: &70317780809740 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '1.0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70145612598500
101
+ version_requirements: *70317780809740
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: cucumber
104
- requirement: &70145612593860 !ruby/object:Gem::Requirement
104
+ requirement: &70317780807460 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - =
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '1.1'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70145612593860
112
+ version_requirements: *70317780807460
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: RedCloth
115
- requirement: &70145612606520 !ruby/object:Gem::Requirement
115
+ requirement: &70317780821940 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '4.2'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *70145612606520
123
+ version_requirements: *70317780821940
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rdiscount
126
- requirement: &70145612617040 !ruby/object:Gem::Requirement
126
+ requirement: &70317780820980 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '1.6'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *70145612617040
134
+ version_requirements: *70317780820980
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: redcarpet
137
- requirement: &70145612615980 !ruby/object:Gem::Requirement
137
+ requirement: &70317780819820 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: '1.9'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *70145612615980
145
+ version_requirements: *70317780819820
146
146
  description: ! ' Jekyll-Scholar is for all the academic bloggers out there. It is
147
147
  a set of extensions for Jekyll the awesome, blog aware, static site generator; it
148
148
  formats your BibTeX bibliographies for the web using CSL citation styles and generally