Class: SilkLayout::Layout::Engine

Inherits:
Object
  • Object
show all
Defined in:
lib/silk_layout/layout/engine.rb

Constant Summary collapse

DEFAULT_VIEWPORT_WIDTH =
800

Class Method Summary collapse

Class Method Details

.layout(dom, css_rules, viewport_width: nil, page_size: nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/silk_layout/layout/engine.rb', line 8

def self.layout(dom, css_rules, viewport_width: nil, page_size: nil)
  CSS::Cascade.apply(dom, css_rules)

  box_tree = FormattingBuilder.build(dom)

  root = Root.find(box_tree)

  context = Context.new(width: viewport_width || page_width(page_size) || DEFAULT_VIEWPORT_WIDTH, page_size: page_size)
  BlockLayout.layout(root, context)

  root
end