diff --git a/.gitattributes b/.gitattributes
index 4afe792..9a3a00b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,3 +1,4 @@
.gitattributes export-ignore
.gitignore export-ignore
.travis.yml export-ignore
+/doc/web export-ignore
diff --git a/Makefile b/Makefile
index 59e9a9d..8dc2858 100644
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,7 @@ ARCHIVE_SOURCE:=$(LAPPNAME)-$(VERSION).tar.gz
ARCHIVE_WIN32:=$(LAPPNAME)-$(VERSION).exe
GITUSER:=wummel
GITREPO:=$(LAPPNAME)
-HOMEPAGE:=$(HOME)/public_html/$(LAPPNAME)-webpage
-HOMEPAGE_META:=$(HOMEPAGE)/app.yaml
+WEB_META:=doc/web/app.yaml
DEBUILDDIR:=$(HOME)/projects/debian/official
DEBORIGFILE:=$(DEBUILDDIR)/$(LAPPNAME)_$(VERSION).orig.tar.gz
DEBPACKAGEDIR:=$(DEBUILDDIR)/$(LAPPNAME)-$(VERSION)
@@ -42,13 +41,13 @@ upload:
homepage:
# update metadata
- @echo "version: \"$(VERSION)\"" > $(HOMEPAGE_META)
- @echo "name: \"$(APPNAME)\"" >> $(HOMEPAGE_META)
- @echo "lname: \"$(LAPPNAME)\"" >> $(HOMEPAGE_META)
- @echo "maintainer: \"$(MAINTAINER)\"" >> $(HOMEPAGE_META)
- @echo "author: \"$(AUTHOR)\"" >> $(HOMEPAGE_META)
-# generate static files
- make -C $(HOMEPAGE) gen upload
+ @echo "version: \"$(VERSION)\"" > $(WEB_META)
+ @echo "name: \"$(APPNAME)\"" >> $(WEB_META)
+ @echo "lname: \"$(LAPPNAME)\"" >> $(WEB_META)
+ @echo "maintainer: \"$(MAINTAINER)\"" >> $(WEB_META)
+ @echo "author: \"$(AUTHOR)\"" >> $(WEB_META)
+# relase website
+ $(MAKE) -C doc/web release
tag:
# add and push the version tag
@@ -137,4 +136,4 @@ changelog:
github-changelog $(DRYRUN) $(GITUSER) $(GITREPO) doc/changelog.txt
.PHONY: changelog update-copyright deb test clean count pyflakes check app
-.PHONY: releasecheck release upload sign dist all tag register
+.PHONY: releasecheck release upload sign dist all tag register homepage
diff --git a/doc/web/Makefile b/doc/web/Makefile
new file mode 100644
index 0000000..8d5df54
--- /dev/null
+++ b/doc/web/Makefile
@@ -0,0 +1,21 @@
+HOMEPAGE:=$(HOME)/public_html/patool-webpage.git
+WOK:=$(HOME)/projects/wok.git/wok
+
+all:
+
+media/favicon.ico: ../icon/favicon.ico
+ cp $< $@
+
+gen: media/favicon.ico
+ $(WOK) -v
+
+serve: gen
+ xdg-open http://localhost:8080
+ $(WOK) --server localhost:8080
+
+upload:
+ cd $(HOMEPAGE) && git add . && git commit -m "Updated" && git push
+
+release: gen upload
+
+.PHONY: all gen serve upload release
diff --git a/doc/web/app.yaml b/doc/web/app.yaml
new file mode 100644
index 0000000..54cf3f2
--- /dev/null
+++ b/doc/web/app.yaml
@@ -0,0 +1,6 @@
+version: "1.0"
+name: "Patool"
+lname: "patool"
+maintainer: "Bastian Kleineidam"
+author: "Bastian Kleineidam"
+output_exclude: [".*", "todo"]
diff --git a/doc/web/content/index.md b/doc/web/content/index.md
new file mode 100644
index 0000000..6570e9d
--- /dev/null
+++ b/doc/web/content/index.md
@@ -0,0 +1,80 @@
+title: portable archive file manager
+description: patool is a portable archive file manager
+---
+Introduction
+-------------
+[](http://xkcd.com/1168/)
+
+I could never remember the correct options for all those different compression
+programs. Tar, unzip, gzip - you name it and I forgot it.
+Patool remembers all those options for me now so I don't have to.
+
+Description
+------------
+Various archive types can be created, extracted, tested, listed,
+compared, searched and
+repacked with patool. The advantage of patool is its simplicity in
+handling archive files without having to remember a myriad of
+programs and options.
+
+The archive format is determined by the file(1) program and as
+a fallback by the archive file extension.
+
+patool supports 7z (.7z), ACE (.ace), ADF (.adf), ALZIP (.alz),
+APE (.ape), AR (.a), ARC (.arc), ARJ (.arj), BZIP2 (.bz2), CAB
+(.cab), COMPRESS (.Z), CPIO (.cpio), DEB (.deb), DMS (.dms),
+FLAC (.flac), GZIP (.gz), LRZIP (.lrz), LZH (.lha, .lzh), LZIP
+(.lz), LZMA (.lzma), LZOP (.lzo), RPM (.rpm), RAR (.rar), RZIP
+(.rz), SHN (.shn), TAR (.tar), XZ (.xz), ZIP (.zip, .jar) and
+ZOO (.zoo) formats. It relies on helper applications to handle
+those archive formats (for example bzip2 for BZIP2 archives).
+
+The archive formats TAR, ZIP, BZIP2 and
+GZIP are supported natively and do not require helper
+applications to be installed.
+
+Installation
+-------------
+The easy way with pip:
+
+```bash
+pip install patool
+```
+
+If you install from source read the
+[installation instructions](https://github.com/wummel/patool/blob/master/doc/install.txt).
+
+Examples
+---------
+
+```bash
+# extract two archives
+patool extract archive.zip otherarchive.rar
+
+# test if archive is intact
+patool test --verbose dist.tar.gz
+
+# list files inside an archive
+patool list package.deb
+
+# create a new archive
+patool create --verbose myfiles.zip file1.txt dir/
+
+# list differences between two archive contents
+patool diff release1.0.tar.gz release2.0.zip
+
+# search archive contents
+patool search "def urlopen" python-3.3.tar.gz
+
+# compress the archive in a different format
+patool repack linux-2.6.33.tar.gz linux-2.6.33.tar.bz2
+```
+
+Donate
+-------
+If you like patool, consider a donation to support it. Thanks!
+
+Donate Bitcoins
+
+
+
diff --git a/doc/web/hooks/__hooks__.py b/doc/web/hooks/__hooks__.py
new file mode 100644
index 0000000..eed8417
--- /dev/null
+++ b/doc/web/hooks/__hooks__.py
@@ -0,0 +1,18 @@
+# -*- coding: iso-8859-1 -*-
+def compress_javascript(config, output_path):
+ from mediacompress import compress_js_files
+ compress_js_files(output_path)
+
+
+def compress_images(config, output_path):
+ from mediacompress import compress_image_files
+ compress_image_files(output_path)
+
+
+def compress_css(config, output_path):
+ from mediacompress import compress_css_files
+ compress_css_files(output_path)
+
+hooks = {
+ 'site.output.post': [compress_javascript, compress_images, compress_css],
+}
diff --git a/doc/web/media/css/print.css b/doc/web/media/css/print.css
new file mode 100644
index 0000000..541695b
--- /dev/null
+++ b/doc/web/media/css/print.css
@@ -0,0 +1,226 @@
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+body {
+ font-size: 13px;
+ line-height: 1.5;
+ font-family: 'Helvetica Neue', Helvetica, Arial, serif;
+ color: #000;
+}
+
+a {
+ color: #d5000d;
+ font-weight: bold;
+}
+
+header {
+ padding-top: 35px;
+ padding-bottom: 10px;
+}
+
+header h1 {
+ font-weight: bold;
+ letter-spacing: -1px;
+ font-size: 48px;
+ color: #303030;
+ line-height: 1.2;
+}
+
+header h2 {
+ letter-spacing: -1px;
+ font-size: 24px;
+ color: #aaa;
+ font-weight: normal;
+ line-height: 1.3;
+}
+#downloads {
+ display: none;
+}
+#main_content {
+ padding-top: 20px;
+}
+
+code, pre {
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal;
+ color: #222;
+ margin-bottom: 30px;
+ font-size: 12px;
+}
+
+code {
+ padding: 0 3px;
+}
+
+pre {
+ border: solid 1px #ddd;
+ padding: 20px;
+ overflow: auto;
+}
+pre code {
+ padding: 0;
+}
+
+ul, ol, dl {
+ margin-bottom: 20px;
+}
+
+
+/* COMMON STYLES */
+
+table {
+ width: 100%;
+ border: 1px solid #ebebeb;
+}
+
+th {
+ font-weight: 500;
+}
+
+td {
+ border: 1px solid #ebebeb;
+ text-align: center;
+ font-weight: 300;
+}
+
+form {
+ background: #f2f2f2;
+ padding: 20px;
+
+}
+
+
+/* GENERAL ELEMENT TYPE STYLES */
+
+h1 {
+ font-size: 2.8em;
+}
+
+h2 {
+ font-size: 22px;
+ font-weight: bold;
+ color: #303030;
+ margin-bottom: 8px;
+}
+
+h3 {
+ color: #d5000d;
+ font-size: 18px;
+ font-weight: bold;
+ margin-bottom: 8px;
+}
+
+h4 {
+ font-size: 16px;
+ color: #303030;
+ font-weight: bold;
+}
+
+h5 {
+ font-size: 1em;
+ color: #303030;
+}
+
+h6 {
+ font-size: .8em;
+ color: #303030;
+}
+
+p {
+ font-weight: 300;
+ margin-bottom: 20px;
+}
+
+a {
+ text-decoration: none;
+}
+
+p a {
+ font-weight: 400;
+}
+
+blockquote {
+ font-size: 1.6em;
+ border-left: 10px solid #e9e9e9;
+ margin-bottom: 20px;
+ padding: 0 0 0 30px;
+}
+
+ul li {
+ list-style: disc inside;
+ padding-left: 20px;
+}
+
+ol li {
+ list-style: decimal inside;
+ padding-left: 3px;
+}
+
+dl dd {
+ font-style: italic;
+ font-weight: 100;
+}
+
+footer {
+ margin-top: 40px;
+ padding-top: 20px;
+ padding-bottom: 30px;
+ font-size: 13px;
+ color: #aaa;
+}
+
+footer a {
+ color: #666;
+}
+
+/* MISC */
+.clearfix:after {
+ clear: both;
+ content: '.';
+ display: block;
+ visibility: hidden;
+ height: 0;
+}
+
+.clearfix {display: inline-block;}
+* html .clearfix {height: 1%;}
+.clearfix {display: block;}
\ No newline at end of file
diff --git a/doc/web/media/css/pygment_trac.css b/doc/web/media/css/pygment_trac.css
new file mode 100644
index 0000000..82fb8fe
--- /dev/null
+++ b/doc/web/media/css/pygment_trac.css
@@ -0,0 +1,69 @@
+.codehilite { background: #ffffff; }
+.codehilite .c { color: #999988; font-style: italic } /* Comment */
+.codehilite .err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.codehilite .k { font-weight: bold } /* Keyword */
+.codehilite .o { font-weight: bold } /* Operator */
+.codehilite .cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.codehilite .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.codehilite .c1 { color: #999988; font-style: italic } /* Comment.Single */
+.codehilite .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.codehilite .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.codehilite .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
+.codehilite .ge { font-style: italic } /* Generic.Emph */
+.codehilite .gr { color: #aa0000 } /* Generic.Error */
+.codehilite .gh { color: #999999 } /* Generic.Heading */
+.codehilite .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.codehilite .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
+.codehilite .go { color: #888888 } /* Generic.Output */
+.codehilite .gp { color: #555555 } /* Generic.Prompt */
+.codehilite .gs { font-weight: bold } /* Generic.Strong */
+.codehilite .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
+.codehilite .gt { color: #aa0000 } /* Generic.Traceback */
+.codehilite .kc { font-weight: bold } /* Keyword.Constant */
+.codehilite .kd { font-weight: bold } /* Keyword.Declaration */
+.codehilite .kn { font-weight: bold } /* Keyword.Namespace */
+.codehilite .kp { font-weight: bold } /* Keyword.Pseudo */
+.codehilite .kr { font-weight: bold } /* Keyword.Reserved */
+.codehilite .kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.codehilite .m { color: #009999 } /* Literal.Number */
+.codehilite .s { color: #d14 } /* Literal.String */
+.codehilite .na { color: #008080 } /* Name.Attribute */
+.codehilite .nb { color: #0086B3 } /* Name.Builtin */
+.codehilite .nc { color: #445588; font-weight: bold } /* Name.Class */
+.codehilite .no { color: #008080 } /* Name.Constant */
+.codehilite .ni { color: #800080 } /* Name.Entity */
+.codehilite .ne { color: #990000; font-weight: bold } /* Name.Exception */
+.codehilite .nf { color: #990000; font-weight: bold } /* Name.Function */
+.codehilite .nn { color: #555555 } /* Name.Namespace */
+.codehilite .nt { color: #000080 } /* Name.Tag */
+.codehilite .nv { color: #008080 } /* Name.Variable */
+.codehilite .ow { font-weight: bold } /* Operator.Word */
+.codehilite .w { color: #bbbbbb } /* Text.Whitespace */
+.codehilite .mf { color: #009999 } /* Literal.Number.Float */
+.codehilite .mh { color: #009999 } /* Literal.Number.Hex */
+.codehilite .mi { color: #009999 } /* Literal.Number.Integer */
+.codehilite .mo { color: #009999 } /* Literal.Number.Oct */
+.codehilite .sb { color: #d14 } /* Literal.String.Backtick */
+.codehilite .sc { color: #d14 } /* Literal.String.Char */
+.codehilite .sd { color: #d14 } /* Literal.String.Doc */
+.codehilite .s2 { color: #d14 } /* Literal.String.Double */
+.codehilite .se { color: #d14 } /* Literal.String.Escape */
+.codehilite .sh { color: #d14 } /* Literal.String.Heredoc */
+.codehilite .si { color: #d14 } /* Literal.String.Interpol */
+.codehilite .sx { color: #d14 } /* Literal.String.Other */
+.codehilite .sr { color: #009926 } /* Literal.String.Regex */
+.codehilite .s1 { color: #d14 } /* Literal.String.Single */
+.codehilite .ss { color: #990073 } /* Literal.String.Symbol */
+.codehilite .bp { color: #999999 } /* Name.Builtin.Pseudo */
+.codehilite .vc { color: #008080 } /* Name.Variable.Class */
+.codehilite .vg { color: #008080 } /* Name.Variable.Global */
+.codehilite .vi { color: #008080 } /* Name.Variable.Instance */
+.codehilite .il { color: #009999 } /* Literal.Number.Integer.Long */
+
+.type-csharp .codehilite .k { color: #0000FF }
+.type-csharp .codehilite .kt { color: #0000FF }
+.type-csharp .codehilite .nf { color: #000000; font-weight: normal }
+.type-csharp .codehilite .nc { color: #2B91AF }
+.type-csharp .codehilite .nn { color: #000000 }
+.type-csharp .codehilite .s { color: #A31515 }
+.type-csharp .codehilite .sc { color: #A31515 }
diff --git a/doc/web/media/css/stylesheet.css b/doc/web/media/css/stylesheet.css
new file mode 100644
index 0000000..2a19461
--- /dev/null
+++ b/doc/web/media/css/stylesheet.css
@@ -0,0 +1,371 @@
+/* http://meyerweb.com/eric/tools/css/reset/
+ v2.0 | 20110126
+ License: none (public domain)
+*/
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+/* LAYOUT STYLES */
+body {
+ font-size: 1em;
+ line-height: 1.5;
+ background: #e7e7e7 url(../images/body-bg.png) 0 0 repeat;
+ font-family: 'Helvetica Neue', Helvetica, Arial, serif;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
+ color: #6d6d6d;
+}
+
+a {
+ color: #d5000d;
+}
+a:hover {
+ color: #c5000c;
+}
+
+header {
+ padding-top: 35px;
+ padding-bottom: 25px;
+}
+
+header h1 {
+ font-family: 'Chivo', 'Helvetica Neue', Helvetica, Arial, serif; font-weight: 900;
+ letter-spacing: -1px;
+ font-size: 48px;
+ color: #303030;
+ line-height: 1.2;
+}
+
+header h2 {
+ letter-spacing: -1px;
+ font-size: 24px;
+ color: #aaa;
+ font-weight: normal;
+ line-height: 1.3;
+}
+
+#container {
+ background: transparent url(../images/highlight-bg.jpg) 50% 0 no-repeat;
+ min-height: 595px;
+}
+
+.inner {
+ width: 620px;
+ margin: 0 auto;
+}
+
+#container .inner img {
+ max-width: 100%;
+}
+
+#downloads {
+ margin-bottom: 40px;
+}
+
+a.button {
+ -moz-border-radius: 30px;
+ -webkit-border-radius: 30px;
+ border-radius: 30px;
+ border-top: solid 1px #cbcbcb;
+ border-left: solid 1px #b7b7b7;
+ border-right: solid 1px #b7b7b7;
+ border-bottom: solid 1px #b3b3b3;
+ color: #303030;
+ line-height: 25px;
+ font-weight: bold;
+ font-size: 15px;
+ padding: 12px 8px 12px 8px;
+ display: block;
+ float: left;
+ width: 179px;
+ margin-right: 14px;
+ background: #fdfdfd; /* Old browsers */
+ background: -moz-linear-gradient(top, #fdfdfd 0%, #f2f2f2 100%); /* FF3.6+ */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#f2f2f2)); /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* Chrome10+,Safari5.1+ */
+ background: -o-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* IE10+ */
+ background: linear-gradient(top, #fdfdfd 0%,#f2f2f2 100%); /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f2f2f2',GradientType=0 ); /* IE6-9 */
+ -webkit-box-shadow: 10px 10px 5px #888;
+ -moz-box-shadow: 10px 10px 5px #888;
+ box-shadow: 0px 1px 5px #e8e8e8;
+}
+a.button:hover {
+ border-top: solid 1px #b7b7b7;
+ border-left: solid 1px #b3b3b3;
+ border-right: solid 1px #b3b3b3;
+ border-bottom: solid 1px #b3b3b3;
+ background: #fafafa; /* Old browsers */
+ background: -moz-linear-gradient(top, #fdfdfd 0%, #f6f6f6 100%); /* FF3.6+ */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fdfdfd), color-stop(100%,#f6f6f6)); /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* Chrome10+,Safari5.1+ */
+ background: -o-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #fdfdfd 0%,#f6f6f6 100%); /* IE10+ */
+ background: linear-gradient(top, #fdfdfd 0%,#f6f6f6, 100%); /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fdfdfd', endColorstr='#f6f6f6',GradientType=0 ); /* IE6-9 */
+}
+
+a.button span {
+ padding-left: 50px;
+ display: block;
+ height: 23px;
+}
+
+#download-exe span {
+ background: transparent url(../images/exe-icon.png) 12px 50% no-repeat;
+}
+#download-tar-gz span {
+ background: transparent url(../images/tar-gz-icon.png) 12px 50% no-repeat;
+}
+#view-on-github span {
+ background: transparent url(../images/octocat-icon.png) 12px 50% no-repeat;
+}
+#view-on-github {
+ margin-right: 0;
+}
+
+code, pre {
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal;
+ color: #222;
+ margin-bottom: 30px;
+ font-size: 14px;
+}
+
+code {
+ background-color: #f2f2f2;
+ border: solid 1px #ddd;
+ padding: 0 3px;
+}
+
+pre {
+ padding: 20px;
+ background: #303030;
+ color: #f2f2f2;
+ text-shadow: none;
+ overflow: auto;
+}
+pre code {
+ color: #f2f2f2;
+ background-color: #303030;
+ border: none;
+ padding: 0;
+}
+
+ul, ol, dl {
+ margin-bottom: 20px;
+}
+
+
+/* COMMON STYLES */
+
+hr {
+ height: 1px;
+ line-height: 1px;
+ margin-top: 1em;
+ padding-bottom: 1em;
+ border: none;
+ background: transparent url('../images/hr.png') 50% 0 no-repeat;
+}
+
+strong {
+ font-weight: bold;
+}
+
+em {
+ font-style: italic;
+}
+
+table {
+ width: 100%;
+ border: 1px solid #ebebeb;
+}
+
+th {
+ font-weight: 500;
+}
+
+td {
+ border: 1px solid #ebebeb;
+ text-align: center;
+ font-weight: 300;
+}
+
+form {
+ background: #f2f2f2;
+ padding: 20px;
+
+}
+
+
+/* GENERAL ELEMENT TYPE STYLES */
+
+h1 {
+ font-size: 32px;
+}
+
+h2 {
+ font-size: 22px;
+ font-weight: bold;
+ color: #303030;
+ margin-bottom: 8px;
+}
+
+h3 {
+ color: #d5000d;
+ font-size: 18px;
+ font-weight: bold;
+ margin-bottom: 8px;
+}
+
+h4 {
+ font-size: 16px;
+ color: #303030;
+ font-weight: bold;
+}
+
+h5 {
+ font-size: 1em;
+ color: #303030;
+}
+
+h6 {
+ font-size: .8em;
+ color: #303030;
+}
+
+p {
+ font-weight: 300;
+ margin-bottom: 20px;
+}
+
+a {
+ text-decoration: none;
+}
+
+p a {
+ font-weight: 400;
+}
+
+blockquote {
+ font-size: 1.6em;
+ border-left: 10px solid #e9e9e9;
+ margin-bottom: 20px;
+ padding: 0 0 0 30px;
+}
+
+ul li {
+ list-style: disc inside;
+ padding-left: 20px;
+}
+
+ol li {
+ list-style: decimal inside;
+ padding-left: 3px;
+}
+
+dl dt {
+ color: #303030;
+}
+
+footer {
+ background: transparent url('../images/hr.png') 0 0 no-repeat;
+ margin-top: 40px;
+ padding-top: 20px;
+ padding-bottom: 30px;
+ font-size: 13px;
+ color: #aaa;
+}
+
+footer a {
+ color: #666;
+}
+footer a:hover {
+ color: #444;
+}
+
+/* MISC */
+.clearfix:after {
+ clear: both;
+ content: '.';
+ display: block;
+ visibility: hidden;
+ height: 0;
+}
+
+.clearfix {display: inline-block;}
+* html .clearfix {height: 1%;}
+.clearfix {display: block;}
+
+/* #Media Queries
+================================================== */
+
+/* Smaller than standard 960 (devices and browsers) */
+@media only screen and (max-width: 959px) {}
+
+/* Tablet Portrait size to standard 960 (devices and browsers) */
+@media only screen and (min-width: 768px) and (max-width: 959px) {}
+
+/* All Mobile Sizes (devices and browser) */
+@media only screen and (max-width: 767px) {
+ header {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+ #downloads {
+ margin-bottom: 25px;
+ }
+ #download-zip, #download-tar-gz {
+ display: none;
+ }
+ .inner {
+ width: 94%;
+ margin: 0 auto;
+ }
+}
+
+/* Mobile Landscape Size to Tablet Portrait (devices and browsers) */
+@media only screen and (min-width: 480px) and (max-width: 767px) {}
+
+/* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */
+@media only screen and (max-width: 479px) {}
diff --git a/doc/web/media/favicon.ico b/doc/web/media/favicon.ico
new file mode 100644
index 0000000..9f755b3
Binary files /dev/null and b/doc/web/media/favicon.ico differ
diff --git a/doc/web/media/images/body-bg.png b/doc/web/media/images/body-bg.png
new file mode 100644
index 0000000..d0618fe
Binary files /dev/null and b/doc/web/media/images/body-bg.png differ
diff --git a/doc/web/media/images/exe-icon.png b/doc/web/media/images/exe-icon.png
new file mode 100644
index 0000000..57422ac
Binary files /dev/null and b/doc/web/media/images/exe-icon.png differ
diff --git a/doc/web/media/images/highlight-bg.jpg b/doc/web/media/images/highlight-bg.jpg
new file mode 100644
index 0000000..4c4a78e
Binary files /dev/null and b/doc/web/media/images/highlight-bg.jpg differ
diff --git a/doc/web/media/images/hr.png b/doc/web/media/images/hr.png
new file mode 100644
index 0000000..6c723a5
Binary files /dev/null and b/doc/web/media/images/hr.png differ
diff --git a/doc/web/media/images/octocat-icon.png b/doc/web/media/images/octocat-icon.png
new file mode 100644
index 0000000..f0ba137
Binary files /dev/null and b/doc/web/media/images/octocat-icon.png differ
diff --git a/doc/web/media/images/tar-gz-icon.png b/doc/web/media/images/tar-gz-icon.png
new file mode 100644
index 0000000..77734fa
Binary files /dev/null and b/doc/web/media/images/tar-gz-icon.png differ
diff --git a/doc/web/templates/base.html b/doc/web/templates/base.html
new file mode 100644
index 0000000..b51e457
--- /dev/null
+++ b/doc/web/templates/base.html
@@ -0,0 +1,28 @@
+
+
+