Build and deploy beautiful documentation sites that grow with you

Build and deploy beautiful documentation sites that grow with you


0.18.0 (latest)

Orchid 0.18.0 contains many new and breaking changes, which are briefly outlined in these release notes. Be sure to review the Migration Guide for a complete list of breaking changes and how to address them.

New Features

  • New OrchidTest library, for running integration tests of custom Orchid components.
  • Diagnosis Mode for detecting broken links in your site.
  • Meta Components improve workflow for adding asset-only components and other metadata to pages.
  • Algolia Docsearch native integration
  • Introduction of experimental OrchidSourceDoc, to replace existing code documentation plugins (currently an opt-in feature).
  • Addition of Predefined Collection Archives for easier creation of archives based on familiar page collections.

Improvements and Bugfixes

  • Components are now rendered using the Pebble embed tag by default, making it easier for themes to add wrapper markup
  • Orchid is now being tested on JDKs 8, 9, 10, and 11
  • itemId is now a static property of pages and can be viewed from the Admin Panel
  • Completely redesigned documentation site, with a new logo and a new domain
  • Repo has been moved to the @orchidhd Github organization


  • New Spotify tag added OrchidWritersBlocks plugin, to embed a Spotify track or playlist. Thanks @singularsyntax for the great addition!
  • Great news for Scala users, you can now run Orchid from an SBT build! Thanks to the incredible work by @swaldman, adding the orchidSbtPlugin will allow you to run and serve Orchid builds directly from your existing SBT projects. Full setup instructions and commands can be found on the Quick-Start page.


  • Removes restrictions on filenames that can be used for assets. CSS assets no longer requires a .css extension, and likewise JavaScript assets no longer require a .js extension. It's up to you to make sure an asset is valid or not before it gets added to the page.
  • When creating a Reference to a file that is not a child of the base dir, remove relative path segments so that it will be copied properly to the rendered site, and not outside of the build dir.
  • Adds kotlinPlayground component to the OrchidSyntaxHighlighter artifact, for converting Kotlin code snippets into runnable playgrounds.


  • Fixed bug #312: Orchid terminates entire Maven build process when it completes
  • Fixed bug #308: missing source directory prevents app from being served locally


  • Allows to specify the target_commitish for GithubReleasesPublisher with commitish in the publisher config
  • Tweak CSS to make images fit page content boundaries in FutureImperfect theme


  • Adds siteCopyright option to site.about object in config.yml, which defaults to site.about.siteName


  • Fixes issue with null CLI parameters when running Orchid with maven plugin


  • Fixes Gradle plugin to stay compatible with versions of Gradle before 5.x. Fixes #281


Orchid 0.17.0 contains many new and breaking changes, which are briefly outlined in these relase notes. Be sure to review the Migration Guide for a complete list of breaking changes and how to address them.

New Features

  • New "integrations" projects
  • Wiki sections can now be imported from Github and Gitlab project wikis (see integrations above)
  • Sites can now be published to Bitbucket and Gitlab (see integrations above)
  • New Shared Configurations allow user-defined archetype option groups. See full documentation here

Improvements and Bugfixes

  • Netlify Publisher
    • Now handles uploads of really large sites. Previously, deploys of more than a couple thousand pages or so would time out and fail.
    • It can infer the Netlify siteId from the Orchid base URL, and is now an optional property
  • Wikis
    • PDF ebooks generated by Wiki plugin are now included in a Collection, so they can be linked to with the linking functions and in menus
    • Fixed bug creating PDF ebooks for multiple sections
  • Changelogs
    • Adds Archetype to Changelog entries from changelog.allVersions in config.yml
    • Version bumps are inferred from changelog entries, and no longer need to be manually entered
    • Improves formatting of meta/versions.json file. Release notes can now be embedded in this JSON file
  • Other
    • Improves console output of Git-based publishers and Swiftdoc plugin
    • Swiftdoc plugin now accepts a list of source roots to find Swift sources, rather than a single directory
    • .puml file extension is now recognized as a PlantUML file by default
    • Fixed NPE calling a TemplateFunction as a Clog-formatted string
    • Fixes formatting of dates in sitemap XML files so as to not cause warnings from Google indices


  • Allows use of relative URLs as a base URL
  • Update Pebble to 3.0.9, with support for embed tag


  • Allows "/" to be properly used as a base URL
  • Adds baseUrl and homepageUrl filters to avoid directly using site.baseUrl in templates, which doesn't work correctly with URLs ending with "/"
  • improves error-reporting for syntax errors in Pebble templates and YAML config files


  • "Delombok" entire project (#249, thank you @Sumo99!)
  • Makes Gradle tasks discoverable with gradlew --tasks (#256)
  • Properly render link tags from Javadoc comment text (#251)
  • Build pipeline now fails if GithubPagesPublisher fails to push to remote (#238)


  • Fixes issues rendering PlantUML diagrams


  • Allows Changelog entries to be annotated with additional data referencable from templates
  • Removed Google Plus from social model since the service is shutting down


  • Use correct email social icon (thanks @alejandrohdezma!)


  • Fixes a couple issues with wiki sidebar


  • Adds wiki layout to Copper theme with sidebar menu


  • Adds responsive content classes for Copper theme


  • Makes some styling tweaks to Copper theme
  • allows changelog entries to be loaded recursively
  • Fixes issue of favicons getting mangled


New Features

  • Adds new Copper theme! See a demo here.
  • Adds new OrchidDocs bundle, for easier setup when using Orchid for project documentation. See a full docs here. It includes the following plugins:
    • Orchid Editorial
    • Orchid Pages
    • Orchid Wiki
    • Orchid Forms
    • Orchid Changelog
    • Orchid Search
    • Orchid Diagrams
    • Orchid Syntax Highlighter
  • Adds new Groovydoc plugin for documenting Groovy/Java source code. See full docs here

Bug Fixes

  • Improves importing and compiling of SASS/SCSS files
    • Sass (indented) syntax is now partially supported. JSass is limited in that it does not allow indented-style imports, so Orchid will fully compile all indented-style imports at the import site, essentially copying the compiled CSS to the import site. This means that you can import indented-style Sass code, but variables, functions, mixins etc. will not be imported from indented-style Sass files, and already-declared variables, functions, mixins etc. will not be accessible to the file being imported.
    • Relative imports are now supported. The first file is expected to be loaded from assets/css as normal, but subsequent relative imports will be imported relative to the existing file location.
    • Absolute imports are now supported, by prefixing an import path with /. These files are then located absolute to your site's resources directory, rathern than the normal assets/css directory. Files imported from within the absolutely-imported file follow the new directory as the context for further relative imports.
  • Fixes issue using default favicons. Now, sites that do not specify a favicon will use Orchid's default one, rather than showing an empty/broken image as the favicon.
  • Fixes Krow table display in Windows terminals. As windows terminals do not support many UTF-8 characters, the borders used for the summary table displayed poorly. Now, standard ASCII characters are used to draw the borders of the results table on Windows so that it is readable.

Potentially-Breaking Changes

There were no major updates to the Orchid framework in this release, but many of its dependencies have been updated to newer versions which might cause issues.


  • Updates docs in admin panel, adds code samples for template function and tags
  • Verifies Orchid works in JRE 9
  • Compiles multiple plantuml groups in a template into multiple diagrams
  • Javadoc and Kotlindoc runners now embed the formatters and work offline, no more runtime dependency resolution


  • Updates OrchidBible dependency to hit correct endpoints and improves usability
  • Parses external URLs better
  • Passes command line args directly through to Dokka so Gradle can supply the proper documentation classpath


  • Updates dependency versions


  • Fixes issue of CLI args not using env vars when run via Gradle or Maven
  • Improves display of build summary


  • Fixes Archetype ordering for Static Pages, Posts, and Wikis, so that the archtype data overrides correctly according to intended priority

Breaking Changes

  • Archetypes for Static Page groups are no longer nested under staticPages in config.yml. The new Archetype location is simply pages.{pageGroup}, instead of pages.staticPages.{pageGroup}.
  • Archetypes for Post Categories groups are no longer nested under postPages in config.yml. The new Archetype location is simply posts.{postCategory}, instead of posts.postPages.{postCategory}.
  • Archetypes for Wiki Sections groups are no longer nested under wikiPages in config.yml. The new Archetype location is simply wiki.{wikiSection}, instead of wiki.wikiPages.{wikiSection}.


Bug Fixes

  • Fixes broken excerpt function
  • Updates FutureImperfect theme to work with new Asset Manager
  • Improves asset functions to prevent collisions with AssetRelation assets
  • Updates to Kotlin 1.3! And updates other dependencies to match

Breaking Changes

  • Updates to Kotlin 1.3. You may need to update some of your Kotlin code to work properly with 1.3.
  • Pebble template syntax for set tag has been changed. The identifier must be a plain name, evaluated expressions are no longer supported. (e.g. {% set 'identifier' = 'value' %} is not longer valid, use {% set identifier = 'value' %} instead)


This is a major release which contains numerous breaking changes. Please review the following changes carefully to make sure your site is updated properly.

New Features

  • Adds Radio Buttons as available form field types.
  • Archetypes are now auto-documented in the admin panel alongside options fields.
  • .properties files can now be used as data files, or used as the Front Matter format.
  • Netlify CMS configs are now set up to generate modular list form definitions. When this PR on Netlify CMS is merged, Orchid will already be set up to work with it.
  • Wikis can now generate offline documentation! Add createPdf: true to each Wiki section's config that you want offline docs, and Orchid will compile all the content for that section into a PDF.
  • A new Asset Management API! You can use the asset() template function to load an asset dynamically load and render an asset. Asset rendering is lazy, which allows you to transform your assets, such as rotating, scaling, or resizing an image.
  • Added a parseAs function which works similarly to compileAs, but returns parsed data instead of a rendered String.

Bug Fixes

  • Menu items were not the most intuitive, especially when trying to render a submenu that also had an index page at its root. A single menu item can now have both a page it references itself, and a list of children menu items, leaving the theme to decide how to display such a situation.
  • Fixes issue setting asset directories as Strings in config.yml.
  • Makes option types linkable in admin panel again.
  • Fixed several issues with bad configurations in Netlify CMS config, and errors using it locally with Orchid's server.
  • Prevents assets from being rendered more than once, especially when added as extra CSS or JS. Orchid now tracks the assets rendered throughout the entire build cycle, and only renders whats necessary.
  • Assets attached to Posts (and other similar objects) now reference an actual asset rather than just being Strings. These assets are rendered lazily, and so can be transformed using the normal asset transformation functions.

Breaking Changes

  • Menu classes have been renamed and its public method signatures have changed significantly.
    • OrchidMenuItemImpl is now MenuItem. In addition, creating menu items now follows a Java-style Builder pattern rather then using overloaded constructors.
    • OrchidMenuItem is now OrchidMenuFactory.
  • Default assets directory is now assets/media rather than just assets.
  • Breadcrumbs APIs have been simplified, and many of its classes have been removed. Instead of the possibility of multiple breadcrumb types, there is just a single BreadcrumbStrategy, and Orchid expects plugins to manage the breadcrumb structure by setting parent pages appropriately.
  • The Forms plugin no longer creates its own pages, and forms are only loaded from data files (.yaml, etc.). A form should link to an arbitrary submission page using a PageReference at redirectionPage.
  • Updates Orchid Gradle plugin so extra args are passed directly, instead of split and reformatted.


  • Fixes issues starting Orchid when there are params that are null


  • Fixes deadlock when trying to run Javadoc
  • Adds port and githubToken to Gradle and Maven property objects, so they can be passed as command-line properties


  • Allows Maven plugin to pass parameters through system properties


  • Adds new Maven plugin to run Orchid (thanks, @bjansen!)


  • Removes logs accidentally left in
  • More tweaks to Wiki Pages menu item


  • Various bugfixes and theming improvements for Editorial theme, and wiki, pages, and posts plugins


  • Updates dependency versions to resolve Clog version conflict


  • Fixes bug parsing Front Matter when there is no page content
  • Fixes bug processing Editorial theme assets
  • Fixes issue of Gradle plugin released with incorrect version


  • Fixes bug parsing Front Matter which left unwanted whitespace at top of file
  • Moves Javadoc execution to external library, so the plugin no longer depends on Java tools.jar
  • Adds Github Releases publisher
  • Generally improves formatting of Javadoc and Kotlindoc plugins


  • Updates rendering of Kotlindocs to fix issue with param types, and adds comments to params, receivers, return values.


  • Moves tabs and accordion tags to Core.
  • Allows users to choose a custom template for tags, similar to pages and components
  • Updates docs tag to display the same on the front end as in the admin panel
  • Adds async and defer attributes to JsPage
  • Fixes issue in search widget in Firefox
  • Adds receiver info and richer signatures to Kotlindoc


  • Changes standard ordering of collection search params to ['itemId', 'collectionType', 'collectionId'], which is more natural to think about and better matches the order in which the params would be needed.
  • Adds changelog publisher to require a changelog entry for publishing.
  • Orchid now exits with a failure status code when the deploy task deployment fails for any reason.


  • Includes Kotlindoc primary comments in searchable content.
  • Makes OrchidView class extend OrchidPage.


  • Updates rendering of Kotlindoc signatures


  • Allows attaching additional properties directly to menu items, components, and social items


  • Fixes crash using Wiki plugin when a summary page is missing


  • Fixes crash creating Author pages
  • Ignores Mac .DS_Store files at the ResourceSource level


  • Fixes bugs in querying index, and makes more useful overall
  • Adds menu items to link to pages relative to the current page, or a page queried from the index
  • Allows CSS and JS to be placed inline in a page from Front Matter
  • Updates Netlify CMS to 2.0
  • Adds descriptions to all common plugins items, like components, menu items, etc. Descriptions are viewable from admin panel, to make it easier to understand what you can do to build your site.
  • Improves styling of admin panel to be more useful


  • Adds extension method docs to Kotlin classes, bare methods in packages
  • Updates docs for Kotlindoc plugin
  • Adds global collection for external index.


  • Adds Kotlin documentation with Dokka
  • Allows page previous, next, and parent links to be overridden in Front Matter configs
  • Makes Homepage URL "pretty"


  • Adds recentPosts function, adds social links to Authors
  • Adds server port as command line arg
  • Improves how flags are parsed


This is a major release, which contains several breaking changes. Read carefully, your site might not properly if you do not update you site in line with these changes.

Notable New Features

  • OrchidJavadoc no longer requires a separate Gradle plugin! The Orchid plugin will take care of starting and running the Javadoc program and does not rely on Gradle doing it for you. This means that the com.eden.orchidJavadocPlugin Gradle plugin has been removed, and you must remove it from your build.gradle scripts.
  • Parsing command line flags now uses the same Options extraction framework as the rest of Orchid, and so is much easier to add custom flags.
  • Refactors resource source APIs to be more extensible.

Breaking Changes for End-users

  • com.eden.orchidJavadocPlugin no longer exists in v0.10.0 and above, and must be removed from your build scripts
  • FastClasspathScanner APIs have been changed significantly, and the project renamed to ClassGraph. Refer to the new ClassGraph Wiki to see how to migrate your code.


  • Makes config and data immutable once loaded, fixing stackoverflow errors when rendering 404 and directory index pages
  • Allows user-configurable regex patterns for extracting front matter, useful for putting front matter data inside a comment block to not break IDE syntax highlighting
  • Orders changelog entries properly


  • fixes crash running Orchid when build directory doesn't previously exist


  • fixes issue rendering admin pages introduced with adding the page template functions and tags


This is a major release, which contains several breaking changes. Read carefully, your site might not properly if you do not update you site in line with these changes.

Notable New Features

  • Tags can now be easily set up to used tabbed content. The Writer's Blocks plugin includes implementations for Tabs and an Accordion
  • Publishing to Github Pages now has several publishing modes, which will allow you to publish without overwriting the old site. This is perfect for managing library documentation, as it will allow you to keep the docs around for every older version of your project.
  • The data directory has been changed to config to match the config.yml file it corresponds to. In addition, you can now create a data.yml and use datafiles in the data directory to host arbitrary data used in your site. The data in data is not included as options, so there is no fear of your data accidentally changing the configuration of your site in any way, it is just data and nothing more.
  • Layouts are now much easier to set up and are more prescriptive, with no more "magic" included you need to know. Anything that should be included in your layouts is automatically documented in your admin panel's TemplateTags.

All Changes

  • Makes TemplateTags and TemplateFunctions page-aware
  • Changes Parsers to return a Map rather than a JSONObject
  • Updates Pebble to 3.0.0 release version. Adds 'serialize' method to Parsers so we can write objects back into that representation if needed
  • Caches compiled page content in the Page, frees the page directly instead of just its resource
  • Adds accordion tabbed tag. Displays tabs in the order they are parsed
  • Updates dependency versions
  • Adds Tabs tabbed tag to WritersBlocks plugin
  • Changes API of TemplateTags to support tags with inner tabs
  • Adds multiple publishing modes for GithubPages publisher, adds bean validation to all Publishers
  • Changes signature of TemplateFunctions so that filtered input is just set as an Option
  • Makes all options extraction use Maps and Lists instead of JSONObjects and JSONArrays
  • Sets up Hibernate Validator for validating classes with Options
  • Implements scripts, styles, head, and page tags to remove the 'magic' includes previously used.
  • Fixes issue in docs where bundles landing pages were not linking to their plugin pages
  • Updates to Pebble 3.0, adds custom AttributeResolver to call a 'get' method with the String attribute, which allows for accessing front matter of pages and also for JSONObjects
  • Renames 'dropdown' menu item to 'submenu'
  • Changes name of data directory to config, changes templates parameter in OrchidPage, OrchidComponent, and FormField to template

Breaking Changes for End-users

  • Changes name of data directory to config
  • changes templates parameter in OrchidPage, OrchidComponent, and FormField to template (it still accepts either a String or an array of strings)
  • Renames dropdown menu item to submenu
  • Many classes and methods have been changed in a non-backwards-compatible way. Updating should be pretty straightforward, but you may need to view the changes in the commit history to know exactly what to change.
  • Updates to Pebble 3.0.0. Old templates will still work as they did previously, but there is some new functionality available, and some behavior might be different than it was. View the Pebble changelog to know more.


  • Increases timeout for OkHttpClient, adds caching.
  • Adds support auto-generated documentation for OrchidCollections within admin panel.


  • Fixes some bugs with homepages, makes searching collections from templates easier.


New Features

  • New Breadcrumbs API
  • New Menu Item types
    • pageIds in Pages plugin
  • Helpful Kotlin extensions for registering types in OrchidModule and for resolving objects or sets from OrchidContext.


  • Manually specifies UTF-8 rather than relying on Charset.defaultCharset()
  • Overall improvements to Javadoc templates

Breaking Changes

  • Wiki no longer adds section meus by default. You can easily add them to all Wiki pages if desired in the archetype.
  • OrchidCollection.find now returns a Stream<T> instead of a List<T>. Its base class constructors have also been changed so that a Generator is now no longer necessary.


  • Improves messaging with Netlify publisher
  • Moves all plugin documentation into the main Orchid build, rather than each having separate Orchid sites. This makes it easier to and faster to build the main Orchid docs, and also allows for greater customization and automatic menu generation for each plugin's docs pages.


New Features

  • Adds new publisher
    • ghPages - Push your site to GitHub Pages

Bug Fixes

  • Extracts options before every deploy
  • Removes the full build that was done before the interactive task. Adds orchidShell Gradle task to simplify running the Orchid interactive task.


New Features

  • Adds two new publishers
    • script - Execute arbitrary shell scripts
    • netlify - Upload your site to Netlify


New Features

  • Adds API for managing deployments within Orchid. API is set up and tested, but there are no Publisher implementations yet. See docs for OrchidPublisher for building custom publishers, and Publication for how to implement and use a deployment pipeline.


  • Fixes issue where an empty config.yml caused a crash. (#123)
  • Prevents Pebble from stripping whitespace. While this may increase the resulting size of your site, it prevents some issues it was causing when using Pebble for pre-compiling Markdown and other content that is sensitive to whitespace.


  • Adds plugin to document Swift source code, OrchidSwiftdoc


  • Allows fully custom directories to be used for Javadoc sources instead of only the module's main java sources.



  • Improves asset management
    • Allows adding arbitrary assets to AssetHolders
    • You can now set alt text and title on any AssetRelation
  • Adds debug comments to pages with useful information about the classes and resources used
  • Improves permalink formatting. You can now use bracketed placeholders as part of a path segment, instead of the entire segment.


  • Fixes bugs with Social icons, where linkedin used the wrong URL, and where custom icons were not being created
  • Fixes rendering issues with server directory listing and 404


  • Fixes regressions introduced by setting up the ModularList implementations
  • Adds external URL to JavaEden/Common Javadocs


  • Refactors options extraction into fully separate library (now managed in JavaEden/Common)
  • Refactors ComponentHolder, OrchidMenu and FormFields to all inherit from a common base class of ModularList


  • Splits Gradle plugin into a base a Javadoc plugin
    • Base: com.eden.orchidPlugin
    • Javadoc: com.eden.orchidJavadocPlugin
  • Gradle plugins now use the same version as the rest of Orchid
  • Refactored options framework to make it simpler to extend and easier to use


  • Splits Gradle plugin into a base a Javadoc plugin


  • Adds collections for Javadoc classes, packages, and external pages
  • Fixes bug where asset relation did not properly apply default configs
  • Updates BsDoc theme colors to be more flexible


  • In asset relation, only apply base URL is the source isn't already an absolute URL
  • Fixes bug where drafts still showed up in recent posts lists
  • Fixes bug where pages with tags would crash Netlify CMS


  • Replaces CoreUI as the admin framework with UIkit
  • Refactors admin UI to be easier to use and more helpful
  • Fixes crash in admin UI when the SyntaxHighlighter plugin was not installed by removing all instances of the highlight tag from the admin templates


  • Improvements to tag handling in NetlifyCMS
  • Updates dependency versions


  • Adds in lazy-loaded relations as an Option type
  • Improves integration with NetlifyCMS a bit


  • Fixes bug with new Page menu item
  • Adds Authors as a Folder Collection from the Posts generator


  • Moves index generator and search functionality out of Core and into a new plugin. It is still currently up to the theme to actually implement the search with the OrchidSearch plugin.


  • ConfigArchetype now broadcasts an event so we can configure an item through code as well as in config.yml
  • Set config archetypes so they are all namespaced under their Generator's key, making it less likely to have options collisions, and also makes it easier to pull all information relevant to a plugin into a single data/ file


  • Cleans up themes styling and layouts


  • Added a lot of documentation to User Manual and for each plugin's README
  • Fixed some bugs along the way
  • Adds initial support for Netlify CMS local backend with the Orchid development server


  • Makes BsDoc theme more flexible
  • Moves Lunr search JS to core, adds it as an option to BsDoc theme
  • Allows themes to be set with custom options for a specific Generator, and improves theme assets handling so the same theme with different assets don't overwrite each other
  • Sets up Orchid Search to be more contextual. Setting the searchIndices with an array of generator keys will restrict searches to only from those indices.
  • Fixed several other bugs with themes and precompiling


  • Fixes some more bugs with Forms plugin
  • Improves display of command-line flags so sensitive values can be hidden from console
  • Updates gradle wrapper and dependency versions


  • Fixes a couple bugs with Forms plugin, adds Bootstrap form styling to BsDoc theme


  • Fixes a couple regressions with BsDoc theme's JS and favicons


  • Improves self-documentation with a much-improved admin UI
  • Adds Orchid logo to documentation site and to admin UI
  • Improves styling and layout of BsDoc theme
  • Adds support for custom 404 page and favicon


  • Improves documentation
    • Updated several Wiki pages
    • Added descriptions for all Options in all plugins, themes, and core
    • Ensures all plugin and theme Orchid sites show options for every relevant class
    • Auto-generates Admin lists for every injected set
  • Improves several APIs
    • Allows Components and Menus to directly access their current Page
    • Allows the precompiler language to be customized with a Compiler service option, instead of always being Pebble
  • Fixes some bugs
    • Fixes issue where drafts weren't being rendered, but were still leaking through the index and being added to Taxonomy archives
    • Allows pages to request not being precompiled, even when they include Front Matter
  • Moves primary site hosting to Netlify. Github Pages will probably stick around to show the latest stable release, while Netlify will be updated much more frequently, be where plugin/theme submissions are added, and include the latest development features.


  • Waits to print them until after the build has completed, to make them more noticeable.
  • Adds security manager to ensure files are only written in the input, output, and temp directories.
  • Adds collections for taxonomies so we can generate links to post tags and categories.
  • Improves templates for FutureImperfect theme a bit.


  • Allows taxonomies to get terms from page methods as lists or as arrays, which fixes bug making hierarchical post categories' archives


  • clears template cache every build
  • Fully implements hierarchical categories in Posts plugin
  • Fixes several bugs in Core and in Posts plugin


  • Adds RSS and Atom feeds to Posts plugin


  • Improves Javadocs more, adds optional stylesheet for non-bootstrap themes
  • Ironically, converts Javadoc plugin entirely to Kotlin


  • Improves styling and usability of Javadocs plugin
  • More improvements to design of documentation site
  • Sets up all single-injected classes to be able to be overridden by 3rd-party plugins, so now there is nothing that cannot be customized or extended.


  • Updates design of docs site
  • Minor bugfixes


  • Adds tag to embed Twitter tweets or timelines
  • Adds tag to embed Instagram posts


  • Creates components and menu item types for Taxonomies plugin:
    • MenuItem to display all Taxonomies
    • MenuItem to link to a Taxonomy archive, or a dropdown of the terms in the Taxonomy
    • MenuItem to link to a Taxonomy Term archive, or a dropdown of the pages in the Taxonomy Term
    • Component to link to a Taxonomy archive, or a dropdown of the terms in the Taxonomy
    • Component to link to a Taxonomy Term archive, or a dropdown of the pages in the Taxonomy Term


  • Creates Taxonomies plugin, which makes it possible to manage custom taxonomies and archives across many plugins. It was inspired by and modelled after Hugo's custom taxonomies, but adds its own spin that makes it much more flexible and powerful with Orchid's content model.
  • Removes the Category and Tag archive pages from the Posts plugin. These archives are now created with the taxonomies plugin.
  • Adds generation sitemap.xml and robots.txt in Core.
  • Adds generation of author pages for the Posts plugin. Authors that are set in the config (as before) or that have pages in posts/authors/ will have pages generated for them. Authors added to individual posts are "guest authors".


  • Adds tags for Gist and Youtube in OrchidWritersBlocks plugin
  • Adds functions for Pluralize, nl2br, and EncodeSpaces in OrchidWritersBlocks plugin
  • Adds tags for Highlight via pygments in OrchidSyntaxHighlighter plugin
  • Adds function for Load in core
  • Adds Archetypes that target specific sections of pages in the Posts, Pages, and Wiki plugins


  • Creates a new Language Extension which will include various additional Components and TemplateTags for better composition
  • Creates basic structure for generating NetlifyCMS from Orchid configuration


  • Move site About to OrchidSite class to better define site-wide data
  • Adds better self-documentation with tables of options
  • Moves AdminTheme to PluginDocs plugin
  • Adds check to make sure a Page exists for every official plugin in OrchidCore docs


  • Completely removes jTiwg as a dependency, trims down Flexmark dependencies
  • Adds API to more easily add custom Pebble tags
  • Changes Alert from a function to a tag
  • Travis CI now deploys to gh-pages branch


  • Relaxes some task dependencies that weren't necessary
  • Fixes issue of docs from subprojects not being copied to final output directory
  • Bundles release notes in the docs archives


  • Fixes issue of Travis CI Github Pages plugin suddenly breaking


  • Adds publish and expiry dates, which are used to check for time-based draft status.
  • Runs orchidBuild task on subprojects with no Java source, so that we still have all subprojects generating Orchid documentation.
  • Adds short debounce to rebuilds.
  • Deep-merges config, environment-specific config, and datafiles.
  • Adds injectable template globals.
  • Improves user manual documentation.


  • Improves design of FutureImperfect theme
  • Adds Gravatar support in OrchidPosts
  • Fixes issue of post archives being reversed
  • Allows Homepage to choose own next and previous links


  • Adds APIs to RenderService to allow for dynamic rendering modes
  • Allows StaticPages to configure its own renderMode
  • Allows StaticPages to set whether it uses a pretty URL
  • AssetsGenerator now only loads assets from local resources
  • Fixes issue of Options in kotlin having different setter names than expected, causing Options Extraction to fail
  • Improves process of adding assets to themes, pages, and components which eliminates issue of assets being added more than once
  • Adds interface for Components declared on Themes to add their assets to the theme. Previously, only Components declared on Pages had their assets added to the page.


  • Archetype objects and arrays now get merged together instead of replacing one another. Useful for site- or generator-wide Components or Menus.
  • Hides Components based on 'hidden' flag.
  • Sorts Components according to order.
  • Allows OptionsExtractor to add entire Options object to its OptionsHolder with a new @OptionsData annotated field.
  • Posts generator now supports different pagination options for each category.


  • Adds basic concept of Options Archetypes, applies it to all OrchidPage types
  • Updates dependency versions


  • Updates all plugins to Kotlin
  • Minor bugfixes and behavior improvements across all plugins
  • Sets up all plugins to generate their own reference documentation