コード例 #1
0
        protected override void SaveSnippets(List <Snippet> snippets, SnippetGeneratorResult result)
        {
            base.SaveSnippets(snippets, result);

#if !DEBUG
            DirectoryReadmeSettings settings = Environment.CreateDirectoryReadmeSettings(result);

            MarkdownFileWriter.WriteDirectoryReadme(result.Path, snippets, settings);
#endif
        }
コード例 #2
0
        protected override void SaveSnippets(List <Snippet> snippets, SnippetGeneratorResult result)
        {
            base.SaveSnippets(snippets, result);

            if (!result.IsDevelopment)
            {
                IOUtility.SaveSnippetBrowserFile(
                    snippets,
                    Path.Combine(result.Path, $"{result.Language.GetIdentifier()}.xml"));
            }

            Language language = result.Language;

            string languageId = result.Language.GetIdentifier();

            string directoryPath = result.Path;

            string packageDirectoryPath = Path.Combine(directoryPath, "package");

            IOUtility.WriteAllText(
                Path.Combine(packageDirectoryPath, "snippets", Path.ChangeExtension(languageId, "json")),
                JsonUtility.ToJsonText(snippets.OrderBy(f => f.Title)),
                createDirectory: true);

            PackageInfo info = GetDefaultPackageInfo();

            info.Version      = Environment.GetVersion(result.Language);
            info.Name        += "-" + languageId;
            info.DisplayName += " for " + language.GetTitle();
            info.Description += language.GetTitle() + ".";
            info.Homepage    += $"/{Path.GetFileName(directoryPath)}/{ReadMeFileName}";
            info.Keywords.AddRange(language.GetKeywords());
            info.Snippets.Add(new SnippetInfo()
            {
                Language = languageId, Path = $"./snippets/{languageId}.json"
            });

            IOUtility.WriteAllText(Path.Combine(packageDirectoryPath, "package.json"), info.ToString(), IOUtility.UTF8NoBom);

            DirectoryReadmeSettings settings = Environment.CreateDirectoryReadmeSettings(result);

#if !DEBUG
            MarkdownFileWriter.WriteDirectoryReadme(directoryPath, snippets, settings);
#endif

            settings.AddLinkToTitle = false;
            settings.Header         = null;

#if !DEBUG
            MarkdownFileWriter.WriteDirectoryReadme(packageDirectoryPath, snippets, settings);
#endif
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: pwyszynski/Snippetica
        private static (List <SnippetGeneratorResult> results, List <Snippet> snippets) GenerateSnippets(
            SnippetEnvironment environment,
            SnippetDirectory[] directories,
            string projectPath)
        {
            environment.Shortcuts.AddRange(_shortcuts.Where(f => f.Environments.Contains(environment.Kind)));

            PackageGenerator generator = environment.CreatePackageGenerator();

            var results    = new List <SnippetGeneratorResult>();
            var devResults = new List <SnippetGeneratorResult>();

            foreach (SnippetGeneratorResult result in environment.GenerateSnippets(directories))
            {
                if (result.IsDevelopment)
                {
                    devResults.Add(result);
                }
                else
                {
                    results.Add(result);
                }
            }

            var snippets = new List <Snippet>();

            snippets.AddRange(generator.GeneratePackageFiles(projectPath, results));

            snippets.AddRange(generator.GeneratePackageFiles(projectPath + DevSuffix, devResults));

#if !DEBUG
            MarkdownFileWriter.WriteProjectReadme(projectPath, results, environment.CreateProjectReadmeSettings());
#endif

            return(results, snippets);
        }