- Added the
output.html.print.enable
configuration value to disable the "print" page. #1169 - Added a list of supported languages for syntax-highlighting to the documentation. #1345
- Now supports symbolic links for files in the
src
directory. #1323
- Added
output.html.cname
option to emit aCNAME
file which is used by GitHub Pages to know which domain is being used. #1311
mdbook test
no longer stops on the first test failure, but instead will run all the tests. #1313- Removed the
local
font source for Source Code Pro, as the locally installed font may not render properly on FireFox on macOS. #1307
- Added newline to end of
.nojekyll
file. #1310 - Fixed missing space before draft chapter titles. #1309
- The "show hidden lines" icon has changed from the "expand" icon to an "eye". #1281
- Updated highlight.js. This adds several languages: c, c-like (effectively cpp), csharp (replaces cs), kotlin, less, lua, php-template, plaintext, python-repl, r, scss, typescript. #1277
- Fixed SUMMARY links that contained newlines. #1291
- Fixed SUMMARY links that contain
%20
spaces. #1293 - Fixed favicon so that if only the png or svg is overridden, the other is not
automatically included in the
<link>
tag. #1272
- Removed several outdated dev-dependencies. #1267
- Fixed sidebar scrolling if the book includes part titles. #1265
- Don't include the default favicon if only one of the PNG or SVG is overridden. #1266
- Several of the changes in the release have altered the public API of the mdbook library.
- Many dependencies have been updated or replaced.
This also removes the
--websocket-hostname
and--websocket-port
from theserve
command. #1211 - A new "404" page is now automatically rendered. This requires knowledge of
the base URL of your site to work properly. If you decide to use this as
your 404 page, you should set the
site-url
setting in the book configuration so mdbook can generate the links correctly. Alternatively you can disable the 404 page generation, or set up your own 404 handling in your web server. #1221 - The
debug
andoutput
features have been removed as they were unused. #1211 - If you are using customized themes, you may want to consider setting the
preferred-dark-theme
config setting, as it now defaults to "navy". #1199 - "Playpen" has been renamed to "playground". This is generally backwards
compatible for users, but
{{#playpen}}
will now display warnings. This may impact books that have modified the "playpen" elements in the theme. #1241 - If a renderer is not installed, it is now treated as an error. If you want
the old behavior of ignoring missing renderers, set the
optional
setting for that renderer. #1122 - If you have a custom favicon, you may need to look into adding an SVG version, otherwise the default SVG icon will be displayed. #1230
- Added a new
[rust]
configuration section tobook.toml
, which allows setting the default edition withedition = "2018"
. #1163 - Renderers can now be marked as
optional
, so that they will be ignored if the renderer is not installed. #1122 - Added
head.hbs
to allow adding content to the<head>
section in HTML. #1206 - Added "draft chapters". These are chapters listed without a link to indicate content yet to be written. #1153
- Added "parts" to split a book into different sections. Headers can be added
to
SUMMARY.md
to signify different sections. #1171 - Added generation of a "404" page for handling missing pages and broken links. #1221
- Added configuration section for specifying URL redirects. #1237
- Added an SVG favicon that works with light and dark colors schemes. #1230
- Changed default Rust attribute of
allow(unused_variables)
toallow(unused)
. #1195 - Fonts are now served locally instead of from the Google Fonts CDN. The
copy-fonts
option was added to disable this if you want to supply your own fonts. #1188 - Switched the built-in webserver for the
serve
command to a new implementation. This results in some internal differences in how websockets are handled, which removes the separate websocket options. This should also make it easier to serve multiple books at once. #1211 - The default dark theme is now "navy". #1199
- "Playpen" has been renamed to "playground", matching the actual name of the service which was renamed many years ago. #1241
- Links with the
+
symbol should now work. #1208 - The
MDBOOK_BOOK
environment variable now correctly allows overriding the entire book configuration. #1207 - The sidebar can no longer be dragged outside of the window. #1229
- Hide the Rust Playground "play" button for
no_run
code samples. #1249 - Fixed the
--dest-dir
command-line option for theserve
andwatch
commands. #1228 - Hotkey handlers are now disabled in
text
input fields (for example, typingS
in a custom text input field). #1244
- Code spans in headers are no longer highlighted as code. #1162
- The sidebar will now scroll the activate page to the middle instead of the top. #1161
- Reverted change to reject build output within the
src
directory, and instead add a check that prevents infinite copies. #1181 #1026
MDBook::execute_build_process
is now publicly accessible in the API so that plugins can more easily initiate the build process. #1099
- Use a different color for Ayu theme's highlighting for Rust attributes (uses a bright color instead of the comment color). #1133
- Adjusted spacing of sidebar entries. #1137
- Slightly adjusted line-height of
<p>
,<ul>
, and<ol>
. #1136 - Handlebars updated to 3.0. #1130
- Fix an issue with sidebar scroll position on reload. #1108
mdbook serve
will retain the current scroll position when the page is reloaded. #1097- Fixed the page name if the book didn't have a title to not be prefixed with
-
. #1145 - HTML attributes
rel=next
andrel=previous
are now supported in "wide" mode (previously they were only set in narrow mode). #1150 - Prevent recursive copies when the destination directory is contained in the source directory. #1135
- Adjusted the menu bar animation to not immediately obscure the top content. #989
- Fix for comments in SUMMARY.md that appear between items. #1167
- The
default-theme
config setting is now case-insensitive. #1079
- Fixed
#
hidden Rust code lines not rendering properly. #1088 - Updated pulldown-cmark to 0.6.1, fixing several issues. #1021
- Switch to relative
rem
font sizes frompx
. #894 - Migrated repository to https://github.com/rust-lang/mdBook/ #1083
- Improvements to the automatic dark theme selection. #1069
- Fragment links now prevent scrolling the header behind the menu bar. #1077
- Fixed error when building a book that has a spacer immediately after the first chapter. #1075
- Added a markdown renderer, which is off by default. This may be useful for debugging preprocessors. #1018
- Code samples may now include line numbers with the
output.html.playpen.line-numbers
configuration value. #1035 - The
watch
andserve
commands will now ignore files listed in.gitignore
. #1044 - Added automatic dark-theme detection based on the CSS
prefers-color-scheme
feature. This may be enabled by settingoutput.html.preferred-dark-theme
to your preferred dark theme. #1037 - Added
rustdoc_include
preprocessor. This makes it easier to include portions of an external Rust source file. The rest of the file is hidden, but the user may expand it to see the entire file, and will continue to work withmdbook test
. #1003 - Added Ctrl-Enter shortcut to the playpen editor to automatically run the sample. #1066
- Added
output.html.playpen.copyable
configuration option to disable the copy button. #1050 - Added ability to dynamically expand and fold sections within the sidebar.
See the
output.html.fold
configuration to enable this feature. #1027
- Use standard
scrollbar-color
CSS along with webkit extension #816 - The renderer build directory is no longer deleted before the renderer is run. This allows a backend to cache results between runs. #985
- Next/prev links now highlight on hover to indicate it is clickable. #994
- Increase padding of table headers. #824
- Errors in
[output.html]
config are no longer ignored. #1033 - Updated highlight.js for syntax highlighting updates (primarily to add async/await to Rust highlighting). #1041
- Raised minimum supported rust version to 1.35. #1003
- Hidden code lines are no longer dynamically removed via JavaScript, but instead managed with CSS. #846 #1065
- Changed the default font set for the ACE editor, giving preference to "Source Code Pro". #1062
- Windows 32-bit releases are no longer published. #1071
- Fixed sidebar auto-scrolling. #1052
- Fixed error message when running
clean
multiple times. #1055 - Actually fix the "next" link on index.html. The previous fix didn't work. #1005
- Stop using
inline-block
forinline code
, fixing selection highlighting and some rendering issues. #1058 - Fix header auto-hide on browsers with momentum scrolling that allows
negative
scrollTop
. #1070
- 🔥 Added ability to include files using anchor points instead of line numbers. #851
- Added
language
configuration value to set the language of the book, which will affect things like the<html lang="en">
tag. #941
- Updated to handlebars 2.0. #977
- Fixed memory leak warning. #967
- Fix more print.html links. #963
- Fixed crash on some unicode input. #978
- Added ability to resize the sidebar. #849
- Added
load_with_config_and_summary
function toMDBook
to be able to build a book with a customSummary
. #883 - Set
noindex
onprint.html
page to prevent robots from indexing it. #844 - Added support for
strikethroughand GitHub-style tasklists. #952
- Command-line help output is now colored. #861
- The build directory is now deleted before rendering starts, instead of after if finishes. #878
- Removed dependency on
same-file
crate. #903 - 💥 Renamed
with_preprecessor
towith_preprocessor
. #906 - Updated ACE editor to 1.4.4, should remove a JavaScript console warning. #935
- Dependencies have been updated. #934 #945
- Highlight.js has been updated. This fixes some TOML highlighting, and adds Julia support. #942
- 🔥 Updated to pulldown-cmark 0.5. This may have significant changes to the formatting of existing books, as the newer version has more accurate interpretation of the CommonMark spec and a large number of bug fixes and changes. #898
- The
diff
language should now highlight correctly. #943 - Make the blank region of a header not clickable. #948
- Rustdoc tests now use the preprocessed content instead of the raw, unpreprocessed content. #891
- Fixed file change detection so that
mdbook serve
only reloads once when multiple files are changed at once. #870 - Fixed on-hover color highlighting for links in sidebar. #834
- Fixed loss of focus when clicking the "Copy" button in code blocks. #867
- Fixed incorrectly stripping the path for
additional-js
files. #796 - Fixed color of
code spans
that are links. #905 - Fixed "next" navigation on index.html. #916
- Fixed keyboard chapter navigation for
file
urls. #915 - Fixed bad wrapping for inline code on some browsers. #818
- Properly load an existing
SUMMARY.md
inmdbook init
. #841 - Fixed some broken links in
print.html
. #871 - The Rust Playground link now supports the 2018 edition. #946
- Added an optional button to the top of the page which will link to a git
repository. Use the
git-repository-url
andgit-repository-icon
options in the[output.html]
section to enable it and set its appearance. #802 - Added a
default-theme
option to the[output.html]
section. #804
- 💥 Header ID anchors no longer add an arbitrary
a
character for headers that start with a non-ascii-alphabetic character. #788
-
🎉 Process-based custom preprocessors. See the docs for more. #792
-
🎉 Configurable preprocessors.
Added
build.use-default-preprocessors
boolean TOML key to allow disabling the built-inlinks
andindex
preprocessors.Added
[preprocessor]
TOML tables to configure each preprocessor.Specifying
[preprocessor.links]
or[preprocessor.index]
will enable the respective built-in preprocessor ifbuild.use-default-preprocessors
isfalse
.Added
fn supports_renderer(&self, renderer: &str) -> bool
to thePreprocessor
trait to specify if the preprocessor supports the given renderer. The default implementation always returnstrue
.Preprocessor::run
now takes a book by value instead of a mutable reference. It should return aBook
value with the intended modifications.Added
PreprocessorContext::renderer
to indicate the renderer being used.
- Fix paths to additional CSS and JavaScript files #777
- Ensure section numbers are correctly incremented after a horizontal separator #790
- Update to handlebars-rs 1.0 #761
- Fix table colors, broken by Stylus -> CSS transition #765
-
💥 This release changes how links are handled in mdBook. Previously, relative links were interpreted relative to the book's root. In
0.2.0
+ links are relative to the page they are in, and use the.md
extension. This has several advantages, such as making links work in other markdown viewers like GitHub. You will likely have to change links in your book to accommodate this change. For example, a book with this layout:chapter_1/ section_1.md section_2.md SUMMARY.md
Previously a link in
section_1.md
tosection_2.md
would look like this:[section_2](chapter_1/section_2.html)
Now it must be changed to this:
[section_2](section_2.md)
-
💥
mdbook test --library-path
now accepts a comma-delimited list of arguments rather than taking all following arguments. This makes it easier to handle the trailing book directory argument without always needing to put--
before it. Multiple instances of the option continue to be accepted:mdbook test -L foo -L bar
. -
💥
mdbook serve
has some of its options renamed for clarity. Seemdbook help serve
for details. -
Embedded rust playpens now use the "stable" playground API. #754