Permalink
Find file
638e456 Sep 13, 2016
@philippebarbosa @revolunet @pootsbook @appleboy
213 lines (182 sloc) 10.3 KB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>JSbooks - free javascript books</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<meta name="description" content="JSbooks is a showcase of the bests free ebooks about Javascript. Find here the best publications about your favourite programming langage without spending any bucks !">
<meta name="author" content="Revolunet">
<meta property="og:image" content="http://jsbooks.revolunet.com/img/cover_modularjavascript.png" />
<meta property="og:title" content="JSbooks - Free Javascript Ebooks" />
<meta property="og:description" content="JSbooks is a showcase of the bests free ebooks about Javascript. Find here the best publications about JS without spending any bucks !" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://jsbooks.revolunet.com/" />
<meta name="twitter:card" content="JSbooks is a showcase of the bests free ebooks about Javascript. Find here the best publications about JS without spending any bucks !"/>
<meta name="twitter:url" content="http://jsbooks.revolunet.com/"/>
<meta name="twitter:title" content="JSbooks - Free Javascript Ebooks"/>
<meta name="twitter:description" content="JSbooks is a showcase of the bests free ebooks about Javascript. Find here the best publications about JS without spending any bucks !"/>
<meta name="twitter:image" content="http://jsbooks.revolunet.com/img/cover_modularjavascript.png"/>
<meta name=”twitter:creator” value=”@revolunet />
<link href='http://fonts.googleapis.com/css?family=Open+Sans+Condensed:700' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="./css/index.css" media="all">
<!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->
<link rel="shortcut icon" href="./img/ico/favicon.ico">
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="./img/ico/apple-touch-icon-144-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="./img/ico/apple-touch-icon-114-precomposed.png">
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="./img/ico/apple-touch-icon-72-precomposed.png">
<link rel="apple-touch-icon-precomposed" href="./assets/ico/apple-touch-icon-57-precomposed.png">
</head>
<body>
<a href="https://github.com/revolunet/JSbooks" class="github"><img src="https://s3.amazonaws.com/github/ribbons/forkme_left_white_ffffff.png" alt="Fork me on GitHub"></a>
<!-- ==========================
NAVBAR
=========================== -->
<div class="navbar navbar-fixed-top jshead">
<img src="./img/logo_jsbooks.png" alt="javascript tutorials" width="200" height="54">
<h1>The best free JavaScript resources</h1>
<a href="http://www.revolunet.com" target="_blank" title="revolunet" id="headerlink">by revolunet - rich web apps for desktop and mobile</a>
<a href="#" id="infos">?</a>
<div id="twittit">
<a href="https://twitter.com/revolunet" class="twitter-follow-button" data-show-count="false" data-show-screen-name="false">Follow @revolunet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div>
</div>
<!-- ==========================
TOGGLE INFOS
=========================== -->
<div class="container" id="jsinfos">
<div class="row">
<div class="span6">
<h4> Learn JavaScript for free ! </h4>
<hr>
<p> Discover the most popular free JavaScript books and improve your skills, thanks to the developers community ! Fork it on GitHub and add any books related to your best programming language :)</p>
<p> JSbooks will be updated with fresh and updated content out there. Drop your mail below to be notified on each update : </p>
<form action="http://revolunet.us1.list-manage.com/subscribe/post?u=43cbcac99221b1ab80c14a121&amp;id=b8d6f6c192" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email adress" required>
<input type="submit" value="Subscribe">
</form>
</div>
<div class="span6">
<h4>About us :</h4>
<hr>
<p>
<a href="http://www.revolunet.com" target="_blank" title="revolunet">Revolunet</a> is a company specialized in web applications development. <br>
Feel free to contact us by mail for further information: <br>
<a href="mailto:contact@revolunet.com">contact@revolunet.com</a>
</p>
<a href="https://twitter.com/share" class="twitter-share-button" data-text="Here are the best free JavaScript ressources to learn #js for free ! #webdevelopment #javascript" data-via="revolunet"></a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div>
</div>
</div>
<!-- ==========================
JOB / PYTHONBOOKS
=========================== -->
<div class="container">
<div class="row">
<div class="pythonbooks span12">
<p>See also :</p>
<a href="http://pythonbooks.revolunet.com/" target="_blank">
<img src="./img/logo_pythonbooks.png" alt="Python Books" title="Learn Python for free !" width="100" height="16">
</a>
</div>
<!--
<a class="recrutement span12" href="mailto:contact@revolunet.com?subject=work at revolunet" target="_blank"> We're hiring talented web developers in
Paris, France </a>
-->
<div class="span12 row-fluid">
<p class="span1">Filter by :</p>
<ul id="filterBy">
<li><a href="#" data-level="any" class="active" title="filter books by All">All</a></li>
<li><a href="#" data-level="Beginner" title="filter books by Beginner">Beginner</a></li>
<li><a href="#" data-level="Intermediate" title="filter books by Intermediate">Intermediate</a></li>
<li><a href="#" data-level="Advanced" title="filter books by Advanced">Advanced</a></li>
</ul>
</div>
</div>
<!-- ////////// WRAPPER BOOKS -->
<div class="row" id="issueswrap"></div>
</div>
<!-- ==========================
FOOTER
=========================== -->
<div class="footer">
<hr>
<a href="http://www.revolunet.com" target="_blank" onclick="_gaq.push(['_trackEvent', 'pythonbooks', 'clic footer'])">
<img src="img/revologo.png" width="150" height="29" alt="Revolunet">
</a>
<p> We provide high quality web applications for desktop and mobile.</p>
<a href="mailto:contact@revolunet.com" target="_blank" alt="revolunet" id="footerlink">Get in touch</a>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="./js/mustache.js"></script>
<script type="text/javascript">
function randOrd(){
return (Math.round(Math.random())-0.5);
}
function filterBy() {
var // var's sort by
active = 'active',
btFilterBy = $('#filterBy').find('a'),
booksection = $('.booksection');
// interaction filter by level
btFilterBy.on('click', function(e) {
e.preventDefault();
var level = $(this).data('level');
if (level==='any') {
// restore all books
booksection.show();
} else {
booksection.not('.' + level).fadeOut('fast');
booksection.filter('.' + level).fadeIn('fast');
}
btFilterBy.removeClass(active);
$(this).addClass(active);
});
}
$(document).ready(function() {
// get the data and compile into the html template
$.getJSON('./issues.json?' + Math.random(), function(data) {
var template = $('#booktpl').html(),
issuesWrap = $('#issueswrap');
data.books.sort(randOrd);
issuesWrap.html(Mustache.to_html(template, data));
filterBy();
});
var // var's info
jsInfos = $('#jsinfos'),
btInfo = $('a.#infos');
// interaction show more info about it
jsInfos.hide();
btInfo.on('click', function(){
jsInfos.slideToggle();
});
});
</script>
<script id="booktpl" type="text/template">
{{#books}}
<div class="span4 booksection {{level}}">
<a target="_blank" href="{{url}}">
<div class="view"> READ </div>
<div id="cover" style="background:black url('{{cover}}') no-repeat center;-webkit-background-size:cover;-moz-background-size:cover;background-size:cover;">
</div>
<h2>{{title}}</h2>
</a>
<h3><a href="{{authorUrl}}" target="_blank">{{author}}</a></h3>
<p class="level">{{level}}</p>
<p class="description">{{info}}</p>
</div>
{{/books}}
</script>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-294393-1");
pageTracker._trackPageview();
} catch(err) {}</script>
</body>
</html>