doctype html

html(data-ng-app='application')
    head
        meta(charset='UTF-8')
        title Angular for GLP

        script(src='/scripts/application.js')
        script(src='/scripts/partials.js')

    body(data-application-root)
        There was an error initializing the application. :(

Add some helpful initial content.

doctype html

html(data-ng-app='application')
  head
    meta(charset='UTF-8')
    title Angular for GLP

    script(src='/scripts/application.js')
    script(src='/scripts/partials.js')

    body(data-application-root)
      h1. Failure Loading Application

      div
        p.
          This application requires that you JavaScript. If you do not know
          what that means, then it may be time to upgrade your browser. Here
          are some helpful links to get you up-to-date:

        ul
          li: a(href="https://getfirefox.com") Firefox
          li: a(href="https://google.com/chrome/") Chrome

          //- Thanks for the massive URL, Microsoft. I didn't want my
          //- 79-character lines, anyway...
          li: a(
              href="http://windows.microsoft.com/en-US/internet-explorer/download-ie"
            ) Internet Explorer


- var partner = artwork.partner
- var contacts = helpers.partner_stub.contacts(partner.locations)
- var location = helpers.partner_stub.location(partner.locations)
- var artistIds = helpers.partner_stub.artistIds(artwork.artists)

unless artwork.is_in_auction
  .artwork-partner-stub( class='js-artwork-partner-stub' )
    if artwork.collecting_institution
      .artwork-partner-stub__name
        = artwork.collecting_institution

    else
      if !artwork.is_inquireable
        hr

      //- Default view
      h3.artwork-partner-stub__label
        if artwork.is_for_sale
          | Offered by
        else
          = partner.type

      a.artwork-partner-stub__name( href= (partner.is_linkable ? partner.href : undefined) )
        = partner.name
        if location
          = ', '
          span= location

      if artwork.is_inquireable && contacts && contacts.length
        .artwork-partner-stub__phone
          a(
            class='js-artwork-partner-stub-inquire-via-phone analytics-artwork-show-phone-number garamond-s-body'
            data-partner_id= partner._id
            data-artwork_id= artwork._id
            data-artist_ids= artistIds
          )
            | Inquire via phone

Send context and user_id so we can track drop offrate for signup

- var partner = artwork.partner
- var contacts = helpers.partner_stub.contacts(partner.locations)
- var location = helpers.partner_stub.location(partner.locations)
- var artistIds = helpers.partner_stub.artistIds(artwork.artists)

unless artwork.is_in_auction
  .artwork-partner-stub( class='js-artwork-partner-stub' )
    if artwork.collecting_institution
      .artwork-partner-stub__name
        = artwork.collecting_institution

    else
      if !artwork.is_inquireable
        hr

      //- Default view
      h3.artwork-partner-stub__label
        if artwork.is_for_sale
          | Offered by
        else
          = partner.type

      a.artwork-partner-stub__name( href= (partner.is_linkable ? partner.href : undefined) )
        = partner.name
        if location
          = ', '
          span= location

      if artwork.is_inquireable && contacts && contacts.length
        .artwork-partner-stub__phone
          a(
            class='js-artwork-partner-stub-inquire-via-phone analytics-artwork-show-phone-number garamond-s-body'
            data-partner_id= partner._id
            data-artwork_id= artwork._id
            data-artist_ids= artistIds
            data-user_id=(sd.CURRENT_USER && sd.CURRENT_USER.id )
            data-context='show phone number'
          )
            | Inquire via phone


mixin sectionLink(section)
  if section
    - var href = '/diff/' + encodeURIComponent(section.path)
    a(href=href)
      | #{section.headingText}
      span.icons
        if section.whatwg
          img.icon(alt='available at HTML Standard', src='/images/whatwg.svg')
        if section.w3c
          img.icon(alt='available at HTML 5.1 Editor\'s Draft', src='/images/w3c.svg')
  else
    | None

mixin sectionLegends
  div.legends
    p Legends:
    dl
      dt
       img.icon(alt='available at HTML Standard', src='/images/whatwg.svg')
      dd
       p A section available at HTML Standard.
      dt
       img.icon(alt='available at HTML 5.1 Editor\'s Draft', src='/images/w3c.svg')
      dd
       p A section available at HTML 5.1 Editor's Draft.

Fix encoding of section link

mixin sectionLink(section)
  if section
    - var href = '/diff/' + section.path.split('/').map(encodeURIComponent).join('/');
    a(href=href)
      | #{section.headingText}
      span.icons
        if section.whatwg
          img.icon(alt='available at HTML Standard', src='/images/whatwg.svg')
        if section.w3c
          img.icon(alt='available at HTML 5.1 Editor\'s Draft', src='/images/w3c.svg')
  else
    | None

mixin sectionLegends
  div.legends
    p Legends:
    dl
      dt
       img.icon(alt='available at HTML Standard', src='/images/whatwg.svg')
      dd
       p A section available at HTML Standard.
      dt
       img.icon(alt='available at HTML 5.1 Editor\'s Draft', src='/images/w3c.svg')
      dd
       p A section available at HTML 5.1 Editor's Draft.


extends ../../layouts/default

block intro
	.container: .row: .col-md-6.col-md-offset-3
		.page-header
			h1 Forgotten your password?
			p.lead No problem, we'll send you a link to reset it.

block content
	.row: .col-md-6.col-md-offset-3
		form(method='post', novalidate).forgot-password
			input(type='hidden', name='action', value='send-password')
			.form-group
				label Email
				input(type='email', name='email', placeholder='').form-control
			button(type='submit').btn.btn-primary.btn-lg Send
			a(href='/signin').btn.btn-link Sign in

block js
	script.
		var $form = $('.forgot-password');

		var $submit = $form.find('.btn');

		$submit.click( function() {
			$submit.addClass( 'disabled' );
		});

		$form.find("input[type!='hidden']").first().focus();

Fix layout of forgot password view

extends ../../layouts/session

//- block intro
	.page-header
		h1 Forgotten your password?
		p.lead No problem, we'll send you a link to reset it.

block content
	form(method='post', novalidate).forgot-password
		input(type='hidden', name='action', value='send-password')
		p.signin-form-heading Reset your password
		.form-group
			label.sr-only Email
			input(type='email', name='email', placeholder='Email').form-control
		button(type='submit').btn.btn-block.btn-submit Reset
	p.text-center
		a(href='/signin').btn.btn-link Sign in

block js
	script.
		var $form = $('.forgot-password');

		var $submit = $form.find('.btn-submit');

		$submit.click( function() {
			$submit.addClass( 'disabled' );
		});

		$form.find("input[type!='hidden']").first().focus();


extends /_layout.jade

block vars
  - var title = 'SEO Banner'

block content
  article
    :md
      # SEO Banner

    .grid-fluid.playground
      .row
        .col.xs
          +exampleWithCode
            include _seo-banner
      .row
        .col.xs
          div.playground-control
            label(for="seo_title") SEO Title:
              input#seo_title.playground-item(
                data-target=".seo-banner_title"
                type="text"
                value = "Pillows & Cushions"
              )
        .col.xs
          div.playground-control
            label(for="seo_copy") SEO Copy:
              input#seo_copy.playground-item(
                data-target=".seo-banner_copy"
                type="text"
                value = "Have a soft spot for comfy, cushiony throw pillows? We do, too. With our selection of decorative pillows in textured, embellished, solid and patterned designs, adding the final flourish to your look is simple. And don’t forget about outdoor pillows, featuring UV-treated fabric. Toss in a new pillow or two today."
              )

block scripts
  script.
    rb.launchPlayground();

Copy Code on wrong portion of SEO Banner

extends /_layout.jade

block vars
  - var title = 'SEO Banner'

block content
  article
    :md
      # SEO Banner

    .grid-fluid.playground
      .row
        .col.xs
          +exampleWithCode
            div.copyable-inner
              include _seo-banner
      .row
        .col.xs
          div.playground-control
            label(for="seo_title") SEO Title:
              input#seo_title.playground-item(
                data-target=".seo-banner_title"
                type="text"
                value = "Pillows & Cushions"
              )
        .col.xs
          div.playground-control
            label(for="seo_copy") SEO Copy:
              input#seo_copy.playground-item(
                data-target=".seo-banner_copy"
                type="text"
                value = "Have a soft spot for comfy, cushiony throw pillows? We do, too. With our selection of decorative pillows in textured, embellished, solid and patterned designs, adding the final flourish to your look is simple. And don’t forget about outdoor pillows, featuring UV-treated fabric. Toss in a new pillow or two today."
              )

block scripts
  script.
    rb.launchPlayground();


extends /src/includes/layout.jade

include /src/includes/post.jade

block head
	title #{file.title} - strugee.net
	link(rel='pingback', href='https://webmention.io/strugee.net/xmlrpc')
	link(rel='webmention', href='https://webmention.io/strugee.net/webmention')
	script(src='/js/webmentions.js', type='text/javascript')

block content
	+renderPost(file, false)

	hr
	p#webmention-replies-header WebMention replies

	div#webmentions
	noscript
		p Couldn't load WebMentions because you turned your JavaScript off. Sorry about that!

Add a missing EOF newline


//- -*- tab-width: 2 -*-
extends includes/layout

block vars
  - var ngAppDef = 'Home'

append scripts
  script(src='/javascripts/home.js')

block location
  a(href='/home' style="color:#333333") Home

block content
  .row
    .col-md-offset-2.col-md-8
      a(href='/line') Line
      a(href='/admin') Admin

Test to see if push to server works

//- -*- tab-width: 2 -*-
extends includes/layout

block vars
  - var ngAppDef = 'Home'

append scripts
  script(src='/javascripts/home.js')

block location
  a(href='/home' style="color:#333333") Home

block content
  .row
    .col-md-offset-2.col-md-8
      a(href='/line') Line
			a(href='/maze') Maze
      a(href='/admin') Admin


extends layout

block content
  each article in articles
    - var content = article.html.replace(/<[^>]+>/g, '')
    article.content-article
      header.content-header
        small.header-metadata
          span.timestamp= moment(article.date).format('MMMM D, YYYY')
        h2.content-title
          a(href=article.url)= article.title
      section.content!= content.substr(0, 250 + content.substr(250).search(/\s/)) + '...'
  nav.navigation.cf
    if prevPage
      a.btn.navigation-next(href=prevPage.url)
        | Newer
        i.icon-right-dir
    if nextPage
      a.btn.navigation-prev(href=nextPage.url)
        i.icon-left-dir
        |   Older

Adjust article summary to look for non-word instead of whitespace.

extends layout

block content
  each article in articles
    - var content = article.html.replace(/<[^>]+>/g, '')
    article.content-article
      header.content-header
        small.header-metadata
          span.timestamp= moment(article.date).format('MMMM D, YYYY')
        h2.content-title
          a(href=article.url)= article.title
      section.content!= content.substr(0, 250 + content.substr(250).search(/\W/)) + '...'
  nav.navigation.cf
    if prevPage
      a.btn.navigation-next(href=prevPage.url)
        | Newer
        i.icon-right-dir
    if nextPage
      a.btn.navigation-prev(href=nextPage.url)
        i.icon-left-dir
        |   Older


extends layout

block content
  h1= title
  div.params
    form
      input.thread-id(type='text' value='300559876768618')
      input.submit-id(type='button' value='go!')
  div.container

Add field for API token

extends layout

block content
  h1= title
  div.params
    form
      input.thread-id(type='text' value='300559876768618')
      input.token(type='text' value='CAACEdEose0cBACoBvTcZChqfoSNFFUa8uJ6aP9MZAAZAyUSYexSX84Iy4yXefHfurowHlm5fvc7BZBWG60i6nD7gxUpyONe4DzhpiHZCAan3Ni0oDZA6eyjZBg9IgrYbmYHZBRJYmIpTVPWUFqjB6NFiZCcZCEzt7eMqaiLnDOJmaJs6ZCfudsFLSs917sxWSyAa60ZD')
      input.submit-id(type='button' value='go!')
  div.container


- if (self.is_member)
  ul.nav.pull-right
    li.dropdown
      a.dropdown-toggle.icon-user(href='#', data-toggle='dropdown')
        | #{self.user_name}
        b.caret
      ul.dropdown-menu
        li: a(href='#') Admin
        li.divider
        li: a(href=self.link_to('users.profile'))= self.t('profile')
        li: a.icon-check(href='#') No images (fast)
        li.divider
        li: a(href=self.link_to('users.auth.logout'))= self.t('logout')
- else
  ul.nav.pull-right
    li: a(href=self.link_to('users.auth.login.show'))= self.t('login')
    li: a(href=self.link_to('users.auth.register.show'))= self.t('register')

Add `data-api-path` attributes to login/register buttons.

- if (self.is_member)
  ul.nav.pull-right
    li.dropdown
      a.dropdown-toggle.icon-user(href='#', data-toggle='dropdown')
        | #{self.user_name}
        b.caret
      ul.dropdown-menu
        li: a(href='#') Admin
        li.divider
        li: a(href=self.link_to('users.profile'))= self.t('profile')
        li: a.icon-check(href='#') No images (fast)
        li.divider
        li: a(href=self.link_to('users.auth.logout'))= self.t('logout')
- else
  ul.nav.pull-right
    li(data-api-path='users.auth.login')
      a(href=self.link_to('users.auth.login.show'))= self.t('login')

    li(data-api-path='users.auth.register')
      a(href=self.link_to('users.auth.register.show'))= self.t('register')


extends layouts/default

block content
  .ui.grid.stackable
    .row
      .four.wide.column
        include partials/topic
      .twelve.wide.column

Add and improve community engagement

extends layouts/default

block content
  .ui.grid.stackable
    .row
      .four.wide.column
        include partials/topic
      .twelve.wide.column
        if (!topic.purpose)
          .ui.warning.icon.message
            i.icon.warning.sign
            .content
              .header
                small(style="color: rgba(0,0,0,.4);") #
                | #{topic.name} is missing a description!
              p Can you come up with a suggestion?
        pre
          code.json.
            #{JSON.stringify(topic, null, '  ')}


extends layout
extends navbar
block body
  #root(data-bind='template: {name: "itemTemplate", foreach: items}')

  script(type='text/html', id='itemTemplate')
    .well.well-small.pull-left.drop-shadow
      .pull-left: span.muted(data-bind='text: name')
      .pull-right.btn-group
        button.btn.btn-mini.dropdown-toggle(data-toggle='dropdown')
          i.icon-cog
        ul.dropdown-menu
          li.nav-header Actions
          li.divider
          // ko foreach: actions
          li: a(tabindex='-1', href='#', data-bind='click: action.bind($data, $parent), text: name')
          // /ko
      .clear-right

      .drop-target(data-bind='sortable: nodes')
        .btn-group
          button.btn.btn-small.popper(data-content='This is a test', data-title='Title', data-bind='text: name, css: $root.statusButton(status())')
          button.btn.btn-small.dropdown-toggle(data-bind='css: $root.statusButton(status())', data-toggle='dropdown')
            i.icon-cog
          ul.dropdown-menu
            li.nav-header Actions
            li.divider
            // ko foreach: actions
            li: a(tabindex='-1', href='#', data-bind='click: action.bind($data, $parent), text: name')
            // /ko

      .clear-left
      div(data-bind='template: {name: "itemTemplate", foreach: children}')

Disable cogs with no actions

extends layout
extends navbar
block body
  #root(data-bind='template: {name: "itemTemplate", foreach: items}')

  script(type='text/html', id='itemTemplate')
    .well.well-small.pull-left.drop-shadow
      .pull-left: span.muted(data-bind='text: name')
      .pull-right.btn-group
        button.btn.btn-mini.dropdown-toggle(data-toggle='dropdown', data-bind='enable: actions().length')
          i.icon-cog
        ul.dropdown-menu
          li.nav-header Actions
          li.divider
          // ko foreach: actions
          li: a(tabindex='-1', href='#', data-bind='click: action.bind($data, $parent), text: name')
          // /ko
      .clear-right

      .drop-target(data-bind='sortable: nodes')
        .btn-group
          button.btn.btn-small.popper(data-content='This is a test', data-title='Title', data-bind='text: name, css: $root.statusButton(status())')
          button.btn.btn-small.dropdown-toggle(data-bind='css: $root.statusButton(status()), enable: actions().length', data-toggle='dropdown')
            i.icon-cog
          ul.dropdown-menu
            li.nav-header Actions
            li.divider
            // ko foreach: actions
            li: a(tabindex='-1', href='#', data-bind='click: action.bind($data, $parent), text: name')
            // /ko

      .clear-left
      div(data-bind='template: {name: "itemTemplate", foreach: children}')


doctype html
block var
html
  head
    meta(charset="utf-8")
    meta(http-equiv="X-UA-Compatible", content="IE=edge")
    meta(name="viewport", content="width=device-width, initial-scale=1")
    title= title

    if basePath
      base(href=basePath)

    link(rel="stylesheet", href="http://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons")

    link(rel="stylesheet", href=urlFor('static', 'styles/style.css'))
    block head

  body
    include _navbar

    if session.flash
      .container
        .alert.alert-info.fade.in(role='alert')
          button.close(type='button', data-dismiss='alert', aria-label='close')
            span(aria-hidden='true') ×
          p=session.flash
      - session.flash = null;

    block content

    include _help

    script(src=urlFor('static', 'scripts/bundle.js'))
    block script

Fix Google fonts not loaded under HTTPS.

doctype html
block var
html
  head
    meta(charset="utf-8")
    meta(http-equiv="X-UA-Compatible", content="IE=edge")
    meta(name="viewport", content="width=device-width, initial-scale=1")
    title= title

    if basePath
      base(href=basePath)

    link(rel="stylesheet", href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700|Material+Icons")

    link(rel="stylesheet", href=urlFor('static', 'styles/style.css'))
    block head

  body
    include _navbar

    if session.flash
      .container
        .alert.alert-info.fade.in(role='alert')
          button.close(type='button', data-dismiss='alert', aria-label='close')
            span(aria-hidden='true') ×
          p=session.flash
      - session.flash = null;

    block content

    include _help

    script(src=urlFor('static', 'scripts/bundle.js'))
    block script


extends layout

include mixins

block content
	#main.fullscreen
		.container

			include header

			.content(role='main', ng-view)

				.loading.
					Loading application...

			include footer

Add a spinning wheel to the initial loading screen

extends layout

include mixins

block content
	#main.fullscreen
		.container

			include header

			.content(role='main', ng-view)

				.loading
					img(src='img/loading-lite.gif')
					p Loading application...

			include footer


{% load thumbnail %}

.carousel.slide(id='featured-slider')
    .carousel-inner.featured-slider
        for featured in featured_contents
            a(href='{{ featured.content_object.get_absolute_url }}',class='item {% if forloop.first %}active{% endif %}')
                {% thumbnail featured.image "877x220" crop="top" as img %}
                img(src="{{ img.url }}",width=877,height=220,title="{{ featured.description }}",alt="{{ featured.description }}")
                {% endthumbnail %}
                span(class="carousel-caption") {{ featured.description }}
    a(class='left carousel-control',href='#featured-slider',data-slide='prev')
        span(class="icon-prev")
    a(class='right carousel-control',href='#featured-slider',data-slide='next')
        span(class="icon-next")

block scripts
  script
    $(function(){
        $("#featured-slider").carousel('cycle');
    })

Change size of featured slider

{% load thumbnail %}

.carousel.slide(id='featured-slider')
    .carousel-inner.featured-slider
        for featured in featured_contents
            a(href='{{ featured.content_object.get_absolute_url }}',class='item {% if forloop.first %}active{% endif %}')
                {% thumbnail featured.image "877x280" crop="top" as img %}
                img(src="{{ img.url }}",width=877,height=280,title="{{ featured.description }}",alt="{{ featured.description }}")
                {% endthumbnail %}
                span(class="carousel-caption") {{ featured.description }}
    a(class='left carousel-control',href='#featured-slider',data-slide='prev')
        span(class="icon-prev")
    a(class='right carousel-control',href='#featured-slider',data-slide='next')
        span(class="icon-next")

block scripts
  script
    $(function(){
        $("#featured-slider").carousel('cycle');
    })


.cv(ng-if="currentUser.LINKEDIN_ID !== null")
  .cv__cell.cv__cell--main
    .cv__header
      .cv__header--cell.cv__header--title
        h2.title__name {{ user.NAME }}
        h5.headline {{ user.HEADLINE }}
      .cv__header--cell.cv__header--img
        img.cv(src="img/CV.png")

    hr

    .cv__item
      .cv__item--cell
        p.description {{ user.SUMMARY }}
      .cv__item--cell.cv__item--small
        h1
          i.mdi.mdi-account-circle

    //- ul
      //- li(ng-repeat="skill in user.cv.skills.values")
        //- label {{ skill.skill.name }}

    .cv__links
      ul
        li
          a(href="{{ user.cv.publicProfileUrl }}" target="_blank")
            i.mdi.mdi-linkedin-box
            | LinkedIn
        li
          a(href="mailto:{{ user.cv.emailAddress }}")
            i.mdi.mdi-email
            | {{ user.cv.emailAddress }}

  aside.cv__cell.cv__aside
    img.cv__img.dashboard__img(ng-src="{{ user.PICTURE ? user.PICTURE : 'img/unknown.svg' }}")

    ul.aside__list
      li
        label
          i.mdi.mdi-email
          {{ user.cv.emailAddress }}
      li
        label
          i.mdi.mdi-map-marker-radius
          {{ user.cv.location.name }}

    hr

Check if user have SUMMARY before render

.cv(ng-if="currentUser.LINKEDIN_ID !== null")
  .cv__cell.cv__cell--main
    .cv__header
      .cv__header--cell.cv__header--title
        h2.title__name {{ user.NAME }}
        h5.headline {{ user.HEADLINE }}
      .cv__header--cell.cv__header--img
        img.cv(src="img/CV.png")

    hr

    .cv__item(ng-if='user.SUMMARY')
      .cv__item--cell
        p.description {{ user.SUMMARY }}
      .cv__item--cell.cv__item--small
        h1
          i.mdi.mdi-account-circle

    //- ul
      //- li(ng-repeat="skill in user.cv.skills.values")
        //- label {{ skill.skill.name }}

    .cv__links
      ul
        li
          a(href="{{ user.cv.publicProfileUrl }}" target="_blank")
            i.mdi.mdi-linkedin-box
            | LinkedIn
        li
          a(href="mailto:{{ user.cv.emailAddress }}")
            i.mdi.mdi-email
            | {{ user.cv.emailAddress }}

  aside.cv__cell.cv__aside
    img.cv__img.dashboard__img(ng-src="{{ user.PICTURE ? user.PICTURE : 'img/unknown.svg' }}")

    ul.aside__list
      li
        label
          i.mdi.mdi-email
          {{ user.cv.emailAddress }}
      li
        label
          i.mdi.mdi-map-marker-radius
          {{ user.cv.location.name }}

    hr


!!! 5
html(lang='en')
  head
    block head
      meta(charset='utf-8')
      title
        block title
          = locals.name
      link(rel='stylesheet', href='http://fonts.googleapis.com/css?family=Fredericka+the+Great')
      link(rel='stylesheet', href='/css/github.css')
      link(rel='stylesheet', href='/css/main.css')
  body
    header
      div.inner
        block header
          h1
            a(href=locals.url)= locals.name
          p= locals.description
    div#content
      block content
        h2 Welcome to zombocom!
    footer
      div.inner
        block footer
          p © #{ new Date().getFullYear() } #{ locals.owner }

Add feed url to blog example

!!! 5
html(lang='en')
  head
    block head
      meta(charset='utf-8')
      title
        block title
          = locals.name
      link(rel='alternate', href=locals.url+'/feed.xml', type='application/rss+xml', title=locals.description)
      link(rel='stylesheet', href='http://fonts.googleapis.com/css?family=Fredericka+the+Great')
      link(rel='stylesheet', href='/css/github.css')
      link(rel='stylesheet', href='/css/main.css')
  body
    header
      div.inner
        block header
          h1
            a(href=locals.url)= locals.name
          p= locals.description
    div#content
      block content
        h2 Welcome to zombocom!
    footer
      div.inner
        block footer
          p © #{ new Date().getFullYear() } #{ locals.owner }


extends layout

mixin navbarCollapseIndex(active)
    ul.nav.navbar-nav.navbar-center.hidden-sm

        li(class=(active == 'routes' ? 'link-routes active' : 'link-routes'))
            a(href="/turer")
                span.glyphicon.glyphicon-globe
                |  Mine turer

        li(class=(active == 'pois' ? 'link-pois active' : 'link-pois'))
            a(href="/steder")
                span.glyphicon.glyphicon-pushpin
                |  Mine steder

block navbarHeader
    a.navbar-brand(href="/" alt="Til mine turer")
        img(src="/images/ut-no-logo-hvit.png")

    button.navbar-toggle(type="button" data-toggle="collapse" data-target="#app-navigation-collapse")
        span.sr-only Vis meny
        span.icon-bar
        span.icon-bar
        span.icon-bar

Hide center nav buttons on mobile

extends layout

mixin navbarCollapseIndex(active)
    ul.nav.navbar-nav.navbar-center.hidden-sm.hidden-xs

        li(class=(active == 'routes' ? 'link-routes active' : 'link-routes'))
            a(href="/turer")
                span.glyphicon.glyphicon-globe
                |  Mine turer

        li(class=(active == 'pois' ? 'link-pois active' : 'link-pois'))
            a(href="/steder")
                span.glyphicon.glyphicon-pushpin
                |  Mine steder

block navbarHeader
    a.navbar-brand(href="/" alt="Til mine turer")
        img(src="/images/ut-no-logo-hvit.png")

    button.navbar-toggle(type="button" data-toggle="collapse" data-target="#app-navigation-collapse")
        span.sr-only Vis meny
        span.icon-bar
        span.icon-bar
        span.icon-bar


meta(name="viewport", content="width=device-width, initial-scale=1.0")
meta(http-equiv="X-UA-Compatible", content="IE=edge")
meta(charset="utf-8")
meta(name="description" content="")
block title
  title Default Title
//- link(href='https://fonts.googleapis.com/css?family=Lato:400,900,700|Montserrat:400,700|Lora:400,400italic' rel='stylesheet' type='text/css')
link(rel = "stylesheet" href = "/css/yafgs.max.css")
link(rel = "stylesheet" href = "/css/demo/example-styles.css")

Remove unrequired link tag, Add theme colour meta tag

meta(name="viewport", content="width=device-width, initial-scale=1.0")
meta(http-equiv="X-UA-Compatible", content="IE=edge")
meta(charset="utf-8")
meta(name="description" content="")
meta(name="theme-color" content="#330033")
block title
  title Default Title
link(rel = "stylesheet" href = "/css/yafgs.max.css")
link(rel = "stylesheet" href = "/css/demo/example-styles.css")


section.stickers.column-contain
  .sticker-pics.left
    a(href = "http://devswag.com/products/marionette-stickers-4", target= "_blank")
      img.stickers(src="images/stickers.png", alt="Marionette sticker")
    a(href = "http://devswag.com/products/marionette-stickers-4", target= "_blank")
      img(src="images/stickers-laptop.png", alt="Marionette sticker")
  .sticker-order.right
    header
      h2 Stickers!
    p.
      Everyone on the Marionette team works for free. Show your support by getting some stickers. Not only will your laptop look cool, your contributions will help further the development of this open source project!
    a.btn.btn-action(href = "http://devswag.com/products/marionette-stickers-4", target= "_blank") Show Support
  .cl

Use descriptive text in alt for a sticker on a laptop

section.stickers.column-contain
  .sticker-pics.left
    a(href = "http://devswag.com/products/marionette-stickers-4", target= "_blank")
      img.stickers(src="images/stickers.png", alt="Marionette sticker")
    a(href = "http://devswag.com/products/marionette-stickers-4", target= "_blank")
      img(src="images/stickers-laptop.png", alt="Marionette sticker on a MacBook laptop")
  .sticker-order.right
    header
      h2 Stickers!
    p.
      Everyone on the Marionette team works for free. Show your support by getting some stickers. Not only will your laptop look cool, your contributions will help further the development of this open source project!
    a.btn.btn-action(href = "http://devswag.com/products/marionette-stickers-4", target= "_blank") Show Support
  .cl


extends layout

block content
  h1 Coinbase Azure
  p #{from.value} #{from.currency.toUpperCase()} = #{to.value} #{to.currency.toUpperCase()}

Fix crash when statically showing the API

extends layout

block content
  h1 Coinbase Azure
  if error
    p #{error}
  else
    p #{from.value} #{from.currency.toUpperCase()} = #{to.value} #{to.currency.toUpperCase()}


//- 💫 DOCS > USAGE > MODELS > QUICKSTART

- QUICKSTART_MODELS[0].options = Object.keys(MODELS).map(m => ({ id: m, title: LANGUAGES[m], checked: m == 'en'}))
+quickstart(QUICKSTART_MODELS, "Quickstart", "Install a default model, get the code to load it from within spaCy and an example to test it. For more options, see the section on available models below.")
    for models, lang in MODELS
        - var package = models[0]
        +qs({lang: lang}) spacy download #{lang}
        +qs({lang: lang}, "divider")
        +qs({lang: lang, load: "module"}, "python") import #{package}
        +qs({lang: lang, load: "module"}, "python") nlp = #{package}.load()
        +qs({lang: lang, load: "spacy"}, "python") nlp = spacy.load('#{lang}')
        +qs({lang: lang, config: "example"}, "python") doc = nlp(u"#{EXAMPLE_SENTENCES[lang]}")

        if lang != "xx"
            +qs({lang: lang, config: "example"}, "python") print([(w.text, w.pos_) for w in doc])
        else
            +qs({lang: lang, config: "example"}, "python") print([(ent.text, ent.label) for ent in doc.ents])

Update models quickstart usage example

//- 💫 DOCS > USAGE > MODELS > QUICKSTART

- QUICKSTART_MODELS[0].options = Object.keys(MODELS).map(m => ({ id: m, title: LANGUAGES[m], checked: m == 'en'}))
+quickstart(QUICKSTART_MODELS, "Quickstart", "Install a default model, get the code to load it from within spaCy and an example to test it. For more options, see the section on available models below.")
    for models, lang in MODELS
        - var package = models[0]
        +qs({lang: lang}) spacy download #{lang}
        +qs({lang: lang}, "divider")
        +qs({lang: lang, load: "module"}, "python") import #{package}
        +qs({lang: lang, load: "module"}, "python") nlp = #{package}.load()
        +qs({lang: lang, load: "spacy"}, "python") import spacy
        +qs({lang: lang, load: "spacy"}, "python") nlp = spacy.load('#{lang}')
        +qs({lang: lang, config: "example"}, "python") doc = nlp(u"#{EXAMPLE_SENTENCES[lang]}")

        if lang != "xx"
            +qs({lang: lang, config: "example"}, "python") print([(w.text, w.pos_) for w in doc])
        else
            +qs({lang: lang, config: "example"}, "python") print([(ent.text, ent.label) for ent in doc.ents])


nav.blue.darken-3
  div.nav-wrapper
    a.brand-logo(href='/') Dash
    ul#nav-mobile.right.hide-on-med-and-down
      if (locals.login)
        li: a(href='/logout') Logout

Move links for logged in users under login check

ul#user-dropdown.dropdown-content
  li: a(href='/settings') Dash Settings
    i.material-icons.left settings
  li: a(href='/connections') Connected Sites
    i.material-icons.left settings_input_antenna
nav.blue.darken-3
  div.nav-wrapper
    a.brand-logo(href='/') Dash
    ul#nav-mobile.right.hide-on-med-and-down
      if (locals.login)
        li: a.dropdown-button(href='#', data-activates='user-dropdown') #{locals.greeting}, #{locals.displayName}!
          i.material-icons.right arrow_drop_down
          img.avatar.left(src='#{locals.gravatar}')
        li: a(hrref='#') #{locals.date}
        li: a(href='/logout') Logout


doctype html
html(ng-app="DrinkMenu")
  head
    meta(charset="UTF-8" )
    meta(name="viewport" content="width=device-width, initial-scale=1")
    title Beer!
    link(rel="stylesheet" type="text/css" href="app.css")
    script(src="analytics.js")
  body(ng-cloak)
    include partial/drinklist
    script(src="vendor/jquery/dist/jquery.min.js")
    script(src="vendor/moment/min/moment.min.js")
    script(src="vendor/angular/angular.min.js")
    script(src="app.js")
    script(type="text/ng-template" id="bev-select/t_bevselect.html")
      include bev-select/t_bevselect

Load analytics.js with the other js files.

doctype html
html(ng-app="DrinkMenu")
  head
    meta(charset="UTF-8" )
    meta(name="viewport" content="width=device-width, initial-scale=1")
    title Beer!
    link(rel="stylesheet" type="text/css" href="app.css")
  body(ng-cloak)
    include partial/drinklist
    script(src="vendor/jquery/dist/jquery.min.js")
    script(src="vendor/moment/min/moment.min.js")
    script(src="vendor/angular/angular.min.js")
    script(src="analytics.js")
    script(src="app.js")
    script(type="text/ng-template" id="bev-select/t_bevselect.html")
      include bev-select/t_bevselect


include top_menu.jade

.col-lg-12.row.top-row.enabled-projects-row.dashboard-row
    h2
        | Enabled projects
        a.btn.btn-default.add-project-button(
            href='#/projects/manage/', tooltip='Add new project',
            tooltip-placement='right'
        )
            i.icon-plus
    table.table.table-hover
        tr(ng-repeat="project in projects")
            td
                img.project-icon(ng-src='{{project.icon}}')
                i.icon-lock(ng-show="project.is_private")
                a(href='#/projects/{{project.name}}') {{project.name}}
                br
                canvas(
                    fullfill, linechart, options='project.chart.options',
                    data='project.chart.data', height=100
                )

.col-lg-12.row.last-tasks-row.dashboard-row
    h2 Last performed tasks
    table.table.table-hover(
        infinite-scroll='tasks.load()',
        infinite-scroll-distance='2'
    )
        tr(
            ng-repeat='task in tasks.items'
            class='{{task.status == 1 && "success" || "failed"}}'
        )
            td
                a(href='#/projects/{{task.project}}/') {{task.project}}
                | :
                a(href='#/tasks/{{task.id}}/').
                    {{task.commit.branch}}\#{{task.commit.range}}
            td {{task.success_percent}}%
            td
                span.pull-right {{task.created}}

Add you don't have enabled projects badge

include top_menu.jade

.col-lg-12.row.top-row.enabled-projects-row.dashboard-row
    h2
        | Enabled projects
        a.btn.btn-default.add-project-button(
            href='#/projects/manage/', tooltip='Add new project',
            tooltip-placement='right'
        )
            i.icon-plus
    table.table.table-hover
        tr(ng-repeat="project in projects")
            td
                img.project-icon(ng-src='{{project.icon}}')
                i.icon-lock(ng-show="project.is_private")
                a(href='#/projects/{{project.name}}') {{project.name}}
                br
                canvas(
                    fullfill, linechart, options='project.chart.options',
                    data='project.chart.data', height=100
                )
        tr(ng-show='!projects.length')
            td You don't have enabled projects.

.col-lg-12.row.last-tasks-row.dashboard-row
    h2 Last performed tasks
    table.table.table-hover(
        infinite-scroll='tasks.load()',
        infinite-scroll-distance='2'
    )
        tr(
            ng-repeat='task in tasks.items'
            class='{{task.status == 1 && "success" || "failed"}}'
        )
            td
                a(href='#/projects/{{task.project}}/') {{task.project}}
                | :
                a(href='#/tasks/{{task.id}}/').
                    {{task.commit.branch}}\#{{task.commit.range}}
            td {{task.success_percent}}%
            td
                span.pull-right {{task.created}}


doctype 5
html(lang='en')

  head
    meta(charset='utf-8')
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
    meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
    meta(name='description', content='Open Access Button')
    title= title
    link(rel='shortcut icon', type='image/x-icon', href='/img/favicon.ico')
    link(rel='stylesheet', href='/css/bootstrap.min.css')
    link(rel='stylesheet', href='/css/bootstrap-responsive.min.css')
    link(rel='stylesheet', href='/css/font-awesome.min.css')
    link(rel='stylesheet', href='/css/app.css')

  body
    header
      block header
        .navbar.navbar-inverse.navbar-fixed-top
          .navbar-inner
            .container
              button.btn.btn-navbar(type='button', data-toggle='collapse', data-target='.nav-collapse')
                span.icon-bar
                span.icon-bar
                span.icon-bar
              a.brand(href='http://oabutton.wordpress.com') Open Access Button
              .nav-collapse.collapse
                ul.nav
                  li.active: a(href='/') Home
                  li: a(href='/about') About
                  li: a(href='/stories') Stories
                  li: a(href='/map') Map
                  li: a(href='/download.json') Download

    // Main body
    .container
      block content

    footer
      block footer
        .container

    script(src='/js/jquery.min.js')
    script(src='/js/bootstrap.js')
    block scripts

Remove link to wordpress site :(

doctype 5
html(lang='en')

  head
    meta(charset='utf-8')
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
    meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
    meta(name='description', content='Open Access Button')
    title= title
    link(rel='shortcut icon', type='image/x-icon', href='/img/favicon.ico')
    link(rel='stylesheet', href='/css/bootstrap.min.css')
    link(rel='stylesheet', href='/css/bootstrap-responsive.min.css')
    link(rel='stylesheet', href='/css/font-awesome.min.css')
    link(rel='stylesheet', href='/css/app.css')

  body
    header
      block header
        .navbar.navbar-inverse.navbar-fixed-top
          .navbar-inner
            .container
              button.btn.btn-navbar(type='button', data-toggle='collapse', data-target='.nav-collapse')
                span.icon-bar
                span.icon-bar
                span.icon-bar
              a.brand(href='/') Open Access Button
              .nav-collapse.collapse
                ul.nav
                  li.active: a(href='/') Home
                  li: a(href='/about') About
                  li: a(href='/stories') Stories
                  li: a(href='/map') Map
                  li: a(href='/download.json') Download

    // Main body
    .container
      block content

    footer
      block footer
        .container

    script(src='/js/jquery.min.js')
    script(src='/js/bootstrap.js')
    block scripts


form(action=urlFor(badge), method='post', enctype="multipart/form-data")
  label
    | Name
    input(type='text', name='badge[name]')
  label
    | Description
    input(type='text', name='badge[description]')
  label
    | Image
    input(type='file', name='badge[image]')
  input(type='hidden', name='badge[issuer_id]', value=orgId)
  input(type='submit', value='Save!')

Add the rest of the fields to the badge form

form(action=urlFor(badge), method='post', enctype="multipart/form-data")
  label
    | Name
    br
    input(class='span6', type='text', name='badge[name]')
  label
    | Description
    textarea(class='span6', name='badge[description]')
  label
    | Criteria
    textarea(class='span6', name='badge[criteria]')
  label
    | Version
    br
    input(class='span2', type='text', name='badge[version]')
  label
    | Image
    input(type='file', name='badge[image]')
  input(type='hidden', name='badge[issuer_id]', value=orgId)
  input(type='submit', value='Save!')


h2 Temperature at {{planting.stationID}} for the last 5 days
h4(ng-repeat="station in activeStationList| filter:farmer.defaultCimisId") {{station.name+", "+ station.county + " County"}}
figure.gdd-recent
  svg.fiveDayTempGraph

Update to 5 day heading

h2 5 Day Temperature
h4(ng-repeat="station in activeStationList| filter:farmer.defaultCimisId") {{station.name+", "+ station.county + " County"}}
figure.gdd-recent
  svg.fiveDayTempGraph


h2 Les photos
form
   md-button.md-primary
      label(for="file-input") Choisissez une photo
   input(id="file-input" type="file")
   md-input-container
      md-button.md-primary.md-raised(ng-click="uploadPicture()") Ajouter la photo
md-grid-list(
   md-cols-sm="1"
   md-cols-md="2"
   md-cols-gt-md="6"
   md-row-height-gt-md="1:1"
   md-row-height="4:3"
   md-gutter="8px"
   md-gutter-gt-sm="4px"
)
   md-grid-tile.picture-preview(
      ng-repeat="picture in pictures"
      md-rowspan="1"
      md-colspan="1"
      md-colspan-sm="1"
   )
      img(ng-src="api/containers/{{ picture.container }}/download/{{ picture.name }}")

Fix picture upload and add better download feature

h2 Les photos
form
   md-button.md-primary
      label(for="file-input") Choisissez une photo
   input(id="file-input" type="file" ng-model="file" ngf-select ngf-multiple="false")
   md-input-container
      md-button.md-primary.md-raised(ng-click="uploadPicture()") Ajouter la photo
md-grid-list(
   md-cols-sm="1"
   md-cols-md="2"
   md-cols-gt-md="6"
   md-row-height-gt-md="1:1"
   md-row-height="4:3"
   md-gutter="8px"
   md-gutter-gt-sm="4px"
)
   md-grid-tile.picture-preview(
      ng-repeat="picture in pictures"
      md-rowspan="1"
      md-colspan="1"
      md-colspan-sm="1"
   )
      a(href="api/containers/{{ picture.container }}/download/{{ picture.name }}" target="_blank")
         img(ng-src="api/containers/{{ picture.container }}/download/{{ picture.name }}")


//- First, define the component (jade + js)
template(name="ifEven")
  if isEven value
    +content
  else
    +elseContent

//-
  Template.ifEven.isEven = function (value) {
    return value % 2 === 0;
  };

//- And now we can use it!
body
  +ifEven(value=2)
    | 2 is even
  else
    | 2 is odd

Update the component example to blaze-rc1

//- First, define the component (jade + js)
template(name="ifEven")
  if isEven value
    +UI.contentBlock
  else
    +UI.elseBlock

//-
  Template.ifEven.isEven = function (value) {
    return value % 2 === 0;
  };

//- And now we can use it!
body
  +ifEven(value=2)
    | 2 is even
  else
    | 2 is odd


.media.comment-form
  span.pull-left
    if principal.image && principal.image.url
      img.img-rounded(src=principal.image.url, width="32", height="32")
    else
      img.img-rounded(src="/images/default.png", width="32", height="32")

  .media-body
    form.post-comment
      fieldset
        .control-group
          .controls
            textarea.span5(name="content", rows="6")

        .control-group
          .controls
            button.btn.btn-primary(type="submit") Comment

Add close btn to `comment` template

.media.comment-form
  span.pull-left
    if principal.image && principal.image.url
      img.img-rounded(src=principal.image.url, width="32", height="32")
    else
      img.img-rounded(src="/images/default.png", width="32", height="32")

  .media-body
    form.post-comment
      fieldset
        .control-group
          .controls
            textarea.span5(name="content", rows="6")

        .control-group
          .controls
            button.btn.btn-primary(type="submit") Comment
            button.btn.btn-default.close-btn Close


extends layout

block content
  #eventdesc
    h1= event.name
    p #{event.yes_rsvp_count} RSVPs

  #winner
    h1 Winner: #{rsvp.member.name}
    if rsvp.member_photo
      img.member(src='#{rsvp.member_photo.photo_link}')
    else
      p (no photo)

  #links
    a.button#rollagain(href='/#{title}')
      p Roll again

Add rolling and stop button.

extends layout

block content
  #eventdesc
    h1= event.name
    p #{event.yes_rsvp_count} RSVPs

  #winner
    h1 Winner is ...?
    img.member(src='/images/default.jpg')

  #links
    .btn-group
      button.btn.btn-danger.btn-lg#rolling Start Rolling
    .btn-group
      button.btn.btn-danger.btn-lg#stop Stop
  p

  #list
    each val in rsvplist
      .member-cell
        if val.member_photo
          img.list(src='#{val.member_photo.photo_link}', title='#{val.member.name}')
        else
          img.list(src='/images/default.jpg', title='#{val.member.name}')


extends layout

block content
  h1= activity.name + ' ' + edition.name

  .spacer
  h5= 'Start: ' + edition.start
  h5= 'End: ' + edition.end

  .spacer
  h2 People involved
  - for (var u in users)
    - if (users[u].info.google)
      a(href='/people/' + users[u].info.google.email.split('@')[0]) #{u}
      = ' - ' + users[u].role
      br
    - else
      p #{u} - #{users[u].role}
  .spacer

  - if (user && user.isMember)
    h2 Add a new role
    form(method='post', action='/activities/' + activity.link + '/' + edition.link + '/add_role')
      input(name='edition', type='hidden', value=edition._id)
      label Name
      input(name='name', type='text', required)
      label Role
      select(name='role')
        - each role in roles
          option(value= role)= role
      input(type='submit', value='Add')

  .spacer
  h2 Events
  - if (events.length != 0)
    - each e in events
      h5= e.name
      = 'Dates: ' + e.start + ' ' + e.end
      br
      = 'Location: ' + e.location
  - else
    h4 No events here!

  - if (user && user.isMember)
      a(href='/events/edit') Add an event.

Add space before 'Add event' link

extends layout

block content
  h1= activity.name + ' ' + edition.name

  .spacer
  h5= 'Start: ' + edition.start
  h5= 'End: ' + edition.end

  .spacer
  h2 People involved
  - for (var u in users)
    - if (users[u].info.google)
      a(href='/people/' + users[u].info.google.email.split('@')[0]) #{u}
      = ' - ' + users[u].role
      br
    - else
      p #{u} - #{users[u].role}
  .spacer

  - if (user && user.isMember)
    h2 Add a new role
    form(method='post', action='/activities/' + activity.link + '/' + edition.link + '/add_role')
      input(name='edition', type='hidden', value=edition._id)
      label Name
      input(name='name', type='text', required)
      label Role
      select(name='role')
        - each role in roles
          option(value= role)= role
      input(type='submit', value='Add')

  .spacer
  h2 Events
  - if (events.length != 0)
    - each e in events
      h5= e.name
      = 'Dates: ' + e.start + ' ' + e.end
      br
      = 'Location: ' + e.location
      br
  - else
    h4 No events here!

  - if (user && user.isMember)
      a(href='/events/edit') Add an event.


doctype html
html(lang="fr")
  head
    meta(charset="utf-8")
    title Dossier de Demande Simplifié
    link(rel="shortcut icon", href="/img/favicon.ico", type="image/vnd.microsoft.icon")
    link(rel="stylesheet", href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/css/bootstrap.min.css")
    link(rel="stylesheet", href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.min.css")
  body
    nav.navbar.navbar-default(role="navigation")
      .container-fluid
        .navbar-header
          a.navbar-brand(href="/") Dossier de Demande Simplifié
          ul.navbar-nav.nav
            li: a(href="/admin/situations") Situations en cours

    .container

      .page-header
        h1 Dossiers ouverts

      table.table.table-striped.table-bordered
        tr
          th Code du dossier
          th État
          th Dernière mise à jour
        each situation in situations
          tr
            td: a(href="/admin/situation/" + situation.id)= situation.id
            td Nouveau
            td= moment(situation.updatedAt).fromNow()

Add User View in admin

doctype html
html(lang="fr")
  head
    meta(charset="utf-8")
    title Dossier de Demande Simplifié
    link(rel="shortcut icon", href="/img/favicon.ico", type="image/vnd.microsoft.icon")
    link(rel="stylesheet", href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.1.1/css/bootstrap.min.css")
    link(rel="stylesheet", href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.min.css")
  body
    nav.navbar.navbar-default(role="navigation")
      .container-fluid
        .navbar-header
          a.navbar-brand(href="/") Dossier de Demande Simplifié
          ul.navbar-nav.nav
            li: a(href="/admin/situations") Situations en cours

    .container

      .page-header
        h1 Dossiers ouverts

      table.table.table-striped.table-bordered
        tr
          th Code du dossier
          th État
          th Dernière mise à jour
          th Vue utilisateur
        each situation in situations
          tr
            td: a(href="/admin/situation/" + situation.id)= situation.id
            td Nouveau
            td= moment(situation.updatedAt).fromNow()
            td: a(href="/situation/" + situation.id) Accéder


a.promote-button.is-editable(tg-check-permission="add_us")
    include ../../svg/promote.svg

Fix pointer in promote button

a.promote-button.editable(tg-check-permission="add_us")
    include ../../svg/promote.svg


body
  h1= title
  div= email || "Not logged in"
  p(id='outgoingstatus') This Browser's Stream
  video(id="outgoingvid", autoplay)
  br
  p(id='incomingstatus') The Other Browser's Stream
  video(id="incomingvid", autoplay)
  br
  button(id="startbtn", onclick="start()") Turn On Camera
  button(id="callbtn", onclick="call()") Call
  button(id="stoptransbtn", onclick="stopTransmitting()") Stop Transmitting
  button(id="stopreceivebtn", onclick="stopReceiving()") Stop Receiving
  br
  br
  input(id="contactemail", type="text", placeholder="Email")
  button(id="addcontactbtn", onclick="addContact()") Add Contact
  br
  div Emails:
    div(id="emails")

  script(src="/js/main.js")

Remove not logged in because it will never occur

body
  h1= title
  div= email
  p(id='outgoingstatus') This Browser's Stream
  video(id="outgoingvid", autoplay)
  br
  p(id='incomingstatus') The Other Browser's Stream
  video(id="incomingvid", autoplay)
  br
  button(id="startbtn", onclick="start()") Turn On Camera
  button(id="callbtn", onclick="call()") Call
  button(id="stoptransbtn", onclick="stopTransmitting()") Stop Transmitting
  button(id="stopreceivebtn", onclick="stopReceiving()") Stop Receiving
  br
  br
  input(id="contactemail", type="text", placeholder="Email")
  button(id="addcontactbtn", onclick="addContact()") Add Contact
  br
  div Emails:
    div(id="emails")

  script(src="/js/main.js")


.ChannelBlockGroup
   - block = channel
   include ../../block_v2/templates/block
   for block in channel.kind.blocks
    include ../../block_v2/templates/block

Add inner to channel block group

.ChannelBlockGroup
  .ChannelBlockGroup__inner
    - block = channel
    include ../../block_v2/templates/block
    for block in channel.kind.blocks
      include ../../block_v2/templates/block


extends layout-simple

block view
    div
        .content.prelude-content
            .col-sm-offset-2.col-sm-8.tips
                h2 How to be the fastest

                h3 Keyboard shortcuts, when highlighting tasks
                ul
                    li d  mark as done
                    li o  mark as "on it"
                    li w  "will do"
                    li ?  clear task status
                ul
                    li t  take ownership of task
                ul
                    li Cut with Cmd-X (or Ctrl-X)
                    li Paste with Cmd-V (or Ctrl-V)
                    li Clear selection with Esc
                ul
                    li Blocks of tasks can be highlighted with a keyboard or a mouse
                    li Arrow keys will change your selection

                h3 Task entry shortcuts
                ul
                    li Ending a line with ...
                        ul
                            li @@ assigns task to you
                            li @Name assigns to Name
                            li ! marks task as "will do"
                            li !! marks as done
                            li @@!! assigns task to you and marks as done
                    li Starting a line with ...
                        ul
                            li -- creates milepost

                h3.before-video 60-second whirlwind tour

                .embed-container
                    iframe(src="//www.youtube-nocookie.com/embed/6pgBgTjCh6E?rel=0" frameborder="0" allowfullscreen)

Make the keyboard shortcuts bold

extends layout-simple

block view
    div
        .content.prelude-content
            .col-sm-offset-2.col-sm-8.tips
                h2 How to be the fastest

                h3 Keyboard shortcuts, when highlighting tasks
                ul
                    li d  mark as done
                    li o  mark as "on it"
                    li w  "will do"
                    li ?  clear task status
                ul
                    li t  take ownership of task
                ul
                    li Cut with Cmd-X (or Ctrl-X)
                    li Paste with Cmd-V (or Ctrl-V)
                    li Clear selection with Esc
                ul
                    li Blocks of tasks can be highlighted with a keyboard or a mouse
                    li Arrow keys will change your selection

                h3 Task entry shortcuts
                ul
                    li Ending a line with ...
                        ul
                            li @@ assigns task to you
                            li @Name assigns to Name
                            li ! marks task as "will do"
                            li !! marks as done
                            li @@!! assigns task to you and marks as done
                    li Starting a line with ...
                        ul
                            li -- (two minus signs) creates milepost

                h3.before-video 60-second whirlwind tour

                .embed-container
                    iframe(src="//www.youtube-nocookie.com/embed/6pgBgTjCh6E?rel=0" frameborder="0" allowfullscreen)


doctype html
html
  head
    title Dance the Art Genome: Algorithms
    link( type='text/css', rel='stylesheet', href=('/assets/algorithms' + sd.CSS_EXT) )
  body
    #wrap
      #inner-wrap
        #about
          h1
            | Dance the Art Genome
          p
            | Choreography by
            a(href = 'https://twitter.com/sicchio') Dr. Kate Sicchio: @sicchio
          p
            | Programming by
            a(href = 'https://twitter.com/dblockdotorg') Daniel Doubrovkine: @dblockdotorg
          p
            | Open Source at
            a(href = 'https://github.com/dblock/dance-the-art-genome') github.com/dblock/dance-the-art-genome
          p
            | Performed by
            a(href = '') Kim Machaby

Remove Dr., confusing to students.

doctype html
html
  head
    title Dance the Art Genome: Algorithms
    link( type='text/css', rel='stylesheet', href=('/assets/algorithms' + sd.CSS_EXT) )
  body
    #wrap
      #inner-wrap
        #about
          h1
            | Dance the Art Genome
          p
            | Choreography by
            a(href = 'https://twitter.com/sicchio') Kate Sicchio: @sicchio
          p
            | Programming by
            a(href = 'https://twitter.com/dblockdotorg') Daniel Doubrovkine: @dblockdotorg
          p
            | Open Source at
            a(href = 'https://github.com/dblock/dance-the-art-genome') github.com/dblock/dance-the-art-genome
          p
            | Performed by
            a(href = '') Kim Machaby


doctype html
html(lang='en-us')
  head
    meta(http-equiv='Content-Type', content='text/html; charset=utf-8')
    meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
    link(rel='stylesheet', href='css/app.css')
    script(src='js/app.min.js', type='text/javascript')
  body
    h1 Hellow World!
    p goodbye!

Implement basic markup for the drink machine

doctype html
html(lang='en-us')
  head
    meta(http-equiv='Content-Type', content='text/html; charset=utf-8')
    meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
    title Drink Machine | Try your luck for a morning beverage!
    link(rel='stylesheet', href='css/app.css')
    script(src='js/app.min.js', type='text/javascript')
  body
    h1 Try your luck for a morning beverage!
    div
      ul
        li
        li
        li
    button Press to Play


doctype html
html(lang='en-us')
  head
    meta(http-equiv='Content-Type', content='text/html; charset=utf-8')
    meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
    title Drink Machine | Try your luck for a morning beverage!
    link(rel='stylesheet', href='css/app.css')
    script(src='js/app.min.js', type='text/javascript')
  body
    h1 Try your luck for a morning beverage!
    div
      ul
        li
        li
        li
    button Press to Play

Add Reel modules classes to markup

doctype html
html(lang='en-us')
  head
    meta(http-equiv='Content-Type', content='text/html; charset=utf-8')
    meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
    title Drink Machine | Try your luck for a morning beverage!
    link(rel='stylesheet', href='css/app.css')
    script(src='js/app.min.js', type='text/javascript')
  body
    h1 Try your luck for a morning beverage!
    div
      ul.Reels
        li.Reel.Reel_method
        li.Reel.Reel_equipment
        li.Reel.Reel_flavoring
    button Press to Play


include mixins/bookends

doctype html
html
  head
    meta(charset="utf-8")
    meta(http-equiv="X-UA-Compatible", content="IE=edge")
    meta(name="viewport", content="width=device-width, initial-scale=1.0")
    meta(name="author", content="Adam Heins")

    link(rel="stylesheet", href="https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic")
    link(rel="stylesheet", href="#{process.env.STATIC_HOST}/css/layout.css")

    block header
    block styles

  body
    .container
      +header
      .content
        block content
      +footer
    block scripts

Move css to make page load faster.

include mixins/bookends

doctype html
html
  head
    meta(charset="utf-8")
    meta(http-equiv="X-UA-Compatible", content="IE=edge")
    meta(name="viewport", content="width=device-width, initial-scale=1.0")
    meta(name="author", content="Adam Heins")

    // The media="bogus" theoretically makes the browser not block on these
    // stylesheets, and will then use the files when it encounters non-bogus
    // ones at the end of the body.
    // See http://codepen.io/tigt/post/async-css-without-javascript
    link(rel="stylesheet", href="https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic", media="bogus")
    link(rel="stylesheet", href="#{process.env.STATIC_HOST}/css/layout.css", media="bogus")

    block header
    block styles

  body
    .container
      +header
      .content
        block content
      +footer
    block scripts
    link(rel="stylesheet", href="https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic")
    link(rel="stylesheet", href="#{process.env.STATIC_HOST}/css/layout.css")


extends layout
block content
  h1 Open Access Button

  p
    a(class="btn", href="javascript:document.getElementsByTagName('body')[0].appendChild(document.createElement('script')).setAttribute('src','http://#{ vars.domain }/js/bookmarklet.js');")
      i(class='icon-bookmark')
    |Drag the button to your bookmark bar.

Move about content to homepage; tidy up a bit

extends layout
block content
  h1 Open Access Button

  .hero-unit
    p.
      If we want to bring about a more open community we’ll need more tools, more information and more engagement around the issue.

    p
      strong That’s where our idea comes in.
      |Imagine a browser-based tool which allowed you to track every time someone
      |was denied access to a paper? Better yet, imagine if that tool gave you
      |basic information about where in the world they were or their profession
      |and why they were looking. Integrating this into one place would create a
      |realtime, worldwide, interactive picture of the problem. The integration
      |of social media would allow us to make this problem visible to the world.
      |Lastly, imagine if the tool actually helped the person gain access to the
      |paper they’d been denied access to in the first place. Incentivising use
      |and opening the barriers to knowledge combined can make this really
      |powerful.

    p
      |That’s what we’re imagining. We’re calling it the
      strong Open Access button
      |. Every paywall met is an isolated incident; it’s time we capture those
      |individual moments of injustice and frustration to turn them into positive
      |change. We’ve figured out how all this and more can be done – If you’re a
      |programmer, we’d love your help creating a basic prototype to prove this is
      |a viable idea. After that our dreams include a having a slick website to
      |provide a home for the button and an accompanying campaign. If you have
      |anything you feel that can help us and you want to help create change to
      |move towards a more open world join us by contacting
      a(href='mailto:oabutton@gmail.com') oabutton@gmail.com
      |.

    h3 Ok Ace! Give me the bookmarklet!
    p
      a(class="btn btn-large", href="javascript:document.getElementsByTagName('body')[0].appendChild(document.createElement('script')).setAttribute('src','http://#{ vars.domain }/js/bookmarklet.js');")
        i(class='icon-bookmark')  Drag this to your bookmark bar


extends layout
block content
  style
    h1 {
      text-align: center;
    }
    .love {
      color: #d32232;
    }

  h1 Beauty Of The Love
    strong.love ♥
    美丽的爱情

Update to maintain compatability with the latest version of jade

extends layout
block content
  style.
    h1 {
      text-align: center;
    }
    .love {
      color: #d32232;
    }

  h1 Beauty Of The Love
    strong.love ♥
    美丽的爱情


template(name="autoEventDetails")
  section.event--details
    .event--criteria.secondary-content
      p This Auto Event includes all manually curated and
        | automatically extracted incidents stored in EIDR-Connect which
        | match the following properties:
      if event.locations
        .criteria
          h4 Containing Location(s):
          ul
            each location in event.locations
              li {{ formatLocation location }}
      if event.diseases
        .criteria
          h4 Disease(s):
          ul
            each event.diseases
              li=text
      if event.dateRange
        .criteria
          h4 Date Range:
          p {{ formatDateRange event.dateRange }}

Move paragraph in auto event details

template(name="autoEventDetails")
  section.event--details
    p This Auto Event includes all manually curated and
      | automatically extracted incidents stored in EIDR-Connect which
      | match the following properties:
    .event--criteria.secondary-content
      if event.locations
        .criteria
          h4 Containing Location(s):
          ul
            each location in event.locations
              li {{ formatLocation location }}
      if event.diseases
        .criteria
          h4 Disease(s):
          ul
            each event.diseases
              li=text
      if event.dateRange
        .criteria
          h4 Date Range:
          p {{ formatDateRange event.dateRange }}


extends layout

block content
    form.form-horizontal.form-register(action='/register', method='post')
        h2.form-signin-heading= title

        if (message != '')
            div.alert.alert-danger
                p !{message}

        .control-group
            label.control-label(for='username') Username
            .controls
                input#username.form-control(type='text', name='user[username]', placeholder='')

        .control-group
            label.control-label(for='email') E-mail
            .controls
                input#email.form-control(type='text', name='user[email]', placeholder='')

        .control-group
            label.control-label(for='password') Password
            .controls
                input#password.form-control(type='password', name='user[password]', placeholder='')

        .control-group
            label.control-label(for='password_confirm') Password (Confirm)
            .controls
                input#password_confirm.form-control(type='password', name='user[password_confirm]', placeholder='')
        .control-group
            .controls
                button#register.btn.btn-lg.btn-success Register

Tweak layout of registration form

extends layout

block content
    form.form-register(action='/register', method='post')
        h2.form-signin-heading= title

        if (message != '')
            div.alert.alert-danger
                p !{message}

        .form-group
            label.control-label(for='username') Username
            .controls
                input#username.form-control(type='text', name='user[username]', placeholder='')

        .form-group
            label.control-label(for='email') E-mail
            .controls
                input#email.form-control(type='text', name='user[email]', placeholder='')

        .form-group
            label.control-label(for='password') Password
            .controls
                input#password.form-control(type='password', name='user[password]', placeholder='')

        .form-group
            label.control-label(for='password_confirm') Password (Confirm)
            .controls
                input#password_confirm.form-control(type='password', name='user[password_confirm]', placeholder='')
        .form-group
            .controls
                button#register.btn.btn-lg.btn-success Register


template(name="addCompleteMangas")
	.container
		h2 {{_ "addACompleteManga"}}
		.panel.panel-default
			.panel-body
				form
					.form-group
						label(for="mangasName") {{_ "manga"}}
						input.form-control#mangasName(type="text")
					.form-group
						label(for="authorLastName") {{_ "authorLastName"}}
						input.form-control#authorLastName(type="text")
					.form-group
						label(for="authorFirstName") {{_ "authorFirstName"}}
						input.form-control#authorFirstName(type="text")
					.form-group
						label(for="authorCover") {{_ "authorCover"}}
						input.form-control#authorCover(type="url")
					.form-group
						label(for="mangasCover") {{_ "mangasCover"}}
						input.form-control#mangasCover(type="url")
					.form-group
						label(for="genre") {{_ "genre"}}
						input.form-control.awesomplete#genre(type="text")
		h2 {{_ "addTomeForTheSerie"}}
		.tomes
			+addTome
		.clearfix
			button.btn.btn-primary#addTome(type='button') {{_ "addTome"}}
		.clearfix
			button.btn.btn-success#addManga(type='button') {{_ "validate"}}

Replace the button next to each other

template(name="addCompleteMangas")
	.container
		h2 {{_ "addACompleteManga"}}
		.panel.panel-default
			.panel-body
				form
					.form-group
						label(for="mangasName") {{_ "manga"}}
						input.form-control#mangasName(type="text")
					.form-group
						label(for="authorLastName") {{_ "authorLastName"}}
						input.form-control#authorLastName(type="text")
					.form-group
						label(for="authorFirstName") {{_ "authorFirstName"}}
						input.form-control#authorFirstName(type="text")
					.form-group
						label(for="authorCover") {{_ "authorCover"}}
						input.form-control#authorCover(type="url")
					.form-group
						label(for="mangasCover") {{_ "mangasCover"}}
						input.form-control#mangasCover(type="url")
					.form-group
						label(for="genre") {{_ "genre"}}
						input.form-control.awesomplete#genre(type="text")
		h2 {{_ "addTomeForTheSerie"}}
		.tomes
			+addTome
		.clearfix
			button.btn.btn-primary#addTome(type='button') {{_ "addTome"}}
			button.btn.btn-success#addManga(type='button') {{_ "validate"}}


extends layout
block content

	include includes/navigation

	#holder
	.legend
		ul.test-info
			h3 Tests
				li= test[0]
				li= test[1]
			h3= 'Device: ' + device

			table
				tr.bar-a
					td Mean frame ms
					td base
				tr.bar-b
					td Layout ms
					td base
				tr.bar-c
					td Load ms
					td base

		form(action='../v2/view/results', method='GET').test-info
			p: h3 Compare commits
			p#compare-commits Click on 2 commits to compare
			input(type='hidden', name='device', value=device)
			input(type='hidden', name='test', value=test[0])
			input(type='hidden', name='test', value=test[1])
			p: button(type='submit') Compare
		ul.test-info#commit-info

	script(src='/javascripts/raphael-min.js')
	script(src='/javascripts/g.raphael-min.js')
	script(src='/javascripts/g.line-min.js')
	script(src='/javascripts/dashboard.js')
	script
		getParamsAndPlot();

Swap the Load/Layout in the side bar to align with the color of the line chart

extends layout
block content

	include includes/navigation

	#holder
	.legend
		ul.test-info
			h3 Tests
				li= test[0]
				li= test[1]
			h3= 'Device: ' + device

			table
				tr.bar-a
					td Mean frame ms
					td base
				tr.bar-b
					td Load ms
					td base
				tr.bar-c
					td Layout ms
					td base

		form(action='../v2/view/results', method='GET').test-info
			p: h3 Compare commits
			p#compare-commits Click on 2 commits to compare
			input(type='hidden', name='device', value=device)
			input(type='hidden', name='test', value=test[0])
			input(type='hidden', name='test', value=test[1])
			p: button(type='submit') Compare
		ul.test-info#commit-info

	script(src='/javascripts/raphael-min.js')
	script(src='/javascripts/g.raphael-min.js')
	script(src='/javascripts/g.line-min.js')
	script(src='/javascripts/dashboard.js')
	script
		getParamsAndPlot();


h1 Security error
p You need to upgrade your browser - or even better, switch to another one like #[a(href="https://firefox.com") Firefox] or #[a(href="https://google.com/chrome/browser/") Chrome]. You can consider using a #[a(href="https://github.com/pump-io/pump.io/wiki/Clients") client], but the best course of action is to upgrade.
p This is happening because your browser is outdated and a malicious post can trick it into giving an attacker your private information, including access to your pump.io account and messages. Because of this, pump.io is refusing to show any content.
p For your protection, this error cannot be overridden or disabled. Sorry about that.

Fix XSS error page not extending the layout

extends layout.jade

block body
  h1 Security error
  p You need to upgrade your browser - or even better, switch to another one like #[a(href="https://firefox.com") Firefox] or #[a(href="https://google.com/chrome/browser/") Chrome]. You can consider using a #[a(href="https://github.com/pump-io/pump.io/wiki/Clients") client], but the best course of action is to upgrade.
  p This is happening because your browser is outdated and a malicious post can trick it into giving an attacker your private information, including access to your pump.io account and messages. Because of this, pump.io is refusing to show any content.
  p For your protection, this error cannot be overridden or disabled. Sorry about that.


if artwork.artists.length
  for artist in artwork.artists
    - var tabs = helpers.artists.build(artist)

    if tabs.length
      section.artwork-section.artwork-artist
        h2.artwork-artist__name
          | About #{artist.name}

        .artwork-artist__content
          .artwork-tabs(
            class='js-artwork-artist-tabs'
          )
            .artwork-tabs__nav
              for tab, i in tabs
                a.artwork-tabs__nav__link(
                  class='js-artwork-tabs__nav__link'
                  data-id= tab
                  data-state= (i === 0 ? 'active' : 'inactive')
                )
                  = helpers.artists.name(tab)

            .artwork-tabs__content
              for tab, i in tabs
                .artwork-tab(
                  class='js-artwork-tab'
                  data-id= tab
                  data-state= (i === 0 ? 'active' : 'inactive')
                )
                  case tab
                    when 'biography'
                      include ./templates/biography
                    when 'exhibition_history'
                      include ./templates/exhibition_history
                    when 'articles'
                      include ./templates/articles

              .artwork-artist__jump
                a.avant-garde-jump-link( href= artist.href )
                  | Go to #{artist.name}’s Artist Page
                  i.icon-chevron-small-right

Update to use tabs mixins

include ../tabs/mixins

if artwork.artists.length
  for artist in artwork.artists
    - var tabs = helpers.artists.build(artist)

    if tabs.length
      section.artwork-section.artwork-artist
        h2.artwork-artist__name
          | About #{artist.name}

        .artwork-artist__content
          .artwork-tabs( class='js-artwork-artist-tabs' )
            +nav(tabs, helpers.artists.name)

            .artwork-tabs__content
              for tab, i in tabs
                +tab(tab, i)
                  case tab
                    when 'biography'
                      include ./templates/biography
                    when 'exhibition_history'
                      include ./templates/exhibition_history
                    when 'articles'
                      include ./templates/articles

              .artwork-artist__jump
                a.avant-garde-jump-link( href= artist.href )
                  | Go to #{artist.name}’s Artist Page
                  i.icon-chevron-small-right


!!! 5
html(class='no-js', lang='en')
	head

		- var parsedCivicSeed = JSON.parse(CivicSeed);
		- var cloudPath = parsedCivicSeed.CLOUD_PATH;

		meta(charset='utf-8')
		meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')

		title { ::: Civic Seed ::: }

		meta(name='viewport', content='width=device-width')
		meta(name='description', content='')
		meta(name='author', content='')
		link(href='http://fonts.googleapis.com/css?family=Nunito:300,700|Satisfy:400|Arvo:400,700,400italic', rel='stylesheet', type='text/css')

		script(src='/js/modernizr-2.6.2.min.js')

		script window.CivicSeed = !{CivicSeed};

		!= SocketStream

		link(rel='stylesheet', type='text/css', media='print', href='#{cloudPath}/uncompiled-css/print.css')

body

	block content

Fix jade layout template to include body inside html tag & update to jade 1.0 syntax

doctype html
html(class='no-js', lang='en')
	head

		- var parsedCivicSeed = JSON.parse(CivicSeed);
		- var cloudPath = parsedCivicSeed.CLOUD_PATH;

		meta(charset='utf-8')
		meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')

		title { ::: Civic Seed ::: }

		meta(name='viewport', content='width=device-width')
		meta(name='description', content='')
		meta(name='author', content='')
		link(href='http://fonts.googleapis.com/css?family=Nunito:300,700|Satisfy:400|Arvo:400,700,400italic', rel='stylesheet', type='text/css')

		script(src='/js/modernizr-2.6.2.min.js')

		script window.CivicSeed = !{CivicSeed};

		!= SocketStream

		link(rel='stylesheet', type='text/css', media='print', href='#{cloudPath}/uncompiled-css/print.css')

	body

		block content


extends layout

block content
  .board-header
    h1 /#{board.name}/
    .new-thread
      h3 Create New Thread
      form.form(role='form', method='post', action='/board/#{board.name}/newThread', enctype='multipart/form-data')
        include includes/formPostContent
        button.btn.btn-success(type='submit') Create Thread
  each thread in board.threads
    post = thread.posts[0]
    .thread
      include includes/post
      - for(var i = 1; i < 3; i++) {
          post = thread.posts[i]
          include includes/post
          br
      - }

Make board header a link

extends layout

block content
  .board-header
    a(href='/board/#{board.name}')
      h1 /#{board.name}/
    .new-thread
      h3 Create New Thread
      form.form(role='form', method='post', action='/board/#{board.name}/newThread', enctype='multipart/form-data')
        include includes/formPostContent
        button.btn.btn-success(type='submit') Create Thread
  each thread in board.threads
    post = thread.posts[0]
    .thread
      include includes/post
      - for(var i = 1; i < 3; i++) {
          post = thread.posts[i]
          include includes/post
          br
      - }


doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap.min.css')
    link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap-theme.min.css')
    link(rel='stylesheet', href='/stylesheets/style.css')
    script(src="/bower_components/jquery/dist/jquery.min.js")
    script(src="/bower_components/bootstrap/dist/js/bootstrap.min.js")
  body
    block content

Migrate jQuery to new version

doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap.min.css')
    link(rel='stylesheet', href='/bower_components/bootstrap/dist/css/bootstrap-theme.min.css')
    link(rel='stylesheet', href='/stylesheets/style.css')
    script(src="/bower_components/jquery/jquery.min.js")
    script(src="/bower_components/bootstrap/dist/js/bootstrap.min.js")
  body
    block content


doctype html
html
	head
		meta(name="viewport", content="width=device-width, initial-scale=1")
		meta(charset="utf-8")
		title hack.chat
		link(rel="stylesheet", href="/style.css")
		link(rel="stylesheet", href="/katex/katex.min.css")
		link#scheme-link(rel="stylesheet", href="/schemes/atelier-dune.css")
		script(src="/katex/katex.min.js")
		script(src="/katex/contrib/auto-render.min.js")
	body
		article.container
			#messages.messages

		footer#footer
			.container
				form#chatform.messages
					textarea#chatinput(type="text", autocomplete="off", autofocus)

		nav#sidebar
			#sidebar-content.hidden
				p
					input#pin-sidebar(type="checkbox")
					label(for="pin-sidebar") Pin sidebar
				h4 Settings
				p
					input#joined-left(type="checkbox", checked)
					label(for="joined-left") Join/left notify
				p
					input#parse-latex(type="checkbox", checked)
					label(for="parse-latex") Parse LaTeX
				p
					button#clear-messages Clear messages
				h4 Color scheme
				select#scheme-selector
				h4 Users online
				p (Click user to invite)
				ul#users

		script(src="/client.js")

Make links relative so they work anywhere

doctype html
html
	head
		meta(name="viewport", content="width=device-width, initial-scale=1")
		meta(charset="utf-8")
		title hack.chat
		link(rel="stylesheet", href="style.css")
		link(rel="stylesheet", href="katex/katex.min.css")
		link#scheme-link(rel="stylesheet", href="schemes/atelier-dune.css")
		script(src="katex/katex.min.js")
		script(src="katex/contrib/auto-render.min.js")
	body
		article.container
			#messages.messages

		footer#footer
			.container
				form#chatform.messages
					textarea#chatinput(type="text", autocomplete="off", autofocus)

		nav#sidebar
			#sidebar-content.hidden
				p
					input#pin-sidebar(type="checkbox")
					label(for="pin-sidebar") Pin sidebar
				h4 Settings
				p
					input#joined-left(type="checkbox", checked)
					label(for="joined-left") Join/left notify
				p
					input#parse-latex(type="checkbox", checked)
					label(for="parse-latex") Parse LaTeX
				p
					button#clear-messages Clear messages
				h4 Color scheme
				select#scheme-selector
				h4 Users online
				p (Click user to invite)
				ul#users

		script(src="client.js")


extends ./layout.jade

block homeNavItem
  li(class="active")
    a(href="/home") Home

block content
  h1 Welcome back, #{user.username}!

  div(class="row")
    div(class="col-md-1", style="text-align: center")
      img(src=user.avatarUrl)
    div(class="col-md-11")
      h4(style="margin-top: 0px") #{user.username}
      p(style="font-weight: bold") Level #{user.level} (#{user.title})
      div(class="progress")
        div(class="progress-bar progress-bar-warning", role="progressbar", aria-valuenow=user.experience, aria=valuemin="0", aria-valuemax=user.experienceForLevel, style="width: " + user.experiencePercentage + "%")
          span #{user.experience} / #{user.experienceForLevel} XP

  a(href=user.path) View your profile

  div(class="row")
    div(class="col-md-6")
      h2 Quests
      if quests.length > 0
        ul
          each quest in quests
            li
              a(href=quest.path)= quest.title
      else
        p You have not started any quests.

    div(class="col-md-6")
      h2 Quests You Own
      if ownedQuests.length > 0
        ul
          each quest in ownedQuests
            li
              a(href=quest.path)= quest.title
      else
        p You are not the owner of any quests.

Add callout to visit the quest list.

extends ./layout.jade

block homeNavItem
  li(class="active")
    a(href="/home") Home

block content
  h1 Welcome back, #{user.username}!

  div(class="row")
    div(class="col-md-1", style="text-align: center")
      img(src=user.avatarUrl)
    div(class="col-md-11")
      h4(style="margin-top: 0px") #{user.username}
      p(style="font-weight: bold") Level #{user.level} (#{user.title})
      div(class="progress")
        div(class="progress-bar progress-bar-warning", role="progressbar", aria-valuenow=user.experience, aria=valuemin="0", aria-valuemax=user.experienceForLevel, style="width: " + user.experiencePercentage + "%")
          span #{user.experience} / #{user.experienceForLevel} XP

  a(href=user.path) View your profile

  div(class="row")
    div(class="col-md-6")
      h2 Quests
      if quests.length > 0
        ul
          each quest in quests
            li
              a(href=quest.path)= quest.title
      else
        p You have not started any quests.
        p
          a(href="/quests") See available quests!

    div(class="col-md-6")
      h2 Quests You Own
      if ownedQuests.length > 0
        ul
          each quest in ownedQuests
            li
              a(href=quest.path)= quest.title
      else
        p You are not the owner of any quests.


doctype html
html(lang='en')

  head

    //- We need to specify the charset in order to use D3.
    meta(
      http-equiv="content-type"
      content="text/html; charset=UTF8"
    )

    link(
      rel='stylesheet'
      href='./css/dist.css?v=#{DATE_TIME}'
    )

    //- Fonts
    link(
      href = "//fonts.googleapis.com/css?family=Ubuntu+Mono|400"
      rel = "stylesheet"
      type = "text/css"
    )

  body
    #app
    script(
      src='./js/dist.js?v=#{DATE_TIME}'
    )

Add CSS dependency upon published icon-library CSS.

doctype html
html(lang='en')

  head

    //- We need to specify the charset in order to use D3.
    meta(
      http-equiv="content-type"
      content="text/html; charset=UTF8"
    )

    link(
      rel='stylesheet'
      href='./css/dist.css?v=#{DATE_TIME}'
    )

    //- Fonts
    link(
      href = "//fonts.googleapis.com/css?family=Ubuntu+Mono|400"
      rel = "stylesheet"
      type = "text/css"
    )

    //- Icons
    link(
      href = "//smaatoui.github.io/icon-library/css/icons.css"
      rel = "stylesheet"
      type = "text/css"
    )

  body
    #app
    script(
      src='./js/dist.js?v=#{DATE_TIME}'
    )


- var stylesheets = ['https://fonts.googleapis.com/css?family=Lora:400,400italic|Work+Sans:300,400,500,600', './css/bootstrap.min.css', './css/toolkit-startup.min.css', './css/styles.css'];
- var scripts = ['./js/jquery.min.js', './js/toolkit.min.js'];
doctype html
html(lang="en")
  head
    title="Legacy Conf 2016 - 8 October 2016 - Cambridge, UK - The world's first conference dedicated to defeating Legacy Code"
    for stylesheet in stylesheets
      link(rel="stylesheet" href=stylesheet)
    meta(charset="utf-8")
    meta(http-equiv="X-UA-Compatible" content="IE=edge")
    meta(name="viewport" content="width=device-width,initial-scale=1.0")
  body
    div#stage.stage
      include ./partials/sidebar.jade

      div#carousel.block.block-inverse.block-fill-height
        include ./partials/carousel-block.jade
      div.block.block-inverse.text-center
    nav(class="navbar navbar-default navbar-fixed-bottom")
      div.navbar-header
        span.navbar-brand="Register your interest"
      include ./partials/mailing-list-signup.jade
    for script in scripts
      script(src=script)

Use `section` for mailing list signup bar

- var stylesheets = ['https://fonts.googleapis.com/css?family=Lora:400,400italic|Work+Sans:300,400,500,600', './css/bootstrap.min.css', './css/toolkit-startup.min.css', './css/styles.css'];
- var scripts = ['./js/jquery.min.js', './js/toolkit.min.js'];
doctype html
html(lang="en")
  head
    title="Legacy Conf 2016 - 8 October 2016 - Cambridge, UK - The world's first conference dedicated to defeating Legacy Code"
    for stylesheet in stylesheets
      link(rel="stylesheet" href=stylesheet)
    meta(charset="utf-8")
    meta(http-equiv="X-UA-Compatible" content="IE=edge")
    meta(name="viewport" content="width=device-width,initial-scale=1.0")
  body
    div#stage.stage
      include ./partials/sidebar.jade

      div#carousel.block.block-inverse.block-fill-height
        include ./partials/carousel-block.jade
      div.block.block-inverse.text-center
    section(class="navbar navbar-default navbar-fixed-bottom")
      div.navbar-header
        span.navbar-brand="Register your interest"
      include ./partials/mailing-list-signup.jade
    for script in scripts
      script(src=script)


extends layout
block body
   .container
      br
      br
      .col-lg-6.col-lg-offset-3.panel.panel-default
         form(method='POST', action='/auth/login')
            - if (error!="")
            .alert.alert-dismissable.alert-danger
               button(type="button" class="close" data-dismiss="alert") ×
               p #{error}
            h2 Reset password
            br
            h3 User: #{user}
            br
            .form-group
               label Old password:
               input.form-control(type='password', name='oldpassword', required)
            .form-group
               label New password:
               input.form-control(type='password', name='password', required)
            div
               button.btn.btn-default.pull-right(type='submit') Submit
            br
            br
            br

Fix password reset infinite loop

extends layout
block body
   .container
      br
      br
      .col-lg-6.col-lg-offset-3.panel.panel-default
         form(method='POST', action='/api/resetPassword')
            - if (error!="")
               .alert.alert-dismissable.alert-danger
               button(type="button" class="close" data-dismiss="alert") ×
               p #{error}
            h2 Reset password
            br
            h3 User: #{user}
            br
            .form-group
               label Old password:
               input.form-control(type='password', name='oldpassword', required)
            .form-group
               label New password:
               input.form-control(type='password', name='password', required)
            div
               button.btn.btn-default.pull-right(type='submit') Submit
            br
            br
            br


.row
  .alert.alert-danger.animated.fadeIn(ng-show='errors')
    div(ng-repeat='error in errors') {{ error.msg }}
.row
  form(ng-submit='submit(auth)', name="authForm", novalidate)
    .col-sm-8.col-sm-offset-2
      .form-group(ng-class="{'has-error' : authForm.email.$invalid && authForm.email.$dirty}")
        label.control-label(for='email') Email
        input.form-control(type='text', name='email', ng-model='auth.email', placeholder='Email', autofocus=true, required)
      .form-group(ng-class="{'has-error' : authForm.password.$invalid && authForm.password.$dirty}")
        label.control-label(for='password') Пароль
        input.form-control(type='password', name='password', ng-model='auth.password', placeholder='Пароль', required)
      .form-group
        button.btn.btn-primary(type='submit', ng-disabled='authForm.$invalid')
          i.fa.fa-unlock-alt
          | Войти
        a.btn.btn-link(href='/forgot') Забыли пароль ?
      .panel.panel-dafault
        h4 Войти как пользователь
        include ../partials/social-auth

Remove shadow from auth modal

.row
  .alert.alert-danger.animated.fadeIn(ng-show='errors')
    div(ng-repeat='error in errors') {{ error.msg }}
.row
  form(ng-submit='submit(auth)', name="authForm", novalidate)
    .col-sm-8.col-sm-offset-2
      .form-group(ng-class="{'has-error' : authForm.email.$invalid && authForm.email.$dirty}")
        label.control-label(for='email') Email
        input.form-control(type='text', name='email', ng-model='auth.email', placeholder='Email', autofocus=true, required)
      .form-group(ng-class="{'has-error' : authForm.password.$invalid && authForm.password.$dirty}")
        label.control-label(for='password') Пароль
        input.form-control(type='password', name='password', ng-model='auth.password', placeholder='Пароль', required)
      .form-group
        button.btn.btn-primary(type='submit', ng-disabled='authForm.$invalid')
          i.fa.fa-unlock-alt
          | Войти
        a.btn.btn-link(href='/forgot') Забыли пароль ?
      div
        h4 Войти как пользователь
        include ../partials/social-auth


aside
	nav#side-nav.scroller
		ul.side-nav-menu.nav
			li
				a(href='#arbol') Árbol taxonómico
			li
				a(href='#nombres') Nombres comunes
			li
				a(href='#distribucion') Distribución
			li
				a(href='#historia') Historia natural
			li
				a(href='#taxonomia') Taxonomía
			li
				a(href='#estado') Estado de conservación
			li
				a(href='#uso') Uso y tráfico
			li
				a(href='#info') Más información

Change text of sidebarmenu to Jerarquía Taxonómica

aside
	nav#side-nav.scroller
		ul.side-nav-menu.nav
			li
				a(href='#arbol') Jerarquía taxonómica
			li
				a(href='#nombres') Nombres comunes
			li
				a(href='#distribucion') Distribución
			li
				a(href='#historia') Historia natural
			li
				a(href='#taxonomia') Taxonomía
			li
				a(href='#estado') Estado de conservación
			li
				a(href='#uso') Uso y tráfico
			li
				a(href='#info') Más información


.form-errors( class='js-form-errors' )
  if sd.ERROR
    != sd.ERROR

- service = 'Facebook'

.settings-linked-accounts__service.settings-split
  .settings-split__left
    .settings-linked-accounts__service__name
      = service

  .settings-split__right
    a.settings-linked-accounts__service__toggle.avant-garde-button-white(
      class='js-settings-linked-accounts__service__toggle'
      href= sd.AP[service.toLowerCase() + 'Path']
      data-service= service.toLowerCase()
      data-connected= user.isLinkedTo(service.toLowerCase()) ? 'connected' : 'disconnected'
    )
      i( class='icon-#{service.toLowerCase()}' )

Add apple to linked accounts screen

.form-errors( class='js-form-errors' )
  if sd.ERROR
    != sd.ERROR

for service in ['Apple', 'Facebook']
  .settings-linked-accounts__service.settings-split
    .settings-split__left
      .settings-linked-accounts__service__name
        = service

    .settings-split__right
      a.settings-linked-accounts__service__toggle.avant-garde-button-white(
        class='js-settings-linked-accounts__service__toggle'
        href= sd.AP[service.toLowerCase() + 'Path']
        data-service= service.toLowerCase()
        data-connected= user.isLinkedTo(service.toLowerCase()) ? 'connected' : 'disconnected'
      )
        i( class='icon-#{service.toLowerCase()}' )


template(name="settingHeaderBar")
  h1.header-setting-menu
    span {{_ 'admin-panel'}}

  .setting-header-btns.left
    unless isMiniScreen
      unless isSandstorm
        if currentUser
          a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
            i.fa(class="fa-cog")
            span {{_ 'settings'}}

          a.setting-header-btn.informations(href="{{pathFor 'information'}}")
            i.fa(class="fa-info-circle")
            span {{_ 'info'}}

          a.setting-header-btn.people(href="{{pathFor 'people'}}")
            i.fa(class="fa-users")
            span {{_ 'people'}}

        else
          a.setting-header-btn.js-log-in(
            title="{{_ 'log-in'}}")
            i.fa.fa-sign-in
            span {{_ 'log-in'}}

Change admin panel header order to info people version.

template(name="settingHeaderBar")
  h1.header-setting-menu
    span {{_ 'admin-panel'}}

  .setting-header-btns.left
    unless isMiniScreen
      unless isSandstorm
        if currentUser
          a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
            i.fa(class="fa-cog")
            span {{_ 'settings'}}

          a.setting-header-btn.people(href="{{pathFor 'people'}}")
            i.fa(class="fa-users")
            span {{_ 'people'}}

          a.setting-header-btn.informations(href="{{pathFor 'information'}}")
            i.fa(class="fa-info-circle")
            span {{_ 'info'}}

        else
          a.setting-header-btn.js-log-in(
            title="{{_ 'log-in'}}")
            i.fa.fa-sign-in
            span {{_ 'log-in'}}


article.login
	include ../../headline.jade
	section.login-form
		.inner-wrapper
			form( action="/login", method="POST")
				label(for="username") Username
				input(type="text" id="password" name="username" placeholder="johnfredrik" value = "johnfredrik" required)

				label(for="password") Password
				input(type="password" id="password" name="password" placeholder="password" value="SuperPass" required)

				label(for="remember") keep logged in
				input(type="checkbox" id="remember")

				button(class="submit" type="submit") Login

Remove johnfredrik as defaulted input

article.login
	include ../../headline.jade
	section.login-form
		.inner-wrapper
			form( action="/login", method="POST")
				label(for="username") Username
				input(type="text" id="password" name="username" placeholder="johnfredrik" value="" required)

				label(for="password") Password
				input(type="password" id="password" name="password" placeholder="password" value="" required)

				label(for="remember") keep logged in
				input(type="checkbox" id="remember")

				button(class="submit" type="submit") Login


doctype html
html
	head
		title Node Security Project | #{title}
		meta(name='viewport', content='width=device-width,initial-scale=1.0')
		link(rel='stylesheet', href='/css/bootstrap.css')
		//- link(rel='stylesheet', href='/css/bootstrap-responsive.css')
		link(rel='stylesheet', href='/css/app.css')
		link(href='https://fonts.googleapis.com/css?family=Lato:400,900', rel='stylesheet', type='text/css')
		link(rel='icon', href='/img/nodesecurity.png')

		script(type='text/javascript', src='/js/jquery.min.js')
		script(type='text/javascript', src='/js/bootstrap.min.js')

	body(class=bodyClasses)
		include menu/top
		block content

		include menu/bottom

Add link tag for rss feed

doctype html
html
	head
		title Node Security Project | #{title}
		meta(name='viewport', content='width=device-width,initial-scale=1.0')
		link(rel='stylesheet', href='/css/bootstrap.css')
		//- link(rel='stylesheet', href='/css/bootstrap-responsive.css')
		link(rel='stylesheet', href='/css/app.css')
		link(rel="alternate" type="application/rss+xml" title="Node Security Advisories" href="/rss.xml")
		link(href='https://fonts.googleapis.com/css?family=Lato:400,900', rel='stylesheet', type='text/css')
		link(rel='icon', href='/img/nodesecurity.png')

		script(type='text/javascript', src='/js/jquery.min.js')
		script(type='text/javascript', src='/js/bootstrap.min.js')

	body(class=bodyClasses)
		include menu/top
		block content

		include menu/bottom


doctype 5
html
    head
        title= title
        link(rel='stylesheet', href='/javascripts/vendor/bootstrap-css/css/bootstrap.css')
        link(rel='stylesheet', href='/stylesheets/style.css')

        block head

    body
        include menu

        .container
            block content

        script(src="/javascripts/vendor/jquery/jquery.min.js")
        script(src="/javascripts/vendor/bootstrap-javascript/bootstrap.min.js")
        script(src="/javascripts/vendor/angular/angular.min.js")
        script(src="/javascripts/vendor/angular-animate/angular-animate.min.js")
        script(src="/javascripts/vendor/angular-bootstrap/ui-bootstrap-tpls.min.js")
        script(src="/javascripts/vendor/bootbox/bootbox.js")

        block scripts

Use the un-minified version of AngularJS for development

doctype 5
html
    head
        title= title
        link(rel='stylesheet', href='/javascripts/vendor/bootstrap-css/css/bootstrap.css')
        link(rel='stylesheet', href='/stylesheets/style.css')

        block head

    body
        include menu

        .container
            block content

        script(src="/javascripts/vendor/jquery/jquery.min.js")
        script(src="/javascripts/vendor/bootstrap-javascript/bootstrap.min.js")
        script(src="/javascripts/vendor/angular/angular.js")
        script(src="/javascripts/vendor/angular-animate/angular-animate.min.js")
        script(src="/javascripts/vendor/angular-bootstrap/ui-bootstrap-tpls.min.js")
        script(src="/javascripts/vendor/bootbox/bootbox.js")

        block scripts