extends ../layout block content script. var completedChallenges = !{JSON.stringify(completedChallengeList)}; var challengeList = !{JSON.stringify(challengeList)}; .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-10.col-md-offset-1 h2.text-center span.text-primary #{camperCount}   | campers have joined our community br | since we launched   span.text-primary #{daysRunning}   | days ago. .spacer .row .col-xs-12.col-sm-8.col-sm-offset-2 h3 800 Hours of Practice: ol for challengeBlock in challengeList .row if (user) if (challengeBlock.completed.length === challengeBlock.challenges.length) .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.large-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.large-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.length / challengeBlock.challenges.length) * 100), aria-valuemin='0', aria-valuemax='100', style='width: ' + ((challengeBlock.completed.length / challengeBlock.challenges.length) * 100) + '%;') .col-xs-12.col-sm-9.col-md-10 li.large-p.negative-10 a(href='#' + challengeBlock.dashedName)= challengeBlock.name else .hidden-xs.col-sm-3 span.negative-10 .col-xs-12.col-sm-9.col-md-10 li.large-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.large-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.large-p.negative-10 100-hour Nonprofit Project .row .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.large-p.negative-10 200-hour Nonprofit Project #1 .row .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.large-p.negative-10 200-hour Nonprofit Project #2 .row .hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.large-p.negative-10 300-hour Nonprofit Project hr for challengeBlock in challengeList .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 completedChallengeList.indexOf(challenge.id || challenge._id) > -1 .row .hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.large-p.negative-10 .col-xs-12.col-sm-9.col-md-10 li.faded.large-p.negative-10 a(href="/challenges/#{challenge.dashedName}")= challenge.name else .row .hidden-xs.col-sm-3.col-md-2 span.negative-10 .col-xs-12.col-sm-9.col-md-10 li.large-p.negative-10 a(href="/challenges/#{challenge.dashedName}")= challenge.name #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"; } });