slim(4621✨)
用于代码瘦身。
老鸟建议:不要混写js 和 html,如果避免不了,当前文件可以改为erb格式,混用slim和erb不是什么问题。
git: https://github.com/slim-template/slim
不同编译器有不同的高亮等工具,在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>
可以插入HTML代码到文本行,等同于
<p><small>fuck you!</small></p>
另外HTML tag可以直接在p内简写:
加上<strong>尖括号更容易分辨,不过由于加入了slim高亮插件, HTML代码以红色字体显示,所以无需加尖括号也容易分辨。
一个单独的 ' ,和pipe类似,不过文本最后会加一个空格,等同于
<p>This is a test</p>
Inline html <作用和 | 类似,可以直接写Html tags
这样Slim和Html可以混合用。
<span>hello
一定写上</span></div>
否则,后面的代码都会放入这个div中了。
Control code -, 代表了控制代码,如条件和循环
不能在最后添加 end . 块是通过缩进定义的。如果你需要多行,可以在每行后添加一个 \
。如果本行以逗号,结束则无需添加blackslash 。相当于<% ...%>
Output =
相当于<%= ... %>, 同样,主动换行使用 \ , 也同样,逗号, 相当于换行符。
= javascript_include_tag \
"jquery",
"application"
另外,=>, =< ,等同于=。 ⚠️注意 =>会在HTML的文本输出最后增加一个空格, =<会在HTML文本输出的前面加入一个空格。
' 类似于 |
不过会在一行text末尾加上一个空格。因此在新一行 ||
,相当于“|”字符串,而 '| , 相当于一个加y空格字符串"| "
Output without HTML escaping == ❌不明白
Code comment /
会生成注释,颜色变淡代表成功。快捷键不变command + /
HTML comment /!
同样,注释颜色会变淡。
会生成,产生一个HTML的注释,<!-- >
HTML tags
Closed tags (trailing /)
明确一个html tag的尾部,在尾部添加一个 反斜杠。通常是不必要的。
标签<a>的写法
可以直接写a href="#" Link1
如果写a>或者a<, 只的是添加空格在末尾和前头 , a<>代表前后都加空格
Inline tags a
Text content
写一行无需 | , 分2行则需要加上 |
Dynamic content
插入=或者==,就是插入ruby语法,在同一行,或者换下一行都可以拉。
==用在render和yield
Attributes
可以直接把属性写如tag中。必须加引号。
a href="http://slim-lang.com" title='Slim Homepage' Goto the Slim homepage
等同于
<a href="http://slim-lang.com" title="Slim Homepage">Goto the Slim homepage</a>
为了方便阅读,可以把Attributs, class, id 用括号wrap起来,(),{},[]都可以。
还可以把括号分行 :
h2 [id="tagline"
class="small tagline"] = page_tagline
插入Ruby代码,使用 = ,也可以使用#{}
得到的结果是一样的。
Boolean 属性, 直接使用true, falses, nil
属性中的类,的合并。有几种写法
第一种,混用:
a.menu class="highlight" href="#" Slim-lang.com
第二种,链式:
a.menu.highlight href="#" Slim-lang.com
⚠️加上id的写法, a#laber1.menu.highlight href="#" Slim-lang.com
第三种,传统写法:
a class="menu highlight" href="#" Slim-lang.com
第四种, 传统变形:
a class=:menu,:highlight
还有Splat attributes * 的写法,觉得不方便
就是把*{"xxx" => "ddd", ...}转化为正常的属性写法。 *后面可以添加实例变量,或者方法,只要它返回的是hash就行。
使用动态标签tags *, 不经常用到,忽略
, 主要是为了配合方法。
转化为HTML:
<a href="http://slim-lang.com/">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个官方插件提供更多的简写方式。(忽略)
slim(4621✨)的更多相关文章
- tf.contrib.slim.data数据加载(1) reader
reader: 适用于原始数据数据形式的Tensorflow Reader 在库中parallel_reader.py是与reader相关的,它使用多个reader并行处理来提高速度,但文件中定义的类 ...
- 第8章 用户模式下的线程同步(3)_Slim读写锁(SRWLock)
8.5 Slim读/写锁(SRWLock)——轻量级的读写锁 (1)SRWLock锁的目的 ①允许读者线程同一时刻访问共享资源(因为不存在破坏数据的风险) ②写者线程应独占资源的访问权,任何其他线程( ...
- 2015年11月25 Java基础系列(二)Thread Runnable线程初级讲解
序,线程是比进程小的进程,非常广泛的被使用. 一.继承Thread实现线程操作 1.注意setDaemon(boolean)方法,参数为true时为守护线程,参数为false时为用户线程. 守护线程的 ...
- Windows Internals学习笔记(五)Synchronization
参考资料: 1. <Windows Internals> 2. 自旋锁spinlock剖析与改进 3. Lock指令前缀 4. Lock指令前缀(二) 5. Kernel Dispatch ...
- 最小生成树练习2(Kruskal)
两个BUG鸣翠柳,一行代码上西天... hdu4786 Fibonacci Tree(生成树)问能否用白边和黑边构成一棵生成树,并且白边数量是斐波那契数. 题解:分别优先加入白边和黑边,求出生成树能包 ...
- Microsoft SQL2000 错误代码 (@@error)
Microsoft SQL 2000 错误代码(@@error) 0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒绝 ...
- 《Troubleshooting SQL Server》读书笔记-CPU使用率过高(下)
<Troubleshooting SQL Server>读书笔记-CPU使用率过高(下) 第三章 High CPU Utilization. CPU使用率过高的常见原因 查询优化器会尽量从 ...
- 从并发处理谈PHP进程间通信(二)System V IPC
.container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...
- 用C写一个web服务器(一) 基础功能
.container { margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px } .conta ...
随机推荐
- Spark2.0机器学习系列之4:Logistic回归及Binary分类(二分问题)结果评估
参数设置 α: 梯度上升算法迭代时候权重更新公式中包含 α : http://blog.csdn.net/lu597203933/article/details/38468303 为了更好理解 α和 ...
- jenkin构建项目执行脚本后,脚本中启动的进程也随之关闭的解决办法
问题描述: 之前用jenkins构建项目(maven项目)后都是通过ssh先将war文件推送到远程服务器,然后执行远程的脚本(更新项目,重启tomcat),一直没有出现问题,今天使用jenkins构建 ...
- PHP 基础篇 - PHP 的 BC MATH 系列数学函数
一.常见问题 用 PHP 做计算时经常会遇到精度带来的问题,下面来看两个常见的例子: 1. 运算比较 下面表达式输出的结果不是相等: <?php echo 2.01 - 0.01 == 2 ? ...
- 【android】使用RecyclerView和CardView,实现知乎日报精致布局
完整代码,请参考我的博客园客户端,git地址:http://git.oschina.net/yso/CNBlogs 在写博客园客户端的时候,突然想到,弄个知乎日报风格的简单清爽多好!不需要那么多繁杂的 ...
- 深入探讨JS中的数组排序函数sort()和reverse()
最近在研究Javascript发现了其中一些比较灵异的事情.有点让人感到无语比如: alert(typeof( NaN == NaN));//结果为假. alert(typeof( NaN != Na ...
- 【Python】错误、调试和测试
链接到错误处理 链接到调试 链接到单元测试 链接到文档测试 [错误处理] 小结:遇到错误怎么办? 1.不理它. 2.捕获它,再抛出. 3.捕获并处理错误. raise 不懂如何处理错误就直接抛出(ra ...
- CentOS修改时区、日期、时间
一.时区 显示时区 date --help 获取帮助 date -R date +%z 修改时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime ...
- 通过paramiko模块在远程主机上执行命令
安装paramiko模块 /usr/local/python36/bin/pip3 install paramiko 1.获取cpu使用率 #!/usr/bin/python #coding=utf8 ...
- 20145314郑凯杰 《Java程序设计》课程总结
20145314郑凯杰 <Java程序设计>课程总结 每周读书笔记链接汇总 ①寒假预习--"helloworld" ②第一周读书笔记 ③第二周读书笔记 ④第三周读书笔记 ...
- svn checkout 提示“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”解决方法
安装好之后再windows上checkout项目,一直出错:“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”:在尝试了很多次之后找到了最后的问题所在. 在网上找的方法试过了, ...