我已经有一个项目,其中包含各种文件夹中的 .haml 和 .scss 文件。
我在这里按照本指南http://winstonyw.com/2013/02/24/jekyll_haml_sass_and_github_pages/创建_plugins/haml.rb
和_plugins/sass.rb
我将所有 .scss 文件移到./assets/css/
文件夹中
为了确保,我还创建了layouts
文件夹并将所有 .haml 文件放在那里。
我跑了jekyll serve --watch
,这些 .haml / .scss 文件没有在 _sites 中转换为 .html 或 .css 文件。我也无法通过浏览器访问它们。
我在这里尝试了这个文件并没有帮助https://gist.github.com/radamant/481456#file-haml_converter-rb
那么我做错了什么以及如何实时观看所有 .haml / .scss 文件?
我来自middlemanapp
世界,所以jekyll
对我来说是新的。
更新 1:
我的高层次目标是:
使用 Jekyll 通过 Sass 和 Haml 进行前端开发
它必须监视文件的变化
它必须转换 .sass / 。scss 文件和 Haml 到 .css 和 .html 观看。这意味着我可以去
http://localhost:4000/index.html
当事实上我有 index.haml 作为 Haml我的项目不遵循 Jekyll 文档中所说的目录结构(带有 layouts 文件夹和其他文件夹)。这必须能够检测到其他文件夹中的 .sass 和 .haml 文件(我可以指定这个)
我不想修改标头中的任何 .sass 或 .scss 文件来让 Jekyll 检测到它。因为我已经有很多(来自 Bootstrap)
更新 2:
这是我的新_config.yml
source: .
destination: ./_site
plugins: ./_plugins
layouts: .
基本上我想将所有.haml
文件放在主文件夹中,而不是layouts
. 在_plugins
我有_plugins/haml.rb
,_plugins/sass.rb
如上所述。尽管如此,当我在主文件夹中创建一个示例时它仍然不起作用index1.haml
,它没有得到转换--watch
更新 3:
这是我的目录结构:
/www
/_plugins
haml.rb
sass.rb
/_layouts
index1.haml
_config.yml
index1.haml
在haml.rb
:
module Jekyll
require 'haml'
class HamlConverter < Converter
safe true
priority :low
def matches(ext)
ext =~ /haml/i
end
def output_ext(ext)
".html"
end
def convert(content)
engine = Haml::Engine.new(content)
engine.render
rescue StandardError => e
puts "!!! HAML Error: " + e.message
end
end
end
在index1.haml
(两个文件具有相同的内容):
!!!
%html
%head
%meta{charset: "utf-8"}/
%meta{content: "initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width", name: "viewport"}/
%title
%body
Test Test
在_config.yaml
---
source: .
destination: ./_site
plugins: ./_plugins
layouts: ./_layouts
---
这对我仍然不起作用。没有生成 .html 文件。
更新$:
将此添加到.haml
文件中:
---
title: Index
---
但是,我可以修改.haml
文件,但我尽量避免使用.sass
/.scss
文件。我有很多来自 Bootstrap 和其他工作的东西。有什么解决方法吗?