Commit graph

12 commits

Author SHA1 Message Date
Timo Tijhof 04c3ad0107 Implement responsive columns for reference lists
This is based on the popular 'count' parameter from Template:Reflist on
English Wikipedia, which has also been adopted by many other wikis.

That template's 'count' parameter allows maximum flexibility on a per-
page basis. This was important because the template can't know how many
references the list will contain. Users typically manually add (and
later, increment) the 'count' parameter when the list exceeds a certain
threshold.

The template currently sets an exact column count (via the CSS3
property `column-count`).

This patch improves on that by instead using the closely related CSS3
`column-width` property. This automatically derives the column count
based on the available space in the browser window. It will thus create
two or three columns on a typical desktop screen, and two or no columns
on a mobile device.

The specified width is the minimum width of a column. This ensures that
the list is not split when rendered on a narrow screen or mobile device.

It also hooks into the raw list before parsing and adds the class only
when the list will contain more than a certain number of items. This
prevents very short lists from being split into multiple columns.

Templates like Template:Reflist on English Wikipedia currently are not
able to set inline styles on the list element directly, which is why
they set it on a `<div>` wrapping the `<references />` output. Because
of this, the feature of the Cite extension must not be enabled at the
same time, as that would result in both the template's wrapper and the
references list being split. The end result would involve sitations with
three columns split in four sub-columns, creating a complicated mess of
nine intermixed columns.

To provide a smooth migration for wikis, this feature can be disabled by
default using `$wgCiteResponsiveReferences = false`. Each individual
template createing reference list can then be migrated, by removing the
wrapper column styles and instead settting the new "responsive"
attribute, like so: `<references responsive />`.

Once any conflicting templates have been migrated, the default for the
wiki can be swapped by setting `$wgCiteResponsiveReferences = true`.

If wikis wish for some templates to keep their custom column splitting
behaviour, templates can also opt-out by setting `responsive="0"`, which
will make sure that it will keep behaving the current way even after the
feature becomes enabled by default for the wiki.

In summary, when disabled by default, pages can opt into this system
with `<references responsive />`. When enabled by default, pages can opt
out of the system with `<references responsive=0 />`.

* Deprecate cite_references_prefix/cite_references_suffix.

  This message is rarely used and opens up compatibility hazards.
  It was already removed by Parsoid, but the PHP implementation
  still had it. It's typically used to add inline styles to the
  wrapper which is more appropiately done in Common.css (or
  obsoleted as part of the skin or Cite extenion itself nowadays
  depending on what style in question).

  It was also a HTML-style message with separated open and close
  segments, which is an anti-pattern in itself.

* Declare module target explicitly and include mobile. The absence of
  this stylesheet caused subtle BiDi/RTL bugs on mobile.

Bug: T33597
Change-Id: Ia535f9b722e825e71e792b36356febc3bd444387
2017-03-07 22:42:47 +00:00
Brad Jorsch d51d8b304f Update for API error i18n
See Iae0e2ce3.

Change-Id: I8f214dd95876e1eadc4a0463cba3d5a13d783014
2016-11-14 12:48:23 -05:00
cenarium 987f20e558 Avoid nowiki tags in reference links
In reference links, brackets are wrapped in nowiki tags to avoid
breaking the link. This uses instead &#91; and &#93; (ASCII for
[ and ]). This simplifies parsing and mitigates the issue of
strip markers in references data.

Bug: T127787
Change-Id: Ibacae55eb99233d89d5c68261e3259cb2b723451
2016-03-27 20:33:35 +00:00
jdlrobson 509741dc17 Surface references via api query property
* The query request prop=references will return a JSON blob of all
references in the page
* Conveniently references are returned with an array id key that corresponds
to an anchor tag in the HTML
* When references storage is disabled the API request will trigger an
error.

Bug: T123290
Change-Id: I81a965bcb47d17df18f1e415e3c25f88f6b48ffc
2016-02-26 19:02:12 +00:00
jenkins-bot d6bc770016 Merge "Change Mediawiki:Cite error ref_no_key text" 2016-02-12 22:49:38 +00:00
darthbhyrava d8775b5450 Change Mediawiki:Cite error ref_no_key text
Clarified error message by changing it to "The opening <ref> tag is malformed or has a bad name".

Bug: T115810
Change-Id: I0c9cb8f5e81ebdb194c57f24a5792b682dd290dc
2016-02-12 22:59:10 +01:00
cenarium 71889ff017 In section preview, add preview of references to its own section
This is to make it apparent that this isn't part of the preview
of the section itself. A span class is also added.

Bug: T125981
Change-Id: I62c8dca8ee42e79c6b7cd7f837f4e7ee65f77770
2016-02-07 16:34:09 +00:00
PiRSquared17 739962b6d1 Add reference list to section preview if missing
For a section preview with missing <references/> tag,
add reference lists for each group.

Bug: T7984
Change-Id: I2ca1b62fc068b20b7df4b0af2e3e79535e656259
2016-01-20 04:25:46 +00:00
jenkins-bot f75e136ec7 Merge "Add pages with Cite errors to a tracking category" 2015-10-08 19:40:45 +00:00
eranroz 5d0fb0309b Show an error if a named ref is defined multiple times
Bug: T85386
Change-Id: I6e7a7594628b3e0c09724c11e5d9f650dde25906
2015-09-30 21:27:35 +03:00
Amir E. Aharoni 68304fcacd Add pages with Cite errors to a tracking category
Bug: T104792
Change-Id: I6f8b12788a20480bd8880332238d545ee70a8ef9
2015-09-24 12:16:13 +03:00
James D. Forrester 7f10ca97f1 Remove Special:Cite, now moved to its own repository
Change-Id: I6ae358b6855911016793c3227bfc1c04a8637428
2014-10-28 12:02:21 -07:00
Renamed from i18n/core/en.json (Browse further)