让PowerShell脚本在HTML中高亮显示


将PowerShell脚本发布在Web上,通常有两种方式,第一种直接提供脚本文件的下载。这里单讲第二种。

第二种是将脚本代码中的关键字以可视化的形式展现在Web网页中,常见于博客和论坛中,也有两种方式:

一种是将脚本放置在code或pre标签中,然后通过Java Script脚本在客户端进行渲染,在WordPress尤为常见。另外一种是将脚本在发布前进行HTML着色渲染,让脚本本身包含了HTML样式。这里推荐一个PowerShell脚本,使用Powershell脚本自己给自己着色,真可谓善莫大焉。

其主要原理也得益于PowerShell的强大功能:在PowerShell中有一个类型System.Management.Automation.PSTokenType, 这个类型包含PowerShell脚本的语法标记。

PS D:\> [enum]::GetNames([System.Management.Automation.PSTokenType])
Unknown
Command
CommandParameter
CommandArgument
Number
String
Variable
Member
LoopLabel
Attribute
Type
Operator
GroupStart
GroupEnd
Keyword
Comment
StatementSeparator
NewLine
LineContinuation

 

还有一个方法[system.management.automation.psparser]::Tokenize(),将脚本解析成包含上述标记的对象:

PS D:\> [system.management.automation.psparser]::Tokenize($text,[ref] $er) | select -First 3


Content     : cls
Type        : Command
Start       : 0
Length      : 3
StartLine   : 1
StartColumn : 1
EndLine     : 1
EndColumn   : 4

Content     :

Type        : NewLine
Start       : 3
Length      : 2
StartLine   : 1
StartColumn : 4
EndLine     : 2
EndColumn   : 1

Content     : #Load UI automation assembly
Type        : Comment
Start       : 5
Length      : 28
StartLine   : 2
StartColumn : 1
EndLine     : 2
EndColumn   : 29

然后针对这些不同的对象增加HTML标记即可,这个方法的比较精巧,适合轻量级的嵌入,如果要嵌入大量的脚本,推荐第一种,易于维护。因为CSS的诞生就是为了将内容与主题分离的。

本文链接: https://www.pstips.net/powershell-script-highlight-in-html.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注