Mehrteilige Dokumente mit Multimarkdown erstellen

Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 108 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116 Warning: Use of undefined constant services - assumed 'services' (this will throw an Error in a future version of PHP) in /home/.sites/500/site1394/web/blog/wp-content/plugins/2-klicks-button-socialshareprivacy-plugin/2-klicks-button-socialshareprivacy.php on line 116

1. Schreibe die einzelnen Kapitel

Jedes Kapitel kommt in ein eigenes .mmd File, ohne Header (Metadaten etc).

2. Erstelle die metadata.mmd

Die Metadaten sind eine Besonderheit von MultiMarkdown, die einige Infos im HTML-Header hinzufügen.

Title:  Dokumentation  
Subtitle:   MMD Workflow 
Keywords:   Markdown, Multimarkdown, Workflow   
Language:   german  
Version:    1.0  
Revsion:    1  
Date:   04.04.2013  
Author: Erik R. Accart-Huemer      
Email:  erik.accart-huemer@  
Web:    dbconsult.at    
Affiliation:    dbconsult.at 
Copyright:  © 2013 Erik R. Accart-Huemer * dbconsult.at  
XMP:    CCAttributionShareAlike  
Base Header Level:  2
CSS:    http://pidpow.com/markdown/markdown-gaw.css  

Metadaten

Am Kopf der metadata.mmd befindet sich HTML, das für die Kopf- und Fusszeile verantwortlich ist.

<div id="content_header"><div class="content" >  
    <p class="title"> Handbuch </p>   
    <p class="subtitle"> für Interessenten </p>   
</div></div>   

<div id="content_footer" style="height: 1.5em">  
    Copyright © 2013 Die Grünen - Grüne Alternative Wien, Die Grünen Andersrum  
</div>

HTML für Kopf- und Fusszeile

3. Erstelle die Merge-Datei

Die Datei index.mmd_merge enthält die Info darüber, welche Dateien in welcher Reihenfolge zusammen zu hängen sindwird an das script mmd2merge übergeben und.

# Einsteigerhandbuch der Grünen Andersrum

metadata.mmd

vorwort.mmd

mitgliedschaft.mmd

index.mmd_merge

4. Übergabe der merge-Datei an ein Script zur Verarbeitung

perl /usr/local/bin/mmd_merge.pl "$@.mmd_merge" > "$@.mmd"   
echo "Mutlimarkdown Files verknüpft"  
/usr/local/bin/multimarkdown "$@.mmd" > "$@.temp"  
echo "HTML-Datei erzeugt"  
xsltproc http://www.pidpow.com/xslt/xhtml-toc-h2.xslt "$@.temp" > "$@.html"  
echo "Verzeichnis erstellt"  
rm "$@.temp"  
echo "HTML-Datei temp gelöscht"  

Terminal Script

  • Das Perl Script fügt die einzelnen mmd-Dateien entsprechend der Angaben in index.mmd_merge zusammen.
  • Mittels des Shell-Commands multimarkdown wird die mmd-Datei in eine HTML-Datei umgewandelt
  • Durch Anwenden des xhtml-toc-h2.xslt mittels xsltproc1 werden die Überschriften in der HTML-Datei nummeriert und ein Inhaltsverzeichnis erstellt.
  • xhtml-toc-h2.xsltist Bestandteil des MMD-Support-Packages von Fletcher Penney, wurde von mir ergänzt und auf Deutsch übersetzt.
  • Die Nummerierung kommt aus dem CSS.

CSS

Neben den allgemeinen Formatierungen (zum Beispiel der Überschriften und des Textes) sind folgende Spezialitäten erwähnenswert:

Überschriften Nummerieren

body{counter-reset: section}
h2{counter-reset: sub-section}
h3{counter-reset: composite}
h4{counter-reset: detail}

h2:before{
    counter-increment: section;
    content: counter(section) ". ";
}
h3:before{
 counter-increment: sub-section;
 content: counter(section) "." counter(sub-section) " ";
}
h4:before{
 counter-increment: composite;
 content: counter(section) "." counter(sub-section) "." counter(composite) " ";
}
h5:before{
 counter-increment: detail;
 content: counter(section) "." counter(sub-section) "." counter(composite) "." counter(detail) " ";
}

farbige Aufzählungs-Bullets

ul {
    list-style-image:url(http://pidpow.com/markdown/bullet-grey.gif);

Definition Lists

Definition Liste sind Listen mit einer Überschrift und einer kurzen Erklärung.

  1. Begriff
    Eine Erklärung
    noch eine Erklärung
  2. Begriff
    Erklärung
dt

dd

dl { padding: 0em; border 1px dotted #999; border: 1px 0; }

dt { float: left; clear: left; width: 100px; text-align: left; font-weight: bold; color: #006292; }

dt:after { content: „:“; }

dd { margin: 0 0 0 8em; padding: 0 0 0.5em 0; } CSS zur Formatierung der Definition Lists

Tabellen

Hier wurden die Zeilen und Spalten alternierend eingefärbt. Ausserdem kann mittels einer Leerzeile im MMD eine Zwischenlinie abgelöst werden: table { border-collapse: collapse; border-top: 6px ridge; }

<!-- Zwischenlinie -->
tr:first-child  { border-top: 6px  ridge; }

tr:nth-child(even)  { background-color: rgba(0,0,0,0.15); }
tr:nth-child(odd)   { background-color: white; }

td:nth-child(odd)   { background-color: rgba(0,0,0,0.15); }
td:nth-child(even) { background-color: white; }

CSS zur Auszeichung von Tabellenabschnitten etc

Content Header

… erzeugt die Dokument-Kopfzeile. Todo: Eine Möglichkeit finden, dass das Inhaltsleerzeichnis nach der Kopfzeile erzeugt wird.

#content_header {
    height: 100px; 
    width: 100%;
    margin:  5px 0 3em 0;
    padding: 50px 0 5px;
    background: url(http://www.dbconsult.info/tech/logos/dbconsult.logo.png) no-repeat right top;
}

#content_header .content{
    border-bottom: 1px dotted #999;
    font-weight: bold;
    background-color: rgba(0,0,0,0.1);
    padding: 5px;
}

CSS zur Formatierung von Kopf- und Fusszeile

Die Teilung in zwei DIV’s erfolgt um das Logo oberhalb des Textes platzieren zu können.

Weiterführende Infos und ladbare Dateien

| Ressource | Dokumentation | Download | | ———————— | :—————-: | :———–: | | Markdown | Dokumentation | | | Multimarkdown | Dokumentation | Download | | perl script mmd_merge.pl | Dokumentation | Download | | xhtml-toc-h2.xslt | | Download |
| Editoren ||| | Multimarkdown Composer | Info | | | Byword | Info | OSX iOS | | Elements | Info | iOS | | eigene ||| | multimarkdown.css | | Download | | multimarkdown-gaw.css | | Download | [Ressourcen]

Hinweis: Diese Dokumentation kann durch Austausch der Dateiendung html gegen mmd auch im Format Multimarkdown angesehen werden.


  1. HINWEIS: Diese Skripts erfordern eine funktionierende Installation von xsltproc, und die Fähigkeit, Shell-Skripte ausgeführen zu können. Dies sollte standardmäßig auf den meisten Installationen von Mac OS X oder Linux funktionieren; auf Windows aber müssen diese Anwendungen separat installiert werden. 

Schreibe einen Kommentar

This site uses Akismet to reduce spam. Learn how your comment data is processed.