コード例 #1
0
        private void GenerateFiles(string docsDirectory, string output)
        {
            DirectoryInfo docsDirectoryInfo = new DirectoryInfo(docsDirectory);

            if (docsDirectoryInfo.Attributes != FileAttributes.Directory)
            {
                Console.WriteLine("{0} is not a directory", docsDirectory);
                return;
            }

            foreach (FileSystemInfo docs in docsDirectoryInfo.GetFileSystemInfos())
            {
                if (docs.Extension != ".md")
                {
                    continue;
                }

                var fileName = docs.Name.Replace(docs.Extension, "");
                var content  = File.ReadAllText(docs.FullName);
                var docInfo  = DocParser.ParseDocs(content);
                var json     = JsonSerializer.Serialize(new DocsFile
                {
                    Order = docInfo.order,
                    Title = docInfo.title,
                    Html  = docInfo.html
                }, new JsonSerializerOptions()
                {
                    WriteIndented    = true,
                    IgnoreNullValues = true,
                    Encoder          = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
                });

                var configFileDirectory = Path.Combine(Directory.GetCurrentDirectory(), output);
                if (!Directory.Exists(configFileDirectory))
                {
                    Directory.CreateDirectory(configFileDirectory);
                }

                var configFilePath = Path.Combine(configFileDirectory, $"{fileName}.json");

                if (File.Exists(configFilePath))
                {
                    File.Delete(configFilePath);
                }

                File.WriteAllText(configFilePath, json);
                Console.WriteLine("Generate demo file to {0}", configFilePath);
            }
        }