gpt4 book ai didi

c# - 使用 Wyam 从应用程序代码生成站点

转载 作者:太空宇宙 更新时间:2023-11-03 20:57:35 28 4
gpt4 key购买 nike

最近我开始尝试使用静态内容生成器并发现了 Wyam。我想基于它运行我的博客,但我也想为自己创建 Web 界面,这样我就可以用任何浏览器写博客。

这个问题有多种解决方案,但我对在 .NET 应用程序中启动 Wyam 生成器的可能性很感兴趣。甚至有可能还是我必须从我的应用程序内部运行 wyam.exe

基本上我想做的是这样的:

WyamGenerator generator = new WyamGenerator("path/to/wyam/folder/structure");
generator.Generate();

我在源代码中看到了 Engine 类及其 Execute 方法,但我仍然不确定如何将所有这些东西连接在一起才能正确生成我的网站.

最佳答案

事实证明,Wyam 所基于的概念比仅仅执行其引擎和生成内容要复杂一些。本主题的起点是 Wyam embedding page

使用 Wyam 引擎是一篇很长的博文 Material ,所以我将只用尽可能少的代码回答我自己的问题,为将来发现这个问题的人提供进一步调查的起点。

首先我们需要创建Engine实例。

Engine engine = new Engine();

如果我们的 input 文件夹在我们当前目录之外的其他地方,我们必须使用 FileSystem 属性提供正确的 RootPath

DirectoryPath rootPath = new DirectoryPath(@"path/to/wyam/folder/structure");
engine.FileSystem.RootPath = rootPath;

这里是recipes的概念所在开始。什么是食谱?

A recipe is a pre-configured series of modules and pipelines. Each recipe can be thought of as it's own special purpose static site generator.

Pipeline

A pipeline is a series of modules executed in sequence that results in final output documents.

有了这些知识,我们知道,为了用我们的 Engine 生成任何内容,我们必须为他提供我们希望它执行的管道。最简单的方法是使用现有的配方之一。就我而言,我想以编程方式创建一个博客

Blog blog = new Blog();
blog.Apply(engine);

此代码应用为博客配方配置的管道。在 Recipe 基类(每个食谱都继承自它)中有一个 Apply 方法,它看起来像这样(我省略了这个答案的实际代码,以便更短和更易读)

IEnumerable<Pipeline> pipelines = // here pipelines are gathered
foreach (Pipeline pipeline in pipelines)
{
engine.Pipelines.Add(pipeline);
}

因此,如果您不想使用任何预定义的配方,您可以直接将所需的管道添加到引擎中。应用管道后,我们终于可以生成一些东西

engine.Execute();

关于c# - 使用 Wyam 从应用程序代码生成站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48825392/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com