├── requirements.in
├── media
├── static
│ └── editor
│ │ ├── ace
│ │ ├── mode-text.js
│ │ ├── snippets
│ │ │ ├── d.js
│ │ │ ├── ada.js
│ │ │ ├── dot.js
│ │ │ ├── ejs.js
│ │ │ ├── elm.js
│ │ │ ├── ftl.js
│ │ │ ├── ini.js
│ │ │ ├── jsx.js
│ │ │ ├── mel.js
│ │ │ ├── nix.js
│ │ │ ├── sjs.js
│ │ │ ├── svg.js
│ │ │ ├── xml.js
│ │ │ ├── abap.js
│ │ │ ├── elixir.js
│ │ │ ├── glsl.js
│ │ │ ├── haxe.js
│ │ │ ├── jack.js
│ │ │ ├── jade.js
│ │ │ ├── json.js
│ │ │ ├── lean.js
│ │ │ ├── less.js
│ │ │ ├── lisp.js
│ │ │ ├── mask.js
│ │ │ ├── rdoc.js
│ │ │ ├── rust.js
│ │ │ ├── sass.js
│ │ │ ├── scad.js
│ │ │ ├── scss.js
│ │ │ ├── text.js
│ │ │ ├── toml.js
│ │ │ ├── twig.js
│ │ │ ├── vhdl.js
│ │ │ ├── yaml.js
│ │ │ ├── cirru.js
│ │ │ ├── cobol.js
│ │ │ ├── csharp.js
│ │ │ ├── curly.js
│ │ │ ├── eiffel.js
│ │ │ ├── forth.js
│ │ │ ├── gcode.js
│ │ │ ├── golang.js
│ │ │ ├── groovy.js
│ │ │ ├── julia.js
│ │ │ ├── latex.js
│ │ │ ├── liquid.js
│ │ │ ├── logiql.js
│ │ │ ├── lucene.js
│ │ │ ├── matlab.js
│ │ │ ├── mysql.js
│ │ │ ├── ocaml.js
│ │ │ ├── pascal.js
│ │ │ ├── pgsql.js
│ │ │ ├── praat.js
│ │ │ ├── prolog.js
│ │ │ ├── protobuf.js
│ │ │ ├── rhtml.js
│ │ │ ├── scala.js
│ │ │ ├── scheme.js
│ │ │ ├── smarty.js
│ │ │ ├── space.js
│ │ │ ├── stylus.js
│ │ │ ├── asciidoc.js
│ │ │ ├── c9search.js
│ │ │ ├── gherkin.js
│ │ │ ├── live_script.js
│ │ │ ├── luapage.js
│ │ │ ├── mushcode.js
│ │ │ ├── vbscript.js
│ │ │ ├── verilog.js
│ │ │ ├── batchfile.js
│ │ │ ├── gitignore.js
│ │ │ ├── html_ruby.js
│ │ │ ├── mipsassembler.js
│ │ │ ├── apache_conf.js
│ │ │ ├── applescript.js
│ │ │ ├── autohotkey.js
│ │ │ ├── coldfusion.js
│ │ │ ├── dockerfile.js
│ │ │ ├── handlebars.js
│ │ │ ├── livescript.js
│ │ │ ├── objectivec.js
│ │ │ ├── plain_text.js
│ │ │ ├── powershell.js
│ │ │ ├── properties.js
│ │ │ ├── typescript.js
│ │ │ ├── assembly_x86.js
│ │ │ ├── soy_template.js
│ │ │ ├── mips_assembler.js
│ │ │ ├── makefile.js
│ │ │ ├── maze.js
│ │ │ ├── snippets.js
│ │ │ ├── haml.js
│ │ │ ├── lua.js
│ │ │ ├── textile.js
│ │ │ ├── diff.js
│ │ │ ├── velocity.js
│ │ │ ├── sql.js
│ │ │ ├── abc.js
│ │ │ ├── io.js
│ │ │ ├── dart.js
│ │ │ ├── tcl.js
│ │ │ ├── jsoniq.js
│ │ │ ├── xquery.js
│ │ │ ├── haskell.js
│ │ │ ├── markdown.js
│ │ │ ├── python.js
│ │ │ ├── clojure.js
│ │ │ ├── sh.js
│ │ │ ├── sqlserver.js
│ │ │ └── coffee.js
│ │ ├── ext-error_marker.js
│ │ ├── mode-plain_text.js
│ │ ├── ext-linking.js
│ │ ├── mode-gitignore.js
│ │ ├── mode-properties.js
│ │ ├── ext-statusbar.js
│ │ ├── mode-lucene.js
│ │ ├── mode-gcode.js
│ │ ├── ext-spellcheck.js
│ │ ├── ext-themelist.js
│ │ ├── mode-ada.js
│ │ ├── mode-sql.js
│ │ ├── mode-lisp.js
│ │ ├── theme-xcode.js
│ │ ├── mode-textile.js
│ │ ├── theme-kuroir.js
│ │ ├── mode-vhdl.js
│ │ ├── theme-clouds.js
│ │ ├── theme-eclipse.js
│ │ ├── mode-gherkin.js
│ │ ├── mode-toml.js
│ │ ├── mode-space.js
│ │ ├── theme-github.js
│ │ ├── theme-vibrant_ink.js
│ │ ├── theme-dawn.js
│ │ ├── theme-merbivore.js
│ │ ├── theme-idle_fingers.js
│ │ └── theme-kr_theme.js
│ │ ├── AUTHORS
│ │ ├── static
│ │ ├── img
│ │ │ ├── mu.png
│ │ │ ├── comic1.png
│ │ │ ├── comic2.png
│ │ │ ├── comic3.png
│ │ │ ├── comic4.png
│ │ │ ├── comic5.png
│ │ │ ├── comic6.png
│ │ │ ├── header.png
│ │ │ ├── help.png
│ │ │ ├── info.png
│ │ │ ├── python.png
│ │ │ ├── snake.png
│ │ │ ├── zoom.png
│ │ │ ├── bbcLogo.png
│ │ │ ├── download.png
│ │ │ ├── favicon.ico
│ │ │ ├── microbit.png
│ │ │ ├── snippet1.png
│ │ │ ├── snippet2.png
│ │ │ ├── snippet3.png
│ │ │ ├── snippet4.png
│ │ │ ├── snippet5.png
│ │ │ ├── snippets.png
│ │ │ ├── background.png
│ │ │ ├── editor_text.png
│ │ │ ├── micropython.gif
│ │ │ ├── micropython.png
│ │ │ ├── my_scripts.png
│ │ │ ├── micropython.jpeg
│ │ │ ├── scroll-hello.gif
│ │ │ ├── antipodean_snake.png
│ │ │ ├── python-powered.png
│ │ │ ├── snippet_example.gif
│ │ │ ├── tech_support_cheat_sheet.png
│ │ │ └── index.html
│ │ ├── css
│ │ │ └── starter-template.css
│ │ └── js
│ │ │ └── ie10-viewport-bug-workaround.js
│ │ ├── tests
│ │ ├── lib
│ │ │ └── jasmine-2.3.4
│ │ │ │ └── jasmine_favicon.png
│ │ └── README.rst
│ │ ├── LICENSE
│ │ ├── CHANGELOG
│ │ ├── CONTRIBUTING.rst
│ │ └── tests.html
├── sourceimages
│ ├── info.txt
│ ├── bg-b.png
│ ├── bg-c.jpg
│ ├── bg-c2.jpg
│ ├── bg-t.png
│ ├── img1.png
│ ├── img10.png
│ ├── img11.png
│ ├── img12.png
│ ├── img13.png
│ ├── img2.png
│ ├── img3.png
│ ├── img4.png
│ ├── img5.png
│ ├── img6.png
│ ├── img7.png
│ ├── img8.png
│ ├── img9.png
│ ├── logo.png
│ ├── bg-flag.png
│ ├── bullet.png
│ ├── ico-lang.png
│ ├── label1.png
│ ├── label2.png
│ ├── label3.png
│ ├── label4.png
│ ├── label5.png
│ ├── label6.png
│ ├── label7.png
│ ├── label8.png
│ ├── sprite.png
│ ├── top-mask.png
│ ├── top-menu.png
│ ├── img-visual.jpg
│ ├── separator1.png
│ ├── separator2.png
│ ├── separator3.png
│ ├── separator4.png
│ ├── bg-c-mobile.jpg
│ ├── bg-t-mobile.png
│ ├── label-mobile.png
│ ├── logo-footer.jpg
│ ├── logo-mobile.png
│ ├── mask-footer.png
│ ├── mask-header.png
│ └── mask-header-drop.png
├── favicon.ico
├── images
│ ├── bg-b.png
│ ├── bg-c.jpg
│ ├── bg-t.png
│ ├── code.png
│ ├── hand.png
│ ├── jet.png
│ ├── logo.png
│ ├── bg-c2.jpg
│ ├── bullet.png
│ ├── label1.png
│ ├── label2.png
│ ├── label3.png
│ ├── label4.png
│ ├── label5.png
│ ├── label6.png
│ ├── label7.png
│ ├── label8.png
│ ├── meteor.png
│ ├── rocket.png
│ ├── saturn.png
│ ├── sprite.png
│ ├── stars.png
│ ├── world.jpg
│ ├── bg-clouds.png
│ ├── bg-down.png
│ ├── bg-glow.png
│ ├── bg-head1.jpg
│ ├── bg-planet.png
│ ├── bg-stars.png
│ ├── code_bbc.png
│ ├── community.png
│ ├── docs_doge.png
│ ├── ico-lang.png
│ ├── language.png
│ ├── microbit.png
│ ├── psf_logo.jpg
│ ├── resources.png
│ ├── subnav_bg.jpg
│ ├── top-mask.png
│ ├── top-menu.png
│ ├── tutorials.png
│ ├── bg-c-mobile.jpg
│ ├── bg-planet1.png
│ ├── bg-planet2.png
│ ├── bg-planet3.png
│ ├── bg-planet4.png
│ ├── bg-t-mobile.png
│ ├── logo-mobile.png
│ ├── mask-footer.png
│ ├── mask-header.png
│ ├── python_logo.png
│ ├── separator1.png
│ ├── separator2.png
│ ├── separator3.png
│ ├── separator4.png
│ ├── snake_build.png
│ ├── snake_learn.png
│ ├── snake_teach.png
│ ├── label-mobile.png
│ ├── pythonic_world.jpg
│ ├── raspberry_pi.png
│ ├── bg-planet1-small.png
│ ├── bg-planet2-small.png
│ ├── bg-planet3-small.png
│ ├── bg-planet4-small.png
│ ├── learning_is_play.png
│ ├── mask-header-drop.png
│ ├── explore_with_python.png
│ ├── microbit_space_hand.png
│ ├── play_is_creativity.png
│ ├── python_logo_light.png
│ ├── creativity_is_exploration.png
│ └── term.svg
├── fonts
│ └── bootstrap
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
└── scss
│ ├── vendors
│ └── bootstrap
│ │ ├── mixins
│ │ ├── _center-block.scss
│ │ ├── _opacity.scss
│ │ ├── _size.scss
│ │ ├── _text-overflow.scss
│ │ ├── _tab-focus.scss
│ │ ├── _resize.scss
│ │ ├── _labels.scss
│ │ ├── _progress-bar.scss
│ │ ├── _text-emphasis.scss
│ │ ├── _reset-filter.scss
│ │ ├── _nav-divider.scss
│ │ ├── _background-variant.scss
│ │ ├── _alerts.scss
│ │ ├── _nav-vertical-align.scss
│ │ ├── _reset-text.scss
│ │ ├── _border-radius.scss
│ │ ├── _pagination.scss
│ │ ├── _responsive-visibility.scss
│ │ ├── _panels.scss
│ │ ├── _hide-text.scss
│ │ ├── _clearfix.scss
│ │ ├── _list-group.scss
│ │ ├── _table-row.scss
│ │ ├── _image.scss
│ │ └── _buttons.scss
│ │ ├── _wells.scss
│ │ ├── _responsive-embed.scss
│ │ ├── _breadcrumbs.scss
│ │ ├── _close.scss
│ │ ├── _component-animations.scss
│ │ ├── _utilities.scss
│ │ ├── _thumbnails.scss
│ │ ├── _pager.scss
│ │ ├── _mixins.scss
│ │ ├── _media.scss
│ │ ├── _jumbotron.scss
│ │ ├── _labels.scss
│ │ ├── _badges.scss
│ │ ├── _code.scss
│ │ ├── _grid.scss
│ │ └── _alerts.scss
│ ├── base
│ └── _helpers.scss
│ ├── _bootstrap-custom.scss
│ ├── bootstrap-extended.scss
│ └── bootstrap.scss
├── config
├── templates
├── none.html
├── page_en.html
├── microbit_en.html
├── microbit_de.html
└── editor.html
├── content
├── CNAME
├── de
│ ├── index.md
│ └── microbit
│ │ └── index.html
├── en
│ ├── raspberry-pi
│ │ └── index.md
│ └── microbit
│ │ └── editor
│ │ └── index.html
└── index.html
├── .gitignore
├── AUTHORS
├── .travis.yml
├── requirements.txt
├── Makefile
├── deploy.sh
├── pre-flight-checks.sh
└── CONTRIBUTING.rst
/requirements.in:
--------------------------------------------------------------------------------
1 | wok==1.1.1
2 |
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-text.js:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/config:
--------------------------------------------------------------------------------
1 | url_pattern: /{slug}/index.html
2 |
--------------------------------------------------------------------------------
/media/sourceimages/info.txt:
--------------------------------------------------------------------------------
1 | original images
--------------------------------------------------------------------------------
/templates/none.html:
--------------------------------------------------------------------------------
1 | {{ page.content }}
2 |
--------------------------------------------------------------------------------
/content/CNAME:
--------------------------------------------------------------------------------
1 | url: CNAME
2 | type: none
3 | ---
4 | pythonineducation.org
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .venv
2 | output
3 | .sass-cache
4 | *.swp
5 | *.pyc
6 |
7 | .DS_Store
8 |
--------------------------------------------------------------------------------
/AUTHORS:
--------------------------------------------------------------------------------
1 | Nicholas H.Tollervey (ntoll@ntoll.org)
2 | Steve Hawkes (steve@blanc.ltd.uk)
3 |
4 |
--------------------------------------------------------------------------------
/media/static/editor/AUTHORS:
--------------------------------------------------------------------------------
1 | Nicholas H.Tollervey (@ntoll)
2 | Damien P.George (@dpgeorge)
3 |
--------------------------------------------------------------------------------
/media/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/favicon.ico
--------------------------------------------------------------------------------
/media/images/bg-b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-b.png
--------------------------------------------------------------------------------
/media/images/bg-c.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-c.jpg
--------------------------------------------------------------------------------
/media/images/bg-t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-t.png
--------------------------------------------------------------------------------
/media/images/code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/code.png
--------------------------------------------------------------------------------
/media/images/hand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/hand.png
--------------------------------------------------------------------------------
/media/images/jet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/jet.png
--------------------------------------------------------------------------------
/media/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/logo.png
--------------------------------------------------------------------------------
/media/images/bg-c2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-c2.jpg
--------------------------------------------------------------------------------
/media/images/bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bullet.png
--------------------------------------------------------------------------------
/media/images/label1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label1.png
--------------------------------------------------------------------------------
/media/images/label2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label2.png
--------------------------------------------------------------------------------
/media/images/label3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label3.png
--------------------------------------------------------------------------------
/media/images/label4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label4.png
--------------------------------------------------------------------------------
/media/images/label5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label5.png
--------------------------------------------------------------------------------
/media/images/label6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label6.png
--------------------------------------------------------------------------------
/media/images/label7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label7.png
--------------------------------------------------------------------------------
/media/images/label8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label8.png
--------------------------------------------------------------------------------
/media/images/meteor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/meteor.png
--------------------------------------------------------------------------------
/media/images/rocket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/rocket.png
--------------------------------------------------------------------------------
/media/images/saturn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/saturn.png
--------------------------------------------------------------------------------
/media/images/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/sprite.png
--------------------------------------------------------------------------------
/media/images/stars.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/stars.png
--------------------------------------------------------------------------------
/media/images/world.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/world.jpg
--------------------------------------------------------------------------------
/media/images/bg-clouds.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-clouds.png
--------------------------------------------------------------------------------
/media/images/bg-down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-down.png
--------------------------------------------------------------------------------
/media/images/bg-glow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-glow.png
--------------------------------------------------------------------------------
/media/images/bg-head1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-head1.jpg
--------------------------------------------------------------------------------
/media/images/bg-planet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet.png
--------------------------------------------------------------------------------
/media/images/bg-stars.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-stars.png
--------------------------------------------------------------------------------
/media/images/code_bbc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/code_bbc.png
--------------------------------------------------------------------------------
/media/images/community.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/community.png
--------------------------------------------------------------------------------
/media/images/docs_doge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/docs_doge.png
--------------------------------------------------------------------------------
/media/images/ico-lang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/ico-lang.png
--------------------------------------------------------------------------------
/media/images/language.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/language.png
--------------------------------------------------------------------------------
/media/images/microbit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/microbit.png
--------------------------------------------------------------------------------
/media/images/psf_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/psf_logo.jpg
--------------------------------------------------------------------------------
/media/images/resources.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/resources.png
--------------------------------------------------------------------------------
/media/images/subnav_bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/subnav_bg.jpg
--------------------------------------------------------------------------------
/media/images/top-mask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/top-mask.png
--------------------------------------------------------------------------------
/media/images/top-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/top-menu.png
--------------------------------------------------------------------------------
/media/images/tutorials.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/tutorials.png
--------------------------------------------------------------------------------
/media/images/bg-c-mobile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-c-mobile.jpg
--------------------------------------------------------------------------------
/media/images/bg-planet1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet1.png
--------------------------------------------------------------------------------
/media/images/bg-planet2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet2.png
--------------------------------------------------------------------------------
/media/images/bg-planet3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet3.png
--------------------------------------------------------------------------------
/media/images/bg-planet4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet4.png
--------------------------------------------------------------------------------
/media/images/bg-t-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-t-mobile.png
--------------------------------------------------------------------------------
/media/images/logo-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/logo-mobile.png
--------------------------------------------------------------------------------
/media/images/mask-footer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/mask-footer.png
--------------------------------------------------------------------------------
/media/images/mask-header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/mask-header.png
--------------------------------------------------------------------------------
/media/images/python_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/python_logo.png
--------------------------------------------------------------------------------
/media/images/separator1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/separator1.png
--------------------------------------------------------------------------------
/media/images/separator2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/separator2.png
--------------------------------------------------------------------------------
/media/images/separator3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/separator3.png
--------------------------------------------------------------------------------
/media/images/separator4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/separator4.png
--------------------------------------------------------------------------------
/media/images/snake_build.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/snake_build.png
--------------------------------------------------------------------------------
/media/images/snake_learn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/snake_learn.png
--------------------------------------------------------------------------------
/media/images/snake_teach.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/snake_teach.png
--------------------------------------------------------------------------------
/media/sourceimages/bg-b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/bg-b.png
--------------------------------------------------------------------------------
/media/sourceimages/bg-c.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/bg-c.jpg
--------------------------------------------------------------------------------
/media/sourceimages/bg-c2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/bg-c2.jpg
--------------------------------------------------------------------------------
/media/sourceimages/bg-t.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/bg-t.png
--------------------------------------------------------------------------------
/media/sourceimages/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img1.png
--------------------------------------------------------------------------------
/media/sourceimages/img10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img10.png
--------------------------------------------------------------------------------
/media/sourceimages/img11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img11.png
--------------------------------------------------------------------------------
/media/sourceimages/img12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img12.png
--------------------------------------------------------------------------------
/media/sourceimages/img13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img13.png
--------------------------------------------------------------------------------
/media/sourceimages/img2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img2.png
--------------------------------------------------------------------------------
/media/sourceimages/img3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img3.png
--------------------------------------------------------------------------------
/media/sourceimages/img4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img4.png
--------------------------------------------------------------------------------
/media/sourceimages/img5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img5.png
--------------------------------------------------------------------------------
/media/sourceimages/img6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img6.png
--------------------------------------------------------------------------------
/media/sourceimages/img7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img7.png
--------------------------------------------------------------------------------
/media/sourceimages/img8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img8.png
--------------------------------------------------------------------------------
/media/sourceimages/img9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img9.png
--------------------------------------------------------------------------------
/media/sourceimages/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/logo.png
--------------------------------------------------------------------------------
/media/images/label-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/label-mobile.png
--------------------------------------------------------------------------------
/media/images/pythonic_world.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/pythonic_world.jpg
--------------------------------------------------------------------------------
/media/images/raspberry_pi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/raspberry_pi.png
--------------------------------------------------------------------------------
/media/sourceimages/bg-flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/bg-flag.png
--------------------------------------------------------------------------------
/media/sourceimages/bullet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/bullet.png
--------------------------------------------------------------------------------
/media/sourceimages/ico-lang.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/ico-lang.png
--------------------------------------------------------------------------------
/media/sourceimages/label1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label1.png
--------------------------------------------------------------------------------
/media/sourceimages/label2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label2.png
--------------------------------------------------------------------------------
/media/sourceimages/label3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label3.png
--------------------------------------------------------------------------------
/media/sourceimages/label4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label4.png
--------------------------------------------------------------------------------
/media/sourceimages/label5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label5.png
--------------------------------------------------------------------------------
/media/sourceimages/label6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label6.png
--------------------------------------------------------------------------------
/media/sourceimages/label7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label7.png
--------------------------------------------------------------------------------
/media/sourceimages/label8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label8.png
--------------------------------------------------------------------------------
/media/sourceimages/sprite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/sprite.png
--------------------------------------------------------------------------------
/media/sourceimages/top-mask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/top-mask.png
--------------------------------------------------------------------------------
/media/sourceimages/top-menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/top-menu.png
--------------------------------------------------------------------------------
/media/images/bg-planet1-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet1-small.png
--------------------------------------------------------------------------------
/media/images/bg-planet2-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet2-small.png
--------------------------------------------------------------------------------
/media/images/bg-planet3-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet3-small.png
--------------------------------------------------------------------------------
/media/images/bg-planet4-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/bg-planet4-small.png
--------------------------------------------------------------------------------
/media/images/learning_is_play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/learning_is_play.png
--------------------------------------------------------------------------------
/media/images/mask-header-drop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/mask-header-drop.png
--------------------------------------------------------------------------------
/media/sourceimages/img-visual.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/img-visual.jpg
--------------------------------------------------------------------------------
/media/sourceimages/separator1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/separator1.png
--------------------------------------------------------------------------------
/media/sourceimages/separator2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/separator2.png
--------------------------------------------------------------------------------
/media/sourceimages/separator3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/separator3.png
--------------------------------------------------------------------------------
/media/sourceimages/separator4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/separator4.png
--------------------------------------------------------------------------------
/media/images/explore_with_python.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/explore_with_python.png
--------------------------------------------------------------------------------
/media/images/microbit_space_hand.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/microbit_space_hand.png
--------------------------------------------------------------------------------
/media/images/play_is_creativity.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/play_is_creativity.png
--------------------------------------------------------------------------------
/media/images/python_logo_light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/python_logo_light.png
--------------------------------------------------------------------------------
/media/sourceimages/bg-c-mobile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/bg-c-mobile.jpg
--------------------------------------------------------------------------------
/media/sourceimages/bg-t-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/bg-t-mobile.png
--------------------------------------------------------------------------------
/media/sourceimages/label-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/label-mobile.png
--------------------------------------------------------------------------------
/media/sourceimages/logo-footer.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/logo-footer.jpg
--------------------------------------------------------------------------------
/media/sourceimages/logo-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/logo-mobile.png
--------------------------------------------------------------------------------
/media/sourceimages/mask-footer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/mask-footer.png
--------------------------------------------------------------------------------
/media/sourceimages/mask-header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/mask-header.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/mu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/mu.png
--------------------------------------------------------------------------------
/media/sourceimages/mask-header-drop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/sourceimages/mask-header-drop.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/comic1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/comic1.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/comic2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/comic2.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/comic3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/comic3.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/comic4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/comic4.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/comic5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/comic5.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/comic6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/comic6.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/header.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/help.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/info.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/python.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/python.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/snake.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/snake.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/zoom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/zoom.png
--------------------------------------------------------------------------------
/media/images/creativity_is_exploration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/images/creativity_is_exploration.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/bbcLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/bbcLogo.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/download.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/download.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/favicon.ico
--------------------------------------------------------------------------------
/media/static/editor/static/img/microbit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/microbit.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/snippet1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/snippet1.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/snippet2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/snippet2.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/snippet3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/snippet3.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/snippet4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/snippet4.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/snippet5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/snippet5.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/snippets.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/snippets.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/background.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/editor_text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/editor_text.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/micropython.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/micropython.gif
--------------------------------------------------------------------------------
/media/static/editor/static/img/micropython.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/micropython.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/my_scripts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/my_scripts.png
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/d.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/d",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="d"})
--------------------------------------------------------------------------------
/media/static/editor/static/img/micropython.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/micropython.jpeg
--------------------------------------------------------------------------------
/media/static/editor/static/img/scroll-hello.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/scroll-hello.gif
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/ada.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/ada",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ada"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/dot.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/dot",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="dot"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/ejs.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/ejs",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ejs"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/elm.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/elm",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="elm"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/ftl.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/ftl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ftl"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/ini.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/ini",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ini"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/jsx.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/jsx",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jsx"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/mel.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/mel",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mel"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/nix.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/nix",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="nix"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/sjs.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/sjs",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="sjs"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/svg.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/svg",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="svg"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/xml.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/xml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="xml"})
--------------------------------------------------------------------------------
/media/static/editor/static/img/antipodean_snake.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/antipodean_snake.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/python-powered.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/python-powered.png
--------------------------------------------------------------------------------
/media/static/editor/static/img/snippet_example.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/snippet_example.gif
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/abap.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/abap",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="abap"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/elixir.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/elixir",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/glsl.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/glsl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="glsl"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/haxe.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/haxe",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="haxe"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/jack.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/jack",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jack"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/jade.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/jade",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="jade"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/json.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/json",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="json"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/lean.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/lean",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="lean"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/less.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/less",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="less"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/lisp.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/lisp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="lisp"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/mask.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/mask",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mask"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/rdoc.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/rdoc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rdoc"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/rust.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/rust",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rust"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/sass.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/sass",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="sass"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/scad.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/scad",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scad"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/scss.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/scss",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scss"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/text.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="text"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/toml.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/toml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="toml"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/twig.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/twig",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="twig"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/vhdl.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/vhdl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="vhdl"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/yaml.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/yaml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="yaml"})
--------------------------------------------------------------------------------
/media/fonts/bootstrap/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/fonts/bootstrap/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/media/fonts/bootstrap/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/fonts/bootstrap/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/media/fonts/bootstrap/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/fonts/bootstrap/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/media/fonts/bootstrap/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/fonts/bootstrap/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/cirru.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/cirru",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="cirru"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/cobol.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/cobol",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="cobol"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/csharp.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/csharp",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="csharp"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/curly.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/curly",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="curly"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/eiffel.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/eiffel",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="eiffel"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/forth.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/forth",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="forth"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/gcode.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/gcode",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gcode"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/golang.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/golang",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="golang"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/groovy.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/groovy",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="groovy"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/julia.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/julia",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="julia"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/latex.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/latex",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="latex"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/liquid.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/liquid",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="liquid"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/logiql.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/logiql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="logiql"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/lucene.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/lucene",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="lucene"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/matlab.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/matlab",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="matlab"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/mysql.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/mysql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mysql"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/ocaml.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/ocaml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="ocaml"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/pascal.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/pascal",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="pascal"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/pgsql.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/pgsql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="pgsql"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/praat.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/praat",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="praat"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/prolog.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/prolog",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="prolog"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/protobuf.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/protobuf",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="",t.scope="protobuf"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/rhtml.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/rhtml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="rhtml"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/scala.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/scala",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scala"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/scheme.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/scheme",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="scheme"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/smarty.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/smarty",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="smarty"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/space.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/space",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="space"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/stylus.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/stylus",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="stylus"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/asciidoc.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/asciidoc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="asciidoc"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/c9search.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/c9search",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="c9search"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/gherkin.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/gherkin",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gherkin"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/live_script.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/live_script",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/luapage.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/luapage",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="luapage"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/mushcode.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/mushcode",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mushcode"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/vbscript.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/vbscript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="vbscript"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/verilog.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/verilog",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="verilog"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/batchfile.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/batchfile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="batchfile"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/gitignore.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/gitignore",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="gitignore"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/html_ruby.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/html_ruby",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="html_ruby"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/mipsassembler.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/mipsassembler",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope=""})
--------------------------------------------------------------------------------
/media/static/editor/static/img/tech_support_cheat_sheet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/static/img/tech_support_cheat_sheet.png
--------------------------------------------------------------------------------
/content/de/index.md:
--------------------------------------------------------------------------------
1 | type: page_de
2 | category: home
3 | slug: index
4 | url: /de/index.html
5 | title: Python in der Bildung
6 | ---
7 |
8 | #Demnächst!#
9 |
10 | (Auf Deutsch)
11 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/apache_conf.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/apache_conf",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="apache_conf"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/applescript.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/applescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="applescript"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/autohotkey.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/autohotkey",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="autohotkey"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/coldfusion.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/coldfusion",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="coldfusion"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/dockerfile.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/dockerfile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="dockerfile"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/handlebars.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/handlebars",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="handlebars"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/livescript.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/livescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="livescript"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/objectivec.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/objectivec",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="objectivec"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/plain_text.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/plain_text",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="plain_text"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/powershell.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/powershell",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="powershell"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/properties.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/properties",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="properties"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/typescript.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/typescript",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="typescript"})
--------------------------------------------------------------------------------
/media/static/editor/tests/lib/jasmine-2.3.4/jasmine_favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/python/pythonineducation.org/master/media/static/editor/tests/lib/jasmine-2.3.4/jasmine_favicon.png
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/assembly_x86.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/assembly_x86",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="assembly_x86"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/soy_template.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/soy_template",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="soy_template"})
--------------------------------------------------------------------------------
/media/static/editor/ace/ext-error_marker.js:
--------------------------------------------------------------------------------
1 | ;
2 | (function() {
3 | ace.require(["ace/ext/error_marker"], function() {});
4 | })();
5 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/mips_assembler.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/mips_assembler",["require","exports","module"],function(e,t,n){"use strict";t.snippetText=undefined,t.scope="mips_assembler"})
--------------------------------------------------------------------------------
/content/en/raspberry-pi/index.md:
--------------------------------------------------------------------------------
1 | type: page_en
2 | slug: raspberry-pi
3 | url: /en/raspberry-pi/index.html
4 | title: Python on the Raspberry Pi
5 | ---
6 |
7 | #Coming soon!#
8 |
9 | (In English)
10 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_center-block.scss:
--------------------------------------------------------------------------------
1 | // Center-align a block level element
2 |
3 | @mixin center-block() {
4 | display: block;
5 | margin-left: auto;
6 | margin-right: auto;
7 | }
8 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_opacity.scss:
--------------------------------------------------------------------------------
1 | // Opacity
2 |
3 | @mixin opacity($opacity) {
4 | opacity: $opacity;
5 | // IE8 filter
6 | $opacity-ie: ($opacity * 100);
7 | filter: alpha(opacity=$opacity-ie);
8 | }
9 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/makefile.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/makefile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet ifeq\n ifeq (${1:cond0},${2:cond1})\n ${3:code}\n endif\n",t.scope="makefile"})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_size.scss:
--------------------------------------------------------------------------------
1 | // Sizing shortcuts
2 |
3 | @mixin size($width, $height) {
4 | width: $width;
5 | height: $height;
6 | }
7 |
8 | @mixin square($size) {
9 | @include size($size, $size);
10 | }
11 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_text-overflow.scss:
--------------------------------------------------------------------------------
1 | // Text overflow
2 | // Requires inline-block or block for proper styling
3 |
4 | @mixin text-overflow() {
5 | overflow: hidden;
6 | text-overflow: ellipsis;
7 | white-space: nowrap;
8 | }
9 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_tab-focus.scss:
--------------------------------------------------------------------------------
1 | // WebKit-style focus
2 |
3 | @mixin tab-focus() {
4 | // Default
5 | outline: thin dotted;
6 | // WebKit
7 | outline: 5px auto -webkit-focus-ring-color;
8 | outline-offset: -2px;
9 | }
10 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_resize.scss:
--------------------------------------------------------------------------------
1 | // Resize anything
2 |
3 | @mixin resizable($direction) {
4 | resize: $direction; // Options: horizontal, vertical, both
5 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
6 | }
7 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_labels.scss:
--------------------------------------------------------------------------------
1 | // Labels
2 |
3 | @mixin label-variant($color) {
4 | background-color: $color;
5 |
6 | &[href] {
7 | &:hover,
8 | &:focus {
9 | background-color: darken($color, 10%);
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/media/static/editor/static/css/starter-template.css:
--------------------------------------------------------------------------------
1 | body {
2 | padding-top: 50px;
3 | }
4 | .starter-template {
5 | padding: 40px 15px;
6 | text-align: center;
7 | }
8 |
9 | h2 {
10 | padding-top: 64px;
11 | }
12 |
13 | video {
14 | padding-bottom: 20px;
15 | }
16 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: python
2 | sudo: false
3 |
4 | cache:
5 | directories:
6 | - $HOME/.cache/pip
7 |
8 | install:
9 | - pip install --disable-pip-version-check --upgrade pip
10 | - pip install -r requirements.txt
11 |
12 | script: make test
13 |
14 | after_success: make deploy
15 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/maze.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/maze",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet >\ndescription assignment\nscope maze\n -> ${1}= ${2}\n\nsnippet >\ndescription if\nscope maze\n -> IF ${2:**} THEN %${3:L} ELSE %${4:R}\n",t.scope="maze"})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_progress-bar.scss:
--------------------------------------------------------------------------------
1 | // Progress bars
2 |
3 | @mixin progress-bar-variant($color) {
4 | background-color: $color;
5 |
6 | // Deprecated parent class requirement as of v3.2.0
7 | .progress-striped & {
8 | @include gradient-striped;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_text-emphasis.scss:
--------------------------------------------------------------------------------
1 | // Typography
2 |
3 | // [converter] $parent hack
4 | @mixin text-emphasis-variant($parent, $color) {
5 | #{$parent} {
6 | color: $color;
7 | }
8 | a#{$parent}:hover,
9 | a#{$parent}:focus {
10 | color: darken($color, 10%);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_reset-filter.scss:
--------------------------------------------------------------------------------
1 | // Reset filters for IE
2 | //
3 | // When you need to remove a gradient background, do not forget to use this to reset
4 | // the IE filter for IE9 and below.
5 |
6 | @mixin reset-filter() {
7 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
8 | }
9 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/snippets.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/snippets",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# snippets for making snippets :)\nsnippet snip\n snippet ${1:trigger}\n ${2}\nsnippet msnip\n snippet ${1:trigger} ${2:description}\n ${3}\nsnippet v\n {VISUAL}\n",t.scope="snippets"})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_nav-divider.scss:
--------------------------------------------------------------------------------
1 | // Horizontal dividers
2 | //
3 | // Dividers (basically an hr) within dropdowns and nav lists
4 |
5 | @mixin nav-divider($color: #e5e5e5) {
6 | height: 1px;
7 | margin: (($line-height-computed / 2) - 1) 0;
8 | overflow: hidden;
9 | background-color: $color;
10 | }
11 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_background-variant.scss:
--------------------------------------------------------------------------------
1 | // Contextual backgrounds
2 |
3 | // [converter] $parent hack
4 | @mixin bg-variant($parent, $color) {
5 | #{$parent} {
6 | background-color: $color;
7 | }
8 | a#{$parent}:hover,
9 | a#{$parent}:focus {
10 | background-color: darken($color, 10%);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_alerts.scss:
--------------------------------------------------------------------------------
1 | // Alerts
2 |
3 | @mixin alert-variant($background, $border, $text-color) {
4 | background-color: $background;
5 | border-color: $border;
6 | color: $text-color;
7 |
8 | hr {
9 | border-top-color: darken($border, 5%);
10 | }
11 | .alert-link {
12 | color: darken($text-color, 10%);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/content/de/microbit/index.html:
--------------------------------------------------------------------------------
1 | type: microbit_de
2 | slug: microbit
3 | url: /de/microbit/index.html
4 | title: Startseite
5 | ---
6 |
7 |
8 |
9 |
10 |
Dies ist eine Demo-Content-Seite
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/media/static/editor/tests/README.rst:
--------------------------------------------------------------------------------
1 | Python Code Editor Tests
2 | ========================
3 |
4 | To run the tests point your browser at the tests.html file in the root of this
5 | repository.
6 |
7 | These tests target the Python specific code written for this editor. They use
8 | the Jasmine (https://jasmine.github.io/) BDD test library.
9 |
10 | Further tests *may* be written to exercise the wider TouchDevelop based code
11 | used within the editor.
12 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_nav-vertical-align.scss:
--------------------------------------------------------------------------------
1 | // Navbar vertical align
2 | //
3 | // Vertically center elements in the navbar.
4 | // Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.
5 |
6 | @mixin navbar-vertical-align($element-height) {
7 | margin-top: (($navbar-height - $element-height) / 2);
8 | margin-bottom: (($navbar-height - $element-height) / 2);
9 | }
10 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/haml.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/haml",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet t\n %table\n %tr\n %th\n ${1:headers}\n %tr\n %td\n ${2:headers}\nsnippet ul\n %ul\n %li\n ${1:item}\n %li\nsnippet =rp\n = render :partial => '${1:partial}'\nsnippet =rpl\n = render :partial => '${1:partial}', :locals => {}\nsnippet =rpc\n = render :partial => '${1:partial}', :collection => @$1\n\n",t.scope="haml"})
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-plain_text.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/plain_text",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/behaviour"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour").Behaviour,u=function(){this.HighlightRules=s,this.$behaviour=new o};r.inherits(u,i),function(){this.type="text",this.getNextLineIndent=function(e,t,n){return""},this.$id="ace/mode/plain_text"}.call(u.prototype),t.Mode=u})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/lua.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/lua",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet #!\n #!/usr/bin/env lua\n $1\nsnippet local\n local ${1:x} = ${2:1}\nsnippet fun\n function ${1:fname}(${2:...})\n ${3:-- body}\n end\nsnippet for\n for ${1:i}=${2:1},${3:10} do\n ${4:print(i)}\n end\nsnippet forp\n for ${1:i},${2:v} in pairs(${3:table_name}) do\n ${4:-- body}\n end\nsnippet fori\n for ${1:i},${2:v} in ipairs(${3:table_name}) do\n ${4:-- body}\n end\n",t.scope="lua"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/textile.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/textile",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Jekyll post header\nsnippet header\n ---\n title: ${1:title}\n layout: post\n date: ${2:date} ${3:hour:minute:second} -05:00\n ---\n\n# Image\nsnippet img\n !${1:url}(${2:title}):${3:link}!\n\n# Table\nsnippet |\n |${1}|${2}\n\n# Link\nsnippet link\n "${1:link text}":${2:url}\n\n# Acronym\nsnippet (\n (${1:Expand acronym})${2}\n\n# Footnote\nsnippet fn\n [${1:ref number}] ${3}\n\n fn$1. ${2:footnote}\n \n',t.scope="textile"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/diff.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/diff",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\nsnippet header DEP-3 style header\n Description: ${1}\n Origin: ${2:vendor|upstream|other}, ${3:url of the original patch}\n Bug: ${4:url in upstream bugtracker}\n Forwarded: ${5:no|not-needed|url}\n Author: ${6:`g:snips_author`}\n Reviewed-by: ${7:name and email}\n Last-Update: ${8:`strftime("%Y-%m-%d")`}\n Applied-Upstream: ${9:upstream version|url|commit}\n\n',t.scope="diff"})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_reset-text.scss:
--------------------------------------------------------------------------------
1 | @mixin reset-text() {
2 | font-family: $font-family-base;
3 | // We deliberately do NOT reset font-size.
4 | font-style: normal;
5 | font-weight: normal;
6 | letter-spacing: normal;
7 | line-break: auto;
8 | line-height: $line-height-base;
9 | text-align: left; // Fallback for where `start` is not supported
10 | text-align: start;
11 | text-decoration: none;
12 | text-shadow: none;
13 | text-transform: none;
14 | white-space: normal;
15 | word-break: normal;
16 | word-spacing: normal;
17 | word-wrap: normal;
18 | }
19 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_border-radius.scss:
--------------------------------------------------------------------------------
1 | // Single side border-radius
2 |
3 | @mixin border-top-radius($radius) {
4 | border-top-right-radius: $radius;
5 | border-top-left-radius: $radius;
6 | }
7 | @mixin border-right-radius($radius) {
8 | border-bottom-right-radius: $radius;
9 | border-top-right-radius: $radius;
10 | }
11 | @mixin border-bottom-radius($radius) {
12 | border-bottom-right-radius: $radius;
13 | border-bottom-left-radius: $radius;
14 | }
15 | @mixin border-left-radius($radius) {
16 | border-bottom-left-radius: $radius;
17 | border-top-left-radius: $radius;
18 | }
19 |
--------------------------------------------------------------------------------
/media/static/editor/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2015 The Python Software Foundation (http://python.org/)
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | #
2 | # This file is autogenerated by pip-compile
3 | # Make changes in requirements.in, then run this to update:
4 | #
5 | # pip-compile requirements.in
6 | #
7 | awesome-slugify==1.4 # via wok
8 | docutils==0.8.1 # via wok
9 | Jinja2==2.6 # via wok
10 | Markdown==2.1.1 # via wok
11 | py==1.4.31 # via pytest
12 | Pygments==1.4 # via wok
13 | pytest==2.5.2 # via wok
14 | PyYAML==3.10 # via wok
15 | regex==2016.3.2 # via awesome-slugify
16 | Unidecode==0.4.19 # via awesome-slugify
17 | libsass==0.11.1 # to make the css
18 | wok==1.1.1
19 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/velocity.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/velocity",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# macro\nsnippet #macro\n #macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n ${3:## macro code}\n #end\n# foreach\nsnippet #foreach\n #foreach ( ${1:\\$item} in ${2:\\$collection} )\n ${3:## foreach code}\n #end\n# if\nsnippet #if\n #if ( ${1:true} )\n ${0}\n #end\n# if ... else\nsnippet #ife\n #if ( ${1:true} )\n ${2}\n #else\n ${0}\n #end\n#import\nsnippet #import\n #import ( "${1:path/to/velocity/format}" )\n# set\nsnippet #set\n #set ( $${1:var} = ${0} )\n',t.scope="velocity",t.includeScopes=["html","javascript","css"]})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_pagination.scss:
--------------------------------------------------------------------------------
1 | // Pagination
2 |
3 | @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
4 | > li {
5 | > a,
6 | > span {
7 | padding: $padding-vertical $padding-horizontal;
8 | font-size: $font-size;
9 | line-height: $line-height;
10 | }
11 | &:first-child {
12 | > a,
13 | > span {
14 | @include border-left-radius($border-radius);
15 | }
16 | }
17 | &:last-child {
18 | > a,
19 | > span {
20 | @include border-right-radius($border-radius);
21 | }
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_responsive-visibility.scss:
--------------------------------------------------------------------------------
1 | // Responsive utilities
2 |
3 | //
4 | // More easily include all the states for responsive-utilities.less.
5 | // [converter] $parent hack
6 | @mixin responsive-visibility($parent) {
7 | #{$parent} {
8 | display: block !important;
9 | }
10 | table#{$parent} { display: table !important; }
11 | tr#{$parent} { display: table-row !important; }
12 | th#{$parent},
13 | td#{$parent} { display: table-cell !important; }
14 | }
15 |
16 | // [converter] $parent hack
17 | @mixin responsive-invisibility($parent) {
18 | #{$parent} {
19 | display: none !important;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_panels.scss:
--------------------------------------------------------------------------------
1 | // Panels
2 |
3 | @mixin panel-variant($border, $heading-text-color, $heading-bg-color, $heading-border) {
4 | border-color: $border;
5 |
6 | & > .panel-heading {
7 | color: $heading-text-color;
8 | background-color: $heading-bg-color;
9 | border-color: $heading-border;
10 |
11 | + .panel-collapse > .panel-body {
12 | border-top-color: $border;
13 | }
14 | .badge {
15 | color: $heading-bg-color;
16 | background-color: $heading-text-color;
17 | }
18 | }
19 | & > .panel-footer {
20 | + .panel-collapse > .panel-body {
21 | border-bottom-color: $border;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_wells.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Wells
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .well {
8 | min-height: 20px;
9 | padding: 19px;
10 | margin-bottom: 20px;
11 | background-color: $well-bg;
12 | border: 1px solid $well-border;
13 | border-radius: $border-radius-base;
14 | @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
15 | blockquote {
16 | border-color: #ddd;
17 | border-color: rgba(0,0,0,.15);
18 | }
19 | }
20 |
21 | // Sizes
22 | .well-lg {
23 | padding: 24px;
24 | border-radius: $border-radius-large;
25 | }
26 | .well-sm {
27 | padding: 9px;
28 | border-radius: $border-radius-small;
29 | }
30 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_hide-text.scss:
--------------------------------------------------------------------------------
1 | // CSS image replacement
2 | //
3 | // Heads up! v3 launched with only `.hide-text()`, but per our pattern for
4 | // mixins being reused as classes with the same name, this doesn't hold up. As
5 | // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6 | //
7 | // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8 |
9 | // Deprecated as of v3.0.1 (has been removed in v4)
10 | @mixin hide-text() {
11 | font: 0/0 a;
12 | color: transparent;
13 | text-shadow: none;
14 | background-color: transparent;
15 | border: 0;
16 | }
17 |
18 | // New mixin to use as of v3.0.1
19 | @mixin text-hide() {
20 | @include hide-text;
21 | }
22 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_clearfix.scss:
--------------------------------------------------------------------------------
1 | // Clearfix
2 | //
3 | // For modern browsers
4 | // 1. The space content is one way to avoid an Opera bug when the
5 | // contenteditable attribute is included anywhere else in the document.
6 | // Otherwise it causes space to appear at the top and bottom of elements
7 | // that are clearfixed.
8 | // 2. The use of `table` rather than `block` is only necessary if using
9 | // `:before` to contain the top-margins of child elements.
10 | //
11 | // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12 |
13 | @mixin clearfix() {
14 | &:before,
15 | &:after {
16 | content: " "; // 1
17 | display: table; // 2
18 | }
19 | &:after {
20 | clear: both;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/templates/page_en.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 |
3 | {% block secret %}
4 | Congratulations! You have found "the source". :-)
5 |
6 | You're obviously inquisitive ~ and this is a good thing. If you want to know
7 | how this site really works you should visit:
8 |
9 | https://github.com/python/pythonineducation.org
10 |
11 | We welcome contributions from anyone, no matter who you are. If you're
12 | thinking, "but they don't mean me", WE ESPECIALLY MEAN YOU. For more
13 | information see:
14 |
15 | https://github.com/python/pythonineducation.org/blob/master/CONTRIBUTING.rst
16 |
17 | Best wishes!
18 | {% endblock %}
19 |
20 | {% block title %}Python in Education - {% endblock %}
21 |
22 | {% block content %}
23 | {{ page.content }}
24 | {% endblock %}
25 |
26 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_responsive-embed.scss:
--------------------------------------------------------------------------------
1 | // Embeds responsive
2 | //
3 | // Credit: Nicolas Gallagher and SUIT CSS.
4 |
5 | .embed-responsive {
6 | position: relative;
7 | display: block;
8 | height: 0;
9 | padding: 0;
10 | overflow: hidden;
11 |
12 | .embed-responsive-item,
13 | iframe,
14 | embed,
15 | object,
16 | video {
17 | position: absolute;
18 | top: 0;
19 | left: 0;
20 | bottom: 0;
21 | height: 100%;
22 | width: 100%;
23 | border: 0;
24 | }
25 | }
26 |
27 | // Modifier class for 16:9 aspect ratio
28 | .embed-responsive-16by9 {
29 | padding-bottom: 56.25%;
30 | }
31 |
32 | // Modifier class for 4:3 aspect ratio
33 | .embed-responsive-4by3 {
34 | padding-bottom: 75%;
35 | }
36 |
--------------------------------------------------------------------------------
/media/static/editor/static/js/ie10-viewport-bug-workaround.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * IE10 viewport hack for Surface/desktop Windows 8 bug
3 | * Copyright 2014-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | // See the Getting Started docs for more information:
8 | // http://getbootstrap.com/getting-started/#support-ie10-width
9 |
10 | (function () {
11 | 'use strict';
12 |
13 | if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
14 | var msViewportStyle = document.createElement('style')
15 | msViewportStyle.appendChild(
16 | document.createTextNode(
17 | '@-ms-viewport{width:auto!important}'
18 | )
19 | )
20 | document.querySelector('head').appendChild(msViewportStyle)
21 | }
22 |
23 | })();
24 |
--------------------------------------------------------------------------------
/media/static/editor/ace/ext-linking.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/ext/linking",["require","exports","module","ace/editor","ace/config"],function(e,t,n){function i(e){var t=e.editor,n=e.getAccelKey();if(n){var t=e.editor,r=e.getDocumentPosition(),i=t.session,s=i.getTokenAt(r.row,r.column);t._emit("linkHover",{position:r,token:s})}}function s(e){var t=e.getAccelKey(),n=e.getButton();if(n==0&&t){var r=e.editor,i=e.getDocumentPosition(),s=r.session,o=s.getTokenAt(i.row,i.column);r._emit("linkClick",{position:i,token:o})}}var r=e("ace/editor").Editor;e("../config").defineOptions(r.prototype,"editor",{enableLinking:{set:function(e){e?(this.on("click",s),this.on("mousemove",i)):(this.off("click",s),this.off("mousemove",i))},value:!1}})});
2 | (function() {
3 | ace.require(["ace/ext/linking"], function() {});
4 | })();
5 |
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-gitignore.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/gitignore_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"comment",regex:/^\s*#.*$/},{token:"keyword",regex:/^\s*!.*$/}]},this.normalizeRules()};s.metaData={fileTypes:["gitignore"],name:"Gitignore"},r.inherits(s,i),t.GitignoreHighlightRules=s}),ace.define("ace/mode/gitignore",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gitignore_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./gitignore_highlight_rules").GitignoreHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart="#",this.$id="ace/mode/gitignore"}.call(o.prototype),t.Mode=o})
--------------------------------------------------------------------------------
/media/static/editor/static/img/index.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_breadcrumbs.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Breadcrumbs
3 | // --------------------------------------------------
4 |
5 |
6 | .breadcrumb {
7 | padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
8 | margin-bottom: $line-height-computed;
9 | list-style: none;
10 | background-color: $breadcrumb-bg;
11 | border-radius: $border-radius-base;
12 |
13 | > li {
14 | display: inline-block;
15 |
16 | + li:before {
17 | // [converter] Workaround for https://github.com/sass/libsass/issues/1115
18 | $nbsp: "\00a0";
19 | content: "#{$breadcrumb-separator}#{$nbsp}"; // Unicode space added since inline-block means non-collapsing white-space
20 | padding: 0 5px;
21 | color: $breadcrumb-color;
22 | }
23 | }
24 |
25 | > .active {
26 | color: $breadcrumb-active-color;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_list-group.scss:
--------------------------------------------------------------------------------
1 | // List Groups
2 |
3 | @mixin list-group-item-variant($state, $background, $color) {
4 | .list-group-item-#{$state} {
5 | color: $color;
6 | background-color: $background;
7 |
8 | // [converter] extracted a&, button& to a.list-group-item-#{$state}, button.list-group-item-#{$state}
9 | }
10 |
11 | a.list-group-item-#{$state},
12 | button.list-group-item-#{$state} {
13 | color: $color;
14 |
15 | .list-group-item-heading {
16 | color: inherit;
17 | }
18 |
19 | &:hover,
20 | &:focus {
21 | color: $color;
22 | background-color: darken($background, 5%);
23 | }
24 | &.active,
25 | &.active:hover,
26 | &.active:focus {
27 | color: #fff;
28 | background-color: $color;
29 | border-color: $color;
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | .PHONY: help build serve test deploy
2 |
3 | help:
4 | @echo 'Makefile for pythonineducation.org'
5 | @echo ''
6 | @echo 'Usage:'
7 | @echo ' make sass build the static CSS files from sass'
8 | @echo ' make build build the site into the output directory'
9 | @echo ' make serve build the site and serve on port 8000, watching for changes'
10 | @echo ' make test test that site builds, has no broken links, and spells the conference name correctly'
11 | @echo ' make deploy deploy site'
12 | @echo ''
13 |
14 | sass:
15 | sassc media/scss/main.scss media/css/main.css
16 | sassc media/scss/bootstrap.scss media/css/bootstrap.css
17 | sassc media/scss/bootstrap-extended.scss media/css/bootstrap-extended.css
18 |
19 | build: sass
20 | wok
21 |
22 | serve: sass
23 | wok --serve
24 |
25 | test:
26 | ./pre-flight-checks.sh
27 |
28 | deploy:
29 | ./deploy.sh
30 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_table-row.scss:
--------------------------------------------------------------------------------
1 | // Tables
2 |
3 | @mixin table-row-variant($state, $background) {
4 | // Exact selectors below required to override `.table-striped` and prevent
5 | // inheritance to nested tables.
6 | .table > thead > tr,
7 | .table > tbody > tr,
8 | .table > tfoot > tr {
9 | > td.#{$state},
10 | > th.#{$state},
11 | &.#{$state} > td,
12 | &.#{$state} > th {
13 | background-color: $background;
14 | }
15 | }
16 |
17 | // Hover states for `.table-hover`
18 | // Note: this is not available for cells or rows within `thead` or `tfoot`.
19 | .table-hover > tbody > tr {
20 | > td.#{$state}:hover,
21 | > th.#{$state}:hover,
22 | &.#{$state}:hover > td,
23 | &:hover > .#{$state},
24 | &.#{$state}:hover > th {
25 | background-color: darken($background, 5%);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/sql.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/sql",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet tbl\n create table ${1:table} (\n ${2:columns}\n );\nsnippet col\n ${1:name} ${2:type} ${3:default ''} ${4:not null}\nsnippet ccol\n ${1:name} varchar2(${2:size}) ${3:default ''} ${4:not null}\nsnippet ncol\n ${1:name} number ${3:default 0} ${4:not null}\nsnippet dcol\n ${1:name} date ${3:default sysdate} ${4:not null}\nsnippet ind\n create index ${3:$1_$2} on ${1:table}(${2:column});\nsnippet uind\n create unique index ${1:name} on ${2:table}(${3:column});\nsnippet tblcom\n comment on table ${1:table} is '${2:comment}';\nsnippet colcom\n comment on column ${1:table}.${2:column} is '${3:comment}';\nsnippet addcol\n alter table ${1:table} add (${2:column} ${3:type});\nsnippet seq\n create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\nsnippet s*\n select * from ${1:table}\n",t.scope="sql"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/abc.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/abc",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='\nsnippet zupfnoter.print\n %%%%hn.print {"startpos": ${1:pos_y}, "t":"${2:title}", "v":[${3:voices}], "s":[[${4:syncvoices}1,2]], "f":[${5:flowlines}], "sf":[${6:subflowlines}], "j":[${7:jumplines}]}\n\nsnippet zupfnoter.note\n %%%%hn.note {"pos": [${1:pos_x},${2:pos_y}], "text": "${3:text}", "style": "${4:style}"}\n\nsnippet zupfnoter.annotation\n %%%%hn.annotation {"id": "${1:id}", "pos": [${2:pos}], "text": "${3:text}"}\n\nsnippet zupfnoter.lyrics\n %%%%hn.lyrics {"pos": [${1:x_pos},${2:y_pos}]}\n\nsnippet zupfnoter.legend\n %%%%hn.legend {"pos": [${1:x_pos},${2:y_pos}]}\n\n\n\nsnippet zupfnoter.target\n "^:${1:target}"\n\nsnippet zupfnoter.goto\n "^@${1:target}@${2:distance}"\n\nsnippet zupfnoter.annotationref\n "^#${1:target}"\n\nsnippet zupfnoter.annotation\n "^!${1:text}@${2:x_offset},${3:y_offset}"\n\n\n',t.scope="abc"})
--------------------------------------------------------------------------------
/media/static/editor/CHANGELOG:
--------------------------------------------------------------------------------
1 | 0.6
2 | ---
3 |
4 | * Update to the latest version of MicroPython:
5 | - File system.
6 | - Radio.
7 | - Audio.
8 | - Speech.
9 | * Fork to work on pythonineducation.org website.
10 | * Initial internationalisation work.
11 |
12 | 0.5
13 | ---
14 |
15 | * Update to the latest version of MicroPython:
16 | - Various minor code refactors.
17 | - More efficient ticker (reduces overhead of display update by 90%).
18 | - Add builtin set and frozenset types (from core Python).
19 | - Don't show SystemExit or KeyboardInterrupt exceptions on the display.
20 | * Update bug in editor that caused the status icon not to update to cloud.
21 | * Added test script here: https://stage.microbit.co.uk/hoqumw
22 | * Revised button-press code to be simpler.
23 | * Minor documentation updates.
24 |
25 | 0.4
26 | ---
27 |
28 | Initial tested public release.
29 |
30 | 0.1-0.3
31 | -------
32 |
33 | Private test versions.
34 |
--------------------------------------------------------------------------------
/content/index.html:
--------------------------------------------------------------------------------
1 | type: home
2 | slug: home
3 | url: index.html
4 | title: Python in Education
5 | ---
6 |
7 |
8 |
9 |
10 |
19 |
20 |
21 |

23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_close.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Close icons
3 | // --------------------------------------------------
4 |
5 |
6 | .close {
7 | float: right;
8 | font-size: ($font-size-base * 1.5);
9 | font-weight: $close-font-weight;
10 | line-height: 1;
11 | color: $close-color;
12 | text-shadow: $close-text-shadow;
13 | @include opacity(.2);
14 |
15 | &:hover,
16 | &:focus {
17 | color: $close-color;
18 | text-decoration: none;
19 | cursor: pointer;
20 | @include opacity(.5);
21 | }
22 |
23 | // [converter] extracted button& to button.close
24 | }
25 |
26 | // Additional properties for button version
27 | // iOS requires the button element instead of an anchor tag.
28 | // If you want the anchor version, it requires `href="#"`.
29 | // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
30 | button.close {
31 | padding: 0;
32 | cursor: pointer;
33 | background: transparent;
34 | border: 0;
35 | -webkit-appearance: none;
36 | }
37 |
--------------------------------------------------------------------------------
/media/static/editor/CONTRIBUTING.rst:
--------------------------------------------------------------------------------
1 | Contributing to the Editor
2 | ==========================
3 |
4 | Hey! Many thanks for wanting to improve the editor.
5 |
6 | Contributions are welcome without prejudice from *anyone* irrespective of
7 | age, gender, religion, race or sexuality. Good quality code and engagement
8 | with respect, humour and intelligence wins every time.
9 |
10 | We expect contributors to follow the Python Software Foundation's Code of
11 | Conduct: https://www.python.org/psf/codeofconduct/
12 |
13 | Feedback may be given for contributions and, where necessary, changes will
14 | be politely requested and discussed with the originating author. Respectful
15 | yet robust argument is most welcome.
16 |
17 | Checklist
18 | +++++++++
19 |
20 | * Your code should be commented in *plain English* (British spelling).
21 | * If your contribution is for a major block of work and you've not done so
22 | already, add yourself to the AUTHORS file following the convention found
23 | therein.
24 | * Try to include tests!
25 | * Have fun!
26 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_component-animations.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Component animations
3 | // --------------------------------------------------
4 |
5 | // Heads up!
6 | //
7 | // We don't use the `.opacity()` mixin here since it causes a bug with text
8 | // fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.
9 |
10 | .fade {
11 | opacity: 0;
12 | @include transition(opacity .15s linear);
13 | &.in {
14 | opacity: 1;
15 | }
16 | }
17 |
18 | .collapse {
19 | display: none;
20 |
21 | &.in { display: block; }
22 | // [converter] extracted tr&.in to tr.collapse.in
23 | // [converter] extracted tbody&.in to tbody.collapse.in
24 | }
25 |
26 | tr.collapse.in { display: table-row; }
27 |
28 | tbody.collapse.in { display: table-row-group; }
29 |
30 | .collapsing {
31 | position: relative;
32 | height: 0;
33 | overflow: hidden;
34 | @include transition-property(height, visibility);
35 | @include transition-duration(.35s);
36 | @include transition-timing-function(ease);
37 | }
38 |
--------------------------------------------------------------------------------
/media/images/term.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-properties.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/properties_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=/\\u[0-9a-fA-F]{4}|\\/;this.$rules={start:[{token:"comment",regex:/[!#].*$/},{token:"keyword",regex:/[=:]$/},{token:"keyword",regex:/[=:]/,next:"value"},{token:"constant.language.escape",regex:e},{defaultToken:"variable"}],value:[{regex:/\\$/,token:"string",next:"value"},{regex:/$/,token:"string",next:"start"},{token:"constant.language.escape",regex:e},{defaultToken:"string"}]}};r.inherits(s,i),t.PropertiesHighlightRules=s}),ace.define("ace/mode/properties",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/properties_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./properties_highlight_rules").PropertiesHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id="ace/mode/properties"}.call(o.prototype),t.Mode=o})
--------------------------------------------------------------------------------
/media/static/editor/ace/ext-statusbar.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"],function(e,t,n){"use strict";var r=e("ace/lib/dom"),i=e("ace/lib/lang"),s=function(e,t){this.element=r.createElement("div"),this.element.className="ace_status-indicator",this.element.style.cssText="display: inline-block;",t.appendChild(this.element);var n=i.delayedCall(function(){this.updateStatus(e)}.bind(this));e.on("changeStatus",function(){n.schedule(100)}),e.on("changeSelection",function(){n.schedule(100)})};(function(){this.updateStatus=function(e){function n(e,n){e&&t.push(e,n||"|")}var t=[];n(e.keyBinding.getStatusText(e)),e.commands.recording&&n("REC");var r=e.selection.lead;n(r.row+":"+r.column," ");if(!e.selection.isEmpty()){var i=e.getSelectionRange();n("("+(i.end.row-i.start.row)+":"+(i.end.column-i.start.column)+")")}t.pop(),this.element.textContent=t.join("")}}).call(s.prototype),t.StatusBar=s});
2 | (function() {
3 | ace.require(["ace/ext/statusbar"], function() {});
4 | })();
5 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_utilities.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Utility classes
3 | // --------------------------------------------------
4 |
5 |
6 | // Floats
7 | // -------------------------
8 |
9 | .clearfix {
10 | @include clearfix;
11 | }
12 | .center-block {
13 | @include center-block;
14 | }
15 | .pull-right {
16 | float: right !important;
17 | }
18 | .pull-left {
19 | float: left !important;
20 | }
21 |
22 |
23 | // Toggling content
24 | // -------------------------
25 |
26 | // Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1
27 | .hide {
28 | display: none !important;
29 | }
30 | .show {
31 | display: block !important;
32 | }
33 | .invisible {
34 | visibility: hidden;
35 | }
36 | .text-hide {
37 | @include text-hide;
38 | }
39 |
40 |
41 | // Hide from screenreaders and browsers
42 | //
43 | // Credit: HTML5 Boilerplate
44 |
45 | .hidden {
46 | display: none !important;
47 | }
48 |
49 |
50 | // For Affix plugin
51 | // -------------------------
52 |
53 | .affix {
54 | position: fixed;
55 | }
56 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_thumbnails.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Thumbnails
3 | // --------------------------------------------------
4 |
5 |
6 | // Mixin and adjust the regular image class
7 | .thumbnail {
8 | display: block;
9 | padding: $thumbnail-padding;
10 | margin-bottom: $line-height-computed;
11 | line-height: $line-height-base;
12 | background-color: $thumbnail-bg;
13 | border: 1px solid $thumbnail-border;
14 | border-radius: $thumbnail-border-radius;
15 | @include transition(border .2s ease-in-out);
16 |
17 | > img,
18 | a > img {
19 | @include img-responsive;
20 | margin-left: auto;
21 | margin-right: auto;
22 | }
23 |
24 | // [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active
25 |
26 | // Image captions
27 | .caption {
28 | padding: $thumbnail-caption-padding;
29 | color: $thumbnail-caption-color;
30 | }
31 | }
32 |
33 | // Add a hover state for linked versions only
34 | a.thumbnail:hover,
35 | a.thumbnail:focus,
36 | a.thumbnail.active {
37 | border-color: $link-color;
38 | }
39 |
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-lucene.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/lucene_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"constant.character.negation",regex:"[\\-]"},{token:"constant.character.interro",regex:"[\\?]"},{token:"constant.character.asterisk",regex:"[\\*]"},{token:"constant.character.proximity",regex:"~[0-9]+\\b"},{token:"keyword.operator",regex:"(?:AND|OR|NOT)\\b"},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"keyword",regex:"[\\S]+:"},{token:"string",regex:'".*?"'},{token:"text",regex:"\\s+"}]}};r.inherits(o,s),t.LuceneHighlightRules=o}),ace.define("ace/mode/lucene",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lucene_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./lucene_highlight_rules").LuceneHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.$id="ace/mode/lucene"}.call(o.prototype),t.Mode=o})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_pager.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Pager pagination
3 | // --------------------------------------------------
4 |
5 |
6 | .pager {
7 | padding-left: 0;
8 | margin: $line-height-computed 0;
9 | list-style: none;
10 | text-align: center;
11 | @include clearfix;
12 | li {
13 | display: inline;
14 | > a,
15 | > span {
16 | display: inline-block;
17 | padding: 5px 14px;
18 | background-color: $pager-bg;
19 | border: 1px solid $pager-border;
20 | border-radius: $pager-border-radius;
21 | }
22 |
23 | > a:hover,
24 | > a:focus {
25 | text-decoration: none;
26 | background-color: $pager-hover-bg;
27 | }
28 | }
29 |
30 | .next {
31 | > a,
32 | > span {
33 | float: right;
34 | }
35 | }
36 |
37 | .previous {
38 | > a,
39 | > span {
40 | float: left;
41 | }
42 | }
43 |
44 | .disabled {
45 | > a,
46 | > a:hover,
47 | > a:focus,
48 | > span {
49 | color: $pager-disabled-color;
50 | background-color: $pager-bg;
51 | cursor: $cursor-disabled;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/io.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/io",["require","exports","module"],function(e,t,n){"use strict";t.snippets=[{content:"assertEquals(${1:expected}, ${2:expr})",name:"assertEquals",scope:"io",tabTrigger:"ae"},{content:"${1:${2:newValue} := ${3:Object} }clone do(\n $0\n)",name:"clone do",scope:"io",tabTrigger:"cdo"},{content:'docSlot("${1:slotName}", "${2:documentation}")',name:"docSlot",scope:"io",tabTrigger:"ds"},{content:"(${1:header,}\n ${2:body}\n)$0",keyEquivalent:"@(",name:"Indented Bracketed Line",scope:"io",tabTrigger:"("},{content:"\n $0\n",keyEquivalent:"\r",name:"Special: Return Inside Empty Parenthesis",scope:"io meta.empty-parenthesis.io, io meta.comma-parenthesis.io"},{content:"${1:methodName} := method(${2:args,}\n $0\n)",name:"method",scope:"io",tabTrigger:"m"},{content:'newSlot("${1:slotName}", ${2:defaultValue}, "${3:docString}")$0',name:"newSlot",scope:"io",tabTrigger:"ns"},{content:"${1:name} := Object clone do(\n $0\n)",name:"Object clone do",scope:"io",tabTrigger:"ocdo"},{content:"test${1:SomeFeature} := method(\n $0\n)",name:"testMethod",scope:"io",tabTrigger:"ts"},{content:"${1:Something}Test := ${2:UnitTest} clone do(\n $0\n)",name:"UnitTest",scope:"io",tabTrigger:"ut"}],t.scope="io"})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_mixins.scss:
--------------------------------------------------------------------------------
1 | // Mixins
2 | // --------------------------------------------------
3 |
4 | // Utilities
5 | @import "mixins/hide-text";
6 | @import "mixins/opacity";
7 | @import "mixins/image";
8 | @import "mixins/labels";
9 | @import "mixins/reset-filter";
10 | @import "mixins/resize";
11 | @import "mixins/responsive-visibility";
12 | @import "mixins/size";
13 | @import "mixins/tab-focus";
14 | @import "mixins/reset-text";
15 | @import "mixins/text-emphasis";
16 | @import "mixins/text-overflow";
17 | @import "mixins/vendor-prefixes";
18 |
19 | // Components
20 | @import "mixins/alerts";
21 | @import "mixins/buttons";
22 | @import "mixins/panels";
23 | @import "mixins/pagination";
24 | @import "mixins/list-group";
25 | @import "mixins/nav-divider";
26 | @import "mixins/forms";
27 | @import "mixins/progress-bar";
28 | @import "mixins/table-row";
29 |
30 | // Skins
31 | @import "mixins/background-variant";
32 | @import "mixins/border-radius";
33 | @import "mixins/gradients";
34 |
35 | // Layout
36 | @import "mixins/clearfix";
37 | @import "mixins/center-block";
38 | @import "mixins/nav-vertical-align";
39 | @import "mixins/grid-framework";
40 | @import "mixins/grid";
41 |
--------------------------------------------------------------------------------
/media/scss/base/_helpers.scss:
--------------------------------------------------------------------------------
1 | // list reset
2 | %listreset {
3 | margin: 0;
4 | padding: 0;
5 | list-style: none;
6 | }
7 |
8 | // clearfix
9 | %clearfix {
10 | &:after {
11 | content: '';
12 | display: block;
13 | clear: both;
14 | }
15 | }
16 |
17 | .clearfix {
18 | @extend %clearfix;
19 | }
20 |
21 |
22 | // transition
23 | %transition {
24 | transition: all 0.3s ease-in-out;
25 | }
26 |
27 | // justify nav
28 | %justify {
29 | text-align: justify;
30 | font-size: 1px;
31 | line-height: 0px;
32 | > * {
33 | display: inline-block;
34 | vertical-align: top;
35 | text-align: left;
36 | font-size: $font-size-base;
37 | line-height: $line-height-base;
38 | }
39 | &:after {
40 | content: '';
41 | width: 100%;
42 | display: inline-block;
43 | vertical-align: top;
44 | }
45 | }
46 |
47 |
48 |
49 | /// * Helper class to truncate and add ellipsis to a string too long for it to fit
50 | /// * on a single line.
51 | /// * 1. Prevent content from wrapping, forcing it on a single line.
52 | /// * 2. Add ellipsis at the end of the line.
53 |
54 | .ellipsis {
55 | white-space: nowrap; /* 1 */
56 | text-overflow: ellipsis; /* 2 */
57 | overflow: hidden;
58 | }
59 |
60 |
--------------------------------------------------------------------------------
/media/static/editor/tests.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Jasmine Spec Runner v2.3.4 - Python TouchDevelop Editor
6 |
7 |
8 |
9 |
10 |
11 |
12 |
14 |
16 |
18 |
20 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_media.scss:
--------------------------------------------------------------------------------
1 | .media {
2 | // Proper spacing between instances of .media
3 | margin-top: 15px;
4 |
5 | &:first-child {
6 | margin-top: 0;
7 | }
8 | }
9 |
10 | .media,
11 | .media-body {
12 | zoom: 1;
13 | overflow: hidden;
14 | }
15 |
16 | .media-body {
17 | width: 10000px;
18 | }
19 |
20 | .media-object {
21 | display: block;
22 |
23 | // Fix collapse in webkit from max-width: 100% and display: table-cell.
24 | &.img-thumbnail {
25 | max-width: none;
26 | }
27 | }
28 |
29 | .media-right,
30 | .media > .pull-right {
31 | padding-left: 10px;
32 | }
33 |
34 | .media-left,
35 | .media > .pull-left {
36 | padding-right: 10px;
37 | }
38 |
39 | .media-left,
40 | .media-right,
41 | .media-body {
42 | display: table-cell;
43 | vertical-align: top;
44 | }
45 |
46 | .media-middle {
47 | vertical-align: middle;
48 | }
49 |
50 | .media-bottom {
51 | vertical-align: bottom;
52 | }
53 |
54 | // Reset margins on headings for tighter default spacing
55 | .media-heading {
56 | margin-top: 0;
57 | margin-bottom: 5px;
58 | }
59 |
60 | // Media list variation
61 | //
62 | // Undo default ul/ol styles
63 | .media-list {
64 | padding-left: 0;
65 | list-style: none;
66 | }
67 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/dart.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/dart",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet lib\n library ${1};\n ${2}\nsnippet im\n import '${1}';\n ${2}\nsnippet pa\n part '${1}';\n ${2}\nsnippet pao\n part of ${1};\n ${2}\nsnippet main\n void main() {\n ${1:/* code */}\n }\nsnippet st\n static ${1}\nsnippet fi\n final ${1}\nsnippet re\n return ${1}\nsnippet br\n break;\nsnippet th\n throw ${1}\nsnippet cl\n class ${1:`Filename(\"\", \"untitled\")`} ${2}\nsnippet imp\n implements ${1}\nsnippet ext\n extends ${1}\nsnippet if\n if (${1:true}) {\n ${2}\n }\nsnippet ife\n if (${1:true}) {\n ${2}\n } else {\n ${3}\n }\nsnippet el\n else\nsnippet sw\n switch (${1}) {\n ${2}\n }\nsnippet cs\n case ${1}:\n ${2}\nsnippet de\n default:\n ${1}\nsnippet for\n for (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\n ${4:$1[$2]}\n }\nsnippet fore\n for (final ${2:item} in ${1:itemList}) {\n ${3:/* code */}\n }\nsnippet wh\n while (${1:/* condition */}) {\n ${2:/* code */}\n }\nsnippet dowh\n do {\n ${2:/* code */}\n } while (${1:/* condition */});\nsnippet as\n assert(${1:/* condition */});\nsnippet try\n try {\n ${2}\n } catch (${1:Exception e}) {\n }\nsnippet tryf\n try {\n ${2}\n } catch (${1:Exception e}) {\n } finally {\n }\n",t.scope="dart"})
--------------------------------------------------------------------------------
/deploy.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | if [[ $TRAVIS = "true" ]]; then
6 | if [[ $TRAVIS_BRANCH != "master" || $TRAVIS_PULL_REQUEST != "false" ]]; then
7 | # Bail out if Travis is building a branch or is building a Pull Request.
8 | echo "Not deploying!"
9 | exit 0
10 | fi
11 |
12 | REPO_URL="https://PYTHON-USER@github.com/python/pythonineducation.org"
13 |
14 | # Set up credentials for pushing to GitHub. $GH_TOKEN is configured via Travis web UI.
15 | git config --global credential.helper "store --file=$TRAVIS_BUILD_DIR/git-credentials"
16 | echo "https://PYTHON-USER:$GH_TOKEN@github.com" > $TRAVIS_BUILD_DIR/git-credentials
17 |
18 | # Set up config for committing.
19 | git config --global user.name "Travis"
20 | git config --global user.email "no-reply@python.org"
21 | else
22 | REPO_URL="git@github.com:python/pythonineducation.org.git"
23 | fi
24 |
25 | echo "Deploying!"
26 |
27 | # Remove output directory and replace it with the current tip of the gh-pages branch.
28 | rm -rf output
29 | git clone $REPO_URL --branch gh-pages --single-branch output
30 |
31 | # Update the output directory with recent changes.
32 | make build
33 |
34 | # Add, commit, and push any changes.
35 | cd output
36 | git add .
37 | git commit -m "[skip ci] Auto-commit. Built latest changes."
38 | git push $REPO_URL gh-pages
39 |
40 | # Clean up.
41 | rm -rf .git
42 |
--------------------------------------------------------------------------------
/templates/microbit_en.html:
--------------------------------------------------------------------------------
1 | {% extends "base.html" %}
2 |
3 | {% block secret %}
4 | Congratulations! You have found "the source". :-)
5 |
6 | You're obviously inquisitive ~ and this is a good thing. If you want to know
7 | how this site really works you should visit:
8 |
9 | https://github.com/python/pythonineducation.org
10 |
11 | We welcome contributions from anyone, no matter who you are. If you're
12 | thinking, "but they don't mean me", WE ESPECIALLY MEAN YOU. For more
13 | information see:
14 |
15 | https://github.com/python/pythonineducation.org/blob/master/CONTRIBUTING.rst
16 |
17 | Best wishes!
18 | {% endblock %}
19 |
20 | {% block title %}MicroPython on micro:bit - {% endblock %}
21 |
22 | {% block body_class %}inner-page purple-blue{% endblock body_class %}
23 |
24 | {% block microbit_menu %}micro:bit
25 |
33 | {% endblock %}
34 |
35 |
36 | {% block content %}
37 | {{ page.content }}
38 | {% endblock %}
39 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_image.scss:
--------------------------------------------------------------------------------
1 | // Image Mixins
2 | // - Responsive image
3 | // - Retina image
4 |
5 |
6 | // Responsive image
7 | //
8 | // Keep images from scaling beyond the width of their parents.
9 | @mixin img-responsive($display: block) {
10 | display: $display;
11 | max-width: 100%; // Part 1: Set a maximum relative to the parent
12 | height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
13 | }
14 |
15 |
16 | // Retina image
17 | //
18 | // Short retina mixin for setting background-image and -size. Note that the
19 | // spelling of `min--moz-device-pixel-ratio` is intentional.
20 | @mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
21 | background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-1x}"), "#{$file-1x}"));
22 |
23 | @media
24 | only screen and (-webkit-min-device-pixel-ratio: 2),
25 | only screen and ( min--moz-device-pixel-ratio: 2),
26 | only screen and ( -o-min-device-pixel-ratio: 2/1),
27 | only screen and ( min-device-pixel-ratio: 2),
28 | only screen and ( min-resolution: 192dpi),
29 | only screen and ( min-resolution: 2dppx) {
30 | background-image: url(if($bootstrap-sass-asset-helper, twbs-image-path("#{$file-2x}"), "#{$file-2x}"));
31 | background-size: $width-1x $height-1x;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-gcode.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/gcode_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="IF|DO|WHILE|ENDWHILE|CALL|ENDIF|SUB|ENDSUB|GOTO|REPEAT|ENDREPEAT|CALL",t="PI",n="ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"\\(.*\\)"},{token:"comment",regex:"([N])([0-9]+)"},{token:"string",regex:"([G])([0-9]+\\.?[0-9]?)"},{token:"string",regex:"([M])([0-9]+\\.?[0-9]?)"},{token:"constant.numeric",regex:"([-+]?([0-9]*\\.?[0-9]+\\.?))|(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)"},{token:r,regex:"[A-Z]"},{token:"keyword.operator",regex:"EQ|LT|GT|NE|GE|LE|OR|XOR"},{token:"paren.lparen",regex:"[\\[]"},{token:"paren.rparen",regex:"[\\]]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.GcodeHighlightRules=s}),ace.define("ace/mode/gcode",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gcode_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./gcode_highlight_rules").GcodeHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.$id="ace/mode/gcode"}.call(u.prototype),t.Mode=u})
--------------------------------------------------------------------------------
/media/static/editor/ace/ext-spellcheck.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/ext/spellcheck",["require","exports","module","ace/lib/event","ace/editor","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event");t.contextMenuHandler=function(e){var t=e.target,n=t.textInput.getElement();if(!t.selection.isEmpty())return;var i=t.getCursorPosition(),s=t.session.getWordRange(i.row,i.column),o=t.session.getTextRange(s);t.session.tokenRe.lastIndex=0;if(!t.session.tokenRe.test(o))return;var u="",a=o+" "+u;n.value=a,n.setSelectionRange(o.length,o.length+1),n.setSelectionRange(0,0),n.setSelectionRange(0,o.length);var f=!1;r.addListener(n,"keydown",function l(){r.removeListener(n,"keydown",l),f=!0}),t.textInput.setInputHandler(function(e){console.log(e,a,n.selectionStart,n.selectionEnd);if(e==a)return"";if(e.lastIndexOf(a,0)===0)return e.slice(a.length);if(e.substr(n.selectionEnd)==a)return e.slice(0,-a.length);if(e.slice(-2)==u){var r=e.slice(0,-2);if(r.slice(-1)==" ")return f?r.substring(0,n.selectionEnd):(r=r.slice(0,-1),t.session.replace(s,r),"")}return e})};var i=e("../editor").Editor;e("../config").defineOptions(i.prototype,"editor",{spellcheck:{set:function(e){var n=this.textInput.getElement();n.spellcheck=!!e,e?this.on("nativecontextmenu",t.contextMenuHandler):this.removeListener("nativecontextmenu",t.contextMenuHandler)},value:!0}})});
2 | (function() {
3 | ace.require(["ace/ext/spellcheck"], function() {});
4 | })();
5 |
--------------------------------------------------------------------------------
/media/static/editor/ace/ext-themelist.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/ext/themelist",["require","exports","module","ace/lib/fixoldbrowsers"],function(e,t,n){"use strict";e("ace/lib/fixoldbrowsers");var r=[["Chrome"],["Clouds"],["Crimson Editor"],["Dawn"],["Dreamweaver"],["Eclipse"],["GitHub"],["IPlastic"],["Solarized Light"],["TextMate"],["Tomorrow"],["XCode"],["Kuroir"],["KatzenMilch"],["SQL Server","sqlserver","light"],["Ambiance","ambiance","dark"],["Chaos","chaos","dark"],["Clouds Midnight","clouds_midnight","dark"],["Cobalt","cobalt","dark"],["idle Fingers","idle_fingers","dark"],["krTheme","kr_theme","dark"],["Merbivore","merbivore","dark"],["Merbivore Soft","merbivore_soft","dark"],["Mono Industrial","mono_industrial","dark"],["Monokai","monokai","dark"],["Pastel on dark","pastel_on_dark","dark"],["Solarized Dark","solarized_dark","dark"],["Terminal","terminal","dark"],["Tomorrow Night","tomorrow_night","dark"],["Tomorrow Night Blue","tomorrow_night_blue","dark"],["Tomorrow Night Bright","tomorrow_night_bright","dark"],["Tomorrow Night 80s","tomorrow_night_eighties","dark"],["Twilight","twilight","dark"],["Vibrant Ink","vibrant_ink","dark"]];t.themesByName={},t.themes=r.map(function(e){var n=e[1]||e[0].replace(/ /g,"_").toLowerCase(),r={caption:e[0],theme:"ace/theme/"+n,isDark:e[2]=="dark",name:n};return t.themesByName[n]=r,r})});
2 | (function() {
3 | ace.require(["ace/ext/themelist"], function() {});
4 | })();
5 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_jumbotron.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding-top: $jumbotron-padding;
8 | padding-bottom: $jumbotron-padding;
9 | margin-bottom: $jumbotron-padding;
10 | color: $jumbotron-color;
11 | background-color: $jumbotron-bg;
12 |
13 | h1,
14 | .h1 {
15 | color: $jumbotron-heading-color;
16 | }
17 |
18 | p {
19 | margin-bottom: ($jumbotron-padding / 2);
20 | font-size: $jumbotron-font-size;
21 | font-weight: 200;
22 | }
23 |
24 | > hr {
25 | border-top-color: darken($jumbotron-bg, 10%);
26 | }
27 |
28 | .container &,
29 | .container-fluid & {
30 | border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
31 | padding-left: ($grid-gutter-width / 2);
32 | padding-right: ($grid-gutter-width / 2);
33 | }
34 |
35 | .container {
36 | max-width: 100%;
37 | }
38 |
39 | @media screen and (min-width: $screen-sm-min) {
40 | padding-top: ($jumbotron-padding * 1.6);
41 | padding-bottom: ($jumbotron-padding * 1.6);
42 |
43 | .container &,
44 | .container-fluid & {
45 | padding-left: ($jumbotron-padding * 2);
46 | padding-right: ($jumbotron-padding * 2);
47 | }
48 |
49 | h1,
50 | .h1 {
51 | font-size: $jumbotron-heading-font-size;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_labels.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Labels
3 | // --------------------------------------------------
4 |
5 | .label {
6 | display: inline;
7 | padding: .2em .6em .3em;
8 | font-size: 75%;
9 | font-weight: bold;
10 | line-height: 1;
11 | color: $label-color;
12 | text-align: center;
13 | white-space: nowrap;
14 | vertical-align: baseline;
15 | border-radius: .25em;
16 |
17 | // [converter] extracted a& to a.label
18 |
19 | // Empty labels collapse automatically (not available in IE8)
20 | &:empty {
21 | display: none;
22 | }
23 |
24 | // Quick fix for labels in buttons
25 | .btn & {
26 | position: relative;
27 | top: -1px;
28 | }
29 | }
30 |
31 | // Add hover effects, but only for links
32 | a.label {
33 | &:hover,
34 | &:focus {
35 | color: $label-link-hover-color;
36 | text-decoration: none;
37 | cursor: pointer;
38 | }
39 | }
40 |
41 | // Colors
42 | // Contextual variations (linked labels get darker on :hover)
43 |
44 | .label-default {
45 | @include label-variant($label-default-bg);
46 | }
47 |
48 | .label-primary {
49 | @include label-variant($label-primary-bg);
50 | }
51 |
52 | .label-success {
53 | @include label-variant($label-success-bg);
54 | }
55 |
56 | .label-info {
57 | @include label-variant($label-info-bg);
58 | }
59 |
60 | .label-warning {
61 | @include label-variant($label-warning-bg);
62 | }
63 |
64 | .label-danger {
65 | @include label-variant($label-danger-bg);
66 | }
67 |
--------------------------------------------------------------------------------
/pre-flight-checks.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | ERRORS=()
4 |
5 | ###
6 | # Check that site can be built.
7 | ###
8 |
9 | echo " *** Checking that site can be built."
10 |
11 | wok --serve >/dev/null 2>&1 &
12 | WOK_PID=$!
13 |
14 | if [[ $? -eq 0 ]]; then
15 | echo " *** Site built ok."
16 | else
17 | echo " *** Site could not be built."
18 | exit 1
19 | fi
20 |
21 | ###
22 | # Wait for server to start.
23 | ###
24 |
25 | sleep 5
26 | curl "http://localhost:8000" >/dev/null 2>&1
27 |
28 | if [[ $? -ne 0 ]]; then
29 | echo " *** Server is not running."
30 | exit 1
31 | fi
32 |
33 | ###
34 | # Check that no links are broken.
35 | ###
36 |
37 | # TODO reinstate this
38 |
39 | #echo " *** Checking that no links are broken."
40 |
41 | #linkchecker --no-status --no-warnings --check-extern "http://localhost:8000"
42 |
43 | #if [[ $? -ne 0 ]]; then
44 | # ERRORS+=("Broken links found on site")
45 | #fi
46 |
47 | ###
48 | # Check that common names are spelt correctly.
49 | ###
50 |
51 | #echo " *** Checking that common names are spelt correctly"
52 |
53 | #grep -e "MicroBit" -e "Microbit" -e "microbit" -e "microBit" --line-number --recursive --include "*.html" output | grep -v https://microbit.co.uk
54 |
55 | #if [[ $? -eq 0 ]]; then
56 | # ERRORS+=("Spelling mistaik detected. :-)")
57 | #fi
58 |
59 | kill $WOK_PID
60 |
61 | if [[ ${#ERRORS[@]} -eq 0 ]]; then
62 | echo " *** All pre-flight checks passed!"
63 | exit 0
64 | else
65 | echo " *** The following pre-flight check(s) failed:"
66 | for error in "${ERRORS[@]}"; do
67 | echo " - $error"
68 | done
69 | exit 1
70 | fi
71 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_badges.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Badges
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .badge {
8 | display: inline-block;
9 | min-width: 10px;
10 | padding: 3px 7px;
11 | font-size: $font-size-small;
12 | font-weight: $badge-font-weight;
13 | color: $badge-color;
14 | line-height: $badge-line-height;
15 | vertical-align: middle;
16 | white-space: nowrap;
17 | text-align: center;
18 | background-color: $badge-bg;
19 | border-radius: $badge-border-radius;
20 |
21 | // Empty badges collapse automatically (not available in IE8)
22 | &:empty {
23 | display: none;
24 | }
25 |
26 | // Quick fix for badges in buttons
27 | .btn & {
28 | position: relative;
29 | top: -1px;
30 | }
31 |
32 | .btn-xs &,
33 | .btn-group-xs > .btn & {
34 | top: 0;
35 | padding: 1px 5px;
36 | }
37 |
38 | // [converter] extracted a& to a.badge
39 |
40 | // Account for badges in navs
41 | .list-group-item.active > &,
42 | .nav-pills > .active > a > & {
43 | color: $badge-active-color;
44 | background-color: $badge-active-bg;
45 | }
46 |
47 | .list-group-item > & {
48 | float: right;
49 | }
50 |
51 | .list-group-item > & + & {
52 | margin-right: 5px;
53 | }
54 |
55 | .nav-pills > li > a > & {
56 | margin-left: 3px;
57 | }
58 | }
59 |
60 | // Hover state, but only for links
61 | a.badge {
62 | &:hover,
63 | &:focus {
64 | color: $badge-link-hover-color;
65 | text-decoration: none;
66 | cursor: pointer;
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/templates/microbit_de.html:
--------------------------------------------------------------------------------
1 | {% extends "page_de.html" %}
2 |
3 | {% block secret %}
4 | Herzliche Glückwünsche! Sie haben "the source" gefunden. :-)
5 |
6 | Sie sind offensichtlich neugierig ~ und das ist eine gute Sache. Wenn du wissen
7 | willst wie wirklich diese Seite funktioniert, sollten Sie besuchen:
8 |
9 | https://github.com/python/pythonineducation.org
10 |
11 | Wir freuen uns über Beiträge von jedem, egal, wer Sie sind. Wenn du bist
12 | denken, "aber sie bedeuten mir nicht", MEINEN WIR iHNEN BESONDERS. Für mehr
13 | Informationen finden Sie unter:
14 |
15 | https://github.com/python/pythonineducation.org/blob/master/CONTRIBUTING.rst
16 |
17 | Die besten Wünsche!
18 | {% endblock %}
19 |
20 | {% block title %}MicroPython auf micro:bit - {% endblock %}
21 |
22 | {% block body_class %}content-page{% endblock body_class %}
23 |
24 | {% block subnav %}
25 |
33 | {% endblock %}
34 |
35 | {% block content %}
36 | {{ page.content }}
37 | {% endblock %}
38 |
39 | {% block footer_banner %}
40 |
49 | {% endblock %}
50 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/tcl.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/tcl",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# #!/usr/bin/env tclsh\nsnippet #!\n #!/usr/bin/env tclsh\n \n# Process\nsnippet pro\n proc ${1:function_name} {${2:args}} {\n ${3:#body ...}\n }\n#xif\nsnippet xif\n ${1:expr}? ${2:true} : ${3:false}\n# Conditional\nsnippet if\n if {${1}} {\n ${2:# body...}\n }\n# Conditional if..else\nsnippet ife\n if {${1}} {\n ${2:# body...}\n } else {\n ${3:# else...}\n }\n# Conditional if..elsif..else\nsnippet ifee\n if {${1}} {\n ${2:# body...}\n } elseif {${3}} {\n ${4:# elsif...}\n } else {\n ${5:# else...}\n }\n# If catch then\nsnippet ifc\n if { [catch {${1:#do something...}} ${2:err}] } {\n ${3:# handle failure...}\n }\n# Catch\nsnippet catch\n catch {${1}} ${2:err} ${3:options}\n# While Loop\nsnippet wh\n while {${1}} {\n ${2:# body...}\n }\n# For Loop\nsnippet for\n for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\n ${4:# body...}\n }\n# Foreach Loop\nsnippet fore\n foreach ${1:x} {${2:#list}} {\n ${3:# body...}\n }\n# after ms script...\nsnippet af\n after ${1:ms} ${2:#do something}\n# after cancel id\nsnippet afc\n after cancel ${1:id or script}\n# after idle\nsnippet afi\n after idle ${1:script}\n# after info id\nsnippet afin\n after info ${1:id}\n# Expr\nsnippet exp\n expr {${1:#expression here}}\n# Switch\nsnippet sw\n switch ${1:var} {\n ${3:pattern 1} {\n ${4:#do something}\n }\n default {\n ${2:#do something}\n }\n }\n# Case\nsnippet ca\n ${1:pattern} {\n ${2:#do something}\n }${3}\n# Namespace eval\nsnippet ns\n namespace eval ${1:path} {${2:#script...}}\n# Namespace current\nsnippet nsc\n namespace current\n",t.scope="tcl"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/jsoniq.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/jsoniq",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet for\n for $${1:item} in ${2:expr}\nsnippet return\n return ${1:expr}\nsnippet import\n import module namespace ${1:ns} = "${2:http://www.example.com/}";\nsnippet some\n some $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet every\n every $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet if\n if(${1:true}) then ${2:expr} else ${3:true}\nsnippet switch\n switch(${1:"foo"})\n case ${2:"foo"}\n return ${3:true}\n default return ${4:false}\nsnippet try\n try { ${1:expr} } catch ${2:*} { ${3:expr} }\nsnippet tumbling\n for tumbling window $${1:varname} in ${2:expr}\n start at $${3:start} when ${4:expr}\n end at $${5:end} when ${6:expr}\n return ${7:expr}\nsnippet sliding\n for sliding window $${1:varname} in ${2:expr}\n start at $${3:start} when ${4:expr}\n end at $${5:end} when ${6:expr}\n return ${7:expr}\nsnippet let\n let $${1:varname} := ${2:expr}\nsnippet group\n group by $${1:varname} := ${2:expr}\nsnippet order\n order by ${1:expr} ${2:descending}\nsnippet stable\n stable order by ${1:expr}\nsnippet count\n count $${1:varname}\nsnippet ordered\n ordered { ${1:expr} }\nsnippet unordered\n unordered { ${1:expr} }\nsnippet treat \n treat as ${1:expr}\nsnippet castable\n castable as ${1:atomicType}\nsnippet cast\n cast as ${1:atomicType}\nsnippet typeswitch\n typeswitch(${1:expr})\n case ${2:type} return ${3:expr}\n default return ${4:expr}\nsnippet var\n declare variable $${1:varname} := ${2:expr};\nsnippet fn\n declare function ${1:ns}:${2:name}(){\n ${3:expr}\n };\nsnippet module\n module namespace ${1:ns} = "${2:http://www.example.com}";\n',t.scope="jsoniq"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/xquery.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/xquery",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet for\n for $${1:item} in ${2:expr}\nsnippet return\n return ${1:expr}\nsnippet import\n import module namespace ${1:ns} = "${2:http://www.example.com/}";\nsnippet some\n some $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet every\n every $${1:varname} in ${2:expr} satisfies ${3:expr}\nsnippet if\n if(${1:true}) then ${2:expr} else ${3:true}\nsnippet switch\n switch(${1:"foo"})\n case ${2:"foo"}\n return ${3:true}\n default return ${4:false}\nsnippet try\n try { ${1:expr} } catch ${2:*} { ${3:expr} }\nsnippet tumbling\n for tumbling window $${1:varname} in ${2:expr}\n start at $${3:start} when ${4:expr}\n end at $${5:end} when ${6:expr}\n return ${7:expr}\nsnippet sliding\n for sliding window $${1:varname} in ${2:expr}\n start at $${3:start} when ${4:expr}\n end at $${5:end} when ${6:expr}\n return ${7:expr}\nsnippet let\n let $${1:varname} := ${2:expr}\nsnippet group\n group by $${1:varname} := ${2:expr}\nsnippet order\n order by ${1:expr} ${2:descending}\nsnippet stable\n stable order by ${1:expr}\nsnippet count\n count $${1:varname}\nsnippet ordered\n ordered { ${1:expr} }\nsnippet unordered\n unordered { ${1:expr} }\nsnippet treat \n treat as ${1:expr}\nsnippet castable\n castable as ${1:atomicType}\nsnippet cast\n cast as ${1:atomicType}\nsnippet typeswitch\n typeswitch(${1:expr})\n case ${2:type} return ${3:expr}\n default return ${4:expr}\nsnippet var\n declare variable $${1:varname} := ${2:expr};\nsnippet fn\n declare function ${1:ns}:${2:name}(){\n ${3:expr}\n };\nsnippet module\n module namespace ${1:ns} = "${2:http://www.example.com}";\n',t.scope="xquery"})
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-ada.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/ada_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="abort|else|new|return|abs|elsif|not|reverse|abstract|end|null|accept|entry|select|access|exception|of|separate|aliased|exit|or|some|all|others|subtype|and|for|out|synchronized|array|function|overriding|at|tagged|generic|package|task|begin|goto|pragma|terminate|body|private|then|if|procedure|type|case|in|protected|constant|interface|until||is|raise|use|declare|range|delay|limited|record|when|delta|loop|rem|while|digits|renames|with|do|mod|requeue|xor",t="true|false|null",n="count|min|max|avg|sum|rank|now|coalesce|main",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.AdaHighlightRules=s}),ace.define("ace/mode/ada",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ada_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./ada_highlight_rules").AdaHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/ada"}.call(u.prototype),t.Mode=u})
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-sql.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|foreign|not|references|default|null|inner|cross|natural|database|drop|grant",t="true|false",n="avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nv|",r="int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|money|real|number|integer",i=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t,"storage.type":r},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"comment",start:"/\\*",end:"\\*/"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]},this.normalizeRules()};r.inherits(s,i),t.SqlHighlightRules=s}),ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./sql_highlight_rules").SqlHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/sql"}.call(u.prototype),t.Mode=u})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_code.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Code (inline and block)
3 | // --------------------------------------------------
4 |
5 |
6 | // Inline and block code styles
7 | code,
8 | kbd,
9 | pre,
10 | samp {
11 | font-family: $font-family-monospace;
12 | }
13 |
14 | // Inline code
15 | code {
16 | padding: 2px 4px;
17 | font-size: 90%;
18 | color: $code-color;
19 | background-color: $code-bg;
20 | border-radius: $border-radius-base;
21 | }
22 |
23 | // User input typically entered via keyboard
24 | kbd {
25 | padding: 2px 4px;
26 | font-size: 90%;
27 | color: $kbd-color;
28 | background-color: $kbd-bg;
29 | border-radius: $border-radius-small;
30 | box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);
31 |
32 | kbd {
33 | padding: 0;
34 | font-size: 100%;
35 | font-weight: bold;
36 | box-shadow: none;
37 | }
38 | }
39 |
40 | // Blocks of code
41 | pre {
42 | display: block;
43 | padding: (($line-height-computed - 1) / 2);
44 | margin: 0 0 ($line-height-computed / 2);
45 | font-size: ($font-size-base - 1); // 14px to 13px
46 | line-height: $line-height-base;
47 | word-break: break-all;
48 | word-wrap: break-word;
49 | color: $pre-color;
50 | background-color: $pre-bg;
51 | border: 1px solid $pre-border-color;
52 | border-radius: $border-radius-base;
53 |
54 | // Account for some code outputs that place code tags in pre tags
55 | code {
56 | padding: 0;
57 | font-size: inherit;
58 | color: inherit;
59 | white-space: pre-wrap;
60 | background-color: transparent;
61 | border-radius: 0;
62 | }
63 | }
64 |
65 | // Enable scrollable blocks of code
66 | .pre-scrollable {
67 | max-height: $pre-scrollable-max-height;
68 | overflow-y: scroll;
69 | }
70 |
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/mixins/_buttons.scss:
--------------------------------------------------------------------------------
1 | // Button variants
2 | //
3 | // Easily pump out default styles, as well as :hover, :focus, :active,
4 | // and disabled options for all buttons
5 |
6 | @mixin button-variant($color, $background, $border) {
7 | color: $color;
8 | background-color: $background;
9 | border-color: $border;
10 |
11 | &:focus,
12 | &.focus {
13 | color: $color;
14 | background-color: darken($background, 10%);
15 | border-color: darken($border, 25%);
16 | }
17 | &:hover {
18 | color: $color;
19 | background-color: darken($background, 10%);
20 | border-color: darken($border, 12%);
21 | }
22 | &:active,
23 | &.active,
24 | .open > &.dropdown-toggle {
25 | color: $color;
26 | background-color: darken($background, 10%);
27 | border-color: darken($border, 12%);
28 |
29 | &:hover,
30 | &:focus,
31 | &.focus {
32 | color: $color;
33 | background-color: darken($background, 17%);
34 | border-color: darken($border, 25%);
35 | }
36 | }
37 | &:active,
38 | &.active,
39 | .open > &.dropdown-toggle {
40 | background-image: none;
41 | }
42 | &.disabled,
43 | &[disabled],
44 | fieldset[disabled] & {
45 | &:hover,
46 | &:focus,
47 | &.focus {
48 | background-color: $background;
49 | border-color: $border;
50 | }
51 | }
52 |
53 | .badge {
54 | color: $background;
55 | background-color: $color;
56 | }
57 | }
58 |
59 | // Button sizes
60 | @mixin button-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
61 | padding: $padding-vertical $padding-horizontal;
62 | font-size: $font-size;
63 | line-height: $line-height;
64 | border-radius: $border-radius;
65 | }
66 |
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-lisp.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/lisp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="case|do|let|loop|if|else|when",t="eq|neq|and|or",n="null|nil",r="cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn",i=this.createKeywordMapper({"keyword.control":e,"keyword.operator":t,"constant.language":n,"support.function":r},"identifier",!0);this.$rules={start:[{token:"comment",regex:";.*$"},{token:["storage.type.function-type.lisp","text","entity.name.function.lisp"],regex:"(?:\\b(?:(defun|defmethod|defmacro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)"},{token:["punctuation.definition.constant.character.lisp","constant.character.lisp"],regex:"(#)((?:\\w|[\\\\+-=<>'\"])+)"},{token:["punctuation.definition.variable.lisp","variable.other.global.lisp","punctuation.definition.variable.lisp"],regex:"(\\*)(\\S*)(\\*)"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'"(?=.)',next:"qqstring"}],qqstring:[{token:"constant.character.escape.lisp",regex:"\\\\."},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"}]}};r.inherits(s,i),t.LispHighlightRules=s}),ace.define("ace/mode/lisp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lisp_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./lisp_highlight_rules").LispHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart=";",this.$id="ace/mode/lisp"}.call(o.prototype),t.Mode=o})
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-xcode.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/xcode",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-xcode",t.cssText=".ace-xcode .ace_gutter {background: #e8e8e8;color: #333}.ace-xcode .ace_print-margin {width: 1px;background: #e8e8e8}.ace-xcode {background-color: #FFFFFF;color: #000000}.ace-xcode .ace_cursor {color: #000000}.ace-xcode .ace_marker-layer .ace_selection {background: #B5D5FF}.ace-xcode.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-xcode .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-xcode .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-xcode .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_marker-layer .ace_selected-word {border: 1px solid #B5D5FF}.ace-xcode .ace_constant.ace_language,.ace-xcode .ace_keyword,.ace-xcode .ace_meta,.ace-xcode .ace_variable.ace_language {color: #C800A4}.ace-xcode .ace_invisible {color: #BFBFBF}.ace-xcode .ace_constant.ace_character,.ace-xcode .ace_constant.ace_other {color: #275A5E}.ace-xcode .ace_constant.ace_numeric {color: #3A00DC}.ace-xcode .ace_entity.ace_other.ace_attribute-name,.ace-xcode .ace_support.ace_constant,.ace-xcode .ace_support.ace_function {color: #450084}.ace-xcode .ace_fold {background-color: #C800A4;border-color: #000000}.ace-xcode .ace_entity.ace_name.ace_tag,.ace-xcode .ace_support.ace_class,.ace-xcode .ace_support.ace_type {color: #790EAD}.ace-xcode .ace_storage {color: #C900A4}.ace-xcode .ace_string {color: #DF0002}.ace-xcode .ace_comment {color: #008E00}.ace-xcode .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_grid.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Grid system
3 | // --------------------------------------------------
4 |
5 |
6 | // Container widths
7 | //
8 | // Set the container width, and override it for fixed navbars in media queries.
9 |
10 | .container {
11 | @include container-fixed;
12 |
13 | @media (min-width: $screen-sm-min) {
14 | width: $container-sm;
15 | }
16 | @media (min-width: $screen-md-min) {
17 | width: $container-md;
18 | }
19 | @media (min-width: $screen-lg-min) {
20 | width: $container-lg;
21 | }
22 | }
23 |
24 |
25 | // Fluid container
26 | //
27 | // Utilizes the mixin meant for fixed width containers, but without any defined
28 | // width for fluid, full width layouts.
29 |
30 | .container-fluid {
31 | @include container-fixed;
32 | }
33 |
34 |
35 | // Row
36 | //
37 | // Rows contain and clear the floats of your columns.
38 |
39 | .row {
40 | @include make-row;
41 | }
42 |
43 |
44 | // Columns
45 | //
46 | // Common styles for small and large grid columns
47 |
48 | @include make-grid-columns;
49 |
50 |
51 | // Extra small grid
52 | //
53 | // Columns, offsets, pushes, and pulls for extra small devices like
54 | // smartphones.
55 |
56 | @include make-grid(xs);
57 |
58 |
59 | // Small grid
60 | //
61 | // Columns, offsets, pushes, and pulls for the small device range, from phones
62 | // to tablets.
63 |
64 | @media (min-width: $screen-sm-min) {
65 | @include make-grid(sm);
66 | }
67 |
68 |
69 | // Medium grid
70 | //
71 | // Columns, offsets, pushes, and pulls for the desktop device range.
72 |
73 | @media (min-width: $screen-md-min) {
74 | @include make-grid(md);
75 | }
76 |
77 |
78 | // Large grid
79 | //
80 | // Columns, offsets, pushes, and pulls for the large desktop device range.
81 |
82 | @media (min-width: $screen-lg-min) {
83 | @include make-grid(lg);
84 | }
85 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/haskell.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/haskell",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="snippet lang\n {-# LANGUAGE ${1:OverloadedStrings} #-}\nsnippet info\n -- |\n -- Module : ${1:Module.Namespace}\n -- Copyright : ${2:Author} ${3:2011-2012}\n -- License : ${4:BSD3}\n --\n -- Maintainer : ${5:email@something.com}\n -- Stability : ${6:experimental}\n -- Portability : ${7:unknown}\n --\n -- ${8:Description}\n --\nsnippet import\n import ${1:Data.Text}\nsnippet import2\n import ${1:Data.Text} (${2:head})\nsnippet importq\n import qualified ${1:Data.Text} as ${2:T}\nsnippet inst\n instance ${1:Monoid} ${2:Type} where\n ${3}\nsnippet type\n type ${1:Type} = ${2:Type}\nsnippet data\n data ${1:Type} = ${2:$1} ${3:Int}\nsnippet newtype\n newtype ${1:Type} = ${2:$1} ${3:Int}\nsnippet class\n class ${1:Class} a where\n ${2}\nsnippet module\n module `substitute(substitute(expand('%:r'), '[/\\\\]','.','g'),'^\\%(\\l*\\.\\)\\?','','')` (\n ) where\n `expand('%') =~ 'Main' ? \"\\n\\nmain = do\\n print \\\"hello world\\\"\" : \"\"`\n\nsnippet const\n ${1:name} :: ${2:a}\n $1 = ${3:undefined}\nsnippet fn\n ${1:fn} :: ${2:a} -> ${3:a}\n $1 ${4} = ${5:undefined}\nsnippet fn2\n ${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\n $1 ${5} = ${6:undefined}\nsnippet ap\n ${1:map} ${2:fn} ${3:list}\nsnippet do\n do\n \nsnippet \u03bb\n \\${1:x} -> ${2}\nsnippet \\\n \\${1:x} -> ${2}\nsnippet <-\n ${1:a} <- ${2:m a}\nsnippet \u2190\n ${1:a} <- ${2:m a}\nsnippet ->\n ${1:m a} -> ${2:a}\nsnippet \u2192\n ${1:m a} -> ${2:a}\nsnippet tup\n (${1:a}, ${2:b})\nsnippet tup2\n (${1:a}, ${2:b}, ${3:c})\nsnippet tup3\n (${1:a}, ${2:b}, ${3:c}, ${4:d})\nsnippet rec\n ${1:Record} { ${2:recFieldA} = ${3:undefined}\n , ${4:recFieldB} = ${5:undefined}\n }\nsnippet case\n case ${1:something} of\n ${2} -> ${3}\nsnippet let\n let ${1} = ${2}\n in ${3}\nsnippet where\n where\n ${1:fn} = ${2:undefined}\n",t.scope="haskell"})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/markdown.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/markdown",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Markdown\n\n# Includes octopress (http://octopress.org/) snippets\n\nsnippet [\n [${1:text}](http://${2:address} "${3:title}")\nsnippet [*\n [${1:link}](${2:`@*`} "${3:title}")${4}\n\nsnippet [:\n [${1:id}]: http://${2:url} "${3:title}"\nsnippet [:*\n [${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet \nsnippet ${4}\n\nsnippet ![:\n ![${1:id}]: ${2:url} "${3:title}"\nsnippet ![:*\n ![${1:id}]: ${2:`@*`} "${3:title}"\n\nsnippet ===\nregex /^/=+/=*//\n ${PREV_LINE/./=/g}\n \n ${0}\nsnippet ---\nregex /^/-+/-*//\n ${PREV_LINE/./-/g}\n \n ${0}\nsnippet blockquote\n {% blockquote %}\n ${1:quote}\n {% endblockquote %}\n\nsnippet blockquote-author\n {% blockquote ${1:author}, ${2:title} %}\n ${3:quote}\n {% endblockquote %}\n\nsnippet blockquote-link\n {% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n ${4:quote}\n {% endblockquote %}\n\nsnippet bt-codeblock-short\n ```\n ${1:code_snippet}\n ```\n\nsnippet bt-codeblock-full\n ``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n ${5:code_snippet}\n ```\n\nsnippet codeblock-short\n {% codeblock %}\n ${1:code_snippet}\n {% endcodeblock %}\n\nsnippet codeblock-full\n {% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n ${5:code_snippet}\n {% endcodeblock %}\n\nsnippet gist-full\n {% gist ${1:gist_id} ${2:filename} %}\n\nsnippet gist-short\n {% gist ${1:gist_id} %}\n\nsnippet img\n {% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\nsnippet youtube\n {% youtube ${1:video_id} %}\n\n# The quote should appear only once in the text. It is inherently part of it.\n# See http://octopress.org/docs/plugins/pullquote/ for more info.\n\nsnippet pullquote\n {% pullquote %}\n ${1:text} {" ${2:quote} "} ${3:text}\n {% endpullquote %}\n',t.scope="markdown"})
--------------------------------------------------------------------------------
/media/scss/_bootstrap-custom.scss:
--------------------------------------------------------------------------------
1 | $white:#fff;
2 | $dark:#2c2c2c;
3 | $black:#000;
4 | $color-text:#222221;
5 | $yellow:#f5da5c;
6 | $red: #ad244b;
7 | $dark-color:#27194a;
8 | $light-color:#8bc6e8;
9 | $blue-color:#88c4e4;
10 | $green-color:#93c45a;
11 | $body-bg: $white;
12 | $bg-dark:$black;
13 | $nav-color:$yellow;
14 |
15 | $text-color:$dark;
16 | $link-color:$red;
17 |
18 | $screen-md : 1024px;
19 | $screen-sm: 768px;
20 | $screen-lg:1301px;
21 |
22 | //== Typography
23 | $base-font-family:Arial, Helvetica, sans-serif;
24 | $alt-font-family:'Ubuntu', Arial, Helvetica, sans-serif;
25 | $title-font-family:'Permanent Marker', cursive;
26 | $title2-font-family:'Poppins', Arial, Helvetica, sans-serif;
27 | $font-size-base: 15px;
28 | $line-height-base: 1.368;
29 | $headings-font-family:$base-font-family;
30 |
31 | //== Grid system
32 | $grid-gutter-width: 40px;
33 | $container-tablet: (710px + $grid-gutter-width);
34 | $container-desktop: (960px + $grid-gutter-width);
35 | $container-large-desktop: (1040px + $grid-gutter-width);
36 | $grid-float-breakpoint: $screen-md;
37 | $grid-float-breakpoint-max: $grid-float-breakpoint;
38 |
39 | // Basics of a navbar
40 | $navbar-height:auto;
41 | $navbar-margin-bottom: 0;
42 | $navbar-border-radius: 0;
43 | $navbar-padding-horizontal:0;
44 | $navbar-padding-vertical: 0;
45 | $navbar-collapse-max-height:340px;
46 |
47 | $navbar-default-color:transparent;
48 | $navbar-default-bg:rgba(0, 0, 0, 0);
49 | $navbar-default-border:none;
50 |
51 | $nav-link-padding:0;
52 | $navbar-default-link-color:$nav-color;
53 | $navbar-default-link-hover-color:$nav-color;
54 | $navbar-default-link-active-color:$nav-color;
55 |
56 | $input-color-placeholder:#000;
57 |
58 | $border-radius-base:0;
59 |
60 | // Navbar toggle
61 | $navbar-default-toggle-hover-bg: transarent;
62 | $navbar-default-toggle-icon-bar-bg:#b53c5e;
63 | $navbar-default-toggle-border-color:#b53c5e;
64 | $nav-link-padding:0;
--------------------------------------------------------------------------------
/media/scss/vendors/bootstrap/_alerts.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Alerts
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // -------------------------
8 |
9 | .alert {
10 | padding: $alert-padding;
11 | margin-bottom: $line-height-computed;
12 | border: 1px solid transparent;
13 | border-radius: $alert-border-radius;
14 |
15 | // Headings for larger alerts
16 | h4 {
17 | margin-top: 0;
18 | // Specified for the h4 to prevent conflicts of changing $headings-color
19 | color: inherit;
20 | }
21 |
22 | // Provide class for links that match alerts
23 | .alert-link {
24 | font-weight: $alert-link-font-weight;
25 | }
26 |
27 | // Improve alignment and spacing of inner content
28 | > p,
29 | > ul {
30 | margin-bottom: 0;
31 | }
32 |
33 | > p + p {
34 | margin-top: 5px;
35 | }
36 | }
37 |
38 | // Dismissible alerts
39 | //
40 | // Expand the right padding and account for the close button's positioning.
41 |
42 | .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
43 | .alert-dismissible {
44 | padding-right: ($alert-padding + 20);
45 |
46 | // Adjust close link position
47 | .close {
48 | position: relative;
49 | top: -2px;
50 | right: -21px;
51 | color: inherit;
52 | }
53 | }
54 |
55 | // Alternate styles
56 | //
57 | // Generate contextual modifier classes for colorizing the alert.
58 |
59 | .alert-success {
60 | @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
61 | }
62 |
63 | .alert-info {
64 | @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
65 | }
66 |
67 | .alert-warning {
68 | @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
69 | }
70 |
71 | .alert-danger {
72 | @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
73 | }
74 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/python.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/python",["require","exports","module"], function(require, exports, module) {
2 | "use strict";
3 |
4 | exports.snippetText = "# Module Docstring\n\
5 | snippet docs - create a comment to describe your code\n\
6 | '''\n\
7 | ${1:# TODO: write some helpful comments here...}\n\
8 | '''\n\
9 | snippet wh - while some condition is True, keep looping over some code\n\
10 | while ${1:condition}:\n\
11 | ${2:# TODO: write code...}\n\
12 | snippet with - do stuff with something assigned to a name\n\
13 | with ${1:something} as ${2:name}:\n\
14 | ${3:# TODO: write code...}\n\
15 | # New Class\n\
16 | snippet cl - create a new class that defines the behaviour of a new type of object\n\
17 | class ${1:ClassName}(${2:object}):\n\
18 | \"\"\"${3:docstring for $1}\"\"\"\n\
19 | def __init__(self, ${4:arg}):\n\
20 | ${5:super($1, self).__init__()}\n\
21 | self.$4 = $4\n\
22 | ${6}\n\
23 | # New Function\n\
24 | snippet def - define a named function that takes some arguments and optionally add a description\n\
25 | def ${1:name}(${2:arguments}):\n\
26 | \"\"\"${3:description for $1}\"\"\"\n\
27 | ${4:# TODO: write code...}\n\
28 | # Ifs\n\
29 | snippet if - if some condition is True, do something\n\
30 | if ${1:condition}:\n\
31 | ${2:# TODO: write code...}\n\
32 | snippet ei - else if some other condition is True, do something\n\
33 | elif ${1:condition}:\n\
34 | ${2:# TODO: write code...}\n\
35 | snippet el - else do some other thing\n\
36 | else:\n\
37 | ${1:# TODO: write code...}\n\
38 | # For\n\
39 | snippet for - for each item in a collection of items do something with each item\n\
40 | for ${1:item} in ${2:items}:\n\
41 | ${3:# TODO: write code...}\n\
42 | snippet try - try doing something and handle exceptions (errors)\n\
43 | try:\n\
44 | ${1:# TODO: write code...}\n\
45 | except ${2:Exception}, ${3:e}:\n\
46 | ${4:raise $3}\n\
47 | ";
48 | exports.scope = "python";
49 |
50 | });
51 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/clojure.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/clojure",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='snippet comm\n (comment\n ${1}\n )\nsnippet condp\n (condp ${1:pred} ${2:expr}\n ${3})\nsnippet def\n (def ${1})\nsnippet defm\n (defmethod ${1:multifn} "${2:doc-string}" ${3:dispatch-val} [${4:args}]\n ${5})\nsnippet defmm\n (defmulti ${1:name} "${2:doc-string}" ${3:dispatch-fn})\nsnippet defma\n (defmacro ${1:name} "${2:doc-string}" ${3:dispatch-fn})\nsnippet defn\n (defn ${1:name} "${2:doc-string}" [${3:arg-list}]\n ${4})\nsnippet defp\n (defprotocol ${1:name}\n ${2})\nsnippet defr\n (defrecord ${1:name} [${2:fields}]\n ${3:protocol}\n ${4})\nsnippet deft\n (deftest ${1:name}\n (is (= ${2:assertion})))\n ${3})\nsnippet is\n (is (= ${1} ${2}))\nsnippet defty\n (deftype ${1:Name} [${2:fields}]\n ${3:Protocol}\n ${4})\nsnippet doseq\n (doseq [${1:elem} ${2:coll}]\n ${3})\nsnippet fn\n (fn [${1:arg-list}] ${2})\nsnippet if\n (if ${1:test-expr}\n ${2:then-expr}\n ${3:else-expr})\nsnippet if-let \n (if-let [${1:result} ${2:test-expr}]\n (${3:then-expr} $1)\n (${4:else-expr}))\nsnippet imp\n (:import [${1:package}])\n & {:keys [${1:keys}] :or {${2:defaults}}}\nsnippet let\n (let [${1:name} ${2:expr}]\n ${3})\nsnippet letfn\n (letfn [(${1:name) [${2:args}]\n ${3})])\nsnippet map\n (map ${1:func} ${2:coll})\nsnippet mapl\n (map #(${1:lambda}) ${2:coll})\nsnippet met\n (${1:name} [${2:this} ${3:args}]\n ${4})\nsnippet ns\n (ns ${1:name}\n ${2})\nsnippet dotimes\n (dotimes [_ 10]\n (time\n (dotimes [_ ${1:times}]\n ${2})))\nsnippet pmethod\n (${1:name} [${2:this} ${3:args}])\nsnippet refer\n (:refer-clojure :exclude [${1}])\nsnippet require\n (:require [${1:namespace} :as [${2}]])\nsnippet use\n (:use [${1:namespace} :only [${2}]])\nsnippet print\n (println ${1})\nsnippet reduce\n (reduce ${1:(fn [p n] ${3})} ${2})\nsnippet when\n (when ${1:test} ${2:body})\nsnippet when-let\n (when-let [${1:result} ${2:test}]\n ${3:body})\n',t.scope="clojure"})
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-textile.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/textile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:function(e){return e.charAt(0)=="h"?"markup.heading."+e.charAt(1):"markup.heading"},regex:"h1|h2|h3|h4|h5|h6|bq|p|bc|pre",next:"blocktag"},{token:"keyword",regex:"[\\*]+|[#]+"},{token:"text",regex:".+"}],blocktag:[{token:"keyword",regex:"\\. ",next:"start"},{token:"keyword",regex:"\\(",next:"blocktagproperties"}],blocktagproperties:[{token:"keyword",regex:"\\)",next:"blocktag"},{token:"string",regex:"[a-zA-Z0-9\\-_]+"},{token:"keyword",regex:"#"}]}};r.inherits(s,i),t.TextileHighlightRules=s}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),ace.define("ace/mode/textile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/textile_highlight_rules","ace/mode/matching_brace_outdent"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./textile_highlight_rules").TextileHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=function(){this.HighlightRules=s,this.$outdent=new o};r.inherits(u,i),function(){this.type="text",this.getNextLineIndent=function(e,t,n){return e=="intag"?n:""},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.$id="ace/mode/textile"}.call(u.prototype),t.Mode=u})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/sh.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/sh",["require","exports","module"],function(e,t,n){"use strict";t.snippetText='# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\nsnippet #!\n #!/usr/bin/env bash\n \nsnippet if\n if [[ ${1:condition} ]]; then\n ${2:#statements}\n fi\nsnippet elif\n elif [[ ${1:condition} ]]; then\n ${2:#statements}\nsnippet for\n for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\n ${3:#statements}\n done\nsnippet fori\n for ${1:needle} in ${2:haystack} ; do\n ${3:#statements}\n done\nsnippet wh\n while [[ ${1:condition} ]]; do\n ${2:#statements}\n done\nsnippet until\n until [[ ${1:condition} ]]; do\n ${2:#statements}\n done\nsnippet case\n case ${1:word} in\n ${2:pattern})\n ${3};;\n esac\nsnippet go \n while getopts \'${1:o}\' ${2:opts} \n do \n case $$2 in\n ${3:o0})\n ${4:#staments};;\n esac\n done\n# Set SCRIPT_DIR variable to directory script is located.\nsnippet sdir\n SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"\n# getopt\nsnippet getopt\n __ScriptVersion="${1:version}"\n\n #=== FUNCTION ================================================================\n # NAME: usage\n # DESCRIPTION: Display usage information.\n #===============================================================================\n function usage ()\n {\n cat <<- EOT\n\n Usage : $${0:0} [options] [--] \n\n Options: \n -h|help Display this message\n -v|version Display script version\n\n EOT\n } # ---------- end of function usage ----------\n\n #-----------------------------------------------------------------------\n # Handle command line arguments\n #-----------------------------------------------------------------------\n\n while getopts ":hv" opt\n do\n case $opt in\n\n h|help ) usage; exit 0 ;;\n\n v|version ) echo "$${0:0} -- Version $__ScriptVersion"; exit 0 ;;\n\n \\? ) echo -e "\\n Option does not exist : $OPTARG\\n"\n usage; exit 1 ;;\n\n esac # --- end of case ---\n done\n shift $(($OPTIND-1))\n\n',t.scope="sh"})
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-kuroir.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/kuroir",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-kuroir",t.cssText=".ace-kuroir .ace_gutter {background: #e8e8e8;color: #333;}.ace-kuroir .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-kuroir {background-color: #E8E9E8;color: #363636;}.ace-kuroir .ace_cursor {color: #202020;}.ace-kuroir .ace_marker-layer .ace_selection {background: rgba(245, 170, 0, 0.57);}.ace-kuroir.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #E8E9E8;border-radius: 2px;}.ace-kuroir .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-kuroir .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(0, 0, 0, 0.29);}.ace-kuroir .ace_marker-layer .ace_active-line {background: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_gutter-active-line {background-color: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_marker-layer .ace_selected-word {border: 1px solid rgba(245, 170, 0, 0.57);}.ace-kuroir .ace_invisible {color: #BFBFBF}.ace-kuroir .ace_fold {border-color: #363636;}.ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;background-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;font-style:italic;color:#FD1732;background-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;background-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);background-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;background-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-vhdl.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/vhdl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="access|after|ailas|all|architecture|assert|attribute|begin|block|buffer|bus|case|component|configuration|disconnect|downto|else|elsif|end|entity|file|for|function|generate|generic|guarded|if|impure|in|inertial|inout|is|label|linkage|literal|loop|mapnew|next|of|on|open|others|out|port|process|pure|range|record|reject|report|return|select|shared|subtype|then|to|transport|type|unaffected|united|until|wait|when|while|with",t="bit|bit_vector|boolean|character|integer|line|natural|positive|real|register|severity|signal|signed|std_logic|std_logic_vector|string||text|time|unsigned|variable",n="array|constant",r="abs|and|mod|nand|nor|not|rem|rol|ror|sla|sll|srasrl|xnor|xor",i="true|false|null",s=this.createKeywordMapper({"keyword.operator":r,keyword:e,"constant.language":i,"storage.modifier":n,"storage.type":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"keyword",regex:"\\s*(?:library|package|use)\\b"},{token:s,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"&|\\*|\\+|\\-|\\/|<|=|>|\\||=>|\\*\\*|:=|\\/=|>=|<=|<>"},{token:"punctuation.operator",regex:"\\'|\\:|\\,|\\;|\\."},{token:"paren.lparen",regex:"[[(]"},{token:"paren.rparen",regex:"[\\])]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.VHDLHighlightRules=s}),ace.define("ace/mode/vhdl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/vhdl_highlight_rules","ace/range"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./vhdl_highlight_rules").VHDLHighlightRules,o=e("../range").Range,u=function(){this.HighlightRules=s};r.inherits(u,i),function(){this.lineCommentStart="--",this.$id="ace/mode/vhdl"}.call(u.prototype),t.Mode=u})
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-clouds.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/clouds",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-clouds",t.cssText='.ace-clouds .ace_gutter {background: #ebebeb;color: #333}.ace-clouds .ace_print-margin {width: 1px;background: #e8e8e8}.ace-clouds {background-color: #FFFFFF;color: #000000}.ace-clouds .ace_cursor {color: #000000}.ace-clouds .ace_marker-layer .ace_selection {background: #BDD5FC}.ace-clouds.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;}.ace-clouds .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-clouds .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds .ace_marker-layer .ace_active-line {background: #FFFBD1}.ace-clouds .ace_gutter-active-line {background-color : #dcdcdc}.ace-clouds .ace_marker-layer .ace_selected-word {border: 1px solid #BDD5FC}.ace-clouds .ace_invisible {color: #BFBFBF}.ace-clouds .ace_keyword,.ace-clouds .ace_meta,.ace-clouds .ace_support.ace_constant.ace_property-value {color: #AF956F}.ace-clouds .ace_keyword.ace_operator {color: #484848}.ace-clouds .ace_keyword.ace_other.ace_unit {color: #96DC5F}.ace-clouds .ace_constant.ace_language {color: #39946A}.ace-clouds .ace_constant.ace_numeric {color: #46A609}.ace-clouds .ace_constant.ace_character.ace_entity {color: #BF78CC}.ace-clouds .ace_invalid {background-color: #FF002A}.ace-clouds .ace_fold {background-color: #AF956F;border-color: #000000}.ace-clouds .ace_storage,.ace-clouds .ace_support.ace_class,.ace-clouds .ace_support.ace_function,.ace-clouds .ace_support.ace_other,.ace-clouds .ace_support.ace_type {color: #C52727}.ace-clouds .ace_string {color: #5D90CD}.ace-clouds .ace_comment {color: #BCC8BA}.ace-clouds .ace_entity.ace_name.ace_tag,.ace-clouds .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-eclipse.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/eclipse",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssText='.ace-eclipse .ace_gutter {background: #ebebeb;border-right: 1px solid rgb(159, 159, 159);color: rgb(136, 136, 136);}.ace-eclipse .ace_print-margin {width: 1px;background: #ebebeb;}.ace-eclipse {background-color: #FFFFFF;color: black;}.ace-eclipse .ace_fold {background-color: rgb(60, 76, 114);}.ace-eclipse .ace_cursor {color: black;}.ace-eclipse .ace_storage,.ace-eclipse .ace_keyword,.ace-eclipse .ace_variable {color: rgb(127, 0, 85);}.ace-eclipse .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-eclipse .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-eclipse .ace_function {color: rgb(60, 76, 114);}.ace-eclipse .ace_string {color: rgb(42, 0, 255);}.ace-eclipse .ace_comment {color: rgb(113, 150, 130);}.ace-eclipse .ace_comment.ace_doc {color: rgb(63, 95, 191);}.ace-eclipse .ace_comment.ace_doc.ace_tag {color: rgb(127, 159, 191);}.ace-eclipse .ace_constant.ace_numeric {color: darkblue;}.ace-eclipse .ace_tag {color: rgb(25, 118, 116);}.ace-eclipse .ace_type {color: rgb(127, 0, 127);}.ace-eclipse .ace_xml-pe {color: rgb(104, 104, 91);}.ace-eclipse .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-eclipse .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-eclipse .ace_meta.ace_tag {color:rgb(25, 118, 116);}.ace-eclipse .ace_invisible {color: #ddd;}.ace-eclipse .ace_entity.ace_other.ace_attribute-name {color:rgb(127, 0, 127);}.ace-eclipse .ace_marker-layer .ace_step {background: rgb(255, 255, 0);}.ace-eclipse .ace_active-line {background: rgb(232, 242, 254);}.ace-eclipse .ace_gutter-active-line {background-color : #DADADA;}.ace-eclipse .ace_marker-layer .ace_selected-word {border: 1px solid rgb(181, 213, 255);}.ace-eclipse .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.cssClass="ace-eclipse";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/sqlserver.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/sqlserver",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# ISNULL\nsnippet isnull\n ISNULL(${1:check_expression}, ${2:replacement_value})\n# FORMAT\nsnippet format\n FORMAT(${1:value}, ${2:format})\n# CAST\nsnippet cast\n CAST(${1:expression} AS ${2:data_type})\n# CONVERT\nsnippet convert\n CONVERT(${1:data_type}, ${2:expression})\n# DATEPART\nsnippet datepart\n DATEPART(${1:datepart}, ${2:date})\n# DATEDIFF\nsnippet datediff\n DATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\n# DATEADD\nsnippet dateadd\n DATEADD(${1:datepart}, ${2:number}, ${3:date})\n# DATEFROMPARTS \nsnippet datefromparts\n DATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\n# OBJECT_DEFINITION\nsnippet objectdef\n SELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\n# STUFF XML\nsnippet stuffxml\n STUFF((SELECT ', ' + ${1:ColumnName}\n FROM ${2:TableName}\n WHERE ${3:WhereClause}\n FOR XML PATH('')), 1, 1, '') AS ${4:Alias}\n ${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\n# Create Procedure\nsnippet createproc\n -- =============================================\n -- Author: ${1:Author}\n -- Create date: ${2:Date}\n -- Description: ${3:Description}\n -- =============================================\n CREATE PROCEDURE ${4:Procedure_Name}\n ${5:/*Add the parameters for the stored procedure here*/}\n AS\n BEGIN\n -- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\n SET NOCOUNT ON;\n \n ${6:/*Add the T-SQL statements to compute the return value here*/}\n \n END\n GO\n# Create Scalar Function\nsnippet createfn\n -- =============================================\n -- Author: ${1:Author}\n -- Create date: ${2:Date}\n -- Description: ${3:Description}\n -- =============================================\n CREATE FUNCTION ${4:Scalar_Function_Name}\n -- Add the parameters for the function here\n RETURNS ${5:Function_Data_Type}\n AS\n BEGIN\n DECLARE @Result ${5:Function_Data_Type}\n \n ${6:/*Add the T-SQL statements to compute the return value here*/}\n \n END\n GO",t.scope="sqlserver"})
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-gherkin.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/gherkin_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})",o=function(){this.$rules={start:[{token:"constant.numeric",regex:"(?:(?:[1-9]\\d*)|(?:0))"},{token:"comment",regex:"#.*$"},{token:"keyword",regex:"Feature:|Background:|Scenario:|Scenario Outline:|Examples:|Given|When|Then|And|But|\\*"},{token:"string",regex:'"{3}',next:"qqstring3"},{token:"string",regex:'"',next:"qqstring"},{token:"text",regex:"^\\s*(?=@[\\w])",next:[{token:"text",regex:"\\s+"},{token:"variable.parameter",regex:"@[\\w]+"},{token:"empty",regex:"",next:"start"}]},{token:"comment",regex:"<.+>"},{token:"comment",regex:"\\|(?=.)",next:"table-item"},{token:"comment",regex:"\\|$",next:"start"}],qqstring3:[{token:"constant.language.escape",regex:s},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:s},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],"table-item":[{token:"comment",regex:/$/,next:"start"},{token:"comment",regex:/\|/},{token:"string",regex:/\\./},{defaultToken:"string"}]},this.normalizeRules()};r.inherits(o,i),t.GherkinHighlightRules=o}),ace.define("ace/mode/gherkin",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gherkin_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("./gherkin_highlight_rules").GherkinHighlightRules,o=function(){this.HighlightRules=s};r.inherits(o,i),function(){this.lineCommentStart="#",this.$id="ace/mode/gherkin",this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),i=" ",s=this.getTokenizer().getLineTokens(t,e),o=s.tokens;return console.log(e),t.match("[ ]*\\|")&&(r+="| "),o.length&&o[o.length-1].type=="comment"?r:(e=="start"&&(t.match("Scenario:|Feature:|Scenario Outline:|Background:")?r+=i:t.match("(Given|Then).+(:)$|Examples:")?r+=i:t.match("\\*.+")&&(r+="* ")),r)}}.call(o.prototype),t.Mode=o})
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-toml.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/toml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e=this.createKeywordMapper({"constant.language.boolean":"true|false"},"identifier"),t="[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b";this.$rules={start:[{token:"comment.toml",regex:/#.*$/},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:["variable.keygroup.toml"],regex:"(?:^\\s*)(\\[\\[([^\\]]+)\\]\\])"},{token:["variable.keygroup.toml"],regex:"(?:^\\s*)(\\[([^\\]]+)\\])"},{token:e,regex:t},{token:"support.date.toml",regex:"\\d{4}-\\d{2}-\\d{2}(T)\\d{2}:\\d{2}:\\d{2}(Z)"},{token:"constant.numeric.toml",regex:"-?\\d+(\\.?\\d+)?"}],qqstring:[{token:"string",regex:"\\\\$",next:"qqstring"},{token:"constant.language.escape",regex:'\\\\[0tnr"\\\\]'},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}]}};r.inherits(s,i),t.TomlHighlightRules=s}),ace.define("ace/mode/folding/ini",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(){};r.inherits(o,s),function(){this.foldingStartMarker=/^\s*\[([^\])]*)]\s*(?:$|[;#])/,this.getFoldWidgetRange=function(e,t,n){var r=this.foldingStartMarker,s=e.getLine(n),o=s.match(r);if(!o)return;var u=o[1]+".",a=s.length,f=e.getLength(),l=n,c=n;while(++nl){var h=e.getLine(c).length;return new i(l,a,c,h)}}}.call(o.prototype)}),ace.define("ace/mode/toml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/toml_highlight_rules","ace/mode/folding/ini"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./toml_highlight_rules").TomlHighlightRules,o=e("./folding/ini").FoldMode,u=function(){this.HighlightRules=s,this.foldingRules=new o};r.inherits(u,i),function(){this.lineCommentStart="#",this.$id="ace/mode/toml"}.call(u.prototype),t.Mode=u})
--------------------------------------------------------------------------------
/media/static/editor/ace/mode-space.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("./fold_mode").FoldMode,s=e("../../range").Range,o=t.FoldMode=function(){};r.inherits(o,i),function(){this.getFoldWidgetRange=function(e,t,n){var r=this.indentationBlock(e,n);if(r)return r;var i=/\S/,o=e.getLine(n),u=o.search(i);if(u==-1||o[u]!="#")return;var a=o.length,f=e.getLength(),l=n,c=n;while(++nl){var p=e.getLine(c).length;return new s(l,a,c,p)}},this.getFoldWidget=function(e,t,n){var r=e.getLine(n),i=r.search(/\S/),s=e.getLine(n+1),o=e.getLine(n-1),u=o.search(/\S/),a=s.search(/\S/);if(i==-1)return e.foldWidgets[n-1]=u!=-1&&u span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_invisible {color: #BFBFBF}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/media/scss/bootstrap-extended.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.5 (http://getbootstrap.com)
3 | * Copyright 2011-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | @import "bootstrap-custom"; // for customization bootstrap
8 |
9 | // Core variables and mixins
10 | @import "vendors/bootstrap/variables";
11 | @import "vendors/bootstrap/mixins";
12 |
13 | // Reset and dependencies
14 | @import "vendors/bootstrap/normalize";
15 | @import "vendors/bootstrap/print";
16 | @import "vendors/bootstrap/glyphicons";
17 |
18 | // Core CSS
19 | @import "vendors/bootstrap/scaffolding";
20 | @import "vendors/bootstrap/type";
21 | @import "vendors/bootstrap/code";
22 | @import "vendors/bootstrap/grid";
23 | @import "vendors/bootstrap/tables";
24 | @import "vendors/bootstrap/forms";
25 | @import "vendors/bootstrap/buttons";
26 |
27 | // Components
28 | @import "vendors/bootstrap/component-animations";
29 | @import "vendors/bootstrap/dropdowns";
30 | @import "vendors/bootstrap/button-groups";
31 | @import "vendors/bootstrap/input-groups";
32 | @import "vendors/bootstrap/navs";
33 | @import "vendors/bootstrap/navbar";
34 | @import "vendors/bootstrap/breadcrumbs";
35 | @import "vendors/bootstrap/pagination";
36 | @import "vendors/bootstrap/pager";
37 | @import "vendors/bootstrap/labels";
38 | @import "vendors/bootstrap/badges";
39 | @import "vendors/bootstrap/jumbotron";
40 | @import "vendors/bootstrap/thumbnails";
41 | @import "vendors/bootstrap/alerts";
42 | @import "vendors/bootstrap/progress-bars";
43 | @import "vendors/bootstrap/media";
44 | @import "vendors/bootstrap/list-group";
45 | @import "vendors/bootstrap/panels";
46 | @import "vendors/bootstrap/responsive-embed";
47 | @import "vendors/bootstrap/wells";
48 | @import "vendors/bootstrap/close";
49 |
50 | // Components w/ JavaScript
51 | @import "vendors/bootstrap/modals";
52 | @import "vendors/bootstrap/tooltip";
53 | @import "vendors/bootstrap/popovers";
54 | @import "vendors/bootstrap/carousel";
55 |
56 | // Utility classes
57 | @import "vendors/bootstrap/utilities";
58 | @import "vendors/bootstrap/responsive-utilities";
59 |
--------------------------------------------------------------------------------
/content/en/microbit/editor/index.html:
--------------------------------------------------------------------------------
1 | type: editor
2 | slug: editor
3 | url: /en/microbit/editor/index.html
4 | title: Code Editor
5 | ---
6 |
40 |
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-vibrant_ink.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/vibrant_ink",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-vibrant-ink",t.cssText=".ace-vibrant-ink .ace_gutter {background: #1a1a1a;color: #BEBEBE}.ace-vibrant-ink .ace_print-margin {width: 1px;background: #1a1a1a}.ace-vibrant-ink {background-color: #0F0F0F;color: #FFFFFF}.ace-vibrant-ink .ace_cursor {color: #FFFFFF}.ace-vibrant-ink .ace_marker-layer .ace_selection {background: #6699CC}.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0F0F0F;}.ace-vibrant-ink .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-vibrant-ink .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-vibrant-ink .ace_marker-layer .ace_active-line {background: #333333}.ace-vibrant-ink .ace_gutter-active-line {background-color: #333333}.ace-vibrant-ink .ace_marker-layer .ace_selected-word {border: 1px solid #6699CC}.ace-vibrant-ink .ace_invisible {color: #404040}.ace-vibrant-ink .ace_keyword,.ace-vibrant-ink .ace_meta {color: #FF6600}.ace-vibrant-ink .ace_constant,.ace-vibrant-ink .ace_constant.ace_character,.ace-vibrant-ink .ace_constant.ace_character.ace_escape,.ace-vibrant-ink .ace_constant.ace_other {color: #339999}.ace-vibrant-ink .ace_constant.ace_numeric {color: #99CC99}.ace-vibrant-ink .ace_invalid,.ace-vibrant-ink .ace_invalid.ace_deprecated {color: #CCFF33;background-color: #000000}.ace-vibrant-ink .ace_fold {background-color: #FFCC00;border-color: #FFFFFF}.ace-vibrant-ink .ace_entity.ace_name.ace_function,.ace-vibrant-ink .ace_support.ace_function,.ace-vibrant-ink .ace_variable {color: #FFCC00}.ace-vibrant-ink .ace_variable.ace_parameter {font-style: italic}.ace-vibrant-ink .ace_string {color: #66FF00}.ace-vibrant-ink .ace_string.ace_regexp {color: #44B4CC}.ace-vibrant-ink .ace_comment {color: #9933CC}.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {font-style: italic;color: #99CC99}.ace-vibrant-ink .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/templates/editor.html:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | {{ page.title }}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
18 |
19 |
20 | {% block content %}
21 | {{ page.content }}
22 | {% endblock %}
23 |
27 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/media/static/editor/ace/snippets/coffee.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/snippets/coffee",["require","exports","module"],function(e,t,n){"use strict";t.snippetText="# Closure loop\nsnippet forindo\n for ${1:name} in ${2:array}\n do ($1) ->\n ${3:// body}\n# Array comprehension\nsnippet fora\n for ${1:name} in ${2:array}\n ${3:// body...}\n# Object comprehension\nsnippet foro\n for ${1:key}, ${2:value} of ${3:object}\n ${4:// body...}\n# Range comprehension (inclusive)\nsnippet forr\n for ${1:name} in [${2:start}..${3:finish}]\n ${4:// body...}\nsnippet forrb\n for ${1:name} in [${2:start}..${3:finish}] by ${4:step}\n ${5:// body...}\n# Range comprehension (exclusive)\nsnippet forrex\n for ${1:name} in [${2:start}...${3:finish}]\n ${4:// body...}\nsnippet forrexb\n for ${1:name} in [${2:start}...${3:finish}] by ${4:step}\n ${5:// body...}\n# Function\nsnippet fun\n (${1:args}) ->\n ${2:// body...}\n# Function (bound)\nsnippet bfun\n (${1:args}) =>\n ${2:// body...}\n# Class\nsnippet cla class ..\n class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n ${2}\nsnippet cla class .. constructor: ..\n class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n constructor: (${2:args}) ->\n ${3}\n\n ${4}\nsnippet cla class .. extends ..\n class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n ${3}\nsnippet cla class .. extends .. constructor: ..\n class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n constructor: (${3:args}) ->\n ${4}\n\n ${5}\n# If\nsnippet if\n if ${1:condition}\n ${2:// body...}\n# If __ Else\nsnippet ife\n if ${1:condition}\n ${2:// body...}\n else\n ${3:// body...}\n# Else if\nsnippet elif\n else if ${1:condition}\n ${2:// body...}\n# Ternary If\nsnippet ifte\n if ${1:condition} then ${2:value} else ${3:other}\n# Unless\nsnippet unl\n ${1:action} unless ${2:condition}\n# Switch\nsnippet swi\n switch ${1:object}\n when ${2:value}\n ${3:// body...}\n\n# Log\nsnippet log\n console.log ${1}\n# Try __ Catch\nsnippet try\n try\n ${1}\n catch ${2:error}\n ${3}\n# Require\nsnippet req\n ${2:$1} = require '${1:sys}'${3}\n# Export\nsnippet exp\n ${1:root} = exports ? this\n",t.scope="coffee"})
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-dawn.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/dawn",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-dawn",t.cssText=".ace-dawn .ace_gutter {background: #ebebeb;color: #333}.ace-dawn .ace_print-margin {width: 1px;background: #e8e8e8}.ace-dawn {background-color: #F9F9F9;color: #080808}.ace-dawn .ace_cursor {color: #000000}.ace-dawn .ace_marker-layer .ace_selection {background: rgba(39, 95, 255, 0.30)}.ace-dawn.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #F9F9F9;}.ace-dawn .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-dawn .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(75, 75, 126, 0.50)}.ace-dawn .ace_marker-layer .ace_active-line {background: rgba(36, 99, 180, 0.12)}.ace-dawn .ace_gutter-active-line {background-color : #dcdcdc}.ace-dawn .ace_marker-layer .ace_selected-word {border: 1px solid rgba(39, 95, 255, 0.30)}.ace-dawn .ace_invisible {color: rgba(75, 75, 126, 0.50)}.ace-dawn .ace_keyword,.ace-dawn .ace_meta {color: #794938}.ace-dawn .ace_constant,.ace-dawn .ace_constant.ace_character,.ace-dawn .ace_constant.ace_character.ace_escape,.ace-dawn .ace_constant.ace_other {color: #811F24}.ace-dawn .ace_invalid.ace_illegal {text-decoration: underline;font-style: italic;color: #F8F8F8;background-color: #B52A1D}.ace-dawn .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #B52A1D}.ace-dawn .ace_support {color: #691C97}.ace-dawn .ace_support.ace_constant {color: #B4371F}.ace-dawn .ace_fold {background-color: #794938;border-color: #080808}.ace-dawn .ace_list,.ace-dawn .ace_markup.ace_list,.ace-dawn .ace_support.ace_function {color: #693A17}.ace-dawn .ace_storage {font-style: italic;color: #A71D5D}.ace-dawn .ace_string {color: #0B6125}.ace-dawn .ace_string.ace_regexp {color: #CF5628}.ace-dawn .ace_comment {font-style: italic;color: #5A525F}.ace-dawn .ace_heading,.ace-dawn .ace_markup.ace_heading {color: #19356D}.ace-dawn .ace_variable {color: #234A97}.ace-dawn .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-merbivore.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/merbivore",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-merbivore",t.cssText=".ace-merbivore .ace_gutter {background: #202020;color: #E6E1DC}.ace-merbivore .ace_print-margin {width: 1px;background: #555651}.ace-merbivore {background-color: #161616;color: #E6E1DC}.ace-merbivore .ace_cursor {color: #FFFFFF}.ace-merbivore .ace_marker-layer .ace_selection {background: #454545}.ace-merbivore.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #161616;}.ace-merbivore .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore .ace_gutter-active-line {background-color: #333435}.ace-merbivore .ace_marker-layer .ace_selected-word {border: 1px solid #454545}.ace-merbivore .ace_invisible {color: #404040}.ace-merbivore .ace_entity.ace_name.ace_tag,.ace-merbivore .ace_keyword,.ace-merbivore .ace_meta,.ace-merbivore .ace_meta.ace_tag,.ace-merbivore .ace_storage,.ace-merbivore .ace_support.ace_function {color: #FC6F09}.ace-merbivore .ace_constant,.ace-merbivore .ace_constant.ace_character,.ace-merbivore .ace_constant.ace_character.ace_escape,.ace-merbivore .ace_constant.ace_other,.ace-merbivore .ace_support.ace_type {color: #1EDAFB}.ace-merbivore .ace_constant.ace_character.ace_escape {color: #519F50}.ace-merbivore .ace_constant.ace_language {color: #FDC251}.ace-merbivore .ace_constant.ace_library,.ace-merbivore .ace_string,.ace-merbivore .ace_support.ace_constant {color: #8DFF0A}.ace-merbivore .ace_constant.ace_numeric {color: #58C554}.ace-merbivore .ace_invalid {color: #FFFFFF;background-color: #990000}.ace-merbivore .ace_fold {background-color: #FC6F09;border-color: #E6E1DC}.ace-merbivore .ace_comment {font-style: italic;color: #AD2EA4}.ace-merbivore .ace_entity.ace_other.ace_attribute-name {color: #FFFF89}.ace-merbivore .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQFxf3ZXB1df0PAAdsAmERTkEHAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-idle_fingers.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/idle_fingers",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-idle-fingers",t.cssText=".ace-idle-fingers .ace_gutter {background: #3b3b3b;color: rgb(153,153,153)}.ace-idle-fingers .ace_print-margin {width: 1px;background: #3b3b3b}.ace-idle-fingers {background-color: #323232;color: #FFFFFF}.ace-idle-fingers .ace_cursor {color: #91FF00}.ace-idle-fingers .ace_marker-layer .ace_selection {background: rgba(90, 100, 126, 0.88)}.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #323232;}.ace-idle-fingers .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-idle-fingers .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-idle-fingers .ace_marker-layer .ace_active-line {background: #353637}.ace-idle-fingers .ace_gutter-active-line {background-color: #353637}.ace-idle-fingers .ace_marker-layer .ace_selected-word {border: 1px solid rgba(90, 100, 126, 0.88)}.ace-idle-fingers .ace_invisible {color: #404040}.ace-idle-fingers .ace_keyword,.ace-idle-fingers .ace_meta {color: #CC7833}.ace-idle-fingers .ace_constant,.ace-idle-fingers .ace_constant.ace_character,.ace-idle-fingers .ace_constant.ace_character.ace_escape,.ace-idle-fingers .ace_constant.ace_other,.ace-idle-fingers .ace_support.ace_constant {color: #6C99BB}.ace-idle-fingers .ace_invalid {color: #FFFFFF;background-color: #FF0000}.ace-idle-fingers .ace_fold {background-color: #CC7833;border-color: #FFFFFF}.ace-idle-fingers .ace_support.ace_function {color: #B83426}.ace-idle-fingers .ace_variable.ace_parameter {font-style: italic}.ace-idle-fingers .ace_string {color: #A5C261}.ace-idle-fingers .ace_string.ace_regexp {color: #CCCC33}.ace-idle-fingers .ace_comment {font-style: italic;color: #BC9458}.ace-idle-fingers .ace_meta.ace_tag {color: #FFE5BB}.ace-idle-fingers .ace_entity.ace_name {color: #FFC66D}.ace-idle-fingers .ace_collab.ace_user1 {color: #323232;background-color: #FFF980}.ace-idle-fingers .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
--------------------------------------------------------------------------------
/media/scss/bootstrap.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.3.6 (http://getbootstrap.com)
3 | * Copyright 2011-2015 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | @import "bootstrap-custom"; // for customization bootstrap
8 |
9 | // Core variables and mixins
10 | @import "vendors/bootstrap/variables";
11 | @import "vendors/bootstrap/mixins";
12 |
13 | // Reset and dependencies
14 | @import "vendors/bootstrap/normalize";
15 | @import "vendors/bootstrap/print";
16 | @import "vendors/bootstrap/glyphicons";
17 |
18 | // Core CSS
19 | @import "vendors/bootstrap/scaffolding";
20 | @import "vendors/bootstrap/type";
21 | @import "vendors/bootstrap/code";
22 | @import "vendors/bootstrap/grid";
23 | @import "vendors/bootstrap/tables";
24 | @import "vendors/bootstrap/forms";
25 | @import "vendors/bootstrap/buttons";
26 |
27 | // Components
28 | // @import "vendors/bootstrap/component-animations";
29 | // @import "vendors/bootstrap/dropdowns";
30 | // @import "vendors/bootstrap/button-groups";
31 | // @import "vendors/bootstrap/input-groups";
32 | // @import "vendors/bootstrap/navs";
33 | // @import "vendors/bootstrap/navbar";
34 | // @import "vendors/bootstrap/breadcrumbs";
35 | // @import "vendors/bootstrap/pagination";
36 | // @import "vendors/bootstrap/pager";
37 | // @import "vendors/bootstrap/labels";
38 | // @import "vendors/bootstrap/badges";
39 | // @import "vendors/bootstrap/jumbotron";
40 | // @import "vendors/bootstrap/thumbnails";
41 | // @import "vendors/bootstrap/alerts";
42 | // @import "vendors/bootstrap/progress-bars";
43 | // @import "vendors/bootstrap/media";
44 | // @import "vendors/bootstrap/list-group";
45 | // @import "vendors/bootstrap/panels";
46 | // @import "vendors/bootstrap/responsive-embed";
47 | // @import "vendors/bootstrap/wells";
48 | // @import "vendors/bootstrap/close";
49 |
50 | // Components w/ JavaScript
51 | // @import "vendors/bootstrap/modals";
52 | // @import "vendors/bootstrap/tooltip";
53 | // @import "vendors/bootstrap/popovers";
54 | // @import "vendors/bootstrap/carousel";
55 |
56 | // Utility classes
57 | // @import "vendors/bootstrap/utilities";
58 | // @import "vendors/bootstrap/responsive-utilities";
59 |
--------------------------------------------------------------------------------
/CONTRIBUTING.rst:
--------------------------------------------------------------------------------
1 | Contributing to pythonineducation.org
2 | -------------------------------------
3 |
4 | Hey! Many thanks for wanting to improve http://pythonineducation.org/.
5 |
6 | Contributions are welcome without prejudice from *anyone* irrespective of
7 | who you are. If you're thinking, "but they probably don't mean me" then WE
8 | ESPECIALLY MEAN YOU! Good quality code and engagement with respect, humour and
9 | intelligence wins every time.
10 |
11 | * If you're from a background which isn't well-represented in most geeky
12 | groups, get involved - *we want to help you make a difference*.
13 | * If you're from a background which *is* well-represented in most geeky groups,
14 | get involved - *we want your help making a difference*.
15 | * If you're worried about not being technical enough, get involved -
16 | *your fresh perspective will be invaluable*.
17 | * If you think you're an imposter, get involved.
18 | * If your day job isn't code, get involved.
19 | * This isn't a group of experts, we're a community. Get involved!
20 | * We are interested in educational, social and technical problems. If you are
21 | too, get involved.
22 | * *No-one knows what they are doing*, so help out and (you guessed it) get
23 | involved.
24 |
25 | We expect contributors to follow the Python Software Foundation's Code of
26 | Conduct: https://www.python.org/psf/codeofconduct/
27 |
28 | Feedback may be given for contributions and, where necessary, changes will
29 | be politely requested and discussed with the originating author. Respectful
30 | yet robust argument is most welcome.
31 |
32 | Checklist
33 | +++++++++
34 |
35 | * You have the legal authority to contribute your content and code under the
36 | license we use (see the LICENSE file in this repository).
37 | * When appropriate, your code should be commented.
38 | * If your contribution is for a major block of work and you've not done so
39 | already, add yourself to the AUTHORS file following the convention found
40 | therein.
41 | * Where appropriate - include tests!
42 | * Before submitting code ensure coding standards and test coverage by running::
43 |
44 | $ make check
45 |
46 | * If in doubt, ask a question. The only stupid question is the one that's
47 | never asked.
48 | * Have fun!
49 |
--------------------------------------------------------------------------------
/media/static/editor/ace/theme-kr_theme.js:
--------------------------------------------------------------------------------
1 | ace.define("ace/theme/kr_theme",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!0,t.cssClass="ace-kr-theme",t.cssText=".ace-kr-theme .ace_gutter {background: #f2f2f2;color: #999999}.ace-kr-theme .ace_print-margin {width: 1px;background: #1c1917}.ace-kr-theme {background-color: #0B0A09;color: #FCFFE0}.ace-kr-theme .ace_cursor {color: #FF9900}.ace-kr-theme .ace_marker-layer .ace_selection {background: rgba(170, 0, 255, 0.45)}.ace-kr-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0B0A09;}.ace-kr-theme .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-kr-theme .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_marker-layer .ace_active-line {background: #38403D}.ace-kr-theme .ace_gutter-active-line {background-color : #38403D}.ace-kr-theme .ace_marker-layer .ace_selected-word {border: 1px solid rgba(170, 0, 255, 0.45)}.ace-kr-theme .ace_invisible {color: rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_keyword,.ace-kr-theme .ace_meta {color: #949C8B}.ace-kr-theme .ace_constant,.ace-kr-theme .ace_constant.ace_character,.ace-kr-theme .ace_constant.ace_character.ace_escape,.ace-kr-theme .ace_constant.ace_other {color: rgba(210, 117, 24, 0.76)}.ace-kr-theme .ace_invalid {color: #F8F8F8;background-color: #A41300}.ace-kr-theme .ace_support {color: #9FC28A}.ace-kr-theme .ace_support.ace_constant {color: #C27E66}.ace-kr-theme .ace_fold {background-color: #949C8B;border-color: #FCFFE0}.ace-kr-theme .ace_support.ace_function {color: #85873A}.ace-kr-theme .ace_storage {color: #FFEE80}.ace-kr-theme .ace_string {color: rgba(164, 161, 181, 0.8)}.ace-kr-theme .ace_string.ace_regexp {color: rgba(125, 255, 192, 0.65)}.ace-kr-theme .ace_comment {font-style: italic;color: #706D5B}.ace-kr-theme .ace_variable {color: #D1A796}.ace-kr-theme .ace_list,.ace-kr-theme .ace_markup.ace_list {background-color: #0F0040}.ace-kr-theme .ace_variable.ace_language {color: #FF80E1}.ace-kr-theme .ace_meta.ace_tag {color: #BABD9C}.ace-kr-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}";var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
2 |
--------------------------------------------------------------------------------