mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-31 15:36:07 +00:00 
			
		
		
		
	Extensions Markdig
This commit is contained in:
		
							parent
							
								
									5a715abf2d
								
							
						
					
					
						commit
						3ad3045b25
					
				
					 4 changed files with 121 additions and 4 deletions
				
			
		
							
								
								
									
										60
									
								
								AideDeJeu/AideDeJeu/Markdig/LinkInlineRendererEx.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								AideDeJeu/AideDeJeu/Markdig/LinkInlineRendererEx.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,60 @@ | ||||||
|  | // Copyright (c) Alexandre Mutel. All rights reserved. | ||||||
|  | // This file is licensed under the BSD-Clause 2 license.  | ||||||
|  | // See the license.txt file in the project root for more information. | ||||||
|  | using Markdig.Syntax.Inlines; | ||||||
|  | 
 | ||||||
|  | namespace Markdig.Renderers.Normalize.Inlines | ||||||
|  | { | ||||||
|  |     /// <summary> | ||||||
|  |     /// A Normalize renderer for a <see cref="LinkInline"/>. | ||||||
|  |     /// </summary> | ||||||
|  |     /// <seealso cref="Markdig.Renderers.Normalize.NormalizeObjectRenderer{Markdig.Syntax.Inlines.LinkInline}" /> | ||||||
|  |     public class LinkInlineRendererEx : NormalizeObjectRenderer<LinkInline> | ||||||
|  |     { | ||||||
|  |         protected override void Write(NormalizeRenderer renderer, LinkInline link) | ||||||
|  |         { | ||||||
|  |             if (link.IsImage) | ||||||
|  |             { | ||||||
|  |                 renderer.Write('!'); | ||||||
|  |             } | ||||||
|  |             renderer.Write('['); | ||||||
|  |             renderer.WriteChildren(link); | ||||||
|  |             renderer.Write(']'); | ||||||
|  | 
 | ||||||
|  |             //if (link.Label != null) | ||||||
|  |             //{ | ||||||
|  | 
 | ||||||
|  |             //    var literal = link.FirstChild as LiteralInline; | ||||||
|  |             //    if (literal != null && literal.Content.Match(link.Label) && literal.Content.Length == link.Label.Length) | ||||||
|  |             //    { | ||||||
|  |             //        // collapsed reference and shortcut links | ||||||
|  |             //        if (!link.IsShortcut) | ||||||
|  |             //        { | ||||||
|  |             //            renderer.Write("[]"); | ||||||
|  |             //        } | ||||||
|  |             //    } | ||||||
|  |             //    else | ||||||
|  |             //    { | ||||||
|  |             //        // full link | ||||||
|  |             //        renderer.Write('[').Write(link.Label).Write(']'); | ||||||
|  |             //    } | ||||||
|  |             //} | ||||||
|  |             //else | ||||||
|  |             //{ | ||||||
|  |                 if (!string.IsNullOrEmpty(link.Url)) | ||||||
|  |                 { | ||||||
|  |                     renderer.Write('(').Write(link.Url); | ||||||
|  | 
 | ||||||
|  |                     if (!string.IsNullOrEmpty(link.Title)) | ||||||
|  |                     { | ||||||
|  |                         renderer.Write(" \""); | ||||||
|  |                         renderer.Write(link.Title.Replace(@"""", @"\""")); | ||||||
|  |                         renderer.Write("\""); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     renderer.Write(')'); | ||||||
|  |                 } | ||||||
|  |             //} | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -9,6 +9,7 @@ using Markdig.Syntax.Inlines; | ||||||
| using Markdig.Parsers; | using Markdig.Parsers; | ||||||
| using System.IO; | using System.IO; | ||||||
| using Markdig.Renderers.Normalize; | using Markdig.Renderers.Normalize; | ||||||
|  | using Markdig.Renderers.Normalize.Inlines; | ||||||
| 
 | 
 | ||||||
| namespace AideDeJeu.Tools | namespace AideDeJeu.Tools | ||||||
| { | { | ||||||
|  | @ -93,6 +94,9 @@ namespace AideDeJeu.Tools | ||||||
|             using (var writer = new StringWriter()) |             using (var writer = new StringWriter()) | ||||||
|             { |             { | ||||||
|                 var renderer = new NormalizeRenderer(writer); |                 var renderer = new NormalizeRenderer(writer); | ||||||
|  |                 renderer.ObjectRenderers.Remove(renderer.ObjectRenderers.FirstOrDefault(i => i is LinkInlineRenderer)); | ||||||
|  |                 renderer.ObjectRenderers.Add(new LinkInlineRendererEx()); | ||||||
|  |                 renderer.ObjectRenderers.Add(new TableRenderer()); | ||||||
|                 pipeline.Setup(renderer); |                 pipeline.Setup(renderer); | ||||||
| 
 | 
 | ||||||
|                 renderer.Render(block); |                 renderer.Render(block); | ||||||
|  |  | ||||||
							
								
								
									
										51
									
								
								AideDeJeu/AideDeJeu/Markdig/TableRenderer.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								AideDeJeu/AideDeJeu/Markdig/TableRenderer.cs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | ||||||
|  | // Copyright (c) Alexandre Mutel. All rights reserved. | ||||||
|  | // This file is licensed under the BSD-Clause 2 license.  | ||||||
|  | // See the license.txt file in the project root for more information. | ||||||
|  | using System.Globalization; | ||||||
|  | using AideDeJeu.Tools; | ||||||
|  | using Markdig.Syntax; | ||||||
|  | 
 | ||||||
|  | namespace Markdig.Renderers.Normalize | ||||||
|  | { | ||||||
|  |     /// <summary> | ||||||
|  |     /// An Normalize renderer for a <see cref="TableBlock"/>. | ||||||
|  |     /// </summary> | ||||||
|  |     /// <seealso cref="Markdig.Renderers.Normalize.NormalizeObjectRenderer{Markdig.Extensions.Tables.Table}" /> | ||||||
|  |     public class TableRenderer : NormalizeObjectRenderer<Markdig.Extensions.Tables.Table> | ||||||
|  |     { | ||||||
|  |         protected override void Write(NormalizeRenderer renderer, Markdig.Extensions.Tables.Table obj) | ||||||
|  |         { | ||||||
|  |             foreach (Markdig.Extensions.Tables.TableRow row in obj) | ||||||
|  |             { | ||||||
|  |                 renderer.Write("|"); | ||||||
|  |                 foreach (Markdig.Extensions.Tables.TableCell cell in row) | ||||||
|  |                 { | ||||||
|  |                     foreach (Markdig.Syntax.ParagraphBlock block in cell) | ||||||
|  |                     { | ||||||
|  |                         renderer.Write(block.ToMarkdownString().Replace("\n", "")); | ||||||
|  |                     } | ||||||
|  |                     renderer.Write("|"); | ||||||
|  |                 } | ||||||
|  |                 if (row.IsHeader) | ||||||
|  |                 { | ||||||
|  |                     renderer.Write("\n|"); | ||||||
|  |                     for (int i = 0; i < row.Count; i++) | ||||||
|  |                     { | ||||||
|  |                         renderer.Write("---|"); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |                 renderer.Write("\n"); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             //renderer.Write("\n\n" + obj.ToMarkdownString() + "\n\n"); | ||||||
|  |             //var headingText = obj.Level > 0 && obj.Level <= 6 | ||||||
|  |             //    ? HeadingTexts[obj.Level - 1] | ||||||
|  |             //    : new string('#', obj.Level); | ||||||
|  | 
 | ||||||
|  |             //renderer.Write(headingText).Write(' '); | ||||||
|  |             //renderer.WriteLeafInline(obj); | ||||||
|  | 
 | ||||||
|  |             //renderer.FinishBlock(renderer.Options.EmptyLineAfterHeading); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -56,8 +56,9 @@ namespace AideDeJeuLib | ||||||
|                     { |                     { | ||||||
|                         return; |                         return; | ||||||
|                     } |                     } | ||||||
|                     var paragraphBlock = block as ParagraphBlock; |                     //var paragraphBlock = block as ParagraphBlock; | ||||||
|                     this.Text += paragraphBlock.ToMarkdownString() + "\n"; |                     //this.Text += paragraphBlock.ToMarkdownString() + "\n"; | ||||||
|  |                     this.Text += block.ToMarkdownString(); | ||||||
|                 } |                 } | ||||||
|                 else if (block is ListBlock) |                 else if (block is ListBlock) | ||||||
|                 { |                 { | ||||||
|  | @ -103,8 +104,9 @@ namespace AideDeJeuLib | ||||||
|                 } |                 } | ||||||
|                 else if (block is Markdig.Extensions.Tables.Table) |                 else if (block is Markdig.Extensions.Tables.Table) | ||||||
|                 { |                 { | ||||||
|                     var tableBlock = block as Markdig.Extensions.Tables.Table; |                     this.Text += block.ToMarkdownString(); | ||||||
|                     this.Text += "\n\n" + tableBlock.ToMarkdownString() + "\n\n"; |                     //var tableBlock = block as Markdig.Extensions.Tables.Table; | ||||||
|  |                     //this.Text += "\n\n" + tableBlock.ToMarkdownString() + "\n\n"; | ||||||
|                 } |                 } | ||||||
|                 else |                 else | ||||||
|                 { |                 { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez