11# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/11_xml.ipynb.
22
33# %% auto 0
4- __all__ = ['XT ' , 'xt ' , 'Html' , 'to_xml' , 'highlight' , 'showtags' , 'Head' , 'Title' , 'Meta' , 'Link' , 'Style' , 'Body' , 'Pre' , 'Code' ,
4+ __all__ = ['FT ' , 'ft ' , 'Html' , 'to_xml' , 'highlight' , 'showtags' , 'Head' , 'Title' , 'Meta' , 'Link' , 'Style' , 'Body' , 'Pre' , 'Code' ,
55 'Div' , 'Span' , 'P' , 'H1' , 'H2' , 'H3' , 'H4' , 'H5' , 'H6' , 'Strong' , 'Em' , 'B' , 'I' , 'U' , 'S' , 'Strike' , 'Sub' ,
66 'Sup' , 'Hr' , 'Br' , 'Img' , 'A' , 'Nav' , 'Ul' , 'Ol' , 'Li' , 'Dl' , 'Dt' , 'Dd' , 'Table' , 'Thead' , 'Tbody' , 'Tfoot' ,
77 'Tr' , 'Th' , 'Td' , 'Caption' , 'Col' , 'Colgroup' , 'Form' , 'Input' , 'Textarea' , 'Button' , 'Select' , 'Option' ,
@@ -26,7 +26,8 @@ def _attrmap(o):
2626 return o .lstrip ('_' ).replace ('_' , '-' )
2727
2828# %% ../nbs/11_xml.ipynb
29- class XT (list ):
29+ class FT (list ):
30+ "A 'Fast Tag' structure, which is a `list` of `[tag,children,attrs]`"
3031 def __init__ (self , tag , cs , attrs = None , void_ = False , ** kwargs ):
3132 super ().__init__ ([tag , cs , {** (attrs or {}), ** kwargs }])
3233 self .void_ = void_
@@ -47,11 +48,11 @@ def __getattr__(self, k):
4748 return self .attrs [k .lstrip ('_' ).replace ('_' , '-' )]
4849
4950# %% ../nbs/11_xml.ipynb
50- def xt (tag :str , * c , void_ = False , ** kw ):
51- "Create an XML tag structure `[tag,children,attrs]` for `toxml ()`"
51+ def ft (tag :str , * c , void_ = False , ** kw ):
52+ "Create an `FT` structure for `to_xml ()`"
5253 if len (c )== 1 and isinstance (c [0 ], types .GeneratorType ): c = tuple (c [0 ])
5354 kw = {_attrmap (k ):v for k ,v in kw .items () if v is not None }
54- return XT (tag .lower (),c ,kw , void_ = void_ )
55+ return FT (tag .lower (),c ,kw , void_ = void_ )
5556
5657# %% ../nbs/11_xml.ipynb
5758_g = globals ()
@@ -65,14 +66,14 @@ def xt(tag:str, *c, void_=False, **kw):
6566 'Figcaption' , 'Mark' , 'Small' , 'Iframe' , 'Object' , 'Embed' , 'Param' , 'Video' ,
6667 'Audio' , 'Source' , 'Canvas' , 'Svg' , 'Math' , 'Script' , 'Noscript' , 'Template' , 'Slot' ]
6768
68- for o in _all_ : _g [o ] = partial (xt , o .lower ())
69+ for o in _all_ : _g [o ] = partial (ft , o .lower ())
6970
7071# %% ../nbs/11_xml.ipynb
71- def Html (* c , doctype = True , ** kwargs )-> XT :
72+ def Html (* c , doctype = True , ** kwargs )-> FT :
7273 "An HTML tag, optionally preceeded by `!DOCTYPE HTML`"
73- res = xt ('html' , * c , ** kwargs )
74+ res = ft ('html' , * c , ** kwargs )
7475 if not doctype : return res
75- return (xt ('!DOCTYPE' , html = True , void_ = True ), res )
76+ return (ft ('!DOCTYPE' , html = True , void_ = True ), res )
7677
7778# %% ../nbs/11_xml.ipynb
7879def _escape (s ): return '' if s is None else escape (s ) if isinstance (s , str ) else s
@@ -91,10 +92,10 @@ def _to_attr(k,v):
9192
9293# %% ../nbs/11_xml.ipynb
9394def to_xml (elm , lvl = 0 ):
94- "Convert `xt ` element tree into an XML string"
95+ "Convert `ft ` element tree into an XML string"
9596 if elm is None : return ''
9697 if isinstance (elm , tuple ): return '\n ' .join (to_xml (o ) for o in elm )
97- if hasattr (elm , '__xt__ ' ): elm = elm .__xt__ ()
98+ if hasattr (elm , '__ft__ ' ): elm = elm .__ft__ ()
9899 sp = ' ' * lvl
99100 if not isinstance (elm , list ): return f'{ _escape (elm )} \n '
100101
@@ -107,7 +108,7 @@ def to_xml(elm, lvl=0):
107108 isvoid = getattr (elm , 'void_' , False )
108109 cltag = '' if isvoid else f'</{ tag } >'
109110 if not cs : return f'{ sp } <{ stag } >{ cltag } \n '
110- if len (cs )== 1 and not isinstance (cs [0 ],(list ,tuple )) and not hasattr (cs [0 ],'__xt__ ' ):
111+ if len (cs )== 1 and not isinstance (cs [0 ],(list ,tuple )) and not hasattr (cs [0 ],'__ft__ ' ):
111112 return f'{ sp } <{ stag } >{ _escape (cs [0 ])} { cltag } \n '
112113 res = f'{ sp } <{ stag } >\n '
113114 res += '' .join (to_xml (c , lvl = lvl + 2 ) for c in cs )
@@ -125,10 +126,10 @@ def showtags(s):
125126{ escape (to_xml (s ))}
126127</code></pre>"""
127128
128- XT ._repr_markdown_ = highlight
129+ FT ._repr_markdown_ = highlight
129130
130131# %% ../nbs/11_xml.ipynb
131132def __getattr__ (tag ):
132133 if tag .startswith ('_' ) or tag [0 ].islower (): raise AttributeError
133- def _f (* c , target_id = None , ** kwargs ): return xt (tag , * c , target_id = target_id , ** kwargs )
134+ def _f (* c , target_id = None , ** kwargs ): return ft (tag , * c , target_id = target_id , ** kwargs )
134135 return _f
0 commit comments