From 4ba4e68833f038931db5fbf0be0d946e82899aa6 Mon Sep 17 00:00:00 2001 From: roottool Date: Mon, 29 Apr 2019 08:54:28 +0900 Subject: [PATCH] Added markdownlint rules form --- browser/components/CodeEditor.js | 13 ++++++++++--- browser/main/lib/ConfigManager.js | 4 +++- browser/main/modals/PreferencesModal/UiTab.js | 7 +++++-- lib/main.html | 2 ++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/browser/components/CodeEditor.js b/browser/components/CodeEditor.js index 667708a4..af546fbf 100644 --- a/browser/components/CodeEditor.js +++ b/browser/components/CodeEditor.js @@ -25,8 +25,9 @@ import TurndownService from 'turndown' import {languageMaps} from '../lib/CMLanguageList' import snippetManager from '../lib/SnippetManager' import {generateInEditor, tocExistsInEditor} from 'browser/lib/markdown-toc-generator' +import Jsonlint from 'jsonlint-mod' import markdownlint from 'markdownlint' -import ConfigManager from '../main/lib/ConfigManager' +import ConfigManager, {DEFAULT_CONFIG} from '../main/lib/ConfigManager' CodeMirror.modeURL = '../node_modules/codemirror/mode/%N/%N.js' @@ -41,13 +42,19 @@ function translateHotkey (hotkey) { const validatorOfMarkdown = (text, updateLinting) => { const config = ConfigManager.get() + let markdownlintRules = config.editor.customMarkdownLintConfig + try { + Jsonlint.parse(markdownlintRules) + } catch (error) { + markdownlintRules = DEFAULT_CONFIG.editor.customMarkdownLintConfig + } + const lintOptions = { 'strings': { 'content': text }, - 'config': JSON.parse(config.editor.customMarkdownLintConfig) + 'config': JSON.parse(markdownlintRules) } - console.log(config.editor.customMarkdownLintConfig) return markdownlint(lintOptions, (err, result) => { if (!err) { diff --git a/browser/main/lib/ConfigManager.js b/browser/main/lib/ConfigManager.js index 616fdc88..1d59d41d 100644 --- a/browser/main/lib/ConfigManager.js +++ b/browser/main/lib/ConfigManager.js @@ -60,7 +60,9 @@ export const DEFAULT_CONFIG = { frontMatterTitleField: 'title', spellcheck: false, enableSmartPaste: false, - customMarkdownLintConfig: '' + customMarkdownLintConfig: `{ + "default": true + }` }, preview: { fontSize: '14', diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index 310e1e59..d0b2026d 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -30,7 +30,7 @@ class UiTab extends React.Component { componentDidMount () { CodeMirror.autoLoadMode(this.codeMirrorInstance.getCodeMirror(), 'javascript') CodeMirror.autoLoadMode(this.customCSSCM.getCodeMirror(), 'css') - CodeMirror.autoLoadMode(this.customMarkdownLintConfigCM.getCodeMirror(), 'json') + CodeMirror.autoLoadMode(this.customMarkdownLintConfigCM.getCodeMirror(), 'javascript') this.customCSSCM.getCodeMirror().setSize('400px', '400px') this.customMarkdownLintConfigCM.getCodeMirror().setSize('400px', '400px') this.handleSettingDone = () => { @@ -649,7 +649,10 @@ class UiTab extends React.Component { value={config.editor.customMarkdownLintConfig} options={{ lineNumbers: true, - theme: codemirrorTheme + mode: 'application/json', + theme: codemirrorTheme, + lint: true, + gutters: ['CodeMirror-lint-markers'] }} /> diff --git a/lib/main.html b/lib/main.html index 87a88e2d..c389956b 100644 --- a/lib/main.html +++ b/lib/main.html @@ -126,7 +126,9 @@ + +