- Update CSS source file for JuliaMono, so that all font variations are included (not just
JuliaMono Regular
) and that the latest version (0.039 -> 0.044) of the font would be used. (#1780, #1784) - Fix
strict
mode to properly print errors, not just a warnings. (#1756, #1776)
- Documenter now deploys documentation from scheduled jobs (
schedule
on GitHub actions). (#1772, #1773) - Improve layout of the table of contents section in the LaTeX/PDF output. (#1750)
- Improve the fix for extraneous whitespace in REPL blocks. (#1774)
- Fix a CSS bug causing the location of the code copy button to not be fixed in the upper right corner. (#1758, #1759)
- Fix a bug when loading the
copy.js
script for the code copy button. (#1760, #1762)
- Fix code copy button in insecure contexts (e.g. pages hosted without https). (#1754)
- Documenter now deploys documentation from manually triggered events (
workflow_dispatch
on GitHub actions). (#1554, #1752) - MathJax 3 has been updated to
v3.2.0
(minor version bump). (#1743) - HTML code blocks now have a copy button. (#1748)
- Documenter now tries to detect the development branch using
git
with the old default (master
) as fallback. If you usemain
as the development branch you shouldn't need to specifydevbranch = "main"
as an argument to deploydocs anymore. (#1443, #1727, #1751)
- Fix depth of headers in LaTeXWriter. (#1716)
- Fix some errors with text/latex MIME type in LaTeXWriter. (#1709)
-
The keyword argument
strict
inmakedocs
is more flexible: in addition to a boolean indicating whether or not any error should result in a failure,strict
also accepts aSymbol
orVector{Symbol}
indicating which error(s) should result in a build failure. (#1689) -
Allow users to inject custom JavaScript resources to enable alternatives to Google Analytics like plausible.io. (#1706)
-
Fix a few accessibility issues in the HTML output. (#1673)
- Fix an error when building documentation for the first time with
push_preview
. (#1693, #1704) - Fix a rare logger error for failed doctests. (#1698, #1699)
- Fix an error occuring with
DocTestFilters = nothing
in@meta
blocks. (#1696)
-
Add support for generating
index.html
to redirect todev
orstable
. The redirected destination is the same as the outdated warning. If there's already user-generatedindex.html
, Documenter will not overwrite the file. (#937, #1657, #1658) -
Checking whether a PR comes from the correct repository when deciding to deploy a preview on GitHub Actions now works on Julia 1.0 too. (#1665)
-
When a doctest fails, pass file and line information associated to the location of the doctest instead of the location of the testing code in Documenter to the logger. (#1687)
-
Enabled colored printing for each output of
@repl
-blocks. (#1691)
- Fix an error introduced in version
v0.27.4
(PR#1634) which was triggered by trailing comments in@eval
/@repl
/@example
blocks. (#1655, #1661)
-
@example
- and@repl
-blocks now support colored output by mapping ANSI escape sequences to HTML. This requires Julia >= 1.6 and passingansicolor=true
toDocumenter.HTML
(e.g.makedocs(format=Documenter.HTML(ansicolor=true, ...), ...)
). In Documenter 0.28.0 this will be the default so to (preemptively) opt-out passansicolor=false
. (#1441, #1628, #1629, #1647) -
Documenter's HTML output can now prerender syntax highlighting of code blocks, i.e. syntax highlighting is applied when generating the HTML page rather than on the fly in the browser after the page is loaded. This requires (i) passing
prerender=true
toDocumenter.HTML
and (ii) anode
(NodeJS) executable available inPATH
. A path to anode
executable can be specified by passing thenode
keyword argument toDocumenter.HTML
(for example from theNodeJS_16_jll
Julia package). In addition, thehighlightjs
keyword argument can be used to specify a file path to a highlight.js library (if this is not given the release used by Documenter will be used). Example configuration:using Documenter, NodeJS_16_jll makedocs(; format = Documenter.HTML( prerender = true, # enable prerendering node = NodeJS_16_jll.node(), # specify node executable (required if not available in PATH) # ... ) # ... )
This feature is experimental and subject to change in future releases. (#1627)
-
The
julia>
prompt is now colored in green in thejulia-repl
language highlighting. (#1639, #1641) -
The
.hljs
CSS class is now added to all code blocks to make sure that the correct text color is used for non-highlighted code blocks and if JavaScript is disabled. (#1645) -
The sandbox module used for evaluating
@repl
and@example
blocks is now removed (replaced withMain
) in text output. (#1633) -
@repl
,@example
, and@eval
blocks now haveLineNumberNodes
inserted such that e.g.@__FILE__
and@__LINE__
give better output and not just"none"
for the file and1
for the line. This requires Julia 1.6 or higher (no change on earlier Julia versions). (#1634) -
Dollar signs in the HTML output no longer get accidentally misinterpreted as math delimiters in the browser. (#890, #1625)
-
Fix overflow behavior for math environments to hide unnecessary vertical scrollbars. (#1575, #1649)
-
Documenter can now deploy documentation directly to the "root" instead of versioned folders. (#1615, #1616)
-
The version of Documenter used for generating a document is now displayed in the build information. (#1609, #1611)
-
The HTML front end no longer uses ligatures when displaying code (with JuliaMono). (#1610, #1617)
- The default font has been changed to
Lato Medium
so that the look of the text would be closer to the old Google Fonts version of Lato. (#1602, #1604)
-
The HTML output now uses JuliaMono as the default monospace font, retrieved from CDNJS. Relatedly, the Lato font is also now retrieved from CDNJS, and the generated HTML pages no longer depend on Google Fonts. (#618, #1561, #1568, #1569, JuliaLang/www.julialang.org)
-
The wording of the text in the the old version warning box was improved. (#1595)
-
Documenter no longer throws an error when generating the version selector if there are no deployed versions. (#1594, #1596)
-
The JS dependencies have been updated to their respective latest versions.
-
highlight.js has been updated to
v11.0.1
(major version bump), which also brings various updates to the highlighting of Julia code. Due to the changes in highlight.js, code highlighting will not work on IE11. (#1503, #1551, #1590) -
Headroom.js has been updated to
v0.12.0
(major version bump). (#1590) -
KaTeX been updated to
v0.13.11
(major version bump). (#1590) -
MathJax versions have been updated to
v2.7.7
(patch version bump) andv3.1.4
(minor version bump), for MathJax 2 and 3, respectively. (#1590) -
jQuery been updated to
v3.6.0
(minor version bump). (#1590) -
Font Awesome has been updated to
v5.15.3
(patch version bump). (#1590) -
lunr.js has been updated to
v2.3.9
(patch version bump). (#1590) -
lodash.js has been updated to
v4.17.21
(patch version bump). (#1590)
-
-
deploydocs
now throws an error if something goes wrong with the Git invocations used to deploy togh-pages
. (#1529) -
In the HTML output, the site name at the top of the sidebar now also links back to the main page of the documentation (just like the logo). (#1553)
-
The generated HTML sites can now detect if the version the user is browsing is not for the latest version of the package and display a notice box to the user with a link to the latest version. In addition, the pages get a
noindex
tag which should aid in removing outdated versions from search engine results. (#1302, #1449, #1577) -
The analytics in the HTML output now use the
gtag.js
script, replacing the old deprecated setup. (#1559) -
A bad
repo
argument todeploydocs
containing a protocol now throws an error instead of being misinterpreted. (#1531, #1533) -
SVG images generated by
@example
blocks are now properly scaled to page width by URI-encoding the images, instead of directly embedding the SVG tags into the HTML. (#1537, #1538) -
deploydocs
no longer tries to deploy pull request previews from forks on GitHub Actions. (#1534, #1567) -
Documenter is no longer compatible with IOCapture v0.1 and now requires IOCapture v0.2. (#1549)
- The internal naming of the temporary modules used to run doctests changed to accommodate upcoming printing changes in Julia. (JuliaLang/julia#39841, #1540)
-
doctest()
no longer throws an error if cleaning up the temporary directory fails for some reason. (#1513, #1526) -
If
jldoctest
keyword arguments fail to parse, these now get logged as doctesting failures, rather than being ignored with a warning or makingmakedocs
throw an error (depending on why they fail to parse). (#1556, #1557) -
Script-type doctests that have an empty output section no longer crash Documenter. (#1510)
-
When checking for authentication keys when deploying, Documenter now more appropriately checks if the environment variables are non-empty, rather than just whether they are defined. (#1511)
-
Doctests now correctly handle the case when the repository has been checked out with
CRLF
line endings (which can happen on Windows withcore.autocrlf=true
). (#1516, #1519, #1520) -
Multiline equations are now correctly handled in at-block outputs. (#1518)
- HTML assets that are copied directly from Documenters source to the build output now has correct file permissions. (#1497)
-
The PDF/LaTeX output is again provided as a Documenter built-in and can be enabled by passing an instance of
Documenter.LaTeX
toformat
. The DocumenterLaTeX package has been deprecated. (#1493)For upgrading: If using the PDF/LaTeX output, change the
format
argument ofmakedocs
toformat = Documenter.LaTeX(...)
and remove all references to the DocumenterLaTeX package (e.g. fromdocs/Project.toml
). -
Objects that render as equations and whose
text/latex
representations are wrapped in display equation delimiters\[ ... \]
or$$ ... $$
are now handled correctly in the HTML output. (#1278, #1283, #1426) -
The search page in the HTML output now shows the page titles in the search results. (#1468)
-
The HTML front end now respects the user's OS-level dark theme preference (determined via the
prefers-color-scheme: dark
media query). (#1320, #1456) -
HTML output now bails early if there are no pages, instead of throwing an
UndefRefError
. In addition, it will also warn ifindex.md
is missing and it is not able to generate the main landing page (index.html
). (#1201, #1491) -
deploydocs
now prints a warning on GitHub Actions, Travis CI and Buildkite if the current branch ismain
, butdevbranch = "master
, which indicates a possible Documenter misconfiguration due to GitHub changing the default primary branch of a repository tomain
. (#1489)
- In the HTML output, display equations that are wider than the page now get a scrollbar instead of overflowing. (#1470, #1476)
-
Documenter can now deploy from Buildkite CI to GitHub Pages with
Documenter.Buildkite
. (#1469) -
Documenter now support Azure DevOps Repos URL scheme when generating edit and source links pointing to the repository. (#1462, #1463, #1471)
-
Type aliases of
Union
s (e.g.const MyAlias = Union{Foo,Bar}
) are now correctly listed as "Type" in docstrings. (#1466, #1474) -
HTMLWriter no longers prints a warning when encountering
mailto:
URLs in links. (#1472)
-
Documenter can now deploy from GitLab CI to GitHub Pages with
Documenter.GitLab
. (#1448) -
The URL to the MathJax JS module can now be customized by passing the
url
keyword argument to the constructors (MathJax2
,MathJax3
). (#1428, #1430) -
Documenter.doctest
now correctly accepts thedoctestfilters
keyword, similar toDocumenter.makedocs
. (#1364, #1435) -
The
Selectors.dispatch
function now uses a cache to avoid callingsubtypes
on selectors multiple times during amakedocs
call to avoid slowdowns due tosubtypes
being slow. (#1438, #1440, #1452)
-
The
Documenter.MathJax
type, used to specify the mathematics rendering engine in the HTML output, is now deprecated in favor ofDocumenter.MathJax2
. (#1362, #1367)For upgrading: simply replace
MathJax
withMathJax2
. I.e. instead ofmakedocs( format = Documenter.HTML(mathengine = Documenter.MathJax(...), ...), ... )
you should have
makedocs( format = Documenter.HTML(mathengine = Documenter.MathJax2(...), ...), ... )
-
It is now possible to use MathJax v3 as the mathematics rendering in the HTML output. This can be done by passing
Documenter.MathJax3
as themathengine
keyword toHTML
. (#1362, #1367) -
The deployment commits created by Documenter are no longer signed by the @zeptodoctor user, but rather with the non-existing
documenter@juliadocs.github.io
email address. (#1379, #1388) -
REPL doctest output lines starting with
#
right after the input code part are now correctly treated as being part of the output (unless prepended with 7 spaces, in line with the standard heuristic). (#1369) -
Documenter now throws away the extra information from the info string of a Markdown code block (i.e.
```language extra-info
), to correctly determine the language, which should be a single word. (#1392, #1400) -
Documenter now works around a Julia 1.5.0 regression (JuliaLang/julia#36953) which broke doctest fixing if the original doctest output was empty. (#1337, #1389)
-
When automatically determining the page list (i.e.
pages
is not passed tomakedocs
), Documenter now listsindex.md
before other pages. (#1355) -
The output text boxes of
@example
blocks are now style differently from the code blocks, to make it easier to visually distinguish between the input and output. (#1026, #1357, #1360) -
The generated HTML site now displays a footer by default that mentions Julia and Documenter. This can be customized or disabled by passing the
footer
keyword toDocumeter.HTML
. (#1184, #1365) -
Warnings that cause
makedocs
to error whenstrict=true
are now printed as errors whenstrict
is set totrue
. (#1088, #1349) -
In the PDF/LaTeX output, equations that use the
align
oralign*
environment are no longer further wrapped inequation*
/split
. (#1368)
-
When deploying with
deploydocs
, any SSH username can now be used (not justgit
), by prependingusername@
to the repository URL in therepo
argument. (#1285) -
The first link fragment on each page now omits the number; before the rendering resulted in:
#foobar-1
,#foobar-2
, and now:#foobar
,#foobar-2
. For backwards compatibility the old fragments are also inserted such that old links will still point to the same location. (#1292) -
When deploying on CI with
deploydocs
, the build information in the version number (i.e. what comes after+
) is now discarded when determining the destination directory. This allows custom tags to be used to fix documentation build and deployment issues for versions that have already been registered. (#1298) -
You can now optionally choose to push pull request preview builds to a different branch and/or different repository than the main docs builds, by setting the optional
branch_previews
and/orrepo_previews
keyword arguments to thedeploydocs
function. Also, you can now optionally choose to use a different SSH key for preview builds, by setting the optionalDOCUMENTER_KEY_PREVIEWS
environment variable; if theDOCUMENTER_KEY_PREVIEWS
environment variable is not set, then the regularDOCUMENTER_KEY
environment variable will be used. (#1307, #1310, #1315) -
The LaTeX/PDF backend now supports the
platform="none"
keyword, which outputs only the TeX source files, rather than a compiled PDF. (#1338, #1339) -
Linkcheck no longer prints a warning when enountering a
302 Found
temporary redirect. (#1344, #1345) -
Deps.pip
is again a closure and gets executed during thedeploydocs
call, not before it. (#1240) -
Custom assets (CSS, JS etc.) for the HTML build are now again included as the very last elements in the
<head>
tag so that it would be possible to override default the default assets. (#1328) -
Docstrings from
@autodocs
blocks are no longer sorted according to an undocumented rule where exported names should come before unexported names. Should this behavior be necessary, the@autodocs
can be replaced by two separate blocks that use thePublic
andPrivate
options to filter out the unexported or exported docstrings in the first or the second block, respectively. (#964, #1323)
- Some sections and page titles that were missing from the search results in the HTML backend now show up. (#1311)
-
The
curl
timeout when checking remote links is now configurable with thelinkcheck_timeout
keyword. (#1057, #1295) -
Special characters are now properly escaped in admonition titles in LaTeX/PDF builds and do not cause the PDF build to fail anymore. (#1299)
- Canonical URLs are now properly prettified (e.g.
/path/
instead of/path/index.html
) when usingprettyurls=true
. (#1293)
- Non-standard admonition categories are (again) applied to the admonition
<div>
elements in HTML output (asis-category-$category
). (#1279, #1280)
-
Remove
only
, a new export fromBase
on Julia 1.4, from the JS search filter. (#1264) -
Fix errors in LaTeX builds due to bad escaping of certain characters. (#1118, #1119, #1200, #1269)
- Reorganize some of the internal variables in Documenter's Sass sources, to make it easier to create custom themes on top of the Documenter base theme. (#1258)
- Documenter now correctly emulates the "REPL softscope" (Julia 1.5) in REPL-style doctest blocks and
@repl
blocks. (#1232)
-
Change the inline code to less distracting black color in the HTML light theme. (#1212, #1222)
-
Add the ability specify the
lang
attribute of thehtml
tag in the HTML output, to better support documentation pages in other languages. By default Documenter now defaults tolang="en"
. (#1223)
- Fix a case where Documenter's deployment would fail due to git picking up the wrong ssh config file on non-standard systems. (#1216)
- Improvements to logging in
deploydocs
. (#1195)
- Fix a bad
mktempdir
incantation inLaTeXWriter
. (#1194)
-
Documenter no longer creates a symlink between the old
latest
url to specifieddevurl
. (#1151)For upgrading: Make sure that links to the latest documentation have been updated (e.g. the package README).
-
The deprecated
makedocs
keywords (html_prettyurls
,html_disable_git
,html_edit_branch
,html_canonical
,assets
,analytics
) have been removed. (#1107)For upgrading: Pass the corresponding values to the
HTML
constructor when settings theformat
keyword. -
Documenter can now deploy preview documentation from pull requests (with head branch in the same repository, i.e. not from forks). This is enabled by passing
push_preview=true
todeploydocs
. (#1180) -
The Documenter HTML front end now uses KaTeX as the default math rendering engine. (#1097)
Possible breakage: This may break the rendering of equations that use some more esoteric features that are only supported in MathJax. It is possible to switch back to MathJax by passing
mathengine = Documenter.MathJax()
to theHTML
constructor in theformat
keyword. -
The HTML front end generated by Documenter has been redesigned and now uses the Bulma CSS framework. (#1043)
Possible breakage: Packages overriding the default Documenter CSS file, relying on some external CSS or relying on Documenter's CSS working in a particular way will not build correct-looking sites. Custom themes should now be developed as Sass files and compiled together with the Documenter and Bulma Sass dependencies (under
assets/html/scss
). -
The
edit_branch
keyword toDocumenter.HTML
has been deprecated in favor of the newedit_link
keyword. As a new feature, passingedit_link = nothing
disables the "Edit on GitHub" links altogether. (#1173)For upgrading: If using
edit_branch = nothing
, useedit_link = :commit
instead. If passing aString
toedit_branch
, pass that toedit_link
instead. -
Deployment is now more customizable and thus not as tied to Travis CI as before. (#1147, #1171, #1180)
-
Documenter now has builtin support for deploying from GitHub Actions. Documenter will autodetect the running system, unless explicitly specified. (#1144, #1152)
-
When using GitHub Actions Documenter will (try to) post a GitHub status with a link to the generated documentation. This is especially useful for pull request preview builds (see above). (#1186)
-
The handling of JS and CSS assets is now more customizable:
- The
asset
function can now be used to declare remote JS and CSS assets in theassets
keyword. (#1108) - The
highlights
keyword toHTML
can be used to declare additional languages that should be highlighted in code blocks. (#1094) - It is now possible to choose between MathJax and KaTeX as the math rendering engine with the
mathengine
keyword toHTML
and to set their configuration in themake.jl
script directly. (#1097)
- The
-
The JS and CSS dependencies of the front end have been updated to the latest versions. (#1189)
-
Displaying of the site name at the top of the sidebar can now be disabled by passing
sidebar_sitename = false
toHTML
in theformat
keyword. (#1089) -
For deployments that have Google Analytics enabled, the URL fragment (i.e. the in-page
#
target) also stored in analytics. (#1121) -
Page titles are now boosted in the search, yielding better search results. (#631, #1112, #1113)
-
In the PDF/LaTeX output, images that are wider than the text are now being scaled down to text width automatically. The PDF builds now require the adjustbox LaTeX package to be available. (#1137)
-
If the TeX compilation fails for the PDF/LaTeX output,
makedocs
now throws an exception. (#1166) -
LaTeXWriter
now outputs valid LaTeX if an@contents
block is nested by more than two levels, or if@contents
or@index
blocks do not contain any items. (#1166)
- Fix file permission error when
Pkg.test
ing Documenter. (#1115)
-
Documenter no longer throws an error if the provided
EditURL
argument is missing. (#1076, #1077) -
Non-standard Markdown AST nodes no longer cause Documenter to exit with a missing method error in doctesting and HTML output. Documenter falls back to
repr()
for such nodes. (#1073, #1075) -
Docstrings parsed into nested
Markdown.MD
objects are now unwrapped correctly and do not cause Documenter to crash with a missing method error anymore. The user can run into that when reusing docstrings with the@doc @doc(foo) function bar end
pattern. (#1075)
-
Documenter v0.23 requires Julia v1.0. (#1015)
-
DocTestSetup
s that are defined in@meta
blocks no longer apply to doctests that are in docstrings. (#774)-
Specifically, the pattern where
@docs
or@autodocs
blocks were surrounded by@meta
blocks, setting up a sharedDocTestSetup
for many docstrings, no longer works. -
Documenter now exports the
DocMeta
module, which provides an alternative way to addDocTestSetup
to docstrings.
For upgrading: Use
DocMeta.setdocmeta!
inmake.jl
to set up aDocTestSetup
that applies to all the docstrings in a particular module instead and, if applicable, remove the now redundant@meta
blocks. See the "Setup code" section under "Doctesting" in the manual for more information. -
-
makedocs
now accepts thedoctest = :only
keyword, which allows doctests to be run while most other build steps, such as rendering, are skipped. This makes it more feasible to run doctests as part of the test suite (see the manual for more information). (#198, #535, #756, #774) -
Documenter now exports the
doctest
function, which verifies the doctests in all the docstrings of a given module. This can be used to verify docstring doctests as part of test suite, or to fix doctests right in the REPL. (#198, #535, #756, #774, #1054) -
makedocs
now accepts theexpandfirst
argument, which allows specifying a set of pages that should be evaluated before others. (#1027, #1029) -
The evaluation order of pages is now fixed (unless customized with
expandfirst
). The pages are evaluated in the alphabetical order of their file paths. (#1027, #1029) -
The logo image in the HTML output will now always point to the first page in the navigation menu (as opposed to
index.html
, which may or may not exist). When using pretty URLs, theindex.html
part now omitted from the logo link URL. (#1005) -
Minor changes to how doctesting errors are printed. (#1028)
-
Videos can now be included in the HTML output using the image syntax (
![]()
) if the file extension matches a known format (.webm
,.mp4
,.ogg
,.ogm
,.ogv
,.avi
). (#1034) -
The PDF output now uses the DejaVu Sans and DejaVu Sans Mono fonts to provide better Unicode coverage. (#803, #1066)
-
The HTML output now outputs HTML files for pages that are not referenced in the
pages
keyword too (Documenter finds them according to their extension). But they do exists outside of the standard navigation hierarchy (as defined bypages
). This fixes a bug where these pages could still be referenced by@ref
links and@contents
blocks, but in the HTML output, the links ended up being broken. (#1031, #1047) -
makedocs
now throws an error when the format objects (Documenter.HTML
,LaTeX
,Markdown
) get passed positionally. The format types are no longer subtypes ofDocumenter.Plugin
. (#1046, #1061) -
Doctesting now also handles doctests that contain invalid syntax and throw parsing errors. (#487, #1062)
-
Stacktraces in doctests that throw an error are now filtered more thoroughly, fixing an issue where too much of the stacktrace was included when
doctest
ormakedocs
was called from a more complicated context. (#1062) -
The current working directory when evaluating
@repl
and@example
blocks can now be set to a fixed directory by passing theworkdir
keyword tomakedocs
. The new keyword and its behaviour are experimental and not part of the public API. (#1013, #1025)
- Add DocStringExtensions 0.8 as an allowed dependency version. (#1071)
- Fix a test dependency problem revealed by a bugfix in Julia / Pkg. (#1037)
-
Documenter no longer crashes if the build includes doctests from docstrings that are defined in files that do not exist on the file system (e.g. if a Julia Base docstring is included when running a non-source Julia build). (#1002)
-
URLs for files in the repository are now generated correctly when the repository is used as a Git submodule in another repository. (#1000, #1004)
-
When checking for omitted docstrings, Documenter no longer gives "
Package.Package
missing" type false positives. (#1009) -
makedocs
again exits with an error ifstrict=true
and there is a doctest failure. (#1003, #1014)
- Fixed filepaths for images included in the .tex file for PDF output on Windows. (#999)
-
Error reporting for meta-blocks now handles missing files gracefully instead of throwing. (#996)
-
The
sitename
keyword argument todeploydocs
, which is required for the default HTML output, is now properly documented. (#995)
- Fixed a world-age related bug in doctests. (#994)
-
The
assets
andanalytics
arguments tomakedocs
have been deprecated in favor of the corresponding arguments of theDocumenter.HTML
format plugin. (#953)For upgrading: pass the corresponding arguments with the
Documenter.HTML
plugin instead. E.g. instead ofmakedocs( assets = ..., analytics = ..., ... )
you should have
makedocs( format = Documenter.HTML(assets = ..., analytics = ...), ... )
Note: It is technically possible to specify the same argument twice with different values by passing both variants. In that case the value passed to
makedocs
takes precedence. -
Documentation is no longer deployed on Travis CI cron jobs. (#917)
-
Log messages from failed
@meta
,@docs
,@autodocs
,@eval
,@example
and@setup
blocks now include information about the source location of the block. (#929) -
Docstrings from
@docs
-blocks are now included in the rendered docs even if some part(s) of the block failed. (#928, #935) -
The Markdown and LaTeX output writers can now handle multimedia output, such as images, from
@example
blocks. All the writers now also handletext/markdown
output, which is preferred overtext/plain
if available. (#938, #948) -
The HTML output now also supports SVG, WebP, GIF and JPEG logos. (#953)
-
Reporting of failed doctests are now using the logging system to be consistent with the rest of Documenter's output. (#958)
-
The construction of the search index in the HTML output has been refactored to make it easier to use with other search backends in the future. The structure of the generated search index has also been modified, which can yield slightly different search results. Documenter now depends on the lightweight JSON.jl package. (#966)
-
Docstrings that begin with an indented code block (such as a function signature) now have that block highlighted as Julia code by default. This behaviour can be disabled by passing
highlightsig=false
tomakedocs
. (#980) -
Paths in
include
calls in@eval
,@example
,@repl
andjldoctest
blocks are now interpreted to be relativepwd
, which is set to the output directory of the resulting file. (#941) -
deploydocs
andgit_push
now support non-github repos correctly and work when the.ssh
directory does not already exist or the working directory contains spaces. (#971) -
Tables now honor column alignment in the HTML output. If a column does not explicitly specify its alignment, the parser defaults to it being right-aligned, whereas previously all cells were left-aligned. (#511, #989)
-
Code lines ending with
# hide
are now properly hidden for CRLF inputs. (#991)
- Deprecation warnings for
format
now get printed correctly when multiple formats are passed as aVector
. (#967)
- A bug in
jldoctest
-blocks that, in rare cases, resulted in wrong output has been fixed. (#959, #960)
- The lunr.js and lodash JavaScript dependencies have been updated to their latest patch versions (from 2.3.1 to 2.3.5 and 4.17.4 to 4.17.11, respectively). This is in response to a vulnerability in lodash <4.17.11 (CVE-2018-16487). (#946)
-
linkcheck
now handles servers that do not supportHEAD
requests and properly checks for status codes of FTP responses. (#934)
-
@repl
blocks now work correctly together with quoted expressions. (#923, #926) -
@example
,@repl
and@eval
blocks now handle reserved words, e.g.try
/catch
, correctly. (#886, #927)
-
The symbol values to the
format
argument ofmakedocs
(:html
,:markdown
,:latex
) have been deprecated in favor of theDocumenter.HTML
,Markdown
andLaTeX
objects. TheMarkdown
andLaTeX
types are exported from the DocumenterMarkdown and DocumenterLaTeX packages, respectively. HTML output is still the default. (#891)For upgrading: If you don't specify
format
(i.e. you rely on the default) you don't have to do anything. Otherwise update calls tomakedocs
to use struct instances instead of symbols, e.g.makedocs( format = :markdown )
should be changed to
using DocumenterMarkdown makedocs( format = Markdown() )
-
The
html_prettyurls
,html_canonical
,html_disable_git
andhtml_edit_branch
arguments tomakedocs
have been deprecated in favor of the corresponding arguments of theDocumenter.HTML
format plugin. (#864, #891)For upgrading: pass the corresponding arguments with the
Documenter.HTML
plugin instead. E.g. instead ofmakedocs( html_prettyurls = ..., html_canonical = ..., ... )
you should have
makedocs( format = Documenter.HTML(prettyurls = ..., canonical = ...), ... )
Note: It is technically possible to specify the same argument twice with different values by passing both variants. In that case the value to the deprecated
html_*
variant takes precedence. -
Packages extending Documenter can now define subtypes of
Documenter.Plugin
, which can be passed tomakedocs
as positional arguments to pass options to the extensions. (#864) -
@autodocs
blocks now support theFilter
keyword, which allows passing a user-defined function that will filter the methods spliced in by the at-autodocs block. (#885) -
linkcheck
now supports checking URLs using the FTP protocol. (#879) -
Build output logging has been improved and switched to the logging macros from
Base
. (#876) -
The default
documenter.sty
LaTeX preamble now include\usepackage{graphicx}
. (#898) -
deploydocs
is now more helpful when it fails to interpretDOCUMENTER_KEY
. It now also uses theBatchMode
SSH option and throws an error instead of asking for a passphrase and timing out the Travis build whenDOCUMENTER_KEY
is broken. (#697, #907) -
deploydocs
now have aforcepush
keyword argument that can be used to force-push the built documentation instead of adding a new commit. (#905)
-
Documenter v0.20 requires at least Julia v0.7. (#795)
-
Documentation deployment via the
deploydocs
function has changed considerably.-
The user-facing directories (URLs) of different versions and what gets displayed in the version selector have changed. By default, Documenter now creates the
stable/
directory (as before) and a directory for every minor version (vX.Y/
). Therelease-X.Y
directories are no longer created. (#706, #813, #817)Technically, Documenter now deploys actual files only to
dev/
andvX.Y.Z/
directories. The directories (URLs) that change from version to version (e.g.latest/
,vX.Y
) are implemented as symlinks on thegh-pages
branch.The version selector will only display
vX.Y/
,stable/
anddev/
directories by default. This behavior can be customized with theversions
keyword ofdeploydocs
. -
Documentation from the development branch (e.g.
master
) now deploys todev/
by default (instead oflatest/
). This can be customized with thedevurl
keyword. (#802) -
The
latest
keyword todeploydocs
has been deprecated and renamed todevbranch
. (#802) -
The
julia
andosname
keywords todeploydocs
are now deprecated. (#816) -
The default values of the
target
,deps
andmake
keywords todeploydocs
have been changed. See the default format change below for more information. (#826)
For upgrading:
-
If you are using the
latest
keyword, then just usedevbranch
with the same value instead. -
Update links that point to
latest/
to point todev/
instead (e.g. in the README). -
Remove any links to the
release-X.Y
branches and remove the directories from yourgh-pages
branch. -
The operating system and Julia version should be specified in the Travis build stage configuration (via
julia:
andos:
options, see "Hosting Documentation" in the manual for more details) or by checking theTRAVIS_JULIA_VERSION
andTRAVIS_OS_NAME
environment variables inmake.jl
yourself.
-
-
makedocs
will now build Documenter's native HTML output by default anddeploydocs
' defaults now assume the HTML output. (#826)-
The default value of the
format
keyword ofmakedocs
has been changed to:html
. -
The default value of the
target
keyword todeploydocs
has been changed to"build"
. -
The default value of the
make
anddeps
keywords todeploydocs
have been changed tonothing
.
For upgrading: If you are relying on the Markdown/MkDocs output, you now need to:
-
In
makedocs
, explicitly setformat = :markdown
-
In
deploydocs
, explicitly settarget = "site" deps = Deps.pip("pygments", "mkdocs") make = () -> run(`mkdocs build`)
-
Explicitly import
DocumenterMarkdown
inmake.jl
. See theMarkdownWriter
deprecation below.
If you already specify any of the changed keywords, then you do not need to make any changes to those keywords you already set.
However, if you are setting any of the values to the new defaults (e.g. when you are already using the HTML output), you may now rely on the new defaults.
-
-
The Markdown/MkDocs (
format = :markdown
) and PDF/LaTeX (format = :latex
) outputs now require an external package to be loaded (DocumenterMarkdown and DocumenterLaTeX, respectively). (#833)For upgrading: Make sure that the respective extra package is installed and then just add
using DocumenterMarkdown
orusing DocumenterLaTeX
tomake.jl
. -
"Pretty URLs" are enabled by default now for the HTML output. The default value of the
html_prettyurls
has been changed totrue
.For a page
foo/page.md
Documenter now generatesfoo/page/index.html
, instead offoo/page.html
. On GitHub pages deployments it means that your URLs look likefoo/page/
instead offoo/page.html
.For local builds you should explicitly set
html_prettyurls = false
.For upgrading: If you wish to retain the old behavior, set
html_prettyurls = false
inmakedocs
. If you already sethtml_prettyurls
, you do not need to change anything. -
The
Travis.genkeys
andDocumenter.generate
functions have been moved to a separate DocumenterTools.jl package. (#789) -
If Documenter is not able to determine which Git hosting service is being used to host the source, the "Edit on XXX" links become "Edit source" with a generic icon. (#804)
-
The at-blocks now support
MIME"text/html"
rendering of objects (e.g. for interactive plots). I.e. if a type hasshow(io, ::MIME"text/html", x)
defined, Documenter now uses that when rendering the objects in the document. (#764) -
Enhancements to the sidebar. When loading a page, the sidebar will jump to the current page now. Also, the scrollbar in WebKit-based browsers look less intrusive now. (#792, #854, #863)
-
Minor style enhancements to admonitions. (#841)
-
The at-blocks that execute code can now handle
include
statements. (#793, #794) -
At-docs blocks no longer give an error when containing empty lines. (#823, #824)