private void GenerateFiles(string demoDirectory, string output) { DirectoryInfo demoDirectoryInfo = new DirectoryInfo(demoDirectory); if (demoDirectoryInfo.Attributes != FileAttributes.Directory) { Console.WriteLine("{0} is not a directory", demoDirectory); return; } IList <Dictionary <string, DemoComponent> > componentList = null; foreach (FileSystemInfo component in demoDirectoryInfo.GetFileSystemInfos()) { if (!(component is DirectoryInfo componentDirectory)) { continue; } FileSystemInfo docDir = componentDirectory.GetFileSystemInfos("doc")[0]; FileSystemInfo demoDir = componentDirectory.GetFileSystemInfos("demo")[0]; Dictionary <string, DemoComponent> componentDic = new Dictionary <string, DemoComponent>(); foreach (FileSystemInfo docItem in (docDir as DirectoryInfo).GetFileSystemInfos()) { string language = docItem.Name.Replace("index.", "").Replace(docItem.Extension, ""); string content = File.ReadAllText(docItem.FullName); (Dictionary <string, string> Meta, string Content)docData = DocParser.ParseDemoDoc(content); componentDic.Add(language, new DemoComponent() { Title = docData.Meta["title"], SubTitle = docData.Meta.TryGetValue("subtitle", out string subtitle) ? subtitle : null, Type = docData.Meta["type"], Doc = docData.Content });
private void GenerateFiles(string demoDirectory, string docsDirectory, string output) { DirectoryInfo demoDirectoryInfo = new DirectoryInfo(demoDirectory); if (demoDirectoryInfo.Attributes != FileAttributes.Directory) { Console.WriteLine("{0} is not a directory", demoDirectory); return; } DirectoryInfo docsDirectoryInfo = new DirectoryInfo(docsDirectory); if (docsDirectoryInfo.Attributes != FileAttributes.Directory) { Console.WriteLine("{0} is not a directory", docsDirectory); return; } IList <Dictionary <string, DemoComponent> > componentList = null; IList <Dictionary <string, MenuItem> > menuList = null; Dictionary <string, int> sortMap = new Dictionary <string, int>() { ["General"] = 0, ["通用"] = 0, ["Layout"] = 1, ["布局"] = 1, ["Navigation"] = 2, ["导航"] = 2, ["Data Entry"] = 3, ["数据录入"] = 3, ["Data Display"] = 4, ["数据展示"] = 4, ["Feedback"] = 5, ["反馈"] = 5, ["Localization"] = 6, ["Other"] = 7, ["其他"] = 7 }; foreach (FileSystemInfo component in demoDirectoryInfo.GetFileSystemInfos()) { if (!(component is DirectoryInfo componentDirectory)) { continue; } Dictionary <string, DemoComponent> componentDic = new Dictionary <string, DemoComponent>(); FileSystemInfo docDir = componentDirectory.GetFileSystemInfos("doc")[0]; foreach (FileSystemInfo docItem in (docDir as DirectoryInfo).GetFileSystemInfos()) { string language = docItem.Name.Replace("index.", "").Replace(docItem.Extension, ""); string content = File.ReadAllText(docItem.FullName); (Dictionary <string, string> Meta, string Content)docData = DocParser.ParseDemoDoc(content); componentDic.Add(language, new DemoComponent() { Title = docData.Meta["title"], SubTitle = docData.Meta.TryGetValue("subtitle", out string subtitle) ? subtitle : null, Type = docData.Meta["type"], Doc = docData.Content, });
private void GenerateFiles(string demoDirectory, string output) { DirectoryInfo demoDirectoryInfo = new DirectoryInfo(demoDirectory); if (!demoDirectoryInfo.Attributes.HasFlag(FileAttributes.Directory)) { Console.WriteLine("{0} is not a directory", demoDirectory); return; } IList <Dictionary <string, DemoComponent> > componentList = null; IList <string> demoTypes = null; var directories = demoDirectoryInfo.GetFileSystemInfos() .SelectMany(x => (x as DirectoryInfo).GetFileSystemInfos()); foreach (FileSystemInfo component in directories) { if (!(component is DirectoryInfo componentDirectory)) { continue; } FileSystemInfo docDir = componentDirectory.GetFileSystemInfos("doc")?.FirstOrDefault(); FileSystemInfo demoDir = componentDirectory.GetFileSystemInfos("demo")?.FirstOrDefault(); Dictionary <string, DemoComponent> componentDic = new Dictionary <string, DemoComponent>(); if (docDir != null && docDir.Exists) { foreach (FileSystemInfo docItem in (docDir as DirectoryInfo).GetFileSystemInfos()) { string language = docItem.Name.Replace("index.", "").Replace(docItem.Extension, ""); string content = File.ReadAllText(docItem.FullName); (Dictionary <string, string> Meta, string desc, string apiDoc)docData = DocParser.ParseDemoDoc(content); componentDic.Add(language, new DemoComponent() { Title = docData.Meta["title"], SubTitle = docData.Meta.TryGetValue("subtitle", out string subtitle) ? subtitle : null, Type = docData.Meta["type"], Desc = docData.desc, ApiDoc = docData.apiDoc.Replace("<h2>API</h2>", $"<h2 id=\"API\"><span>API</span><a href=\"{language}/components/{docData.Meta["title"].ToLower()}#API\" class=\"anchor\">#</a></h2>"), Cols = docData.Meta.TryGetValue("cols", out var cols) ? int.Parse(cols) : (int?)null, Cover = docData.Meta.TryGetValue("cover", out var cover) ? cover : null, });