updated to add advanced extensions to markdown

This commit is contained in:
2024-03-26 13:42:10 -06:00
parent 9ffd60ac84
commit a9269c8d2b
13 changed files with 42 additions and 32 deletions

View File

@@ -1,4 +1,4 @@
@using Markdig
@using Management.Web.Shared.Components
@inject CoursePlanner planner
@@ -59,7 +59,13 @@
StateHasChanged();
}
private MarkupString preview { get => (MarkupString)Markdown.ToHtml(assignmentContext?.Assignment?.Description ?? ""); }
private MarkupString preview { get
{
var pipeline = new MarkdownPipelineBuilder()
.UsePipeTables().Build();
return (MarkupString)Markdown.ToHtml(assignmentContext?.Assignment?.Description ?? "", pipeline);
}
}
private string HelpText()
{
var groupNames = string.Join("\n- " , planner.LocalCourse?.Settings.AssignmentGroups.Select(g => g.Name) ?? []);

View File

@@ -26,7 +26,7 @@
}
Console.WriteLine(Navigation.BaseUri + "SignalRHub");
@* Console.WriteLine(Navigation.BaseUri + "SignalRHub"); *@
hubConnection = new HubConnectionBuilder()
.WithUrl(Navigation.BaseUri + "SignalRHub")
.WithAutomaticReconnect()

View File

@@ -1,4 +1,3 @@
@using Markdig
@using Management.Web.Shared.Components
@inject CoursePlanner planner

View File

@@ -79,4 +79,3 @@
<br>
@* <MonacoEditorDemo /> *@

View File

@@ -1,4 +1,3 @@
@using Markdig
@code {
[Parameter, EditorRequired]
@@ -40,7 +39,7 @@ else
{
@foreach(var answer in Question.Answers)
{
string answerPreview = answer.HtmlText.StartsWith("<p>")
string answerPreview = answer.HtmlText.StartsWith("<p>")
? answer.HtmlText.Replace("<p>", "<p class='m-0'>")
: answer.HtmlText;
@@ -48,16 +47,16 @@ else
@if(answer.Correct)
{
<svg
style="width: 1em;"
style="width: 1em;"
class="me-1 my-auto"
viewBox="0 0 24 24"
fill="none"
viewBox="0 0 24 24"
fill="none"
>
<path
d="M4 12.6111L8.92308 17.5L20 6.5"
stroke="var(--bs-success)"
stroke-width="2"
stroke-linecap="round"
<path
d="M4 12.6111L8.92308 17.5L20 6.5"
stroke="var(--bs-success)"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
@@ -66,7 +65,7 @@ else
{
<div
class="me-1 my-auto"
style="width: 1em;"
style="width: 1em;"
>
@if(Question.QuestionType == QuestionType.MULTIPLE_ANSWERS)
{
@@ -78,5 +77,5 @@ else
@((MarkupString)answerPreview)
</div>
</div>
}
}
}
}

View File

@@ -6,7 +6,6 @@ using CanvasModel.Modules;
using CanvasModel.Quizzes;
using LocalModels;
using Management.Services.Canvas;
using Markdig.Renderers.Normalize;
namespace Management.Planner;

View File

@@ -15,16 +15,16 @@ public record AssignmentTemplate
return matches.Select(match => match.Groups[1].Value);
}
// public static string GetHtml(AssignmentTemplate template, LocalAssignment assignment)
// public static string GetHtml(AssignmentTemplate template, LocalAssignment assignment)
// {
// var html = Markdig.Markdown.ToHtml(template.Markdown);
// var html = MarkdownService.Render(template.Markdown);
// foreach (KeyValuePair<string, string> entry in assignment.template_variables)
// {
// html = html.Replace($"%7B%7B{entry.Key}%7D%7D", entry.Value);
// }
// return html;
// }
// }
}

View File

@@ -1,8 +1,3 @@
using System.Collections;
using System.Reflection.Metadata.Ecma335;
using System.Text;
using System.Text.RegularExpressions;
using YamlDotNet.Serialization;
namespace LocalModels;
@@ -30,7 +25,7 @@ public record LocalAssignment : IModuleItem
public string GetDescriptionHtml()
{
return Markdig.Markdown.ToHtml(Description);
return MarkdownService.Render(Description);
}
public ulong? GetCanvasAssignmentGroupId(IEnumerable<LocalAssignmentGroup> assignmentGroups) =>

View File

@@ -5,7 +5,7 @@ public record LocalCoursePage : IModuleItem
public required string Name { get; init; }
public required string Text { get; set; }
public DateTime DueAt { get; init; }
public string GetBodyHtml() => Markdig.Markdown.ToHtml(Text);
public string GetBodyHtml() => MarkdownService.Render(Text);
public string ToMarkdown()
{

View File

@@ -30,7 +30,7 @@ public record LocalQuiz : IModuleItem
.FirstOrDefault(g => g.Name == LocalAssignmentGroupName)?
.CanvasId;
public string GetDescriptionHtml() => Markdig.Markdown.ToHtml(Description);
public string GetDescriptionHtml() => MarkdownService.Render(Description);
public string ToYaml()
{

View File

@@ -6,7 +6,7 @@ namespace LocalModels;
public record LocalQuizQuestion
{
public string Text { get; init; } = string.Empty;
public string HtmlText => Markdig.Markdown.ToHtml(Text);
public string HtmlText => MarkdownService.Render(Text);
public string QuestionType { get; init; } = string.Empty;
public int Points { get; init; }
public IEnumerable<LocalQuizQuestionAnswer> Answers { get; init; } =

View File

@@ -10,7 +10,7 @@ public record LocalQuizQuestionAnswer
public string? MatchedText { get; init; }
public string HtmlText => Markdig.Markdown.ToHtml(Text);
public string HtmlText => MarkdownService.Render(Text);
public static LocalQuizQuestionAnswer ParseMarkdown(string input, string questionType)
{

View File

@@ -0,0 +1,13 @@
using Markdig;
public static class MarkdownService
{
public static string Render(string incomingMarkdown)
{
var pipeline = new MarkdownPipelineBuilder()
.UseAdvancedExtensions()
.Build();
return Markdown.ToHtml(incomingMarkdown, pipeline);
}
}