asciidoctor-bibliography 0.7.0 → 0.7.2
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/README.adoc +28 -7
- data/lib/asciidoctor-bibliography/asciidoctor/bibliographer_preprocessor.rb +1 -1
- data/lib/asciidoctor-bibliography/databases/bibtex.rb +5 -1
- data/lib/asciidoctor-bibliography/options.rb +3 -2
- data/lib/asciidoctor-bibliography/version.rb +1 -1
- data/lib/csl/styles/rfc-v2.csl +6 -13
- data/spec/csl/styles/rfc_v2_spec.rb +2 -2
- data/spec/options_spec.rb +12 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 241505801324d38d708ac52fdf8c24755dd16ef5
|
4
|
+
data.tar.gz: 0a7ac064f2d07b664df8ad1405a00dc6613e5533
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2f0719e9e1219b3d09073d430d498b142472dff3dda41543f8df80c6293ff65739c9c260ba95a92464d39c1d4a6ce5a140120009cdaef41fd15e422173a9855
|
7
|
+
data.tar.gz: e33ccc4676b4d5087e1ac4b38573ff3d1f7cad8b5a0ed799e5060ff968795989b965c4c9087ac4769aea48f6c77fce7ab856c15a92c652711f73e67a3d48f869
|
data/README.adoc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
= Citations and Bibliography the "asciidoctor-way"
|
2
2
|
|
3
3
|
asciidoctor-bibliography lets you handle citations and bibliography the
|
4
|
-
|
4
|
+
http://asciidoctor.org/[asciidoctor]-way!
|
5
5
|
|
6
6
|
image:https://img.shields.io/gem/v/asciidoctor-bibliography.svg["Gem Version", link="https://rubygems.org/gems/asciidoctor-bibliography"]
|
7
7
|
image:https://img.shields.io/travis/riboseinc/asciidoctor-bibliography/master.svg["Build Status", link="https://travis-ci.org/riboseinc/asciidoctor-bibliography"]
|
@@ -193,7 +193,11 @@ Specifying a database file is mandatory and it can be done in the header with it
|
|
193
193
|
:bibliography-database: my_database.bib
|
194
194
|
----
|
195
195
|
|
196
|
-
Currently only the `BibTeX` format is supported
|
196
|
+
Currently only the `BibTeX` format is supported, with `.bib` or `.bibtex` extensions.
|
197
|
+
|
198
|
+
`BibLaTeX` databases can be used too, but only the subset of features belonging to `BibTeX`
|
199
|
+
are safe to use: unknown attributes will be silently ignored. If the file has `.biblatex`
|
200
|
+
extension the you will receive a warning on compilation.
|
197
201
|
|
198
202
|
|
199
203
|
=== Styling
|
@@ -300,9 +304,11 @@ As for the `sort` option, the valid values are `ascending` (default) and `descen
|
|
300
304
|
|
301
305
|
=== TeX-mode
|
302
306
|
|
303
|
-
While the `cite` macro is reserved for CSL styling
|
307
|
+
While the `cite` macro is reserved for CSL styling and works with thousands of styles,
|
308
|
+
the traditional Bib(La)TeX macros are also implemented with their usual names
|
309
|
+
and can be used with a few styles:
|
304
310
|
|
305
|
-
* `citet`
|
311
|
+
* `citet` (in `LaTeX` world `\citet` is equivalent to `\cite`)
|
306
312
|
* `citet*`
|
307
313
|
* `citealt`
|
308
314
|
* `citealt*`
|
@@ -315,8 +321,6 @@ While the `cite` macro is reserved for CSL styling, all traditional Bib(La)TeX m
|
|
315
321
|
* `citeyear`
|
316
322
|
* `citeyearpar`
|
317
323
|
|
318
|
-
NOTE: no macros are missing since `\cite` is equivalent to `\citet`!
|
319
|
-
|
320
324
|
To cite multiple items you can concatenate them just like with `cite`.
|
321
325
|
|
322
326
|
All macros accept standard locators, `locator`, `suffix` and `prefix`.
|
@@ -332,7 +336,13 @@ You can set their style in the header:
|
|
332
336
|
|
333
337
|
Accepted values are `authoryear` (default) and `numeric`.
|
334
338
|
|
335
|
-
|
339
|
+
IMPORTANT: The `cite` macro and the `cite...` macros described in this section are completely
|
340
|
+
independent mechanisms. The former is styled with `:bibliography-style:` (thousands of styles available)
|
341
|
+
while the latter is styled with with `:bibliography-tex-style:` (much more limited, only has the
|
342
|
+
styles listed above).
|
343
|
+
|
344
|
+
The macro `fullcite` is also available and accepts no parameters except a single reference key.
|
345
|
+
Unlike its siblings, it is able to render CSL styles and is configured using `:bibliography-style:`.
|
336
346
|
|
337
347
|
==== Advanced options
|
338
348
|
|
@@ -350,6 +360,17 @@ Sometimes it is desirable to wrap the rendered citations in a passthrough. Using
|
|
350
360
|
:bibliography-passthrough: false
|
351
361
|
----
|
352
362
|
|
363
|
+
==== CLI usage
|
364
|
+
|
365
|
+
All header attributes described above can also be passed through the commandline as is customary. E.g.:
|
366
|
+
|
367
|
+
[source,console]
|
368
|
+
----
|
369
|
+
$ asciidoctor -r asciidoctor-bibliography -a bibliography-style=ieee my_first_document.adoc
|
370
|
+
----
|
371
|
+
|
372
|
+
Values given in such way will take highest priority.
|
373
|
+
|
353
374
|
== Development
|
354
375
|
|
355
376
|
We follow Sandi Metz's Rules for this gem, you can read the
|
@@ -10,7 +10,7 @@ module AsciidoctorBibliography
|
|
10
10
|
class BibliographerPreprocessor < ::Asciidoctor::Extensions::Preprocessor
|
11
11
|
def process(document, reader)
|
12
12
|
document.bibliographer.options =
|
13
|
-
::AsciidoctorBibliography::Options.
|
13
|
+
::AsciidoctorBibliography::Options.build document, reader
|
14
14
|
|
15
15
|
database_filepath =
|
16
16
|
File.expand_path document.bibliographer.options.database,
|
@@ -11,9 +11,13 @@ require "latex/decode/greek"
|
|
11
11
|
module AsciidoctorBibliography
|
12
12
|
module Databases
|
13
13
|
module BibTeX
|
14
|
-
EXTENSIONS = %w[.bib .bibtex].freeze
|
14
|
+
EXTENSIONS = %w[.bib .bibtex .biblatex].freeze
|
15
15
|
|
16
16
|
def self.load(filename)
|
17
|
+
# TODO: detect BibLaTeX code w/ other extensions
|
18
|
+
warn <<~MESSAGE if File.extname(filename) == '.biblatex'
|
19
|
+
WARNING: you are requiring a BibLaTeX database; only features compatible with BibTeX are guaranteed to work.
|
20
|
+
MESSAGE
|
17
21
|
::BibTeX.open(filename, filter: [LatexFilter]).to_citeproc
|
18
22
|
end
|
19
23
|
|
@@ -22,10 +22,11 @@ module AsciidoctorBibliography
|
|
22
22
|
merge DEFAULTS
|
23
23
|
end
|
24
24
|
|
25
|
-
def self.
|
25
|
+
def self.build(document, reader)
|
26
26
|
header_attributes = get_header_attributes_hash reader
|
27
27
|
header_attributes.select! { |key, _| DEFAULTS.keys.include? key }
|
28
|
-
|
28
|
+
cli_attributes = document.attributes.select { |key, _| DEFAULTS.keys.include? key }
|
29
|
+
new.merge!(header_attributes).merge!(cli_attributes)
|
29
30
|
end
|
30
31
|
|
31
32
|
def self.get_header_attributes_hash(reader)
|
data/lib/csl/styles/rfc-v2.csl
CHANGED
@@ -1,27 +1,20 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
2
2
|
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="never">
|
3
3
|
<info>
|
4
|
-
<title>RFC
|
5
|
-
<id>rfc-
|
6
|
-
<updated>2017-11-
|
4
|
+
<title>RFC v3 style</title>
|
5
|
+
<id>rfc-v3</id>
|
6
|
+
<updated>2017-11-04T16:30:44+00:00</updated>
|
7
7
|
</info>
|
8
8
|
<macro name="citation-locator">
|
9
9
|
<group>
|
10
10
|
<label variable="locator" text-case="capitalize-first"/>
|
11
|
-
<text variable="locator" prefix=" "/>
|
12
11
|
</group>
|
13
12
|
</macro>
|
14
13
|
<citation>
|
15
14
|
<layout>
|
16
|
-
<group>
|
17
|
-
<
|
18
|
-
|
19
|
-
</group>
|
20
|
-
<group delimiter=", ">
|
21
|
-
<text variable="citation-label" prefix="[" suffix="]"/>
|
22
|
-
<text macro="citation-locator"/>
|
23
|
-
</group>
|
24
|
-
<text value="</xref>"/>
|
15
|
+
<group delimiter=" " prefix="<xref " suffix="/>">
|
16
|
+
<text variable="citation-label" prefix="target="" suffix="""/>
|
17
|
+
<text variable="locator" prefix="section="" suffix="""/>
|
25
18
|
</group>
|
26
19
|
</layout>
|
27
20
|
</citation>
|
@@ -7,12 +7,12 @@ describe "cite macro with rfc-v2 style" do
|
|
7
7
|
|
8
8
|
it "formats a single citation" do
|
9
9
|
expect(formatted_citation("cite:[RFC2119]", options: options)).
|
10
|
-
to eq '+++<xref target="RFC2119"
|
10
|
+
to eq '+++<xref target="RFC2119"/>+++'
|
11
11
|
end
|
12
12
|
|
13
13
|
it "formats a single citation with locator" do
|
14
14
|
expect(formatted_citation("cite:[RFC2119, section=1.2.3]", options: options)).
|
15
|
-
to eq '+++<xref target="RFC2119"
|
15
|
+
to eq '+++<xref target="RFC2119" section="1.2.3"/>+++'
|
16
16
|
end
|
17
17
|
|
18
18
|
it "formats a single bibliography entry" do
|
data/spec/options_spec.rb
CHANGED
@@ -160,9 +160,16 @@ describe AsciidoctorBibliography::Options do
|
|
160
160
|
end
|
161
161
|
end
|
162
162
|
|
163
|
-
describe ".
|
163
|
+
describe ".build" do
|
164
|
+
let(:document) do
|
165
|
+
::Asciidoctor::Document.new.tap do |doc|
|
166
|
+
# NOTE: these attributes would come from CLI
|
167
|
+
doc.attributes.merge! "bibliography-database" => "high_priority"
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
164
171
|
let(:reader) do
|
165
|
-
::Asciidoctor::PreprocessorReader.new(
|
172
|
+
::Asciidoctor::PreprocessorReader.new(document, <<~SOURCE.lines)
|
166
173
|
= This is the document title
|
167
174
|
:bibliography-database: foo
|
168
175
|
:bibliography-locale: bar
|
@@ -175,10 +182,10 @@ describe AsciidoctorBibliography::Options do
|
|
175
182
|
SOURCE
|
176
183
|
end
|
177
184
|
|
178
|
-
subject { described_class.
|
185
|
+
subject { described_class.build document, reader }
|
179
186
|
|
180
|
-
it "extracts all bibliography options ignoring others" do
|
181
|
-
expect(subject).to eq("bibliography-database" => "
|
187
|
+
it "extracts all bibliography options ignoring others and includes CLI attributes" do
|
188
|
+
expect(subject).to eq("bibliography-database" => "high_priority",
|
182
189
|
"bibliography-locale" => "bar",
|
183
190
|
"bibliography-style" => "baz",
|
184
191
|
"bibliography-hyperlinks" => "quz",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-bibliography
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|
@@ -341,7 +341,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
341
341
|
version: '0'
|
342
342
|
requirements: []
|
343
343
|
rubyforge_project:
|
344
|
-
rubygems_version: 2.
|
344
|
+
rubygems_version: 2.6.14
|
345
345
|
signing_key:
|
346
346
|
specification_version: 4
|
347
347
|
summary: Citations and bibliography the "asciidoctor-way"
|