Skip to content

Commit

Permalink
Merge pull request #1 from revolunet/master
Browse files Browse the repository at this point in the history
merge orginal source into forked repository
  • Loading branch information
dkdndes authored Sep 15, 2017
2 parents ffe4088 + 4ae86aa commit 6854d86
Show file tree
Hide file tree
Showing 88 changed files with 766 additions and 354 deletions.
1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pythonbooks.revolunet.com
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# PythonBooks

PythonBooks is a showcase of the bests free ebooks about Python.
PythonBooks is a showcase of the best free ebooks about Python.

Learn Python, discover new fields, and muscle your brain for free !

Expand All @@ -26,13 +26,13 @@ Thanks per advance !

Historically, this project was supposed to be an experimental Apple 'NewsStand' application.

After some weeks of work, we discovered that having a functionnal application wasn't enough.
After some weeks of work, we discovered that having a functional application wasn't enough.

You also have to follow various Apple guidelines and use some Apple libraries to be 'NewsStand' compatible.

So we decided to go full web and this move gave the project a much wider audience.

Thanks Apple to give us this opportunity :)
Thanks Apple for giving us this opportunity :)


## Licence
Expand Down
36 changes: 28 additions & 8 deletions css/pythonbooks.css
Original file line number Diff line number Diff line change
Expand Up @@ -1231,14 +1231,34 @@ a.jsbookslinks {
color: #3775a9;
text-decoration: none;
}
.pythonbooks {
.jsbooks {
background-color: transparent;
margin: 0 0 30px;
margin: 18px 0 0px;
}
.pythonbooks > * {
.jsbooks > * {
display: inline;
margin-right: 10px;
}
#filterBy {
float: left;
overflow: hidden;
margin: 0 0 30px;
}
#filterBy li {
float: left;
margin: 0 0 0 10px;
list-style: none;
}
#filterBy li:first-child {
margin-left: 0;
}
#filterBy a {
color: #0b4d84;
}
#filterBy .active {
color: #2f99f1;
}

.booksection {
margin-bottom: 30px;
}
Expand Down Expand Up @@ -1325,19 +1345,19 @@ hr {
border-top: 1px solid #dfdddd;
border-bottom: 1px solid white;
}
ul {
ul#social_buttons {
list-style-type: none;
position: absolute;
top: 50%;
margin-top: -10px;
right: 40px;
height: 20px;
}
ul li {
ul#social_buttons li {
display: inline;
height: 20px;
}
ul li a {
ul#social_buttons li a {
vertical-align: top;
color: grey;
text-shadow: 1px 0 0 rgba(255, 255, 255, 0.4);
Expand All @@ -1348,7 +1368,7 @@ ul li a {
-ms-transition: all .2s linear;
transition: all .2s linear;
}
ul li a:hover {
ul#social_buttons li a:hover {
text-decoration: none;
color: black;
text-shadow:none;
Expand Down Expand Up @@ -1685,7 +1705,7 @@ ul li a:hover {
ul {
margin-top: -10px;
}
ul li:first-child {
ul#social_buttons li:first-child {
display: none;
}
}
Binary file added img/BMH.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/Learning_Python.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/Practical Data Analysis.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/Python3-powered.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/PythonDScover.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/PythonGuide.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/RPi_Essentials_eBook2_PythonGames-001.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/What_You_Need_to_Know_about_Python.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/algo_ps_python.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/annotated-algorithms.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/apple-touch-icon-114-precomposed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/automate_cover_medium.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/cover_IntermediatePython_Yasoob2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_alabamaintro.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_apprendrepython2.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_apprendrepython3.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/cover_biopython.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_buildingskillnonpro.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_buildingskillsoop.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_complexity.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_computervision.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_datastructandalg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified img/cover_divepython.jpg
Binary file modified img/cover_django.png
Binary file added img/cover_djangogirls_tutorial.jpg
Binary file modified img/cover_flask.png
Binary file added img/cover_functional_programming_in_python.gif
Binary file added img/cover_gettingstartedwithdjango.jpg
Binary file modified img/cover_googledevelopers.png
Binary file added img/cover_guidetodatamining.png
Binary file modified img/cover_highperf.png
Binary file added img/cover_how_to_make_mistakes_in_python.gif
Binary file modified img/cover_inventgame.jpg
Binary file modified img/cover_inventgame.png
Binary file modified img/cover_jessenoller.png
Binary file modified img/cover_kivy.png
Binary file modified img/cover_makinggame.png
Binary file modified img/cover_nltk.jpg
Binary file added img/cover_picking_python_version_manifesto.gif
Binary file modified img/cover_porting_python3.png
Binary file modified img/cover_pymotw.png
Binary file modified img/cover_pyramid.png
Binary file modified img/cover_python101.png
Binary file added img/cover_python4everybody.jpg
Binary file added img/cover_python_cookbook.jpg
Binary file added img/cover_python_in_hydrology.png
Binary file added img/cover_python_practice_book.png
Binary file modified img/cover_pythonstandardlibrairy.png
Binary file modified img/cover_snakewrangling.png
Binary file modified img/cover_stats.jpg
Binary file modified img/cover_swaroop.png
Binary file added img/cover_tangowithdjango.jpg
Binary file added img/cover_text_processing_in_python.jpg
Binary file modified img/cover_thinkpython.jpg
Binary file added img/djenofdjango.jpg
Binary file added img/exploreflask.png
Binary file added img/fullstackpython.jpg
Binary file added img/gasp_lessons.png
Binary file modified img/glyphicons-halflings-white.png
Binary file modified img/glyphicons-halflings.png
Binary file added img/hackingcyphers.png
Binary file added img/learn4.jpg
Binary file modified img/level.png
Binary file modified img/logo_jsbooks.png
Binary file modified img/logo_pythonbooks.png
Binary file added img/make_games_with_python.png
Binary file added img/modelingcreativity.png
Binary file modified img/pattern.png
Binary file added img/py3programming.png
Binary file modified img/pym.png
Binary file modified img/revologo.png
Binary file modified img/runestone.png
Binary file modified img/social_gplus.png
Binary file modified img/social_skype.png
Binary file modified img/social_twitter.png
Binary file added img/testdriven.jpg
Binary file added img/tutorial-python.jpg
Binary file modified img/view.png
Binary file added img/web2py.png
61 changes: 53 additions & 8 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
<img src="./img/logo_pythonbooks.png" alt="python tutorials" width="300" height="50">
<h1>The best free Python resources</h1>
<a href="http://www.revolunet.com" target="_blank" title="revolunet" id="headerlink">by revolunet - rich web apps for desktop and mobile</a>
<ul>
<ul id="social_buttons">
<li>
<a href="https://twitter.com/share" class="twitter-share-button" data-text="Here are the best Python ressources to learn #python for free ! #webdevelopment #python" 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>
Expand All @@ -43,15 +43,35 @@ <h1>The best free Python resources</h1>
<!-- ==========================
JOBS
=========================== -->
<!--
<div class="row">
<a class="recrutement span12" href="http://www.revolunet.com/recrutement-developpeur-web" target="_blank"> {{ • We're hiring talented web developers in Paris, France • }}</a>
<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="pythonbooks span12">
<p>See also :</p>
<a href="http://jsbooks.revolunet.com/" target="_blank">
<img src="./img/logo_jsbooks.png" alt="Javascript Books" title="Learn Javascript for free !" width="100" height="27">
</a>
</div>
</div>
-->
<div class="row">
<div class="jsbooks span12">
<p>See also :</p>
<a href="http://jsbooks.revolunet.com/" target="_blank">
<img src="./img/logo_jsbooks.png" alt="Javascript Books" title="Learn Javascript for free !" width="" height="14">
</a>
</div>

<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>

<!-- ///////// BOOKS -->
<div class="row" id="issueswrap"></div>
Expand All @@ -62,8 +82,8 @@ <h1>The best free Python resources</h1>
=========================== -->
<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 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>

Expand All @@ -79,15 +99,40 @@ <h1>The best free Python resources</h1>
<script type="text/javascript">

function randOrd(){
return (Math.round(Math.random())-0.5);
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() {
$.getJSON('./issues.json?' + Math.random(), function(data) {
var template = $('#booktpl').html();
data.books.sort(randOrd);
var html = Mustache.to_html(template, data);
$('#issueswrap').html(html);
filterBy();
});
$('#mod_infos').hide();
$('a.#infos').on('click', function(){
Expand All @@ -97,8 +142,8 @@ <h1>The best free Python resources</h1>
</script>

<script id="booktpl" type="text/template">
{{#books}}
<div class="span4 booksection">
{{#books}}
<div class="span4 booksection {{ level }}">
<a target="_blank" href="{{url}}">
<div class="view"></div>
<div title="{{ title }}" id="cover" style="background:black url('{{cover}}') no-repeat center;-webkit-background-size:cover;-moz-background-size:cover;background-size:cover;">
Expand All @@ -121,6 +166,6 @@ <h3><a href="{{authorUrl}}" target="_blank">{{author}}</a></h3>
var pageTracker = _gat._getTracker("UA-294393-1");
pageTracker._trackPageview();
} catch(err) {}</script>

</body>
</html>
Loading

0 comments on commit 6854d86

Please sign in to comment.