From 26357bd4bcee80f1fb018ea048bea52c228f96e2 Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Fri, 16 Jun 2017 21:19:35 +0900 Subject: [PATCH 01/11] Fix note title --- browser/lib/markdown.js | 1 - 1 file changed, 1 deletion(-) diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 67a4b530..04061d03 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -156,7 +156,6 @@ function strip (input) { .replace(/>/g, '') .replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g, '') .replace(/^#{1,6}\s*([^#]*)\s*(#{1,6})?/gm, '$1') - .replace(/([\*_]{1,3})(\S.*?\S)\1/g, '$2') .replace(/(`{3,})(.*?)\1/gm, '$2') .replace(/^-{3,}\s*$/g, '') .replace(/`(.+?)`/g, '$1') From 2ce96186f232107b463001a5fc4c0d767b013db8 Mon Sep 17 00:00:00 2001 From: sota1235 Date: Sat, 22 Apr 2017 12:35:22 +0900 Subject: [PATCH 02/11] add: cut out trimming text logic for md note title and add unit test --- browser/lib/markdownTextHelper.js | 39 ++++++++++++++++++++++++ tests/lib/markdown-text-helper-test.js | 41 ++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 browser/lib/markdownTextHelper.js create mode 100644 tests/lib/markdown-text-helper-test.js diff --git a/browser/lib/markdownTextHelper.js b/browser/lib/markdownTextHelper.js new file mode 100644 index 00000000..c8df8e30 --- /dev/null +++ b/browser/lib/markdownTextHelper.js @@ -0,0 +1,39 @@ +/** + * @fileoverview Text trimmer for markdown note. + */ + +/** + * @param {string} input + * @return {string} + */ +export function strip (input) { + var output = input + try { + output = output + .replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm, '$1') + .replace(/\n={2,}/g, '\n') + .replace(/~~/g, '') + .replace(/`{3}.*\n/g, '') + .replace(/<(.*?)>/g, '$1') + .replace(/^[=\-]{2,}\s*$/g, '') + .replace(/\[\^.+?\](: .*?$)?/g, '') + .replace(/\s{0,2}\[.*?\]: .*?$/g, '') + .replace(/!\[.*?\][\[\(].*?[\]\)]/g, '') + .replace(/\[(.*?)\][\[\(].*?[\]\)]/g, '$1') + .replace(/>/g, '') + .replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g, '') + .replace(/^#{1,6}\s*([^#]*)\s*(#{1,6})?/gm, '$1') + .replace(/(`{3,})(.*?)\1/gm, '$2') + .replace(/^-{3,}\s*$/g, '') + .replace(/`(.+?)`/g, '$1') + .replace(/\n{2,}/g, '\n\n') + } catch (e) { + console.error(e) + return input + } + return output +} + +export default { + strip, +} diff --git a/tests/lib/markdown-text-helper-test.js b/tests/lib/markdown-text-helper-test.js new file mode 100644 index 00000000..1b3e3f3a --- /dev/null +++ b/tests/lib/markdown-text-helper-test.js @@ -0,0 +1,41 @@ +/** + * @fileoverview Unit test for browser/lib/markdown + */ +const test = require('ava') +const markdown = require('browser/lib/markdownTextHelper') + +test(t => { + // [input, expected] + const testCases = [ + // List + [' - ', ' '], + [' + ', ' '], + [' * ', ' '], + [' * ', ' '], + [' 1. ', ' '], + [' 2. ', ' '], + [' 10. ', ' '], + ["\t- ", "\t"], + ['- ', ''], + // Header with using line + ["\n==", "\n"], + ["\n===", "\n"], + ["test\n===", "test\n"], + // Code block + ["```test\n", ''], + ["```test\nhoge", 'hoge'], + // HTML tag + ['<>', ''], + ['', 'test'], + ['hoge', 'hogetest'], + ['moge', 'testmoge'], + // Emphasis + ['~~', ''], + ['~~text~~', 'text'], + ] + + testCases.forEach(testCase => { + const [input, expected] = testCase; + t.is(markdown.strip(input), expected, `Test for strip() input: ${input} expected: ${expected}`); + }) +}) From 6047987c25a284e68a2b8c46516340f2e87c009d Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Tue, 7 Nov 2017 14:44:15 +0900 Subject: [PATCH 03/11] refactor: fix to use cut off file --- browser/lib/markdown.js | 6 ++++++ browser/main/Detail/MarkdownNoteDetail.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 04061d03..0b2b1171 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -3,6 +3,7 @@ import emoji from 'markdown-it-emoji' import math from '@rokt33r/markdown-it-math' import _ from 'lodash' +// FIXME We should not depend on global variable. const katex = window.katex function createGutter (str) { @@ -137,6 +138,7 @@ md.renderer.render = function render (tokens, options, env) { let result = originalRender.call(md.renderer, tokens, options, env) return result } +// FIXME We should not depend on global variable. window.md = md function strip (input) { @@ -177,7 +179,11 @@ const markdown = { const renderedContent = md.render(content) return renderedContent }, +<<<<<<< HEAD strip, normalizeLinkText +======= +>>>>>>> refactor: fix to use cut off file } + export default markdown diff --git a/browser/main/Detail/MarkdownNoteDetail.js b/browser/main/Detail/MarkdownNoteDetail.js index 767f17b3..bc407b62 100644 --- a/browser/main/Detail/MarkdownNoteDetail.js +++ b/browser/main/Detail/MarkdownNoteDetail.js @@ -9,7 +9,7 @@ import FolderSelect from './FolderSelect' import dataApi from 'browser/main/lib/dataApi' import { hashHistory } from 'react-router' import ee from 'browser/main/lib/eventEmitter' -import markdown from 'browser/lib/markdown' +import markdown from 'browser/lib/markdownTextHelper' import StatusBar from '../StatusBar' import _ from 'lodash' import { findNoteTitle } from 'browser/lib/findNoteTitle' From 0a28798d548bca6f57fb2e38be68815c62729539 Mon Sep 17 00:00:00 2001 From: sota1235 Date: Sat, 22 Apr 2017 12:44:39 +0900 Subject: [PATCH 04/11] modify: add test case for underscore --- tests/lib/markdown-text-helper-test.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/lib/markdown-text-helper-test.js b/tests/lib/markdown-text-helper-test.js index 1b3e3f3a..dcec31cc 100644 --- a/tests/lib/markdown-text-helper-test.js +++ b/tests/lib/markdown-text-helper-test.js @@ -32,6 +32,9 @@ test(t => { // Emphasis ['~~', ''], ['~~text~~', 'text'], + // Don't remove underscore + ['`MY_TITLE`', 'MY_TITLE'], + ['MY_TITLE', 'MY_TITLE'], ] testCases.forEach(testCase => { From a40f8d25ef3e04ae2e606e666003f1ae976c424a Mon Sep 17 00:00:00 2001 From: sota1235 Date: Sat, 29 Apr 2017 13:57:27 +0900 Subject: [PATCH 05/11] modify: change to modern js --- browser/lib/markdownTextHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browser/lib/markdownTextHelper.js b/browser/lib/markdownTextHelper.js index c8df8e30..7510b5bf 100644 --- a/browser/lib/markdownTextHelper.js +++ b/browser/lib/markdownTextHelper.js @@ -7,7 +7,7 @@ * @return {string} */ export function strip (input) { - var output = input + let output = input try { output = output .replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm, '$1') From 5fbb802b3229922df975a316a3f822bd8dab8a8d Mon Sep 17 00:00:00 2001 From: sota1235 Date: Sat, 29 Apr 2017 13:59:18 +0900 Subject: [PATCH 06/11] modify: add test case --- tests/lib/markdown-text-helper-test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/lib/markdown-text-helper-test.js b/tests/lib/markdown-text-helper-test.js index dcec31cc..2b285140 100644 --- a/tests/lib/markdown-text-helper-test.js +++ b/tests/lib/markdown-text-helper-test.js @@ -35,6 +35,8 @@ test(t => { // Don't remove underscore ['`MY_TITLE`', 'MY_TITLE'], ['MY_TITLE', 'MY_TITLE'], + // I have no idea for it... + ['```test', '`test'], ] testCases.forEach(testCase => { From b88b1065eefd5d7a1dc32c562b178b52e3cac8b1 Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Wed, 17 May 2017 15:04:43 +0900 Subject: [PATCH 07/11] [Lint] Fix double quatations to single quatations --- tests/lib/markdown-text-helper-test.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/lib/markdown-text-helper-test.js b/tests/lib/markdown-text-helper-test.js index 2b285140..91a57a59 100644 --- a/tests/lib/markdown-text-helper-test.js +++ b/tests/lib/markdown-text-helper-test.js @@ -15,15 +15,15 @@ test(t => { [' 1. ', ' '], [' 2. ', ' '], [' 10. ', ' '], - ["\t- ", "\t"], + ['\t- ', '\t'], ['- ', ''], // Header with using line - ["\n==", "\n"], - ["\n===", "\n"], - ["test\n===", "test\n"], + ['\n==', '\n'], + ['\n===', '\n'], + ['test\n===', 'test\n'], // Code block - ["```test\n", ''], - ["```test\nhoge", 'hoge'], + ['```test\n', ''], + ['```test\nhoge', 'hoge'], // HTML tag ['<>', ''], ['', 'test'], From 930b58d2a8dea72e318d20015a4010034f194ba1 Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Wed, 17 May 2017 15:05:05 +0900 Subject: [PATCH 08/11] [Lint] Remove semicolons --- tests/lib/markdown-text-helper-test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/lib/markdown-text-helper-test.js b/tests/lib/markdown-text-helper-test.js index 91a57a59..9077e118 100644 --- a/tests/lib/markdown-text-helper-test.js +++ b/tests/lib/markdown-text-helper-test.js @@ -40,7 +40,7 @@ test(t => { ] testCases.forEach(testCase => { - const [input, expected] = testCase; - t.is(markdown.strip(input), expected, `Test for strip() input: ${input} expected: ${expected}`); + const [input, expected] = testCase + t.is(markdown.strip(input), expected, `Test for strip() input: ${input} expected: ${expected}`) }) }) From 13a1da91be7e887865100134855b765caff78df6 Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Wed, 17 May 2017 15:05:39 +0900 Subject: [PATCH 09/11] [Lint] Remove an unexpected trailing comma --- tests/lib/markdown-text-helper-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/lib/markdown-text-helper-test.js b/tests/lib/markdown-text-helper-test.js index 9077e118..e4ad86bc 100644 --- a/tests/lib/markdown-text-helper-test.js +++ b/tests/lib/markdown-text-helper-test.js @@ -36,7 +36,7 @@ test(t => { ['`MY_TITLE`', 'MY_TITLE'], ['MY_TITLE', 'MY_TITLE'], // I have no idea for it... - ['```test', '`test'], + ['```test', '`test'] ] testCases.forEach(testCase => { From 990d7edba441c3dfb3cc2acabe26b0ecd9e04e17 Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Tue, 7 Nov 2017 14:44:50 +0900 Subject: [PATCH 10/11] Fix some pointed by eslint --- browser/lib/markdown.js | 5 ++--- browser/lib/markdownTextHelper.js | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 0b2b1171..7a3ae069 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -179,11 +179,10 @@ const markdown = { const renderedContent = md.render(content) return renderedContent }, -<<<<<<< HEAD strip, normalizeLinkText -======= ->>>>>>> refactor: fix to use cut off file + return md.render(content) + } } export default markdown diff --git a/browser/lib/markdownTextHelper.js b/browser/lib/markdownTextHelper.js index 7510b5bf..1501e2c7 100644 --- a/browser/lib/markdownTextHelper.js +++ b/browser/lib/markdownTextHelper.js @@ -35,5 +35,5 @@ export function strip (input) { } export default { - strip, + strip } From f1a90f4a11c4485c35d0e672cef859b1d936f94a Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Tue, 7 Nov 2017 14:47:13 +0900 Subject: [PATCH 11/11] Remove an unused function --- browser/lib/markdown.js | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 7a3ae069..91a04a2a 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -141,34 +141,6 @@ md.renderer.render = function render (tokens, options, env) { // FIXME We should not depend on global variable. window.md = md -function strip (input) { - var output = input - try { - output = output - .replace(/^([\s\t]*)([\*\-\+]|\d\.)\s+/gm, '$1') - .replace(/\n={2,}/g, '\n') - .replace(/~~/g, '') - .replace(/`{3}.*\n/g, '') - .replace(/<(.*?)>/g, '$1') - .replace(/^[=\-]{2,}\s*$/g, '') - .replace(/\[\^.+?\](: .*?$)?/g, '') - .replace(/\s{0,2}\[.*?\]: .*?$/g, '') - .replace(/!\[.*?\][\[\(].*?[\]\)]/g, '') - .replace(/\[(.*?)\][\[\(].*?[\]\)]/g, '$1') - .replace(/>/g, '') - .replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g, '') - .replace(/^#{1,6}\s*([^#]*)\s*(#{1,6})?/gm, '$1') - .replace(/(`{3,})(.*?)\1/gm, '$2') - .replace(/^-{3,}\s*$/g, '') - .replace(/`(.+?)`/g, '$1') - .replace(/\n{2,}/g, '\n\n') - } catch (e) { - console.error(e) - return input - } - return output -} - function normalizeLinkText (linkText) { return md.normalizeLinkText(linkText) } @@ -179,10 +151,7 @@ const markdown = { const renderedContent = md.render(content) return renderedContent }, - strip, normalizeLinkText - return md.render(content) - } } export default markdown