|
|
import { textInputRule, Extension } from '@tiptap/core';
|
|
|
|
|
|
const emDash = textInputRule({
|
|
|
find: /--$/,
|
|
|
replace: '—',
|
|
|
});
|
|
|
const ellipsis = textInputRule({
|
|
|
find: /\.\.\.$/,
|
|
|
replace: '…',
|
|
|
});
|
|
|
const openDoubleQuote = textInputRule({
|
|
|
find: /(?:^|[\s{[(<'"\u2018\u201C])(")$/,
|
|
|
replace: '“',
|
|
|
});
|
|
|
const closeDoubleQuote = textInputRule({
|
|
|
find: /"$/,
|
|
|
replace: '”',
|
|
|
});
|
|
|
const openSingleQuote = textInputRule({
|
|
|
find: /(?:^|[\s{[(<'"\u2018\u201C])(')$/,
|
|
|
replace: '‘',
|
|
|
});
|
|
|
const closeSingleQuote = textInputRule({
|
|
|
find: /'$/,
|
|
|
replace: '’',
|
|
|
});
|
|
|
const leftArrow = textInputRule({
|
|
|
find: /<-$/,
|
|
|
replace: '←',
|
|
|
});
|
|
|
const rightArrow = textInputRule({
|
|
|
find: /->$/,
|
|
|
replace: '→',
|
|
|
});
|
|
|
const copyright = textInputRule({
|
|
|
find: /\(c\)$/,
|
|
|
replace: '©',
|
|
|
});
|
|
|
const trademark = textInputRule({
|
|
|
find: /\(tm\)$/,
|
|
|
replace: '™',
|
|
|
});
|
|
|
const servicemark = textInputRule({
|
|
|
find: /\(sm\)$/,
|
|
|
replace: '℠',
|
|
|
});
|
|
|
const registeredTrademark = textInputRule({
|
|
|
find: /\(r\)$/,
|
|
|
replace: '®',
|
|
|
});
|
|
|
const oneHalf = textInputRule({
|
|
|
find: /1\/2$/,
|
|
|
replace: '½',
|
|
|
});
|
|
|
const plusMinus = textInputRule({
|
|
|
find: /\+\/-$/,
|
|
|
replace: '±',
|
|
|
});
|
|
|
const notEqual = textInputRule({
|
|
|
find: /!=$/,
|
|
|
replace: '≠',
|
|
|
});
|
|
|
const laquo = textInputRule({
|
|
|
find: /<<$/,
|
|
|
replace: '«',
|
|
|
});
|
|
|
const raquo = textInputRule({
|
|
|
find: />>$/,
|
|
|
replace: '»',
|
|
|
});
|
|
|
const multiplication = textInputRule({
|
|
|
find: /\d+\s?([*x])\s?\d+$/,
|
|
|
replace: '×',
|
|
|
});
|
|
|
const superscriptTwo = textInputRule({
|
|
|
find: /\^2$/,
|
|
|
replace: '²',
|
|
|
});
|
|
|
const superscriptThree = textInputRule({
|
|
|
find: /\^3$/,
|
|
|
replace: '³',
|
|
|
});
|
|
|
const oneQuarter = textInputRule({
|
|
|
find: /1\/4$/,
|
|
|
replace: '¼',
|
|
|
});
|
|
|
const threeQuarters = textInputRule({
|
|
|
find: /3\/4$/,
|
|
|
replace: '¾',
|
|
|
});
|
|
|
const Typography = Extension.create({
|
|
|
name: 'typography',
|
|
|
addInputRules() {
|
|
|
const rules = [];
|
|
|
if (this.options.emDash !== false) {
|
|
|
rules.push(emDash);
|
|
|
}
|
|
|
if (this.options.ellipsis !== false) {
|
|
|
rules.push(ellipsis);
|
|
|
}
|
|
|
if (this.options.openDoubleQuote !== false) {
|
|
|
rules.push(openDoubleQuote);
|
|
|
}
|
|
|
if (this.options.closeDoubleQuote !== false) {
|
|
|
rules.push(closeDoubleQuote);
|
|
|
}
|
|
|
if (this.options.openSingleQuote !== false) {
|
|
|
rules.push(openSingleQuote);
|
|
|
}
|
|
|
if (this.options.closeSingleQuote !== false) {
|
|
|
rules.push(closeSingleQuote);
|
|
|
}
|
|
|
if (this.options.leftArrow !== false) {
|
|
|
rules.push(leftArrow);
|
|
|
}
|
|
|
if (this.options.rightArrow !== false) {
|
|
|
rules.push(rightArrow);
|
|
|
}
|
|
|
if (this.options.copyright !== false) {
|
|
|
rules.push(copyright);
|
|
|
}
|
|
|
if (this.options.trademark !== false) {
|
|
|
rules.push(trademark);
|
|
|
}
|
|
|
if (this.options.servicemark !== false) {
|
|
|
rules.push(servicemark);
|
|
|
}
|
|
|
if (this.options.registeredTrademark !== false) {
|
|
|
rules.push(registeredTrademark);
|
|
|
}
|
|
|
if (this.options.oneHalf !== false) {
|
|
|
rules.push(oneHalf);
|
|
|
}
|
|
|
if (this.options.plusMinus !== false) {
|
|
|
rules.push(plusMinus);
|
|
|
}
|
|
|
if (this.options.notEqual !== false) {
|
|
|
rules.push(notEqual);
|
|
|
}
|
|
|
if (this.options.laquo !== false) {
|
|
|
rules.push(laquo);
|
|
|
}
|
|
|
if (this.options.raquo !== false) {
|
|
|
rules.push(raquo);
|
|
|
}
|
|
|
if (this.options.multiplication !== false) {
|
|
|
rules.push(multiplication);
|
|
|
}
|
|
|
if (this.options.superscriptTwo !== false) {
|
|
|
rules.push(superscriptTwo);
|
|
|
}
|
|
|
if (this.options.superscriptThree !== false) {
|
|
|
rules.push(superscriptThree);
|
|
|
}
|
|
|
if (this.options.oneQuarter !== false) {
|
|
|
rules.push(oneQuarter);
|
|
|
}
|
|
|
if (this.options.threeQuarters !== false) {
|
|
|
rules.push(threeQuarters);
|
|
|
}
|
|
|
return rules;
|
|
|
},
|
|
|
});
|
|
|
|
|
|
export { Typography, closeDoubleQuote, closeSingleQuote, copyright, Typography as default, ellipsis, emDash, laquo, leftArrow, multiplication, notEqual, oneHalf, oneQuarter, openDoubleQuote, openSingleQuote, plusMinus, raquo, registeredTrademark, rightArrow, servicemark, superscriptThree, superscriptTwo, threeQuarters, trademark };
|
|
|
//# sourceMappingURL=tiptap-extension-typography.esm.js.map
|