是否可以为特定(或所有)项目使用多个布局?例如,我有几个项目,我想对其应用两种不同的布局。一个是绿色的,一个是蓝色的(但是)。我想将它们编译到我的输出目录中的两个不同文件夹中(例如v1和v2)。我一直在玩弄规则和编译block,但我不知道这是怎么回事。因为,每个项目在编译过程中只编译一次,我不能告诉nanoc第一次用layout1编译,第二次用layout2编译。我试过这样的东西,但它导致输出文件损坏。compile'*'doifitem.binary?#don’tfilterbinaryitemselsefilter:erblayout'layout1'layout'layout2'
我一直在尝试使用nanoc用于生成静态网站。我需要组织一个复杂的排列页面,我想让我的内容保持干燥。包含或合并的概念在nanoc系统中如何运作?我已阅读文档,但似乎找不到我想要的内容。例如:我如何获取两个部分内容项并将它们合并到一个新的内容项中。在staticmatic您可以在您的页面中执行以下操作。=partial('partials/shared/navigation')类似的约定在nanoc中如何运作? 最佳答案 这里是nanoc的作者。在nanoc中,部分是布局。因此,您可以拥有layouts/partials/shared/
我是nanoc的新手,但我仍在探索它。我能够准备好我的网站,它看起来不错,功能也很好。但我需要有一个标签区域。我能够通过实现这一目标"http://example.com/tag/"})%>但是如何为标签生成页面呢?因此,例如有一个名为“NFL”的标签,因此每次用户点击它时,他/她都应该被引导到http://example.com/tag/nfl列表与NFL对应的文章。我可以设置一个布局来做到这一点。但是我应该使用什么样的逻辑呢?我还需要helper吗? 最佳答案 您可以在Rules文件中使用预处理block来动态生成新项目。这是添
在我的nanoc站点中,我想使用SCSS指定我的样式:p{em{color:red;}}...不是SASS:pemcolor:red但是如果我尝试使用SCSS,我会从SASS过滤器中得到一个编译错误。如何让它使用SCSS? 最佳答案 事实证明这很简单:filter:sass,syntax::scssnanoc中的过滤器似乎遵循这样一种模式,即采用给定的任何选项并将它们传递给实际执行工作的任何对象。例如,Nanoc::Filters::Sass在其run方法中执行此操作:defrun(content,params={})options
我再次遇到nanoc中文件的问题。这次我想将自定义文件slide.js附加到我的博客,但我不能(不知道为什么-可能是我的路由有问题)。这是我的路线:compile'/js/*/'do#don’tfilterorlayoutend...route'/js/*/'do/'js'/+item.identifier.chop+'.js'end在我的布局的head部分我放了:%script{:type=>"text/javascript",:src=>"/js/slide.js"}/(是的,它是一个HAML)。谁能帮我解决这个问题?将不胜感激。 最佳答案
我想在我的nanoc网站上制作一个联系表格,我需要在我的.haml文件中放入一些php代码-有什么方法(也许是过滤器?)可以轻松实现它,或者我必须将整个页面保存为.php(并使用标准的html语法而不是haml语法?)。或者有纯Ruby解决方案(托管在github上可以实现?)请帮忙! 最佳答案 Haml3.2即将发布(rc3刚刚是released),应该会有一个新的haml-contribgem与它一起发布。haml-contrib有一个PHPfilter这可能就是您正在寻找的。php过滤器的文档注释说:#APHPFilterfo
当我尝试在Ruby中循环遍历sorted_articles()时,嵌入的代码保持不变,并且在我运行nanoccompile时不会在输出中编译.为什么是这样?我嵌入错了吗?我已经尝试了以下所有变体:item[:title]end%>还有item[:title]和item[:title]最后item[:title]end%>我还学习了教程here和我发现的差不多,但还是不走运!路由在起作用,规则和其他一切也在起作用。就是这个该死的循环!谢谢。来源可以在gitlab上找到可以找到实时站点here 最佳答案 所有.html文件的编译规则都没
(ruby菜鸟)我正在使用nanoc生成站点。这是我的带有元数据的示例页面:---title:abcparameters:abc:defghi:ijk---test我知道我可以在上一级设置参数,但我想在布局文件中访问它们:但是我得到了以下错误:undefinedmethod`[]'fornil:NilClass参数被传递给布局,因为当我这样做时:我能看到他们。作为一个Ruby新手,我认为我的问题有一个简单的解决方案。此外,如果您可以发布一个遍历:parametershash的片段,我将不胜感激。 最佳答案 您的站点上可能有多个页面。
我正在尝试将nanoc3.5.0与pandoc一起使用使用pandoc-ruby的过滤器.具体来说,我无法从我的Rules文件中传递多个选项,因此对PandocRuby.convert()的最终调用如下所示:PandocRuby.convert(content,{:from=>:markdown,:to=>:html},:no_wrap,:table_of_contents,:mathjax,:standalone,{"template"=>Dir.getwd+'/layouts/pandocTemplate.html'})当我将上述调用置于自定义过滤器中时,一切正常。但是,我想在Ru
我想根据元数据中的状态代码将帖子呈现到不同的文件夹。例如,如果我有一个status:draft属性,我希望将这些项目呈现到名为/draft/的文件夹中,而status:live将呈现到/blog/。然后我可以用密码保护draft文件夹,这样只有我才能查看它。如果根本没有状态,则默认为草稿。这可能吗? 最佳答案 在您的规则文件中,使用以下内容:route'*'doifitem.binary?item.identifier.chop+'.'+item[:extension]elsifitem[:status]'/'+item[:stat