Last active
October 12, 2015 06:03
-
-
Save aaronchall/d8c735e5206531189af0 to your computer and use it in GitHub Desktop.
23 lines of Python, generate 67 lines of HTML
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
API: | |
def main(): | |
nav = Nav([UnorderedList([ListItem([Link('foo/link', 'foo text')]), | |
ListItem([Link('bar/link', 'bar text')])])]) | |
htmlobjs = Document( | |
head=Head(title='Example', | |
elems=[Keywords(['python', 'html']), | |
Description('demo page'), | |
Author('Aaron Hall'), | |
]), | |
body=Body([ | |
Header([nav]), | |
Section(['This is a section.']), | |
Article([H1('Top Level Topic'), | |
P(['This is a paragraph under the article']), | |
H2('2nd level heading'), | |
P(['Another paragraph, with a {link} to back it up.'.format( | |
link=Link('http://foo/bar', 'linky'))]), | |
]), | |
Aside(['This <aside> could be a floaty sidebar']), | |
Footer([nav, 'Maybe this footer could float on the side on a wide screen']), | |
]), | |
) | |
Output: | |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<title> | |
Example | |
</title> | |
<meta charset="UTF-8"> | |
<meta content="python, html" name="keywords"> | |
<meta content="demo page" name="description"> | |
<meta content="Aaron Hall" name="author"> | |
</head> | |
<body> | |
<header> | |
<nav> | |
<ul> | |
<li> | |
<a href="foo/link"> | |
foo text | |
</a> | |
</li> | |
<li> | |
<a href="bar/link"> | |
bar text | |
</a> | |
</li> | |
</ul> | |
</nav> | |
</header> | |
<section> | |
This is a section. | |
</section> | |
<article> | |
<h1> | |
Top Level Topic | |
</h1> | |
<p> | |
This is a paragraph under the article | |
</p> | |
<h2> | |
2nd level heading | |
</h2> | |
<p> | |
Another paragraph, with a <a href="http://foo/bar"> | |
linky | |
</a> to back it up. | |
</p> | |
</article> | |
<aside> | |
This <aside> could be a floaty sidebar | |
</aside> | |
<footer> | |
<nav> | |
<ul> | |
<li> | |
<a href="foo/link"> | |
foo text | |
</a> | |
</li> | |
<li> | |
<a href="bar/link"> | |
bar text | |
</a> | |
</li> | |
</ul> | |
</nav> | |
Maybe this footer could float on the side on a wide screen | |
</footer> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment