mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-11-15 10:35:48 +00:00
Fix for Bug 37913
* Strips the first paragraph tag in a list item or table cell context if there are no attributes on it and stx:html is not set Change-Id: I74988645fe505c662f86488e32d0f11d464ffe41
This commit is contained in:
parent
604aae2f3f
commit
166e7a75c9
|
@ -228,13 +228,14 @@ var id = function(v) {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
WSP._listHandler = function( handler, bullet, state, token ) {
|
function isListItem(token) {
|
||||||
function isListItem(token) {
|
|
||||||
if (token.constructor !== TagTk) return false;
|
if (token.constructor !== TagTk) return false;
|
||||||
|
|
||||||
var tokenName = token.name;
|
var tokenName = token.name;
|
||||||
return (tokenName === 'li' || tokenName === 'dt' || tokenName === 'dd');
|
return (tokenName === 'li' || tokenName === 'dt' || tokenName === 'dd');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WSP._listHandler = function( handler, bullet, state, token ) {
|
||||||
if ( state.singleLineMode ) {
|
if ( state.singleLineMode ) {
|
||||||
state.singleLineMode--;
|
state.singleLineMode--;
|
||||||
}
|
}
|
||||||
|
@ -636,9 +637,22 @@ WSP.tagHandlers = {
|
||||||
},
|
},
|
||||||
p: {
|
p: {
|
||||||
make: function(state, token) {
|
make: function(state, token) {
|
||||||
|
// "stx": "html" tags never get here
|
||||||
// Special case handling in a list context
|
// Special case handling in a list context
|
||||||
// VE embeds list content in paragraph tags
|
// VE embeds list content in paragraph tags.
|
||||||
|
//
|
||||||
|
// SSS FIXME: This will *NOT* work if the list item has nested paragraph tags!
|
||||||
|
var prevToken = state.prevToken;
|
||||||
|
if ( token.attribs.length === 0
|
||||||
|
&& ( (state.listStack.length > 0 && isListItem(prevToken))
|
||||||
|
|| (prevToken.constructor === TagTk && prevToken.name === 'td')
|
||||||
|
|| (state.ignorePTag && token.constructor === EndTagTk)))
|
||||||
|
{
|
||||||
|
state.ignorePTag = !state.ignorePTag;
|
||||||
|
return { start: { ignore: true }, end: { ignore: true } };
|
||||||
|
} else {
|
||||||
return state.singleLineMode ? WSP.defaultHTMLTagHandler : this;
|
return state.singleLineMode ? WSP.defaultHTMLTagHandler : this;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
start: {
|
start: {
|
||||||
startsNewline : true,
|
startsNewline : true,
|
||||||
|
|
Loading…
Reference in a new issue