Extract parsePlain function
This commit is contained in:
parent
98795aad9a
commit
e3b1d00e4c
4 changed files with 19 additions and 12 deletions
|
@ -1,7 +1,7 @@
|
|||
import Vue, { VNode } from 'vue';
|
||||
import { length } from 'stringz';
|
||||
import { MfmForest } from '../../../../../mfm/types';
|
||||
import parse from '../../../../../mfm/parse';
|
||||
import parse, { parsePlain } from '../../../../../mfm/parse';
|
||||
import MkUrl from './url.vue';
|
||||
import MkMention from './mention.vue';
|
||||
import { concat, sum } from '../../../../../prelude/array';
|
||||
|
@ -46,7 +46,7 @@ export default Vue.component('misskey-flavored-markdown', {
|
|||
render(createElement) {
|
||||
if (this.text == null || this.text == '') return;
|
||||
|
||||
const ast = parse(this.text, this.plainText);
|
||||
const ast = (this.plainText ? parsePlain : parse)(this.text);
|
||||
|
||||
let bigCount = 0;
|
||||
let motionCount = 0;
|
||||
|
|
|
@ -2,11 +2,18 @@ import parser from './parser';
|
|||
import { MfmForest } from './types';
|
||||
import { normalize } from './normalize';
|
||||
|
||||
export default (source: string, plainText = false): MfmForest => {
|
||||
export default (source: string): MfmForest => {
|
||||
if (source == null || source == '') {
|
||||
return null;
|
||||
}
|
||||
|
||||
const raw = plainText ? parser.plain.tryParse(source) : parser.root.tryParse(source) as MfmForest;
|
||||
return normalize(raw);
|
||||
return normalize(parser.root.tryParse(source));
|
||||
};
|
||||
|
||||
export function parsePlain(source: string): MfmForest {
|
||||
if (source == null || source == '') {
|
||||
return null;
|
||||
}
|
||||
|
||||
return normalize(parser.plain.tryParse(source));
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import acceptAllFollowRequests from '../../../../services/following/requests/acc
|
|||
import { publishToFollowers } from '../../../../services/i/update';
|
||||
import define from '../../define';
|
||||
import getDriveFileUrl from '../../../../misc/get-drive-file-url';
|
||||
import parse from '../../../../mfm/parse';
|
||||
import parse, { parsePlain } from '../../../../mfm/parse';
|
||||
import extractEmojis from '../../../../misc/extract-emojis';
|
||||
const langmap = require('langmap');
|
||||
|
||||
|
@ -206,7 +206,7 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => {
|
|||
let emojis = [] as string[];
|
||||
|
||||
if (updates.name != null) {
|
||||
const tokens = parse(updates.name, true);
|
||||
const tokens = parsePlain(updates.name);
|
||||
emojis = emojis.concat(extractEmojis(tokens));
|
||||
}
|
||||
|
||||
|
|
10
test/mfm.ts
10
test/mfm.ts
|
@ -10,7 +10,7 @@
|
|||
|
||||
import * as assert from 'assert';
|
||||
|
||||
import analyze from '../src/mfm/parse';
|
||||
import analyze, { parsePlain } from '../src/mfm/parse';
|
||||
import toHtml from '../src/mfm/toHtml';
|
||||
import { createTree as tree, createLeaf as leaf, MfmTree } from '../src/mfm/types';
|
||||
import { removeOrphanedBrackets } from '../src/mfm/parser';
|
||||
|
@ -1093,21 +1093,21 @@ describe('MFM', () => {
|
|||
|
||||
describe('plainText', () => {
|
||||
it('text', () => {
|
||||
const tokens = analyze('foo', true);
|
||||
const tokens = parsePlain('foo');
|
||||
assert.deepStrictEqual(tokens, [
|
||||
text('foo'),
|
||||
]);
|
||||
});
|
||||
|
||||
it('emoji', () => {
|
||||
const tokens = analyze(':foo:', true);
|
||||
const tokens = parsePlain(':foo:');
|
||||
assert.deepStrictEqual(tokens, [
|
||||
leaf('emoji', { name: 'foo' })
|
||||
]);
|
||||
});
|
||||
|
||||
it('emoji in text', () => {
|
||||
const tokens = analyze('foo:bar:baz', true);
|
||||
const tokens = parsePlain('foo:bar:baz');
|
||||
assert.deepStrictEqual(tokens, [
|
||||
text('foo'),
|
||||
leaf('emoji', { name: 'bar' }),
|
||||
|
@ -1116,7 +1116,7 @@ describe('MFM', () => {
|
|||
});
|
||||
|
||||
it('disallow other syntax', () => {
|
||||
const tokens = analyze('foo **bar** baz', true);
|
||||
const tokens = parsePlain('foo **bar** baz');
|
||||
assert.deepStrictEqual(tokens, [
|
||||
text('foo **bar** baz'),
|
||||
]);
|
||||
|
|
Loading…
Reference in a new issue