anjia / blog

博客,积累与沉淀
107 stars 4 forks source link

Servo 中的 Crates #10

Open anjia opened 6 years ago

anjia commented 6 years ago

style

模块 说明
animation CSS 的 transition 和 animation
applicable_declarations applicable(适用的)声明管理
attr 解析 DOM attributes 的表示
author_styles 一组作者样式表及其计算表示,例如用于 ShadowRoot 和 XBL 的
bezier 贝塞尔曲线
bloom 样式 bloom filter 是一项优化手段,用在深层后代选择器匹配时
__computed_values__ computed 值 的类型
context 计算样式的上下文
counter_style @counter-style 规则
custom_properties 支持层叠变量的自定义属性,CSS Custom Properties for Cascading Variables Module Level 1
data 样式计算中的每个节点的数据
dom 用于从样式计算中访问DOM的类型和特征
dom_apis 一些 DOM API 的通用实现,以便它们可以在 Servo 和 Gecko 间共享
driver 遍历 DOM 树。遍历以顺序模式开始,当它发现 work 的时候有选择的并行
element_state 声明元素可以在
encoding_support 从字节解析样式表(不是从字符串)
error_reporting 用于报告解析错误的类型
font_face @font-face 规则
font_metrics 从样式系统访问字体指标
hash 在 Gecko 模式下重新导出 hashglobe 类型,在 Servo 模式下重新导出 stdlib hashmap
invalidation 与无效样式相关的不同代码
logical_geometry 在 flow-relative 空间中的几何信息
macros 各种宏助手
matching CSS 选择器匹配的高级接口
media_queries 媒体查询
parallel 并行遍历 DOM 树的实现
parser 解析 CSS 代码的上下文
properties 样式系统支持的 CSS 属性。由 build.rs 从 properties.mako.rs 模板生成
rule_cache 从规则节点到 computed 值的缓存,以便缓存重置属性
_ruletree 规则树
scoped_tls Stack-scoped thread-local storage for rayon thread pools
selector_map 一种数据结构,可通过本地名称,ID和哈希有效地索引包含选择器的结构
_selectorparser 样式系统支持的伪类和伪元素
servo 样式系统的和 servo 相关的
shared_lock 受同一个锁保护的不同对象
sharing 与样式共享缓存相关的代码,这种优化允许类似节点共享样式而无需两次运行选择器匹配
str 字符串相关的方法,用于 attribute 等类似的东东
style_adjuster 一个结构,用于封装计算样式所需的所有样式修正和标记传播,以使其符合 CSS 规范
_styleresolver 给定元素或伪元素的样式解析
stylesheet_set 一组集中的文档样式表
stylesheets 样式表及其 CSS 规则
stylist 选择器匹配
thread_state 支持动态断言,关于什么类型的线程正在运行以及它处于什么状态
timer 定时器模块,用于定义由脚本控制的 Timer 类型
traversal 遍历 DOM 树;bloom 过滤器
traversal_flags 控制遍历过程的标志
values CSS 中用到的常用值-values

http://doc.servo.org/style/index.html

anjia commented 6 years ago

cssparser

cssparser 是 CSS Syntax Module Level 3 的 Rust 实现

一切都基于Parser对象,输入是&str。如果你有来自文件/网络/或其它地方的字节,并且想要支持 UTF-8 以外的字符编码,可参阅stylesheet_encoding函数,它可以与 rust-encoding 和 encoding-rs 一起使用。

解析函数的约定

因此,在调用另一个解析函数的时候:

模块 说明
Delimiter 定界符常量,分别是 ! , { ; 以及空字符 等5类
color
cow_rc_str
cssparser
from_bytes
macros
nth
parser
rules_and_declarations
serializer
tokenizer
unicode_range https://drafts.csswg.org/css-syntax/#urange
结构 说明
BasicParseError 基本的解析错误,可由内置解析触发
CowRcStr 共享(堆分配和引用计数)或 borrowed 字符串
CssStringWriter fmt::Write适配器,把文本转换为双引号的 CSS 字符串。引号不包括在内
DeclarationListParser 提供声明列表解析的迭代器
Delimiters 一个字符集,和Parser::parse_until*方法一起使用
ParseError 可扩展解析错误,客户端解析时可能会遇到
Parser 一个 CSS 解析器,输入是$str,产生Token,跟踪嵌套的 block 和函数
ParserInput 解析器的输入
ParserState Parser的内部状态(包括输入的位置),从Parser::position方法获得
RGBA
RuleListParser 给规则列表解析提供的迭代器
SourceLocation 行号和列号
SourcePosition 下表
TokenSerializationType 一类令牌,看needs_separator_when_before方法
UnicodeRange 代码点的连续的范围

http://doc.servo.org/cssparser/index.html