www/presets/*.json
.cache
+.tmp
+
--- /dev/null
+msc/markdoc/markdoc.yaml
\ No newline at end of file
--- /dev/null
+../README.md
\ No newline at end of file
--- /dev/null
+# Timeseries Chart Options
+
+Right now, all options are global (apply to all metrics of a chart) because that's how Dygraph worked. This doesn't make sense when you have per-metric options, which we see bleeding in now with color etc, or when you want to mix and match chart-types.
+
+That said, most "local" (per-metric) options also make sense as global defaults for new metrics. Cases where that doesn't hold are noted.
+
+
+## Local Per-Metric Options
+
+- id
+- enabled
+- visible
+- type
+
+- label
+- format
+- timespan: [start, stop] -- inferred
+- stroke[]
+ - width: 4.0
+ - color: default from palette
+ - opacity: 1.0
+ - style: solid | dashed | dotted -- presets for advanced options which are otherwise hidden
+ - solid := (all defaults)
+ - dashed := dashes:[2,2]
+ - dotted := dashes:[1,1], caps:round, joins:round
+ - (advanced options)
+ - dashes: null | dash pattern array (int array) -- null == solid
+ - caps: butt | round | square
+ - joins: miter | round | bevel
+- fill: null | color | gradient?
+- opacity: 1.0
+- points
+ - enabled: false
+ - size: 0
+ - color: inherit from first stroke
+- horizon: false
+- smoothing: false
+- axis
+ - scale: linear | log | sqrt | pow | (discrete | quantize | quantile)?
+ - scaleQuanta: Number -- for linear, log(?), pow, discrete, quant*
+ - range: [min, max] -- auto-inferred from dataset extents
+ - ticks: Number
+ - format: inherit from format
+- data
+ - errorBars: false | choose error data column
+
+## Chart-Global Options
+
+- palette
+- stacked: false
+- axis
+- grid[x,y]
+ - enabled: false
+ - stroke
+- timespan: [start, stop] -- inferred
+- legend
+ - enabled: true
+ - fixed: false -- when true, graph is smaller to accommodate legend; otherwise, legend moves itself
+ - draggable: false -- legend won't dodge the mouse so you can grab it
+- zoom
+ - enabled: true -- enables Y-zoom independent of pan
+ - starting: 1.0
+ - range: [min, max]
+- pan
+ - enabled: true
+ - starting: [0, 1.0] -- Floats as % of timespan, or Dates
+- minimap: false
+- transitions: ?
\ No newline at end of file
--- /dev/null
+{% extends 'base.html' %}
+
+{% block title %}Not Found: {{ request.path_info|e }}{% endblock %}
+
+{% block content %}
+<h1>Not Found: <code>{{ request.path_info|e }}</code></h1>
+<p>
+ We couldn’t find what you were looking for.
+ {% if not is_index %}You could try going <a href="/">home</a>.{% endif %}
+</p>
+{% endblock %}
--- /dev/null
+<!DOCTYPE html>
+<html>
+{% import "macros/html" as html -%}
+
+<head>
+ {% block head %}
+
+ {% block meta %}
+ <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
+ {% endblock %}
+
+ <title>
+ {% block title -%}
+ {{ title }}
+ {%- endblock %}
+ {% block title_suffix -%}
+ {% if 'wiki-name' in config %} | {{ config['wiki-name']|e }}{% endif %}
+ {%- endblock %}
+ </title>
+
+ {% block css %}
+ {{ html.cssimport("/vendor/bootstrap/css/bootstrap.min.css") }}
+ {{ html.cssimport("/css/solarized.css") }}
+ {{ html.cssimport("/css/docs.css") }}
+ {% endblock %}
+
+ {% endblock head %}
+</head>
+
+<body {% block body_attrs %}{% endblock %}><div id="content">{% block body %}
+
+{% block header %}
+ <header>
+ {% block crumbs %}
+ {% if crumbs %}
+ <ul class="breadcrumb">
+ {% if 'wiki-name' in config %}
+ <li id="wiki-name">{{ config['wiki-name']|e }} <span class="divider">§</span></li>
+ {% endif %}
+ {% for name, href in crumbs %}
+ <li>
+ {% if href == None %}
+ {{ name|e }}
+ {% else %}
+ <a href="{{ make_relative(href)|e }}">{{ name|e }}</a>{% if loop.revindex0 %} <span class="divider">/</span>{% endif %}
+ {% endif %}
+ </li>
+ {% endfor %}
+ </ul> <!-- ul.breadcrumbs -->
+ {% endif %}
+ {% endblock crumbs %}
+ </header>
+{% endblock header %}
+
+<div id="doc">
+ {% block content %}
+ {% endblock content %}
+</div> <!-- div#content -->
+
+{% block footer %}
+ <footer>
+ Powered by <a href="http://bitbucket.org/zacharyvoase/markdoc">Markdoc</a>.
+ </footer>
+{% endblock footer %}
+
+{% block end %}{% endblock %}
+
+{% block scripts %}
+ <div class="scripts">
+ {% block vendor %}
+ {{ html.jsimport("/vendor/jquery.min.js") }}
+ {{ html.jsimport("/vendor/bootstrap.min.js") }}
+ {% endblock %}
+ {% block analytics %}
+ {% if 'google-analytics' in config %}
+ <!-- Google Analytics -->
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', '{{ config['google-analytics'] }}']);
+ _gaq.push(['_trackPageview']);
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
+ })();
+ </script>
+ {% endif %}
+ {% endblock analytics %}
+ {% block js %}{% endblock %}
+ </div>
+{% endblock scripts %}
+
+{% endblock body %}</div></body>
+</html>
--- /dev/null
+{% extends 'base.html' %}
+
+{% block content %}
+{{ content | replace('<h1', '<h1 class="page-header"') }}
+{% endblock %}
--- /dev/null
+{% extends 'base.html' %}
+
+{% block title %}ls /{{ directory|e }}{% endblock %}
+
+{% block content %}
+ <h1><code>ls /{{ directory|e }}</code></h1>
+
+ {% if sub_directories %}
+ <h2>Directories</h2>
+
+ <table id="subdirs">
+ {% for subdir in sub_directories %}
+ <tr>
+ <td class="name">
+ <a class="dirlink" href="{{ make_relative(subdir.href)|e }}">
+ {{ subdir.basename|e }}/
+ </a>
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ {% endif %}
+
+ {% if pages %}
+ <h2>Pages</h2>
+
+ <table id="pages">
+ {% for page in pages %}
+ <tr>
+ <td class="size">{{ page.humansize }}</td>
+ <td class="name">
+ <a href="{{ make_relative(page.href)|e }}" title="{{ page.title|e }}">
+ {{ page.title|e }}
+ </a>
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ {% endif %}
+
+ {% if files %}
+ <h2>Files</h2>
+
+ <table id="files">
+ {% for file in files %}
+ <tr>
+ <td class="size">{{ file.humansize }}</td>
+ <td class="name">
+ <a href="{{ make_relative(file.href)|e }}">
+ <code>{{ file.basename|e }}</code>
+ </a>
+ </td>
+ </tr>
+ {% endfor %}
+ </table>
+ {% endif %}
+{% endblock %}
--- /dev/null
+{% macro cssimport(css_href, media="screen, projection") -%}
+ <link rel="stylesheet" type="text/css" href="{{ css_href }}" {% if media %}media="{{ media }}" {% endif %}/>
+{%- endmacro %}
+
+{% macro css() -%}
+ <style type="text/css">
+ {{ caller() }}
+ </style>
+{%- endmacro %}
+
+{% macro jsimport(js_href) -%}
+ <script type="application/javascript" src="{{ js_href }}"></script>
+{%- endmacro %}
+
+{% macro js() -%}
+ <script type="text/javascript">
+ {{ caller() }}
+ </script>
+{%- endmacro %}
--- /dev/null
+wiki-name : Limn Docs
+
+wiki-dir : "docs"
+template-dir : "msc/markdoc"
+static-dir : "msc/markdoc/static"
+html-dir : "var/docs"
+temp-dir : ".tmp"
+
+use-default-static : false
+use-default-templates : false
+generate-listing : always
+hide-prefix : "."
+cvs-exclude : true
+listing-filename : "_list.html"
+
+markdown:
+ output-format: html5
+ extensions:
+ - abbr
+ - codehilite
+ - def_list
+ - extra
+ - fenced_code
+ - footnotes
+ - headerid
+ - meta
+ - tables
+ - toc
+ # - rss
+ # - html_tidy
+ # - imagelinks
+ # - wikilinks
+ extension-configs:
+ codehilite:
+ force_linenos: false
+
+
--- /dev/null
+h1, h2, h3, h4, h5
+ font-weight normal
+ margin 0
+ margin-top 1em
+ padding 0.5em 0
+
+h1.page-header
+ // font-size 30px
+ padding-bottom 0
+
+h2
+ font-size 18px
+
+h3, h4
+ font-size 13px
+ text-transform uppercase
+ letter-spacing 0.2em
+ word-spacing 0.1em
+
+
+#content
+ height 100%
+
+header, #doc
+ margin 0 auto
+ width 60%
+ max-width 800px
+ min-width 600px
+
+footer
+ margin-top 3em
+ padding 1em 3em 3em
+ background-color #fbfbfb
+ border-top 1px solid #ddd
+ font-size 11px
+