Templates (finished?) (#22)
* Adds inset_illustration as a drop-down of svg data rather than as an uploady thing. * Adds external link types to the homepage models * Migrations * Initial site template with our new shiny templates * Moves all lca2017-specific assets to lca2017 subdirectory; symlinks from dist * Reflects changes in site_base * Deletes most of new assets in dist/ * WIP home page * Adds external link list support * Adds white-right panel type to the home page * Removes an oops * Adds copyright text to the site. * Updates the remaining illustrations to be more compact. * Adds illustration field to content_page, and adds fields into the news page. * News index page * News page is done! * Formats the dates properly * Commits migrations * Optimises SVG files * better logo * oops * Removes margin on logo. * Optimises svgs, and uses tania’s originals * One more
|
@ -0,0 +1,82 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
# Generated by Django 1.9.7 on 2016-06-26 04:31
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import wagtail.wagtailcore.blocks
|
||||
import wagtail.wagtailcore.fields
|
||||
import wagtail.wagtailimages.blocks
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
replaces = [(b'cms_pages', '0004_auto_20160626_0110'), (b'cms_pages', '0005_auto_20160626_0127'), (b'cms_pages', '0006_auto_20160626_0222'), (b'cms_pages', '0007_auto_20160626_0335')]
|
||||
|
||||
dependencies = [
|
||||
('cms_pages', '0003_auto_20160625_0337'),
|
||||
('wagtailimages', '0013_make_rendition_upload_callable'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='homepage',
|
||||
name='body',
|
||||
field=wagtail.wagtailcore.fields.StreamField([('basic_content', wagtail.wagtailcore.blocks.StructBlock([(b'panel_type', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[(1, 'Left-aligned image, blue-filtered image BG'), (2, 'Right-aligned image, white background')])), (b'heading', wagtail.wagtailcore.blocks.CharBlock(required=True)), (b'inset_illustration', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('antarctica.svg', 'Antarctica'), ('bridge.svg', 'Bridge'), ('casino.svg', 'Casino'), ('cradle.svg', 'Cradle Mountain'), ('devil.svg', 'Tasmanian Devil'), ('falls.svg', 'Waterfall'), ('hobart.svg', 'Hobart'), ('lavender.svg', 'Lavender'), ('tuz.svg', 'Tuz'), ('wineglass.svg', 'Wineglass')])), (b'background_image', wagtail.wagtailimages.blocks.ImageChooserBlock(help_text="This is used as the background image of a blue-left block. It's not used for white-right.", required=False)), (b'body', wagtail.wagtailcore.blocks.RichTextBlock(required=True)), (b'link', wagtail.wagtailcore.blocks.StructBlock([('page', wagtail.wagtailcore.blocks.PageChooserBlock()), ('title', wagtail.wagtailcore.blocks.CharBlock(required=True))])), (b'external_links', wagtail.wagtailcore.blocks.ListBlock(wagtail.wagtailcore.blocks.StructBlock([('alt', wagtail.wagtailcore.blocks.CharBlock(required=True)), ('icon', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('twitter.svg', 'Twitter'), ('facebook.svg', 'Facebook'), ('linkedin.svg', 'LinkedIn'), ('generic.svg', 'Generic URL')])), ('url', wagtail.wagtailcore.blocks.URLBlock(required=True))])))]))]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='homepage',
|
||||
name='body',
|
||||
field=wagtail.wagtailcore.fields.StreamField([('basic_content', wagtail.wagtailcore.blocks.StructBlock([(b'panel_type', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('blue_left', 'Left-aligned image, blue-filtered image BG'), ('white_right', 'Right-aligned image, white background')])), (b'heading', wagtail.wagtailcore.blocks.CharBlock(required=True)), (b'inset_illustration', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('antarctica.svg', 'Antarctica'), ('bridge.svg', 'Bridge'), ('casino.svg', 'Casino'), ('cradle.svg', 'Cradle Mountain'), ('devil.svg', 'Tasmanian Devil'), ('falls.svg', 'Waterfall'), ('hobart.svg', 'Hobart'), ('lavender.svg', 'Lavender'), ('tuz.svg', 'Tuz'), ('wineglass.svg', 'Wineglass')])), (b'background_image', wagtail.wagtailimages.blocks.ImageChooserBlock(help_text="This is used as the background image of a blue-left block. It's not used for white-right.", required=False)), (b'body', wagtail.wagtailcore.blocks.RichTextBlock(required=True)), (b'link', wagtail.wagtailcore.blocks.StructBlock([('page', wagtail.wagtailcore.blocks.PageChooserBlock()), ('title', wagtail.wagtailcore.blocks.CharBlock(required=True))])), (b'external_links', wagtail.wagtailcore.blocks.ListBlock(wagtail.wagtailcore.blocks.StructBlock([('alt', wagtail.wagtailcore.blocks.CharBlock(required=True)), ('icon', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('twitter.svg', 'Twitter'), ('facebook.svg', 'Facebook'), ('linkedin.svg', 'LinkedIn'), ('generic.svg', 'Generic URL')])), ('url', wagtail.wagtailcore.blocks.URLBlock(required=True))])))]))]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='homepage',
|
||||
name='body',
|
||||
field=wagtail.wagtailcore.fields.StreamField([('basic_content', wagtail.wagtailcore.blocks.StructBlock([(b'panel_type', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('blue_left', 'Left-aligned image, blue-filtered image BG'), ('white_right', 'Right-aligned image, white background')])), (b'heading', wagtail.wagtailcore.blocks.CharBlock(required=True)), (b'inset_illustration', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('antarctica.svg', 'Antarctica'), ('bridge.svg', 'Bridge'), ('casino.svg', 'Casino'), ('cradle.svg', 'Cradle Mountain'), ('devil.svg', 'Tasmanian Devil'), ('falls.svg', 'Waterfall'), ('hobart.svg', 'Hobart'), ('lavender.svg', 'Lavender'), ('tuz.svg', 'Tuz'), ('wineglass.svg', 'Wineglass')])), (b'background_image', wagtail.wagtailimages.blocks.ImageChooserBlock(help_text="This is used as the background image of a blue-left block. It's not used for white-right.", required=False)), (b'body', wagtail.wagtailcore.blocks.RichTextBlock(required=True)), (b'link', wagtail.wagtailcore.blocks.StructBlock([('page', wagtail.wagtailcore.blocks.PageChooserBlock()), ('title', wagtail.wagtailcore.blocks.CharBlock(required=True))])), (b'external_links', wagtail.wagtailcore.blocks.ListBlock(wagtail.wagtailcore.blocks.StructBlock([('alt', wagtail.wagtailcore.blocks.CharBlock(required=True)), ('icon', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('twitter.svg', 'Twitter'), ('generic.svg', 'Generic URL')])), ('url', wagtail.wagtailcore.blocks.URLBlock(required=True))])))]))]),
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='contentpage',
|
||||
old_name='main_image',
|
||||
new_name='background_image',
|
||||
),
|
||||
migrations.RenameField(
|
||||
model_name='newspage',
|
||||
old_name='main_image',
|
||||
new_name='background_image',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='contentpage',
|
||||
name='image_display',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='contentpage',
|
||||
name='inset_illustration',
|
||||
field=models.CharField(choices=[('antarctica.svg', 'Antarctica'), ('bridge.svg', 'Bridge'), ('casino.svg', 'Casino'), ('cradle.svg', 'Cradle Mountain'), ('devil.svg', 'Tasmanian Devil'), ('falls.svg', 'Waterfall'), ('hobart.svg', 'Hobart'), ('lavender.svg', 'Lavender'), ('tuz.svg', 'Tuz'), ('wineglass.svg', 'Wineglass')], default=0, max_length=256),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='newsindexpage',
|
||||
name='background_image',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='newsindexpage',
|
||||
name='body',
|
||||
field=wagtail.wagtailcore.fields.RichTextField(blank=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='newspage',
|
||||
name='portrait_image',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='homepage',
|
||||
name='body',
|
||||
field=wagtail.wagtailcore.fields.StreamField([('basic_content', wagtail.wagtailcore.blocks.StructBlock([(b'panel_type', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('blue_left', 'Left-aligned image, blue-filtered image BG'), ('white_right', 'Right-aligned image, white background')])), (b'heading', wagtail.wagtailcore.blocks.CharBlock(required=True)), (b'inset_illustration', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('antarctica.svg', 'Antarctica'), ('bridge.svg', 'Bridge'), ('casino.svg', 'Casino'), ('cradle.svg', 'Cradle Mountain'), ('devil.svg', 'Tasmanian Devil'), ('falls.svg', 'Waterfall'), ('hobart.svg', 'Hobart'), ('lavender.svg', 'Lavender'), ('tuz.svg', 'Tuz'), ('wineglass.svg', 'Wineglass')])), (b'background_image', wagtail.wagtailimages.blocks.ImageChooserBlock(help_text="This is used as the background image of a blue-left block. It's not used for white-right.", required=False)), (b'body', wagtail.wagtailcore.blocks.RichTextBlock(required=True)), (b'link', wagtail.wagtailcore.blocks.StructBlock([('page', wagtail.wagtailcore.blocks.PageChooserBlock()), ('title', wagtail.wagtailcore.blocks.CharBlock(required=True))])), (b'external_links', wagtail.wagtailcore.blocks.ListBlock(wagtail.wagtailcore.blocks.StructBlock([('alt', wagtail.wagtailcore.blocks.CharBlock(required=True)), ('icon', wagtail.wagtailcore.blocks.ChoiceBlock(choices=[('twitter', 'Twitter'), ('generic', 'Generic URL')])), ('url', wagtail.wagtailcore.blocks.URLBlock(required=True))])))]))]),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='newsindexpage',
|
||||
name='intro',
|
||||
field=models.CharField(max_length=250),
|
||||
),
|
||||
]
|
|
@ -18,83 +18,85 @@ from wagtail.wagtailadmin.edit_handlers import StreamFieldPanel
|
|||
from wagtail.wagtailsearch import index
|
||||
|
||||
|
||||
class HomePage(Page):
|
||||
ILLUSTRATION_ANTARCTICA = "antarctica.svg"
|
||||
ILLUSTRATION_BRIDGE = "bridge.svg"
|
||||
ILLUSTRATION_CASINO = "casino.svg"
|
||||
ILLUSTRATION_CRADLE = "cradle.svg"
|
||||
ILLUSTRATION_DEVIL = "devil.svg"
|
||||
ILLUSTRATION_FALLS = "falls.svg"
|
||||
ILLUSTRATION_HOBART = "hobart.svg"
|
||||
ILLUSTRATION_LAVENDER = "lavender.svg"
|
||||
ILLUSTRATION_TUZ = "tuz.svg"
|
||||
ILLUSTRATION_WINEGLASS = "wineglass.svg"
|
||||
|
||||
BASIC_CONTENT_BLUE_LEFT = 1
|
||||
BASIC_CONTENT_WHITE_RIGHT = 2
|
||||
BASIC_CONTENT_TYPES = (
|
||||
(BASIC_CONTENT_BLUE_LEFT, "Left-aligned image, blue-filtered image BG"),
|
||||
(BASIC_CONTENT_WHITE_RIGHT, "Right-aligned image, white background"),
|
||||
ILLUSTRATION_TYPES = (
|
||||
(ILLUSTRATION_ANTARCTICA, "Antarctica"),
|
||||
(ILLUSTRATION_BRIDGE, "Bridge"),
|
||||
(ILLUSTRATION_CASINO, "Casino"),
|
||||
(ILLUSTRATION_CRADLE, "Cradle Mountain"),
|
||||
(ILLUSTRATION_DEVIL, "Tasmanian Devil"),
|
||||
(ILLUSTRATION_FALLS, "Waterfall"),
|
||||
(ILLUSTRATION_HOBART, "Hobart"),
|
||||
(ILLUSTRATION_LAVENDER, "Lavender"),
|
||||
(ILLUSTRATION_TUZ, "Tuz"),
|
||||
(ILLUSTRATION_WINEGLASS, "Wineglass"),
|
||||
)
|
||||
|
||||
|
||||
class BasicContentBlock(blocks.StructBlock):
|
||||
|
||||
class Meta:
|
||||
template = "cms_pages/home_page_blocks/basic_content.html"
|
||||
|
||||
PANEL_BLUE_LEFT = "blue_left"
|
||||
PANEL_WHITE_RIGHT = "white_right"
|
||||
PANEL_TYPES = (
|
||||
(PANEL_BLUE_LEFT, "Left-aligned image, blue-filtered image BG"),
|
||||
(PANEL_WHITE_RIGHT, "Right-aligned image, white background"),
|
||||
)
|
||||
|
||||
ILLUSTRATION_ANTARCTICA = "antarctica.svg"
|
||||
ILLUSTRATION_BRIDGE = "bridge.svg"
|
||||
ILLUSTRATION_CASINO = "casino.svg"
|
||||
ILLUSTRATION_CRADLE = "cradle.svg"
|
||||
ILLUSTRATION_DEVIL = "devil.svg"
|
||||
ILLUSTRATION_FALLS = "falls.svg"
|
||||
ILLUSTRATION_HOBART = "hobart.svg"
|
||||
ILLUSTRATION_LAVENDER = "lavender.svg"
|
||||
ILLUSTRATION_TUZ = "tuz.svg"
|
||||
ILLUSTRATION_WINEGLASS = "wineglass.svg"
|
||||
|
||||
ILLUSTRATION_TYPES = (
|
||||
(ILLUSTRATION_ANTARCTICA, "Antarctica"),
|
||||
(ILLUSTRATION_BRIDGE, "Bridge"),
|
||||
(ILLUSTRATION_CASINO, "Casino"),
|
||||
(ILLUSTRATION_CRADLE, "Cradle Mountain"),
|
||||
(ILLUSTRATION_DEVIL, "Tasmanian Devil"),
|
||||
(ILLUSTRATION_FALLS, "Waterfall"),
|
||||
(ILLUSTRATION_HOBART, "Hobart"),
|
||||
(ILLUSTRATION_LAVENDER, "Lavender"),
|
||||
(ILLUSTRATION_TUZ, "Tuz"),
|
||||
(ILLUSTRATION_WINEGLASS, "Wineglass"),
|
||||
)
|
||||
|
||||
EXTERNAL_LINK_TWITTER = "twitter.svg"
|
||||
EXTERNAL_LINK_FACEBOOK = "facebook.svg"
|
||||
EXTERNAL_LINK_LINKEDIN = "linkedin.svg"
|
||||
EXTERNAL_LINK_GENERIC = "generic.svg"
|
||||
EXTERNAL_LINK_TWITTER = "twitter"
|
||||
EXTERNAL_LINK_GENERIC = "generic"
|
||||
|
||||
EXTERNAL_LINK_TYPES = (
|
||||
(EXTERNAL_LINK_TWITTER, "Twitter"),
|
||||
(EXTERNAL_LINK_FACEBOOK, "Facebook"),
|
||||
(EXTERNAL_LINK_LINKEDIN, "LinkedIn"),
|
||||
(EXTERNAL_LINK_GENERIC, "Generic URL"),
|
||||
)
|
||||
|
||||
panel_type = blocks.ChoiceBlock(
|
||||
choices=PANEL_TYPES,
|
||||
required=True,
|
||||
)
|
||||
heading = blocks.CharBlock(required=True)
|
||||
inset_illustration = blocks.ChoiceBlock(
|
||||
choices=ILLUSTRATION_TYPES,
|
||||
required=True,
|
||||
)
|
||||
background_image = imageblocks.ImageChooserBlock(
|
||||
required=False,
|
||||
help_text="This is used as the background image of a "
|
||||
"blue-left block. It's not used for white-right."
|
||||
)
|
||||
body = blocks.RichTextBlock(required=True)
|
||||
link = blocks.StructBlock([
|
||||
("page", blocks.PageChooserBlock()),
|
||||
("title", blocks.CharBlock(required=True)),
|
||||
])
|
||||
external_links = blocks.ListBlock(
|
||||
blocks.StructBlock([
|
||||
("alt", blocks.CharBlock(required=True)),
|
||||
("icon", blocks.ChoiceBlock(
|
||||
choices=EXTERNAL_LINK_TYPES,
|
||||
required=True,
|
||||
)),
|
||||
("url", blocks.URLBlock(required=True)
|
||||
)])
|
||||
)
|
||||
|
||||
class HomePage(Page):
|
||||
|
||||
body = StreamField([
|
||||
("basic_content", blocks.StructBlock([
|
||||
("type", blocks.ChoiceBlock(
|
||||
choices=BASIC_CONTENT_TYPES,
|
||||
required=True,
|
||||
)),
|
||||
("heading", blocks.CharBlock(required=True)),
|
||||
("inset_illustration", blocks.ChoiceBlock(
|
||||
choices=ILLUSTRATION_TYPES,
|
||||
required=True,
|
||||
)),
|
||||
("background_image", imageblocks.ImageChooserBlock(
|
||||
required=False,
|
||||
help_text="This is used as the background image of a "
|
||||
"blue-left block. It's not used for white-right."
|
||||
)),
|
||||
("body", blocks.RichTextBlock(required=True)),
|
||||
("link", blocks.StructBlock([
|
||||
("page", blocks.PageChooserBlock()),
|
||||
("title", blocks.CharBlock(required=True)),
|
||||
])),
|
||||
("external_links", blocks.ListBlock(
|
||||
blocks.StructBlock([
|
||||
("alt", blocks.CharBlock(required=True)),
|
||||
("icon", blocks.ChoiceBlock(
|
||||
choices=EXTERNAL_LINK_TYPES,
|
||||
required=True,
|
||||
)),
|
||||
("url", blocks.URLBlock(required=True)
|
||||
)])
|
||||
)),
|
||||
])),
|
||||
("basic_content", BasicContentBlock()),
|
||||
# TODO: keynotes
|
||||
# TODO: other bits
|
||||
])
|
||||
|
@ -112,7 +114,7 @@ class AbstractContentPage(Page):
|
|||
|
||||
intro = models.CharField(max_length=250)
|
||||
body = RichTextField(blank=True)
|
||||
main_image = models.ForeignKey(
|
||||
background_image = models.ForeignKey(
|
||||
'wagtailimages.Image',
|
||||
null=True,
|
||||
blank=True,
|
||||
|
@ -126,7 +128,7 @@ class AbstractContentPage(Page):
|
|||
]
|
||||
|
||||
content_panels = Page.content_panels + [
|
||||
ImageChooserPanel('main_image'),
|
||||
ImageChooserPanel('background_image'),
|
||||
FieldPanel('intro'),
|
||||
FieldPanel('body', classname="full")
|
||||
]
|
||||
|
@ -134,50 +136,47 @@ class AbstractContentPage(Page):
|
|||
|
||||
class ContentPage(AbstractContentPage):
|
||||
|
||||
IMAGE_DISPLAY_FEATURE = 1
|
||||
IMAGE_DISPLAY_VIGNETTE = 2
|
||||
|
||||
IMAGE_DISPLAY = (
|
||||
(IMAGE_DISPLAY_FEATURE, "Banner with background feature image"),
|
||||
(IMAGE_DISPLAY_VIGNETTE, "No banner, circular vignette"),
|
||||
inset_illustration = models.CharField(
|
||||
choices=ILLUSTRATION_TYPES,
|
||||
max_length=256,
|
||||
)
|
||||
|
||||
image_display = models.IntegerField(
|
||||
choices=IMAGE_DISPLAY,
|
||||
)
|
||||
|
||||
def image_display_feature(self):
|
||||
return self.image_display == IMAGE_DISPLAY_FEATURE
|
||||
|
||||
def image_display_vignette(self):
|
||||
return self.image_display == IMAGE_DISPLAY_VIGNETTE
|
||||
|
||||
content_panels = [
|
||||
FieldPanel('image_display')
|
||||
] + AbstractContentPage.content_panels
|
||||
content_panels = AbstractContentPage.content_panels + [
|
||||
FieldPanel('inset_illustration')
|
||||
]
|
||||
|
||||
|
||||
# News pages
|
||||
|
||||
class NewsIndexPage(Page):
|
||||
intro = RichTextField(blank=True)
|
||||
class NewsIndexPage(AbstractContentPage):
|
||||
|
||||
def child_pages(self):
|
||||
return NewsPage.objects.live().child_of(self).specific().order_by("-date")
|
||||
|
||||
subpage_types = [
|
||||
"NewsPage",
|
||||
]
|
||||
|
||||
content_panels = Page.content_panels + [
|
||||
FieldPanel('intro', classname="full"),
|
||||
]
|
||||
content_panels = AbstractContentPage.content_panels
|
||||
|
||||
|
||||
class NewsPage(AbstractContentPage):
|
||||
|
||||
date = models.DateField("Post date")
|
||||
|
||||
portrait_image = models.ForeignKey(
|
||||
'wagtailimages.Image',
|
||||
null=True,
|
||||
blank=True,
|
||||
on_delete=models.SET_NULL,
|
||||
related_name='+'
|
||||
)
|
||||
|
||||
parent_page_types = [
|
||||
NewsIndexPage,
|
||||
]
|
||||
|
||||
content_panels = AbstractContentPage.content_panels + [
|
||||
FieldPanel('date'),
|
||||
ImageChooserPanel('portrait_image'),
|
||||
]
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{% extends "site_base.html" %}
|
||||
|
||||
{% load staticfiles %}
|
||||
{% load wagtailcore_tags %}
|
||||
{% load wagtailimages_tags %}
|
||||
|
||||
{% load sitetree %}
|
||||
{% load i18n %}
|
||||
|
@ -12,14 +11,11 @@
|
|||
|
||||
{% block body %}
|
||||
{% block content %}
|
||||
<h1>{{ page.title }}</h1>
|
||||
|
||||
{% if page.main_image %}
|
||||
{% image page.main_image width-400 %}
|
||||
{% endif %}
|
||||
|
||||
<div class="intro">{{ page.intro }}</div>
|
||||
|
||||
{{ page.body|richtext }}
|
||||
{% include "cms_pages/content_page_header_panel.html" %}
|
||||
<div class="l-content-page">
|
||||
<div class="l-content-page--richtext">
|
||||
{{ page.body|richtext }}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
|
33
pinaxcon/templates/cms_pages/content_page_header_panel.html
Normal file
|
@ -0,0 +1,33 @@
|
|||
{% load staticfiles %}
|
||||
{% load wagtailimages_tags %}
|
||||
|
||||
<div class="panel panel__compact panel__bg">
|
||||
{% if page.background_image %}
|
||||
{% image page.background_image width-2000 as background_image %}
|
||||
<div style="background-image: url('{{ background_image.url }}');" class="panel--bg"></div>
|
||||
{% else %}
|
||||
<div class="panel--bg"></div>
|
||||
{% endif %}
|
||||
<div class="panel--content">
|
||||
<div class="panel--2-3">
|
||||
<h2>{{ page.title }}</h2>
|
||||
<p class="lede">{{ page.intro }}</p>
|
||||
</div>
|
||||
{% if page.inset_illustration or page.portrait_image %}
|
||||
<div class="panel--1-3">
|
||||
{% if page.inset_illustration %}
|
||||
<div class="illustration">
|
||||
<img
|
||||
src="{% static 'lca2017/images/svgs/illustrations/' %}{{ page.inset_illustration }}"
|
||||
/>
|
||||
</div>
|
||||
{% elif page.portrait_image %}
|
||||
<div class="portrait">
|
||||
{% image page.portrait_image width-640 as portrait_image %}
|
||||
<div style="background-image: url('{{ portrait_image.url }}');" class="portrait--img"></div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
|
@ -7,5 +7,7 @@
|
|||
{% block head_title %}{% trans "Welcome" %}{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
{{ page.body }}
|
||||
|
||||
{{ page.body }}
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
{% load staticfiles %}
|
||||
{% load wagtailcore_tags %}
|
||||
{% load wagtailimages_tags %}
|
||||
|
||||
{% if value.panel_type == "blue_left" %}
|
||||
|
||||
<div class="panel panel__bg">
|
||||
{% image value.background_image width-2000 as background_image %}
|
||||
<div style="background-image: url('{{ background_image.url }}');" class="panel--bg"></div>
|
||||
<div class="panel--content">
|
||||
{% include "cms_pages/home_page_blocks/basic_content_illustration.html" %}
|
||||
{% include "cms_pages/home_page_blocks/basic_content_text_and_links.html" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% elif value.panel_type == "white_right" %}
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel--content">
|
||||
{% include "cms_pages/home_page_blocks/basic_content_text_and_links.html" %}
|
||||
{% include "cms_pages/home_page_blocks/basic_content_illustration.html" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
|
@ -0,0 +1,8 @@
|
|||
{% load staticfiles %}
|
||||
<div class="panel--1-3">
|
||||
<div class="illustration">
|
||||
<img
|
||||
src="{% static 'lca2017/images/svgs/illustrations/' %}{{ value.inset_illustration }}"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,16 @@
|
|||
<div class="panel--2-3">
|
||||
<h2>{{ value.heading }}</h2>
|
||||
<p class="lede">{{ value.body }}</p>
|
||||
<div class="btn-group">
|
||||
{% if value.panel_type == "blue_left" %}
|
||||
<a href="{{ value.link.page.url }}" class="btn btn__white">{{ value.link.title }}</a>
|
||||
{% elif value.panel_type == "white_right" %}
|
||||
<a href="{{ value.link.page.url }}" class="btn">{{ value.link.title }}</a>
|
||||
{% endif %}
|
||||
{% for link in value.external_links %}
|
||||
<a href="{{ link.url }}" title="{{ link.alt }}" class="btn-svg">
|
||||
{% include "cms_pages/home_page_blocks/btn_svg.html" %}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,24 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 57 57">
|
||||
<defs>
|
||||
<style>
|
||||
.web-cls-1 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.web-cls-2 {
|
||||
clip-path: url(#clip-path);
|
||||
}
|
||||
|
||||
.web-cls-3 {
|
||||
fill: currentColor;
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clip-path">
|
||||
<rect class="web-cls-1" width="57" height="57"></rect>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>website</title>
|
||||
<g class="web-cls-2">
|
||||
<path class="web-cls-3" d="M33.78,43.33A9.74,9.74,0,0,1,27,40.49l-2.84-2.84a1.1,1.1,0,0,1,0-1.59l1.59-1.59a1.09,1.09,0,0,1,1.59,0l2.84,2.84a5,5,0,1,0,7-7l-2.84-2.84a1.1,1.1,0,0,1,0-1.59l1.59-1.59a1.1,1.1,0,0,1,1.59,0l2.84,2.84a9.56,9.56,0,0,1,2.84,6.82,9.41,9.41,0,0,1-9.44,9.44M23.21,24.81l1.59-1.59a1.09,1.09,0,0,1,1.59,0l7.5,7.5a1.09,1.09,0,0,1,0,1.59L32.3,33.9a1.09,1.09,0,0,1-1.59,0l-7.5-7.5a1.09,1.09,0,0,1,0-1.59m-0.57,6.48-1.59,1.59a1.1,1.1,0,0,1-1.59,0L16.62,30a9.56,9.56,0,0,1,6.71-16.37,9.72,9.72,0,0,1,6.82,2.84L33,19.35a1.09,1.09,0,0,1,0,1.59L31.4,22.53a1.1,1.1,0,0,1-1.6,0L27,19.69a5,5,0,0,0-3.52-1.48,5,5,0,0,0-5,5,5,5,0,0,0,1.48,3.52l2.84,2.84a1.81,1.81,0,0,1-.11,1.7M28.5,0A28.5,28.5,0,1,0,57,28.5,28.5,28.5,0,0,0,28.5,0"></path>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,5 @@
|
|||
{% if link.icon == "twitter" %}
|
||||
{% include "cms_pages/home_page_blocks/btn_twitter.html" %}
|
||||
{% elif link.icon == "generic" %}
|
||||
{% include "cms_pages/home_page_blocks/btn_generic_link.html" %}
|
||||
{% endif %}
|
|
@ -0,0 +1,24 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 57 57">
|
||||
<defs>
|
||||
<style>
|
||||
.twtr-cls-1 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.twtr-cls-2 {
|
||||
clip-path: url(#clip-path);
|
||||
}
|
||||
|
||||
.twtr-cls-3 {
|
||||
fill: currentColor;
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clip-path" transform="translate(0 0)">
|
||||
<rect class="twtr-cls-1" width="57" height="57"></rect>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>twitter</title>
|
||||
<g class="twtr-cls-2">
|
||||
<path class="twtr-cls-3" d="M39.83,22.69c0,0.25,0,.5,0,0.75,0,7.73-5.88,16.64-16.64,16.64a16.55,16.55,0,0,1-9-2.63,12.38,12.38,0,0,0,1.4.08A11.72,11.72,0,0,0,22.91,35,5.86,5.86,0,0,1,17.45,31a6,6,0,0,0,1.1.1,5.89,5.89,0,0,0,1.54-.2,5.86,5.86,0,0,1-4.69-5.73V25.07A5.82,5.82,0,0,0,18,25.8,5.85,5.85,0,0,1,16.23,18,16.59,16.59,0,0,0,28.29,24.1a5.85,5.85,0,0,1,10-5.33A11.66,11.66,0,0,0,42,17.35a5.87,5.87,0,0,1-2.57,3.24,11.65,11.65,0,0,0,3.36-.92,11.84,11.84,0,0,1-2.92,3M28.5,0A28.5,28.5,0,1,0,57,28.5,28.5,28.5,0,0,0,28.5,0" transform="translate(0 0)"></path>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
|
@ -1,5 +1,6 @@
|
|||
{% extends "site_base.html" %}
|
||||
|
||||
{% load staticfiles %}
|
||||
{% load wagtailcore_tags %}
|
||||
{% load wagtailimages_tags %}
|
||||
|
||||
|
@ -12,24 +13,28 @@
|
|||
|
||||
{% block body %}
|
||||
{% block content %}
|
||||
<h1>{{ page.title }}</h1>
|
||||
|
||||
{% if page.main_image %}
|
||||
{% image page.main_image width-400 %}
|
||||
{% endif %}
|
||||
|
||||
<p class="meta">{{ page.date }}</p>
|
||||
|
||||
<div class="intro">{{ page.intro }}</div>
|
||||
|
||||
{% if page.get_children.specific %}
|
||||
<ul>
|
||||
{% for item in page.get_children.specific %}
|
||||
<li><a href="{{ item.url }}">{{ item.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% include "cms_pages/content_page_header_panel.html" %}
|
||||
|
||||
{% if page.child_pages %}
|
||||
{% for item in page.child_pages %}
|
||||
<div class="panel panel__compact">
|
||||
<div class="panel--content">
|
||||
<div class="panel--1-3">
|
||||
<div class="portrait">
|
||||
{% image item.portrait_image width-640 as portrait_image %}
|
||||
<div style="background-image: url('{{ portrait_image.url }}');" class="portrait--img"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel--2-3">
|
||||
<h2>{{ item.title }}</h2>
|
||||
<p class="lede"><em>{{ item.date|date:"j F Y" }}</em> – {{ item.intro }}</p>
|
||||
<a href="{{ item.url }}" class="btn">Read more</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
<div class="panel panel__compact"></div>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -12,16 +12,12 @@
|
|||
|
||||
{% block body %}
|
||||
{% block content %}
|
||||
<h1>{{ page.title }}</h1>
|
||||
|
||||
{% if page.main_image %}
|
||||
{% image page.main_image width-400 %}
|
||||
{% endif %}
|
||||
|
||||
<p class="meta">{{ page.date }}</p>
|
||||
|
||||
<div class="intro">{{ page.intro }}</div>
|
||||
|
||||
{{ page.body|richtext }}
|
||||
{% include "cms_pages/content_page_header_panel.html" %}
|
||||
<div class="l-content-page">
|
||||
<div class="l-content-page--richtext">
|
||||
<p><em>{{ page.date|date:"j F Y" }}</em></p>
|
||||
{{ page.body|richtext }}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
|
121
pinaxcon/templates/site_base.html
Normal file → Executable file
|
@ -1,57 +1,100 @@
|
|||
{% extends "theme_bootstrap/base.html" %}
|
||||
|
||||
{% load staticfiles %}
|
||||
{% load metron_tags %}
|
||||
{% load i18n %}
|
||||
{% load sitetree %}
|
||||
|
||||
|
||||
{# <!-- https://gist.github.com/geedmo/5682742--> #}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" class="no-js">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="description" content="">
|
||||
{% block viewport %}
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
||||
{% endblock %}
|
||||
<title>{% block head_title_base %}{% if SITE_NAME %}{{ SITE_NAME }} | {% endif %}{% block head_title %}{% endblock %}{% endblock %}</title>
|
||||
{% block styles %}
|
||||
{% include "_styles.html" %}
|
||||
<link rel="stylesheet" href="{% static 'lca2017/css/app.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'lca2017/css/print.css' %}" media="print">
|
||||
<!--FIXME: download-->
|
||||
<link href="https://fonts.googleapis.com/css?family=Titillium+Web:700,900|Roboto:400italic,400,700,700italic" rel="stylesheet" type="text/css">
|
||||
<!--Meta tags-->
|
||||
<meta name="theme-color" content="#0c486c">
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block extra_head_base %}
|
||||
{% block extra_head %}{% endblock %}
|
||||
{% endblock %}
|
||||
|
||||
{% block nav %}
|
||||
{% sitetree_menu from "main" include "trunk" template "sitetree/menu_bootstrap3.html" %}
|
||||
<!--Twitter-->
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:site" content="@linuxconfau">
|
||||
<meta name="twitter:creator" content="@linuxconfau">
|
||||
<meta name="twitter:description" content="Linux Conf Hobart 16-20 January 2017">
|
||||
<meta name="twitter:image:src" content="TODO">
|
||||
<!--Open Graph-->
|
||||
<meta property="og:url" content="https://linux.conf.au/">
|
||||
<meta property="og:title" content="Linux.Conf.Au">
|
||||
<meta property="og:description" content="Linux Conf Hobart 16-20 January 2017">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="fb:admins" content="TODO">
|
||||
<meta property="fb:profile_id" content="TODO">
|
||||
{% block extra_head_base %}
|
||||
{% block extra_head %}{% endblock %}
|
||||
{% endblock %}
|
||||
</head>
|
||||
<body class="{% block body_class %}{% endblock %}">
|
||||
{% block topbar_base %}
|
||||
<header role="banner" class="l-header">
|
||||
<div class="l-header--logo">
|
||||
{% block site_brand %}
|
||||
<img src="{% static 'lca2017/images/svgs/lca2017-website-logo.svg' %}" width="300px" />
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% block nav %}
|
||||
{% sitetree_menu from "main" include "trunk" template "sitetree_header.html" %}
|
||||
<a href="#" data-menu-opener="" class="l-header--menu-opener"></a>
|
||||
</header>
|
||||
{% sitetree_menu from "main" include "trunk" template "sitetree_opener.html" %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
||||
{% block body_base %}
|
||||
<section id="content_body">
|
||||
<div class="container">
|
||||
{% include "_messages.html" %}
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
{% block body %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{% block sidebar %}
|
||||
{% include "_default_sidebar.html" %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
<main role="main">
|
||||
{% block body %}
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block footer %}
|
||||
{% include "_footer.html" %}
|
||||
{% block footer_base %}
|
||||
<div class="panel panel__compact panel__bg">
|
||||
<div style="background-image: url('');" class="panel--bg"></div>
|
||||
<div class="panel--content">
|
||||
<div class="panel--2-3">
|
||||
<!-- TODO: put something here. -->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- https://gist.github.com/geedmo/5682742-->
|
||||
<footer class="l-footer">
|
||||
{% block footer %}
|
||||
<div class="l-footer--text">
|
||||
<h3>Sponsors</h3>
|
||||
<p class="lede">Magna morbi aliquet commodo arcu odio dui imperdiet blandit est.
|
||||
</p><a href="#" class="btn">See sponsors</a>
|
||||
</div>
|
||||
<div class="l-footer--logos">
|
||||
<img src="{% static 'lca2017/images/HPE.jpg' %}" role="presentation">
|
||||
<img src="{% static 'lca2017/images/IBM.jpg' %}" role="presentation"></div>
|
||||
<p class="lede">© 2016 linux.conf.au 2017 and Linux Australia. Linux is a registered trademark of Linus Torvalds. Site design by <a href="http://takeflight.com.au" >Takeflight</a>. <a href="/colophon">Colophon</a>.</p>
|
||||
{% endblock %}
|
||||
</footer>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block scripts %}
|
||||
{% include "_scripts.html" %}
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js"></script>
|
||||
</main>
|
||||
{% block scripts %}
|
||||
<script src="{% static 'lca2017/js/app.js' %}"></script>
|
||||
{% block extra_script %}{% endblock %}
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% endblock %}
|
||||
{% block extra_body_base %}
|
||||
{% analytics %}
|
||||
{% block extra_body %}{% endblock %}
|
||||
{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
10
pinaxcon/templates/sitetree_header.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
{% load sitetree %}
|
||||
<nav role="navigation" class="l-header--links">
|
||||
{% for item in sitetree_items %}
|
||||
<!-- FIXME: NEeds a dropdown mechanism -->
|
||||
<a href="{% if item.has_children %}#{% else %}{% sitetree_url for item %}{% endif %}" {% if item.has_children %}class="l-header--nav dropdown-toggle {% if item.is_current or item.in_current_branch %}active{% endif %}" data-toggle="dropdown" {% else %}class="l-header--nav {% if item.is_current or item.in_current_branch %}active{% endif %}"{% endif %}>{{ item.title_resolved }}</a>
|
||||
<!-- {% if item.has_children %}
|
||||
{% sitetree_children of item for menu template "sitetree_header_dropdown.html" %}
|
||||
{% endif %} -->
|
||||
{% endfor %}
|
||||
</nav>
|
8
pinaxcon/templates/sitetree_header_dropdown.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{% load sitetree %}
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
{% for item in sitetree_items %}
|
||||
<li role="presentation" {% if item.is_current or item.in_current_branch %}class="active"{% endif %}>
|
||||
<a role="menuitem" href="{% sitetree_url for item %}" {% if item.hint %}title="{{ item.hint }}"{% endif %}>{{ item.title_resolved }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
14
pinaxcon/templates/sitetree_opener.html
Normal file
|
@ -0,0 +1,14 @@
|
|||
{% load sitetree %}
|
||||
<div data-menu="" class="l-header--menu">
|
||||
<ul class="link-list">
|
||||
{% for item in sitetree_items %}
|
||||
<!-- FIXME: NEeds a dropdown mechanism -->
|
||||
<li class="link-list--item"><a href="{% if item.has_children %}#{% else %}{% sitetree_url for item %}{% endif %}" {% if item.has_children %}class="l-header--nav dropdown-toggle {% if item.is_current or item.in_current_branch %}active{% endif %}" data-toggle="dropdown" {% else %}class="l-header--nav {% if item.is_current or item.in_current_branch %}active{% endif %}"{% endif %}>{{ item.title_resolved }}</a></li>
|
||||
<!-- {% if item.has_children %}
|
||||
{% sitetree_children of item for menu template "sitetree_opener_dropdown.html" %}
|
||||
{% endif %} -->
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</nav>
|
8
pinaxcon/templates/sitetree_opener_dropdown.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{% load sitetree %}
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
{% for item in sitetree_items %}
|
||||
<li role="presentation" {% if item.is_current or item.in_current_branch %}class="active"{% endif %}>
|
||||
<a role="menuitem" href="{% sitetree_url for item %}" {% if item.hint %}title="{{ item.hint }}"{% endif %}>{{ item.title_resolved }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
1
static/dist/lca2017
vendored
Symbolic link
|
@ -0,0 +1 @@
|
|||
../src/lca2017/
|
1419
static/src/lca2017/css/app.css
Executable file
1
static/src/lca2017/css/maps/app.css.map
Executable file
1
static/src/lca2017/css/maps/print.css.map
Executable file
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["print.css"],"names":[],"mappings":"AAAA;;GAEG;AACH;;GAEG;AACH;;GAEG;AACH;;;GAGG;AACH;;EAEE;AACF;;GAEG;AACH;;GAEG;AACH;;GAEG;AACH;EACE,cAAc;CACf;;AAED;EACE,WAAW;CACZ;;AAED;EACE,cAAc;EACd,WAAW;CACZ;;AAED;EACE,sBAAsB;CACvB;;AAED;EACE,cAAc;CACf;;AAED;EACE,cAAc;CACf;;AAED;EACE,eAAe;CAChB;;AAED;EACE,eAAe;EACf,sBAAsB;CACvB;;AAED;EACE,kCAAkC;EAClC,0BAA0B;CAC3B","file":"print.css","sourcesContent":["/**\n * Media Queries - *Try* and make everything fit within these - use @from/to/between\n */\n/**\n * Font definitions\n */\n/**\n * Transitions\n */\n/**\n * Padding\n * Usage: padding: $padding-rythm*2\n */\n/*\n* Colours\n*/\n/**\n * Purpose-based colors\n */\n/**\n * z-index stack\n */\n/**\n * Misc\n */\n.l-header--menu-opener {\n display: none;\n}\n\n.l-header--logo {\n width: 25%;\n}\n\n.l-header--menu-opener {\n display: none;\n opacity: 0;\n}\n\n.l-header--links {\n display: inline-block;\n}\n\n.illustration {\n display: none;\n}\n\n.portrait {\n display: none;\n}\n\n.panel__bg {\n color: #0c486c;\n}\n\n.btn__white {\n color: #0c486c;\n border-color: #0c486c;\n}\n\n* {\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n"],"sourceRoot":"/source/"}
|
65
static/src/lca2017/css/print.css
Executable file
|
@ -0,0 +1,65 @@
|
|||
/**
|
||||
* Media Queries - *Try* and make everything fit within these - use @from/to/between
|
||||
*/
|
||||
/**
|
||||
* Font definitions
|
||||
*/
|
||||
/**
|
||||
* Transitions
|
||||
*/
|
||||
/**
|
||||
* Padding
|
||||
* Usage: padding: $padding-rythm*2
|
||||
*/
|
||||
/*
|
||||
* Colours
|
||||
*/
|
||||
/**
|
||||
* Purpose-based colors
|
||||
*/
|
||||
/**
|
||||
* z-index stack
|
||||
*/
|
||||
/**
|
||||
* Misc
|
||||
*/
|
||||
.l-header--menu-opener {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.l-header--logo {
|
||||
width: 25%;
|
||||
}
|
||||
|
||||
.l-header--menu-opener {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.l-header--links {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.illustration {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.portrait {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.panel__bg {
|
||||
color: #0c486c;
|
||||
}
|
||||
|
||||
.btn__white {
|
||||
color: #0c486c;
|
||||
border-color: #0c486c;
|
||||
}
|
||||
|
||||
* {
|
||||
-webkit-print-color-adjust: exact;
|
||||
print-color-adjust: exact;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=maps/print.css.map */
|
BIN
static/src/lca2017/images/404.jpg
Executable file
After Width: | Height: | Size: 38 KiB |
BIN
static/src/lca2017/images/HPE.jpg
Executable file
After Width: | Height: | Size: 14 KiB |
BIN
static/src/lca2017/images/IBM.jpg
Executable file
After Width: | Height: | Size: 10 KiB |
BIN
static/src/lca2017/images/conference_bg.jpg
Executable file
After Width: | Height: | Size: 5.3 MiB |
BIN
static/src/lca2017/images/content-image.jpg
Executable file
After Width: | Height: | Size: 1 MiB |
BIN
static/src/lca2017/images/favicon.ico
Executable file
After Width: | Height: | Size: 15 KiB |
BIN
static/src/lca2017/images/hobart_bg.jpg
Executable file
After Width: | Height: | Size: 1 MiB |
BIN
static/src/lca2017/images/listing_350_1275544711-500x500.jpg
Executable file
After Width: | Height: | Size: 38 KiB |
BIN
static/src/lca2017/images/speaker-1.jpg
Executable file
After Width: | Height: | Size: 522 KiB |
BIN
static/src/lca2017/images/speaker-2.jpg
Executable file
After Width: | Height: | Size: 821 KiB |
BIN
static/src/lca2017/images/speaker-3.jpg
Executable file
After Width: | Height: | Size: 6.4 MiB |
BIN
static/src/lca2017/images/speaker-4.jpeg
Executable file
After Width: | Height: | Size: 3 MiB |
BIN
static/src/lca2017/images/speaker-4.jpg
Executable file
After Width: | Height: | Size: 3 MiB |
12
static/src/lca2017/images/svgs/github.svg
Executable file
|
@ -0,0 +1,12 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 55.76">
|
||||
<defs>
|
||||
<style>
|
||||
.squid {
|
||||
fill: currentColor;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<title>gitlab</title>
|
||||
<path class="squid" d="M57,28.5A28.5,28.5,0,1,0,20.17,55.76l0-.06a1.47,1.47,0,0,0,1.29-.82V49.23s-3.84.59-5.61-.08-3-1.65-4.35-4.9-3.45-2.67-3.69-3.84,2.27-.67,3.13-0.16a8.88,8.88,0,0,1,2.24,2.16c0.71,0.86,1.69,3.3,5.06,3.3a5.2,5.2,0,0,0,2.31-.08A11.15,11.15,0,0,1,21.86,45a4.64,4.64,0,0,1,1.49-4S11,40.84,10.56,28.21c0,0-.08-5.33,3.06-8.55a13.43,13.43,0,0,1,.08-7.43s3.82-.47,7.79,3a19.3,19.3,0,0,1,6.9-1.15,24.15,24.15,0,0,1,7.48,1.2,13.29,13.29,0,0,1,7.58-3.09,12.45,12.45,0,0,1,.21,7.32,11.54,11.54,0,0,1,3,8.05c0,5.23-1.78,12.5-12.86,13.39,0,0,1.88,2.51,1.88,4.71s-0.1,8.47-.1,8.47a1.76,1.76,0,0,0,1.35,1.61A28.51,28.51,0,0,0,57,28.5Z"
|
||||
transform="translate(0)" />
|
||||
</svg>
|
After Width: | Height: | Size: 934 B |
6
static/src/lca2017/images/svgs/hamburger.svg
Executable file
|
@ -0,0 +1,6 @@
|
|||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 28.9 29" style="enable-background:new 0 0 28.9 29;" xml:space="preserve">
|
||||
<line id="bottom" fill="none" stroke="currentColor" stroke-width="3" x1="0" y1="27.5" x2="28.9" y2="27.5"/>
|
||||
<line id="top" fill="none" stroke="currentColor" stroke-width="3" x1="0" y1="1.5" x2="28.9" y2="1.5"/>
|
||||
<line id="middle" fill="none" stroke="currentColor" stroke-width="3" x1="0" y1="14.5" x2="28.9" y2="14.5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 541 B |
After Width: | Height: | Size: 16 KiB |
1
static/src/lca2017/images/svgs/illustrations/bridge.svg
Normal file
After Width: | Height: | Size: 10 KiB |
1
static/src/lca2017/images/svgs/illustrations/casino.svg
Normal file
After Width: | Height: | Size: 15 KiB |
1
static/src/lca2017/images/svgs/illustrations/cradle.svg
Executable file
After Width: | Height: | Size: 13 KiB |
1
static/src/lca2017/images/svgs/illustrations/devil.svg
Normal file
After Width: | Height: | Size: 24 KiB |
1
static/src/lca2017/images/svgs/illustrations/falls.svg
Normal file
After Width: | Height: | Size: 30 KiB |
1
static/src/lca2017/images/svgs/illustrations/hobart.svg
Normal file
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 13 KiB |
1
static/src/lca2017/images/svgs/illustrations/tuz.svg
Normal file
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 18 KiB |
1
static/src/lca2017/images/svgs/lca2017-website-logo.svg
Normal file
After Width: | Height: | Size: 14 KiB |
25
static/src/lca2017/images/svgs/linkedin.svg
Executable file
|
@ -0,0 +1,25 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 57 57">
|
||||
<defs>
|
||||
<style>
|
||||
.li-cls-1 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.li-cls-2 {
|
||||
clip-path: url(#clip-path);
|
||||
}
|
||||
|
||||
.li-cls-3 {
|
||||
fill: currentColor;
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clip-path">
|
||||
<rect class="li-cls-1" width="57" height="57" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>linked in</title>
|
||||
<g class="li-cls-2">
|
||||
<path class="li-cls-3" d="M41.48,38.41H36.07V29.7c0-2.19-.78-3.68-2.74-3.68a3,3,0,0,0-2.78,2,3.68,3.68,0,0,0-.18,1.32v9.09H25S25,23.66,25,22.13h5.41v2.3a5.37,5.37,0,0,1,4.88-2.69c3.56,0,6.23,2.32,6.23,7.32v9.33ZM19.26,19.91h0a2.82,2.82,0,1,1,.07-5.63,2.82,2.82,0,1,1,0,5.63M22,38.41H16.55V22.13H22V38.41ZM28.5,0A28.5,28.5,0,1,0,57,28.5,28.5,28.5,0,0,0,28.5,0"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 981 B |
62
static/src/lca2017/images/svgs/logo.svg
Executable file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 352.7 98.6" enable-background="new 0 0 352.7 98.6" xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#3BB0C9" d="M212.7,88.8v0.5l-3.5,8.3l4.7,1l3.7-9.5v-4.7h-9.6v4.4H212.7z M201.4,84.4l-4.9,2.9l1.3,3.4l2.9-1.2v8.8
|
||||
h4.8V84.4H201.4z M189.4,88.7c0.1,0.2,0.1,0.6,0.1,1c0,0.4,0,1.1,0,2.2c0,1.1,0,1.8-0.1,2.2c-0.1,0.4-0.3,0.6-0.6,0.6
|
||||
s-0.5-0.2-0.6-0.6c-0.1-0.4-0.1-1.3-0.1-2.7c0-1.4,0-2.3,0.1-2.7c0.1-0.2,0.1-0.4,0.2-0.5c0.1-0.1,0.2-0.1,0.4-0.1s0.3,0,0.4,0.1
|
||||
C189.3,88.3,189.4,88.4,189.4,88.7 M184.6,96.9c0.8,1.1,2.2,1.7,4.3,1.7c2.1,0,3.5-0.6,4.3-1.7c0.8-1.1,1.2-3,1.2-5.6
|
||||
c0-2.6-0.4-4.4-1.2-5.5c-0.8-1.1-2.2-1.7-4.3-1.7s-3.5,0.6-4.3,1.7c-0.8,1.1-1.2,3-1.2,5.5C183.3,93.9,183.7,95.8,184.6,96.9
|
||||
M181.1,94.5h-4.3l1.4-1c1.2-0.8,1.9-1.6,2.4-2.3c0.4-0.7,0.6-1.7,0.6-3c0-1.3-0.5-2.3-1.4-3c-0.9-0.7-2.2-1.1-3.8-1.1
|
||||
s-3.1,0.3-4.6,0.8l0.2,3.6l0.4-0.1c0.8-0.2,1.8-0.2,2.8-0.2c0.5,0,0.9,0,1.1,0.1c0.2,0.1,0.3,0.3,0.3,0.7c0,0.2,0,0.3-0.1,0.5
|
||||
c0,0.1-0.2,0.4-0.3,0.7c-0.2,0.3-0.4,0.6-0.7,0.8l-0.9,0.9c-0.4,0.4-0.7,0.7-1.1,1.1l-1.8,1.8v3.6h9.7V94.5z M159.9,93.9l4.1-9.7
|
||||
h-5.2l-1.4,4.2l-1.3-4.2H151l4,9.7v4.4h4.9V93.9z M142.5,90.8V88h1.1c0.8,0,1.2,0.5,1.2,1.4c0,0.9-0.3,1.4-1,1.4H142.5z
|
||||
M144.5,98.3h5l-1.4-4.8c1-0.8,1.6-2.3,1.6-4.2c0-2-0.5-3.3-1.4-4s-2.5-1.1-4.7-1.1h-6v14.2h4.9v-3.7h1.2L144.5,98.3z M129.2,88
|
||||
L130,93h-2.1l0.8-4.9H129.2z M126.9,98.3l0.3-1.6h3.2l0.4,1.6h4.9l-3.2-14.2h-7.4l-3.1,14.2H126.9z M107.9,84.2v9.1
|
||||
c0,2,0.5,3.4,1.5,4.2c1,0.8,2.6,1.2,4.7,1.2c2.1,0,3.7-0.4,4.7-1.2c1-0.8,1.5-2.2,1.5-4.2v-9h-4.9v9.3c0,0.4-0.1,0.7-0.3,0.9
|
||||
s-0.5,0.3-1,0.3c-0.5,0-0.8-0.1-1-0.3c-0.2-0.2-0.3-0.5-0.3-0.9v-9.3H107.9z M97.1,98.3v-5.8h0.3l3.2,5.8h4.8V84.2h-4.9v5.4h-0.3
|
||||
L97,84.2h-4.8v14.2H97.1z M83.8,88l0.8,4.9h-2.1l0.8-4.9H83.8z M81.5,98.3l0.3-1.6h3.2l0.4,1.6h4.9l-3.2-14.2h-7.4l-3.1,14.2H81.5z
|
||||
M70,84.2v7.4c0,1,0,1.7-0.1,2.1c0,0.3-0.1,0.4-0.1,0.5c0,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.2,0.1-0.3,0.1c-0.1,0-0.2,0-0.4,0v4
|
||||
c0.8,0,1.5,0,2.1-0.1c1.4-0.1,2.3-0.4,2.8-0.9c0.7-0.6,1-1.7,1-3V84.2H70z M56.7,88.7c0.1,0.2,0.1,0.6,0.1,1c0,0.4,0,1.1,0,2.2
|
||||
c0,1.1,0,1.8-0.1,2.2c-0.1,0.4-0.3,0.6-0.6,0.6c-0.3,0-0.5-0.2-0.6-0.6c-0.1-0.4-0.1-1.3-0.1-2.7c0-1.4,0-2.3,0.1-2.7
|
||||
c0.1-0.2,0.1-0.4,0.2-0.5c0.1-0.1,0.2-0.1,0.4-0.1s0.3,0,0.4,0.1C56.6,88.3,56.7,88.4,56.7,88.7 M51.8,96.9
|
||||
c0.8,1.1,2.2,1.7,4.3,1.7s3.5-0.6,4.3-1.7c0.8-1.1,1.2-3,1.2-5.6c0-2.6-0.4-4.4-1.2-5.5c-0.8-1.1-2.2-1.7-4.3-1.7
|
||||
c-2,0-3.5,0.6-4.3,1.7c-0.8,1.1-1.2,3-1.2,5.5C50.6,93.9,51,95.8,51.8,96.9 M48.3,94.5h-4.3l1.4-1c1.2-0.8,1.9-1.6,2.4-2.3
|
||||
c0.4-0.7,0.6-1.7,0.6-3c0-1.3-0.5-2.3-1.4-3c-0.9-0.7-2.2-1.1-3.8-1.1c-1.6,0-3.1,0.3-4.6,0.8l0.2,3.6l0.4-0.1
|
||||
c0.8-0.2,1.8-0.2,2.8-0.2c0.5,0,0.9,0,1.1,0.1c0.2,0.1,0.3,0.3,0.3,0.7c0,0.2,0,0.3-0.1,0.5c0,0.1-0.2,0.4-0.3,0.7
|
||||
c-0.2,0.3-0.4,0.6-0.7,0.8l-0.9,0.9c-0.4,0.4-0.7,0.7-1.1,1.1l-1.8,1.8v3.6h9.7V94.5z M35.9,89.1H25.3v4.2h10.6V89.1z M18.9,93.8
|
||||
c0,0.7-0.3,1-1,1c-0.5,0-0.8-0.1-0.9-0.4c-0.2-0.3-0.2-0.7-0.2-1.4c0.4-0.2,0.8-0.3,1.2-0.3C18.6,92.8,18.9,93.1,18.9,93.8
|
||||
M22.5,88.3l0.3-3.5l-0.8-0.2c-1.6-0.4-3-0.5-4.2-0.5c-0.7,0-1.4,0.1-2.1,0.3c-0.7,0.2-1.3,0.6-1.8,1.1c-1.2,1.1-1.7,3.1-1.7,5.9
|
||||
c0,2.4,0.5,4.1,1.4,5.3c0.9,1.2,2.3,1.8,4.3,1.8c1.6,0,2.9-0.4,3.9-1.2c0.9-0.8,1.4-2,1.4-3.6c0-1.6-0.4-2.8-1.1-3.6
|
||||
c-0.8-0.8-1.9-1.2-3.6-1.2c-0.5,0-1,0.1-1.5,0.3l-0.2,0.1c0-0.5,0.2-0.8,0.4-1.1c0.2-0.2,0.6-0.4,1.2-0.4
|
||||
C19.6,88,21,88.1,22.5,88.3 M5.1,84.4l-4.9,2.9l1.3,3.4l2.9-1.2v8.8h4.8V84.4H5.1z"/>
|
||||
<path fill="#0B486B" d="M325.3,42.4v20c0,4.4,1.1,7.4,3.3,9.2c2.2,1.7,5.7,2.6,10.4,2.6c4.7,0,8.2-0.9,10.4-2.7
|
||||
c2.2-1.8,3.3-4.9,3.3-9.3V42.4h-10.8v20.4c0,0.9-0.2,1.5-0.7,1.9c-0.4,0.4-1.2,0.6-2.2,0.6c-1.1,0-1.8-0.2-2.3-0.6
|
||||
c-0.4-0.4-0.7-1-0.7-1.9V42.4H325.3z M307,50.9l1.7,10.9h-4.6l1.8-10.9H307z M302,73.5l0.7-3.6h7.1l0.9,3.6h10.9l-7-31.1h-16.3
|
||||
l-6.9,31.1H302z M287.8,64.3h-10.6v9.2h10.6V64.3z M261.4,73.5V65h8.9v-8.8h-8.9v-5h11.7v-8.8h-22.4v31.1H261.4z M226.6,73.5V60.9
|
||||
h0.7l7.1,12.7h10.6V42.4h-10.8v11.8h-0.7l-7.2-11.8h-10.6v31.1H226.6z M207.4,45.6c-2.4-2.6-6.1-3.8-11.3-3.8
|
||||
c-5.2,0-8.9,1.3-11.3,3.8c-2.4,2.6-3.5,6.7-3.5,12.3c0,5.7,1.2,9.8,3.6,12.3c2.4,2.6,6.1,3.9,11.3,3.9c5.2,0,8.9-1.3,11.3-3.8
|
||||
c2.4-2.6,3.5-6.7,3.5-12.3C211,52.3,209.8,48.2,207.4,45.6 M192.9,52.3c0.5-1.2,1.6-1.7,3.2-1.7s2.7,0.6,3.2,1.7
|
||||
c0.5,1.1,0.7,3,0.7,5.7c0,2.7-0.2,4.6-0.7,5.7c-0.5,1.1-1.6,1.7-3.2,1.7c-1.6,0-2.7-0.6-3.2-1.7c-0.5-1.2-0.8-3.1-0.8-5.7
|
||||
C192.2,55.3,192.4,53.4,192.9,52.3 M177,64.8l-7.3,0.3c-1.5,0-2.5-0.2-3.2-0.5c-0.7-0.3-1.1-1-1.4-2c-0.3-1-0.4-2.8-0.4-5.3
|
||||
c0-2.6,0.3-4.3,0.9-5.1c0.6-0.8,2-1.2,4.2-1.2c2.2,0,4.5,0.2,7,0.5l0.3-8.3l-1.6-0.3c-3-0.6-5.7-0.9-7.9-0.9c-5.4,0-9,1.1-10.9,3.4
|
||||
c-1.9,2.3-2.9,6.5-2.9,12.7c0,4.3,0.4,7.6,1.2,9.9s2.2,3.9,4,4.9c1.9,1,4.5,1.5,7.9,1.5c3.4,0,6.8-0.4,10.1-1.2L177,64.8z
|
||||
M149.2,64.3h-10.6v9.2h10.6V64.3z M107.4,42.4l6.6,16.2l-6.6,14.9h11l2.8-8.3l2.7,8.3H135l-6.3-16.3l6.7-14.8h-10.6l-3.6,8.6
|
||||
l-2.8-8.6H107.4z M76.4,42.4v20c0,4.4,1.1,7.4,3.3,9.2c2.2,1.7,5.7,2.6,10.4,2.6s8.2-0.9,10.4-2.7c2.2-1.8,3.3-4.9,3.3-9.3V42.4H93
|
||||
v20.4c0,0.9-0.2,1.5-0.7,1.9c-0.4,0.4-1.2,0.6-2.2,0.6c-1.1,0-1.8-0.2-2.3-0.6c-0.4-0.4-0.7-1-0.7-1.9V42.4H76.4z M52.6,73.5V60.9
|
||||
h0.7l7.1,12.7H71V42.4H60.2v11.8h-0.7l-7.2-11.8H41.8v31.1H52.6z M36.3,42.4H25.5v31.1h10.8V42.4z M20.9,64.8H10.8V42.4H0v31.1
|
||||
h20.9V64.8z"/>
|
||||
<path fill="#0B486B" d="M167.3,9.4v22.4h10.8V9.4h6V0.6h-23.2v8.8H167.3z M141.2,15.2V9.1h2.4c1.7,0,2.6,1,2.6,3c0,2-0.8,3-2.3,3
|
||||
H141.2z M145.7,31.7h11l-3.1-10.6c2.3-1.9,3.4-4.9,3.4-9.3c0-4.3-1-7.3-3.1-8.9c-2.1-1.6-5.5-2.4-10.3-2.4h-13.1v31.1h10.8v-8h2.6
|
||||
L145.7,31.7z M112.1,9.1l1.7,10.9h-4.6l1.8-10.9H112.1z M107,31.7l0.7-3.6h7.1l0.9,3.6h10.9l-7-31.1h-16.3l-6.9,31.1H107z
|
||||
M82.2,8.3c0.4,0.4,0.6,1,0.6,1.9s-0.2,1.5-0.6,1.9c-0.4,0.4-1,0.6-2,0.6h-2.4v-5h2.4C81.1,7.7,81.8,7.9,82.2,8.3 M82.5,20
|
||||
c0.4,0.4,0.6,1,0.6,2c0,1-0.2,1.6-0.6,2c-0.4,0.4-1.1,0.5-2.2,0.5h-2.5v-5.1h2.5C81.4,19.4,82.1,19.6,82.5,20 M67.1,31.7h14.3
|
||||
c8,0,12-2.9,12-8.8c0-2.2-0.3-3.8-0.9-4.7c-0.6-0.9-1.6-1.7-3.1-2.4c1.3-0.9,2.2-1.9,2.6-3c0.4-1.1,0.6-2.6,0.6-4.5
|
||||
c0-5.1-3.8-7.7-11.4-7.7H67.1V31.7z M58.7,3.8C56.3,1.3,52.5,0,47.4,0c-5.2,0-8.9,1.3-11.3,3.8c-2.4,2.6-3.5,6.7-3.5,12.3
|
||||
c0,5.7,1.2,9.8,3.6,12.3c2.4,2.6,6.1,3.9,11.3,3.9c5.2,0,8.9-1.3,11.3-3.8c2.4-2.6,3.5-6.7,3.5-12.3C62.2,10.5,61,6.4,58.7,3.8
|
||||
M44.2,10.5c0.5-1.2,1.6-1.7,3.2-1.7s2.7,0.6,3.2,1.7c0.5,1.1,0.7,3,0.7,5.7s-0.2,4.6-0.7,5.7c-0.5,1.1-1.6,1.7-3.2,1.7
|
||||
c-1.6,0-2.7-0.6-3.2-1.7c-0.5-1.2-0.8-3.1-0.8-5.7C43.4,13.5,43.7,11.6,44.2,10.5 M27.7,31.7V0.6H16.9v11.5h-6.1V0.6H0v31.1h10.8
|
||||
V20.9h6.1v10.9H27.7z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.6 KiB |
25
static/src/lca2017/images/svgs/twitter.svg
Executable file
|
@ -0,0 +1,25 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 57 57">
|
||||
<defs>
|
||||
<style>
|
||||
.twtr-cls-1 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.twtr-cls-2 {
|
||||
clip-path: url(#clip-path);
|
||||
}
|
||||
|
||||
.twtr-cls-3 {
|
||||
fill: currentColor;
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clip-path" transform="translate(0 0)">
|
||||
<rect class="twtr-cls-1" width="57" height="57" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>twitter</title>
|
||||
<g class="twtr-cls-2">
|
||||
<path class="twtr-cls-3" d="M39.83,22.69c0,0.25,0,.5,0,0.75,0,7.73-5.88,16.64-16.64,16.64a16.55,16.55,0,0,1-9-2.63,12.38,12.38,0,0,0,1.4.08A11.72,11.72,0,0,0,22.91,35,5.86,5.86,0,0,1,17.45,31a6,6,0,0,0,1.1.1,5.89,5.89,0,0,0,1.54-.2,5.86,5.86,0,0,1-4.69-5.73V25.07A5.82,5.82,0,0,0,18,25.8,5.85,5.85,0,0,1,16.23,18,16.59,16.59,0,0,0,28.29,24.1a5.85,5.85,0,0,1,10-5.33A11.66,11.66,0,0,0,42,17.35a5.87,5.87,0,0,1-2.57,3.24,11.65,11.65,0,0,0,3.36-.92,11.84,11.84,0,0,1-2.92,3M28.5,0A28.5,28.5,0,1,0,57,28.5,28.5,28.5,0,0,0,28.5,0"
|
||||
transform="translate(0 0)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
25
static/src/lca2017/images/svgs/website.svg
Executable file
|
@ -0,0 +1,25 @@
|
|||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 57 57">
|
||||
<defs>
|
||||
<style>
|
||||
.web-cls-1 {
|
||||
fill: none;
|
||||
}
|
||||
|
||||
.web-cls-2 {
|
||||
clip-path: url(#clip-path);
|
||||
}
|
||||
|
||||
.web-cls-3 {
|
||||
fill: currentColor;
|
||||
}
|
||||
</style>
|
||||
<clipPath id="clip-path">
|
||||
<rect class="web-cls-1" width="57" height="57" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<title>website</title>
|
||||
<g class="web-cls-2">
|
||||
<path class="web-cls-3" d="M33.78,43.33A9.74,9.74,0,0,1,27,40.49l-2.84-2.84a1.1,1.1,0,0,1,0-1.59l1.59-1.59a1.09,1.09,0,0,1,1.59,0l2.84,2.84a5,5,0,1,0,7-7l-2.84-2.84a1.1,1.1,0,0,1,0-1.59l1.59-1.59a1.1,1.1,0,0,1,1.59,0l2.84,2.84a9.56,9.56,0,0,1,2.84,6.82,9.41,9.41,0,0,1-9.44,9.44M23.21,24.81l1.59-1.59a1.09,1.09,0,0,1,1.59,0l7.5,7.5a1.09,1.09,0,0,1,0,1.59L32.3,33.9a1.09,1.09,0,0,1-1.59,0l-7.5-7.5a1.09,1.09,0,0,1,0-1.59m-0.57,6.48-1.59,1.59a1.1,1.1,0,0,1-1.59,0L16.62,30a9.56,9.56,0,0,1,6.71-16.37,9.72,9.72,0,0,1,6.82,2.84L33,19.35a1.09,1.09,0,0,1,0,1.59L31.4,22.53a1.1,1.1,0,0,1-1.6,0L27,19.69a5,5,0,0,0-3.52-1.48,5,5,0,0,0-5,5,5,5,0,0,0,1.48,3.52l2.84,2.84a1.81,1.81,0,0,1-.11,1.7M28.5,0A28.5,28.5,0,1,0,57,28.5,28.5,28.5,0,0,0,28.5,0"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
BIN
static/src/lca2017/images/wineglass_bg.jpg
Executable file
After Width: | Height: | Size: 11 MiB |
BIN
static/src/lca2017/images/wrest-point_bg.jpg
Executable file
After Width: | Height: | Size: 2.2 MiB |
183
static/src/lca2017/js/app.js
Executable file
|
@ -0,0 +1,183 @@
|
|||
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
var u = require('./includes/utils');
|
||||
|
||||
var debug = function debug(msg) {
|
||||
return console.log(msg);
|
||||
};
|
||||
|
||||
var setupTabs = require('./components/tabbed-panel');
|
||||
|
||||
u.documentReady(function () {
|
||||
if (document.querySelector('[data-tab-control]')) {
|
||||
setupTabs();
|
||||
}
|
||||
|
||||
var menuOpener = document.querySelector('[data-menu-opener]');
|
||||
u.addEventListener(menuOpener, 'click', function (e) {
|
||||
e.preventDefault();
|
||||
u.toggleClass(this, 'is-active');
|
||||
u.toggleClass(document.querySelector('[data-menu]'), 'is-active');
|
||||
});
|
||||
});
|
||||
|
||||
},{"./components/tabbed-panel":2,"./includes/utils":3}],2:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
var u = require('../includes/utils');
|
||||
|
||||
function setupTabs() {
|
||||
var elements = document.querySelectorAll('[data-tab-control]');
|
||||
|
||||
for (var x = 0; x < elements.length; x++) {
|
||||
u.addEventListener(elements[x], 'click', tabClickhandler);
|
||||
}
|
||||
//Activate the first
|
||||
var event = document.createEvent('Events');
|
||||
event.initEvent('click', true, false);
|
||||
elements[0].dispatchEvent(event);
|
||||
}
|
||||
|
||||
function tabClickhandler(e) {
|
||||
e.preventDefault();
|
||||
var active = document.querySelectorAll('[data-tab-control].is-active, [data-tab-content].is-active');
|
||||
if (active) {
|
||||
for (var y = 0; y < active.length; y++) {
|
||||
u.removeClass(active[y], 'is-active');
|
||||
}
|
||||
}
|
||||
u.addClass(this, 'is-active');
|
||||
var targetData = this.dataset.tabControl;
|
||||
var targetContent = document.querySelectorAll('[data-tab-content="' + targetData + '"]');
|
||||
for (var z = 0; z < targetContent.length; z++) {
|
||||
u.addClass(targetContent[z], 'is-active');
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = setupTabs;
|
||||
|
||||
},{"../includes/utils":3}],3:[function(require,module,exports){
|
||||
"use strict";
|
||||
|
||||
module.exports = {
|
||||
getRandomInRange: getRandomInRange,
|
||||
getAnchorTarget: getAnchorTarget,
|
||||
documentReady: documentReady,
|
||||
addClass: addClass,
|
||||
hasClass: hasClass,
|
||||
removeClass: removeClass,
|
||||
toggleClass: toggleClass,
|
||||
addEventListener: addEventListener,
|
||||
getUrl: getUrl
|
||||
};
|
||||
|
||||
function getRandomInRange(from, to) {
|
||||
return (Math.random() * (to - from) + from).toFixed(0) * 1;
|
||||
}
|
||||
|
||||
function getAnchorTarget(link) {
|
||||
var id = link.hash.replace("#", "");
|
||||
return document.getElementById(id) || null;
|
||||
}
|
||||
|
||||
function addClass(element, className) {
|
||||
if (element instanceof SVGElement) {
|
||||
element.setAttribute('class', element.getAttribute('class') + ' ' + className);
|
||||
} else {
|
||||
if (element.classList) {
|
||||
element.classList.add(className);
|
||||
} else {
|
||||
element.className += ' ' + className;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function removeClass(element, className) {
|
||||
if (element instanceof SVGElement) {
|
||||
var updatedClassListString = element.getAttribute('class').replace(new RegExp('(\\s|^)' + className + '(\\s|$)', 'g'), '$2');
|
||||
element.setAttribute('class', updatedClassListString);
|
||||
} else {
|
||||
if (element.classList) {
|
||||
element.classList.remove(className);
|
||||
} else {
|
||||
var classes = element.className.split(' ');
|
||||
var existingIndex = classes.indexOf(className);
|
||||
|
||||
if (existingIndex >= 0) {
|
||||
classes.splice(existingIndex, 1);
|
||||
}
|
||||
|
||||
element.className = classes.join(' ');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function hasClass(element, className) {
|
||||
if (element instanceof SVGElement) {
|
||||
return new RegExp('(\\s|^)' + className + '(\\s|$)').test(element.getAttribute('class'));
|
||||
} else {
|
||||
if (element.classList) {
|
||||
return element.classList.contains(className);
|
||||
} else {
|
||||
return element.className.indexOf(className) !== -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function toggleClass(element, className) {
|
||||
if (element.classList) {
|
||||
element.classList.toggle(className);
|
||||
} else {
|
||||
var classes = element.className.split(' ');
|
||||
var existingIndex = classes.indexOf(className);
|
||||
|
||||
if (existingIndex >= 0) {
|
||||
classes.splice(existingIndex, 1);
|
||||
} else {
|
||||
classes.push(className);
|
||||
}
|
||||
|
||||
element.className = classes.join(' ');
|
||||
}
|
||||
}
|
||||
|
||||
function addEventListener(el, eventName, handler) {
|
||||
if (el.addEventListener) {
|
||||
el.addEventListener(eventName, handler);
|
||||
} else {
|
||||
el.attachEvent('on' + eventName, function () {
|
||||
handler.call(el);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function getUrl(path) {
|
||||
if (!window.location.origin) {
|
||||
window.location.origin = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : '');
|
||||
}
|
||||
|
||||
if (path.indexOf('./') === 0) {
|
||||
path = path.slice(1); // Remove the .
|
||||
var existingPath = window.location.pathname || '';
|
||||
return window.location.origin + existingPath + path;
|
||||
} else if (path) {
|
||||
return window.location.origin + path;
|
||||
} else {
|
||||
return window.location.origin + window.location.pathname;
|
||||
}
|
||||
}
|
||||
|
||||
function documentReady(fn) {
|
||||
if (document.readyState != 'loading') {
|
||||
fn();
|
||||
} else if (document.addEventListener) {
|
||||
document.addEventListener('DOMContentLoaded', fn);
|
||||
} else {
|
||||
document.attachEvent('onreadystatechange', function () {
|
||||
if (document.readyState != 'loading') fn();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
},{}]},{},[1]);
|