- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
希望有人能对此有所启发,真的很烦人。
我试图在 Powershell 7.1.3 中使用 Markdig 查找 MarkdownDocument 中的所有链接
它是为 .NET 设计的,它有一组继承类,用于表示各种类型的 Markdown 文档。我使用的是一个简单的辅助 PS 包装器,它有助于使用通用方法,但我认为这不是原因。
让我给你看一个简单的重现
install-module psmarkdig # provides the Get-MdElement helper
$doc = [Markdig.Parsers.MarkdownParser]::Parse('# blah`n`nHello [this is a link](linkpath.md)')
$links = @(Get-MdElement $doc 'Markdig.Syntax.Inlines.LinkInline') # force even a single match to be an array
好的,所以这包含一个链接
> $links.Count
1
元素是我们期望的类型
> $links[0].GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False LinkInline Markdig.Syntax.Inlines.ContainerInline
我可以看到有一个带有 Get-Member 的 IsImage 属性
> Get-Member -InputObject $links[0]
TypeName: Markdig.Syntax.Inlines.LinkInline
Name MemberType Definition
---- ---------- ----------
AppendChild Method Markdig.Syntax.Inlines.ContainerInline AppendChild(Markdig.Syntax.Inlines.Inline child)
Clear Method void Clear()
ContainsChild Method bool ContainsChild(Markdig.Syntax.Inlines.Inline childToFind)
ContainsData Method bool ContainsData(System.Object key), bool IMarkdownObject.ContainsData(System.Object key)
ContainsParentOfType Method bool ContainsParentOfType[T]()
DumpTo Method void DumpTo(System.IO.TextWriter writer), void DumpTo(System.IO.TextWriter writer, int level)
EmbraceChildrenBy Method void EmbraceChildrenBy(Markdig.Syntax.Inlines.ContainerInline container)
Equals Method bool Equals(System.Object obj)
FindBestParent Method Markdig.Syntax.Inlines.Inline FindBestParent()
FindDescendants Method System.Collections.Generic.IEnumerable[T] FindDescendants[T]()
FindParentOfType Method System.Collections.Generic.IEnumerable[T] FindParentOfType[T]()
GetData Method System.Object GetData(System.Object key), System.Object IMarkdownObject.GetData(System.Object key)
GetEnumerator Method Markdig.Syntax.Inlines.ContainerInline+Enumerator GetEnumerator(), System.Collections.Generic.IEnumerator[Markdig.Syn…
GetHashCode Method int GetHashCode()
GetType Method type GetType()
InsertAfter Method void InsertAfter(Markdig.Syntax.Inlines.Inline next)
InsertBefore Method void InsertBefore(Markdig.Syntax.Inlines.Inline previous)
MoveChildrenAfter Method void MoveChildrenAfter(Markdig.Syntax.Inlines.Inline parent)
Remove Method void Remove()
RemoveData Method bool RemoveData(System.Object key), bool IMarkdownObject.RemoveData(System.Object key)
ReplaceBy Method Markdig.Syntax.Inlines.Inline ReplaceBy(Markdig.Syntax.Inlines.Inline inline, bool copyChildren)
SetData Method void SetData(System.Object key, System.Object value), void IMarkdownObject.SetData(System.Object key, System.Object v…
ToPositionText Method string ToPositionText()
ToString Method string ToString()
Column Property int Column {get;set;}
FirstChild Property Markdig.Syntax.Inlines.Inline FirstChild {get;}
GetDynamicUrl Property Markdig.Syntax.Inlines.LinkInline+GetUrlDelegate GetDynamicUrl {get;set;}
IsAutoLink Property bool IsAutoLink {get;set;}
IsClosed Property bool IsClosed {get;set;}
IsImage Property bool IsImage {get;set;}
IsShortcut Property bool IsShortcut {get;set;}
Label Property string Label {get;set;}
LabelSpan Property System.Nullable[Markdig.Syntax.SourceSpan] LabelSpan {get;set;}
LastChild Property Markdig.Syntax.Inlines.Inline LastChild {get;}
Line Property int Line {get;set;}
NextSibling Property Markdig.Syntax.Inlines.Inline NextSibling {get;}
Parent Property Markdig.Syntax.Inlines.ContainerInline Parent {get;}
PreviousSibling Property Markdig.Syntax.Inlines.Inline PreviousSibling {get;}
Reference Property Markdig.Syntax.LinkReferenceDefinition Reference {get;set;}
Span Property Markdig.Syntax.SourceSpan Span {get;set;}
Title Property string Title {get;set;}
TitleSpan Property System.Nullable[Markdig.Syntax.SourceSpan] TitleSpan {get;set;}
Url Property string Url {get;set;}
UrlSpan Property System.Nullable[Markdig.Syntax.SourceSpan] UrlSpan {get;set;}
但是 Format-List 给我的 View 非常有限
> Format-List -InputObject $links[0]
IsFirstCharacterEscaped : False
Parent : {this is a link}
PreviousSibling :
NextSibling :
IsClosed : False
Column : 0
Line : 0
Content : this is a link
Span : 0-0
好吧,也许有一些 FormattingTypeViews 正在发生,但即使抛出 -force -property * 和 -TheKitchenSink 似乎也没有任何区别!
> Format-List -InputObject $links[0] -Property * -Force
IsFirstCharacterEscaped : False
Parent : {this is a link}
PreviousSibling :
NextSibling :
IsClosed : False
Column : 0
Line : 0
Content : this is a link
Span : 0-0
如果我调用它,我可以看到 IsImage 的值
> $links[0].IsImage
False
如何使用 Format-List 以我在 Powershell 中惯用的正常方式探索这些对象?这是我应该以某种方式提出的 Powershell 错误吗?
最佳答案
Markdig.Syntax.Inlines.LinkInline
本身实现 IEnumerable
,这导致Format-List
枚举它并报告枚举元素的属性,即使通过-InputObject
传递也是如此.
具体来说,它枚举实例的一个子元素,类型为Markdig.Syntax.Inlines.LiteralInline
。 , 并且显示它的属性。
要防止这种枚举,即要查看实例自身的属性,您必须将其包装在 aux 中。单元素数组:
Format-List -InputObject (, $links[0])
输出:
Url : linkpath.md
GetDynamicUrl :
Title :
Label :
IsImage : False
IsShortcut : False
IsAutoLink : False
Reference :
ParentBlock :
FirstChild : this is a link
LastChild : this is a link
Parent : {blah, Markdig.Syntax.Inlines.CodeInline, nHello , this is a link}
PreviousSibling : nHello
NextSibling :
IsClosed : True
Column : 0
Line : 0
UrlSpan : 0-0
TitleSpan : 0--1
LabelSpan : 0-0
Span : 0-0
仅获取属性 names 的一种更简单的方法是通过 intrinsic .psobject
property :
$links[0].psobject.Properties.Name
注意:
问题归结为 Markdig.Syntax.Inlines.LinkInline
不被认为是类集合类型,但它是 IEnumerable
的实现接口(interface)使 PowerShell 将其视为一个集合。
要使 .NET 类型对 PowerShell 友好,它们需要通过实现 IEnumerable
的属性公开枚举。 ,说 .Children
在这种情况下,而不是实现 IEnumerable
他们自己。
关于powershell - Format-List -force * 不显示 .net 对象的所有成员,即使 Get-Member 确实显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71487617/
我试图理解两者之间的区别 git push --force 和 git push --force-with-lease 我的猜测是后者只推送到远程如果远程提交了本地分支没有? 最佳答案 force 用
我在将项目发布到本地系统时收到此错误 Copying file obj\Debug\build.force to obj\Release\Package\PackageTmp\obj\Debug\bu
这个例子的描述:http://bl.ocks.org/mbostock/4062045 (见下图),声明它是“带电粒子和 Spring 的物理模拟,使相关 Angular 色更接近。” 我只是好奇该代
请不要标记重复的问题。 大家好, 我正在执行 NSURLAuthenticationMethodClientCertificate,我在其中使用以下代码。如果我不使用 swiftlint,哪个代码没问
我似乎无法删除文件/文件夹,而无需为所有人输入 [A]。我错过了什么? Get-Childitem "C:\Users\*\AppData\Local\Temp\*" -ErrorAction S
我一直在尝试编写在 Streams 上运行的程序和它们的属性,但我觉得即使是最简单的事情我也被困住了。当我在标准库的 Codata/Streams 中查看 repeat 的定义时,我发现了一个我在 A
我正在尝试使用 symfony2 创建一个下载文件的链接。它确实下载了一个文件,但它没有用,因为它是零八位字节。我不知道如何让它工作。有人知道怎么做吗? 文件位于web/uploads/documen
我需要为MySQLd打开网络,但是每次这样做,服务器都会被强行淘汰。一些卑鄙的密码猜测脚本开始在服务器上运行,在端口3306上打开连接并永久尝试随 secret 码。 我该如何阻止这种情况的发生? 对
Azure Functions 是否可以强制通过 HTTPS 进行连接? 我没有在应用程序设置中看到它,也没有看到任何对 Azure Functions 的 web.config 的引用。 最佳答案
我正在使用 Firebird 数据库并正在尝试以下 sql,但每次它返回 0,而不是 0.61538(等等)。 SELECT (COUNT(myfield)/26) totalcount FROM m
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我想要一个永远未定义的属性: var foo = {bar:undefined} 如果有人稍后尝试更改属性栏,那么它也应该导致未定义。 foo.bar = 'someValue'// foo.bar/
我有课,Target无法更改,具有通用约束。我想从没有约束的泛型类中构建该类的实例。下面演示了我想要做的事情的意图,但我意识到这段代码将无法编译并且 typeof(T).IsClass是运行时检查,通
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
假设我在包中编写了一个类,名为 mypackage.myclass。我已经为包和类编写了自己的 HTML 文档,并将其包含在 MATLAB 帮助浏览器中,如 the MATLAB documentat
我们有一个多平台项目,它为几个平台生成二进制文件,比如 mac、windows、linux...是否可以强制 git 将所有文件的编码更改为某个特定平台(例如:Linux)。那么如何在每次用户提交或推
我正在使用 MSBuild 自动为标签创建一个文本文件和一个 ZIP 文件。我的 MSBuild 项目由 CruiseControl.NET 调用. 文本文件总是latest.txt,ZIP 文件是(
根据我的一些 API 规范: Force to place an Auth transaction into the current batch (PostAuth) or to place a tr
我正在使用超集 0.20.4 如果我想在我的 URL 中添加一个 token 以自动登录到特定用户超集/仪表板/3?standalone=true&token=123456789 我应该在代码的哪个位
我有一个大问题:我有一个 listview,每个项目都链接到页面 #concorsi。当我单击链接时,URL 会变为 #concorsi?numero=1,因为我正在从 JSON 中获取表单编号 1。
我是一名优秀的程序员,十分优秀!