diff options
-rw-r--r-- | bn_django/git_wiki/models.py | 12 | ||||
-rw-r--r-- | bn_django/git_wiki/settings.py | 11 | ||||
-rw-r--r-- | bn_django/git_wiki/templates/git_wiki/item.html | 26 | ||||
-rw-r--r-- | bn_django/git_wiki/views.py | 15 | ||||
-rw-r--r-- | bn_django/photos/templates/photos/photo_detail.html | 20 | ||||
-rw-r--r-- | bn_django/settings.py | 12 | ||||
-rw-r--r-- | bn_django/templates/base.html | 7 | ||||
-rw-r--r-- | bn_django/templates/comment_list | 16 | ||||
-rw-r--r-- | bn_django/templates/comments/form.html | 36 | ||||
-rw-r--r-- | bn_django/templates/comments/freeform.html | 11 | ||||
-rw-r--r-- | bn_django/templates/frontpage.html | 1 | ||||
-rw-r--r-- | bn_django/templates/newknowldge_table | 13 | ||||
-rw-r--r-- | bn_django/urls.py | 29 | ||||
-rw-r--r-- | static/style/default.css | 17 | ||||
-rw-r--r-- | static/style/docutils.css | 279 |
15 files changed, 460 insertions, 45 deletions
diff --git a/bn_django/git_wiki/models.py b/bn_django/git_wiki/models.py index ae9ef79..060e9d5 100644 --- a/bn_django/git_wiki/models.py +++ b/bn_django/git_wiki/models.py @@ -150,10 +150,10 @@ def fromslug(reqslug): import commands if reqslug == '' or reqslug == '/': - f = open(GITWIKI_BASE + '/HEAD','r') + f = open(GITWIKI_DIR + '/HEAD','r') head = f.readline().strip().split()[1] f.close() - f = open(GITWIKI_BASE + '/'+head,'r') + f = open(GITWIKI_DIR + '/'+head,'r') hash = f.readline().strip() f.close() ret = Tree(id=hash) @@ -198,13 +198,13 @@ def fromslug(reqslug): def reposcan(): import os heads = dict() - for h in os.listdir(GITWIKI_BASE + '/refs/heads/'): - f = open(GITWIKI_BASE + '/refs/heads/' + h,'r') + for h in os.listdir(GITWIKI_DIR + '/refs/heads/'): + f = open(GITWIKI_DIR + '/refs/heads/' + h,'r') heads[h.strip()] = f.readline().strip() f.close() tags = dict() - for t in os.listdir(GITWIKI_BASE + '/refs/tags/'): - f = open(GITWIKI_BASE + '/refs/tags/' + t,'r') + for t in os.listdir(GITWIKI_DIR + '/refs/tags/'): + f = open(GITWIKI_DIR + '/refs/tags/' + t,'r') tags[t.strip()] = f.readline().strip() f.close() return (heads, tags) diff --git a/bn_django/git_wiki/settings.py b/bn_django/git_wiki/settings.py index 882dd30..965ac26 100644 --- a/bn_django/git_wiki/settings.py +++ b/bn_django/git_wiki/settings.py @@ -1,13 +1,14 @@ # full path to directory holding the wiki repository (or sys links to # the repositories) -GITWIKI_BASE = '/srv/git/knowledge.git' +GITWIKI_BASE = '/home/bnewbold/knowledge/' # leave this blank (NO WHITE SPACE) unless you're using a bare repo -GITWIKI_NAME = 'knowledge' +GITWIKI_NAME = '' # fill path to the git command -GITCOMMAND = '/usr/bin/git' +GITCOMMAND = '/usr/local/bin/git' -GITPREFIX = 'cd ' +str(GITWIKI_BASE) + '/.. ; ' + str(GITCOMMAND) + ' --git-dir=' \ - + str(GITWIKI_BASE) +GITWIKI_DIR = str(GITWIKI_BASE) + '/' + str(GITWIKI_NAME) + '.git' +GITPREFIX = 'cd ' +str(GITWIKI_BASE) + '; ' + str(GITCOMMAND) + ' --git-dir=' \ + + str(GITWIKI_DIR) diff --git a/bn_django/git_wiki/templates/git_wiki/item.html b/bn_django/git_wiki/templates/git_wiki/item.html index 7562fc6..16d3518 100644 --- a/bn_django/git_wiki/templates/git_wiki/item.html +++ b/bn_django/git_wiki/templates/git_wiki/item.html @@ -1,25 +1,29 @@ {% extends "git_wiki/base.html" %} -{% load markup %} +{% block stylesheets %} +{{ block.super }} +<link rel="STYLESHEET" type="text/css" href="/style/docutils.css" /> +{% endblock %} {% block path %}{{ block.super }} » <a href="/k/{{ item.slug }}/"> {{ item.path }}</a>{% endblock %} -{% block title %}Knowledge Item: {{ item.path }}{% endblock %} +{% block title %}{% endblock %} {% block gitwiki %} - {{ item.contents|restructuredtext }} + +{{ doc.html_body }} <br /><hr /> - <h3>Item name:</h3> - <span class="hash">{{ item.name }}</span> - <h3>Item sha1 hash:</h3> - <span class="hash">{{ item.id }}</span> - <h3>Raw Contents:</h3> - <pre class="large">{{ item.contents|escape|wordwrap:80 }}</pre> - + <h3>Meta</h3> + <b>Item name:</b> + <span class="hash">{{ item.name }}</span><br /> + <b>Item sha1 hash:</b> + <span class="hash">{{ item.id }}</span><br /> <br /> <span class="righty"> - <a href="/k/{{ item.slug }}/pdf/">pdf</a> - <a href="/k/{{ item.slug }}/log">log</a> + <a href="/k/{{ item.slug }}/raw/">raw</a> - + <a href="/k/{{ item.slug }}/pdf/">pdf</a> - + <a href="/k/{{ item.slug }}/log">log</a> </span> <br /> {% endblock %} diff --git a/bn_django/git_wiki/views.py b/bn_django/git_wiki/views.py index 2e66061..c0681c7 100644 --- a/bn_django/git_wiki/views.py +++ b/bn_django/git_wiki/views.py @@ -1,7 +1,7 @@ from django import forms, http, template from django.contrib.auth.decorators import login_required from django.shortcuts import get_object_or_404, render_to_response -from django.http import HttpResponse, Http404 +from django.http import HttpResponse, Http404, HttpResponseServerError import os, commands @@ -42,8 +42,17 @@ def item(request, reqslug, blob=None): else: i = blob i.update() - return render_to_response('git_wiki/item.html', - dict(item=i)) + + try: + from docutils.core import publish_parts + except ImportError: + if settings.DEBUG: + raise HttpResponseServerError(request) + else: + docutils_settings = getattr(settings, "GITWIKI_REST_SETTINGS", {}) + parts = publish_parts(source=i.contents, writer_name="html4css1", settings_overrides=docutils_settings) + return render_to_response('git_wiki/item.html', + dict(item=i,doc=parts)) def olditem(request, hash): i = get_object_or_404(Item, id=hash) diff --git a/bn_django/photos/templates/photos/photo_detail.html b/bn_django/photos/templates/photos/photo_detail.html index 10bf8ba..0d5398d 100644 --- a/bn_django/photos/templates/photos/photo_detail.html +++ b/bn_django/photos/templates/photos/photo_detail.html @@ -1,5 +1,6 @@ {% extends "photos/base.html" %} {# {% load markup %} #} +{% load comments %} {% block path %} {{ block.super }} @@ -94,6 +95,25 @@ {% else %} <p>This is not the photo you are looking for.</p> {% endif %} +{% endblock %} +{% block commentary %} +<div class="content" id="commentary"> +{% load comments %} +{% if user.is_authenticated %} +{% comment_form for photos.photo photo.id with is_public yes %} +comment form:<br /> +{% include "comments/form.html" %} +{% else %} +{% free_comment_form for photos.photo photo.id with is_public yes %} +free comment form:<br /> +{% include "comments/freeform.html" %} +{% endif %} + +comment list:<br /> +{% get_comment_list for photos.photo photo.id as comments %} +{% get_free_comment_list for photos.photo photo.id as free_comments %} +{% include "comment_list" %} +</div> {% endblock %} diff --git a/bn_django/settings.py b/bn_django/settings.py index d04cbe7..3183cdc 100644 --- a/bn_django/settings.py +++ b/bn_django/settings.py @@ -11,7 +11,7 @@ ADMINS = ( MANAGERS = ADMINS DATABASE_ENGINE = 'sqlite3' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'. -DATABASE_NAME = '/srv/django/bn_django.db' # Or path to database file if using sqlite3. +DATABASE_NAME = '/home/bnewbold/bn-project/bn_django/bn_django.db' # Or path to database file if using sqlite3. DATABASE_USER = '' # Not used with sqlite3. DATABASE_PASSWORD = '' # Not used with sqlite3. DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. @@ -19,7 +19,7 @@ DATABASE_PORT = '' # Set to empty string for default. Not used with # Local time zone for this installation. All choices can be found here: # http://www.postgresql.org/docs/8.1/static/datetime-keywords.html#DATETIME-TIMEZONE-SET-TABLE -TIME_ZONE = 'America/Seattle' +TIME_ZONE = 'America/Boston' # Language code for this installation. All choices can be found here: # http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes @@ -34,16 +34,16 @@ USE_I18N = True # Absolute path to the directory that holds media. # Example: "/home/media/media.lawrence.com/" -MEDIA_ROOT = '/srv/http/bryannewbold/static/' +MEDIA_ROOT = '/home/bnewbold/bn-project/media/' # URL that handles the media served from MEDIA_ROOT. # Example: "http://media.lawrence.com" -MEDIA_URL = 'http://static.bryannewbold.com/' +MEDIA_URL = '/media/' # URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a # trailing slash. # Examples: "http://foo.com/media/", "/media/". -ADMIN_MEDIA_PREFIX = 'http://static.bryannewbold.com/django-admin/' +ADMIN_MEDIA_PREFIX = '/style/django-admin/' # Make this unique, and don't share it with anybody. SECRET_KEY = 'jdsgk29845ldsfg0090204tv(GFD8g0(%$)*@$#R%U)#*ifd;/q' @@ -70,7 +70,7 @@ TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. - '/srv/django/bn-project/bn_django/templates', + '/home/bnewbold/bn-project/bn_django/templates', ) INSTALLED_APPS = ( diff --git a/bn_django/templates/base.html b/bn_django/templates/base.html index dd66c97..402a959 100644 --- a/bn_django/templates/base.html +++ b/bn_django/templates/base.html @@ -3,9 +3,9 @@ <html xmlns="http://www.w3.org/1999/xhtml"> <head> {% block stylesheets %} -<!--<link rel="STYLESHEET" type="text/css" href="style/default.css" /> -<link rel="STYLESHEET" type="text/css" href="/style/default.css" />--> -<link rel="STYLESHEET" type="text/css" href="http://static.bryannewbold.com/style/default.css" /> +<link rel="STYLESHEET" type="text/css" href="style/default.css" /> +<link rel="STYLESHEET" type="text/css" href="/style/default.css" /> +<!--<link rel="STYLESHEET" type="text/css" href="http://static.bryannewbold.com/style/default.css" /> --> {% endblock %} {% block externaljs %} {% endblock %} <title>{% block windowtitle %}bryannewbold.com{% endblock %}</title> @@ -55,6 +55,7 @@ Here lies content! {% endblock %} </div> +{% block commentary %} {% endblock %} <div class="content_footer" id="footer" name="footer"> <b> diff --git a/bn_django/templates/comment_list b/bn_django/templates/comment_list new file mode 100644 index 0000000..8ed411d --- /dev/null +++ b/bn_django/templates/comment_list @@ -0,0 +1,16 @@ + +{% if comments %} +<table class="comments"> +{% for c in comments %} +<tr><td class="comment_info"> + <span class="comment_user">{{ c.user }}</span> + <span class="comment_date">{{ c.submit_date }}</span> + </td><td class="comment_content"> + <span class="comment_headline">{{ c.headline|escape|wordwrap:80 }}</span> + <span class="comment_content">{{ c.content|escape|wordwrap:80 }}</span> +</td</tr> +{% endfor %} +</table> +{% else %} +<h3>No comments yet!</h3> +{% endif %} diff --git a/bn_django/templates/comments/form.html b/bn_django/templates/comments/form.html new file mode 100644 index 0000000..316d6a1 --- /dev/null +++ b/bn_django/templates/comments/form.html @@ -0,0 +1,36 @@ +{% load i18n %} +<form {% if photos_optional or photos_required %}enctype="multipart/form-data" {% endif %}action="/comments/post/" method="post"> + +{% if user.is_authenticated %} +<p>{% trans "Username:" %} <strong>{{ user.username }}</strong> (<a href="/accounts/logout/">{% trans "Log out" %}</a>)</p> +{% else %} +<p><label for="id_username">{% trans "Username:" %}</label> <input type="text" name="username" id="id_username" /><br />{% trans "Password:" %} <input type="password" name="password" id="id_password" /> (<a href="/accounts/password_reset/">{% trans "Forgotten your password?" %}</a>)</p> +{% endif %} + +{% if ratings_optional or ratings_required %} +<p>{% trans "Ratings" %} ({% if ratings_required %}{% trans "Required" %}{% else %}{% trans "Optional" %}{% endif %}):</p> +<table> +<tr><th> </th>{% for value in rating_range %}<th>{{ value }}</th>{% endfor %}</tr> +{% for rating in rating_choices %} +<tr><th>{{ rating }}</th>{% for value in rating_range %}<th><input type="radio" name="rating{{ forloop.parentloop.counter }}" value="{{ value }}" /></th>{% endfor %}</tr> +{% endfor %} +</table> +<input type="hidden" name="rating_options" value="{{ rating_options }}" /> +{% endif %} + +{% if photos_optional or photos_required %} +<p><label for="id_photo">{% trans "Post a photo" %}</label> ({% if photos_required %}{% trans "Required" %}{% else %}{% trans "Optional" %}{% endif %}): +<input type="file" name="photo" id="id_photo" /></p> +<input type="hidden" name="photo_options" value="{{ photo_options }}" /> +{% endif %} + +<p><label for="id_comment">{% trans "Comment:" %}</label><br /> +<textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p> + +<p> +<input type="hidden" name="options" value="{{ options }}" /> +<input type="hidden" name="target" value="{{ target }}" /> +<input type="hidden" name="gonzo" value="{{ hash }}" /> +<input type="submit" name="preview" value="{% trans "Preview comment" %}" /> +</p> +</form> diff --git a/bn_django/templates/comments/freeform.html b/bn_django/templates/comments/freeform.html new file mode 100644 index 0000000..95e5153 --- /dev/null +++ b/bn_django/templates/comments/freeform.html @@ -0,0 +1,11 @@ +{% load i18n %} +<form action="/comments/postfree/" method="post"> +<p><label for="id_person_name">{% trans "Your name:" %}</label> <input type="text" id="id_person_name" name="person_name" /></p> +<p><label for="id_comment">{% trans "Comment:" %}</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p> +<p> +<input type="hidden" name="options" value="{{ options }}" /> +<input type="hidden" name="target" value="{{ target }}" /> +<input type="hidden" name="gonzo" value="{{ hash }}" /> +<input type="submit" name="preview" value="{% trans "Preview comment" %}" /> +</p> +</form> diff --git a/bn_django/templates/frontpage.html b/bn_django/templates/frontpage.html index 52db15e..1a7acc2 100644 --- a/bn_django/templates/frontpage.html +++ b/bn_django/templates/frontpage.html @@ -37,6 +37,7 @@ For more recent content see the <a href="/timeline/">timeline</a> <div class="col_right"> <div class="col_title">Latest knowledge</div> {% if latest_knowledge %} +{% include "newknowldge_table" %} {% else %} None yet! {% endif %} diff --git a/bn_django/templates/newknowldge_table b/bn_django/templates/newknowldge_table new file mode 100644 index 0000000..686a12f --- /dev/null +++ b/bn_django/templates/newknowldge_table @@ -0,0 +1,13 @@ +{% if latest_knowledge %} +<table class="listing"> +{% for l in latest_knowledge %} +<tr> + <td class="date"> + {{ l.date }}</td> + <td class="description"> + <a href="/k/commit/{{ l.hash }}/" class="description"> + {{ l.description|truncatewords:6 }}</a></td> + </tr> +{% endfor %} +</table> +{% else %}No shortlog!{% endif %} diff --git a/bn_django/urls.py b/bn_django/urls.py index 9ccf0a3..425066b 100644 --- a/bn_django/urls.py +++ b/bn_django/urls.py @@ -1,18 +1,22 @@ from django.conf.urls.defaults import * from photos.models import Photo +import git_wiki.models urlpatterns = patterns('', # Example: # (r'^bn_django/', include('bn_django.foo.urls')), - (r'^$', 'django.views.generic.simple.direct_to_template', {'template': 'frontpage.html','extra_context':dict({ \ - 'latest_photos':Photo.objects.order_by('date')[:2] \ + (r'^$', 'django.views.generic.simple.direct_to_template', + {'template': 'frontpage.html','extra_context':dict({ \ + 'latest_photos':Photo.objects.order_by('date')[:2], \ #'latest_comments':Photo.objects.order_by('date')[:4] \ - #'latest_knowledge':Photo.objects.order_by('date')[:4] \ + 'latest_knowledge':git_wiki.models.shortlog() \ })}), - (r'^about/$', 'django.views.generic.simple.direct_to_template', {'template': 'about.html'}), - (r'^credits/$', 'django.views.generic.simple.direct_to_template', {'template': 'credits.html'}), - (r'^copyright/$', 'django.views.generic.simple.direct_to_template', {'template': 'copyright.html'}), - + (r'^about/$', 'django.views.generic.simple.direct_to_template', + {'template': 'about.html'}), + (r'^credits/$', 'django.views.generic.simple.direct_to_template', + {'template': 'credits.html'}), + (r'^copyright/$', 'django.views.generic.simple.direct_to_template', + {'template': 'copyright.html'}), (r'^knowledge/$', 'bn_django.git_wiki.views.frontpage',), (r'^k/', include('bn_django.git_wiki.urls')), @@ -23,8 +27,13 @@ urlpatterns = patterns('', # Uncomment this for admin: (r'^admin/', include('django.contrib.admin.urls')), + (r'^comments/', include('django.contrib.comments.urls.comments')), - (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/home/bnewbold/bn-project/static', 'show_indexes': True}), - (r'^style/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/home/bnewbold/bn-project/static/style'}), - (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/home/bnewbold/bn-project/media'}), + (r'^static/(?P<path>.*)$', 'django.views.static.serve', + {'document_root': '/home/bnewbold/bn-project/static', + 'show_indexes': True}), + (r'^style/(?P<path>.*)$', 'django.views.static.serve', + {'document_root': '/home/bnewbold/bn-project/static/style'}), + (r'^media/(?P<path>.*)$', 'django.views.static.serve', + {'document_root': '/home/bnewbold/bn-project/media'}), ) diff --git a/static/style/default.css b/static/style/default.css index e3827dc..1a3a938 100644 --- a/static/style/default.css +++ b/static/style/default.css @@ -159,7 +159,6 @@ pre.large { border: 1px solid black; } .content_footer { margin-left: 4%; - width: 685px; font-size: 10px; font-style: italic; font-family: sans-serif; @@ -193,7 +192,23 @@ pre.large { .photo_thumb { width: 160px; height: 180px; } +table.listing { + width: 100%; + border-spacing: 0px; + font-size: 11px; } +table.listing tr { + width: 100%; } +table.listing td.date { + font-style: italic; + width: 75px; + overflow: hidden; } +table.listing td.description { + overflow: hidden; } +#commentary { + background-color: #a9afdc; + background-color: #c7c6ff; + border-top: 2px solid #000000; } #top_bar { height: 22px; background-color: #993333; diff --git a/static/style/docutils.css b/static/style/docutils.css new file mode 100644 index 0000000..3f75dc6 --- /dev/null +++ b/static/style/docutils.css @@ -0,0 +1,279 @@ +/* +:Author: David Goodger +:Contact: goodger@users.sourceforge.net +:Date: $Date: 2005-12-18 01:56:14 +0100 (Sun, 18 Dec 2005) $ +:Revision: $Revision: 4224 $ +:Copyright: This stylesheet has been placed in the public domain. + +Default cascading style sheet for the HTML output of Docutils. + +See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to +customize this style sheet. +*/ + +/* used to remove borders from tables and images */ +.borderless, table.borderless td, table.borderless th { + border: 0 } + +table.borderless td, table.borderless th { + /* Override padding for "table.docutils td" with "! important". + The right padding separates the table cells. */ + padding: 0 0.5em 0 0 ! important } + +.first { + /* Override more specific margin styles with "! important". */ + margin-top: 0 ! important } + +.last, .with-subtitle { + margin-bottom: 0 ! important } + +.hidden { + display: none } + +a.toc-backref { + text-decoration: none ; + color: black } + +blockquote.epigraph { + margin: 2em 5em ; } + +dl.docutils dd { + margin-bottom: 0.5em } + +/* Uncomment (and remove this text!) to get bold-faced definition list terms +dl.docutils dt { + font-weight: bold } +*/ + +div.abstract { + margin: 2em 5em } + +div.abstract p.topic-title { + font-weight: bold ; + text-align: center } + +div.admonition, div.attention, div.caution, div.danger, div.error, +div.hint, div.important, div.note, div.tip, div.warning { + margin: 2em ; + border: medium outset ; + padding: 1em } + +div.admonition p.admonition-title, div.hint p.admonition-title, +div.important p.admonition-title, div.note p.admonition-title, +div.tip p.admonition-title { + font-weight: bold ; + font-family: sans-serif } + +div.attention p.admonition-title, div.caution p.admonition-title, +div.danger p.admonition-title, div.error p.admonition-title, +div.warning p.admonition-title { + color: red ; + font-weight: bold ; + font-family: sans-serif } + +/* Uncomment (and remove this text!) to get reduced vertical space in + compound paragraphs. +div.compound .compound-first, div.compound .compound-middle { + margin-bottom: 0.5em } + +div.compound .compound-last, div.compound .compound-middle { + margin-top: 0.5em } +*/ + +div.dedication { + margin: 2em 5em ; + text-align: center ; + font-style: italic } + +div.dedication p.topic-title { + font-weight: bold ; + font-style: normal } + +div.figure { + margin-left: 2em ; + margin-right: 2em } + +div.footer, div.header { + clear: both; + font-size: smaller } + +div.line-block { + display: block ; + margin-top: 1em ; + margin-bottom: 1em } + +div.line-block div.line-block { + margin-top: 0 ; + margin-bottom: 0 ; + margin-left: 1.5em } + +div.sidebar { + margin-left: 1em ; + border: medium outset ; + padding: 1em ; + background-color: #ffffee ; + width: 40% ; + float: right ; + clear: right } + +div.sidebar p.rubric { + font-family: sans-serif ; + font-size: medium } + +div.system-messages { + margin: 5em } + +div.system-messages h1 { + color: red } + +div.system-message { + border: medium outset ; + padding: 1em } + +div.system-message p.system-message-title { + color: red ; + font-weight: bold } + +div.topic { + margin: 2em } + +h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, +h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { + margin-top: 0.4em } + +h1.title { + text-align: center } + +h2.subtitle { + text-align: center } + +hr.docutils { + width: 75% } + +img.align-left { + clear: left } + +img.align-right { + clear: right } + +ol.simple, ul.simple { + margin-bottom: 1em } + +ol.arabic { + list-style: decimal } + +ol.loweralpha { + list-style: lower-alpha } + +ol.upperalpha { + list-style: upper-alpha } + +ol.lowerroman { + list-style: lower-roman } + +ol.upperroman { + list-style: upper-roman } + +p.attribution { + text-align: right ; + margin-left: 50% } + +p.caption { + font-style: italic } + +p.credits { + font-style: italic ; + font-size: smaller } + +p.label { + white-space: nowrap } + +p.rubric { + font-weight: bold ; + font-size: larger ; + color: maroon ; + text-align: center } + +p.sidebar-title { + font-family: sans-serif ; + font-weight: bold ; + font-size: larger } + +p.sidebar-subtitle { + font-family: sans-serif ; + font-weight: bold } + +p.topic-title { + font-weight: bold } + +pre.address { + margin-bottom: 0 ; + margin-top: 0 ; + font-family: serif ; + font-size: 100% } + +pre.literal-block, pre.doctest-block { + margin-left: 2em ; + margin-right: 2em ; + background-color: #ffffff; } + +span.classifier { + font-family: sans-serif ; + font-style: oblique } + +span.classifier-delimiter { + font-family: sans-serif ; + font-weight: bold } + +span.interpreted { + font-family: sans-serif } + +span.option { + white-space: nowrap } + +span.pre { + white-space: pre } + +span.problematic { + color: red } + +span.section-subtitle { + /* font-size relative to parent (h1..h6 element) */ + font-size: 80% } + +table.citation { + border-left: solid 1px gray; + margin-left: 1px } + +table.docinfo { + margin: 2em 4em } + +table.docutils { + margin-top: 0.5em ; + margin-bottom: 0.5em } + +table.footnote { + border-left: solid 1px black; + margin-left: 1px } + +table.docutils td, table.docutils th, +table.docinfo td, table.docinfo th { + padding-left: 0.5em ; + padding-right: 0.5em ; + vertical-align: top } + +table.docutils th.field-name, table.docinfo th.docinfo-name { + font-weight: bold ; + text-align: left ; + white-space: nowrap ; + padding-left: 0 } + +h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, +h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { + font-size: 100% } + +tt.docutils { + background-color: #ffffff; } + +ul.auto-toc { + list-style-type: none } |