@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
22 lines (17 loc) • 739 B
text/typescript
import { Fragment, InputRule, inputRules, Plugin, Schema } from '../../prosemirror';
import { analyticsService } from '../../analytics';
import { createInputRule } from '../utils';
export function inputRulePlugin(schema: Schema<any, any>): Plugin | undefined {
const rules: Array<InputRule> = [];
if (schema.nodes.rule) {
// '---' and '***' for hr
rules.push(createInputRule(/^\-\-\-$|^\*\*\*$/, (state, match, start, end) => {
analyticsService.trackEvent(`atlassian.editor.format.horizontalrule.autoformatting`);
return state.tr.replaceWith(start, end, Fragment.from(schema.nodes.rule.create()));
}));
}
if (rules.length !== 0) {
return inputRules({ rules });
}
}
export default inputRulePlugin;