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 +, -

你可能感兴趣的:(Ulysses 样式语法基础)