diff --git a/browser/components/MarkdownPreview.js b/browser/components/MarkdownPreview.js
index fb5335d5..08f50b26 100644
--- a/browser/components/MarkdownPreview.js
+++ b/browser/components/MarkdownPreview.js
@@ -3,6 +3,7 @@ import markdown from '../lib/markdown'
import ReactDOM from 'react-dom'
import sanitizeHtml from '@rokt33r/sanitize-html'
import hljs from 'highlight.js'
+import _ from 'lodash'
const electron = require('electron')
const shell = electron.shell
@@ -21,14 +22,29 @@ const sanitizeOpts = {
},
allowedAttributes: {
a: ['href', 'data-key'],
- img: [ 'src' ]
+ img: [ 'src' ],
+ '*': ['id', 'name']
+ },
+ transformTags: {
+ '*': function (tagName, attribs) {
+ let href = attribs.href
+ if (_.isString(href) && href.match(/^#.+$/)) attribs.href = href.replace(/^#/, '#md-anchor-')
+ if (attribs.id) attribs.id = 'md-anchor-' + attribs.id
+ if (attribs.name) attribs.name = 'md-anchor-' + attribs.name
+ return {
+ tagName: tagName,
+ attribs: attribs
+ }
+ }
}
}
function handleAnchorClick (e) {
+ if (e.target.attributes.href && e.target.attributes.href.nodeValue.match(/#.+/)) {
+ return
+ }
e.preventDefault()
e.stopPropagation()
- console.log(e.target.href)
shell.openExternal(e.target.href)
}
diff --git a/browser/main/HomePage/ArticleDetail/ArticleEditor.js b/browser/main/HomePage/ArticleDetail/ArticleEditor.js
index 0c8f7ee8..2718283e 100644
--- a/browser/main/HomePage/ArticleDetail/ArticleEditor.js
+++ b/browser/main/HomePage/ArticleDetail/ArticleEditor.js
@@ -23,7 +23,7 @@ export default class ArticleEditor extends React.Component {
firstVisibleRow: null
}, function () {
let previewEl = ReactDOM.findDOMNode(this.refs.preview)
- previewEl.scrollTop = 0
+ if (previewEl) previewEl.scrollTop = 0
})
}
diff --git a/browser/main/MainPage.js b/browser/main/MainPage.js
index a5db1fa9..b48f39d9 100644
--- a/browser/main/MainPage.js
+++ b/browser/main/MainPage.js
@@ -1,6 +1,7 @@
const electron = require('electron')
const ipc = electron.ipcRenderer
import React, { PropTypes } from 'react'
+import HomePage from './HomePage'
export default class MainContainer extends React.Component {
constructor (props) {
@@ -24,7 +25,7 @@ export default class MainContainer extends React.Component {
{this.state.updateAvailable ? (
) : null}
- {this.props.children}
+