- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我对中间人和 ruby 没有经验,但我一直在努力获得 Slate工作,因此它在构建期间生成侧边导航/标题列表,而不是使用 javascript 的客户端。我遇到的问题是让代码包含来自 partials 的 header 。
目录结构示例:
Source
+--config.rb
+--includes
+--file.md
+--otherfile.md
+--index.html
+--layouts
+--layout.erb
Config.rb 片段:
require 'nokogiri'
helpers do
def toc_data(page_content)
html_doc = Nokogiri::HTML::DocumentFragment.parse(page_content)
# get a flat list of headers
headers = []
html_doc.css('h1, h2, h3').each do |header|
headers.push({
id: header.attribute('id').to_s,
content: header.content,
level: header.name[1].to_i,
children: []
})
end
[3,2].each do |header_level|
header_to_nest = nil
headers = headers.reject do |header|
if header[:level] == header_level
header_to_nest[:children].push header if header_to_nest
true
else
header_to_nest = header if header[:level] == (header_level - 1)
false
end
end
end
headers
end
end
此布局片段:
<ul id="toc" class="toc">
<% toc_data(page_content).each do |h1| %>
<li>
<a href="#<%= h1[:id] %>" class="toc-h1"><%= h1[:content] %></a>
<ul class="toc-section">
<% h1[:children].each do |h2| %>
<li>
<a href="#<%= h2[:id] %>" class="toc-h2"><%= h2[:content] %></a>
<ul class="toc-submenu">
<% h2[:children].each do |h3| %>
<li>
<a href="#<%= h3[:id] %>" class="toc-h3"><%= h3[:content] %></a>
</li>
<% end %>
</ul>
</li>
<% end %>
</ul>
</li>
<% end %>
</ul>
...
<div class="page-wrapper">
<div class="content">
<%= page_content %>
<% current_page.data.includes && current_page.data.includes.each do |include| %>
<%= partial "includes/#{include}" %>
<% end %>
</div>
</div>
目前,只有 index.html 文件中的 header 被填充,包含的部分中没有任何内容。我相信我可能需要现有的帮助程序才能在构建后出现 similar to what is described in the Middleman docs for sitemaps使用 ready
助手。我相信我必须对配置代码进行另一次更改,以便它捕获 page_content
之外的其他内容,但由于不熟悉,我不确定那是什么。任何指针将不胜感激。
编辑:查看中间人基础文档后,我可以使用来自 Padrino 框架的两个助手:capture_html
和 concat_content
。我试图找到帮助程序 page_content
的定义位置,以便为我所做的特定更改获取额外的上下文。
最佳答案
不熟悉该框架,但看起来像 toc_data(page_content)
只查看主要内容,而不查看 current_page.data.includes
部分内容。
所以猜测您还需要将部分传递给您的 toc_data
函数。
也许这行得通?
<%
full_content = page_content
current_page.data.includes && current_page.data.includes.each do |include|
full_content += partial("includes/#{include}")
end
toc_data(full_content).each do |h1|
%>
...
<% end %>
希望对您有所帮助。
关于ruby - 在 Slate/Middleman 中使用 Nokogiri 生成静态头列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41250690/
尝试运行 Shopify 的 Slate,它安装了一个新主题,没有错误,但随后我们导航到该主题并尝试运行 slate start 或 slate zip,我收到此错误: .../node_module
Shopify 的 color swatches 教程Slate 尚不支持,并且代码库中引用的选择回调不再存在。是否可以修改本教程以使用 Slate 主题来创建单选按钮或样本,而不是在产品模板上选择变
我想制作一系列图,并将每个图保存到一个文件中。但我不知道如何消除以前的阴谋。也许我每次都需要创建一些新对象,但我不知道是哪个对象。这是我的代码,请注意评论。这是我的代码: import matplot
我有一个基于 Shopify Slate 构建的主题。我的所有产品都有各种尺寸和颜色可供选择。它们作为两个选择元素输出在页面上 - 一个用于尺寸,一个用于颜色。当我从这两个选项中选择选项并将产品添加到
我有一些需要从中提取信息的 pdf。我在centos 7 上使用python 和python 的lib slate。 一开始,slate 工作正常。但后来我必须更新几个模块和库。 slate 库不再起
相关代码块: { setValue(value); const { selection } = editor;
我想模仿 macOS 中的行尾快捷方式行为。我有这个: onKeyDown (event, change, next) { if (event.key === 'ArrowRight') {
我正在使用 slate admin 并显示一些图表并且效果很好,但我想更改这些图表的颜色(它们差别不大)。 这些颜色在哪里配置?是否可以通过 javascript 调用来实现? 谢谢! 最佳答案 终于
我正在寻找一种使用 C/C++ 以编程方式检测 Windows 8 Slate 设备的方法。我对“Slate”的定义是“配备触摸屏但没有专用物理键盘的可移植计算设备”(因此包括带有键盘底座的设备,但不
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
这个问题是关于让散列 URL(如 mydomain.com/somepage#SomeAnchor )从固定页面标题下滚动出来,当这些 URL 是跳转目标时。它是 this answered ques
这个问题在这里已经有了答案: How do I clear all variables in the middle of a Python script? (11 个答案) 关闭 6 年前。 这应该
我正在尝试模拟 onKeyDown Editor 上的事件来自 slate-core -- 相对于 slate-react -- 测试我正在开发的一些插件。但是,Editor未更新其Value任何。
我正在使用 C# 开发一个应用程序,意外地我开始收到此异常“Slate.exe 中发生了类型为‘System.StackOverflowException’的未处理异常”。 以下是我的代码的详细信息。
如何使用 Cypress 在 Slate 编辑器中插入文本?石板 onChange使用 cy.type() 键入时似乎没有调用处理程序或 cy.clear() . 最佳答案 Cypress 输入命令(
我发现自己处在一个相当脆弱的境地,我正在开发一个 Web 应用程序,其界面几乎完全使用 RaphaelJS 作为 SVG 的前端来表示,但无法访问目标系统(别误会我的意思开始)。目标系统是 Asus
我正在使用 slate.js 制作一个所见即所得的编辑器我正处于尝试找到第一个带有文本的节点的情况。 下图显示了我在说什么: Slate.js find first text pic 在我的图片中,我
我在 Slate 的 layout.scss liquid 文件中的 style/globals 中有以下语句。 {% if template == 'index' %} h1 { color:
我正在尝试覆盖我的 github.io 页面上的“forkme”横幅,以便更好地了解 Jekyll、HTML、CSS 和 GitHub 的工作原理。 为此,我创建了我的 ./assets/css/st
我对中间人和 ruby 没有经验,但我一直在努力获得 Slate工作,因此它在构建期间生成侧边导航/标题列表,而不是使用 javascript 的客户端。我遇到的问题是让代码包含来自 partials
我是一名优秀的程序员,十分优秀!