Ulysses 样式语法基础

声明: 本文编译自 Ulysses Style Sheets Reference , 本人文科生,计算机术语不懂,因为使用 Ulysses,所以编译出来自己参考、学习,勿喷。

什么是样式?

通过设定Ulysses的样式,可以自定义导出的文本的具体排版样式。
Ulysses的样式语法,由样式类别定义,每个样式类别包含两部分:样式选项,样式设置。(A style class consists of a style selector and some style settings .)如:

inline-strong {
font-family: "Cochin"
font-weight: bold
}

也可以写成:

inline-strong { font-family: "Cochin"; font-weight: bold; }

其中 inline-strong 是样式选项。

样式选项

样式选项又分两种,一种就是普通的关于某一选项,比如 inline-strongheading-1,还有一种是关于某类选项,比如 list-all ,它就包含了所有的 list 选项——有序列表和无序列表。又 heading-all ,就包含了所有的标题。都有哪些选项,具体参见:Ulysses Style Sheets Reference

选项之间的关联

选项之间可以有四种关联,如下:

关联 举例 说明
独立选项 strong 所有符合 strong 选项的内容
主项+辅项 heading1 + all-paragraphs 紧跟在主项 heading1 之后的辅项 all-paragraphs的内容
父项 子项 area-footnotes image 在父项 area-footnotes 嵌套范围之内,任何位置的子项 image 的内容
父项 > 子项 orderedList > unorderedList 在父项 orderedList 嵌套范围之内,紧跟其后的子项 unorderedList 的内容

运用这些关联,可以灵活地为特定位置的内容定义特殊样式。

伪类别

伪类同样可以实现特定位置内容的样式。

伪类名称 适用选项 说明
:first-page Headers, footers 文档第1页的天头或地脚两个位置
:left-page Headers, footers 文档左侧页面的天头或地脚
:right-page Headers , footers 文档右侧页面的天头或地脚
:anchor area-footnotes 脚注区域的脚标的样式,默认为上角标
:first Inline, Headers, footers, area-footnotes, Media, Footnotes, Paragraph, Divider, Block, List, List enumerator, Technical 父项的第1个子项
:last Inline, Headers, footers, area-footnotes, Media, Footnotes, Paragraph, Divider, Block, List, List enumerator, Technical 父项的最后1个子项
:anchor Footnotes 脚注的编码数字
:enumerator List 列表的编码数字或符号

顺序

有时候,同一项内容,有几个选项都定义了它的样式。如:

list-all {
margin-top: 5pt
margin-left: 10pt
}

list-ordered {
margin-left: 20pt
}

defaults {
font-size: 14pt
}

所以它的样式会按定义的顺序来实现。上例中,有序列表中的内容,会先实现 list-all ,然后是 list-ordered ,最后是 defaults

margin-top: 5pt // from list-all
margin-left: 20pt // from list-ordered
font-size: 14pt // from defaults

继承

一个样式嵌套在另一个样式当中的时候,内层的内容将继承外层的格式。比如,在块引用当中有一个一级标题,一级标题中又有行内强调:

block-quote {
font-family: "Cochin"
font-slant: italic
}

heading-1 {
font-family: "Futura"
font-size: 24pt
}

inline-strong {
font-weight: bold

}

在这种情况下,运用了行内强调的文字,其格式为:

font-family: "Futura" // heading-1 overwrites the font-family of block-quote
font-slant: italic // Inherited form block-quote
font-size: 24pt // Set by heading-1
font-weight: bold // Set by inline-strong

预设组件

有些样式会用到一些相同的设置,这时候,就可以把这些需要用到的相同的设置预设成一个组件,然后在用到这些设置的样式当中进行引用就可以了,比如:

@general-code-style {
font-family: "Courier"
font-size: 12pt
}

inline-code : @general-code-style {
color: #0000ff
}

block-code : @general-code-style {
color: #ffffff
background-color: #0000ff
}

而且一个样式还可以引用多个组件,语法如下:

some-style : @first-mixin, @second-mixin, @third-mixin {
}

怎样对样式进行设置?

样式设置,又包括两部分,设置样式的某类属性,以及将这一属性设定为某个值。如:

inline-strong {
font-weight: bold;
}

font-weight 就是字体的粗细属性,这里设定为粗体 bold

属性值

不同的属性,对应的属性值是不同的。类别如下:

值的类别 举例 说明
泊林值 YES,NO,true,false 二选一
数值 -3.141 就是普通的十进位数字,正负都可以
长度 5pt,10cm,30%,4em 长度可以用字体的点数pt,可以是常用的 mm,cm,in 之类,还有一些特别的,如 en,ex,% 等。em 是指字符数。
字符串 "Arial" 字体名称一类,或是自定义的文字,可以包含空格
符号 bold,italic 根据特定的样式设置而定
颜色值 #ff0000,rgb(255,0,0) RGB颜色值,可以有两种写法
数列 [5pt, 3pt, 2pt] 根据特定的样式设置而定

表达式

某些值是可以进行四则运算的,比如长度值:

$base-size = 12pt

heading-1 {
font-size: $base-size * 2
}

heading-2 {
font-size: $base-size * 0.5
}

变量

像上面讲的预设组件一样,可以预设一些变量,后面的设定就可以在变量基础上进行四则运算来实现设置,如:

$base-size = 12pt
$heading-size = $base-size * 2

运算

四则运算也是可以嵌套的,如:

$some-variable = 4 * (5 / (2 + 3))

当然,并不是所有的属性值都可以进行四则运算。具体见下表:

左侧值 右侧值 允许的运算
Number Number +, -, *, /
Length Number *, /
Number Length *
Color Number *, /
Number Color *
Length Length +, -
Color Color +, -
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容