From: Armin Ronacher Date: Thu, 22 Mar 2007 22:45:30 +0000 (+0100) Subject: [svn] moved www out of jinja trunk and updated setup.py file X-Git-Tag: 2.0rc1~400 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=0830e25652a68d709e76f5ff0a8b46a2e8b6903f;p=jinja2.git [svn] moved www out of jinja trunk and updated setup.py file --HG-- branch : trunk --- diff --git a/ez_setup.py b/ez_setup.py index 00dbb86..38c09c6 100644 --- a/ez_setup.py +++ b/ez_setup.py @@ -14,7 +14,7 @@ the appropriate options to ``use_setuptools()``. This file can also be run as a script to install or upgrade setuptools. """ import sys -DEFAULT_VERSION = "0.6b3" +DEFAULT_VERSION = "0.6c5" DEFAULT_URL = "http://cheeseshop.python.org/packages/%s/s/setuptools/" % sys.version[:3] md5_data = { @@ -24,8 +24,21 @@ md5_data = { 'setuptools-0.6b2-py2.4.egg': '4996a8d169d2be661fa32a6e52e4f82a', 'setuptools-0.6b3-py2.3.egg': 'bb31c0fc7399a63579975cad9f5a0618', 'setuptools-0.6b3-py2.4.egg': '38a8c6b3d6ecd22247f179f7da669fac', - 'setuptools-0.6b3dev_r46791-py2.3.egg': 'e765a29566575ffac5d81cdf0c6f8db9', - 'setuptools-0.6b3dev_r46791-py2.4.egg': 'd249c022ed029ad60d134bd998adc880', + 'setuptools-0.6b4-py2.3.egg': '62045a24ed4e1ebc77fe039aa4e6f7e5', + 'setuptools-0.6b4-py2.4.egg': '4cb2a185d228dacffb2d17f103b3b1c4', + 'setuptools-0.6c1-py2.3.egg': 'b3f2b5539d65cb7f74ad79127f1a908c', + 'setuptools-0.6c1-py2.4.egg': 'b45adeda0667d2d2ffe14009364f2a4b', + 'setuptools-0.6c2-py2.3.egg': 'f0064bf6aa2b7d0f3ba0b43f20817c27', + 'setuptools-0.6c2-py2.4.egg': '616192eec35f47e8ea16cd6a122b7277', + 'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa', + 'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e', + 'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e', + 'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f', + 'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2', + 'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc', + 'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167', + 'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64', + 'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d', } import sys, os @@ -75,13 +88,13 @@ def use_setuptools( try: pkg_resources.require("setuptools>="+version) - except pkg_resources.VersionConflict: + except pkg_resources.VersionConflict, e: # XXX could we install in a subprocess here? print >>sys.stderr, ( "The required version of setuptools (>=%s) is not available, and\n" "can't be installed while this script is running. Please install\n" - " a more recent version first." - ) % version + " a more recent version first.\n\n(Currently using %r)" + ) % (version, e.args[0]) sys.exit(2) def download_setuptools( @@ -137,15 +150,15 @@ def main(argv, version=DEFAULT_VERSION): try: import setuptools except ImportError: - import tempfile, shutil - tmpdir = tempfile.mkdtemp(prefix="easy_install-") + egg = None try: - egg = download_setuptools(version, to_dir=tmpdir, delay=0) + egg = download_setuptools(version, delay=0) sys.path.insert(0,egg) from setuptools.command.easy_install import main return main(list(argv)+[egg]) # we're done here finally: - shutil.rmtree(tmpdir) + if egg and os.path.exists(egg): + os.unlink(egg) else: if setuptools.__version__ == '0.0.1': # tell the user to uninstall obsolete version diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..19dd821 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,6 @@ +[egg_info] +tag_build = dev +tag_svn_revision = true + +[aliases] +release = egg_info -RDb '' diff --git a/setup.py b/setup.py index ea72437..90dfd84 100644 --- a/setup.py +++ b/setup.py @@ -46,13 +46,12 @@ the application. .. _jinja webpage: http://jinja.pocoo.org/ .. _documentation: http://jinja.pocoo.org/documentation/index.html """ -try: - import ez_setup - ez_setup.use_setuptools() -except ImportError: - pass +import os +import ez_setup +ez_setup.use_setuptools() from setuptools import setup + setup( name = 'Jinja', version = '1.0', @@ -77,5 +76,10 @@ setup( ], keywords = ['python.templating.engines'], packages = ['jinja', 'jinja.translators'], - extras_require = {'plugin': ['setuptools>=0.6a2']}, + data_files = [ + ('docs', os.listdir('docs/build')), + ('docs/txt', os.listdir('docs/src')) + ], + platforms = 'any', + extras_require = {'plugin': ['setuptools>=0.6a2']} ) diff --git a/www/contribute.tmpl b/www/contribute.tmpl deleted file mode 100644 index dc20a1d..0000000 --- a/www/contribute.tmpl +++ /dev/null @@ -1,33 +0,0 @@ -<% extends 'layout/base.tmpl' %> -<% set title = 'Contribute' %> -<% set active_page = 'contribute' %> -<% block content %> -

Contribute

-

- Because Jinja is an open source project we're always open towards - suggestions and patches. If you want to participate in the Jinja - development python knowlege is required of corse since the project is - implemented completely in python. -

-

- Development takes place on trac.pocoo.org, - where the Subversion repository, tickets and development Wiki pages - can be viewed. -

-

Ways to contact the authors

-

- Our primary communication instrument is the IRC channel #pocoo - on the Freenode network. To join it, let your IRC client connect to - irc.freenode.net and do /join #pocoo. -

-

- If you found a bug, just open a ticket in the trac tracker. Be sure to - add your e-mail address under "CC" to be notified when the issue is fixed. -

-

The Authors

-

- Jinja is maintained by Armin Ronacher (nickname - mitsuhiko), e-mail address armin.ronacher (guess what) - active-4.com. -

-<% endblock %> diff --git a/www/documentation/item.tmpl b/www/documentation/item.tmpl deleted file mode 100644 index a5f3009..0000000 --- a/www/documentation/item.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -<% extends 'layout/base.tmpl' %> -<% set title = page_title + " | Documentation" %> -<% set active_page = 'documentation' %> -<% block content %> -

<%= page_title %>

- <% if page_toc %> -

Table Of Contents

- - <% endif %> - <%= page_body %> -<% endblock %> diff --git a/www/download.tmpl b/www/download.tmpl deleted file mode 100644 index 9bf2533..0000000 --- a/www/download.tmpl +++ /dev/null @@ -1,25 +0,0 @@ -<% extends 'layout/base.tmpl' %> -<% set title = 'Download' %> -<% set active_page = 'download' %> -<% block content %> -

Download

-

- If you want to install the release with - easy_install, - you can do it using this command: -

-
easy_install Jinja
-

- You can also get the development source from subversion using this command: -

-
svn co http://trac.pocoo.org/repos/jinja/trunk jinja
-

- Installing the current subversion trunk as a Python egg is done with: -

-
easy_install Jinja==dev
-

- Development takes place at the Pocoo trac, - you can browse the source online - here. -

-<% endblock %> diff --git a/www/error.tmpl b/www/error.tmpl deleted file mode 100644 index e89743d..0000000 --- a/www/error.tmpl +++ /dev/null @@ -1,11 +0,0 @@ -<% extends 'layout/base.tmpl' %> -<% set title = 'Page Not Found' %> -<% block content %> -

Page Not Found

-

- Sorry, but the pge you requested was not found on this server. -

-

- Click here to return to the index. - -<% endblock %> diff --git a/www/faq.tmpl b/www/faq.tmpl deleted file mode 100644 index 69bb4c7..0000000 --- a/www/faq.tmpl +++ /dev/null @@ -1,104 +0,0 @@ -<% extends 'layout/base.tmpl' %> -<% set title = 'FAQ' %> -<% set active_page = 'faq' %> -<% block content %> -

Frequently Asked Questions

-

- Here a list of frequently asked questions. -

-

Why the Name?

-

- The name Jinja was chosen because it's the name of a Japanese temple and - temple and template share a similar pronunciation. -

-

How fast is it?

-

- I really hate benchmarks especially since they don't reflect much. The - performance of a template depends on many factors and you would have to - benchmark different engines in differen situations. However Jinja isn't - slow. The benchmarks from the testsuite show that Jinja is about twice - as fast as Django templates and about three times as slow as - mako. That's not bad for a - sandboxed template engine that has to sanitize template input on the fly. - If you really need the best performance of a template engine consider - using mako. -

-

What happened to Jinja < 1?

-

- Before Jinja 1 there was a template engine too with the same name. Beside - the name and the same maintainer those two projects don't share a single - line of code. If you have an application using Jinja < 1 you should try - to make it Jinja 1 compatible. If that's not possible, the old project is - still available as - 0.9-maint - in the Jinja subversion repository. -

-

Why should I use Jinja?

-

- There are dozens of template engines for Python, many of them try to - achieve different things. If you are looking for a XML based template - engine have a look at genshi, - if you want a bleezing fast template engine with the full range of - python constructs have a look at mako. If you want sandboxed templates - you probably want to check out Jinja. -

-

Differences to Django

-

- While the Jinja default syntax looks pretty much like Django the rest of - the template engine works completely different. Jinja was designed to be - used without Django and to support Python expressions. -

-

Features that Jinja has in common with Django

- -

Differences to Django

- -<% endblock %> diff --git a/www/generate.py b/www/generate.py deleted file mode 100755 index 55d659b..0000000 --- a/www/generate.py +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env python -""" - jinja webpage generator - ~~~~~~~~~~~~~~~~~~~~~~~ -""" -import os -import sys -import re -from codecs import open -from jinja import Environment, FileSystemLoader -from jinja.filters import stringfilter -from pygments import highlight -from pygments.lexers import get_lexer_by_name -from pygments.formatters import HtmlFormatter - - -_data_re = re.compile( - r'(?P.*?).*?' - r'(?P.*?).*?' - r'(?P.*?)(?sm)' -) - -formatter = HtmlFormatter(cssclass='syntax', encoding=None, style='pastie') - -env = Environment('<%', '%>', '<%=', '%>', loader=FileSystemLoader('.', - cache_folder='/tmp'), trim_blocks=True) -env.filters['pygmentize'] = stringfilter(lambda v, l: - highlight(v.strip(), get_lexer_by_name(l), formatter)) - - -def get_files(folder): - for fn in os.listdir(folder): - fn = os.path.join(folder, fn) - if os.path.isdir(fn): - for item in get_files(fn): - yield item - elif fn.endswith('.tmpl'): - yield fn - - -# generate static stuff -for filename in get_files('.'): - root = './' + ''.join(['../' for _ in os.path.dirname(filename). - split(os.path.sep)[1:]]) - - t = env.get_template(filename) - f = open(filename[:-5] + '.html', 'w', 'utf-8') - f.write(t.render( - root=root - )) - f.close() - print filename - -# generate pygments stylesheet -f = file('static/pygments.css', 'w') -f.write(formatter.get_style_defs('.syntax')) -f.close() - -# generate documentation -os.system(sys.executable + ' ../docs/generate.py documentation true') - -# render documentation with documentation template -tmpl = env.get_template('documentation/item.tmpl') - -for filename in os.listdir('documentation'): - if not filename.endswith('.html'): - continue - filename = 'documentation/' + filename - f = open(filename, 'r', 'utf-8') - try: - data = f.read() - finally: - f.close() - match = _data_re.search(data) - if match is None: - continue - data = match.groupdict() - data['page_toc'] = data['page_toc'].strip() - if data['page_toc'].count(' -<% set title = 'Index' %> -<% set active_page = 'index' %> -<% block content %> -

Jinja Templates

-

- Jinja is a - sandboxed - template engine written in pure Python. It - provides a Django-like non-XML syntax - and compiles templates into executable python code. It's basically a combination - of Django templates and python code. -

-

Nutshell

- <% filter pygmentize('html+jinja') %> -{% extends 'base.html' %} -{% block title %}Memberlist{% endblock %} -{% block content %} - -{% endblock %} -<% endfilter %> -

Philosophy

-

- Application logic is for the controller but don't try to make the life for the - template designer too hard by giving him too few functionality. -

-

Features

-
    -
  • Simple API. For basic usage just one function is needed: -<% filter pygmentize('python') %> -from jinja import from_string -print from_string('Hello {{ data }}!').render(data='World') -<% endfilter %>
  • -
  • Sandboxed. The whole engine is completely sandboxed. A - template designer won't be able to modify application data or execute - dangerous code.
  • -
  • Python expressions. You can use nearly every python - expression. Not supported are the binary operators and list comprehensions / - generator expressions.
  • -
  • Inheritance. Jinja uses the same concept for inheritance - Django uses. It's very powerful and easy to understand.
  • -
  • Macros. Jinja provides so called macros that allow you to - put often used template snippets into callable blocks: -<% filter pygmentize('html+jinja') %> -{% macro dialog title, text %} -
    -

    {{ title }}

    -
    {{ text }}
    -
    -{% endmacro %} -<% endfilter %>You can then use this block by calling it: -<% filter pygmentize('html+jinja') %> -{{ dialog('Notification', 'Here the text for the macro.') }} -<% endfilter %>
  • -
  • Designer friendly. Jinja simplifies many things for a - template designer. Loops can be used in a recursive way, filters are - available to format values, loops know about their iteration etc.
  • -
  • Dynamic Syntax. You don't like the Django block syntax? - You can override the syntax elements on environment initialisation. It's - no problem to use ASP/PHP/Ruby syntax, html comments for blocks etc.
  • -
  • extremely lightweight. According to sloccount the number - of source lines is below 3000. The tarfile is less than 200KB in size.
  • -
-<% endblock %> diff --git a/www/layout/base.tmpl b/www/layout/base.tmpl deleted file mode 100644 index b311602..0000000 --- a/www/layout/base.tmpl +++ /dev/null @@ -1,37 +0,0 @@ -<% set navigation = [ - ('index.html', 'index', 'Index'), - ('faq.html', 'faq', 'FAQ'), - ('documentation/index.html', 'documentation', 'Documentation'), - ('download.html', 'download', 'Download'), - ('contribute.html', 'contribute', 'Contribute') -] %> - - - - <%= title or 'Untitled' %> | Jinja Template Engine - - - - - - - - -
-
- <% block content %><% endblock %> -
-
- - - diff --git a/www/static/headerbg.png b/www/static/headerbg.png deleted file mode 100644 index 035f9d4..0000000 Binary files a/www/static/headerbg.png and /dev/null differ diff --git a/www/static/jinjabanner.png b/www/static/jinjabanner.png deleted file mode 100644 index c672118..0000000 Binary files a/www/static/jinjabanner.png and /dev/null differ diff --git a/www/static/jinjalogo.png b/www/static/jinjalogo.png deleted file mode 100644 index 17d6dc3..0000000 Binary files a/www/static/jinjalogo.png and /dev/null differ diff --git a/www/static/print.css b/www/static/print.css deleted file mode 100644 index f29b465..0000000 --- a/www/static/print.css +++ /dev/null @@ -1,17 +0,0 @@ -#header, #footer, #navigation { - display: none; -} - -#contentwrapper, #content { - max-width: 100%; - padding: 0; -} - -a { - color: inherit; - text-decoration: inherit; -} - -#contentwrapper h1 { - margin-left: 0; -} diff --git a/www/static/pygments.css b/www/static/pygments.css deleted file mode 100644 index 477030d..0000000 --- a/www/static/pygments.css +++ /dev/null @@ -1,58 +0,0 @@ -.syntax { background: #ffffff; } -.syntax .c { color: #888888 } /* Comment */ -.syntax .err { color: #a61717; background-color: #e3d2d2 } /* Error */ -.syntax .k { color: #008800; font-weight: bold } /* Keyword */ -.syntax .cm { color: #888888 } /* Comment.Multiline */ -.syntax .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ -.syntax .c1 { color: #888888 } /* Comment.Single */ -.syntax .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ -.syntax .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ -.syntax .ge { font-style: italic } /* Generic.Emph */ -.syntax .gr { color: #aa0000 } /* Generic.Error */ -.syntax .gh { color: #999999 } /* Generic.Heading */ -.syntax .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ -.syntax .go { color: #888888 } /* Generic.Output */ -.syntax .gp { color: #555555 } /* Generic.Prompt */ -.syntax .gs { font-weight: bold } /* Generic.Strong */ -.syntax .gu { color: #aaaaaa } /* Generic.Subheading */ -.syntax .gt { color: #aa0000 } /* Generic.Traceback */ -.syntax .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ -.syntax .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ -.syntax .kp { color: #008800 } /* Keyword.Pseudo */ -.syntax .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ -.syntax .kt { color: #888888; font-weight: bold } /* Keyword.Type */ -.syntax .m { color: #0000DD; font-weight: bold } /* Literal.Number */ -.syntax .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ -.syntax .na { color: #336699 } /* Name.Attribute */ -.syntax .nb { color: #003388 } /* Name.Builtin */ -.syntax .nc { color: #bb0066; font-weight: bold } /* Name.Class */ -.syntax .no { color: #003366; font-weight: bold } /* Name.Constant */ -.syntax .nd { color: #555555 } /* Name.Decorator */ -.syntax .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ -.syntax .nf { color: #0066bb; font-weight: bold } /* Name.Function */ -.syntax .nl { color: #336699; font-style: italic } /* Name.Label */ -.syntax .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ -.syntax .py { color: #336699; font-weight: bold } /* Name.Property */ -.syntax .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ -.syntax .nv { color: #336699 } /* Name.Variable */ -.syntax .ow { color: #008800 } /* Operator.Word */ -.syntax .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ -.syntax .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ -.syntax .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ -.syntax .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ -.syntax .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ -.syntax .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ -.syntax .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ -.syntax .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ -.syntax .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ -.syntax .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ -.syntax .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ -.syntax .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ -.syntax .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ -.syntax .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ -.syntax .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ -.syntax .bp { color: #003388 } /* Name.Builtin.Pseudo */ -.syntax .vc { color: #336699 } /* Name.Variable.Class */ -.syntax .vg { color: #dd7700 } /* Name.Variable.Global */ -.syntax .vi { color: #3333bb } /* Name.Variable.Instance */ -.syntax .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/www/static/style.css b/www/static/style.css deleted file mode 100644 index a1e174d..0000000 --- a/www/static/style.css +++ /dev/null @@ -1,229 +0,0 @@ -/** - * Jinja Webpage Design - */ - -body { - background-color: #222; - margin: 0; - padding: 0; - font-family: 'Georgia', serif; - font-size: 15px; - color: #111; -} - -p, li, dd, dt, blockquote { - color: #333; -} - -p { - line-height: 150%; - margin-bottom: 0; - margin-top: 10px; - text-align: justify; -} - -hr { - border-top: 1px solid #ccc; - border-bottom: 0; - border-right: 0; - border-left: 0; - margin-bottom: 10px; - margin-top: 20px; -} - -a { - color: #b41717; -} - -a:hover { - color: #444; -} - -pre { - background-color: #f8f8f8; - color: #000; - border-top: 1px solid #ccc; - border-bottom: 1px solid #ccc; - padding: 5px; - font-size: 13px; - font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace; -} - -table.docutils { - border-collapse: collapse; - border: 2px solid #aaa; - margin: 0.5em 1.5em 0.5em 1.5em; -} - -table.docutils td { - padding: 2px; - border: 1px solid #ddd; -} - -dl { - margin-left: 10px; -} - -li, dt { - margin-top: 5px; -} - -dt { - font-weight: bold; -} - -th { - text-align: left; - padding: 3px; - background-color: #f2f2f2; -} - -tt { - font-size: 13px; - font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace; - color: black; - padding: 1px 2px 1px 2px; - background-color: #f0f0f0; -} - -cite { - /* abusing , it's generated by ReST for `x` */ - font-size: 13px; - font-family: 'Bitstream Vera Sans Mono', 'Monaco', monospace; - font-weight: bold; - font-style: normal; -} - -div.admonition { - margin: 10px 0 10px 0; - padding: 10px; - border: 1px solid #ccc; - background-color: #f8f8f8; -} - -div.admonition p.admonition-title { - margin: -3px 0 5px 0; - font-weight: bold; - color: #b41717; - font-size: 16px; -} - -div.admonition p { - margin: 0 0 0 40px; -} - -#content { - background-color: white; - background-image: url(watermark.png); - padding: 10px; -} - -#footer { - color: #fff; - text-align: center; - font-size: 14px; - padding: 10px 20px 10px 20px; -} - -#footer a { - color: #fff; -} - -#contentwrapper { - max-width: 700px; - padding: 0 10px 20px 20px; -} - -#header { - padding: 10px; - border-top: 6px solid #d20000; - background-color: #888; - background-image: url(headerbg.png); - background-position: top left; -} - -#header h1 { - margin: 0; - padding: 0; - height: 80px; - background-image: url(jinjabanner.png); - background-repeat: no-repeat; -} - -#header h1 span { - display: none; -} - -#navigation { - border: 1px solid #ccc; - background-color: #555; - font-family: 'Trebuchet MS', 'Arial', sans-serif; - margin: -60px 29px 10px 10px; - padding: 0; - float: right; - list-style: none; - font-weight: bold; -} - -#navigation li { - float: left; - margin: 0; - padding: 0; -} - -#navigation li a { - display: block; - text-decoration: none; - padding: 5px 10px 5px 10px; - color: #eee; -} - -#navigation li a:hover { - color: #fff; - background-color: #444; -} - -#navigation li.active { - background-color: #b41717; -} - -#navigation li.active a { - color: #fff; -} - -#navigation li a:focus { - outline: none; - background-color: #222; - color: #fff; -} - -#contentwrapper h1, -#contentwrapper h2, -#contentwrapper h3, -#contentwrapper h4 { - font-family: 'Trebuchet MS', 'Arial', sans-serif; -} - -#contentwrapper h2 a, -#contentwrapper h3 a, -#contentwrapper h4 a { - color: #333; -} - -#contentwrapper h1 { - color: #b41717; - font-size: 28px; - margin: 20px 0 0 -8px; -} - -#contentwrapper h2 { - color: #444; - font-size: 22px; - margin: 20px 0 0 0; -} - -#contentwrapper h2.toc { - color: #222; - font-size: 16px; - margin: 20px 0 0 0; -} diff --git a/www/static/watermark.png b/www/static/watermark.png deleted file mode 100644 index 297d899..0000000 Binary files a/www/static/watermark.png and /dev/null differ