CHANGELOG.md

# Changelog

## v0.40.1 (2026-01-31)

  * Enhancements
    * Remove link to source from generated .md files
    * Improve word-breaking of module names and sizing of main page titles
    * Include description in llms.txt

  * Bug fixes
    * Fix headers in custom groups

## v0.40.0 (2026-01-20)

  * Enhancements
    * Introduce Markdown formatter (thanks to Yordis Prietro)
    * Generate a `llms.txt` document by default and add a "Copy Markdown" button to the top of every page
    * Run retriever only once per formatter
    * Support anchors on redirects

  * Bug fixes
    * Copy button on `erl` and `iex` snippets now include prompts
    * Fix headers having wrong selectors due to whitespace minification
    * Only include `.html` links on Swup

  * Breaking changes
    * Revamp the ExDoc entrypoint and formatter API. While those have never been made public, others may have relied on it. We have now changed and documented them on the path to standardization
    * The previously deprecated :assets option will raise if given a string, pass a map instead

## v0.39.3 (2025-12-09)

  * Enhancements
    * Add the option to trim down the footer

## v0.39.2 (2025-12-04)

  * Bug fixes
    * Do not strip hrefs on summaries
    * Show go to latest for prereleases
    * Prevent fake italic in autocomplete text
    * Rename "Search Hexdocs" link to "Go to package docs"

## v0.39.1 (2025-10-23)

  * Bug fixes
    * Improve box-shadow around autocompletion
    * Trim search engine selector on small screens
    * Fix admonition titles on small screens

## v0.39.0 (2025-10-23)

  * Enhancements
    * Allow custom search engines to be configured with support for `https://hexdocs.pm`
    * Improve admonition blocks so they better integrate with the page flow
  * Bug fixes
    * Add .cheatmd to EPUB to avoid broken links
  * Backwards incompatible changes
    * Validate :extras fields: if you were previously setting them to unexpected values, you may now get an exception
    * Setting `exdoc:full-text-search-url` metadata is no longer supported, using the new search engines configuration

## v0.38.4 (2025-09-09)

  * Bug fixes
    * Fix escaping of links when they have ampersand in them
    * Increase spacing of footers in pages
    * Align stale icon positioning

## v0.38.3 (2025-08-17)

  * Enhancements
    * Allow configuring autocomplete limit, and default it to 10 instead of 8
    * Display description text in docs groups
    * Load discovered makeup apps for CLI

## v0.38.2 (2025-05-27)

  * Bug fixes
    * Render documents with hardcoded `<h2>`/`<h3>` entries correctly
    * Fix padding on external links

## v0.38.1 (2025-05-12)

  * Bug fixes
    * Ensure stripping apps for Erlang sources emit valid AST

## v0.38.0 (2025-05-09)

  * Enhancements
    * Allow listing outside URLs in extras

  * Bug fixes
    * Ensure some cases where `<`, `>`, `&` and in headers would appear as entities in the sidebar
    * Fix outline caused by swup.js on Webkit based browsers
    * Fix bugs when computing synopsis
    * Automatically close the sidebar when navigating sections on mobile

## v0.37.3 (2025-03-06)

  * Bug fixes
    * Handle `http-equiv=refresh` during Swup.js navigation
    * Include full error description when syntax highlighting fails

## v0.37.2 (2025-02-19)

  * Bug fixes
    * Fix code highlighting for languages with non-alphanumeric characters

## v0.37.1 (2025-02-10)

  * Enhancements
    * Support umbrella projects via the CLI

  * Bug fixes
    * Make sure docs are rendered inside iframes

## v0.37.0 (2025-02-05)

Thanks to @liamcmitchell and @hichemfantar for the extensive contributions in this new release.

  * Enhancements
    * Optimize and parallelize module retriever, often leading to 20x-30x faster docs generation
    * Considerably improve page loading times in the browser
    * Allow customizing `search_data` for extra pages
    * Use native style for scroll bars
    * Enhance links between extras/pages/guides with padding and hover effects
    * Go to latest goes to the same page if it exists, root otherwise
    * Apply new style and layout for tabs
    * Increase font-weight on sidebar on Apple machines/devices
    * Improve accessibility across deprecation, links, and summaries
    * Add compatibility to Erlang/OTP 28+
    * Rely on the operating system monospace font for unified experience and better load times
    * Introduce `"exdoc:loaded"` window event to track navigation
    * Support for favicons

  * Bug fixes
    * Move action links out from heading tags

## v0.36.1 (2024-12-24)

  * Enhancements
    * Show a progress bar if navigation takes more than 300ms

  * Bug fixes
    * Fix dark mode styling on cheatsheets
    * Ensure the sidebar closes on hosting navigation in mobile

## v0.36.0 (2024-12-24)

  * Enhancements
    * Use swup.js for navigation on hosted sites
    * Support `:group` in documentation metadata for grouping in the sidebar
    * Support `:default_group_for_doc` in configuration to set the default group for functions, callbacks, and types
    * Add `--warnings-as-errors` flag to `mix docs`

  * Bug fixes
    * Fix typespec with `(...) -> any()`
    * Do not trap `tab` commands in the search bar

## v0.35.1 (2024-11-21)

  * Bug fixes
    * Make sure symlinks are copied from assets directory
    * Discard private functions documented by EDoc

## v0.35.0 (2024-11-19)

  * Enhancements
    * Store `proglang` in `searchdata.js`
    * Allow searching for atoms inside backticks
    * Add support for nominal types from Erlang/OTP 28
    * Support a new `:redirects` option which allows configuring redirects in the sidebar
    * Improve warning when referencing type from a private module
    * Rename "Search HexDocs package" modal to "Go to package docs"
    * Support built-in Erlang/OTP apps in "Go to package docs"

  * Bug fixes
    * Switch anchor `title` to `aria-label`
    * Convert admonition blockquotes to sections for screen reader users
    * Fix code copy buttons within tabsets

## v0.34.2 (2024-07-08)

  * Enhancements
    * Allow anchors on function and callback autolinks

  * Bug fixes
    * Make module attributes searchable without leading @
    * Make Mod.fun pairs searchable without the arity
    * Do not emit warnings on unary plus in typespecs
    * Add top margin to nested module prefix in sidebar

## v0.34.1 (2024-06-30)

  * Enhancements
    * Add a `v` shortcut to open/focus the version select
    * Compatibility fixes for Elixir v1.17 and Erlang/OTP 27+

  * Bug fixes
    * Do not crash on unknown media types in assets during EPUB generation
    * Fix slight shift on search bar input during focus
    * Avoid unwanted showing/hiding of search bar on mobile when scrolling

## v0.34.0 (2024-05-30)

This release requires Elixir v1.13.

  * Enhancements
    * Allow several assets to be copied by passing a map to `:assets`
    * Improve compatibility when hosting ExDoc on a platform that strips `.html`

  * Bug fixes
    * Link to the latest version of Erlang/OTP docs

  * Deprecations
    * Deprecate passing a binary to `:assets`

## v0.33.0 (2024-05-21)

  * Enhancements
    * Keep the sidebar light in light mode

## v0.32.2 (2024-05-10)

  * Enhancements
    * Allow the modal to close when we click outside the modal content

  * Bug fixes
    * Fix indentation of -spec/-type in Erlang
    * Fix Mix task autolink for tasks with underscores
    * Avoid conflicts between custom headers with tooltips/modals

## v0.32.1 (2024-04-12)

  * Bug fixes
    * Add version dropdown back on hexdocs.pm
    * Improve search input styling and scrolling

## v0.32.0 (2024-04-10)

  * Enhancements
    * Add the ability to see previews during autocompletion
    * Remove serif font for content and prefer using the operating system font instead
    * Allow the search bar to be focused at any moment
    * Make functions acceptable for `:skip_undefined_reference_warnings_on`
    * Make functions acceptable for `:skip_code_autolink_to`
    * Allow using meta tags to disable autocompletion and configure the full text search

  * Bug fixes
    * Fix blockquote padding inside tabset on small screens
    * Consistently index h2 and h3 headers

## v0.31.2 (2024-03-05)

  * Enhancements
    * Add `equiv` handling for types and callbacks for Erlang
    * Add cmd-k/ctrl-k shortcut to focus searchbar
    * Use dark backgrounds for admonition blocks in dark theme
    * Autolink .cheatmd files
    * Warn when extra link targets an application not in dependencies
    * Add support for `before_closing_footer_tag`

  * Bug fixes
    * Fix sidebar toggle flickering on page load
    * Fix background color inside code snippets with no language in dark mode
    * Hide search bar and background layer on print
    * Use blue links for Erlang
    * Fix logo not declared in EPUB's OPF manifest
    * Escape URIs and titles in EPUB
    * Fix URL slug not updating on anchor clicks

## v0.31.1 (2024-01-11)

  * Enhancements
    * Make the sidebar horizontally resizable
    * Show the sidebar button and search bar on scroll up on mobile devices
    * More improvements to Erlang/OTP 27 support
    * Document that `source_url_pattern` can be a fun
    * Support `m:Module#anchor`

## v0.31.0 (2023-12-11)

  * Enhancements
    * Allow searching atoms, module attributes, and words finishing with `?` and `!`
    * Support upcoming Erlang/OTP 27 documentation format
    * Include prebuilt binaries on every release
    * Add borders dividing table rows in rendered content
    * Add accurate warnings for missing docs from Elixir v1.16+
    * Support `e:dep:some-page.md` for explicitly linking to a page in a package
    * Support `m:SomeModule` for explicitly linking to a module
    * Add `noindex` meta tag to 404 and Search pages
    * Move search to the main content so we can display more results
    * Warn when referencing functions, types, and callbacks from filtered out modules

  * Bug fixes
    * Fix search for words with hyphens in them
    * Fix search for contents inside EEx interpolation

## v0.30.9 (2023-10-20)

  * Bug fixes
    * Fix a scenario where invalid assets would be generated

  * Enhancements
    * Add admonition EPUB styles

## v0.30.8 (2023-10-17)

  * Bug fixes
    * Fix regression in umbrella applications

## v0.30.7 (2023-10-15)

  * Bug fixes
    * Do not crash on EDoc type annotations
    * Do not crash on functions without name
    * Handle remote types in records
    * Fix scrolling to top on iOS
    * Fix invalid output markup for “hover link” headings

  * Enhancements
    * Support any String.Chars as the extra page name
    * Improve screen reader accessibility
    * Add `:skip_code_autolink_to` option

## v0.30.6 (2023-08-25)

  * Enhancements
    * Extract title from Markdown file when preceded with comments
    * Improve focus navigation in notebooks

## v0.30.5 (2023-08-12)

  * Bug fixes
    * Fix style for code in headers
    * Fix search data generation for Erlang/OTP

## v0.30.4 (2023-08-03)

  * Bug fixes
    * Fix style for anchors in headers

## v0.30.3 (2023-07-15)

  * Enhancements
    * Compress search index before storing in local storage

  * Bug fixes
    * Fix styling for headers on cheatsheets and small screens

## v0.30.2 (2023-07-11)

  * Bug fixes
    * Fix escaping in `search_data.json`
    * Skip vega-lite code blocks in `search_data.json`

## v0.30.1 (2023-07-07)

  * Bug fixes
    * Fix styling for headers on cheatsheets and small screens

## v0.30.0 (2023-07-07)

  * Enhancements
    * Support tabsets (see the README for more information)
    * Improve search results and indexing by storing more data and metadata
    * Warn on invalid references in links
    * Strike-through deprecated items on autocompletion
    * Add source URL link to API reference page
    * Allow multiple extra files with the same name by generating unique names in case of conflicts

  * Bug fixes
    * Fix rendering of large code blocks in admonition texts
    * Do not log errors on module mismatch in case-insensitive file systems

## v0.29.4 (2023-03-29)

  * Bug fixes
    * Fix sidebar element with no children taking additional padding
    * Fix elements being rendered too thick on macOS
    * Fix rendering of HTML elements inside tooltips

## v0.29.3 (2023-03-17)

  * Enhancements
    * Propagate `:since` metadata from modules
    * Add support for MFAs and maps in `before_closing_body_tag` and `before_closing_head_tag`

  * Bug fixes
    * Improve font consistency across different OSes
    * Keep language class on livebook output code block
    * Ensure switches have higher precedence than config

## v0.29.2 (2023-03-02)

  * Enhancements
    * Improvements to cheatsheets spacing
    * Improvements to cheatsheets print
    * Include sections of modules and extras in search suggestions
    * Make sidebar links full-width and add hover states
    * Improve clickable area of sidebar tabs
    * Improve contrast on sidebar

  * Bug fix
    * Add media type for .license files for epub
    * Fix overscroll on the sidebar
    * Focus search input immediately after keyboard shortcut
    * Don't attempt parsing code blocks that don't look like modules
    * Fix visited link color in admonition blocks

## v0.29.1 (2022-11-21)

  * Enhancements
    * Add optional function annotations
    * Support media print on stylesheets
    * Add download ePub link to footer
    * Support extras for Erlang
    * Add tooltip to functions on sidebar
    * Disable spellcheck and autocorrect on search input

  * Bug fix
    * Special handle functions called `record/*` in Erlang

  * Deprecations
    * Rename `:groups_for_functions` to `:groups_for_docs`

## v0.29.0 (2022-10-19)

  * Enhancements
    * Support cheatsheets as `.cheatmd` files

  * Bug fix
    * Collapse sidebar when resizing page even if stored in the session as opened

## v0.28.6 (2022-10-13)

  * Enhancements
    * Add Elixir special punctuation ! and ? to natural sort
    * Add night mode to settings pane
    * Support --proglang in mix docs
    * Save sidebar state per session
    * Distinguish output code blocks in Livebooks

  * Bug fixes
    * Prevent sidebar button scrolling out of view
    * Prevent unreadable text when using inline code with admonition headers

## v0.28.5 (2022-08-18)

  * Enhancements
    * Do not preserve spaces from spec declaration in signature rendering
    * Index hyphens in search
    * Index `@` in search
    * Change minimal package search length to 2

  * Bug fixes
    * Remove extra `term()` argument at start of `@macrocallback`

## v0.28.4 (2022-04-28)

  * Enhancements
    * Add a toast when changing theme via keyboard
    * Automatically convert `.livemd` links to `.html` ones
    * Show programming language in HTML footer

  * Bug fixes
    * Properly escape `%/2` special form
    * Improve ranking of exact-matching modules in search

## v0.28.3 (2022-03-23)

  * Enhancements
    * Include page titles in autocomplete suggestions
    * Allow theme to be set to "System" version
    * Remove "Specs" heading and render full typespecs
    * Support for `source_url_pattern` in config being a function

  * Bug fixes
    * Adjustments for blockquotes and admonition blocks in dark mode
    * Fix module sorting when a list of dirs is provided
    * Consider casing of letters when sorting items in the menu, summary, function list, etc

## v0.28.2 (2022-02-23)

  * Bug fixes
    * Fix links and code tags in admonition text blocks for dark mode

## v0.28.1 (2022-02-20)

  * Enhancements
    * Add support for admonition text blocks
    * Improve accessibility for light and dark themes

  * Bug fixes
    * Ensure that `mix docs --open` works on Windows
    * Ensure search tokenizer also splits on underscore
    * Fix false warnings about missing types when running ExDoc in escript mode
    * Don't navigate when clicking the current page

## v0.28.0 (2022-01-24)

ExDoc v0.28.0 requires Elixir v1.11+.

  * Enhancements
    * Use custom scrollbar in the sidebar
    * Keep hamburger absolute to the opened sidebar
    * Support `--open` flag on `mix docs`
    * The copy button now only copies selectable content

  * Bug fixes
    * Make sure filename configuration in `:extras` is used across links
    * Ensure all `extras` pages have a title generated
    * Fix margin on 3rd level headers and beyond
    * Ensure a task that defines callbacks is still listed as a task

## v0.27.3 (2022-01-12)

  * Bug fixes
    * Make HexDocs search case insensitive
    * Improve sidebar open/close animation

## v0.27.2 (2022-01-11)

  * Bug fixes
    * Fix version dropdown when hosted on HexDocs
    * Fix tooltips
    * Fix JavaScript error when Hex package information is not available

## v0.27.1 (2022-01-11)

  * Bug fixes
    * Several usability fixes on the new layout
    * Keep page ordering

## v0.27.0 (2022-01-11)

  * Enhancements
    * Introduce new sidebar design
    * Add `--quiet` option to CLI
    * Support multiple formatters in the CLI
    * Show structs as `%Struct{}` instead of `__struct__` in the sidebar
    * Point Erlang links to `www.erlang.org` instead of `erlang.org`
    * Improvements to the night mode and styling

## v0.26.0 (2021-11-21)

  * Backwards incompatible changes
    * `:filter_prefix` has been renamed to `:filter_modules` and supports anonymous functions
    * `:source_ref` now defaults to `"main"`
    * Dropped support for smartypants in Markdown

  * Bug fixes
    * Do not warn on links to sections

  * Enhancements
    * Add copy button to code snippets
    * Add `translate="no"` to the relevant attributes to improve interoperability with automatic translation tools
    * Support optional module annotations
    * Introduce a settings modal to group most of configuration
    * Allow customizing the Livebook expansion URL
    * Provide documentation on how to render plugins such as Katex, VegaLite, and Mermaid

## v0.25.5 (2021-10-20)

  * Bug fixes
    * Do not duplicate API Reference title
    * Update assets for Livebook badge functionality

## v0.25.4 (2021-10-20)

  * Enhancements
    * Add source link to pages in `:extras`
    * Add "Run in Livebook" badge to `.livemd` pages in `:extras`

  * Bug fixes
    * Do not generate entries for private Erlang functions
    * Do not trim `?` and `!` from Elixir tokens on search

  * Incompatible changes
    * Remove unused `:source_root` option

## v0.25.3 (2021-09-21)

  * Enhancements
    * Track user preference for sidebar state

  * Bug fixes
    * Do not double escape page titles on the sidebar
    * Do not fail when documenting cover compiled modules
    * Don't crash upon doc chunks for unknown beam languages

## v0.25.2 (2021-09-02)

  * Enhancements
    * Add support for Livebook's `.livemd` Markdown files
    * Preload all applications starting with `makeup_` before doc generation
    * Add Hex package config and display "Find on Hex" footer links

## v0.25.1 (2021-08-02)

  * Enhancements
    * Supporting grouping of callbacks
    * Use shell lexer for code blocks with no language and starting with `$ `

  * Bug fixes
    * Fix generating type signatures with maps
    * Skip Erlang modules that have empty docs
    * Skip Erlang functions that have empty docs
    * Fix accidentally showing shape of opaque types

## v0.25.0 (2021-07-20)

  * Enhancements
    * Handle remote types when generating signatures, e.g. `@callback callback1(GenServer.options())` becomes `callback1(options)`
    * Support Markdown processor options
    * Add `--paths` command line argument to prepend directories to the code path when generating docs
    * Make shell prompt, `$ `, not selectable for `shell`, `sh`, `bash` and `zsh` code blocks

  * Bug fixes
    * Fix custom links to undefined/hidden references
    * Fix generating external links with `:deps` configuration
    * Add ellipsis to more sections

  * Backwards incompatible changes
    * Remove function landing pages

## v0.24.2 (2021-04-06)

  * Enhancements
    * Support stepped range syntax

  * Bug fixes
    * Add spaces on paragraph endings for search results
    * Fix bug defining app name in config
    * Fix rendering void elements (`<br>` etc)

## v0.24.1 (2021-03-22)

  * Bug fixes
    * Fix generating function landing pages

## v0.24.0 (2021-03-16)

  * Enhancements
    * Drop jQuery and refactor JavaScript codebase
    * Remove highlight.js in favour of migration to Makeup
    * Change autolink to return both path and hash for the current module
    * Add next/previous at the end of extra pages
    * Improve search input blur handling
    * Update erlang.org/man URL
    * Add function landing page

  * Bug fixes
    * Ignore extensions when generating external links
    * Fix autolink to handle URIs with arbitrary scheme part without warning
    * Fix undefined reference warning for typespecs
    * Fix search click behavior when a suggestion refers the current page
    * Don't crash when we can't format spec
    * Fix HTML escaping

## v0.23.0 (2020-10-12)

Requires Elixir v1.10.

  * Enhancements
    * Improve warnings on broken references
    * Support Elixir v1.12-dev

  * Bug fixes
    * Respect deps config in autolink
    * Fix html escaping in the sidebar entries
    * Fix retrieving specs for macros with `when`
    * Raise if none of :name or :app are found in mix.exs
    * Don't crash on code blocks like "A.b.C"

## v0.22.6 (2020-09-16)

  * Bug fixes
    * Properly fix CSS bug on headings
    * Add expansion arrow to sections on sidebar

## v0.22.5 (2020-09-13)

  * Bug fixes
    * Fix CSS bug on headings

## v0.22.4 (2020-09-12)

  * Enhancements
    * Improve accessibility and add aria labels
    * Show different title and message for a empty search value

## v0.22.3 (2020-07-25)

  * Bug fixes
    * [HTML+EPUB] Remove overlapping functions from defaults
    * [HTML] Don't show tooltip for module sections and non-html files
    * [HTML] Make sure tooltips work with escape ids.

## v0.22.2 (2020-07-20)

  * Enhancements
    * [HTML+EPUB] Add support for path dependent markdown autolink (`feeddc1`)
    * [HTML+EPUB] Improve auto-linking to callbacks and types (`12c0a01`)
    * [HTML+EPUB] Replace `<kbd>` with `<kbd><kbd>` when it represents keys to be hit (`bd2b8df`)
    * [HTML] Hide sidebar-over-content on click/tap outside it (`b050775`)
    * [HTML] Redirect to correct file when changing version (`0f6f24b`)
    * [mix docs] Allow files with no extension in extra files (`26b93b6`)
    * [mix docs] Link to siblings in an umbrella (`b0d6fdd`)
    * [mix docs] Switch to `earmark_parser`. Run `mix deps.unlock --unused` to remove the now
      unused `earmark` dependency. (`021c772`)

  * Bug fixes
    * [HTML+EPUB] Bring back auto-linking to Kernel and Kernel.SpecialForms (`fa174eb`)
    * [HTML+EPUB] Escape HTML special characters in signature (`5fed479`)
    * [HTML+EPUB] Fix auto-linking `./2` and `../2` (`2e40acb`)
    * [HTML+EPUB] Fix list of basic types to auto-link (`6df4a3b`)
    * [HTML+EPUB] Make HTML valid (`1187ace`)
    * [HTML] Escape HTML special characters in sidebar (`d26ca71`)
    * [HTML] Fix keyboard shortcuts on non US keyboard layouts (`829c4ee`)
    * [HTML] Fix text overflow in sidebar (`a4ff547`)
    * [HTML] Handle snake case terms in search results (`d511d55`)
    * [mix docs] Don't crash on markdown that triggers warning (`e7cb79c`)

## v0.22.1 (2020-05-19)

  * Bug fixes
    * [mix docs] Depend on earmark `~> 1.4.0`
    * [mix docs] Don't crash on comments in markdown
    * [mix docs] Don't crash on HTML in markdown

## v0.22.0 (2020-05-11)

  * Enhancements
    * [EPUB] Add epub to the default formatters
    * [HTML+EPUB] Move specs out of signature
    * [HTML+EPUB] Auto-link "erlang" types & callbacks
    * [HTML+EPUB] Auto-link "erlang" modules in custom links
    * [mix docs] Warn on broken references in dependencies (e.g. `` `String.upcase/9` ``)
    * [escript] Add `--app`
    * [HTML+EPUB] Auto-link to extras (e.g. `[foo](foo.md)`)
    * [mix docs] Undefined references warning now includes the filename
    * [mix docs] `:skip_undefined_reference_warnings_on` now also accepts a filename
    * [HTML+EPUB] Display moduledoc headings in the sidebar

  * Bug fixes
    * [HTML] Fix hidden text selection, hide tooltips for details link
    * [HTML+EPUB] Fix function name sorting (group operators together)
    * [HTML+EPUB] Fix displaying nested modules

  * Backwards incompatible changes
    * [mix docs] Remove built-in support for cmark markdown processor
    * [mix docs] Replace `ExDoc.Markdown.to_html/2` with `to_ast/2`
    * [HTML+EPUB] Remove auto-linking for local calls to Kernel & Kernel.SpecialForms,
      use fully qualified calls instead. (e.g. replace `` `==/2` `` with `` `Kernel.==/2` ``.)
    * [mix docs] `:skip_undefined_reference_warnings_on` no longer accepts extras id, use
      extras filename instead.

## v0.21.3

  * Enhancements
    * [HTML] Make "Exceptions" a module sub-grouping instead of a top-level group
    * [HTML] Automatically group deprecated modules
    * [HTML] Rely on `prefers-color-scheme` w/o night mode set
    * [HTML] Boost title on search results, add fun/arity to title
    * [mix docs] Initial work on support for multiple languages

  * Bug fixes
    * [HTML] Many improvements to the search engine
    * [mix docs] Link to callback docs instead of copying them

## v0.21.2

  * Enhancements
    * [HTML] Add hardcoded packages to the quick-switch search results
    * [HTML] Filter out packages without docs on HexDocs in quick-switch
    * [HTML+EPUB] Support autolinking for multiple arities
    * [mix docs] Avoid deprecation warnings on more recent earmark versions
    * [mix docs] Warn on unavailable local functions
    * [mix docs] Make invalid index redirect warning case-sensitive
    * [mix docs] Ignore non-Elixir modules when missing chunk

  * Bug fixes
    * [HTML+EPUB] Do not create a custom link when destination does not exist
    * [EPUB] Hide screen reader elements

## v0.21.1

  * Bug fixes
    * [HTML] Make sure package selector can be reopened after closed with `ESC`
    * [HTML] Ensure tooltip pages can be cached
    * [HTML] Support large version numbers on the version dropdown
    * [mix docs] Raise nice exception for missing ExDoc.Config

## v0.21.0

  * Enhancements
    * [HTML] Add support for reference popovers
    * [HTML] Provide a "g" shortcut to Go To a Hexdocs package (with autocomplete)
    * [HTML] Detect if browser prefers night mode
    * [EPUB] Add support for covers and the authors field

  * Bug fixes
    * [HTML+EPUB] Ensure that link headers generate unique IDs
    * [HTML+EPUB] Sort structs fields so field names are always ordered
    * [HTML+EPUB] Do not strip "Elixir." prefix from module names
    * [HTML] Support URLs with non-HTML safe characters
    * [EPUB] Fix table of contents without groups

## v0.20.2

  * Enhancements
    * Add "mix " prefix to Mix tasks

  * Bug fixes
    * Improve scrolling on Safari
    * Prevent text casing of codes
    * Do not remove stop words from search and make sure function names are searchable in isolation
    * Reduce the size of the search metadata
    * Remove outline on focus and keep width in version dropdown
    * Do not fail if we can't persist index

## v0.20.1

  * Bug fixes
    * Hide the spinner when no term is searched
    * Use `?` for the shortcut hint text
    * Improve style of the version dropdown

## v0.20.0

  * Enhancements
    * Rework the search bar to provide autocompletion
    * Provide full-text search
    * Automatically generate documentation for `defdelegate` definitions (requires Elixir v1.8+)
    * Provide keyboard shortcuts (press `?` to see all available outputs) or click the link at the bottom of the page
    * Add support for versions dropdown to the HTML sidebar. This requires adding a `docs_config.js` (also configurable) that sets a `versionNodes` JavaScript variable.
    * Improve mouseover titles on sidebar navigation

  * Bug fixes
    * Do not hide structs in type/callback summary signatures
    * No longer require double click to open up a sidebar on Mobile Safari
    * Keep trailing periods in summaries
    * Fix typespec `arg` number to start from 1 instead of 0

## v0.19.3

  * Enhancements
    * Include a "goto" link on mouseover for expandable menu items

  * Bug fixes
    * Always expand menu items, even if has a single child
    * Fix sidebar bottom margin on Firefox
    * Fix anchor links sometimes not working by moving JS to HTML head
    * Unify code styling for makeup and hljs
    * Do not replace the content of custom links pointing to Elixir modules
    * Remove border-left on deprecated to not mistake it with a heading

## v0.19.2

  * Enhancements
    * Allow logo in SVG extension
    * Allow functions to be grouped based on metadata
    * Allow api-reference.html page to be disabled
    * Allow nesting of modules by prefix
    * Autolink `mix help TASK`
    * Warn on undefined remote functions from project's docs

  * Bug fixes
    * Sort function names alphabetically in the sidebar
    * Fix search input color
    * Disable earmark smartypants option

## v0.19.1

  * Enhancements
    * Update CSS styles
    * Remove sourcemaps from package

## v0.19.0

This release requires Elixir v1.7 and later. For earlier Elixir versions, use ExDoc ~> 0.18.0.

  * Enhancements
    * Do not select "iex>" when selecting code samples
    * Use makeup to perform ELixir's syntax highlighting (other languages still use highlight.js)
    * Use `[rel="noopener"]` on external links
    * Link directly to page if sidebar item has no subitems
    * Autolink Kernel and Kernel functions and special forms with shorthands (for example, only `is_atom/1` is necessary)
    * Trim EEx contents to reduce HTML size
    * Allow apps to be excluded from umbrella app docs

  * Bug fixes
    * Exclude types with `@typedoc false` from the docs
    * Make sure autolink considers the longest matching dependency name in case of shared prefixes

## v0.18.3

  * Bug fix
    * Fix formatting of typespecs causing errors
    * Update jQuery
    * Properly remove underscore from typespec links

## v0.18.2

  * Enhancements
    * Improve documentation pages for printing
    * Autolink Kernel, Kernel.SpecialForms, and built-in types
    * Annotate opaque types
    * Add vertical-align:top to tables
    * Allow module-function-arity references in links
    * Remove underscore from view source link
    * Run code formatter on typespecs (if one is available)
    * Make night mode switch link more obvious

## v0.18.1

  * Bug fixes
    * Include missing formatter files

## v0.18.0

  * Enhancements
    * No longer strip empty parens from types
    * Provide more extension point for markdown processors
    * Remove assets from priv since they are now embedded at compile time

  * Backwards incompatible changes
    * Remove built-in support for hoedown markdown processor
    * No longer add favicon when logo option is present (this was added in 0.17.0 but it was reported the logo almost never fits as a favicon)

## v0.17.1

  * Bug fixes
    * Fix broken search caused by outdated JavaScript files

## v0.17.0

  * Enhancements
    * Allow modules to be grouped on the sidebar with the `:groups_for_modules` option
    * Allow extras to be grouped on the sidebar with the `:groups_for_extras` option

  * Backwards incompatible changes
    * The previous `:group` option that could be specified for each entry in `:extras` is no longer supported
    * No longer add a specific section for "Protocols". If you would like to segregate the protocols in your application, use the new `:groups_for_modules` functionality

## v0.16.4

  * Enhancements
    * Generate favicon link if a logo is available

  * Bug fixes
    * Do not version epub filename as the doc directory is likely already versioned

## v0.16.3

  * Enhancements
    * Make sure its own search.html page and provide history
    * Generate source maps only if the `--debug` flag is given
    * Users can now add custom HTML before the closing head tag and the closing body tag
    * Highlight the target function/macro/type/callback when clicked

  * Bug fixes
    * Remove extra `term()` argument at start of macro spec
    * Add unencoded link target for functions with special chars to cope with different behaviour in browsers

## v0.16.2

  * Enhancements
    * Link `<h3>` headers as well
    * Add border to code tag
  * Bug fixes
    * Fix sidebar on mobile devices

## v0.16.1

  * Bug fixes
    * Fix hover icons coloring

## v0.16.0

  * Enhancements
    * Separate tasks into "Mix Tasks" in sidebar
    * Add types to the search results
    * Improve accessibility

  * Bug fixes
    * Strip nesting HTML tags in h2 headers
    * Remove the old search results after every new search attempt

## v0.15.1

  * Bug fixes
    * Improve project name wrapping on HTML
    * Properly set link in types with parameter
    * Fix ExDoc.CLI.main/2 to keep --source-ref on Elixir v1.4
    * Do not fail if localStorage is not available

## v0.15.0

  * Enhancements
    * Closing the search takes you to where you were in the previous page
    * Handle `__struct__/0` by displaying the struct instead
    * Warn when redirecting to a non-existent file
    * List both functions and macros under "Functions"
    * Automatically detect GitLab source URL patterns

  * Bug fixes
    * Break long specs into lines
    * Fix the initial state of the sidebar hamburger
    * Do not error when abstract code is missing
    * Properly link to erlang lib dirs

  * Backwards incompatible changes
    * No longer support Pandoc
    * Require Earmark 1.1

## v0.14.5

  * Enhancements
    * Allow ExDoc to work as an escript

## v0.14.4

  * Enhancements
    * Point to Elixir docs on hexdocs.pm
    * Many improvements to layout and styling of EPUB formatter
    * Support multiple formatters to be configured on `mix.exs`
    * Also digest `sidebar_items.js`
    * Force parentheses on type signature to remove ambiguity
    * Generate top-level docs for an umbrella project
    * Searching on mobile closes menu when the Enter key is hit

## v0.14.3

  * Enhancements
    * Support the `:assets` option that automatically copies all entries in the given directory to `doc/assets`
    * Remove numbering on Extras subheaders from sidebar
    * Pass file and line information to markdown formatters for better warnings
    * Allow extra pages to be grouped together under a given heading
    * Generate ids for default name/arity pairs so they can be linked (both remotely and locally)

  * Bug fixes
    * Fix autolink for functions containing `%`, `{`, `}` or uppercase characters in the name

## v0.14.2

  * Enhancements
    * Automatically generate documentations links to any of your dependencies (by default links to hexdocs.pm but allows the URL to be configured)
    * Allow documentation to be generated to Erlang modules

  * Bug fixes
    * Make sure "Top" is not included twice on pages

## v0.14.1

  * Bug fixes
    * Include "Top" link in pages with no headings
    * Include "Top" link in modules with no docs

## v0.14.0

  * Enhancements
    * Add support for the epub formatter
    * Support extraction from `<h2>` headers out of the settext format

  * Layout changes
    * Indent documentation inside the function/macro/type/callback header
    * Style types the same way as function/macro/callback and include a link to the source
    * Increase font-sizes in the sidebar and code snippets
    * Move the specs definition inside the function/macro/type/callback header and make better use of vertical space
    * Use a gradient on the sidebar to avoid sudden cut-off when scrolling the modules list
    * Fix the use of the back-button in some browsers
    * Allow the whole sidebar to be navigated without moving away from the current page. Expand (+) and collapse (-) buttons have been added to aid exploration
    * Numerically order pages/guides headers

## v0.13.2

  * Bug fixes
    * Avoid scrollbar from appearing on all code snippets

## v0.13.1

  * Enhancements
    * Autolink Elixir's stdlib modules and functions
    * Show callbacks in search results
    * Reduce size taken by font-sizes
    * Increase size for headings in the moduledoc

  * Bug fixes
    * Fix opened sidebar on small screens
    * Allow horizontal scrolling for code snippets on small screens

## v0.13.0

  * Bug fixes
    * Fix issue where docs would fail when being built on Erlang 19
    * Store templates in `priv` rather than in `lib`

  * Backwards incompatible changes
    * Require Elixir ~> v1.2

## v0.12.0

  * Enhancements
    * Remove warnings when running on Elixir v1.3
    * Support for `@optional_callbacks`
    * Improve styling for nested lists
    * Include earmark as a default dependency

  * Bug fixes
    * Fix many styling and performance front-end related bugs

## v0.11.5

  * Enhancements
    * Support canonical URLs

  * Bug fixes
    * Autolink now allows digits in function names
    * Sort specs by line to preserve ordering
    * Focus on content element on document ready
    * Remove ligature fix on Firefox and Safari as Google Fonts have been updated

## v0.11.4

  * Bug fixes
    * Fix ligature issues in recent browsers
    * HTML escape headers
    * Avoid warning on Elixir master (v1.3)

## v0.11.3

  * Bug fixes
    * Fix a regression where the sidebar wouldn't stick on small screens

## v0.11.2

  * Enhancements
    * Include night mode for docs
    * Take advantage of extra space on large screens by widening sidebar

  * Bug fixes
    * Do not attempt to retrieve docs from Erlang modules

## v0.11.1

  * Bug fixes
    * Include callbacks even if a module defines a struct

## v0.11.0

  * Enhancements
    * From now on it's possible to set the title in the sidebar area for
      additional content, *default:* "Pages"
    * Set the path and title of each additional page in `mix.exs` file
    * Use the first `h1` as menu title if title is not configured
    * Include the project name as part of the header in small devices

  * Bug fixes
    * Increase the visual separation between functions
    * Remove the `extra-` prefix for the additional documentation files
    * Extra large images do not create an overflow in the content

## v0.10.0

  * Enhancements
    * Many improvements and bug fixes in new layout
    * Reduced build size
    * Overview has been renamed to API Reference
    * All extra content, including API Reference, has been moved to inside
      "Pages"
    * Extra files are now downcased and prefixed by `extra-`

## v0.9.0

  * Enhancements
    * Whole new clean, readable, usable, responsive layout
    * Support for adding logo to generated docs (must be 64x64 pixels)
    * Support for adding extra pages to generated docs
    * Improve formatting of typespecs and callbacks

  * Backwards incompatible changes
    * `--readme` option and `:readme` configuration have been removed. Use
      `:extras` in your `mix.exs` file or pass `--extra` / `-e` in the
      command-line (may be given multiple times)

## v0.8.4

  * Bug fixes
    * Generate `README.html` file instead of `readme.html` as in previous
      releases
    * Style fixes in the new layout

## v0.8.3

  * Bug fixes
    * Style fixes in the new layout

## v0.8.2

  * Enhancements
    * Uglify and minify JS and CSS code
    * Performance improvements when building sidebar
    * Redirect from index.html to proper page

  * Bug fixes
    * Style fixes in the new layout

## v0.8.1

  * Bug fixes
    * Style fixes in the new layout

## v0.8.0

  * Enhancements
    * New and responsive layout without frames

## v0.7.3

  * Bug fixes
    * Update [highlight.js][] with fixes some inlining issues
    * Require latest [Earmark][]

## v0.7.2

  * Bug fixes
    * Support Elixir master
    * Fix error reporting when modules are compiled without docs

## v0.7.1

  * Enhancements
    * Use `type=search` for search input
    * Update [highlight.js][] dependency
    * Properly tag code comments as coming from Elixir/IEx unless noted otherwise
    * Add support for hash redirection

## v0.7.0

  * Enhancements
    * Documentation is now generated at `doc` to follow OTP "standard"

## v0.6.2

  * Enhancements
    * Improvements to the document structure
    * Add syntax highlight

## v0.6.1

  * Enhancements
    * Autolink modules and functions in the README
    * Generate ids for callbacks starting with "c:"
    * Ensure group ordering is consistent: TYPES > FUNCTIONS > MACROS > CALLBACKS
    * Allow users to search by Module.function

## v0.6.0

  * Enhancements
    * Support Elixir v1.0.0-rc1

## v0.5.2

  * Bug fixes
    * Use proper ANSI escape sequence on Mix success messages

## v0.5.1

  * Enhancements
    * Support Elixir v0.15.0
    * Add support for [Earmark][] - no need for external processors

## v0.5.0

  * Enhancements
    * First public release
    * Support [pandoc][] and [devinus/markdown][markdown] as markdown processors

[pandoc]: http://pandoc.org/
[markdown]: https://github.com/devinus/markdown
[earmark]: https://github.com/pragdave/earmark
[highlight.js]: https://highlightjs.org/