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 System.IO; | ||||
| using Markdig.Renderers.Normalize; | ||||
| using Markdig.Renderers.Normalize.Inlines; | ||||
| 
 | ||||
| namespace AideDeJeu.Tools | ||||
| { | ||||
|  | @ -93,6 +94,9 @@ namespace AideDeJeu.Tools | |||
|             using (var writer = new StringWriter()) | ||||
|             { | ||||
|                 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); | ||||
| 
 | ||||
|                 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; | ||||
|                     } | ||||
|                     var paragraphBlock = block as ParagraphBlock; | ||||
|                     this.Text += paragraphBlock.ToMarkdownString() + "\n"; | ||||
|                     //var paragraphBlock = block as ParagraphBlock; | ||||
|                     //this.Text += paragraphBlock.ToMarkdownString() + "\n"; | ||||
|                     this.Text += block.ToMarkdownString(); | ||||
|                 } | ||||
|                 else if (block is ListBlock) | ||||
|                 { | ||||
|  | @ -103,8 +104,9 @@ namespace AideDeJeuLib | |||
|                 } | ||||
|                 else if (block is Markdig.Extensions.Tables.Table) | ||||
|                 { | ||||
|                     var tableBlock = block as Markdig.Extensions.Tables.Table; | ||||
|                     this.Text += "\n\n" + tableBlock.ToMarkdownString() + "\n\n"; | ||||
|                     this.Text += block.ToMarkdownString(); | ||||
|                     //var tableBlock = block as Markdig.Extensions.Tables.Table; | ||||
|                     //this.Text += "\n\n" + tableBlock.ToMarkdownString() + "\n\n"; | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Yan Maniez
						Yan Maniez