IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Un bon développeur est un développeur flemmard !

[Javascript][Ebook]De la page web à l'ebook

Noter ce billet
par , 05/04/2016 à 15h57 (1653 Affichages)
Citation Envoyé par Moi
J'adore développer, je peux regarder le code de quelqu'un pendant des heures.
Comprendra qui pourra, mais c'est l'idée de ce billet !

Il y a peu, je me suis acheté un Kindle Whitepaper chez Amazon, que je trouve très pratique pour lire. Cependant, le Kindle Whitepaper a un navigateur digne de IE5 et n'est pas capable de visiter un site proprement pour en lire le contenu. Je me suis donc renseigné sur comment avoir du contenu d'une (ou plusieurs) page(s) d'un site quelconque au format ebook Amazon pour pouvoir le tout tranquillement dans mon canapé.

Entant que flémard professionnel (ie développeur), la première chose que j'ai regardé, c'est les applications qui convertisent d'un format strandard X au format Kindle.
Et j'ai trouvé mon bonneur avec Calibre ! Celui-ci fournissant une API en ligne de commande et la documentation... Et, c'est Open Source !

Convertire un fichier HTML en Ebook :
La conversion se fait donc en une seule ligne de commande !
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
ebook-convert mon_document_input.html mon_document_output.azw3
Pour que la conversion se passe bien, il suffit de bien respecté la documentation par rapport à la déclaration des balise <h1><h2> en ajoutant une classe.
Chapitres et sauts de page

Vue que l'idée c'est d'avoir un certains nombre de document à lire :
Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
#Convertit tout les fichiers HTML au format Ebook Amazon
for %f in (*.*) do echo "C:\Program Files (x86)\Calibre2\ebook-convert" "%~nf.html" "%~nf.azw3"
Et voilà !

Avoir un bouton "Télécharger" sur un site quelconque :
En ajoutant le code Javascript suivant sur une page d'actualité Developpez.com on se trouve avec un bouton nous permettant de télécharger l'article dans un fichier HTML épuré :

Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Fonction qui déclenche le télécharge du contenu.
// Récupéré sur le net.
// Function used to return content as a file for the user.
  function saveTextAsFile(textToWrite, fileNameToSaveAs)
  {
    var textFileAsBlob = new Blob([textToWrite], {
      type: 'text/javascript'
    });
    var downloadLink = document.createElement('a');
    downloadLink.download = fileNameToSaveAs;
    downloadLink.innerHTML = 'Download File';
    if (window.webkitURL != null)
    {
      // Chrome allows the link to be clicked
      // without actually adding it to the DOM.
      downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
    } 
    else
    {
      // Firefox requires the link to be added to the DOM
      // before it can be clicked.
      downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
      //downloadLink.onclick = destroyClickedElement;
      downloadLink.style.display = 'none';
      document.body.appendChild(downloadLink);
    }
    downloadLink.click();
  }
 
// Fonction personnalisé qui récupère le contenu de l'article.
function getArticleAsFile (){
	var title = document.title;
    var author = $('[itemprop=creator]').text();
    var book = '<html>\n<head>\n<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">\n';
    book += '<title>' + title + '</title>';
    book += '<meta content="' + author + '" name="author">';
    book += '</head>\n<body>';
    book += $('.actuTitle header').html();
    book += $('.content').html();
    book += '</html>';
    saveTextAsFile(book, title + '.html');
}
// On ajoute le bouton et on ajouter la fonction associée
$($('.voiraussi')[2]).first().append(' <button type="button" id="downloader">Télécharger au format HTML</button> ')
$('#downloader').click(function()  {
  getArticleAsFile();
});

Je n'utilise pas cela pour les articles Développez.com, car ceux-ci son relativement court. Mais, il y a un certains nombre de site publie des textes à ra-longue :p

Cordialement,
Patrick Kolodziejczyk.

Note : Ma citation du début est ma version de cette citation :
Citation Envoyé par Tristant Bernard
J'adore le travail, je peux regarder quelqu'un travailler pendant des heures.

Envoyer le billet « [Javascript][Ebook]De la page web à l'ebook » dans le blog Viadeo Envoyer le billet « [Javascript][Ebook]De la page web à l'ebook » dans le blog Twitter Envoyer le billet « [Javascript][Ebook]De la page web à l'ebook » dans le blog Google Envoyer le billet « [Javascript][Ebook]De la page web à l'ebook » dans le blog Facebook Envoyer le billet « [Javascript][Ebook]De la page web à l'ebook » dans le blog Digg Envoyer le billet « [Javascript][Ebook]De la page web à l'ebook » dans le blog Delicious Envoyer le billet « [Javascript][Ebook]De la page web à l'ebook » dans le blog MySpace Envoyer le billet « [Javascript][Ebook]De la page web à l'ebook » dans le blog Yahoo

Commentaires