aboutsummaryrefslogtreecommitdiff
path: root/development/libs/barrel/docs
diff options
context:
space:
mode:
Diffstat (limited to 'development/libs/barrel/docs')
-rw-r--r--development/libs/barrel/docs/.gitignore4
-rw-r--r--development/libs/barrel/docs/LICENSE22
-rwxr-xr-xdevelopment/libs/barrel/docs/Makefile124
-rwxr-xr-xdevelopment/libs/barrel/docs/README.md3
-rw-r--r--development/libs/barrel/docs/blue-penguin/CONTRIBUTORS.md16
-rw-r--r--development/libs/barrel/docs/blue-penguin/README.md53
-rw-r--r--development/libs/barrel/docs/blue-penguin/screenshot.pngbin0 -> 1007925 bytes
-rw-r--r--development/libs/barrel/docs/blue-penguin/static/css/print.css4
-rw-r--r--development/libs/barrel/docs/blue-penguin/static/css/pygments.css87
-rw-r--r--development/libs/barrel/docs/blue-penguin/static/css/screen.css342
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/analytics.html11
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/archives.html22
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/article.html17
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/article_stub.html37
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/author.html7
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/base.html105
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/category.html6
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/disqus.html12
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/index.html17
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/page.html8
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/pagination.html38
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/tag.html5
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/tags.html8
-rw-r--r--development/libs/barrel/docs/blue-penguin/templates/translations.html6
-rw-r--r--development/libs/barrel/docs/content/blog/001_hello_barrel.md59
-rw-r--r--development/libs/barrel/docs/content/images/logo.svg30
-rw-r--r--development/libs/barrel/docs/content/pages/home.md74
-rwxr-xr-xdevelopment/libs/barrel/docs/develop_server.sh103
-rwxr-xr-xdevelopment/libs/barrel/docs/fabfile.py94
-rwxr-xr-xdevelopment/libs/barrel/docs/pelicanconf.py77
30 files changed, 1391 insertions, 0 deletions
diff --git a/development/libs/barrel/docs/.gitignore b/development/libs/barrel/docs/.gitignore
new file mode 100644
index 000000000000..8ee89848fc99
--- /dev/null
+++ b/development/libs/barrel/docs/.gitignore
@@ -0,0 +1,4 @@
+output
+**/*.pyc
+env
+*.pid
diff --git a/development/libs/barrel/docs/LICENSE b/development/libs/barrel/docs/LICENSE
new file mode 100644
index 000000000000..f349240fec51
--- /dev/null
+++ b/development/libs/barrel/docs/LICENSE
@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2018 Katharina
+
+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.
+
diff --git a/development/libs/barrel/docs/Makefile b/development/libs/barrel/docs/Makefile
new file mode 100755
index 000000000000..4579789ae71f
--- /dev/null
+++ b/development/libs/barrel/docs/Makefile
@@ -0,0 +1,124 @@
+PY?=python3
+PELICAN?=pelican
+PELICANOPTS=
+
+BASEDIR=$(CURDIR)
+INPUTDIR=$(BASEDIR)/content
+OUTPUTDIR=$(BASEDIR)/output
+CONFFILE=$(BASEDIR)/pelicanconf.py
+PUBLISHCONF=$(BASEDIR)/publishconf.py
+
+FTP_HOST=localhost
+FTP_USER=anonymous
+FTP_TARGET_DIR=/
+
+SSH_HOST=localhost
+SSH_PORT=22
+SSH_USER=root
+SSH_TARGET_DIR=/var/www
+
+S3_BUCKET=my_s3_bucket
+
+CLOUDFILES_USERNAME=my_rackspace_username
+CLOUDFILES_API_KEY=my_rackspace_api_key
+CLOUDFILES_CONTAINER=my_cloudfiles_container
+
+DROPBOX_DIR=~/Dropbox/Public/
+
+GITHUB_PAGES_BRANCH=gh-pages
+
+DEBUG ?= 0
+ifeq ($(DEBUG), 1)
+ PELICANOPTS += -D
+endif
+
+RELATIVE ?= 0
+ifeq ($(RELATIVE), 1)
+ PELICANOPTS += --relative-urls
+endif
+
+help:
+ @echo 'Makefile for a pelican Web site '
+ @echo ' '
+ @echo 'Usage: '
+ @echo ' make html (re)generate the web site '
+ @echo ' make clean remove the generated files '
+ @echo ' make regenerate regenerate files upon modification '
+ @echo ' make publish generate using production settings '
+ @echo ' make serve [PORT=8000] serve site at http://localhost:8000'
+ @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
+ @echo ' make devserver [PORT=8000] start/restart develop_server.sh '
+ @echo ' make stopserver stop local server '
+ @echo ' make ssh_upload upload the web site via SSH '
+ @echo ' make rsync_upload upload the web site via rsync+ssh '
+ @echo ' make dropbox_upload upload the web site via Dropbox '
+ @echo ' make ftp_upload upload the web site via FTP '
+ @echo ' make s3_upload upload the web site via S3 '
+ @echo ' make cf_upload upload the web site via Cloud Files'
+ @echo ' make github upload the web site via gh-pages '
+ @echo ' '
+ @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
+ @echo 'Set the RELATIVE variable to 1 to enable relative urls '
+ @echo ' '
+
+html:
+ $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
+
+clean:
+ [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)
+
+regenerate:
+ $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
+
+serve:
+ifdef PORT
+ cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
+else
+ cd $(OUTPUTDIR) && $(PY) -m pelican.server
+endif
+
+serve-global:
+ifdef SERVER
+ cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 $(SERVER)
+else
+ cd $(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0
+endif
+
+
+devserver:
+ifdef PORT
+ $(BASEDIR)/develop_server.sh restart $(PORT) > /dev/null
+else
+ $(BASEDIR)/develop_server.sh restart > /dev/null
+endif
+
+stopserver:
+ $(BASEDIR)/develop_server.sh stop
+ @echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
+
+publish:
+ $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
+
+ssh_upload: publish
+ scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
+
+rsync_upload: publish
+ rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
+
+dropbox_upload: publish
+ cp -r $(OUTPUTDIR)/* $(DROPBOX_DIR)
+
+ftp_upload: publish
+ lftp ftp://$(FTP_USER)@$(FTP_HOST) -e "mirror -R $(OUTPUTDIR) $(FTP_TARGET_DIR) ; quit"
+
+s3_upload: publish
+ s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type
+
+cf_upload: publish
+ cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) .
+
+github: publish
+ ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
+ git push origin $(GITHUB_PAGES_BRANCH)
+
+.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github
diff --git a/development/libs/barrel/docs/README.md b/development/libs/barrel/docs/README.md
new file mode 100755
index 000000000000..987480b84aa7
--- /dev/null
+++ b/development/libs/barrel/docs/README.md
@@ -0,0 +1,3 @@
+# `barrel` website
+
+
diff --git a/development/libs/barrel/docs/blue-penguin/CONTRIBUTORS.md b/development/libs/barrel/docs/blue-penguin/CONTRIBUTORS.md
new file mode 100644
index 000000000000..f0e620bbd816
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/CONTRIBUTORS.md
@@ -0,0 +1,16 @@
+# Contributors
+
+* [Nevan Scott](https://github.com/nevanscott/Mockingbird) (original author)
+* [wrl](http://ghttps://github.com/guikcdithub.com/wrl) (port to pelican, pelican-mockingbird)
+* [Jody Frankowski](http://github.com/jody-frankowski) (Blue Penguin)
+* [Grimbox](https://github.com/Grimbox)
+* [ix5](https://github.com/ix5)
+* [dn0](https://github.com/dn0)
+* [anhtuann](https://github.com/anhtuann)
+* [aperep](https://github.com/aperep)
+* [iranzo](https://github.com/iranzo)
+* [thetlk](https://github.com/thetlk)
+* [SnorlaxYum](https://github.com/SnorlaxYum)
+* [guikcd](https://github.com/guikcd)
+* [jorgesumle](https://github.com/jorgesumle)
+* [crxxn](https://github.com/crxxn)
diff --git a/development/libs/barrel/docs/blue-penguin/README.md b/development/libs/barrel/docs/blue-penguin/README.md
new file mode 100644
index 000000000000..831bfc3364d2
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/README.md
@@ -0,0 +1,53 @@
+![screenshot](screenshot.png)
+
+# Blue Penguin for pelican
+A simple theme for pelican. Solarized pygments. Feeds support.
+
+## Settings
+```python
+# all the following settings are *optional*
+
+# HTML metadata
+SITEDESCRIPTION = ''
+
+# all defaults to True.
+DISPLAY_HEADER = True
+DISPLAY_FOOTER = True
+DISPLAY_HOME = True
+DISPLAY_MENU = True
+
+# provided as examples, they make ‘clean’ urls. used by MENU_INTERNAL_PAGES.
+TAGS_URL = 'tags'
+TAGS_SAVE_AS = 'tags/index.html'
+AUTHORS_URL = 'authors'
+AUTHORS_SAVE_AS = 'authors/index.html'
+CATEGORIES_URL = 'categories'
+CATEGORIES_SAVE_AS = 'categories/index.html'
+ARCHIVES_URL = 'archives'
+ARCHIVES_SAVE_AS = 'archives/index.html'
+
+# use those if you want pelican standard pages to appear in your menu
+MENU_INTERNAL_PAGES = (
+ ('Tags', TAGS_URL, TAGS_SAVE_AS),
+ ('Authors', AUTHORS_URL, AUTHORS_SAVE_AS),
+ ('Categories', CATEGORIES_URL, CATEGORIES_SAVE_AS),
+ ('Archives', ARCHIVES_URL, ARCHIVES_SAVE_AS),
+)
+# additional menu items
+MENUITEMS = (
+ ('GitHub', 'https://github.com/'),
+ ('Linux Kernel', 'https://www.kernel.org/'),
+)
+```
+
+## How to contribute
+Contributions are very welcome. Keep in mind that this theme goal is to be
+minimalistic/simple. Contributions will be accepted through Github Pull
+Requests. If you don’t have a Github account you can suggest me your
+changes by email (which you can find on my github profile).
+
+## Contributors
+See [CONTRIBUTORS.md](CONTRIBUTORS.md).
+
+## License
+Public domain.
diff --git a/development/libs/barrel/docs/blue-penguin/screenshot.png b/development/libs/barrel/docs/blue-penguin/screenshot.png
new file mode 100644
index 000000000000..fc5c40629328
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/screenshot.png
Binary files differ
diff --git a/development/libs/barrel/docs/blue-penguin/static/css/print.css b/development/libs/barrel/docs/blue-penguin/static/css/print.css
new file mode 100644
index 000000000000..c63a87bff610
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/static/css/print.css
@@ -0,0 +1,4 @@
+* { background: #fff; }
+body { font-family: georgia, times, serif; color: black; }
+blockquote { font-style: italic; color: black; }
+a:link, a:visited { border-bottom-width: 1px; border-bottom-style: solid; }
diff --git a/development/libs/barrel/docs/blue-penguin/static/css/pygments.css b/development/libs/barrel/docs/blue-penguin/static/css/pygments.css
new file mode 100644
index 000000000000..91ae32653fec
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/static/css/pygments.css
@@ -0,0 +1,87 @@
+/* Solarized Dark
+
+For use with Jekyll and Pygments
+
+http://ethanschoonover.com/solarized
+
+SOLARIZED HEX ROLE
+--------- -------- ------------------------------------------
+base03 #002b36 background
+base01 #586e75 comments / secondary content
+base1 #93a1a1 body text / default code / primary content
+orange #cb4b16 constants
+red #dc322f regex, special keywords
+blue #268bd2 reserved keywords
+cyan #2aa198 strings, numbers
+green #859900 operators, other keywords
+*/
+
+.highlight { background-color: #002b36; color: #93a1a1 }
+.highlight .c { color: #586e75 } /* Comment */
+.highlight .err { color: #93a1a1 } /* Error */
+.highlight .g { color: #93a1a1 } /* Generic */
+.highlight .k { color: #859900 } /* Keyword */
+.highlight .l { color: #93a1a1 } /* Literal */
+.highlight .n { color: #93a1a1 } /* Name */
+.highlight .o { color: #859900 } /* Operator */
+.highlight .x { color: #cb4b16 } /* Other */
+.highlight .p { color: #93a1a1 } /* Punctuation */
+.highlight .cm { color: #586e75 } /* Comment.Multiline */
+.highlight .cp { color: #859900 } /* Comment.Preproc */
+.highlight .c1 { color: #586e75 } /* Comment.Single */
+.highlight .cs { color: #859900 } /* Comment.Special */
+.highlight .gd { color: #2aa198 } /* Generic.Deleted */
+.highlight .ge { color: #93a1a1; font-style: italic } /* Generic.Emph */
+.highlight .gr { color: #dc322f } /* Generic.Error */
+.highlight .gh { color: #cb4b16 } /* Generic.Heading */
+.highlight .gi { color: #859900 } /* Generic.Inserted */
+.highlight .go { color: #93a1a1 } /* Generic.Output */
+.highlight .gp { color: #93a1a1 } /* Generic.Prompt */
+.highlight .gs { color: #93a1a1; font-weight: bold } /* Generic.Strong */
+.highlight .gu { color: #cb4b16 } /* Generic.Subheading */
+.highlight .gt { color: #93a1a1 } /* Generic.Traceback */
+.highlight .kc { color: #cb4b16 } /* Keyword.Constant */
+.highlight .kd { color: #268bd2 } /* Keyword.Declaration */
+.highlight .kn { color: #859900 } /* Keyword.Namespace */
+.highlight .kp { color: #859900 } /* Keyword.Pseudo */
+.highlight .kr { color: #268bd2 } /* Keyword.Reserved */
+.highlight .kt { color: #dc322f } /* Keyword.Type */
+.highlight .ld { color: #93a1a1 } /* Literal.Date */
+.highlight .m { color: #2aa198 } /* Literal.Number */
+.highlight .s { color: #2aa198 } /* Literal.String */
+.highlight .na { color: #93a1a1 } /* Name.Attribute */
+.highlight .nb { color: #B58900 } /* Name.Builtin */
+.highlight .nc { color: #268bd2 } /* Name.Class */
+.highlight .no { color: #cb4b16 } /* Name.Constant */
+.highlight .nd { color: #268bd2 } /* Name.Decorator */
+.highlight .ni { color: #cb4b16 } /* Name.Entity */
+.highlight .ne { color: #cb4b16 } /* Name.Exception */
+.highlight .nf { color: #268bd2 } /* Name.Function */
+.highlight .nl { color: #93a1a1 } /* Name.Label */
+.highlight .nn { color: #93a1a1 } /* Name.Namespace */
+.highlight .nx { color: #93a1a1 } /* Name.Other */
+.highlight .py { color: #93a1a1 } /* Name.Property */
+.highlight .nt { color: #268bd2 } /* Name.Tag */
+.highlight .nv { color: #268bd2 } /* Name.Variable */
+.highlight .ow { color: #859900 } /* Operator.Word */
+.highlight .w { color: #93a1a1 } /* Text.Whitespace */
+.highlight .mf { color: #2aa198 } /* Literal.Number.Float */
+.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */
+.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */
+.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */
+.highlight .sb { color: #586e75 } /* Literal.String.Backtick */
+.highlight .sc { color: #2aa198 } /* Literal.String.Char */
+.highlight .sd { color: #93a1a1 } /* Literal.String.Doc */
+.highlight .s2 { color: #2aa198 } /* Literal.String.Double */
+.highlight .se { color: #cb4b16 } /* Literal.String.Escape */
+.highlight .sh { color: #93a1a1 } /* Literal.String.Heredoc */
+.highlight .si { color: #2aa198 } /* Literal.String.Interpol */
+.highlight .sx { color: #2aa198 } /* Literal.String.Other */
+.highlight .sr { color: #dc322f } /* Literal.String.Regex */
+.highlight .s1 { color: #2aa198 } /* Literal.String.Single */
+.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */
+.highlight .bp { color: #268bd2 } /* Name.Builtin.Pseudo */
+.highlight .vc { color: #268bd2 } /* Name.Variable.Class */
+.highlight .vg { color: #268bd2 } /* Name.Variable.Global */
+.highlight .vi { color: #268bd2 } /* Name.Variable.Instance */
+.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */ \ No newline at end of file
diff --git a/development/libs/barrel/docs/blue-penguin/static/css/screen.css b/development/libs/barrel/docs/blue-penguin/static/css/screen.css
new file mode 100644
index 000000000000..dc11acf47cfa
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/static/css/screen.css
@@ -0,0 +1,342 @@
+/* http://meyerweb.com/eric/tools/css/reset/
+v2.0 | 20110126
+License: none (public domain)
+ */
+/* Mockingbird Theme by Nevan Scott nevanscott.com */
+/* Modified by Jody Frankowski */
+/* Modified by ix5 */
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+em {
+ font-style: italic;
+}
+strong {
+ font-weight: bold;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+body {
+ font-family: Georgia, serif;
+ font-size: 16px;
+ line-height: 1.5em;
+ color: #444;
+}
+
+header, #wrapper {
+ padding: 0 10px;
+ min-width: 500px;
+ max-width: 910px;
+ margin: auto;
+}
+
+a {
+ text-decoration: none;
+ color: #15A9DB;
+}
+
+ul {
+ list-style: outside disc;
+}
+
+ol {
+ list-style: outside decimal;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: sans-serif;
+ font-weight: bold;
+}
+h1, h2, h3 {
+ font-size: 1.5em;
+ line-height: 1em;
+ margin: 1em 0;
+}
+
+img, p, .post > .highlight, .highlighttable, h4, h5, h6 {
+ margin-top: 1.2em;
+}
+
+blockquote {
+ margin: 1.5em 1.5em 1.5em .75em;
+ padding-left: .75em;
+ border-left: 1px solid #EEE;
+}
+
+.date {
+ color: #CCC;
+ float: left;
+ clear: both;
+ width: 130px;
+ font-size: 1.5em;
+ line-height: 1em;
+ margin: 0 20px 1em 0;
+}
+
+.info {
+ margin-top: 1.3em;
+ font-family: sans-serif;
+ text-align: right;
+ color: #BBB;
+}
+.info a {
+ color: inherit;
+}
+.info a.tags {
+ background: #CCC;
+ color: #FFF;
+ display: inline-block;
+ padding: 0 .3em;
+ border: 1px transparent solid;
+ border-radius: 5px;
+ margin: 0 0 0.3em 0;
+}
+.info a.tags:hover {
+ background: inherit;
+ color: inherit;
+}
+.info a.tags.selected {
+ border: 1px #999 solid;
+}
+
+.post {
+ margin: 0 0 4.5em 150px;
+}
+.post.archives {
+ margin-bottom: 1.5em;
+ margin-left: 160px;
+}
+.post p {
+ text-align: justify;
+}
+
+.page {
+ margin: 0 90px;
+}
+
+.highlight {
+ border-radius: 3px;
+}
+.code > .highlight {
+ border-radius: 0px 3px 3px 0px;
+}
+.linenos {
+ border-radius: 3px 0px 0px 3px;
+ background-color: #073642;
+ border-right: 1px solid #00232C;
+ color: #586E75;
+ text-shadow: 0px -1px #021014;
+}
+td.code {
+ width: 100%;
+ max-width: 100px;
+}
+.linenos a {
+ color: #586E75;
+}
+
+img {
+ box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.15);
+ border-radius: 0.3em;
+ max-width: 100%;
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+/*sub and sup stolen from Twitter bootstrap.*/
+sub, sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+.post pre, .page pre {
+ padding: .8em;
+ font-size: 12px;
+ font-family: Monospace;
+ line-height: 1.1em;
+ overflow: auto;
+}
+
+form.inline_edit {
+ clear: both;
+ margin: 4.5em 0;
+ background-color: #DDD;
+ color: #000;
+ padding: 20px;
+ border-radius: 5px;
+}
+.inline_edit .sub {
+ color: #888;
+ white-space: nowrap;
+}
+.inline_edit label {
+ float: left;
+ clear: both;
+ width: 140px;
+ margin-right: 20px;
+}
+.inline_edit .buttons {
+ display: block;
+ text-align: right;
+}
+
+nav ul {
+ float: right;
+ list-style: none;
+ margin: 0 0 0 3em;
+ padding: 0;
+}
+nav li {
+ float: left;
+}
+nav a {
+ display: block;
+ padding: 4.5em 10px 10px 10px;
+}
+nav a:hover {
+ background-color: #d3d3d3;
+ color: #FFF;
+}
+nav li.selected a {
+ background-color: #15A9DB;
+ color: #FFF;
+}
+
+header .header_box {
+ padding-top: 4.5em;
+}
+header h1 {
+ font-size: 1.5em;
+ line-height: 1em;
+ margin: 0;
+}
+header h2 {
+ font-size: 1em;
+ margin: .3em 0;
+ color: #DDD;
+}
+
+#content {
+ margin-top: 3em;
+}
+
+.pages {
+ font-family: sans-serif;
+ line-height: 2.5em;
+ margin: 4.5em 0 3em;
+ background-color: #F9F9F9;
+ color: #444;
+ border-radius: 5px;
+}
+.pages a.next_page {
+ float: right;
+ width: 140px;
+ text-align: center;
+ border-top-right-radius: 5px;
+ border-bottom-right-radius: 5px;
+ background-color: #EEE;
+}
+.pages a.prev_page {
+ float: left;
+ width: 140px;
+ text-align: center;
+ border-top-left-radius: 5px;
+ border-bottom-left-radius: 5px;
+ background-color: #EEE;
+}
+.pages a {
+ color: inherit;
+ border: none;
+}
+.pages a:hover {
+ background-color: #DDD;
+}
+.pages span {
+ display: block;
+ margin: 0 160px;
+ text-align: center;
+}
+
+code {
+ background-color: #F9F2F4;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ box-sizing: border-box;
+ color: #C7254E;
+ font-family: Monaco,Menlo,Consolas,"Courier New",monospace;
+ font-size: 12.6px;
+ line-height: 18px;
+ padding-bottom: 2px;
+ padding-left: 4px;
+ padding-right: 4px;
+ padding-top: 2px;
+ white-space: nowrap;
+}
+
+footer {
+ font-family: sans-serif;
+ line-height: 2.5em;
+ text-align: center;
+ color: #BBB;
+ margin: 3em 0;
+ border: 1px solid #EEE;
+ border-radius: 5px;
+}
+footer p { margin: 0; }
+
+.right { float: right; }
+
+.clear { clear: both; }
diff --git a/development/libs/barrel/docs/blue-penguin/templates/analytics.html b/development/libs/barrel/docs/blue-penguin/templates/analytics.html
new file mode 100644
index 000000000000..ba174fcc20a5
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/analytics.html
@@ -0,0 +1,11 @@
+{% if GOOGLE_ANALYTICS %}
+ <script type="text/javascript">
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
+ </script>
+ <script type="text/javascript">
+ try {
+ var pageTracker = _gat._getTracker("{{GOOGLE_ANALYTICS}}");
+ pageTracker._trackPageview();
+ } catch(err) {}</script>
+{% endif %} \ No newline at end of file
diff --git a/development/libs/barrel/docs/blue-penguin/templates/archives.html b/development/libs/barrel/docs/blue-penguin/templates/archives.html
new file mode 100644
index 000000000000..73c53bae8b09
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/archives.html
@@ -0,0 +1,22 @@
+{% extends "base.html" %}
+
+{% block title %}{{ SITENAME }} | Archives{% endblock %}
+{% block content %}
+
+ <h1>Archives</h1>
+
+ {# based on http://stackoverflow.com/questions/12764291/jinja2-group-by-month-year #}
+
+ {% for year, year_group in dates|groupby('date.year')|reverse %}
+ {% for month, month_group in year_group|groupby('date.month')|reverse %}
+ <h4 class="date">{{ (month_group|first).date|strftime('%b %Y') }}</h4>
+ <div class="post archives">
+ <ul>
+ {% for article in month_group %}
+ <li><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></li>
+ {% endfor %}
+ </ul>
+ </div>
+ {% endfor %}
+ {% endfor %}
+{% endblock %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/article.html b/development/libs/barrel/docs/blue-penguin/templates/article.html
new file mode 100644
index 000000000000..d8e7071e9ebf
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/article.html
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+
+{% block head %}
+ {{ super() }}
+ {% if article.tags %}
+ <meta name="keywords" content="{{ article.tags|join(",") }}" />
+ {% endif %}
+ {% if article.description %}
+ <meta name="description" content="{{ article.description }}" />
+ {% endif %}
+{% endblock %}
+
+{% block title %}{{ SITENAME }} | {{ article.title }}{% endblock %}
+
+{% block content %}
+{% include "article_stub.html" %}
+{% endblock %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/article_stub.html b/development/libs/barrel/docs/blue-penguin/templates/article_stub.html
new file mode 100644
index 000000000000..935235592889
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/article_stub.html
@@ -0,0 +1,37 @@
+ {% if not articles_page or first_article_of_day %}
+ <h4 class="date">{{ article.date.strftime("%b %d, %Y") }}</h4>
+ {% endif %}
+
+ <article class="post">
+ {% if article.title %}
+ <h2 class="title">
+ <a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permanent Link to &quot;{{ article.title }}&quot;">{{ article.title }}</a>
+ </h2>
+ {% endif %}
+
+ {% if not articles_page %}
+ {% include "translations.html" %}
+ {% endif %}
+
+
+ {{ article.content }}
+ <div class="clear"></div>
+
+ <div class="info">
+ <a href="{{ SITEURL }}/{{ article.url }}">posted at {{ article.date.strftime("%H:%M") }}</a>
+ {% if article.category.name != "misc" %}
+ &nbsp;&middot;&nbsp;<a href="{{ SITEURL }}/{{ article.category.url }}" rel="tag">{{ article.category }}</a>
+ {% endif %}
+ {% if article.tags %}
+ &nbsp;&middot;
+ {% for t in article.tags %}
+ &nbsp;<a href="{{ SITEURL }}/{{ t.url }}" class="tags{% if tag and tag.name == t.name %} selected{% endif %}">{{ t }}</a>
+ {% endfor %}
+ {% endif %}
+ </div>
+ {% if articles_page and DISQUS_SITENAME %}
+ <a href="{{ SITEURL }}/{{ article.url }}#disqus_thread">Click to read and post comments</a>
+ {% else %}
+ {% include "disqus.html" %}
+ {% endif %}
+ </article>
diff --git a/development/libs/barrel/docs/blue-penguin/templates/author.html b/development/libs/barrel/docs/blue-penguin/templates/author.html
new file mode 100644
index 000000000000..b9ff61e6c048
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/author.html
@@ -0,0 +1,7 @@
+{% extends "index.html" %}
+
+{% block title %}{{ SITENAME }} | Articles by {{ author }}{% endblock %}
+{% block ephemeral_nav %}
+
+ {{ ephemeral_nav_link(author, output_file, True) }}
+{% endblock %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/base.html b/development/libs/barrel/docs/blue-penguin/templates/base.html
new file mode 100644
index 000000000000..378b12c2b0cf
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/base.html
@@ -0,0 +1,105 @@
+{% macro ephemeral_nav_link(what, where, selected=False) -%}
+<li class="ephemeral{% if selected %} selected{% endif %}"><a href="{{ SITEURL }}/{{ where }}">{{what}}</a></li>
+{%- endmacro -%}
+
+<!DOCTYPE html>
+<html lang="{{ DEFAULT_LANG }}">
+<head>
+ {% block head %}
+ <meta charset="utf-8" />
+ <meta name="viewport" content="width=device-width,initial-scale=1">
+ <title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
+ {# favicon #}
+ <link rel="shortcut icon" type="image/png" href="{{ SITEURL }}/favicon.png">
+ <link rel="shortcut icon" type="image/x-icon" href="{{ SITEURL }}/favicon.ico">
+ {% if FEED_ALL_ATOM %}
+ <link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
+ {% endif %}
+ {% if FEED_ALL_RSS %}
+ <link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
+ {% endif %}
+ {% if FEED_ATOM %}
+ <link href="{{ FEED_DOMAIN }}/{{ FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
+ {% endif %}
+ {% if FEED_RSS %}
+ <link href="{{ FEED_DOMAIN }}/{{ FEED_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
+ {% endif %}
+ {% if CATEGORY_FEED_ATOM and category %}
+ <link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM.format(slug=category.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
+ {% endif %}
+ {% if CATEGORY_FEED_RSS and category %}
+ <link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS.format(slug=category.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
+ {% endif %}
+ {% if TAG_FEED_ATOM and tag %}
+ <link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM.format(slug=tag.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
+ {% endif %}
+ {% if TAG_FEED_RSS and tag %}
+ <link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS.format(slug=tag.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
+ {% endif %}
+ <link rel="stylesheet" href="{{ SITEURL }}/theme/css/screen.css" type="text/css" />
+ <link rel="stylesheet" href="{{ SITEURL }}/theme/css/pygments.css" type="text/css" />
+ <link rel="stylesheet" href="{{ SITEURL }}/theme/css/print.css" type="text/css" media="print" />
+ <meta name="generator" content="Pelican" />
+ <meta name="description" content="{{ SITEDESCRIPTION }}" />
+ <meta name="author" content="{{ AUTHOR }}" />
+ {% endblock head %}
+</head>
+<body>
+ {% if DISPLAY_HEADER or DISPLAY_HEADER is not defined %}
+ <header>
+ {% if DISPLAY_MENU or DISPLAY_MENU is not defined %}
+ <nav>
+ <ul>
+ <!-- {% block ephemeral_nav %}{% endblock %} -->
+ {% if DISPLAY_HOME or DISPLAY_HOME is not defined %}
+ <li{% if output_file == "index.html" %} class="selected"{% endif %}><a href="{{ SITEURL }}/">Home</a></li>
+ {% endif %}
+ {% if DISPLAY_PAGES_ON_MENU %}
+ {% for p in pages %}
+ <li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
+ {% endfor %}
+ {% endif %}
+ {% for title, link in MENUITEMS %}
+ <li><a href="{{ link }}">{{ title }}</a></li>
+ {% endfor %}
+ {% for name, link, file in MENU_INTERNAL_PAGES %}
+ <li{% if output_file == file %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ link }}">{{ name }}</a></li>
+ {% endfor %}
+ </ul>
+ </nav>
+ {% endif %}
+ <div class="header_box">
+ <h1><a href="{{ SITEURL }}/">{{ SITENAME }}</a></h1>
+ {% if SITESUBTITLE %}
+ <h2>{{ SITESUBTITLE }}</h2>
+ {% endif %}
+ </div>
+ </header>
+ {% endif %}
+ <div id="wrapper">
+ <div id="content">
+ {%- block content -%}{%- endblock %}
+
+ {% if DISPLAY_FOOTER or DISPLAY_FOOTER is not defined %}
+ <div class="clear"></div>
+ <footer>
+ <p>
+ <a href="https://github.com/jody-frankowski/blue-penguin">Blue Penguin</a> Theme
+ &middot;
+ Powered by <a href="http://getpelican.com">Pelican</a>
+ {% if FEED_ALL_ATOM %}
+ &middot;
+ <a href="{{ SITEURL }}/{{ FEED_ALL_ATOM }}" rel="alternate">Atom Feed</a>
+ {% endif %}
+ {% if FEED_ALL_RSS %}
+ &middot;
+ <a href="{{ SITEURL }}/{{ FEED_ALL_RSS }}" rel="alternate">Rss Feed</a>
+ {% endif %}
+ </footer>
+ {% endif %}
+ </div>
+ <div class="clear"></div>
+ </div>
+{% include 'analytics.html' %}
+</body>
+</html>
diff --git a/development/libs/barrel/docs/blue-penguin/templates/category.html b/development/libs/barrel/docs/blue-penguin/templates/category.html
new file mode 100644
index 000000000000..23dea1f19d73
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/category.html
@@ -0,0 +1,6 @@
+{% extends "index.html" %}
+{% block title %}{{ SITENAME }} | articles in the "{{ category }}" category{% if articles_page.number != 0 %} | Page {{ articles_page.number }}{% endif %}{% endblock %}
+{% block ephemeral_nav %}
+
+ {{ ephemeral_nav_link(category, output_file, True) }}
+{% endblock %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/disqus.html b/development/libs/barrel/docs/blue-penguin/templates/disqus.html
new file mode 100644
index 000000000000..b4093e556b69
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/disqus.html
@@ -0,0 +1,12 @@
+{% if DISQUS_SITENAME %}
+<div id="disqus_thread"></div>
+<script type="text/javascript">
+ var disqus_shortname = '{{ DISQUS_SITENAME }}';
+ (function() {
+ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+</script>
+<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
+{% endif %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/index.html b/development/libs/barrel/docs/blue-penguin/templates/index.html
new file mode 100644
index 000000000000..b8b40f4c045b
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/index.html
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+
+{% block title %}{{ SITENAME }}{% if articles_page.number != 1 %} | Page {{ articles_page.number }}{% endif %}{% endblock %}
+{% block content %}
+{% set date = None %}
+{% for article in articles_page.object_list %}
+{% if date != article.date.date() %}
+{% set first_article_of_day = True %}
+{% else %}
+{% set first_article_of_day = False %}
+{% endif %}
+{% set date = article.date.date() %}
+{% include "article_stub.html" %}
+{% endfor %}
+
+{% include "pagination.html" %}
+{% endblock %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/page.html b/development/libs/barrel/docs/blue-penguin/templates/page.html
new file mode 100644
index 000000000000..94b9610059cf
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/page.html
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+
+{% block content %}
+
+ <div class="page">
+ {{ page.content }}
+ </div>
+{% endblock %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/pagination.html b/development/libs/barrel/docs/blue-penguin/templates/pagination.html
new file mode 100644
index 000000000000..69eac104e99a
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/pagination.html
@@ -0,0 +1,38 @@
+{# Use PAGINATION_PATTERNS or pagination may break #}
+{% if DEFAULT_PAGINATION and (articles_page.has_previous() or articles_page.has_next()) %}
+
+ <div class="clear"></div>
+ <div class="pages">
+ {% if PAGINATION_PATTERNS[0][0] != 0 %}
+ {%- if articles_page.has_previous() %}
+ {% if articles_page.previous_page_number() == 1 %}
+
+ <a href="{{ SITEURL }}/" class="prev_page">&larr;&nbsp;Previous</a>
+ {%- else %}
+
+ <a href="{{ SITEURL }}/page/{{ articles_page.previous_page_number() }}" class="prev_page">&larr;&nbsp;Previous</a>
+ {%- endif %}
+ {%- endif %}
+ {%- if articles_page.has_next() %}
+
+ <a href="{{ SITEURL }}/page/{{ articles_page.next_page_number() }}" class="next_page">Next&nbsp;&rarr;</a>
+ {%- endif %}
+ {% else %}
+ {%- if articles_page.has_previous() %}
+ {% if articles_page.previous_page_number() == 1 %}
+
+ <a href="{{ SITEURL }}/{{ page_name }}.html" class="prev_page">&larr;&nbsp;Previous</a>
+ {%- else %}
+
+ <a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() }}.html" class="prev_page">&larr;&nbsp;Previous</a>
+ {%- endif %}
+ {%- endif %}
+ {%- if articles_page.has_next() %}
+
+ <a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html" class="next_page">Next&nbsp;&rarr;</a>
+ {%- endif %}
+ {% endif %}
+
+ <span>Page {{ articles_page.number }} of {{ articles_paginator.num_pages }}</span>
+ </div>
+{% endif %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/tag.html b/development/libs/barrel/docs/blue-penguin/templates/tag.html
new file mode 100644
index 000000000000..92c3439253d9
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/tag.html
@@ -0,0 +1,5 @@
+{% extends "index.html" %}
+{% block title %}{{ SITENAME }} | articles tagged "{{ tag }}"{% if articles_page.number != 1 %} | Page {{ articles_page.number }}{% endif %}{% endblock %}
+{% block ephemeral_nav %}
+ {{ ephemeral_nav_link(tag, output_file, True) }}
+{% endblock %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/tags.html b/development/libs/barrel/docs/blue-penguin/templates/tags.html
new file mode 100644
index 000000000000..ac657229bac6
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/tags.html
@@ -0,0 +1,8 @@
+{% extends "base.html" %}
+{% block content %}
+<ul>
+ {% for tag, articles in tags %}
+ <li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a></li>
+ {% endfor %}
+</ul>
+{% endblock %}
diff --git a/development/libs/barrel/docs/blue-penguin/templates/translations.html b/development/libs/barrel/docs/blue-penguin/templates/translations.html
new file mode 100644
index 000000000000..f0a0fa2af3f9
--- /dev/null
+++ b/development/libs/barrel/docs/blue-penguin/templates/translations.html
@@ -0,0 +1,6 @@
+{% if article.translations %}
+Translations:
+ {% for translation in article.translations %}
+ <a href="{{ SITEURL }}/{{ translation.url }}">{{ translation.lang }}</a>
+ {% endfor %}
+{% endif %} \ No newline at end of file
diff --git a/development/libs/barrel/docs/content/blog/001_hello_barrel.md b/development/libs/barrel/docs/content/blog/001_hello_barrel.md
new file mode 100644
index 000000000000..ddb7976aa645
--- /dev/null
+++ b/development/libs/barrel/docs/content/blog/001_hello_barrel.md
@@ -0,0 +1,59 @@
+Title: Releasing 0.5.0
+Category: Blog
+Date: 2019-03-21 21:30
+
+So `barrel.rs` has a blog now 🎉!
+
+Today we are also happy to announce the release of version `0.5.0`.
+A lot of work as gone into this release and breaks the API in a few ways.
+This post will quickly highlight new features and also changes to the API.
+
+### New type system
+
+This release adds `barrel::types` which replaces the old `Column` types.
+While types are still enums with different type variants, the creation
+is now much more streamlined with a builder-style API.
+
+```rust
+types::varchar(255)
+ .nullable(true)
+ .default("Alice")
+```
+
+This change allows us to more easily support database specific types
+in the future and makes it easier for you to create your own custom
+type builders.
+Check out the `barrel::types` documentation for details.
+
+### Explicit IDs for tables
+
+Since `0.2.0` a new table had an implicit `PRIMARY` key called `id`.
+It was brought up several times that `barrel` should not have implicit behaviour like this
+and and as such we have no reverted this!
+
+Now you will need to create a new `id` field explicitly
+
+```rust
+table.add_column("id", types::primary())
+```
+
+We're still evaluating the option to add a `table.id()` function
+(or similar) to make this process easier.
+
+### Various changes
+
+The `DatabaseExecutor` was renamed to `SqlRunner`,
+there were several bug-fixes around `diesel` integration as well as
+the table API.
+
+Most importantly, you will need a very recent `diesel` version
+which then depends on `0.5.0`.
+If you're using barrel currently, nothing will change until you update.
+Be aware that your existing migrations will need adjustment if you plan
+on re-running them!
+
+---
+
+All in all, this is a pretty big step forward.
+We're also tracking some things to implement on a roadmap
+for an upcoming `1.0.0` release later this year (maybe!)
diff --git a/development/libs/barrel/docs/content/images/logo.svg b/development/libs/barrel/docs/content/images/logo.svg
new file mode 100644
index 000000000000..1f69f6d2e204
--- /dev/null
+++ b/development/libs/barrel/docs/content/images/logo.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="10cm" height="4.5cm" viewBox="0 0 100 44.999997" version="1.1" id="svg8" inkscape:version="0.92.3 (2405546, 2018-03-11)">
+ <defs id="defs2"/>
+
+ <metadata id="metadata5">
+
+ </metadata>
+ <g inkscape:label="Layer 1" id="layer1" transform="translate(0,-252.00026)">
+ <g style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:20.37609673px;line-height:1.25;font-family:Quicksand;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.50940239" id="text968">
+ <path d="m 41.584764,271.53284 q 1.445345,0 2.605424,0.70366 1.179097,0.68464 1.844716,1.90177 0.684637,1.19811 0.684637,2.68149 0,1.48338 -0.703655,2.70051 -0.684637,1.21714 -1.901769,1.92079 -1.198114,0.68464 -2.681494,0.68464 -1.48338,0 -2.700512,-0.68464 -1.198115,-0.70365 -1.901769,-1.92079 -0.684637,-1.21713 -0.684637,-2.70051 v -4.46916 q 0,-0.1141 0.01902,-0.17115 v -4.25997 q 0,-0.3233 0.190177,-0.53249 0.209195,-0.2092 0.532496,-0.2092 0.3233,0 0.532495,0.2092 0.209195,0.20919 0.209195,0.53249 v 5.57219 q 0.665619,-0.91285 1.692574,-1.42633 1.026955,-0.5325 2.263105,-0.5325 z m -0.152141,9.26162 q 1.084008,0 1.958822,-0.51348 0.893831,-0.53249 1.388291,-1.42633 0.513478,-0.91284 0.513478,-2.03489 0,-1.12204 -0.513478,-2.01587 -0.49446,-0.91285 -1.388291,-1.42633 -0.874814,-0.51348 -1.958822,-0.51348 -1.502398,0 -2.567389,0.95089 -1.045973,0.95088 -1.236149,2.43426 0,0.0571 -0.01902,0.0951 -0.01902,0.15214 -0.01902,0.47544 0,1.12205 0.49446,2.03489 0.513478,0.89384 1.388292,1.42633 0.874813,0.51348 1.958822,0.51348 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.01769066px;font-family:Comfortaa;stroke-width:0.50940239" id="path841"/>
+ <path d="m 54.327211,271.53284 q 1.48338,0 2.681494,0.70366 1.217132,0.68464 1.901769,1.90177 0.703655,1.21713 0.703655,2.70051 v 4.46916 q 0,0.30428 -0.209195,0.51347 -0.209194,0.2092 -0.532495,0.2092 -0.323301,0 -0.532495,-0.19018 -0.209195,-0.20919 -0.209195,-0.53249 v -1.14106 q -0.665619,0.91284 -1.692574,1.44534 -1.026956,0.51348 -2.263106,0.51348 -1.445344,0 -2.624441,-0.68464 -1.160079,-0.70365 -1.844716,-1.90177 -0.665619,-1.21713 -0.665619,-2.70051 0,-1.48338 0.684637,-2.70051 0.703654,-1.21713 1.901769,-1.90177 1.217132,-0.70366 2.700512,-0.70366 z m 0,9.26162 q 1.084008,0 1.958822,-0.51348 0.874814,-0.51348 1.369274,-1.40731 0.513477,-0.91285 0.513477,-2.03489 0,-1.12204 -0.513477,-2.01588 -0.49446,-0.91284 -1.369274,-1.42632 -0.874814,-0.5325 -1.958822,-0.5325 -1.084008,0 -1.97784,0.5325 -0.874814,0.51348 -1.388291,1.42632 -0.49446,0.89384 -0.49446,2.01588 0,1.12204 0.49446,2.03489 0.513477,0.89383 1.388291,1.40731 0.893832,0.51348 1.97784,0.51348 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.01769066px;font-family:Comfortaa;stroke-width:0.50940239" id="path843"/>
+ <path d="m 67.178119,271.51383 q 0.798743,0 1.255168,0.20919 0.475442,0.2092 0.475442,0.58955 0,0.11411 -0.01902,0.17116 -0.07607,0.26625 -0.24723,0.36133 -0.152141,0.0951 -0.437407,0.0951 -0.171159,0 -0.589548,-0.038 -0.152141,-0.019 -0.456425,-0.019 -1.426326,0 -2.339175,0.76071 -0.893832,0.76071 -0.893832,1.97784 v 5.68629 q 0,0.34232 -0.190177,0.53249 -0.190177,0.19018 -0.532495,0.19018 -0.342319,0 -0.532496,-0.19018 -0.190176,-0.19017 -0.190176,-0.53249 v -8.95734 q 0,-0.34231 0.190176,-0.53249 0.190177,-0.19018 0.532496,-0.19018 0.342318,0 0.532495,0.19018 0.190177,0.19018 0.190177,0.53249 v 0.83678 q 0.551513,-0.79874 1.407309,-1.23615 0.855796,-0.4374 1.844716,-0.4374 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.01769066px;font-family:Comfortaa;stroke-width:0.50940239" id="path845"/>
+ <path d="m 75.90694,271.51383 q 0.798743,0 1.255168,0.20919 0.475442,0.2092 0.475442,0.58955 0,0.11411 -0.01902,0.17116 -0.07607,0.26625 -0.24723,0.36133 -0.152141,0.0951 -0.437407,0.0951 -0.171159,0 -0.589548,-0.038 -0.152142,-0.019 -0.456425,-0.019 -1.426327,0 -2.339176,0.76071 -0.893831,0.76071 -0.893831,1.97784 v 5.68629 q 0,0.34232 -0.190177,0.53249 -0.190177,0.19018 -0.532495,0.19018 -0.342319,0 -0.532496,-0.19018 -0.190177,-0.19017 -0.190177,-0.53249 v -8.95734 q 0,-0.34231 0.190177,-0.53249 0.190177,-0.19018 0.532496,-0.19018 0.342318,0 0.532495,0.19018 0.190177,0.19018 0.190177,0.53249 v 0.83678 q 0.551513,-0.79874 1.407309,-1.23615 0.855796,-0.4374 1.844716,-0.4374 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.01769066px;font-family:Comfortaa;stroke-width:0.50940239" id="path847"/>
+ <path d="m 83.366629,271.53284 q 1.407309,0 2.491318,0.66562 1.084008,0.6466 1.673556,1.80668 0.608567,1.16008 0.608567,2.64346 0,0.30429 -0.190177,0.49446 -0.190177,0.17116 -0.49446,0.17116 h -7.683147 q 0.152141,1.55945 1.217132,2.52935 1.064991,0.96991 2.662477,0.96991 0.684636,0 1.369273,-0.22822 0.703655,-0.24723 1.122044,-0.60856 0.24723,-0.19018 0.513478,-0.19018 0.209194,0 0.418389,0.15214 0.24723,0.22822 0.24723,0.51348 0,0.24723 -0.209195,0.43741 -0.627584,0.53249 -1.597486,0.89383 -0.969902,0.34232 -1.863733,0.34232 -1.521416,0 -2.71953,-0.66562 -1.198115,-0.68464 -1.882752,-1.88275 -0.665619,-1.21714 -0.665619,-2.73855 0,-1.54043 0.627584,-2.73855 0.646602,-1.21713 1.768645,-1.88275 1.141062,-0.68464 2.586406,-0.68464 z m 0,1.31222 q -1.445344,0 -2.396229,0.89384 -0.950884,0.89383 -1.160079,2.35819 h 6.960475 q -0.152142,-1.46436 -1.064991,-2.35819 -0.912849,-0.89384 -2.339176,-0.89384 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.01769066px;font-family:Comfortaa;stroke-width:0.50940239" id="path849"/>
+ <path d="m 92.842788,282.03061 q -1.16008,0 -1.90177,-0.91285 -0.722672,-0.93187 -0.722672,-2.37721 v -10.84009 q 0,-0.3233 0.209195,-0.51347 0.209194,-0.2092 0.513477,-0.2092 0.323301,0 0.513478,0.2092 0.209195,0.19017 0.209195,0.51347 v 10.84009 q 0,0.81776 0.3233,1.33124 0.342319,0.51347 0.855797,0.51347 h 0.475442 q 0.285265,0 0.456424,0.2092 0.17116,0.19018 0.17116,0.51348 0,0.3233 -0.24723,0.53249 -0.228213,0.19018 -0.608567,0.19018 z" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.01769066px;font-family:Comfortaa;stroke-width:0.50940239" id="path851"/>
+ </g>
+ <g id="g839" transform="translate(0,0.0917458)">
+ <rect y="256.67191" x="3.3755143" height="36.679298" width="24.888735" id="rect815-6-7" style="opacity:1;fill:#666666;fill-opacity:1;stroke:none;stroke-width:2.76557231;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.64878049;"/>
+ <rect y="255.34891" x="2.7532961" height="1.5555459" width="26.133173" id="rect815" style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.7789228;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.64878049;"/>
+ <rect y="292.68201" x="2.7532961" height="1.5555459" width="26.133173" id="rect815-3" style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.7789228;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.64878049;"/>
+ <rect y="268.10437" x="3.3755143" height="0.62221843" width="24.888735" id="rect815-5" style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.74082875;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.64878049;"/>
+ <rect y="281.17096" x="3.3755143" height="0.62221843" width="24.888735" id="rect815-5-5" style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.74082875;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.64878049;"/>
+ <rect y="255.37721" x="16.446571" height="38.852245" width="11.822151" id="rect815-6-8" style="opacity:0.55;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:2.68609262;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.64878049;"/>
+ <rect transform="rotate(-45)" y="200.44443" x="-188.45515" height="11.199931" width="11.199931" id="rect909" style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:#868686;stroke-width:0.62221843;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;"/>
+ <text id="text913" y="276.47345" x="10.648504" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:12.76389503px;line-height:1.25;font-family:Quicksand;letter-spacing:0px;word-spacing:0px;fill:#202020;fill-opacity:1;stroke:none;stroke-width:0.3190974"><tspan style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.1055584px;font-family:Quicksand;fill:#202020;fill-opacity:1;stroke-width:0.3190974" y="276.47345" x="10.648504" id="tspan911" sodipodi:role="line">SQL</tspan></text>
+ <rect y="254.88242" x="21.650042" height="1.5555459" width="2.9549315" id="rect815-4" style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.26192206;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.64878049;"/>
+ <rect y="255.37721" x="16.446571" height="38.852242" width="11.822153" id="rect815-6-8-0" style="opacity:0.1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:2.68609262;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.64878049;"/>
+ </g>
+ </g>
+</svg>
diff --git a/development/libs/barrel/docs/content/pages/home.md b/development/libs/barrel/docs/content/pages/home.md
new file mode 100644
index 000000000000..8e1b75188088
--- /dev/null
+++ b/development/libs/barrel/docs/content/pages/home.md
@@ -0,0 +1,74 @@
+Title: barrel.rs
+Subtitle: NULL
+URL: /
+Save_As: index.html
+Template: page
+
+![](images/logo.svg)
+
+A powerful schema migration builder, that let's you write your SQL migrations in Rust.
+
+`barrel` makes writing migrations for different databases as easy as possible.
+It provides you with a common API over SQL,
+with certain features only provided for database specific implementations.
+This way you can focus on your Rust code, and stop worrying about SQL.
+
+## Example
+
+The following example will help you get started
+
+```rust
+use barrel::{types, Migration, Pg};
+use barrel::backend::Pg;
+
+fn main() {
+ let mut m = Migration::new();
+
+ m.create_table("users", |t| {
+ t.add_column("name", types::varchar(255));
+ t.add_column("age", types::integer());
+ t.add_column("owns_plushy_sharks", types::boolean());
+ });
+
+ println!("{}", m.make::<Pg>());
+}
+```
+
+## Using Diesel
+
+Since `diesel 1.2.0` it's possible to now use `barrel` for migrations with `diesel`. A guide with some more information on how to get started can be found [here](https://github.com/spacekookie/barrel/blob/master/guides/diesel-setup.md)
+
+### Migration guide
+
+If you've been using `barrel` to write migrations for `diesel` before the `0.5.0` release,
+some migration of your migrations will be required.
+Since `0.5.0` the way types are constructed changed.
+Instead of constructing a type with `Types::VarChar(255)` (an enum variant),
+the types are now provided by a module called `types` and builder functions.
+The same type would now be `types::varchar(255)` (a function call),
+which then returns a `Type` enum.
+
+You can also directly created your own `Type` builders this way.
+Check the docs for details!
+
+## Unstable features
+
+Starting with `v0.2.4` `barrel` now has an `unstable` feature flag which will hide features and breaking changes that are in-development at the time of a minor or patch release. You can use these features if you so desire, but be aware that their usage will change more rapidely between versions (even patches) and their usage will be badly documented.
+
+## License
+
+`barrel` is free software: you can redistribute it and/or modify it
+under the terms of the MIT Public License.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+See the MIT Public License for more details.
+
+## Conduct
+
+In the interest of fostering an open and welcoming environment,
+the `barrel` project pledges to making participation a harassment-free experience for everyone.
+See [Code of Conduct](code_of_conduct.md) for details.
+In case of violations, e-mail [kookie@spacekookie.de](mailto:kookie@spacekookie.de).
+
diff --git a/development/libs/barrel/docs/develop_server.sh b/development/libs/barrel/docs/develop_server.sh
new file mode 100755
index 000000000000..8c2f27f0ac28
--- /dev/null
+++ b/development/libs/barrel/docs/develop_server.sh
@@ -0,0 +1,103 @@
+#!/usr/bin/env bash
+##
+# This section should match your Makefile
+##
+PY=${PY:-python}
+PELICAN=${PELICAN:-pelican}
+PELICANOPTS=
+
+BASEDIR=$(pwd)
+INPUTDIR=$BASEDIR/content
+OUTPUTDIR=$BASEDIR/output
+CONFFILE=$BASEDIR/pelicanconf.py
+
+###
+# Don't change stuff below here unless you are sure
+###
+
+SRV_PID=$BASEDIR/srv.pid
+PELICAN_PID=$BASEDIR/pelican.pid
+
+function usage(){
+ echo "usage: $0 (stop) (start) (restart) [port]"
+ echo "This starts Pelican in debug and reload mode and then launches"
+ echo "an HTTP server to help site development. It doesn't read"
+ echo "your Pelican settings, so if you edit any paths in your Makefile"
+ echo "you will need to edit your settings as well."
+ exit 3
+}
+
+function alive() {
+ kill -0 $1 >/dev/null 2>&1
+}
+
+function shut_down(){
+ PID=$(cat $SRV_PID)
+ if [[ $? -eq 0 ]]; then
+ if alive $PID; then
+ echo "Stopping HTTP server"
+ kill $PID
+ else
+ echo "Stale PID, deleting"
+ fi
+ rm $SRV_PID
+ else
+ echo "HTTP server PIDFile not found"
+ fi
+
+ PID=$(cat $PELICAN_PID)
+ if [[ $? -eq 0 ]]; then
+ if alive $PID; then
+ echo "Killing Pelican"
+ kill $PID
+ else
+ echo "Stale PID, deleting"
+ fi
+ rm $PELICAN_PID
+ else
+ echo "Pelican PIDFile not found"
+ fi
+}
+
+function start_up(){
+ local port=$1
+ echo "Starting up Pelican and HTTP server"
+ shift
+ $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
+ pelican_pid=$!
+ echo $pelican_pid > $PELICAN_PID
+ cd $OUTPUTDIR
+ $PY -m pelican.server $port &
+ srv_pid=$!
+ echo $srv_pid > $SRV_PID
+ cd $BASEDIR
+ sleep 1
+ if ! alive $pelican_pid ; then
+ echo "Pelican didn't start. Is the Pelican package installed?"
+ return 1
+ elif ! alive $srv_pid ; then
+ echo "The HTTP server didn't start. Is there another service using port" $port "?"
+ return 1
+ fi
+ echo 'Pelican and HTTP server processes now running in background.'
+}
+
+###
+# MAIN
+###
+[[ ($# -eq 0) || ($# -gt 2) ]] && usage
+port=''
+[[ $# -eq 2 ]] && port=$2
+
+if [[ $1 == "stop" ]]; then
+ shut_down
+elif [[ $1 == "restart" ]]; then
+ shut_down
+ start_up $port
+elif [[ $1 == "start" ]]; then
+ if ! start_up $port; then
+ shut_down
+ fi
+else
+ usage
+fi
diff --git a/development/libs/barrel/docs/fabfile.py b/development/libs/barrel/docs/fabfile.py
new file mode 100755
index 000000000000..d46a16e0bc39
--- /dev/null
+++ b/development/libs/barrel/docs/fabfile.py
@@ -0,0 +1,94 @@
+from fabric.api import *
+import fabric.contrib.project as project
+import os
+import shutil
+import sys
+import SocketServer
+
+from pelican.server import ComplexHTTPRequestHandler
+
+# Local path configuration (can be absolute or relative to fabfile)
+env.deploy_path = 'output'
+DEPLOY_PATH = env.deploy_path
+
+# Remote server configuration
+production = 'spacekookie@lonelyrobot.io:22'
+dest_path = '/var/www'
+
+# Rackspace Cloud Files configuration settings
+env.cloudfiles_username = 'my_rackspace_username'
+env.cloudfiles_api_key = 'my_rackspace_api_key'
+env.cloudfiles_container = 'my_cloudfiles_container'
+
+# Github Pages configuration
+env.github_pages_branch = "gh-pages"
+
+# Port for `serve`
+PORT = 4000
+
+def clean():
+ """Remove generated files"""
+ if os.path.isdir(DEPLOY_PATH):
+ shutil.rmtree(DEPLOY_PATH)
+ os.makedirs(DEPLOY_PATH)
+
+def build():
+ """Build local version of site"""
+ local('pelican -s pelicanconf.py')
+
+def rebuild():
+ """`clean` then `build`"""
+ clean()
+ build()
+
+def regenerate():
+ """Automatically regenerate site upon file modification"""
+ local('pelican -r -s pelicanconf.py')
+
+def serve():
+ """Serve site at http://localhost:4000/"""
+ os.chdir(env.deploy_path)
+
+ class AddressReuseTCPServer(SocketServer.TCPServer):
+ allow_reuse_address = True
+
+ server = AddressReuseTCPServer(('', PORT), ComplexHTTPRequestHandler)
+
+ sys.stderr.write('Serving on port {0} ...\n'.format(PORT))
+ server.serve_forever()
+
+def reserve():
+ """`build`, then `serve`"""
+ build()
+ serve()
+
+def preview():
+ """Build production version of site"""
+ local('pelican -s publishconf.py')
+
+def cf_upload():
+ """Publish to Rackspace Cloud Files"""
+ rebuild()
+ with lcd(DEPLOY_PATH):
+ local('swift -v -A https://auth.api.rackspacecloud.com/v1.0 '
+ '-U {cloudfiles_username} '
+ '-K {cloudfiles_api_key} '
+ 'upload -c {cloudfiles_container} .'.format(**env))
+
+@hosts(production)
+def publish():
+ """Publish to production via rsync"""
+ local('pelican -s publishconf.py')
+ project.rsync_project(
+ remote_dir=dest_path,
+ exclude=".DS_Store",
+ local_dir=DEPLOY_PATH.rstrip('/') + '/',
+ delete=True,
+ extra_opts='-c',
+ )
+
+def gh_pages():
+ """Publish to GitHub Pages"""
+ rebuild()
+ local("ghp-import -b {github_pages_branch} {deploy_path}".format(**env))
+ local("git push origin {github_pages_branch}".format(**env))
diff --git a/development/libs/barrel/docs/pelicanconf.py b/development/libs/barrel/docs/pelicanconf.py
new file mode 100755
index 000000000000..0d88a499ce4a
--- /dev/null
+++ b/development/libs/barrel/docs/pelicanconf.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*- #
+from __future__ import unicode_literals
+
+AUTHOR = 'Squirrel People'
+SITENAME = 'barrel.rs'
+SITEURL = 'https://rust-db.github.io/barrel'
+
+THEME = 'blue-penguin'
+
+EXTRA_PATH_METADATA = {
+ 'favicon.ico': {'path': 'favicon.ico'}
+}
+
+TEMPLATE_DEBUG = True
+DEBUG = True
+READ_TIME = 180
+
+PATH = 'content'
+STATIC_PATHS = ['images']
+SITE_LOGO = 'favicon.ico'
+
+#############################################
+#############################################
+
+DEFAULT_CATEGORY = 'Blog'
+DEFAULT_DATE = 'fs'
+
+DISPLAY_CATEGORIES_ON_MENU = False
+DISPLAY_PAGES_ON_MENU = False
+
+# use those if you want pelican standard pages to appear in your menu
+MENU_INTERNAL_PAGES = (
+ # ('Tags', TAGS_URL, TAGS_SAVE_AS),
+ # ('Authors', AUTHORS_URL, AUTHORS_SAVE_AS),
+ ('Blog', 'blog/', 'blog/index.html'),
+ # ('Archives', ARCHIVES_URL, ARCHIVES_SAVE_AS),
+)
+
+MENUITEMS = (
+)
+
+ARTICLE_URL = '{category}/{slug}'
+ARTICLE_SAVE_AS = '{category}/{slug}/index.html'
+
+PAGE_URL = '{slug}'
+PAGE_SAVE_AS = '{slug}/index.html'
+
+CATEGORY_URL = '{slug}'
+CATEGORY_SAVE_AS = '{slug}/index.html'
+
+TAG_URL = '{slug}'
+TAG_SAVE_AS = '{slug}/index.html'
+
+#############################################
+#############################################
+
+TIMEZONE = 'UTC'
+DEFAULT_LANG = 'en'
+LOCALE = 'C'
+DEFAULT_DATE_FORMAT = '%Y-%m-%d'
+
+# Feed generation is usually not desired when developing
+FEED_ALL_ATOM = None
+CATEGORY_FEED_ATOM = None
+TRANSLATION_FEED_ATOM = None
+AUTHOR_FEED_ATOM = None
+
+FEED_RSS = 'rss.xml'
+CATEGORY_FEED_RSS = '%s/rss.xml'
+
+JINJA_ENVIRONMENT = {
+ 'extensions': ['webassets.ext.jinja2.AssetsExtension', 'jinja2.ext.with_']
+}
+
+# DEFAULT_PAGINATION = 20
+