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} + ) } diff --git a/browser/main/index.js b/browser/main/index.js index 8a31a255..5573d2b1 100644 --- a/browser/main/index.js +++ b/browser/main/index.js @@ -1,7 +1,5 @@ import { Provider } from 'react-redux' -import { Router, Route, IndexRoute } from 'react-router' import MainPage from './MainPage' -import HomePage from './HomePage' import store from './store' import React from 'react' import ReactDOM from 'react-dom' @@ -40,17 +38,11 @@ ipc.on('open-finder', function () { activityRecord.emit('FINDER_OPEN') }) -let routes = ( - - - -) - let el = document.getElementById('content') ReactDOM.render((
- {routes} +
), el, function () { diff --git a/package.json b/package.json index 20c6f35c..d628f2d6 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ "react": "^0.14.3", "react-dom": "^0.14.3", "react-redux": "^4.0.6", - "react-router": "^1.0.0-rc1", "redux": "^3.0.5", "standard": "^5.3.1", "style-loader": "^0.12.4",