Jekyll 自动目录

2024-01-10

我已经建立了一个基于 Jekyll 代码的网站阿帕奇构建者 http://buildr.apache.org/。 Buildr 网站根据标题中的标题自动为每个页面生成一个目录。textile格式文件。

例如,您使用纺织品编写一个页面,标记出标题,如下所示。 。

h2(#why).  Why are we doing this?

BLah blah balh etc ..


h2(#something). Some other header

BLah blah balh etc ..

然后在默认的 HTML 中,您有一些代码将内容传输到名为toc然后你把内容放在后面。例如 ...

<div id='content'>
 <h1 id='{{ page.title | downcase | replace(' ', '_') }}'>{{ page.title }}</h1>
  {{ content | toc }}
  {{ content }}
</div>

在 Apache 站点上,他们得到了所需的结果(目录显示,后面跟着内容)。然而,在我的网站上,内容被渲染两次。不生成目录。

此外,如果我直接从 github 克隆 Apache Buildr 项目并运行jekyll --server in the doc该项目的文件夹,则也不会生成目录。

我缺少什么?


我向 Builder 开发人员邮件列表发送了电子邮件,有人告诉我看这里 https://github.com/apache/buildr/blob/trunk/rakelib/doc.rake寻求灵感。原来相关的代码片段是......

module TocFilter
  def toc(input)
    output = "<ol class=\"toc\">"
    input.scan(/<(h2)(?:>|\s+(.*?)>)([^<]*)<\/\1\s*>/mi).each do |entry|
      id = (entry[1][/^id=(['"])(.*)\1$/, 2] rescue nil)
      title = entry[2].gsub(/<(\w*).*?>(.*?)<\/\1\s*>/m, '\2').strip
      if id
        output << %{<li><a href="##{id}">#{title}</a></li>}
      else
        output << %{<li>#{title}</li>}
      end
    end
    output << '</ol>'
    output
  end
end
Liquid::Template.register_filter(TocFilter)

在站点的源文件夹中创建一个名为_plugins然后将此代码粘贴到名为的文件中TocFilter.rb在该文件夹中。

有用!!

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

Jekyll 自动目录 的相关文章

随机推荐

  • 尝试从元组中删除最后一个类型失败

    我正在尝试删除元组的最后一个元素 当我在元组中只有一个元素需要删除时 它会起作用 但当我有不止一个时 事情就会出错 我不明白为什么这不起作用 这些是我收到的错误 prog cpp 在函数 int main prog cpp 24 22 错误
  • 用于检测最小化窗口的钩子 C#

    大家好 在C 中如何检测用户单击了外部程序 例如记事本 的最小化按钮 谢谢 这应该有效 public class myClass DllImport user32 dll return MarshalAs UnmanagedType Boo
  • 将 Dropzone 与 Typescript 结合使用

    我有一个使用 dropzone 4 3 并用 Typescript 编写的应用程序 在将其转换为打字稿之前 我们必须在 Dropzone 上设置一个全局变量 一切都很顺利 Dropzone autoDiscover false 我已经拉入了
  • 如何告诉调试器忽略抛出异常时的中断?

    我有一个文本框 在其中使用第三方库验证输入 但是 当语法不正确时 该库会引发自定义异常 这并不是什么大问题 除非您正在调试 调试时 由于 TextBox 中的文本最初总是错误的 我仍在输入它 因此调试器将在每个字母之后停止 直到它正确为止
  • 像 CCSprite 对象一样移动 Box2d 实体

    在cocos2d中 您可以轻松使用CCSprites并以各种方式移动它们 最重要的是 他们可以缓入 缓出 对于大多数游戏来说 这对于平滑移动等是可取的 id action CCMoveTo actionWithDuration dur po
  • Android onCreateContextMenu 和 onContextItemSelected 中的 NULL menuInfo 仅在 onListItemClick 中手动调用 openContextMenu 时出现。长按有效

    我已经解析了这里的很多帖子 但没有发现任何像我的问题一样的东西 基本上我想打电话openContextMenu l in onListItemClick 这样做会创建一个没有内容的上下文菜单menuInfo 长按即可正常工作 执行长按后 我
  • Xdebug 无法连接远程服务器

    我希望使用不同计算机的团队能够在同一台计算机上调试 PHPremote服务器 但我很难让 Xdebug 在 NetBeans 7 0 1 中工作 我尝试了很多网上的建议 但没有效果 作为记录 我已经成功安装了 Xdebuglocally在运
  • 将 scipy 对象保存到文件

    我想保存对象interpolator产生自scipy interpolate InterpolatedUnivariateSpline到一个文件 以便随后加载并使用它 这是控制台上的结果 gt gt gt interpolator
  • 弹出到 expokit 时,Expo 卡在“配置同步”上

    当尝试从 expokit 中弹出项目时 它不会完成并卡在config syncing一个多小时 当我用 expo 创建一个新项目然后运行时也会发生这种情况expo run android 我解决了下面的步骤 删除文件以获得新的感觉 rm r
  • 字符串值中的 Coder 是什么?

    我正在读取 CSV 文件 方法是使用com opencsv CSVReader像下面这样 String headers csvReader readNext 标题的值如下屏幕截图所示 这里的编码器是什么 以黄色突出显示 为什么第一个索引的值
  • 在与 ActiveSync 同步的同时读取 PDA 目录的内容

    我有一个项目 需要复制 PDA 中找到的文件 就我而言 如果这有什么区别的话 它是 MC3000 我安装了 ActiveSync 它为我创建了同步文件夹 效果很好 但是 我希望不仅能够在其 MyDocument 文件夹中读取 PDA 的内容
  • 如何处理选项卡更改时的 CSS 动画

    我正在开发一个小轮盘游戏 例如 https csgofast com https csgofast com 我的问题是 当我在实际选项卡中时 与变换和过渡一起使用的轮盘动画效果很好 问题是 当我移动到另一个选项卡或最小化时 在轮盘赌开始之前
  • 在 Web Api 控制器中将 JSON 反序列化为字典

    我有这样的 JSON 字符串 1 1 3 5 2 2 5 6 3 5 6 8 我想将其发送到 Web Api 控制器而不使用 ajax 请求进行更改 ajax type POST url Api Serialize Dict data JS
  • 设置HBase、hadoop、hive通过hive访问Hbase的正确方法是什么?

    我在配置和安装 hbase hadoop hive 时遇到问题 到目前为止我在 ubuntu 14 04 3 LTS 的虚拟机上做了什么 像这样安装了jdk和版本jdk1 8 0 60 https askubuntu com questio
  • 根据 textContent 中的索引突出显示文本

    Bounty 正如 jsPerf 所展示的 测试时最新发布版本的 Firefox Chrome 和 Internet Explorer 中最快的解决方案将获得奖励or创建此类解决方案最有用的答案由我自行决定 哇哈哈 I ll be most
  • 卸载后执行命令

    我需要卸载才能运行命令after它删除了已安装的文件 UninstallRun 没有用 据我所知 它在文件被删除之前运行 我有点需要一个 卸载后 标志 关于我如何实现上述目标有什么建议吗 See 卸载事件函数 http www jrsoft
  • 包含过期项的哈希表

    我想实施一个HashTable 或者也许是一个HashSet or Dictionary 其中有独特的成员 一段时间后就会过期 例如 Items expire automatically after 10 seconds Expiratio
  • Celery:WorkerLostError:工作人员过早退出:信号 9 (SIGKILL)

    我在 Django 应用程序 在 Elastic Beanstalk 上 中使用 Celery 和 RabbitMQ 来管理后台任务 并使用 Supervisor 对其进行守护进程 现在的问题是 我定义的周期任务之一失败 在正常工作一周后
  • 7u45 webstart 中出现新的死锁错误?

    java 7u45 的乐趣仍在继续 这次是 webstart 内部陷入僵局 这种情况在启动大型应用程序 约 100 个 jar 时非常一致地 每次 发生 还有其他人遇到过这个问题或知道任何解决方法吗 除了恢复到 1 7 0 40 之外 Th
  • Jekyll 自动目录

    我已经建立了一个基于 Jekyll 代码的网站阿帕奇构建者 http buildr apache org Buildr 网站根据标题中的标题自动为每个页面生成一个目录 textile格式文件 例如 您使用纺织品编写一个页面 标记出标题 如下