h1. Le workshop Les technologies du web offrent un environnement de publication ouvert et décentralisé. Les documents web sont ainsi éditables en différents endroits et temporalités par une variété de personnes et d'outils, rompant avec la logique linéaire de l'ère Gutenberg. Dans cet espace, la notion de flux est centrale: le flux des données, allant de la conversion de documents "bruts" vers la production de multiples formats; le flux des formes produites, conditionné par la struture du HTML et la logique de «cascade» des feuilles de style; ou encore le flux des personnes et les nouveaux moyens de collaboration qui leurs sont offerts par le net. Si cet espace offre de nouvelles possibilités, cela ne va pas sans poser de questions. Comment penser un design alors sans le subordonner au contenu? Comment publier sur différents formats sans nier la spécificité des différents supports? Comment tester et combiner différentes pistes de mise en page? Comment se partager les taches tout en permettant à tous d'avoir une vue d'ensemble sur l'objet produit? Nous tenterons ensemble d'imaginer quelques réponses possibles à ces questions en imaginant et développant, à l'aide notamment de HTML, CSS et Javascript, des prototypes pour produire des objets imprimés. Venez simplement avec un ordinateur portable et un navigateur web à jour comme firefox](https://www.mozilla.org/fr/firefox/new/)) et, si possible, avec un éditeur de code comme atom](https://atom.io/)) Questions sous-jacentes modèles de production non-linéaires (ex. book sprint via ethertoff) comment penser la spécificité des différents supports de publication (éviter le plus petit dénominateur commun pour le design) penser et tester différentes versions (branches)
* !thumbs/00-ola-00.JPG! * !thumbs/00-ola-01.JPG! * !thumbs/00-ola-02.JPG! * !thumbs/00-ola-03.jpg! * !thumbs/00-ola-04.jpg! * !thumbs/00-ola-05.jpg! * !thumbs/00-ola-06.jpg! * !thumbs/00-ola-07.jpg! * !thumbs/00-ola-08.jpg! * !thumbs/00-ola-09.jpg! * !thumbs/00-ola-10.jpg! * !thumbs/00-ola-11.jpg! * !thumbs/00-ola-12.jpg! * !thumbs/00-ola-13.jpg! * !thumbs/00-ola-14.jpg! * !thumbs/00-ola-15.jpg! * !thumbs/00-ola-16.jpg! * !thumbs/00-ola-17.jpg! * !thumbs/00-ola-18.jpg! * !thumbs/00-ola-19.jpg! * !thumbs/00-ola-20.jpg! * !thumbs/00-ola-21.jpg! * !thumbs/00-ola-22.jpg! * !thumbs/00-ola-23.jpg! * !thumbs/00-ola-24.jpg! * !thumbs/00-ola-25.jpg! * !thumbs/00-ola-26.jpg! * !thumbs/00-ola-27.jpg! * !thumbs/00-ola-28.jpg! * !thumbs/00-ola-29.jpg! * !thumbs/00-ola-30.jpg! * !thumbs/00-ola-31.jpg!
h1. Alex h2. Mettre en page un Médor (WIP) !thumbs/alex-02.png! h2. Grid system en CSS (WIP) Utiliser css pour dessiner une grille et utiliser la fonctionalité `display: grid` de css. !thumbs/alex-00.png! https://jsfiddle.net/zw9c7owa/17/
* !thumbs/alex-01.pdf!
h1. La Convivialité New Generation h2. Bachir Soussi Chiadmi !thumbs/bachir-00.jpg! Projet de Transposition de "La Convivialité", Ivan Illich, en 2017 et à propos des espaces numériques
* !thumbs/bachir-01.png! * !thumbs/bachir-02.png! * !thumbs/bachir-03.png! * !thumbs/bachir-04.png! * !thumbs/bachir-05.png! * !thumbs/bachir-06.png!
* "conv-ng.zip":sources/conv-ng.zip
h1. README.intern h2. Gabriel Vaury Premier test d'un rapport de stage sous forme de "README" revisité et commenté !thumbs/gabriel-06.png! Matière première !thumbs/gabriel-01.png! * *-3 flux de texte* : ** -_log_ initial sous forme de carnet de bord ** -_commentaires_ post-rédaction amenant un recul et un 'décryptage' des activités faites ** -_commandes_ apprises recontextualisées * *-2 flux d'images* : ** -Screenshots pris pendant le stage ** -Photos prises "en dehors" du stage Objectif * -Explorer la perméabilité entre la hiérarchie du contenu et du code et comment celle-ci peut nourrir visuellement la mise en page du rapport * -Mettre en relation les rapports fait _à chaud_ lors du stage et les prises de conscience _à froid_ * -[Optionel] Réaliser une version print et une version web de ce rapport To Do * - -Intégrer un système de "CMS" pour appeler le contenu dans la structure HTML- * - -Mise en forme gérée par Markdown ou autre (?)- ** Problème reglé avec "BeautifulSoup et pypandoc":https://figureslibres.io/gogs/bachir/gitbook-html2print * - Gérer les listes en tant que footnotes pour les extraire du flux et les imbriquer dans le flux principal Avancement Nettoyage et Markdownisation du texte initial !thumbs/gabriel-02.png! Premier test avec pandoc seul !thumbs/gabriel-03.png! !thumbs/gabriel-04.png! Utilisation du script !thumbs/gabriel-07.png! !thumbs/gabriel-05.png! Se pose maintenant le problèmes des footnotes !thumbs/gabriel-00.png! Il reste encore beaucoup de travail mais la structure est la, il me reste les vacances pour finir le contenu (les commentaires) et ajouter les images
* "sources.zip":sources/sources.zip
h1. magic system h3. Kenji Luyeye Notre projet (w/ Elie Partouche) consiste à générer une édition qui reprend une grille de Bande Dessinée dans laquelle figurent des formes aléatoires produites par Processing. Nous partageons les tâches de la façon suivante : Elie s'occupe de mettre au point le sketch sur p5.js et il gère l'export des images, Kenji conçoit la mise en page dynamique. h2. SAMEDI Je commence par le design des gabarits en croquis. Alexandre me montre les propriété grid sur css, qui convienne mieux pour ce projet que flexbox. [alt text](images/2.png"") Je me familiarise avec grid et transpose mes croquis en HTML/CSS. Le CSS est beaucoup trop long, Alexandre me suggère donc d'insérer du style directement dans le HTML. Après m'être approprié le système de grid, je décide d'injecter de l'aléatoire car je constate que lorsque j'organise ma grille de façon illogique des formes amusantes se créent. La solution la plus évidente serait d'utiliser javascript et de créer des boucles. Nous essayerons demain. h2. DIMANCHE Nous avons joint nos forces sur javascript et réussi à créer un gabarit aléatoire.
h1. Grid h3. Kenji Luyeye Notre projet (w/ Elie Partouche) consiste à générer une édition qui reprend une grille de Bande Dessinée dans laquelle figurent des formes aléatoires produites par Processing. Nous partageons les tâches de la façon suivante : Elie s'occupe de mettre au point le sketch sur p5.js et il gère l'export des images, Kenji conçoit la mise en page dynamique. h2. SAMEDI Je commence par le design des gabarits en croquis. Alexandre me montre les propriété grid sur css, qui convienne mieux pour ce projet que flexbox. [alt text](images/2.png"") Je me familiarise avec grid et transpose mes croquis en HTML/CSS. Le CSS est beaucoup trop long, Alexandre me suggère donc d'insérer du style directement dans le HTML. Après m'être approprié le système de grid, je décide d'injecter de l'aléatoire car je constate que lorsque j'organise ma grille de façon illogique des formes amusantes se créent. La solution la plus évidente serait d'utiliser javascript et de créer des boucles. Nous essayerons demain. h2. DIMANCHE Nous avons joint nos forces sur javascript et réussi à créer un gabarit aléatoire.
* !thumbs/Kenji-Elie-01.png! * !thumbs/Kenji-Elie-02.png! * !thumbs/Kenji-Elie-03.png! * !thumbs/Kenji-Elie-04.png! * !thumbs/Kenji-Elie-05.png! * !thumbs/Kenji-Elie-06.png! * !thumbs/Kenji-Elie-07.png!
h1. Le nom de mon projet h2. Kévin Tessier
* !thumbs/kevin-00.png! * !thumbs/kevin-01.png! * !thumbs/kevin-02.png! * !thumbs/kevin-03.png! * !thumbs/kevin-04.png! * !thumbs/kevin-05.png!
h1. Reverse h2. Lucile Béal Objectif: créer un outil qui permette d'imprimer une création web, pour la référencer dans une édition. Dans l'idéal la mise en page serait automatique. Question: Comment transcrire l'organisation d'un site dans la mise en page d'un livre? Liens/menus/les chemins possibles etc. Format? Réflection: partir du constat que le web ne sert plus qu'à référencer des savoirs, des activités, des organisations de notre monde physique. Il est une source de création et de savoirs: serait-il utile/enrichissant de référencer physiquement ces créations sur papier? Web et print sont des supports de savoirs (physique/virtuels), mais peuvent aussi être considérés comme des outils de création qui se complètent. Objet de création web mis en page: "ClickClickClick" par le Studio Moniker !images/tutorial-getting-started-krita_part1_14_net.jpg! Pour insérer des images, comme des shoot écrans de votre travail, commencez par les déposer dans le dossier images de votre dossier perso puis ajouter cette ligne: bc. !images/nomdemonimage.jpeg! Toutes les images seront insérez automatiquement a la fin de votre description dans la documentation finale, sauf celle ajouté manuellement dans le texte.
h1. CtrlPtoSurvive h2. Nicolas Tilly Inspiré du "Whole Earth Catalog" de Steward Brand, le site est un catalogue d'outils de survie qu'il est possible d'imprimer au format A3 à l'aide du bouton dans la page. CtrlPtoSurvive fonctionne comme un instrument d’évaluation et d’accès. À l’aide de ce catalogue, l’utilisateur saura mieux évaluer ce qu’il est nécessaire d’acquérir en cas de fin du monde imminente. Imprimer un format différent graphiquement de la page Web. Gérer une mise en page Web et une mise en page print (A3). Visualiser dans le navigateur la mise en page print (emulate css media). h1. Recherches graphiques du Whole Earth Catalog: !thumbs/nicolas-12.png! h1. Concept de mise en page Web qui s'imprime en poster A3 : !thumbs/nicolas-08.jpg! h1. Work in progress du projet : p. Emulate CSS Media : prévisualisation de la feuille de style pour le print dans Chrome. !thumbs/nicolas-07.png! h1. Construction du poster A3: !thumbs/nicolas-03.png! h1. Construction de la page Web: !thumbs/nicolas-11.png! J'ai ajouté un bouton pour pouvoir imprimer la page Web : bc.. p. La mise en page est basée sur "flexbox":http://cssreference.io/flexbox/ !thumbs/nicolas-09.png! !thumbs/nicolas-10.png! h1. Rendus du poster A3 à partir de la page Web: Grâce à : bc.. @media print { button { display: none; } .logo { left: 10mm; top: 5mm; margin-left: 0; width: 100px; height: 100px; /* background: #000000;*/ } img { -webkit-filter: grayscale(1); filter: grayscale(1); width: 90%; } ... } p. j'ai modifié la mise en page de la page Web pour l'adapter au format cible A3. !thumbs/nicolas-04.png! !thumbs/nicolas-05.png! !thumbs/nicolas-06.png! !thumbs/nicolas-01.png! !thumbs/nicolas-02.png! h1. html2print: !thumbs/nicolas-00.jpg!
* "CtrlPtoSurvive.pdf":sources/CtrlPtoSurvive.pdf * "nicolastilly.zip":sources/nicolastilly.zip
h1. update h2. Pierre-Yves Fave J'ai fait quelques tests. J'ai été initié au rudiments des css. C'est bien agréable d'apprendre comme ça. Mon but était de récuperer un flux rss issu de wordpress, et de comprendre comment mettre en page avec des techniques actuelles. L'imprimer ou l'extraire pour pouvoir le manipuler, et continuer à intervenir dessus. Bachir a programmé une moulinette, devant moi. et c'est comme ça que je comprends le mieux le code, dans le temps de son écriture. Il n'y a rien de tel que le direct. Sarah Alex et les autres , merci pour vos conseils. Il me reste des trucs a comprendre, mais là, je bloquais depuis un bout de temps sur ces trucs. en div, j'suis con.
* !thumbs/PierreYves-00.jpg! * !thumbs/PierreYves-01.jpg! * !thumbs/PierreYves-02.jpg! * !thumbs/PierreYves-03.jpg! * !thumbs/PierreYves-04.jpg!
* "Mon_poster.pdf":sources/Mon_poster.pdf * "postsrecup_1.zip":sources/postsrecup_1.zip * "postsrecup.zip":sources/postsrecup.zip * "pyRss2html-starter.zip":sources/pyRss2html-starter.zip * "python-rss2html.zip":sources/python-rss2html.zip
h1. Le workshop Les technologies du web offrent un environnement de publication ouvert et décentralisé. Les documents web sont ainsi éditables en différents endroits et temporalités par une variété de personnes et d'outils, rompant avec la logique linéaire de l'ère Gutenberg. Dans cet espace, la notion de flux est centrale: le flux des données, allant de la conversion de documents "bruts" vers la production de multiples formats; le flux des formes produites, conditionné par la struture du HTML et la logique de «cascade» des feuilles de style; ou encore le flux des personnes et les nouveaux moyens de collaboration qui leurs sont offerts par le net. Si cet espace offre de nouvelles possibilités, cela ne va pas sans poser de questions. Comment penser un design alors sans le subordonner au contenu? Comment publier sur différents formats sans nier la spécificité des différents supports? Comment tester et combiner différentes pistes de mise en page? Comment se partager les taches tout en permettant à tous d'avoir une vue d'ensemble sur l'objet produit? Nous tenterons ensemble d'imaginer quelques réponses possibles à ces questions en imaginant et développant, à l'aide notamment de HTML, CSS et Javascript, des prototypes pour produire des objets imprimés. Venez simplement avec un ordinateur portable et un navigateur web à jour comme firefox](https://www.mozilla.org/fr/firefox/new/)) et, si possible, avec un éditeur de code comme atom](https://atom.io/)) Questions sous-jacentes modèles de production non-linéaires (ex. book sprint via ethertoff) comment penser la spécificité des différents supports de publication (éviter le plus petit dénominateur commun pour le design) penser et tester différentes versions (branches)
h1. arena2print h2. Timothée Goguely h3. 24.06.17 The idea of this project is to connect "are.na API":https://dev.are.na/documentation with "html2print":http://osp.kitchen/tools/html2print/ to be able to print any Arena channel – like "this one about Ivan Illich":https://www.are.na/csaba-osvath/ivan-illich for example – at any format. Create a new Rails app called "arena2print". !thumbs/timothee_goguely-00.png! Install the Arena Ruby interface "arena-rb":https://github.com/aredotna/arena-rb into my app. !thumbs/timothee_goguely-01.png! Implement "authentication":https://dev.are.na/documentation/authentication !thumbs/timothee_goguely-02.png! __lunch__ … Moment of doubt, wondering about technical difficulty… Why not develop a Chrome extension instead of a webapp? A simple @arena2print@ button may be the most effective solution. Rough pseudo-code of the extension script: # parse HTML to select all blocks # extract and store all block’s content # create a new HTML page from this content # add custom print CSS # launch browser print modal window! Need to read and watch some tutorials to get an idea about the technical difficulty… !thumbs/timothee_goguely-03.png! Ok, let’s try "this one":https://robots.thoughtbot.com/how-to-make-a-chrome-extension Yeah, I just write my first Chrome Extension! Right now, it’s only an dumb @alert()@ script, but let’s continue… !thumbs/timothee_goguely-04.png! … All right, after 2 hours of try and fail, I’m now able to get channel’s id so I can get from Arena API a JSON with all channel’s contents. Now I need to store the data that interests me and them to build an HTML template. !thumbs/timothee_goguely-05.png! … h3. 25.06.17 Yesterday, I have succeeded in displaying all the block’s content of a channel on pages. !thumbs/timothee_goguely-06.png! Here is what I need to do today: * implement conditionnal statement for detecting and displaying images, attachments and so on. * fixing multi-paging issue for blocks containing long text: the easiest solution would be to have only I long page containing all the blocks and let the browser splitting it on different pages on print with @page-break-before: always@ on titles. * displaying the page on top of Arena channel, not instead of it, so the user doesn’t lose the context. * crafting CSS to improve the layout, hierarchy and typography * convert datetime into a human readable format * fixing Chrome Extension behaviour: it needs to be triggered only if the active tab url is an Arena channel url and when the user is clicking on the extension button. Here we go! … __lunch__ * Display umages and attachments > done * Multi-page blocks > done * Layout > in progress !thumbs/timothee_goguely-07.png! … Well, it’s good enough now, I guess I can stop here for today. Maybe just refactoring some code. And I just realized that I worked in A5 instead of A4 so I needed to print my PDF at 141%, but nevermind… Here is the result fo these two days of work: !thumbs/timothee_goguely-08.png! !thumbs/timothee_goguely-09.png! !thumbs/timothee_goguely-10.png! And don’t know yet if I will continue to develop this little project (there’s still a lot of things to fix) but I’m glad to have started to understand how to build a Chrome Extension – it was simpler than I thought. So thank you OLA, OSP & Synesthésie for organizing this workshop: a lot of very interesting and inspiring insights, references and approaches. I definitely need to read Ivan Illich’s book about conviviality. Keep up the good work! PS: Ok, refactoring is done! I also commented my code. The only crucial thing I didn’t achieve is to trig the extension not on page load but when the user is clicking on the extension’s button. I will try to figure out how to do it during the next week, and it will be an __effective__ and __useful__ Chrome Extension!
* "arena2print.pdf":sources/arena2print.pdf * "arena2print.zip":sources/arena2print.zip

Pad

h1(#workshop-ola-html2print). Workshop Ola HTML2Print https://listes.domainepublic.net/listinfo/html2print "Cookbook":http://pads.osp.kitchen/p/ola-cookbook h2(#participants). Participants * Sarah * Nicolas * Pierre-Yves * Elie * Kenji * Timothée * Bach * Gab * Elodie _Kévin _Angélique h2(#markdown-primer). Markdown primer * "$":https://daringfireball.net/projects/markdown/ * "$":https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet
#titre 1
## titre 2 -> 6

![la legende](le/chemin/vers/le/fichier.jpeg)
[texte du lien](http://tapage.com)

*bold*²
**italique**

- liste
- liste
`code`
Post css (// sass) Utilisation du le navigateur web Chromium fortement conseillée pour utiliser htmltoprint.css car il prend en compte directement les info renseignées ds le css tel que taille de la page, affichage du fond de page, etc. h2(#paquet-de-base). Paquet de base https://cloud.osp.kitchen/s/siUuVs7UD93ZeS0 télécharger le dossier html2print.tiny découverte des variables css o_O
:root{
    --ma-variable:210mm;
}

@page{
    width: var(--ma-variable);    
}
En fait, ce cas précis ne marche pas :P Voir "$":https://stackoverflow.com/questions/44735420/using-custom-properties-with-page-rules h2(#documentation). Documentation h3(#howto). howto readme : https://figureslibres.io/gogs/bachir/ola4doc h3(#rendu). rendu 192.168.99.35:8000 h3(#textile). textile https://txstyle.org/ h2(#mise-en-commun-projets-sam-14-juin-14h). mise en commun projets (sam 14 juin, 14h) h3(#osp). OSP prendre cet occase pour faire un cookbook de htmltoprint - césures - conversion RVB --> CMJN - faire couler du txt d'une page à une autre h3(#elie-kenji). Elie & Kenji forme générative BD en scketch processing booklate de l'évolution de cette forme Lafkon make art h3(#angelique). Angelique contenu du wordpress de PY ou faire de la documentation html2print h3(#timothée). Timothée utiliser are.na (ce site est un genre de pinterest pour les graphistes) extraire un contenu web pour créer des booklates finalité: creer l'outil qui servirait à faire ça (codé en ruby) Scraping mettre en valeur les recherches faites par d'autres h3(#kévin-t). Kévin T documentation sur htmltoprint ou récupérer contenu d'une page wikipédia et si possible récupérer l'historique complet des modifications de la page (depuis sa création jusqu'à auj) et les mettre en forme http://epicpedia.org/ !http://annemiekevanderhoek.nl/werk/epic03.jpg(epicpedia)! transfo des scripts de téâtre h3(#bachir). Bachir Projet d'écriture. Transposer "La convivialité" de Ivan Illitch qui a été écrit dans les années 70, en 2017, en parlant de choses actuelles et plus particulièrement du numérique. h3(#gabriel). Gabriel Utiliser le workshop comme prétexte pour écrire rapport de son stage chez OSP Tenais un journal de ses apprentissages, un retour sur expériences. confrontation txt bruts - commentaires mini readme sur chacunes des choses qu'il a utilisées et qui pourraient intéresser d'autres prsn. Avoir deux version en co-existance, une web et une print h3(#élodie). Élodie Retravailler le site internet de synesthésie. Peut-être en faire une version imprimable. Se familiariser au code. h3(#nicolas). Nicolas "Whole Earth Catalogue":https://duckduckgo.com/?q=whole+earth+catalogue&iax=1&ia=images Aux sources de l'utopie numérique: de la contre culture à la cyberculture, Stewart Brand, un homme d'influence "Aux sources de l'utopie numérique, Fred Turner":http://cfeditions.com/utopieNumerique/ Outil dans l'esprit du Whole earth catalog, réactiver cette idée. Plans pour construction de machines, comment se protéger de ___ Grille dans laquelle injecter du contenu pour faire cet objet catalogue (forme non définie pour l'instant: poster, magazine) "Libre Création - Libre Design":http://projets.esadhar.fr/usable/dashboard/ "Libre Création - Libre Design (sources)":https://esadhar.net/gogs/libre-creation_libre-design/usable ESADHaR, projet de recherche avec des étudiants. Test d'outils libres pour la création graphiques, qu'ils aient été initialement créés dans ce but ou non. projets.esadhar.fr/usable/dashboard Fonts: * http://osp.kitchen/foundry/fluxisch-else/ * https://github.com/uplaod/YoungSerif ou http://areyoubeingserved.constantvzw.org/static/fonts/YoungSerif-Regular.otf (version modifiée par Stéphanie avec la a minuscule plus) h3(#pierre-yves). Pierre-Yves Comment transcrire l'Idée de calques // scribus, indesign dans/avec htmltoprint faire des boites imbriquées les unes dans les autres qui changent de couleur, qqch de génératif //dearchrome project [Alex] "dearchrome":https://web.archive.org/web/20150220014329/http://www.phil-cao.com:80/dearchrome/lines/ "tempsdereaction":https://tempsdereaction.wordpress.com/ est-ce que en veut reproduire en html le processus mis en place dans ce blog ou prendre des contenus du blog pour les mettre en page? imprimer une version de ce blog sous forme de post-it ou de poster par exemple, avoir un format adaptable // automatisation h2(#show-and-tell). Show and tell h3(#bachir-1). Bachir Projet inspiré de Gitbook Libriis https://figureslibres.io/gogs/bachir/libriis h3(#élodie-1). Élodie https://ordigami.net/ version écran on voit les faces du cube côte-côte et en version h3(#nicolas-1). Nicolas http://perles-du-bon-coin.fr/ **Kevin http://csswarp.eleqtriq.com/ Lucile https://studiomoniker.com/projects/click-click-click https://clickclickclick.click/#e8d0c8a17bce3955716c16b413ee946b

CookBook

## CSS obscure rule: margin-top of

affects parent's margin As of why they decided that this elements should behave like this it is still unclear for me; but at least we were able to find a rule that applies to collapsing margins: "In simple terms, this definition indicates that when the vertical margins of two elements are touching, only the margin of the element with the largest margin value will be honored, while the margin of the element with the smaller margin value will be collapsed to zero Basically in our example on the original question, the biggest margin-top is the one of the

therefore taken and applied to the parent
. This rule is cancelled for: * Floated elements * Absolutely positioned elements * Inline-block elements * Elements with overflow set to anything other than visible (They do not collapse margins with their children.) * Cleared elements (They do not collapse their top margins with their parent block's bottom margin.) * The root element That is the reason why overflow:hidden solved the issue. h2(#css-grids). CSS grids https://jsfiddle.net/zw9c7owa/ https://jsfiddle.net/zw9c7owa/3/ https://jsfiddle.net/zw9c7owa/4/ https://jsfiddle.net/zw9c7owa/6/ https://jsfiddle.net/zw9c7owa/7/ https://jsfiddle.net/zw9c7owa/8/ https://jsfiddle.net/zw9c7owa/12/ -> yeah! https://jsfiddle.net/zw9c7owa/13/ https://jsfiddle.net/zw9c7owa/14/ https://jsfiddle.net/zw9c7owa/15/ https://jsfiddle.net/zw9c7owa/16/ https://jsfiddle.net/zw9c7owa/17/ Emulate CSS media print : https://uxdesign.cc/i-totally-forgot-about-print-style-sheets-f1e6604cfd6 h2(#processing-connections). processing connections https://research.lafkon.net/projects/dit/ https://research.lafkon.net/projects/lac2008/ h3(#visualer-les-media-print-en-redimensionnant-la-page). visualer les media print en redimensionnant la page @media screen and (max-width: 699px) or media print { ... } h3(#john-resig-micro-template). John Resig Micro template Si jamais vous avez besoin de générer du HTML en javascript... https://johnresig.com/blog/javascript-micro-templating/ h2(#césures). Césures http://gitlab.constantvzw.org/osp/tools.html5lib_typogrify Les version récentes de webkit gèrent les césures interdire les césures bc. -webkit-hyphens: none; -moz-hyphens: none; hyphens: none; autoriser les césures bc. -webkit-hyphens: auto; Gérer les césures bc. -webkit-hyphenate-limit-before: 2; /* 2 caractères minimum en fin de ligne, donc en début de mot */ -webkit-hyphenate-limit-after: 2; /* 3 caractères minimum en début de ligne, donc en fin de mot */ -webkit-hyphenate-limit-lines: 4; /* 4 lignes consecutives max */ NE PAS OUBLIER D'INSTALLER HYPHEN! sur arch @sudo pacman -S hyphen@ ou @yaourt -S hyphen@ h2(#css-variables-in-page). CSS variables in @page https://stackoverflow.com/questions/44735420/using-custom-properties-with-page-rules h2(#convertir-tous-les-fichiers-html-en-markdown). Convertir tous les fichiers HTML en Markdown attention, vous allez perdre le contenu non-sémantique (classes, attributs, etc.) mais ça peut justement être une manière de nettoyer son code for file in *.html; do pandoc --from html --to markdown --output "{file%.*}.md" "file"; done h2(#html2print-readme). HTML2Print readme h3(#exemples-de-readme-visuels). exemples de readme visuels * http://organon.osp.kitchen/70 * http://blog.lavillahermosa.com/brass-%E2%86%92-print-tool-v1/ * http://design.lavillahermosa.com/works-288-le-brass-2014 * http://blog.artsaucarre.be/artsnumeriques/2016/10/21/memory-learning-archives-et-bidouillages-workshop-au-mundaneum-24-261016/ * http://lorainefurter.net/readme/readme-workflows.html * https://hpg.io/ * https://youtu.be/eIgX6sPOqCY?t=2m40s !http://hpg.io/img/multi_format.png! https://upload.wikimedia.org/wikipedia/commons/4/41/FACTSHEET-EN.pdf https://research.lafkon.net/content/2.projects/6.wtf/99.wtf_generator_1_00_WEB.gif http://lorainefurter.net/readme/assets/readme/workflows/DigitalPublishingToolkit.png h3(#workflow-dun-numéro-de-médor). workflow d'un numéro de Médor * http://organon.osp.kitchen/90 h3(#python-rss-to-html). python rss to html https://figureslibres.io/gogs/bachir/python-rss2html
#!/usr/bin/python
# -*- coding: utf-8 -*-


import feedparser
from bs4 import BeautifulSoup

def main():
   # url du flux rss
   tpsreac_feed_url = "https://tempsdereaction.wordpress.com/feed/"

   # on aspire le flux rss avec feedparser
   tpsreac_feeds = feedparser.parse(tpsreac_feed_url)

   # base template du fichier html
   base = "<html><head></head><body></body></html>"
   # create dom for html file base
   base_dom = BeautifulSoup(base, 'html.parser')

   # page base template
   page_base = "<section class='page'></section>"

   # boucle sur les entrées racine du flux
   for key in tpsreac_feeds:
      print(key)

   # on boucle sur les entrées du flux rss
   for entrie in tpsreac_feeds['entries']:
      print('- - - - -',entrie['title'])
      # just display entrie keys
      for key in entrie:
         print(key)
         #     entries.extend( feed[ "items" ] )

      # create page dom
      p_dom = BeautifulSoup(page_base, 'html.parser')
      # add content in page dom
      p_dom.section.append(entrie['summary'])

      # add newly created page dom to html dom
      base_dom.body.append(p_dom)

   # create main html file from filled base html dom
   with open("index.html", 'w') as fp:
      fp.write(base_dom.prettify(formatter=None))


if __name__ == "__main__":
   main()

h3(#python-pandoc-and-template). python pandoc and template https://figureslibres.io/gogs/bachir/gitbook-html2print
#!/usr/bin/python
# -*- coding: utf-8 -*-

from bs4 import BeautifulSoup
import pypandoc

def main():
       # create main html dom from template
       template_f = open("templates/main.tpl.html", "r")
       template_html = template_f.read()
       template_dom = BeautifulSoup(template_html, 'html.parser')
    

      pdoc_args = ['--mathjax',
                   '--smart']

      pdoc_filters = []

      output = pypandoc.convert_file("lechemin/de/monfichier.md",
                               to='html5',
                               format='markdown+header_attributes+link_attributes+bracketed_spans',
                               extra_args=pdoc_args,
                               filters=pdoc_filters)
                              #  outputfile=out_f)

      # print("output :\n"+output)

      output_dom = BeautifulSoup(output, 'html.parser')

      template_dom.append(output_dom)
      
    # create main html file from filled template html dom
    html_f = 'monfichier.html'
    with open(html_f, 'w') as fp:
        fp.write(template_dom.prettify(formatter=None))



if __name__ == "__main__":
   main()

h2(#ajuster-une-image). Ajuster une image voir https://developer.mozilla.org/en-US/docs/Web/CSS/object-fit et https://developer.mozilla.org/en-US/docs/Web/CSS/object-position h2(#css-regions). CSS regions h1(#flow-main). flow-main { bc. -webkit-flow-into: flow-main; flow-into: flow-main; } .flow-main { -webkit-flow-from: flow-main; flow-from: flow-main; } ex: https://jsfiddle.net/asmqaheq/