Commit graph

5261 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
Translation updater bot 254951d227 Localisation updates from https://translatewiki.net.
Change-Id: I3868f820121ea735c96c906221974bdcf544084d
2017-03-01 22:21:28 +01:00
Translation updater bot 6a0017a356 Localisation updates from https://translatewiki.net.
Change-Id: I0d29ce305e3b1d495598b9ec190f22bd2dd3127f
2017-02-28 22:52:10 +01:00
Translation updater bot d39ee8806d Localisation updates from https://translatewiki.net.
Change-Id: I3e540c37ae098ed658e10d57606d7b6da325d2cd
2017-02-26 22:27:37 +01:00
Translation updater bot 6bd3c5ecc8 Localisation updates from https://translatewiki.net.
Change-Id: I3756894ba4688349b4584e67e54d118d3e868e96
2017-02-25 22:19:21 +01:00
Translation updater bot 2371fe219e Localisation updates from https://translatewiki.net.
Change-Id: Ib8a49cb7dfc765383e43904c5d790c6c201a11d1
2017-02-24 22:22:40 +01:00
Arlo Breault dff5d42d5f Sync up with Parsoid citeParserTests.txt
This now aligns with Parsoid commit e23a818554548cd922ee262ea1d8da47ea457248

Change-Id: I58155797c8c63b7ef64be74450647059cc5e28ca
2017-02-22 09:22:29 -08:00
Translation updater bot 174a93a4b0 Localisation updates from https://translatewiki.net.
Change-Id: Id99b330d2098e0fc7f05fb92a836d9948bc756a4
2017-02-19 22:24:14 +01:00
Translation updater bot 204b6a7621 Localisation updates from https://translatewiki.net.
Change-Id: Iebe54825250d094a8c6e6c4d2406ff87a1a6b2a0
2017-02-16 22:37:55 +01:00
Translation updater bot cf9b2c9633 Localisation updates from https://translatewiki.net.
Change-Id: Id0249fc01a38184b96f658fe934c5126f639e1dc
2017-02-10 22:19:15 +01:00
Translation updater bot e129c05dba Localisation updates from https://translatewiki.net.
Change-Id: I2edb80594630318bfe5c7683735f052a6d67d266
2017-02-07 22:39:48 +01:00
Translation updater bot 6d169dca22 Localisation updates from https://translatewiki.net.
Change-Id: I7076b3aec1866308c7f51f59f51b6a4482ffe111
2017-02-06 22:26:49 +01:00
Translation updater bot 72b07873f3 Localisation updates from https://translatewiki.net.
Change-Id: I7fd6090b003545d150775092ac8453e062773e83
2017-01-28 22:31:08 +01:00
jenkins-bot ef7c93b3f1 Merge "build: Re-use MessageDirs in banana conf" 2017-01-24 08:25:03 +00:00
Translation updater bot b4441fe5ca Localisation updates from https://translatewiki.net.
Change-Id: Ib7a67a8359810da9775fd5775e7d5b5cb9403106
2017-01-23 22:24:26 +01:00
Ed Sanders 0882a5c2b0 build: Re-use MessageDirs in banana conf
Change-Id: Ifae29b342f8a018e68e28aacfd677d98bcd04b6b
2017-01-23 13:37:48 +00:00
Translation updater bot 3ccaff8cad Localisation updates from https://translatewiki.net.
Change-Id: I8f61e575fbd43840348e8fe70714004d8f274611
2017-01-22 22:20:10 +01:00
Translation updater bot 417d4b3285 Localisation updates from https://translatewiki.net.
Change-Id: Icbdce3f9a4ec9cfcc3dbd0d66054ecf79eabeb1e
2017-01-21 22:20:06 +01:00
Translation updater bot f18107effc Localisation updates from https://translatewiki.net.
Change-Id: I291de1659ce54a9675f693ae74c9124ed8520d65
2017-01-20 09:20:38 +01:00
Fomafix b63685468b Update PHP syntax from array(...) to [...] in comment
In 4bbd2277 only the syntax in the code is updated.

Change-Id: Ib69c913cacef0c90c4766ddbefd0a0b1b38972ee
2017-01-07 10:08:35 +01:00
Translation updater bot e7a2c9c1f9 Localisation updates from https://translatewiki.net.
Change-Id: I095d6fb59a1bed01640503940c4c8f1bcdf48e35
2017-01-04 22:30:04 +01:00
Translation updater bot ae20c91abf Localisation updates from https://translatewiki.net.
Change-Id: I9dfd1d34aed73e88e63094ae450e6640bf66676f
2016-12-28 10:45:06 +01:00
Translation updater bot ab486214d9 Localisation updates from https://translatewiki.net.
Change-Id: I18730d8d3da7f6c572094abcbe1824edccbe9a16
2016-12-26 22:36:07 +01:00
Subramanya Sastry 2368fba08f Escape cite ids with Sanitizer.escapeId
* Without this, refs like <ref name=":0"> won't generate the same
  links that the PHP parser generates.

* Updated an existing test to add the :0 key that require escapeId
  to be encoded properly.

Change-Id: I69e5f16ccf64bd1c9cf05bdea7a379e679d36b1a
2016-12-20 15:07:07 -06:00
Subramanya Sastry 18c965dec0 T102134: Fix cite hrefs to render properly
* With Parsoid's base href pointing to the wiki, plain #-fragment
  links won't resolve properly. Add the page title to the href
  for the links to start resolving properly again.

* Updated parser tests accordingly.

Change-Id: I280c41a0382bd2acd82cc586212695aa3b920171
2016-12-20 15:07:07 -06:00
Translation updater bot 8a7820e865 Localisation updates from https://translatewiki.net.
Change-Id: I00e77ce7ddadbb53c613b8647ec211b122a4239a
2016-12-18 22:12:24 +01:00
Translation updater bot c60fe755ab Localisation updates from https://translatewiki.net.
Change-Id: Ibf7ded64e2f704231a165485fdd90d35626bf8c8
2016-12-17 22:19:56 +01:00
Translation updater bot df3acba441 Localisation updates from https://translatewiki.net.
Change-Id: Idb2226c4d39ea06e3bf3a4b725953396b453be38
2016-12-16 22:13:14 +01:00
Thiemo Mättig d6b1bdeff5 Make properties/methods in Cite private
Change-Id: I4be69a09125a898f7367fa08aa0c7f1a95324b3b
2016-12-15 13:01:03 +00:00
Translation updater bot 8e95eec696 Localisation updates from https://translatewiki.net.
Change-Id: I0b10b05a41602f2b5b21805c7eba4b4efab90ae3
2016-12-14 22:21:10 +01:00
Translation updater bot b9843c74fa Localisation updates from https://translatewiki.net.
Change-Id: Ie577da1b742c285e1d6b9f40fe9c2446854a95ec
2016-12-12 22:21:24 +01:00
jenkins-bot 0b1277434f Merge "T104662: Allow nested ref tags only in templates" 2016-12-12 15:15:10 +00:00
Arlo Breault ea599bb074 Let extensions supply the pp tracing name
* They won't all have tags, like the linter.

Change-Id: Idf309a82bf229219d98d693302c305726fa25fcd
2016-12-09 19:03:35 -08:00
Arlo Breault 439bc3af2d T104662: Allow nested ref tags only in templates
* To support the #tag parser function.

 * An aside, #tag is nutty,

     {{#tag:nowiki|test<ref>haha</ref>}}

Change-Id: I0ab93f6ae959b30a887e967952c904ef0400b189
2016-12-08 10:33:00 -08:00
Ed Sanders 4ff0db7100 Force word break in context preview for long links
Bug: T152680
Change-Id: I50c547703d86def747655567a76702e9bc6610e7
2016-12-08 13:11:18 +00:00
jenkins-bot 4b97528610 Merge "Update for API error i18n" 2016-12-07 07:15:48 +00:00
Ed Sanders 099b8f8153 Use canonical ve.dm.TransactionBuilder.static.newFrom* methods
Change-Id: I9ce6860e19e833b576f7b9fb239b96de394b667c
2016-11-30 19:06:13 +00:00
jenkins-bot 964e8644dc Merge "Re-use target widgets" 2016-11-29 20:50:04 +00:00
Ed Sanders ee40877e83 Re-use target widgets
Depends-On: I5ed0591048a17e84077bde5490e05c0467d0394a
Depends-On: I5decb918f398704d4b6c108a16fbc1cc073ef077
Change-Id: Icba13d84e10cf18a6c68e26448b2efe93b8c42b8
2016-11-29 19:50:09 +00:00
Translation updater bot a21826e1b2 Localisation updates from https://translatewiki.net.
Change-Id: I1cbd2916dfff0b59fca32ec9f8fa06feec718995
2016-11-27 22:26:16 +01:00
Translation updater bot 5b71049da9 Localisation updates from https://translatewiki.net.
Change-Id: Ie5336b0a57050bd7f19a6a7202e3b5e74daf7f59
2016-11-25 22:48:28 +01:00
jenkins-bot 0a6e972a86 Merge "Skip registering RL modules depending on VisualEditor" 2016-11-24 02:45:50 +00:00
Translation updater bot 974771cf4a Localisation updates from https://translatewiki.net.
Change-Id: Ib31e9e9583a63d22bccd6775ee7ffa210c1e0ad1
2016-11-22 23:21:38 +01:00
Translation updater bot 2e027352c4 Localisation updates from https://translatewiki.net.
Change-Id: I90c7105100b3ed48eaebdb524802512136899de8
2016-11-18 22:13:52 +01:00
Translation updater bot ad9c534b7c Localisation updates from https://translatewiki.net.
Change-Id: Iac072928cfa45a973f4e3b21c18fdccead31f312
2016-11-16 22:43:39 +01:00
James D. Forrester 81c99c650c build: Bump eslint-config-wikimedia to v0.3.0 (already passes)
Change-Id: Icc31cf9bf804765c38a1f44e310c9d8dc43f5be1
2016-11-15 16:30:36 -08:00
Ed Sanders ec1cf7c029 Update ComboBoxInputWidget API
Bug: T150555
Change-Id: I29ce9a806cdadf02798fa23de993fcca6ab476f6
2016-11-15 17:28:49 +00:00
Ed Sanders 04fca616e9 eslint: Re-enable wrap-iife and partially enable dot-notation
Change-Id: I8f5e8d7b4547337943ec6df8ffb3d8db9f466217
2016-11-15 12:59:21 +00:00
Subramanya Sastry a16445812f Bump version to 0.6.1 (0.6.0 deb pkg was botched)
Change-Id: I601f31c79d8c2361ca33a6d0e6d6196c1b6c5f0f
2016-11-14 16:44:35 -06:00
Brad Jorsch d51d8b304f Update for API error i18n
See Iae0e2ce3.

Change-Id: I8f214dd95876e1eadc4a0463cba3d5a13d783014
2016-11-14 12:48:23 -05:00