private void ParseDescriptions() { ExecuteOnStepMessage(_stepInput.SDBuildStrings.ParsingDescriptions); ExecuteOnStepProgress(50); var potentialReadMes = Directory.EnumerateFiles(Path.GetDirectoryName(_stepInput.CoreConfigSection.InputFile), "*.sdpd"); if (potentialReadMes.Any()) { foreach (var readme in potentialReadMes) { var splitted = Path.GetFileName(readme).Split('.'); if (splitted.Length > 0 && CultureInfo.GetCultures(CultureTypes.NeutralCultures).Any(c => c.TwoLetterISOLanguageName == splitted[0].ToLower())) { if (!_sdProject.Descriptions.ContainsKey(splitted[0].ToLower())) { _sdProject.Descriptions.Add(splitted[0].ToLower(), new SDTemplate(File.ReadAllText(readme), _sdProject.Tokens)); _sdProject.AddDocumentationLanguage(splitted[0].ToLower()); } } else if (splitted.Length > 0 && splitted[0].ToLower() == "default" && !_sdProject.Descriptions.ContainsKey("default")) { _sdProject.Descriptions.Add("default", new SDTemplate(File.ReadAllText(readme), _sdProject.Tokens)); } } } }
public SDProject ParseNavFile(string navFile, SDProject sdProject) { var navFileLanguage = Path.GetFileNameWithoutExtension(navFile); sdProject.AddDocumentationLanguage(navFileLanguage); var articles = new List <SDArticle>(); var levelNodes = new List <SDArticle>(); if (navFile != null) { foreach (var line in File.ReadAllLines(navFile)) { var article = GetArticle(line, sdProject.Tokens); if (article is SDDocPlaceholder) { var solutionFile = ((SDDocPlaceholder)article).SolutionFile; sdProject.AddSolution(solutionFile); } var navLevel = GetNavLevel(line); if (levelNodes.Count < navLevel) { levelNodes.Add(article); } else { levelNodes[navLevel - 1] = article; } if (navLevel == 1) { articles.Add(article); } else { article.Parent = levelNodes[navLevel - 2]; levelNodes[navLevel - 2].Children.Add(article); } } } sdProject.Articles.Add(navFileLanguage, articles); return(sdProject); }