Commit f235c81b authored by Raymond Wanyoike's avatar Raymond Wanyoike Committed by GitHub
Browse files

Merge pull request #54 from rwanyoike/master

pelican-alchemy Version 2.0 🔥🚀
parents 1e1cfb9b 73bbb4ad
The MIT License (MIT)
Copyright (c) 2014 Nairobi GNU/Linux Users Group
Copyright (c) 2016 Nairobi GNU/Linux Users Group
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
......
# pelican-alchemy
A theme for the [Pelican](http://getpelican.com) static site generator. A shameless rip off of @porterjamesj's [crowsfoot](http://github.com/porterjamesj/crowsfoot) theme.
Alchemy ✨ is a functional, clean, responsive theme for the [Pelican](http://getpelican.com) static site generator. It is heavily inspired by [crowsfoot](http://github.com/porterjamesj/crowsfoot), [clean-blog](https://github.com/BlackrockDigital/startbootstrap-clean-blog), and powered by [Bootstrap](https://github.com/twbs/bootstrap). Pull requests are welcome!
[Demo](https://nairobilug.github.io/pelican-alchemy/)!
## Screenshot
![pelican-alchemy](screenshot.png)
![Screenshot](screenshot.jpg "Screenshot")
## Features
- Bootstap 4 (currently v4.0.0-alpha.5)
- Core Pygments [styles](http://pygments.org/demo/)
- External analytics (Google Analytics, Gauges, Piwik)
- External comments (Disqus)
- Font Awesome font icons
- No external dependencies
- No JavaScript (excl. Analytics & Comments)
- Pelican `sitemap.xml` support
- realfavicongenerator [package](http://realfavicongenerator.net/blog/new-favicon-package-less-is-more/) support
- Simple Jinja2 templates
## Installation
`git clone git@github.com:nairobilug/pelican-alchemy.git`
First, clone the repo:
$ git clone git@github.com:nairobilug/pelican-alchemy.git
Then point the `THEME` variable in your Pelican config to the `alchemy` folder:
THEME = '/path/to/pelican-alchemy/alchemy'
### As a Submodule
In your Pelican site:
$ mkdir themes
$ git submodule add https://github.com/nairobilug/pelican-alchemy themes/pelican-alchemy
And Pelican config:
THEME = 'themes/pelican-alchemy/alchemy'
## Settings
Visit the [settings page](https://nairobilug.github.io/pelican-alchemy/pages/settings.html) for examples:
- **SITESUBTITLE**: Subtitle that appears in the header.
- **SITEIMAGE**: Image that appears in the header.
- **DESCRIPTION**: Index HTML head `<meta>` description.
- **LINKS**: A list of tuples (Title, URL) for menu links.
- **ICONS**: A list of tuples (Icon, URL) for icon links.
- **PYGMENTS_STYLE**: Built-in Pygments style for syntax highlighting.
- **HIDE_AUTHORS**: Hide the author(s) of an article - useful for single author sites.
- **RFG_FAVICONS**: Use a [realfavicongenerator](https://realfavicongenerator.net/blog/new-favicon-package-less-is-more/) package.
Others:
- **DISQUS_SITENAME**
- **GAUGES**
- **GOOGLE_ANALYTICS**
- **PIWIK_URL**
- **PIWIK_SITE_ID**
Example Pelican [config](https://github.com/nairobilug/pelican-alchemy/blob/demo/pelicanconf.py) (demo site).
## Tips
### Bootstrap Classes
To have Bootstrap classes set for rendered html (`.table`, `.img-fluid` etc), use the [Bootstrapify](https://github.com/ingwinlu/pelican-bootstrapify) plugin.
In your Pelican site:
Then set the pelican config variable `THEME` to the `alchemy` folder inside the cloned path.
$ mkdir plugins
$ git submodule add https://github.com/ingwinlu/pelican-bootstrapify plugins/pelican-bootstrapify
And Pelican config:
## Usage
# http://docs.getpelican.com/en/stable/plugins.html#how-to-use-plugins
PLUGIN_PATHS = ['plugins']
PLUGINS = ['pelican-bootstrapify']
Pelican [documentation](http://docs.getpelican.com/en/latest/)
BOOTSTRAPIFY = {
'table': ['table', 'table-striped', 'table-hover'],
'img': ['img-fluid'],
'blockquote': ['blockquote'],
}
Use `BOOTSTRAPIFY` to pass a `{'css-selector': ['list-of-classes']}` dict to the plugin. Bootstrapify will append `list-of-classes` to all tags that match `css-selector`.
### Theme Options
### RFG_FAVICONS
| Config | Type | Description |
| ------------------------- | ---------- | ------------------------- |
| EXTRA_FAVICON [^1] | BOOL | Extra favicons |
| LICENSE_NAME | TEXT | License (footer) |
| LICENSE_URL | URL | - |
| MENU_ITEMS | DICT | Menu items |
| META_DESCRIPTION | TEXT | Meta description |
| PAGES_ON_MENU | BOOL | Pages on the menu |
| CATEGORIES_ON_MENU | BOOL | Category link in menu |
| TAGS_ON_MENU | BOOL | Tag link in menu |
| ARCHIVES_ON_MENU | BOOL | Archives link in menu |
| PROFILE_IMAGE | URL | Profile image |
| SHOW_ARTICLE_AUTHOR | BOOL | Show/hide author |
| SITE_SUBTEXT | TEXT | Header subtitle |
To use the `RFG_FAVICONS` setting, visit [realfavicongenerator.net](https://realfavicongenerator.net/) to generate a site favicon package and download it.
| Config | Type | Description |
| ------------------------- | ---------- | ------------------------- |
| EMAIL_ADDRESS | EMAIL | Email (mailto) |
| FB_ADDRESS | URL | Facebook |
| GITHUB_ADDRESS | URL | Github |
| SO_ADDRESS | URL | Stack Overflow |
| TWITTER_ADDRESS | URL | Twitter |
In your Pelican site:
An RSS icon will also appear on the nav if `FEED_ATOM` or `FEED_RSS` is set.
$ mkdir content/extras
$ unzip /path/to/favicons.zip -d content/extras
| Config | Type | Description |
| ------------------------- | ---------- | ------------------------- |
| DISQUS_SITENAME | TEXT | Disqus sitename |
| GOOGLE_ANALYTICS_DOMAIN | TEXT | Google analytics |
| GOOGLE_ANALYTICS_ID | TEXT | Google analytics |
And Pelican config:
# https://github.com/getpelican/pelican/wiki/Tips-n-Tricks#second-solution-using-static_paths
STATIC_PATHS = ['extras', 'images']
EXTRA_PATH_METADATA = {
'extras/android-chrome-192x192.png': {'path': 'android-chrome-192x192.png'},
'extras/apple-touch-icon.png': {'path': 'apple-touch-icon.png'},
'extras/browserconfig.xml': {'path': 'browserconfig.xml'},
...
}
## Live Demo
RFG_FAVICONS = True
[nairobilug.or.ke](http://nairobilug.or.ke)
Note: `EXTRA_PATH_METADATA` should correspond with the favicon package:
$ unzip -l /path/to/favicons.zip
## License
### Generate `sitemap.xml`
MIT
There is a `sitemap.html` Jinja2 template that can be used to [generate a sitemap](https://github.com/getpelican/pelican/wiki/Tips-n-Tricks#generate-sitemapxml).
In your Pelican config:
[^1]: http://realfavicongenerator.net/faq#why_so_many_files "Why so many files?"
# Default value is ['index', 'tags', 'categories', 'authors', 'archives']
DIRECT_TEMPLATES = ['index', 'tags', 'categories', 'authors', 'archives', 'sitemap']
SITEMAP_SAVE_AS = 'sitemap.xml'
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
@font-face {
font-family: 'icons';
src: url('../font/icons.eot?79801659');
src: url('../font/icons.eot?79801659#iefix') format('embedded-opentype'),
url('../font/icons.woff?79801659') format('woff'),
url('../font/icons.ttf?79801659') format('truetype'),
url('../font/icons.svg?79801659#icons') format('svg');
font-weight: normal;
font-style: normal;
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'icons';
src: url('../font/icons.svg?79801659#icons') format('svg');
}
}
*/
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: "icons";
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
/* opacity: .8; */
/* For safety - reset parent styles, that can break glyph codes*/
font-variant: normal;
text-transform: none;
/* Fix buttons height, for twitter bootstrap */
line-height: 1em;
/* Animation center compensation - margins should be symmetric */
/* remove if not needed */
margin-left: .2em;
/* You can be more comfortable with increased icons size */
/* font-size: 120%; */
/* Uncomment for 3D effect */
/*text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}
.icon-stackoverflow:before { content: '\e032'; } /* '' */
.icon-twitter:before { content: '\e801'; } /* '' */
.icon-facebook:before { content: '\e802'; } /* '' */
.icon-rss:before { content: '\e800'; } /* '' */
.icon-mail-alt:before { content: '\f0e0'; } /* '' */
.icon-github:before { content: '\f113'; } /* '' */
/*
Solarized Dark (http://ethanschoonover.com/solarized)
For use with Jekyll and Pygments!
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 > pre { 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 */
.highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #ffffff; }
.highlight pre .c { color: #888888; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { font-weight: bold; text-decoration: underline } /* Keyword */
.highlight pre .ch { color: #888888; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #888888; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #888888; font-weight: bold } /* Comment.Preproc */
.highlight pre .cpf { color: #888888; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #888888; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #888888; font-weight: bold } /* Comment.Special */
.highlight pre .kc { font-weight: bold; text-decoration: underline } /* Keyword.Constant */
.highlight pre .kd { font-weight: bold; font-style: italic; text-decoration: underline } /* Keyword.Declaration */
.highlight pre .kn { font-weight: bold; text-decoration: underline } /* Keyword.Namespace */
.highlight pre .kp { font-weight: bold; text-decoration: underline } /* Keyword.Pseudo */
.highlight pre .kr { font-weight: bold; text-decoration: underline } /* Keyword.Reserved */
.highlight pre .kt { font-weight: bold; text-decoration: underline } /* Keyword.Type */
.highlight pre .s { color: #666666; font-style: italic } /* Literal.String */
.highlight pre .nb { font-weight: bold; font-style: italic } /* Name.Builtin */
.highlight pre .nc { color: #666666; font-weight: bold; font-style: italic } /* Name.Class */
.highlight pre .no { color: #666666; font-weight: bold; font-style: italic } /* Name.Constant */
.highlight pre .nf { color: #666666; font-weight: bold; font-style: italic } /* Name.Function */
.highlight pre .nn { color: #666666; font-weight: bold; font-style: italic } /* Name.Namespace */
.highlight pre .nv { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable */
.highlight pre .ow { font-weight: bold } /* Operator.Word */
.highlight pre .sb { color: #666666; font-style: italic } /* Literal.String.Backtick */
.highlight pre .sc { color: #666666; font-style: italic } /* Literal.String.Char */
.highlight pre .sd { color: #666666; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #666666; font-style: italic } /* Literal.String.Double */
.highlight pre .se { color: #666666; font-style: italic } /* Literal.String.Escape */
.highlight pre .sh { color: #666666; font-style: italic } /* Literal.String.Heredoc */
.highlight pre .si { color: #666666; font-style: italic } /* Literal.String.Interpol */
.highlight pre .sx { color: #666666; font-style: italic } /* Literal.String.Other */
.highlight pre .sr { color: #666666; font-style: italic } /* Literal.String.Regex */
.highlight pre .s1 { color: #666666; font-style: italic } /* Literal.String.Single */
.highlight pre .ss { color: #666666; font-style: italic } /* Literal.String.Symbol */
.highlight pre .bp { font-weight: bold; font-style: italic } /* Name.Builtin.Pseudo */
.highlight pre .vc { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Class */
.highlight pre .vg { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Global */
.highlight pre .vi { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Instance */
.highlight pre .hll{background-color:#ffc}.highlight pre{background:#fff}.highlight pre .c{color:#888;font-style:italic}.highlight pre .err{border:1px solid #f00}.highlight pre .k{font-weight:bold;text-decoration:underline}.highlight pre .ch{color:#888;font-style:italic}.highlight pre .cm{color:#888;font-style:italic}.highlight pre .cp{color:#888;font-weight:bold}.highlight pre .cpf{color:#888;font-style:italic}.highlight pre .c1{color:#888;font-style:italic}.highlight pre .cs{color:#888;font-weight:bold}.highlight pre .kc{font-weight:bold;text-decoration:underline}.highlight pre .kd{font-weight:bold;font-style:italic;text-decoration:underline}.highlight pre .kn{font-weight:bold;text-decoration:underline}.highlight pre .kp{font-weight:bold;text-decoration:underline}.highlight pre .kr{font-weight:bold;text-decoration:underline}.highlight pre .kt{font-weight:bold;text-decoration:underline}.highlight pre .s{color:#666;font-style:italic}.highlight pre .nb{font-weight:bold;font-style:italic}.highlight pre .nc{color:#666;font-weight:bold;font-style:italic}.highlight pre .no{color:#666;font-weight:bold;font-style:italic}.highlight pre .nf{color:#666;font-weight:bold;font-style:italic}.highlight pre .nn{color:#666;font-weight:bold;font-style:italic}.highlight pre .nv{color:#666;font-weight:bold;font-style:italic}.highlight pre .ow{font-weight:bold}.highlight pre .sb{color:#666;font-style:italic}.highlight pre .sc{color:#666;font-style:italic}.highlight pre .sd{color:#666;font-style:italic}.highlight pre .s2{color:#666;font-style:italic}.highlight pre .se{color:#666;font-style:italic}.highlight pre .sh{color:#666;font-style:italic}.highlight pre .si{color:#666;font-style:italic}.highlight pre .sx{color:#666;font-style:italic}.highlight pre .sr{color:#666;font-style:italic}.highlight pre .s1{color:#666;font-style:italic}.highlight pre .ss{color:#666;font-style:italic}.highlight pre .bp{font-weight:bold;font-style:italic}.highlight pre .vc{color:#666;font-weight:bold;font-style:italic}.highlight pre .vg{color:#666;font-weight:bold;font-style:italic}.highlight pre .vi{color:#666;font-weight:bold;font-style:italic}
\ No newline at end of file
.highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #ffffff; }
.highlight pre .c { color: #888888; font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { font-weight: bold } /* Keyword */
.highlight pre .ch { color: #888888; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #888888; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #888888; font-weight: bold } /* Comment.Preproc */
.highlight pre .cpf { color: #888888; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #888888; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #888888; font-weight: bold } /* Comment.Special */
.highlight pre .kc { font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { font-weight: bold; font-style: italic } /* Keyword.Declaration */
.highlight pre .kn { font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { font-weight: bold } /* Keyword.Pseudo */
.highlight pre .kr { font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { font-weight: bold } /* Keyword.Type */
.highlight pre .s { color: #666666; font-style: italic } /* Literal.String */
.highlight pre .nb { font-weight: bold; font-style: italic } /* Name.Builtin */
.highlight pre .nc { color: #666666; font-weight: bold; font-style: italic } /* Name.Class */
.highlight pre .no { color: #666666; font-weight: bold; font-style: italic } /* Name.Constant */
.highlight pre .nf { color: #666666; font-weight: bold; font-style: italic } /* Name.Function */
.highlight pre .nn { color: #666666; font-weight: bold; font-style: italic } /* Name.Namespace */
.highlight pre .nv { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable */
.highlight pre .ow { font-weight: bold } /* Operator.Word */
.highlight pre .sb { color: #666666; font-style: italic } /* Literal.String.Backtick */
.highlight pre .sc { color: #666666; font-style: italic } /* Literal.String.Char */
.highlight pre .sd { color: #666666; font-style: italic } /* Literal.String.Doc */
.highlight pre .s2 { color: #666666; font-style: italic } /* Literal.String.Double */
.highlight pre .se { color: #666666; font-style: italic } /* Literal.String.Escape */
.highlight pre .sh { color: #666666; font-style: italic } /* Literal.String.Heredoc */
.highlight pre .si { color: #666666; font-style: italic } /* Literal.String.Interpol */
.highlight pre .sx { color: #666666; font-style: italic } /* Literal.String.Other */
.highlight pre .sr { color: #666666; font-style: italic } /* Literal.String.Regex */
.highlight pre .s1 { color: #666666; font-style: italic } /* Literal.String.Single */
.highlight pre .ss { color: #666666; font-style: italic } /* Literal.String.Symbol */
.highlight pre .bp { font-weight: bold; font-style: italic } /* Name.Builtin.Pseudo */
.highlight pre .vc { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Class */
.highlight pre .vg { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Global */
.highlight pre .vi { color: #666666; font-weight: bold; font-style: italic } /* Name.Variable.Instance */
.highlight pre .hll{background-color:#ffc}.highlight pre{background:#fff}.highlight pre .c{color:#888;font-style:italic}.highlight pre .err{border:1px solid #f00}.highlight pre .k{font-weight:bold}.highlight pre .ch{color:#888;font-style:italic}.highlight pre .cm{color:#888;font-style:italic}.highlight pre .cp{color:#888;font-weight:bold}.highlight pre .cpf{color:#888;font-style:italic}.highlight pre .c1{color:#888;font-style:italic}.highlight pre .cs{color:#888;font-weight:bold}.highlight pre .kc{font-weight:bold}.highlight pre .kd{font-weight:bold;font-style:italic}.highlight pre .kn{font-weight:bold}.highlight pre .kp{font-weight:bold}.highlight pre .kr{font-weight:bold}.highlight pre .kt{font-weight:bold}.highlight pre .s{color:#666;font-style:italic}.highlight pre .nb{font-weight:bold;font-style:italic}.highlight pre .nc{color:#666;font-weight:bold;font-style:italic}.highlight pre .no{color:#666;font-weight:bold;font-style:italic}.highlight pre .nf{color:#666;font-weight:bold;font-style:italic}.highlight pre .nn{color:#666;font-weight:bold;font-style:italic}.highlight pre .nv{color:#666;font-weight:bold;font-style:italic}.highlight pre .ow{font-weight:bold}.highlight pre .sb{color:#666;font-style:italic}.highlight pre .sc{color:#666;font-style:italic}.highlight pre .sd{color:#666;font-style:italic}.highlight pre .s2{color:#666;font-style:italic}.highlight pre .se{color:#666;font-style:italic}.highlight pre .sh{color:#666;font-style:italic}.highlight pre .si{color:#666;font-style:italic}.highlight pre .sx{color:#666;font-style:italic}.highlight pre .sr{color:#666;font-style:italic}.highlight pre .s1{color:#666;font-style:italic}.highlight pre .ss{color:#666;font-style:italic}.highlight pre .bp{font-weight:bold;font-style:italic}.highlight pre .vc{color:#666;font-weight:bold;font-style:italic}.highlight pre .vg{color:#666;font-weight:bold;font-style:italic}.highlight pre .vi{color:#666;font-weight:bold;font-style:italic}
\ No newline at end of file
.highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #ffffff; }
.highlight pre .c { color: #aaaaaa; font-style: italic } /* Comment */
.highlight pre .err { color: #FF0000; background-color: #FFAAAA } /* Error */
.highlight pre .k { color: #0000aa } /* Keyword */
.highlight pre .ch { color: #aaaaaa; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #aaaaaa; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #4c8317 } /* Comment.Preproc */
.highlight pre .cpf { color: #aaaaaa; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #aaaaaa; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #0000aa; font-style: italic } /* Comment.Special */
.highlight pre .gd { color: #aa0000 } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #aa0000 } /* Generic.Error */
.highlight pre .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight pre .gi { color: #00aa00 } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #555555 } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight pre .gt { color: #aa0000 } /* Generic.Traceback */
.highlight pre .kc { color: #0000aa } /* Keyword.Constant */
.highlight pre .kd { color: #0000aa } /* Keyword.Declaration */
.highlight pre .kn { color: #0000aa } /* Keyword.Namespace */
.highlight pre .kp { color: #0000aa } /* Keyword.Pseudo */
.highlight pre .kr { color: #0000aa } /* Keyword.Reserved */
.highlight pre .kt { color: #00aaaa } /* Keyword.Type */
.highlight pre .m { color: #009999 } /* Literal.Number */
.highlight pre .s { color: #aa5500 } /* Literal.String */
.highlight pre .na { color: #1e90ff } /* Name.Attribute */
.highlight pre .nb { color: #00aaaa } /* Name.Builtin */
.highlight pre .nc { color: #00aa00; text-decoration: underline } /* Name.Class */
.highlight pre .no { color: #aa0000 } /* Name.Constant */
.highlight pre .nd { color: #888888 } /* Name.Decorator */
.highlight pre .ni { color: #880000; font-weight: bold } /* Name.Entity */
.highlight pre .nf { color: #00aa00 } /* Name.Function */
.highlight pre .nn { color: #00aaaa; text-decoration: underline } /* Name.Namespace */
.highlight pre .nt { color: #1e90ff; font-weight: bold } /* Name.Tag */
.highlight pre .nv { color: #aa0000 } /* Name.Variable */
.highlight pre .ow { color: #0000aa } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #009999 } /* Literal.Number.Bin */
.highlight pre .mf { color: #009999 } /* Literal.Number.Float */
.highlight pre .mh { color: #009999 } /* Literal.Number.Hex */
.highlight pre .mi { color: #009999 } /* Literal.Number.Integer */
.highlight pre .mo { color: #009999 } /* Literal.Number.Oct */
.highlight pre .sb { color: #aa5500 } /* Literal.String.Backtick */
.highlight pre .sc { color: #aa5500 } /* Literal.String.Char */
.highlight pre .sd { color: #aa5500 } /* Literal.String.Doc */
.highlight pre .s2 { color: #aa5500 } /* Literal.String.Double */
.highlight pre .se { color: #aa5500 } /* Literal.String.Escape */
.highlight pre .sh { color: #aa5500 } /* Literal.String.Heredoc */
.highlight pre .si { color: #aa5500 } /* Literal.String.Interpol */
.highlight pre .sx { color: #aa5500 } /* Literal.String.Other */
.highlight pre .sr { color: #009999 } /* Literal.String.Regex */
.highlight pre .s1 { color: #aa5500 } /* Literal.String.Single */
.highlight pre .ss { color: #0000aa } /* Literal.String.Symbol */
.highlight pre .bp { color: #00aaaa } /* Name.Builtin.Pseudo */
.highlight pre .vc { color: #aa0000 } /* Name.Variable.Class */
.highlight pre .vg { color: #aa0000 } /* Name.Variable.Global */
.highlight pre .vi { color: #aa0000 } /* Name.Variable.Instance */
.highlight pre .il { color: #009999 } /* Literal.Number.Integer.Long */
.highlight pre .hll{background-color:#ffc}.highlight pre{background:#fff}.highlight pre .c{color:#aaa;font-style:italic}.highlight pre .err{color:#f00;background-color:#faa}.highlight pre .k{color:#00a}.highlight pre .ch{color:#aaa;font-style:italic}.highlight pre .cm{color:#aaa;font-style:italic}.highlight pre .cp{color:#4c8317}.highlight pre .cpf{color:#aaa;font-style:italic}.highlight pre .c1{color:#aaa;font-style:italic}.highlight pre .cs{color:#00a;font-style:italic}.highlight pre .gd{color:#a00}.highlight pre .ge{font-style:italic}.highlight pre .gr{color:#a00}.highlight pre .gh{color:#000080;font-weight:bold}.highlight pre .gi{color:#0a0}.highlight pre .go{color:#888}.highlight pre .gp{color:#555}.highlight pre .gs{font-weight:bold}.highlight pre .gu{color:#800080;font-weight:bold}.highlight pre .gt{color:#a00}.highlight pre .kc{color:#00a}.highlight pre .kd{color:#00a}.highlight pre .kn{color:#00a}.highlight pre .kp{color:#00a}.highlight pre .kr{color:#00a}.highlight pre .kt{color:#0aa}.highlight pre .m{color:#099}.highlight pre .s{color:#a50}.highlight pre .na{color:#1e90ff}.highlight pre .nb{color:#0aa}.highlight pre .nc{color:#0a0;text-decoration:underline}.highlight pre .no{color:#a00}.highlight pre .nd{color:#888}.highlight pre .ni{color:#800;font-weight:bold}.highlight pre .nf{color:#0a0}.highlight pre .nn{color:#0aa;text-decoration:underline}.highlight pre .nt{color:#1e90ff;font-weight:bold}.highlight pre .nv{color:#a00}.highlight pre .ow{color:#00a}.highlight pre .w{color:#bbb}.highlight pre .mb{color:#099}.highlight pre .mf{color:#099}.highlight pre .mh{color:#099}.highlight pre .mi{color:#099}.highlight pre .mo{color:#099}.highlight pre .sb{color:#a50}.highlight pre .sc{color:#a50}.highlight pre .sd{color:#a50}.highlight pre .s2{color:#a50}.highlight pre .se{color:#a50}.highlight pre .sh{color:#a50}.highlight pre .si{color:#a50}.highlight pre .sx{color:#a50}.highlight pre .sr{color:#099}.highlight pre .s1{color:#a50}.highlight pre .ss{color:#00a}.highlight pre .bp{color:#0aa}.highlight pre .vc{color:#a00}.highlight pre .vg{color:#a00}.highlight pre .vi{color:#a00}.highlight pre .il{color:#099}
\ No newline at end of file
.highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #ffffff; }
.highlight pre .c { color: #008800; font-style: italic } /* Comment */
.highlight pre .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight pre .k { color: #000080; font-weight: bold } /* Keyword */
.highlight pre .ch { color: #008800; font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { color: #008800; font-style: italic } /* Comment.Multiline */
.highlight pre .cp { color: #008080 } /* Comment.Preproc */
.highlight pre .cpf { color: #008800; font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { color: #008800; font-style: italic } /* Comment.Single */
.highlight pre .cs { color: #008800; font-weight: bold } /* Comment.Special */
.highlight pre .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight pre .ge { font-style: italic } /* Generic.Emph */
.highlight pre .gr { color: #aa0000 } /* Generic.Error */
.highlight pre .gh { color: #999999 } /* Generic.Heading */
.highlight pre .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight pre .go { color: #888888 } /* Generic.Output */
.highlight pre .gp { color: #555555 } /* Generic.Prompt */
.highlight pre .gs { font-weight: bold } /* Generic.Strong */
.highlight pre .gu { color: #aaaaaa } /* Generic.Subheading */
.highlight pre .gt { color: #aa0000 } /* Generic.Traceback */
.highlight pre .kc { color: #000080; font-weight: bold } /* Keyword.Constant */
.highlight pre .kd { color: #000080; font-weight: bold } /* Keyword.Declaration */
.highlight pre .kn { color: #000080; font-weight: bold } /* Keyword.Namespace */
.highlight pre .kp { color: #000080; font-weight: bold } /* Keyword.Pseudo */
.highlight pre .kr { color: #000080; font-weight: bold } /* Keyword.Reserved */
.highlight pre .kt { color: #000080; font-weight: bold } /* Keyword.Type */
.highlight pre .m { color: #0000FF } /* Literal.Number */
.highlight pre .s { color: #0000FF } /* Literal.String */
.highlight pre .na { color: #FF0000 } /* Name.Attribute */
.highlight pre .nt { color: #000080; font-weight: bold } /* Name.Tag */
.highlight pre .ow { font-weight: bold } /* Operator.Word */
.highlight pre .w { color: #bbbbbb } /* Text.Whitespace */
.highlight pre .mb { color: #0000FF } /* Literal.Number.Bin */
.highlight pre .mf { color: #0000FF } /* Literal.Number.Float */
.highlight pre .mh { color: #0000FF } /* Literal.Number.Hex */
.highlight pre .mi { color: #0000FF } /* Literal.Number.Integer */
.highlight pre .mo { color: #0000FF } /* Literal.Number.Oct */
.highlight pre .sb { color: #0000FF } /* Literal.String.Backtick */
.highlight pre .sc { color: #800080 } /* Literal.String.Char */
.highlight pre .sd { color: #0000FF } /* Literal.String.Doc */
.highlight pre .s2 { color: #0000FF } /* Literal.String.Double */
.highlight pre .se { color: #0000FF } /* Literal.String.Escape */
.highlight pre .sh { color: #0000FF } /* Literal.String.Heredoc */
.highlight pre .si { color: #0000FF } /* Literal.String.Interpol */
.highlight pre .sx { color: #0000FF } /* Literal.String.Other */
.highlight pre .sr { color: #0000FF } /* Literal.String.Regex */
.highlight pre .s1 { color: #0000FF } /* Literal.String.Single */
.highlight pre .ss { color: #0000FF } /* Literal.String.Symbol */
.highlight pre .il { color: #0000FF } /* Literal.Number.Integer.Long */
.highlight pre .hll{background-color:#ffc}.highlight pre{background:#fff}.highlight pre .c{color:#080;font-style:italic}.highlight pre .err{color:#a61717;background-color:#e3d2d2}.highlight pre .k{color:#000080;font-weight:bold}.highlight pre .ch{color:#080;font-style:italic}.highlight pre .cm{color:#080;font-style:italic}.highlight pre .cp{color:#008080}.highlight pre .cpf{color:#080;font-style:italic}.highlight pre .c1{color:#080;font-style:italic}.highlight pre .cs{color:#080;font-weight:bold}.highlight pre .gd{color:#000;background-color:#fdd}.highlight pre .ge{font-style:italic}.highlight pre .gr{color:#a00}.highlight pre .gh{color:#999}.highlight pre .gi{color:#000;background-color:#dfd}.highlight pre .go{color:#888}.highlight pre .gp{color:#555}.highlight pre .gs{font-weight:bold}.highlight pre .gu{color:#aaa}.highlight pre .gt{color:#a00}.highlight pre .kc{color:#000080;font-weight:bold}.highlight pre .kd{color:#000080;font-weight:bold}.highlight pre .kn{color:#000080;font-weight:bold}.highlight pre .kp{color:#000080;font-weight:bold}.highlight pre .kr{color:#000080;font-weight:bold}.highlight pre .kt{color:#000080;font-weight:bold}.highlight pre .m{color:#00f}.highlight pre .s{color:#00f}.highlight pre .na{color:#f00}.highlight pre .nt{color:#000080;font-weight:bold}.highlight pre .ow{font-weight:bold}.highlight pre .w{color:#bbb}.highlight pre .mb{color:#00f}.highlight pre .mf{color:#00f}.highlight pre .mh{color:#00f}.highlight pre .mi{color:#00f}.highlight pre .mo{color:#00f}.highlight pre .sb{color:#00f}.highlight pre .sc{color:#800080}.highlight pre .sd{color:#00f}.highlight pre .s2{color:#00f}.highlight pre .se{color:#00f}.highlight pre .sh{color:#00f}.highlight pre .si{color:#00f}.highlight pre .sx{color:#00f}.highlight pre .sr{color:#00f}.highlight pre .s1{color:#00f}.highlight pre .ss{color:#00f}.highlight pre .il{color:#00f}
\ No newline at end of file
.highlight pre .hll { background-color: #ffffcc }
.highlight pre { background: #ffffff; }
.highlight pre .c { font-style: italic } /* Comment */
.highlight pre .err { border: 1px solid #FF0000 } /* Error */
.highlight pre .k { font-weight: bold } /* Keyword */
.highlight pre .ch { font-style: italic } /* Comment.Hashbang */
.highlight pre .cm { font-style: italic } /* Comment.Multiline */
.highlight pre .cpf { font-style: italic } /* Comment.PreprocFile */
.highlight pre .c1 { font-style: italic } /* Comment.Single */