Hakyll 网站的根源是什么?

2024-01-07

我看到创建函数需要一个标识符列表。

ghci    λ> :t create
create :: [Identifier] -> Rules () -> Rules ()

我应该使用什么标识符列表来匹配网站的根目录?例如,我只想制作一个出现在“www.example.com”上的单个 html 页面,而不需要“/posts”或“/archives”或任何其他域部分。

我尝试过一些:

create "/" $ do
    route   idRoute
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/default.html" defaultContext
        >>= relativizeUrls

and

create "/*" $ do
    route   idRoute
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/default.html" defaultContext
        >>= relativizeUrls

and

create "." $ do
    route   idRoute
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/default.html" defaultContext
        >>= relativizeUrls

and

create "./" $ do
    route   idRoute
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/default.html" defaultContext
        >>= relativizeUrls

and

create "/." $ do
    route   idRoute
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/default.html" defaultContext
        >>= relativizeUrls

and

create "" $ do
    route   idRoute
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/default.html" defaultContext
        >>= relativizeUrls

and

create Nothing $ do
    route   idRoute
    compile $ pandocCompiler
        >>= loadAndApplyTemplate "templates/default.html" defaultContext
        >>= relativizeUrls

我收到如下错误:

site.hs:24:12: error:
    • Couldn't match type ‘Identifier’ with ‘Char’
        arising from the literal ‘""’
    • In the first argument of ‘create’, namely ‘""’
      In the expression: create ""
      In a stmt of a 'do' block:
        create ""
        $ do { route idRoute;
               compile
               $ pandocCompiler
                 >>= loadAndApplyTemplate "templates/default.html" defaultContext
                 >>= relativizeUrls }
Failed, modules loaded: none.
Loaded GHCi configuration from /tmp/ghci29841/ghci-script

我不能说:i Identifier or 阅读文档 https://jaspervdj.be/hakyll/reference/Hakyll-Core-Identifier.html#t:Identifier or 阅读源代码 https://github.com/jaspervdj/hakyll/blob/67ecff7ad383640bc73d64edc2506c7cc648a134/lib/Hakyll/Core/Identifier.hs让我更清楚这一点:

ghci    λ> :i Identifier
data Identifier
  = Hakyll.Core.Identifier.Identifier {identifierVersion :: Maybe
                                                              String,
                                       Hakyll.Core.Identifier.identifierPath :: String}
    -- Defined in ‘Hakyll.Core.Identifier’
instance Eq Identifier -- Defined in ‘Hakyll.Core.Identifier’
instance Ord Identifier -- Defined in ‘Hakyll.Core.Identifier’
instance Show Identifier -- Defined in ‘Hakyll.Core.Identifier’

我应该使用什么魔法来创建将出现“/”的 html,以及我应该如何更好地研究它以使其不那么神秘?


The create函数需要一个列表Identifiers。对于单个元素的情况,只需用括号将其括起来([]). And Identifier是的成员IsString类所以假设你已经启用-XOverloadedStrings您可以仅使用常规的带引号的字符串文字来构建一个("index.html").

因此,要创建一个在根目录下提供服务的文件,您可以编写:

create ["index.html"] $ do
route   idRoute
compile $ pandocCompiler
    >>= loadAndApplyTemplate "templates/default.html" defaultContext
    >>= relativizeUrls

当请求的路径没有明确的文件名时提醒(例如http://www.example.com/) 文件的内容index.html返回(除非服务器以其他方式配置,但这是标准。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hakyll 网站的根源是什么? 的相关文章

随机推荐

  • 将字符串转换为日期 - 罗马月

    我有以下字符串 05 X 02 我怎样才能将其转换为日期 我不想将其转换为字符串 05 10 02 然后再转换为日期 是否可以 感谢帮助 到目前为止我正在尝试使用 DateTimeFormatter formatter DateTimeFo
  • 离线工作的 HTML 表单

    我需要能够离线运行 HTML 表单 我的意思是它们必须在没有直接连接到网络服务器的情况下工作 在我 5 年前编写的一个应用程序中 我通过实现自定义协议处理程序来实现这一点 当用户发起表单提交时 生成的 HTTP 请求会在本地记录 稍后 当与
  • 当 id 和父级 id 位于同一个表中时,我可以选择父级的完整层次结构吗?

    我有一个表 其中有一列 Id 和 ParentId ParentId 包含表中另一行的 Id 如果 ParentId 为 null 则它是层次结构的顶部 我有一行的 ID 我想选择层次结构中该行上方的所有行 我可以在一次选择中完成此操作吗
  • 如何使用 Eclipse 删除未使用的导入而不重新组织它?

    组织进口
  • 为什么类型推断在这里不起作用?

    这个问题出现在我正在编写的模块中 但我做了一个表现出相同行为的最小案例 class Minimal T x T def doSomething x object Sugar type S T def doSomething T def ap
  • 如何获取最后一个月的数据? date +%Y%m -d '1 个月前' 在 3 月 30 日不起作用

    我写了一个脚本来删除旧文件 部分脚本如下 lastmonth date Y m d 1 month ago inputdir0 var this directory lastmonth if date d gt 9 then rm Rf i
  • ListView滚动时非常慢(使用ViewHolder/回收)

    我又回来尝试一些 Android 开发了 我有一部 旧 HTC Hero 手机 所以我启动了它 做了一些更新 现在可以使用 Eclipse 和其余部分再次运行 我的设备上运行的是 Android 2 1 我制作了一个非常简单的测试应用程序
  • 如何在 Doctrine 中仅匹配最后更新的记录?

    我正在使用 Symfony2 和 Doctrine 开发一个应用程序 并且有一个名为status我存储位置和日期簿的位置 例如 ID Book Date Location 1 Book 1 2011 08 29 Home 2 Book 1
  • Inno Setup - 如何创建自定义表单以允许我找到要解压缩的文件?

    我正在尝试使用此代码创建一个自定义表单 该表单允许我找到要解压缩的文件 var TNewDiskForm TSetupForm DiskBitmapImage TBitmapImage SelectDiskLabel PathLabel T
  • 带有选项和可访问方法的 jQuery 插件模板?

    我想构建一个具有可访问方法和选项的插件 这是一个复杂的插件 我需要可以在插件外部访问这些方法 因为如果有人向 DOM 添加某些内容 则需要更新它 因此我们不需要再次运行完整的插件 我过去见过有这样做的插件 但我找不到它们 所以我无法查看它们
  • 如何获取自定义网格子项点击事件?

    我正在挣扎自定义网格视图 不完全是自定义网格视图 但它是子视图的点击事件 主要两个查询 first 问题是 如果我在网格中添加简单的图像视图和文本视图 然后单击其工作的任何项目并显示该项目的位置 但是当我在网格中添加两个按钮替换文本视图时
  • 使用 CSS 强制 高度

    我需要控制表格行的高度 我已经尝试设置单元格的高度 但我遇到了砖墙 See demo http jsfiddle net EUFxM 4 tr fixedRow tr fixedRow td fixedCell height 50px ov
  • 使用多个线程处理单个连接

    我有 3 个异步服务器和客户端 它们像一条链一样相互连接 一个请求会经过 3 个系统 例如 gt System 1 gt System 2 gt System 3 gt 和回应 gt System 3 gt System 2 gt Syst
  • 在flutter中如何清除栏中的通知?

    我正在学习 Google 云消息传递和火力基地消息传递 https pub dev packages firebase messaging工作正常 但是当用户不单击通知来打开应用程序 而是通过手动打开应用程序并将其带到前台直接进入应用程序时
  • R中的分组计算[重复]

    这个问题在这里已经有答案了 我在 R 中对数据框进行了分组和总结 现在我有一个如下表 Group Value Count A 1 4 A 2 2 A 10 4 B 3 2 B 4 4 B 2 3 C 5 3 C 2 6 我有兴趣找出每组中值
  • Powershell 选择 HTML 文本

    我有以下 powershell 脚本来打开多台计算机上的多个 HTML 文件以提取许可信息 寻找一些帮助提取内部文本元素 td where id 2 寻找提取 产品 序列号 产品密钥 请求代码 ForEach system in Get C
  • 创建一个事件接收器来记录列表中用户所做的更改

    我正在开发一个 SharePoint 发布网站 我想在 SharePoint 列表中 记录 用户所做的所有更改 网上的一些搜索引导我找到了 EventReceiver 但我的 EventReceiver 必须是通用的并附加到网站集中的所有列
  • 模块构建失败:错误:TypeScript 编译中缺少 index.ts

    项目描述 我的项目是通过package json下载到node module 包 json dependencies myllc application core git ssh email protected cdn cgi l emai
  • 通过文本别名引用 Javascript 变量

    是否可以通过文本别名引用 JavaScript 变量 例如 var x 2 var y convertToVariableRef x 调用上述函数后 y将是相同的参考x而不仅仅是简单地复制值x into y 如果你声明一个没有任何函数作用域
  • Hakyll 网站的根源是什么?

    我看到创建函数需要一个标识符列表 ghci gt t create create Identifier gt Rules gt Rules 我应该使用什么标识符列表来匹配网站的根目录 例如 我只想制作一个出现在 www example co