See for yourself -
from witchcraft import Page
class ExamplePage(Page):
def render(self):
return ...[
[html]
[head]
[title] ("My Cool Website") [-title]
[-head]
[body]
[marquee][h1] ("Wheeeeeeeeee") [-h1][-marquee]
[-body]
[-html]
]
page = ExamplePage()
print(page.render())
$ python test.py
<html><head><title>My Cool Website</title></head><body><marquee><h1>Wheeeeeeeeee</h1></marquee></body></html>
(see another example at example.py!)
I'm glad you enjoyed it.
Probably not. This was mainly intended as a fun project and proof of concept to see the extent of what I could do with metaprogramming in Python. Most people probably don't know this is possible! Obviously this doesn't have as many features as, say, jinja2 or dominate and I haven't tried to break it at all so there may be vulnerabilities somewhere. It's just cool.
I might post a full technical explanation later. In the meantime, have a look at witchcraft.py. It's pretty well documented.