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 @@
+
+