asciidoctor-bibtex 0.7.1 → 0.9.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 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: []