用于代码瘦身。
老鸟建议:不要混写js 和 html,如果避免不了,当前文件可以改为erb格式,混用slim和erb不是什么问题。
git:
不同编译器有不同的高亮等工具,在git最底部。
atom: 直接从设置里面搜索language-slim选择下载最多的那个。然后自行设置。
可选:
Auto Ident自动缩进。
Scroll Past End 窗口下面增加一大段空白,可选。
Show indent Guide和Show Invisibles都选上,代码结构更清晰。
Preferred Line Length 设定每行字符数,超过了就换行必须和soft Wrap At。。。一起用。
Soft Wrap 根据编辑器的窗口宽度来自动换行。和Soft Wrap Hanging Indent一起用,下一行选择缩进的字符默认0,设置2最好,关键字不会断,会换行显示。。
text输出:| 和 '
p | This is a test等同于
<p>This is a test</p>
p | <h1>fuck you!</h1>
可以插入HTML代码到文本行,等同于
<p><small>fuck you!</small></p>
另外HTML tag可以直接在p内简写:
p strong Name: 可以产生 <p><strong>Name:</strong></p>加上<strong>尖括号更容易分辨,不过由于加入了slim高亮插件, HTML代码以红色字体显示,所以无需加尖括号也容易分辨。
p ' This is a test
一个单独的 ' ,和pipe类似,不过文本最后会加一个空格,等同于
<p>This is a test</p>
<
作用和 | 类似,可以直接写Html tags这样Slim和Html可以混合用。
<div><span>hello
一定写上</span></div>
否则,后面的代码都会放入这个div中了。
-
, 代表了控制代码,如条件和循环 不能在最后添加 end . 块是通过缩进定义的。如果你需要多行,可以在每行后添加一个
。如果本行以逗号,结束则无需添加blackslash 。相当于<% ...%>
- if 3 >4 | 耶耶耶 - else | NO
=
相当于<%= ... %>, 同样,主动换行使用 , 也同样,逗号, 相当于换行符。
= javascript_include_tag
"jquery",
"application"
另外,=>, =< ,等同于=。 ⚠️注意 =>会在HTML的文本输出最后增加一个空格, =<会在HTML文本输出的前面加入一个空格。
=> link_to 'Edit', edit_product_path(@product) '| =< link_to 'Back', products_path屏幕上显示:Edit | Back
' 类似于 |
不过会在一行text末尾加上一个空格。因此在新一行 ||
,相当于“|”字符串,而 '| , 相当于一个加y空格字符串"| "
==
❌不明白 /
会生成注释,颜色变淡代表成功。快捷键不变command + /
/!
同样,注释颜色会变淡。
P | his is a test /!ddd会生成,产生一个HTML的注释,<!-- >
<p>his is a test <!--ddd --></p>
/
)明确一个html tag的尾部,在尾部添加一个 反斜杠。通常是不必要的。
标签<a>的写法
可以直接写a href="#" Link1
如果写a>或者a<, 只的是添加空格在末尾和前头 , a<>代表前后都加空格
a> href='url1' Link1 || a< href='url2' Link2结果是:Link1 | Link2
Inline tags a
ul li.first: a href="/a" A link li: a [href="#"] B line 选择性加上[]方括号。
写一行无需 | , 分2行则需要加上 |
h1 id="headline" Listing products h2 id="headline2" | 标题2
Dynamic content
插入=或者==,就是插入ruby语法,在同一行,或者换下一行都可以拉。
==用在render和yield
Attributes
可以直接把属性写如tag中。必须加引号。
a href="" title='Slim Homepage' Goto the Slim homepage
等同于
<a href="" title="Slim Homepage">Goto the Slim homepage</a>
为了方便阅读,可以把Attributs, class, id 用括号wrap起来,(),{},[]都可以。
还可以把括号分行 :
h2 [id="tagline"class="small tagline"] = page_tagline
插入Ruby代码,使用 = ,也可以使用#{}
a> href="#" Link #{@product.name}|| a< href='url2' = "Link " + @product.name
得到的结果是一样的。
Boolean 属性, 直接使用true, falses, nil
input type="text" disabled=true
属性中的类,的合并。有几种写法
第一种,混用:
第二种,链式:
⚠️加上id的写法, u.highlight href="#" Slim-lang
第三种,传统写法:
bra class="menu highlight" href="#" Slim-lang
第四种, 传统变形:
a class=["menu","highlight"]a class=:menu,:highlight
还有Splat attributes * 的写法,觉得不方便
就是把*{"xxx" => "ddd", ...}转化为正常的属性写法。 *后面可以添加实例变量,或者方法,只要它返回的是hash就行。
使用动态标签tags *, 不经常用到,忽略
, 主要是为了配合方法。
定义了一个方法: def a_unless_current @page_current ? {tag: 'span'} : {tag: 'a', href: '/'} end - @page_current = true#把实例变量赋值为true *a_unless_current Link#使用*调用方法,因为方法返回的是hash,所以可以这么用。 - @page_current = false *a_unless_current Link转化为HTML:
<span>Link</span>
<a href="/">Link</a>
Helpers, capturing and includes (没看)
capture(*args) 把块转化为一个String object并返回。
defined?(::Rails),没有找到defined?方法的出处: 猜测某个对象是否在::Rails中定义了,返回它的类型。
main.defined?(::Rails) => "constant"
文本插入:
h1 Welcome #{@product.name} to the show.
如果使用反斜杠 , #{}, 则插入符失效。
h1 Welcome #{"dd"} to the show.
显示结果是 Welcome #{"dd"} to the show.
Embedded engines(ruby:, javascript:, css:, sass:, ...)
slim使用了Tilt gem,可以直接在view中插入其他的模版engines。
如:
javascript:
$("#my-click").click(function(){$("#foo").html('<h1>zoo</h1>');})
⚠️有些engines需要配置, 如插入Markdown,具体看git.
Slim有4个官方插件提供更多的简写方式。(忽略)
转载于:.html
本文发布于:2024-02-02 16:07:04,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170686122244913.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |