public StringBuffer Mark(SourceInfo sourceInfo, IMarkdownContext context) { var result = StringBuffer.Empty; var parser = Parser; if (context != null) { parser.SwitchContext(context); } var tokens = parser.Tokenize(sourceInfo.Copy(Preprocess(sourceInfo.Markdown))); var internalRewriteEngine = new MarkdownRewriteEngine( this, MarkdownTokenRewriterFactory.Loop( MarkdownTokenRewriterFactory.FromLambda <IMarkdownRewriteEngine, TwoPhaseBlockToken>( (e, t) => t.Extract(parser)), MaxExtractCount + 1)); tokens = internalRewriteEngine.Rewrite(tokens); var idTable = new Dictionary <string, int>(); var idRewriteEngine = new MarkdownRewriteEngine( this, MarkdownTokenRewriterFactory.FromLambda <IMarkdownRewriteEngine, MarkdownHeadingBlockToken>( (e, t) => t.RewriteId(idTable))); tokens = idRewriteEngine.Rewrite(tokens); tokens = RewriteEngine.Rewrite(tokens); var renderer = Renderer; foreach (var token in tokens) { result += renderer.Render(token); } return(result); }
public StringBuffer Mark(string markdown, IMarkdownContext context) { var result = StringBuffer.Empty; var parser = Parser; if (context != null) { parser.SwitchContext(context); } var tokens = parser.Tokenize(Preprocess(markdown)); var internalRewriteEngine = new MarkdownRewriteEngine( this, MarkdownTokenRewriterFactory.FromLambda <IMarkdownRewriteEngine, TwoPhaseBlockToken>( (e, t) => t.Extract(parser))); tokens = internalRewriteEngine.Rewrite(tokens); tokens = RewriteEngine.Rewrite(tokens); var renderer = Renderer; foreach (var token in tokens) { result += renderer.Render(token); } return(result); }
private Dictionary <string, Commit> rewrite(ISet <string> shasToRewrite, Filters filters) { Console.WriteLine("Rewriting..."); var rewriter = new RewriteEngine(filters, repo, options.PruneEmpty, options.PruneMerges, options.PruneMergesAggr); var t = rewriter.Run(shasToRewrite); do { System.Threading.Thread.Sleep(1000); var progress = rewriter.Progress; Console.Write($"\r{new string(' ', Console.WindowWidth - 1)}\rDone: {progress.Done}/{rewriter.Total} Loaded: {progress.Loaded} Filtered: {progress.Filtered} Parented: {progress.ParentFiltered} Dropped: {progress.Dropped} Saved: {progress.Saved}"); }while (!t.IsCompleted); Console.WriteLine(); Console.WriteLine("Done"); return(t.Result); }
public StringBuffer Mark(string markdown, IMarkdownContext context) { var result = StringBuffer.Empty; var parser = Parser; if (context != null) { parser.SwitchContext(context); } var tokens = parser.Tokenize(Preprocess(markdown)); tokens = RewriteEngine.Rewrite(tokens); var renderer = Renderer; foreach (var token in tokens) { result += renderer.Render(token); } return(result); }