Skip to content

Commit

Permalink
Markdown - code cleanup + updates
Browse files Browse the repository at this point in the history
  • Loading branch information
gvreddy04 committed Oct 19, 2024
1 parent 07cc006 commit 0cbdc92
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@
<div class="mb-3"></div>
<Demo Type="typeof(Markdown_Demo_09_Lists_E_Nested)" Tabs="true" />

<SectionHeading Size="HeadingSize.H2" Text="Links" PageUrl="@pageUrl" HashTagName="links" />
<div class="mb-3"></div>
<Demo Type="typeof(Markdown_Demo_10_Links)" Tabs="true" />

<SectionHeading Size="HeadingSize.H2" Text="Images" PageUrl="@pageUrl" HashTagName="images" />
<div class="mb-3"></div>
<Demo Type="typeof(Markdown_Demo_11_Images)" Tabs="true" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<Markdown>
Links
[Google](https://www.google.com)
</Markdown>
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
<Markdown>
Checklist or task list
- [ ] A
- [ ] B
- [ ] C
- [x] A
- [x] B
- [x] C
</Markdown>
46 changes: 44 additions & 2 deletions blazorbootstrap/Components/Markdown/Markdown.razor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ private void ParseMarkdown()
markup = ConvertMarkdownParagraphsToHtml(markup);
markup = ConvertMarkdownLineBreaksToHtml(markup);
markup = ConvertMarkdownImageToHtml(markup);
markup = ConvertMarkdownLinksToHtml(markup);
html = markup.Replace(CODE_HIGHLIGHTING_LINE_SEPERATOR, "\n");
}

Expand Down Expand Up @@ -104,6 +105,7 @@ List<string> GetLines()
return inputs;
}

// Headers
private string ConvertMakdownHeadersToHtml(string markup)
{
var lines = markup.Split("\n");
Expand Down Expand Up @@ -154,6 +156,7 @@ private string ConvertMakdownHeadersToHtml(string markup)
return string.Join("", parsedLines);
}

// Blockquotes
private string ConvertMarkdownBlockquotesToHtml(string markup)
{
var lines = markup.Split("\n");
Expand Down Expand Up @@ -231,6 +234,7 @@ private string ConvertMarkdownBlockquotesToHtml(string markup)
return string.Join("", htmlLines);
}

// HorizontalRules
private string ConvertMarkdownHorizontalRulesToHtml(string markup)
{
var lines = markup.Split("\n");
Expand Down Expand Up @@ -262,6 +266,7 @@ private string ConvertMarkdownHorizontalRulesToHtml(string markup)
return string.Join("", parsedLines);
}

// Emphasis
private string ConvertMarkdownEmphasisToHtml(string markup)
{
var lines = markup.Split("\n");
Expand Down Expand Up @@ -294,6 +299,7 @@ private string ConvertMarkdownEmphasisToHtml(string markup)
return string.Join("\n", parsedLines);
}

// Code Highlighting
private string ConvertMarkdownCodeHighlightingToHtml(string markup)
{
var lines = markup.Split("\n");
Expand Down Expand Up @@ -335,6 +341,7 @@ private string ConvertMarkdownCodeHighlightingToHtml(string markup)
return string.Join("", parsedLines);
}

// Lists
private string ConvertMarkdownListToHtml(string markup)
{
var lines = markup.Split("\n");
Expand Down Expand Up @@ -461,6 +468,7 @@ private string ConvertMarkdownListToHtml(string markup)
return string.Join("", htmlLines);
}

// Tables
private string ConvertMarkdownTableToHtml(string markup)
{
var lines = markup.Split("\n");
Expand Down Expand Up @@ -538,6 +546,7 @@ private string ConvertMarkdownTableToHtml(string markup)
return string.Join("\n", parsedLines);
}

// Paragraphs
private string ConvertMarkdownParagraphsToHtml(string markup)
{
var lines = markup.Split("\n\n\n");
Expand All @@ -560,11 +569,26 @@ private string ConvertMarkdownParagraphsToHtml(string markup)
return string.Join("", parsedLines);
}

// Line breaks
private string ConvertMarkdownLineBreaksToHtml(string markup) => markup.Replace("\n", "<br />");

// Links
private string ConvertMarkdownLinksToHtml(string markup)
{
// Pattern to match Markdown link syntax: [Link Text](Link URL)
var pattern = @"\[(.*?)\]\((.*?)\)";

// Replace Markdown link syntax with HTML <a> tag
var html = Regex.Replace(markup, pattern, match =>
{
var linkText = match.Groups[1].Value;
var linkUrl = match.Groups[2].Value;

return $"<a href=\"{linkUrl}\">{linkText}</a>";
});

// Anchor links
return html;
}

private string ConvertMarkdownImageToHtml(string markup)
{
Expand Down Expand Up @@ -605,8 +629,26 @@ private string ConvertMarkdownImageToHtml(string markup)
return html;
}

//private string ConvertMarkdownChecklistToHtml(string markup)
//{
// // Pattern to match Markdown checklist syntax: - [ ] or - [x] or 1. [ ] or 1. [x]
// var pattern = @"^(\s*[-\d]+\.\s*\[([ xX])\])\s*(.*)";

// // Replace Markdown checklist syntax with HTML <input type="checkbox"> tag
// var html = Regex.Replace(markup, pattern, match =>
// {
// var checkbox = match.Groups[2].Value.Trim().ToLower() == "x" ? "checked" : "";
// var content = match.Groups[3].Value;

// return $"<li><input type=\"checkbox\" {checkbox} disabled> {content}</li>";
// }, RegexOptions.Multiline);

// // Wrap the checkboxes in a <ul> or <ol> tag
// html = Regex.Replace(html, @"((<li>.*?</li>\s*)+)", "<ul>$1</ul>", RegexOptions.Singleline);

// return html;
//}

// Checklist or task list

// Emoji

Expand Down

0 comments on commit 0cbdc92

Please sign in to comment.