All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
3.2.2 (2019-01-08)
- An issue where enumeration value would be incorrectly displayed as
undefinedin docs parsed from ES5 code. - An issue where
jsdoc.predicate(orjsdoc.filter) option would not be taken into account. - An issue where favicon would not be copied over to the output dir.
- (Zebra Template) An issue where some special characters within the location hash would cause an error.
Invalid assignmenterror due to ES2015 syntax.
- Support for handling notation with multiple sub-types. e.g.
Map<String, Object>. (PR #65 by @MaienM)
- Improved / cleaner symbol names and long names. This also fixes a JSDoc bug that unnecessarily and incorrectly wraps the last level of the notation in quotes and brackets.
- Updated dependencies to their latest versions.
3.1.0 (2018-12-04)
- An issue with
"path"routing which led to 404 page, occurred when a (deep) route was refreshed or loaded directly. (Due to a bug in core dependency.) Fixes #62. - An issue where a (harmless)
TypeErrorwas thrown whendebugis enabled. - An issue with
$docmaLinkdue to missing trailing slash, when routing method is"path".
- (Zebra Template) Added JSDoc
@defaulttag support for symbols. Fixes #60. - (Zebra Template) Added option
contentView.faLibsthat defines FontAwesome libraries to be included, such assolid,regular,brands. Set tonullto completely exclude FontAwesome from the output. See Zebra documentation. Fixes #63. - (Zebra Template) Added option
contentView.faVersionthat defines FontAwesome icon library version to be included.
- Improved SPA route handling.
- Updated dependencies to latest versions.
3.0.0 (2018-11-18)
- BREAKING: Dropped support for Node.js versions 6 & 7. Requires Node.js v8 and later. This change is due to updates to the core dependencies such as
fs-extra,jsdoc-xandjsdom. - Improved path/query routing.
- BREAKING: Linking logic has some changes.
- (Zebra template) Improved support for constant symbols.
- Ability to force parser type on defined files/paths; by appending a suffix. For Markdown, append
:mdor:markdown. For HTML, append:htmorhtml. For example,LICENSE:mdwill force-parseLICENSEfile as markdown.file.partial:htmlwill force-parsefile.partialas HTML. - Ability to create deeper paths for named groups/routes. e.g.
mylib/latest - Support for favicon. Set
app.faviconto your ICO file's local path. - Support for collapsable markdown (i.e. with
<details>and<summary>tags). This is great for generating styled collapsable lists (such as F.A.Q.) from your markdown files. If a bookmark (id) is passed in the location hash, that item will auto-expand. See Docma F.A.Q. for an example. Note that Edge does not support details/summary tags yet. All other modern browsers have support. - Ability to hide or remove specific, partial content from Docma output. For example if you want some part of your README to be visible in GitHub repo but not in your Docma generated documentation... See this for details.
- New CLI option (
-bor--base) fordocma servecommand to override/set the base path. - (Zebra Template) Added support for collapsable markdown (i.e. with
<details>and<summary>tags).
- An issue where documentation build would fail due to a symbol name being a non-string value. Fixes #54.
- An issue where the web app would throw
Uncaught TypeErrorwhen invalid JSDoc type specified for@returns. Fixes #55. - Fixed "Reverse Tabnabbing" vulnerability with generated documentation links. (This is also fixed for Zebra template.)
- An issue where
basetag would not be added to the head of main document. - An issue where Docma would not set default
app.basepath to/as expected. Fixes #59. - An issue where symbol link would be parsed as absolute path rather than relative. Fixes #50.
- (Zebra template) Fixed an issue where tags such as
@constantand@modulewould cause anUncaught TypeError. Fixes #41 and #45.
2.1.0 (2018-04-29)
Thanks to @feugy for this PR.
servecommand now takesconf.app.baseparameter into consideration, and will redirecthttp://localhost:9000/to it.
servecommand can handleconf.app.destrelative path, and resolves them against current working directory.- A file name issue that produces
cannot find moduleerror in case-sensitive systems. Fixes #38.
- Renamed the
--quiteoption to--quiet. Alias-qremains the same.
- Partial support for TypeScript-style type notation. e.g.
Promise<Number>orNumber[], etc...
- An issue where deeper levels of tree nodes were not properly aligned, when
sidebar.outlineis set to"tree". - An issue where some symbol names were unnecessarily scroll-animated on hover. Firefox was affected.
- An issue where multiple return types were listed out of style.
- When
sidebar.itemsOverflowis set to"crop"(default); symbol names are faded-out on their edges, instead of using ellipsis (which behaves differently on browsers).
2.0.0 (2018-04-12)
This is a big release with some breaking changes.
Please read this changelog thoroughly before updating your Docma configuration.
- Support for documenting code with ES2015 syntax. (JSDoc and jsdoc-x dep. update.) Fixes #18 and #21.
assetsbuild configuration which provides ability to copy defined asset files/directories to build directory; so you can use/link to non-source, static asset files (such as images, PDFs, etc). See build configuration. Fixes #29.- Pre-build and post-build process support for Docma templates. See Docma Templates documentation.
markdown.xhtmloption for build configuration.- Docma version compatibility check for Docma templates.
cleanoption that specifies whether to empty destination directory before the build. Default isfalse.- Build statistics logs to console output. Now, displaying gzipped size of generated (docma-web) script, in addition to minified size; and more detailed summary of routes configured.
- An issue where the builder would not check for duplicate route names with the same route type (and silently overwrite the generated content file).
- An issue where compiled template scripts were altered when full-debug is enabled.
- An issue with redirecting a page when the routing method is set to
"path". - An issue with images in HTML (generated from markdown) that would overflow out of page. Now, limiting the image width to
100%of parent container while keeping the aspect ratio. - An issue with generated heading ids when building docs from markdown. Other HTML tags contained within the heading were not ignored, resulting in too complex ids (bookmarks).
- BREAKING: Due to several upgrades (such as
jsdom), Docma v2+ requires Node.js v6 or newer. - Greatly improved the symbol sorting logic (jsdoc-x). You can now sort by
scope, byaccesstype, bykind,groupedoralphabetic(default). Seejsdoc.sortoption in build configuration. - The destination directory is not auto-cleaned anymore before the build. Use
cleanoption for the old behavior. Fixes #34. - Improved markdown parser. Both
<h1 />and<h2 />tags are now followed with a<hr/>, like on GitHub. - Updated core dependencies to their latest versions.
- Migrated all code to ES2015.
- BREAKING: Docma templates are now node modules. Docma still comes with an updated, built-in default template (Zebra). But templates designed for Docma v1.x will not work with Docma v2.x.
- For template authors only:
- BREAKING:
docma.template.jsonfile that defines the template build and configuration options is dropped in favor of template module main (JS) file orpackage.json. There are several other improvements. See updated documentation on Creating Docma Templates. - BREAKING:
compileproperty of template configuration is removed. Now, scripts or less/sass files of the template should be pre-compiled. This is logical and speeds up the documentation build process of Docma.
- BREAKING:
- Option
--cleanto empty destination directory before the build. - Command
docma servefor starting a static server for serving / testing the generated SPA. - Command
docma template initfor initializing a new Docma template project. - Command
docma template doctorfor diagnosing a Docma template. Useful for template authors.
- Dropped default configuration file name
docma.config.jsonin favor ofdocma.json(shorter) and.docma.jsonif you need to hide it. This does not break anything, you can still use the former if you want. - CLI will now auto-check for a
docma.json(or.docma.json) file in the current working directory if-coption is omitted. - Options
-v(lowercase) and-V(uppercase) are swapped.-vgets the Docma version now (alias--version). And-Vis--verbose.
See CLI documentation for detailed information on updated CLI.
- Event
navigatethat's triggered either when route is changed or on hash-change. - Each symbol in
docma.apis[name].documentationinstances, now has a.$docmaLinkproperty. - New utility methods to
DocmaWeb.Utils:.type(),.getSymbolLink(),.getLevels(),.getParentName(),.getParent(),.isPackagePrivate(),.isEvent(),.isGenerator(),.isCallback(),.isConstant(),.isInterface(),.isExternal()and.isMixin(). - Utility methods
.getCodeTags(),.getFormattedTypeList(). Fixes #33. - Utility method
.trimNewLines(). This also has a dust filter$tnl.
- Broken bookmark links due to URI encoded characters after hash (
#). e.g. when navigated to#MyClass%7EInnerObjectinstead of#MyClass~InnerObject. - An issue with
DocmaWeb.Utils.getLongName(), occured after JSDoc core upgrade. currentRouteparameter of therouteevent. Passingnullinstead of empty route object when route does not exist.- An issue with
DocmaWeb.Utils.isClass()utility method wheremeta.code.typeis not set toClassDeclaration. DocmaWeb.Utils.isProperty()utility method. It'll now returnfalseif symbol is a method/function. This also affects the following methods:.isStaticProperty(),.isInstanceProperty().
- BREAKING: Docma utility methods are moved to
DocmaWeb.Utilsstatic namespace (formerly underdocma.utils). DocmaWeb.Utils.getSymbolByName()signature is changed.- Updated web-core dependencies.
- Docma templates are now node modules. This is the initial Template API. See updated documentation on Creating Docma Templates.
- Support for
@example <caption>Title</caption>. Fixes issue #14. - Support for
@hideconstructortag. Fixes issue #21. - Support for
@event,@emits(and alias@fires) tags. Fixes issue #35. - Support for
@generatorand@yieldstags. - Support for rest parameters (i.e.
...args). - Support for
@sincetag. - Support for folding child members of parent symbols. Added template option
sidebar.itemsFolded(boolean) for setting the initial state. Fixes issue #26. - Template option
sidebar.toolbar(boolean) that toggles a tiny toolbar below the search box, for switching symbol list outline or quick-filtering symbols by symbol-kind. Enabled by default. - Template option
logo(String|Object) specifies the URL of your logo. If you need separate logos for dark and light backgrounds set this to an object. i.e.{ dark: String, light: String }. Recommended size of a logo image is 120 x 120 pixels. - Template option
symbols.autoLink(Boolean|String) specifies whether documented types should be auto-linked tointernalpaths (i.e. Docma route if type/object definition is within the generated documentation) orexternalURLs (MDN docs if it's a JS or Web-API built-in type/object such asString); or both. Thanks to @warpdesign for the idea. - Template options
symbols.params,symbols.propsandsymbols.enumsall taking a string value, either"list"(default) or"table"; defining the layout style for parameters, properties and enumerations. If you like the design in previous versions, set these to"table". - Template option
sidebar.animationsandnavbar.animations(Boolean) specifies whether CSS transitions and animations should be enabled for navbar, sidebar and listed symbols. - Template option
contentView.bookmarksoption (Boolean|String) which automatically adds bookmark links to headings to content generated from markdown files. Default:false. generatorbadge for generator functions.
- Some spacing issues with class descriptions. Empty tables are auto-removed now.
- A JSDoc issue where the constructor would be incorrectly marked as alias.
- An anchor/bookmark issue with multiple symbols having the same id.
- Sub-symbols that are listed in a table, will not wrap to new line anymore.
- An issue where the (heading) title would be hidden under the nav-bar when navigated via a local bookmark on a page, generated from a markdown file. Also improved spacing for headings.
- An issue where the page would not scroll/jump to the bookmark on initial load; when the URL has a location hash.
- Pre/code elements not to wrap content. Now, horizontally scrollable (like on GitHub).
- An issue with sidebar symbol names auto-resizing incorrectly in some cases. Also improved performance by caching font-size for each item.
- hidden meta issue. If symbol had no class description, tags such as
@author,@versionand@copyrightwould not be shown. - Sidebar scrollbars that were not fully visible.
- Some issues with navbar margins when sidebar is disabled.
- Sidebar and navbar title so that they allow longer strings without breaking.
- Default template finally has a name :) - Zebra.
- BREAKING: You need Docma v2+ for latest Zebra template to work.
- Improved symbol listing styles and performance. Using CSS transitions instead of JS manipulation. Also; when search is active, outline is temporarily set to
"flat"so that you see the parent of the symbol. When search box is cleaned, it's set back to the initial template setting. (e.g."tree"if set). - Improved
@exampleoutputs. If there are multiple examples for a symbol, they will be numbered now. - Improved nested bullet list spacing, for better readability.
- Improved UI and responsive layout. On small screens, sidebar auto-collapses; top navbar turns into hamburger menu. Also, truly printable.
- Improved template option
.badges(default:true) to also accept a string value for custom bullets instead of badges. - Improved template option
.titleto also accept an object{ label:String, href:String }so you can link it. - Various other improvements and clean up.
- The template options object structure is changed and a couple of options are renamed. Old structure is still supported and it won't break anything but this support will be removed in future versions. See documentation for the new & improved structure.
- BREAKING: icomoon selection of icons (and
ico-CSS prefix) in favor of FontAwsome (v5) and SVG icons support. - Bootstrap and its dependencies (css and js). Also, cleaned up all unused styles.
1.5.3 (2017-12-21)
- A parser issue where carriage return (CR) of Windows newlines (CRLF) were removed. Fixes #28.
1.5.2 (2017-12-09)
$ is not a functionerror on Windows. PR #23 by @warpdesign.- Some typos in documentation. PRs #13, #17.
Note: For this release, some dependencies (such as
jsdoc-x,jsdom) are NOT updated on purpose 'cause they introduce breaking changes. In v2 (WIP, to be released) these will be updated and many things will be improved.
1.5.1 (2017-03-11)
sliceerror for non-string default value.
1.5.0 (2017-03-10)
config.jsdoc.ignored:Booleanoption which specifies whether to include documentation symbols marked with@ignoretag.
- An issue where empty lines would be stripped out from
@examplecontent.
- Improved auto-indention for code in comments.
- Improved
$valfilter.
- Template option
outline, which determines the outline style of the sidebar symbols list. ("flat"or"tree"). See documentation and this example foroutlineset to"tree". - Template option
symbolMetawhich specifies whether to add meta information at the end of each symbol documentation such as code file name and line number. Default isfalse. staticbadge for static members,deprecatedbadge for deprecated symbols.
- Improved sidebar design.
Type.<T>is now represented asType<T>.- Default string values are now represented in quotes.
1.4.7 (2017-03-09)
- An issue where build config
config.jsdoc.includePatternwould not be respected when filtering files. - An issue where sorting would change when
config.jsdoc.hierarchyoption is enabled.
1.4.5 (2017-03-05)
- Build config options:
config.jsdoc.allowUnknownTags,config.jsdoc.dictionaries,config.jsdoc.includePattern,config.jsdoc.excludePattern(jsdoc-xfeature). - JSDoc plugin support via the new
config.jsdoc.pluginsoption (jsdoc-xfeature).
1.4.0 (2017-02-13)
- Incorrect routing when routing method is set to
"path".
- If
config.app.entranceis not set in build configuration, it now defaults to"api". - If
config.app.serveris not set in build configuration, it now defaults to"static". ("static"is similar to"github"which generates static HTML files.)
- Respecting debug option in config file. If no debug options are set in the command-line arguments (such as
--debug,--quiet,--nomin,--jd-out,--verbose,--web-logs); the bitwise debug value from the config file is used, if set.
.split()error fornull(404) routes.
- Updated web dependencies to latest versions.
- A style issue where sidebar would not scroll all the way to the bottom in Firefox. Fixes issue #8.
- If
config.template.titleis omitted,config.app.titleis used. (Defaults to"Documentation"if not set).
1.3.0 (2016-11-23)
- Case-sensitive routing option.
config.app.routingaccepts either aString("query"or"path"as before) or now, anObject. e.g.{ type: "query", caseSensitive: true }. This also fixes issue #3.
- Updated dependencies to their latest versions.
- Minor code revisions.
- Extended support for parsing back-ticks in documentation. Added triple back-tick support for multiline code blocks (
```).
- Improved
docma.utils.normalizeTabs()method. Deep indents in JSDoc comments/descriptions are also normalized. - Improved support for
<pre></pre>tags within JSDoc descriptions.
- An issue where symbols with return type parameters (such as
Promise<Array>) would not be escaped and parsed properly. Fixes issue #4. - An issue where boolean symbol parameters' default values would not be parsed properly. Fixes issue #5.
1.2.0 (2016-10-31)
- CLI (command-line interface). Supports
config,src,destand alldebugoptions.
- Updated (one-dark) highlighting styles.
1.1.1 (2016-08-13)
- An anchor/linking issue which prevented some browsers (such as Safari) to navigate properly.
1.1.0 (2016-08-12)
- An issue where constructors would still show up in the documentation even though
@privateis set. Fixed byjsdoc-x.
- Updated dependencies to their latest versions.
- Minor revisions.
- Fixed sidebar header/search position when sidebar is collapsed.
- An access badge is shown next to symbol name, if symbol has
privateorprotectedaccess.- Clean up.
1.0.3 (2016-06-27)
- HTML source file support. You can include HTML files together with JS and markdown files while building your documentation.
- Removed YAML syntax highlighting support because of incorrect auto-detection. Opened an issue here.
1.0.1 (2016-06-11)
David considers marked as insecure dependency. This is already reported.
- Missing web components.
1.0.0 (2016-06-11)
- Ability to convert markdown files to HTML. See documentation.
.markdown:Objectbuild configuration options. (Same asmarkedmodule options)..markdown.tasks:Booleanoption for parsing GitHub-like markdown tasks.- Emoji (twemoji) support for converted markdown files. Added
.markdown.emoji:Booleanoption. .app.serverbuild option that defines the server/host type for generating server config file(s) for the SPA. e.g., setting to"apache"generates an.htaccessfile within the root of the generated output. Supports"apache"and"github"..app.base:Stringbuild option that sets the base path for the SPA..app.entrance:Stringbuild option that sets the initial content to be displayed..debug:Booleanbuild option.- Ability to group
.jsfiles into multiple, separate documentation. See.srcbuild option. - Ability to rename routes for generated markdown files. See
.srcbuild option. - Negated glob support (that excludes the paths) for the
srcbuild option.
- Improved GFM parsing.
- Dropped
.dumpconfig option in favor of.debugoption. - Moved
.template.documentconfiguration to.app.
- Client-side routing support for the SPA with paths (e.g.
/api/mylib) or query-strings (e.g.?api=mylib). Configured via.app.routing:Stringoption. Set to"path"or"query". Uses page.js internally. - Implemented
EventEmitter. - New methods to
docma.utilssuch asgetCodeName(symbol),getFullName(symbol), etc...
- BREAKING: Dropped
docma.ready()method. Usedocma.on('ready', listener)that's only triggered once on every page load ordocma.on('render', listener)triggered when each content is rendered. Also seedocma.on('route', listener)triggered when SPA route is changed. - Docma web initializing errors are no longer passed to event listeners. They are now immediately thrown.
docma.app:Objectanddocma.template.main:Stringare now exposed to the SPA.docmaobject accessible by the SPA is nowObject.freezed.- If
debug >= 3, web app will now also output logs.
- Bookmark scrolling.
- More supported languages for syntax highlighting (Javascript, JSON, CSS, HTML, XML, CoffeeScript, TypeScript, Bash, HTTP, Markdown, Dust and YAML).
- Ability to auto-detect language for syntax highlighting.
- Ability to style tables in HTML generated from markdown.
- Ability to style code blocks in HTML generated from markdown.
- Documentation of
@propertyJSDoc tags. - Incorrect symbols sort issue when symbol(s) have aliases.
- Updated default template structure.
- Improved layout for HTML files converted from markdown.
- Improved font display for code and summary/descriptions.
- Improved UX by auto-adjusting font size of sidebar items to fit the sidebar, if they exceed the width.
- Improved various API documentation styles.
- (Dev): Manage web-component dependency packages via Bower.
- Updated project structure.
- Various minor revisions and clean-up.
- Improved Docma source code documentation.
- Default template option
badges:Boolean.
docma.template.jsonis no more copied over to the output.
- Docma Web file paths.
- Updated default template.
- Updated dependencies.
- Clean-up.
- Initial (pre) release.