- Feature already available in docfx
Status In progress. As Sepc indicates, schema-driven processor is to handle the multi-language support issues. With SDP, it is much easier than today to onboarding new languages such as TypeScript, SQL, GO, etc. A new language on-boarding will include the following steps:
- Generate the YAML file from the language
- Create the schema for the language YAML
- Create the template for the language based on the schema
Take TypeScript as a start point
-
1. Mustache to handlebars Handlebars keeps most compatibility with Mustache template syntax, and meanwhile it is more powerful. It supports partials with parameters, which makes componentization possible. It also contains Built-In Helpers such as
if
conditional andeach
iterator. -
2. Razor page support Status In design phase. Razor page is a new feature of ASP.NET Core. A Razor page contains a template file
A.cshtml
and a 'code-behind' fileA.cshtml.cs
. The design is pretty similar to DocFX's templating system which is a template fileA.tmpl
orA.liquid
and a 'preprocessor' fileA.tmpl.js
orA.liquid.js
. Razor page is quite familir to ASP.NET developers. Supporting it in DocFX sounds friendly to new comers.
According to Feature Proposals, docfx watch
wins far ahead.
Watch => Changed file list => Build => File Accessor Layer
File changes include:
- Source Code file change => Out of scope. (Hard to implement)
.md
and.yml
file change => In scope.- Template file change
- Dependent style files change => In scope.
- Template file change => In scope. (Could be slow)
- Performance benchmark
- Performance improvement, including memory consumptions, refactor build steps to maximum parallelism, merge duplicate steps, etc.
- VSCode extension
- Preview
- TOC
- Schema based YAML files
- Intellisense
- DFM syntax: uid autocomplete, syntax detect
- docfx.json
- toc.yml
- schema based YAML documents
- Preview
With this API service, there is no need to download msdn.zip
package or xrefmap.yml
file anymore.
- Integrate docfx with CI, e.g. Travis, Appveyor
- Easier installation, e.g. one script for copy
- Cross platform support
- Dotnet-core migration
- Docker