asciidoctor-bibliography 0.2.1 → 0.3.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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +5 -0
  3. data/.gitignore +8 -2
  4. data/.hound.yml +3 -0
  5. data/.oss-guides.rubocop.yml +1076 -0
  6. data/.rubocop.yml +4 -10
  7. data/.travis.yml +2 -1
  8. data/Gemfile +1 -1
  9. data/README.adoc +224 -24
  10. data/Rakefile +2 -2
  11. data/asciidoctor-bibliography.gemspec +23 -23
  12. data/lib/asciidoctor-bibliography.rb +2 -2
  13. data/lib/asciidoctor-bibliography/asciidoctor.rb +4 -4
  14. data/lib/asciidoctor-bibliography/asciidoctor/bibliographer_preprocessor.rb +9 -56
  15. data/lib/asciidoctor-bibliography/bibliographer.rb +6 -7
  16. data/lib/asciidoctor-bibliography/citation.rb +56 -53
  17. data/lib/asciidoctor-bibliography/citation_item.rb +19 -10
  18. data/lib/asciidoctor-bibliography/database.rb +18 -6
  19. data/lib/asciidoctor-bibliography/databases/bibtex.rb +10 -10
  20. data/lib/asciidoctor-bibliography/errors.rb +16 -0
  21. data/lib/asciidoctor-bibliography/formatters/csl.rb +13 -2
  22. data/lib/asciidoctor-bibliography/formatters/tex.rb +42 -44
  23. data/lib/asciidoctor-bibliography/helpers.rb +9 -9
  24. data/lib/asciidoctor-bibliography/index.rb +17 -13
  25. data/lib/asciidoctor-bibliography/options.rb +97 -0
  26. data/lib/asciidoctor-bibliography/version.rb +1 -1
  27. data/samples/latex_macros_in_bibtex/sample.adoc +1 -1
  28. data/samples/standard/sample-default.adoc +3 -3
  29. data/samples/standard/sample-default.html +9 -8
  30. data/samples/standard/sample-din.adoc +1 -1
  31. data/samples/standard/sample-din.html +4 -3
  32. data/samples/standard/sample-ieee.adoc +1 -1
  33. data/samples/standard/sample-ieee.html +4 -3
  34. data/samples/tex/sample-authoryear.adoc +7 -17
  35. data/samples/tex/sample-authoryear.html +10 -32
  36. data/samples/tex/sample-numbers.adoc +7 -18
  37. data/samples/tex/sample-numbers.html +7 -29
  38. data/samples/tex/{sample-ordering.adoc → sample-sort.adoc} +6 -4
  39. data/spec/citation_item_spec.rb +67 -19
  40. data/spec/database_spec.rb +21 -16
  41. data/spec/helpers_spec.rb +46 -44
  42. data/spec/options_spec.rb +43 -0
  43. data/spec/spec_helper.rb +53 -55
  44. metadata +9 -7
  45. data/lib/asciidoctor-bibliography/exceptions.rb +0 -5
  46. data/samples/tex/sample-din.adoc +0 -74
  47. data/samples/tex/sample-din.html +0 -556
  48. data/samples/tex/sample-ordering.html +0 -467
@@ -9,26 +9,26 @@ module AsciidoctorBibliography
9
9
  end
10
10
 
11
11
  def self.html_to_asciidoc(string)
12
- string
13
- .gsub(%r{<\/?i>}, '_')
14
- .gsub(%r{<\/?b>}, '*')
15
- .gsub(%r{<\/?span.*?>}, '')
16
- .gsub(/\{|\}/, '')
12
+ string.
13
+ gsub(%r{<\/?i>}, "_").
14
+ gsub(%r{<\/?b>}, "*").
15
+ gsub(%r{<\/?span.*?>}, "").
16
+ gsub(/\{|\}/, "")
17
17
  # TODO: bracket dropping is inappropriate here.
18
18
  end
19
19
 
20
20
  # NOTE: mostly stolen from ActiveSupport.
21
21
  def self.to_sentence(array, options = {})
22
22
  default_connectors = {
23
- :words_connector => ', ',
24
- :two_words_connector => ' and ',
25
- :last_word_connector => ', and '
23
+ words_connector: ", ",
24
+ two_words_connector: " and ",
25
+ last_word_connector: ", and ",
26
26
  }
27
27
  options = default_connectors.merge!(options)
28
28
 
29
29
  case array.length
30
30
  when 0
31
- ''
31
+ ""
32
32
  when 1
33
33
  array[0].to_s.dup
34
34
  when 2
@@ -1,7 +1,7 @@
1
- require 'asciidoctor/attribute_list'
2
- require_relative 'formatters/csl'
1
+ require "asciidoctor/attribute_list"
2
+ require_relative "formatters/csl"
3
3
 
4
- require_relative 'helpers'
4
+ require_relative "helpers"
5
5
 
6
6
  module AsciidoctorBibliography
7
7
  class Index
@@ -16,16 +16,21 @@ module AsciidoctorBibliography
16
16
  end
17
17
 
18
18
  def render(bibliographer)
19
- formatter = Formatters::CSL.new(bibliographer.options['reference-style'])
20
- filtered_db = bibliographer.occurring_keys
21
- .map { |id| bibliographer.database.find { |h| h['id'] == id } }
22
- .map { |entry| prepare_entry_metadata bibliographer, entry }
19
+ formatter = Formatters::CSL.new(bibliographer.options.style)
20
+
21
+ unless bibliographer.options.sort.nil?
22
+ formatter.replace_bibliography_sort bibliographer.options.sort
23
+ end
24
+
25
+ filtered_db = bibliographer.occurring_keys.
26
+ map { |id| bibliographer.database.find_entry_by_id(id) }.
27
+ map { |entry| prepare_entry_metadata bibliographer, entry }
23
28
  formatter.import filtered_db
24
29
  formatter.sort(mode: :bibliography)
25
30
 
26
31
  lines = []
27
32
  formatter.bibliography.each_with_index do |reference, index|
28
- line = '{empty}'
33
+ line = "{empty}"
29
34
  line << "anchor:#{anchor_id(formatter.data[index].id)}[]"
30
35
  line << Helpers.html_to_asciidoc(reference)
31
36
  lines << line
@@ -36,13 +41,13 @@ module AsciidoctorBibliography
36
41
  end
37
42
 
38
43
  def prepare_entry_metadata(bibliographer, entry)
39
- entry
40
- .merge('citation-number': bibliographer.appearance_index_of(entry['id']))
41
- .merge('citation-label': entry['id']) # TODO: smart label generators
44
+ entry.
45
+ merge('citation-number': bibliographer.appearance_index_of(entry["id"])).
46
+ merge('citation-label': entry["id"]) # TODO: smart label generators
42
47
  end
43
48
 
44
49
  def anchor_id(target)
45
- ['bibliography', target].compact.join('-')
50
+ ["bibliography", target].compact.join("-")
46
51
  end
47
52
 
48
53
  def render_entry_label(target, formatter)
@@ -54,4 +59,3 @@ module AsciidoctorBibliography
54
59
  end
55
60
  end
56
61
  end
57
-
@@ -0,0 +1,97 @@
1
+ require "asciidoctor"
2
+ require_relative "errors"
3
+ require "csl/styles"
4
+
5
+ module AsciidoctorBibliography
6
+ class Options < Hash
7
+ PREFIX = "bibliography-".freeze
8
+
9
+ DEFAULTS = {
10
+ "bibliography-database" => nil,
11
+ "bibliography-style" => "apa",
12
+ "bibliography-hyperlinks" => "true",
13
+ "bibliography-order" => "alphabetical", # TODO: deprecate
14
+ "bibliography-tex-style" => "authoryear",
15
+ "bibliography-sort" => nil,
16
+ }.freeze
17
+
18
+ def initialize
19
+ merge DEFAULTS
20
+ end
21
+
22
+ def style
23
+ # Error throwing delegated to CSL library. Seems to have nice messages.
24
+ self["bibliography-style"] || DEFAULTS["bibliography-style"]
25
+ end
26
+
27
+ def hyperlinks?
28
+ value = self["bibliography-hyperlinks"] || DEFAULTS["bibliography-hyperlinks"]
29
+ unless %w[true false].include? value
30
+ message = "Option :bibliography-hyperlinks: has an invalid value (#{value}). Allowed values are 'true' and 'false'."
31
+ raise Errors::Options::Invalid, message
32
+ end
33
+
34
+ value == "true"
35
+ end
36
+
37
+ def database
38
+ value = self["bibliography-database"] || DEFAULTS["bibliography-database"]
39
+ if value.nil?
40
+ message = "Option :bibliography-database: is mandatory. A bibliographic database is required."
41
+ raise Errors::Options::Missing, message
42
+ end
43
+
44
+ value
45
+ end
46
+
47
+ def sort
48
+ begin
49
+ value = YAML.safe_load self["bibliography-sort"].to_s
50
+ rescue Psych::SyntaxError => psych_error
51
+ message = "Option :bibliography-sort: is not a valid YAML string: \"#{psych_error}\"."
52
+ raise Errors::Options::Invalid, message
53
+ end
54
+
55
+ value = self.class.validate_parsed_sort_type! value
56
+ value = self.class.validate_parsed_sort_contents! value unless value.nil?
57
+ value
58
+ end
59
+
60
+ def tex_style
61
+ self["bibliography-tex-style"] || DEFAULTS["bibliography-tex-style"]
62
+ end
63
+
64
+ def self.validate_parsed_sort_type!(value)
65
+ return value if value.nil?
66
+ return value if value.is_a?(Array) && value.all? { |v| v.is_a? Hash }
67
+ return [value] if value.is_a? Hash
68
+ message = "Option :bibliography-sort: has an invalid value (#{value}). Please refer to manual for more info."
69
+ raise Errors::Options::Invalid, message
70
+ end
71
+
72
+ def self.validate_parsed_sort_contents!(array)
73
+ # TODO: should we restrict these? Double check the CSL spec.
74
+ allowed_keys = %w[variable macro sort names-min names-use-first names-use-last]
75
+ return array unless array.any? { |hash| (hash.keys - allowed_keys).any? }
76
+ message = "Option :bibliography-sort: has a value containing invalid keys (#{array}). Allowed keys are #{allowed_keys.inspect}. Please refer to manual for more info."
77
+ raise Errors::Options::Invalid, message
78
+ end
79
+
80
+ def self.new_from_reader(reader)
81
+ header_attributes = get_header_attributes_hash reader
82
+ header_attributes.select! { |key, _| DEFAULTS.keys.include? key }
83
+ new.merge header_attributes
84
+ end
85
+
86
+ def self.get_header_attributes_hash(reader)
87
+ # We peek at the document attributes we need, without perturbing the parsing flow.
88
+ # NOTE: we'll use this in a preprocessor and they haven't been parsed yet, there.
89
+ tmp_document = ::Asciidoctor::Document.new
90
+ tmp_reader = ::Asciidoctor::PreprocessorReader.new(tmp_document, reader.source_lines)
91
+
92
+ ::Asciidoctor::Parser.
93
+ parse(tmp_reader, tmp_document, header_only: true).
94
+ attributes
95
+ end
96
+ end
97
+ end
@@ -1,3 +1,3 @@
1
1
  module AsciidoctorBibliography
2
- VERSION = '0.2.1'
2
+ VERSION = "0.3.0".freeze
3
3
  end
@@ -1,6 +1,6 @@
1
1
  = Latex Macros In Bibtex Items
2
2
  :bibliography-database: reference.bib
3
- :bibliography-reference-style: ieee
3
+ :bibliography-style: ieee
4
4
 
5
5
  == Contents
6
6
 
@@ -1,9 +1,11 @@
1
1
  = Sample usage of asciidoctor-bibliography
2
2
  :bibliography-database: biblio.bib
3
- :bibliography-hyperlinks: false
3
+ :bibliography-hyperlinks: true
4
4
 
5
5
  ## Standard
6
6
 
7
+ cite:[Lane12a]+[Lane12b]
8
+
7
9
  cite:[Anderson04]
8
10
 
9
11
  cite:[Anderson04, page=10]
@@ -12,8 +14,6 @@ cite:[Anderson04, chapter=10]
12
14
 
13
15
  cite:[Anderson04, page=10, chapter=12]
14
16
 
15
- cite:[Lane12a]+[Lane12b]
16
-
17
17
  cite:[Lane12a, page=42]+[Lane12b, opus=12]
18
18
 
19
19
  ## Bibliography
@@ -5,7 +5,7 @@
5
5
  <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <meta name="generator" content="Asciidoctor 1.5.6.1">
8
- <title>Standard</title>
8
+ <title>Sample usage of asciidoctor-bibliography</title>
9
9
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
10
10
  <style>
11
11
  /* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
@@ -427,28 +427,29 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
427
427
  </head>
428
428
  <body class="article">
429
429
  <div id="header">
430
+ <h1>Sample usage of asciidoctor-bibliography</h1>
430
431
  </div>
431
432
  <div id="content">
432
433
  <div class="sect1">
433
434
  <h2 id="_standard">Standard</h2>
434
435
  <div class="sectionbody">
435
436
  <div class="paragraph">
436
- <p>(Anderson et al., 2004)</p>
437
+ <p>(<a href="#bibliography-Lane12a">Lane, 2000</a>; <a href="#bibliography-Lane12b">Mane &amp; Smith, 2000</a>)</p>
437
438
  </div>
438
439
  <div class="paragraph">
439
- <p>(Anderson et al., 2004, p. 10)</p>
440
+ <p>(<a href="#bibliography-Anderson04">Anderson et al., 2004</a>)</p>
440
441
  </div>
441
442
  <div class="paragraph">
442
- <p>(Anderson et al., 2004, chap. 10)</p>
443
+ <p>(<a href="#bibliography-Anderson04">Anderson et al., 2004, p. 10</a>)</p>
443
444
  </div>
444
445
  <div class="paragraph">
445
- <p>(Anderson et al., 2004, chap. 12)</p>
446
+ <p>(<a href="#bibliography-Anderson04">Anderson et al., 2004, chap. 10</a>)</p>
446
447
  </div>
447
448
  <div class="paragraph">
448
- <p>(Lane, 2000; Mane &amp; Smith, 2000)</p>
449
+ <p>(<a href="#bibliography-Anderson04">Anderson et al., 2004, p. 10</a>)</p>
449
450
  </div>
450
451
  <div class="paragraph">
451
- <p>(Lane, 2000, p. 42; Mane &amp; Smith, 2000, op. 12)</p>
452
+ <p>(<a href="#bibliography-Lane12a">Lane, 2000, p. 42</a>; <a href="#bibliography-Lane12b">Mane &amp; Smith, 2000, op. 12</a>)</p>
452
453
  </div>
453
454
  </div>
454
455
  </div>
@@ -469,7 +470,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
469
470
  </div>
470
471
  <div id="footer">
471
472
  <div id="footer-text">
472
- Last updated 2017-09-10 19:07:47 CEST
473
+ Last updated 2017-09-17 18:42:29 CEST
473
474
  </div>
474
475
  </div>
475
476
  </body>
@@ -1,6 +1,6 @@
1
1
  = Sample usage of asciidoctor-bibliography
2
2
  :bibliography-database: biblio.bib
3
- :bibliography-reference-style: din-1505-2-alphanumeric
3
+ :bibliography-style: din-1505-2-alphanumeric
4
4
 
5
5
  ## Standard
6
6
 
@@ -5,7 +5,7 @@
5
5
  <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <meta name="generator" content="Asciidoctor 1.5.6.1">
8
- <title>Standard</title>
8
+ <title>Sample usage of asciidoctor-bibliography</title>
9
9
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
10
10
  <style>
11
11
  /* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
@@ -427,6 +427,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
427
427
  </head>
428
428
  <body class="article">
429
429
  <div id="header">
430
+ <h1>Sample usage of asciidoctor-bibliography</h1>
430
431
  </div>
431
432
  <div id="content">
432
433
  <div class="sect1">
@@ -442,7 +443,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
442
443
  <p>[<a href="#bibliography-Anderson04">Anderson04, chap.10</a>]</p>
443
444
  </div>
444
445
  <div class="paragraph">
445
- <p>[<a href="#bibliography-Anderson04">Anderson04, chap.12</a>]</p>
446
+ <p>[<a href="#bibliography-Anderson04">Anderson04, p.10</a>]</p>
446
447
  </div>
447
448
  <div class="paragraph">
448
449
  <p>[<a href="#bibliography-Lane12a">Lane12a</a>; <a href="#bibliography-Lane12b">Lane12b</a>]</p>
@@ -469,7 +470,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
469
470
  </div>
470
471
  <div id="footer">
471
472
  <div id="footer-text">
472
- Last updated 2017-09-09 23:17:49 CEST
473
+ Last updated 2017-09-16 21:33:46 CEST
473
474
  </div>
474
475
  </div>
475
476
  </body>
@@ -1,6 +1,6 @@
1
1
  = Sample usage of asciidoctor-bibliography
2
2
  :bibliography-database: biblio.bib
3
- :bibliography-reference-style: ieee
3
+ :bibliography-style: ieee
4
4
 
5
5
  ## Standard
6
6
 
@@ -5,7 +5,7 @@
5
5
  <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <meta name="generator" content="Asciidoctor 1.5.6.1">
8
- <title>Standard</title>
8
+ <title>Sample usage of asciidoctor-bibliography</title>
9
9
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
10
10
  <style>
11
11
  /* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
@@ -427,6 +427,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
427
427
  </head>
428
428
  <body class="article">
429
429
  <div id="header">
430
+ <h1>Sample usage of asciidoctor-bibliography</h1>
430
431
  </div>
431
432
  <div id="content">
432
433
  <div class="sect1">
@@ -442,7 +443,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
442
443
  <p><a href="#bibliography-Anderson04">[1, Ch. 10]</a></p>
443
444
  </div>
444
445
  <div class="paragraph">
445
- <p><a href="#bibliography-Anderson04">[1, Ch. 12]</a></p>
446
+ <p><a href="#bibliography-Anderson04">[1, P. 10]</a></p>
446
447
  </div>
447
448
  <div class="paragraph">
448
449
  <p><a href="#bibliography-Lane12a">[2]</a>, <a href="#bibliography-Lane12b">[3]</a></p>
@@ -469,7 +470,7 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
469
470
  </div>
470
471
  <div id="footer">
471
472
  <div id="footer-text">
472
- Last updated 2017-09-09 23:17:57 CEST
473
+ Last updated 2017-09-16 21:33:46 CEST
473
474
  </div>
474
475
  </div>
475
476
  </body>
@@ -1,23 +1,9 @@
1
1
  = Sample usage of asciidoctor-bibliography
2
2
  :bibliography-database: biblio.bib
3
+ :bibliography-tex-style: authoryear
4
+ :bibliography-style: apa
3
5
 
4
- ## Standard
5
-
6
- cite:[Lane12a]+[Lane12b]
7
-
8
- cite:[Anderson04]
9
-
10
- cite:[Anderson04, page=10]
11
-
12
- cite:[Anderson04, chapter=10]
13
-
14
- cite:[Anderson04, page=10, chapter=12]
15
-
16
- ## TeX-compatible
17
-
18
- fullcite:[Anderson04] (fullcite, single)
19
-
20
- fullcite:[Anderson04, page=123] (fullcite, single)
6
+ ## Citations
21
7
 
22
8
  citet:[Anderson04] (citet, single)
23
9
 
@@ -67,7 +53,11 @@ citeyearpar:[Anderson04] (citeyearpar, single)
67
53
 
68
54
  citeyearpar:[Lane12a]+[Lane12b] (citeyearpar, multiple)
69
55
 
56
+ fullcite:[Anderson04] (fullcite)
57
+
58
+
70
59
  ## Bibliography
71
60
 
61
+
72
62
  bibliography::[]
73
63
 
@@ -5,7 +5,7 @@
5
5
  <!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <meta name="generator" content="Asciidoctor 1.5.6.1">
8
- <title>Standard</title>
8
+ <title>Sample usage of asciidoctor-bibliography</title>
9
9
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
10
10
  <style>
11
11
  /* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
@@ -427,38 +427,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
427
427
  </head>
428
428
  <body class="article">
429
429
  <div id="header">
430
+ <h1>Sample usage of asciidoctor-bibliography</h1>
430
431
  </div>
431
432
  <div id="content">
432
433
  <div class="sect1">
433
- <h2 id="_standard">Standard</h2>
434
+ <h2 id="_citations">Citations</h2>
434
435
  <div class="sectionbody">
435
436
  <div class="paragraph">
436
- <p>(<a href="#bibliography-Lane12a">Lane 2000</a>; <a href="#bibliography-Lane12b">Mane and Smith 2000</a>)</p>
437
- </div>
438
- <div class="paragraph">
439
- <p>(<a href="#bibliography-Anderson04">Anderson et al. 2004</a>)</p>
440
- </div>
441
- <div class="paragraph">
442
- <p>(<a href="#bibliography-Anderson04">Anderson et al. 2004, p. 10</a>)</p>
443
- </div>
444
- <div class="paragraph">
445
- <p>(<a href="#bibliography-Anderson04">Anderson et al. 2004, chap. 10</a>)</p>
446
- </div>
447
- <div class="paragraph">
448
- <p>(<a href="#bibliography-Anderson04">Anderson et al. 2004, chap. 12</a>)</p>
449
- </div>
450
- </div>
451
- </div>
452
- <div class="sect1">
453
- <h2 id="_tex_compatible">TeX-compatible</h2>
454
- <div class="sectionbody">
455
- <div class="paragraph">
456
- <p>Anderson, J. R., D. Bothell, M. D. Byrne, S. Douglass, C. Lebiere, and Y. L. Qin. 2004. “An Integrated Theory of the Mind.” <em>Psychological Review</em> 111 (4): 1036–60. (fullcite, single)</p>
457
- </div>
458
- <div class="paragraph">
459
- <p>Anderson, J. R., D. Bothell, M. D. Byrne, S. Douglass, C. Lebiere, and Y. L. Qin. 2004. “An Integrated Theory of the Mind.” <em>Psychological Review</em> 111 (4): 123. (fullcite, single)</p>
460
- </div>
461
- <div class="paragraph">
462
437
  <p><a href="#bibliography-Anderson04">Anderson et al. (2004)</a> (citet, single)</p>
463
438
  </div>
464
439
  <div class="paragraph">
@@ -530,26 +505,29 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
530
505
  <div class="paragraph">
531
506
  <p>(<a href="#bibliography-Lane12a">2000</a>; <a href="#bibliography-Lane12b">2000</a>) (citeyearpar, multiple)</p>
532
507
  </div>
508
+ <div class="paragraph">
509
+ <p>Anderson, J. R., Bothell, D., Byrne, M. D., Douglass, S., Lebiere, C., &amp; Qin, Y. L. (2004). An integrated theory of the mind. <em>Psychological Review</em>, <em>111</em>(4), 1036–1060. (fullcite)</p>
510
+ </div>
533
511
  </div>
534
512
  </div>
535
513
  <div class="sect1">
536
514
  <h2 id="_bibliography">Bibliography</h2>
537
515
  <div class="sectionbody">
538
516
  <div class="paragraph">
539
- <p><a id="bibliography-Anderson04"></a>Anderson, J. R., D. Bothell, M. D. Byrne, S. Douglass, C. Lebiere, and Y. L. Qin. 2004. An Integrated Theory of the Mind.” <em>Psychological Review</em> 111 (4): 123.</p>
517
+ <p><a id="bibliography-Anderson04"></a>Anderson, J. R., Bothell, D., Byrne, M. D., Douglass, S., Lebiere, C., &amp; Qin, Y. L. (2004). An integrated theory of the mind. <em>Psychological Review</em>, <em>111</em>(4), 1036–1060.</p>
540
518
  </div>
541
519
  <div class="paragraph">
542
- <p><a id="bibliography-Lane12a"></a>Lane, P. 2000. <em>Book Title</em>. Publisher.</p>
520
+ <p><a id="bibliography-Lane12a"></a>Lane, P. (2000). <em>Book title</em>. Publisher.</p>
543
521
  </div>
544
522
  <div class="paragraph">
545
- <p><a id="bibliography-Lane12b"></a>Mane, K., and D. Smith. 2000. <em>Book Title</em>. Publisher.</p>
523
+ <p><a id="bibliography-Lane12b"></a>Mane, K., &amp; Smith, D. (2000). <em>Book title</em>. Publisher.</p>
546
524
  </div>
547
525
  </div>
548
526
  </div>
549
527
  </div>
550
528
  <div id="footer">
551
529
  <div id="footer-text">
552
- Last updated 2017-09-09 20:46:27 CEST
530
+ Last updated 2017-09-17 18:31:37 CEST
553
531
  </div>
554
532
  </div>
555
533
  </body>