asciidoctor-bibliography 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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>