diff --git a/browser/components/MarkdownEditor.js b/browser/components/MarkdownEditor.js index 2a1016cb..3208ce76 100644 --- a/browser/components/MarkdownEditor.js +++ b/browser/components/MarkdownEditor.js @@ -283,6 +283,7 @@ class MarkdownEditor extends React.Component { indentSize={editorIndentSize} scrollPastEnd={config.preview.scrollPastEnd} smartQuotes={config.preview.smartQuotes} + smartArrows={config.previw.smartArrows} breaks={config.preview.breaks} sanitize={config.preview.sanitize} ref='preview' diff --git a/browser/components/MarkdownPreview.js b/browser/components/MarkdownPreview.js index 89f71a9b..df7e74a6 100755 --- a/browser/components/MarkdownPreview.js +++ b/browser/components/MarkdownPreview.js @@ -338,6 +338,7 @@ export default class MarkdownPreview extends React.Component { if (prevProps.value !== this.props.value) this.rewriteIframe() if (prevProps.smartQuotes !== this.props.smartQuotes || prevProps.sanitize !== this.props.sanitize || + prevProps.smartArrows !== this.props.smartArrows || prevProps.breaks !== this.props.breaks) { this.initMarkdown() this.rewriteIframe() @@ -595,5 +596,6 @@ MarkdownPreview.propTypes = { showCopyNotification: PropTypes.bool, storagePath: PropTypes.string, smartQuotes: PropTypes.bool, + smartArrows: PropTypes.bool, breaks: PropTypes.bool } diff --git a/browser/components/MarkdownSplitEditor.js b/browser/components/MarkdownSplitEditor.js index 7016d0f4..5c35c22c 100644 --- a/browser/components/MarkdownSplitEditor.js +++ b/browser/components/MarkdownSplitEditor.js @@ -131,6 +131,7 @@ class MarkdownSplitEditor extends React.Component { lineNumber={config.preview.lineNumber} scrollPastEnd={config.preview.scrollPastEnd} smartQuotes={config.preview.smartQuotes} + smartArrows={config.preview.smartArrows} breaks={config.preview.breaks} sanitize={config.preview.sanitize} ref='preview' diff --git a/browser/lib/markdown.js b/browser/lib/markdown.js index 70f95024..4dafa4a3 100644 --- a/browser/lib/markdown.js +++ b/browser/lib/markdown.js @@ -2,6 +2,7 @@ import markdownit from 'markdown-it' import sanitize from './markdown-it-sanitize-html' import emoji from 'markdown-it-emoji' import math from '@rokt33r/markdown-it-math' +import smartArrows from 'markdown-it-smartarrows' import _ from 'lodash' import ConfigManager from 'browser/main/lib/ConfigManager' import katex from 'katex' @@ -214,6 +215,10 @@ class Markdown { return true }) + if (config.preview.smartArrows) { + this.md.use(smartArrows) + } + // Add line number attribute for scrolling const originalRender = this.md.renderer.render this.md.renderer.render = (tokens, options, env) => { diff --git a/browser/main/lib/ConfigManager.js b/browser/main/lib/ConfigManager.js index 908b243e..0f070fc6 100644 --- a/browser/main/lib/ConfigManager.js +++ b/browser/main/lib/ConfigManager.js @@ -59,6 +59,7 @@ export const DEFAULT_CONFIG = { scrollPastEnd: false, smartQuotes: true, breaks: true, + smartArrows: false, allowCustomCSS: false, customCSS: '', sanitize: 'STRICT' // 'STRICT', 'ALLOW_STYLES', 'NONE' diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index e14f2279..ce149f65 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -100,6 +100,7 @@ class UiTab extends React.Component { scrollPastEnd: this.refs.previewScrollPastEnd.checked, smartQuotes: this.refs.previewSmartQuotes.checked, breaks: this.refs.previewBreaks.checked, + smartArrows: this.refs.previewSmartArrows.checked, sanitize: this.refs.previewSanitize.value, allowCustomCSS: this.refs.previewAllowCustomCSS.checked, customCSS: this.customCSSCM.getCodeMirror().getValue() @@ -492,6 +493,16 @@ class UiTab extends React.Component { {i18n.__('Render newlines in Markdown paragraphs as
')} +
+ +
diff --git a/locales/da.json b/locales/da.json index 314058cb..6a059cce 100644 --- a/locales/da.json +++ b/locales/da.json @@ -150,5 +150,6 @@ "Sanitization": "Sanitization", "Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)", "Allow styles": "Allow styles", - "Allow dangerous html tags": "Allow dangerous html tags" + "Allow dangerous html tags": "Allow dangerous html tags", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/de.json b/locales/de.json index 7e7da1f3..69ef2aee 100644 --- a/locales/de.json +++ b/locales/de.json @@ -205,5 +205,6 @@ "Unnamed": "Unbenannt", "Rename": "Umbenennen", "Folder Name": "Ordnername", - "No tags": "Keine Tags" + "No tags": "Keine Tags", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/en.json b/locales/en.json index e40035ae..37ce250a 100644 --- a/locales/en.json +++ b/locales/en.json @@ -174,5 +174,6 @@ "Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)", "Render newlines in Markdown paragraphs as
": "Render newlines in Markdown paragraphs as
", "Allow styles": "Allow styles", - "Allow dangerous html tags": "Allow dangerous html tags" + "Allow dangerous html tags": "Allow dangerous html tags", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/es-ES.json b/locales/es-ES.json index 0fa27713..f277b554 100644 --- a/locales/es-ES.json +++ b/locales/es-ES.json @@ -150,5 +150,6 @@ "Sanitization": "Saneamiento", "Only allow secure html tags (recommended)": "Solo permitir etiquetas html seguras (recomendado)", "Allow styles": "Permitir estilos", - "Allow dangerous html tags": "Permitir etiquetas html peligrosas" + "Allow dangerous html tags": "Permitir etiquetas html peligrosas", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/fa.json b/locales/fa.json index 125056a6..1037ea58 100644 --- a/locales/fa.json +++ b/locales/fa.json @@ -153,5 +153,6 @@ "Sanitization": "پاکسازی کردن", "Only allow secure html tags (recommended)": "(فقط تگ های امن اچ تی ام ال مجاز اند.(پیشنهاد میشود", "Allow styles": "حالت های مجاز", - "Allow dangerous html tags": "تگ های خطرناک اچ‌ تی ام ال مجاز اند" + "Allow dangerous html tags": "تگ های خطرناک اچ‌ تی ام ال مجاز اند", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } \ No newline at end of file diff --git a/locales/fr.json b/locales/fr.json index d285a29c..2a51256f 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -150,5 +150,6 @@ "Sanitization": "Sanitization", "Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)", "Allow styles": "Allow styles", - "Allow dangerous html tags": "Allow dangerous html tags" + "Allow dangerous html tags": "Allow dangerous html tags", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/hu.json b/locales/hu.json index d02a6810..90ee64b6 100644 --- a/locales/hu.json +++ b/locales/hu.json @@ -174,5 +174,6 @@ "Only allow secure html tags (recommended)": "Csak a biztonságos html tag-ek engedélyezése (ajánlott)", "Render newlines in Markdown paragraphs as
": "Az újsor karaktert
soremelésként jelenítse meg a Markdown jegyzetekben", "Allow styles": "Stílusok engedélyezése", - "Allow dangerous html tags": "Veszélyes html tag-ek engedélyezése" + "Allow dangerous html tags": "Veszélyes html tag-ek engedélyezése", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/it.json b/locales/it.json index 10c97c94..13a6ded3 100644 --- a/locales/it.json +++ b/locales/it.json @@ -153,5 +153,6 @@ "Sanitization": "Bonifica", "Only allow secure html tags (recommended)": "Consenti solo tag HTML sicuri (raccomandato)", "Allow styles": "Consenti stili", - "Allow dangerous html tags": "Consenti tag HTML pericolosi" + "Allow dangerous html tags": "Consenti tag HTML pericolosi", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." }" diff --git a/locales/ja.json b/locales/ja.json index 987f11e5..5320a68f 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -150,5 +150,6 @@ "Sanitization": "サニタイズ", "Only allow secure html tags (recommended)": "安全なHTMLタグのみ利用を許可する(推奨)", "Allow styles": "スタイルを許可する", - "Allow dangerous html tags": "安全でないHTMLタグの利用を許可する" + "Allow dangerous html tags": "安全でないHTMLタグの利用を許可する", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/ko.json b/locales/ko.json index 3360f269..3121a581 100644 --- a/locales/ko.json +++ b/locales/ko.json @@ -156,5 +156,6 @@ "Sanitization": "허용 태그 범위", "Only allow secure html tags (recommended)": "안전한 HTML 태그만 허용 (추천)", "Allow styles": "style 태그, 속성까지 허용", - "Allow dangerous html tags": "모든 위험한 태그 허용" + "Allow dangerous html tags": "모든 위험한 태그 허용", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/no.json b/locales/no.json index 1ec74f0e..5ccd343e 100644 --- a/locales/no.json +++ b/locales/no.json @@ -149,5 +149,6 @@ "Sanitization": "Sanitization", "Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)", "Allow styles": "Allow styles", - "Allow dangerous html tags": "Allow dangerous html tags" + "Allow dangerous html tags": "Allow dangerous html tags", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/pl.json b/locales/pl.json index 1ec74f0e..5ccd343e 100644 --- a/locales/pl.json +++ b/locales/pl.json @@ -149,5 +149,6 @@ "Sanitization": "Sanitization", "Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)", "Allow styles": "Allow styles", - "Allow dangerous html tags": "Allow dangerous html tags" + "Allow dangerous html tags": "Allow dangerous html tags", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/pt-BR.json b/locales/pt-BR.json index 1f8361af..c6f1c994 100644 --- a/locales/pt-BR.json +++ b/locales/pt-BR.json @@ -149,5 +149,6 @@ "Sanitization": "Sanitização", "Only allow secure html tags (recommended)": "Permitir apenas tags html seguras (recomendado)", "Allow styles": "Permitir estilos", - "Allow dangerous html tags": "Permitir tags html perigosas" + "Allow dangerous html tags": "Permitir tags html perigosas", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/pt-PT.json b/locales/pt-PT.json index 1ec74f0e..5ccd343e 100644 --- a/locales/pt-PT.json +++ b/locales/pt-PT.json @@ -149,5 +149,6 @@ "Sanitization": "Sanitization", "Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)", "Allow styles": "Allow styles", - "Allow dangerous html tags": "Allow dangerous html tags" + "Allow dangerous html tags": "Allow dangerous html tags", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/ru.json b/locales/ru.json index 0f3696d2..a81b5f12 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -146,5 +146,6 @@ "Russian": "Русский", "Editor Rulers": "Editor Rulers", "Enable": "Enable", - "Disable": "Disable" + "Disable": "Disable", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/sq.json b/locales/sq.json index 01a6fe0b..ae59157c 100644 --- a/locales/sq.json +++ b/locales/sq.json @@ -148,5 +148,6 @@ "Sanitization": "Sanitization", "Only allow secure html tags (recommended)": "Only allow secure html tags (recommended)", "Allow styles": "Allow styles", - "Allow dangerous html tags": "Allow dangerous html tags" + "Allow dangerous html tags": "Allow dangerous html tags", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/zh-CN.json b/locales/zh-CN.json index b736520d..badd3630 100755 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -148,5 +148,6 @@ "Sanitization": "代码处理", "Only allow secure html tags (recommended)": "只允许安全的html标签(推荐)", "Allow styles": "允许样式", - "Allow dangerous html tags": "允许危险的html标签" + "Allow dangerous html tags": "允许危险的html标签", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/locales/zh-TW.json b/locales/zh-TW.json index bc60cfcc..ed9b4c08 100755 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -148,5 +148,6 @@ "Sanitization": "過濾 HTML 程式碼", "Only allow secure html tags (recommended)": "只允許安全的 HTML 標籤 (建議)", "Allow styles": "允許樣式", - "Allow dangerous html tags": "允許危險的 HTML 標籤" + "Allow dangerous html tags": "允許危險的 HTML 標籤", + "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown.": "Convert textual arrows to beautiful signs. ⚠ This will interfere with using HTML comments in your Markdown." } diff --git a/package.json b/package.json index 4e203c27..0617900b 100644 --- a/package.json +++ b/package.json @@ -79,6 +79,7 @@ "markdown-it-multimd-table": "^2.0.1", "markdown-it-named-headers": "^0.0.4", "markdown-it-plantuml": "^0.3.0", + "markdown-it-smartarrows": "^1.0.1", "md5": "^2.0.0", "mdurl": "^1.0.1", "moment": "^2.10.3", diff --git a/yarn.lock b/yarn.lock index f12893de..6659d9ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5429,6 +5429,10 @@ markdown-it-plantuml@^0.3.0: version "0.3.2" resolved "https://registry.yarnpkg.com/markdown-it-plantuml/-/markdown-it-plantuml-0.3.2.tgz#f93a49bdfc8417b0df3c88700445f53487e57356" +markdown-it-smartarrows@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/markdown-it-smartarrows/-/markdown-it-smartarrows-1.0.1.tgz#b570e9c0ff9812e0db6ace19afa5ba12b64bb9a7" + markdown-it@^5.0.3: version "5.1.0" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-5.1.0.tgz#25286b8465bac496f3f1b77eed544643e9bd718d"