- Add 3 options to
build
subcommand:--rawModelOutputFolder
: to specify the output folder for raw model if--exportRawModel
. If the value is not set, raw model will be in the same folder as the output documenation.--viewModelOutputFolder
: to specify the output folder for view model if--exportViewModel
. If the value is not set, view model will be in the same folder as the output documenation.--dryRun
: if this option is set,docfx
will go through all the build processes for all the documents, however, no documentation will generated.
- Improve markdown:
- Allow paired parentheses in link target, e.g.
[text](paired(parentheses(are)supported)now "title")
.
- Allow paired parentheses in link target, e.g.
- Improve performance for document build.
- Breaking changes:
- modify interface @Microsoft.DocAsCode.Plugins.IDocumentBuildStep.
- Fix bug for encoded link file.
- Fix bug for directory not found.
Remove newFileRepository
from output metadata
-
Cross-reference related:
-
Make @uid rule more strict: if
@
is not followed by'
or"
, it must be followed by word character ([a-zA-Z]
) -
Introduce new syntax for cross-reference:
- similar to autolink:
<xref:uid>
- similar to link:
[title](xref:uid)
or[title](@uid)
- similar to autolink:
-
support
uid
intoc.yml
:- uid: getting-started - uid: manual
-
support cross reference in
toc.md
# <xref:getting-started> # [Override title](@getting-started)
-
-
Update yaml serializion: Add @Microsoft.DocAsCode.YamlSerialization.ExtensibleMemberAttribute
-
Improve
docfx init
, now withdocfx init
, adocfx_project
seed project will will generated. -
Several improvements for
default
template:- Provide properties to customize layout:
_disableNavbar
,_disableBreadcrumb
,_disableToc
,_disableAffix
,_disableContribution
,_disableFooter
- Include empty
main.css
andmain.js
tohead.tmpl.partial
partial template so that there is no need to customizehead.tmpl.partial
when you want to customize website style.
- Provide properties to customize layout:
Fix no link and ref link cannot work issue in table
- Fix no link and ref link cannot work issue in markdownlite.
- Fix link issue (allow space in link) in markdownlite.
- Fix para for list in markdownlite.
- Fix tokenize bug in dfm.
- Add markdown token validator in dfm.
- Fix cross domain issue: timeout exception throws when document build takes longer than 15 minutes
- Fix docfx IOException when calling
docfx -l report.txt
FIX Github pages compatibility issue( Github pages now disallow iframe, however the default template of docfx
uses iframe to load side toc): Update default template to use AJAX to load side toc, the original one is renamed to iframe.html
. So now we have 2 embedded template, one is default
and another is iframe.html
.
docfx
improvements- Add subcommand
docfx template
. You can nowdocfx template list
anddocfx template export -A
to list and export all the embeded templates! - Add subcommand
docfx merge
. You can use this subcommand to mergeplatform
from multiple APIs with the sameuid
- Add two options to
build
subcommand,--exportRawModel
and--exportViewModel
.--exportRawModel
exports the data model to apply templates,--exportViewModel
exports the view model after running template's pre-process scripts. - Add
--globalMetadata
, and--globalMetadataFile
options tobuild
subcommand. These options allowglobalMetadata
to be loaded from command line in json format or from a JSON file. - Add
--fileMetadataFile
option tobuild
subcommand. This option allowsfileMeatdata
to be read from an external JSON file. - Support plugins. You can create your own template with a
plugins
folder, inside which, you create your own build steps. Refer to @Microsoft.DocAsCode.EntityModel.Plugins.BaseDocumentBuildStep for a sample plugin implementation.
- Add subcommand
- DFM syntax improvements
- Support note&div syntax
- Support query format in code snippet
[!code-<language>[<name>](<codepath><queryoption><queryoptionvalue> "<title>")]
- Change xref logic:
- If content after
@
is wrapped by'
or"
, it contains any character including white space - If content after
@
is not wrapped by'
or"
, it ends when:- line ends
- meets whitespaces
- line ends with
.
,,
,;
,:
,!
,?
and~
- meets 2 times or more
.
,,
,;
,:
,!
,?
and~
- If content after
- Code improvements
- Add @Microsoft.DocAsCode.YamlSerialization This project is based on YamlDotNet. It overrides classes like type converters to improve performance and fix bug existed in YamlDotNet
- Refactor markdown engine @Microsoft.DocAsCode.MarkdownLite
- Add @Microsoft.DocAsCode.MarkdownLite.IMarkdownRewritable`1. It provides a way to operate markdown tokens.
- Other improvements
- Add a new property
_path
into_attrs
, it stands for the relative path fromdocfx.json
to current file - Improve missing xref warning message to include containing files.
- Add
data-uid
as attribute to generated html from default template, so that you can now finduid
for API much more easily.
- Add a new property
- Support Liquid template, templates ending with
.liquid
are considered as using liquid templating language. Liquid containsinclude
tag to support partials, we follow the ruby partials naming convention to have_<partialName>.liquid
as partial template. A custom tagref
, e.g.{% ref file1 %}
is introduced to specify the resource files that current template depends on. - DFM include syntax is updated to use
[!include[<title>](<filepath>)]
syntax - Disable glob pattern in
docfx metadata
command line option as it is to some extent confusing, consider using a-g
option later to re-enable it.
- Rewrite Glob
The syntax of glob is:
**
is called globstar, it matches any number of characters, including/
, as long as it's the only thing in a path part.- If
**
is right behind/
, it is a shortcut for**/*
. *
matches any number of characters, but not/
?
matches 1 characters, but not/
{}
allows for a comma-separated list of "or" expressions, e.g.{a,b}
=>a
andb
!
at the beginning of a pattern will negate the match[...]
matches a range of characters, similar to a RegExp range/
is considered as path separator, while\
is considered as escape character
- Support
fileMetadata
. You can specify different metadata value using glob pattern - Improve overwrite functionality. Now you can overwrite not only summary/remarks, but also descriptions for parameters. You can even add exceptions.
- Now the latest project.json projects are also supported in DNX version.
- Simple code snippet is now supported, syntax is
[!code-REST-i[title](path "optionalTitle")]
- Url is now encoded in markdown link.
- Add section syntax in DFM
- Fix several bugs in DFM
- Update default template: rename css/js file
- Fix several display issue in default template
- Support Static Website Templates
- Schema change to docfx.json