Commit 19cff742 authored by Neil Williams's avatar Neil Williams 💬

Move to Sphinx from pelican

Closes: #2
also change CI to fail on any build errors in MRs.
Use the same sphinx theme as the current documentation.
Signed-off-by: Neil Williams's avatarNeil Williams <neil.williams@linaro.org>
parent 8888b9f3
Pipeline #2798 passed with stage
in 24 seconds
output
_build
__pycache__
*.pyc
*~
......@@ -5,18 +5,18 @@ stages:
run_branch:
stage: build
before_script:
- apt-get update -qq && apt-get install -y -qq pelican
- apt-get update -qq && apt-get install -y python3-sphinx python3-sphinx-bootstrap-theme
image: hub.lavasoftware.org/lava/ci-images/amd64/pkg-debian-9
except:
- master@lava/website
script:
- make html
- make SPHINXOPTS="-n -j 4 -W" html
- echo "Not deploying, not on master branch in website repo"
run_production:
stage: build
before_script:
- apt-get update -qq && apt-get install -y -qq pelican
- apt-get update -qq && apt-get install -y -qq python3-sphinx python3-sphinx-bootstrap-theme
image: hub.lavasoftware.org/lava/ci-images/amd64/pkg-debian-9
only:
- master@lava/website
......
This diff is collapsed.
# allow empty directory
:title: LAVA - Linaro Automated Validation Architecture
:slug: about
:date: 2018-09-07 08:00:00 UTC+00:00
.. index:: about LAVA
.. image:: lava.png
.. _about_lava:
About LAVA
**********
Validation is key to the delivery of robust code and is an ongoing
process involving multiple teams, covering four components:
......
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
import sphinx_bootstrap_theme
# -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'LAVA Software Community Project'
copyright = '2019, LAVA Software Team'
author = 'LAVA Software Team'
# The short X.Y version
version = ''
# The full version, including alpha/beta/rc tags
release = ''
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
suppress_warnings = ['image.nonlocal_uri']
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The master toctree document.
master_doc = 'index'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = None
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = 'bootstrap'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
# html_theme_options = {}
html_theme_options = {
"navbar_sidebarrel": True,
"navbar_links": [("Index", "genindex"), ("Contents", "contents")],
}
# Add any paths that contain custom themes here, relative to this directory.
# html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
# html_title = None
# A shorter title for the navigation bar. Default is the same as html_title.
# html_short_title = None
# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
# html_logo = "../linaro.png"
html_logo = "images/lava.png"
# The name of an image file (within the static path) to use as favicon of the
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
# pixels large.
html_favicon = "./favicon.ico"
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
# html_sidebars = {}
html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = 'LAVASoftwareCommunityProjectdoc'
# -- Options for LaTeX output ------------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, 'LAVASoftwareCommunityProject.tex', 'LAVA Software Community Project Documentation',
'LAVA Software Team', 'manual'),
]
# -- Options for manual page output ------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(master_doc, 'lavasoftwarecommunityproject', 'LAVA Software Community Project Documentation',
[author], 1)
]
# -- Options for Texinfo output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(master_doc, 'LAVASoftwareCommunityProject', 'LAVA Software Community Project Documentation',
author, 'LAVASoftwareCommunityProject', 'One line description of project.',
'Miscellaneous'),
]
# -- Options for Epub output -------------------------------------------------
# Bibliographic Dublin Core info.
epub_title = project
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#
# epub_identifier = ''
# A unique identification for the text.
#
# epub_uid = ''
# A list of files that should not be packed into the epub file.
epub_exclude_files = ['search.html']
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<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"
version="1.1"
x="0px"
y="0px"
viewBox="0 0 576 240"
xml:space="preserve"
id="svg3404"
inkscape:version="0.48.5 r10040"
sodipodi:docname="lava.svg"
width="576"
height="240"
inkscape:export-filename="lava.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"><metadata
id="metadata3432"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs3430" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1356"
inkscape:window-height="747"
id="namedview3428"
showgrid="false"
inkscape:snap-text-baseline="false"
inkscape:snap-others="true"
inkscape:snap-nodes="false"
inkscape:snap-bbox="false"
inkscape:snap-global="true"
inkscape:snap-page="true"
inkscape:zoom="5.3658131"
inkscape:cx="432.99881"
inkscape:cy="43.05989"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg3404" /><style
type="text/css"
id="style3406">
.st0{display:none;}
.st1{display:inline;}
.st2{fill:#99CC33;}
.st3{fill:#FFFFFF;}
.st4{fill:#343433;}
.st5{font-family:'Roboto-Bold';}
.st6{font-size:110.6092px;}
.st7{font-family:'Roboto-Light';}
.st8{font-size:68.7016px;}
.st9{fill:#666666;}
.st10{fill:#F4D30B;}
.st11{fill:#0084AB;}
</style><g
id="BG"
class="st0"
style="display:none" /><g
id="g3420"
transform="matrix(1.1521135,0,0,1.1710336,-21.34991,-22.430157)"><path
class="st10"
d="M 145.8,44.8 C 132.6,32 115.2,25 96.8,25 57.8,25 26,56.8 26,95.8 c 0,12.3 3.2,24.5 9.4,35.2 l 2.1,3.6 8.1,-6.3 -1.5,-2.7 c -5.1,-9 -7.8,-19.3 -7.8,-29.7 0,-33.3 27.1,-60.4 60.4,-60.4 15.5,0 30.2,5.9 41.5,16.6 l 2.3,2.1 8.4,-6.6 -3.1,-2.8 z"
id="path3422"
inkscape:connector-curvature="0"
style="fill:#f4d30b" /><path
class="st11"
d="m 158.3,60.7 -2.1,-3.6 -8.4,6.6 1.5,2.7 c 5.1,9 7.7,19.2 7.7,29.6 0,33.3 -27.1,60.4 -60.4,60.4 -15.5,0 -30.2,-5.9 -41.4,-16.5 l -2.3,-2.1 -8.1,6.4 3,2.9 c 13.3,12.7 30.7,19.7 49,19.7 39,0 70.8,-31.8 70.8,-70.8 0,-12.5 -3.2,-24.7 -9.3,-35.3 z"
id="path3424"
inkscape:connector-curvature="0"
style="fill:#0084ab" /></g><path
inkscape:connector-curvature="0"
id="polygon3426"
d="m 175.77671,191.86899 -67.16822,0 0,-126.120317 -35.715516,28.92453 0,132.326797 131.340936,0 z"
style="fill:#99cc33" /><g
transform="scale(0.86012124,1.1626268)"
style="font-size:190.25213623px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#99cc33;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
id="text3002"><path
d="m 348.20672,165.0306 -52.58444,0 -10.46853,30.21693 -35.95097,0 51.3718,-138.694552 42.63951,0 51.3718,138.694552 -35.95097,0 -10.4282,-30.21693 m -45.30973,-20.78328 37.99469,0 -18.9509,-55.18055 -19.04379,55.18055"
id="path3775"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccc" /><path
d="m 383.34541,56.552978 35.95096,0 36.78704,102.372002 36.69414,-102.372002 35.95096,0 -51.37179,138.694552 -42.63952,0 -51.37179,-138.694552"
style=""
id="path3777" /><path
d="m 616.45612,165.0306 -52.55306,0 -10.46406,30.21693 -35.95097,0 51.37179,-138.694552 42.63952,0 51.37179,138.694552 -35.95096,0 -10.46405,-30.21693 m -45.27388,-20.78328 37.99469,0 -18.9509,-55.18055 -19.04379,55.18055"
id="path3779"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccc" /></g></svg>
:title: LAVA Software Community Project FAQ
:slug: faq
:date: 2018-09-21 08:00:00 UTC+00:00
.. contents::
:backlinks: top
Frequently Asked Questions
**************************
.. _choose_gitlab:
......
favicon.ico

508 Bytes

This diff is collapsed.
.. index:: Documentation Index
.. toctree::
:maxdepth: 1
:hidden:
about
codeofconduct
faq
Welcome to LAVA!
################
What is LAVA?
*************
* LAVA is the Linaro Automated Validation Architecture.
* LAVA is a continuous integration system for deploying operating
systems onto physical and virtual hardware for running tests. Tests can
be simple boot testing, bootloader testing and system level testing,
although extra hardware may be required for some system tests. Results
are tracked over time and data can be exported for further analysis.
* LAVA is a collection of participating components in an evolving
architecture. LAVA aims to make systematic, automatic and manual
quality control more approachable for projects of all sizes.
* LAVA is designed for validation during development - testing whether
the code that engineers are producing "works", in whatever sense that
means. Depending on context, this could be many things, for example:
* testing whether changes in the Linux kernel compile and boot
* testing whether the code produced by gcc is smaller or faster
* testing whether a kernel scheduler change reduces power consumption
for a certain workload
* etc.
* LAVA is good for automated validation. LAVA tests the Linux kernel on
a range of supported boards every day. LAVA tests proposed android
changes in gerrit before they are landed, and does the same for other
projects like gcc. Linaro runs a central validation lab in Cambridge,
containing racks full of computers supplied by Linaro members and the
necessary infrastucture to control them (servers, serial console
servers, network switches etc.)
* LAVA is good for providing developers with the ability to run
customised test on a variety of different types of hardware, some of
which may be difficult to obtain or integrate. Although LAVA has
support for emulation (based on QEMU), LAVA is best at providing test
support for real hardware devices.
* LAVA is principally aimed at testing changes made by developers
across multiple hardware platforms to aid portability and encourage
multi-platform development. Systems which are already platform
independent or which have been optimised for production may not
necessarily be able to be tested in LAVA or may provide no overall
gain.
About the LAVA Software Community Project
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
AUTHOR = 'LAVA Software team'
SITENAME = 'LAVA Software Community Project'
SITEURL = 'https://lavasoftware.org'
SITEIMAGE = "/images/lava.svg"
PATH = 'content'
TIMEZONE = 'UTC'
DEFAULT_LANG = 'en'
THEME = 'themes/pelican-alchemy/alchemy'
# Feed generation is not relevant to a static site.
FEED_ALL_ATOM = None
CATEGORY_FEED_ATOM = None
TRANSLATION_FEED_ATOM = None
AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None
# Blogroll
LINKS = (('About', '/about.html'),
('FAQ', '/faq.html'),
('GitLab', 'https://git.lavasoftware.org/'),
('LAVA master', 'https://master.lavasoftware.org'),
('Mailing lists', 'https://lists.lavasoftware.org'),
('Images', 'https://files.lavasoftware.org'),)
DEFAULT_PAGINATION = False
RELATIVE_URLS = True
HIDE_AUTHORS = True
HIDE_ARCHIVES = True
HIDE_CATEGORIES = True
HIDE_BANNER = True
DISPLAY_PAGES_ON_MENU = False
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age,
body size, disability, ethnicity, gender identity and expression, level of
experience, nationality, personal appearance, race, religion, or sexual
identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an
appointed representative at an online or offline event. Representation of a
project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team. All complaints will be reviewed and
investigated and will result in a response that is deemed necessary and
appropriate to the circumstances. The project team is obligated to maintain
confidentiality with regard to the reporter of an incident. Further details of
specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 1.4, available at
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
The MIT License (MIT)
Copyright (c) 2017 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
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.
# Pelican Alchemy
> A magical ✨ Pelican theme
Alchemy is a functional, clean, responsive theme for the [Pelican](http://getpelican.com) static site generator.
Inspired by [crowsfoot](http://github.com/porterjamesj/crowsfoot) and [clean-blog](https://github.com/BlackrockDigital/startbootstrap-clean-blog), it features:
- Powered by [Bootstrap 4](https://getbootstrap.com/) (v4.0.0-beta.3)
- [Font Awesome](http://fontawesome.io/) icons
- [Pygments](http://pygments.org/) syntax highlighting styles
- Pelican `sitemap.xml` support
- [Favicon Generator](http://realfavicongenerator.net/) support
- External analytics ([Google](https://analytics.google.com), [Gauges](https://gaug.es), [Piwik](https://piwik.org)) support **
- External comments ([Disqus](https://disqus.com)) support **
** Features link to external assets (webfonts etc).
![](screenshot.jpg)
## Installation
Clone the repo:
```bash
git clone https://github.com/nairobilug/pelican-alchemy
```
Set the `THEME` variable in your Pelican config:
```python
THEME = '<PATH_TO_REPO>/alchemy'
```
### As a Submodule
In your Pelican site:
```bash
mkdir themes
git submodule add https://github.com/nairobilug/pelican-alchemy themes/pelican-alchemy
```
And in Pelican config:
```python
THEME = 'themes/pelican-alchemy/alchemy'
```
## Usage
Visit the [Settings wiki](https://github.com/nairobilug/pelican-alchemy/wiki/Settings) 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 Favicon Generator package.
Misc settings:
- **DISQUS_SITENAME**
- **GAUGES**
- **GOOGLE_ANALYTICS**
- **PIWIK_URL**
- **PIWIK_SITE_ID**
Example [pelicanconf.py](https://github.com/nairobilug/pelican-alchemy/blob/demo/pelicanconf.py) (demo website).
### Tips & Tricks
https://github.com/nairobilug/pelican-alchemy/wiki/Tips
## How to Contribute
1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
1. Fork [the repository](https://github.com/nairobilug/pelican-alchemy) on GitHub to start making your changes to the master branch (or branch off of it).
1. Send a pull request and bug the maintainer until it gets merged and published. :)
Alchemy follows the [Contributor Covenant](CODE_OF_CONDUCT.md) code of conduct.
## License
[MIT](LICENSE) © 2017 Nairobi GNU/Linux Users Group
This source diff could not be displayed because it is too large. You can view the blob instead.
.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:#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