DocFXとは
C#(というか.NET)のソースコードのコメントから、
こんな感じのドキュメントが作成できる。
ただ、スタンドアローンで使うには微妙。
環境
Windows7 Professional
インストール
- githubからビルド済みバイナリを取得して展開。
- Microsoft Build Tools 2015 をダウンロードしてインストール。
- Node.jsをダウンロードしてインストール。
使ってみる
初期化
ビルド済みバイナリを展開すると、「docfx.exe」があるので、
docfx.exe init -q -o DocFXSample
と実行すると、「DocFXSample」ディレクトリが作成される。
C#のプロジェクトとソースファイルを用意
ここではプロジェクト名をDocFXSampleとしたので、
csprojのファイル名はDocFXSample.csprojとなる。
コメントもつけておく。
Program.cs
using System;
namespace DocFXSample
{
    /// <summary>
    /// 基底クラス。
    /// </summary>
    public class BaseClass
    {
        /// <summary>
        /// 基底クラスのメンバ。
        /// </summary>
        public int sum;
        /// <summary>
        /// 基底クラスの仮想メソッド。
        /// sumを+1して返す。
        /// </summary>
        /// <returns>sumの値</returns>
        public virtual int func()
        {
            sum++;
            return sum;
        }
    }
    /// <summary>
    /// 継承クラス。
    /// </summary>
    public class DerivedClass : BaseClass
    {
        /// <summary>
        /// 仮想メソッド。
        /// 基底クラスと異なりsumを+2して返す。
        /// </summary>
        /// <returns>sumの値(derived)</returns>
        public override int func()
        {
            sum++;
            sum++;
            return sum;
        }
    }
    /// <summary>
    /// enumのテスト。
    /// </summary>
    public enum EnumTest
    {
        /// <summary>
        /// 要素1。
        /// </summary>
        Elem1,
        /// <summary>
        /// 要素2。
        /// </summary>
        Elem2,
        /// <summary>
        /// 要素3。
        /// </summary>
        Elem3,
    }
    /// <summary>
    /// enumの拡張メソッドテスト。
    /// </summary>
    public static class EnumTestExt
    {
        /// <summary>
        /// EnumTest.Nameの拡張メソッド。
        /// </summary>
        /// <param name="value">EnumTest。</param>
        /// <returns>EnumTestの値に応じた文字列。</returns>
        public static string Name(this EnumTest value)
        {
            switch (value)
            {
                case EnumTest.Elem1: return "要素1。";
                case EnumTest.Elem2: return "要素2。";
                case EnumTest.Elem3: return "要素3。";
            }
            return "不明。";
        }
    }
    /// <summary>
    /// 実行クラス。
    /// </summary>
    public class Program
    {
        /// <summary>
        /// エントリーポイント
        /// </summary>
        /// <param name="args">引数</param>
        static void Main(string[] args)
        {
            BaseClass b = new BaseClass();
            DerivedClass d = new DerivedClass();
            EnumTest e = EnumTest.Elem1;
            Console.WriteLine("開始。");
            Console.WriteLine("BaseClass     = {0}", b.func());
            Console.WriteLine("DerivedClass  = {0}", d.func());
            Console.WriteLine("EnumTest.Name = {0}", e.Name());
            Console.WriteLine("終了。");
        }
    }
}
作成したC#プロジェクトとソースファイルを docfx/DocFXSample/src へコピーする。
以下のような感じ。
C:\work\docfx\DocFXSample
│  .gitignore
│  docfx.json
│  index.md
│  toc.yml
│
├─api
│      .gitignore
│      index.md
│      toc.yml
│
├─apidoc
├─articles
│      intro.md
│      toc.yml
│
├─images
└─src
        DocFXSample.csproj ← 追加
        Program.cs         ← 追加
metadata/build コマンドを実行。
C#のソースから、**.yml のファイルを作成。
..\docfx.exe metadata
_site のデータを作成。
..\docfx.exe build
成功すると、docfx/DocFXSample/_site/api/DocFXSample.html が作成される。
ローカルで見る場合はこれで終了。
成果物
サーバー起動
..\docfx.exe --serve
とすると、http://localhost:8080 にwebサーバーが立ち上がり、
作成したドキュメントを閲覧できる。
こちらの方がリッチなコンテンツになる。




