2014-01-03 13:32:13 -05:00
<!doctype html>
<!-- [if lt IE 7]> <html class="lt - ie10 lt - ie9 lt - ie8 lt - ie7" lang="en"> <![endif] -->
<!-- [if IE 7]> <html class="lt - ie10 lt - ie9 lt - ie8" lang="en"> <![endif] -->
<!-- [if IE 8]> <html class="lt - ie10 lt - ie9" lang="en"> <![endif] -->
<!-- [if IE 9]> <html class="lt - ie10" lang="en"> <![endif] -->
<!-- [if !IE]><! --> < html lang = "en" > <!-- <![endif] -->
< head >
< meta charset = "utf-8" >
2014-11-30 15:27:34 -05:00
< meta name = "viewport" content = "width=1024" >
2014-01-03 13:32:13 -05:00
2014-03-21 20:06:51 -04:00
< title > CodeCombat - Learn how to code by playing a game< / title >
2014-12-03 13:04:50 -05:00
< meta name = "description" content = "Learn programming with a multiplayer live coding strategy game for beginners. Learn Python or JavaScript as you defeat ogres, solve mazes, and level up. Open source HTML5 game!" >
2014-01-03 13:32:13 -05:00
2014-11-09 23:35:46 -05:00
< meta property = "og:title" content = "CodeCombat: Learn to Code by Playing a Game" >
2014-01-03 13:32:13 -05:00
< meta property = "og:url" content = "http://codecombat.com" >
< meta property = "og:type" content = "game" >
2014-11-09 23:35:46 -05:00
< meta property = "og:image" content = "http://codecombat.com/images/pages/home/play_img.png" >
2014-01-03 13:32:13 -05:00
< meta property = "og:site_name" content = "CodeCombat" >
< meta name = "twitter:card" content = "summary" >
2014-11-09 23:35:46 -05:00
< meta name = "twitter:title" content = "CodeCombat: Learn to Code by Playing a Game" >
2014-01-03 13:32:13 -05:00
< meta name = "twitter:url" content = "http://codecombat.com" >
< meta name = "twitter:site" content = "CodeCombat" >
< meta name = "twitter:image:src" content = "http://codecombat.com/images/pages/base/logo_square_250.png" >
2014-12-03 13:04:50 -05:00
< meta name = "twitter:description" content = "Learn programming with a multiplayer live coding strategy game for beginners. Learn Python or JavaScript as you defeat ogres, solve mazes, and level up. Open source HTML5 game!" >
2014-01-03 13:32:13 -05:00
< link href = "https://plus.google.com/115285980638641924488" rel = "publisher" / >
< link rel = "shortcut icon" href = "/images/favicon.ico" >
< link rel = "stylesheet" href = "/stylesheets/app.css" >
2015-12-21 15:39:59 -05:00
< link href = '//fonts.googleapis.com/css?family=Merriweather' rel = 'stylesheet' type = 'text/css' >
2014-11-09 23:35:46 -05:00
2015-02-27 19:07:41 -05:00
<!-- Google Analytics -->
< script >
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-39724129-1', 'auto');
< / script >
<!-- Errorception -->
< script >
2016-02-02 15:48:19 -05:00
(function(_,e,rr,s){_errs=[s];var c=_.onerror;_.onerror=function(){var a=arguments;_errs.push(a);
c&&c.apply(this,a)}; var b=function(){var c=e.createElement(rr),b=e.getElementsByTagName(rr)[0];
c.src="//beacon.errorception.com/"+s+".js";c.async=!0;b.parentNode.insertBefore(c,b)};
_.addEventListener?_.addEventListener("load",b,!1):_.attachEvent("onload",b)})
(window,document,"script","51a79585ee207206390002a2");
2015-02-27 19:07:41 -05:00
< / script >
2016-02-02 15:48:19 -05:00
<!-- Mixpanel -->
< script type = "text/javascript" >
(function(e,b){if(!b.__SV){var a,f,i,g;window.mixpanel=b;b._i=[];b.init=function(a,e,d){function f(b,h){var a=h.split(".");2==a.length&&(b=b[a[0]],h=a[1]); b[h]=function(){b.push([h].concat(Array.prototype.slice.call(arguments,0)))}}var c=b;"undefined"!==typeof d?c=b[d]=[]:d="mixpanel";c.people=c.people||[];c.toString=function(b){var a="mixpanel";"mixpanel"!==d&&(a+="."+d); b||(a+=" (stub)");return a};c.people.toString=function(){return c.toString(1)+".people (stub)"};i="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" ");for(g=0;g< i.length ; g + + ) f ( c , i [ g ] ) ; b . _i . push ( [ a , e , d ] ) } ; b . __SV = 1.2;a=e.createElement("script");a.type="text/javascript";a.async=!0;a.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL ? MIXPANEL_CUSTOM_LIB_URL: " file: " = = = e . location . protocol & & " / / cdn . mxpnl . com / libs / mixpanel-2-latest . min . js " . match ( / ^ \ / \ / / ) ? " https: / / cdn . mxpnl . com / libs / mixpanel-2-latest . min . js " : " / / cdn . mxpnl . com / libs / mixpanel-2-latest . min . js " ; f = e.getElementsByTagName("script")[0];f.parentNode.insertBefore(a,f)}})(document,window.mixpanel||[]);
mixpanel.init("e71a4e60db7e1dc5e685be96776280f9");
< / script >
2016-01-21 13:42:56 -05:00
2015-05-12 00:26:06 -04:00
< script src = "https://checkout.stripe.com/checkout.js" > < / script >
2015-01-06 13:53:32 -05:00
<!-- IE9 doesn't support defer attribute: https://github.com/h5bp/lazyweb - requests/issues/42 -->
<!-- [if IE 9]>
< script src = "/lib/ace/ace.js" > < / script >
< script src = "/javascripts/box2d.js" > < / script >
< script src = "/javascripts/vendor.js" > < / script >
< script src = "/javascripts/aether.js" > < / script >
< script src = "/javascripts/app.js" > < / script >
<![endif]-->
2015-03-02 13:11:58 -05:00
<!-- IE9 cors support breaks analytics logging: http://caniuse.com/#feat=cors -->
<!-- [if IE 9]>
< script type = "text/javascript" src = "http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.2/jquery.xdomainrequest.min.js" > < / script >
<![endif]-->
2015-01-06 13:53:32 -05:00
<![if (gt IE 9)|(!IE)]>
2014-11-28 19:38:50 -05:00
< script src = "/lib/ace/ace.js" defer > < / script >
< script src = "/javascripts/vendor.js" defer > < / script >
< script src = "/javascripts/aether.js" defer > < / script >
2015-04-07 16:44:40 -04:00
< script src = "/javascripts/app.js" defer > < / script >
2015-01-06 13:53:32 -05:00
<![endif]>
2014-04-02 16:12:24 -04:00
< script >
2014-12-07 21:56:57 -05:00
2016-02-19 16:50:00 -05:00
// IMPORTANT: If you edit here, make sure app/assets/javascripts/run-tests.js puts in placeholders for
// running client tests on Travis.
2014-12-01 13:45:19 -05:00
// Placeholder for iPad, which inspects the user object at the bottom of an injected page.
2016-02-16 23:39:59 -05:00
window.serverConfig = "serverConfigTag";
2014-12-01 13:45:19 -05:00
window.userObject = "userObjectTag";
2016-03-03 17:22:50 -05:00
window.amActually = "amActuallyTag";
2014-12-01 13:45:19 -05:00
window.me = {
get: function(attribute) { return window.userObject[attribute]; }
}
2014-11-28 19:38:50 -05:00
onLoad = function() {
2014-12-07 21:56:57 -05:00
try {
// IE8 warning
var htmlElement = document.querySelector("html");
if (htmlElement) {
var classAttribute = htmlElement.getAttribute('class');
if (classAttribute & & classAttribute.indexOf('lt-ie9') >= 0) {
alert("CodeCombat does not run in Internet Explorer 8 or older. Sorry!");
}
}
2015-02-27 19:07:41 -05:00
2014-12-07 21:56:57 -05:00
// IE8 can't handle this
FastClick.attach(document.body);
require('core/initialize');
} catch (error) { }
2014-11-28 19:38:50 -05:00
}
2014-04-02 16:12:24 -04:00
< / script >
2014-01-03 13:32:13 -05:00
< / head >
2016-02-05 16:28:10 -05:00
< body class = "clearfix" onload = "onLoad();" >
2014-01-03 13:32:13 -05:00
< div id = "fb-root" > < / div >
2016-02-05 16:28:10 -05:00
< div id = "page-container" >
2014-11-28 19:38:50 -05:00
< / div >
2014-03-19 00:11:11 -04:00
2016-02-02 17:50:43 -05:00
< div id = "modal-wrapper" class = "modal-content hide" > < / div >
2014-11-28 19:38:50 -05:00
2014-12-06 16:11:47 -05:00
< div class = "progress" id = "module-load-progress" >
< div class = "progress-bar" > < / div >
2014-11-28 19:38:50 -05:00
< / div >
2014-01-03 13:32:13 -05:00
< / body >
< / html >