mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-09-25 03:08:42 +00:00
ve.ui.MWLinkAction: Improve ISBN and RFC/PMID autolinking
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
This commit is contained in:
parent
5afd15b2cc
commit
3d5cedb0ff
|
@ -166,8 +166,17 @@ ve.ui.commandRegistry.register(
|
|||
)
|
||||
);
|
||||
|
||||
// The regexps don't have to be precise; we'll validate the magic
|
||||
// link in #autolinkMagicLink above.
|
||||
ve.ui.sequenceRegistry.register(
|
||||
// This regexp doesn't have to be precise; we'll validate the magic
|
||||
// link in #autolinkMagicLink above.
|
||||
new ve.ui.Sequence( 'autolinkMagicLink', 'autolinkMagicLink', /\b(RFC|PMID|ISBN)\s+[0-9]([- 0-9]*)[0-9Xx][- ]?$/, 0, true, true )
|
||||
new ve.ui.Sequence( 'autolinkMagicLinkIsbn10', 'autolinkMagicLink', /\bISBN\s+(?!97[89])([0-9][ -]?){9}[0-9Xx]$/, 0, true )
|
||||
);
|
||||
ve.ui.sequenceRegistry.register(
|
||||
new ve.ui.Sequence( 'autolinkMagicLinkIsbn13', 'autolinkMagicLink', /\bISBN\s+(97[89])[ -]?([0-9][ -]?){9}[0-9Xx]$/, 0, true )
|
||||
);
|
||||
ve.ui.sequenceRegistry.register(
|
||||
new ve.ui.Sequence( 'autolinkMagicLinkIsbn', 'autolinkMagicLink', /\bISBN\s+(97[89][ -]?)?([0-9][ -]?){9}[0-9Xx]$/, 0, true, true )
|
||||
);
|
||||
ve.ui.sequenceRegistry.register(
|
||||
new ve.ui.Sequence( 'autolinkMagicLinkRfcPmid', 'autolinkMagicLink', /\b(RFC|PMID)\s+[0-9]+$/, 0, true, true )
|
||||
);
|
||||
|
|
Loading…
Reference in a new issue