asciidoctor-bibtex 0.7.1 → 0.9.0

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
  SHA256:
3
- metadata.gz: e39be76ce5e649e7075b470a56950f64c91ab7f084b902676356b6672012a9d1
4
- data.tar.gz: 467a9b62f3f9c51ec8778d41dd8a29bc3d2f06b7b5b88ff55f41b4fded73b66a
3
+ metadata.gz: ea06f24608939a234d65f9d138406f453db0839bd70cf334f81def2dd85d52f0
4
+ data.tar.gz: 322af457bcfa3597a57268b2ea186ed1800bf1138189f0393d379e56dd743f87
5
5
  SHA512:
6
- metadata.gz: 983ff27cc0f7899411b3bba18f0afa0e54aa9aa4fa8ca82c48e4f61de3cbe4ea4a6e4c0dfc78539b54c8c2ae5ba3b7c5816bac88dc1550905f1356d1e163e69a
7
- data.tar.gz: a6bbc812e04a8f59a6f8499cf750bfc938fc73b5675d6b72d6f749f6c29e056dfc5bff83f0002180f9a076225c94972ef8b8f733d762f9c98595595bc67417e3
6
+ metadata.gz: 57d7f51eaf2b99a100e827e5efb5ce4f6548573dd9eef70aef0347ed687e590c43d51ced0f5f8c3bdbae2681386bfebf827781f2f7d6297a92d9854bc03c2d8b
7
+ data.tar.gz: f2895e57fe0f6c85b07cf26e53c4011e61a9c613489b0cc755065c04d55daf670665a8a143e60e73d39fa432b64a1f62ad19719065c5415a9cd126b9eee44d82
data/README.adoc CHANGED
@@ -20,7 +20,7 @@ endif::[]
20
20
  :url-gem: https://rubygems.org/gems/asciidoctor-bibtex
21
21
 
22
22
  ifdef::status[]
23
- image:https://img.shields.io/travis/asciidoctor/asciidoctor-bibtex/master.svg[Build Status (Travis CI),link=https://travis-ci.org/asciidoctor/asciidoctor-bibtex]
23
+ image:https://github.com/asciidoctor/asciidoctor-bibtex/workflows/CI/badge.svg[GitHub Actions Status,link=https://github.com/asciidoctor/asciidoctor-bibtex/actions]
24
24
  image:https://img.shields.io/gem/v/asciidoctor-bibtex.svg[Latest Release, link=https://rubygems.org/gems/asciidoctor-bibtex]
25
25
  endif::[]
26
26
 
@@ -125,6 +125,11 @@ Configuration is applied in the form of AsciiDoc document attributes, which must
125
125
  | `asciidoc`, `bibtex` or `biblatex`
126
126
  | `asciidoc`
127
127
 
128
+ | bibtex-locale
129
+ | Locale used to render the bibliography
130
+ | strings supported by CSL
131
+ | `en-US`
132
+
128
133
  | bibtex-throw
129
134
  | Throw an error on unknown references
130
135
  | `true` or `false`
@@ -13,7 +13,7 @@ require_relative 'processor'
13
13
  module AsciidoctorBibtex
14
14
  module Asciidoctor
15
15
  # Placeholder paragraph for the bibliography paragraph. Choose a uuid so
16
- # that it is a special word unlikeky to conflict with normal texts.
16
+ # that it is a special word unlikely to conflict with normal texts.
17
17
  BibliographyBlockMacroPlaceholder = %(a5d42deb-3cfc-4293-b96a-fcb47316ce56)
18
18
 
19
19
  # BibliographyBlockMacro
@@ -32,7 +32,7 @@ module AsciidoctorBibtex
32
32
 
33
33
  def process(parent, target, attrs)
34
34
  # NOTE: bibtex-file and bibtex-style set by this macro shall be
35
- # overridable by document attributes and commandline arguments. So we
35
+ # overridable by document attributes and command line arguments. So we
36
36
  # respect the convention here.
37
37
  if target && (!parent.document.attr? 'bibtex-file')
38
38
  parent.document.set_attribute 'bibtex-file', target
@@ -53,7 +53,7 @@ module AsciidoctorBibtex
53
53
  #
54
54
  # This processor scans the document, generates a list of citations, replaces
55
55
  # each citation with citation text and the reference block macro placeholder
56
- # with the final bibliography list. It relys on the block macro processor to
56
+ # with the final bibliography list. It relies on the block macro processor to
57
57
  # generate the place holder.
58
58
  #
59
59
  # NOTE: According to the asiidoctor extension policy, the tree processor can
@@ -70,6 +70,9 @@ module AsciidoctorBibtex
70
70
  bibtex_citation_template = ((document.attr 'bibtex-citation-template') || '[$id]').to_s
71
71
 
72
72
  # Fild bibtex file automatically if not supplied.
73
+ if bibtex_file.empty?
74
+ bibtex_file = AsciidoctorBibtex::PathUtils.find_bibfile document.base_dir
75
+ end
73
76
  if bibtex_file.empty?
74
77
  bibtex_file = AsciidoctorBibtex::PathUtils.find_bibfile '.'
75
78
  end
@@ -82,7 +85,7 @@ module AsciidoctorBibtex
82
85
  end
83
86
 
84
87
  # Extract all AST nodes that can contain citations.
85
- prose_blocks = document.find_by do |b|
88
+ prose_blocks = document.find_by traverse_documents: true do |b|
86
89
  (b.content_model == :simple) ||
87
90
  (b.context == :list_item) ||
88
91
  (b.context == :table_cell) ||
@@ -97,7 +100,10 @@ module AsciidoctorBibtex
97
100
  # First pass: extract all citations.
98
101
  prose_blocks.each do |block|
99
102
  if block.context == :list_item || block.context == :table_cell
100
- line = block.text
103
+ # NOTE: we access the instance variable @text for raw text.
104
+ # Otherwise the footnotes in the text will be pre-processed and
105
+ # ghost footnotes will be inserted (as of asciidoctor 2.0.10).
106
+ line = block.instance_variable_get(:@text)
101
107
  unless line.nil? || line.empty?
102
108
  processor.process_citation_macros line
103
109
  end
@@ -106,7 +112,7 @@ module AsciidoctorBibtex
106
112
  processor.process_citation_macros line
107
113
  end
108
114
  else
109
- line = block.title
115
+ line = block.instance_variable_get(:@title)
110
116
  processor.process_citation_macros line
111
117
  end
112
118
  end
@@ -119,22 +125,25 @@ module AsciidoctorBibtex
119
125
  # NOTE: we access the instance variable @text for raw text.
120
126
  line = block.instance_variable_get(:@text)
121
127
  unless line.nil? or line.empty?
128
+ line_orig = line
122
129
  line = processor.replace_citation_macros(line)
123
130
  line = processor.replace_bibitem_macros(line)
124
- block.text = line
131
+ block.text = line if line != line_orig
125
132
  end
126
133
  elsif block.content_model == :simple
127
134
  block.lines.each_with_index do |line, index|
135
+ line_orig = line
128
136
  line = processor.replace_citation_macros(line)
129
137
  line = processor.replace_bibitem_macros(line)
130
- block.lines[index] = line
138
+ block.lines[index] = line if line != line_orig
131
139
  end
132
140
  else
133
141
  # NOTE: we access the instance variable @text for raw text.
134
142
  line = block.instance_variable_get(:@title)
143
+ line_orig = line
135
144
  line = processor.replace_citation_macros(line)
136
- # line = processor.replace_bibitem_macros(line)
137
- block.title = line
145
+ line = processor.replace_bibitem_macros(line)
146
+ block.title = line if line != line_orig
138
147
  end
139
148
  end
140
149
 
@@ -150,7 +159,7 @@ module AsciidoctorBibtex
150
159
 
151
160
  # Third pass: replace the bibliography paragraph with the bibliography
152
161
  # list.
153
- biblio_blocks = document.find_by do |b|
162
+ biblio_blocks = document.find_by traverse_documents: true do |b|
154
163
  # for fast search (since most searches shall fail)
155
164
  (b.content_model == :simple) && (b.lines.size == 1) \
156
165
  && (b.lines[0] == BibliographyBlockMacroPlaceholder)
@@ -207,7 +207,7 @@ module AsciidoctorBibtex
207
207
  'textcite'
208
208
  else
209
209
  'parencite'
210
- end
210
+ end
211
211
  else
212
212
  'cite'
213
213
  end
@@ -260,7 +260,7 @@ module AsciidoctorBibtex
260
260
  result = StringUtils.combine_consecutive_numbers(result)
261
261
  end
262
262
 
263
- include_pretext result, macro, ob, cb
263
+ "[.citation]\##{include_pretext(result, macro, ob, cb)}\#"
264
264
  end
265
265
  end
266
266
 
@@ -1,3 +1,3 @@
1
1
  module AsciidoctorBibtex
2
- VERSION = '0.7.1'
2
+ VERSION = '0.9.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asciidoctor-bibtex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zhang YANG
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-13 00:00:00.000000000 Z
11
+ date: 2024-02-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '4'
33
+ version: '6.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '4'
40
+ version: '6.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: citeproc-ruby
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -135,7 +135,7 @@ homepage: https://github.com/asciidoctor/asciidoctor-bibtex
135
135
  licenses:
136
136
  - OWL
137
137
  metadata: {}
138
- post_install_message:
138
+ post_install_message:
139
139
  rdoc_options: []
140
140
  require_paths:
141
141
  - lib
@@ -143,15 +143,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - ">="
145
145
  - !ruby/object:Gem::Version
146
- version: 2.3.0
146
+ version: 2.4.0
147
147
  required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  requirements: []
153
- rubygems_version: 3.0.6
154
- signing_key:
153
+ rubygems_version: 3.3.26
154
+ signing_key:
155
155
  specification_version: 4
156
156
  summary: An Asciidoctor extension that adds bibtex integration to AsciiDoc
157
157
  test_files: []