コード例 #1
0
ファイル: CountWord.cs プロジェクト: ti-life/docfx
 public override void Postbuild(ImmutableList <FileModel> models, IHostService host)
 {
     foreach (var model in models)
     {
         if (model.Type == DocumentType.Article)
         {
             var content = (Dictionary <string, object>)model.Content;
             content["wordCount"] = WordCounter.CountWord((string)content[Constants.PropertyName.Conceptual]);
         }
     }
 }
コード例 #2
0
 public override IEnumerable <FileModel> Postbuild(ImmutableList <FileModel> models, IHostService host)
 {
     foreach (var model in models)
     {
         if (model.Type == DocumentType.Article)
         {
             var content = (Dictionary <string, object>)model.Content;
             content["wordCount"] = WordCounter.CountWord((string)content["conceptual"]);
         }
     }
     return(models);
 }
コード例 #3
0
        public void Build(FileModel model, IHostService host)
        {
            if (model.Type != DocumentType.Article)
            {
                return;
            }
            var content  = (Dictionary <string, object>)model.Content;
            var markdown = (string)content[ConceputalKey];
            var result   = host.Markup(markdown, model.FileAndType);

            content[ConceputalKey] = result.Html;
            content["title"]       = result.Title;
            content["word_count"]  = WordCounter.CountWord(result.Html);
            if (result.YamlHeader != null && result.YamlHeader.Count > 0)
            {
                foreach (var item in result.YamlHeader)
                {
                    if (item.Key == "uid")
                    {
                        var uid = item.Value as string;
                        if (!string.IsNullOrWhiteSpace(uid))
                        {
                            model.Uids = new[] { uid }.ToImmutableArray();
                        }
                    }
                    else
                    {
                        content[item.Key] = item.Value;
                        if (item.Key == DocumentTypeKey)
                        {
                            model.DocumentType = item.Value as string;
                        }
                    }
                }
            }
            model.Properties.LinkToFiles = result.LinkToFiles;
            model.Properties.LinkToUids  = result.LinkToUids;
            model.File = Path.ChangeExtension(model.File, ".json");
        }