aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Doxyfile12
-rw-r--r--contrib/doxygen/customdoxygen.css757
-rw-r--r--contrib/doxygen/extra.css777
-rw-r--r--contrib/doxygen/footer.html23
-rw-r--r--contrib/doxygen/header.html36
-rw-r--r--contrib/doxygen/logo-devdoc.pngbin0 -> 27382 bytes
7 files changed, 1599 insertions, 8 deletions
diff --git a/.gitignore b/.gitignore
index 7c8f262730..4a6bbfec0f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,5 +54,3 @@
# local make targets
local.mk
-# Doxygen output
-/documentation/
diff --git a/Doxyfile b/Doxyfile
index 23a3d8308f..de31c8355f 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -47,14 +47,14 @@ PROJECT_BRIEF =
# exceed 55 pixels and the maximum width should not exceed 200 pixels.
# Doxygen will copy the logo to the output directory.
-PROJECT_LOGO =
+PROJECT_LOGO = contrib/doxygen/logo-devdoc.png
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
-OUTPUT_DIRECTORY = documentation
+OUTPUT_DIRECTORY = build/doxygen
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -892,13 +892,13 @@ HTML_FILE_EXTENSION = .html
# have to redo this when upgrading to a newer version of doxygen or when
# changing the value of configuration settings such as GENERATE_TREEVIEW!
-HTML_HEADER =
+HTML_HEADER = contrib/doxygen/header.html
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
-HTML_FOOTER =
+HTML_FOOTER = contrib/doxygen/footer.html
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
@@ -907,7 +907,7 @@ HTML_FOOTER =
# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this
# tag will in the future become obsolete.
-HTML_STYLESHEET =
+HTML_STYLESHEET = contrib/doxygen/customdoxygen.css
# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional
# user-defined cascading style sheet that is included after the standard
@@ -917,7 +917,7 @@ HTML_STYLESHEET =
# robust against future updates. Doxygen will copy the style sheet file to
# the output directory.
-HTML_EXTRA_STYLESHEET =
+HTML_EXTRA_STYLESHEET = contrib/doxygen/extra.css
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
diff --git a/contrib/doxygen/customdoxygen.css b/contrib/doxygen/customdoxygen.css
new file mode 100644
index 0000000000..019073805a
--- /dev/null
+++ b/contrib/doxygen/customdoxygen.css
@@ -0,0 +1,757 @@
+
+/*
+ * Title, should be H1
+ */
+
+.title {
+ font-family: 'Lato', sans-serif;
+ font-size: 2em;
+ margin: 0.67em 0 0;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+
+div.qindex, div.navtab {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+}
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ white-space: pre;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+hr {
+ height: 0px;
+ border: none;
+ display: none;
+}
+
+dl {
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note {
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention {
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant {
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated {
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo {
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test {
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug {
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ white-space: nowrap;
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+/*
+ * Centered container for all content
+ */
+
+div.contents,
+div.header > *,
+ul.tablist,
+.navpath ul {
+ margin:0 15px;
+}
+@media (min-width: 568px) {
+ div.contents,
+ div.header > *,
+ ul.tablist,
+ .navpath ul {
+ margin: 0 auto;
+ width: 90%;
+ max-width: 1200px;
+ }
+}
+
+/*
+ * padding inside content
+ */
+
+div.contents > * {
+ padding-top: 8px;
+ padding-bottom: 8px;
+}
+
+@media (min-width: 568px) {
+ div.contents > h2,
+ div.contents > div.textblock,
+ div.contents > div.memitem,
+ div.contents > table.memberdecls h2,
+ div.contents > p {
+ padding-top: 30px;
+ }
+}
+
+div.contents h2 {
+ margin-top: 0px;
+}
+
+div.summary {
+ display: none;
+}
+
+/*
+ * Tabs
+ *
+ * Based on doxygen tabs.css
+ */
+
+.tabs, .tabs2, .tabs3 {
+ width: 100%;
+ background-color: #f4f4f4;
+ border-top: solid 1px #ececec;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+}
+
+.tablist li {
+ float: left;
+ display: table-cell;
+ line-height: 36px;
+ list-style: none;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 30px 0 0;
+}
+
+.tabs3 .tablist a {
+ padding: 0 20px 0 0;
+}
+
+.tablist li.current a {
+ color: #54a23d;
+}
+
+/*
+ * Navpath
+ */
+
+.navpath ul
+{
+ padding:20px 0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ padding-right: 10px;
+ float:left;
+}
+
+.navpath li.navelem a
+{
+ padding-left: 10px;
+}
+
+.navpath li.navelem:before {
+ content: "/";
+ color: #777;
+}
+
+/*
+ * Member
+ *
+ * Styles for detailed member documentation
+ */
+
+.memitem {
+ border-top: solid 1px #c9c9c9;
+}
+
+.memname {
+ font-weight: bold;
+ font-family: monospace;
+}
+
+td.memname {
+ color: #54a23d;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ font-weight: bold;
+}
+
+.memdoc, dl.reflist dd {
+}
+
+/*
+ * Parameters
+ */
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #aa0e0e;
+ white-space: nowrap;
+}
+
+.paramname em {
+ font-style: normal;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params td {
+ padding-right: 1em;
+ padding-bottom: 0.5em;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+/*
+ * Inline Label etc.
+ */
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+/*
+ * Member Descriptions
+ */
+
+table.memberdecls {
+ font-family: monospace;
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memSeparator {
+ line-height: 1px;
+ margin: 0px;
+ padding: 0 0 0.2em 0;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/*
+ * Fieldtable (Enums)
+ */
+
+.fieldtable td, .fieldtable th {
+ padding: 0 1em 0.2em 0;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+/*
+ * Directory
+ */
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory tr.even {
+ padding-left: 6px;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3c92d1;
+}
+
+.arrow {
+ color: #9CAFD4;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ font-size: 80%;
+ display: inline-block;
+ width: 16px;
+ height: 22px;
+}
+
+.icon {
+ font-family: Arial, Helvetica;
+ font-weight: bold;
+ font-size: 12px;
+ height: 14px;
+ width: 16px;
+ display: inline-block;
+ background-color: #54a23d;
+ color: white;
+ text-align: center;
+ border-radius: 4px;
+ margin-left: 2px;
+ margin-right: 2px;
+}
+
+.icona {
+ width: 24px;
+ height: 22px;
+ display: inline-block;
+}
+
+.iconfopen {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('ftv2folderopen.png');
+ background-position: 0px 0px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.iconfclosed {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('ftv2folderclosed.png');
+ background-position: 0px 0px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+.icondoc {
+ width: 24px;
+ height: 18px;
+ margin-bottom: 4px;
+ background-image:url('ftv2doc.png');
+ background-position: 0px -1px;
+ background-repeat: repeat-y;
+ vertical-align:top;
+ display: inline-block;
+}
+
+/*
+ * Data Structure Index
+ *
+ * Hardcoded style attribute
+ */
+
+.contents > table[style] {
+ margin: 20px auto !important;
+}
+
+/*
+ * Search Box
+ */
+
+#MSearchBox {
+ right: 4%;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/contrib/doxygen/extra.css b/contrib/doxygen/extra.css
new file mode 100644
index 0000000000..feb6d2d237
--- /dev/null
+++ b/contrib/doxygen/extra.css
@@ -0,0 +1,777 @@
+/*! normalize.css v3.0.0 | MIT License | git.io/normalize */
+
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ font-family: sans-serif; /* 1 */
+ -ms-text-size-adjust: 100%; /* 2 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/**
+ * Remove default margin.
+ */
+
+body {
+ margin: 0;
+}
+
+/* HTML5 display definitions
+ ========================================================================== */
+
+/**
+ * Correct `block` display not defined in IE 8/9.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * 1. Correct `inline-block` display not defined in IE 8/9.
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+ */
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block; /* 1 */
+ vertical-align: baseline; /* 2 */
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address `[hidden]` styling not present in IE 8/9.
+ * Hide the `template` element in IE, Safari, and Firefox < 22.
+ */
+
+[hidden],
+template {
+ display: none;
+}
+
+/* Links
+ ========================================================================== */
+
+/**
+ * Remove the gray background color from active links in IE 10.
+ */
+
+a {
+ background: transparent;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * Address styling not present in IE 8/9, Safari 5, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+/**
+ * Address styling not present in Safari 5 and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari 5, and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/**
+ * Address styling not present in IE 8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Remove border when inside `a` element in IE 8/9.
+ */
+
+img {
+ border: 0;
+}
+
+/**
+ * Correct overflow displayed oddly in IE 9.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * Address margin not present in IE 8/9 and Safari 5.
+ */
+
+figure {
+ margin: 1em 40px;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Contain overflow in all browsers.
+ */
+
+pre {
+ overflow: auto;
+}
+
+/**
+ * Address odd `em`-unit font size rendering in all browsers.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
+ * styling of `select`, unless a `border` property is set.
+ */
+
+/**
+ * 1. Correct color not being inherited.
+ * Known issue: affects color of disabled elements.
+ * 2. Correct font properties not being inherited.
+ * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit; /* 1 */
+ font: inherit; /* 2 */
+ margin: 0; /* 3 */
+}
+
+/**
+ * Address `overflow` set to `hidden` in IE 8/9/10.
+ */
+
+button {
+ overflow: visible;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Firefox, IE 8+, and Opera
+ * Correct `select` style inheritance in Firefox.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+input {
+ line-height: normal;
+}
+
+/**
+ * It's recommended that you don't attempt to style these elements.
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
+ *
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
+ * 2. Remove excess padding in IE 8/9/10.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
+ * `font-size` values of the `input`, it causes the cursor style of the
+ * decrement button to change from `default` to `text`.
+ */
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
+ * Safari (but not Chrome) clips the cancel button when the search input has
+ * padding (and `textfield` appearance).
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct `color` not being inherited in IE 8/9.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Remove default vertical scrollbar in IE 8/9.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * Don't inherit the `font-weight` (applied by a rule above).
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+ */
+
+optgroup {
+ font-weight: bold;
+}
+
+/* Tables
+ ========================================================================== */
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+td,
+th {
+ padding: 0;
+}
+
+/* neovim.org/css/main.css */
+
+* {
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-size: 15px;
+ line-height: 1.4;
+ color: #444;
+ background-color: #fbfbfb;
+}
+@media (min-width: 568px) {
+ body {
+ font-size: 17px;
+ }
+}
+
+a {
+ color: #3c92d1;
+ text-decoration: none;
+}
+
+h1,
+h2,
+h3 {
+ font-family: 'Lato', sans-serif;
+}
+
+h2 {
+ font-size: 24px;
+ font-weight: 400;
+ color: #54a23d;
+ margin-bottom: 0;
+}
+@media (min-width: 568px) {
+ h2 {
+ font-size: 30px;
+ }
+}
+h3 {
+ /* color: #54a23d; */
+}
+
+blockquote {
+ border-left: 5px solid #eeeeee;
+ margin-left: 0;
+ padding-left: 15px;
+}
+
+/*
+ * Content container
+ *
+ * Centered container for all content
+ */
+
+.container {
+ margin: 0 15px;
+}
+@media (min-width: 568px) {
+ .container {
+ margin: 0 auto;
+ width: 90%;
+ max-width: 1200px;
+ }
+}
+
+/*
+ * Navbar
+ *
+ * Logo and navigation at the top of the page
+ */
+
+.navbar {
+ padding: 12px 0;
+}
+@media (min-width: 568px) {
+ .navbar {
+ padding-top: 30px;
+ padding-bottom: 30px;
+ }
+}
+
+.logo {
+ width: 120px;
+ position: relative;
+ top: 4px;
+}
+@media (min-width: 568px) {
+ .logo {
+ width: 180px;
+ }
+}
+
+.site-nav {
+ display: none;
+}
+@media (min-width: 568px) {
+ .site-nav {
+ display: block;
+ float: right;
+ }
+ .site-nav ul {
+ list-style: none;
+ }
+ .site-nav li {
+ display: inline-block;
+ margin-top: 5px;
+ margin-left: 20px;
+ font-size: 18px;
+ font-family: 'Lato', sans-serif;
+ }
+}
+
+/*
+ * Masthead
+ *
+ * Big intro billboard
+ */
+
+.masthead {
+ border-top: solid 1px #ececec;
+ border-bottom: solid 1px #ececec;
+ text-align: center;
+ padding: 20px 12px;
+}
+@media (min-width: 568px) {
+ .masthead {
+ padding-top: 40px;
+ padding-bottom: 40px;
+ }
+}
+
+.masthead .container {
+}
+@media (min-width: 568px) {
+ .masthead .container {
+ width: 568px;
+ margin: 0 auto;
+ }
+}
+
+.masthead h1 {
+ font-size: 20px;
+ font-weight: 400;
+}
+@media (min-width: 568px) {
+ .masthead h1 {
+ font-size: 40px;
+ margin-bottom: 50px;
+ }
+}
+
+.masthead .lead {
+ font-weight: 900;
+ color: #54a23d;
+ font-family: 'Lato', sans-serif;
+ font-size: 16px;
+ font-weight: 900;
+}
+@media (min-width: 568px) {
+ .masthead .lead {
+ font-size: 26px;
+ }
+}
+
+/*
+ * Columns
+ *
+ * Two columns utilizing the golden ratio
+ */
+
+.col-wide,
+.col-narrow {
+ display: block;
+}
+@media (min-width: 568px) {
+ .col-wide {
+ display: table-cell;
+ width: 61.8%;
+ vertical-align: top;
+ }
+ .col-narrow {
+ display: table-cell;
+ width: 38.2%;
+ padding-left: 6%;
+ vertical-align: top;
+ }
+}
+
+/*
+ * Front page
+ *
+ * Big section blocks for the front page
+ */
+
+.front-section {
+ padding: 8px 0;
+}
+@media (min-width: 568px) {
+ .front-section {
+ padding-top: 30px;
+ padding-bottom: 30px;
+ display: table;
+ width: 100%;
+ }
+ .front-section h2:first-child {
+ margin-top: 0;
+ }
+}
+
+.front-section.shaded {
+ background-color: #f4f4f4;
+}
+
+/*
+ * FAQs
+ *
+ * Formatted as a definition list
+ */
+
+.faqs dt {
+ font-weight: 700;
+}
+
+.faqs dd {
+ color: #777;
+ font-size: 15px;
+ margin-left: 0;
+ margin-bottom: 20px;
+}
+
+/*
+ * Buttons
+ *
+ * Fun to click
+ */
+
+.btn {
+ display: inline-block;
+ text-align: center;
+ vertical-align: middle;
+ background-color: #3c92d1;
+ color: #fff;
+ font-family: 'Lato', sans-serif;
+ border-radius: 4px;
+ padding: 15px 30px;
+}
+
+.btn:hover {
+ background-color: #3889c4;
+}
+
+.btn.full-width {
+ width: 100%;
+}
+
+/*
+ * Sponsors
+ *
+ * Callout-style box
+ */
+.sponsors {
+ background-color: #f5f5f5;
+ padding: 5px 20px;
+ border-radius: 4px;
+ margin-top: 10px;
+}
+
+.sponsors h3 {
+ color: #54a23d;
+}
+
+.first-level-sponsor {
+ margin-bottom: 20px;
+}
+
+.first-level-sponsor img {
+ max-width: 100%;
+}
+
+.second-level-sponsors {
+ width: 100%;
+}
+
+.second-level-sponsors td {
+ width: 50%;
+ padding: 12px 0;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.second-level-sponsors img {
+ width: 80%;
+}
+@media (min-width: 568px) {
+ .second-level-sponsor img {
+ width: auto;
+ }
+}
+
+/*
+ * Footer
+ *
+ * Links, legalese, etc.
+ */
+
+footer .container {
+ border-top: solid 1px #ececec;
+ padding: 20px 0 50px;
+ font-size: 12px;
+ color: #777;
+}
+@media (min-width: 568px) {
+ footer .container {
+ font-size: 14px;
+ display: table;
+ }
+}
+
+footer a {
+ color: #444;
+}
+
+
+/*
+ * Misc
+ *
+ * Odds 'n ends
+ */
+
+.light {
+ color: #777;
+}
+
+.light a {
+ color: #444;
+}
+
+.small {
+ font-size: 70%;
+}
+
+/*
+ * Newsletter CSS
+ */
+
+.newsletter h1 {
+ margin-bottom: 0px;
+}
+
diff --git a/contrib/doxygen/footer.html b/contrib/doxygen/footer.html
new file mode 100644
index 0000000000..a6d8bb1ee4
--- /dev/null
+++ b/contrib/doxygen/footer.html
@@ -0,0 +1,23 @@
+<!-- HTML footer for doxygen 1.8.6-->
+<!-- start footer part -->
+<!--BEGIN GENERATE_TREEVIEW-->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ $navpath
+ <li class="footer">$generatedby
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="$relpath^doxygen.png" alt="doxygen"/></a> $doxygenversion </li>
+ </ul>
+</div>
+<!--END GENERATE_TREEVIEW-->
+<!--BEGIN !GENERATE_TREEVIEW-->
+<footer>
+ <div class="container">
+ $generatedby
+ <a href="http://www.doxygen.org/index.html">Doxygen</a>
+ $doxygenversion
+ </div>
+</footer>
+<!--END !GENERATE_TREEVIEW-->
+</body>
+</html>
diff --git a/contrib/doxygen/header.html b/contrib/doxygen/header.html
new file mode 100644
index 0000000000..e1afe71aee
--- /dev/null
+++ b/contrib/doxygen/header.html
@@ -0,0 +1,36 @@
+<!-- HTML header for doxygen 1.8.6-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen $doxygenversion"/>
+<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->
+<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME-->
+<script type="text/javascript" src="$relpath^jquery.js"></script>
+<script type="text/javascript" src="$relpath^dynsections.js"></script>
+$treeview
+$search
+$mathjax
+<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" />
+$extrastylesheet
+<link href="http://fonts.googleapis.com/css?family=Lato:400,700,900" rel="stylesheet">
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+
+<!--BEGIN TITLEAREA-->
+<header class="navbar">
+ <div class="container">
+ <nav class="site-nav">
+ <ul>
+ <li><a href="http://neovim.org/">Neovim Home</a></li>
+ </ul>
+ </nav>
+ <a href="$relpath^index.html">
+ <img src="$relpath^$projectlogo" class="logo" alt="Neovim Dev-Doc">
+ </a>
+ </div>
+</header>
+<!--END TITLEAREA-->
+<!-- end header part -->
diff --git a/contrib/doxygen/logo-devdoc.png b/contrib/doxygen/logo-devdoc.png
new file mode 100644
index 0000000000..a25ef2b9d7
--- /dev/null
+++ b/contrib/doxygen/logo-devdoc.png
Binary files differ