* Add a file-level comment in the cite tests file.
* Document the CSS rule that hides the Parsoid HTML.
Change-Id: I27dc6d5f6ab09b67e28ce88a2e13bf2d1a13e9c0
This is a prerequisite before any work related to T52568 (being able
to manually name references in VisualEditor) can start.
Why these names should not be hidden:
* We don't know if the name is actually part of the auto-generated
sequence in the current article or copy-pasted from somewhere else.
* Manually given names that start with a colon are currently hidden
even if they are unrelated to the auto-generated sequence.
* The information is highly relevant for users switching between VE
and wikitext. Especially when a reference is used multiple times
the relevant wikitext can be as short as <ref name=":0" />. The
literally only information in this case is the number.
Since these numbers are still more technical than anything we make
them very dim to emphasize the contrast to non-numeric names.
Bug: T52568
Bug: T92432
Change-Id: I65cb6998cb5f8659cd9043f3d4aaeac1c5f69da8
This original use case at T187495 is for he.wiki, where it is likely
that all the references are defined in templates, so the model
will always be empty, even though $originalRefList is populated.
Change-Id: Ia2785a20bf82ab97466276a57936bc9299e1cabe
I copied these from the visualdiffing repo, but I may have
over-generalized these from some wiki that might have customized
this to all wikis. enwiki doesn't use this, for example.
In any case, this styling should be left to individual wikis.
similar to the argument in 8412fb64 where I removed CSS rules
for standard refgroups as overreach.
Change-Id: Ie37408d7a92af88e39e345eb464c6fa2210d57e3
* This ensures that Safari can also render these counter styles
since Safari doesn't support @counter-style CSS rules yet.
Change-Id: Ib104a6d22197037bae0c58766d3363176022add3
* This has always been a bug but was hidden because enwiki
uses lower-alpha custom rendering and so we never noticed it
when we tested this on enwiki.
* Fixing the default gets rid of the need to override this for
every single language that defined a non-decimal counter.
* This also eliminates the need for some rules where the overrides
were identical to the baseline definitions (counter-type is
decimal and separator is '.').
Bug: T86782
Bug: T156350
Change-Id: I51f8a06c80bb897b66a0978b117fbc5560efd6cb
* This was obviously a mistake for 'decimal' since the previous CSS
would have rendered refs with the "decimal" group and refs without
any group identically making it hard to distinguish between the
two ref types.
* But, not all wikis define custom messages for these "standard"
ref groups. So, by providing default rendering for these, we would
need custom overrides for wikis that didn't define them (the vast
majority). Instead, for wikis that define them, define wiki-specific
CSS for these groups that can be added to their Common.css pages.
* Discovered as I set about trying to update CSS on wikis and my
test wikitext with different groups were rendering decimal groups
differently and I had no custom CSS for it anywhere.
Bug: T86782
Change-Id: I5598580e96eead94bb09574b2af5cef3ce4241c5
In both cases:
(a) ref counter display for .mw-ref sups
(b) backlink labels in the references section for multiple named refs
the a-tags are direct children of the <sup>/<span> tag.
The child selectors are more precise. I am not really sure why we
went with descendant selectors in the first place.
Bug: T156350
Change-Id: If5be7cd14de40c2372f27ae5e2f32671c0a4e20c
* Turned out there were 2 counters defined on references li nodes.
* One was added as part of the extends functionality added by WMDE's
book referenceing project.
* The other one was added as part of Parsoid's Cite CSS work.
* Since the counter increments were defined separately and applied
to the same node, only one of the increments would apply.
This breaks counter rendering on wikis where custom wiki-specific
rules aren't defined in that wiki's Mediawiki:Common.css
* Discovered after running visual diff tests after ad919e37
was deployed.
Change-Id: I826faac3564d63b8a4fbd80015fd5cc8f0069b7a
Lower-alpha is enwiki/community specific preference and as such should
be defined in Common.css of that wiki.
Bug: T326467
Change-Id: I1c254031185b130de90fad2410a21533e8c3ba96
Signed-off-by: eranroz <eranroz89@gmail.com>
* These files were generated with the script in
I3623e42d4cad7975813892a8f0f7765b74a638c5
* These styles mimic the behavior of Language::formatNumNoSeparators
and Language::localizeSeparators used by a couple of methods.
ReferencesFormatter:referencesFormatEntryNumericBacklinkLabel
calls ReferenceMessageLocalizer::localizeDigits which calls
that core Language method.
FootnoteMarkFormatter::linkRef calls localizeDigits as well.
- '.reference a*' CSS rules mimic linkRef localization
- 'span[rel="mw:referencedBy" ]*' rule mimics localization
of referencesFormatEntryNumericBacklinkLabel
* Overrode all hand-crafted language CSS files from previous
patches. The content of some of those hand-crafted CSS files
will end up in those wikipedia's Common.css -- specifically
for es, fr, sv wikipedias.
sv and es have non-canonical formatting strings that aren't
handled by the script right now and so leaving them behind.
I need to look at fr output more carefully, so leaving that
behind as well. But the generated ones are more accurate when
combined with the wiki-specific CSS files genreated by the other
script that processes site messages.
* Some files could potentially be removed by looking at
language fallback chains, but the redundancy is not a
problem for now.
* Tweak the resource loader script to use "_" instead of "-"
when looking for a resource file.
Bug: T156350
Change-Id: I000b4538bf2be681b85df5813efed083458a4281
* The default formatting for linkbacks for multiple named refs is
determined by the "cite_references_link_many_format" message.
It is only defined in en.json as "<sup>[[$1|$2]]</sup>". $2 is
the output of referencesFormatEntryNumericBacklinkLabel.
So, change the default Parsoid CSS rule to match that.
* But, since we have shipped Parsoid CSS all this while with the enwiki
default, temporarily add "ext.cite.style.en.json" with that enwiki
default so that on deploy, enwiki citations in VE continue to display
as before.
Change-Id: I6f4b0e25189284ad0950977752739e7dc2951fec
When these styles are loaded on a normal MediaWiki page containing
output from the old parser, they cause references to be duplicated.
Use .mw-ref for now, which is only present in Parsoid output.
This partially reverts d6705eb3f8.
Bug: T323343
Change-Id: I6f2d43a060bea7aa175bed80f1be2c3d8a4924b0
Parsoid now uses <sup> tags instead of <span>.
We already changed it in DM HTML a long time ago
(see ve.dm.MWReferenceNode.static.toDomElements).
Bug: T323343
Change-Id: If04a8bd36e0bb0c31e5f60ae54cb54f13fa65720
* Some wikis need a X.Y style numbering where X is the
counter for the reference number in the list (mw-references),
and Y is the named-ref counter (mw-ref-linkback).
* Rather than have the mw-references counter be defined for
specific languages, it is useful to have defined for all
wikis and use it where needed.
* Not sure why the ol.mw-references reset the mw-ref-linkback
counter. It needed to be reset for every item.
* While at it, made a couple CSS rules in kn and fa be more
specific so it is clearly what they are used for.
Change-Id: I6dd35303f134cc4996e134867ecc2c0db7a5411f
* The default separator (' ') should be set up as an :after selector
and individiual wikis that define the _many_sep and/or _many_and
messages can override this appropriately.
* Update frwiki overrides accordingly. It has an additional <sup>
in the Cite_references_link_many message. frwiki also defines the
Cite_references_link_many_and message.
Change-Id: Ia9ce6ac8eaa5b8386d4a586c620959465da73ef1
* As part of T265930, in order to reduce the CSS rules that needed
to be added, we started using the .reference class that the
original Cite implementation uses.
* Let us migrate styles to using that original class as well.
* Since Parsoid emits a <sup>, we no longer need some of the
CSS rules on .reference. With the class name change, the
other rules are duplicates since we inherit the rules from
ext.cite.styles.css. This effectively eliminated all CSS
rules for ".reference" from ext.cite.style.css
* Admins on wikis will get the following guidance:
- where similar styles apply to legacy output and Parsoid output,
use the .reference class in Commons.css
- where specific styles apply to Parsoid output but not legacy,
use the .mw-ref class in Commons.css
* Once we have fully migrated all wikis to Parsoid output, we can
migrate all the ".mw-ref" rules to ".reference". We then stop
emitting the ".mw-ref" class in Parsoid output.
Change-Id: I5a8c540dc5b045ffff8c280262595f5281cd167d
* This patch adds styles for fr, kn, nb as an experiment.
Newer patches will add for other languages.
* These styles are based on wikipedia rendering and other
projects in these languages may need to add overrides in
their Mediawiki:Common.css page.
Bug: T156350
Change-Id: If0d78e0fd4174c0563cb4b98d8c5efe9a1428673
* Most wikis seem to either use lower-alpha or seem to use
use language-specific custom numbers. decimal usage is lower
and is better used as CSS override on those wikis.
Change-Id: I3e4c3e7b96ab5a9704fe700f62154e51930c975a
This patch is probably not necessary per se, because Cite creates and
controls the mw:referencedBy rel attributes, but it popped up in my code
search, it is technically more correct and it doesn't hurt.
Bug: T315209
Change-Id: Ie796c8a69988c6a546a15d998028c0e6f4c5b2e9
Since the sidebar is now necessary we do not need the overwrite of autoExpandSidebar anymore.
Bug: T313704
Change-Id: I922f951a9eca31a90b5368118629b8c27dea67a5
Generating the preview from the model is much slower and not
required in this context.
Bug: T310318
Change-Id: I73ab222c268939eb542aaae8b529446eae45abc7
Instead of relying on these classes always being descendants
of MWReferenceContextItem (which requires downstreams hacks
in Citoid).
Bug: T310290
Depends-On: I72daa1c5d2490c71591658f186c089ab899b5683
Change-Id: Idbd475a68efd1aff14217de3a05fa3dedc744487
It was originally added in I661493ab2f in 2013, to hide errors that
would appear when templates containing re-uses of references were
previewed separately from the rest of the page.
It has been made unnecessary when VisualEditor was changed to render
wikitext fragments (such as previewing templates) using Parsoid rather
than legacy parser, in 2014: I8a61d2fab8.
However it wasn't removed then, and then Ide82c96db4 changed the
selector and made it more difficult to understand its purpose (and
caused T301845, seven years later), and then Iba0f25b3eb / I39936ed83d
moved it to this repo in 2016, and then everyone forgot about it.
Bug: T53141
Bug: T301845
Change-Id: I7ac5ed6544575877fe1b6f09951e58b35df9648d
This is a bit of an abuse of the originalDomElementsHash property.
In future we could add a 'uniqueId' attribute, but this would need
to be ignored in a few places in core.
Bug: T299378
Change-Id: I7d1eb362aeb74ba93f5225330226a95535746b92
* Remove the overhead of serializing and then re-parsing client-side,
instead assign it directly as native object literal.
* Move code for array slicing to PHP.
Change-Id: Iedcc8d57d3bddd3fa32a78b4e7ecc25615d94277
The server always defines this message as `cite-tool-definition.json`
in CiteVisualEditorModule.php, including a transparent fallback that
defines it with the content of `visualeditor-cite-tool-definition.json`.
Change-Id: I27426ed1947c1665e5284e64ec1946b1abeff7d1
In Ifb0ba3caf8d we removed this reference equality check and replaced
it with a deep object comparison, however due to the fact that
hashes for MWReferenceNodes were simplified in I8c26686d7b to
improve visual diffs, this resulted in a overly simplified comparison
that couldn't distinguish references with the same "name".
Instead do a deep object comparions of the standard node hash object.
Tests added in Ia0bbd40528 assert that this doesn't result in the
regression that caused T296044.
Bug: T296086
Change-Id: I7b37fb54e14bfe28a07f722a2c45fd4e4a2d44f2
In our first case we have a reference re-used before it
is defined, but that doesn't trigger the bug that caused
T296044.
Change-Id: Ia0bbd40528228275f0a978a0a459388a04ea2e79
Previously we checked the elements were reference-equal
which is fragile and breaks when linear data freezing is
enabled in debug mode.
Change-Id: Ifb0ba3caf8d3e5a67c9694358cac12cc412fe723