@vrcd-community/zhlint
Version:
A linting tool for Chinese language.
39 lines (38 loc) • 1.07 kB
JavaScript
// TODO: ::: tips 提示...
//
// ::: xxx\nyyy\nzzz\n:::\n
// - `(?<=^|\n)` + `(:::.*)`
// - `\n`
// - `(.+)`
// - `\n`
// - `(:::)` + `(?=\n|$)`
let matcher;
try {
matcher = new RegExp('(?<=^|\\n)(:::.*)\\n([\\s\\S]+?)\\n(:::)(?=\\n|$)', 'g');
}
catch (_a) {
matcher = /(:::.*)\n([\s\S]+?)\n(:::)/g;
}
const parser = (data) => {
data.modifiedValue = data.modifiedValue.replace(matcher, (raw, start, value, end, index) => {
const { length } = raw;
const name = start.substring(3).trim().split(' ')[0] || 'default';
data.ignoredByParsers.push({
name,
index,
length: start.length,
originValue: start,
meta: `vuepress-${name}-start`
});
data.ignoredByParsers.push({
name,
index: index + length - 3,
length: 3,
originValue: end,
meta: `vuepress-${name}-end`
});
return '@'.repeat(start.length) + '\n' + value + '\n' + '@'.repeat(3);
});
return data;
};
export default parser;