extends ../layout block content .panel.panel-info .panel-heading.text-center h1 Challenge Map .panel-body if (Math.random() > 0.999) img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner-dino.png') audio(autoplay src='https://s3.amazonaws.com/freecodecamp/t-rex-roar.mp3') else img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png') .col-xs-12.col-md-8.col-md-offset-2 h2.text-center span.text-primary #{camperCount}   | campers have joined our community br | since we launched   span.text-primary #{daysRunning}   | days ago. .spacer if (user && !user.tshirtVote && user.progressTimestamps.length > 5) h3.text-center Vote for the T-shirt design you like the most. h4.text-center We'll announce the winning design during our Summit on Saturday at Noon EST on  a(href='https://twitch.tv/freecodecamp' target='_blank') Twitch.tv |  and it will become our community's first official t-shirt (in women's and men's sizes). .row .col-xs-6 a(href="http://i.imgur.com/LlXGa5y.png" data-lightbox="img-enlarge") img.img-responsive(src='http://i.imgur.com/LlXGa5y.png' alt="t-shirt option 1 women's") .col-xs-6 a(href="http://i.imgur.com/aefwnnv.png" data-lightbox="img-enlarge") img.img-responsive(src='http://i.imgur.com/aefwnnv.png' alt="t-shirt option 2 women's") .button-spacer .row .col-xs-6 a(href="http://i.imgur.com/aYH0aqf.png" data-lightbox="img-enlarge") img.img-responsive(src='http://i.imgur.com/aYH0aqf.png' alt="t-shirt option 1 men's") .col-xs-6 a(href="http://i.imgur.com/v9KlV4g.png" data-lightbox="img-enlarge") img.img-responsive(src='http://i.imgur.com/v9KlV4g.png' alt="t-shirt option 2 men's") .button-spacer .row .col-xs-6 h3.text-center "Minified JavaScript Logo" a.button.btn.btn-block.btn-primary(href='/vote1') Vote for this Design .col-xs-6 h3.text-center "Function Call Logo" a.button.btn.btn-block.btn-primary(href='/vote2') Vote for this design .spacer .row .col-xs-12.col-sm-8.col-sm-offset-2 h3 800 Hours of Practice: ol for challengeBlock in blocks .row if (user) if (challengeBlock.completed === 100) .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.map-p.faded.negative-10 a(href='#' + challengeBlock.dashedName)= challengeBlock.name else .hidden-xs.col-sm-3.col-md-2 .progress.progress-bar-padding.text-center.thin-progress-bar .progress-bar(role='progressbar', aria-valuenow=(challengeBlock.completed), aria-valuemin='0', aria-valuemax='100', style='width: ' + challengeBlock.completed + '%;') .col-xs-12.col-sm-9.col-md-10 li.map-p.negative-10 a(href='#' + challengeBlock.dashedName)= challengeBlock.name else .hidden-xs.col-sm-3.col-md-2 span.negative-10 .col-xs-12.col-sm-9.col-md-10 li.map-p.negative-10 a(href='#' + challengeBlock.dashedName)= challengeBlock.name .row .col-xs-12.col-sm-8.col-sm-offset-2.negative-28 h3 800 Hours of   a(href="/nonprofits/directory") Real World Work Experience | : ol .row .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.map-p.negative-10 100-hour Nonprofit Project .row .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.map-p.negative-10 200-hour Nonprofit Project #1 .row .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.map-p.negative-10 200-hour Nonprofit Project #2 .row .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.map-p.negative-10 300-hour Nonprofit Project hr for challengeBlock in blocks .row a(href='#' name=challengeBlock.dashedName) .spacer.negative-55 .row .col-xs-12.col-sm-8.col-sm-offset-2 h3 #{challengeBlock.name} .row .col-xs-12 ol for challenge in challengeBlock.challenges if challenge.completed .row .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.faded.map-p.negative-10 a(href="/challenges/#{challenge.dashedName}") span.capitalize= challenge.type + ': ' span= challenge.title span.sr-only= " Complete" else .row .hidden-xs.col-sm-3.col-md-2 span.negative-10 .col-xs-12.col-sm-9.col-md-10 li.map-p.negative-10 a(href="/challenges/#{challenge.dashedName}") span.capitalize= challenge.type + ': ' span= challenge.title span.sr-only= " Incomplete" if (challengeBlock.completed === 100) .button-spacer .row .col-xs-12.col-sm-8.col-md-6.col-sm-offset-3.col-md-offset-2.hidden a.btn.btn-lg.btn-block.signup-btn.map-challenge-block-share Section complete. Share your Portfolio with your friends. .hidden(id="#{challengeBlock.name}") script. var username = !{JSON.stringify(user && user.username || '')}; var lastCompleted = !{JSON.stringify(lastCompleted || false)} // #announcementModal.modal(tabindex='-1') // .modal-dialog.animated.fadeInUp.fast-animation // .modal-content // .modal-header.challenge-list-header Add us to your LinkedIn profile // a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') × // .modal-body // h3.text-left LinkedIn now recognizes Free Code Camp as a university. // img.img-responsive.img-center(src='https://www.evernote.com/l/AHTzkHwtg-BHj57bqqDL7WFF8WgrI5V8cxwB/image.png') // h3.text-left It takes less than a minute to add Free Code Camp to your LinkedIn profile. // a.btn.btn-lg.btn-info.btn-block(name='_csrf', value=_csrf, aria-hidden='true', href='/linkedin', target='_blank') Show me how to do this // a.btn.btn-lg.btn-primary.btn-block(href='#', data-dismiss='modal', aria-hidden='true') Thanks for the heads-up //script. // $(document).ready(function () { // if (!localStorage || !localStorage.linkedIn) { // $('#announcementModal').modal('show'); // localStorage.linkedIn = "true"; // } // });