mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Parse generic attributes; add an image test case
This commit is contained in:
parent
47f618bac2
commit
8e60fb4dee
4 changed files with 26 additions and 2 deletions
|
@ -2,6 +2,7 @@ import dom::rcu::{writer_methods};
|
|||
import gfx::geom::{au, size};
|
||||
import layout::base::layout_data;
|
||||
import util::tree;
|
||||
import dvec::dvec;
|
||||
|
||||
enum node_data = {
|
||||
tree: tree::fields<node>,
|
||||
|
@ -16,10 +17,22 @@ enum node_kind {
|
|||
class element {
|
||||
let tag_name: str;
|
||||
let subclass: ~element_subclass;
|
||||
let attrs: dvec<~attr>;
|
||||
|
||||
new(tag_name: str, -subclass: ~element_subclass) {
|
||||
self.tag_name = tag_name;
|
||||
self.subclass = subclass;
|
||||
self.attrs = dvec();
|
||||
}
|
||||
}
|
||||
|
||||
class attr {
|
||||
let name: str;
|
||||
let value: str;
|
||||
|
||||
new(name: str, value: str) {
|
||||
self.name = name;
|
||||
self.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
#[doc="Constructs a DOM tree from an incoming token stream."]
|
||||
|
||||
import dom::rcu::writer_methods;
|
||||
import dom::base::{element, element_subclass, es_div, es_head, es_img};
|
||||
import dom::base::{attr, element, element_subclass, es_div, es_head, es_img};
|
||||
import dom::base::{es_unknown, methods, nk_element, nk_text, rd_tree_ops};
|
||||
import dom::base::{wr_tree_ops};
|
||||
import dom = dom::base;
|
||||
import parser = parser::html;
|
||||
import html::token;
|
||||
import gfx::geom;
|
||||
import dvec::extensions;
|
||||
|
||||
fn link_up_attribute(scope: dom::node_scope, node: dom::node, key: str,
|
||||
value: str) {
|
||||
|
@ -17,6 +18,7 @@ fn link_up_attribute(scope: dom::node_scope, node: dom::node, key: str,
|
|||
|node_contents|
|
||||
alt *node_contents.kind {
|
||||
dom::nk_element(element) {
|
||||
element.attrs.push(~attr(key, value));
|
||||
alt *element.subclass {
|
||||
es_img(dimensions) if key == "width" {
|
||||
alt int::from_str(value) {
|
||||
|
@ -32,7 +34,6 @@ fn link_up_attribute(scope: dom::node_scope, node: dom::node, key: str,
|
|||
}
|
||||
es_div | es_img(*) | es_head | es_unknown {
|
||||
// Drop on the floor.
|
||||
// FIXME: Implement attributes in a generic way.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
10
src/test/test-image.html
Normal file
10
src/test/test-image.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>test</title>
|
||||
</head>
|
||||
<body>
|
||||
<img src="test.jpeg" width="500" height="378"/>
|
||||
</body>
|
||||
</html>
|
||||
|
BIN
src/test/test.jpeg
Normal file
BIN
src/test/test.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
Loading…
Add table
Add a link
Reference in a new issue