!! test Book Referencing attribute rejected by default !! config wgCiteBookReferencing=false !! wikitext [foo] [bar] !! html/php

[1] Cite error: Invalid <ref> tag;

invalid names, e.g. too many
  1. [foo]
!! end !! test Book Referencing attribute allowed with feature flag set !! config wgCiteBookReferencing=true !! wikitext [foo] [bar] !! html/php

[1]

[1.1]
  1. [foo]
    1. [bar]
!! end !! test T236256 - Extending the same base multiple times is fine !! config wgCiteBookReferencing=true !! wikitext book page 2 page 3 !! html/php

[1] [1.1] [1.2]

  1. book
    1. page 2
    2. page 3
!! end !! test T236256 - Naming book references is fine !! config wgCiteBookReferencing=true !! wikitext book page 2 page 3 !! html/php

[1] [1.1] [1.2] [1.1] [1.2]

  1. book
    1. 1.1.0 1.1.1 page 2
    2. 1.2.0 1.2.1 page 3
!! end !! test T236256 - Extending a reference that doesn't exist #1 !! config wgCiteBookReferencing=true !! wikitext page 1 !! html/php [1.1]
  1. Cite error: Invalid <ref> tag; no text was provided for refs named a
    1. page 1
!! end !! test T236256 - Extending a reference that doesn't exist #2 !! config wgCiteBookReferencing=true !! wikitext book page 1 !! html/php

[1]

[2.1]
  1. book
  2. Cite error: Invalid <ref> tag; no text was provided for refs named a
    1. page 1
!! end !! test T236256 - Reference with the same name defined twice !! config wgCiteBookReferencing=true !! wikitext book magazine page 1 !! html/php

[1] [1]

[1.1]
  1. 1.0 1.1 book Cite error: Invalid <ref> tag; name "a" defined multiple times with different content
    1. page 1
!! end !! test T236256 - Can't reuse a name for two book references !! config wgCiteBookReferencing=true !! wikitext book page 2 page 3 !! html/php

[1] [1.1] [1.2]

  1. book
    1. 1.2.0 1.2.1 page 2 Cite error: Invalid <ref> tag; name "b" defined multiple times with different content
!! end # TODO: # * Should render an error on ref-3. !! test T236256 - Can't extend a book reference (no nesting). !! config wgCiteBookReferencing=true !! wikitext book page 2 section 3 !! html/php

[1] [1.1] [1.1]

  1. book
    1. page 2
    2. section 3
!! end !! test T236256 - Named reference without text !! config wgCiteBookReferencing=true !! wikitext page 1 !! html/php

[1]

[1.1]
  1. Cite error: Invalid <ref> tag; no text was provided for refs named a
    1. page 1
!! end !! test T236256 - No text for a book reference !! config wgCiteBookReferencing=true !! wikitext book !! html/php

[1]

Cite error: The opening <ref> tag is malformed or has a bad name
  1. book
!! end !! test T236256 - Empty text for a book reference !! config wgCiteBookReferencing=true !! wikitext book !! html/php

[1] Cite error: Invalid <ref> tag;

refs with no name must have content
  1. book
!! end !! test T236256 - De-facto empty text for a book reference !! config wgCiteBookReferencing=true !! wikitext book !! html/php

[1] Cite error: Invalid <ref> tag;

refs with no name must have content
  1. book
!! end !! test T236256 - Everything in the same group !! config wgCiteBookReferencing=true !! wikitext book page !! html/php

[g1 1] [g1 1.1] [g1 1.1]

  1. book
    1. 1.1.0 1.1.1 page
!! end !! test T236256 - Base and book reference in different groups !! config wgCiteBookReferencing=true !! wikitext book page !! html/php

[g1 1] [g2 1.1]

  1. book
  1. Cite error: Invalid <ref> tag; no text was provided for refs named a
    1. page
!! end !! test T236256 - Extending in the unnamed default group !! config wgCiteBookReferencing=true !! wikitext book page !! html/php

[g1 1] [1.1]

  1. book
  1. Cite error: Invalid <ref> tag; no text was provided for refs named a
    1. page
!! end !! test T236256 - Base in the unnamed default group !! config wgCiteBookReferencing=true !! wikitext book page !! html/php

[1] [g1 1.1]

  1. Cite error: Invalid <ref> tag; no text was provided for refs named a
    1. page
  1. book
!! end !! test T236256 - Extending a multi-part ref should be fine !! config wgCiteBookReferencing=true !! wikitext part 1 part 2 ok !! html/php

[1]

[1.1]

  1. part 1 part 2
    1. ok
!! end # TODO: # * Should render an error at the third reference. !! test T236256 - Dont allow splitting a book reference for now !! config wgCiteBookReferencing=true !! wikitext book page 2 and page 3 the same time? !! html/php

[1] [1.1]

  1. book
    1. page 2 and page 3 the same time?
!! end # TODO: # * Should render an error at the second reference. !! test T236256 - Can't be a follow up and a book reference the same time !! config wgCiteBookReferencing=true !! wikitext book 1 huh? !! html/php

[1] Cite error: Invalid <ref> tag; invalid names, e.g. too many

  1. book 1
!! end # TODO: # * Should render an error at the third reference. !! test T236256 - Can't be a follow up and a book reference the same time, even when referencing 2 different bases !! config wgCiteBookReferencing=true !! wikitext book 1 book 2 huh? !! html/php

[1] [2] Cite error: Invalid <ref> tag; invalid names, e.g. too many

  1. book 1
  2. book 2
!! end # TODO # * This should be invalid, there's no way to know that `footwo` should be subnumbered in a one-pass parse. !! test Extends defined in called with #tag !! wikitext BAR {{#tag:references| p. 10 }} !! html

[1] [2]

  1. BAR
    1. p. 10
!! end !! test Extends parent defined in called with #tag !! wikitext BAR page 7 {{#tag:references| book name }} !! html

[1] [2.1] [2]

  1. BAR
  2. book name
    1. page 7
!! end !! test Interleaved extends groups !! wikitext text-a text-c page b page d !! html

[1] [2]

[1.1] [2.1]

  1. text-a
    1. page b
  2. text-c
    1. page d
!! end !! test Multiple groups with extends !! wikitext text-a page b text-c page d !! html

[1] [1.1]

  1. text-a
    1. page b

[1] [1.1]

  1. text-c
    1. page d
!! end !! test Multiple groups with extends, duplicated names across groups !! wikitext text-a page b text-c page d !! html

[1] [1.1]

  1. text-a
    1. page b

[1] [1.1]

  1. text-c
    1. page d
!! end !! test Intervening ref before extends !! config wgCiteBookReferencing=true !! wikitext book another page 2 !! html/php

[1] [2] [1.1]

  1. book
    1. page 2
  2. another
!! end