Provide a utility funcition in ve.init.mw.LinkCache to do this.
Also use this in ve.ce.MWTransclusionNode/ve.ui.MWPreviewElement, and
introduce to ve.ce.MWExtenionNode
Bug: T73900
Bug: T153535
Change-Id: Ieb9a0274b8c5ae1932c431546f09d18000fa6dd9
This is a little inelegant, but it works in both CE and transclusion
content.
Bug: T52497
Depends-On: If058843924c3b30c116df2520aef93a004d98a5d
Change-Id: I88d45aad2aaa45e71b433350986b19764603a1f2
The bare minimum of elements that must be present on the page for
VisualEditor to start and mostly work is:
* '#content' to attach our interface (toolbar etc.)
* '#mw-content-text' to replace with the editing surface
* '#ca-edit' to start up the editor
When those elements are missing (and we expect them to be present,
e.g. we're not on a special page), we print a console warning.
For example, VisualEditor now launches on Timeless and CologneBlue.
It does not launch and prints a warning on Modern and Erudite.
(It is actually possible to edit and save pages on CologneBlue,
although various pieces of the interface look funny.)
This does not change which skins we claim to support: these are still
currently only Vector, MonoBook and Apex. But it allows third-party
skin developers to more easily test the editor and fiddle with their
CSS to make it look right.
Bug: T161373
Change-Id: I97c786f3c8c795c238b10bef332a129ea26f86c2
The element has both the class and the id set to 'catlinks'. This is
just for consistency, I have no preference on which to use.
Change-Id: Ic96b0f21fe790d0aa03bfd6366ba246e8493a038
Redirect pages have two extra things not present on normal pages:
* Redirect subtitle: the "Redirect page" shown under the page heading.
* Redirect page content header: the "↳ Foo" at the beginning of content.
Our handling was pretty messy and had some bugs (T161614).
Notable behavior changes:
* Update 'wgIsRedirect' in mw.config after saving the page.
* Use #mw-content-text rather than .mw-jump for inserting the fake .redirectMsg.
.mw-jump is not guaranteed to exist on the page (it's a skin feature).
* Never replace the real .redirectMsg existing on the page, except by the
new HTML after a page is saved. Our fake is separate now.
Bug: T161614
Change-Id: I96a5e45a71bf10bf6a2b501dc0cf81e6c37060ec
To reproduce: start editing a page, turn it into a redirect,
cancel editing and go back to view mode. The "Redirect page"
subtitle under the page title should disappear.
Note that #redirectsub is correctly spelled all lowercase,
unlike #contentSub.
This reverts commit 0e1bc7309b
and fixes the code instead.
Change-Id: Ibacd73122dfec63268a77794bc77c4b88876d3ee
As it happens, #redirectsub is correctly spelled all lowercase,
unlike #contentSub. This line does nothing. We remove #redirectsub
correctly elsewhere; I don't think this was ever meant to be here.
Follows-up 96421b283c.
Change-Id: I3e4c6eb2ff94f363b488477b3ddd248e571e723a
Original title will preserve the case of what the user entered
into the inspector. Noramlized title will remove any unwanted
leading colons from file/category links.
Bug: T118408
Bug: T124410
Bug: T160977
Change-Id: I92ffc19eab4eead0d124e84afc1e5a0a3e535867
Pretty sure this event does nothing for block images, but
if we are going to bind, bind the the ce caption node, not
the ce image node.
Change-Id: I02b5500f381e932efba87d61ccdf668cda377757
Stops us including "[edit]" in the summary when people have marked whole
headings for translation.
Bug: T160911
Change-Id: I906398e6bf45433d904795847f59b5bf0148092f
This gets overridden by "selectorWithoutVariant" and "selectorWithVariant"
in the module definition anyway.
Change-Id: I51b8e76d542058c008d92ce55c7ec6bb66df70b7
Running setNotices( [] ) makes MWNoticesTool run this.destroy() to avoid taking
up extra space in the toolbar when not needed.
Also, make setNotices() bail earlier.
Change-Id: I492fd59a1e15e8f296bf7f03d9b0035c40dafa59
This avoids an OOui deprecation warning for trying to toggle a popup which
isn't connected to anything.
Bug: T160161
Change-Id: I9ad97785f0de4ecf81d189985459689644e25923
These changes allow us to be more aggressive in autolinking ISBNs (no
need anymore to wait for the user to type a space or move their
selection) and more correct in autolinking RFCs and PMIDs (stray
spaces and dashes no longer mess them up).
* ISBN numbers can only be 10 or 13 digits long. We don't need to
handle arbitrary lengths.
* If a number does not begin with 978 or 979, it's the ISBN-10 variant
and we can autolink it as soon as the user types 10 digits.
* If a number begins with 978 or 979, it can be either.
* But if we already have 13 digits typed, autolink immediately.
* Otherwise, use a delayed sequence to see if it ends at 10 digits.
* RFC and PMID numbers can consist only of digits, no optional spaces
or dashes are allowed. Typing a space or dash will immediately
autolink the number.
Bug: T117165
Change-Id: I6a085cd78d910661245a351f3ceb3fabe2f093cf
The trailing space at the end of the regexp is no longer required to
prevent matching (and executing) too soon. We also don't need to know
about trailing punctuation.
However, to prevent the match from ending in the middle of typing, we
have to allow for ' ' and '-' at the end of the match.
Tweaked tests to better match the intent now that a trailing space is
not included, but they pass without changes too, the command is quite
permissive.
Bug: T117165
Depends-On: Ie36046fa43ce49f8a25c99f2de577eb296d68a51
Depends-On: I2af0a738afa43295bf6d7d612cac4349bc6cd20d
Change-Id: I7c28d5c93b1a441387ad05a75846af83d2b21b6a
The floating tooltip breaks inside OOUI dialogs. In the absence
of an upstream fix, just anchor it to the bottom of the textbox.
Bug: T160245
Change-Id: I9055c4e4947f5581605bd490f076415c1edaf8ec
We support all versions of IE that MW supports, so no need
for additional blacklisting.
Bug: T160494
Change-Id: I771459b4d6a0e2d5781a69a905a51323369b3b66
After 79ccfb9372cb57afa569036ef39ead13abfba673, MediaWiki's `<pre>`
tags get rendered as `<pre typeof="mw:Extension/pre">` in Parsoid HTML.
MediaWiki's indent-pre syntax (block indented by a single space) is
still rendered as `<pre>` in Parsoid HTML, however.
Indent-pre is still handled by MWPreformattedNode (no changes).
Introducing MWPreNode, which will handle `<pre>` extension tags,
and MWPreDialog to change its contents (and allow converting
to MWPreformattedNode).
Pieces copied from MWGalleryNode, MWLinkNodeInspector, CommentInspector.
Possible future improvements:
* Add a specific icon for MWPreContextItem
* Avoid API roundtrips for rendering (but rendering wikitext <pre>
is not as simple as it looks)
* Consider a way to insert these other than '<pre' sequence
Bug: T159900
Change-Id: I5bc4ea6e5d893736f65ef0dd43b08c18cb1a1e85
New changes:
1e12d0174 Generalize DiffElement logic (improves lists and tables)
24e0c7a94 Localisation updates from https://translatewiki.net.
32759ae86 Allow variable-length sequences without a fake space terminator, use for autolinking
82c204ba0 QUnit.assert.equalHash: Correctly compare JSON representation
2e5462610 DiffElement: Allow a node change to be an attribute change *and* a linear diff
41134af2b ve.ui.LinkAction: Allow autolinking ranges including trailing spaces again
Local changes:
Updated tests for 32759ae86: the autolinkUrl command no longer expects
trailing whitespace to be included in the range.
Bug: T117165
Bug: T149537
Bug: T158518
Change-Id: I5c2d5b97894fc93f49ce6270a198f3dfdcd09986
Updated tests to stop assuming that MWWikitextStringTransferHandler
always goes through an API request and Parsoid.
Bug: T117165
Change-Id: I24dffaaf3b4051b1b807ec29ac456d24da2f1fe9
A gallery tag is parsed line by line, so captions
(and other image data) should not contain line breaks
Bug: T153373
Change-Id: Ib1d1c18216d07c83b2d4358d2dda71c9d17e3e44
Distinguish between the initial summary state, and a value stored from the
summary when switching modes. This lets us avoid overwriting a stored value
when section-editing, or assuming a stored value after a switch was never
edited.
Bug: T159686
Change-Id: Ie7640538140a14bbafd539b3a45928f5c55cf804
Switching modes recreates the toolbar, so if someone has already edited the
save summary it shouldn't update the initialEditSummary to that.
Bug: T159686
Change-Id: I4109442853916bebae2bce804fcd6777e3eb6d34
The non-FullRestbaseURL branch didn't handle converting the provided wikitext,
causing data loss when switching from source to visual modes.
Bug: T158692
Change-Id: I283afc4be1e322228d6ec572bfa8542ba8fd9ce7
It's actually a bit surprising that the only thing broken by using
OptionWidget instead of MenuOptionWidget is some missing styles.
Change-Id: I3961fedbfc61f2f17d91dc7375d47a3cdff2a257
Switching from visual to source reruns setupUnloadHandlers, which caused an
infinite loop where it thought it was its own fallback pre-existing handler.
Bug: T153346
Change-Id: I8df55a5395ede02fc34ec47a94f2c780dc08595f
It doesn't work, you can't turn a MWMagicLinkNode into text by
clearing its styling. (You can still do that by clicking 'Edit',
'Convert to simple link', 'Clear styling'.)
`clearable = true` was being inherited from ve.ui.LinkContextItem.
Change-Id: Ib40e952554966fb74b3e72662a6e1e44ad748a57
Since December, the handler now expects to be passed the mode we're switching
to. Since we're filtering for just the edit link and not edit source, we can
hardcode 'visual' here.
Bug: T159374
Change-Id: I160045dd59ff1b4c2d180dbbe37280a1839886df
Though neat, this hack to get the internal list doesn't seem to be used
and creates an invalid document (just an internal list with no content,
so the internal list is at the start and the default selection position
is inside it). Instead, use the ve.dm.Document.static.newBlankDocument()
utility function that was made for this use case.
Bug: T153509
Change-Id: Iba5931cb5e3f939a803c1d59fa0d8f30a0513f84
* Ensure DAT styles are fully scoped to DAT instances
* Ensure that generic desktop target rules are in the correct file
* Remove old unused rules
Change-Id: I466a0547ff9a0fa1102aac0b1e501a6ba6863ca3
Pencil is the icon we use for 'edit' elsewhere in the UI.
Use the eye icon for the VE tool to specify 'visual'.
Bug: T116417
Change-Id: I12b6bab2a52758685abde04579b274a32d651174