Codefactor style fixes
This commit is contained in:
parent
481d3b1ebf
commit
7bf1604f97
|
@ -2,12 +2,12 @@
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.IO;
|
||||||
using System.Management.Automation;
|
using System.Management.Automation;
|
||||||
using System.Management.Automation.Internal;
|
using System.Management.Automation.Internal;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Microsoft.PowerShell.MarkdownRender;
|
using Microsoft.PowerShell.MarkdownRender;
|
||||||
using Dbg = System.Management.Automation;
|
using Dbg = System.Management.Automation;
|
||||||
|
|
||||||
|
@ -20,36 +20,35 @@ namespace Microsoft.PowerShell.Commands
|
||||||
[Cmdlet(
|
[Cmdlet(
|
||||||
VerbsData.ConvertFrom, "Markdown",
|
VerbsData.ConvertFrom, "Markdown",
|
||||||
DefaultParameterSetName = PathParameterSet,
|
DefaultParameterSetName = PathParameterSet,
|
||||||
HelpUri = "TBD"
|
HelpUri = "TBD")]
|
||||||
)]
|
|
||||||
[OutputType(typeof(Microsoft.PowerShell.MarkdownRender.MarkdownInfo))]
|
[OutputType(typeof(Microsoft.PowerShell.MarkdownRender.MarkdownInfo))]
|
||||||
public class ConvertFromMarkdownCommand : PSCmdlet
|
public class ConvertFromMarkdownCommand : PSCmdlet
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Path to the file to convert from Markdown to MarkdownInfo.
|
/// Gets or sets path to the file to convert from markdown to MarkdownInfo.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ValidateNotNullOrEmpty]
|
[ValidateNotNullOrEmpty]
|
||||||
[Parameter(ParameterSetName = PathParameterSet, Mandatory = true)]
|
[Parameter(ParameterSetName = PathParameterSet, Mandatory = true)]
|
||||||
public string[] Path { get; set; }
|
public string[] Path { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Path to the file to convert from Markdown to MarkdownInfo.
|
/// Gets or sets the path to the file to convert from markdown to MarkdownInfo.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ValidateNotNullOrEmpty]
|
[ValidateNotNullOrEmpty]
|
||||||
[Parameter(ParameterSetName = LiteralPathParameterSet, Mandatory = true)]
|
[Parameter(ParameterSetName = LiteralPathParameterSet, Mandatory = true)]
|
||||||
public string[] LiteralPath { get; set; }
|
public string[] LiteralPath { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// InputObject of type System.IO.FileInfo or string with content to convert from Markdown to MarkdownInfo.
|
/// Gets or sets the InputObject of type System.IO.FileInfo or string with content to convert from markdown to MarkdownInfo.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ValidateNotNullOrEmpty]
|
[ValidateNotNullOrEmpty]
|
||||||
[Parameter(ParameterSetName = InputObjParamSet, Mandatory = true, ValueFromPipeline = true)]
|
[Parameter(ParameterSetName = InputObjParamSet, Mandatory = true, ValueFromPipeline = true)]
|
||||||
public PSObject InputObject { get; set; }
|
public PSObject InputObject { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The Markdown document should be converted to a VT100 encoded string.
|
/// Gets or sets if the markdown document should be converted to a VT100 encoded string.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Parameter()]
|
[Parameter]
|
||||||
public SwitchParameter AsVT100EncodedString { get; set; }
|
public SwitchParameter AsVT100EncodedString { get; set; }
|
||||||
|
|
||||||
private const string PathParameterSet = "PathParamSet";
|
private const string PathParameterSet = "PathParamSet";
|
||||||
|
@ -59,11 +58,11 @@ namespace Microsoft.PowerShell.Commands
|
||||||
private MarkdownOptionInfo mdOption = null;
|
private MarkdownOptionInfo mdOption = null;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Override BeginProcess.
|
/// Override BeginProcessing.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void BeginProcessing()
|
protected override void BeginProcessing()
|
||||||
{
|
{
|
||||||
mdOption = (SessionState.PSVariable.GetValue("MarkdownOptionInfo", new MarkdownOptionInfo())) as MarkdownOptionInfo;
|
mdOption = SessionState.PSVariable.GetValue("MarkdownOptionInfo", new MarkdownOptionInfo()) as MarkdownOptionInfo;
|
||||||
|
|
||||||
if (mdOption == null)
|
if (mdOption == null)
|
||||||
{
|
{
|
||||||
|
@ -84,18 +83,15 @@ namespace Microsoft.PowerShell.Commands
|
||||||
switch (ParameterSetName)
|
switch (ParameterSetName)
|
||||||
{
|
{
|
||||||
case InputObjParamSet:
|
case InputObjParamSet:
|
||||||
Object baseObj = InputObject.BaseObject;
|
object baseObj = InputObject.BaseObject;
|
||||||
|
|
||||||
//var fileInfo = baseObj as FileInfo;
|
|
||||||
if (baseObj is FileInfo fileInfo)
|
if (baseObj is FileInfo fileInfo)
|
||||||
{
|
{
|
||||||
WriteObject(
|
WriteObject(
|
||||||
MarkdownConverter.Convert(
|
MarkdownConverter.Convert(
|
||||||
ReadContentFromFile(fileInfo.FullName).Result,
|
ReadContentFromFile(fileInfo.FullName).Result,
|
||||||
conversionType,
|
conversionType,
|
||||||
mdOption
|
mdOption));
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
else if (baseObj is string inpObj)
|
else if (baseObj is string inpObj)
|
||||||
{
|
{
|
||||||
|
@ -112,6 +108,7 @@ namespace Microsoft.PowerShell.Commands
|
||||||
|
|
||||||
WriteError(errorRecord);
|
WriteError(errorRecord);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PathParameterSet:
|
case PathParameterSet:
|
||||||
|
@ -136,8 +133,7 @@ namespace Microsoft.PowerShell.Commands
|
||||||
MarkdownConverter.Convert(
|
MarkdownConverter.Convert(
|
||||||
ReadContentFromFile(resolvedPath).Result,
|
ReadContentFromFile(resolvedPath).Result,
|
||||||
conversionType,
|
conversionType,
|
||||||
optionInfo)
|
optionInfo));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -151,7 +147,6 @@ namespace Microsoft.PowerShell.Commands
|
||||||
string mdContent = await reader.ReadToEndAsync();
|
string mdContent = await reader.ReadToEndAsync();
|
||||||
return mdContent;
|
return mdContent;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<string> ResolvePath(string path, bool isLiteral)
|
private List<string> ResolvePath(string path, bool isLiteral)
|
||||||
|
@ -186,10 +181,12 @@ namespace Microsoft.PowerShell.Commands
|
||||||
if (!provider.Name.Equals("FileSystem", StringComparison.OrdinalIgnoreCase))
|
if (!provider.Name.Equals("FileSystem", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
string errorMessage = StringUtil.Format(ConvertMarkdownStrings.FileSystemPathsOnly, path);
|
string errorMessage = StringUtil.Format(ConvertMarkdownStrings.FileSystemPathsOnly, path);
|
||||||
ErrorRecord errorRecord = new ErrorRecord(new ArgumentException(),
|
ErrorRecord errorRecord = new ErrorRecord(
|
||||||
|
new ArgumentException(),
|
||||||
"OnlyFileSystemPathsSupported",
|
"OnlyFileSystemPathsSupported",
|
||||||
ErrorCategory.InvalidArgument,
|
ErrorCategory.InvalidArgument,
|
||||||
path);
|
path);
|
||||||
|
|
||||||
WriteError(errorRecord);
|
WriteError(errorRecord);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -2,22 +2,22 @@
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.IO;
|
||||||
using System.Management.Automation;
|
using System.Management.Automation;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using Microsoft.PowerShell.MarkdownRender;
|
using Microsoft.PowerShell.MarkdownRender;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.Commands
|
namespace Microsoft.PowerShell.Commands
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Class for implementing Set-MarkdownOption cmdlet.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Cmdlet(
|
[Cmdlet(
|
||||||
VerbsCommon.Set, "MarkdownOption",
|
VerbsCommon.Set, "MarkdownOption",
|
||||||
DefaultParameterSetName = IndividualSetting,
|
DefaultParameterSetName = IndividualSetting,
|
||||||
HelpUri = "TBD"
|
HelpUri = "TBD")]
|
||||||
)]
|
|
||||||
[OutputType(typeof(Microsoft.PowerShell.MarkdownRender.MarkdownOptionInfo))]
|
[OutputType(typeof(Microsoft.PowerShell.MarkdownRender.MarkdownOptionInfo))]
|
||||||
public class SetMarkdownOptionCommand : PSCmdlet
|
public class SetMarkdownOptionCommand : PSCmdlet
|
||||||
{
|
{
|
||||||
|
@ -101,7 +101,7 @@ namespace Microsoft.PowerShell.Commands
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the switch to PassThru the values set.
|
/// Gets or sets the switch to PassThru the values set.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Parameter()]
|
[Parameter]
|
||||||
public SwitchParameter PassThru { get; set; }
|
public SwitchParameter PassThru { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -145,16 +145,18 @@ namespace Microsoft.PowerShell.Commands
|
||||||
{
|
{
|
||||||
mdOptionInfo.SetDarkTheme();
|
mdOptionInfo.SetDarkTheme();
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case InputObjectParamSet:
|
case InputObjectParamSet:
|
||||||
Object baseObj = InputObject.BaseObject;
|
object baseObj = InputObject.BaseObject;
|
||||||
mdOptionInfo = baseObj as MarkdownOptionInfo;
|
mdOptionInfo = baseObj as MarkdownOptionInfo;
|
||||||
|
|
||||||
if (mdOptionInfo == null)
|
if (mdOptionInfo == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentException();
|
throw new ArgumentException();
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IndividualSetting:
|
case IndividualSetting:
|
||||||
|
@ -174,57 +176,57 @@ namespace Microsoft.PowerShell.Commands
|
||||||
|
|
||||||
private void SetOptions(MarkdownOptionInfo mdOptionInfo)
|
private void SetOptions(MarkdownOptionInfo mdOptionInfo)
|
||||||
{
|
{
|
||||||
if (!String.IsNullOrEmpty(Header1Color))
|
if (!string.IsNullOrEmpty(Header1Color))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Header1 = Header1Color;
|
mdOptionInfo.Header1 = Header1Color;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(Header2Color))
|
if (!string.IsNullOrEmpty(Header2Color))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Header2 = Header2Color;
|
mdOptionInfo.Header2 = Header2Color;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(Header3Color))
|
if (!string.IsNullOrEmpty(Header3Color))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Header3 = Header3Color;
|
mdOptionInfo.Header3 = Header3Color;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(Header4Color))
|
if (!string.IsNullOrEmpty(Header4Color))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Header4 = Header4Color;
|
mdOptionInfo.Header4 = Header4Color;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(Header5Color))
|
if (!string.IsNullOrEmpty(Header5Color))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Header5 = Header5Color;
|
mdOptionInfo.Header5 = Header5Color;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(Header6Color))
|
if (!string.IsNullOrEmpty(Header6Color))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Header6 = Header6Color;
|
mdOptionInfo.Header6 = Header6Color;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(Code))
|
if (!string.IsNullOrEmpty(Code))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Code = Code;
|
mdOptionInfo.Code = Code;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(ImageAltTextForegroundColor))
|
if (!string.IsNullOrEmpty(ImageAltTextForegroundColor))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Image = ImageAltTextForegroundColor;
|
mdOptionInfo.Image = ImageAltTextForegroundColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(LinkForegroundColor))
|
if (!string.IsNullOrEmpty(LinkForegroundColor))
|
||||||
{
|
{
|
||||||
mdOptionInfo.Link = LinkForegroundColor;
|
mdOptionInfo.Link = LinkForegroundColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(ItalicsForegroundColor))
|
if (!string.IsNullOrEmpty(ItalicsForegroundColor))
|
||||||
{
|
{
|
||||||
mdOptionInfo.EmphasisItalics = ItalicsForegroundColor;
|
mdOptionInfo.EmphasisItalics = ItalicsForegroundColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(BoldForegroundColor))
|
if (!string.IsNullOrEmpty(BoldForegroundColor))
|
||||||
{
|
{
|
||||||
mdOptionInfo.EmphasisBold = BoldForegroundColor;
|
mdOptionInfo.EmphasisBold = BoldForegroundColor;
|
||||||
}
|
}
|
||||||
|
@ -236,15 +238,14 @@ namespace Microsoft.PowerShell.Commands
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Cmdlet(
|
[Cmdlet(
|
||||||
VerbsCommon.Get, "MarkdownOption",
|
VerbsCommon.Get, "MarkdownOption",
|
||||||
HelpUri = "TBD"
|
HelpUri = "TBD")]
|
||||||
)]
|
|
||||||
[OutputType(typeof(Microsoft.PowerShell.MarkdownRender.MarkdownOptionInfo))]
|
[OutputType(typeof(Microsoft.PowerShell.MarkdownRender.MarkdownOptionInfo))]
|
||||||
public class GetMarkdownOptionCommand : PSCmdlet
|
public class GetMarkdownOptionCommand : PSCmdlet
|
||||||
{
|
{
|
||||||
private const string MarkdownOptionInfoVariableName = "MarkdownOptionInfo";
|
private const string MarkdownOptionInfoVariableName = "MarkdownOptionInfo";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Override endproessing.
|
/// Override EndProcessing.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void EndProcessing()
|
protected override void EndProcessing()
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
// Licensed under the MIT License.
|
// Licensed under the MIT License.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
using System.Management.Automation;
|
using System.Management.Automation;
|
||||||
using Microsoft.PowerShell.MarkdownRender;
|
using Microsoft.PowerShell.MarkdownRender;
|
||||||
|
|
||||||
|
@ -19,27 +19,27 @@ namespace Microsoft.PowerShell.Commands
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Cmdlet(
|
[Cmdlet(
|
||||||
VerbsCommon.Show, "Markdown",
|
VerbsCommon.Show, "Markdown",
|
||||||
HelpUri = "TBD"
|
HelpUri = "TBD")]
|
||||||
)]
|
|
||||||
[OutputType(typeof(string))]
|
[OutputType(typeof(string))]
|
||||||
public class ShowMarkdownCommand : PSCmdlet
|
public class ShowMarkdownCommand : PSCmdlet
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// InputObject of type Microsoft.PowerShell.MarkdownRender.MarkdownInfo to display
|
/// Gets or sets InputObject of type Microsoft.PowerShell.MarkdownRender.MarkdownInfo to display.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ValidateNotNullOrEmpty]
|
[ValidateNotNullOrEmpty]
|
||||||
[Parameter(Mandatory = true, ValueFromPipeline = true)]
|
[Parameter(Mandatory = true, ValueFromPipeline = true)]
|
||||||
public PSObject InputObject { get; set; }
|
public PSObject InputObject { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Switch to view Html in default browser.
|
/// Gets or sets the switch to view Html in default browser.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Parameter()]
|
[Parameter]
|
||||||
public SwitchParameter UseBrowser { get; set; }
|
public SwitchParameter UseBrowser { get; set; }
|
||||||
|
|
||||||
private SteppablePipeline stepPipe;
|
private SteppablePipeline stepPipe;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Override BeginProcessing.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void BeginProcessing()
|
protected override void BeginProcessing()
|
||||||
{
|
{
|
||||||
|
@ -52,11 +52,11 @@ namespace Microsoft.PowerShell.Commands
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Override ProcessRecord
|
/// Override ProcessRecord.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void ProcessRecord()
|
protected override void ProcessRecord()
|
||||||
{
|
{
|
||||||
Object inpObj = InputObject.BaseObject;
|
object inpObj = InputObject.BaseObject;
|
||||||
var markdownInfo = inpObj as MarkdownInfo;
|
var markdownInfo = inpObj as MarkdownInfo;
|
||||||
|
|
||||||
if (markdownInfo == null)
|
if (markdownInfo == null)
|
||||||
|
@ -75,15 +75,15 @@ namespace Microsoft.PowerShell.Commands
|
||||||
{
|
{
|
||||||
var html = markdownInfo.Html;
|
var html = markdownInfo.Html;
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(html))
|
if (!string.IsNullOrEmpty(html))
|
||||||
{
|
{
|
||||||
string tmpFilePath = Path.Combine(Path.GetTempPath(), (Guid.NewGuid().ToString() + ".html"));
|
string tmpFilePath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".html");
|
||||||
using (var writer = new StreamWriter(new FileStream(tmpFilePath, FileMode.Create, FileAccess.Write, FileShare.Write)))
|
using (var writer = new StreamWriter(new FileStream(tmpFilePath, FileMode.Create, FileAccess.Write, FileShare.Write)))
|
||||||
{
|
{
|
||||||
writer.Write(html);
|
writer.Write(html);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(OutputBypassTestHook)
|
if (outputBypassTestHook)
|
||||||
{
|
{
|
||||||
WriteObject(html);
|
WriteObject(html);
|
||||||
return;
|
return;
|
||||||
|
@ -116,9 +116,9 @@ namespace Microsoft.PowerShell.Commands
|
||||||
{
|
{
|
||||||
var vt100String = markdownInfo.VT100EncodedString;
|
var vt100String = markdownInfo.VT100EncodedString;
|
||||||
|
|
||||||
if(!String.IsNullOrEmpty(vt100String))
|
if (!string.IsNullOrEmpty(vt100String))
|
||||||
{
|
{
|
||||||
if(OutputBypassTestHook)
|
if (outputBypassTestHook)
|
||||||
{
|
{
|
||||||
WriteObject(vt100String);
|
WriteObject(vt100String);
|
||||||
return;
|
return;
|
||||||
|
@ -154,15 +154,16 @@ namespace Microsoft.PowerShell.Commands
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool OutputBypassTestHook = false;
|
private static bool outputBypassTestHook = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Test hook to enable or disable launching of browser.
|
/// Test hook to enable or disable launching of browser.
|
||||||
/// When set, the converted output is returned.
|
/// When set, the converted output is returned.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="value">True to enable test hook, false to disable.</param>
|
||||||
public static void SetOutputBypassTestHook(bool value)
|
public static void SetOutputBypassTestHook(bool value)
|
||||||
{
|
{
|
||||||
OutputBypassTestHook = value;
|
outputBypassTestHook = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax.Inlines;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax.Inlines;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax.Inlines;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax.Inlines;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
@ -18,11 +18,11 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
foreach (var codeLine in obj.Lines.Lines)
|
foreach (var codeLine in obj.Lines.Lines)
|
||||||
{
|
{
|
||||||
if (!String.IsNullOrWhiteSpace(codeLine.ToString()))
|
if (!string.IsNullOrWhiteSpace(codeLine.ToString()))
|
||||||
{
|
{
|
||||||
// If the code block is of type YAML, then tab to right to improve readability.
|
// If the code block is of type YAML, then tab to right to improve readability.
|
||||||
// This specifically helps for parameters help content.
|
// This specifically helps for parameters help content.
|
||||||
if (String.Equals(obj.Info, "yaml", StringComparison.OrdinalIgnoreCase))
|
if (string.Equals(obj.Info, "yaml", StringComparison.OrdinalIgnoreCase))
|
||||||
{
|
{
|
||||||
renderer.WriteLine("\t" + codeLine.ToString());
|
renderer.WriteLine("\t" + codeLine.ToString());
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax.Inlines;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax.Inlines;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,12 +4,11 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax.Inlines;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax.Inlines;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Renderer for adding VT100 escape sequences for line breaks.
|
/// Renderer for adding VT100 escape sequences for line breaks.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax.Inlines;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax.Inlines;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,8 +5,8 @@ using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
@ -42,8 +42,9 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
renderer.Write(indent).Write(listBullet).Write(" ").Write(paragraphBlock.Inline);
|
renderer.Write(indent).Write(listBullet).Write(" ").Write(paragraphBlock.Inline);
|
||||||
}
|
}
|
||||||
else //If there is a sublist, the block is a ListBlock instead of ParagraphBlock.
|
else
|
||||||
{
|
{
|
||||||
|
// If there is a sublist, the block is a ListBlock instead of ParagraphBlock.
|
||||||
var subList = block as ListBlock;
|
var subList = block as ListBlock;
|
||||||
if (subList != null)
|
if (subList != null)
|
||||||
{
|
{
|
||||||
|
@ -67,10 +68,13 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
// Typical padding is at most a screen's width, any more than that and we won't bother caching.
|
// Typical padding is at most a screen's width, any more than that and we won't bother caching.
|
||||||
private const int IndentCacheMax = 120;
|
private const int IndentCacheMax = 120;
|
||||||
private static readonly string[] IndentCache = new string[IndentCacheMax];
|
private static readonly string[] IndentCache = new string[IndentCacheMax];
|
||||||
|
|
||||||
internal static string Padding(int countOfSpaces)
|
internal static string Padding(int countOfSpaces)
|
||||||
{
|
{
|
||||||
if (countOfSpaces >= IndentCacheMax)
|
if (countOfSpaces >= IndentCacheMax)
|
||||||
|
{
|
||||||
return new string(' ', countOfSpaces);
|
return new string(' ', countOfSpaces);
|
||||||
|
}
|
||||||
|
|
||||||
var result = IndentCache[countOfSpaces];
|
var result = IndentCache[countOfSpaces];
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
@ -32,17 +32,17 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
public class MarkdownInfo
|
public class MarkdownInfo
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Html content after conversion.
|
/// Gets the Html content after conversion.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Html { get; internal set; }
|
public string Html { get; internal set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// VT100 encoded string after conversion.
|
/// Gets the VT100 encoded string after conversion.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string VT100EncodedString { get; internal set; }
|
public string VT100EncodedString { get; internal set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// AST of the markdown string.
|
/// Gets the AST of the markdown string.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Markdig.Syntax.MarkdownDocument Tokens { get; internal set; }
|
public Markdig.Syntax.MarkdownDocument Tokens { get; internal set; }
|
||||||
}
|
}
|
||||||
|
@ -55,9 +55,10 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Convert from markdown string to VT100 encoded string or HTML. Returns MarkdownInfo object.
|
/// Convert from markdown string to VT100 encoded string or HTML. Returns MarkdownInfo object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="markdownString">string with markdown content to be converted</param>
|
/// <param name="markdownString">String with markdown content to be converted.</param>
|
||||||
/// <param name="conversionType">specifies type of conversion, either VT100 or HTML</param>
|
/// <param name="conversionType">Specifies type of conversion, either VT100 or HTML.</param>
|
||||||
/// <param name="optionInfo">specifies the rendering options for VT100 rendering</param>
|
/// <param name="optionInfo">Specifies the rendering options for VT100 rendering.</param>
|
||||||
|
/// <returns>MarkdownInfo object with the converted output.</returns>
|
||||||
public static MarkdownInfo Convert(string markdownString, MarkdownConversionType conversionType, MarkdownOptionInfo optionInfo)
|
public static MarkdownInfo Convert(string markdownString, MarkdownConversionType conversionType, MarkdownOptionInfo optionInfo)
|
||||||
{
|
{
|
||||||
var renderInfo = new MarkdownInfo();
|
var renderInfo = new MarkdownInfo();
|
||||||
|
@ -74,6 +75,7 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
if (conversionType.HasFlag(MarkdownConversionType.VT100))
|
if (conversionType.HasFlag(MarkdownConversionType.VT100))
|
||||||
{
|
{
|
||||||
pipeline = new MarkdownPipelineBuilder().Build();
|
pipeline = new MarkdownPipelineBuilder().Build();
|
||||||
|
|
||||||
// Use the VT100 renderer.
|
// Use the VT100 renderer.
|
||||||
var renderer = new VT100Renderer(writer, optionInfo);
|
var renderer = new VT100Renderer(writer, optionInfo);
|
||||||
renderInfo.VT100EncodedString = Markdig.Markdown.Convert(markdownString, renderer, pipeline).ToString();
|
renderInfo.VT100EncodedString = Markdig.Markdown.Convert(markdownString, renderer, pipeline).ToString();
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
@ -18,6 +18,7 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
// Call the renderer for children, leaf inline or line breaks.
|
// Call the renderer for children, leaf inline or line breaks.
|
||||||
renderer.WriteChildren(obj.Inline);
|
renderer.WriteChildren(obj.Inline);
|
||||||
|
|
||||||
// Add new line at the end of the paragraph.
|
// Add new line at the end of the paragraph.
|
||||||
renderer.WriteLine();
|
renderer.WriteLine();
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,8 +4,8 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
|
@ -17,57 +17,57 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
private const char Esc = (char)0x1b;
|
private const char Esc = (char)0x1b;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for header 1.
|
/// Gets or sets current VT100 escape sequence for header 1.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Header1 { get; set; }
|
public string Header1 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for header 2.
|
/// Gets or sets current VT100 escape sequence for header 2.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Header2 { get; set; }
|
public string Header2 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for header 3.
|
/// Gets or sets current VT100 escape sequence for header 3.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Header3 { get; set; }
|
public string Header3 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for header 4.
|
/// Gets or sets current VT100 escape sequence for header 4.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Header4 { get; set; }
|
public string Header4 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for header 5.
|
/// Gets or sets current VT100 escape sequence for header 5.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Header5 { get; set; }
|
public string Header5 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for header 6.
|
/// Gets or sets current VT100 escape sequence for header 6.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Header6 { get; set; }
|
public string Header6 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for code inline and code blocks.
|
/// Gets or sets current VT100 escape sequence for code inline and code blocks.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Code { get; set; }
|
public string Code { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for links.
|
/// Gets or sets current VT100 escape sequence for links.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Link { get; set; }
|
public string Link { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for images.
|
/// Gets or sets current VT100 escape sequence for images.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string Image { get; set; }
|
public string Image { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for bold text.
|
/// Gets or sets current VT100 escape sequence for bold text.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string EmphasisBold { get; set; }
|
public string EmphasisBold { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Current VT100 escape sequence for italics text.
|
/// Gets or sets current VT100 escape sequence for italics text.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string EmphasisItalics { get; set; }
|
public string EmphasisItalics { get; set; }
|
||||||
|
|
||||||
|
@ -75,11 +75,13 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
/// Get the property as an rendered escape sequence.
|
/// Get the property as an rendered escape sequence.
|
||||||
/// This is used for typesps1xml for displaying.
|
/// This is used for typesps1xml for displaying.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="propertyName">Name of the property to get as escape sequence.</param>
|
||||||
|
/// <returns>Specified property name as escape sequence.</returns>
|
||||||
public string AsEscapeSequence(string propertyName)
|
public string AsEscapeSequence(string propertyName)
|
||||||
{
|
{
|
||||||
var propertyValue = this.GetType().GetProperty(propertyName)?.GetValue(this) as string;
|
var propertyValue = this.GetType().GetProperty(propertyName)?.GetValue(this) as string;
|
||||||
|
|
||||||
if(!String.IsNullOrEmpty(propertyValue))
|
if (!string.IsNullOrEmpty(propertyValue))
|
||||||
{
|
{
|
||||||
return string.Concat(Esc, propertyValue, propertyValue, Esc, "[0m");
|
return string.Concat(Esc, propertyValue, propertyValue, Esc, "[0m");
|
||||||
}
|
}
|
||||||
|
@ -90,7 +92,7 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Set dark as the default theme.
|
/// Initializes a new instance of <see cref="MarkdownOptionInfo"/> class and sets dark as the default theme.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public MarkdownOptionInfo()
|
public MarkdownOptionInfo()
|
||||||
{
|
{
|
||||||
|
@ -135,19 +137,20 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class VT100EscapeSequences
|
public class VT100EscapeSequences
|
||||||
{
|
{
|
||||||
private const char Esc = (char)0x1B;
|
private const char Esc = (char)0x1B;
|
||||||
|
|
||||||
private string EndSequence = Esc + "[0m";
|
private string endSequence = Esc + "[0m";
|
||||||
|
|
||||||
private MarkdownOptionInfo options;
|
private MarkdownOptionInfo options;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Set the options as per <param name="optionInfo"/>
|
/// Initializes a new instance of the <see cref="VT100EscapeSequences"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="optionInfo">MarkdownOptionInfo object to initialize with.</param>
|
||||||
public VT100EscapeSequences(MarkdownOptionInfo optionInfo)
|
public VT100EscapeSequences(MarkdownOptionInfo optionInfo)
|
||||||
{
|
{
|
||||||
if (optionInfo == null)
|
if (optionInfo == null)
|
||||||
|
@ -159,99 +162,123 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="headerText">Text of the header to format.</param>
|
||||||
|
/// <returns>Formatted Header 1 string.</returns>
|
||||||
public string FormatHeader1(string headerText)
|
public string FormatHeader1(string headerText)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Header1, headerText, EndSequence);
|
return string.Concat(Esc, options.Header1, headerText, endSequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="headerText">Text of the header to format.</param>
|
||||||
|
/// <returns>Formatted Header 2 string.</returns>
|
||||||
public string FormatHeader2(string headerText)
|
public string FormatHeader2(string headerText)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Header2, headerText, EndSequence);
|
return string.Concat(Esc, options.Header2, headerText, endSequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="headerText">Text of the header to format.</param>
|
||||||
|
/// <returns>Formatted Header 3 string.</returns>
|
||||||
public string FormatHeader3(string headerText)
|
public string FormatHeader3(string headerText)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Header3, headerText, EndSequence);
|
return string.Concat(Esc, options.Header3, headerText, endSequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="headerText">Text of the header to format.</param>
|
||||||
|
/// <returns>Formatted Header 4 string.</returns>
|
||||||
public string FormatHeader4(string headerText)
|
public string FormatHeader4(string headerText)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Header4, headerText, EndSequence);
|
return string.Concat(Esc, options.Header4, headerText, endSequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="headerText">Text of the header to format.</param>
|
||||||
|
/// <returns>Formatted Header 5 string.</returns>
|
||||||
public string FormatHeader5(string headerText)
|
public string FormatHeader5(string headerText)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Header5, headerText, EndSequence);
|
return string.Concat(Esc, options.Header5, headerText, endSequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="headerText">Text of the header to format.</param>
|
||||||
|
/// <returns>Formatted Header 6 string.</returns>
|
||||||
public string FormatHeader6(string headerText)
|
public string FormatHeader6(string headerText)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Header6, headerText, EndSequence);
|
return string.Concat(Esc, options.Header6, headerText, endSequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="codeText">Text of the code block to format.</param>
|
||||||
|
/// <param name="isInline">True if it is a inline code block, false otherwise.</param>
|
||||||
|
/// <returns>Formatted code block string.</returns>
|
||||||
public string FormatCode(string codeText, bool isInline)
|
public string FormatCode(string codeText, bool isInline)
|
||||||
{
|
{
|
||||||
if (isInline)
|
if (isInline)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Code, codeText, EndSequence);
|
return string.Concat(Esc, options.Code, codeText, endSequence);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// For code blocks, [500@ make sure that the whole line has background color.
|
// For code blocks, [500@ make sure that the whole line has background color.
|
||||||
return String.Concat(Esc, options.Code, codeText, Esc, "[500@", EndSequence);
|
return string.Concat(Esc, options.Code, codeText, Esc, "[500@", endSequence);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="linkText">Text of the link to format.</param>
|
||||||
|
/// <param name="url">URL of the link.</param>
|
||||||
|
/// <param name="hideUrl">True url should be hidden, false otherwise. Default is true.</param>
|
||||||
|
/// <returns>Formatted link string.</returns>
|
||||||
public string FormatLink(string linkText, string url, bool hideUrl = true)
|
public string FormatLink(string linkText, string url, bool hideUrl = true)
|
||||||
{
|
{
|
||||||
if (hideUrl)
|
if (hideUrl)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Link, "\"", linkText, "\"", EndSequence);
|
return string.Concat(Esc, options.Link, "\"", linkText, "\"", endSequence);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return String.Concat("\"", linkText, "\" (", Esc, options.Link, url, EndSequence, ")");
|
return string.Concat("\"", linkText, "\" (", Esc, options.Link, url, endSequence, ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="emphasisText">Text to format as emphasis.</param>
|
||||||
|
/// <param name="isBold">True if it is to be formatted as bold, false to format it as italics.</param>
|
||||||
|
/// <returns>Formatted emphasis string.</returns>
|
||||||
public string FormatEmphasis(string emphasisText, bool isBold)
|
public string FormatEmphasis(string emphasisText, bool isBold)
|
||||||
{
|
{
|
||||||
var sequence = isBold ? options.EmphasisBold : options.EmphasisItalics;
|
var sequence = isBold ? options.EmphasisBold : options.EmphasisItalics;
|
||||||
return String.Concat(Esc, sequence, emphasisText, EndSequence);
|
return string.Concat(Esc, sequence, emphasisText, endSequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class to represent default VT100 escape sequences
|
/// Class to represent default VT100 escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="altText">Text of the image to format.</param>
|
||||||
|
/// <returns>Formatted image string.</returns>
|
||||||
public string FormatImage(string altText)
|
public string FormatImage(string altText)
|
||||||
{
|
{
|
||||||
return String.Concat(Esc, options.Image, "[", altText, "]", EndSequence);
|
return string.Concat(Esc, options.Image, "[", altText, "]", endSequence);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,15 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implement the MarkdownObjectRenderer with VT100Renderer.
|
/// Implement the MarkdownObjectRenderer with VT100Renderer.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <typeparam name="T">The element type of the renderer.</typeparam>
|
||||||
public abstract class VT100ObjectRenderer<T> : MarkdownObjectRenderer<VT100Renderer, T> where T : MarkdownObject
|
public abstract class VT100ObjectRenderer<T> : MarkdownObjectRenderer<VT100Renderer, T> where T : MarkdownObject
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,19 +4,21 @@
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Markdig;
|
using Markdig;
|
||||||
using Markdig.Syntax;
|
|
||||||
using Markdig.Renderers;
|
using Markdig.Renderers;
|
||||||
|
using Markdig.Syntax;
|
||||||
|
|
||||||
namespace Microsoft.PowerShell.MarkdownRender
|
namespace Microsoft.PowerShell.MarkdownRender
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Implementation of the VT100 renderer.
|
/// Initializes an instance of the VT100 renderer.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class VT100Renderer : TextRendererBase<VT100Renderer>
|
public sealed class VT100Renderer : TextRendererBase<VT100Renderer>
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initialize the VT100 renderer with <param name="optionInfo"/> and write the output <param name="writer"/>.
|
/// Initializes a new instance of the <see cref="VT100Renderer"/> class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
/// <param name="writer">TextWriter to write to.</param>
|
||||||
|
/// <param name="optionInfo">MarkdownOptionInfo object with options.</param>
|
||||||
public VT100Renderer(TextWriter writer, MarkdownOptionInfo optionInfo) : base(writer)
|
public VT100Renderer(TextWriter writer, MarkdownOptionInfo optionInfo) : base(writer)
|
||||||
{
|
{
|
||||||
EscapeSequences = new VT100EscapeSequences(optionInfo);
|
EscapeSequences = new VT100EscapeSequences(optionInfo);
|
||||||
|
@ -36,7 +38,7 @@ namespace Microsoft.PowerShell.MarkdownRender
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get the current escape sequences.
|
/// Gets the current escape sequences.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public VT100EscapeSequences EscapeSequences { get; private set; }
|
public VT100EscapeSequences EscapeSequences { get; private set; }
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue