Skip to content

Commit

Permalink
fix(MediaWiki): HTML entity not fragment
Browse files Browse the repository at this point in the history
  • Loading branch information
bhsd-harry committed Aug 24, 2024
1 parent afe44d8 commit fc43e71
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 8 deletions.
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
## 2.17.4

*2024-08-20*
*2024-08-24*

**Added**

- [Autocompletion](./README.md#autocompletion) for the `group` attribute of `<ref>` and `<references>` in the MediaWiki mode

**Fixed**

- `#` in an HTML entity should not be regarded as link fragment in the MediaWiki mode

## 2.17.3

*2024-08-17*
Expand Down
2 changes: 1 addition & 1 deletion dist/main.min.js

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions src/token.ts
Original file line number Diff line number Diff line change
Expand Up @@ -830,7 +830,7 @@ export class MediaWiki {
@getTokenizer
inLink(file: boolean, section?: boolean): Tokenizer {
const style = section ? tokens[file ? 'error' : 'linkToSection'] : `${tokens.linkPageName} ${tokens.pageName}`,
re = section ? /^(?:[^|<[\]{}]|<(?!!--|\/?[a-z]))+/iu : /^[^#|<>[\]{}]+/u;
re = section ? /^(?:[^|<[\]{}]|<(?!!--|\/?[a-z]))+/iu : /^(?:&#(?:\d+|x[a-f\d]+);|[^#|<>[\]{}])+/iu;
let lt: number | undefined;
return (stream, state) => {
if (stream.sol() || lt && stream.pos > lt || stream.match(/^\s*\]\]/u)) {
Expand Down Expand Up @@ -1410,7 +1410,7 @@ export class MediaWiki {
inTemplatePageName(haveEaten?: boolean, anchor?: boolean): Tokenizer {
const style = anchor ? tokens.error : `${tokens.templateName} ${tokens.pageName}`,
chars = '{}<',
re = anchor ? this.templateRegex : /^[^|{}<>[\]#]+/u;
re = anchor ? this.templateRegex : /^(?:&#(?:\d+|x[a-f\d]+);|[^|{}<>[\]#])+/iu;
return (stream, state) => {
const sol = stream.sol(),
space = stream.eatSpace();
Expand Down Expand Up @@ -1782,7 +1782,7 @@ export class MediaWiki {
inGallery(section?: boolean): Tokenizer {
const style = section ? tokens.error : `${tokens.linkPageName} ${tokens.pageName}`,
regex = section ? /^(?:[[}\]]|\{(?!\{))+/u : /^(?:[>[}\]]|\{(?!\{)|<(?!!--))+/u,
re = section ? /^(?:[^|<[\]{}]|<(?!!--))+/u : /^[^#|<>[\]{}]+/u;
re = section ? /^(?:[^|<[\]{}]|<(?!!--))+/u : /^(?:&#(?:\d+|x[a-f\d]+);|[^#|<>[\]{}])+/u;
return (stream, state) => {
const space = stream.eatSpace();
if (!section && stream.match(/^#\s*/u)) {
Expand Down
6 changes: 3 additions & 3 deletions test/parserTests.json
Original file line number Diff line number Diff line change
Expand Up @@ -635,7 +635,7 @@
{
"desc": "T2337: Escaped self-links should be bold",
"wikitext": "[[Bu&#103;462]] [[Bug462]]",
"parsed": "<link-ground link-bracket>[[</><link-ground link-pagename pagename>Bu&amp;</><link-ground link-tosection>#103;462</><link-ground link-bracket>]]</> <link-ground link-bracket>[[</><link-ground link-pagename pagename>Bug462</><link-ground link-bracket>]]</>"
"parsed": "<link-ground link-bracket>[[</><link-ground link-pagename pagename>Bu&amp;#103;462</><link-ground link-bracket>]]</> <link-ground link-bracket>[[</><link-ground link-pagename pagename>Bug462</><link-ground link-bracket>]]</>"
},
{
"desc": "Self-link to section should not be bold",
Expand Down Expand Up @@ -2375,7 +2375,7 @@
{
"desc": "(T21451) Links should refer to the normalized form.",
"wikitext": "[[&#xFB2E;]]\n[[&#x5d0;&#x5b7;]]\n[[&#x5d0;ַ]]\n[[א&#x5b7;]]\n[[אַ]]",
"parsed": "<link-ground link-bracket>[[</><link-ground link-pagename pagename>&amp;</><link-ground link-tosection>#xFB2E;</><link-ground link-bracket>]][[</><link-ground link-pagename pagename>&amp;</><link-ground link-tosection>#x5d0;&amp;#x5b7;</><link-ground link-bracket>]][[</><link-ground link-pagename pagename>&amp;</><link-ground link-tosection>#x5d0;ַ</><link-ground link-bracket>]][[</><link-ground link-pagename pagename>א&amp;</><link-ground link-tosection>#x5b7;</><link-ground link-bracket>]][[</><link-ground link-pagename pagename>אַ</><link-ground link-bracket>]]</>"
"parsed": "<link-ground link-bracket>[[</><link-ground link-pagename pagename>&amp;#xFB2E;</><link-ground link-bracket>]][[</><link-ground link-pagename pagename>&amp;#x5d0;&amp;#x5b7;</><link-ground link-bracket>]][[</><link-ground link-pagename pagename>&amp;#x5d0;ַ</><link-ground link-bracket>]][[</><link-ground link-pagename pagename>א&amp;#x5b7;</><link-ground link-bracket>]][[</><link-ground link-pagename pagename>אַ</><link-ground link-bracket>]]</>"
},
{
"desc": "Empty attribute crash test (T4067)",
Expand Down Expand Up @@ -9771,7 +9771,7 @@
{
"desc": "Entities in media filenames",
"wikitext": "[[File:Hi&#45;ho.jpg|thumb]]\n\n<gallery>\nHi&#45;ho.jpg\nFile:Hi&#45;ho.jpg\n</gallery>",
"parsed": "<link-ground link-bracket>[[</><link-ground link-pagename pagename>File:Hi&amp;</><link-ground error>#45;ho.jpg</><link-ground link-delimiter>|</><link-ground image-parameter>thumb</><link-ground link-bracket>]]</><exttag-bracket>&lt;</><exttag-name>gallery</><exttag-bracket>&gt</><tag-gallery link-pagename pagename>Hi&amp;</><tag-gallery error>#45;ho.jpg</><tag-gallery link-pagename pagename>File:Hi&amp;</><tag-gallery error>#45;ho.jpg</><exttag-bracket>&lt;/</><exttag-name>gallery</><exttag-bracket>&gt</>"
"parsed": "<link-ground link-bracket>[[</><link-ground link-pagename pagename>File:Hi&amp;#45;ho.jpg</><link-ground link-delimiter>|</><link-ground image-parameter>thumb</><link-ground link-bracket>]]</><exttag-bracket>&lt;</><exttag-name>gallery</><exttag-bracket>&gt</><tag-gallery link-pagename pagename>Hi&amp;#45;ho.jpgFile:Hi&amp;#45;ho.jpg</><exttag-bracket>&lt;/</><exttag-name>gallery</><exttag-bracket>&gt</>"
},
{
"desc": "Inline gallery attributes are appended to the defaults",
Expand Down

0 comments on commit fc43e71

Please sign in to comment.