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
Calling #getItemNode on the un-initalised internalList caused
a tree rebuild of the sub-document.
On a page with 200 references this cuts the time it takes to
render the re-use list from ~2000ms to ~1000ms.
Bug: T134975
Change-Id: I696a965e88338e1bec2a14f61dab158c56728f2e
Leave include as '*' as changing it to an array currently breaks
the wildcard functionality.
Also rewrite the hack slightly so it only modifies the list,
rather than overwriting it.
Bug: T139727
Change-Id: I041bad6346a4f39e967dca8cc610100463be0ded
This shouldn't make a difference for any current implementations
but in the future different surfaces my have different commands.
Change-Id: I383a4a76cda142107da2f8aa1c6a90c4307e3b97
This keeps the insertTransclusionNode method in synchronous mode.
Logically depends on Ibc2fc66e68 but should be merged before it.
Change-Id: Iec17ea65d38fec7ca7ffcf81032c7346635218d9
This is needed when the error appears in an element with
a direction that is different from the UI language.
Change-Id: I583c9cc30f5bec24ab92e97ab938463ea0e45c15
The group picker menu will open momentarily when the input is changed, unless
it's disabled when the change happens. This was mostly visible when selecting
a reference from the "use an existing reference dialog", as a flash of the
menu in the top-left of the screen.
Bug: T125862
Change-Id: Ib6d3715f7d123545ba688bfbe850fe3c26ccb6e1
A reference that has a group name appears as "[group 1]".
Because of the added space in the middle, this can break in the end
of a line. white-space: nowrap prevents it.
Change-Id: Icfbc8b7e37b77b93b621e424d1f4e1759ac644cd
This code has been developed over three years now in the repo of MediaWiki's
integration of VisualEditor. It has grown and developed significantly during
that time, but now is pretty stable. A number of hacks inside the MediaWiki-
VisualEditor code base have been used to prevent this code from being loaded
on wikis where the Cite extension is not deployed, but this state of affairs
is and always was meant to be temporary.
This code is under the MIT licence which is a tad messy, but not impossible.
It's clearly labelled as such. The list of authors has been updated to take
into account the influx of new functionality.
Bug: T41621
Bug: T104928
Change-Id: I39936ed83d5a60471a0a75da753f498e80aef234
Update grunt-banana-checker to 0.4.0
Update grunt-jsonlint to 1.0.6
Update grunt-jscs to 2.5.0
Also support looking into sub folders for jshint and jscs.
Also fix some js code so
Replace
} ) ( mw, jQuery );
with
}( mediaWiki, jQuery ) );
Also remove a blank message that should not be there in gu.json
Also remove two blank messages in tl.json.
Change-Id: Ib8390de6fd6adfc4a9ad22c48c7872aac332d4ae
I think this change causes too many issues on non-LTR wikis
(see the associated tasks) to be acceptable in the current form.
Maybe it should be redone to apply to RTL text only if it's
worth it there (apologies, but I don't quite understand the issue).
This reverts commit e9c1521fca
and commit 59ef3c8678 (which was
the previous attempt to fix it and caused different issues).
Bug: T108493
Bug: T110057
Change-Id: I205400c59a342dcc4cdf89791bc1c761805cd2a8
On I16a701f3b962b5e7f63554be2f28888a938548b0 we incorporated
unicode-bidi: embed; instead isolate but it caused regression on
* https://fa.wikipedia.org/?oldid=15565588
* https://fa.wikipedia.org/?oldid=15552160
where references ([۱]) comes before number with Persian digits.
Using unicode-bidi: isolate; is the clean solution for fixing this
however due to Firefox bug https://bugzilla.mozilla.org/1185987
it is not going to fix the regression on Firefox so using
display: inline-block; in hope to get same effect with Chrome
on unicode-bidi: isolate; but also support IE and older browsers.
Change-Id: I1d62c1fb282acc72ab20d71cc8cd21e3e1d71493
This happens while editing in VisualEditor and ContentTranslation.
This is done by adding unicode-bidi: embed to .mw-ref.
Bug: T105605
Change-Id: I1d03063cad1fa0f2ae8cc792aaaefc715066f17e
* Add a new module ext.cite.style to load the new CSS.
* Add a ResourceLoaderFileModule that adds the correct CSS file
depending on the content language, so that the visual style of
citations can be changed per-language.
The main ext.cite.style.css file renders similarly to MediaWiki's
default Cite style. Also, an example CSS for Farsi numbering is
included.
Bug: T86782
Change-Id: I487095df8a7c4241a14f7b4480360f6774130bec
Move the JS which is purely for accessibility purposes into a separate
JS RL module named ext.cite.a11y. Move all pure CSS, which is not dependant
on accompanying JS into a separate ext.cite.styles module
Bug: T101559
Change-Id: I58adcfbcf9af2bb3b6d5dabb6c38c42af78e0416
Highlight the target reference when the user clicks a reference link,
and also highlight the note in the text when he clicks the backlink.
This is done using the :target selector and a light blue background-color.
The color (and the rest of the code) are from English Wikipedia, from where
it has been copied to many other wikis, so the feature itself and especially
the color seem to be agreed on.
Browsers that don't support the :target selector (notably Internet Explorer 8
and below) will just ignore the new style and fall back to current behavior.
Wikis that have added this code to their common.css can remove it, but
of course nothing will break when they keep the duplicate code.
Bug: T10303
Change-Id: I5775daf6934516ce9c98841399e5a358195c1374
Steps to test the change:
* Open a random page in browser.
* Select all or a part of the page.
* Copy the selection to clipboard.
* Open a word processor like LibreOffice Writer.
* Paste the content of the clipboard.
Change-Id: Ibae4292b5dd8cc02a769e85adfea991d8d6ceb59
Had to do that in JavaScript as doing it server-side would have
made refactoring large parts of the extension necessary.
Bug: 38141
Change-Id: I60ecd2fc0edf2aee89974d8069cc0b075cda3f93
Moved the scripts and the CSS into the modules folder directly
(like almost all other extensions do), added a .jshintrc to not have
jenkins shout at this change and minor stuff.
After this change Cite will no longer work with anything older than
PHP 5.3!
Change-Id: I1c87af794f2a9894fb0d82a5bd97bd2182f028e1
This is a quick-fix to support proper rendering of <sup>[1]</sup> elements
when the sentence contains a right-to-left word.
Amended: Changed from working through jQuery 'wrap' to CSS unicode-bidi.
Amended: Dos2Unix conversion to get rid of pesky hidden characters, also
corrected all of Amire80's comments.
Bug: 36032
Change-Id: If85efe5ff1e0a3c57ee2523656702db89df07145
* Plain text files deleted, content moved to SpecialCite.i18n.php
* Code for c/b still in place
* CSS classes added and styling moved to a new CSS file for the RL
Shortly discussed with Siebrand on mediawiki-i18n-l
Change-Id: Ie8e35cda1492bf1cab8f45ce618bac8402678879