@bhsd/codemirror-mediawiki 3.6.4 → 3.6.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/codemirror.d.ts +1 -0
- package/dist/codemirror.js +3 -2
- package/dist/color.js +1 -1
- package/dist/fold.d.ts +1 -1
- package/dist/lua.js +2 -0
- package/dist/main.min.js +18 -18
- package/dist/mediawiki.js +2 -1
- package/dist/mw.min.js +26 -26
- package/dist/mwConfig.js +2 -10
- package/dist/static.js +1 -1
- package/dist/statusBar.js +1 -1
- package/dist/token.d.ts +2 -1
- package/dist/token.js +19 -13
- package/dist/wiki.min.js +22 -22
- package/i18n/en.json +1 -1
- package/i18n/zh-hans.json +1 -1
- package/i18n/zh-hant.json +1 -1
- package/package.json +18 -16
package/dist/mwConfig.js
CHANGED
|
@@ -4,11 +4,6 @@ var getObject = (key) => JSON.parse(String(localStorage.getItem(key)));
|
|
|
4
4
|
var setObject = (key, value) => {
|
|
5
5
|
localStorage.setItem(key, JSON.stringify(value));
|
|
6
6
|
};
|
|
7
|
-
var parseVersion = (version) => version.split(".", 3).map(Number);
|
|
8
|
-
var compareVersion = (version, baseVersion) => {
|
|
9
|
-
const [major, minor] = parseVersion(version), [baseMajor, baseMinor] = parseVersion(baseVersion);
|
|
10
|
-
return major > baseMajor || major === baseMajor && minor >= baseMinor;
|
|
11
|
-
};
|
|
12
7
|
|
|
13
8
|
// ../cm-util/dist/index.mjs
|
|
14
9
|
var otherParserFunctions = /* @__PURE__ */ new Set(["msg", "raw", "subst", "safesubst"]);
|
|
@@ -113,7 +108,7 @@ var getStaticMwConfig = ({
|
|
|
113
108
|
...p0,
|
|
114
109
|
...Object.fromEntries(p2.flat().map((s) => [s, s]))
|
|
115
110
|
},
|
|
116
|
-
|
|
111
|
+
{ ...p1 }
|
|
117
112
|
],
|
|
118
113
|
urlProtocols: `${protocol}|//`,
|
|
119
114
|
nsid,
|
|
@@ -209,7 +204,7 @@ var getParserConfig2 = (minConfig, mwConfig) => {
|
|
|
209
204
|
if (config) {
|
|
210
205
|
return config;
|
|
211
206
|
}
|
|
212
|
-
const { nsid, variants, functionSynonyms, img } = mwConfig, [insensitive
|
|
207
|
+
const { nsid, variants, functionSynonyms, img } = mwConfig, [insensitive] = functionSynonyms;
|
|
213
208
|
config = {
|
|
214
209
|
...getParserConfig(minConfig, mwConfig),
|
|
215
210
|
namespaces: mw.config.get("wgFormattedNamespaces"),
|
|
@@ -225,9 +220,6 @@ var getParserConfig2 = (minConfig, mwConfig) => {
|
|
|
225
220
|
config.parserFunction[0][`#${key}`] = val;
|
|
226
221
|
}
|
|
227
222
|
}
|
|
228
|
-
if (typeof wikiparse !== "object" || !compareVersion(wikiparse.version, "1.15") || Object.values(sensitive).includes(true)) {
|
|
229
|
-
config.parserFunction[1] = Object.keys(config.parserFunction[1]);
|
|
230
|
-
}
|
|
231
223
|
for (const [key, val] of Object.entries(img)) {
|
|
232
224
|
config.img[key] = val.slice(4).replace(/_/gu, "-");
|
|
233
225
|
}
|
package/dist/static.js
CHANGED
|
@@ -35,7 +35,7 @@ export const getStaticMwConfig = ({ variable, parserFunction: [p0, p1, ...p2], p
|
|
|
35
35
|
...p0,
|
|
36
36
|
...Object.fromEntries(p2.flat().map(s => [s, s])),
|
|
37
37
|
},
|
|
38
|
-
|
|
38
|
+
{ ...p1 },
|
|
39
39
|
],
|
|
40
40
|
urlProtocols: `${protocol}|//`,
|
|
41
41
|
nsid,
|
package/dist/statusBar.js
CHANGED
|
@@ -66,7 +66,7 @@ const updateMenu = (cm, allDiagnostics, main, classList, optionAll, menu, fixer)
|
|
|
66
66
|
if (menu) {
|
|
67
67
|
const actionable = menuRegistry.filter(({ name, isActionable }) => cm.hasPreference(name) && isActionable(cm)), fixable = new Set(fixer && getDiagnostics(allDiagnostics, main).filter(({ actions }) => actions?.some(({ name }) => name === 'fix'
|
|
68
68
|
|| name !== 'Fix: Stylelint' && name.startsWith('Fix:'))).map(({ message }) => / \(([^()]+)\)$/u.exec(message)?.[1])
|
|
69
|
-
.filter(
|
|
69
|
+
.filter(message => message !== undefined));
|
|
70
70
|
if (actionable.length === 0 && fixable.size === 0) {
|
|
71
71
|
toggleClass(classList, false);
|
|
72
72
|
return;
|
package/dist/token.d.ts
CHANGED
|
@@ -81,7 +81,8 @@ declare class MediaWikiData {
|
|
|
81
81
|
firstMultiLetterWord: number | null;
|
|
82
82
|
firstSpace: number | null;
|
|
83
83
|
readonly tags: string[];
|
|
84
|
-
|
|
84
|
+
readonly urlProtocols: RegExp;
|
|
85
|
+
constructor(tags: string[], urlProtocols: string);
|
|
85
86
|
}
|
|
86
87
|
/** Adapted from the original CodeMirror 5 stream parser by Pavel Astakhov */
|
|
87
88
|
export declare class MediaWiki {
|
package/dist/token.js
CHANGED
|
@@ -44,8 +44,9 @@ import { decodeHTML } from '@bhsd/browser';
|
|
|
44
44
|
import { otherParserFunctions } from '@bhsd/cm-util';
|
|
45
45
|
import { htmlTags, voidHtmlTags, selfClosingTags, tokenTable, tokens } from './config';
|
|
46
46
|
class MediaWikiData {
|
|
47
|
-
constructor(tags) {
|
|
47
|
+
constructor(tags, urlProtocols) {
|
|
48
48
|
this.tags = tags.includes('translate') ? tags.filter(tag => tag !== 'tvar') : tags;
|
|
49
|
+
this.urlProtocols = new RegExp(String.raw `^(${this.tags.includes('tvar') ? '<tvar name=[^>]+>' : ''})?${urlProtocols}`, 'iu');
|
|
49
50
|
this.firstSingleLetterWord = null;
|
|
50
51
|
this.firstMultiLetterWord = null;
|
|
51
52
|
this.firstSpace = null;
|
|
@@ -84,7 +85,7 @@ const simpleToken = (stream, state) => {
|
|
|
84
85
|
const style = state.tokenize(stream, state);
|
|
85
86
|
return Array.isArray(style) ? style[0] : style;
|
|
86
87
|
};
|
|
87
|
-
const startState = (tokenize, tags, sof = false) => ({
|
|
88
|
+
const startState = (tokenize, tags, urlProtocols, sof = false) => ({
|
|
88
89
|
tokenize,
|
|
89
90
|
stack: [],
|
|
90
91
|
inHtmlTag: [],
|
|
@@ -103,7 +104,7 @@ const startState = (tokenize, tags, sof = false) => ({
|
|
|
103
104
|
sof,
|
|
104
105
|
redirect: false,
|
|
105
106
|
imgLink: false,
|
|
106
|
-
data: new MediaWikiData(tags),
|
|
107
|
+
data: new MediaWikiData(tags, `(${urlProtocols.source.slice(4)}`),
|
|
107
108
|
});
|
|
108
109
|
/**
|
|
109
110
|
* 复制 StreamParser 状态
|
|
@@ -732,10 +733,15 @@ let MediaWiki = (() => {
|
|
|
732
733
|
}
|
|
733
734
|
}
|
|
734
735
|
else {
|
|
735
|
-
const mt = stream.match(
|
|
736
|
+
const mt = stream.match(state.data.urlProtocols, false);
|
|
736
737
|
if (mt) {
|
|
737
738
|
state.nExtLink++;
|
|
738
|
-
|
|
739
|
+
if (mt[1]) {
|
|
740
|
+
chain(state, this.inChars('<', 'extTagBracket'), this.eatTagName('tvar'), this.inExternalLink(true));
|
|
741
|
+
}
|
|
742
|
+
else {
|
|
743
|
+
chain(state, this.eatExternalLinkProtocol(mt[2], false));
|
|
744
|
+
}
|
|
739
745
|
return makeLocalTagStyle('extLinkBracket', state);
|
|
740
746
|
}
|
|
741
747
|
}
|
|
@@ -1697,7 +1703,7 @@ let MediaWiki = (() => {
|
|
|
1697
1703
|
*/
|
|
1698
1704
|
mediawiki(tags) {
|
|
1699
1705
|
return {
|
|
1700
|
-
startState: () => startState(this.eatWikiText(''), tags ?? this.tags, tags === undefined),
|
|
1706
|
+
startState: () => startState(this.eatWikiText(''), tags ?? this.tags, this.urlProtocols, tags === undefined),
|
|
1701
1707
|
copyState,
|
|
1702
1708
|
token(stream, state) {
|
|
1703
1709
|
const { data } = state, { readyTokens } = data;
|
|
@@ -1895,7 +1901,7 @@ let MediaWiki = (() => {
|
|
|
1895
1901
|
}
|
|
1896
1902
|
'text/pre'() {
|
|
1897
1903
|
return {
|
|
1898
|
-
startState: () => startState(this.inPre(), []),
|
|
1904
|
+
startState: () => startState(this.inPre(), [], this.urlProtocols),
|
|
1899
1905
|
token: simpleToken,
|
|
1900
1906
|
};
|
|
1901
1907
|
}
|
|
@@ -1926,19 +1932,19 @@ let MediaWiki = (() => {
|
|
|
1926
1932
|
}
|
|
1927
1933
|
'text/references'(tags) {
|
|
1928
1934
|
return {
|
|
1929
|
-
startState: () => startState(this.inNested('ref'), tags),
|
|
1935
|
+
startState: () => startState(this.inNested('ref'), tags, this.urlProtocols),
|
|
1930
1936
|
token: simpleToken,
|
|
1931
1937
|
};
|
|
1932
1938
|
}
|
|
1933
1939
|
'text/choose'(tags) {
|
|
1934
1940
|
return {
|
|
1935
|
-
startState: () => startState(this.inNested('option'), tags),
|
|
1941
|
+
startState: () => startState(this.inNested('option'), tags, this.urlProtocols),
|
|
1936
1942
|
token: simpleToken,
|
|
1937
1943
|
};
|
|
1938
1944
|
}
|
|
1939
1945
|
'text/combobox'(tags) {
|
|
1940
1946
|
return {
|
|
1941
|
-
startState: () => startState(this.inNested('combooption'), tags),
|
|
1947
|
+
startState: () => startState(this.inNested('combooption'), tags, this.urlProtocols),
|
|
1942
1948
|
token: simpleToken,
|
|
1943
1949
|
};
|
|
1944
1950
|
}
|
|
@@ -1955,7 +1961,7 @@ let MediaWiki = (() => {
|
|
|
1955
1961
|
}
|
|
1956
1962
|
'text/inputbox'() {
|
|
1957
1963
|
return {
|
|
1958
|
-
startState: () => startState(this.inInputbox, []),
|
|
1964
|
+
startState: () => startState(this.inInputbox, [], this.urlProtocols),
|
|
1959
1965
|
token: simpleToken,
|
|
1960
1966
|
};
|
|
1961
1967
|
}
|
|
@@ -1982,10 +1988,10 @@ let MediaWiki = (() => {
|
|
|
1982
1988
|
}
|
|
1983
1989
|
'text/gallery'(tags) {
|
|
1984
1990
|
return {
|
|
1985
|
-
startState: () => startState(this.inGallery(), tags),
|
|
1991
|
+
startState: () => startState(this.inGallery(), tags, this.urlProtocols),
|
|
1986
1992
|
token: (stream, state) => {
|
|
1987
1993
|
if (stream.sol()) {
|
|
1988
|
-
Object.assign(state, startState(this.inGallery(), state.data.tags));
|
|
1994
|
+
Object.assign(state, startState(this.inGallery(), state.data.tags, this.urlProtocols));
|
|
1989
1995
|
}
|
|
1990
1996
|
return simpleToken(stream, state);
|
|
1991
1997
|
},
|