asciidoctor-bibliography 0.1 → 0.2.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 +4 -4
- data/.gitignore +3 -0
- data/.rubocop.yml +17 -0
- data/Gemfile +1 -1
- data/Rakefile +3 -3
- data/asciidoctor-bibliography.gemspec +28 -26
- data/lib/asciidoctor-bibliography.rb +4 -1
- data/lib/asciidoctor-bibliography/asciidoctor.rb +3 -9
- data/lib/asciidoctor-bibliography/asciidoctor/bibliographer_preprocessor.rb +43 -15
- data/lib/asciidoctor-bibliography/asciidoctor/document_ext.rb +11 -0
- data/lib/asciidoctor-bibliography/bibliographer.rb +20 -9
- data/lib/asciidoctor-bibliography/citation.rb +74 -51
- data/lib/asciidoctor-bibliography/citation_item.rb +27 -0
- data/lib/asciidoctor-bibliography/database.rb +14 -7
- data/lib/asciidoctor-bibliography/databases/bibtex.rb +5 -4
- data/lib/asciidoctor-bibliography/exceptions.rb +5 -0
- data/lib/asciidoctor-bibliography/formatters/csl.rb +5 -0
- data/lib/asciidoctor-bibliography/formatters/tex.rb +20 -22
- data/lib/asciidoctor-bibliography/helpers.rb +3 -3
- data/lib/asciidoctor-bibliography/index.rb +21 -25
- data/lib/asciidoctor-bibliography/version.rb +1 -1
- data/samples/{biblio.bib → standard/biblio.bib} +0 -0
- data/samples/standard/sample-default.adoc +22 -0
- data/samples/standard/sample-default.html +476 -0
- data/samples/standard/sample-din.adoc +22 -0
- data/samples/standard/sample-din.html +476 -0
- data/samples/standard/sample-ieee.adoc +22 -0
- data/samples/standard/sample-ieee.html +476 -0
- data/samples/tex/biblio.bib +31 -0
- data/samples/{sample-authoryear.adoc → tex/sample-authoryear.adoc} +2 -3
- data/samples/{sample-authoryear.html → tex/sample-authoryear.html} +9 -6
- data/samples/tex/sample-din.adoc +74 -0
- data/samples/tex/sample-din.html +556 -0
- data/samples/{sample-numbers.adoc → tex/sample-numbers.adoc} +4 -0
- data/samples/{sample-numbers.html → tex/sample-numbers.html} +14 -8
- data/samples/tex/sample-ordering.adoc +20 -0
- data/samples/tex/sample-ordering.html +467 -0
- data/spec/citation_item_spec.rb +52 -0
- data/spec/database_spec.rb +39 -0
- data/spec/fixtures/database.bib +31 -0
- data/spec/fixtures/database.bibtex +6 -0
- data/spec/fixtures/database.unk +0 -0
- data/spec/throwaway_spec.rb +6 -0
- metadata +61 -25
- data/deprecated/asciidoctor-bibliography/asciidoctor/bibliographer_postprocessor.rb +0 -23
- data/deprecated/asciidoctor-bibliography/asciidoctor/bibliography_block_macro.rb +0 -77
- data/deprecated/asciidoctor-bibliography/asciidoctor/citation_processor.rb +0 -144
- data/deprecated/asciidoctor-bibliography/asciidoctor/cite_inline_macro.rb +0 -30
- data/deprecated/asciidoctor-bibliography/citationdata.rb +0 -23
- data/deprecated/asciidoctor-bibliography/citations.rb +0 -45
- data/deprecated/asciidoctor-bibliography/citationutils.rb +0 -67
- data/deprecated/asciidoctor-bibliography/extensions.rb +0 -64
- data/deprecated/asciidoctor-bibliography/filehandlers.rb +0 -32
- data/deprecated/asciidoctor-bibliography/index.rb +0 -31
- data/deprecated/asciidoctor-bibliography/processor.rb +0 -208
- data/deprecated/asciidoctor-bibliography/processorutils.rb +0 -34
- data/deprecated/asciidoctor-bibliography/styles.rb +0 -27
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'asciidoctor'
|
2
|
-
require 'asciidoctor/extensions'
|
3
|
-
|
4
|
-
require 'securerandom'
|
5
|
-
|
6
|
-
module AsciidoctorBibliography
|
7
|
-
module Asciidoctor
|
8
|
-
|
9
|
-
class CiteInlineMacro < ::Asciidoctor::Extensions::InlineMacroProcessor
|
10
|
-
use_dsl
|
11
|
-
|
12
|
-
named :cite
|
13
|
-
# name_positional_attributes 'volnum'
|
14
|
-
|
15
|
-
def process parent, target, attrs
|
16
|
-
puts self
|
17
|
-
|
18
|
-
citation = AsciidoctorBibliography::Citation.new parent, target, attrs, SecureRandom.uuid
|
19
|
-
parent.document.bibliographer.citations << citation
|
20
|
-
|
21
|
-
# text = target # TODO: typeset
|
22
|
-
# target = "#bibliography-#{target}"
|
23
|
-
# parent.document.register :links, target
|
24
|
-
# (create_anchor parent, text, type: :link, target: target).render
|
25
|
-
|
26
|
-
citation.placeholder
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# citationdata class
|
2
|
-
#
|
3
|
-
# Copyright (c) Peter Lane, 2013.
|
4
|
-
# Released under Open Works License, 0.9.2
|
5
|
-
|
6
|
-
module AsciidoctorBibliography
|
7
|
-
# Class to hold information about a citation in text:
|
8
|
-
# the text forming the citation, its type, pretext, and enclosed cites
|
9
|
-
class CitationData
|
10
|
-
attr_reader :original, :type, :pretext, :cites
|
11
|
-
|
12
|
-
def initialize original, type, pretext, cites
|
13
|
-
@original = original
|
14
|
-
@type = type
|
15
|
-
@pretext = if pretext.nil?
|
16
|
-
''
|
17
|
-
else
|
18
|
-
pretext
|
19
|
-
end
|
20
|
-
@cites = cites
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Class to hold and manage citations
|
3
|
-
#
|
4
|
-
# Copyright (c) Peter Lane, 2013.
|
5
|
-
# Released under Open Works License, 0.9.2
|
6
|
-
|
7
|
-
module AsciidoctorBibliography
|
8
|
-
# Class to store list of citations used in document
|
9
|
-
class Citations
|
10
|
-
include CitationUtils
|
11
|
-
|
12
|
-
attr_reader :cites_used
|
13
|
-
|
14
|
-
def initialize
|
15
|
-
@cites_used = []
|
16
|
-
end
|
17
|
-
|
18
|
-
# Given a line of text, extract any citations and include new citation references in current list
|
19
|
-
def add_from_line line
|
20
|
-
retrieve_citations(line).each do |citation|
|
21
|
-
@cites_used += citation.cites.collect {|cite| cite.ref}
|
22
|
-
end
|
23
|
-
@cites_used.uniq! {|item| item.to_s} # only keep each reference once
|
24
|
-
end
|
25
|
-
|
26
|
-
# Return a list of citation references in document, sorted into order
|
27
|
-
def sorted_cites biblio
|
28
|
-
@cites_used.sort_by do |ref|
|
29
|
-
bibitem = biblio[ref]
|
30
|
-
|
31
|
-
unless bibitem.nil?
|
32
|
-
# extract the reference, and uppercase.
|
33
|
-
# Remove { } from grouped names for sorting.
|
34
|
-
author = bibitem.author
|
35
|
-
if author.nil?
|
36
|
-
author = bibitem.editor
|
37
|
-
end
|
38
|
-
author_chicago(author).collect {|s| s.upcase.gsub("{","").gsub("}","")} + [bibitem.year]
|
39
|
-
else
|
40
|
-
[ref]
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# Utility functions for citations class
|
2
|
-
#
|
3
|
-
# Copyright (c) Peter Lane, 2013.
|
4
|
-
# Released under Open Works License, 0.9.2
|
5
|
-
|
6
|
-
module AsciidoctorBibliography
|
7
|
-
# Some utility functions used in Citations class
|
8
|
-
module CitationUtils
|
9
|
-
|
10
|
-
# Given a line, return a list of CitationData instances
|
11
|
-
# containing information on each set of citation information
|
12
|
-
def retrieve_citations line
|
13
|
-
result = []
|
14
|
-
md = CITATION_FULL.match line
|
15
|
-
while md
|
16
|
-
data = CitationData.new md[0], md[1], nil, []
|
17
|
-
cm = CITATION_KEY.match md[2]
|
18
|
-
while cm
|
19
|
-
pages = nil
|
20
|
-
if cm[2]
|
21
|
-
pages = cm[2][1...-1]
|
22
|
-
end
|
23
|
-
data.cites << Citation.new(cm[1], pages)
|
24
|
-
# look for next ref within citation
|
25
|
-
cm = CITATION_KEY.match cm.post_match
|
26
|
-
end
|
27
|
-
result << data
|
28
|
-
# look for next citation on line
|
29
|
-
md = CITATION_FULL.match md.post_match
|
30
|
-
end
|
31
|
-
|
32
|
-
return result
|
33
|
-
end
|
34
|
-
|
35
|
-
# arrange author string, flag for order of surname/initials
|
36
|
-
def arrange_authors authors, surname_first
|
37
|
-
return [] if authors.nil?
|
38
|
-
authors.split(/\band\b/).collect do |name|
|
39
|
-
if name.include?(", ")
|
40
|
-
parts = name.strip.rpartition(", ")
|
41
|
-
if surname_first
|
42
|
-
"#{parts.first}, #{parts.third}"
|
43
|
-
else
|
44
|
-
"#{parts.third} #{parts.first}"
|
45
|
-
end
|
46
|
-
else
|
47
|
-
name
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
# Arrange given author string into Chicago format
|
53
|
-
def author_chicago authors
|
54
|
-
arrange_authors authors, true
|
55
|
-
end
|
56
|
-
|
57
|
-
# matches a citation key, such as 'Dan2012(99-100)'
|
58
|
-
CITATION_KEY = /([^\s,()\[\]]+)(\(\d+(-\d+)*\))?/
|
59
|
-
# matches a citation type
|
60
|
-
CITATION_TYPE = /cite|citenp|fullcite/
|
61
|
-
# matches a citation list
|
62
|
-
CITATION_LIST_TAIL = /(\s*,\s*#{CITATION_KEY})*/
|
63
|
-
CITATION_LIST = /(?:#{CITATION_KEY}#{CITATION_LIST_TAIL})/
|
64
|
-
# matches the whole citation
|
65
|
-
CITATION_FULL = /(#{CITATION_TYPE}):\[(#{CITATION_LIST})\]/
|
66
|
-
end
|
67
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
# Some extension and helper methods.
|
2
|
-
#
|
3
|
-
# Copyright (c) Peter Lane, 2012-13.
|
4
|
-
# Released under Open Works License, 0.9.2
|
5
|
-
|
6
|
-
module AsciidoctorBibliographyArrayExtensions
|
7
|
-
|
8
|
-
# Retrieve the third item of an array
|
9
|
-
# Note: no checks for validity
|
10
|
-
def third
|
11
|
-
self[2]
|
12
|
-
end
|
13
|
-
|
14
|
-
# Join items in array using commas and 'and' on last item
|
15
|
-
def comma_and_join
|
16
|
-
if size < 2
|
17
|
-
return self.join("")
|
18
|
-
end
|
19
|
-
result = ""
|
20
|
-
self.each_with_index do |item, index|
|
21
|
-
if index.zero?
|
22
|
-
result << item
|
23
|
-
elsif index == size-1
|
24
|
-
result << " and #{item}"
|
25
|
-
else
|
26
|
-
result << ", #{item}"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
return result
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
# monkey patch the extension methods to Array
|
35
|
-
class Array
|
36
|
-
include AsciidoctorBibliographyArrayExtensions
|
37
|
-
end
|
38
|
-
|
39
|
-
# Converts html output produced by citeproc to asciidoc markup
|
40
|
-
module StringHtmlToAsciiDoc
|
41
|
-
def html_to_asciidoc
|
42
|
-
r = self.gsub(/<\/?i>/, '_')
|
43
|
-
r = r.gsub(/<\/?b>/, '*')
|
44
|
-
r = r.gsub(/<\/?span.*?>/, '')
|
45
|
-
r = r.gsub(/\{|\}/, '')
|
46
|
-
r
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
# Provides a check that a string is in integer
|
51
|
-
# Taken from:
|
52
|
-
# http://stackoverflow.com/questions/1235863/test-if-a-string-is-basically-an-integer-in-quotes-using-ruby
|
53
|
-
module IntegerCheck
|
54
|
-
def is_i?
|
55
|
-
!!(self =~ /^[-+]?[0-9]+$/)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
# monkey patch the extension methods into String
|
60
|
-
class String
|
61
|
-
include StringHtmlToAsciiDoc
|
62
|
-
include IntegerCheck
|
63
|
-
end
|
64
|
-
|
@@ -1,32 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# filehandlers.rb
|
3
|
-
# Contains top-level file utility methods
|
4
|
-
#
|
5
|
-
|
6
|
-
module AsciidoctorBibliography
|
7
|
-
|
8
|
-
module FileHandlers
|
9
|
-
# Locate a bibliography file to read in given dir
|
10
|
-
def FileHandlers.find_bibliography dir
|
11
|
-
begin
|
12
|
-
candidates = Dir.glob("#{dir}/*.bib")
|
13
|
-
if candidates.empty?
|
14
|
-
return ""
|
15
|
-
else
|
16
|
-
return candidates.first
|
17
|
-
end
|
18
|
-
rescue # catch all errors, and return empty string
|
19
|
-
return ""
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# Add '-ref' before the extension of a filename
|
24
|
-
def FileHandlers.add_ref filename
|
25
|
-
file_dir = File.dirname(File.expand_path(filename))
|
26
|
-
file_base = File.basename(filename, ".*")
|
27
|
-
file_ext = File.extname(filename)
|
28
|
-
return "#{file_dir}#{File::SEPARATOR}#{file_base}-ref#{file_ext}"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
@@ -1,31 +0,0 @@
|
|
1
|
-
module AsciidoctorBibliography
|
2
|
-
class Index
|
3
|
-
attr_reader :parent, :target, :attrs, :uuid
|
4
|
-
|
5
|
-
def initialize(parent, target, attrs, uuid)
|
6
|
-
@parent = parent
|
7
|
-
@target = target
|
8
|
-
@attrs = attrs
|
9
|
-
@uuid = uuid
|
10
|
-
end
|
11
|
-
|
12
|
-
def placeholder
|
13
|
-
"{#{uuid}}"
|
14
|
-
end
|
15
|
-
|
16
|
-
# attr_reader :ref, :pages
|
17
|
-
|
18
|
-
# def initialize ref, pages
|
19
|
-
# @ref = ref
|
20
|
-
# @pages = pages
|
21
|
-
# # clean up pages
|
22
|
-
# @pages = '' unless @pages
|
23
|
-
# @pages.gsub!("--","-")
|
24
|
-
# end
|
25
|
-
|
26
|
-
# def to_s
|
27
|
-
# "#{@ref}:#{@pages}"
|
28
|
-
# end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
@@ -1,208 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Manage the current set of citations, the document settings,
|
3
|
-
# and main operations.
|
4
|
-
#
|
5
|
-
|
6
|
-
module AsciidoctorBibliography
|
7
|
-
|
8
|
-
# Class used through utility method to hold data about citations for
|
9
|
-
# current document, and run the different steps to add the citations
|
10
|
-
# and bibliography
|
11
|
-
class Processor
|
12
|
-
include ProcessorUtils
|
13
|
-
|
14
|
-
attr_reader :biblio, :links, :style, :citations
|
15
|
-
|
16
|
-
def initialize biblio, links, style, numeric_in_appearance_order = false, output = :asciidoc, bibfile = ""
|
17
|
-
@biblio = biblio
|
18
|
-
@links = links
|
19
|
-
@numeric_in_appearance_order = numeric_in_appearance_order
|
20
|
-
@style = style
|
21
|
-
@citations = Citations.new
|
22
|
-
@filenames = Set.new
|
23
|
-
@output = output
|
24
|
-
@bibfile = bibfile
|
25
|
-
|
26
|
-
if output != :latex
|
27
|
-
@citeproc = CiteProc::Processor.new style: @style, format: :html
|
28
|
-
@citeproc.import @biblio.to_citeproc
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
# Return the complete citation text for given cite_data
|
33
|
-
def complete_citation cite_data
|
34
|
-
|
35
|
-
if @output == :latex
|
36
|
-
result = '+++'
|
37
|
-
cite_data.cites.each do |cite|
|
38
|
-
# NOTE: xelatex does not support "\citenp", so we output all
|
39
|
-
# references as "cite" here.
|
40
|
-
# result << "\\" << cite_data.type
|
41
|
-
result << "\\" << 'cite'
|
42
|
-
if cite.pages != ''
|
43
|
-
result << "[p. " << cite.pages << "]"
|
44
|
-
end
|
45
|
-
result << "{" << "#{cite.ref}" << "},"
|
46
|
-
end
|
47
|
-
if result[-1] == ','
|
48
|
-
result = result[0..-2]
|
49
|
-
end
|
50
|
-
result << "+++"
|
51
|
-
return result
|
52
|
-
else
|
53
|
-
result = ''
|
54
|
-
ob, cb = '(', ')'
|
55
|
-
|
56
|
-
cite_data.cites.each_with_index do |cite, index|
|
57
|
-
# before all items apart from the first, insert appropriate separator
|
58
|
-
result << "#{separator} " unless index.zero?
|
59
|
-
|
60
|
-
# @links requires adding hyperlink to reference
|
61
|
-
result << "<<#{cite.ref}," if @links and (cite_data.type != 'fullcite')
|
62
|
-
|
63
|
-
# if found, insert reference information
|
64
|
-
unless biblio[cite.ref].nil?
|
65
|
-
item = biblio[cite.ref].clone
|
66
|
-
cite_text, ob, cb = make_citation item, cite.ref, cite_data, cite
|
67
|
-
else
|
68
|
-
puts "Unknown reference: #{cite.ref}"
|
69
|
-
cite_text = "#{cite.ref}"
|
70
|
-
end
|
71
|
-
|
72
|
-
result << cite_text.html_to_asciidoc
|
73
|
-
# @links requires finish hyperlink
|
74
|
-
result << ">>" if @links and (cite_data.type != 'fullcite')
|
75
|
-
end
|
76
|
-
|
77
|
-
unless @links
|
78
|
-
# combine numeric ranges
|
79
|
-
if Styles.is_numeric? @style
|
80
|
-
result = combine_consecutive_numbers result
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
return include_pretext result, cite_data, ob, cb
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
# Retrieve text for reference in given style
|
89
|
-
# - ref is reference for item to give reference for
|
90
|
-
def get_reference ref
|
91
|
-
result = ""
|
92
|
-
result << ". " if Styles.is_numeric? @style
|
93
|
-
|
94
|
-
begin
|
95
|
-
cptext = @citeproc.render :bibliography, id: ref
|
96
|
-
rescue Exception => e
|
97
|
-
puts "Failed to render #{ref}: #{e}"
|
98
|
-
end
|
99
|
-
result << "[[#{ref}]]" if @links
|
100
|
-
if cptext.nil?
|
101
|
-
return result+ref
|
102
|
-
else
|
103
|
-
result << cptext.first
|
104
|
-
end
|
105
|
-
|
106
|
-
return result.html_to_asciidoc
|
107
|
-
end
|
108
|
-
|
109
|
-
def separator
|
110
|
-
if Styles.is_numeric? @style
|
111
|
-
','
|
112
|
-
else
|
113
|
-
';'
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
# Format pages with pp/p as appropriate
|
118
|
-
def with_pp pages
|
119
|
-
return '' if pages.empty?
|
120
|
-
|
121
|
-
if @style.include? "chicago"
|
122
|
-
pages
|
123
|
-
elsif pages.include? '-'
|
124
|
-
"pp. #{pages}"
|
125
|
-
else
|
126
|
-
"p. #{pages}"
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
# Return page string for given cite
|
131
|
-
def page_str cite
|
132
|
-
result = ''
|
133
|
-
unless cite.pages.empty?
|
134
|
-
result << "," unless Styles.is_numeric? @style
|
135
|
-
result << " #{with_pp(cite.pages)}"
|
136
|
-
end
|
137
|
-
|
138
|
-
return result
|
139
|
-
end
|
140
|
-
|
141
|
-
def include_pretext result, cite_data, ob, cb
|
142
|
-
pretext = cite_data.pretext
|
143
|
-
pretext += ' ' unless pretext.empty? # add space after any content
|
144
|
-
|
145
|
-
if Styles.is_numeric? @style
|
146
|
-
"#{pretext}#{ob}#{result}#{cb}"
|
147
|
-
elsif cite_data.type == "cite"
|
148
|
-
"#{ob}#{pretext}#{result}#{cb}"
|
149
|
-
else
|
150
|
-
"#{pretext}#{result}"
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
# Numeric citations are handled by computing the position of the reference
|
155
|
-
# in the list of used citations.
|
156
|
-
# Other citations are formatted by citeproc.
|
157
|
-
def make_citation item, ref, cite_data, cite
|
158
|
-
if cite_data.type == "fullcite"
|
159
|
-
cite_text = @citeproc.render(:bibliography, id: ref).join
|
160
|
-
|
161
|
-
fc = ''
|
162
|
-
lc = ''
|
163
|
-
elsif Styles.is_numeric? @style
|
164
|
-
cite_text = if @numeric_in_appearance_order
|
165
|
-
"#{@citations.cites_used.index(cite.ref) + 1}"
|
166
|
-
else
|
167
|
-
"#{sorted_cites.index(cite.ref) + 1}"
|
168
|
-
end
|
169
|
-
fc = '['
|
170
|
-
lc = ']'
|
171
|
-
else
|
172
|
-
cite_text = @citeproc.process id: ref, mode: :citation
|
173
|
-
|
174
|
-
fc = cite_text[0,1]
|
175
|
-
lc = cite_text[-1,1]
|
176
|
-
cite_text = cite_text[1..-2]
|
177
|
-
end
|
178
|
-
|
179
|
-
if cite_data.type == "fullcite"
|
180
|
-
cite_text = cite_text[0...-1] + page_str(cite) + cite_text[-1]
|
181
|
-
elsif Styles.is_numeric? @style
|
182
|
-
cite_text << "#{page_str(cite)}"
|
183
|
-
elsif cite_data.type == "citenp"
|
184
|
-
cite_text.gsub!(item.year, "#{fc}#{item.year}#{page_str(cite)}#{lc}")
|
185
|
-
cite_text.gsub!(", #{fc}", " #{fc}")
|
186
|
-
else
|
187
|
-
cite_text << page_str(cite)
|
188
|
-
end
|
189
|
-
|
190
|
-
cite_text.gsub!(",", ",") if @links # replace comma
|
191
|
-
|
192
|
-
return cite_text, fc, lc
|
193
|
-
end
|
194
|
-
|
195
|
-
def sorted_cites
|
196
|
-
@citations.sorted_cites @biblio
|
197
|
-
end
|
198
|
-
|
199
|
-
def cites
|
200
|
-
if Styles.is_numeric?(@style) and @numeric_in_appearance_order
|
201
|
-
@citations.cites_used
|
202
|
-
else
|
203
|
-
sorted_cites
|
204
|
-
end
|
205
|
-
end
|
206
|
-
|
207
|
-
end
|
208
|
-
end
|