Browse Source

Move bootstrap-rst from submodule to in-tree

I no longer have intent to further this plugin, so I think it's best to move it
in-tree where it's more easily accessible for others.

Since everything is squashed, the changes from the last version are:
  * use relative imports in bootstrap.py (thanks to @davidchall)
  * updated maintainer email
  * very small documentation fixes
Alex Waite 7 years ago
parent
commit
2e2b4c4594
56 changed files with 15994 additions and 4 deletions
  1. 0 3
      .gitmodules
  2. 0 1
      bootstrap-rst
  3. BIN
      bootstrap-rst/140x140.png
  4. BIN
      bootstrap-rst/171x180.png
  5. BIN
      bootstrap-rst/300x200.png
  6. 21 0
      bootstrap-rst/LICENSE
  7. 32 0
      bootstrap-rst/Makefile
  8. 44 0
      bootstrap-rst/README.rst
  9. 12 0
      bootstrap-rst/__init__.py
  10. 310 0
      bootstrap-rst/bootstrap.py
  11. 347 0
      bootstrap-rst/bootstrap/css/bootstrap-theme.css
  12. 1 0
      bootstrap-rst/bootstrap/css/bootstrap-theme.css.map
  13. 7 0
      bootstrap-rst/bootstrap/css/bootstrap-theme.min.css
  14. 5785 0
      bootstrap-rst/bootstrap/css/bootstrap.css
  15. 1 0
      bootstrap-rst/bootstrap/css/bootstrap.css.map
  16. 7 0
      bootstrap-rst/bootstrap/css/bootstrap.min.css
  17. BIN
      bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.eot
  18. 229 0
      bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.svg
  19. BIN
      bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.ttf
  20. BIN
      bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.woff
  21. 1951 0
      bootstrap-rst/bootstrap/js/bootstrap.js
  22. 6 0
      bootstrap-rst/bootstrap/js/bootstrap.min.js
  23. 76 0
      bootstrap-rst/custom.css
  24. 465 0
      bootstrap-rst/directives.py
  25. 185 0
      bootstrap-rst/doc/CSS-buttons.txt
  26. 48 0
      bootstrap-rst/doc/CSS-code.txt
  27. 235 0
      bootstrap-rst/doc/CSS-grid-system.txt
  28. 68 0
      bootstrap-rst/doc/CSS-helpers.txt
  29. 52 0
      bootstrap-rst/doc/CSS-images.txt
  30. 92 0
      bootstrap-rst/doc/CSS-overview.txt
  31. 292 0
      bootstrap-rst/doc/CSS-tables.txt
  32. 441 0
      bootstrap-rst/doc/CSS-typography.txt
  33. 62 0
      bootstrap-rst/doc/CSS.rst
  34. 805 0
      bootstrap-rst/doc/bootstrap-glyphs.txt
  35. 21 0
      bootstrap-rst/doc/bootstrap-roles.txt
  36. 70 0
      bootstrap-rst/doc/components-alerts.txt
  37. 15 0
      bootstrap-rst/doc/components-badges.txt
  38. 43 0
      bootstrap-rst/doc/components-breadcrumbs.txt
  39. 37 0
      bootstrap-rst/doc/components-glyphicons.txt
  40. 45 0
      bootstrap-rst/doc/components-jumbotron.txt
  41. 64 0
      bootstrap-rst/doc/components-labels.txt
  42. 26 0
      bootstrap-rst/doc/components-page-header.txt
  43. 210 0
      bootstrap-rst/doc/components-pagination.txt
  44. 140 0
      bootstrap-rst/doc/components-progress.txt
  45. 157 0
      bootstrap-rst/doc/components-thumbnails.txt
  46. 53 0
      bootstrap-rst/doc/components-wells.txt
  47. 65 0
      bootstrap-rst/doc/components.rst
  48. 160 0
      bootstrap-rst/doc/getting-started.rst
  49. 801 0
      bootstrap-rst/doc/glyphicons-defs.txt
  50. 225 0
      bootstrap-rst/doc/glyphicons-list.txt
  51. 403 0
      bootstrap-rst/doc/index.rst
  52. 1542 0
      bootstrap-rst/docs-min.css
  53. 223 0
      bootstrap-rst/make-glyphicons.py
  54. 22 0
      bootstrap-rst/page.tmpl
  55. 59 0
      bootstrap-rst/pygments.css
  56. 39 0
      bootstrap-rst/roles.py

+ 0 - 3
.gitmodules

@@ -121,9 +121,6 @@
 [submodule "mboxreader"]
 	path = pelican-mboxreader
 	url = https://github.com/TC01/pelican-mboxreader
-[submodule "bootstrap-rst"]
-	path = bootstrap-rst
-	url = https://github.com/aqw/bootstrap-rst
 [submodule "pelican-version"]
 	path = pelican-version
 	url = https://github.com/Shaked/pelican-version

+ 0 - 1
bootstrap-rst

@@ -1 +0,0 @@
-Subproject commit 1366f7c8f72814e37ec565f3aca02215b8338b3b

BIN
bootstrap-rst/140x140.png


BIN
bootstrap-rst/171x180.png


BIN
bootstrap-rst/300x200.png


+ 21 - 0
bootstrap-rst/LICENSE

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Nicolas P. Rougier
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

+ 32 - 0
bootstrap-rst/Makefile

@@ -0,0 +1,32 @@
+MAKE             = /usr/bin/make
+RST2HTML         = ./bootstrap.py
+STYLESHEET       =
+RST2HTML_OPTIONS = --strip-comments             \
+                   --report=3                   \
+                   --no-doc-title               \
+                   --traceback                  \
+                   --compact-lists              \
+                   --no-toc-backlinks           \
+                   --syntax-highlight=short     \
+                   --template=page.tmpl         \
+                   --cloak-email-addresses      \
+                   --stylesheet=$(STYLESHEET)   \
+                   --link-stylesheet
+
+SOURCES = $(wildcard doc/*.rst)
+TMP = $(subst .rst,.html, $(SOURCES))
+OBJECTS = $(subst doc/,, $(TMP))
+
+all:$(OBJECTS)
+
+%.html: doc/%.rst
+	@echo "  - $@"
+	@$(RST2HTML) $(RST2HTML_OPTIONS) $< $@
+
+clean:
+	@-rm -f $(OBJECTS)
+
+distclean: clean
+	@-rm -f `find . -name "*~"`
+
+.PHONY: all clean distclean

+ 44 - 0
bootstrap-rst/README.rst

@@ -0,0 +1,44 @@
+Bootstrap RST for Pelican
+=========================
+
+This plugin merely adds what little glue is needed to make bootstrap-rst play
+nicely with Pelican. All credit goes to **Nicolas P. Rougier**.
+
+It is much more featureful than the 'twitter_bootstrap_rst_directives' plugin.
+
+Usage
+-----
+Enable the plugin in your `pelicanconf.py`
+
+    PLUGINS = [
+        'bootstrap-rst'
+    ]
+
+And then use any of the many fine directives made available. Peruse the `doc`
+folder for more information.
+
+Bootstrap RST
+=============
+
+Bootstrap RST offers an easy access to the `bootstrap <http://getbootstrap.com>`_
+framework using the `reStructuredText <http://docutils.sourceforge.net/rst.html>`_
+markup language. Bootstrap RST provides a set of new directives and roles (row,
+column, button, list, etc.) that allow seamless integration of the bootstrap
+framework.  Have a look at the source of this page for example and see below for
+what is available so far.
+
+See demo at: `http://rougier.github.io/bootstrap-rst/ <http://rougier.github.io/bootstrap-rst/>`_.
+
+Creators
+========
+
+**Nicolas P. Rougier** :
+
+* `http://www.labri.fr/perso/nrougier/ <http://www.labri.fr/perso/nrougier/>`_
+* `https://github.com/rougier <https://github.com/rougier>`_
+
+Copyright and License
+=====================
+
+Code and documentation copyright 2014 Nicolas P. Rougier.
+Code released under the MIT license. Docs released under CC BY 3.0.

+ 12 - 0
bootstrap-rst/__init__.py

@@ -0,0 +1,12 @@
+# -*- coding: utf-8 -*-
+__title__ = 'bootstrap-rst'
+__version__ = '0.1.1'
+__author__ = 'Nicolas P. Rougier'
+__credits__ = ['Nicolas P. Rougier', 'Alex Waite', 'Trevor Morgan']
+__maintainer__ = "Alex Waite"
+__email__ = "alex@waite.eu"
+__status__ = "Development"
+__license__ = 'MIT'
+__copyright__ = 'Copyright 2014'
+
+from .bootstrap import *

+ 310 - 0
bootstrap-rst/bootstrap.py

@@ -0,0 +1,310 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# -----------------------------------------------------------------------------
+# Bootstrap RST
+# Copyright (c) 2014, Nicolas P. Rougier
+# Distributed under the (new) BSD License. See LICENSE.txt for more info.
+# -----------------------------------------------------------------------------
+import sys, os, re
+from docutils import nodes, utils
+from docutils.parsers.rst.directives import images
+from docutils.transforms import TransformError, Transform, parts
+from docutils.parsers.rst import Directive, directives, states, roles
+from docutils.nodes import fully_normalize_name, whitespace_normalize_name
+from docutils.parsers.rst.roles import set_classes
+
+from docutils.io import StringOutput
+from docutils.core import Publisher
+
+from pelican import signals
+from pelican.readers import RstReader, PelicanHTMLTranslator
+
+from .roles import *
+from .directives import *
+
+
+class HTMLTranslator(PelicanHTMLTranslator):
+    """
+    This is a translator class for the docutils system.
+    """
+
+    def visit_h1(self, node):
+        self.body.append('<h1>%s</h1>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_h2(self, node):
+        self.body.append('<h2>%s</h2>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_h3(self, node):
+        self.body.append('<h3>%s</h3>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_h4(self, node):
+        self.body.append('<h4>%s</h4>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_h5(self, node):
+        self.body.append('<h5>%s</h5>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_h6(self, node):
+        self.body.append('<h6>%s</h6>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_label_default(self, node):
+        self.body.append(
+            '<span class="label label-default">%s</span>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_label_primary(self, node):
+        self.body.append(
+            '<span class="label label-primary">%s</span>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_label_success(self, node):
+        self.body.append(
+            '<span class="label label-success">%s</span>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_label_info(self, node):
+        self.body.append(
+            '<span class="label label-info">%s</span>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_label_warning(self, node):
+        self.body.append(
+            '<span class="label label-warning">%s</span>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_label_danger(self, node):
+        self.body.append(
+            '<span class="label label-danger">%s</span>' % node.children[0])
+        raise nodes.SkipNode
+
+    def visit_page_row(self, node):
+        self.body.append(self.starttag(node,'div'))
+
+    def depart_page_row(self, node):
+        self.body.append('</div>\n')
+
+    def visit_page_column(self, node):
+        self.body.append(self.starttag(node,'div'))
+
+    def depart_page_column(self, node):
+        self.body.append('</div>\n')
+
+
+    def visit_button(self, node):
+        btn_classes = { 'primary' : 'btn-primary', 'success' : 'btn-success',
+                        'info'    : 'btn-info',    'warning' : 'btn-warning',
+                        'danger'  : 'btn-danger',  'link'    : 'btn-link',
+                        'outline' : 'btn-outline', 'tiny'    : 'btn-xs',
+                        'small'   : 'btn-sm',      'large'   : 'btn-lg',
+                        'block'   : 'btn-block',   'active'  : 'btn-active' }
+
+        classes = 'btn '
+        flag = False
+        for node_class in node['classes']:
+            if node_class in ['primary', 'success', 'warning'
+                              'info', 'link', 'danger', 'outline']:
+                flag = True
+            btn_class = btn_classes.get(node_class, None)
+            if btn_class:
+                classes += btn_class + ' '
+        if flag == False:
+            classes += 'btn-default'
+
+        target = node['target']
+        properties = ''
+
+        # Disabled
+        if 'disabled' in node['classes']:
+            if target:
+                properties += ' disabled="disabled"'
+            else:
+                classes += ' disabled'
+
+        # Data toggle
+        if 'toggle' in node['classes']:
+            classes += ' dropdown-toggle '
+            properties += ' data-toggle="dropdown"'
+        if target:
+            properties += ' role="button"'
+            anchor = '<a href="%s" class="%s" %s>' % (target,classes,properties)
+            self.body.append(anchor)
+        else:
+            properties += ' type="button"'
+            button = '<button class="%s" %s>' % (classes,properties)
+            self.body.append(button)
+
+    def depart_button(self, node):
+        if node['target']:
+            self.body.append('</a>\n')
+        else:
+            self.body.append('</button>\n')
+
+
+    def visit_progress(self, node):
+        prg_classes = { 'success' : 'progress-bar-success',
+                        'info'    : 'progress-bar-info',
+                        'warning' : 'progress-bar-warning',
+                        'danger'  : 'progress-bar-danger' }
+
+        label = node['label']
+        classes = 'progress-bar'
+        flag = False
+        for nodeclass in node['classes']:
+            flag = True
+            classes += ' ' + prg_classes.get(nodeclass, '')
+        if flag == False:
+            classes += ' progress-bar-default'
+        properties = 'role="progress-bar"'
+        properties += ' aria-valuenow="%d"' % int(node['value'])
+        properties += ' aria-valuemin="%d"' % int(node['value_min'])
+        properties += ' aria-valuemax="%d"' % int(node['value_max'])
+        properties += ' style="width: %d%%";' % int(node['value'])
+        if 'active' in node['classes']:
+            self.body.append('<div class="progress progress-striped active">')
+        elif 'striped' in node['classes']:
+            self.body.append('<div class="progress progress-striped">')
+        else:
+            self.body.append('<div class="progress">')
+        self.body.append(
+            '<div class="%s" %s>%s</div>' % (classes,properties,label))
+        self.body.append('</div>')
+        raise nodes.SkipNode
+
+    def visit_alert(self, node):
+        self.body.append(self.starttag(node, 'div', CLASS='alert'))
+        if node.dismissable:
+            self.body.append(
+                u"""<button type="button" class="close" data-dismiss="alert" """
+                u"""aria-hidden="true">×</button>""")
+
+    def depart_alert(self, node):
+        self.body.append('</div>\n')
+
+    def visit_callout(self, node):
+        self.body.append(self.starttag(node, 'div', CLASS='bs-callout'))
+
+    def depart_callout(self, node):
+        self.body.append('</div>\n')
+
+
+
+    # overwritten
+    def visit_definition_list(self, node):
+        list_class = node.parent.get('list-class', [])
+        list_class.append('docutils')
+        list_class = ' '.join(list_class)
+        self.body.append(self.starttag(node, 'dl', CLASS=list_class))
+
+    # overwritten
+    def visit_sidebar(self, node):
+        self.body.append(self.starttag(node, 'div', CLASS='col-md-3 col-md-push-9'))
+        self.body.append(self.starttag(node, 'div', CLASS='bs-docs-sidebar hidden-print affix-top'))
+        self.body.append(self.starttag(node, 'div', CLASS='sidebar'))
+        self.set_first_last(node)
+        self.in_sidebar = True
+
+    # overwritten
+    def depart_sidebar(self, node):
+        self.body.append('</div>\n')
+        self.body.append('</div>\n')
+        self.body.append('</div>\n')
+        #  Opening tag for body
+        self.body.append(self.starttag(node, 'div', CLASS='col-md-9 col-md-pull-3'))
+        self.in_sidebar = False
+
+    # overwritten : removed compact paragraph
+    # def visit_paragraph(self, node):
+    #     if self.should_be_compact_paragraph(node):
+    #         self.context.append('')
+    #     else:
+    #         self.body.append(self.starttag(node, 'p', ''))
+    #     self.context.append('</p>\n')
+
+    # overwritten: remove border=1, replace docutils/table class
+    def visit_table(self, node):
+        self.context.append(self.compact_p)
+        self.compact_p = True
+        #classes = ' '.join(['docutils', self.settings.table_style]).strip()
+        classes = ' '.join(['table', self.settings.table_style]).strip()
+        self.body.append(self.starttag(node, 'table', CLASS=classes))
+
+    # overwritten : removed 'container' class
+    def visit_container(self, node):
+        self.body.append(self.starttag(node, 'div', CLASS=''))
+
+    # overwritten: get rid of <hr> tag
+    def depart_header(self, node):
+        start = self.context.pop()
+        header = [self.starttag(node, 'div', CLASS='header')]
+        header.extend(self.body[start:])
+        header.append('\n</div>\n')
+        self.body_prefix.extend(header)
+        self.header.extend(header)
+        del self.body[start:]
+
+    # overwritten: get rid of <hr> tag
+    def depart_footer(self, node):
+        start = self.context.pop()
+        footer = [self.starttag(node, 'div', CLASS='footer')]
+        footer.extend(self.body[start:])
+        footer.append('\n</div>\n')
+        self.footer.extend(footer)
+        self.body_suffix[:0] = footer
+        del self.body[start:]
+
+    # overwritten
+    def depart_document(self, node):
+        self.head_prefix.extend([self.doctype,
+                                 self.head_prefix_template %
+                                 {'lang': self.settings.language_code}])
+        self.html_prolog.append(self.doctype)
+        self.meta.insert(0, self.content_type % self.settings.output_encoding)
+        self.head.insert(0, self.content_type % self.settings.output_encoding)
+        if self.math_header:
+            self.head.append(self.math_header)
+        # skip content-type meta tag with interpolated charset value:
+        self.html_head.extend(self.head[1:])
+        # self.body_prefix.append(self.starttag(node, 'div', CLASS='document'))
+        self.body_prefix.append(self.starttag(node, 'div', CLASS='container'))
+        # self.body_suffix.insert(0, '</div>\n')
+        self.fragment.extend(self.body) # self.fragment is the "naked" body
+        self.html_body.extend(self.body_prefix[1:] + self.body_pre_docinfo
+                              + self.docinfo + self.body
+                              + self.body_suffix[:-1])
+        assert not self.context, 'len(context) = %s' % len(self.context)
+
+
+# -----------------------------------------------------------------------------
+class RSTReader(RstReader):
+    """
+        A custom RST reader that behaves exactly like its parent class RstReader
+        with the difference that it uses our HTMLTranslator
+    """
+
+    def _get_publisher(self, source_path):
+        extra_params = {'initial_header_level': '2',
+                        'syntax_highlight': 'short',
+                        'input_encoding': 'utf-8'}
+        user_params = self.settings.get('DOCUTILS_SETTINGS')
+        if user_params:
+            extra_params.update(user_params)
+
+        pub = Publisher(destination_class=StringOutput)
+        pub.set_components('standalone', 'restructuredtext', 'html')
+        pub.writer.translator_class = HTMLTranslator
+        pub.process_programmatic_settings(None, extra_params, None)
+        pub.set_source(source_path=source_path)
+        pub.publish()
+        return pub
+
+
+def add_reader(readers):
+    readers.reader_classes['rst'] = RSTReader
+
+def register():
+    signals.readers_init.connect(add_reader)

+ 347 - 0
bootstrap-rst/bootstrap/css/bootstrap-theme.css

@@ -0,0 +1,347 @@
+/*!
+ * Bootstrap v3.1.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
+}
+.btn-default:active,
+.btn-primary:active,
+.btn-success:active,
+.btn-info:active,
+.btn-warning:active,
+.btn-danger:active,
+.btn-default.active,
+.btn-primary.active,
+.btn-success.active,
+.btn-info.active,
+.btn-warning.active,
+.btn-danger.active {
+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
+}
+.btn:active,
+.btn.active {
+  background-image: none;
+}
+.btn-default {
+  text-shadow: 0 1px 0 #fff;
+  background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
+  background-image:         linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #dbdbdb;
+  border-color: #ccc;
+}
+.btn-default:hover,
+.btn-default:focus {
+  background-color: #e0e0e0;
+  background-position: 0 -15px;
+}
+.btn-default:active,
+.btn-default.active {
+  background-color: #e0e0e0;
+  border-color: #dbdbdb;
+}
+.btn-primary {
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
+  background-image:         linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #2b669a;
+}
+.btn-primary:hover,
+.btn-primary:focus {
+  background-color: #2d6ca2;
+  background-position: 0 -15px;
+}
+.btn-primary:active,
+.btn-primary.active {
+  background-color: #2d6ca2;
+  border-color: #2b669a;
+}
+.btn-success {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #3e8f3e;
+}
+.btn-success:hover,
+.btn-success:focus {
+  background-color: #419641;
+  background-position: 0 -15px;
+}
+.btn-success:active,
+.btn-success.active {
+  background-color: #419641;
+  border-color: #3e8f3e;
+}
+.btn-info {
+  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+  background-image:         linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #28a4c9;
+}
+.btn-info:hover,
+.btn-info:focus {
+  background-color: #2aabd2;
+  background-position: 0 -15px;
+}
+.btn-info:active,
+.btn-info.active {
+  background-color: #2aabd2;
+  border-color: #28a4c9;
+}
+.btn-warning {
+  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #e38d13;
+}
+.btn-warning:hover,
+.btn-warning:focus {
+  background-color: #eb9316;
+  background-position: 0 -15px;
+}
+.btn-warning:active,
+.btn-warning.active {
+  background-color: #eb9316;
+  border-color: #e38d13;
+}
+.btn-danger {
+  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+  background-image:         linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-color: #b92c28;
+}
+.btn-danger:hover,
+.btn-danger:focus {
+  background-color: #c12e2a;
+  background-position: 0 -15px;
+}
+.btn-danger:active,
+.btn-danger.active {
+  background-color: #c12e2a;
+  border-color: #b92c28;
+}
+.thumbnail,
+.img-thumbnail {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+  background-color: #e8e8e8;
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+  background-repeat: repeat-x;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  background-color: #357ebd;
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+  background-image:         linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+  background-repeat: repeat-x;
+}
+.navbar-default {
+  background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
+  background-image:         linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+  border-radius: 4px;
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
+}
+.navbar-default .navbar-nav > .active > a {
+  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
+  background-image:         linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
+  background-repeat: repeat-x;
+  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
+          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
+}
+.navbar-brand,
+.navbar-nav > li > a {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
+}
+.navbar-inverse {
+  background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
+  background-image:         linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  background-repeat: repeat-x;
+}
+.navbar-inverse .navbar-nav > .active > a {
+  background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
+  background-image:         linear-gradient(to bottom, #222 0%, #282828 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
+  background-repeat: repeat-x;
+  -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
+          box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
+}
+.navbar-inverse .navbar-brand,
+.navbar-inverse .navbar-nav > li > a {
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
+}
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  border-radius: 0;
+}
+.alert {
+  text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
+}
+.alert-success {
+  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+  background-image:         linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #b2dba1;
+}
+.alert-info {
+  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+  background-image:         linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #9acfea;
+}
+.alert-warning {
+  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #f5e79e;
+}
+.alert-danger {
+  background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+  background-image:         linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #dca7a7;
+}
+.progress {
+  background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+  background-image:         linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar {
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
+  background-image:         linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-success {
+  background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+  background-image:         linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-info {
+  background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+  background-image:         linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-warning {
+  background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+  background-image:         linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
+  background-repeat: repeat-x;
+}
+.progress-bar-danger {
+  background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+  background-image:         linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
+  background-repeat: repeat-x;
+}
+.list-group {
+  border-radius: 4px;
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  text-shadow: 0 -1px 0 #3071a9;
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
+  background-image:         linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #3278b3;
+}
+.panel {
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+}
+.panel-default > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+  background-image:         linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-primary > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
+  background-image:         linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-success > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+  background-image:         linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-info > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+  background-image:         linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-warning > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+  background-image:         linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
+  background-repeat: repeat-x;
+}
+.panel-danger > .panel-heading {
+  background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+  background-image:         linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
+  background-repeat: repeat-x;
+}
+.well {
+  background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+  background-image:         linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
+  background-repeat: repeat-x;
+  border-color: #dcdcdc;
+  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
+          box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
+}
+/*# sourceMappingURL=bootstrap-theme.css.map */

File diff suppressed because it is too large
+ 1 - 0
bootstrap-rst/bootstrap/css/bootstrap-theme.css.map


File diff suppressed because it is too large
+ 7 - 0
bootstrap-rst/bootstrap/css/bootstrap-theme.min.css


File diff suppressed because it is too large
+ 5785 - 0
bootstrap-rst/bootstrap/css/bootstrap.css


File diff suppressed because it is too large
+ 1 - 0
bootstrap-rst/bootstrap/css/bootstrap.css.map


File diff suppressed because it is too large
+ 7 - 0
bootstrap-rst/bootstrap/css/bootstrap.min.css


BIN
bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.eot


File diff suppressed because it is too large
+ 229 - 0
bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.svg


BIN
bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.ttf


BIN
bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.woff


File diff suppressed because it is too large
+ 1951 - 0
bootstrap-rst/bootstrap/js/bootstrap.js


File diff suppressed because it is too large
+ 6 - 0
bootstrap-rst/bootstrap/js/bootstrap.min.js


+ 76 - 0
bootstrap-rst/custom.css

@@ -0,0 +1,76 @@
+/* Swap h2/h3 sizes */
+/* h2,.h2 { font-size: 24px; }*/
+/*h3,.h3 { font-size: 30px; }*/
+
+/* sidebar title */
+.sidebar-title { display: none; }
+.sidebar .topic-title { display: none; }
+
+/* admonition title */
+.admonition-title { display: none; }
+
+
+/* page header h1 */
+.section > h1 {
+  padding-bottom: 9px;
+  margin: 40px 0 20px;
+  border-bottom: 1px solid #eee;
+}
+
+
+/* Sidebar */
+.sidebar ul {
+    font-size: 110%;
+    padding: 0;
+    margin: 0;
+    list-style: none;
+    /*padding-top: .5em;*/
+    padding-bottom: 1em;
+}
+
+.sidebar p {
+    padding: 0;
+    margin: 0;
+    padding-bottom: .1em;
+}
+
+.sidebar ul p {
+    text-align: left;
+    padding: 0;
+    margin: 0;
+    padding-top: .25em;
+}
+
+.sidebar ul ul {
+    font-size: 85%;
+    padding: 0;
+    margin: 0;
+    list-style: none;
+    margin-top: .5em;
+    margin-bottom: .5em;
+    margin-left: 10px;
+    padding-left: 10px;
+    border-left: 1px solid #eeeeff;
+}
+.sidebar ul ul p {
+    padding: 0;
+    margin: 0;
+    padding-top: .25em;
+}
+
+/* kbd -> .kbd */
+.kbd {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+.kbd {
+  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+}
+.kbd {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: #fff;
+  background-color: #333;
+  border-radius: 3px;
+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
+}

+ 465 - 0
bootstrap-rst/directives.py

@@ -0,0 +1,465 @@
+# -*- coding: utf-8 -*-
+# -----------------------------------------------------------------------------
+# Bootstrap RST
+# Copyright (c) 2014, Nicolas P. Rougier
+# Distributed under the (new) BSD License. See LICENSE.txt for more info.
+# -----------------------------------------------------------------------------
+from docutils import nodes
+from docutils.parsers.rst.directives.body import BasePseudoSection
+from docutils.parsers.rst import Directive, directives, states, roles
+from docutils.parsers.rst.roles import set_classes
+from docutils.nodes import fully_normalize_name, whitespace_normalize_name
+from docutils.parsers.rst.directives.tables import Table
+from docutils.parsers.rst.roles import set_classes
+from docutils.transforms import misc
+
+
+class button(nodes.Inline, nodes.Element): pass
+class progress(nodes.Inline, nodes.Element): pass
+class alert(nodes.General, nodes.Element): pass
+class callout(nodes.General, nodes.Element): pass
+
+
+
+class Alert(Directive):
+    required_arguments, optional_arguments = 0,0
+    has_content = True
+    option_spec = {'type': directives.unchanged,
+                   'dismissable': directives.flag,
+                   'class': directives.class_option }
+
+    def run(self):
+        # Raise an error if the directive does not have contents.
+        self.assert_has_content()
+        text = '\n'.join(self.content)
+
+        # Create the node, to be populated by `nested_parse`.
+        node = alert(text, **self.options)
+        node['classes'] = ['alert']
+        node['classes'] += self.options.get('class', [])
+        if 'type' in self.options:
+            node['classes'] += ['alert-%s' % node['type']]
+        node.dismissable = False
+        if 'dismissable' in self.options:
+            node['classes'] += ['alert-dismissable']
+            node.dismissable = True
+
+        # Parse the directive contents.
+        self.state.nested_parse(self.content, self.content_offset, node)
+        return [node]
+
+
+class Callout(Directive):
+    required_arguments, optional_arguments = 0,1
+    has_content = True
+
+    def run(self):
+        # Raise an error if the directive does not have contents.
+        self.assert_has_content()
+        text = '\n'.join(self.content)
+
+        # Create the node, to be populated by `nested_parse`.
+        node = callout(self.block_text, **self.options)
+        node['classes'] = ['bs-callout']
+        if len(self.arguments):
+            type = 'bs-callout-' + self.arguments[0]
+        else:
+            type = 'bs-callout-info'
+        node['classes'] += [type]
+
+        # Parse the directive contents.
+        self.state.nested_parse(self.content, self.content_offset, node)
+        return [node]
+
+
+
+class Container(Directive):
+    optional_arguments = 1
+    final_argument_whitespace = True
+    option_spec = {'name': directives.unchanged}
+    has_content = True
+    default_class = None
+
+    def run(self):
+        self.assert_has_content()
+        text = '\n'.join(self.content)
+        try:
+            if self.arguments:
+                classes = directives.class_option(self.arguments[0])
+            else:
+                classes = self.default_class
+        except ValueError:
+            raise self.error(
+                'Invalid class attribute value for "%s" directive: "%s".'
+                % (self.name, self.arguments[0]))
+        node = nodes.container(text)
+        node['classes'].extend(classes)
+        self.add_name(node)
+        self.state.nested_parse(self.content, self.content_offset, node)
+        return [node]
+
+class Thumbnail(Container):
+    default_class = ['thumbnail']
+
+class Caption(Container):
+    default_class = ['caption']
+
+class Jumbotron(Container):
+    default_class = ['jumbotron']
+
+class PageHeader(Container):
+    default_class = ['page-header']
+
+
+
+class Lead(Directive):
+    required_arguments, optional_arguments = 0,0
+    has_content = True
+    option_spec = {'class':  directives.class_option }
+    def run(self):
+        self.assert_has_content()
+        text = '\n'.join(self.content)
+        node = nodes.container(text, **self.options)
+        node['classes'] = ['lead']
+        node['classes'] += self.options.get('class', [])
+        self.state.nested_parse(self.content, self.content_offset, node)
+        return [node]
+
+
+class Paragraph(Directive):
+    required_arguments, optional_arguments = 0,0
+    has_content = True
+    option_spec = {'class':  directives.class_option }
+
+    def run(self):
+        # Raise an error if the directive does not have contents.
+        self.assert_has_content()
+        text = '\n'.join(self.content)
+
+        # Create the node, to be populated by `nested_parse`.
+        node = nodes.paragraph(text, **self.options)
+        node['classes'] += self.options.get('class', [])
+
+        # Parse the directive contents.
+        self.state.nested_parse(self.content, self.content_offset, node)
+        return [node]
+
+
+class PageRow(Directive):
+
+    """
+    Directive to declare a container that is column-aware.
+    """
+
+    required_arguments, optional_arguments = 0,1
+    final_argument_whitespace = True
+    has_content = True
+    option_spec = {'class':  directives.class_option }
+    def run(self):
+        self.assert_has_content()
+        node = nodes.container(self.content)
+        node['classes'] = ['row']
+        if self.arguments:
+            node['classes'] += [self.arguments[0]]
+        node['classes'] += self.options.get('class', [])
+
+        self.add_name(node)
+        self.state.nested_parse(self.content, self.content_offset, node)
+        return [node]
+
+
+
+class PageColumn(Directive):
+
+    """
+    Directive to declare column with width and offset.
+    """
+
+    required_arguments, optional_arguments = 0,0
+    final_argument_whitespace = True
+    has_content = True
+    option_spec = {'width':  directives.positive_int,
+                   'offset': directives.positive_int,
+                   'push':   directives.positive_int,
+                   'pull':   directives.positive_int,
+                   'size':   lambda x: directives.choice(x, ('xs', 'sm', 'md', 'lg')),
+                   'class':  directives.class_option }
+    def run(self):
+        self.assert_has_content()
+        text = '\n'.join(self.content)
+        node = nodes.container(text)
+        width = self.options.get('width', 1)
+        size = self.options.get('size', 'md')
+        node['classes'] += ["col-%s-%d" % (size, width)]
+
+        offset = self.options.get('offset', 0)
+        if offset > 0:
+            node['classes'] += ["col-%s-offset-%d" % (size, offset)]
+
+        push = self.options.get('push', 0)
+        if push > 0:
+            node['classes'] += ["col-%s-push-%d" % (size, push)]
+
+        pull = self.options.get('pull', 0)
+        if pull > 0:
+            node['classes'] += ["col-%s-pull-%d" % (size, pull)]
+
+        node['classes'] += self.options.get('class', [])
+
+        self.add_name(node)
+        self.state.nested_parse(self.content, self.content_offset, node)
+        return [node]
+
+
+
+class Button(Directive):
+
+    """
+    Directive to declare a button
+    """
+
+    required_arguments, optional_arguments = 0,0
+    final_argument_whitespace = True
+    has_content = True
+    option_spec = {'class'   : directives.class_option,
+                   'target'  : directives.unchanged_required }
+    def run(self):
+        self.assert_has_content()
+        node = button()
+        node['target'] = self.options.get('target', None)
+        node['classes'] = self.options.get('class', [])
+        self.state.nested_parse(self.content, self.content_offset, node)
+        self.add_name(node)
+        return [node]
+
+
+
+class Progress(Directive):
+
+    """
+    Directive to declare a progress bar.
+    """
+
+    required_arguments, optional_arguments = 0,1
+    final_argument_whitespace = True
+    has_content = False
+    option_spec = { 'class'   : directives.class_option,
+                    'label'   : directives.unchanged,
+                    'value'   : directives.unchanged_required,
+                    'min'     : directives.unchanged_required,
+                    'max'     : directives.unchanged_required }
+    def run(self):
+        node = progress()
+        node['classes']   = self.options.get('class', '')
+        node['value_min'] = self.options.get('min_value', '0')
+        node['value_max'] = self.options.get('max_value', '100')
+        node['value']     = self.options.get('value', '50')
+        node['label']     = self.options.get('label', '')
+        if self.arguments:
+            node['value'] = self.arguments[0].rstrip(' %')
+            #if 'label' not in self.options:
+            #    node['label'] = self.arguments[0]
+        return [node]
+
+
+
+class Header(Directive):
+
+    """Contents of document header."""
+
+    required_arguments, optional_arguments = 0,1
+    has_content = True
+    option_spec = {'class':  directives.class_option }
+
+    def run(self):
+        self.assert_has_content()
+        header = self.state_machine.document.get_decoration().get_header()
+        header['classes'] += self.options.get('class', [])
+        if self.arguments:
+            header['classes'] += [self.arguments[0]]
+        self.state.nested_parse(self.content, self.content_offset, header)
+        return []
+
+
+class Footer(Directive):
+
+    """Contents of document footer."""
+
+    required_arguments, optional_arguments = 0,1
+    has_content = True
+    option_spec = {'class':  directives.class_option }
+
+    def run(self):
+        self.assert_has_content()
+        footer = self.state_machine.document.get_decoration().get_footer()
+        footer['classes'] += self.options.get('class', [])
+        if self.arguments:
+            footer['classes'] += [self.arguments[0]]
+        self.state.nested_parse(self.content, self.content_offset, footer)
+        return []
+
+
+
+
+
+
+
+# List item class
+# -----------------------------------------------------------------------------
+class ItemClass(Directive):
+
+    """
+    Set a "list-class" attribute on the directive content or the next element.
+    When applied to the next element, a "pending" element is inserted, and a
+    transform does the work later.
+    """
+
+    required_arguments = 1
+    optional_arguments = 0
+    final_argument_whitespace = True
+    has_content = False
+
+    def run(self):
+        try:
+            class_value = directives.class_option(self.arguments[0])
+        except ValueError:
+            raise self.error(
+                'Invalid class attribute value for "%s" directive: "%s".'
+                % (self.name, self.arguments[0]))
+
+        parent = self.state.parent
+        if isinstance(parent,nodes.list_item):
+            parent['classes'].extend(class_value)
+        return []
+
+
+# PATCH: Make a row inherit from the class attribute
+# --------------------------------------------------------------
+class ListTable(Table):
+
+    """
+    Implement tables whose data is encoded as a uniform two-level bullet list.
+    For further ideas, see
+    http://docutils.sf.net/docs/dev/rst/alternatives.html#list-driven-tables
+    """
+
+    option_spec = {'header-rows': directives.nonnegative_int,
+                   'stub-columns': directives.nonnegative_int,
+                   'widths': directives.positive_int_list,
+                   'class': directives.class_option,
+                   'name': directives.unchanged}
+
+    def run(self):
+        if not self.content:
+            error = self.state_machine.reporter.error(
+                'The "%s" directive is empty; content required.' % self.name,
+                nodes.literal_block(self.block_text, self.block_text),
+                line=self.lineno)
+            return [error]
+        title, messages = self.make_title()
+        node = nodes.Element()          # anonymous container for parsing
+        self.state.nested_parse(self.content, self.content_offset, node)
+        try:
+            num_cols, col_widths = self.check_list_content(node)
+            table_data = [[item.children for item in row_list[0]]
+                          for row_list in node[0]]
+            header_rows = self.options.get('header-rows', 0)
+            stub_columns = self.options.get('stub-columns', 0)
+            self.check_table_dimensions(table_data, header_rows, stub_columns)
+        except SystemMessagePropagation as detail:
+            return [detail.args[0]]
+        #table_node = self.build_table_from_list(table_data, col_widths,
+        #                                        header_rows, stub_columns)
+        table_node = self.build_table_from_list(node[0], col_widths,
+                                                header_rows, stub_columns)
+        table_node['classes'] += self.options.get('class', [])
+        self.add_name(table_node)
+        if title:
+            table_node.insert(0, title)
+        return [table_node] + messages
+
+    def check_list_content(self, node):
+        if len(node) != 1 or not isinstance(node[0], nodes.bullet_list):
+            error = self.state_machine.reporter.error(
+                'Error parsing content block for the "%s" directive: '
+                'exactly one bullet list expected.' % self.name,
+                nodes.literal_block(self.block_text, self.block_text),
+                line=self.lineno)
+            raise SystemMessagePropagation(error)
+        list_node = node[0]
+        # Check for a uniform two-level bullet list:
+        for item_index in range(len(list_node)):
+            item = list_node[item_index]
+            if len(item) != 1 or not isinstance(item[0], nodes.bullet_list):
+                error = self.state_machine.reporter.error(
+                    'Error parsing content block for the "%s" directive: '
+                    'two-level bullet list expected, but row %s does not '
+                    'contain a second-level bullet list.'
+                    % (self.name, item_index + 1), nodes.literal_block(
+                    self.block_text, self.block_text), line=self.lineno)
+                raise SystemMessagePropagation(error)
+            elif item_index:
+                # ATTN pychecker users: num_cols is guaranteed to be set in the
+                # "else" clause below for item_index==0, before this branch is
+                # triggered.
+                if len(item[0]) != num_cols:
+                    error = self.state_machine.reporter.error(
+                        'Error parsing content block for the "%s" directive: '
+                        'uniform two-level bullet list expected, but row %s '
+                        'does not contain the same number of items as row 1 '
+                        '(%s vs %s).'
+                        % (self.name, item_index + 1, len(item[0]), num_cols),
+                        nodes.literal_block(self.block_text, self.block_text),
+                        line=self.lineno)
+                    raise SystemMessagePropagation(error)
+            else:
+                num_cols = len(item[0])
+        col_widths = self.get_column_widths(num_cols)
+        return num_cols, col_widths
+
+    def build_table_from_list(Self, table_data, col_widths, header_rows, stub_columns):
+        table = nodes.table()
+        tgroup = nodes.tgroup(cols=len(col_widths))
+        table += tgroup
+        for col_width in col_widths:
+            colspec = nodes.colspec(colwidth=col_width)
+            if stub_columns:
+                colspec.attributes['stub'] = 1
+                stub_columns -= 1
+            tgroup += colspec
+        rows = []
+        for row in table_data:
+            row_node = nodes.row()
+            row_node['classes'] = row[0]['classes']
+            for cell in row[0]:
+                cell = cell.children
+                entry = nodes.entry()
+                entry += cell
+                row_node += entry
+            rows.append(row_node)
+        if header_rows:
+            thead = nodes.thead()
+            thead.extend(rows[:header_rows])
+            tgroup += thead
+        tbody = nodes.tbody()
+        tbody.extend(rows[header_rows:])
+        tgroup += tbody
+        return table
+
+
+
+directives.register_directive('item-class', ItemClass)
+directives.register_directive('list-table', ListTable)
+directives.register_directive('thumbnail', Thumbnail)
+directives.register_directive('caption', Caption)
+directives.register_directive('jumbotron', Jumbotron)
+directives.register_directive('page-header', PageHeader)
+directives.register_directive('lead', Lead)
+directives.register_directive('progress', Progress)
+directives.register_directive('alert', Alert)
+directives.register_directive('callout', Callout)
+directives.register_directive('row', PageRow)
+directives.register_directive('column', PageColumn)
+directives.register_directive('button', Button)
+directives.register_directive('footer', Footer)
+directives.register_directive('header', Header)

+ 185 - 0
bootstrap-rst/doc/CSS-buttons.txt

@@ -0,0 +1,185 @@
+Buttons
+===============================================================================
+
+Options
+-------
+
+Use any of the available button classes to quickly create a styled button.
+
+.. container:: bs-example
+
+   .. button:: Default
+
+   .. button:: Primary
+      :class: primary
+
+   .. button:: Success
+      :class: success
+
+   .. button:: Info
+      :class: info
+
+   .. button:: Warning
+      :class: warning
+
+   .. button:: Danger
+      :class: danger
+
+   .. button:: Link
+      :class: link
+
+.. code::
+   :class: highlight
+
+   .. button:: Default
+      :class: default
+
+   .. button:: Primary
+      :class: primary
+
+   .. button:: Success
+      :class: success
+
+   .. button:: Info
+      :class: info
+
+   .. button:: Warning
+      :class: warning
+
+   .. button:: Danger
+      :class: danger
+
+   .. button:: Link
+      :class: link
+
+
+Sizes
+-----
+
+Fancy larger or smaller buttons? Add :code:`large`, :code:`small`, or
+:code:`tiny` for additional sizes.
+
+.. container:: bs-example
+
+   .. button:: Large button
+      :class: primary large
+   .. button:: Large button
+      :class: large
+
+   |
+
+   .. button:: Default button
+      :class: primary
+   .. button:: Default button
+
+   |
+
+   .. button:: Small button
+      :class: primary small
+   .. button:: Small button
+      :class: small
+
+   |
+
+   .. button:: Tiny button
+      :class: primary tiny
+   .. button:: Tiny button
+      :class: tiny
+
+.. code::
+   :class: highlight
+
+   .. button:: Large button
+      :class: primary large
+
+   .. button:: Large button
+      :class: large
+
+   .. button:: Default button
+      :class: primary
+
+   .. button:: Default button
+
+   .. button:: Small button
+      :class: primary small
+
+   .. button:: Small button
+      :class: small
+
+   .. button:: Tiny button
+      :class: primary tiny
+
+   .. button:: Tiny button
+      :class: tiny
+
+Create block level buttons—those that span the full width of a parent by adding
+:code:`block`.
+
+.. container:: bs-example
+
+   .. container:: well
+
+      .. button:: Block level button
+         :class: primary large block
+
+      .. button:: Block level button
+         :class: large block
+
+.. code::
+   :class: highlight
+
+   .. button:: Block level button
+      :class: primary large block
+
+   .. button:: Block level button
+      :class: large block
+
+
+Active state
+------------
+Buttons will appear pressed (with a darker background, darker border, and inset
+shadow) when :code:`active`.
+
+.. container:: bs-example
+
+   .. button:: Primary button
+      :class: primary large active
+
+   .. button:: Button
+      :class: large active
+
+
+.. code::
+   :class: highlight
+
+   .. button:: Primary button
+      :class: primary large active
+
+   .. button:: Button
+      :class: large active
+
+
+
+Disabled state
+--------------
+
+Make buttons look unclickable by fading them back 50% using the :code:`disabled`
+option.
+
+.. container:: bs-example
+
+   .. button:: Primary button
+      :class: primary large disabled
+
+   .. button:: Button
+      :class: large disabled
+
+
+.. code::
+   :class: highlight
+
+   .. button:: Primary button
+      :class: primary large disabled
+
+   .. button:: Button
+      :class: large disabled

+ 48 - 0
bootstrap-rst/doc/CSS-code.txt

@@ -0,0 +1,48 @@
+Code
+===============================================================================
+
+Inline
+------
+
+Wrap inline snippets of code with `:code:`.
+
+.. container:: bs-example
+
+   For example, `<section>` should be wrapped as inline.
+
+.. code::
+   :class: highlight
+
+   For example, :code:`<section>` should be wrapped as inline.
+
+User input
+----------
+
+Use the `:kbd:` to indicate input that is typically entered via keyboard.
+
+.. container:: bs-example
+
+   To switch directories, type :kbd:`cd` followed by the name of the directory.
+
+.. code::
+   :class: highlight
+
+   To switch directories, type :kbd:`cd` followed by the name of the directory.
+
+Basic block
+-----------
+
+Use `.. code::` for multiple lines of code. Be sure to escape any angle brackets in
+the code for proper rendering.
+
+.. container:: bs-example
+
+   Sample text here...
+
+.. code::
+   :class: highlight
+
+   Sample text here...
+
+You may optionally add the pre-scrollable class, which will set a max-height
+of 350px and provide a y-axis scrollbar.

+ 235 - 0
bootstrap-rst/doc/CSS-grid-system.txt

@@ -0,0 +1,235 @@
+Grid system
+===============================================================================
+.. lead::
+
+   Bootstrap includes a responsive, mobile first fluid grid system that
+   appropriately scales up to 12 columns as the device or viewport size
+   increases. It includes predefined classes for easy layout options, as well
+   as powerful mixins for generating more semantic layouts.
+.. ----------------------------------------------------------------------------
+
+
+
+Introduction
+------------
+
+Grid systems are used for creating page layouts through a series of rows and
+columns that house your content. Here's how the Bootstrap grid system works:
+
+* Rows must be placed within a `.container` (fixed-width) or `.container-fluid`
+  (full-width) for proper alignment and padding.
+* Use rows to create horizontal groups of columns.
+* Content should be placed within columns, and only columns may be immediate children of rows.
+* Predefined grid classes like `.row` and `.col-xs-4` are available for quickly
+  making grid layouts. Less mixins can also be used for more semantic layouts.
+* Columns create gutters (gaps between column content) via padding. That
+  padding is offset in rows for the first and last column via negative margin
+  on `.row` s.
+* Grid columns are created by specifying the number of twelve available columns
+  you wish to span. For example, three equal columns would use three `.col-xs-4`.
+  Look to the examples for applying these principles to your code.
+
+Look to the examples for applying these principles to your code.
+
+Media queries
+-------------
+
+We use the following media queries in our Less files to create the key
+breakpoints in our grid system.
+
+.. code:: css
+   :class: highlight
+
+   /* Extra small devices (phones, less than 768px) */
+   /* No media query since this is the default in Bootstrap */
+
+   /* Small devices (tablets, 768px and up) */
+   @media (min-width: @screen-sm-min) { ... }
+
+   /* Medium devices (desktops, 992px and up) */
+   @media (min-width: @screen-md-min) { ... }
+
+   /* Large devices (large desktops, 1200px and up) */
+   @media (min-width: @screen-lg-min) { ... }
+
+We occasionally expand on these media queries to include a max-width to limit
+CSS to a narrower set of devices.
+
+.. code:: css
+   :class: highlight
+
+   @media (max-width: @screen-xs-max) { ... }
+   @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
+   @media (min-width: @screen-md-min) and (max-width: @screen-md-max) { ... }
+   @media (min-width: @screen-lg-min) { ... }
+
+
+Grid options
+------------
+
+See how aspects of the Bootstrap grid system work across multiple devices with
+a handy table.
+
+.. table::
+   :class: table table-bordered table-striped
+
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   |                     | Extra small devices | Small devices    | Medium devices    | Large devices      |
+   |                     | Phones (<768px)     | Tablets (≥768px) | Desktops (≥992px) | Desktops (≥1200px) |
+   +=====================+=====================+==================+===================+====================+
+   | **Grid Behavior**   | Horizontal at all   | Collapsed to start, horizontal above breakpoints          |
+   |                     | times               |                                                           |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   | **Container Width** | None (auto)         | 750px            | 970px             | 1170px             |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   | **Class Predix**    | `col-xs-`           | `col-sd-`        | `col-md-`         | `col-lg-`          |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   | **# Columns**       | 12                                                                              |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   | **Column Width**    | :text-muted:`Auto`  | 60px             | 78px              | 95px               |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   | **Gutter width**    | 30px (15px on each side of a column)                                            |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   | **Netsable**        | Yes                                                                             |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   | **Offsets**         | Yes                                                                             |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+   | **Column Ordering** | Yes                                                                             |
+   +---------------------+---------------------+------------------+-------------------+--------------------+
+
+Grid classes apply to devices with screen widths greater than or equal to the
+breakpoint sizes, and override grid classes targeted at smaller
+devices. Therefore, applying any `.col-md-` class to an element will not only
+affect its styling on medium devices but also on large devices if a `.col-lg-`
+class is not present.
+
+
+Example: Stacked-to-horizontal
+------------------------------
+
+Using a single set of `.col-md-*` grid classes, you can create a basic grid
+system that starts out stacked on mobile devices and tablet devices (the extra
+small to small range) before becoming horizontal on desktop (medium)
+devices. Place grid columns in any `.row`.
+
+.. row:: show-grid
+
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+   .. column:: .col-md-1
+
+.. row:: show-grid
+
+   .. column:: .col-md-8
+      :width: 8
+   .. column:: .col-md-4
+      :width: 4
+
+.. row:: show-grid
+
+   .. column:: .col-md-4
+      :width: 4
+   .. column:: .col-md-4
+      :width: 4
+   .. column:: .col-md-4
+      :width: 4
+
+.. row:: show-grid
+
+   .. column:: .col-md-6
+      :width: 6
+   .. column:: .col-md-6
+      :width: 6
+
+
+Offsetting columns
+------------------
+
+Move columns to the right using `.col-md-offset-*` classes. These classes
+increase the left margin of a column by * columns. For example,
+`.col-md-offset-4` moves `.col-md-4` over four columns.
+
+
+.. row:: show-grid
+
+   .. column:: .col-md-4
+      :width: 4
+   .. column:: .col-md-4
+      :width: 4
+      :offset: 4
+
+
+.. row:: show-grid
+
+   .. column:: .col-md-3
+      :width: 3
+      :offset: 3
+
+   .. column:: .col-md-3
+      :width: 3
+      :offset: 3
+
+
+.. row:: show-grid
+
+   .. column:: .col-md-6
+      :width: 6
+      :offset: 3
+
+
+Nesting columns
+---------------
+
+To nest your content with the default grid, add a new `.row` and set of
+`.col-md-*` columns within an existing `.col-md-*` column. Nested rows should
+include a set of columns that add up to 12 or less.
+
+.. row:: show-grid
+
+   .. column:: Level 1: .col-md-9
+      :width: 9
+
+      .. row:: show-grid
+
+         .. column:: Level 2: .col-md-6
+            :width: 6
+         .. column:: Level 2: .col-md-6
+            :width: 6
+
+
+Column ordering
+---------------
+
+Easily change the order of our built-in grid columns with .col-md-push-* and
+.col-md-pull-* modifier classes.
+
+
+.. row:: show-grid
+
+   .. column:: .col-md-9 . col-push-3
+      :width: 9
+      :push: 3
+
+   .. column:: .col-md-3 . col-pull-9
+      :width: 3
+      :pull: 9
+
+.. code::
+   :class: highlight
+
+   .. column:: .col-md-9 . col-push-3
+      :width: 9
+      :push: 3
+
+   .. column:: .col-md-3 . col-pull-9
+      :width: 3
+      :pull: 9

+ 68 - 0
bootstrap-rst/doc/CSS-helpers.txt

@@ -0,0 +1,68 @@
+Helper classes
+===============================================================================
+
+Contextual colors
+-----------------
+Convey meaning through color with a handful of emphasis utility classes. These
+may also be applied to links and will darken on hover just like our default
+link styles.
+
+.. container:: bs-example
+
+   | :text-muted:`Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.`
+   | :text-primary:`Nullam id dolor id nibh ultricies vehicula ut id elit.`
+   | :text-success:`Duis mollis, est non commodo luctus, nisi erat porttitor ligula.`
+   | :text-info:`Maecenas sed diam eget risus varius blandit sit amet non magna.`
+   | :text-warning:`Etiam porta sem malesuada magna mollis euismod.`
+   | :text-danger:`Donec ullamcorper nulla non metus auctor fringilla.`
+
+.. code:: rst
+   :class: highlight
+
+   :text-muted:`Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.`
+   :text-primary:`Nullam id dolor id nibh ultricies vehicula ut id elit.`
+   :text-success:`Duis mollis, est non commodo luctus, nisi erat porttitor ligula.`
+   :text-info:`Maecenas sed diam eget risus varius blandit sit amet non magna.`
+   :text-warning:`Etiam porta sem malesuada magna mollis euismod.`
+   :text-danger:`Donec ullamcorper nulla non metus auctor fringilla.`
+
+
+
+Contextual background
+---------------------
+
+Similar to the contextual text color classes, easily set the background of an
+element to any contextual class. Anchor components will darken on hover, just
+like the text classes.
+
+
+.. container:: bs-example bs-example-bg-classes
+
+   .. container:: bg-primary
+
+      Nullam id dolor id nibh ultricies vehicula ut id elit.
+
+   .. container:: bg-success
+
+      Duis mollis, est non commodo luctus, nisi erat porttitor ligula.
+
+   .. container:: bg-info
+
+      Maecenas sed diam eget risus varius blandit sit amet non magna.
+
+   .. container:: bg-warning
+
+      Etiam porta sem malesuada magna mollis euismod.
+
+   .. container:: bg-danger
+
+      Donec ullamcorper nulla non metus auctor fringilla.
+
+.. code:: rst
+   :class: highlight
+
+   :bg-primary:`Nullam id dolor id nibh ultricies vehicula ut id elit.`
+   :bg-success:`Duis mollis, est non commodo luctus, nisi erat porttitor ligula.`
+   :bg-info:`Maecenas sed diam eget risus varius blandit sit amet non magna.`
+   :bg-warning:`Etiam porta sem malesuada magna mollis euismod.`
+   :bg-danger:`Donec ullamcorper nulla non metus auctor fringilla.`

+ 52 - 0
bootstrap-rst/doc/CSS-images.txt

@@ -0,0 +1,52 @@
+Images
+===============================================================================
+
+Responsive images
+-----------------
+
+Images in Bootstrap 3 can be made responsive-friendly via the addition of the
+.img-responsive class. This applies max-width: 100%; and height: auto; to the
+image so that it scales nicely to the parent element.
+
+
+.. code::
+   :class: highlight
+
+   .. image:: image.png
+      :class: img-responsive
+
+Image shapes
+------------
+
+Add classes to an `<img>` element to easily style images in any project.
+
+
+.. callout:: danger
+
+   :h4:`Cross-browser compatibility`
+   Keep in mind that Internet Explorer 8 lacks support for rounded corners.
+
+
+.. container:: bs-example
+
+   .. image:: 140x140.png
+      :class: img-rounded
+
+   .. image:: 140x140.png
+      :class: img-circle
+
+   .. image:: 140x140.png
+      :class: img-thumbnail
+
+
+.. code::
+   :class: highlight
+
+   .. image:: 140x140.png
+      :class: img-rounded
+
+   .. image:: 140x140.png
+      :class: img-circle
+
+   .. image:: 140x140.png
+      :class: img-thumbnail

+ 92 - 0
bootstrap-rst/doc/CSS-overview.txt

@@ -0,0 +1,92 @@
+Overview
+===============================================================================
+
+.. lead::
+
+   Get the lowdown on the key pieces of Bootstrap's infrastructure, including
+   our approach to better, faster, stronger web development.
+
+
+
+HTML5 doctype
+-------------
+
+Bootstrap makes use of certain HTML elements and CSS properties that require
+the use of the HTML5 doctype. Include it at the beginning of all your projects.
+
+.. code:: html
+   :class: highlight
+
+   <!DOCTYPE html>
+   <html lang="en">
+   ...
+   </html>
+
+
+Mobile first
+-------------
+
+With Bootstrap 2, we added optional mobile friendly styles for key aspects of
+the framework. With Bootstrap 3, we've rewritten the project to be mobile
+friendly from the start. Instead of adding on optional mobile styles, they're
+baked right into the core. In fact, **Bootstrap is mobile first**. Mobile first
+styles can be found throughout the entire library instead of in separate files.
+
+To ensure proper rendering and touch zooming, **add the viewport meta tag** to
+your :code:`<head>`.
+
+.. code:: html
+   :class: highlight
+
+   <meta name="viewport" content="width=device-width, initial-scale=1">
+
+You can disable zooming capabilities on mobile devices by adding
+:code:`user-scalable=no` to the viewport meta tag. This disables zooming,
+meaning users are only able to scroll, and results in your site feeling a bit
+more like a native application. Overall, we don't recommend this on every site,
+so use caution!
+
+.. code:: html
+   :class: highlight
+
+   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
+
+Typography and links
+--------------------
+
+Bootstrap sets basic global display, typography, and link styles. Specifically,
+we:
+
+* Set :code:`background-color: #fff`; on the body
+* Use the :code:`@font-family-base`, :code:`@font-size-base`, and
+  :code:`@line-height-base` attributes as our typographic base
+* Set the global link color via :code:`@link-color` and apply link underlines
+  only on :hover
+
+These styles can be found within :code:`scaffolding.less`.
+
+
+Normalize.css
+-------------
+
+For improved cross-browser rendering, we use `Normalize.css
+<http://necolas.github.io/normalize.css/>`_, a project by `Nicolas Gallagher
+<https://twitter.com/necolas>`_ and `Jonathan Neal <https://twitter.com/jon_neal>`_.
+
+
+Containers
+----------
+
+Easily center a page's contents by wrapping its contents in a
+.container. Containers set width at various media query breakpoints to match
+our grid system.
+
+Note that, due to padding and fixed widths, containers are not nestable by
+default.
+
+.. code::
+   :class: highlight
+
+   .. container::
+
+      ...

+ 292 - 0
bootstrap-rst/doc/CSS-tables.txt

@@ -0,0 +1,292 @@
+Tables
+======
+
+Basic example
+-------------
+
+For basic styling—light padding and only horizontal dividers—add the base class
+.table to any `<table>`. It may seem super redundant, but given the widespread
+use of tables for other plugins like calendars and date pickers, we've opted to
+isolate our custom table styles.
+
+.. container:: bs-example
+
+   = ========== ========= ========
+   # First Name Last Name Username
+   = ========== ========= ========
+   1 Mark       Otto      @mdo
+   2 Jacob      Thornton  @fat
+   3 Larry      the Bird  @twitter
+   = ========== ========= ========
+
+.. code::
+   :class: highlight
+
+   = ========== ========= ========
+   # First Name Last Name Username
+   = ========== ========= ========
+   1 Mark       Otto      @mdo
+   2 Jacob      Thornton  @fat
+   3 Larry      the Bird  @twitter
+   = ========== ========= ========
+
+
+Striped rows
+------------
+
+Use `table-striped` to add zebra-striping to any table row within the `<tbody>`.
+
+.. ----------------------------------------------------------------------------
+.. callout:: danger
+
+   :h4:`Cross-browser compatibility`
+   Striped tables are styled via the `:nth-child` CSS selector, which is not
+   available in Internet Explorer 8.
+.. ----------------------------------------------------------------------------
+
+
+.. container:: bs-example
+
+   .. class:: table-striped
+
+      = ========== ========= ========
+      # First Name Last Name Username
+      = ========== ========= ========
+      1 Mark       Otto      @mdo
+      2 Jacob      Thornton  @fat
+      3 Larry      the Bird  @twitter
+      = ========== ========= ========
+
+.. code::
+   :class: highlight
+
+   .. class:: table-striped
+
+      = ========== ========= ========
+      # First Name Last Name Username
+      = ========== ========= ========
+      1 Mark       Otto      @mdo
+      2 Jacob      Thornton  @fat
+      3 Larry      the Bird  @twitter
+      = ========== ========= ========
+
+Bordered table
+--------------
+
+Add `table-bordered` for borders on all sides of the table and cells.
+
+.. container:: bs-example
+
+   .. class:: table-bordered table-striped
+
+      = ========== ========= ========
+      # First Name Last Name Username
+      = ========== ========= ========
+      1 Mark       Otto      @mdo
+      2 Jacob      Thornton  @fat
+      3 Larry      the Bird  @twitter
+      = ========== ========= ========
+
+.. code::
+   :class: highlight
+
+   .. class:: table-bordered table-striped
+
+      = ========== ========= ========
+      # First Name Last Name Username
+      = ========== ========= ========
+      1 Mark       Otto      @mdo
+      2 Jacob      Thornton  @fat
+      3 Larry      the Bird  @twitter
+      = ========== ========= ========
+
+Hover rows
+----------
+
+Add `table-hover` to enable a hover state on table rows within a `<tbody>`.
+
+.. container:: bs-example
+
+   .. class:: table-hover
+
+      = ========== ========= ========
+      # First Name Last Name Username
+      = ========== ========= ========
+      1 Mark       Otto      @mdo
+      2 Jacob      Thornton  @fat
+      3 Larry      the Bird  @twitter
+      = ========== ========= ========
+
+.. code::
+   :class: highlight
+
+   .. class:: table-hover
+
+      = ========== ========= ========
+      # First Name Last Name Username
+      = ========== ========= ========
+      1 Mark       Otto      @mdo
+      2 Jacob      Thornton  @fat
+      3 Larry      the Bird  @twitter
+      = ========== ========= ========
+
+
+Condensed table
+---------------
+
+Add `table-condensed` to make tables more compact by cutting cell padding in half.
+
+.. container:: bs-example
+
+   .. class:: table-condensed
+
+      = ========== ========= ========
+      # First Name Last Name Username
+      = ========== ========= ========
+      1 Mark       Otto      @mdo
+      2 Jacob      Thornton  @fat
+      3 Larry      the Bird  @twitter
+      = ========== ========= ========
+
+.. code::
+   :class: highlight
+
+   .. class:: table-condensed
+
+      = ========== ========= ========
+      # First Name Last Name Username
+      = ========== ========= ========
+      1 Mark       Otto      @mdo
+      2 Jacob      Thornton  @fat
+      3 Larry      the Bird  @twitter
+      = ========== ========= ========
+
+Contextual classes
+------------------
+
+Use contextual classes to color table rows or individual cells.
+
+.. container:: bs-example
+
+   .. list-table::
+      :widths: 10 30 30 30
+
+      * - #
+        - Column heading
+        - Column heading
+        - Column heading
+
+      * .. class:: active
+
+           - 1
+           - Column content
+           - Column content
+           - Column content
+
+      * - 2
+        - Column heading
+        - Column heading
+        - Column heading
+
+      * .. class:: success
+
+           - 3
+           - Column content
+           - Column content
+           - Column content
+
+      * - 4
+        - Column heading
+        - Column heading
+        - Column heading
+
+      * .. class:: warning
+
+           - 5
+           - Column content
+           - Column content
+           - Column content
+
+      * - 6
+        - Column heading
+        - Column heading
+        - Column heading
+
+
+      * .. class:: danger
+
+           - 7
+           - Column content
+           - Column content
+           - Column content
+
+      * - 8
+        - Column heading
+        - Column heading
+        - Column heading
+
+
+      * .. class:: info
+
+           - 9
+           - Column content
+           - Column content
+           - Column content
+
+.. code::
+   :class: highlight
+
+   .. list-table::
+      :widths: 10 30 30 30
+
+      * - #
+        - Column heading
+        - Column heading
+        - Column heading
+
+      * .. class:: active
+
+           - 1
+           - Column content
+           - Column content
+           - Column content
+
+
+
+Responsive tables
+-----------------
+
+Create responsive tables by wrapping any `.table` in `.table-responsive` to
+make them scroll horizontally up to small devices (under 768px). When viewing
+on anything larger than 768px wide, you will not see any difference in these
+tables.
+
+
+.. container:: bs-example
+
+   .. container:: table-responsive
+
+      .. class:: table-bordered table-striped
+
+         = ============= ============= ============= ============= =============
+         # Table heading Table heading Table heading Table heading Table heading
+         = ============= ============= ============= ============= =============
+         1 Table cell    Table cell    Table cell    Table cell    Table cell
+         2 Table cell    Table cell    Table cell    Table cell    Table cell
+         3 Table cell    Table cell    Table cell    Table cell    Table cell
+         = ============= ============= ============= ============= =============
+
+.. code::
+   :class: highlight
+
+   .. container:: table-responsive
+
+      .. class:: table-bordered table-striped
+
+         = ============= ============= ============= ============= =============
+         # Table heading Table heading Table heading Table heading Table heading
+         = ============= ============= ============= ============= =============
+         1 Table cell    Table cell    Table cell    Table cell    Table cell
+         2 Table cell    Table cell    Table cell    Table cell    Table cell
+         3 Table cell    Table cell    Table cell    Table cell    Table cell
+         = ============= ============= ============= ============= =============

+ 441 - 0
bootstrap-rst/doc/CSS-typography.txt

@@ -0,0 +1,441 @@
+Typography
+===============================================================================
+
+Headings
+--------
+
+All HTML headings, :code:`<h1>` through :code:`<h6>`, are available. :code:`.h1`
+through :code:`.h6` classes are also available, for when you want to match the font
+styling of a heading but still want your text to be displayed inline.
+
+.. container:: bs-example
+
+   .. list-table::
+      :widths: 75 25
+      :class: table
+
+      * - :h1:`h1. Bootstrap heading`
+        - **Semibold 36 px**
+      * - :h2:`h2. Bootstrap heading`
+        - **Semibold 30 px**
+      * - :h3:`h3. Bootstrap heading`
+        - **Semibold 24 px**
+      * - :h4:`h4. Bootstrap heading`
+        - **Semibold 18 px**
+      * - :h5:`h5. Bootstrap heading`
+        - **Semibold 14 px**
+      * - :h6:`h6. Bootstrap heading`
+        - **Semibold 12 px**
+
+.. code::
+   :class: highlight
+
+   h1. Bootstrap heading
+   =====================
+
+   h2. Bootstrap heading
+   ---------------------
+
+   h3. Bootstrap heading
+   +++++++++++++++++++++
+
+   h4. Bootstrap heading
+   ~~~~~~~~~~~~~~~~~~~~~
+
+   h5. Bootstrap heading
+   *********************
+
+   h6. Bootstrap heading
+   ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
+
+Create lighter, secondary text in any heading with a generic :code:`small` tag.
+
+
+.. container:: bs-example
+
+   .. list-table::
+      :widths: 100
+      :class: table
+
+      * - :h1:`h1. Bootstrap heading <small>Secondary text</small>`
+      * - :h2:`h2. Bootstrap heading <small>Secondary text</small>`
+      * - :h3:`h3. Bootstrap heading <small>Secondary text</small>`
+      * - :h4:`h4. Bootstrap heading <small>Secondary text</small>`
+      * - :h5:`h5. Bootstrap heading <small>Secondary text</small>`
+      * - :h6:`h6. Bootstrap heading <small>Secondary text</small>`
+
+.. code::
+   :class: highlight
+
+   h1. Bootstrap heading :small:`Secondary text`
+   =============================================
+
+   h2. Bootstrap heading :small:`Secondary text`
+   ---------------------------------------------
+
+   h3. Bootstrap heading :small:`Secondary text`
+   +++++++++++++++++++++++++++++++++++++++++++++
+
+   h4. Bootstrap heading :small:`Secondary text`
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   h5. Bootstrap heading :small:`Secondary text`
+   *********************************************
+
+   h6. Bootstrap heading :small:`Secondary text`
+   ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
+
+
+Body copy
+---------
+
+Bootstrap's global default `font-size` is **14px**, with a line-height of
+**1.428**. This is applied to the `<body>` and all paragraphs. In addition,
+`<p>` (paragraphs) receive a bottom margin of half their computed line-height
+(10px by default).
+
+
+.. container:: bs-example
+
+   Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque
+   penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id
+   dolor id nibh ultricies vehicula.
+
+   Cum sociis natoque penatibus et magnis dis parturient montes, nascetur
+   ridiculus mus. Donec ullamcorper nulla non metus auctor fringilla. Duis
+   mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia
+   odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla.
+
+   Maecenas sed diam eget risus varius blandit sit amet non magna. Donec id
+   elit non mi porta gravida at eget metus. Duis mollis, est non commodo
+   luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit.
+
+.. code::
+   :class: highlight
+
+   ...
+
+
+Lead body copy
+++++++++++++++
+
+Make a paragraph stand out by adding lead.
+
+
+.. container:: bs-example
+
+   .. lead:: Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor
+             auctor. Duis mollis, est non commodo luctus.
+
+
+.. code::
+   :class: highlight
+
+
+   .. lead:: Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor
+             auctor. Duis mollis, est non commodo luctus.
+
+
+Built with Less
++++++++++++++++
+
+The typographic scale is based on two Less variables in **variables.less**:
+`@font-size-base` and `@line-height-base`. The first is the base font-size used
+throughout and the second is the base line-height. We use those variables and
+some simple math to create the margins, paddings, and line-heights of all our
+type and more. Customize them and Bootstrap adapts.
+
+
+Emphasis
+--------
+Make use of HTML's default emphasis tags with lightweight styles.
+
+
+Small text
+++++++++++
+
+For de-emphasizing inline or blocks of text, use the `small` tag to set text at
+85% the size of the parent. Heading elements receive their own font-size for
+nested `small` elements.
+
+.. container:: bs-example
+
+   :small:`This line of text is meant to be treated as fine print.`
+
+
+.. code::
+   :class: highlight
+
+   :small:`This line of text is meant to be treated as fine print.`
+
+
+Bold
+++++
+
+For emphasizing a snippet of text with a heavier font-weight.
+
+.. container:: bs-example
+
+   The following snippet of text is **rendered as bold text**.
+
+.. code::
+   :class: highlight
+
+   The following snippet of text is **rendered as bold text**.
+
+
+Italics
++++++++
+
+For emphasizing a snippet of text with italics.
+
+.. container:: bs-example
+
+   The following snippet of text is *rendered as italicized text*.
+
+.. code::
+   :class: highlight
+
+   The following snippet of text is *rendered as italicized text*.
+
+
+.. admonition:: :h4:`Alternate elements`
+   :class: bs-callout bs-callout-info
+
+   Feel free to use `<b>` and `<i>` in HTML5. `<b>` is meant to highlight words or
+   phrases without conveying additional importance while `<i>` is mostly for
+   voice, technical terms, etc.
+
+
+Alignment classes
++++++++++++++++++
+
+Easily realign text to components with text alignment classes.
+
+.. container:: bs-example
+
+   .. class:: text-left
+
+      Left aligned text.
+
+   .. class:: text-center
+
+      Center aligned text.
+
+   .. class:: text-right
+
+      Right aligned text.
+
+   .. class:: text-justify
+
+      Justified text.
+
+
+.. code::
+   :class: highlight
+
+   .. class:: text-left
+
+      Left aligned text.
+
+   .. class:: text-center
+
+      Center aligned text.
+
+   .. class:: text-right
+
+      Right aligned text.
+
+   .. class:: text-justify
+
+      Justified text.
+
+
+
+Lists
+-----
+
+Unordered
++++++++++
+
+A list of items in which the order does *not* explicitly matter.
+
+.. container:: bs-example
+
+   * Lorem ipsum dolor sit amet
+   * Consectetur adipiscing elit
+   * Integer molestie lorem at massa
+   * Facilisis in pretium nisl aliquet
+   * Nulla volutpat aliquam velit
+
+     * Phasellus iaculis neque
+     * Purus sodales ultricies
+     * Vestibulum laoreet porttitor sem
+     * Ac tristique libero volutpat at
+
+   * Faucibus porta lacus fringilla vel
+   * Aenean sit amet erat nunc
+   * Eget porttitor lorem
+
+.. code::
+   :class: highlight
+
+   * Lorem ipsum dolor sit amet
+   * Consectetur adipiscing elit
+     ...
+
+
+Ordered
++++++++
+
+A list of items in which the order *does* matter.
+
+.. container:: bs-example
+
+   1. Lorem ipsum dolor sit amet
+   #. Consectetur adipiscing elit
+   #. Integer molestie lorem at massa
+   #. Facilisis in pretium nisl aliquet
+   #. Nulla volutpat aliquam velit
+   #. Faucibus porta lacus fringilla vel
+   #. Aenean sit amet erat nunc
+   #. Eget porttitor lorem
+
+.. code::
+   :class: highlight
+
+   1. Lorem ipsum dolor sit amet
+   #. Consectetur adipiscing elit
+      ...
+
+Unstyled
+++++++++
+
+Remove the default `list-style` and left margin on list items (immediate children
+only). **This only applies to immediate children list items**, meaning you will
+need to add the class for any nested lists as well.
+
+.. container:: bs-example
+
+   .. class:: list-unstyled
+
+      * Lorem ipsum dolor sit amet
+      * Consectetur adipiscing elit
+      * Integer molestie lorem at massa
+      * Facilisis in pretium nisl aliquet
+      * Nulla volutpat aliquam velit
+
+        * Phasellus iaculis neque
+        * Purus sodales ultricies
+        * Vestibulum laoreet porttitor sem
+        * Ac tristique libero volutpat at
+
+      * Faucibus porta lacus fringilla vel
+      * Aenean sit amet erat nunc
+      * Eget porttitor lorem
+
+.. code::
+   :class: highlight
+
+   .. class:: list-unstyled
+
+      * Lorem ipsum dolor sit amet
+      * Consectetur adipiscing elit
+        ...
+
+
+Inline
+++++++
+
+.. container:: bs-example
+
+   .. class:: list-inline
+
+      * Lorem ipsum
+      * Phasellus iaculis
+      * Nulla volutpat
+
+.. code::
+   :class: highlight
+
+   .. class:: list-inline
+
+      * Lorem ipsum
+      * Phasellus iaculis
+      * Nulla volutpat
+
+
+Description
++++++++++++
+
+.. container:: bs-example
+
+   A list of terms with their associated descriptions.
+
+   Description lists
+    A description list is perfect for defining terms.
+
+   Euismod
+    Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
+    Donec id elit non mi porta gravida at eget metus.
+
+   Malesuada porta
+    Etiam porta sem malesuada magna mollis euismod.
+
+
+.. code::
+   :class: highlight
+
+   Description lists
+    A description list is perfect for defining terms.
+
+   Euismod
+    Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
+    Donec id elit non mi porta gravida at eget metus.
+
+   Malesuada porta
+    Etiam porta sem malesuada magna mollis euismod.
+
+
+Horizontal description
+~~~~~~~~~~~~~~~~~~~~~~
+
+Make terms and descriptions in <dl> line up side-by-side. Starts off stacked
+like default <dl>s, but when the navbar expands, so do these.
+
+.. container:: bs-example
+
+   .. class:: dl-horizontal
+
+      Description lists
+       A description list is perfect for defining terms.
+
+      Euismod
+       Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
+       Donec id elit non mi porta gravida at eget metus.
+
+      Malesuada porta
+       Etiam porta sem malesuada magna mollis euismod.
+
+.. code::
+   :class: highlight
+
+   .. class:: dl-horizontal
+
+      Description lists
+       A description list is perfect for defining terms.
+
+      Euismod
+       Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
+       Donec id elit non mi porta gravida at eget metus.
+
+      Malesuada porta
+       Etiam porta sem malesuada magna mollis euismod.
+
+
+.. admonition:: :h4:`Auto-truncating`
+   :class: bs-callout bs-callout-info
+
+   Horizontal description lists will truncate terms that are too long to fit in
+   the left column with `text-overflow`. In narrower viewports, they will change
+   to the default stacked layout.

+ 62 - 0
bootstrap-rst/doc/CSS.rst

@@ -0,0 +1,62 @@
+.. ----------------------------------------------------------------------------
+.. default-role:: code
+.. include:: bootstrap-roles.txt
+.. include:: bootstrap-glyphs.txt
+.. ----------------------------------------------------------------------------
+
+.. ----------------------------------------------------------------------------
+.. header::
+
+   .. container:: bs-docs-header
+
+      .. container:: container
+
+         :h1:`Bootstrap RST`
+
+         Overview of the project, its contents, and how to get started with a
+         simple template.
+.. ----------------------------------------------------------------------------
+
+.. ----------------------------------------------------------------------------
+.. footer:: bs-docs-footer
+
+   Bootstrap RST - Copyright (c) 2014 Nicolas P. Rougier
+
+   `Bootstrap <http://getbootstrap.com>`_ - Copyright (c) 2011-2014 Twitter, Inc
+
+   Code licensed under MIT, documentation under CC BY 3.0.
+
+   `Get page source <doc/CSS.rst>`_
+
+   .. class:: bs-docs-footer-links muted
+
+      * `GitHub <https://github.com/rougier/bootstrap-rst>`_
+      * ·
+      * `Examples <examples.html>`_
+      * ·
+      * `Documentation <about.html>`_
+      * ·
+      * `About <about.html>`_
+      * ·
+      * `Issues <https://github.com/rougier/bootstrap-rst/issues>`_
+      * ·
+      * `Releases <https://github.com/rougier/bootstrap-rst/releases>`_
+
+.. ----------------------------------------------------------------------------
+
+
+.. ----------------------------------------------------------------------------
+.. sidebar:: sidebar
+
+   .. contents:: content
+      :depth: 2
+.. ----------------------------------------------------------------------------
+
+.. include:: CSS-overview.txt
+.. include:: CSS-grid-system.txt
+.. include:: CSS-typography.txt
+.. include:: CSS-code.txt
+.. include:: CSS-tables.txt
+.. include:: CSS-buttons.txt
+.. include:: CSS-images.txt
+.. include:: CSS-helpers.txt

+ 805 - 0
bootstrap-rst/doc/bootstrap-glyphs.txt

@@ -0,0 +1,805 @@
+.. ----------------------------------------------------------------------------
+.. Bootstrap RST - glyph definitions
+.. ----------------------------------------------------------------------------
+
+.. role:: glyphicon-class
+
+.. |asterisk| raw:: html
+
+   <span class="glyphicon glyphicon-asterisk"></span>
+
+.. |plus| raw:: html
+
+   <span class="glyphicon glyphicon-plus"></span>
+
+.. |euro| raw:: html
+
+   <span class="glyphicon glyphicon-euro"></span>
+
+.. |minus| raw:: html
+
+   <span class="glyphicon glyphicon-minus"></span>
+
+.. |cloud| raw:: html
+
+   <span class="glyphicon glyphicon-cloud"></span>
+
+.. |envelope| raw:: html
+
+   <span class="glyphicon glyphicon-envelope"></span>
+
+.. |pencil| raw:: html
+
+   <span class="glyphicon glyphicon-pencil"></span>
+
+.. |glass| raw:: html
+
+   <span class="glyphicon glyphicon-glass"></span>
+
+.. |music| raw:: html
+
+   <span class="glyphicon glyphicon-music"></span>
+
+.. |search| raw:: html
+
+   <span class="glyphicon glyphicon-search"></span>
+
+.. |heart| raw:: html
+
+   <span class="glyphicon glyphicon-heart"></span>
+
+.. |star| raw:: html
+
+   <span class="glyphicon glyphicon-star"></span>
+
+.. |star-empty| raw:: html
+
+   <span class="glyphicon glyphicon-star-empty"></span>
+
+.. |user| raw:: html
+
+   <span class="glyphicon glyphicon-user"></span>
+
+.. |film| raw:: html
+
+   <span class="glyphicon glyphicon-film"></span>
+
+.. |th-large| raw:: html
+
+   <span class="glyphicon glyphicon-th-large"></span>
+
+.. |th| raw:: html
+
+   <span class="glyphicon glyphicon-th"></span>
+
+.. |th-list| raw:: html
+
+   <span class="glyphicon glyphicon-th-list"></span>
+
+.. |ok| raw:: html
+
+   <span class="glyphicon glyphicon-ok"></span>
+
+.. |remove| raw:: html
+
+   <span class="glyphicon glyphicon-remove"></span>
+
+.. |zoom-in| raw:: html
+
+   <span class="glyphicon glyphicon-zoom-in"></span>
+
+.. |zoom-out| raw:: html
+
+   <span class="glyphicon glyphicon-zoom-out"></span>
+
+.. |off| raw:: html
+
+   <span class="glyphicon glyphicon-off"></span>
+
+.. |signal| raw:: html
+
+   <span class="glyphicon glyphicon-signal"></span>
+
+.. |cog| raw:: html
+
+   <span class="glyphicon glyphicon-cog"></span>
+
+.. |trash| raw:: html
+
+   <span class="glyphicon glyphicon-trash"></span>
+
+.. |home| raw:: html
+
+   <span class="glyphicon glyphicon-home"></span>
+
+.. |file| raw:: html
+
+   <span class="glyphicon glyphicon-file"></span>
+
+.. |time| raw:: html
+
+   <span class="glyphicon glyphicon-time"></span>
+
+.. |road| raw:: html
+
+   <span class="glyphicon glyphicon-road"></span>
+
+.. |download-alt| raw:: html
+
+   <span class="glyphicon glyphicon-download-alt"></span>
+
+.. |download| raw:: html
+
+   <span class="glyphicon glyphicon-download"></span>
+
+.. |upload| raw:: html
+
+   <span class="glyphicon glyphicon-upload"></span>
+
+.. |inbox| raw:: html
+
+   <span class="glyphicon glyphicon-inbox"></span>
+
+.. |play-circle| raw:: html
+
+   <span class="glyphicon glyphicon-play-circle"></span>
+
+.. |repeat| raw:: html
+
+   <span class="glyphicon glyphicon-repeat"></span>
+
+.. |refresh| raw:: html
+
+   <span class="glyphicon glyphicon-refresh"></span>
+
+.. |list-alt| raw:: html
+
+   <span class="glyphicon glyphicon-list-alt"></span>
+
+.. |lock| raw:: html
+
+   <span class="glyphicon glyphicon-lock"></span>
+
+.. |flag| raw:: html
+
+   <span class="glyphicon glyphicon-flag"></span>
+
+.. |headphones| raw:: html
+
+   <span class="glyphicon glyphicon-headphones"></span>
+
+.. |volume-off| raw:: html
+
+   <span class="glyphicon glyphicon-volume-off"></span>
+
+.. |volume-down| raw:: html
+
+   <span class="glyphicon glyphicon-volume-down"></span>
+
+.. |volume-up| raw:: html
+
+   <span class="glyphicon glyphicon-volume-up"></span>
+
+.. |qrcode| raw:: html
+
+   <span class="glyphicon glyphicon-qrcode"></span>
+
+.. |barcode| raw:: html
+
+   <span class="glyphicon glyphicon-barcode"></span>
+
+.. |tag| raw:: html
+
+   <span class="glyphicon glyphicon-tag"></span>
+
+.. |tags| raw:: html
+
+   <span class="glyphicon glyphicon-tags"></span>
+
+.. |book| raw:: html
+
+   <span class="glyphicon glyphicon-book"></span>
+
+.. |bookmark| raw:: html
+
+   <span class="glyphicon glyphicon-bookmark"></span>
+
+.. |print| raw:: html
+
+   <span class="glyphicon glyphicon-print"></span>
+
+.. |camera| raw:: html
+
+   <span class="glyphicon glyphicon-camera"></span>
+
+.. |font| raw:: html
+
+   <span class="glyphicon glyphicon-font"></span>
+
+.. |bold| raw:: html
+
+   <span class="glyphicon glyphicon-bold"></span>
+
+.. |italic| raw:: html
+
+   <span class="glyphicon glyphicon-italic"></span>
+
+.. |text-height| raw:: html
+
+   <span class="glyphicon glyphicon-text-height"></span>
+
+.. |text-width| raw:: html
+
+   <span class="glyphicon glyphicon-text-width"></span>
+
+.. |align-left| raw:: html
+
+   <span class="glyphicon glyphicon-align-left"></span>
+
+.. |align-center| raw:: html
+
+   <span class="glyphicon glyphicon-align-center"></span>
+
+.. |align-right| raw:: html
+
+   <span class="glyphicon glyphicon-align-right"></span>
+
+.. |align-justify| raw:: html
+
+   <span class="glyphicon glyphicon-align-justify"></span>
+
+.. |list| raw:: html
+
+   <span class="glyphicon glyphicon-list"></span>
+
+.. |indent-left| raw:: html
+
+   <span class="glyphicon glyphicon-indent-left"></span>
+
+.. |indent-right| raw:: html
+
+   <span class="glyphicon glyphicon-indent-right"></span>
+
+.. |facetime-video| raw:: html
+
+   <span class="glyphicon glyphicon-facetime-video"></span>
+
+.. |picture| raw:: html
+
+   <span class="glyphicon glyphicon-picture"></span>
+
+.. |map-marker| raw:: html
+
+   <span class="glyphicon glyphicon-map-marker"></span>
+
+.. |adjust| raw:: html
+
+   <span class="glyphicon glyphicon-adjust"></span>
+
+.. |tint| raw:: html
+
+   <span class="glyphicon glyphicon-tint"></span>
+
+.. |edit| raw:: html
+
+   <span class="glyphicon glyphicon-edit"></span>
+
+.. |share| raw:: html
+
+   <span class="glyphicon glyphicon-share"></span>
+
+.. |check| raw:: html
+
+   <span class="glyphicon glyphicon-check"></span>
+
+.. |move| raw:: html
+
+   <span class="glyphicon glyphicon-move"></span>
+
+.. |step-backward| raw:: html
+
+   <span class="glyphicon glyphicon-step-backward"></span>
+
+.. |fast-backward| raw:: html
+
+   <span class="glyphicon glyphicon-fast-backward"></span>
+
+.. |backward| raw:: html
+
+   <span class="glyphicon glyphicon-backward"></span>
+
+.. |play| raw:: html
+
+   <span class="glyphicon glyphicon-play"></span>
+
+.. |pause| raw:: html
+
+   <span class="glyphicon glyphicon-pause"></span>
+
+.. |stop| raw:: html
+
+   <span class="glyphicon glyphicon-stop"></span>
+
+.. |forward| raw:: html
+
+   <span class="glyphicon glyphicon-forward"></span>
+
+.. |fast-forward| raw:: html
+
+   <span class="glyphicon glyphicon-fast-forward"></span>
+
+.. |step-forward| raw:: html
+
+   <span class="glyphicon glyphicon-step-forward"></span>
+
+.. |eject| raw:: html
+
+   <span class="glyphicon glyphicon-eject"></span>
+
+.. |chevron-left| raw:: html
+
+   <span class="glyphicon glyphicon-chevron-left"></span>
+
+.. |chevron-right| raw:: html
+
+   <span class="glyphicon glyphicon-chevron-right"></span>
+
+.. |plus-sign| raw:: html
+
+   <span class="glyphicon glyphicon-plus-sign"></span>
+
+.. |minus-sign| raw:: html
+
+   <span class="glyphicon glyphicon-minus-sign"></span>
+
+.. |remove-sign| raw:: html
+
+   <span class="glyphicon glyphicon-remove-sign"></span>
+
+.. |ok-sign| raw:: html
+
+   <span class="glyphicon glyphicon-ok-sign"></span>
+
+.. |question-sign| raw:: html
+
+   <span class="glyphicon glyphicon-question-sign"></span>
+
+.. |info-sign| raw:: html
+
+   <span class="glyphicon glyphicon-info-sign"></span>
+
+.. |screenshot| raw:: html
+
+   <span class="glyphicon glyphicon-screenshot"></span>
+
+.. |remove-circle| raw:: html
+
+   <span class="glyphicon glyphicon-remove-circle"></span>
+
+.. |ok-circle| raw:: html
+
+   <span class="glyphicon glyphicon-ok-circle"></span>
+
+.. |ban-circle| raw:: html
+
+   <span class="glyphicon glyphicon-ban-circle"></span>
+
+.. |arrow-left| raw:: html
+
+   <span class="glyphicon glyphicon-arrow-left"></span>
+
+.. |arrow-right| raw:: html
+
+   <span class="glyphicon glyphicon-arrow-right"></span>
+
+.. |arrow-up| raw:: html
+
+   <span class="glyphicon glyphicon-arrow-up"></span>
+
+.. |arrow-down| raw:: html
+
+   <span class="glyphicon glyphicon-arrow-down"></span>
+
+.. |share-alt| raw:: html
+
+   <span class="glyphicon glyphicon-share-alt"></span>
+
+.. |resize-full| raw:: html
+
+   <span class="glyphicon glyphicon-resize-full"></span>
+
+.. |resize-small| raw:: html
+
+   <span class="glyphicon glyphicon-resize-small"></span>
+
+.. |exclamation-sign| raw:: html
+
+   <span class="glyphicon glyphicon-exclamation-sign"></span>
+
+.. |gift| raw:: html
+
+   <span class="glyphicon glyphicon-gift"></span>
+
+.. |leaf| raw:: html
+
+   <span class="glyphicon glyphicon-leaf"></span>
+
+.. |fire| raw:: html
+
+   <span class="glyphicon glyphicon-fire"></span>
+
+.. |eye-open| raw:: html
+
+   <span class="glyphicon glyphicon-eye-open"></span>
+
+.. |eye-close| raw:: html
+
+   <span class="glyphicon glyphicon-eye-close"></span>
+
+.. |warning-sign| raw:: html
+
+   <span class="glyphicon glyphicon-warning-sign"></span>
+
+.. |plane| raw:: html
+
+   <span class="glyphicon glyphicon-plane"></span>
+
+.. |calendar| raw:: html
+
+   <span class="glyphicon glyphicon-calendar"></span>
+
+.. |random| raw:: html
+
+   <span class="glyphicon glyphicon-random"></span>
+
+.. |comment| raw:: html
+
+   <span class="glyphicon glyphicon-comment"></span>
+
+.. |magnet| raw:: html
+
+   <span class="glyphicon glyphicon-magnet"></span>
+
+.. |chevron-up| raw:: html
+
+   <span class="glyphicon glyphicon-chevron-up"></span>
+
+.. |chevron-down| raw:: html
+
+   <span class="glyphicon glyphicon-chevron-down"></span>
+
+.. |retweet| raw:: html
+
+   <span class="glyphicon glyphicon-retweet"></span>
+
+.. |shopping-cart| raw:: html
+
+   <span class="glyphicon glyphicon-shopping-cart"></span>
+
+.. |folder-close| raw:: html
+
+   <span class="glyphicon glyphicon-folder-close"></span>
+
+.. |folder-open| raw:: html
+
+   <span class="glyphicon glyphicon-folder-open"></span>
+
+.. |resize-vertical| raw:: html
+
+   <span class="glyphicon glyphicon-resize-vertical"></span>
+
+.. |resize-horizontal| raw:: html
+
+   <span class="glyphicon glyphicon-resize-horizontal"></span>
+
+.. |hdd| raw:: html
+
+   <span class="glyphicon glyphicon-hdd"></span>
+
+.. |bullhorn| raw:: html
+
+   <span class="glyphicon glyphicon-bullhorn"></span>
+
+.. |bell| raw:: html
+
+   <span class="glyphicon glyphicon-bell"></span>
+
+.. |certificate| raw:: html
+
+   <span class="glyphicon glyphicon-certificate"></span>
+
+.. |thumbs-up| raw:: html
+
+   <span class="glyphicon glyphicon-thumbs-up"></span>
+
+.. |thumbs-down| raw:: html
+
+   <span class="glyphicon glyphicon-thumbs-down"></span>
+
+.. |hand-right| raw:: html
+
+   <span class="glyphicon glyphicon-hand-right"></span>
+
+.. |hand-left| raw:: html
+
+   <span class="glyphicon glyphicon-hand-left"></span>
+
+.. |hand-up| raw:: html
+
+   <span class="glyphicon glyphicon-hand-up"></span>
+
+.. |hand-down| raw:: html
+
+   <span class="glyphicon glyphicon-hand-down"></span>
+
+.. |circle-arrow-right| raw:: html
+
+   <span class="glyphicon glyphicon-circle-arrow-right"></span>
+
+.. |circle-arrow-left| raw:: html
+
+   <span class="glyphicon glyphicon-circle-arrow-left"></span>
+
+.. |circle-arrow-up| raw:: html
+
+   <span class="glyphicon glyphicon-circle-arrow-up"></span>
+
+.. |circle-arrow-down| raw:: html
+
+   <span class="glyphicon glyphicon-circle-arrow-down"></span>
+
+.. |globe| raw:: html
+
+   <span class="glyphicon glyphicon-globe"></span>
+
+.. |wrench| raw:: html
+
+   <span class="glyphicon glyphicon-wrench"></span>
+
+.. |tasks| raw:: html
+
+   <span class="glyphicon glyphicon-tasks"></span>
+
+.. |filter| raw:: html
+
+   <span class="glyphicon glyphicon-filter"></span>
+
+.. |briefcase| raw:: html
+
+   <span class="glyphicon glyphicon-briefcase"></span>
+
+.. |fullscreen| raw:: html
+
+   <span class="glyphicon glyphicon-fullscreen"></span>
+
+.. |dashboard| raw:: html
+
+   <span class="glyphicon glyphicon-dashboard"></span>
+
+.. |paperclip| raw:: html
+
+   <span class="glyphicon glyphicon-paperclip"></span>
+
+.. |heart-empty| raw:: html
+
+   <span class="glyphicon glyphicon-heart-empty"></span>
+
+.. |link| raw:: html
+
+   <span class="glyphicon glyphicon-link"></span>
+
+.. |phone| raw:: html
+
+   <span class="glyphicon glyphicon-phone"></span>
+
+.. |pushpin| raw:: html
+
+   <span class="glyphicon glyphicon-pushpin"></span>
+
+.. |usd| raw:: html
+
+   <span class="glyphicon glyphicon-usd"></span>
+
+.. |gbp| raw:: html
+
+   <span class="glyphicon glyphicon-gbp"></span>
+
+.. |sort| raw:: html
+
+   <span class="glyphicon glyphicon-sort"></span>
+
+.. |sort-by-alphabet| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-alphabet"></span>
+
+.. |sort-by-alphabet-alt| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-alphabet-alt"></span>
+
+.. |sort-by-order| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-order"></span>
+
+.. |sort-by-order-alt| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-order-alt"></span>
+
+.. |sort-by-attributes| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-attributes"></span>
+
+.. |sort-by-attributes-alt| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-attributes-alt"></span>
+
+.. |unchecked| raw:: html
+
+   <span class="glyphicon glyphicon-unchecked"></span>
+
+.. |expand| raw:: html
+
+   <span class="glyphicon glyphicon-expand"></span>
+
+.. |collapse-down| raw:: html
+
+   <span class="glyphicon glyphicon-collapse-down"></span>
+
+.. |collapse-up| raw:: html
+
+   <span class="glyphicon glyphicon-collapse-up"></span>
+
+.. |log-in| raw:: html
+
+   <span class="glyphicon glyphicon-log-in"></span>
+
+.. |flash| raw:: html
+
+   <span class="glyphicon glyphicon-flash"></span>
+
+.. |log-out| raw:: html
+
+   <span class="glyphicon glyphicon-log-out"></span>
+
+.. |new-window| raw:: html
+
+   <span class="glyphicon glyphicon-new-window"></span>
+
+.. |record| raw:: html
+
+   <span class="glyphicon glyphicon-record"></span>
+
+.. |save| raw:: html
+
+   <span class="glyphicon glyphicon-save"></span>
+
+.. |open| raw:: html
+
+   <span class="glyphicon glyphicon-open"></span>
+
+.. |saved| raw:: html
+
+   <span class="glyphicon glyphicon-saved"></span>
+
+.. |import| raw:: html
+
+   <span class="glyphicon glyphicon-import"></span>
+
+.. |export| raw:: html
+
+   <span class="glyphicon glyphicon-export"></span>
+
+.. |send| raw:: html
+
+   <span class="glyphicon glyphicon-send"></span>
+
+.. |floppy-disk| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-disk"></span>
+
+.. |floppy-saved| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-saved"></span>
+
+.. |floppy-remove| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-remove"></span>
+
+.. |floppy-save| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-save"></span>
+
+.. |floppy-open| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-open"></span>
+
+.. |credit-card| raw:: html
+
+   <span class="glyphicon glyphicon-credit-card"></span>
+
+.. |transfer| raw:: html
+
+   <span class="glyphicon glyphicon-transfer"></span>
+
+.. |cutlery| raw:: html
+
+   <span class="glyphicon glyphicon-cutlery"></span>
+
+.. |header| raw:: html
+
+   <span class="glyphicon glyphicon-header"></span>
+
+.. |compressed| raw:: html
+
+   <span class="glyphicon glyphicon-compressed"></span>
+
+.. |earphone| raw:: html
+
+   <span class="glyphicon glyphicon-earphone"></span>
+
+.. |phone-alt| raw:: html
+
+   <span class="glyphicon glyphicon-phone-alt"></span>
+
+.. |tower| raw:: html
+
+   <span class="glyphicon glyphicon-tower"></span>
+
+.. |stats| raw:: html
+
+   <span class="glyphicon glyphicon-stats"></span>
+
+.. |sd-video| raw:: html
+
+   <span class="glyphicon glyphicon-sd-video"></span>
+
+.. |hd-video| raw:: html
+
+   <span class="glyphicon glyphicon-hd-video"></span>
+
+.. |subtitles| raw:: html
+
+   <span class="glyphicon glyphicon-subtitles"></span>
+
+.. |sound-stereo| raw:: html
+
+   <span class="glyphicon glyphicon-sound-stereo"></span>
+
+.. |sound-dolby| raw:: html
+
+   <span class="glyphicon glyphicon-sound-dolby"></span>
+
+.. |sound-5-1| raw:: html
+
+   <span class="glyphicon glyphicon-sound-5-1"></span>
+
+.. |sound-6-1| raw:: html
+
+   <span class="glyphicon glyphicon-sound-6-1"></span>
+
+.. |sound-7-1| raw:: html
+
+   <span class="glyphicon glyphicon-sound-7-1"></span>
+
+.. |copyright-mark| raw:: html
+
+   <span class="glyphicon glyphicon-copyright-mark"></span>
+
+.. |registration-mark| raw:: html
+
+   <span class="glyphicon glyphicon-registration-mark"></span>
+
+.. |cloud-download| raw:: html
+
+   <span class="glyphicon glyphicon-cloud-download"></span>
+
+.. |cloud-upload| raw:: html
+
+   <span class="glyphicon glyphicon-cloud-upload"></span>
+
+.. |tree-conifer| raw:: html
+
+   <span class="glyphicon glyphicon-tree-conifer"></span>
+
+.. |tree-deciduous| raw:: html
+
+   <span class="glyphicon glyphicon-tree-deciduous"></span>

+ 21 - 0
bootstrap-rst/doc/bootstrap-roles.txt

@@ -0,0 +1,21 @@
+.. ----------------------------------------------------------------------------
+.. Bootstrap RST - role definitions
+.. ----------------------------------------------------------------------------
+
+.. role:: small
+.. role:: kbd
+.. role:: badge
+
+.. role:: text-muted
+.. role:: text-primary
+.. role:: text-success
+.. role:: text-info
+.. role:: text-warning
+.. role:: text-danger
+
+.. role:: bg-muted
+.. role:: bg-primary
+.. role:: bg-success
+.. role:: bg-info
+.. role:: bg-warning
+.. role:: bg-danger

+ 70 - 0
bootstrap-rst/doc/components-alerts.txt

@@ -0,0 +1,70 @@
+Alerts
+===============================================================================
+.. lead:: Provide contextual feedback messages for typical user actions with
+          the handful of available and flexible alert messages. For inline
+          dismissal, use the `alerts jQuery plugin
+          <http://getbootstrap.com/javascript/>`_.
+.. ----------------------------------------------------------------------------
+
+Examples
+--------
+
+Wrap any text and an optional dismiss button in `.alert` and one of the four
+contextual classes (e.g., `.alert-success`) for basic alert messages.
+
+.. callout:: danger
+
+   :h4:`No default class`
+   Alerts don't have default classes, only base and modifier classes. A default
+   gray alert doesn't make too much sense, so you're required to specify a type
+   via contextual class. Choose from success, info, warning, or danger.
+
+
+.. container:: bs-example
+
+   .. alert:: **Well done!** You successfully read this important alert message.
+      :type: success
+
+   .. alert:: **Heads up!** This alert needs your attention, but it's not super important.
+      :type: info
+
+   .. alert:: **Warning!** Better check yourself, you're not looking too good.
+      :type: warning
+
+   .. alert:: **Oh snap!** Change a few things up and try submitting again.
+      :type: danger
+
+
+.. code::
+   :class: highlight
+
+   .. alert:: **Well done!** You successfully read this important alert message.
+      :type: success
+
+   .. alert:: **Heads up!** This alert needs your attention, but it's not super important.
+      :type: info
+
+   .. alert:: **Warning!** Better check yourself, you're not looking too good.
+      :type: warning
+
+   .. alert:: **Oh snap!** Change a few things up and try submitting again.
+      :type: danger
+
+
+Dismissable alerts
+------------------
+
+Build on any alert by adding an optional `.alert-dismissable` and close button.
+
+.. container:: bs-example
+
+   .. alert:: **Warning!** Better check yourself, you're not looking too good.
+      :type: warning
+      :dismissable:
+
+
+.. callout:: warning
+
+   :h4:`Ensure proper behavior across all devices`
+   Be sure to use the `<button>` element with the `data-dismiss="alert"` data
+   attribute.

+ 15 - 0
bootstrap-rst/doc/components-badges.txt

@@ -0,0 +1,15 @@
+Badges
+===============================================================================
+.. lead:: Easily highlight new or unread items by adding a <span class="badge">
+          to links, Bootstrap navs, and more.
+
+
+.. container:: bs-example
+
+  `Inbox <#>`_ :badge:`42`
+
+
+Self collapsing
+
+When there are no new or unread items, badges will simply collapse (via CSS's
+`:empty` selector) provided no content exists within.

+ 43 - 0
bootstrap-rst/doc/components-breadcrumbs.txt

@@ -0,0 +1,43 @@
+Breadcrumbs
+===============================================================================
+.. lead:: Indicate the current page's location within a navigational hierarchy.
+
+
+Separators are automatically added in CSS through `:before` and `content.`
+
+
+.. container:: bs-example
+
+   .. class:: breadcrumb
+
+      * Home
+
+   .. class:: breadcrumb
+
+      * Home
+      * Library
+
+   .. class:: breadcrumb
+
+      * Home
+      * Library
+      * Data
+
+
+.. code::
+   :class: highlight
+
+   .. class:: breadcrumb
+
+      * Home
+
+   .. class:: breadcrumb
+
+      * Home
+      * Library
+
+   .. class:: breadcrumb
+
+      * Home
+      * Library
+      * Data

+ 37 - 0
bootstrap-rst/doc/components-glyphicons.txt

@@ -0,0 +1,37 @@
+Glyphicons
+===============================================================================
+
+Available glyphs
+----------------
+
+Includes 200 glyphs in font format from the Glyphicon Halflings
+set. `Glyphicons <http://glyphicons.com>`_ Halflings are normally not available
+for free, but their creator has made them available for Bootstrap free of
+cost. As a thank you, we only ask that you include a link back to `Glyphicons
+<http://glyphicons.com>`_ whenever possible.
+
+.. include:: glyphicons-list.txt
+
+How to use
+----------
+
+For performance reasons, all icons require a base class and individual icon
+class. To use, place the following code just about anywhere. Be sure to leave a
+space between the icon and text for proper padding.
+
+.. callout:: danger
+
+   :h4:`Don't mix with other`
+   Icon classes cannot be directly combined with other components. They should
+   not be used along with other classes on the same element. Instead, add a
+   nested `<span>` and apply the icon classes to the `<span>`.
+
+.. container:: bs-example
+
+   |search| |star|
+
+
+.. code::
+   :class: highlight
+
+   |search| |star|

+ 45 - 0
bootstrap-rst/doc/components-jumbotron.txt

@@ -0,0 +1,45 @@
+Jumbotron
+===============================================================================
+
+A lightweight, flexible component that can optionally extend the entire
+viewport to showcase key content on your site.
+
+.. container:: bs-example
+
+   .. jumbotron::
+
+      :h1:`Hello, world!`
+
+      This is a simple hero unit, a simple jumbotron-style component for
+      calling extra attention to featured content or information.
+
+      .. button:: Learn more
+         :class: primary large
+
+.. code::
+   :class: highlight
+
+
+   .. jumbotron::
+
+      :h1:`Hello, world!`
+
+      This is a simple hero unit, a simple jumbotron-style component for
+      calling extra attention to featured content or information.
+
+      .. button:: Learn more
+         :class: primary large
+
+
+To make the jumbotron full width, and without rounded corners, place it outside
+all .containers and instead add a .container within.
+
+.. code::
+   :class: highlight
+
+
+   .. jumbotron::
+
+      .. container::
+
+         ...

+ 64 - 0
bootstrap-rst/doc/components-labels.txt

@@ -0,0 +1,64 @@
+Labels
+===============================================================================
+
+Examples
+--------
+
+.. container:: bs-example
+
+   :h1:`Example heading <span class="label label-default">New</span>`
+
+   :h2:`Example heading <span class="label label-default">New</span>`
+
+   :h3:`Example heading <span class="label label-default">New</span>`
+
+   :h4:`Example heading <span class="label label-default">New</span>`
+
+   :h5:`Example heading <span class="label label-default">New</span>`
+
+   :h6:`Example heading <span class="label label-default">New</span>`
+
+
+.. code::
+   :class: highlight
+
+   h1. Example heading :label-default:`New`
+   ========================================
+
+   h2. Example heading :label-default:`New`
+   ----------------------------------------
+
+   h3. Example heading :label-default:`New`
+   ++++++++++++++++++++++++++++++++++++++++
+
+   h4. Example heading :label-default:`New`
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+   h5. Example heading :label-default:`New`
+   ****************************************
+
+   h6. Example heading :label-default:`New`
+   ¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
+
+
+Available variations
+--------------------
+
+.. container:: bs-example
+
+   :label-default:`Default`
+   :label-primary:`Primary`
+   :label-success:`Success`
+   :label-info:`Info`
+   :label-warning:`Warning`
+   :label-danger:`Danger`
+
+.. code::
+   :class: highlight
+
+   :label-default:`Default`
+   :label-primary:`Primary`
+   :label-success:`Success`
+   :label-info:`Info`
+   :label-warning:`Warning`
+   :label-danger:`Danger`

+ 26 - 0
bootstrap-rst/doc/components-page-header.txt

@@ -0,0 +1,26 @@
+Page header
+===============================================================================
+
+A simple shell for an `h1` to appropriately space out and segment sections of
+content on a page. It can utilize the `h1`'s default `small` element, as well as
+most other components (with additional styles).
+
+
+
+.. lead:: Easily highlight new or unread items by adding a <span class="badge">
+          to links, Bootstrap navs, and more.
+
+
+.. container:: bs-example
+
+   .. container:: page-header
+
+      :h1:`Example page header <small>Subtext for header</small>`
+
+
+.. code::
+   :class: highlight
+
+   .. page-header::
+
+      :h1:`Example page header <small>Subtext for header</small>`

+ 210 - 0
bootstrap-rst/doc/components-pagination.txt

@@ -0,0 +1,210 @@
+Pagination
+===============================================================================
+.. lead:: Provide pagination links for your site or app with the multi-page
+          pagination component, or the simpler pager alternative.
+.. ----------------------------------------------------------------------------
+
+Default pagination
+------------------
+
+Simple pagination inspired by Rdio, great for apps and search results. The
+large block is hard to miss, easily scalable, and provides large click areas.
+
+
+
+.. container:: bs-example
+
+   .. class:: pagination
+
+      * `« <#>`_
+      * `1 <#>`_
+      * `2 <#>`_
+      * `3 <#>`_
+      * `4 <#>`_
+      * `5 <#>`_
+      * `» <#>`_
+
+.. code::
+   :class: highlight
+
+   .. class:: pagination
+
+      * `« <#>`_
+      * `1 <#>`_
+      * `2 <#>`_
+      * `3 <#>`_
+      * `4 <#>`_
+      * `5 <#>`_
+      * `» <#>`_
+
+
+Disabled and active states
+--------------------------
+
+Links are customizable for different circumstances. Use `.disabled` for
+unclickable links and `.active` to indicate the current page.
+
+
+.. container:: bs-example
+
+   .. class:: pagination
+
+      * .. item-class:: disabled
+        `« <#>`_
+      * .. item-class:: active
+        `1 <#>`_
+      * `2 <#>`_
+      * `3 <#>`_
+      * `4 <#>`_
+      * `5 <#>`_
+      * `» <#>`_
+
+.. code::
+   :class: highlight
+
+   .. class:: pagination
+
+      * .. item-class:: disabled
+        `« <#>`_
+      * .. item-class:: active
+        `1 <#>`_
+      * `2 <#>`_
+      * `3 <#>`_
+      * `4 <#>`_
+      * `5 <#>`_
+      * `» <#>`_
+
+Sizing
+------
+
+Fancy larger or smaller pagination? Add `.pagination-lg` or `.pagination-sm` for
+additional sizes.
+
+.. container:: bs-example
+
+   .. class:: pagination pagination-lg
+
+      * `« <#>`_
+      * `1 <#>`_
+      * `2 <#>`_
+      * `3 <#>`_
+      * `4 <#>`_
+      * `5 <#>`_
+      * `» <#>`_
+
+   |
+
+   .. class:: pagination
+
+      * `« <#>`_
+      * `1 <#>`_
+      * `2 <#>`_
+      * `3 <#>`_
+      * `4 <#>`_
+      * `5 <#>`_
+      * `» <#>`_
+
+   |
+
+   .. class:: pagination pagination-sm
+
+      * `« <#>`_
+      * `1 <#>`_
+      * `2 <#>`_
+      * `3 <#>`_
+      * `4 <#>`_
+      * `5 <#>`_
+      * `» <#>`_
+
+.. code::
+   :class: highlight
+
+
+   .. class:: pagination pagination-lg
+
+      ...
+
+   .. class:: pagination
+
+      ...
+
+   .. class:: pagination pagination-sm
+
+      ...
+
+
+Pager
+===============================================================================
+
+Quick previous and next links for simple pagination implementations with light
+markup and styles. It's great for simple sites like blogs or magazines.
+
+Default example
+---------------
+
+By default, the pager centers links.
+
+.. container:: bs-example
+
+   .. class:: pager
+
+      * `Previous <#>`_
+      * `Next <#>`_
+
+.. code::
+   :class: highlight
+
+   .. class:: pager
+
+      * `Previous <#>`_
+      * `Next <#>`_
+
+
+Aligned links
+-------------
+
+Alternatively, you can align each link to the sides:
+
+.. container:: bs-example
+
+   .. class:: pager
+
+      * .. item-class:: previous
+        `← Older <#>`_
+      * .. item-class:: next
+        `Newer → <#>`_
+
+.. code::
+   :class: highlight
+
+   .. class:: pager
+
+      * .. item-class:: previous
+        `← Older <#>`_
+      * .. item-class:: next
+        `Newer → <#>`_
+
+
+Optional disabled state
+-----------------------
+
+Pager links also use the general `disabled` utility class from the pagination.
+
+.. container:: bs-example
+
+   .. class:: pager
+
+      * .. item-class:: previous disabled
+        `← Older <#>`_
+      * .. item-class:: next
+        `Newer → <#>`_
+
+.. code::
+   :class: highlight
+
+   .. class:: pager
+
+      * .. item-class:: previous disabled
+        `← Older <#>`_
+      * .. item-class:: next
+        `Newer → <#>`_

+ 140 - 0
bootstrap-rst/doc/components-progress.txt

@@ -0,0 +1,140 @@
+Progress bars
+===============================================================================
+.. lead:: Provide up-to-date feedback on the progress of a workflow or action
+          with simple yet flexible progress bars.
+.. ----------------------------------------------------------------------------
+
+.. callout:: danger
+
+   :h4:`Cross-browser compatibility`
+   Progress bars use CSS3 transitions and animations to achieve some of their
+   effects. These features are not supported in Internet Explorer 9 and below
+   or older versions of Firefox. Opera 12 does not support animations.
+
+
+Basic example
+-------------
+
+Default progress bar.
+
+.. container:: bs-example
+
+   .. progress:: 60%
+
+.. code::
+   :class: highlight
+
+   .. progress:: 60%
+
+
+With label
+----------
+
+Remove the `.sr-only` class from within the progress bar to show a visible
+percentage. For low percentages, consider adding a `min-width` to ensure the
+label's text is fully visible.
+
+.. container:: bs-example
+
+   .. progress:: 60%
+      :label: 60%
+
+.. code::
+   :class: highlight
+
+   .. progress:: 60%
+      :label: 60%
+
+
+Contextual alternatives
+-----------------------
+
+Progress bars use some of the same button and alert classes for consistent
+styles.
+
+.. container:: bs-example
+
+   .. progress:: 40%
+      :class: success
+
+   .. progress:: 20%
+      :class: info
+
+   .. progress:: 60%
+      :class: warning
+
+   .. progress:: 80%
+      :class: danger
+
+.. code::
+   :class: highlight
+
+   .. progress:: 40%
+      :class: success
+
+   .. progress:: 20%
+      :class: info
+
+   .. progress:: 60%
+      :class: warning
+
+   .. progress:: 80%
+      :class: danger
+
+
+Striped
+-------
+
+Uses a gradient to create a striped effect. Not available in IE8.
+
+.. container:: bs-example
+
+   .. progress:: 40%
+      :class: success striped
+
+   .. progress:: 20%
+      :class: info striped
+
+   .. progress:: 60%
+      :class: warning striped
+
+   .. progress:: 80%
+      :class: danger striped
+
+.. code::
+   :class: highlight
+
+   .. progress:: 40%
+      :class: success striped
+
+   .. progress:: 20%
+      :class: info striped
+
+   .. progress:: 60%
+      :class: warning striped
+
+   .. progress:: 80%
+      :class: danger striped
+
+
+Animated
+--------
+
+Add `.active` to `.progress-striped` to animate the stripes right to left. Not
+available in IE9 and below.
+
+.. container:: bs-example
+
+   .. progress:: 45%
+      :class: active
+
+.. code::
+   :class: highlight
+
+   .. progress:: 45%
+      :class: active
+
+Stacked
+-------
+
+:text-muted:`N/A`

+ 157 - 0
bootstrap-rst/doc/components-thumbnails.txt

@@ -0,0 +1,157 @@
+Thumbnails
+===============================================================================
+.. lead:: Extend Bootstrap's grid system with the thumbnail component to easily
+          display grids of images, videos, text, and more.
+
+Default example
+---------------
+
+By default, Bootstrap's thumbnails are designed to showcase linked images with
+minimal required markup.
+
+.. container:: bs-example
+
+   .. row::
+
+      .. column::
+         :width: 3
+
+         .. image:: 171x180.png
+            :class: thumbnail
+
+      .. column::
+         :width: 3
+
+         .. image:: 171x180.png
+            :class: thumbnail
+
+      .. column::
+         :width: 3
+
+         .. image:: 171x180.png
+            :class: thumbnail
+
+      .. column::
+         :width: 3
+
+         .. image:: 171x180.png
+            :class: thumbnail
+
+.. code::
+   :class: highlight
+
+      .. column::
+         :width: 3
+
+         .. image:: 171x180.png
+            :class: thumbnail
+
+      .. column::
+         :width: 3
+
+         .. image:: 171x180.png
+            :class: thumbnail
+
+      .. column::
+         :width: 3
+
+         .. image:: 171x180.png
+            :class: thumbnail
+
+      .. column::
+         :width: 3
+
+         .. image:: 171x180.png
+            :class: thumbnail
+
+Custom content
+--------------
+
+With a bit of extra markup, it's possible to add any kind of HTML content like
+headings, paragraphs, or buttons into thumbnails.
+
+.. container:: bs-example
+
+   .. row::
+
+      .. column::
+         :width: 4
+
+         .. thumbnail::
+
+            .. image:: 300x200.png
+
+            .. caption::
+
+               :h3:`Thumbnail label`
+
+               Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec
+               id elit non mi porta gravida at eget metus. Nullam id dolor id nibh
+               ultricies vehicula ut id elit.
+
+               .. button:: Button
+                  :class: primary
+
+               .. button:: Button
+
+
+      .. column::
+         :width: 4
+
+         .. thumbnail::
+
+            .. image:: 300x200.png
+
+            .. caption::
+
+               :h3:`Thumbnail label`
+
+               Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec
+               id elit non mi porta gravida at eget metus. Nullam id dolor id nibh
+               ultricies vehicula ut id elit.
+
+               .. button:: Button
+                  :class: primary
+
+               .. button:: Button
+
+
+      .. column::
+         :width: 4
+
+         .. thumbnail::
+
+            .. image:: 300x200.png
+
+            .. caption::
+
+               :h3:`Thumbnail label`
+
+               Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec
+               id elit non mi porta gravida at eget metus. Nullam id dolor id nibh
+               ultricies vehicula ut id elit.
+
+               .. button:: Button
+                  :class: primary
+
+               .. button:: Button
+
+.. code::
+   :class: highlight
+
+   .. thumbnail::
+
+      .. image:: 300x200.png
+
+      .. caption::
+
+         :h3:`Thumbnail label`
+
+         Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec
+         id elit non mi porta gravida at eget metus. Nullam id dolor id nibh
+         ultricies vehicula ut id elit.
+
+         .. button:: Button
+            :class: primary
+
+         .. button:: Button

+ 53 - 0
bootstrap-rst/doc/components-wells.txt

@@ -0,0 +1,53 @@
+Wells
+===============================================================================
+
+Default well
+------------
+
+Use the well as a simple effect on an element to give it an inset effect.
+
+.. container:: bs-example
+
+   .. class:: well
+
+      Look, I'm in a well!
+
+.. code::
+   :class: highlight
+
+   .. class:: well
+
+      Look, I'm in a well!
+
+
+Optional classes
+----------------
+
+Control padding and rounded corners with two optional modifier classes.
+
+.. container:: bs-example
+
+   .. class:: well well-lg
+
+      Look, I'm in a well!
+
+.. code::
+   :class: highlight
+
+   .. class:: well well-lg
+
+      Look, I'm in a well!
+
+
+.. container:: bs-example
+
+   .. class:: well well-sm
+
+      Look, I'm in a well!
+
+.. code::
+   :class: highlight
+
+   .. class:: well well-sm
+
+      Look, I'm in a well!

+ 65 - 0
bootstrap-rst/doc/components.rst

@@ -0,0 +1,65 @@
+.. ----------------------------------------------------------------------------
+.. default-role:: code
+.. include:: bootstrap-roles.txt
+.. include:: bootstrap-glyphs.txt
+.. ----------------------------------------------------------------------------
+
+.. ----------------------------------------------------------------------------
+.. header::
+
+   .. container:: bs-docs-header
+
+      .. container:: container
+
+         :h1:`Components`
+
+         Over a dozen reusable components built to provide iconography,
+         dropdowns, input groups, navigation, alerts, and much more.
+.. ----------------------------------------------------------------------------
+
+.. ----------------------------------------------------------------------------
+.. footer:: bs-docs-footer
+
+   Bootstrap RST - Copyright (c) 2014 Nicolas P. Rougier
+
+   `Bootstrap <http://getbootstrap.com>`_ - Copyright (c) 2011-2014 Twitter, Inc
+
+   Code licensed under MIT, documentation under CC BY 3.0.
+
+   `Get page source <doc/components.rst>`_
+
+   .. class:: bs-docs-footer-links muted
+
+      * `GitHub <https://github.com/rougier/bootstrap-rst>`_
+      * ·
+      * `Examples <examples.html>`_
+      * ·
+      * `Documentation <about.html>`_
+      * ·
+      * `About <about.html>`_
+      * ·
+      * `Issues <https://github.com/rougier/bootstrap-rst/issues>`_
+      * ·
+      * `Releases <https://github.com/rougier/bootstrap-rst/releases>`_
+.. ----------------------------------------------------------------------------
+
+
+.. ----------------------------------------------------------------------------
+.. sidebar:: sidebar
+
+   .. contents:: content
+      :depth: 2
+.. ----------------------------------------------------------------------------
+
+
+.. include:: components-glyphicons.txt
+.. include:: components-breadcrumbs.txt
+.. include:: components-pagination.txt
+.. include:: components-labels.txt
+.. include:: components-badges.txt
+.. include:: components-jumbotron.txt
+.. include:: components-page-header.txt
+.. include:: components-thumbnails.txt
+.. include:: components-alerts.txt
+.. include:: components-progress.txt
+.. include:: components-wells.txt

+ 160 - 0
bootstrap-rst/doc/getting-started.rst

@@ -0,0 +1,160 @@
+.. default-role:: code
+.. role:: text-muted
+.. role:: sr-only
+
+.. |caret| raw:: html
+
+   <span class="caret"></span>
+
+.. include:: glyphicons-defs.txt
+
+
+.. ----------------------------------------------------------------------------
+.. header::
+   :class: bs-docs-header
+
+   .. container:: container
+
+      :h1:`Getting started`
+
+      An overview of Bootstrap RST, how to download and use, basic
+      templates and examples, and more.
+.. ----------------------------------------------------------------------------
+
+.. ----------------------------------------------------------------------------
+.. footer::
+   :class: bs-docs-footer
+
+   Bootstrap RST - Copyright 2014 Nicolas P. Rougier
+
+   Code licensed under MIT, documentation under CC BY 3.0.
+
+   `Get page source <getting-started.rst>`_
+
+   .. class:: bs-docs-footer-links muted
+
+      * GitHub
+      * ·
+      * Examples
+      * ·
+      * Documentation
+      * ·
+      * About
+      * ·
+      * Issues
+      * ·
+      * Releases
+.. ----------------------------------------------------------------------------
+
+
+.. ----------------------------------------------------------------------------
+.. sidebar:: sidebar
+
+   .. contents:: content
+      :depth: 2
+.. ----------------------------------------------------------------------------
+
+
+Download
+===============================================================================
+.. lead:: Bootstrap RST has a few easy ways to quickly get started, each one
+          appealing to a different skill level and use case. Read through to
+          see what suits your particular needs.
+.. ----------------------------------------------------------------------------
+
+
+.. row:: bs-downloads
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 4
+
+      :h3:`Bootstrap RST`
+
+      Compiled and minified CSS, JavaScript, and fonts. No docs or original
+      source files are included.
+
+      .. button:: Get Bootstrap RST
+         :class: outline large
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 4
+
+      :h3:`Source`
+
+      Compiled and minified CSS, JavaScript, and fonts. No docs or original
+      source files are included.
+
+      .. button:: Download source
+         :class: outline large
+         :target: #
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 4
+
+      :h3:`Bootstrap`
+
+      Compiled and minified CSS, JavaScript, and fonts. No docs or original
+      source files are included.
+
+      .. button:: Download Bootstrap
+         :class: outline large
+   .. -------------------------------------------------------------------------
+
+
+Browser and device support
+===============================================================================
+.. lead:: Bootstrap is built to work best in the latest desktop and mobile
+          browsers, meaning older browsers might display differently styled,
+          though fully functional, renderings of certain components.
+
+Supported browsers
+------------------
+
+Specifically, we support the latest versions of the following browsers and
+platforms. On Windows, we support Internet Explorer 8-11. More specific support
+information is provided below.
+
+.. class:: table table-bordered table-striped
+
+   +----------+--------+-------------------+-------------------+----------+-------------------+
+   |          | Chrome | Firefox           | Internet Explorer | Opera    | Safari            |
+   +==========+========+===================+===================+==========+===================+
+   | Android  | |ok|   | |remove|          | :text-muted:`N/A` | |remove| | :text-muted:`N/A` |
+   +----------+--------+-------------------+-------------------+----------+-------------------+
+   | iOS      | |ok|   | :text-muted:`N/A` | :text-muted:`N/A` | |remove| | |ok|              |
+   +----------+--------+-------------------+-------------------+----------+-------------------+
+   | Mac OS X |	|ok|   | |ok|              | :text-muted:`N/A` | |ok|     | |ok|              |
+   +----------+--------+-------------------+-------------------+----------+-------------------+
+   | Windows  |	|ok|   | |ok|	           | |ok|              | |ok|     | |remove|          |
+   +----------+--------+-------------------+-------------------+----------+-------------------+
+
+
+.. ----------------------------------------------------------------------------
+.. container:: btn-group
+
+   .. button:: 1
+   .. button:: 2
+   .. container:: btn-group
+
+      .. button:: |caret| :sr-only:`Dropdown`
+         :class: toggle
+
+      .. class:: dropdown-menu
+
+         * `Drowpdown link <www.loria.fr>`_
+         * `Drowpdown link <www.loria.fr>`_
+.. ----------------------------------------------------------------------------
+
+.. ----------------------------------------------------------------------------
+.. container:: btn-group
+
+   .. button:: Default
+   .. button:: |caret| :sr-only:`Dropdown`
+      :class: toggle
+
+   .. class:: dropdown-menu
+
+      * `Drowpdown link <www.loria.fr>`_
+      * `Drowpdown link <www.loria.fr>`_
+.. ----------------------------------------------------------------------------

+ 801 - 0
bootstrap-rst/doc/glyphicons-defs.txt

@@ -0,0 +1,801 @@
+.. role:: glyphicon-class
+
+.. |asterisk| raw:: html
+
+   <span class="glyphicon glyphicon-asterisk"></span>
+
+.. |plus| raw:: html
+
+   <span class="glyphicon glyphicon-plus"></span>
+
+.. |euro| raw:: html
+
+   <span class="glyphicon glyphicon-euro"></span>
+
+.. |minus| raw:: html
+
+   <span class="glyphicon glyphicon-minus"></span>
+
+.. |cloud| raw:: html
+
+   <span class="glyphicon glyphicon-cloud"></span>
+
+.. |envelope| raw:: html
+
+   <span class="glyphicon glyphicon-envelope"></span>
+
+.. |pencil| raw:: html
+
+   <span class="glyphicon glyphicon-pencil"></span>
+
+.. |glass| raw:: html
+
+   <span class="glyphicon glyphicon-glass"></span>
+
+.. |music| raw:: html
+
+   <span class="glyphicon glyphicon-music"></span>
+
+.. |search| raw:: html
+
+   <span class="glyphicon glyphicon-search"></span>
+
+.. |heart| raw:: html
+
+   <span class="glyphicon glyphicon-heart"></span>
+
+.. |star| raw:: html
+
+   <span class="glyphicon glyphicon-star"></span>
+
+.. |star-empty| raw:: html
+
+   <span class="glyphicon glyphicon-star-empty"></span>
+
+.. |user| raw:: html
+
+   <span class="glyphicon glyphicon-user"></span>
+
+.. |film| raw:: html
+
+   <span class="glyphicon glyphicon-film"></span>
+
+.. |th-large| raw:: html
+
+   <span class="glyphicon glyphicon-th-large"></span>
+
+.. |th| raw:: html
+
+   <span class="glyphicon glyphicon-th"></span>
+
+.. |th-list| raw:: html
+
+   <span class="glyphicon glyphicon-th-list"></span>
+
+.. |ok| raw:: html
+
+   <span class="glyphicon glyphicon-ok"></span>
+
+.. |remove| raw:: html
+
+   <span class="glyphicon glyphicon-remove"></span>
+
+.. |zoom-in| raw:: html
+
+   <span class="glyphicon glyphicon-zoom-in"></span>
+
+.. |zoom-out| raw:: html
+
+   <span class="glyphicon glyphicon-zoom-out"></span>
+
+.. |off| raw:: html
+
+   <span class="glyphicon glyphicon-off"></span>
+
+.. |signal| raw:: html
+
+   <span class="glyphicon glyphicon-signal"></span>
+
+.. |cog| raw:: html
+
+   <span class="glyphicon glyphicon-cog"></span>
+
+.. |trash| raw:: html
+
+   <span class="glyphicon glyphicon-trash"></span>
+
+.. |home| raw:: html
+
+   <span class="glyphicon glyphicon-home"></span>
+
+.. |file| raw:: html
+
+   <span class="glyphicon glyphicon-file"></span>
+
+.. |time| raw:: html
+
+   <span class="glyphicon glyphicon-time"></span>
+
+.. |road| raw:: html
+
+   <span class="glyphicon glyphicon-road"></span>
+
+.. |download-alt| raw:: html
+
+   <span class="glyphicon glyphicon-download-alt"></span>
+
+.. |download| raw:: html
+
+   <span class="glyphicon glyphicon-download"></span>
+
+.. |upload| raw:: html
+
+   <span class="glyphicon glyphicon-upload"></span>
+
+.. |inbox| raw:: html
+
+   <span class="glyphicon glyphicon-inbox"></span>
+
+.. |play-circle| raw:: html
+
+   <span class="glyphicon glyphicon-play-circle"></span>
+
+.. |repeat| raw:: html
+
+   <span class="glyphicon glyphicon-repeat"></span>
+
+.. |refresh| raw:: html
+
+   <span class="glyphicon glyphicon-refresh"></span>
+
+.. |list-alt| raw:: html
+
+   <span class="glyphicon glyphicon-list-alt"></span>
+
+.. |lock| raw:: html
+
+   <span class="glyphicon glyphicon-lock"></span>
+
+.. |flag| raw:: html
+
+   <span class="glyphicon glyphicon-flag"></span>
+
+.. |headphones| raw:: html
+
+   <span class="glyphicon glyphicon-headphones"></span>
+
+.. |volume-off| raw:: html
+
+   <span class="glyphicon glyphicon-volume-off"></span>
+
+.. |volume-down| raw:: html
+
+   <span class="glyphicon glyphicon-volume-down"></span>
+
+.. |volume-up| raw:: html
+
+   <span class="glyphicon glyphicon-volume-up"></span>
+
+.. |qrcode| raw:: html
+
+   <span class="glyphicon glyphicon-qrcode"></span>
+
+.. |barcode| raw:: html
+
+   <span class="glyphicon glyphicon-barcode"></span>
+
+.. |tag| raw:: html
+
+   <span class="glyphicon glyphicon-tag"></span>
+
+.. |tags| raw:: html
+
+   <span class="glyphicon glyphicon-tags"></span>
+
+.. |book| raw:: html
+
+   <span class="glyphicon glyphicon-book"></span>
+
+.. |bookmark| raw:: html
+
+   <span class="glyphicon glyphicon-bookmark"></span>
+
+.. |print| raw:: html
+
+   <span class="glyphicon glyphicon-print"></span>
+
+.. |camera| raw:: html
+
+   <span class="glyphicon glyphicon-camera"></span>
+
+.. |font| raw:: html
+
+   <span class="glyphicon glyphicon-font"></span>
+
+.. |bold| raw:: html
+
+   <span class="glyphicon glyphicon-bold"></span>
+
+.. |italic| raw:: html
+
+   <span class="glyphicon glyphicon-italic"></span>
+
+.. |text-height| raw:: html
+
+   <span class="glyphicon glyphicon-text-height"></span>
+
+.. |text-width| raw:: html
+
+   <span class="glyphicon glyphicon-text-width"></span>
+
+.. |align-left| raw:: html
+
+   <span class="glyphicon glyphicon-align-left"></span>
+
+.. |align-center| raw:: html
+
+   <span class="glyphicon glyphicon-align-center"></span>
+
+.. |align-right| raw:: html
+
+   <span class="glyphicon glyphicon-align-right"></span>
+
+.. |align-justify| raw:: html
+
+   <span class="glyphicon glyphicon-align-justify"></span>
+
+.. |list| raw:: html
+
+   <span class="glyphicon glyphicon-list"></span>
+
+.. |indent-left| raw:: html
+
+   <span class="glyphicon glyphicon-indent-left"></span>
+
+.. |indent-right| raw:: html
+
+   <span class="glyphicon glyphicon-indent-right"></span>
+
+.. |facetime-video| raw:: html
+
+   <span class="glyphicon glyphicon-facetime-video"></span>
+
+.. |picture| raw:: html
+
+   <span class="glyphicon glyphicon-picture"></span>
+
+.. |map-marker| raw:: html
+
+   <span class="glyphicon glyphicon-map-marker"></span>
+
+.. |adjust| raw:: html
+
+   <span class="glyphicon glyphicon-adjust"></span>
+
+.. |tint| raw:: html
+
+   <span class="glyphicon glyphicon-tint"></span>
+
+.. |edit| raw:: html
+
+   <span class="glyphicon glyphicon-edit"></span>
+
+.. |share| raw:: html
+
+   <span class="glyphicon glyphicon-share"></span>
+
+.. |check| raw:: html
+
+   <span class="glyphicon glyphicon-check"></span>
+
+.. |move| raw:: html
+
+   <span class="glyphicon glyphicon-move"></span>
+
+.. |step-backward| raw:: html
+
+   <span class="glyphicon glyphicon-step-backward"></span>
+
+.. |fast-backward| raw:: html
+
+   <span class="glyphicon glyphicon-fast-backward"></span>
+
+.. |backward| raw:: html
+
+   <span class="glyphicon glyphicon-backward"></span>
+
+.. |play| raw:: html
+
+   <span class="glyphicon glyphicon-play"></span>
+
+.. |pause| raw:: html
+
+   <span class="glyphicon glyphicon-pause"></span>
+
+.. |stop| raw:: html
+
+   <span class="glyphicon glyphicon-stop"></span>
+
+.. |forward| raw:: html
+
+   <span class="glyphicon glyphicon-forward"></span>
+
+.. |fast-forward| raw:: html
+
+   <span class="glyphicon glyphicon-fast-forward"></span>
+
+.. |step-forward| raw:: html
+
+   <span class="glyphicon glyphicon-step-forward"></span>
+
+.. |eject| raw:: html
+
+   <span class="glyphicon glyphicon-eject"></span>
+
+.. |chevron-left| raw:: html
+
+   <span class="glyphicon glyphicon-chevron-left"></span>
+
+.. |chevron-right| raw:: html
+
+   <span class="glyphicon glyphicon-chevron-right"></span>
+
+.. |plus-sign| raw:: html
+
+   <span class="glyphicon glyphicon-plus-sign"></span>
+
+.. |minus-sign| raw:: html
+
+   <span class="glyphicon glyphicon-minus-sign"></span>
+
+.. |remove-sign| raw:: html
+
+   <span class="glyphicon glyphicon-remove-sign"></span>
+
+.. |ok-sign| raw:: html
+
+   <span class="glyphicon glyphicon-ok-sign"></span>
+
+.. |question-sign| raw:: html
+
+   <span class="glyphicon glyphicon-question-sign"></span>
+
+.. |info-sign| raw:: html
+
+   <span class="glyphicon glyphicon-info-sign"></span>
+
+.. |screenshot| raw:: html
+
+   <span class="glyphicon glyphicon-screenshot"></span>
+
+.. |remove-circle| raw:: html
+
+   <span class="glyphicon glyphicon-remove-circle"></span>
+
+.. |ok-circle| raw:: html
+
+   <span class="glyphicon glyphicon-ok-circle"></span>
+
+.. |ban-circle| raw:: html
+
+   <span class="glyphicon glyphicon-ban-circle"></span>
+
+.. |arrow-left| raw:: html
+
+   <span class="glyphicon glyphicon-arrow-left"></span>
+
+.. |arrow-right| raw:: html
+
+   <span class="glyphicon glyphicon-arrow-right"></span>
+
+.. |arrow-up| raw:: html
+
+   <span class="glyphicon glyphicon-arrow-up"></span>
+
+.. |arrow-down| raw:: html
+
+   <span class="glyphicon glyphicon-arrow-down"></span>
+
+.. |share-alt| raw:: html
+
+   <span class="glyphicon glyphicon-share-alt"></span>
+
+.. |resize-full| raw:: html
+
+   <span class="glyphicon glyphicon-resize-full"></span>
+
+.. |resize-small| raw:: html
+
+   <span class="glyphicon glyphicon-resize-small"></span>
+
+.. |exclamation-sign| raw:: html
+
+   <span class="glyphicon glyphicon-exclamation-sign"></span>
+
+.. |gift| raw:: html
+
+   <span class="glyphicon glyphicon-gift"></span>
+
+.. |leaf| raw:: html
+
+   <span class="glyphicon glyphicon-leaf"></span>
+
+.. |fire| raw:: html
+
+   <span class="glyphicon glyphicon-fire"></span>
+
+.. |eye-open| raw:: html
+
+   <span class="glyphicon glyphicon-eye-open"></span>
+
+.. |eye-close| raw:: html
+
+   <span class="glyphicon glyphicon-eye-close"></span>
+
+.. |warning-sign| raw:: html
+
+   <span class="glyphicon glyphicon-warning-sign"></span>
+
+.. |plane| raw:: html
+
+   <span class="glyphicon glyphicon-plane"></span>
+
+.. |calendar| raw:: html
+
+   <span class="glyphicon glyphicon-calendar"></span>
+
+.. |random| raw:: html
+
+   <span class="glyphicon glyphicon-random"></span>
+
+.. |comment| raw:: html
+
+   <span class="glyphicon glyphicon-comment"></span>
+
+.. |magnet| raw:: html
+
+   <span class="glyphicon glyphicon-magnet"></span>
+
+.. |chevron-up| raw:: html
+
+   <span class="glyphicon glyphicon-chevron-up"></span>
+
+.. |chevron-down| raw:: html
+
+   <span class="glyphicon glyphicon-chevron-down"></span>
+
+.. |retweet| raw:: html
+
+   <span class="glyphicon glyphicon-retweet"></span>
+
+.. |shopping-cart| raw:: html
+
+   <span class="glyphicon glyphicon-shopping-cart"></span>
+
+.. |folder-close| raw:: html
+
+   <span class="glyphicon glyphicon-folder-close"></span>
+
+.. |folder-open| raw:: html
+
+   <span class="glyphicon glyphicon-folder-open"></span>
+
+.. |resize-vertical| raw:: html
+
+   <span class="glyphicon glyphicon-resize-vertical"></span>
+
+.. |resize-horizontal| raw:: html
+
+   <span class="glyphicon glyphicon-resize-horizontal"></span>
+
+.. |hdd| raw:: html
+
+   <span class="glyphicon glyphicon-hdd"></span>
+
+.. |bullhorn| raw:: html
+
+   <span class="glyphicon glyphicon-bullhorn"></span>
+
+.. |bell| raw:: html
+
+   <span class="glyphicon glyphicon-bell"></span>
+
+.. |certificate| raw:: html
+
+   <span class="glyphicon glyphicon-certificate"></span>
+
+.. |thumbs-up| raw:: html
+
+   <span class="glyphicon glyphicon-thumbs-up"></span>
+
+.. |thumbs-down| raw:: html
+
+   <span class="glyphicon glyphicon-thumbs-down"></span>
+
+.. |hand-right| raw:: html
+
+   <span class="glyphicon glyphicon-hand-right"></span>
+
+.. |hand-left| raw:: html
+
+   <span class="glyphicon glyphicon-hand-left"></span>
+
+.. |hand-up| raw:: html
+
+   <span class="glyphicon glyphicon-hand-up"></span>
+
+.. |hand-down| raw:: html
+
+   <span class="glyphicon glyphicon-hand-down"></span>
+
+.. |circle-arrow-right| raw:: html
+
+   <span class="glyphicon glyphicon-circle-arrow-right"></span>
+
+.. |circle-arrow-left| raw:: html
+
+   <span class="glyphicon glyphicon-circle-arrow-left"></span>
+
+.. |circle-arrow-up| raw:: html
+
+   <span class="glyphicon glyphicon-circle-arrow-up"></span>
+
+.. |circle-arrow-down| raw:: html
+
+   <span class="glyphicon glyphicon-circle-arrow-down"></span>
+
+.. |globe| raw:: html
+
+   <span class="glyphicon glyphicon-globe"></span>
+
+.. |wrench| raw:: html
+
+   <span class="glyphicon glyphicon-wrench"></span>
+
+.. |tasks| raw:: html
+
+   <span class="glyphicon glyphicon-tasks"></span>
+
+.. |filter| raw:: html
+
+   <span class="glyphicon glyphicon-filter"></span>
+
+.. |briefcase| raw:: html
+
+   <span class="glyphicon glyphicon-briefcase"></span>
+
+.. |fullscreen| raw:: html
+
+   <span class="glyphicon glyphicon-fullscreen"></span>
+
+.. |dashboard| raw:: html
+
+   <span class="glyphicon glyphicon-dashboard"></span>
+
+.. |paperclip| raw:: html
+
+   <span class="glyphicon glyphicon-paperclip"></span>
+
+.. |heart-empty| raw:: html
+
+   <span class="glyphicon glyphicon-heart-empty"></span>
+
+.. |link| raw:: html
+
+   <span class="glyphicon glyphicon-link"></span>
+
+.. |phone| raw:: html
+
+   <span class="glyphicon glyphicon-phone"></span>
+
+.. |pushpin| raw:: html
+
+   <span class="glyphicon glyphicon-pushpin"></span>
+
+.. |usd| raw:: html
+
+   <span class="glyphicon glyphicon-usd"></span>
+
+.. |gbp| raw:: html
+
+   <span class="glyphicon glyphicon-gbp"></span>
+
+.. |sort| raw:: html
+
+   <span class="glyphicon glyphicon-sort"></span>
+
+.. |sort-by-alphabet| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-alphabet"></span>
+
+.. |sort-by-alphabet-alt| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-alphabet-alt"></span>
+
+.. |sort-by-order| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-order"></span>
+
+.. |sort-by-order-alt| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-order-alt"></span>
+
+.. |sort-by-attributes| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-attributes"></span>
+
+.. |sort-by-attributes-alt| raw:: html
+
+   <span class="glyphicon glyphicon-sort-by-attributes-alt"></span>
+
+.. |unchecked| raw:: html
+
+   <span class="glyphicon glyphicon-unchecked"></span>
+
+.. |expand| raw:: html
+
+   <span class="glyphicon glyphicon-expand"></span>
+
+.. |collapse-down| raw:: html
+
+   <span class="glyphicon glyphicon-collapse-down"></span>
+
+.. |collapse-up| raw:: html
+
+   <span class="glyphicon glyphicon-collapse-up"></span>
+
+.. |log-in| raw:: html
+
+   <span class="glyphicon glyphicon-log-in"></span>
+
+.. |flash| raw:: html
+
+   <span class="glyphicon glyphicon-flash"></span>
+
+.. |log-out| raw:: html
+
+   <span class="glyphicon glyphicon-log-out"></span>
+
+.. |new-window| raw:: html
+
+   <span class="glyphicon glyphicon-new-window"></span>
+
+.. |record| raw:: html
+
+   <span class="glyphicon glyphicon-record"></span>
+
+.. |save| raw:: html
+
+   <span class="glyphicon glyphicon-save"></span>
+
+.. |open| raw:: html
+
+   <span class="glyphicon glyphicon-open"></span>
+
+.. |saved| raw:: html
+
+   <span class="glyphicon glyphicon-saved"></span>
+
+.. |import| raw:: html
+
+   <span class="glyphicon glyphicon-import"></span>
+
+.. |export| raw:: html
+
+   <span class="glyphicon glyphicon-export"></span>
+
+.. |send| raw:: html
+
+   <span class="glyphicon glyphicon-send"></span>
+
+.. |floppy-disk| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-disk"></span>
+
+.. |floppy-saved| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-saved"></span>
+
+.. |floppy-remove| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-remove"></span>
+
+.. |floppy-save| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-save"></span>
+
+.. |floppy-open| raw:: html
+
+   <span class="glyphicon glyphicon-floppy-open"></span>
+
+.. |credit-card| raw:: html
+
+   <span class="glyphicon glyphicon-credit-card"></span>
+
+.. |transfer| raw:: html
+
+   <span class="glyphicon glyphicon-transfer"></span>
+
+.. |cutlery| raw:: html
+
+   <span class="glyphicon glyphicon-cutlery"></span>
+
+.. |header| raw:: html
+
+   <span class="glyphicon glyphicon-header"></span>
+
+.. |compressed| raw:: html
+
+   <span class="glyphicon glyphicon-compressed"></span>
+
+.. |earphone| raw:: html
+
+   <span class="glyphicon glyphicon-earphone"></span>
+
+.. |phone-alt| raw:: html
+
+   <span class="glyphicon glyphicon-phone-alt"></span>
+
+.. |tower| raw:: html
+
+   <span class="glyphicon glyphicon-tower"></span>
+
+.. |stats| raw:: html
+
+   <span class="glyphicon glyphicon-stats"></span>
+
+.. |sd-video| raw:: html
+
+   <span class="glyphicon glyphicon-sd-video"></span>
+
+.. |hd-video| raw:: html
+
+   <span class="glyphicon glyphicon-hd-video"></span>
+
+.. |subtitles| raw:: html
+
+   <span class="glyphicon glyphicon-subtitles"></span>
+
+.. |sound-stereo| raw:: html
+
+   <span class="glyphicon glyphicon-sound-stereo"></span>
+
+.. |sound-dolby| raw:: html
+
+   <span class="glyphicon glyphicon-sound-dolby"></span>
+
+.. |sound-5-1| raw:: html
+
+   <span class="glyphicon glyphicon-sound-5-1"></span>
+
+.. |sound-6-1| raw:: html
+
+   <span class="glyphicon glyphicon-sound-6-1"></span>
+
+.. |sound-7-1| raw:: html
+
+   <span class="glyphicon glyphicon-sound-7-1"></span>
+
+.. |copyright-mark| raw:: html
+
+   <span class="glyphicon glyphicon-copyright-mark"></span>
+
+.. |registration-mark| raw:: html
+
+   <span class="glyphicon glyphicon-registration-mark"></span>
+
+.. |cloud-download| raw:: html
+
+   <span class="glyphicon glyphicon-cloud-download"></span>
+
+.. |cloud-upload| raw:: html
+
+   <span class="glyphicon glyphicon-cloud-upload"></span>
+
+.. |tree-conifer| raw:: html
+
+   <span class="glyphicon glyphicon-tree-conifer"></span>
+
+.. |tree-deciduous| raw:: html
+
+   <span class="glyphicon glyphicon-tree-deciduous"></span>

+ 225 - 0
bootstrap-rst/doc/glyphicons-list.txt

@@ -0,0 +1,225 @@
+.. row::
+
+   .. column::
+      :width: 3
+
+      .. class:: list-unstyled
+
+         * |asterisk| : asterisk
+         * |plus| : plus
+         * |euro| : euro
+         * |minus| : minus
+         * |cloud| : cloud
+         * |envelope| : envelope
+         * |pencil| : pencil
+         * |glass| : glass
+         * |music| : music
+         * |search| : search
+         * |heart| : heart
+         * |star| : star
+         * |star-empty| : star-empty
+         * |user| : user
+         * |film| : film
+         * |th-large| : th-large
+         * |th| : th
+         * |th-list| : th-list
+         * |ok| : ok
+         * |remove| : remove
+         * |zoom-in| : zoom-in
+         * |zoom-out| : zoom-out
+         * |off| : off
+         * |signal| : signal
+         * |cog| : cog
+         * |trash| : trash
+         * |home| : home
+         * |file| : file
+         * |time| : time
+         * |road| : road
+         * |download-alt| : download-alt
+         * |download| : download
+         * |upload| : upload
+         * |inbox| : inbox
+         * |play-circle| : play-circle
+         * |repeat| : repeat
+         * |refresh| : refresh
+         * |list-alt| : list-alt
+         * |lock| : lock
+         * |flag| : flag
+         * |headphones| : headphones
+         * |volume-off| : volume-off
+         * |volume-down| : volume-down
+         * |volume-up| : volume-up
+         * |qrcode| : qrcode
+         * |barcode| : barcode
+         * |tag| : tag
+         * |tags| : tags
+         * |book| : book
+         * |bookmark| : bookmark
+
+   .. column::
+      :width: 3
+
+      .. class:: list-unstyled
+
+         * |print| : print
+         * |camera| : camera
+         * |font| : font
+         * |bold| : bold
+         * |italic| : italic
+         * |text-height| : text-height
+         * |text-width| : text-width
+         * |align-left| : align-left
+         * |align-center| : align-center
+         * |align-right| : align-right
+         * |align-justify| : align-justify
+         * |list| : list
+         * |indent-left| : indent-left
+         * |indent-right| : indent-right
+         * |facetime-video| : facetime-video
+         * |picture| : picture
+         * |map-marker| : map-marker
+         * |adjust| : adjust
+         * |tint| : tint
+         * |edit| : edit
+         * |share| : share
+         * |check| : check
+         * |move| : move
+         * |step-backward| : step-backward
+         * |fast-backward| : fast-backward
+         * |backward| : backward
+         * |play| : play
+         * |pause| : pause
+         * |stop| : stop
+         * |forward| : forward
+         * |fast-forward| : fast-forward
+         * |step-forward| : step-forward
+         * |eject| : eject
+         * |chevron-left| : chevron-left
+         * |chevron-right| : chevron-right
+         * |plus-sign| : plus-sign
+         * |minus-sign| : minus-sign
+         * |remove-sign| : remove-sign
+         * |ok-sign| : ok-sign
+         * |question-sign| : question-sign
+         * |info-sign| : info-sign
+         * |screenshot| : screenshot
+         * |remove-circle| : remove-circle
+         * |ok-circle| : ok-circle
+         * |ban-circle| : ban-circle
+         * |arrow-left| : arrow-left
+         * |arrow-right| : arrow-right
+         * |arrow-up| : arrow-up
+         * |arrow-down| : arrow-down
+         * |share-alt| : share-alt
+
+   .. column::
+      :width: 3
+
+      .. class:: list-unstyled
+
+         * |resize-full| : resize-full
+         * |resize-small| : resize-small
+         * |exclamation-sign| : exclamation-sign
+         * |gift| : gift
+         * |leaf| : leaf
+         * |fire| : fire
+         * |eye-open| : eye-open
+         * |eye-close| : eye-close
+         * |warning-sign| : warning-sign
+         * |plane| : plane
+         * |calendar| : calendar
+         * |random| : random
+         * |comment| : comment
+         * |magnet| : magnet
+         * |chevron-up| : chevron-up
+         * |chevron-down| : chevron-down
+         * |retweet| : retweet
+         * |shopping-cart| : shopping-cart
+         * |folder-close| : folder-close
+         * |folder-open| : folder-open
+         * |resize-vertical| : resize-vertical
+         * |resize-horizontal| : resize-horizontal
+         * |hdd| : hdd
+         * |bullhorn| : bullhorn
+         * |bell| : bell
+         * |certificate| : certificate
+         * |thumbs-up| : thumbs-up
+         * |thumbs-down| : thumbs-down
+         * |hand-right| : hand-right
+         * |hand-left| : hand-left
+         * |hand-up| : hand-up
+         * |hand-down| : hand-down
+         * |circle-arrow-right| : circle-arrow-right
+         * |circle-arrow-left| : circle-arrow-left
+         * |circle-arrow-up| : circle-arrow-up
+         * |circle-arrow-down| : circle-arrow-down
+         * |globe| : globe
+         * |wrench| : wrench
+         * |tasks| : tasks
+         * |filter| : filter
+         * |briefcase| : briefcase
+         * |fullscreen| : fullscreen
+         * |dashboard| : dashboard
+         * |paperclip| : paperclip
+         * |heart-empty| : heart-empty
+         * |link| : link
+         * |phone| : phone
+         * |pushpin| : pushpin
+         * |usd| : usd
+         * |gbp| : gbp
+
+   .. column::
+      :width: 3
+
+      .. class:: list-unstyled
+
+         * |sort| : sort
+         * |sort-by-alphabet| : sort-by-alphabet
+         * |sort-by-alphabet-alt| : sort-by-alphabet-alt
+         * |sort-by-order| : sort-by-order
+         * |sort-by-order-alt| : sort-by-order-alt
+         * |sort-by-attributes| : sort-by-attributes
+         * |sort-by-attributes-alt| : sort-by-attributes-alt
+         * |unchecked| : unchecked
+         * |expand| : expand
+         * |collapse-down| : collapse-down
+         * |collapse-up| : collapse-up
+         * |log-in| : log-in
+         * |flash| : flash
+         * |log-out| : log-out
+         * |new-window| : new-window
+         * |record| : record
+         * |save| : save
+         * |open| : open
+         * |saved| : saved
+         * |import| : import
+         * |export| : export
+         * |send| : send
+         * |floppy-disk| : floppy-disk
+         * |floppy-saved| : floppy-saved
+         * |floppy-remove| : floppy-remove
+         * |floppy-save| : floppy-save
+         * |floppy-open| : floppy-open
+         * |credit-card| : credit-card
+         * |transfer| : transfer
+         * |cutlery| : cutlery
+         * |header| : header
+         * |compressed| : compressed
+         * |earphone| : earphone
+         * |phone-alt| : phone-alt
+         * |tower| : tower
+         * |stats| : stats
+         * |sd-video| : sd-video
+         * |hd-video| : hd-video
+         * |subtitles| : subtitles
+         * |sound-stereo| : sound-stereo
+         * |sound-dolby| : sound-dolby
+         * |sound-5-1| : sound-5-1
+         * |sound-6-1| : sound-6-1
+         * |sound-7-1| : sound-7-1
+         * |copyright-mark| : copyright-mark
+         * |registration-mark| : registration-mark
+         * |cloud-download| : cloud-download
+         * |cloud-upload| : cloud-upload
+         * |tree-conifer| : tree-conifer
+         * |tree-deciduous| : tree-deciduous

+ 403 - 0
bootstrap-rst/doc/index.rst

@@ -0,0 +1,403 @@
+.. default-role:: code
+
+.. role:: text-muted
+.. role:: text-primary
+.. role:: text-success
+.. role:: text-info
+.. role:: text-warning
+.. role:: text-danger
+
+
+.. ----------------------------------------------------------------------------
+.. header:: bs-docs-header
+
+   .. container:: container
+
+      :h1:`Bootstrap RST`
+
+      An overview of Bootstrap RST, basic templates and examples, and more.
+.. ----------------------------------------------------------------------------
+
+.. ----------------------------------------------------------------------------
+.. footer:: bs-docs-footer
+
+   Bootstrap RST - Copyright (c) 2014 Nicolas P. Rougier
+
+   `Bootstrap <http://getbootstrap.com>`_ - Copyright (c) 2011-2014 Twitter, Inc
+
+   Code licensed under MIT, documentation under CC BY 3.0.
+
+   `Get page source <doc/index.rst>`_
+
+   .. class:: bs-docs-footer-links muted
+
+      * `GitHub <https://github.com/rougier/bootstrap-rst>`_
+      * ·
+      * `Examples <examples.html>`_
+      * ·
+      * `Documentation <about.html>`_
+      * ·
+      * `About <about.html>`_
+      * ·
+      * `Issues <https://github.com/rougier/bootstrap-rst/issues>`_
+      * ·
+      * `Releases <https://github.com/rougier/bootstrap-rst/releases>`_
+.. ----------------------------------------------------------------------------
+
+
+.. ----------------------------------------------------------------------------
+.. sidebar:: sidebar
+
+   .. contents:: content
+      :depth: 2
+.. ----------------------------------------------------------------------------
+
+Bootstrap RST
+===============================================================================
+.. lead:: Bootstrap RST provides easy acces to bootstrap using the restructured
+          text markup language.
+
+Bootstrap RST offers an easy access to the `bootstrap
+<http://getbootstrap.com/>`_ framework using the `restructured text`_ markup
+language. Bootstrap RST provides a set of new directives and roles (row,
+column, button, list, etc.)  that allow seamless integration of the bootstrap
+framework. Have a look at the `source`_ of this page for example and see below
+for what is available so far.
+
+.. _Nicolas P. Rougier: http://www.loria.fr/~rougier/
+.. _restructured text: http://docutils.sourceforge.net/rst.html
+.. _source: doc/index.rst
+
+
+
+Work in Progress
+===============================================================================
+.. lead:: Bootstrap RST is work in progress. We report here what has been done
+          so far, what needs to be done and what is not relevant.
+.. ----------------------------------------------------------------------------
+
+
+CSS
+---
+
+Global CSS settings, fundamental HTML elements styled and enhanced with
+extensible classes, and an advanced grid system.
+
+
+.. row::
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Grid system`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `grids <CSS.html#grid-system>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Typography`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `typography <CSS.html#typography>`_
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Code`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `code <CSS.html#code>`_
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Tables`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+
+      See `tables <CSS.html#tables>`_
+   .. -------------------------------------------------------------------------
+
+
+.. row::
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Forms`
+      :text-muted:`N/A`
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Buttons`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `buttons <CSS.html#buttons>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Images`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `images <CSS.html#images>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Helper classes`
+
+      .. progress:: 50%
+         :class: warning
+         :label: WIP
+
+      See `helper classes <CSS.html#helper-classes>`_
+   .. -------------------------------------------------------------------------
+
+
+
+Components
+----------
+
+Over a dozen reusable components built to provide iconography, dropdowns, input
+groups, navigation, alerts, and much more.
+
+
+.. row::
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Glyphicons`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `glyphicons <components.html#glyphicons>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Dropdowns`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `dropdowns <components.html#dropdowns>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Button groups`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `button groups <components.html#button-groups>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Glyphicons`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `button dropdowns <components.html#button-dropdowns>`_
+   .. -------------------------------------------------------------------------
+
+
+.. row::
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Input groups`
+      :text-muted:`N/A`
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Navs`
+
+      .. progress:: 25%
+         :class: danger
+         :label: WIP
+      See `navs <components.html#navs>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Navbar`
+
+      .. progress:: 25%
+         :class: danger
+         :label: WIP
+      See `navbar <components.html#navbar>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Breadcrumbs`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `breadcrumbs <components.html#breadcrumbs>`_
+   .. -------------------------------------------------------------------------
+
+
+.. row::
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Pagination`
+
+      .. progress:: 25%
+         :class: danger
+         :label: WIP
+      See `pagination <components.html#pagination>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Labels`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `labels <components.html#labels>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Badges`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `badges <components.html#badges>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Jumbotron`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `jumbotron <components.html#jumbotron>`_
+   .. -------------------------------------------------------------------------
+
+
+.. row::
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Page header`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `page header <components.html#page-header>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Thumbnails`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `thumbnails <components.html#thumbnails>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Alerts`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `alerts <components.html#alerts>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Progress bars`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `progress bars <components.html#progress-bars>`_
+   .. -------------------------------------------------------------------------
+
+
+.. row::
+
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Media object`
+
+      .. progress:: 25%
+         :class: danger
+         :label: WIP
+      See `media object <components.html#media-object>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`List group`
+
+      .. progress:: 25%
+         :class: danger
+         :label: WIP
+      See `list group <components.html#list-group>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Panels`
+
+      .. progress:: 25%
+         :class: danger
+         :label: WIP
+      See `panels <components.html#panels>`_
+   .. -------------------------------------------------------------------------
+   .. column::
+      :width: 3
+
+      :h4:`Wells`
+
+      .. progress:: 100%
+         :class: success
+         :label: Done !
+      See `wells <components.html#wells>`_
+   .. -------------------------------------------------------------------------

File diff suppressed because it is too large
+ 1542 - 0
bootstrap-rst/docs-min.css


+ 223 - 0
bootstrap-rst/make-glyphicons.py

@@ -0,0 +1,223 @@
+glyphs = """<span class="glyphicon glyphicon-asterisk"></span>
+<span class="glyphicon glyphicon-plus"></span>
+<span class="glyphicon glyphicon-euro"></span>
+<span class="glyphicon glyphicon-minus"></span>
+<span class="glyphicon glyphicon-cloud"></span>
+<span class="glyphicon glyphicon-envelope"></span>
+<span class="glyphicon glyphicon-pencil"></span>
+<span class="glyphicon glyphicon-glass"></span>
+<span class="glyphicon glyphicon-music"></span>
+<span class="glyphicon glyphicon-search"></span>
+<span class="glyphicon glyphicon-heart"></span>
+<span class="glyphicon glyphicon-star"></span>
+<span class="glyphicon glyphicon-star-empty"></span>
+<span class="glyphicon glyphicon-user"></span>
+<span class="glyphicon glyphicon-film"></span>
+<span class="glyphicon glyphicon-th-large"></span>
+<span class="glyphicon glyphicon-th"></span>
+<span class="glyphicon glyphicon-th-list"></span>
+<span class="glyphicon glyphicon-ok"></span>
+<span class="glyphicon glyphicon-remove"></span>
+<span class="glyphicon glyphicon-zoom-in"></span>
+<span class="glyphicon glyphicon-zoom-out"></span>
+<span class="glyphicon glyphicon-off"></span>
+<span class="glyphicon glyphicon-signal"></span>
+<span class="glyphicon glyphicon-cog"></span>
+<span class="glyphicon glyphicon-trash"></span>
+<span class="glyphicon glyphicon-home"></span>
+<span class="glyphicon glyphicon-file"></span>
+<span class="glyphicon glyphicon-time"></span>
+<span class="glyphicon glyphicon-road"></span>
+<span class="glyphicon glyphicon-download-alt"></span>
+<span class="glyphicon glyphicon-download"></span>
+<span class="glyphicon glyphicon-upload"></span>
+<span class="glyphicon glyphicon-inbox"></span>
+<span class="glyphicon glyphicon-play-circle"></span>
+<span class="glyphicon glyphicon-repeat"></span>
+<span class="glyphicon glyphicon-refresh"></span>
+<span class="glyphicon glyphicon-list-alt"></span>
+<span class="glyphicon glyphicon-lock"></span>
+<span class="glyphicon glyphicon-flag"></span>
+<span class="glyphicon glyphicon-headphones"></span>
+<span class="glyphicon glyphicon-volume-off"></span>
+<span class="glyphicon glyphicon-volume-down"></span>
+<span class="glyphicon glyphicon-volume-up"></span>
+<span class="glyphicon glyphicon-qrcode"></span>
+<span class="glyphicon glyphicon-barcode"></span>
+<span class="glyphicon glyphicon-tag"></span>
+<span class="glyphicon glyphicon-tags"></span>
+<span class="glyphicon glyphicon-book"></span>
+<span class="glyphicon glyphicon-bookmark"></span>
+<span class="glyphicon glyphicon-print"></span>
+<span class="glyphicon glyphicon-camera"></span>
+<span class="glyphicon glyphicon-font"></span>
+<span class="glyphicon glyphicon-bold"></span>
+<span class="glyphicon glyphicon-italic"></span>
+<span class="glyphicon glyphicon-text-height"></span>
+<span class="glyphicon glyphicon-text-width"></span>
+<span class="glyphicon glyphicon-align-left"></span>
+<span class="glyphicon glyphicon-align-center"></span>
+<span class="glyphicon glyphicon-align-right"></span>
+<span class="glyphicon glyphicon-align-justify"></span>
+<span class="glyphicon glyphicon-list"></span>
+<span class="glyphicon glyphicon-indent-left"></span>
+<span class="glyphicon glyphicon-indent-right"></span>
+<span class="glyphicon glyphicon-facetime-video"></span>
+<span class="glyphicon glyphicon-picture"></span>
+<span class="glyphicon glyphicon-map-marker"></span>
+<span class="glyphicon glyphicon-adjust"></span>
+<span class="glyphicon glyphicon-tint"></span>
+<span class="glyphicon glyphicon-edit"></span>
+<span class="glyphicon glyphicon-share"></span>
+<span class="glyphicon glyphicon-check"></span>
+<span class="glyphicon glyphicon-move"></span>
+<span class="glyphicon glyphicon-step-backward"></span>
+<span class="glyphicon glyphicon-fast-backward"></span>
+<span class="glyphicon glyphicon-backward"></span>
+<span class="glyphicon glyphicon-play"></span>
+<span class="glyphicon glyphicon-pause"></span>
+<span class="glyphicon glyphicon-stop"></span>
+<span class="glyphicon glyphicon-forward"></span>
+<span class="glyphicon glyphicon-fast-forward"></span>
+<span class="glyphicon glyphicon-step-forward"></span>
+<span class="glyphicon glyphicon-eject"></span>
+<span class="glyphicon glyphicon-chevron-left"></span>
+<span class="glyphicon glyphicon-chevron-right"></span>
+<span class="glyphicon glyphicon-plus-sign"></span>
+<span class="glyphicon glyphicon-minus-sign"></span>
+<span class="glyphicon glyphicon-remove-sign"></span>
+<span class="glyphicon glyphicon-ok-sign"></span>
+<span class="glyphicon glyphicon-question-sign"></span>
+<span class="glyphicon glyphicon-info-sign"></span>
+<span class="glyphicon glyphicon-screenshot"></span>
+<span class="glyphicon glyphicon-remove-circle"></span>
+<span class="glyphicon glyphicon-ok-circle"></span>
+<span class="glyphicon glyphicon-ban-circle"></span>
+<span class="glyphicon glyphicon-arrow-left"></span>
+<span class="glyphicon glyphicon-arrow-right"></span>
+<span class="glyphicon glyphicon-arrow-up"></span>
+<span class="glyphicon glyphicon-arrow-down"></span>
+<span class="glyphicon glyphicon-share-alt"></span>
+<span class="glyphicon glyphicon-resize-full"></span>
+<span class="glyphicon glyphicon-resize-small"></span>
+<span class="glyphicon glyphicon-exclamation-sign"></span>
+<span class="glyphicon glyphicon-gift"></span>
+<span class="glyphicon glyphicon-leaf"></span>
+<span class="glyphicon glyphicon-fire"></span>
+<span class="glyphicon glyphicon-eye-open"></span>
+<span class="glyphicon glyphicon-eye-close"></span>
+<span class="glyphicon glyphicon-warning-sign"></span>
+<span class="glyphicon glyphicon-plane"></span>
+<span class="glyphicon glyphicon-calendar"></span>
+<span class="glyphicon glyphicon-random"></span>
+<span class="glyphicon glyphicon-comment"></span>
+<span class="glyphicon glyphicon-magnet"></span>
+<span class="glyphicon glyphicon-chevron-up"></span>
+<span class="glyphicon glyphicon-chevron-down"></span>
+<span class="glyphicon glyphicon-retweet"></span>
+<span class="glyphicon glyphicon-shopping-cart"></span>
+<span class="glyphicon glyphicon-folder-close"></span>
+<span class="glyphicon glyphicon-folder-open"></span>
+<span class="glyphicon glyphicon-resize-vertical"></span>
+<span class="glyphicon glyphicon-resize-horizontal"></span>
+<span class="glyphicon glyphicon-hdd"></span>
+<span class="glyphicon glyphicon-bullhorn"></span>
+<span class="glyphicon glyphicon-bell"></span>
+<span class="glyphicon glyphicon-certificate"></span>
+<span class="glyphicon glyphicon-thumbs-up"></span>
+<span class="glyphicon glyphicon-thumbs-down"></span>
+<span class="glyphicon glyphicon-hand-right"></span>
+<span class="glyphicon glyphicon-hand-left"></span>
+<span class="glyphicon glyphicon-hand-up"></span>
+<span class="glyphicon glyphicon-hand-down"></span>
+<span class="glyphicon glyphicon-circle-arrow-right"></span>
+<span class="glyphicon glyphicon-circle-arrow-left"></span>
+<span class="glyphicon glyphicon-circle-arrow-up"></span>
+<span class="glyphicon glyphicon-circle-arrow-down"></span>
+<span class="glyphicon glyphicon-globe"></span>
+<span class="glyphicon glyphicon-wrench"></span>
+<span class="glyphicon glyphicon-tasks"></span>
+<span class="glyphicon glyphicon-filter"></span>
+<span class="glyphicon glyphicon-briefcase"></span>
+<span class="glyphicon glyphicon-fullscreen"></span>
+<span class="glyphicon glyphicon-dashboard"></span>
+<span class="glyphicon glyphicon-paperclip"></span>
+<span class="glyphicon glyphicon-heart-empty"></span>
+<span class="glyphicon glyphicon-link"></span>
+<span class="glyphicon glyphicon-phone"></span>
+<span class="glyphicon glyphicon-pushpin"></span>
+<span class="glyphicon glyphicon-usd"></span>
+<span class="glyphicon glyphicon-gbp"></span>
+<span class="glyphicon glyphicon-sort"></span>
+<span class="glyphicon glyphicon-sort-by-alphabet"></span>
+<span class="glyphicon glyphicon-sort-by-alphabet-alt"></span>
+<span class="glyphicon glyphicon-sort-by-order"></span>
+<span class="glyphicon glyphicon-sort-by-order-alt"></span>
+<span class="glyphicon glyphicon-sort-by-attributes"></span>
+<span class="glyphicon glyphicon-sort-by-attributes-alt"></span>
+<span class="glyphicon glyphicon-unchecked"></span>
+<span class="glyphicon glyphicon-expand"></span>
+<span class="glyphicon glyphicon-collapse-down"></span>
+<span class="glyphicon glyphicon-collapse-up"></span>
+<span class="glyphicon glyphicon-log-in"></span>
+<span class="glyphicon glyphicon-flash"></span>
+<span class="glyphicon glyphicon-log-out"></span>
+<span class="glyphicon glyphicon-new-window"></span>
+<span class="glyphicon glyphicon-record"></span>
+<span class="glyphicon glyphicon-save"></span>
+<span class="glyphicon glyphicon-open"></span>
+<span class="glyphicon glyphicon-saved"></span>
+<span class="glyphicon glyphicon-import"></span>
+<span class="glyphicon glyphicon-export"></span>
+<span class="glyphicon glyphicon-send"></span>
+<span class="glyphicon glyphicon-floppy-disk"></span>
+<span class="glyphicon glyphicon-floppy-saved"></span>
+<span class="glyphicon glyphicon-floppy-remove"></span>
+<span class="glyphicon glyphicon-floppy-save"></span>
+<span class="glyphicon glyphicon-floppy-open"></span>
+<span class="glyphicon glyphicon-credit-card"></span>
+<span class="glyphicon glyphicon-transfer"></span>
+<span class="glyphicon glyphicon-cutlery"></span>
+<span class="glyphicon glyphicon-header"></span>
+<span class="glyphicon glyphicon-compressed"></span>
+<span class="glyphicon glyphicon-earphone"></span>
+<span class="glyphicon glyphicon-phone-alt"></span>
+<span class="glyphicon glyphicon-tower"></span>
+<span class="glyphicon glyphicon-stats"></span>
+<span class="glyphicon glyphicon-sd-video"></span>
+<span class="glyphicon glyphicon-hd-video"></span>
+<span class="glyphicon glyphicon-subtitles"></span>
+<span class="glyphicon glyphicon-sound-stereo"></span>
+<span class="glyphicon glyphicon-sound-dolby"></span>
+<span class="glyphicon glyphicon-sound-5-1"></span>
+<span class="glyphicon glyphicon-sound-6-1"></span>
+<span class="glyphicon glyphicon-sound-7-1"></span>
+<span class="glyphicon glyphicon-copyright-mark"></span>
+<span class="glyphicon glyphicon-registration-mark"></span>
+<span class="glyphicon glyphicon-cloud-download"></span>
+<span class="glyphicon glyphicon-cloud-upload"></span>
+<span class="glyphicon glyphicon-tree-conifer"></span>
+<span class="glyphicon glyphicon-tree-deciduous"></span>"""
+
+glyphs = glyphs.split('\n')
+
+
+#for glyph in glyphs.split('\n'):
+#    name = glyph[33:-9]
+#    print ".. |%s| raw:: html" % name
+#    print ""
+#    print "   %s" % glyph
+#    print ""
+
+
+print ".. row::"
+for i, glyph in enumerate(glyphs):
+    if i % 50 == 0:
+        print ""
+        print "   .. column::"
+        print "      :width: 3"
+        print ""
+        print "      .. list:: list-unstyled"
+        print ""
+    name = glyph[33:-9]
+    print "         * |%s| : %s" % (name,name)

+ 22 - 0
bootstrap-rst/page.tmpl

@@ -0,0 +1,22 @@
+%(head_prefix)s
+%(head)s
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<!-- Bootstrap core CSS =================================================== -->
+<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
+<link href="docs-min.css" rel="stylesheet">
+<link href="custom.css" rel="stylesheet">
+%(stylesheet)s
+%(body_prefix)s
+%(body_pre_docinfo)s
+%(docinfo)s
+<div class="row">
+%(body)s
+</div>
+</div>
+
+<!-- Bootstrap core JavaScript ============================================ -->
+<!-- Placed at the end of the document so the pages load faster -->
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
+<script src="bootstrap/js/bootstrap.min.js"></script>
+
+%(body_suffix)s

+ 59 - 0
bootstrap-rst/pygments.css

@@ -0,0 +1,59 @@
+.hll { background-color: #ffffcc }
+.c { color: #999988; font-style: italic } /* Comment */
+.err { color: #a61717; background-color: #e3d2d2 } /* Error */
+.k { font-weight: bold } /* Keyword */
+.o { font-weight: bold } /* Operator */
+.cm { color: #999988; font-style: italic } /* Comment.Multiline */
+.cp { color: #999999; font-weight: bold } /* Comment.Preproc */
+.c1 { color: #999988; font-style: italic } /* Comment.Single */
+.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
+.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #999999 } /* Generic.Heading */
+.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #aaaaaa } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { font-weight: bold } /* Keyword.Constant */
+.kd { font-weight: bold } /* Keyword.Declaration */
+.kn { font-weight: bold } /* Keyword.Namespace */
+.kp { font-weight: bold } /* Keyword.Pseudo */
+.kr { font-weight: bold } /* Keyword.Reserved */
+.kt { color: #445588; font-weight: bold } /* Keyword.Type */
+.m { color: #009999 } /* Literal.Number */
+.s { color: #bb8844 } /* Literal.String */
+.na { color: #008080 } /* Name.Attribute */
+.nb { color: #999999 } /* Name.Builtin */
+.nc { color: #445588; font-weight: bold } /* Name.Class */
+.no { color: #008080 } /* Name.Constant */
+.ni { color: #800080 } /* Name.Entity */
+.ne { color: #990000; font-weight: bold } /* Name.Exception */
+.nf { color: #990000; font-weight: bold } /* Name.Function */
+.nn { color: #555555 } /* Name.Namespace */
+.nt { color: #000080 } /* Name.Tag */
+.nv { color: #008080 } /* Name.Variable */
+.ow { font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mf { color: #009999 } /* Literal.Number.Float */
+.mh { color: #009999 } /* Literal.Number.Hex */
+.mi { color: #009999 } /* Literal.Number.Integer */
+.mo { color: #009999 } /* Literal.Number.Oct */
+.sb { color: #bb8844 } /* Literal.String.Backtick */
+.sc { color: #bb8844 } /* Literal.String.Char */
+.sd { color: #bb8844 } /* Literal.String.Doc */
+.s2 { color: #bb8844 } /* Literal.String.Double */
+.se { color: #bb8844 } /* Literal.String.Escape */
+.sh { color: #bb8844 } /* Literal.String.Heredoc */
+.si { color: #bb8844 } /* Literal.String.Interpol */
+.sx { color: #bb8844 } /* Literal.String.Other */
+.sr { color: #808000 } /* Literal.String.Regex */
+.s1 { color: #bb8844 } /* Literal.String.Single */
+.ss { color: #bb8844 } /* Literal.String.Symbol */
+.bp { color: #999999 } /* Name.Builtin.Pseudo */
+.vc { color: #008080 } /* Name.Variable.Class */
+.vg { color: #008080 } /* Name.Variable.Global */
+.vi { color: #008080 } /* Name.Variable.Instance */
+.il { color: #009999 } /* Literal.Number.Integer.Long */

+ 39 - 0
bootstrap-rst/roles.py

@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+# -----------------------------------------------------------------------------
+# Bootstrap RST
+# Copyright (c) 2014, Nicolas P. Rougier
+# Distributed under the (new) BSD License. See LICENSE.txt for more info.
+# -----------------------------------------------------------------------------
+from docutils import nodes, utils
+from docutils.parsers.rst import roles
+
+class h1(nodes.Inline, nodes.TextElement): pass
+class h2(nodes.Inline, nodes.TextElement): pass
+class h3(nodes.Inline, nodes.TextElement): pass
+class h4(nodes.Inline, nodes.TextElement): pass
+class h5(nodes.Inline, nodes.TextElement): pass
+class h6(nodes.Inline, nodes.TextElement): pass
+
+class label_default(nodes.Inline, nodes.TextElement): pass
+class label_muted(nodes.Inline, nodes.TextElement): pass
+class label_primary(nodes.Inline, nodes.TextElement): pass
+class label_success(nodes.Inline, nodes.TextElement): pass
+class label_info(nodes.Inline, nodes.TextElement): pass
+class label_warning(nodes.Inline, nodes.TextElement): pass
+class label_danger(nodes.Inline, nodes.TextElement): pass
+
+
+roles.register_generic_role('h1',h1)
+roles.register_generic_role('h2',h2)
+roles.register_generic_role('h3',h3)
+roles.register_generic_role('h4',h4)
+roles.register_generic_role('h5',h5)
+roles.register_generic_role('h6',h6)
+
+roles.register_generic_role('label-default',label_default)
+roles.register_generic_role('label-muted',label_muted)
+roles.register_generic_role('label-primary',label_primary)
+roles.register_generic_role('label-success',label_success)
+roles.register_generic_role('label-info',label_info)
+roles.register_generic_role('label-warning',label_warning)
+roles.register_generic_role('label-danger',label_danger)