Siduction Manual

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Zielsetzung

Das Handbuch von Bluewater besteht aus statischen HTML-Seiten.

Nachteil:

  • Aufwendige Pflege des Menüs, da dieses auf jeder Seite gleich sein soll.
  • Keine Interaktion, z.B. Suche

Daher habe ich sidu-manual konzipiert.

Eigenschaften:

  • bisherige Seiten können unverändert verwendet werden: der "eigentliche Inhalt" (ohne Header und Menu) wird automatisch extrahiert.
  • Pflege des Menüs in einer Textdatei (siehe unten)
  • Automatische Sprachwahl (aus den Browser-Informationen)
  • Rückfallebene: Existiert eine Seite nicht in der gewünschten Sprache, wird automatisch die englische genommen

Realisierung

Grundlage bildet sidu-base, ein Toolkit, mit dem einfach ein CMS erstellt werden kann. Dieses bietet die Möglichkeit, HTML-Seiten in einem einheitlichen Rahmen anzuzeigen. Der Rahmen wird mit einer Vorlage definiert, in der die dynamischen Inhalte eingebettet werden. Im Fall von statischen Seiten wird die Seite aus dem Dateibaum für statische Seiten geholt, der "eigentliche Inhalt" extrahiert und in die Vorlage eingebunden.

Das Menü wird aus einer Textdatei generiert und ebenfalls in die Seite eingebunden.

Probeinstallation

Wer das Paket ausprobieren will, ohne Risiko:

  • Virtuelle Maschine mit Siduction-Iso als Boot-Medium starten
  • Konsole aufmachen
sudo -s
wget http://public.f-r-e-i.de/siduction/inst.sh
bash inst.sh

Dann als normaler Benutzer:

sidu-manual-control start

oder im Browser: http://sidu-manual:8086

Pflege von Handbuchseiten

Vorhandene Seiten pflegen

Keine Besonderheiten: einfach den Text in der vorhandenen Datei anpassen.

Neue Seite

Am besten eine vorhandene Datei kopieren und nur den "eigentlichen Inhalt" austauschen. Dann kann das Ergebnis ohne Webserver im Browser angesehen werden, da Header etc. passend eingebunden sind. Bitte immer mit der englischen Version der Seite beginnen, da diese immer vorhanden sein muss. Die Seite muss dann noch im Menü eingebunden werden (siehe unten).

Menu

Dateibaum und Namenskonvention

Die Namenskonvention ergibt sich aus dem Bestand des Bluewater-Handbuchs.

Die statischen Seiten befinden sich im Unterverzeichnis data/<lang>, also z.B. data/en Jede statische Seite muss das Sprachkürzel auch im Namen tragen, <name>-<lang>.htm, also z.B. data/en/welcome-en.htm

Menü

Das Menü wird durch 2 Definitionsdateien festgelegt:

  • config/menu_de.conf
  • template/menu.snippets.txt

In der ersten Datei wird der Inhalt festgelegt (sprachabhängig), in der zweiten das Aussehen (HTML-Definition).

menu_xx.conf

Hier wird der Inhalt des Menüs definiert, muss für jede Sprache vorhanden sein, z.B. als menu_de.conf.

# Format:
# <indent_level> <id> <link> <title>

*   sm2	welcome	siduction-Handbuch
**  sm3 welcome#welcome-gen	siduction-Handbuch
*** sm4 welcome#cred-team	Das sicuction-Team
**  -	welcome#how-to	Über das Handbuch
*** -	welcome#how-to	Wie das Handbuch zu verwenden ist
*** -	welcome#table-contents	Inhalt

menu.snippets

Hier wird der XML-Aufbau des Menüs definiert:

LEVEL_0:
 <ul id="treeMenu">
###ENTRIES###
 </ul>

ENTRY_1:
 <li{{current_item}}><a href="{{link}}">{{title}}</a></li>

ENTRY_SUBMENU_0:
 <li{{current_item}}><input name="tree" id="M{{menuid}}" type="checkbox" /><label for="M{{menuid}}" class="open"><img src="/static/lib/images-common/icons/trans.gif" alt="" /></label>
 	<a href="{{link}}">{{title}}</a>
###SUBMENUS###
 </li>

LEVEL_1:
  <ul>
###ENTRIES###
  </ul>

ENTRY_1:
    <li><a href="{{link}}">{{title}}</a></li>
    
ENTRY_SUBMENU_1:
    <li{{current_item}}><input name="tree" id="M{{menuid}}" type="checkbox" /><label for="M{{menuid}}" class="open"><img src="/static/lib/images-common/icons/trans.gif" alt="" /></label>
    	<a href="{{link}}">{{title}}</a>
 ###SUBMENUS###
    </li>

LEVEL_2:
     <ul>
###ENTRIES###
     </ul>

ENTRY_2:
       <li{{current_item}}><a href="{{link}}">{{title}}</a></li>

CLASS_CURRENT:
 class="current_item"
ID:

sidu-manual für Übersetzer und Autoren

Konfiguration, damit Änderungen an den Quellen sofort sichtbar werden

# Quellen vom Repository holen, wir brauche beide Pakete:
cd $HOME
# Wichtig: die beiden Verzeichnisse müssen "nebeneinander" liegen, sonst funktionieren Scripts nicht!
git clone git3@git.siduction.org:code/sidu-base
git clone git3@git.siduction.org:code/sidu-manual
# Bitte anpassen, wenn die Git-Archive nicht in $HOME liegen:
export HOME_SIDU_MANUAL=$HOME/sidu-manual
echo "export HOME_SIDU_MANUAL=$HOME/sidu-manual" >> ~/.bashrc
sudo mkdir /etc/sidu-manual
sudo chown $USER /etc/sidu-manual
ln -s $HOME_SIDU_MANUAL /etc/sidu-manual/home

Damit holt der Browser seine Daten aus $HOME/sidu-manual und nicht aus /usr/share/sidu-manual.