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,15 +18,6 @@ from wagtail.wagtailadmin.edit_handlers import StreamFieldPanel | ||||||
| from wagtail.wagtailsearch import index | from wagtail.wagtailsearch import index | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class HomePage(Page): |  | ||||||
| 
 |  | ||||||
|     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_ANTARCTICA = "antarctica.svg" | ILLUSTRATION_ANTARCTICA = "antarctica.svg" | ||||||
| ILLUSTRATION_BRIDGE = "bridge.svg" | ILLUSTRATION_BRIDGE = "bridge.svg" | ||||||
| ILLUSTRATION_CASINO = "casino.svg" | ILLUSTRATION_CASINO = "casino.svg" | ||||||
|  | @ -51,40 +42,47 @@ class HomePage(Page): | ||||||
|     (ILLUSTRATION_WINEGLASS, "Wineglass"), |     (ILLUSTRATION_WINEGLASS, "Wineglass"), | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|     EXTERNAL_LINK_TWITTER = "twitter.svg" | 
 | ||||||
|     EXTERNAL_LINK_FACEBOOK = "facebook.svg" | class BasicContentBlock(blocks.StructBlock): | ||||||
|     EXTERNAL_LINK_LINKEDIN = "linkedin.svg" | 
 | ||||||
|     EXTERNAL_LINK_GENERIC = "generic.svg" |     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"), | ||||||
|  |     ) | ||||||
|  | 
 | ||||||
|  |     EXTERNAL_LINK_TWITTER = "twitter" | ||||||
|  |     EXTERNAL_LINK_GENERIC = "generic" | ||||||
| 
 | 
 | ||||||
|     EXTERNAL_LINK_TYPES = ( |     EXTERNAL_LINK_TYPES = ( | ||||||
|         (EXTERNAL_LINK_TWITTER, "Twitter"), |         (EXTERNAL_LINK_TWITTER, "Twitter"), | ||||||
|         (EXTERNAL_LINK_FACEBOOK, "Facebook"), |  | ||||||
|         (EXTERNAL_LINK_LINKEDIN, "LinkedIn"), |  | ||||||
|         (EXTERNAL_LINK_GENERIC, "Generic URL"), |         (EXTERNAL_LINK_GENERIC, "Generic URL"), | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
|     body = StreamField([ |     panel_type = blocks.ChoiceBlock( | ||||||
|         ("basic_content", blocks.StructBlock([ |         choices=PANEL_TYPES, | ||||||
|             ("type", blocks.ChoiceBlock( |  | ||||||
|                 choices=BASIC_CONTENT_TYPES, |  | ||||||
|         required=True, |         required=True, | ||||||
|             )), |     ) | ||||||
|             ("heading", blocks.CharBlock(required=True)), |     heading = blocks.CharBlock(required=True) | ||||||
|             ("inset_illustration", blocks.ChoiceBlock( |     inset_illustration = blocks.ChoiceBlock( | ||||||
|         choices=ILLUSTRATION_TYPES, |         choices=ILLUSTRATION_TYPES, | ||||||
|         required=True, |         required=True, | ||||||
|             )), |     ) | ||||||
|             ("background_image", imageblocks.ImageChooserBlock( |     background_image = imageblocks.ImageChooserBlock( | ||||||
|         required=False, |         required=False, | ||||||
|         help_text="This is used as the background image of a " |         help_text="This is used as the background image of a " | ||||||
|                   "blue-left block. It's not used for white-right." |                   "blue-left block. It's not used for white-right." | ||||||
|             )), |     ) | ||||||
|             ("body", blocks.RichTextBlock(required=True)), |     body = blocks.RichTextBlock(required=True) | ||||||
|             ("link", blocks.StructBlock([ |     link = blocks.StructBlock([ | ||||||
|         ("page", blocks.PageChooserBlock()), |         ("page", blocks.PageChooserBlock()), | ||||||
|         ("title", blocks.CharBlock(required=True)), |         ("title", blocks.CharBlock(required=True)), | ||||||
|             ])), |     ]) | ||||||
|             ("external_links", blocks.ListBlock( |     external_links = blocks.ListBlock( | ||||||
|         blocks.StructBlock([ |         blocks.StructBlock([ | ||||||
|             ("alt", blocks.CharBlock(required=True)), |             ("alt", blocks.CharBlock(required=True)), | ||||||
|             ("icon", blocks.ChoiceBlock( |             ("icon", blocks.ChoiceBlock( | ||||||
|  | @ -93,8 +91,12 @@ class HomePage(Page): | ||||||
|             )), |             )), | ||||||
|             ("url", blocks.URLBlock(required=True) |             ("url", blocks.URLBlock(required=True) | ||||||
|         )]) |         )]) | ||||||
|             )), |     ) | ||||||
|         ])), | 
 | ||||||
|  | class HomePage(Page): | ||||||
|  | 
 | ||||||
|  |     body = StreamField([ | ||||||
|  |         ("basic_content", BasicContentBlock()), | ||||||
|         # TODO: keynotes |         # TODO: keynotes | ||||||
|         # TODO: other bits |         # TODO: other bits | ||||||
|     ]) |     ]) | ||||||
|  | @ -112,7 +114,7 @@ class AbstractContentPage(Page): | ||||||
| 
 | 
 | ||||||
|     intro = models.CharField(max_length=250) |     intro = models.CharField(max_length=250) | ||||||
|     body = RichTextField(blank=True) |     body = RichTextField(blank=True) | ||||||
|     main_image = models.ForeignKey( |     background_image = models.ForeignKey( | ||||||
|         'wagtailimages.Image', |         'wagtailimages.Image', | ||||||
|         null=True, |         null=True, | ||||||
|         blank=True, |         blank=True, | ||||||
|  | @ -126,7 +128,7 @@ class AbstractContentPage(Page): | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
|     content_panels = Page.content_panels + [ |     content_panels = Page.content_panels + [ | ||||||
|         ImageChooserPanel('main_image'), |         ImageChooserPanel('background_image'), | ||||||
|         FieldPanel('intro'), |         FieldPanel('intro'), | ||||||
|         FieldPanel('body', classname="full") |         FieldPanel('body', classname="full") | ||||||
|     ] |     ] | ||||||
|  | @ -134,50 +136,47 @@ class AbstractContentPage(Page): | ||||||
| 
 | 
 | ||||||
| class ContentPage(AbstractContentPage): | class ContentPage(AbstractContentPage): | ||||||
| 
 | 
 | ||||||
|     IMAGE_DISPLAY_FEATURE = 1 |     inset_illustration = models.CharField( | ||||||
|     IMAGE_DISPLAY_VIGNETTE = 2 |         choices=ILLUSTRATION_TYPES, | ||||||
| 
 |         max_length=256, | ||||||
|     IMAGE_DISPLAY = ( |  | ||||||
|         (IMAGE_DISPLAY_FEATURE, "Banner with background feature image"), |  | ||||||
|         (IMAGE_DISPLAY_VIGNETTE, "No banner, circular vignette"), |  | ||||||
|     ) |     ) | ||||||
| 
 | 
 | ||||||
|     image_display = models.IntegerField( |     content_panels = AbstractContentPage.content_panels + [ | ||||||
|         choices=IMAGE_DISPLAY, |         FieldPanel('inset_illustration') | ||||||
|     ) |     ] | ||||||
| 
 |  | ||||||
|     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 |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # News pages | # News pages | ||||||
| 
 | 
 | ||||||
| class NewsIndexPage(Page): | class NewsIndexPage(AbstractContentPage): | ||||||
|     intro = RichTextField(blank=True) | 
 | ||||||
|  |     def child_pages(self): | ||||||
|  |         return NewsPage.objects.live().child_of(self).specific().order_by("-date") | ||||||
| 
 | 
 | ||||||
|     subpage_types = [ |     subpage_types = [ | ||||||
|         "NewsPage", |         "NewsPage", | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
|     content_panels = Page.content_panels + [ |     content_panels = AbstractContentPage.content_panels | ||||||
|         FieldPanel('intro', classname="full"), |  | ||||||
|     ] |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class NewsPage(AbstractContentPage): | class NewsPage(AbstractContentPage): | ||||||
|  | 
 | ||||||
|     date = models.DateField("Post date") |     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 = [ |     parent_page_types = [ | ||||||
|         NewsIndexPage, |         NewsIndexPage, | ||||||
|     ] |     ] | ||||||
| 
 | 
 | ||||||
|     content_panels = AbstractContentPage.content_panels + [ |     content_panels = AbstractContentPage.content_panels + [ | ||||||
|         FieldPanel('date'), |         FieldPanel('date'), | ||||||
|  |         ImageChooserPanel('portrait_image'), | ||||||
|     ] |     ] | ||||||
|  |  | ||||||
|  | @ -1,7 +1,6 @@ | ||||||
| {% extends "site_base.html" %} | {% extends "site_base.html" %} | ||||||
| 
 | {% load staticfiles %} | ||||||
| {% load wagtailcore_tags %} | {% load wagtailcore_tags %} | ||||||
| {% load wagtailimages_tags %} |  | ||||||
| 
 | 
 | ||||||
| {% load sitetree %} | {% load sitetree %} | ||||||
| {% load i18n %} | {% load i18n %} | ||||||
|  | @ -12,14 +11,11 @@ | ||||||
| 
 | 
 | ||||||
| {% block body %} | {% block body %} | ||||||
|   {% block content %} |   {% block content %} | ||||||
|       <h1>{{ page.title }}</h1> |     {% include "cms_pages/content_page_header_panel.html" %} | ||||||
| 
 |     <div class="l-content-page"> | ||||||
|       {% if page.main_image %} |       <div class="l-content-page--richtext"> | ||||||
|           {% image page.main_image width-400 %} |  | ||||||
|       {% endif %} |  | ||||||
| 
 |  | ||||||
|       <div class="intro">{{ page.intro }}</div> |  | ||||||
| 
 |  | ||||||
|         {{ page.body|richtext }} |         {{ page.body|richtext }} | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|   {% endblock %} |   {% endblock %} | ||||||
| {% 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 head_title %}{% trans "Welcome" %}{% endblock %} | ||||||
| 
 | 
 | ||||||
| {% block body %} | {% block body %} | ||||||
|  | 
 | ||||||
| {{ page.body }} | {{ page.body }} | ||||||
|  | 
 | ||||||
| {% endblock %} | {% 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" %} | {% extends "site_base.html" %} | ||||||
| 
 | 
 | ||||||
|  | {% load staticfiles %} | ||||||
| {% load wagtailcore_tags %} | {% load wagtailcore_tags %} | ||||||
| {% load wagtailimages_tags %} | {% load wagtailimages_tags %} | ||||||
| 
 | 
 | ||||||
|  | @ -12,24 +13,28 @@ | ||||||
| 
 | 
 | ||||||
| {% block body %} | {% block body %} | ||||||
|   {% block content %} |   {% block content %} | ||||||
|       <h1>{{ page.title }}</h1> |     {% include "cms_pages/content_page_header_panel.html" %} | ||||||
| 
 | 
 | ||||||
|       {% if page.main_image %} |     {% if page.child_pages %} | ||||||
|           {% image page.main_image width-400 %} |       {% for item in page.child_pages %} | ||||||
|       {% endif %} |         <div class="panel panel__compact"> | ||||||
| 
 |           <div class="panel--content"> | ||||||
|       <p class="meta">{{ page.date }}</p> |             <div class="panel--1-3"> | ||||||
| 
 |               <div class="portrait"> | ||||||
|       <div class="intro">{{ page.intro }}</div> |                 {% image item.portrait_image width-640 as portrait_image %} | ||||||
| 
 |                 <div style="background-image: url('{{ portrait_image.url }}');" class="portrait--img"></div> | ||||||
|       {% if page.get_children.specific %} |               </div> | ||||||
|           <ul> |             </div> | ||||||
|               {% for item in page.get_children.specific %} |             <div class="panel--2-3"> | ||||||
|                   <li><a href="{{ item.url }}">{{ item.title }}</a></li> |               <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 %} |       {% endfor %} | ||||||
|           </ul> |       <div class="panel panel__compact"></div> | ||||||
|     {% endif %} |     {% endif %} | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
|   {% endblock %} |   {% endblock %} | ||||||
| {% endblock %} | {% endblock %} | ||||||
|  |  | ||||||
|  | @ -12,16 +12,12 @@ | ||||||
| 
 | 
 | ||||||
| {% block body %} | {% block body %} | ||||||
|   {% block content %} |   {% block content %} | ||||||
|       <h1>{{ page.title }}</h1> |     {% include "cms_pages/content_page_header_panel.html" %} | ||||||
| 
 |     <div class="l-content-page"> | ||||||
|       {% if page.main_image %} |       <div class="l-content-page--richtext"> | ||||||
|           {% image page.main_image width-400 %} |         <p><em>{{ page.date|date:"j F Y" }}</em></p> | ||||||
|       {% endif %} |  | ||||||
| 
 |  | ||||||
|       <p class="meta">{{ page.date }}</p> |  | ||||||
| 
 |  | ||||||
|       <div class="intro">{{ page.intro }}</div> |  | ||||||
| 
 |  | ||||||
|         {{ page.body|richtext }} |         {{ page.body|richtext }} | ||||||
|  |       </div> | ||||||
|  |     </div> | ||||||
|   {% endblock %} |   {% endblock %} | ||||||
| {% endblock %} | {% endblock %} | ||||||
|  |  | ||||||
							
								
								
									
										105
									
								
								pinaxcon/templates/site_base.html
									
										
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						|  | @ -1,57 +1,100 @@ | ||||||
| {% extends "theme_bootstrap/base.html" %} |  | ||||||
| 
 |  | ||||||
| {% load staticfiles %} | {% load staticfiles %} | ||||||
| {% load metron_tags %} | {% load metron_tags %} | ||||||
| {% load i18n %} | {% load i18n %} | ||||||
| {% load sitetree %} | {% load sitetree %} | ||||||
| 
 | {# <!-- https://gist.github.com/geedmo/5682742--> #} | ||||||
| 
 | <!DOCTYPE html> | ||||||
| {% block styles %} | <html lang="en" class="no-js"> | ||||||
|     {% include "_styles.html" %} |   <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 %} | {% endblock %} | ||||||
| 
 |     <title>{% block head_title_base %}{% if SITE_NAME %}{{ SITE_NAME }} | {% endif %}{% block head_title %}{% endblock %}{% endblock %}</title> | ||||||
| 
 | {% block styles %} | ||||||
|  |     <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 %} | ||||||
|  |     <!--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_base %} | ||||||
|             {% block extra_head %}{% endblock %} |             {% block extra_head %}{% endblock %} | ||||||
|         {% 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 %} |     {% block nav %} | ||||||
|     {% sitetree_menu from "main" include "trunk" template "sitetree/menu_bootstrap3.html" %} |         {% 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 %} | {% endblock %} | ||||||
| 
 | 
 | ||||||
| {% block body_base %} | {% block body_base %} | ||||||
|     <section id="content_body"> |     <main role="main"> | ||||||
|         <div class="container"> |  | ||||||
|             {% include "_messages.html" %} |  | ||||||
|             <div class="row"> |  | ||||||
|                 <div class="col-md-9"> |  | ||||||
|     {% block body %} |     {% block body %} | ||||||
|  |       {% block content %} | ||||||
|  |       {% endblock %} | ||||||
|     {% endblock %} |     {% endblock %} | ||||||
|         </div> |         </div> | ||||||
|                 <div class="col-md-3"> |  | ||||||
|                     {% block sidebar %} |  | ||||||
|                         {% include "_default_sidebar.html" %} |  | ||||||
|                     {% endblock %} |  | ||||||
|                 </div> |  | ||||||
|             </div> |  | ||||||
|         </div> |  | ||||||
|     </section> |  | ||||||
| {% endblock %} | {% endblock %} | ||||||
| 
 | 
 | ||||||
| 
 | {% 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 %} |         {% block footer %} | ||||||
|     {% include "_footer.html" %} |         <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 %} |         {% endblock %} | ||||||
| 
 |       </footer> | ||||||
| 
 | {% endblock %} | ||||||
|  |     </main> | ||||||
|     {% block scripts %} |     {% block scripts %} | ||||||
|     {% include "_scripts.html" %} |     <script src="{% static 'lca2017/js/app.js' %}"></script> | ||||||
|     <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js"></script> |  | ||||||
|     {% block extra_script %}{% endblock %} |     {% block extra_script %}{% endblock %} | ||||||
|     {% endblock %} |     {% endblock %} | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| {% block extra_body_base %} | {% block extra_body_base %} | ||||||
|     {% analytics %} |     {% analytics %} | ||||||
|     {% block extra_body %}{% endblock %} |     {% block extra_body %}{% endblock %} | ||||||
| {% 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]); | ||||||
 Christopher Neugebauer
						Christopher Neugebauer