All pastes #201600 Raw Edit

Trucs

public ruby v1 · immutable
#201600 ·published 2006-10-13 22:14 UTC
rendered paste body
#!/usr/bin/env rubyHeader  = %Q(\<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />    <link href="../styles.css" rel="stylesheet" type="text/css" /></head><body>).split("\n")Footer = %Q(\</body></html>).split("\n")Source      = '/home/kik/documents/cours/brut/'Destination = '/home/kik/documents/cours/html/'def parser_ligne(ligne)    balise = (ligne[/^ *TITRE/] ? "h#{$'[0,1]}" : (ligne[/EM/] ? "em" : "p"))    ligne.gsub!(/TITRE./, "")    ligne.gsub!(/EM./, "")    ligne.gsub!(/<</, "«")    ligne.gsub!(/>>/, "»")    return (ligne[/^ *\n$/] ? "" : ligne.gsub(/^/, "<#{balise}>").gsub(/\n$/, "</#{balise}>\n") )enddef parser_fichier(flux)    texte_html = []    while (ligne = flux.gets)        texte_html << parser_ligne(ligne)    end    texte_html       = Header + texte_html + Footer    chemin_fichier   = flux.path    dossier_cours    = Destination + '/' + flux.path.split('/').reverse[1] + '/'    %x(mkdir -p #{dossier_cours}) unless File.exist?(dossier_cours)    fichier_html     = File.new(dossier_cours + File.basename(flux.path) + ".html", "w")    texte_html.each { |ligne| fichier_html.puts(ligne) }    fichier_html.closeendDir.new(Source).each { |dossier|    unless dossier == '.' or dossier == '..'        matiere = Source + '/' + dossier        fichiers = Dir.new(matiere).entries.delete_if { |f| f[/\./] }.delete_if { |f| f[/\.html$/] }        fichiers.each { |f|             flux = File.new( matiere + '/' + f )            parser_fichier(flux)            flux.close        }    end}puts "terminé."