├── .editorconfig
├── .gitignore
├── README.md
├── circle.yml
├── code-of-conduct.md
├── emails
├── 02_final_keynotes.txt
├── 03_events.md
└── 04_summary.md
├── scripts
└── jetbrains-coupons.py
├── static
├── .scss-lint.yml
├── coffee
│ └── main.coffee
├── data
│ ├── speakers.json
│ └── workshops.json
├── files
│ ├── static
│ │ └── images
│ │ │ ├── pycon-cz-logo-fb.png
│ │ │ ├── pycon-cz-logo-icon.png
│ │ │ ├── pycon-cz-logo-icon.svg
│ │ │ ├── pycon-cz-logo.png
│ │ │ ├── pycon-cz-logo.svg
│ │ │ ├── pycontest
│ │ │ ├── prizes-2.jpg
│ │ │ └── prizes.jpg
│ │ │ ├── speakers
│ │ │ ├── amber_brown.jpg
│ │ │ ├── anastassiya_zidkova.jpg
│ │ │ ├── default_male.png
│ │ │ ├── elyezer_rezende.jpg
│ │ │ ├── jachym_cepicky.jpg
│ │ │ ├── jan_cermak.jpg
│ │ │ ├── jarka_schovancova.jpg
│ │ │ ├── jessiva_rose.jpg
│ │ │ ├── michal_horejsek.jpg
│ │ │ ├── nischal_hp.jpg
│ │ │ ├── peter_inglesby.jpg
│ │ │ ├── piotr_dyba.jpg
│ │ │ ├── radomir_dopieralski.jpg
│ │ │ ├── robert_kuska.jpeg
│ │ │ ├── russell_keith_magee.png
│ │ │ ├── svetlana_margetova.jpg
│ │ │ ├── tobas_bedrich.png
│ │ │ ├── valentina_mukhamedzhanova.png
│ │ │ ├── veros_kaplan.jpg
│ │ │ └── viktor_stiskala.png
│ │ │ ├── sponsors
│ │ │ ├── imper.png
│ │ │ ├── inuits.png
│ │ │ ├── psf.png
│ │ │ ├── pycharm.png
│ │ │ ├── pycharm.svg
│ │ │ ├── redhat.png
│ │ │ ├── skypicker.png
│ │ │ └── twisto.png
│ │ │ ├── team
│ │ │ ├── chris.jpg
│ │ │ ├── natali.jpg
│ │ │ ├── petr.jpg
│ │ │ └── vehrlich.jpg
│ │ │ └── ui
│ │ │ ├── branch-in.png
│ │ │ ├── branch-in.svg
│ │ │ ├── branch-out.png
│ │ │ ├── branch-out.svg
│ │ │ └── branch.svg
│ └── zohoverify
│ │ └── verifyforzoho.html
├── gulpfile.litcoffee
├── jade
│ ├── about
│ │ ├── code-of-conduct.jade
│ │ ├── pycontest.jade
│ │ ├── speakers.jade
│ │ ├── sponsorship.jade
│ │ ├── team.jade
│ │ └── tickets.jade
│ ├── base.jade
│ ├── components
│ │ ├── footer.jade
│ │ ├── js.jade
│ │ ├── navbar.jade
│ │ ├── twitter.jade
│ │ └── vars.jade
│ ├── getting-here
│ │ └── index.jade
│ ├── index.jade
│ ├── pages
│ │ └── timeline.jade
│ ├── talks
│ │ └── index.jade
│ └── workshops
│ │ └── index.jade
├── package.json
└── scss
│ ├── _bootstrap.scss
│ ├── _variables.scss
│ ├── bootstrap
│ ├── _alerts.scss
│ ├── _badges.scss
│ ├── _breadcrumbs.scss
│ ├── _button-groups.scss
│ ├── _buttons.scss
│ ├── _carousel.scss
│ ├── _close.scss
│ ├── _code.scss
│ ├── _component-animations.scss
│ ├── _dropdowns.scss
│ ├── _forms.scss
│ ├── _glyphicons.scss
│ ├── _grid.scss
│ ├── _input-groups.scss
│ ├── _jumbotron.scss
│ ├── _labels.scss
│ ├── _list-group.scss
│ ├── _media.scss
│ ├── _mixins.scss
│ ├── _modals.scss
│ ├── _navbar.scss
│ ├── _navs.scss
│ ├── _normalize.scss
│ ├── _pager.scss
│ ├── _pagination.scss
│ ├── _panels.scss
│ ├── _popovers.scss
│ ├── _print.scss
│ ├── _progress-bars.scss
│ ├── _responsive-embed.scss
│ ├── _responsive-utilities.scss
│ ├── _scaffolding.scss
│ ├── _tables.scss
│ ├── _theme.scss
│ ├── _thumbnails.scss
│ ├── _tooltip.scss
│ ├── _type.scss
│ ├── _utilities.scss
│ ├── _variables.scss
│ ├── _wells.scss
│ └── mixins
│ │ ├── _alerts.scss
│ │ ├── _background-variant.scss
│ │ ├── _border-radius.scss
│ │ ├── _buttons.scss
│ │ ├── _center-block.scss
│ │ ├── _clearfix.scss
│ │ ├── _forms.scss
│ │ ├── _gradients.scss
│ │ ├── _grid-framework.scss
│ │ ├── _grid.scss
│ │ ├── _hide-text.scss
│ │ ├── _image.scss
│ │ ├── _labels.scss
│ │ ├── _list-group.scss
│ │ ├── _nav-divider.scss
│ │ ├── _nav-vertical-align.scss
│ │ ├── _opacity.scss
│ │ ├── _pagination.scss
│ │ ├── _panels.scss
│ │ ├── _progress-bar.scss
│ │ ├── _reset-filter.scss
│ │ ├── _resize.scss
│ │ ├── _responsive-visibility.scss
│ │ ├── _size.scss
│ │ ├── _tab-focus.scss
│ │ ├── _table-row.scss
│ │ ├── _text-emphasis.scss
│ │ ├── _text-overflow.scss
│ │ └── _vendor-prefixes.scss
│ ├── pycon
│ ├── _coc.scss
│ ├── _footer.scss
│ ├── _home.scss
│ ├── _map.scss
│ ├── _navbar.scss
│ ├── _sponsors.scss
│ ├── _talks.scss
│ ├── _team.scss
│ ├── _tickets.scss
│ └── _twitter.scss
│ └── pyconcz.scss
└── texts
├── invite-cs.md
├── invite-de.md
└── invite-en.md
/.editorconfig:
--------------------------------------------------------------------------------
1 | # top-most EditorConfig file
2 | root = true
3 |
4 | # Unix-style newlines with a newline ending every file
5 | [*]
6 | charset = utf-8
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 | indent_size = 2
11 |
12 | [*.py]
13 | indent_style = space
14 | indent_size = 4
15 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Build files
2 | # stack/cf_templates/
3 |
4 | # AWS IAM credentials
5 | static/aws.json
6 | static/build/
7 |
8 | node_modules/
9 | .idea/
10 |
11 | # Cache
12 | static/.awspublish-*
13 | static/rev-manifest.json
14 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | > ⚠ This repository is archived 🗄
2 | >
3 | > [https://cz.pycon.org/2015/](https://cz.pycon.org/2015/) is now served as a static website. Look for it in the [repo for PyCon CZ 2019](https://github.com/pyvec/cz.pycon.org-2019/) (or further years).
4 |
5 |
6 | [](https://circleci.com/gh/pyvec/cz.pycon.org-2015)
7 |
8 | PyCon CZ 2015 -- early adopters version
9 | =======================================
10 |
11 | Welcome! It's really going to happen this year. The Czech PyCon, local Python conference for anyone interested in Python programming language.
12 |
13 | Join us
14 | -------
15 |
16 | PyCons are community events. Everybody is welcome, anyone can contribute. You can join us on following channels:
17 |
18 | - Google Group -- [pycon-cs@googlegroups.com](https://groups.google.com/forum/#!forum/pycon-cs)
19 | - [Trello](https://trello.com/czechpycon2015)
20 | - [Slack](https://pyconcz.slack.com) -- request invite at tomas.ehrlich@gmail.com
21 |
22 | Google Group mailing list is available for everyone. Trello is read-only for public and Slack is private. Send email to tomas.ehrlich@gmail.com if you want access them.
23 |
24 | Contribute
25 | ----------
26 |
27 | 1. Setup development environment:
28 |
29 | ```
30 | npm install -g gulp bower
31 |
32 | cd static
33 | npm install
34 | bower install
35 | ```
36 |
37 | (If you don't want to install system-wide, run e.g. `npm config set prefix ~/.local/npm_prefix` beforehand; then run the tools from `~/.local/npm_prefix/bin`.)
38 |
39 | 2. Run *watcher*:
40 |
41 | ```
42 | cd static && gulp
43 | ```
44 |
45 | 3. Visit http://localhost:3000/2015/
46 |
47 | This is needed because the development version doesn't have the 2015 redirect set up.
48 |
49 | 4. Commit changes and submit pull-request
50 |
51 | Publish to AWS S3 (authorization required)
52 | ------------------------------------------
53 |
54 | `master` branch is published automatically to [][cz.pycon.org] and `dev` branch
55 | to [][dev.pycon.cz] in CircleCI. If you want to do it manually, you need to:
56 |
57 | 1. Copy `aws.json.example` to `aws.json` and provide credentials for your
58 | AWS IAM role.
59 |
60 | 2. Build all static assets and publish them to S3 (domain [][dev.pycon.cz]):
61 |
62 | ```
63 | gulp publish
64 | ```
65 |
66 | Running `gulp publish --production` will publish static assets to
67 | [][cz.pycon.org].
68 |
69 | License
70 | -------
71 |
72 | MIT
73 |
--------------------------------------------------------------------------------
/circle.yml:
--------------------------------------------------------------------------------
1 | dependencies:
2 | pre:
3 | - gem install scss-lint
4 | override:
5 | - npm install -g gulp
6 | - cd static && npm install
7 |
8 | test:
9 | override:
10 | - cd static && gulp ci
11 |
12 | deployment:
13 | production:
14 | branch: master
15 | commands:
16 | - cd static && gulp publish --production
17 | staging:
18 | branch: dev
19 | commands:
20 | - cd static && gulp publish
21 |
--------------------------------------------------------------------------------
/code-of-conduct.md:
--------------------------------------------------------------------------------
1 | PyCon CZ is a community conference intended for networking and collaboration in the developer community.
2 |
3 | We value the participation of each member of the Python community and want all attendees to have an enjoyable and fulfilling experience. Accordingly, all attendees are expected to show respect and courtesy to other attendees throughout the conference and at all conference events, whether officially sponsored by PyCon or not.
4 |
5 | To make clear what is expected, all delegates/attendees, speakers, exhibitors, organizers and volunteers at any PyCon event are required to conform to the following Code of Conduct. Organizers will enforce this code throughout the event.
6 |
7 | The Short Version
8 | -----------------
9 |
10 | PyCon is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, sexual orientation, disability, physical appearance, body size, race, or religion. We do not tolerate harassment of conference participants in any form.
11 |
12 | All communication should be appropriate for a professional audience including people of many different backgrounds. Sexual language and imagery is not appropriate for any conference venue, including talks.
13 |
14 | Be kind to others. Do not insult or put down other attendees. Behave professionally. Remember that harassment and sexist, racist, or exclusionary jokes are not appropriate for PyCon.
15 |
16 | Attendees violating these rules may be asked to leave the conference without a refund at the sole discretion of the conference organizers.
17 |
18 | Thank you for helping make this a welcoming, friendly event for all.
19 |
20 | The Longer Version
21 | ------------------
22 |
23 | Harassment includes offensive verbal comments related to gender, sexual orientation, disability, physical appearance, body size, race, religion, sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, sustained disruption of talks or other events, inappropriate physical contact, and unwelcome sexual attention.
24 |
25 | Participants asked to stop any harassing behavior are expected to comply immediately.
26 |
27 | Exhibitors in the expo hall, sponsor or vendor booths, or similar activities are also subject to the anti-harassment policy. In particular, exhibitors should not use sexualized images, activities, or other material. Booth staff (including volunteers) should not use sexualized clothing/uniforms/costumes, or otherwise create a sexualized environment.
28 |
29 | Be careful in the words that you choose. Remember that sexist, racist, and other exclusionary jokes can be offensive to those around you. Excessive swearing and offensive jokes are not appropriate for PyCon.
30 |
31 | If a participant engages in behavior that violates this code of conduct, the conference organizers may take any action they deem appropriate, including warning the offender or expulsion from the conference with no refund.
32 |
33 | Contact Information
34 | -------------------
35 |
36 | If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of conference staff. Conference staff will be wearing "Staff" t-shirts.
37 |
38 | If the matter is especially urgent, please call/contact any of these individuals:
39 |
40 | - Tomáš Ehrlich at +420 608 219 889
41 |
42 | Conference staff will be happy to help participants contact venue security or local law enforcement, provide escorts, or otherwise assist those experiencing harassment to feel safe for the duration of the conference. We value your attendance.
43 |
44 | Procedure for Handling Harassment
45 | ------------------------------------------
46 | - [Attendee Procedure for incident handling](/2013/about/code-of-conduct/harassment-incidents/)
47 | - [Staff Procedure for incident handling](https://us.pycon.org/2013/about/code-of-conduct/harassment-incidents-staff/)
48 |
49 | License
50 | -------
51 |
52 | This Code of Conduct was forked from the example policy from the [Geek Feminism wiki, created by the Ada Initiative and other volunteers.](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy) which is under a Creative Commons Zero license.
53 |
54 |
Conference Code of Conduct by https://us.pycon.org/2013/about/code-of-conduct/ is licensed under a Creative Commons Attribution 3.0 Unported License.
55 |
--------------------------------------------------------------------------------
/emails/02_final_keynotes.txt:
--------------------------------------------------------------------------------
1 | Keynote speakers confirmed
2 |
3 | In the past two days we received valuable feedback from you and updated our website
4 | accordingly. New information was added, other information was
5 | clarified. Thank you all for your patience!
6 |
7 | The most important news: Our second keynote speaker, Amber Brown, is confirmed.
8 | She is the core developer and release manager of the Twisted project. As you
9 | already know, the other keynote speaker is Russell Keith-Magee, core developer
10 | of the Django web framework. We are very excited to have them both aboard!
11 |
12 | The rest of the speakers will be announced at the beginning of October because
13 | the Call for Papers is still open. Have you already submitted your talk?
14 | If not, you can do it at the following link: http://cz.pycon.org/#speakers
15 |
16 | PyCon CZ is a community-driven conference. Do you have ideas how to improve
17 | our site? Submit a pull request (https://github.com/pyvec/cz.pycon.org-2015)!
18 | Would you like to hear a talk about a specific topic? Contact us on
19 | twitter (@pyconcz), facebook (http://bit.ly/fb-pyconcz-2015) or by email. We are
20 | here for you and we care about your opinion.
21 |
22 | Cheers,
23 | Tomáš Ehrlich and PyCon CZ team
24 |
--------------------------------------------------------------------------------
/emails/03_events.md:
--------------------------------------------------------------------------------
1 | Hi {{ first_name }},
2 |
3 | we've just added few more question to your ticket. None of them is required, but it help us with planning.
4 |
5 | # Workshop registration
6 |
7 | There will be 6 [workshops](https://cz.pycon.org/2015/workshops/) on Sunday in two blocks. One in the morning and one after lunch. Please pick one from the list so we know which room to assign to which workshop.
8 |
9 | # Social events
10 |
11 | A lot of pythonistas will be already in town on Friday. You can join organizers, speakers and DjangoGirls in [Molino Restaurant](http://www.molinorestaurant.cz) anytime after 7pm.
12 |
13 | On Saturday we prepare a special event and after-party in a local pub. The location will be announced during the day, but it'll be definitely in city center.
14 |
15 | # Thank you
16 |
17 | That's it. If you want to, you can also tell us where are you from. As it's the first edition of PyCon CZ, we're super curious from which country people came from.
18 |
19 | Looking forward to meet you in Brno!
20 |
21 | Cheers,
22 |
23 | Tom & PyCon CZ Team
24 |
--------------------------------------------------------------------------------
/emails/04_summary.md:
--------------------------------------------------------------------------------
1 | Hi Tomáš,
2 |
3 | thank you again that you were so brave and came to the very first PyCon CZ in November 2015.
4 |
5 |
6 | ## Feedback
7 |
8 | First of all, we would like to encourage you to give us feedback on the conference.
9 | If you think something could be improved or you have ideas on what could be done next time,
10 | please let us know at our [GitHub repository](https://github.com/pyvec/cz.pycon.org-2016/)
11 | or privately just by replying to this e-mail. Also, don't hesitate to contact us
12 | in case you would like to join the team of organizers.
13 |
14 | ## Videos
15 |
16 | All recordings of talks are online at [SuperLectures](http://www.superlectures.com/pycon2015/).
17 | Check out what you missed!
18 |
19 | ## Photos
20 |
21 | Apart from photos we were posting to our [Twitter account](https://twitter.com/pyconcz)
22 | and [Facebook Event](https://www.facebook.com/events/1624916497723396/) during
23 | the action, we have also recently uploaded a [photo set by our professional
24 | photographer](https://goo.gl/photos/Sdpx5ZACzU9hsD9i8). Maybe you can find yourself
25 | or your friends!
26 |
27 | ## News
28 |
29 | Don't forget to follow [our Twitter account](https://twitter.com/pyconcz) as that's
30 | where we publish all important news.
31 |
32 | ## Czech Python User Group
33 |
34 | At the end of 2015, two new websites about the Czech Python community emerged.
35 | [Python.cz](http://python.cz/) is the main gateway for all sorts
36 | of information, while at [pyvo.cz](http://pyvo.cz) it's all about our meetups.
37 | You're always welcome to come and present at them!
38 |
39 | ## PyCon SK
40 |
41 | Enjoyed attending our very first PyCon? How about visiting another one organized by our friends in Slovakia in March? Check
42 | out [PyCon SK](https://pycon.sk/sk/) and their
43 | [Django Girls event](http://djangogirls.org/bratislava/). They are still looking
44 | for speakers, coaches, and of course, attendees.
45 |
46 | ## Thank you!
47 |
48 | We hope you enjoyed the end of 2015. We're looking forward to new challenges that 2016 will bring us and we hope you stay with us, as awesome and as supporting as you have always been.
49 |
50 | PyCon CZ Team
51 |
--------------------------------------------------------------------------------
/scripts/jetbrains-coupons.py:
--------------------------------------------------------------------------------
1 | import csv
2 | import smtplib
3 | import time
4 |
5 | from email.mime.text import MIMEText
6 | from email.header import Header
7 |
8 | from collections import namedtuple
9 |
10 | # replace with real password
11 | password = '42'
12 |
13 | Promo = namedtuple("Promo", "first_name email discount_code")
14 |
15 | email_template = """
16 | Hi {first_name},
17 | last weekend was like a roller coaster ride! We've forgot to give you a nice
18 | gift from our silver sponsor PyCharm - the discount code for personal licenses.
19 |
20 | Here it is:
21 |
22 | {discount_code}
23 |
24 | The code gives you 20% discount from PyCharm personal license subscription,
25 | new or renewal. It's valid until 14th December 2015.
26 |
27 | You can buy or renew PyCharm here: https://www.jetbrains.com/pycharm/buy/#personal
28 |
29 | If you still have some questions, contact PyCharm support at promo@jetbrains.com.
30 |
31 |
32 | Cheers,
33 | PyCon CZ team
34 |
35 |
36 | Note: More info about PyCon CZ 2015 (photos, videos, report) coming soon.
37 | """
38 |
39 | test_recipient = Promo("Tomas", "tomas.ehrlich@gmail.com", "ABCD-EFGH-IJKL")
40 |
41 |
42 | def send_email(recipient, smtp):
43 | body = email_template.format(
44 | first_name=recipient.first_name.capitalize(),
45 | discount_code=recipient.discount_code
46 | )
47 | msg = MIMEText(body)
48 | msg['Subject'] = 'PyCharm discount code'
49 | msg['From'] = 'info@pycon.cz'
50 | msg['To'] = recipient.email
51 | return smtp.send_message(msg)
52 |
53 |
54 | def send_bulk_email(smtp):
55 | with open('jetbrains-codes.csv', newline='') as io:
56 | recipients = csv.reader(io, delimiter=',')
57 | for data in recipients:
58 | recipient = Promo(*data)
59 | print("Sending to {email}".format(email=recipient.email))
60 | send_email(recipient, smtp)
61 | time.sleep(1)
62 |
63 |
64 | smtp = smtplib.SMTP_SSL('smtp.zoho.com')
65 | smtp.login('info@pycon.cz', password)
66 |
67 | send_email(test_recipient, smtp)
68 | yes = input("Testing email send. Check it. Do you want to send 250 emails now? [y/N]")
69 |
70 | if yes == "y":
71 | send_bulk_email(smtp)
72 |
73 | smtp.quit()
74 |
--------------------------------------------------------------------------------
/static/.scss-lint.yml:
--------------------------------------------------------------------------------
1 | # Default application configuration that all configurations inherit from.
2 | linters:
3 | BorderZero:
4 | enabled: true
5 |
6 | CapitalizationInSelector:
7 | enabled: false
8 |
9 | ColorKeyword:
10 | enabled: true
11 |
12 | Comment:
13 | enabled: false
14 |
15 | DebugStatement:
16 | enabled: true
17 |
18 | DeclarationOrder:
19 | enabled: true
20 |
21 | DuplicateProperty:
22 | enabled: false
23 |
24 | EmptyLineBetweenBlocks:
25 | enabled: true
26 | ignore_single_line_blocks: true
27 |
28 | EmptyRule:
29 | enabled: false
30 |
31 | FinalNewline:
32 | enabled: true
33 | present: true
34 |
35 | HexFormat:
36 | enabled: true
37 |
38 | IdSelector:
39 | enabled: false
40 |
41 | IdWithExtraneousSelector:
42 | enabled: true
43 |
44 | ImportantRule:
45 | enabled: false
46 |
47 | Indentation:
48 | enabled: false
49 |
50 | LeadingZero:
51 | enabled: false
52 |
53 | MergeableSelector:
54 | enabled: true
55 | force_nesting: true
56 |
57 | NameFormat:
58 | enabled: false
59 | convention: hyphenated_lowercase # or 'BEM', or a regex pattern
60 |
61 | NestingDepth:
62 | enabled: false
63 |
64 | PlaceholderInExtend:
65 | enabled: false
66 |
67 | PropertySortOrder:
68 | enabled: true
69 | order: ["position", "top", "right", "bottom", "left", "z-index", "display", "visibility", "overflow", "overflow-x", "overflow-y", "float", "clear", "table-layout", "border-collapse", "empty-cells", "box-sizing", "width", "min-width", "max-width", "height", "min-height", "max-height", "margin", "margin-top", "margin-right", "margin-bottom", "margin-left", "padding", "padding-top", "padding-right", "padding-bottom", "padding-left", "border", "border-width", "border-style", "border-color", "border-radius", "border-top", "border-top-width", "border-top-style", "border-top-color", "border-right", "border-right-width", "border-right-style", "border-right-color", "border-bottom", "border-bottom-width", "border-bottom-style", "border-bottom-color", "border-left", "border-left-width", "border-left-style", "border-left-color", "border-top-left-radius", "border-top-right-radius", "border-bottom-right-radius", "border-bottom-left-radius", "white-space", "content", "color", "background", "background-color", "background-image", "background-repeat", "background-attachment", "background-position", "background-size", "opacity", "font", "font-weight", "font-style", "font-variant", "font-size", "font-family", "letter-spacing", "line-height", "list-style", "list-style-type", "list-style-position", "list-style-image", "outline", "outline-width", "outline-style", "outline-color", "text-align", "text-decoration", "text-indent", "text-transform", "text-shadow", "animation", "transform", "transition", "box-shadow"]
70 | ignore_unspecified: true
71 |
72 | PropertySpelling:
73 | enabled: true
74 | extra_properties: ['*behavior']
75 |
76 | QualifyingElement:
77 | enabled: false
78 |
79 | SelectorDepth:
80 | enabled: true
81 | max_depth: 3
82 |
83 | SelectorFormat:
84 | enabled: false
85 |
86 | Shorthand:
87 | enabled: true
88 |
89 | SingleLinePerProperty:
90 | enabled: false
91 |
92 | SingleLinePerSelector:
93 | enabled: true
94 |
95 | SpaceAfterComma:
96 | enabled: true
97 |
98 | SpaceAfterPropertyColon:
99 | enabled: true
100 | allow_extra_spaces: false
101 |
102 | SpaceAfterPropertyName:
103 | enabled: true
104 |
105 | SpaceBeforeBrace:
106 | enabled: true
107 | allow_single_line_padding: false
108 |
109 | SpaceBetweenParens:
110 | enabled: false
111 |
112 | StringQuotes:
113 | enabled: true
114 | style: double_quotes
115 |
116 | TrailingSemicolonAfterPropertyValue:
117 | enabled: true
118 |
119 | UnnecessaryMantissa:
120 | enabled: true
121 |
122 | UrlFormat:
123 | enabled: true
124 |
125 | UrlQuotes:
126 | enabled: true
127 |
128 | VendorPrefixes:
129 | enabled: false
130 |
131 | ZeroUnit:
132 | enabled: true
133 |
134 | Compass::*:
135 | enabled: false
136 |
--------------------------------------------------------------------------------
/static/coffee/main.coffee:
--------------------------------------------------------------------------------
1 | $ ->
2 | if $("#map.vut").length
3 | talks =
4 | lng: 16.596936
5 | lat: 49.226245
6 |
7 | mapVut = new GMaps {
8 | div: '#map'
9 | zoom: 17
10 | lat: talks.lat
11 | lng: talks.lng
12 | scrollwheel: false
13 | draggable: false
14 | }
15 |
16 | mapVut.addMarker {
17 | lat: talks.lat,
18 | lng: talks.lng,
19 | title: 'PyCon CZ 2015 - Talks & Keynotes'
20 | }
21 |
22 | if $("#map.impact").length
23 | workshops =
24 | lng: 16.620317
25 | lat: 49.190492
26 |
27 | mapImpact = new GMaps {
28 | div: "#map"
29 | zoom: 15
30 | lat: workshops.lat
31 | lng: workshops.lng
32 | scrollwheel: false
33 | draggable: false
34 | }
35 |
36 | mapImpact.addMarker {
37 | lat: workshops.lat,
38 | lng: workshops.lng,
39 | title: 'PyCon CZ 2015 - Sprints & Workshops'
40 | }
41 |
--------------------------------------------------------------------------------
/static/files/static/images/pycon-cz-logo-fb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/pycon-cz-logo-fb.png
--------------------------------------------------------------------------------
/static/files/static/images/pycon-cz-logo-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/pycon-cz-logo-icon.png
--------------------------------------------------------------------------------
/static/files/static/images/pycon-cz-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/pycon-cz-logo.png
--------------------------------------------------------------------------------
/static/files/static/images/pycontest/prizes-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/pycontest/prizes-2.jpg
--------------------------------------------------------------------------------
/static/files/static/images/pycontest/prizes.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/pycontest/prizes.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/amber_brown.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/amber_brown.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/anastassiya_zidkova.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/anastassiya_zidkova.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/default_male.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/default_male.png
--------------------------------------------------------------------------------
/static/files/static/images/speakers/elyezer_rezende.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/elyezer_rezende.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/jachym_cepicky.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/jachym_cepicky.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/jan_cermak.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/jan_cermak.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/jarka_schovancova.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/jarka_schovancova.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/jessiva_rose.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/jessiva_rose.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/michal_horejsek.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/michal_horejsek.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/nischal_hp.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/nischal_hp.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/peter_inglesby.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/peter_inglesby.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/piotr_dyba.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/piotr_dyba.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/radomir_dopieralski.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/radomir_dopieralski.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/robert_kuska.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/robert_kuska.jpeg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/russell_keith_magee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/russell_keith_magee.png
--------------------------------------------------------------------------------
/static/files/static/images/speakers/svetlana_margetova.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/svetlana_margetova.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/tobas_bedrich.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/tobas_bedrich.png
--------------------------------------------------------------------------------
/static/files/static/images/speakers/valentina_mukhamedzhanova.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/valentina_mukhamedzhanova.png
--------------------------------------------------------------------------------
/static/files/static/images/speakers/veros_kaplan.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/veros_kaplan.jpg
--------------------------------------------------------------------------------
/static/files/static/images/speakers/viktor_stiskala.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/speakers/viktor_stiskala.png
--------------------------------------------------------------------------------
/static/files/static/images/sponsors/imper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/sponsors/imper.png
--------------------------------------------------------------------------------
/static/files/static/images/sponsors/inuits.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/sponsors/inuits.png
--------------------------------------------------------------------------------
/static/files/static/images/sponsors/psf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/sponsors/psf.png
--------------------------------------------------------------------------------
/static/files/static/images/sponsors/pycharm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/sponsors/pycharm.png
--------------------------------------------------------------------------------
/static/files/static/images/sponsors/pycharm.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
5 |
6 | ]>
7 |
60 |
--------------------------------------------------------------------------------
/static/files/static/images/sponsors/redhat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/sponsors/redhat.png
--------------------------------------------------------------------------------
/static/files/static/images/sponsors/skypicker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/sponsors/skypicker.png
--------------------------------------------------------------------------------
/static/files/static/images/sponsors/twisto.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/sponsors/twisto.png
--------------------------------------------------------------------------------
/static/files/static/images/team/chris.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/team/chris.jpg
--------------------------------------------------------------------------------
/static/files/static/images/team/natali.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/team/natali.jpg
--------------------------------------------------------------------------------
/static/files/static/images/team/petr.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/team/petr.jpg
--------------------------------------------------------------------------------
/static/files/static/images/team/vehrlich.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/team/vehrlich.jpg
--------------------------------------------------------------------------------
/static/files/static/images/ui/branch-in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/ui/branch-in.png
--------------------------------------------------------------------------------
/static/files/static/images/ui/branch-in.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/files/static/images/ui/branch-out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pyvec/cz.pycon.org-2015/ee4c874522abcb271d5af2b4baae626945bb43fb/static/files/static/images/ui/branch-out.png
--------------------------------------------------------------------------------
/static/files/static/images/ui/branch-out.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/files/static/images/ui/branch.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/static/files/zohoverify/verifyforzoho.html:
--------------------------------------------------------------------------------
1 | 1441223238575
--------------------------------------------------------------------------------
/static/jade/about/code-of-conduct.jade:
--------------------------------------------------------------------------------
1 | extends ../base
2 |
3 | block vars
4 | - var pageClass = "page-coc"
5 |
6 | block viewport
7 | .container
8 | :markdown
9 | # Code of conduct
10 |
11 | **PyCon CZ** is a community conference intended for networking and
12 | collaboration in the developer community. We value the participation of
13 | **each member** of the **Python community** and want all attendees to have
14 | an enjoyable and fulfilling experience. Accordingly, all attendees are
15 | expected to show **respect** and **courtesy** to other attendees throughout the
16 | conference and at all conference events, whether officially sponsored by
17 | PyCon CZ or not.
18 |
19 | To make clear what is expected:
20 |
21 | > All delegates, attendees, speakers, exhibitors, organizers and volunteers
22 | at any **PyCon CZ** event are required to conform to the following Code of Conduct.
23 |
24 | Organizers will **enforce** this code throughout the event.
25 |
26 | The Short Version
27 | -----------------
28 |
29 | **PyCon** is dedicated to providing a harassment-free conference
30 | experience for everyone, regardless of gender, sexual orientation,
31 | disability, physical appearance, body size, race, or religion.
32 |
33 | We do not tolerate harassment of conference participants in any form.
34 |
35 | All communication should be appropriate for a professional audience including
36 | people of many different backgrounds. Sexual language and imagery is not
37 | appropriate for any conference venue, including talks. Be kind to others.
38 | Do not insult or put down other attendees. Behave professionally.
39 | Remember that harassment and sexist, racist, or exclusionary jokes are not
40 | appropriate for PyCon.
41 |
42 | > Attendees violating these rules may be asked to
43 | leave the conference without a refund at the sole discretion of the
44 | conference organizers.
45 |
46 | Thank you for helping make this a welcoming, friendly event for all.
47 |
48 | The Longer Version
49 | ------------------
50 |
51 | Harassment includes offensive verbal comments related to gender, sexual
52 | orientation, disability, physical appearance, body size, race, religion,
53 | sexual images in public spaces, deliberate intimidation, stalking,
54 | following, harassing photography or recording, sustained disruption
55 | of talks or other events, inappropriate physical contact, and unwelcome
56 | sexual attention.
57 |
58 | > Participants asked to stop any harassing behavior are expected to comply immediately.
59 |
60 | Exhibitors in the expo hall, sponsor or vendor booths, or similar
61 | activities are also subject to the anti-harassment policy. In particular,
62 | exhibitors should not use sexualized images, activities, or other material.
63 | Booth staff (including volunteers) should not use sexualized
64 | clothing/uniforms/costumes, or otherwise create a sexualized environment.
65 |
66 | Be careful in the words that you choose. Remember that sexist, racist,
67 | and other exclusionary jokes can be offensive to those around you.
68 | Excessive swearing and offensive jokes are not appropriate for PyCon.
69 |
70 | If a participant engages in behavior that violates this code of conduct,
71 | the conference organizers may take any action they deem appropriate,
72 | including warning the offender or expulsion from the conference with no refund.
73 |
74 | Contact Information
75 | -------------------
76 |
77 | If you are being harassed, notice that someone else is being harassed,
78 | or have any other concerns, please contact a member of conference staff.
79 | Conference staff will be wearing "Staff" t-shirts.
80 |
81 | If the matter is especially urgent, please call/contact any of these individuals:
82 |
83 | ul
84 | li Mikey Ariel at
85 | a(href="tel:+420702131141") +420 702 131 141
86 | li Tomáš Ehrlich at
87 | a(href="tel:+420608219889") +420 608 219 889
88 |
89 | p.
90 | Conference staff will be happy to help participants contact venue security
91 | or local law enforcement, provide escorts, or otherwise assist those
92 | experiencing harassment to feel safe for the duration of the conference.
93 |
94 | p.
95 | We value your attendance.
96 |
97 | h2#license License
98 |
99 | | This Code of Conduct was forked from the example policy from the
100 | a(href="http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy").
101 | Geek Feminism wiki, created by the Ada Initiative and other volunteers
102 | | which is under a
103 | a(rel="licence", href="http://creativecommons.org/licenses/by/3.0/").
104 | Creative Commons Zero license.
105 |
106 | br
107 |
108 | span(xmlns:dct="http://purl.org/dc/terms/", href="http://purl.org/dc/dcmitype/Text", property="dct:title", rel="dct:type")
109 | | Conference Code of Conduct
110 | | by
111 | a(xmlns:cc="http://creativecommons.org/ns#", href="https://us.pycon.org/2013/about/code-of-conduct/", property="cc:attributionName", rel="cc:attributionURL")
112 | | https://us.pycon.org/2013/about/code-of-conduct/
113 | | is licensed under a
114 | a(rel="license", href="http://creativecommons.org/licenses/by/3.0/")
115 | | Creative Commons Attribution 3.0 Unported License
116 | | .
117 |
--------------------------------------------------------------------------------
/static/jade/about/pycontest.jade:
--------------------------------------------------------------------------------
1 | extends ../base
2 |
3 | block vars
4 | - var pageClass = "page-pycontest"
5 |
6 | block viewport
7 | .container
8 | h1 #PyConTest
9 |
10 | .row
11 | img.col-sm-6(src=pageUrl("/static/images/pycontest/prizes.jpg"), alt="#PyConTest prizes")
12 | img.col-sm-6(src=pageUrl("/static/images/pycontest/prizes-2.jpg"), alt="#PyConTest prizes")
13 |
14 | p.lead.pycontest-email.alert.alert-info.
15 | Send all submissions to #[a(href="mailto:pycontestcz@gmail.com") pycontestcz@gmail.com]
16 |
17 | ul
18 | li
19 | a(href="https://drive.google.com/folderview?id=0B76bfeqN4RF2VTdsay1Scmpac3c&usp=sharing") 1st challenge: 10:00 CET
20 | li
21 | a(href="https://drive.google.com/folderview?id=0B76bfeqN4RF2eVZNNlpwUDhFLTA&usp=sharing") 2nd challenge: 11:00 CET
22 | li
23 | a(href="https://drive.google.com/folderview?id=0B76bfeqN4RF2OG5waVJ2WWNrLW8&usp=sharing") 3rd challenge: 12:00 CET
24 | li
25 | a(href="https://drive.google.com/folderview?id=0B76bfeqN4RF2TzVsNWJqbnpMU0U&usp=sharing") 4th challenge: 13:00 CET
26 | li
27 | a(href="https://drive.google.com/folderview?id=0B76bfeqN4RF2bXBCUjB0VHJkb28&usp=sharing") 5th challenge: 14:00 CET
28 | li
29 | strong End of Challenge - 15th November at 10:00 CET
30 |
31 | h2 What is #PyConTest?
32 |
33 | p.
34 | PYCONTEST is a special programming challenge tailored for pycon.cz audience.
35 | The challenge is organized with help from pycon.cz official sponsors (Red Hat,
36 | Skypicker and Twisto) and Fedora.
37 |
38 | h2 What challenges can I expect?
39 |
40 | p.
41 | You will be presented with 5 challenges, 4 of which were created by our sponsors
42 | and will consist of solving specific tasks using Python. The 5th challenge will be a special
43 | social challenge. Please bear in mind that you can submit only one solution for each
44 | challenge, resubmitions are not allowed.
45 |
46 | h2 Where can I find assignments?
47 |
48 | p.
49 | Each challenge along with the description how to submit it will be announced every hour
50 | at the official @pyconcz twitter account with hashtag #pycontest,
51 | at the official #[a(href="https://cz.pycon.org/2015/") PyCon CZ] website
52 | and during the pycon.cz conference starting at 10:00am.
53 | Follow #[a(href="https://twitter.com/pyconcz") @pyconcz] now!
54 |
55 | h2 Conditions
56 |
57 | p.
58 | To be eligible for winning you must fullfil the following conditions:
59 |
60 | ol
61 | li you are a registered visitor of pycon.cz conference
62 | li you must solve and submit all challenges and they must be correct
63 |
64 | p.
65 | Also please note that by submitting your solutions you accept the fact
66 | that your code examples will be shared and that you can be contacted (now
67 | or in the future) by any of the sponsors (Red Hat, Skypicker, Twisto) for job offers.
68 |
69 | h2 What can I win?
70 |
71 | p Apart from cool job offers you may win the following prizes:
72 |
73 | ul
74 | li Garmin Fenix 3 Sapphire Performer
75 | li Nexus 5x Black 32GB
76 | li Audio-technica ATH-M50x
77 | li Kindle Paperwhite 3
78 |
79 | h2 How will winners be chosen?
80 |
81 | p.
82 | Winners will be determined by the results of the 5th challenge (don't be afraid,
83 | it won't be a 'like'ing race) but bear in mind that you still need to have the first
84 | four challenges submitted and they must all be correct. Winners will be
85 | announced during the lunch break at workshops on Sunday, November 15th.
86 |
--------------------------------------------------------------------------------
/static/jade/about/speakers.jade:
--------------------------------------------------------------------------------
1 | extends ../base
2 |
3 | //- render single speaker
4 | mixin talk(workshop)
5 | .workshop
6 | h3
7 | = workshop.title
8 | small
9 | | by
10 | = workshop.name
11 |
12 | .misc
13 | small
14 | = workshop.time
15 | if workshop.github
16 | a.social.github(href="https://github.com/" + workshop.github)
17 | .fa.fa-github
18 | if workshop.twitter
19 | a.social.twitter(href="https://twitter.com/" + workshop.twitter)
20 | .fa.fa-twitter
21 |
22 | != md(workshop.abstract)
23 |
24 | block vars
25 | - var pageClass = "page-workshops"
26 | - var activePage = "workshops"
27 |
28 | block viewport
29 | .container
30 | h1 Our speakers
31 |
32 | //- Iterate over workshops object (loaded in gulpfile from data/workshops.json)
33 | //- and render mixin talk() (see above)
34 | each speaker, index in speakers
35 | +talk(speaker[0])
36 | +talk(speaker[1])
37 |
38 |
--------------------------------------------------------------------------------
/static/jade/about/sponsorship.jade:
--------------------------------------------------------------------------------
1 | extends ../base
2 |
3 | block vars
4 | - var pageClass = "page-sponsors"
5 |
6 | block viewport
7 | .container
8 | h1.text-center Become our partner
9 |
10 | p.lead.
11 | #[a(href=pageUrl("")) PyCon CZ] is a two-day conference organized by
12 | the Python community for the Python community. The conference will include
13 | 1 full day of talks featuring 2 international keynote speakers (all
14 | sessions will be held in English), and 1 day of sprints and workshops
15 | where Pythonistas can get together and work on their open source projects.
16 |
17 | p.
18 | This year is the first edition of PyCon CZ, and we are looking forward
19 | to bringing the tradition of diverse and insightful speakers, top-quality
20 | venues, and a great atmosphere to the Czech Republic. Regional PyCons are
21 | well-known for attracting developers, sysadmins, writers, designers, and
22 | community members from all over.
23 |
24 | p.
25 | These packages are recommendations for your company or organization. If
26 | you would like to contribute a different amount or an alternative sponsorship
27 | format, please let us know and we’ll be happy to discuss custom packages.
28 |
29 | h2 Sponsorship Packages
30 |
31 | .row
32 | .col-md-4
33 | h3 #[strike Platinum €3,000] #[small Sold out]
34 | p As a Platinum sponsor, you will receive the following benefits:
35 | ul
36 | li Full width logo on the event website
37 | li 3 tickets
38 | li Display unlimited promotional (“Swag”) items
39 | li Your own booth in the venue hall
40 | li Address audience during a sponsorship lightning talk (5 minutes)
41 | li Space for copy in welcome/goodbye emails to attendees
42 |
43 | .col-md-4
44 | h3 Gold €1,500
45 | p As a Gold sponsor, you will receive the following benefits:
46 | ul.text-left
47 | li Large logo on the event website
48 | li 2 tickets
49 | li Physical logo at the event (eg. banners, badge, stickers, etc)
50 | li Your own booth in the venue hall
51 | li Sponsorship branding, one of the following
52 | ul
53 | li Name the lunch
54 | li Name the pre-registration social
55 | li Name the main conference party
56 | li #[strike Lanyards] #[small sold out]
57 |
58 | .col-md-4
59 | h3 Silver €750
60 | p As a Silver sponsor, you will receive the following benefits:
61 | ul.text-left
62 | li Small logo on the event website
63 | li 1 ticket
64 | li Display 1 promotional (“Swag”) item
65 |
66 | p.call-to-action.
67 | Please direct all inquiries to #[a(href="mailto:info@pycon.cz") info@pycon.cz]
68 |
--------------------------------------------------------------------------------
/static/jade/about/team.jade:
--------------------------------------------------------------------------------
1 | extends ../base
2 |
3 | block vars
4 | - var pageClass = "page-team"
5 |
6 | block viewport
7 | .container
8 | h1 Who is behind this?
9 |
10 | p.lead.
11 | PyCon is a community event. There are more than 30 people on our Slack
12 | channel and even more volunteers helped us by sending PR on #[a(href="https://github.com/pyvec/cz.pycon.org-2015") GitHub].
13 | If you drew the organization structure of the PyCon CZ team,
14 | #[strong you — the attendee] would be at the top. The incredible amount of
15 | volunteers would follow. There's little or no difference between organizers
16 | and volunteers, because we all do it in our free time without any claim
17 | for wage. Below is a list of our core team members.
18 |
19 | p.call-to-action.
20 | We are here for #[strong you].
21 |
22 | p.lead.
23 | .team-member
24 | img(src='https://pbs.twimg.com/profile_images/528237673563959297/yYJxmlNO.png', alt='Photo of Tomáš Ehrlich')
25 | p.name
26 | a(href="https://twitter.com/tomas_ehrlich") Tomáš Ehrlich
27 | p.description C3PO & Sponsors
28 |
29 | .team-member
30 | img(src='https://djangogirls.org/uploads/event/coaches/ja.jpg', alt='')
31 | p.name
32 | a(href="https://twitter.com/honzajavorek") Honza Javorek
33 | p.description Media & Promotion
34 |
35 | .team-member
36 | img(src='https://pbs.twimg.com/profile_images/598803746722816000/htcvwi8Z.jpg', alt='')
37 | p.name
38 | a(href="https://twitter.com/thatdocslady") Mikey Ariel
39 | p.description Tickets & Mentoring
40 |
41 | .team-member
42 | img(src='/'+year+'/static/images/team/natali.jpg', alt='')
43 | p.name
44 | a(href="https://www.facebook.com/natali.debosque") Natália Sedláková
45 | p.description DjangoGirls organizer
46 |
47 | .team-member
48 | img(src='https://sk.gravatar.com/userimage/8116216/d3c0082d1cc96ed303565970e447b254.jpg?size=400', alt='')
49 | p.name
50 | a(href="https://twitter.com/netman92") Stanislav Komanec
51 | p.description Website administrator
52 |
53 | .team-member
54 | img(src='https://scontent-vie1-1.xx.fbcdn.net/hphotos-xat1/t31.0-8/11536487_10206028010931663_6339000516200778558_o.jpg', alt='')
55 | p.name
56 | a(href="https://www.facebook.com/martin.matuszek") Martin Matuszek
57 | p.description Swag & Collectables
58 |
59 | .team-member
60 | img(src='https://scontent-vie1-1.xx.fbcdn.net/hphotos-xpt1/t31.0-8/10463609_10205508922336237_4028946742293895321_o.jpg', alt='')
61 | p.name
62 | a(href="https://twitter.com/styrax_raveon") Martin Hořák
63 | p.description Events manager
64 |
65 | .team-member
66 | img(src='https://scontent-fra3-1.xx.fbcdn.net/hprofile-xfa1/l/t31.0-1/c84.0.749.749/265598_10150223402570824_5262769_o.jpg', alt='')
67 | p.name
68 | a(href="https://twitter.com/honzakral") Honza Král
69 | p.description Speakers
70 |
71 | .team-member
72 | img(src='/'+year+'/static/images/team/petr.jpg', alt='')
73 | p.name
74 | a(href="http://encukou.cz") Petr Viktorin
75 | p.description Sprints & Workshops
76 |
77 | .team-member
78 | img(src='/'+year+'/static/images/team/vehrlich.jpg', alt='')
79 | p.name
80 | a(href="https://twitter.com/melront") Václav Ehrlich
81 | p.description Photographer
82 |
83 | .team-member
84 | img(src='/'+year+'/static/images/team/chris.jpg', alt='')
85 | p.name
86 | a(href="https://twitter.com/kejbaly2") Chris Ward
87 | p.description Sponsors
88 |
89 | .team-member
90 | img(src='https://pbs.twimg.com/profile_images/656421052692766720/0D5jHooY_400x400.jpg', alt='')
91 | p.name
92 | a(href="https://twitter.com/BaraDrb") Bára Drbohlavová
93 | p.description English proofreading
94 |
95 | .container
96 | p.call-to-action.
97 | Wanna become part of our team or just offer a hand?
98 | #[a(href="mailto:info@pycon.cz?subject=Please, add me to your Slack!") Join us] on Slack!
99 |
--------------------------------------------------------------------------------
/static/jade/about/tickets.jade:
--------------------------------------------------------------------------------
1 | extends ../base
2 |
3 | block viewport
4 | .container
5 | h1 Tickets
6 |
7 | p.lead.
8 | Ticket sales are now closed. Looking forward to meet you all at
9 | the first year edition of #[strong PyCon CZ].
10 |
11 | include ../components/twitter
12 |
13 | h2 What's included in the ticket price
14 |
15 | ul.ticket-overview
16 | li #[span.number 2] days of conference
17 | li #[span.number 2] tracks of talks
18 | li #[span.number 14] talks
19 | li #[span.number 2] delicious lunches
20 | li #[span.number 4+] finest coffee with Czech cakes
21 | li #[span.number ∞] pure awesomeness
22 |
23 | ul.ticket-features
24 | li all talks, sprints and workshops during the #[strong two days] of the event
25 | li lunch and refreshments on both days
26 | li the finest #[strong coffee] with awesome #[strong Czech cakes] during breaks
27 | li a t-shirt and a bag full of conference swag and gifts
28 |
29 | p.
30 | Accommodation and travel costs are not covered. However, we'll try to
31 | find you the best hotel deals in Brno.
32 |
33 | h2 What ticket is the right for me?
34 |
35 | p.
36 | We try to keep the ticket prices as low as possible. Every corporate
37 | ticket allows us to issue two #[strong Student] tickets. If you employer
38 | is paying for your ticket, please select a #[strong Corporate] rate.
39 |
40 | p.
41 | Do you want to buy more than 10 tickets for your employees? Contact us
42 | directly and also consider our #[a(href=pageUrl("about/sponsorship.html")) sponsorship]
43 | packages.
44 |
45 | h2 Where does all the money go?
46 |
47 | p.
48 | This is a non-profit event run by volunteers and driven by the community.
49 | The event is organized with the help of Czech Python/Django community
50 | – #[a(href="http://pyvec.org") Pyvec].
51 |
52 | p.
53 | #[strong Everything] we receive from your ticket purchases goes
54 | directly towards the costs of running the event and making it enjoyable
55 | and memorable for all attendees.
56 |
--------------------------------------------------------------------------------
/static/jade/base.jade:
--------------------------------------------------------------------------------
1 | include components/vars
2 | block vars
3 |
4 | doctype html
5 | html(lang='en-us')
6 | head
7 | block title
8 | title= "PyCon CZ " + year
9 |
10 | base(href='/'+year+'/')
11 |
12 | meta(charset='utf-8')
13 | meta(name='viewport', content='width=device-width, initial-scale=1.0')
14 | meta(name='keywords', content='Python, PyCon, Brno, Django, conference, Česká Republika, konference')
15 | meta(name='description', content='The very first Python conference in the Czech Republic')
16 | link(rel='shortcut icon', href='/'+year+'/static/images/pycon-cz-logo-icon.svg', type='image/svg+xml')
17 | link(rel='shortcut icon', href='/'+year+'/static/images/pycon-cz-logo-icon.png', type='image/png')
18 | //if lt IE 9
19 | script(src='https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js')
20 | link(href='https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css', rel='stylesheet')
21 | link(href='/'+year+'/static/css/pyconcz.css', rel='stylesheet')
22 |
23 | script(src='https://js.tito.io/v1', async)
24 | link(rel="stylesheet", type="text/css", href='https://css.tito.io/v1')
25 |
26 | //- Facebook Meta
27 | meta(property="og:title", content="PyCon CZ 2015" )
28 | meta(property="og:site_name", content="cz.pycon.org" )
29 | meta(property="og:description", content="The very first Python conference in the Czech Republic" )
30 | meta(property="og:image", content=urlBase + "/static/images/pycon-cz-logo-fb.png" )
31 | meta(property="og:url", content=urlBase)
32 | meta(property="og:type", content="website" )
33 |
34 | body(class=pageClass, ontouchstart="")
35 | include components/navbar
36 | .canvas
37 | .overlay
38 | .viewport
39 | block viewport
40 |
41 | include components/footer
42 | include components/js
43 |
44 | script(type="text/javascript").
45 | function closeNavbar() {
46 | $closer.unbind();
47 | $body.toggleClass("open");
48 | }
49 |
50 | var $body = $('body');
51 | var $closer = $('.viewport, .canvas, .navbar a');
52 |
53 | $('.navbar-toggle').click(function(ev) {
54 | ev.preventDefault();
55 |
56 | if ($body.hasClass('open')) {
57 | closeNavbar();
58 | } else {
59 | $body.toggleClass("open");
60 | $closer.click(function(ev) {
61 | closeNavbar();
62 | })
63 | }
64 | });
65 |
--------------------------------------------------------------------------------
/static/jade/components/footer.jade:
--------------------------------------------------------------------------------
1 | footer.site-footer
2 | .container
3 | nav
4 | ul.nav-footer
5 | li.section
6 | a.nav-title(href=pageUrl("#")) About
7 | ul
8 | li
9 | a(href=pageUrl("about/team.html")) Team
10 | li
11 | a(href=pageUrl("about/speakers.html")) #[strong Speakers]
12 | li
13 | a(href=pageUrl("about/tickets.html")) Tickets
14 | li
15 | a(href=pageUrl("about/pycontest.html")) #PyConTest
16 | li
17 | a(href=pageUrl("about/sponsorship.html")) Sponsorship
18 | li
19 | a(href=pageUrl("about/code-of-conduct.html")) #[strong Code of Conduct]
20 |
21 | li.section
22 | a.nav-title(href=pageUrl("getting-here/")) Getting Here
23 | ul
24 | li
25 | a(href=pageUrl("getting-here/#travelling")) Travelling
26 | li
27 | a(href=pageUrl("getting-here/#accommodation")) Accommodation
28 |
29 | li.section
30 | a.nav-title(href=pageUrl("talks/")) Talks
31 | ul
32 | li
33 | a(href=pageUrl("talks/")) Schedule
34 | li
35 | a(href=pageUrl("talks/#directions")) Directions
36 |
37 | li.section
38 | a.nav-title(href=pageUrl("workshops/")) Sprints & Workshops
39 | ul
40 | li
41 | a(href=pageUrl("workshops/")) Schedule
42 | li
43 | a(href=pageUrl("workshops/#directions")) Directions
44 | //- li
45 | //- a(href=pageUrl("workshops/registration.html")) #[strong Registration]
46 |
47 | .social-links
48 | | Spread the word about #[strong PyCon CZ!]
49 | ul
50 | li
51 | a(href='https://twitter.com/pyconcz')
52 | i.fa.fa-twitter
53 | li
54 | a(href='https://www.facebook.com/events/1624916497723396/')
55 | i.fa.fa-facebook
56 | li
57 | a(href='http://lanyrd.com/2015/pyconcz/')
58 | i.fa.fa-calendar-check-o
59 | li
60 | a(href='https://github.com/pyvec/cz.pycon.org-2015')
61 | i.fa.fa-github
62 | li
63 | a(href='https://pyconcz.slack.com')
64 | i.fa.fa-slack
65 | li
66 | a(href='mailto:info@pycon.cz')
67 | i.fa.fa-envelope
68 |
69 | .psf-trademark
70 | p
71 | :markdown
72 | [PyCon™](href='https://www.python.org/psf/trademarks/pycon/')
73 | is a trademark for worldwide conference activities claimed by
74 | [Python Software foundation](href='https://www.python.org/psf-landing/').
75 |
--------------------------------------------------------------------------------
/static/jade/components/js.jade:
--------------------------------------------------------------------------------
1 | script(type='text/javascript', src='https://code.jquery.com/jquery-2.1.4.min.js')
2 | script(type='text/javascript', src='https://maps.google.com/maps/api/js?sensor=true')
3 | script(type='text/javascript', src='https://cdnjs.cloudflare.com/ajax/libs/gmaps.js/0.4.12/gmaps.js')
4 | script(type='text/javascript', src=pageUrl('/static/js/main.min.js'))
5 |
6 | unless debug
7 | script.
8 | (function (i, s, o, g, r, a, m) {
9 | i['GoogleAnalyticsObject'] = r;
10 | i[r] = i[r] || function () {
11 | (i[r].q = i[r].q || []).push(arguments)
12 | }, i[r].l = 1 * new Date();
13 | a = s.createElement(o),
14 | m = s.getElementsByTagName(o)[0];
15 | a.async = 1;
16 | a.src = g;
17 | m.parentNode.insertBefore(a, m)
18 | })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
19 |
20 | ga('create', 'UA-62652331-2', 'auto');
21 | ga('send', 'pageview');
22 |
--------------------------------------------------------------------------------
/static/jade/components/navbar.jade:
--------------------------------------------------------------------------------
1 | header#top
2 | .navbar
3 | button.navbar-toggle(type="button", aria-expanded="false")
4 | .fa.fa-bars
5 |
6 | ul.nav.navbar-nav
7 | li.about
8 | a(href=pageUrl("#")) About
9 | li.getting-here(class=activePage == "getting-here" ? "active" : "")
10 | a(href=pageUrl("getting-here/")) Getting here
11 | //- li.tickets
12 | //- a(href=pageUrl("about/pycontest.html"))
13 | //- | #PyConTest
14 | li.videos
15 | a(href="http://www.superlectures.com/pycon2015/")
16 | | Videos
17 | li.photos
18 | a(href="https://goo.gl/photos/Sdpx5ZACzU9hsD9i8")
19 | | Photos
20 | li.talks(class=activePage == "talks" ? "active" : "")
21 | a(href=pageUrl("talks/"))
22 | | Talks
23 | span.date Saturday 14th
24 | li.sprints(class=activePage == "workshops" ? "active" : "")
25 | a(href=pageUrl("workshops/"))
26 | | Sprints & workshops
27 | span.date Sunday 15th
28 |
29 | a(href="/2015/")
30 | img.pycon-logo(
31 | alt="PyCon CZ",
32 | src='/'+year+"/static/images/pycon-cz-logo-icon.svg",
33 | onerror="this.onerror = null; this.src = '/2015/static/images/pycon-cz-logo.png'"
34 | )
35 |
--------------------------------------------------------------------------------
/static/jade/components/twitter.jade:
--------------------------------------------------------------------------------
1 | .twitter-list
2 | .twitter-content
3 | blockquote.twitter-tweet(lang="en")
4 | p(lang="en", dir="ltr").
5 | Super impressed with #[a(href="https://twitter.com/pyconcz") @pyconcz].
6 | For a first edition, they're doing a lot of things right.
You should
7 | come too: #[a(href="https://t.co/TBT3ME854v") https:\/\/t.co\/TBT3ME854v]
8 |
9 | | — Baptiste Mispelon (@bmispelon)
10 | a(href="https://twitter.com/bmispelon/status/654613420797480960") October 15, 2015
11 |
12 | .twitter-content
13 | blockquote.twitter-tweet(lang="en")
14 | p(lang="en", dir="ltr").
15 | Just a reminder that #[a(href="https://twitter.com/pyconcz") @pyconcz] team
16 | is absolutely killing it, and it’s their first! ⚡️You should go:
17 | #[a(href="https://t.co/iIioxCTQMd") https:\/\/t.co\/iIioxCTQMd]
18 |
19 | | — Ola Sitarska (@olasitarska)
20 | a(href="https://twitter.com/olasitarska/status/654705632327548928") October 15, 2015
21 |
22 | .twitter-list
23 | .twitter-content
24 | blockquote.twitter-tweet(lang="en")
25 | p(lang="en", dir="ltr").
26 | Just bought a ticket for #[a(href="https://twitter.com/hashtag/pyconcz?src=hash") #pyconcz]
27 | #[a(href="https://t.co/w6NZ6CdCQ5") https:\/\/t.co\/w6NZ6CdCQ5] The list
28 | of talks looks really interesting.
29 |
30 | | — Jirka Vejrazka (@JirkaV) #[a(href="https://twitter.com/JirkaV/status/654931137463197696") October 16, 2015]
31 |
32 | .twitter-content
33 | blockquote.twitter-tweet(lang="en")
34 | p(lang="en", dir="ltr").
35 | I just registered for PyCon CZ 2015 #[a(href="https://t.co/7CKwOXBi0D") https:\/\/t.co\/7CKwOXBi0D]
36 | See you all there! :)
37 | | — Honza Král (@HonzaKral) #[a(href="https://twitter.com/HonzaKral/status/654705298842628096") October 15, 2015]
38 |
39 | .twitter-list
40 | .twitter-content
41 | blockquote.twitter-tweet(lang="en")
42 | p(lang="en", dir="ltr").
43 | Oh man, #[a(href="https://twitter.com/pyconcz") @pyconcz] looks
44 | promising - Czech, Python, great talks, affordable tickets, good beer
45 | - what more can a developer ask for?
46 | | — Žan Anderle (@z_anderle) #[a(href="https://twitter.com/z_anderle/status/656168108080668673") October 19, 2015]
47 |
48 | script(async, src="//platform.twitter.com/widgets.js", charset="utf-8")
49 |
--------------------------------------------------------------------------------
/static/jade/components/vars.jade:
--------------------------------------------------------------------------------
1 | - var contactEmail = "info@pycon.cz"
2 | - var year = "2015"
3 | - var ticketsLink = "https://ti.to/pyvec/pycon-cz-2015/"
4 | - var urlBase = "https://cz.pycon.org/" + year + "/"
5 |
--------------------------------------------------------------------------------
/static/jade/index.jade:
--------------------------------------------------------------------------------
1 | extends base
2 |
3 | block vars
4 | - var pageClass = "home"
5 |
6 | block viewport
7 | .pycon
8 | img.pycon-logo(
9 | alt="PyCon CZ",
10 | src='/'+year+"/static/images/pycon-cz-logo-icon.svg",
11 | onerror="this.onerror = null; this.src = '/2015/static/images/pycon-cz-logo.png'"
12 | )
13 |
14 | h1
15 | | PyCon CZ
16 | span.year= year
17 |
18 | .pycon-info
19 | p.pycon-location Brno, Czech Republic
20 | p.pycon-date November 14-15
21 |
22 | .claim
23 | .container
24 | p.
25 | The very first #[strong PyCon] in the #[strong Czech Republic]. Join us
26 | for a fun weekend full of talks, sprints and workshops about Python.
27 |
28 | .container
29 | .program
30 | .program-item
31 | h2 Talks
32 | .date Saturday 14th
33 | .venue
34 | i.fa.fa-map-marker
35 | span.
36 | #[a(href=pageUrl("talks/#directions")) Faculty of Information Technology,#[br] Božetěchova 1/2]
37 | p.
38 | #[strong One] day, #[strong two] parallel tracks, #[strong two] keynotes
39 | and #[strong ten] awesome talks. Community, web, hardware, science, devops and more.
40 |
41 | .program-item
42 | h2 Sprints & workshops
43 | .date Sunday 15th
44 | .venue
45 | i.fa.fa-map-marker
46 | span.
47 | #[a(href=pageUrl("workshops/#directions")) Impact Hub Brno,#[br] Cyrilská 7]
48 | p.
49 | #[strong Six] workshops in #[strong two] blocks and sprinting all day long. Hack on
50 | open-source projects together with other Python community members.
51 |
52 | .registration
53 | h2 PyCon CZ 2015 is over
54 | p.lead.
55 | See you all at the next PyCon CZ!
56 |
57 | h2 What people think about PyCon CZ?
58 |
59 | include components/twitter
60 |
61 | .sponsors
62 | h2 Our sponsors
63 |
64 | .platinum
65 | h3 Platinum sponsor
66 | .sponsor
67 | a.sponsor-skypicker(href="https://skypicker.com")
68 | img(src=pageUrl("/static/images/sponsors/skypicker.png"))
69 |
70 | .gold
71 | h3 Gold sponsors
72 | .sponsor
73 | a.sponsor-psf(href="https://www.python.org/psf/")
74 | img(src=pageUrl("/static/images/sponsors/psf.png"))
75 | .sponsor
76 | a.sponsor-twisto(href="https://www.twisto.cz")
77 | img(src=pageUrl("/static/images/sponsors/twisto.png"))
78 |
79 | .silver
80 | h3 Silver sponsors
81 | .sponsor
82 | a.sponsor-imper(href="https://imper.cz")
83 | img(src=pageUrl("/static/images/sponsors/imper.png"))
84 | .sponsor
85 | a.sponsor-pycharm(href="https://www.jetbrains.com/pycharm/")
86 | img(src=pageUrl("/static/images/sponsors/pycharm.png"))
87 | .sponsor
88 | a.sponsor-inuits(href="https://inuits.eu")
89 | img(src=pageUrl("/static/images/sponsors/inuits.png"))
90 | //-
91 | //- a.alone.sponsor-placeholder(href=pageUrl("about/sponsorship.html")).
92 | //- Become our partner!
93 |
94 | .djangogirls
95 | h3 DjangoGirls workshop sponsor
96 | .sponsor
97 | a.sponsor-redhat(href="http://www.redhat.com/en/global/czech-republic")
98 | img(src=pageUrl("/static/images/sponsors/redhat.png"))
99 |
--------------------------------------------------------------------------------
/static/jade/pages/timeline.jade:
--------------------------------------------------------------------------------
1 | h2.text-center Schedule
2 |
3 | div.container
4 | div.row
5 | ul.ul-timeline.col-md-10.col-md-offset-1
6 | li
7 | .timeline-badge.warning
8 | i.glyphicon.glyphicon-check
9 | .timeline-panel
10 | .timeline-heading
11 | h4.timeline-title Django Girls Workshop
12 | p
13 | small.text-muted
14 | i.glyphicon.glyphicon Friday, Nov 13 - Daytime
15 |
16 | .timeline-body
17 | p.
18 | The world famous Django Girls workshop is coming back to Brno!
19 | This one-day workshop aims to introduce women to the world of technology
20 | and open source. This workshop requires advance registration. For details,
21 | check out the #[a(href="https://djangogirls.org/brno/", target="_blank") Django Girls Brno] website.
22 |
23 | li.timeline-inverted
24 | .timeline-badge.info
25 | i.glyphicon.glyphicon-credit-card
26 | .timeline-panel
27 | .timeline-heading
28 | h4.timeline-title Pre-Registration Welcome Social
29 | p
30 | small.text-muted
31 | i.glyphicon.glyphicon Friday, Nov 13 - Evening
32 | .timeline-body
33 | p.
34 | If you are in Brno, stop by and pick up your conference badge, meet other
35 | attendees, and say hello. Exact time and location to be announced soon.
36 |
37 | li
38 | .timeline-badge.danger
39 | i.glyphicon.glyphicon-credit-card
40 | .timeline-panel
41 | .timeline-heading
42 | h4.timeline-title Day 1 - Talks
43 | p
44 | small.text-muted
45 | i.glyphicon.glyphicon Saturday, Nov 14 - Daytime
46 | .timeline-body
47 | p.
48 | Keynotes and talks about Python and how it's used in different environments.
49 | From building beautiful Django-pony websites to analyzing terabytes of
50 | data in science institutes, we're going to select the most diverse talks
51 | from all possible fields.
52 |
53 | li.timeline-inverted
54 | .timeline-badge.info
55 | i.glyphicon.glyphicon-credit-card
56 | .timeline-panel
57 | .timeline-heading
58 | h4.timeline-title Conference Party
59 | p
60 | small.text-muted
61 | i.glyphicon.glyphicon Saturday, Nov 14 - Evening
62 | .timeline-body
63 | p.
64 | Our main conference party! Time and location will be announced soon.
65 |
66 | li
67 | .timeline-badge
68 | i.glyphicon.glyphicon-credit-card
69 | .timeline-panel
70 | .timeline-heading
71 | h4.timeline-title Day 2 - Sprints
72 | p
73 | small.text-muted
74 | i.glyphicon.glyphicon Sunday, Nov 15 - Daytime
75 | .timeline-body
76 | p.
77 | Project sprints and hackfests for all things Python. Sprints are a great
78 | way to work together with like-minded people towards shared goals. You can
79 | fix bugs, create new and interesting tools, write documentation, or even
80 | run a mini-workshop! We will publish a Wiki to coordinate sprints closer
81 | to the conference day. Stay tuned!
82 |
--------------------------------------------------------------------------------
/static/jade/talks/index.jade:
--------------------------------------------------------------------------------
1 | extends ../base
2 |
3 | //- render single speaker
4 | mixin talk(speaker)
5 | .talk-description
6 | h3.speaker
7 | = speaker.name
8 |
9 | .misc
10 | small=speaker.time
11 | small.track
12 | = speaker.track
13 | | branch
14 | a.social.github(href="https://github.com/" + speaker.github)
15 | .fa.fa-github
16 | a.social.twitter(href="https://twitter.com/" + speaker.twitter)
17 | .fa.fa-twitter
18 |
19 | p= speaker.title
20 |
21 |
22 | .commit-holder
23 | .commit
24 | img.avatar(src=avatar(speaker.avatar), alt='Photo of ' + speaker.name)
25 |
26 | mixin branch-out()
27 | .branch.out
28 | img(
29 | src="/2015/static/images/ui/branch-out.svg",
30 | onerror="this.onerror = null; this.src = '/2015/static/images/ui/branch-out.png'"
31 | )
32 |
33 | block vars
34 | - var pageClass = "page-talks"
35 | - var activePage = "talks"
36 |
37 | block viewport
38 | .container
39 | h1 Talks & Keynotes
40 |
41 | .event-full.general
42 | h2.title Registration #[small 8:00]
43 | .talk-description
44 | p.
45 | Grab your lanyard, swag bag and coffee. #[br]
46 | Meet our sponsors and get ready for a day full of awesome talks!
47 |
48 | .commit.empty.first
49 | .dot
50 |
51 | .event-full.general
52 | h2.title The grand opening #[small 8:55]
53 | .talk-description
54 | p.
55 | Welcome to the first #[strong PyCon CZ]. #[br]
56 | Applause, introduction, jokes and meanwhile we lock the main door…
57 |
58 | .commit.empty
59 | .dot
60 |
61 | .event-full
62 | h2.title.amber Keynote #1 #[br] The future of Twisted #[small 9:00]
63 | .talk-description
64 | .speaker Amber Brown
65 | p.
66 | Amber, better known as HawkOwl, is a core developer and release
67 | manager of the Twisted project.
68 | a.social.github(href="https://github.com/hawkowl")
69 | .fa.fa-github
70 | a.social.twitter(href="https://twitter.com/hawkieowl")
71 | .fa.fa-twitter
72 |
73 | .commit
74 | img.avatar(
75 | src=avatar("amber_brown.jpg"),
76 | alt='Photo of Amber Brown'
77 | )
78 |
79 | .event-full
80 | h2.title.russell Keynote #2 #[br] The secret sauce behind #[br] Open Source #[small 10:00]
81 | .talk-description
82 | .speaker Russell-Keith Magee
83 | p.
84 | Dr Russell Keith-Magee is a 9 year veteran of the Django core team,
85 | and President of the DSF.
86 | a.social.github(href="https://github.com/freakboy3742")
87 | .fa.fa-github
88 | a.social.twitter(href="https://twitter.com/freakboy3742")
89 | .fa.fa-twitter
90 |
91 | .commit
92 | img.avatar(
93 | src=avatar("russell_keith_magee.png"),
94 | alt='Photo of Russell Keith-Magee'
95 | )
96 |
97 | .branch-description
98 | .branch-name
99 | .master Master branch
100 | .branch.in
101 | img(
102 | src="/2015/static/images/ui/branch-in.svg",
103 | onerror="this.onerror = null; this.src = '/2015/static/images/ui/branch-in.png'"
104 | )
105 | .branch-name
106 | .practical Practical branch
107 |
108 | h2.visible-xs-block Talks
109 | p.visible-xs-block.
110 | Two parallel branches of talks are going to be held in two rooms: D105 and
111 | D0206. The #[strong Master branch] in D105 will be about general topics,
112 | while the #[strong Practical branch] in D0206 will present more specific ones.
113 |
114 | //- Iterate over speakers object (loaded in gulpfile from data/speakers.json)
115 | //- and render mixin talk() (see above)
116 | each speaker, index in speakers
117 | .talk-block
118 | .event.master
119 | +talk(speaker[0])
120 |
121 | .event.practical
122 | +talk(speaker[1])
123 |
124 | +branch-out()
125 |
126 | .event-full.general
127 | .title
128 | h2 Lightning talks #[small 18:30]
129 | .talk-description
130 | p.
131 | There is only one rule of lightning talks: #[br]
132 | 5 mins and hard cut. Get on stage and share your experience!
133 |
134 | .commit.empty
135 | .dot
136 |
137 | .event-full.general
138 | .title
139 | h2 Thank you #[small 19:00]
140 | .talk-description
141 | p.
142 | The first day of PyCon CZ is over.
143 | Wrap it up and enjoy the evening party.
144 | See you tomorrow at the sprint venue!
145 |
146 | .commit.empty.last
147 | .dot
148 |
149 | a.anchor#directions
150 | h2 The venue
151 |
152 | p.lead.
153 | The conference is going to be held at Brno University of Technology.
154 |
155 | .map
156 | address
157 | p.strong VUT FIT
158 | p 49°11'25.8"N 16°37'13.1"E
159 | p Building D
160 | p Božetěchova 1/2
161 | p 612 66 Brno
162 | p Czech Republic
163 |
164 | #map.vut
165 |
--------------------------------------------------------------------------------
/static/jade/workshops/index.jade:
--------------------------------------------------------------------------------
1 | extends ../base
2 |
3 | //- render single speaker
4 | mixin talk(workshop)
5 | .workshop
6 | //- img.avatar(src=avatar(workshop.avatar), alt='Photo of ' + workshop.name)
7 |
8 | h3
9 | = workshop.title
10 | small
11 | | by
12 | = workshop.name
13 |
14 | .misc
15 | small
16 | = workshop.time
17 | if workshop.github
18 | a.social.github(href="https://github.com/" + workshop.github)
19 | .fa.fa-github
20 | if workshop.twitter
21 | a.social.twitter(href="https://twitter.com/" + workshop.twitter)
22 | .fa.fa-twitter
23 |
24 | != md(workshop.abstract)
25 |
26 | if workshop.requirements
27 | .requirements
28 | h4 Requirements
29 | ul
30 | each requirement, index in workshop.requirements
31 | li!= md(requirement)
32 |
33 | block vars
34 | - var pageClass = "page-workshops"
35 | - var activePage = "workshops"
36 |
37 | block viewport
38 | .container
39 | h1 Sprints & Workshops
40 |
41 | h2
42 | | Breakfast
43 | small.workshop-time.
44 | 8:00
45 | p.
46 | Good morning, everyone!
47 | Let's start with something pleasant. Join us for delicious breakfast before the coding madness begins.
48 |
49 | h2 Workshops
50 | p.
51 | There will be six workshops in 3 rooms. One block of
52 | workshops before lunch and one after it.
53 |
54 | p.
55 | Please bring a laptop with a working Python interpreter and
56 | #[a(href="https://pip.readthedocs.org") pip].
57 | Some workshops have additional requirements.
58 |
59 | //- Iterate over workshops object (loaded in gulpfile from data/workshops.json)
60 | //- and render mixin talk() (see above)
61 | each workshop, index in workshops
62 | +talk(workshop)
63 |
64 | h2
65 | | Sprints
66 | small.workshop-time.
67 | 8:30 – 18:00
68 | p.
69 | Along workshops listed above, there's going to be an ongoing hacking &
70 | coding atmosphere. If you don't have your project you want to work on
71 | with other developers, you can join some of our pre-announced sprints:
72 |
73 | h3 Python 3 Porting
74 | p.
75 | Make your project Python 3 compatible or help a project that you like!
76 | Experienced porters can help you on your way, with guidance through porting
77 | strategies, best practices, libraries and automation. They can even
78 | give you advice how to convince the management/upstream that supporting
79 | Python 3 is a good idea.
80 |
81 | h3 The Docs Sprint
82 | p.
83 | The Doc-tors will focus mainly on Django, DjangoGirls, or Python
84 | documentation, but any open-source project is fair game.
85 | Come sprint with us – you can make your first open-source contribution,
86 | improve the docs of your successful library, or anything in between!
87 |
88 | h3 Your Sprint Here
89 | p.
90 | Additional sprints will be announced after lightning talks on Saturday.
91 |
92 | h2
93 | | Closing
94 | small.workshop-time.
95 | 18:00
96 | p.
97 | It was a looong weekend and it's time to go home. #[br]
98 | The first PyCon CZ is over. See you next year!
99 |
100 | hr
101 | a.anchor#directions
102 | h2 The venue
103 |
104 | p.lead.
105 | Spaces for sprints and workshops are provided by #[a(href="http://www.hubbrno.cz/en/") Impact Hub Brno].
106 |
107 | .map
108 | address
109 | p.strong Impact Hub Brno
110 | p 49°13'34.5"N 16°35'49.0"E
111 | p Cyrilská 7
112 | p 602 00 Brno
113 | p Czech Republic
114 |
115 | #map.impact
116 |
--------------------------------------------------------------------------------
/static/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cz.pycon.org",
3 | "description": "PyCon CZ 2015 homepage",
4 | "main": "index.js",
5 | "scripts": {
6 | "test": "gulp ci"
7 | },
8 | "author": "Tomáš Ehrlich",
9 | "license": "MIT",
10 | "devDependencies": {
11 | "browser-sync": "^2.7.1",
12 | "coffee-script": "^1.9.2",
13 | "del": "^2.0.1",
14 | "gulp": "^3.8.11",
15 | "gulp-autoprefixer": "^2.2.0",
16 | "gulp-awspublish": "^2.0.0",
17 | "gulp-awspublish-router": "^0.1.1",
18 | "gulp-bytediff": "^0.2.1",
19 | "gulp-coffee": "^2.3.1",
20 | "gulp-coffeelint": "^0.4.0",
21 | "gulp-concat": "^2.6.0",
22 | "gulp-if-else": "^1.0.3",
23 | "gulp-image-optimization": "^0.1.3",
24 | "gulp-jade": "^1.0.0",
25 | "gulp-minify": "0.0.5",
26 | "gulp-minify-css": "^1.1.1",
27 | "gulp-plumber": "^1.0.0",
28 | "gulp-rev": "^3.0.1",
29 | "gulp-rev-collector": "^0.1.4",
30 | "gulp-rev-replace": "^0.4.2",
31 | "gulp-s3": "^0.3.0",
32 | "gulp-sass": "^2.0.0",
33 | "gulp-scss-lint": "^0.1.12",
34 | "gulp-sourcemaps": "^1.5.2",
35 | "gulp-util": "^3.0.4",
36 | "jade": "^1.11.0",
37 | "lazypipe": "^0.2.3",
38 | "marked": "^0.3.5",
39 | "run-sequence": "^1.1.0",
40 | "yargs": "^3.8.0"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/static/scss/_bootstrap.scss:
--------------------------------------------------------------------------------
1 | // Core variables and mixins
2 | @import "variables";
3 | @import "bootstrap/mixins";
4 |
5 | // Reset and dependencies
6 | @import "bootstrap/normalize";
7 | @import "bootstrap/print";
8 | //@import "bootstrap/glyphicons";
9 |
10 | // Core CSS
11 | @import "bootstrap/scaffolding";
12 | @import "bootstrap/type";
13 | //@import "bootstrap/code";
14 | @import "bootstrap/grid";
15 | //@import "bootstrap/tables";
16 | @import "bootstrap/forms";
17 | @import "bootstrap/buttons";
18 |
19 | // Components
20 | @import "bootstrap/component-animations";
21 | @import "bootstrap/dropdowns";
22 | //@import "bootstrap/button-groups";
23 | @import "bootstrap/input-groups";
24 | @import "bootstrap/navs";
25 | @import "bootstrap/navbar";
26 | //@import "bootstrap/breadcrumbs";
27 | //@import "bootstrap/pagination";
28 | //@import "bootstrap/pager";
29 | //@import "bootstrap/labels";
30 | //@import "bootstrap/badges";
31 | @import "bootstrap/jumbotron";
32 | //@import "bootstrap/thumbnails";
33 | @import "bootstrap/alerts";
34 | //@import "bootstrap/progress-bars";
35 | //@import "bootstrap/media";
36 | @import "bootstrap/list-group";
37 | @import "bootstrap/panels";
38 | //@import "bootstrap/responsive-embed";
39 | //@import "bootstrap/wells";
40 | @import "bootstrap/close";
41 |
42 | // Components w/ JavaScript
43 | //@import "bootstrap/modals";
44 | //@import "bootstrap/tooltip";
45 | //@import "bootstrap/popovers";
46 | //@import "bootstrap/carousel";
47 |
48 | // Utility classes
49 | @import "bootstrap/utilities";
50 | @import "bootstrap/responsive-utilities";
51 |
--------------------------------------------------------------------------------
/static/scss/_variables.scss:
--------------------------------------------------------------------------------
1 | @import "bootstrap/variables";
2 |
3 | // Grid
4 |
5 | $grid-gutter-width: 20px;
6 | $container-desktop: (940px + $grid-gutter-width);
7 | $container-large-desktop: $container-desktop;
8 | $container-lg: $container-desktop;
9 | $container-md: $container-desktop;
10 | $screen-lg: $screen-md;
11 |
12 | // Color theme
13 |
14 | $twitter-color: #55acee;
15 | $github-color: #333;
16 |
17 | $brand-primary: #1e5493;
18 | $brand-secondary: #d52034;
19 | $brand-silent: #d1d1d1;
20 |
21 | $text-color: #646464;
22 | $text-inverted: #fff;
23 |
24 | $commit-line: #dfdfdf;
25 |
26 | $bg: #fff;
27 | $navbar-bg: rgba(255, 255, 255, 0.97);
28 |
29 | // Dimensions
30 |
31 | $navbar-height: 60px;
32 | $footer-height: 350px;
33 | $offcanvas-navbar-width: 230px;
34 | $images-size: 96px;
35 |
36 | // Theme overrides
37 |
38 | $font-size-base: 16px;
39 |
--------------------------------------------------------------------------------
/static/scss/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 |
--------------------------------------------------------------------------------
/static/scss/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: baseline;
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 |
--------------------------------------------------------------------------------
/static/scss/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 | content: "#{$breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18 | padding: 0 5px;
19 | color: $breadcrumb-color;
20 | }
21 | }
22 |
23 | > .active {
24 | color: $breadcrumb-active-color;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/static/scss/bootstrap/_buttons.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Buttons
3 | // --------------------------------------------------
4 |
5 |
6 | // Base styles
7 | // --------------------------------------------------
8 |
9 | .btn {
10 | display: inline-block;
11 | margin-bottom: 0; // For input.btn
12 | font-weight: $btn-font-weight;
13 | text-align: center;
14 | vertical-align: middle;
15 | touch-action: manipulation;
16 | cursor: pointer;
17 | background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
18 | border: 1px solid transparent;
19 | white-space: nowrap;
20 | @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $border-radius-base);
21 | @include user-select(none);
22 |
23 | &,
24 | &:active,
25 | &.active {
26 | &:focus,
27 | &.focus {
28 | @include tab-focus;
29 | }
30 | }
31 |
32 | &:hover,
33 | &:focus,
34 | &.focus {
35 | color: $btn-default-color;
36 | text-decoration: none;
37 | }
38 |
39 | &:active,
40 | &.active {
41 | outline: 0;
42 | background-image: none;
43 | @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
44 | }
45 |
46 | &.disabled,
47 | &[disabled],
48 | fieldset[disabled] & {
49 | cursor: $cursor-disabled;
50 | pointer-events: none; // Future-proof disabling of clicks
51 | @include opacity(.65);
52 | @include box-shadow(none);
53 | }
54 | }
55 |
56 |
57 | // Alternate buttons
58 | // --------------------------------------------------
59 |
60 | .btn-default {
61 | @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
62 | }
63 | .btn-primary {
64 | @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
65 | }
66 | // Success appears as green
67 | .btn-success {
68 | @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
69 | }
70 | // Info appears as blue-green
71 | .btn-info {
72 | @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
73 | }
74 | // Warning appears as orange
75 | .btn-warning {
76 | @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
77 | }
78 | // Danger and error appear as red
79 | .btn-danger {
80 | @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
81 | }
82 |
83 |
84 | // Link buttons
85 | // -------------------------
86 |
87 | // Make a button look and behave like a link
88 | .btn-link {
89 | color: $link-color;
90 | font-weight: normal;
91 | border-radius: 0;
92 |
93 | &,
94 | &:active,
95 | &.active,
96 | &[disabled],
97 | fieldset[disabled] & {
98 | background-color: transparent;
99 | @include box-shadow(none);
100 | }
101 | &,
102 | &:hover,
103 | &:focus,
104 | &:active {
105 | border-color: transparent;
106 | }
107 | &:hover,
108 | &:focus {
109 | color: $link-hover-color;
110 | text-decoration: $link-hover-decoration;
111 | background-color: transparent;
112 | }
113 | &[disabled],
114 | fieldset[disabled] & {
115 | &:hover,
116 | &:focus {
117 | color: $btn-link-disabled-color;
118 | text-decoration: none;
119 | }
120 | }
121 | }
122 |
123 |
124 | // Button Sizes
125 | // --------------------------------------------------
126 |
127 | .btn-lg {
128 | // line-height: ensure even-numbered height of button next to large input
129 | @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
130 | }
131 | .btn-sm {
132 | // line-height: ensure proper height of button next to small input
133 | @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
134 | }
135 | .btn-xs {
136 | @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $border-radius-small);
137 | }
138 |
139 |
140 | // Block button
141 | // --------------------------------------------------
142 |
143 | .btn-block {
144 | display: block;
145 | width: 100%;
146 | }
147 |
148 | // Vertically space out multiple block buttons
149 | .btn-block + .btn-block {
150 | margin-top: 5px;
151 | }
152 |
153 | // Specificity overrides
154 | input[type="submit"],
155 | input[type="reset"],
156 | input[type="button"] {
157 | &.btn-block {
158 | width: 100%;
159 | }
160 | }
161 |
--------------------------------------------------------------------------------
/static/scss/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 |
--------------------------------------------------------------------------------
/static/scss/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 |
--------------------------------------------------------------------------------
/static/scss/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 |
--------------------------------------------------------------------------------
/static/scss/bootstrap/_dropdowns.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Dropdown menus
3 | // --------------------------------------------------
4 |
5 |
6 | // Dropdown arrow/caret
7 | .caret {
8 | display: inline-block;
9 | width: 0;
10 | height: 0;
11 | margin-left: 2px;
12 | vertical-align: middle;
13 | border-top: $caret-width-base dashed;
14 | border-right: $caret-width-base solid transparent;
15 | border-left: $caret-width-base solid transparent;
16 | }
17 |
18 | // The dropdown wrapper (div)
19 | .dropup,
20 | .dropdown {
21 | position: relative;
22 | }
23 |
24 | // Prevent the focus on the dropdown toggle when closing dropdowns
25 | .dropdown-toggle:focus {
26 | outline: 0;
27 | }
28 |
29 | // The dropdown menu (ul)
30 | .dropdown-menu {
31 | position: absolute;
32 | top: 100%;
33 | left: 0;
34 | z-index: $zindex-dropdown;
35 | display: none; // none by default, but block on "open" of the menu
36 | float: left;
37 | min-width: 160px;
38 | padding: 5px 0;
39 | margin: 2px 0 0; // override default ul
40 | list-style: none;
41 | font-size: $font-size-base;
42 | text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)
43 | background-color: $dropdown-bg;
44 | border: 1px solid $dropdown-fallback-border; // IE8 fallback
45 | border: 1px solid $dropdown-border;
46 | border-radius: $border-radius-base;
47 | @include box-shadow(0 6px 12px rgba(0,0,0,.175));
48 | background-clip: padding-box;
49 |
50 | // Aligns the dropdown menu to right
51 | //
52 | // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`
53 | &.pull-right {
54 | right: 0;
55 | left: auto;
56 | }
57 |
58 | // Dividers (basically an hr) within the dropdown
59 | .divider {
60 | @include nav-divider($dropdown-divider-bg);
61 | }
62 |
63 | // Links within the dropdown menu
64 | > li > a {
65 | display: block;
66 | padding: 3px 20px;
67 | clear: both;
68 | font-weight: normal;
69 | line-height: $line-height-base;
70 | color: $dropdown-link-color;
71 | white-space: nowrap; // prevent links from randomly breaking onto new lines
72 | }
73 | }
74 |
75 | // Hover/Focus state
76 | .dropdown-menu > li > a {
77 | &:hover,
78 | &:focus {
79 | text-decoration: none;
80 | color: $dropdown-link-hover-color;
81 | background-color: $dropdown-link-hover-bg;
82 | }
83 | }
84 |
85 | // Active state
86 | .dropdown-menu > .active > a {
87 | &,
88 | &:hover,
89 | &:focus {
90 | color: $dropdown-link-active-color;
91 | text-decoration: none;
92 | outline: 0;
93 | background-color: $dropdown-link-active-bg;
94 | }
95 | }
96 |
97 | // Disabled state
98 | //
99 | // Gray out text and ensure the hover/focus state remains gray
100 |
101 | .dropdown-menu > .disabled > a {
102 | &,
103 | &:hover,
104 | &:focus {
105 | color: $dropdown-link-disabled-color;
106 | }
107 |
108 | // Nuke hover/focus effects
109 | &:hover,
110 | &:focus {
111 | text-decoration: none;
112 | background-color: transparent;
113 | background-image: none; // Remove CSS gradient
114 | @include reset-filter;
115 | cursor: $cursor-disabled;
116 | }
117 | }
118 |
119 | // Open state for the dropdown
120 | .open {
121 | // Show the menu
122 | > .dropdown-menu {
123 | display: block;
124 | }
125 |
126 | // Remove the outline when :focus is triggered
127 | > a {
128 | outline: 0;
129 | }
130 | }
131 |
132 | // Menu positioning
133 | //
134 | // Add extra class to `.dropdown-menu` to flip the alignment of the dropdown
135 | // menu with the parent.
136 | .dropdown-menu-right {
137 | left: auto; // Reset the default from `.dropdown-menu`
138 | right: 0;
139 | }
140 | // With v3, we enabled auto-flipping if you have a dropdown within a right
141 | // aligned nav component. To enable the undoing of that, we provide an override
142 | // to restore the default dropdown menu alignment.
143 | //
144 | // This is only for left-aligning a dropdown menu within a `.navbar-right` or
145 | // `.pull-right` nav component.
146 | .dropdown-menu-left {
147 | left: 0;
148 | right: auto;
149 | }
150 |
151 | // Dropdown section headers
152 | .dropdown-header {
153 | display: block;
154 | padding: 3px 20px;
155 | font-size: $font-size-small;
156 | line-height: $line-height-base;
157 | color: $dropdown-header-color;
158 | white-space: nowrap; // as with > li > a
159 | }
160 |
161 | // Backdrop to catch body clicks on mobile, etc.
162 | .dropdown-backdrop {
163 | position: fixed;
164 | left: 0;
165 | right: 0;
166 | bottom: 0;
167 | top: 0;
168 | z-index: ($zindex-dropdown - 10);
169 | }
170 |
171 | // Right aligned dropdowns
172 | .pull-right > .dropdown-menu {
173 | right: 0;
174 | left: auto;
175 | }
176 |
177 | // Allow for dropdowns to go bottom up (aka, dropup-menu)
178 | //
179 | // Just add .dropup after the standard .dropdown class and you're set, bro.
180 | // TODO: abstract this so that the navbar fixed styles are not placed here?
181 |
182 | .dropup,
183 | .navbar-fixed-bottom .dropdown {
184 | // Reverse the caret
185 | .caret {
186 | border-top: 0;
187 | border-bottom: $caret-width-base solid;
188 | content: "";
189 | }
190 | // Different positioning for bottom up menu
191 | .dropdown-menu {
192 | top: auto;
193 | bottom: 100%;
194 | margin-bottom: 2px;
195 | }
196 | }
197 |
198 |
199 | // Component alignment
200 | //
201 | // Reiterate per navbar.less and the modified component alignment there.
202 |
203 | @media (min-width: $grid-float-breakpoint) {
204 | .navbar-right {
205 | .dropdown-menu {
206 | right: 0; left: auto;
207 | }
208 | // Necessary for overrides of the default right aligned menu.
209 | // Will remove come v4 in all likelihood.
210 | .dropdown-menu-left {
211 | left: 0; right: auto;
212 | }
213 | }
214 | }
215 |
--------------------------------------------------------------------------------
/static/scss/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 |
--------------------------------------------------------------------------------
/static/scss/bootstrap/_input-groups.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Input groups
3 | // --------------------------------------------------
4 |
5 | // Base styles
6 | // -------------------------
7 | .input-group {
8 | position: relative; // For dropdowns
9 | display: table;
10 | border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table
11 |
12 | // Undo padding and float of grid classes
13 | &[class*="col-"] {
14 | float: none;
15 | padding-left: 0;
16 | padding-right: 0;
17 | }
18 |
19 | .form-control {
20 | // Ensure that the input is always above the *appended* addon button for
21 | // proper border colors.
22 | position: relative;
23 | z-index: 2;
24 |
25 | // IE9 fubars the placeholder attribute in text inputs and the arrows on
26 | // select elements in input groups. To fix it, we float the input. Details:
27 | // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855
28 | float: left;
29 |
30 | width: 100%;
31 | margin-bottom: 0;
32 | }
33 | }
34 |
35 | // Sizing options
36 | //
37 | // Remix the default form control sizing classes into new ones for easier
38 | // manipulation.
39 |
40 | .input-group-lg > .form-control,
41 | .input-group-lg > .input-group-addon,
42 | .input-group-lg > .input-group-btn > .btn {
43 | @extend .input-lg;
44 | }
45 | .input-group-sm > .form-control,
46 | .input-group-sm > .input-group-addon,
47 | .input-group-sm > .input-group-btn > .btn {
48 | @extend .input-sm;
49 | }
50 |
51 |
52 | // Display as table-cell
53 | // -------------------------
54 | .input-group-addon,
55 | .input-group-btn,
56 | .input-group .form-control {
57 | display: table-cell;
58 |
59 | &:not(:first-child):not(:last-child) {
60 | border-radius: 0;
61 | }
62 | }
63 | // Addon and addon wrapper for buttons
64 | .input-group-addon,
65 | .input-group-btn {
66 | width: 1%;
67 | white-space: nowrap;
68 | vertical-align: middle; // Match the inputs
69 | }
70 |
71 | // Text input groups
72 | // -------------------------
73 | .input-group-addon {
74 | padding: $padding-base-vertical $padding-base-horizontal;
75 | font-size: $font-size-base;
76 | font-weight: normal;
77 | line-height: 1;
78 | color: $input-color;
79 | text-align: center;
80 | background-color: $input-group-addon-bg;
81 | border: 1px solid $input-group-addon-border-color;
82 | border-radius: $border-radius-base;
83 |
84 | // Sizing
85 | &.input-sm {
86 | padding: $padding-small-vertical $padding-small-horizontal;
87 | font-size: $font-size-small;
88 | border-radius: $border-radius-small;
89 | }
90 | &.input-lg {
91 | padding: $padding-large-vertical $padding-large-horizontal;
92 | font-size: $font-size-large;
93 | border-radius: $border-radius-large;
94 | }
95 |
96 | // Nuke default margins from checkboxes and radios to vertically center within.
97 | input[type="radio"],
98 | input[type="checkbox"] {
99 | margin-top: 0;
100 | }
101 | }
102 |
103 | // Reset rounded corners
104 | .input-group .form-control:first-child,
105 | .input-group-addon:first-child,
106 | .input-group-btn:first-child > .btn,
107 | .input-group-btn:first-child > .btn-group > .btn,
108 | .input-group-btn:first-child > .dropdown-toggle,
109 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
110 | .input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
111 | @include border-right-radius(0);
112 | }
113 | .input-group-addon:first-child {
114 | border-right: 0;
115 | }
116 | .input-group .form-control:last-child,
117 | .input-group-addon:last-child,
118 | .input-group-btn:last-child > .btn,
119 | .input-group-btn:last-child > .btn-group > .btn,
120 | .input-group-btn:last-child > .dropdown-toggle,
121 | .input-group-btn:first-child > .btn:not(:first-child),
122 | .input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
123 | @include border-left-radius(0);
124 | }
125 | .input-group-addon:last-child {
126 | border-left: 0;
127 | }
128 |
129 | // Button input groups
130 | // -------------------------
131 | .input-group-btn {
132 | position: relative;
133 | // Jankily prevent input button groups from wrapping with `white-space` and
134 | // `font-size` in combination with `inline-block` on buttons.
135 | font-size: 0;
136 | white-space: nowrap;
137 |
138 | // Negative margin for spacing, position for bringing hovered/focused/actived
139 | // element above the siblings.
140 | > .btn {
141 | position: relative;
142 | + .btn {
143 | margin-left: -1px;
144 | }
145 | // Bring the "active" button to the front
146 | &:hover,
147 | &:focus,
148 | &:active {
149 | z-index: 2;
150 | }
151 | }
152 |
153 | // Negative margin to only have a 1px border between the two
154 | &:first-child {
155 | > .btn,
156 | > .btn-group {
157 | margin-right: -1px;
158 | }
159 | }
160 | &:last-child {
161 | > .btn,
162 | > .btn-group {
163 | margin-left: -1px;
164 | }
165 | }
166 | }
167 |
--------------------------------------------------------------------------------
/static/scss/bootstrap/_jumbotron.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Jumbotron
3 | // --------------------------------------------------
4 |
5 |
6 | .jumbotron {
7 | padding: $jumbotron-padding ($jumbotron-padding / 2);
8 | margin-bottom: $jumbotron-padding;
9 | color: $jumbotron-color;
10 | background-color: $jumbotron-bg;
11 |
12 | h1,
13 | .h1 {
14 | color: $jumbotron-heading-color;
15 | }
16 |
17 | p {
18 | margin-bottom: ($jumbotron-padding / 2);
19 | font-size: $jumbotron-font-size;
20 | font-weight: 200;
21 | }
22 |
23 | > hr {
24 | border-top-color: darken($jumbotron-bg, 10%);
25 | }
26 |
27 | .container &,
28 | .container-fluid & {
29 | border-radius: $border-radius-large; // Only round corners at higher resolutions if contained in a container
30 | }
31 |
32 | .container {
33 | max-width: 100%;
34 | }
35 |
36 | @media screen and (min-width: $screen-sm-min) {
37 | padding: ($jumbotron-padding * 1.6) 0;
38 |
39 | .container &,
40 | .container-fluid & {
41 | padding-left: ($jumbotron-padding * 2);
42 | padding-right: ($jumbotron-padding * 2);
43 | }
44 |
45 | h1,
46 | .h1 {
47 | font-size: ($font-size-base * 4.5);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/static/scss/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 |
--------------------------------------------------------------------------------
/static/scss/bootstrap/_list-group.scss:
--------------------------------------------------------------------------------
1 | //
2 | // List groups
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | //
8 | // Easily usable on