-
-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
72aa798
commit 33ff1a5
Showing
17 changed files
with
334 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,29 @@ | ||
// Copyright (c) Josef Pihrt. All rights reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. | ||
|
||
using DotMarkdown.Linq.Docusaurus; | ||
using DotMarkdown.Docusaurus.Linq; | ||
using static DotMarkdown.Tests.TestHelpers; | ||
|
||
namespace DotMarkdown.Docusaurus.Tests; | ||
|
||
internal static class DocusaurusTestHelpers | ||
{ | ||
public static DocusaurusMarkdownWriter CreateWriterWithLineNumbers(bool includeLineNumbers = false) | ||
{ | ||
return CreateDocusaurusWriter(CreateWriter(), new DocusaurusMarkdownFormat(codeLineNumbers: includeLineNumbers)); | ||
} | ||
|
||
public static DocusaurusMarkdownWriter CreateWriterWithBlankLines(bool admonitionBlankLines = true) | ||
{ | ||
return CreateDocusaurusWriter(CreateWriter(), new DocusaurusMarkdownFormat(admonitionBlankLines: admonitionBlankLines)); | ||
} | ||
|
||
public static DocusaurusMarkdownWriter CreateDocusaurusWriter(MarkdownWriter writer, DocusaurusMarkdownFormat? format = null) | ||
{ | ||
return new DocusaurusMarkdownWriter(writer, format); | ||
} | ||
|
||
public static MDocusaurusCodeBlock CreateDocusaurusCodeBlock() | ||
{ | ||
return new MDocusaurusCodeBlock(CodeBlockText(), CodeBlockInfo(), "file.txt", showLineNumbers: true); | ||
return new MDocusaurusCodeBlock(CodeBlockText(), CodeBlockInfo(), "file.txt", includeLineNumbers: true); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
152 changes: 152 additions & 0 deletions
152
src/DotMarkdown.Docusaurus/Docusaurus/DocusaurusMarkdownWriter.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
// Copyright (c) Josef Pihrt. All rights reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. | ||
|
||
using System; | ||
using System.Collections.Generic; | ||
|
||
namespace DotMarkdown.Docusaurus; | ||
|
||
public sealed class DocusaurusMarkdownWriter : MarkdownWriter | ||
{ | ||
public DocusaurusMarkdownWriter(MarkdownWriter writer, DocusaurusMarkdownFormat? format = null) | ||
{ | ||
Writer = writer ?? throw new ArgumentNullException(nameof(writer)); | ||
DocusaurusFormat = format ?? DocusaurusMarkdownFormat.Default; | ||
} | ||
|
||
public MarkdownWriter Writer { get; } | ||
|
||
public DocusaurusMarkdownFormat DocusaurusFormat { get; } | ||
|
||
public void WriteDocusaurusCodeBlock(string text, string? language = null, string? title = null, bool? includeLineNumbers = null) | ||
{ | ||
Writer.WriteDocusaurusCodeBlock(text, language, title, includeLineNumbers ?? DocusaurusFormat.CodeLineNumbers); | ||
} | ||
|
||
public void WriteDocusaurusNote(string text, string? title = null) | ||
{ | ||
WriteDocusaurusAdmonition(AdmonitionKind.Note, text, title); | ||
} | ||
|
||
public void WriteDocusaurusTip(string text, string? title = null) | ||
{ | ||
WriteDocusaurusAdmonition(AdmonitionKind.Tip, text, title); | ||
} | ||
|
||
public void WriteDocusaurusInfo(string text, string? title = null) | ||
{ | ||
WriteDocusaurusAdmonition(AdmonitionKind.Info, text, title); | ||
} | ||
|
||
public void WriteDocusaurusCaution(string text, string? title = null) | ||
{ | ||
WriteDocusaurusAdmonition(AdmonitionKind.Caution, text, title); | ||
} | ||
|
||
public void WriteDocusaurusDanger(string text, string? title = null) | ||
{ | ||
WriteDocusaurusAdmonition(AdmonitionKind.Danger, text, title); | ||
} | ||
|
||
public void WriteDocusaurusAdmonition(AdmonitionKind kind, string text, string? title = null) | ||
{ | ||
string admonition = kind switch | ||
{ | ||
AdmonitionKind.Note => "note", | ||
AdmonitionKind.Tip => "tip", | ||
AdmonitionKind.Info => "info", | ||
AdmonitionKind.Caution => "caution", | ||
AdmonitionKind.Danger => "danger", | ||
_ => throw new ArgumentException($"Unknown {nameof(AdmonitionKind)} '{kind}'", nameof(kind)) | ||
}; | ||
|
||
Writer.WriteDocusaurusAdmonition(admonition, text, title, includeBlankLines: DocusaurusFormat.AdmonitionBlankLines); | ||
} | ||
|
||
public override WriteState WriteState => Writer.WriteState; | ||
|
||
public override void Flush() => Writer.Flush(); | ||
|
||
public override void WriteAutolink(string url) => Writer.WriteAutolink(url); | ||
|
||
public override void WriteCharEntity(char value) => Writer.WriteCharEntity(value); | ||
|
||
public override void WriteComment(string text) => Writer.WriteComment(text); | ||
|
||
public override void WriteEndBlockQuote() => Writer.WriteEndBlockQuote(); | ||
|
||
public override void WriteEndBold() => Writer.WriteEndBold(); | ||
|
||
public override void WriteEndBulletItem() => Writer.WriteEndBulletItem(); | ||
|
||
public override void WriteEndHeading() => Writer.WriteEndHeading(); | ||
|
||
public override void WriteEndItalic() => Writer.WriteEndItalic(); | ||
|
||
public override void WriteEndLink(string url, string? title = null) => Writer.WriteEndLink(url, title); | ||
|
||
public override void WriteEndOrderedItem() => Writer.WriteEndOrderedItem(); | ||
|
||
public override void WriteEndStrikethrough() => Writer.WriteEndStrikethrough(); | ||
|
||
public override void WriteEndTable() => Writer.WriteEndTable(); | ||
|
||
public override void WriteEndTableCell() => Writer.WriteEndTableCell(); | ||
|
||
public override void WriteEndTableRow() => Writer.WriteEndTableRow(); | ||
|
||
public override void WriteEndTaskItem() => Writer.WriteEndTaskItem(); | ||
|
||
public override void WriteEntityRef(string name) => Writer.WriteEntityRef(name); | ||
|
||
public override void WriteFencedCodeBlock(string text, string? info = null) => Writer.WriteFencedCodeBlock(text, info); | ||
|
||
public override void WriteHorizontalRule(HorizontalRuleStyle style, int count = 3, string? separator = " ") => Writer.WriteHorizontalRule(style, count, separator); | ||
|
||
public override void WriteImage(string text, string url, string? title = null) => Writer.WriteImage(text, url, title); | ||
|
||
public override void WriteImageReference(string text, string label) => Writer.WriteImageReference(text, label); | ||
|
||
public override void WriteIndentedCodeBlock(string text) => Writer.WriteIndentedCodeBlock(text); | ||
|
||
public override void WriteInlineCode(string text) => Writer.WriteInlineCode(text); | ||
|
||
public override void WriteLabel(string label, string url, string? title = null) => Writer.WriteLabel(label, url, title); | ||
|
||
public override void WriteLine() => Writer.WriteLine(); | ||
|
||
public override void WriteLinkReference(string text, string? label = null) => Writer.WriteLinkReference(text, label); | ||
|
||
public override void WriteRaw(string data) => Writer.WriteRaw(data); | ||
|
||
public override void WriteStartBlockQuote() => Writer.WriteStartBlockQuote(); | ||
|
||
public override void WriteStartBold() => Writer.WriteStartBold(); | ||
|
||
public override void WriteStartBulletItem() => Writer.WriteStartBulletItem(); | ||
|
||
public override void WriteStartHeading(int level) => Writer.WriteStartHeading(level); | ||
|
||
public override void WriteStartItalic() => Writer.WriteStartItalic(); | ||
|
||
public override void WriteStartLink() => Writer.WriteStartLink(); | ||
|
||
public override void WriteStartOrderedItem(int number) => Writer.WriteStartOrderedItem(number); | ||
|
||
public override void WriteStartStrikethrough() => Writer.WriteStartStrikethrough(); | ||
|
||
public override void WriteStartTable(int columnCount) => Writer.WriteStartTable(columnCount); | ||
|
||
public override void WriteStartTable(IReadOnlyList<TableColumnInfo> columns) => Writer.WriteStartTable(columns); | ||
|
||
public override void WriteStartTableCell() => Writer.WriteStartTableCell(); | ||
|
||
public override void WriteStartTableRow() => Writer.WriteStartTableRow(); | ||
|
||
public override void WriteStartTaskItem(bool isCompleted = false) => Writer.WriteStartTaskItem(isCompleted); | ||
|
||
public override void WriteString(string text) => Writer.WriteString(text); | ||
|
||
public override void WriteTableHeaderSeparator() => Writer.WriteTableHeaderSeparator(); | ||
|
||
internal override void WriteFencedBlock(string text, string fence, MarkdownCharEscaper escaper, string? info = null, bool blankLinesAroundContent = false) => Writer.WriteFencedBlock(text, fence, escaper, info, blankLinesAroundContent); | ||
} |
Oops, something went wrong.