From b10e02b691776b91ba735966aff5064d5b6531b8 Mon Sep 17 00:00:00 2001
From: Robin Sommer
Date: Mon, 9 Jan 2012 18:04:34 -0800
Subject: [PATCH] A set of script-reference polishing.
Includes:
- Quite a bit of CSS tweaking.
- Some small changes to BroDoc.cc to change the order of sections.
- A bit of tweaking some reST here and there.
---
COPYING | 2 +-
INSTALL | 7 +-
aux/broccoli | 2 +-
aux/broctl | 2 +-
doc/.gitignore | 1 +
doc/_static/960.css | 1 +
doc/_static/basic.css | 513 +++++++++++++++++++++++++++++++++
doc/_static/broxygen-extra.css | 136 +++++++++
doc/_static/broxygen-extra.js | 0
doc/_static/broxygen.css | 437 ++++++++++++++++++++++++++++
doc/_static/download.js | 3 -
doc/_static/pygments.css | 58 ++++
doc/_templates/layout.html | 10 +-
doc/conf.py.in | 6 +-
doc/ext/adapt-toc.py | 29 ++
doc/quickstart.rst | 38 ++-
src/BroDoc.cc | 46 +--
src/bro.bif | 2 +-
src/const.bif | 3 +-
src/event.bif | 2 +
src/strings.bif | 2 +-
src/types.bif | 1 +
22 files changed, 1248 insertions(+), 53 deletions(-)
create mode 100644 doc/_static/960.css
create mode 100644 doc/_static/basic.css
create mode 100644 doc/_static/broxygen-extra.js
create mode 100644 doc/_static/broxygen.css
delete mode 100644 doc/_static/download.js
create mode 100644 doc/_static/pygments.css
create mode 100644 doc/ext/adapt-toc.py
diff --git a/COPYING b/COPYING
index 5ae3c62e7a..7b0a94a03b 100644
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,4 @@
-Copyright (c) 1995-2011, The Regents of the University of California
+Copyright (c) 1995-2012, The Regents of the University of California
through the Lawrence Berkeley National Laboratory and the
International Computer Science Institute. All rights reserved.
diff --git a/INSTALL b/INSTALL
index deb71c7b84..94e0993c3a 100644
--- a/INSTALL
+++ b/INSTALL
@@ -28,6 +28,7 @@ installation time:
Bro also needs the following tools, but on most systems they will
already come preinstalled:
+ * Bash (For Bro Control).
* BIND8 (headers and libraries)
* Bison (GNU Parser Generator)
* Flex (Fast Lexical Analyzer)
@@ -71,10 +72,8 @@ Running Bro
===========
Bro is a complex program and it takes a bit of time to get familiar
-with it. A good place for newcomers to start is the Quickstart Guide at
-
- http://www.bro-ids.org/documentation/quickstart.bro.html
-
+with it. A good place for newcomers to start is the Quickstart Guide
+at http://www.bro-ids.org/documentation/quickstart.bro.html.
For developers that wish to run Bro directly from the ``build/``
directory (i.e., without performing ``make install``), they will have
diff --git a/aux/broccoli b/aux/broccoli
index c5cee3d574..d7b8a43759 160000
--- a/aux/broccoli
+++ b/aux/broccoli
@@ -1 +1 @@
-Subproject commit c5cee3d5746ed3d5c14348c1f264d19404caa761
+Subproject commit d7b8a43759bfcbe1381d132d8ab388937e52a6d4
diff --git a/aux/broctl b/aux/broctl
index d3d5934310..a42e4d133b 160000
--- a/aux/broctl
+++ b/aux/broctl
@@ -1 +1 @@
-Subproject commit d3d5934310a94452b1dddabb2e75f6c5c86b4860
+Subproject commit a42e4d133b94622c612055047f8534d5122e6e88
diff --git a/doc/.gitignore b/doc/.gitignore
index 1936cc1d44..15972ee82a 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1 +1,2 @@
html
+*.pyc
diff --git a/doc/_static/960.css b/doc/_static/960.css
new file mode 100644
index 0000000000..22c5e18180
--- /dev/null
+++ b/doc/_static/960.css
@@ -0,0 +1 @@
+body{min-width:960px}.container_12,.container_16{margin-left:auto;margin-right:auto;width:960px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11,.push_12,.pull_12,.push_13,.pull_13,.push_14,.pull_14,.push_15,.pull_15{position:relative}.container_12 .grid_3,.container_16 .grid_4{width:220px}.container_12 .grid_6,.container_16 .grid_8{width:460px}.container_12 .grid_9,.container_16 .grid_12{width:700px}.container_12 .grid_12,.container_16 .grid_16{width:940px}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:60px}.container_12 .grid_2{width:140px}.container_12 .grid_4{width:300px}.container_12 .grid_5{width:380px}.container_12 .grid_7{width:540px}.container_12 .grid_8{width:620px}.container_12 .grid_10{width:780px}.container_12 .grid_11{width:860px}.container_16 .grid_1{width:40px}.container_16 .grid_2{width:100px}.container_16 .grid_3{width:160px}.container_16 .grid_5{width:280px}.container_16 .grid_6{width:340px}.container_16 .grid_7{width:400px}.container_16 .grid_9{width:520px}.container_16 .grid_10{width:580px}.container_16 .grid_11{width:640px}.container_16 .grid_13{width:760px}.container_16 .grid_14{width:820px}.container_16 .grid_15{width:880px}.container_12 .prefix_3,.container_16 .prefix_4{padding-left:240px}.container_12 .prefix_6,.container_16 .prefix_8{padding-left:480px}.container_12 .prefix_9,.container_16 .prefix_12{padding-left:720px}.container_12 .prefix_1{padding-left:80px}.container_12 .prefix_2{padding-left:160px}.container_12 .prefix_4{padding-left:320px}.container_12 .prefix_5{padding-left:400px}.container_12 .prefix_7{padding-left:560px}.container_12 .prefix_8{padding-left:640px}.container_12 .prefix_10{padding-left:800px}.container_12 .prefix_11{padding-left:880px}.container_16 .prefix_1{padding-left:60px}.container_16 .prefix_2{padding-left:120px}.container_16 .prefix_3{padding-left:180px}.container_16 .prefix_5{padding-left:300px}.container_16 .prefix_6{padding-left:360px}.container_16 .prefix_7{padding-left:420px}.container_16 .prefix_9{padding-left:540px}.container_16 .prefix_10{padding-left:600px}.container_16 .prefix_11{padding-left:660px}.container_16 .prefix_13{padding-left:780px}.container_16 .prefix_14{padding-left:840px}.container_16 .prefix_15{padding-left:900px}.container_12 .suffix_3,.container_16 .suffix_4{padding-right:240px}.container_12 .suffix_6,.container_16 .suffix_8{padding-right:480px}.container_12 .suffix_9,.container_16 .suffix_12{padding-right:720px}.container_12 .suffix_1{padding-right:80px}.container_12 .suffix_2{padding-right:160px}.container_12 .suffix_4{padding-right:320px}.container_12 .suffix_5{padding-right:400px}.container_12 .suffix_7{padding-right:560px}.container_12 .suffix_8{padding-right:640px}.container_12 .suffix_10{padding-right:800px}.container_12 .suffix_11{padding-right:880px}.container_16 .suffix_1{padding-right:60px}.container_16 .suffix_2{padding-right:120px}.container_16 .suffix_3{padding-right:180px}.container_16 .suffix_5{padding-right:300px}.container_16 .suffix_6{padding-right:360px}.container_16 .suffix_7{padding-right:420px}.container_16 .suffix_9{padding-right:540px}.container_16 .suffix_10{padding-right:600px}.container_16 .suffix_11{padding-right:660px}.container_16 .suffix_13{padding-right:780px}.container_16 .suffix_14{padding-right:840px}.container_16 .suffix_15{padding-right:900px}.container_12 .push_3,.container_16 .push_4{left:240px}.container_12 .push_6,.container_16 .push_8{left:480px}.container_12 .push_9,.container_16 .push_12{left:720px}.container_12 .push_1{left:80px}.container_12 .push_2{left:160px}.container_12 .push_4{left:320px}.container_12 .push_5{left:400px}.container_12 .push_7{left:560px}.container_12 .push_8{left:640px}.container_12 .push_10{left:800px}.container_12 .push_11{left:880px}.container_16 .push_1{left:60px}.container_16 .push_2{left:120px}.container_16 .push_3{left:180px}.container_16 .push_5{left:300px}.container_16 .push_6{left:360px}.container_16 .push_7{left:420px}.container_16 .push_9{left:540px}.container_16 .push_10{left:600px}.container_16 .push_11{left:660px}.container_16 .push_13{left:780px}.container_16 .push_14{left:840px}.container_16 .push_15{left:900px}.container_12 .pull_3,.container_16 .pull_4{left:-240px}.container_12 .pull_6,.container_16 .pull_8{left:-480px}.container_12 .pull_9,.container_16 .pull_12{left:-720px}.container_12 .pull_1{left:-80px}.container_12 .pull_2{left:-160px}.container_12 .pull_4{left:-320px}.container_12 .pull_5{left:-400px}.container_12 .pull_7{left:-560px}.container_12 .pull_8{left:-640px}.container_12 .pull_10{left:-800px}.container_12 .pull_11{left:-880px}.container_16 .pull_1{left:-60px}.container_16 .pull_2{left:-120px}.container_16 .pull_3{left:-180px}.container_16 .pull_5{left:-300px}.container_16 .pull_6{left:-360px}.container_16 .pull_7{left:-420px}.container_16 .pull_9{left:-540px}.container_16 .pull_10{left:-600px}.container_16 .pull_11{left:-660px}.container_16 .pull_13{left:-780px}.container_16 .pull_14{left:-840px}.container_16 .pull_15{left:-900px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:before,.clearfix:after{content:'\0020';display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:after{clear:both}.clearfix{zoom:1}
diff --git a/doc/_static/basic.css b/doc/_static/basic.css
new file mode 100644
index 0000000000..1332c7b048
--- /dev/null
+++ b/doc/_static/basic.css
@@ -0,0 +1,513 @@
+/*
+ * basic.css
+ * ~~~~~~~~~
+ *
+ * Sphinx stylesheet -- basic theme.
+ *
+ * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
+ * :license: BSD, see LICENSE for details.
+ *
+ */
+
+/* -- main layout ----------------------------------------------------------- */
+
+div.clearer {
+ clear: both;
+}
+
+/* -- relbar ---------------------------------------------------------------- */
+
+div.related {
+ width: 100%;
+ font-size: 90%;
+}
+
+div.related h3 {
+ display: none;
+}
+
+div.related ul {
+ margin: 0;
+ padding: 0 0 0 10px;
+ list-style: none;
+}
+
+div.related li {
+ display: inline;
+}
+
+div.related li.right {
+ float: right;
+ margin-right: 5px;
+}
+
+/* -- sidebar --------------------------------------------------------------- */
+
+div.sphinxsidebarwrapper {
+ padding: 10px 5px 0 10px;
+}
+
+div.sphinxsidebar {
+ float: left;
+ width: 230px;
+ margin-left: -100%;
+ font-size: 90%;
+}
+
+div.sphinxsidebar ul {
+ list-style: none;
+}
+
+div.sphinxsidebar ul ul,
+div.sphinxsidebar ul.want-points {
+ margin-left: 20px;
+ list-style: square;
+}
+
+div.sphinxsidebar ul ul {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+div.sphinxsidebar form {
+ margin-top: 10px;
+}
+
+div.sphinxsidebar input {
+ border: 1px solid #98dbcc;
+ font-family: sans-serif;
+ font-size: 1em;
+}
+
+div.sphinxsidebar input[type="text"] {
+ width: 170px;
+}
+
+div.sphinxsidebar input[type="submit"] {
+ width: 30px;
+}
+
+img {
+ border: 0;
+}
+
+/* -- search page ----------------------------------------------------------- */
+
+ul.search {
+ margin: 10px 0 0 20px;
+ padding: 0;
+}
+
+ul.search li {
+ padding: 5px 0 5px 20px;
+ background-image: url(file.png);
+ background-repeat: no-repeat;
+ background-position: 0 7px;
+}
+
+ul.search li a {
+ font-weight: bold;
+}
+
+ul.search li div.context {
+ color: #888;
+ margin: 2px 0 0 30px;
+ text-align: left;
+}
+
+ul.keywordmatches li.goodmatch a {
+ font-weight: bold;
+}
+
+/* -- index page ------------------------------------------------------------ */
+
+table.contentstable {
+ width: 90%;
+}
+
+table.contentstable p.biglink {
+ line-height: 150%;
+}
+
+a.biglink {
+ font-size: 1.3em;
+}
+
+span.linkdescr {
+ font-style: italic;
+ padding-top: 5px;
+ font-size: 90%;
+}
+
+/* -- general index --------------------------------------------------------- */
+
+table.indextable {
+ width: 100%;
+}
+
+table.indextable td {
+ text-align: left;
+ vertical-align: top;
+}
+
+table.indextable dl, table.indextable dd {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+table.indextable tr.pcap {
+ height: 10px;
+}
+
+table.indextable tr.cap {
+ margin-top: 10px;
+ background-color: #f2f2f2;
+}
+
+img.toggler {
+ margin-right: 3px;
+ margin-top: 3px;
+ cursor: pointer;
+}
+
+div.modindex-jumpbox {
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+ margin: 1em 0 1em 0;
+ padding: 0.4em;
+}
+
+div.genindex-jumpbox {
+ border-top: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+ margin: 1em 0 1em 0;
+ padding: 0.4em;
+}
+
+/* -- general body styles --------------------------------------------------- */
+
+a.headerlink {
+ visibility: hidden;
+}
+
+div.body p.caption {
+ text-align: inherit;
+}
+
+div.body td {
+ text-align: left;
+}
+
+.field-list ul {
+ padding-left: 1em;
+}
+
+.first {
+ margin-top: 0 !important;
+}
+
+p.rubric {
+ margin-top: 30px;
+ font-weight: bold;
+}
+
+img.align-left, .figure.align-left, object.align-left {
+ clear: left;
+ float: left;
+ margin-right: 1em;
+}
+
+img.align-right, .figure.align-right, object.align-right {
+ clear: right;
+ float: right;
+ margin-left: 1em;
+}
+
+img.align-center, .figure.align-center, object.align-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.align-left {
+ text-align: left;
+}
+
+.align-center {
+ text-align: center;
+}
+
+.align-right {
+ text-align: right;
+}
+
+/* -- sidebars -------------------------------------------------------------- */
+
+div.sidebar {
+ margin: 0 0 0.5em 1em;
+ border: 1px solid #ddb;
+ padding: 7px 7px 0 7px;
+ background-color: #ffe;
+ width: 40%;
+ float: right;
+}
+
+p.sidebar-title {
+ font-weight: bold;
+}
+
+/* -- topics ---------------------------------------------------------------- */
+
+div.topic {
+ border: 1px solid #ccc;
+ padding: 7px 7px 0 7px;
+ margin: 10px 0 10px 0;
+}
+
+p.topic-title {
+ font-size: 1.1em;
+ font-weight: bold;
+ margin-top: 10px;
+}
+
+/* -- admonitions ----------------------------------------------------------- */
+
+div.admonition {
+ margin-top: 10px;
+ margin-bottom: 10px;
+ padding: 7px;
+}
+
+div.admonition dt {
+ font-weight: bold;
+}
+
+div.admonition dl {
+ margin-bottom: 0;
+}
+
+p.admonition-title {
+ margin: 0px 10px 5px 0px;
+ font-weight: bold;
+}
+
+div.body p.centered {
+ text-align: center;
+ margin-top: 25px;
+}
+
+/* -- tables ---------------------------------------------------------------- */
+
+table.field-list td, table.field-list th {
+ border: 0 !important;
+}
+
+table.footnote td, table.footnote th {
+ border: 0 !important;
+}
+
+th {
+ text-align: left;
+ padding-right: 5px;
+}
+
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px;
+}
+
+table.citation td {
+ border-bottom: none;
+}
+
+/* -- other body styles ----------------------------------------------------- */
+
+ol.arabic {
+ list-style: decimal;
+}
+
+ol.loweralpha {
+ list-style: lower-alpha;
+}
+
+ol.upperalpha {
+ list-style: upper-alpha;
+}
+
+ol.lowerroman {
+ list-style: lower-roman;
+}
+
+ol.upperroman {
+ list-style: upper-roman;
+}
+
+dd p {
+ margin-top: 0px;
+}
+
+dd ul, dd table {
+ margin-bottom: 10px;
+}
+
+dd {
+ margin-top: 3px;
+ margin-bottom: 10px;
+ margin-left: 30px;
+}
+
+dt:target, .highlighted {
+ background-color: #fbe54e;
+}
+
+dl.glossary dt {
+ font-weight: bold;
+ font-size: 1.1em;
+}
+
+.field-list ul {
+ margin: 0;
+ padding-left: 1em;
+}
+
+.field-list p {
+ margin: 0;
+}
+
+.refcount {
+ color: #060;
+}
+
+.optional {
+ font-size: 1.3em;
+}
+
+.versionmodified {
+ font-style: italic;
+}
+
+.system-message {
+ background-color: #fda;
+ padding: 5px;
+ border: 3px solid red;
+}
+
+.footnote:target {
+ background-color: #ffa;
+}
+
+.line-block {
+ display: block;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.line-block .line-block {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-left: 1.5em;
+}
+
+.guilabel, .menuselection {
+ font-family: sans-serif;
+}
+
+.accelerator {
+ text-decoration: underline;
+}
+
+.classifier {
+ font-style: oblique;
+}
+
+abbr, acronym {
+ border-bottom: dotted 1px;
+ cursor: help;
+}
+
+/* -- code displays --------------------------------------------------------- */
+
+pre {
+ overflow: auto;
+ overflow-y: hidden; /* fixes display issues on Chrome browsers */
+}
+
+td.linenos pre {
+ padding: 5px 0px;
+ border: 0;
+ background-color: transparent;
+ color: #aaa;
+}
+
+table.highlighttable {
+ margin-left: 0.5em;
+}
+
+table.highlighttable td {
+ padding: 0 0.5em 0 0.5em;
+}
+
+tt.descname {
+ background-color: transparent;
+ font-weight: bold;
+# font-size: 1.2em;
+}
+
+tt.descclassname {
+ background-color: transparent;
+}
+
+tt.xref, a tt {
+ background-color: transparent;
+# font-weight: bold;
+}
+
+h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
+ background-color: transparent;
+}
+
+.viewcode-link {
+ float: right;
+}
+
+.viewcode-back {
+ float: right;
+ font-family: sans-serif;
+}
+
+div.viewcode-block:target {
+ margin: -1px -10px;
+ padding: 0 10px;
+}
+
+/* -- math display ---------------------------------------------------------- */
+
+img.math {
+ vertical-align: middle;
+}
+
+div.body div.math p {
+ text-align: center;
+}
+
+span.eqno {
+ float: right;
+}
+
+/* -- printout stylesheet --------------------------------------------------- */
+
+@media print {
+ div.document,
+ div.documentwrapper,
+ div.bodywrapper {
+ margin: 0 !important;
+ width: 100%;
+ }
+
+ div.sphinxsidebar,
+ div.related,
+ div.footer,
+ #top-link {
+ display: none;
+ }
+}
diff --git a/doc/_static/broxygen-extra.css b/doc/_static/broxygen-extra.css
index ec240cec7b..543d25ced2 100644
--- a/doc/_static/broxygen-extra.css
+++ b/doc/_static/broxygen-extra.css
@@ -1,3 +1,17 @@
+
+a.toc-backref {
+ color: #333;
+}
+
+h1, h2, h3, h4, h5, h6,
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ padding:0 0 0px 0;
+}
+
+ul {
+ padding-bottom: 0px;
+}
+
h1 {
font-weight: bold;
font-size: 32px;
@@ -14,3 +28,125 @@ th.field-name
{
white-space:nowrap;
}
+
+h2 {
+ margin-top: 50px;
+ padding-bottom: 5px;
+ margin-bottom: 30px;
+ border-bottom: 1px solid;
+ border-color: #aaa;
+ font-style: normal;
+}
+
+h3 {
+ font-size: 20px;
+ margin-top: 40px;
+ margin-bottom: 0¡px;
+ font-weight: normal;
+ font-style: normal;
+}
+
+h3.widgettitle {
+ font-style: normal;
+}
+
+h4 {
+ font-size:18px;
+ font-style: normal;
+ margin-bottom: 0em;
+ margin-top: 40px;
+ font-style: italic;
+}
+
+h5 {
+ font-size:16px;
+}
+
+h6 {
+ font-size:15px;
+}
+
+.toc-backref {
+ color: #333;
+}
+
+.contents ul {
+ padding-bottom: 1em;
+}
+
+dl.namespace {
+ display: none;
+}
+
+table.docutils tbody {
+ margin: 1em 1em 1em 1em;
+}
+
+table.docutils td {
+ padding: 5pt 5pt 5pt 5pt;
+ font-size: 14px;
+ border-left: 0;
+ border-right: 0;
+}
+
+dl pre {
+ font-size: 14px;
+}
+
+table.docutils th {
+ padding: 5pt 5pt 5pt 5pt;
+ font-size: 14px;
+ font-style: normal;
+ border-left: 0;
+ border-right: 0;
+}
+
+table.docutils tr:first-child td {
+ #border-top: 1px solid #aaa;
+}
+
+.download {
+ font-family:"Courier New", Courier, mono;
+ font-weight: normal;
+}
+
+dt:target, .highlighted {
+ background-color: #ccc;
+}
+
+p {
+ padding-bottom: 0px;
+}
+
+p.last {
+ margin-bottom: 0px;
+}
+
+dl {
+ padding: 1em 1em 1em 1em;
+ background: #fffff0;
+ border: 1px solid #aaa;
+
+}
+
+dl {
+ margin-bottom: 10px;
+}
+
+
+table.docutils {
+ background: #fffff0;
+ border-collapse: collapse;
+ border: 1px solid #ddd;
+}
+
+dl table.docutils {
+ border: 0;
+}
+
+table.docutils dl {
+ border: 1px dashed #666;
+}
+
+
+
diff --git a/doc/_static/broxygen-extra.js b/doc/_static/broxygen-extra.js
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/doc/_static/broxygen.css b/doc/_static/broxygen.css
new file mode 100644
index 0000000000..967dcd6eaa
--- /dev/null
+++ b/doc/_static/broxygen.css
@@ -0,0 +1,437 @@
+/* Automatically generated. Do not edit. */
+
+
+
+
+
+#bro-main, #bro-standalone-main {
+ padding: 0 0 0 0;
+ position:relative;
+ z-index:1;
+}
+
+#bro-main {
+ margin-bottom: 2em;
+ }
+
+#bro-standalone-main {
+ margin-bottom: 0em;
+ padding-left: 50px;
+ padding-right: 50px;
+ }
+
+#bro-outer {
+ color: #333;
+ background: #ffffff;
+}
+
+#bro-title {
+ font-weight: bold;
+ font-size: 32px;
+ line-height:32px;
+ text-align: center;
+ padding-top: 3px;
+ margin-bottom: 30px;
+ font-family: Palatino,'Palatino Linotype',Georgia,serif;;
+ color: #000;
+ }
+
+.opening:first-letter {
+ font-size: 24px;
+ font-weight: bold;
+ letter-spacing: 0.05em;
+ }
+
+.opening {
+ font-size: 17px;
+}
+
+.version {
+ text-align: right;
+ font-size: 12px;
+ color: #aaa;
+ line-height: 0;
+ height: 0;
+}
+
+.git-info-version {
+ position: relative;
+ height: 2em;
+ top: -1em;
+ color: #ccc;
+ float: left;
+ font-size: 12px;
+}
+
+.git-info-date {
+ position: relative;
+ height: 2em;
+ top: -1em;
+ color: #ccc;
+ float: right;
+ font-size: 12px;
+}
+
+body {
+ font-family:Arial, Helvetica, sans-serif;
+ font-size:15px;
+ line-height:22px;
+ color: #333;
+ margin: 0px;
+}
+
+h1, h2, h3, h4, h5, h6,
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
+ padding:0 0 20px 0;
+ font-weight:bold;
+ text-decoration:none;
+}
+
+div.section h3, div.section h4, div.section h5, div.section h6 {
+ font-style: italic;
+}
+
+h1, h2 {
+ font-size:27px;
+ letter-spacing:-1px;
+}
+
+h3 {
+ margin-top: 1em;
+ font-size:18px;
+}
+
+h4 {
+ font-size:16px;
+}
+
+h5 {
+ font-size:15px;
+}
+
+h6 {
+ font-size:12px;
+}
+
+p {
+ padding:0 0 20px 0;
+}
+
+hr {
+ background:none;
+ height:1px;
+ line-height:1px;
+ border:0;
+ margin:0 0 20px 0;
+}
+
+ul, ol {
+ margin:0 20px 20px 0;
+ padding-left:40px;
+}
+
+ul.simple, ol.simple {
+ margin:0 0px 0px 0;
+}
+
+blockquote {
+ margin:0 0 0 40px;
+}
+
+strong, dfn {
+ font-weight:bold;
+}
+
+em, dfn {
+ font-style:italic;
+}
+
+sup, sub {
+ line-height:0;
+}
+
+pre {
+ white-space:pre;
+}
+
+pre, code, tt {
+ font-family:"Courier New", Courier, mono;
+}
+
+dl {
+ margin: 0 0 20px 0;
+}
+
+dl dt {
+ font-weight: bold;
+}
+
+dd {
+ margin:0 0 20px 20px;
+}
+
+small {
+ font-size:75%;
+}
+
+a:link,
+a:visited,
+a:active
+{
+ color: #2a85a7;
+}
+
+a:hover
+{
+ color:#c24444;
+}
+
+h1, h2, h3, h4, h5, h6,
+h1 a, h2 a, h3 a, h4 a, h5 a, h6 a
+{
+ color: #333;
+}
+
+hr {
+ border-bottom:1px solid #ddd;
+}
+
+pre {
+ color: #333;
+ background: #FFFAE2;
+ padding: 7px 5px 3px 5px;
+ margin-bottom: 25px;
+ margin-top: 0px;
+}
+
+ul {
+ padding-bottom: 5px;
+ }
+
+h1, h2 {
+ margin-top: 30px;
+ }
+
+h1 {
+ margin-bottom: 50px;
+ margin-bottom: 20px;
+ padding-bottom: 5px;
+ border-bottom: 1px solid;
+ border-color: #aaa;
+ }
+
+h2 {
+ font-size: 24px;
+ }
+
+pre {
+ -moz-box-shadow:0 0 6px #ddd;
+ -webkit-box-shadow:0 0 6px #ddd;
+ box-shadow:0 0 6px #ddd;
+}
+
+a {
+ text-decoration:none;
+ }
+
+p {
+ padding-bottom: 15px;
+ }
+
+p, dd, li {
+ text-align: justify;
+ }
+
+li {
+ margin-bottom: 5px;
+ }
+
+
+
+#footer .widget_links ul a,
+#footer .widget_links ol a
+{
+ color: #ddd;
+}
+
+#footer .widget_links ul a:hover,
+#footer .widget_links ol a:hover
+{
+ color:#c24444;
+}
+
+
+#footer .widget li {
+ padding-bottom:10px;
+}
+
+#footer .widget_links li {
+ padding-bottom:1px;
+}
+
+#footer .widget li:last-child {
+ padding-bottom:0;
+}
+
+#footer .widgettitle {
+ color: #ddd;
+}
+
+
+.widget {
+ margin:0 0 40px 0;
+}
+
+.widget, .widgettitle {
+ font-size:12px;
+ line-height:18px;
+}
+
+.widgettitle {
+ font-weight:bold;
+ text-transform:uppercase;
+ padding:0 0 10px 0;
+ margin:0 0 20px 0;
+ line-height:100%;
+}
+
+.widget UL, .widget OL {
+ list-style-type:none;
+ margin:0;
+ padding:0;
+}
+
+.widget p {
+ padding:0;
+}
+
+.widget li {
+ padding-bottom:10px;
+}
+
+.widget a {
+ text-decoration:none;
+}
+
+#bro-main .widgettitle,
+{
+ color: #333;
+}
+
+
+.widget img.left {
+ padding:5px 10px 10px 0;
+}
+
+.widget img.right {
+ padding:5px 0 10px 10px;
+}
+
+.ads .widgettitle {
+ margin-right:16px;
+}
+
+.widget {
+ margin-left: 1em;
+}
+
+.widgettitle {
+ color: #333;
+}
+
+.widgettitle {
+ border-bottom:1px solid #ddd;
+}
+
+
+.sidebar-toc ul li {
+ padding-bottom: 0px;
+ text-align: left;
+ list-style-type: square;
+ list-style-position: inside;
+ padding-left: 1em;
+ text-indent: -1em;
+ }
+
+.sidebar-toc ul li li {
+ margin-left: 1em;
+ margin-bottom: 0px;
+ list-style-type: square;
+ }
+
+.sidebar-toc ul li li a {
+ font-size: 8pt;
+}
+
+.contents {
+ padding: 10px;
+ background: #FFFAE2;
+ margin: 20px;
+ }
+
+.topic-title {
+ font-size: 20px;
+ font-weight: bold;
+ padding: 0px 0px 5px 0px;
+ text-align: center;
+ padding-top: .5em;
+}
+
+.contents li {
+ margin-bottom: 0px;
+ list-style-type: square;
+}
+
+.contents ul ul li {
+ margin-left: 0px;
+ padding-left: 0px;
+ padding-top: 0em;
+ font-size: 90%;
+ list-style-type: square;
+ font-weight: normal;
+}
+
+.contents ul ul ul li {
+ list-style-type: none;
+}
+
+.contents ul ul ul ul li {
+ display:none;
+}
+
+.contents ul li {
+ padding-top: 1em;
+ list-style-type: none;
+ font-weight: bold;
+}
+
+.contents ul {
+ margin-left: 0px;
+ padding-left: 2em;
+ margin: 0px 0px 0px 0px;
+}
+
+.note, .warning, .error {
+ margin-left: 2em;
+ margin-right: 2em;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+ padding: 0.5em 1em 0.5em 1em;
+ overflow: auto;
+ border-left: solid 3px #aaa;
+ font-size: 15px;
+ color: #333;
+}
+
+.admonition p {
+ margin-left: 1em;
+ }
+
+.admonition-title {
+ font-size: 16px;
+ font-weight: bold;
+ color: #000;
+ padding-bottom: 0em;
+ margin-bottom: .5em;
+ margin-top: 0em;
+}
\ No newline at end of file
diff --git a/doc/_static/download.js b/doc/_static/download.js
deleted file mode 100644
index 82bfe502cb..0000000000
--- a/doc/_static/download.js
+++ /dev/null
@@ -1,3 +0,0 @@
-$(document).ready(function() {
- $('.docutils.download').removeClass('download');
-});
diff --git a/doc/_static/pygments.css b/doc/_static/pygments.css
new file mode 100644
index 0000000000..3c96f6ae4e
--- /dev/null
+++ b/doc/_static/pygments.css
@@ -0,0 +1,58 @@
+.hll { background-color: #ffffcc }
+.c { color: #aaaaaa; font-style: italic } /* Comment */
+.err { color: #F00000; background-color: #F0A0A0 } /* Error */
+.k { color: #0000aa } /* Keyword */
+.cm { color: #aaaaaa; font-style: italic } /* Comment.Multiline */
+.cp { color: #4c8317 } /* Comment.Preproc */
+.c1 { color: #aaaaaa; font-style: italic } /* Comment.Single */
+.cs { color: #0000aa; font-style: italic } /* Comment.Special */
+.gd { color: #aa0000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #aa0000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #00aa00 } /* Generic.Inserted */
+.go { color: #888888 } /* Generic.Output */
+.gp { color: #555555 } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #aa0000 } /* Generic.Traceback */
+.kc { color: #0000aa } /* Keyword.Constant */
+.kd { color: #0000aa } /* Keyword.Declaration */
+.kn { color: #0000aa } /* Keyword.Namespace */
+.kp { color: #0000aa } /* Keyword.Pseudo */
+.kr { color: #0000aa } /* Keyword.Reserved */
+.kt { color: #00aaaa } /* Keyword.Type */
+.m { color: #009999 } /* Literal.Number */
+.s { color: #aa5500 } /* Literal.String */
+.na { color: #1e90ff } /* Name.Attribute */
+.nb { color: #00aaaa } /* Name.Builtin */
+.nc { color: #00aa00; text-decoration: underline } /* Name.Class */
+.no { color: #aa0000 } /* Name.Constant */
+.nd { color: #888888 } /* Name.Decorator */
+.ni { color: #800000; font-weight: bold } /* Name.Entity */
+.nf { color: #00aa00 } /* Name.Function */
+.nn { color: #00aaaa; text-decoration: underline } /* Name.Namespace */
+.nt { color: #1e90ff; font-weight: bold } /* Name.Tag */
+.nv { color: #aa0000 } /* Name.Variable */
+.ow { color: #0000aa } /* 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: #aa5500 } /* Literal.String.Backtick */
+.sc { color: #aa5500 } /* Literal.String.Char */
+.sd { color: #aa5500 } /* Literal.String.Doc */
+.s2 { color: #aa5500 } /* Literal.String.Double */
+.se { color: #aa5500 } /* Literal.String.Escape */
+.sh { color: #aa5500 } /* Literal.String.Heredoc */
+.si { color: #aa5500 } /* Literal.String.Interpol */
+.sx { color: #aa5500 } /* Literal.String.Other */
+.sr { color: #009999 } /* Literal.String.Regex */
+.s1 { color: #aa5500 } /* Literal.String.Single */
+.ss { color: #0000aa } /* Literal.String.Symbol */
+.bp { color: #00aaaa } /* Name.Builtin.Pseudo */
+.vc { color: #aa0000 } /* Name.Variable.Class */
+.vg { color: #aa0000 } /* Name.Variable.Global */
+.vi { color: #aa0000 } /* Name.Variable.Instance */
+.il { color: #009999 } /* Literal.Number.Integer.Long */
diff --git a/doc/_templates/layout.html b/doc/_templates/layout.html
index a4775f5870..77d9d1de1c 100644
--- a/doc/_templates/layout.html
+++ b/doc/_templates/layout.html
@@ -1,11 +1,12 @@
{% extends "!layout.html" %}
{% block extrahead %}
-
-
-
+
+
+
-
+
+
{% endblock %}
{% block header %}
@@ -47,6 +48,7 @@
Table of Contents
+
diff --git a/doc/conf.py.in b/doc/conf.py.in
index 0e103b719f..2e93e82502 100644
--- a/doc/conf.py.in
+++ b/doc/conf.py.in
@@ -24,7 +24,7 @@ sys.path.insert(0, os.path.abspath('sphinx-sources/ext'))
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = ['bro', 'rst_directive', 'sphinx.ext.todo']
+extensions = ['bro', 'rst_directive', 'sphinx.ext.todo', 'adapt-toc']
# Add any paths that contain templates here, relative to this directory.
templates_path = ['sphinx-sources/_templates', 'sphinx-sources/_static']
@@ -40,7 +40,7 @@ master_doc = 'index'
# General information about the project.
project = u'Bro'
-copyright = u'2011, The Bro Project'
+copyright = u'2012, The Bro Project'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
@@ -169,6 +169,7 @@ html_sidebars = {
# Output file base name for HTML help builder.
htmlhelp_basename = 'Broxygen'
+html_add_permalinks = None
# -- Options for LaTeX output --------------------------------------------------
@@ -208,7 +209,6 @@ latex_documents = [
# If false, no module index is generated.
#latex_domain_indices = True
-
# -- Options for manual page output --------------------------------------------
# One entry per manual page. List of tuples
diff --git a/doc/ext/adapt-toc.py b/doc/ext/adapt-toc.py
new file mode 100644
index 0000000000..12ee006977
--- /dev/null
+++ b/doc/ext/adapt-toc.py
@@ -0,0 +1,29 @@
+
+import sys
+import re
+
+# Removes the first TOC level, which is just the page title.
+def process_html_toc(app, pagename, templatename, context, doctree):
+
+ if not "toc" in context:
+ return
+
+ toc = context["toc"]
+
+ lines = toc.strip().split("\n")
+ lines = lines[2:-2]
+
+ toc = "\n".join(lines)
+ toc = "" + toc
+
+ context["toc"] = toc
+
+ # print >>sys.stderr, pagename
+ # print >>sys.stderr, context["toc"]
+ # print >>sys.stderr, "-----"
+ # print >>sys.stderr, toc
+ # print >>sys.stderr, "===="
+
+def setup(app):
+ app.connect('html-page-context', process_html_toc)
+
diff --git a/doc/quickstart.rst b/doc/quickstart.rst
index 0534186cde..da780e70df 100644
--- a/doc/quickstart.rst
+++ b/doc/quickstart.rst
@@ -31,15 +31,15 @@ See the `bro downloads page`_ for currently supported/targeted platforms.
* RPM
-.. console::
+ .. console::
- sudo yum localinstall Bro-all*.rpm
+ sudo yum localinstall Bro-all*.rpm
* DEB
-.. console::
+ .. console::
- sudo gdebi Bro-all-*.deb
+ sudo gdebi Bro-all-*.deb
* MacOS Disk Image with Installer
@@ -56,26 +56,32 @@ Building From Source
Required Dependencies
~~~~~~~~~~~~~~~~~~~~~
+The following dependencies are required to build Bro:
+
* RPM/RedHat-based Linux:
-.. console::
+ .. console::
- sudo yum install cmake make gcc gcc-c++ flex bison libpcap-devel openssl-devel python-devel swig zlib-devel file-devel
+ sudo yum install cmake make gcc gcc-c++ flex bison libpcap-devel openssl-devel python-devel swig zlib-devel file-devel
* DEB/Debian-based Linux:
-.. console::
+ .. console::
- sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev libmagic-dev
+ sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python-dev swig zlib1g-dev libmagic-dev
* FreeBSD
Most required dependencies should come with a minimal FreeBSD install
except for the following.
-.. console::
+ .. console::
- sudo pkg_add -r cmake swig bison python
+ sudo pkg_add -r bash cmake swig bison python
+
+ Note that ``bash`` needs to be in ``PATH``, which by default it is
+ not. The FreeBSD package installs the binary into
+ ``/usr/local/bin``.
* Mac OS X
@@ -99,21 +105,21 @@ sending emails.
* RPM/RedHat-based Linux:
-.. console::
+ .. console::
- sudo yum install GeoIP-devel sendmail
+ sudo yum install GeoIP-devel sendmail
* DEB/Debian-based Linux:
-.. console::
+ .. console::
- sudo apt-get install libgeoip-dev sendmail
+ sudo apt-get install libgeoip-dev sendmail
* Ports-based FreeBSD
-.. console::
+ .. console::
- sudo pkg_add -r GeoIP
+ sudo pkg_add -r GeoIP
sendmail is typically already available.
diff --git a/src/BroDoc.cc b/src/BroDoc.cc
index 91aed5ec62..b20db727ff 100644
--- a/src/BroDoc.cc
+++ b/src/BroDoc.cc
@@ -170,13 +170,26 @@ void BroDoc::WriteDocFile() const
{
WriteToDoc(".. Automatically generated. Do not edit.\n\n");
+ WriteToDoc(":tocdepth: 3\n\n");
+
WriteSectionHeading(doc_title.c_str(), '=');
- WriteToDoc("\n:download:`Original Source File <%s>`\n\n",
- downloadable_filename.c_str());
+ WriteStringList(".. bro:namespace:: %s\n", modules);
- WriteSectionHeading("Overview", '-');
- WriteStringList("%s\n", "%s\n\n", summary);
+ WriteToDoc("\n");
+
+ // WriteSectionHeading("Overview", '-');
+ WriteStringList("%s\n", summary);
+
+ WriteToDoc("\n");
+
+ if ( ! modules.empty() )
+ {
+ WriteToDoc(":Namespace%s: ", (modules.size() > 1 ? "s" : ""));
+ // WriteStringList(":bro:namespace:`%s`", modules);
+ WriteStringList("``%s``, ", "``%s``", modules);
+ WriteToDoc("\n");
+ }
if ( ! imports.empty() )
{
@@ -196,39 +209,38 @@ void BroDoc::WriteDocFile() const
WriteToDoc("\n");
}
+ WriteToDoc(":Source File: :download:`%s`\n",
+ downloadable_filename.c_str());
+
WriteToDoc("\n");
WriteInterface("Summary", '~', '#', true, true);
- if ( ! modules.empty() )
- {
- WriteSectionHeading("Namespaces", '~');
- WriteStringList(".. bro:namespace:: %s\n", modules);
- WriteToDoc("\n");
- }
-
if ( ! notices.empty() )
- WriteBroDocObjList(notices, "Notices", '~');
+ WriteBroDocObjList(notices, "Notices", '#');
- WriteInterface("Public Interface", '-', '~', true, false);
+ if ( port_analysis.size() || packet_filter.size() )
+ WriteSectionHeading("Configuration Changes", '#');
if ( ! port_analysis.empty() )
{
- WriteSectionHeading("Port Analysis", '-');
+ WriteSectionHeading("Port Analysis", '^');
WriteToDoc("Loading this script makes the following changes to "
":bro:see:`dpd_config`.\n\n");
- WriteStringList("%s", port_analysis);
+ WriteStringList("%s, ", "%s", port_analysis);
}
if ( ! packet_filter.empty() )
{
- WriteSectionHeading("Packet Filter", '-');
+ WriteSectionHeading("Packet Filter", '^');
WriteToDoc("Loading this script makes the following changes to "
":bro:see:`capture_filters`.\n\n");
WriteToDoc("Filters added::\n\n");
WriteToDoc("%s\n", packet_filter.c_str());
}
+ WriteInterface("Detailed Interface", '~', '#', true, false);
+
#if 0 // Disabled for now.
BroDocObjList::const_iterator it;
bool hasPrivateIdentifiers = false;
@@ -243,7 +255,7 @@ void BroDoc::WriteDocFile() const
}
if ( hasPrivateIdentifiers )
- WriteInterface("Private Interface", '-', '~', false, false);
+ WriteInterface("Private Interface", '~', '#', false, false);
#endif
}
diff --git a/src/bro.bif b/src/bro.bif
index c941d19c3b..4b1e19fe02 100644
--- a/src/bro.bif
+++ b/src/bro.bif
@@ -1,4 +1,4 @@
-# Definitions of Bro built-in functions.
+##! Defines most of the built-in functions accessible to the scripting layer.
%%{ // C segment
#include
diff --git a/src/const.bif b/src/const.bif
index 96630e300b..f1e59f185c 100644
--- a/src/const.bif
+++ b/src/const.bif
@@ -1,4 +1,5 @@
-# Documentation and default values for these are located in policy/bro.init.
+##! Constants of used with built-in functions and events. Documented in
+##! :doc:`/scripts/base/init-bare`.
const ignore_keep_alive_rexmit: bool;
const skip_http_data: bool;
diff --git a/src/event.bif b/src/event.bif
index abdf034719..3ae101a29e 100644
--- a/src/event.bif
+++ b/src/event.bif
@@ -1,3 +1,5 @@
+##! Events generated by Bro's internal event engine.
+
#
# Documentation conventions:
#
diff --git a/src/strings.bif b/src/strings.bif
index 5301dfcf5e..8fccf68690 100644
--- a/src/strings.bif
+++ b/src/strings.bif
@@ -1,4 +1,4 @@
-# Definitions of Bro built-in functions related to strings.
+##! Built-in functions for working with strings.
%%{ // C segment
diff --git a/src/types.bif b/src/types.bif
index da6bd6e031..401e102579 100644
--- a/src/types.bif
+++ b/src/types.bif
@@ -1,3 +1,4 @@
+##! Set of predefined types used with built-in functions and events.
enum dce_rpc_ptype %{
DCE_RPC_REQUEST,