public override void Run (IEnumerable<string> args)
{
opts = new MDocToHtmlConverterOptions ();
var p = new OptionSet () {
{ "default-template",
"Writes the default XSLT to stdout.",
v => opts.dumptemplate = v != null },
{ "ext=",
"The file {EXTENSION} to use for created files. "+
"This defaults to \"html\".",
v => opts.ext = v },
{ "force-update",
"Always generate new files. If not specified, will only generate a " +
"new file if the source .xml file is newer than the current output " +
"file.",
v => opts.forceUpdate = v != null },
{ "o|out=",
"The {DIRECTORY} to place the generated files and directories.",
v => opts.dest = v },
{ "template=",
"An XSLT {FILE} to use to generate the created " +
"files.If not specified, uses the template generated by " +
"--default-template.",
v => opts.template = v },
{ "with-profile=",
"The .NET {PROFILE} to generate documentation for. This is " +
"equivalent to using --with-version for all of the " +
"versions that a profile uses. Valid profiles are:\n " +
string.Join ("\n ", profiles.Keys.OrderBy (v => v).ToArray ()),
v => {
if (!profiles.ContainsKey (v))
throw new ArgumentException (string.Format ("Unsupported profile '{0}'.", v));
foreach (var ver in profiles [v.ToLowerInvariant ()])
opts.versions.Add (ver);
} },
{ "with-version=",
"The assembly {VERSION} to generate documentation for. This allows " +
"display of a subset of types/members that correspond to the given " +
"assembly version. May be specified multiple times. " +
"If not specified, all versions are displayed.",
v => opts.versions.Add (v) }
};
List<string> extra = Parse (p, args, "export-html",
"[OPTIONS]+ DIRECTORIES",
"Export mdoc documentation within DIRECTORIES to HTML.");
if (extra == null)
return;
if (opts.dumptemplate)
DumpTemplate ();
else
ProcessDirectories (extra);
opts.onlytype = "ignore"; // remove warning about unused member
}