/* create style element using rules from dictionary */ private void CreateStyleElement(Lexer lexer, Node doc) { Node node, head, body; Style style; AttVal av; if (lexer.styles == null && NiceBody(lexer, doc)) { return; } node = lexer.NewNode(Node.StartTag, null, 0, 0, "style"); node.Isimplicit = true; /* insert type attribute */ av = new AttVal(null, null, '"', "type", "text/css"); av.Dict = AttributeTable.DefaultAttributeTable.FindAttribute(av); node.Attributes = av; body = doc.FindBody(lexer.Options.tt); lexer.txtstart = lexer.lexsize; if (body != null) { CleanBodyAttrs(lexer, body); } for (style = lexer.styles; style != null; style = style.Next) { lexer.AddCharToLexer(' '); lexer.AddStringLiteral(style.Tag); lexer.AddCharToLexer('.'); lexer.AddStringLiteral(style.TagClass); lexer.AddCharToLexer(' '); lexer.AddCharToLexer('{'); lexer.AddStringLiteral(style.Properties); lexer.AddCharToLexer('}'); lexer.AddCharToLexer('\n'); } lexer.txtend = lexer.lexsize; Node.InsertNodeAtEnd(node, lexer.NewNode(Node.TextNode, lexer.lexbuf, lexer.txtstart, lexer.txtend)); /* now insert style element into document head doc is root node. search its children for html node the head node should be first child of html node */ head = doc.FindHead(lexer.Options.tt); if (head != null) { Node.InsertNodeAtEnd(head, node); } }