1 """
2 HTML specialisation of ``builder.py`` by Fredrik Lundh
3
4 Usage::
5
6 >>> from lxml.html.builder import *
7 >>> html = HTML(
8 ... HEAD( TITLE("Hello World") ),
9 ... BODY( CLASS("main"),
10 ... H1("Hello World !")
11 ... )
12 ... )
13
14 >>> import lxml.etree
15 >>> print lxml.etree.tostring(html, pretty_print=True)
16 <html>
17 <head>
18 <title>Hello World</title>
19 </head>
20 <body class="main">
21 <h1>Hello World !</h1>
22 </body>
23 </html>
24
25 """
26
27 from lxml.builder import ElementMaker
28 from lxml.html import html_parser
29
30 E = ElementMaker(makeelement=html_parser.makeelement)
31
32
33 A = E.a
34 ABBR = E.abbr
35 ACRONYM = E.acronym
36 ADDRESS = E.address
37 APPLET = E.applet
38 AREA = E.area
39 B = E.b
40 BASE = E.base
41 BASEFONT = E.basefont
42 BDO = E.bdo
43 BIG = E.big
44 BLOCKQUOTE = E.blockquote
45 BODY = E.body
46 BR = E.br
47 BUTTON = E.button
48 CAPTION = E.caption
49 CENTER = E.center
50 CITE = E.cite
51 CODE = E.code
52 COL = E.col
53 COLGROUP = E.colgroup
54 DD = E.dd
55 DEL = getattr(E, 'del')
56 DFN = E.dfn
57 DIR = E.dir
58 DIV = E.div
59 DL = E.dl
60 DT = E.dt
61 EM = E.em
62 FIELDSET = E.fieldset
63 FONT = E.font
64 FORM = E.form
65 FRAME = E.frame
66 FRAMESET = E.frameset
67 H1 = E.h1
68 H2 = E.h2
69 H3 = E.h3
70 H4 = E.h4
71 H5 = E.h5
72 H6 = E.h6
73 HEAD = E.head
74 HR = E.hr
75 HTML = E.html
76 I = E.i
77 IFRAME = E.iframe
78 IMG = E.img
79 INPUT = E.input
80 INS = E.ins
81 ISINDEX = E.isindex
82 KBD = E.kbd
83 LABEL = E.label
84 LEGEND = E.legend
85 LI = E.li
86 LINK = E.link
87 MAP = E.map
88 MENU = E.menu
89 META = E.meta
90 NOFRAMES = E.noframes
91 NOSCRIPT = E.noscript
92 OBJECT = E.object
93 OL = E.ol
94 OPTGROUP = E.optgroup
95 OPTION = E.option
96 P = E.p
97 PARAM = E.param
98 PRE = E.pre
99 Q = E.q
100 S = E.s
101 SAMP = E.samp
102 SCRIPT = E.script
103 SELECT = E.select
104 SMALL = E.small
105 SPAN = E.span
106 STRIKE = E.strike
107 STRONG = E.strong
108 STYLE = E.style
109 SUB = E.sub
110 SUP = E.sup
111 TABLE = E.table
112 TBODY = E.tbody
113 TD = E.td
114 TEXTAREA = E.textarea
115 TFOOT = E.tfoot
116 TH = E.th
117 THEAD = E.thead
118 TITLE = E.title
119 TR = E.tr
120 TT = E.tt
121 U = E.u
122 UL = E.ul
123 VAR = E.var
124
125
126 ATTR = dict
127 -def CLASS(v): return {'class': v}
128 -def FOR(v): return {'for': v}
129