Tag: haml

输出haml内容:ruby filter

当我使用:rubyfilter在haml中做一些简单的东西,例如… :ruby to = comments > max_comments ? max_comments : comments (0…to).each do |i| comment = data[i] puts li_comment comment[0], comment[1], comment[2] end puts语句将输出写入控制台。 文档:ruby表明它 创建一个名为haml_io的IO对象,写入它的任何内容都输出到Haml文档中。 究竟是如何使用 haml_io对象写入haml文档,而不是写入控制台(想想我需要除了puts之外的东西)?

Middleman:引用存储在markdown的数据文件中的URL

对于我的Middleman构建的网站,我存储了有关数据文件中所有页面的链接和其他信息 。 data/pages.yaml : pageA: link: /some-long-url-subject-to-change.html name: PageA name info: Some other related info 然后,在我的HAML模板( source/test.haml )中,我可以使用= data.pages.pageA.link打印pageA的相对路径。 现在,我想使用markdown语法按名称(pageA)引用该页面。 示例( source/test.html.haml ): .info :markdown This is some text with a [manual link](https://google.com) to somewhere. This is another text with a [data-referenced link](pageA) to that page. 与第一个链接到Google的“手动链接”相同,我希望第二个链接使用存储在数据文件中的相对路径来创建链接。 我看到解决这个问题的一个解决方案是在用markdown渲染之前用= data.pages.pageA.link评估替换(pageA)文本。 我认为这可以通过创建自定义助手来实现,但我无法确定它。 我试图解决 我尝试编写一个自定义帮助程序来替换(pageA)文本,并在由markdown呈现之前评估= data.pages.pageA.link 。 我能够用来自数据的信息替换特定文本( […]

结束haml评论

我是haml的新手,这让我很难过。 我不想删除代码,我可以将其注释掉,但我不知道如何正确结束haml中的注释。 这是一个代码snippit: .field = f.label :member_id %br/ = f.text_field :member_id .field = f.label :instrument_type %br/ 我试图评论第一个字段,所以我使用: / .field = f.label :member_id %br/ = f.text_field :member_id .field = f.label :instrument_type %br/ 但是在第一个字段之后注释掉了所有内容。 然后我尝试了: / .field = f.label :member_id %br/ = f.text_field :member_id .field = f.label :instrument_type %br/ 但它也不喜欢这样,或者: -#.field -# = f.label :member_id -# %br/ […]

HAML – 一个非常奇怪的缩进差异 – 错误?

这个HAML %script{:type => “text/javascript”} :plain $(document).ready(function() { bar(); var foo = foo_func(“#{}”); }); 正如预期的那样: $(document).ready(function() { bar(); var foo = foo_func(“”); }); 但这个ALMOST IDENTICAL HAML(仅更改bar()到prep() ): %script{:type => “text/javascript”} :plain $(document).ready(function() { prep(); var foo = foo_func(“#{}”); }); 给出这个: $(document).ready(function() { prep(); var foo = foo_func(“”); }); 注意第二种情况下的沮丧压痕 。 为什么将bar()更改为prep()会导致这种奇怪的差异?

如何获取haml中的一系列复选框?

我在作为Sinatra服务器的一部分实现的例程中有一个名为@theModels的字符串数组。 这些模型是供用户选择的选项,由后端获取(想法是,随着新模型的添加,前端代码不应更改)。 我正在使用haml来渲染html。 如何枚举@theModels列表中的每个元素,使每个元素都是一个复选框? 如何获取用户选择的复选框? 我看到只是放 = @theModels 将给我@theModels中包含的字符串列表,但没有间距等,当然也不在复选框中。 我发现这个问题似乎很相似,但我的haml-fu还不够好,无法将其转化为我需要的东西。 更新: 这些是与文件上传相关的选项,现在代码如下所示: %form{:action=>”/Upload”,:method=>”post”,:enctype=>”multipart/form-data”} – @theModelHash.each do |key,value| %br %input{:type=>”checkbox”, :name=>”#{key}”, :value=>1, :checked=>value} =key %input{:type=>”file”,:name=>”file”} %input{:type=>”submit”,:value=>”Upload”} 问题是,在每个选项上放置文件上传按钮,而不是在最后。 我最后只想要一个提交按钮; 我应该有两个表单,当按下“上传”按钮时,它们都会报告结果吗? UPDATE2: 经过一段时间的思考,上面的内容可以修改为: 谢谢! %form{:action=>”/Upload”,:method=>”post”,:enctype=>”multipart/form-data”} – @theModelHash.each do |key,value| %br %input{:type=>”checkbox”, :name=>”#{key}”, :value=>1, :checked=>value} =key %form{:action=>”/Upload”,:method=>”post”,:enctype=>”multipart/form-data”} %input{:type=>”file”,:name=>”file”} %input{:type=>”submit”,:value=>”Upload”} 这似乎做我想要的。

在ruby HAML中指定filter的选项

有没有办法向HAMLfilter添加选项(HTML属性)? 我想做这样的事情: :javascript{:’data-turbolinks-eval’ => ‘false’, :foo => ‘bar’} if(someCondition){ doSomething(); } 结果将是: if(someCondition){ doSomething(); } 我能得到的最接近的是: %script{:’data-turbolinks-eval’ => ‘false’, :foo => ‘bar’} if(someCondition){ doSomething(); } 缺点是你不能在HAML中缩进你的JS,除非你使用:javascriptfilter。 它可以用几行,但它很快就会变得混乱。 我很清楚,在大多数情况下,如果你最终在HAML模板中使用了一个复杂的脚本,这意味着你做错了什么,而这不是我正在寻找的答案。

错误’不兼容的字符编码:ASCII-8BIT和UTF-8’由于8位编码的cookie(Rails 3和Ruby 1.9)

我移动了一个使用1.8.7到1.9.2的网络应用程序,现在我不断获取 incompatible character encodings: ASCII-8BIT and UTF-8 我的数据库编码为UTF-8,我也有’config.encoding =“utf-8”’。 我看到了一些想法可能的解决方法,我补充说 Encoding.default_external = Encoding::UTF_8 Encoding.default_internal = Encoding::UTF_8 但它也没有用。 我收到此错误的一个特定代码块是 %ul.address – @user.address.split(‘,’).each do |line| %li= line.titleize 我正在使用HAML,我检查了line.titleize,编码是UTF-8。 似乎模板是用ASCII-8BIT渲染的,每当我尝试渲染像’ñ’这样的字符时它就会被搞砸 我正在使用Rails 3.0.5。 我读过詹姆斯爱德华格雷的post,但我仍然可以弄明白发生了什么;(。 我真的很感激任何帮助:D。 我也尝试过: “string”.force_encoding(“UTF-8”) 和 # encoding: utf-8 没有运气。 固定 看评论。

代码块中的Markdown换行符

使用Redcarpet,当我在我的降价中包含以下内容时,它不会考虑任何换行符或缩进。 我在线的末尾尝试了两个空格。 代码之间的额外行。 似乎没什么用。 “`xml 3 “` 我知道了: 3 以下是Redcarpet设置: Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true, :fenced_code_blocks => true, :no_intra_emphasis => true, :lax_html_blocks => true) 我需要做些什么来使线条正确断开并保留缩进,就像这里或GitHub一样? 更新 – 源代码如下: <?xml version="1.0" encoding="UTF-8"?> <hash> <money>3</money> </hash>

你能在HAML css中插入ruby变量吗?

我需要一系列类,.module1,.module2,… module(n)。 我还想使用css,ruby和HAML定义这些类: :css .mod1 { background-image: url(“#{extra.image}”); } 是否可以插入ruby变量以节省工作量? .module.mod”#{extra.id}” %h3 #{extra.title} %p #{extra.description} %a.btn-default{:href => “#”, :target => “_top”} enter now :css .mod#{extra.id} { background-image: url(“#{extra.image}”); }

在SASS中访问Ruby变量(来自模型或控制器)

有没有办法在SASS中访问Ruby变量,还是我必须为它创建一个自定义函数? 我想要做的是为每个用户生成一个样式表,所以在控制器中,我做了类似的事情: def show respond_to do |format| format.css{render :partial => “styles”} end end 然后在视图名称_styles.haml我这样做: :sass #header :background url(user.banner.url) 这有可能吗? *显然不是: http : //sass-lang.com/docs/yardoc/file.FAQ.html#q-ruby-code 除了我们做的’脏’代码修复之外还有其他方法(我们将_styles部分转换为rhtml然后) #header { background: #efefef url(); } haml有这种方法吗?