diff --git a/content/thoughts/bidouille.rst b/content/thoughts/bidouille.rst new file mode 100644 index 0000000..5cf4cce --- /dev/null +++ b/content/thoughts/bidouille.rst @@ -0,0 +1,55 @@ +Bidouille +######### + +:date: 30-04-2012 +:tags: diy, électronique, hack, bidouille +:lang: fr + +Bidouille bidouille bidouille. + +Je pense que je suis un bidouilleur logiciel: j'aime bien aller farfouiller +dans le code pour comprendre comment tel ou tel programme fonctionne (ou +trop souvent comment il ne fonctionne pas !), faire des petites modifications, +tester, modifier, re-tester, tout casser, réparer … + +Et cette bidouille, cette envie de comprendre comment les choses fonctionnent, +et depuis peu cette envie de mettre en pratique ces connaissances dépasse la +bidouille logicielle. J'ai passé une grosse partie de mon week-end à Main +d'Œuvre, où l'association `Under Construction +`_ faisait se rencontrer le milieu de +l'éducation populaire et le milieu de la bidouille. + +Forcement, ni une ni deux, je saute dans le bateau en marche et, n'étant ni un +très grand bidouilleur ni un très grand animateur, j'en ressort enrichi de +toutes ces rencontres, de tous ces préjugés qui tombent, et de quelques +découvertes bluffantes, des idées plein la tête. + +J'avais entendu parler des "`rep-raps `_", des +imprimantes en 3 dimensions capables de produire des pièces en plastique +mais je n'avais jamais eu l'occasion de voir le bousin en vrai. Et +c'est impressionnant. Vraiment. ("Bienvenue dans le 21ème siècle !") + +Ça laisse énormément à penser autour des questions d'émancipation +technologique, et de non dépendance envers les constructeurs, dans le milieu de +l'électro-ménager, par exemple. "Ah tiens, cette pièce est cassée, je vais +aller utiliser la rep-rap du coin pour me la fabriquer". Et hop, on mets fin à +tout un cycle d'obsolescence programmée… + +Mais au delà du défi technique et technologique, j'ai pu refaire un petit peu +d'électronique, et découvrir que j'y prends vraiment gout rapidement. Il y a +bien évidemment un coté très ludique (la led s'allume quand on la branche), +mais il y a surtout cette notion de DIY (Do It Yourself) sous jacente: une fois +que je sais comment ça fonctionne, je peux vraiment faire des choses utiles de +mes 10 doigts, réparer des petits objets, bidouiller ceux existants etc. + +De la récupération de composants on essaye de voir ce qu'on peut faire, on a +terminé par faire un "vibro-bot", un vibreur de téléphone portable monté sur +une tête de brosse à dents, faisant donc avancer cette dernière. + +C'est pour s'amuser, c'est pas sérieux ! Pour autant, les concepts de +l'électricité sont appris et je me retrouve avec cette envie de comprendre un +peu plus ce monde de l'électronique qui, je m'en rends compte, m'échappe encore +complètement. De l'éducation à la bidouille ! + +Allez, demain c'est fer à souder, piles, leds, interrupteurs, potars et c'est +parti ! diff --git a/content/thoughts/djangocong-2012.rst b/content/thoughts/djangocong-2012.rst new file mode 100644 index 0000000..0d1384d --- /dev/null +++ b/content/thoughts/djangocong-2012.rst @@ -0,0 +1,79 @@ +Djangocong 2012 +############### + +:date: 16-04-2012 +:lang: fr + +Ce week-end, c'était `djangocong`_, une conférence autour de `django`_, +de `python`_ et du web, qui avait lieu dans le sud, à Carnon-plage, à quelques +kilomètres de Montpellier la belle. + +J'ai vraiment apprécié les trois jours passés avec cette bande de geeks. Je +m'attendais à des *nerds*, j'y ai trouvé une qualité d'écoute, des personnes qui +partagent des valeurs qui leur sont chères, mais qui ne limitent pas +leurs discussions à du technique. Eeeh ouais, encore un préjugé qui tombe, +tiens :) + +En tant que *hackers*, on a le moyen de créer des outils qui sont utiles à tous, +et qui peuvent être utiles pour favoriser la collaboration et la mise en commun +des données. J'ai eu l'occasion de discuter de projets tournant autour de +l'entraide, que ça soit pour mettre en lien des associations d'économie sociale +et solidaire (ESS) ou simplement pour que les populations *non tech* `puissent +utiliser toute la puissance de l'outil qu'est le web +`_. + +Au niveau du format des conférences, je ne savais pas trop à quoi m'attendre, +au vu des échos de l'an dernier, mais c'était adapté: des mini-confs de 12mn le +samedi matin + début d'aprem, en mode no-wifi pour récupérer une qualité +d'écoute. Et contrairement à mes attentes, ce n'est pas trop court. Pas mal de +retours d'expérience pour le coup, et une matinée pas vraiment techniques, mais +ça pose le décor et permet de savoir qui fait quoi. + +Parmi l'ensemble des conférences du matin, je retiens principalement +celle de Mathieu Leplatre, "des cartes d'un autre monde", qui m'a réellement +bluffée quand à la facilité de créer des cartes avec `TileMill +`_, et qui me pousse à reconsidérer le fait que "la +carto, c'est compliqué". `La vidéo est (déja !) disponible en ligne +`_, je vous invite à la regarder +(c'est une 15aine de minutes) pour vous faire un avis ;) + +Une fois les conf passées, ça reste très intéressant, voire plus: il reste un +jour et demi pour discuter avec les autres présents. On a pu se retrouver avec +Mathieu pour discuter de "notre" projet `"carto +forms" `_, qui à finalement pu se +redéfinir un peu plus et donner naissance à un `README +`_. On en +à profité pour lui choisir un nouveau nom: "daybed", en référence à couchdb. + +Ça devrait se transformer en code d'ici peu. La curiosité aidant, on a pu +discuter du projet avec d'autres personnes et affiner les attentes de chacun +pour finalement arriver à quelque chose d'assez sympathique. + +J'ai aussi pu me rendre compte que pas mal de monde utilise `pelican +`_, le bout de code que j'ai codé pour générer ce +blog, et avoir des retours utiles ! Probablement des réflexions à venir +sur comment éviter qu'un projet open-source ne devienne chronophage, et sur +comment réussir à garder une qualité dans le code source tout en ne froissant +pas les contributeurs. + +Bien évidemment, c'était aussi l'occaz de rencontrer des gens qu'on ne voir que +sur les inter-nets, et de discuter un brin de tout ce qui fait que notre monde +est chouette et moins chouette. + +Entres autres faits notoires, JMad a perdu au baby-foot face à Exirel, même +en m'ayant à ses cotés pour le déconcentrer (et je suis un joueur d'un autre +monde - en d'autres termes, je suis nul), David`bgk ne s'est pas levé pour +aller courir le dimanche matin (il avait dit 5 heures!), Les suisses ont essayé +de me convertir à coup d'abricotine, j'ai perdu au skulls-n-roses en quelques +tours et on a allumé un feu chez Stéphane le dimanche soir (oui oui, à +montpellier, mi avril, je vous le dis qu'ils mentent avec leur soit disant +soleil). + +Et c'est sans parler de `la brasucade `_ … + +Bref, vivement la prochaine (et allez, cette fois ci je ferais une présentation +!) + +.. _djangocong: http://rencontres.django-fr.org +.. _python: http://python.org +.. _django: http://djangoproject.org diff --git a/content/thoughts/lifestyle.rst b/content/thoughts/lifestyle.rst new file mode 100644 index 0000000..9f17aec --- /dev/null +++ b/content/thoughts/lifestyle.rst @@ -0,0 +1,115 @@ +Lifestyle +######### + +:lang: fr +:date: 11-05-2012 + +Eh beh, c'est pas aussi simple qu'il y parait de trouver un environnement qui +permette autant de travailler correctement et de ne pas s'enfermer dans le +boulot. + +Surtout si comme moi vous cherchez à limiter vos déplacement, que vous aimez +vivre avec peu et cherchez à trouver un équilibre entre une vie connectée et +une vie *réelle* (oui, celle avec des vrais gens qui ont d'autres +préoccupations que l'informatique !). Comment réussir à trouver un juste +milieu entre le geek inconditionnel et le bon vivant, qui à du temps à +consacrer à autre chose qu'à son travail ? + +Voyages +======= + +Un des premiers trucs que j'ai trouvé surprennant en arrivant à Mozilla, c'est +la fréquence des voyages que l'on peut être amené à avoir. Ah, c'est pour la +bonne cause, c'est tellement plus sympa d'avoir les collègues à coté pour +bosser, plutôt qu'à l'autre bout du monde. Mais quand même, si je le voulais, +entre les semaines de travail et les conférences, je pourrais être tous les +deux mois aux États-Unis ! + +Une aubaine, penserons certains. Voyager, c'est *cool* ! Bon, si on mets de +coté le cout écologique d'un voyage (nécessairement en avion), la chose qui me +dérange le plus c'est cette impression de venir pour repartir. Voyager, c'est +sympa, mais avoir le temps de prendre un rythme de vie différent, de rencontrer +des gens, de construire quelque chose, ça me manque. + +Donc je décline quand je n'en ai pas l'envie, tout simplement. Je loupe des +choses intéressantes (`PyCon`_ à Santa Clara avait vraiment l'air +chouette !), mais ça me permet également d'avoir plus de temps pour vivre là ou +j'habite, pour construire quelque chose localement. Et puis des évènements, il +y en à tellement en France et en Europe auquel je n'assiste pas que ça me fait +mal au cœur d'aller à l'autre bout du monde pour faire la même chose ! + +Bien sur, je serais amené à voyager. Et autant que faire se peut je le +ferais avec plaisir et je tenterais de rester un peu plus avant et après sur +place (plus question de faire un aller/retour en une semaine !), question de me +faire à l'atmosphère ! `Tarek`_ est par exemple resté un mois à San Francisco +en janvier pour son dernier séjour, alors pourquoi ne pas prendre exemple ? +Tout de suite ça me parles plus. + +.. _Pycon: http://pycon.us +.. _Tarek: http://ziade.org + +Et quand-est-ce qu'on arrête ? +============================== + +Une autre chose assez difficile à gérer, c'est le temps. + +J'ai vraiment une chance monstrueuse, celle de faire un travail qui me plait, +éthiquement et techniquement. Je pourrais y passer mes journées et mes nuits +que je n'aimerais pas moins ça (même si il m'arrive bien sur de saturer !). + +Mais j'ai aussi d'autres envies, qui signifient aussi passer du temps +hors-ligne, parce que bizarrement, c'est là que j'ai l'impression de réfléchir +le plus. Loin de ce surplus d'informations… + +Facile à dire. + +D'autant que quand il est possible de travailler depuis n'importe où, +la séparation physique entre le lieu de travail et le lieu de vie tends à +disparaitre assez facilement. Et sans séparation physique, il faut une sacré +motivation pour savoir quand commencer et quand s'arrêter. + +J'essaye de me donner une règle simple: point trop n'en faut. Aucun intérêt à +rester travailler des heures durant sans s'arrêter, ou en tout cas pas +d'intérêt à le faire de manière trop régulière. Une journée qui commence tôt +(~9h) me permet de me concentrer le matin (les collègues californiens dorment) +et d'avoir un rythme assez "normal". Et puis, avec ce soleil qui commence à +inonder les terrasses, autant faire autre chose que de rester enfermé à coder +en fin d'après midi ! + +Surplus +======= + +Tiens, je parlais de surplus, nous y sommes. Que ça soit le surplus +d'informations ou le surplus d'objets, ça m'encombre ! Une journée, pour ma +part est faite de communications diverses, de code et de lectures (se tenir au +courant de ce qui se passe dans le monde du logiciel n'est pas une tâche des +plus facile, et qui peut facilement prendre énormément de temps). + +Je me demande si je ne devrais pas aspirer à la frugalité de ce coté là +également. Je reçois des mails toute la journée, et mon aggrégateur rss/atom se +remplit également très vite. Mais je n'ai aucunement besoin d'avoir toutes ces +informations dans l'heure, et de les vérifier de manière fréquente. De la même +manière, j'ai simplement arrêté de lire mes flux rss. + +Quelques (longues) fois dans la semaine semblent suffire et me permettent de +réussir à rester concentrer. + +Résolutions +=========== + +Soyons fous, tentons quelque chose de nouveau, c'est le printemps ! Pas de +communication dans la matinée, je n'en ai probablement pas besoin, sauf cas +extrêmes. Le matin, c'est pour se concentrer sur le travail à faire. + +Une fois les mails du matin dépilés (à 9h30), pas la peine de garder un œil +sur ma boite mail, j'irais y faire un tour en début et en fin d'après midi. + +Je pense même à débrancher internet, pour éviter les interactions et pour me +concentrer, mais j'ai comme l'impression que c'est un peu trop abrupt comme +approche. + +Aussi, définir en début de journée la liste des choses prévues, et revenir +dessus jour après jour me permettra surement d'avoir un aperçu un peu plus +global du travail accompli. + +L'avenir dira si tout ça fonctionne :-) diff --git a/light/static/css/main.css b/light/static/css/main.css new file mode 100644 index 0000000..f7cadb9 --- /dev/null +++ b/light/static/css/main.css @@ -0,0 +1,87 @@ +@import url(http://fonts.googleapis.com/css?family=Rosario); +@import url("pygment.css"); +@import url("typogrify.css"); + +body { + width: 800px; + margin: auto; + font-size: 1.3em; + background-color: #fffff0; + font-family: "Georgia", serif; +} + +a{ + color: #000; +} + +nav ul { + list-style-type: none; +} + +nav ul li { + float: right; + margin-left: 10px; +} + +.content { + clear: both; +} + + .content h1, h2, h3, h4, h5, h6{ + font-family: 'Rosario', arial, serif; + margin-left: -20px; + } + + .content h1{ + font-size: 2.5em; + } + + .content p{ + font-size: 1.1em; + text-align: justify; + text-justify: newspaper; + } + + .content .date{ + font-style: italic; + font-size: 0.7em; + } + + .content h2{ + font-size: 1.5em; + } + + .content a{ + padding: 2px; + color: #0F0F0F; + } + + .content a:hover{ + background-color: #0F0F0F; + color: #eaeaea; + } + + .content .highlight pre{ + padding: 15px; + background-color: black; + color: white; + overflow: scroll; + + } + + .content blockquote { + margin: 0px; + margin-right: 40px; + margin-left: 20px; + padding-left: 20px; + text-align: left; + border-left: 3px black solid; + letter-spacing: 2px; + font-style: italic; + text-align: justify; + } + +.description { + margin-top: -15px; + font-style: italic; +} diff --git a/light/static/css/pygment.css b/light/static/css/pygment.css new file mode 100644 index 0000000..594b0fa --- /dev/null +++ b/light/static/css/pygment.css @@ -0,0 +1,205 @@ +.hll { +background-color:#FFFFCC; +} +.c { +color:#408090; +font-style:italic; +} +.err { +border:1px solid #FF0000; +} +.k { +color:#007020; +font-weight:bold; +} +.o { +color:#666666; +} +.cm { +color:#408090; +font-style:italic; +} +.cp { +color:#007020; +} +.c1 { +color:#408090; +font-style:italic; +} +.cs { +background-color:#FFF0F0; +color:#408090; +} +.gd { +color:#A00000; +} +.ge { +font-style:italic; +} +.gr { +color:#FF0000; +} +.gh { +color:#000080; +font-weight:bold; +} +.gi { +color:#00A000; +} +.go { +color:#303030; +} +.gp { +color:#C65D09; +font-weight:bold; +} +.gs { +font-weight:bold; +} +.gu { +color:#800080; +font-weight:bold; +} +.gt { +color:#0040D0; +} +.kc { +color:#007020; +font-weight:bold; +} +.kd { +color:#007020; +font-weight:bold; +} +.kn { +color:#007020; +font-weight:bold; +} +.kp { +color:#007020; +} +.kr { +color:#007020; +font-weight:bold; +} +.kt { +color:#902000; +} +.m { +color:#208050; +} +.s { +color:#4070A0; +} +.na { +color:#4070A0; +} +.nb { +color:#007020; +} +.nc { +color:#0E84B5; +font-weight:bold; +} +.no { +color:#60ADD5; +} +.nd { +color:#555555; +font-weight:bold; +} +.ni { +color:#D55537; +font-weight:bold; +} +.ne { +color:#007020; +} +.nf { +color:#06287E; +} +.nl { +color:#002070; +font-weight:bold; +} +.nn { +color:#0E84B5; +font-weight:bold; +} +.nt { +color:#062873; +font-weight:bold; +} +.nv { +color:#BB60D5; +} +.ow { +color:#007020; +font-weight:bold; +} +.w { +color:#BBBBBB; +} +.mf { +color:#208050; +} +.mh { +color:#208050; +} +.mi { +color:#208050; +} +.mo { +color:#208050; +} +.sb { +color:#4070A0; +} +.sc { +color:#4070A0; +} +.sd { +color:#4070A0; +font-style:italic; +} +.s2 { +color:#4070A0; +} +.se { +color:#4070A0; +font-weight:bold; +} +.sh { +color:#4070A0; +} +.si { +color:#70A0D0; +font-style:italic; +} +.sx { +color:#C65D09; +} +.sr { +color:#235388; +} +.s1 { +color:#4070A0; +} +.ss { +color:#517918; +} +.bp { +color:#007020; +} +.vc { +color:#BB60D5; +} +.vg { +color:#BB60D5; +} +.vi { +color:#BB60D5; +} +.il { +color:#208050; +} diff --git a/light/static/css/typogrify.css b/light/static/css/typogrify.css new file mode 100644 index 0000000..c9b34dc --- /dev/null +++ b/light/static/css/typogrify.css @@ -0,0 +1,3 @@ +.caps {font-size:.92em;} +.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;} +.dquo {margin-left:-.38em;} diff --git a/light/templates/article.html b/light/templates/article.html new file mode 100644 index 0000000..687a369 --- /dev/null +++ b/light/templates/article.html @@ -0,0 +1,30 @@ +{% extends "base.html" %} +{% block title %}{{ article.title }}{% endblock title %} +{% block content %} +

{{ article.title }}

+

{% if article.lang == "fr" %}Publié le{% else %}Published + on{% endif%} {{ article.locale_date }}. + {% if article.translations %} + {% if article.lang == "fr" %}Vous pouvez aussi lire cet article en {% else %}You can also read this article in {% endif %} + {% for tr in article.translations %} + {{ tr.lang }} + {% endfor %} + {% endif %} +

+ {{ article.content }} + + {% if DISQUS_SITENAME %} +
+

Comments

+
+ +
+ {% endif %} +{% endblock %} diff --git a/light/templates/base.html b/light/templates/base.html new file mode 100644 index 0000000..1440ff0 --- /dev/null +++ b/light/templates/base.html @@ -0,0 +1,12 @@ + + + + + + + Alexis Métaireau + + +
{% block content %}{% endblock %}
+ + diff --git a/light/templates/index.html b/light/templates/index.html new file mode 100644 index 0000000..574abd6 --- /dev/null +++ b/light/templates/index.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} +{% block content %} + +

Hi and welcome in this web logs. I try here to talk about freedom, free + software, activism and education. And about anything I think would be + valuable to share.

+ +

Bienvenue sur ces carnets. J'essaye de parler ici de liberté, + de logiciel libre d'activisme et d'éducation. Et finalement d'un peu tout + ce qui me passe par la tête et que j'ai envie de partager.

+ + {% for article in articles %} +

{{ article.title }} ({{article.lang}}) + {% if article.translations %} + (also in {% for article in article.translations %}{{ article.lang }}{% endfor %}) + {% endif %} + {{ article.date.strftime('%B %Y')}} +

+ {% if article.description %} +

{{ article.description }}

+ {% endif %} + {% endfor %} +{% endblock %} diff --git a/pelican.conf.py b/pelican.conf.py index 4db2dda..a61161e 100644 --- a/pelican.conf.py +++ b/pelican.conf.py @@ -3,8 +3,8 @@ PATH = "content" AUTHOR = u'Alexis Métaireau' SITENAME = u"Alexis' log" THEME = "theme" +CSS_FILE = "wide.css" -DISQUS_SITENAME = "blog-notmyidea" SITEURL = 'http://blog.notmyidea.org' GITHUB_URL = "http://github.com/ametaireau/" diff --git a/theme/static/css/main.css b/theme/static/css/main.css index 566a1f8..9290507 100644 --- a/theme/static/css/main.css +++ b/theme/static/css/main.css @@ -1,105 +1,430 @@ -@import url(http://fonts.googleapis.com/css?family=Rosario); +/* + Name: Smashing HTML5 + Date: July 2009 + Description: Sample layout for HTML5 and CSS3 goodness. + Version: 1.0 + Author: Enrique Ramírez + Autor URI: http://enrique-ramirez.com +*/ + +/* Imports */ +@import url("reset.css"); @import url("pygment.css"); @import url("typogrify.css"); +@import url(http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz&subset=latin); -body { - width: 800px; - margin: auto; - font-size: 1.3em; - background-color: #fffff0; - font-family: "Georgia", serif; +/***** Global *****/ +/* Body */ +body { + background: #F5F4EF; + color: #000305; + font-size: 87.5%; /* Base font size: 14px */ + font-family: 'Trebuchet MS', Trebuchet, 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; + line-height: 1.429; + margin: 0; + padding: 0; + text-align: left; } -a{ - color: #000; +/* Headings */ +h1 {font-size: 2em } +h2 {font-size: 1.571em} /* 22px */ +h3 {font-size: 1.429em} /* 20px */ +h4 {font-size: 1.286em} /* 18px */ +h5 {font-size: 1.143em} /* 16px */ +h6 {font-size: 1em} /* 14px */ + +h1, h2, h3, h4, h5, h6 { + font-weight: 400; + line-height: 1.1; + margin-bottom: .8em; + font-family: 'Yanone Kaffeesatz', arial, serif; } -nav ul { - list-style-type: none; +h3, h4, h5, h6 { margin-top: .8em; } + +hr { border: 2px solid #EEEEEE; } + +/* Anchors */ +a {outline: 0;} +a img {border: 0px; text-decoration: none;} +a:link, a:visited { + color: #C74350; + padding: 0 1px; + text-decoration: underline; +} +a:hover, a:active { + background-color: #C74350; + color: #fff; + text-decoration: none; + text-shadow: 1px 1px 1px #333; } -nav ul li { - float: right; - margin-left: 10px; +h1 a:hover { + background-color: inherit +} + +/* Paragraphs */ +p {margin-bottom: 1.143em;} + +strong, b {font-weight: bold;} +em, i {font-style: italic;} + +::-moz-selection {background: #F6CF74; color: #fff;} +::selection {background: #F6CF74; color: #fff;} + +/* Lists */ +ul { + list-style: outside disc; + margin: 1em 0 1.5em 1.5em; } -#top {} - #top .author { - float: left; - } - - #top .links { - float: right; - list-style-type: none; - } - - #top .links, #top .links li{ - display: inline; - } - - #top .links li{ - margin-left: 10px; - } - -.content { - clear: both; +ol { + list-style: outside decimal; + margin: 1em 0 1.5em 1.5em; } - - .content h1, h2, h3, h4, h5, h6{ - font-family: 'Rosario', arial, serif; - margin-left: -20px; - } - .content h1{ - font-size: 2.5em; - } +.post-info { + float:right; + margin:10px; + padding:5px; +} - .content p{ - font-size: 1.1em; - text-align: justify; - text-justify: newspaper; - } +.post-info p{ + margin-bottom: 1px; +} - .content .date{ - margin-top: -20px; - font-style: italic; - } +.readmore { float: right } - .content h2{ - font-size: 1.5em; - } +dl {margin: 0 0 1.5em 0;} +dt {font-weight: bold;} +dd {margin-left: 1.5em;} - .content a{ - padding: 2px; - color: #0F0F0F; - } +pre{background-color: #000; padding: 10px; color: #fff; margin: 10px; overflow: auto;} - .content a:hover{ - background-color: #0F0F0F; - color: #eaeaea; - } - - .content .highlight pre{ - padding: 15px; - background-color: black; - color: white; - overflow: scroll; - - } - - .content blockquote { - margin: 0px; - margin-right: 40px; - margin-left: 20px; - padding-left: 20px; - text-align: left; - border-left: 3px black solid; - letter-spacing: 2px; - font-style: italic; - text-align: justify; - } - -.description { - margin-top: -15px; +/* Quotes */ +blockquote { + margin: 20px; font-style: italic; } +cite {} + +q {} + +div.note { + float: right; + margin: 5px; + font-size: 85%; + max-width: 300px; +} + +/* Tables */ +table {margin: .5em auto 1.5em auto; width: 98%;} + + /* Thead */ + thead th {padding: .5em .4em; text-align: left;} + thead td {} + + /* Tbody */ + tbody td {padding: .5em .4em;} + tbody th {} + + tbody .alt td {} + tbody .alt th {} + + /* Tfoot */ + tfoot th {} + tfoot td {} + +/* HTML5 tags */ +header, section, footer, +aside, nav, article, figure { + display: block; +} + +/***** Layout *****/ +.body {clear: both; margin: 0 auto; width: 800px;} +img.right figure.right {float: right; margin: 0 0 2em 2em;} +img.left, figure.left {float: right; margin: 0 0 2em 2em;} + +/* + Header +*****************/ +#banner { + margin: 0 auto; + padding: 2.5em 0 0 0; +} + + /* Banner */ + #banner h1 {font-size: 3.571em; line-height: 0;} + #banner h1 a:link, #banner h1 a:visited { + color: #000305; + display: block; + font-weight: bold; + margin: 0 0 .6em .2em; + text-decoration: none; + width: 427px; + } + #banner h1 a:hover, #banner h1 a:active { + background: none; + color: #C74350; + text-shadow: none; + } + + #banner h1 strong {font-size: 0.36em; font-weight: normal;} + + /* Main Nav */ + #banner nav { + background: #000305; + font-size: 1.143em; + height: 40px; + line-height: 30px; + margin: 0 auto 2em auto; + padding: 0; + text-align: center; + width: 800px; + + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + } + + #banner nav ul {list-style: none; margin: 0 auto; width: 800px;} + #banner nav li {float: left; display: inline; margin: 0;} + + #banner nav a:link, #banner nav a:visited { + color: #fff; + display: inline-block; + height: 30px; + padding: 5px 1.5em; + text-decoration: none; + } + #banner nav a:hover, #banner nav a:active, + #banner nav .active a:link, #banner nav .active a:visited { + background: #C74451; + color: #fff; + text-shadow: none !important; + } + + #banner nav li:first-child a { + border-top-left-radius: 5px; + -moz-border-radius-topleft: 5px; + -webkit-border-top-left-radius: 5px; + + border-bottom-left-radius: 5px; + -moz-border-radius-bottomleft: 5px; + -webkit-border-bottom-left-radius: 5px; + } + +/* + Featured +*****************/ +#featured { + background: #fff; + margin-bottom: 2em; + overflow: hidden; + padding: 20px; + width: 760px; + + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +#featured figure { + border: 2px solid #eee; + float: right; + margin: 0.786em 2em 0 5em; + width: 248px; +} +#featured figure img {display: block; float: right;} + +#featured h2 {color: #C74451; font-size: 1.714em; margin-bottom: 0.333em;} +#featured h3 {font-size: 1.429em; margin-bottom: .5em;} + +#featured h3 a:link, #featured h3 a:visited {color: #000305; text-decoration: none;} +#featured h3 a:hover, #featured h3 a:active {color: #fff;} + +/* + Body +*****************/ +#content { + background: #fff; + margin-bottom: 2em; + overflow: hidden; + padding: 20px 20px; + width: 760px; + + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +/* + Extras +*****************/ +#extras {margin: 0 auto 3em auto; overflow: hidden;} + +#extras ul {list-style: none; margin: 0;} +#extras li {border-bottom: 1px solid #fff;} +#extras h2 { + color: #C74350; + font-size: 1.429em; + margin-bottom: .25em; + padding: 0 3px; +} + +#extras a:link, #extras a:visited { + color: #444; + display: block; + border-bottom: 1px solid #F4E3E3; + text-decoration: none; + padding: .3em .25em; +} + +#extras a:hover, #extras a:active {color: #fff;} + + /* Blogroll */ + #extras .blogroll { + float: left; + width: 615px; + } + + #extras .blogroll li {float: left; margin: 0 20px 0 0; width: 185px;} + + /* Social */ + #extras .social { + float: right; + width: 175px; + } + + #extras div[class='social'] a { + background-repeat: no-repeat; + background-position: 3px 6px; + padding-left: 25px; + } + + /* Icons */ + .social a[href*='delicious.com'] {background-image: url('../images/icons/delicious.png');} + .social a[href*='digg.com'] {background-image: url('../images/icons/digg.png');} + .social a[href*='facebook.com'] {background-image: url('../images/icons/facebook.png');} + .social a[href*='last.fm'], .social a[href*='lastfm.'] {background-image: url('../images/icons/lastfm.png');} + .social a[type$='atom+xml'], .social a[type$='rss+xml'] {background-image: url('../images/icons/rss.png');} + .social a[href*='twitter.com'] {background-image: url('../images/icons/twitter.png');} + .social a[href*='linkedin.com'] {background-image: url('../images/icons/linkedin.png');} + +/* + About +*****************/ +#about { + background: #fff; + font-style: normal; + margin-bottom: 2em; + overflow: hidden; + padding: 20px; + text-align: left; + width: 760px; + + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; +} + +#about .primary {float: left; width: 165px;} +#about .primary strong {color: #C64350; display: block; font-size: 1.286em;} +#about .photo {float: left; margin: 5px 20px;} + +#about .url:link, #about .url:visited {text-decoration: none;} + +#about .bio {float: right; width: 500px;} + +/* + Footer +*****************/ +#contentinfo {padding-bottom: 2em; text-align: right;} + +/***** Sections *****/ +/* Blog */ +.hentry { + display: block; + clear: both; + border-bottom: 1px solid #eee; + padding: 1.5em 0; +} +li:last-child .hentry, #content > .hentry {border: 0; margin: 0;} +#content > .hentry {padding: 1em 0;} +.hentry img{display : none ;} +.entry-title {font-size: 3em; margin-bottom: 10px; margin-top: 0;} +.entry-title a:link, .entry-title a:visited {text-decoration: none; color: #333;} +.entry-title a:visited {background-color: #fff;} + +.hentry .post-info * {font-style: normal;} + + /* Content */ + .hentry footer {margin-bottom: 2em;} + .hentry footer address {display: inline;} + #posts-list footer address {display: block;} + + /* Blog Index */ + #posts-list {list-style: none; margin: 0;} + #posts-list .hentry {padding-left: 10px; position: relative;} + + #posts-list footer { + left: 10px; + position: relative; + float: left; + top: 0.5em; + width: 190px; + } + + /* About the Author */ + #about-author { + background: #f9f9f9; + clear: both; + font-style: normal; + margin: 2em 0; + padding: 10px 20px 15px 20px; + + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + } + + #about-author strong { + color: #C64350; + clear: both; + display: block; + font-size: 1.429em; + } + + #about-author .photo {border: 1px solid #ddd; float: left; margin: 5px 1em 0 0;} + + /* Comments */ + #comments-list {list-style: none; margin: 0 1em;} + #comments-list blockquote { + background: #f8f8f8; + clear: both; + font-style: normal; + margin: 0; + padding: 15px 20px; + + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + } + #comments-list footer {color: #888; padding: .5em 1em 0 0; text-align: right;} + + #comments-list li:nth-child(2n) blockquote {background: #F5f5f5;} + + /* Add a Comment */ + #add-comment label {clear: left; float: left; text-align: left; width: 150px;} + #add-comment input[type='text'], + #add-comment input[type='email'], + #add-comment input[type='url'] {float: left; width: 200px;} + + #add-comment textarea {float: left; height: 150px; width: 495px;} + + #add-comment p.req {clear: both; margin: 0 .5em 1em 0; text-align: right;} + + #add-comment input[type='submit'] {float: right; margin: 0 .5em;} + #add-comment * {margin-bottom: .5em;} diff --git a/theme/static/css/reset.css b/theme/static/css/reset.css new file mode 100644 index 0000000..1e21756 --- /dev/null +++ b/theme/static/css/reset.css @@ -0,0 +1,52 @@ +/* + Name: Reset Stylesheet + Description: Resets browser's default CSS + Author: Eric Meyer + Author URI: http://meyerweb.com/eric/tools/css/reset/ +*/ + +/* v1.0 | 20080212 */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + background: transparent; + border: 0; + font-size: 100%; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; +} + +body {line-height: 1;} + +ol, ul {list-style: none;} + +blockquote, q {quotes: none;} + +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} + +/* remember to define focus styles! */ +:focus { + outline: 0; +} + +/* remember to highlight inserts somehow! */ +ins {text-decoration: none;} +del {text-decoration: line-through;} + +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: collapse; + border-spacing: 0; +} \ No newline at end of file diff --git a/theme/static/css/wide.css b/theme/static/css/wide.css new file mode 100644 index 0000000..8db407c --- /dev/null +++ b/theme/static/css/wide.css @@ -0,0 +1,49 @@ +@import url("main.css"); + +body { + font:1.3em/1.3 "Hoefler Text","Georgia",Georgia,serif,sans-serif; +} + +.published{ + float: right; + margin-bottom: 10px; +} + +#banner nav { + display: none; + -moz-border-radius: 0px; + margin-bottom: 20px; + overflow: hidden; + font-size: 1em; + background: #F5F4EF; +} + +#banner nav ul{ + padding-right: 50px; +} + +#banner nav li{ + float: right; + color: #000; +} + +#banner nav li a { + color: #000; +} + +#banner h1 { + margin-bottom: -18px; +} + +#featured, #extras { + padding: 50px; +} + +#featured { + padding-top: 20px; +} + +#extras { + padding-top: 0px; + padding-bottom: 0px; +} diff --git a/theme/static/images/icons/delicious.png b/theme/static/images/icons/delicious.png new file mode 100644 index 0000000..c6ce246 Binary files /dev/null and b/theme/static/images/icons/delicious.png differ diff --git a/theme/static/images/icons/facebook.png b/theme/static/images/icons/facebook.png new file mode 100644 index 0000000..a7914b4 Binary files /dev/null and b/theme/static/images/icons/facebook.png differ diff --git a/theme/static/images/icons/lastfm.png b/theme/static/images/icons/lastfm.png new file mode 100644 index 0000000..b09c787 Binary files /dev/null and b/theme/static/images/icons/lastfm.png differ diff --git a/theme/static/images/icons/linkedin.png b/theme/static/images/icons/linkedin.png new file mode 100644 index 0000000..feb0496 Binary files /dev/null and b/theme/static/images/icons/linkedin.png differ diff --git a/theme/static/images/icons/rss.png b/theme/static/images/icons/rss.png new file mode 100644 index 0000000..7d4e85d Binary files /dev/null and b/theme/static/images/icons/rss.png differ diff --git a/theme/static/images/icons/twitter.png b/theme/static/images/icons/twitter.png new file mode 100644 index 0000000..d611928 Binary files /dev/null and b/theme/static/images/icons/twitter.png differ diff --git a/theme/templates/analytics.html b/theme/templates/analytics.html new file mode 100644 index 0000000..ba174fc --- /dev/null +++ b/theme/templates/analytics.html @@ -0,0 +1,11 @@ +{% if GOOGLE_ANALYTICS %} + + +{% endif %} \ No newline at end of file diff --git a/theme/templates/archives.html b/theme/templates/archives.html new file mode 100644 index 0000000..f7f1c40 --- /dev/null +++ b/theme/templates/archives.html @@ -0,0 +1,13 @@ +{% extends "base.html" %} +{% block content %} +
+

Archives for {{ SITENAME }}

+ +
+{% for article in dates %} +
{{ article.locale_date }}
+
{{ article.title }}
+{% endfor %} +
+
+{% endblock %} diff --git a/theme/templates/article.html b/theme/templates/article.html index 01817d2..9303a00 100644 --- a/theme/templates/article.html +++ b/theme/templates/article.html @@ -1,29 +1,39 @@ {% extends "base.html" %} -{% block content %} -

{{ article.title }}

-

{% if article.lang == "fr" %}Publié le{% else %}Published - on{% endif%} {{ article.locale_date }}. - {% if article.translations %} - {% if article.lang == "fr" %}Vous pouvez aussi lire cet article en {% else %}You can also read this article in {% endif %} - {% for tr in article.translations %} - {{ tr.lang }} - {% endfor %} - {% endif %} -

- {{ article.content }} +{% block title %}{{ article.title }}{% endblock %} +{% block content %} +
+
+

+ {{ article.title }}

{% include 'twitter.html' %}
+
- {% if DISQUS_SITENAME %} -
-

Comments

-
- -
- {% endif %} + + {{ article.locale_date }} + + {{ article.content }} + +
+

Published in {{ article.category }}. {% if PDF_PROCESSOR %}get the + pdf{% endif %}{% include 'taglist.html' %}

+
+
+ {% if DISQUS_SITENAME %} +
+

Comments !

+
+ +
+ {% endif %} + +
+
{% endblock %} diff --git a/theme/templates/article_infos.html b/theme/templates/article_infos.html new file mode 100644 index 0000000..a1993a0 --- /dev/null +++ b/theme/templates/article_infos.html @@ -0,0 +1,14 @@ + diff --git a/theme/templates/author.html b/theme/templates/author.html new file mode 100644 index 0000000..0b37290 --- /dev/null +++ b/theme/templates/author.html @@ -0,0 +1,2 @@ +{% extends "index.html" %} +{% block title %}{{ SITENAME }} - {{ author }}{% endblock %} diff --git a/theme/templates/authors.html b/theme/templates/authors.html new file mode 100644 index 0000000..e69de29 diff --git a/theme/templates/base.html b/theme/templates/base.html index 45d07b5..9ce5a16 100644 --- a/theme/templates/base.html +++ b/theme/templates/base.html @@ -1,16 +1,48 @@ - - + + - - - - Alexis Métaireau + {% block title %}{{ SITENAME }}{%endblock%} + + + + {% if FEED_RSS %} + + {% endif %} + + + + + + + - -
-

{{ AUTHOR }}'s thoughts

- -
-
{% block content %}{% endblock %}
+ + +{% include 'github.html' %} + + {% block content %} + {% endblock %} + +{% include 'analytics.html' %} +{% include 'disqus_script.html' %} diff --git a/theme/templates/categories.html b/theme/templates/categories.html new file mode 100644 index 0000000..e4d9d0a --- /dev/null +++ b/theme/templates/categories.html @@ -0,0 +1,8 @@ +{% extends "base.html" %} +{% block content %} +
    +{% for category, articles in categories %} +
  • {{ category }}
  • +{% endfor %} +
+{% endblock %} diff --git a/theme/templates/category.html b/theme/templates/category.html new file mode 100644 index 0000000..56f8e93 --- /dev/null +++ b/theme/templates/category.html @@ -0,0 +1,2 @@ +{% extends "index.html" %} +{% block title %}{{ SITENAME }} - {{ category }}{% endblock %} diff --git a/theme/templates/comments.html b/theme/templates/comments.html new file mode 100644 index 0000000..bb033c0 --- /dev/null +++ b/theme/templates/comments.html @@ -0,0 +1 @@ +{% if DISQUS_SITENAME %}

There are comments.

{% endif %} diff --git a/theme/templates/disqus_script.html b/theme/templates/disqus_script.html new file mode 100644 index 0000000..c4f442c --- /dev/null +++ b/theme/templates/disqus_script.html @@ -0,0 +1,11 @@ +{% if DISQUS_SITENAME %} + +{% endif %} diff --git a/theme/templates/github.html b/theme/templates/github.html new file mode 100644 index 0000000..75592ac --- /dev/null +++ b/theme/templates/github.html @@ -0,0 +1,9 @@ +{% if GITHUB_URL %} + +{% if GITHUB_POSITION != "left" %} +Fork me on GitHub +{% else %} +Fork me on GitHub +{% endif %} + +{% endif %} diff --git a/theme/templates/index.html b/theme/templates/index.html index 2fb65a3..f7a9c5d 100644 --- a/theme/templates/index.html +++ b/theme/templates/index.html @@ -1,19 +1,35 @@ {% extends "base.html" %} -{% block content %} +{% block content_title %}{% endblock %} +{% block content %} +{% if articles %} + {% for article in articles_page.object_list %} -

Hey, I'm Alexis and this is my blog. I try to talk about freedom, free - software and activism. I'm currently spending my days in Paris, doing - python at mozilla, on the services team.

- - {% for article in articles %} -

{{ article.title }} - {% if article.translations %} - (also in {% for article in article.translations %}{{ article.lang }}{% endfor %}) + {% if loop.first and articles_page.has_previous %} +
+
    {% endif %} -

-

{{ article.locale_date }}

- {% if article.description %} -

{{ article.description }}

+
  • + + {% if loop.last and (articles_page.has_previous() + or not articles_page.has_previous() and loop.length > 1) %} + {% include 'pagination.html' %} + {% endif %} + {% if loop.last %} + + {% endif %} {% endfor %} -{% endblock %} +{% else %} +
    +

    Pages

    + {% for page in PAGES %} +
  • {{ page.title }}
  • + {% endfor %} +
    +{% endif %} +{% endblock content %} diff --git a/theme/templates/page.html b/theme/templates/page.html new file mode 100644 index 0000000..9635fb8 --- /dev/null +++ b/theme/templates/page.html @@ -0,0 +1,10 @@ +{% extends "base.html" %} +{% block title %}{{ page.title }}{% endblock %} +{% block content %} +
    +

    {{ page.title }}

    + {% if PDF_PROCESSOR %}get + the pdf{% endif %} + {{ page.content }} +
    +{% endblock %} diff --git a/theme/templates/pagination.html b/theme/templates/pagination.html new file mode 100644 index 0000000..83c587a --- /dev/null +++ b/theme/templates/pagination.html @@ -0,0 +1,15 @@ +{% if DEFAULT_PAGINATION %} +

    + {% if articles_page.has_previous() %} + {% if articles_page.previous_page_number() == 1 %} + « + {% else %} + « + {% endif %} + {% endif %} + Page {{ articles_page.number }} / {{ articles_paginator.num_pages }} + {% if articles_page.has_next() %} + » + {% endif %} +

    +{% endif %} diff --git a/theme/templates/piwik.html b/theme/templates/piwik.html new file mode 100644 index 0000000..ff459af --- /dev/null +++ b/theme/templates/piwik.html @@ -0,0 +1,16 @@ +{% if PIWIK_URL and PIWIK_SITE_ID %} + +{% endif %} \ No newline at end of file diff --git a/theme/templates/tag.html b/theme/templates/tag.html new file mode 100644 index 0000000..68cdcba --- /dev/null +++ b/theme/templates/tag.html @@ -0,0 +1,2 @@ +{% extends "index.html" %} +{% block title %}{{ SITENAME }} - {{ tag }}{% endblock %} diff --git a/theme/templates/taglist.html b/theme/templates/taglist.html new file mode 100644 index 0000000..8a0006a --- /dev/null +++ b/theme/templates/taglist.html @@ -0,0 +1,2 @@ +{% if article.tags %}tags: {% for tag in article.tags %}{{ tag }} {% endfor %}{% endif %} diff --git a/theme/templates/tags.html b/theme/templates/tags.html new file mode 100644 index 0000000..e69de29 diff --git a/theme/templates/translations.html b/theme/templates/translations.html new file mode 100644 index 0000000..0079883 --- /dev/null +++ b/theme/templates/translations.html @@ -0,0 +1,6 @@ +{% if article.translations %} +Translations: + {% for translation in article.translations %} + {{ translation.lang }} + {% endfor %} +{% endif %} diff --git a/theme/templates/twitter.html b/theme/templates/twitter.html new file mode 100644 index 0000000..c6b159f --- /dev/null +++ b/theme/templates/twitter.html @@ -0,0 +1,3 @@ +{% if TWITTER_USERNAME %} + +{% endif %} \ No newline at end of file