Markdown Web Essentials 2013能否使用模板将标记编译为HTML?
我将Web Essentials 2013与VS2013一起使用 我有一个.md文件,用于编写有关服务的文档。预览效果很好,我甚至使用了Markdown Web Essentials 2013能否使用模板将标记编译为HTML?,markdown,web-essentials,Markdown,Web Essentials,我将Web Essentials 2013与VS2013一起使用 我有一个.md文件,用于编写有关服务的文档。预览效果很好,我甚至使用了WE Markdown.css和WE Markdown.html进行更漂亮的预览。但当它编译成HTML时(使用“Web Essentials->Compile Markdown to HTML”上下文菜单选项),它只会生成带有任何或标记的等效输出 有没有办法告诉它以生成预览的方式编译它 否则,我将不得不更改我的项目的构建,以使用模板使用其他内容编译标记 我尝试打
WE Markdown.css
和WE Markdown.html
进行更漂亮的预览。但当它编译成HTML时(使用“Web Essentials->Compile Markdown to HTML”上下文菜单选项),它只会生成带有任何
或
标记的等效输出
有没有办法告诉它以生成预览的方式编译它
否则,我将不得不更改我的项目的构建,以使用模板使用其他内容编译标记
我尝试打开源代码,但无法使用VS2013加载解决方案(或者缺少一些SDK)。我也无法在GitHub上的源代码中找到编译发生的位置。我最终创建了一个PowerShell脚本,该脚本执行编译+模板化,并在生成后事件中调用它 这是:
PARAM(
[string]
[Parameter(Mandatory = $True)]
$MarkdownPath,
[string]
$Title
)
$MarkdownPath = Resolve-Path $MarkdownPath;
if (-not $Title)
{
$Title = $MarkdownPath;
}
# Adjust this to your solution. There might be a better way to find WE-Markdown.html
$solutionPath = Resolve-Path $PSScriptRoot;
# Same for packages path
$cmarkExe = (Get-ChildItem (Join-Path $solutionPath .\packages\**\cmark.exe) -Recurse)[0].FullName;
$out = $MarkdownPath.Replace(".md", ".html");
$compiled = & $cmarkExe $MarkdownPath | Out-String;
$template = Get-Content (Join-Path $solutionPath WE-Markdown.html) -Encoding UTF8 -Raw;
$result = $template -replace "{##TITLE##}", $Title `
-replace "{##SOLUTION_PATH_PLACEHOLDER##}", $solutionPath `
-replace "{##PROJECT_PATH_PLACEHOLDER##}", "" `
-replace "{##DOCUMENT_PATH_PLACEHOLDER##}", $MarkdownPath `
-replace "{##MARKDOWN_HTML_PLACEHOLDER##}", $compiled `
-replace "language-C#", "csharp"; # Replace any other thing that is relevant to your project
Set-Content -Path $out -Value $result -Encoding UTF8;
这是一个包含所有内容的github存储库
以及一个生成后事件示例:
PowerShell.exe $(SolutionDir)Generate-Documentation.ps1 $(ProjectDir)docs\*.md Web_Page_Title_Here
我对“Web Essentials”(即注释而非答案)一无所知,但标记解析器通常不会生成整个文档。如果你认为降价是一个“文档片段”,它会有所帮助。一些降价解析器将提供将输出包装到文档中的选项,但这种情况很少。事实上,如果解析器在默认情况下没有给我一个片段,我将其视为一个bug。我总是假设解析器不会这样做,并期望自己需要这样做。我发现提供选项的工具给了我无法使用的输出。我总是创建自己的包装器。我最终编写了一个PowerShell脚本,该脚本使用WebEssentials使用的WE-Markdown.html模板,并在生成后事件中运行该脚本。谢谢你的意见@ChristianDroulers:你介意发布一个关于你是如何做到这一点的问题的答案吗?我也有兴趣这样做。@GregBurghardt我会的!我忘了这个问题!对不起@格雷格伯哈特在这里!一旦你开始工作,请贡献你所做的任何有趣的改变!行。我将在星期二深入研究这个问题。谢谢您将此PowerShell脚本保存到哪里?你能展示一个从构建后事件中调用脚本的例子吗?我让它工作了。我还在您的答案中添加了一个构建后事件示例+1我刚刚意识到,一次只能处理一个文件。我已经把你的GitHub存储库翻了个底朝天。我将尝试手动解析多个文件。