diff --git a/NEWS.md b/NEWS.md index b2e3c2bf8..84a97de50 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,6 @@ # CHANGES IN bookdown VERSION 0.42 +- New option in `gitbook`'s font settings menu to control line spacing (thanks, @hayden-MB, #1479). # CHANGES IN bookdown VERSION 0.41 diff --git a/inst/resources/gitbook/js/plugin-fontsettings.js b/inst/resources/gitbook/js/plugin-fontsettings.js index a70f0fb37..e743148f8 100644 --- a/inst/resources/gitbook/js/plugin-fontsettings.js +++ b/inst/resources/gitbook/js/plugin-fontsettings.js @@ -60,6 +60,13 @@ gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) { saveFontSettings(); }; + // Increase or decrease line spacing + function changeSpacing(e, inc = true) { + e.preventDefault(); + inc ? fontState.spacing++ : (fontState.spacing > 10 && fontState.spacing--); + saveFontSettings(); + } + function update() { var $book = gitbook.state.$book; @@ -74,6 +81,9 @@ gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) { $book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, ''); $book.addClass("color-theme-"+fontState.theme); } + var lineHeight = fontState.spacing / 10; + $book.find('section').css('line-height', lineHeight); + $('.font-settings .spacing-reduce').prop('disabled', lineHeight <= 1); }; function init(config) { @@ -87,7 +97,8 @@ gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) { fontState = gitbook.storage.get("fontState", { size: config.size || 2, family: FAMILY[config.family || "sans"], - theme: THEMES[config.theme || "white"] + theme: THEMES[config.theme || "white"], + spacing: config.spacing || 17, }); update(); @@ -139,6 +150,18 @@ gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) { text: 'Night', onClick: _.partial(changeColorTheme, 2) } + + ], + [ + { + className: 'spacing-reduce', + text: 'Spacing -', + onClick: e => changeSpacing(e, false) + }, + { + text: 'Spacing +', + onClick: changeSpacing + } ] ] });