diff --git a/browser/components/MarkdownPreview.js b/browser/components/MarkdownPreview.js index 711cabcd..62029cb0 100644 --- a/browser/components/MarkdownPreview.js +++ b/browser/components/MarkdownPreview.js @@ -24,7 +24,7 @@ const appPath = 'file://' + (process.env.NODE_ENV === 'production' ? app.getAppPath() : path.resolve()) -function buildStyle (fontFamily, fontSize, codeBlockFontFamily, lineNumber) { +function buildStyle (fontFamily, fontSize, codeBlockFontFamily, lineNumber, scrollPastEnd) { return ` @font-face { font-family: 'Lato'; @@ -48,6 +48,7 @@ ${markdownStyle} body { font-family: '${fontFamily.join("','")}'; font-size: ${fontSize}px; + ${scrollPastEnd && 'padding-bottom: 90vh;'} } code { font-family: '${codeBlockFontFamily.join("','")}'; @@ -261,14 +262,15 @@ export default class MarkdownPreview extends React.Component { prevProps.codeBlockTheme !== this.props.codeBlockTheme || prevProps.lineNumber !== this.props.lineNumber || prevProps.showCopyNotification !== this.props.showCopyNotification || - prevProps.theme !== this.props.theme) { + prevProps.theme !== this.props.theme || + prevProps.scrollPastEnd !== this.props.scrollPastEnd) { this.applyStyle() this.rewriteIframe() } } applyStyle () { - const { fontSize, lineNumber, codeBlockTheme } = this.props + const { fontSize, lineNumber, codeBlockTheme, scrollPastEnd } = this.props let { fontFamily, codeBlockFontFamily } = this.props fontFamily = _.isString(fontFamily) && fontFamily.trim().length > 0 ? fontFamily.split(',').map(fontName => fontName.trim()).concat(defaultFontFamily) @@ -278,7 +280,7 @@ export default class MarkdownPreview extends React.Component { : defaultCodeBlockFontFamily this.setCodeTheme(codeBlockTheme) - this.getWindow().document.getElementById('style').innerHTML = buildStyle(fontFamily, fontSize, codeBlockFontFamily, lineNumber, codeBlockTheme, lineNumber) + this.getWindow().document.getElementById('style').innerHTML = buildStyle(fontFamily, fontSize, codeBlockFontFamily, lineNumber, scrollPastEnd) } setCodeTheme (theme) { diff --git a/browser/components/MarkdownSplitEditor.js b/browser/components/MarkdownSplitEditor.js index 0ea41a44..d0a3eb27 100644 --- a/browser/components/MarkdownSplitEditor.js +++ b/browser/components/MarkdownSplitEditor.js @@ -78,6 +78,7 @@ class MarkdownSplitEditor extends React.Component { codeBlockTheme={config.preview.codeBlockTheme} codeBlockFontFamily={config.editor.fontFamily} lineNumber={config.preview.lineNumber} + scrollPastEnd={config.preview.scrollPastEnd} ref='preview' tabInde='0' value={value} diff --git a/browser/main/lib/ConfigManager.js b/browser/main/lib/ConfigManager.js index 3d70a7a3..834646b4 100644 --- a/browser/main/lib/ConfigManager.js +++ b/browser/main/lib/ConfigManager.js @@ -46,7 +46,8 @@ export const DEFAULT_CONFIG = { latexInlineOpen: '$', latexInlineClose: '$', latexBlockOpen: '$$', - latexBlockClose: '$$' + latexBlockClose: '$$', + scrollPastEnd: false } } diff --git a/browser/main/modals/PreferencesModal/UiTab.js b/browser/main/modals/PreferencesModal/UiTab.js index 1cd696e3..ed633c7d 100644 --- a/browser/main/modals/PreferencesModal/UiTab.js +++ b/browser/main/modals/PreferencesModal/UiTab.js @@ -85,7 +85,8 @@ class UiTab extends React.Component { latexInlineOpen: this.refs.previewLatexInlineOpen.value, latexInlineClose: this.refs.previewLatexInlineClose.value, latexBlockOpen: this.refs.previewLatexBlockOpen.value, - latexBlockClose: this.refs.previewLatexBlockClose.value + latexBlockClose: this.refs.previewLatexBlockClose.value, + scrollPastEnd: this.refs.previewScrollPastEnd.checked } } @@ -356,6 +357,16 @@ class UiTab extends React.Component { +