From 7a270275efcb49c182db5db73ce10c65ba6ad3ff Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 19 Apr 2018 15:05:39 +0900 Subject: Add new text syntax And some fixes --- src/text/html.ts | 6 ++++++ src/text/parse/elements/title.ts | 14 ++++++++++++++ src/text/parse/index.ts | 1 + 3 files changed, 21 insertions(+) create mode 100644 src/text/parse/elements/title.ts (limited to 'src/text') diff --git a/src/text/html.ts b/src/text/html.ts index 797f3b3f33..e2db2457c1 100644 --- a/src/text/html.ts +++ b/src/text/html.ts @@ -54,6 +54,12 @@ const handlers = { document.body.appendChild(blockquote); }, + title({ document }, { title }) { + const h1 = document.createElement('h1'); + h1.textContent = title; + document.body.appendChild(h1); + }, + text({ document }, { content }) { for (const text of content.split('\n')) { const node = document.createTextNode(text); diff --git a/src/text/parse/elements/title.ts b/src/text/parse/elements/title.ts new file mode 100644 index 0000000000..9f4708f5d6 --- /dev/null +++ b/src/text/parse/elements/title.ts @@ -0,0 +1,14 @@ +/** + * Title + */ + +module.exports = text => { + const match = text.match(/^【(.+?)】\n/); + if (!match) return null; + const title = match[0]; + return { + type: 'title', + content: title, + title: title.substr(1, title.length - 3) + }; +}; diff --git a/src/text/parse/index.ts b/src/text/parse/index.ts index b958da81b0..4bcedd22ac 100644 --- a/src/text/parse/index.ts +++ b/src/text/parse/index.ts @@ -4,6 +4,7 @@ const elements = [ require('./elements/bold'), + require('./elements/title'), require('./elements/url'), require('./elements/link'), require('./elements/mention'), -- cgit v1.2.3-freya From 3c80f0eacab22196feef27306dbe50076bf88bc9 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 21 Apr 2018 18:25:25 +0900 Subject: Fix #1526 --- src/text/html.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/text') diff --git a/src/text/html.ts b/src/text/html.ts index e2db2457c1..55265c206a 100644 --- a/src/text/html.ts +++ b/src/text/html.ts @@ -54,9 +54,9 @@ const handlers = { document.body.appendChild(blockquote); }, - title({ document }, { title }) { + title({ document }, { content }) { const h1 = document.createElement('h1'); - h1.textContent = title; + h1.textContent = content; document.body.appendChild(h1); }, -- cgit v1.2.3-freya From 441796f845dc60f9f499b9f7f4889081a7be6bbe Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 21 Apr 2018 18:59:16 +0900 Subject: Add search syntax --- src/client/app/common/views/components/google.vue | 67 ++++++++++++++++++++++ .../app/common/views/components/note-html.ts | 8 +++ src/text/html.ts | 7 +++ src/text/parse/elements/search.ts | 13 +++++ 4 files changed, 95 insertions(+) create mode 100644 src/client/app/common/views/components/google.vue create mode 100644 src/text/parse/elements/search.ts (limited to 'src/text') diff --git a/src/client/app/common/views/components/google.vue b/src/client/app/common/views/components/google.vue new file mode 100644 index 0000000000..92817d3c1f --- /dev/null +++ b/src/client/app/common/views/components/google.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/src/client/app/common/views/components/note-html.ts b/src/client/app/common/views/components/note-html.ts index 38f6251cf7..f86b50659e 100644 --- a/src/client/app/common/views/components/note-html.ts +++ b/src/client/app/common/views/components/note-html.ts @@ -4,6 +4,7 @@ import parse from '../../../../../text/parse'; import getAcct from '../../../../../acct/render'; import { url } from '../../../config'; import MkUrl from './url.vue'; +import MkGoogle from './google.vue'; const flatten = list => list.reduce( (a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), [] @@ -145,6 +146,13 @@ export default Vue.component('mk-note-html', { const emoji = emojilib.lib[token.emoji]; return createElement('span', emoji ? emoji.char : token.content); + case 'search': + return createElement(MkGoogle, { + props: { + q: token.query + } + }); + default: console.log('unknown ast type:', token.type); } diff --git a/src/text/html.ts b/src/text/html.ts index 55265c206a..f33ef4997b 100644 --- a/src/text/html.ts +++ b/src/text/html.ts @@ -75,6 +75,13 @@ const handlers = { a.href = url; a.textContent = url; document.body.appendChild(a); + }, + + search({ document }, { content, query }) { + const a = document.createElement('a'); + a.href = `https://www.google.com/?#q=${query}`; + a.textContent = content; + document.body.appendChild(a); } }; diff --git a/src/text/parse/elements/search.ts b/src/text/parse/elements/search.ts new file mode 100644 index 0000000000..12ee8ecbb8 --- /dev/null +++ b/src/text/parse/elements/search.ts @@ -0,0 +1,13 @@ +/** + * Search + */ + +module.exports = text => { + const match = text.match(/^(.+?) 検索(\n|$)/); + if (!match) return null; + return { + type: 'search', + content: match[0], + query: match[1] + }; +}; -- cgit v1.2.3-freya From 3e1f7861a1f3c9a22ef3cc494b8791b7e838298b Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 22 Apr 2018 07:21:51 +0900 Subject: oops --- src/text/parse/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/text') diff --git a/src/text/parse/index.ts b/src/text/parse/index.ts index 4bcedd22ac..cfddd9f615 100644 --- a/src/text/parse/index.ts +++ b/src/text/parse/index.ts @@ -12,7 +12,8 @@ const elements = [ require('./elements/code'), require('./elements/inline-code'), require('./elements/quote'), - require('./elements/emoji') + require('./elements/emoji'), + require('./elements/search') ]; export default (source: string): any[] => { -- cgit v1.2.3-freya