wok-next rev 5859
Add tazwikiss
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/tazwikiss/receipt Sun Jul 18 12:02:49 2010 +0200 1.3 @@ -0,0 +1,90 @@ 1.4 +# SliTaz package receipt. 1.5 + 1.6 +PACKAGE="tazwikiss" 1.7 +VERSION="0.3" 1.8 +CATEGORY="office" 1.9 +SHORT_DESC="Tiny SliTaz Wiki" 1.10 +MAINTAINER="pascal.bellard@slitaz.org" 1.11 +WEB_SITE="http://www.slitaz.org/" 1.12 +CONFIG_FILES="/var/www/wiki/config*.sh" 1.13 + 1.14 +# Rules to gen a SliTaz package suitable for Tazpkg. 1.15 +genpkg_rules() 1.16 +{ 1.17 + cp -a stuff/* $fs 1.18 + chown -R 80.80 $fs/var/www 1.19 +} 1.20 + 1.21 +# Pre and post install commands for Tazpkg. 1.22 +post_install() 1.23 +{ 1.24 + server=busybox 1.25 + # Configure lighttpd server 1.26 + if [ -f $1/etc/lighttpd/lighttpd.conf ]; then 1.27 + server=lighttpd 1.28 + if ! grep -q '"/wiki/"' $1/etc/lighttpd/lighttpd.conf; then 1.29 + sed -e 's|# Fast CGI|$HTTP["url"] =~ "/wiki/" {\ 1.30 + cgi.assign = (\ 1.31 + ".sh" => "/bin/sh"\ 1.32 + )\ 1.33 + index-file.names = ( "index.sh" )\ 1.34 +}\n\n&|' -i $1/etc/lighttpd/lighttpd.conf 1.35 + if [ -z "$1" ]; then 1.36 + # Start Web server. 1.37 + /etc/init.d/lighttpd stop 1.38 + /etc/init.d/lighttpd start 1.39 + fi 1.40 + fi 1.41 + fi 1.42 + # Configure apache server 1.43 + if [ -f $1/etc/apache/httpd.conf ]; then 1.44 + server=apache 1.45 + if [ ! -f $1/etc/apache/conf.d/tazwikiss ]; then 1.46 + cat > $1/etc/apache/conf.d/tazwikiss <<EOT 1.47 +<DirectoryMatch /var/www/wiki/> 1.48 + Options +ExecCGI 1.49 + AddHandler cgi-script .sh 1.50 + DirectoryIndex index.sh 1.51 + AllowOverride None 1.52 + Order allow,deny 1.53 + Allow from all 1.54 +</DirectoryMatch> 1.55 +EOT 1.56 + if [ -z "$1" ]; then 1.57 + # Start Web server. 1.58 + /etc/init.d/apache stop 1.59 + /etc/init.d/apache start 1.60 + fi 1.61 + fi 1.62 + fi 1.63 + # Configure busybox/httpd server by default 1.64 + if [ "$server" == "busybox" ]; then 1.65 + sed -i 's/lighttpd/httpd/' $1/etc/rcS.conf 1.66 + if [ ! -s $1/etc/httpd.conf ]; then 1.67 + cat > $1/etc/httpd.conf <<EOT 1.68 +H:/var/www 1.69 +A:0.0.0.0/0 1.70 +EOT 1.71 + fi 1.72 + while read line; do 1.73 + grep -q "$line" $1/etc/httpd.conf || continue 1.74 + echo "$line" >> $1/etc/httpd.conf 1.75 + done <<EOT 1.76 +I:index.sh 1.77 +*.sh:/bin/sh 1.78 +EOT 1.79 + if [ -z "$1" ]; then 1.80 + # Start Web server. 1.81 + /etc/init.d/httpd stop 1.82 + /etc/init.d/httpd start 1.83 + fi 1.84 + fi 1.85 + while read line; do 1.86 + [ -x $1/$line ] && continue 1.87 + echo "WARNING: $line not found, $PACKAGE will not work !" 1.88 + done <<EOT 1.89 +/usr/sbin/httpd 1.90 +/usr/bin/httpd_helper.sh 1.91 +EOT 1.92 + echo "The default password to edit pages is 'test'" 1.93 +}
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/tazwikiss/stuff/usr/share/applications/tazwikiss.desktop Sun Jul 18 12:02:49 2010 +0200 2.3 @@ -0,0 +1,8 @@ 2.4 +[Desktop Entry] 2.5 +Encoding=UTF-8 2.6 +Name=Wiki 2.7 +Icon=html.png 2.8 +Exec=browser http://localhost/wiki/ 2.9 +Type=Application 2.10 +Categories=Office; 2.11 +
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/tazwikiss/stuff/var/www/wiki/config-de.sh Sun Jul 18 12:02:49 2010 +0200 3.3 @@ -0,0 +1,24 @@ 3.4 +PASSWORD="test" 3.5 +PAGES_DIR="pages/" 3.6 +BACKUP_DIR="historique/" 3.7 + 3.8 +LANG="de" 3.9 +WIKI_TITLE="WiKiss" 3.10 +#START_PAGE="Startseite" 3.11 +START_PAGE="Welcome" 3.12 +HOME_BUTTON="Startseite" 3.13 +HELP_BUTTON="Hilfe" 3.14 +DEFAULT_CONTENT="Die Seite %page% ist leer." 3.15 +EDIT_BUTTON="Bearbeiten" 3.16 +DONE_BUTTON="Speichern" 3.17 +PROTECTED_BUTTON="Gesperrt Seite" 3.18 +SEARCH_BUTTON="Suche" 3.19 +SEARCH_RESULTS="Suchergebnsise" 3.20 +LIST="Seitenliste" 3.21 +RECENT_CHANGES="Kürzliche Änderungen" 3.22 +LAST_CHANGES="Letzte Änderung" 3.23 +HISTORY_BUTTON="Verlauf" 3.24 +NO_HISTORY="Keinen Verlauf gefunden." 3.25 +RESTORE="Restore" 3.26 +MDP="Passwort" 3.27 +ERROR="$MDP ist nicht korrekt."
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/tazwikiss/stuff/var/www/wiki/config-fr.sh Sun Jul 18 12:02:49 2010 +0200 4.3 @@ -0,0 +1,23 @@ 4.4 +PASSWORD="test" 4.5 +PAGES_DIR="pages/" 4.6 +BACKUP_DIR="historique/" 4.7 + 4.8 +LANG="fr" 4.9 +WIKI_TITLE="WiKiss : le Wiki Kiss" 4.10 +START_PAGE="Accueil" 4.11 +HOME_BUTTON="Accueil" 4.12 +HELP_BUTTON="Aide" 4.13 +DEFAULT_CONTENT="La page %page% est vide." 4.14 +EDIT_BUTTON="Éditer" 4.15 +DONE_BUTTON="Enregistrer" 4.16 +PROTECTED_BUTTON="Page verrouillée" 4.17 +SEARCH_BUTTON="Rechercher" 4.18 +SEARCH_RESULTS="Résultats de recherche pour" 4.19 +LIST="Liste des pages" 4.20 +RECENT_CHANGES="Changements récents" 4.21 +LAST_CHANGES="Dernière modification" 4.22 +HISTORY_BUTTON="Historique" 4.23 +NO_HISTORY="Aucun historique existant." 4.24 +RESTORE="Restaurer" 4.25 +MDP="Mot de passe" 4.26 +ERROR="$MDP spécifié incorrect."
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/tazwikiss/stuff/var/www/wiki/config.sh Sun Jul 18 12:02:49 2010 +0200 5.3 @@ -0,0 +1,23 @@ 5.4 +PASSWORD="test" 5.5 +PAGES_DIR="pages/" 5.6 +BACKUP_DIR="historique/" 5.7 + 5.8 +LANG="en" 5.9 +WIKI_TITLE="WiKiss : the Kiss Wiki" 5.10 +START_PAGE="Welcome" 5.11 +HOME_BUTTON="Home" 5.12 +HELP_BUTTON="Help" 5.13 +DEFAULT_CONTENT="The page %page% is empty." 5.14 +EDIT_BUTTON="Edit" 5.15 +DONE_BUTTON="Save" 5.16 +PROTECTED_BUTTON="Page protected" 5.17 +SEARCH_BUTTON="Search" 5.18 +SEARCH_RESULTS="Search results for" 5.19 +LIST="Pages list" 5.20 +RECENT_CHANGES="Recent changes" 5.21 +LAST_CHANGES="Last changes" 5.22 +HISTORY_BUTTON="History" 5.23 +NO_HISTORY="No history." 5.24 +RESTORE="Restore" 5.25 +MDP="Password" 5.26 +ERROR="Wrong password."
6.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 6.2 +++ b/tazwikiss/stuff/var/www/wiki/index.sh Sun Jul 18 12:02:49 2010 +0200 6.3 @@ -0,0 +1,492 @@ 6.4 +#!/bin/sh 6.5 +# 6.6 +# TazWikiss - A tiny Wiki for busybox/httpd 6.7 +# Licence GNU/GPLv2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 6.8 +# Copyright (C) Pascal Bellard 6.9 +# Based on WiKiss - http://wikiss.tuxfamily.org/ 6.10 + 6.11 +. /usr/bin/httpd_helper.sh 6.12 + 6.13 +cd $(dirname $0) 6.14 +CONFIG=config-${HTTP_ACCEPT_LANGUAGE%%,*}.sh 6.15 +[ -r "$CONFIG" ] || CONFIG=config.sh 6.16 +. ./$CONFIG 6.17 + 6.18 +WIKI_VERSION="TazWiKiss 0.3" 6.19 + 6.20 +# Initialisations 6.21 +toc='' # Table Of Content 6.22 +CONTENT='' # contenu de la page 6.23 +HISTORY='' # lien vers l'historique 6.24 +plugins_dir="plugins/" # repertoire ou stocker les plugins 6.25 +template="template.html" # Fichier template 6.26 +PAGE_TITLE_link=true # y-a-t-il un lien sur le titre de la page ? 6.27 +editable=true # la page est editable 6.28 +urlbase="$SCRIPT_NAME" 6.29 +#urlbase="./" 6.30 + 6.31 +die() 6.32 +{ 6.33 + echo $@ 6.34 + exit 6.35 +} 6.36 + 6.37 +redirect() 6.38 +{ 6.39 + awk '{ printf "%s\r\n",$0 }' <<EOT 6.40 +HTTP/1.0 302 Found 6.41 +location: $1 6.42 + 6.43 +EOT 6.44 + exit 6.45 +} 6.46 + 6.47 +cache_auth() 6.48 +{ 6.49 + local tmp 6.50 + tmp="$(echo $1$(date +%d) | md5sum | cut -c1-8)" 6.51 + [ "$(POST sc)" == "$1" ] && AUTH=$tmp || [ "$AUTH" == "$tmp" ] 6.52 +} 6.53 + 6.54 +authentified() 6.55 +{ 6.56 + [ -n "$PASSWORDS" ] && for i in $PASSWORDS ; do 6.57 + cache_auth "$i" && return 6.58 + done 6.59 + cache_auth "$PASSWORD" 6.60 +} 6.61 + 6.62 +plugin_call_method() 6.63 +{ 6.64 + local status 6.65 + local name 6.66 + name=$1 6.67 + shift 6.68 + [ -d "$plugins_dir" ] || return 6.69 + status=false 6.70 + for i in $plugins_dir/*.sh ; do 6.71 + [ -x $i ] || continue 6.72 + grep -q "^$name()" $i || continue 6.73 + . $i 6.74 + eval $name "$@" 6.75 + [ $? == 0 ] && status=true 6.76 + done 6.77 + $status 6.78 +} 6.79 + 6.80 +curdate() 6.81 +{ 6.82 + date '+%Y-%m-%d %H:%M' 6.83 +} 6.84 + 6.85 +filedate() 6.86 +{ 6.87 + stat -c %y $1 | sed -e 's|-|/|g' -e 's/\(:..\):.*/\1/' 6.88 +} 6.89 + 6.90 +AUTH=$(GET auth) 6.91 +[ -n "$AUTH" ] || AUTH=$(POST auth) 6.92 +PAGE_TITLE="$(GET page)" 6.93 +[ -n "$PAGE_TITLE" ] || PAGE_TITLE="$(POST page)" 6.94 +if [ -z "$PAGE_TITLE" ]; then 6.95 + PAGE_TITLE="$START_PAGE" 6.96 + case "$(GET action)" in 6.97 + recent) PAGE_TITLE="$RECENT_CHANGES" ;; 6.98 + search) PAGE_TITLE="$LIST" 6.99 + [ -n "$(GET query)" ] && PAGE_TITLE="$SEARCH_RESULTS $(GET query)" 6.100 + esac 6.101 +fi 6.102 +case "$PAGE_TITLE" in 6.103 +*/*|*\&*) PAGE_TITLE="$START_PAGE" ;; 6.104 +esac 6.105 +gtime=$(GET time) 6.106 +case "$gtime" in 6.107 +*/*|*\&*) gtime="" ;; 6.108 +esac 6.109 +action=$(GET action) 6.110 +datew="$(curdate)" 6.111 +content="$(POST content)" 6.112 + 6.113 +# Ecrire les modifications, s'il y a lieu 6.114 +PAGE_txt="$PAGES_DIR$PAGE_TITLE.txt" 6.115 +if [ -n "$content" ]; then # content => page 6.116 + if authentified; then 6.117 + sed 's/</\</g' > $PAGE_txt <<EOT 6.118 +$POST_content 6.119 +EOT 6.120 + if [ -n "$BACKUP_DIR" ]; then 6.121 + complete_dir_s="$BACKUP_DIR$PAGE_TITLE/" 6.122 + if [ ! -d "$complete_dir_s" ]; then 6.123 + mkdir -p $complete_dir_s 6.124 + chmod 777 $complete_dir_s 6.125 + fi 6.126 + cat >> "$complete_dir_s$(curdate).bak" <<EOT 6.127 + 6.128 +// $datew / $REMOTE_ADDR 6.129 +$(cat $PAGE_txt) 6.130 +EOT 6.131 + fi 6.132 + plugin_call_method "writedPage" $PAGE_txt 6.133 + PAGE_TITLE="$PAGE_TITLE&auth=$AUTH" 6.134 + else 6.135 + PAGE_TITLE="$PAGE_TITLE&action=edit&error=1" 6.136 + fi 6.137 + redirect "$urlbase?page=$PAGE_TITLE" 6.138 +fi 6.139 + 6.140 +if [ -r "$PAGE_txt" -o -n "$action" ]; then 6.141 + CONTENT="" 6.142 + if [ -e "$PAGE_txt" ]; then 6.143 + TIME=$(filedate $PAGE_txt) 6.144 + CONTENT="$(cat $PAGE_txt)" 6.145 + fi 6.146 + # Restaurer une page 6.147 + [ -n "$(GET page)" -a -n "$gtime" -a "$(GET restore)" == 1 ] && 6.148 + [ -r "$BACKUP_DIR$PAGE_TITLE/$gtime" ] && 6.149 + CONTENT="$(cat $BACKUP_DIR$PAGE_TITLE/$gtime)" 6.150 + CONTENT="$(sed -e 's/\$/\$/g' -e 's/\\/\\/g' <<EOT 6.151 +$CONTENT 6.152 +EOT 6.153 +)" 6.154 +else 6.155 + CONTENT="$(sed -e "s#%page%#$PAGE_TITLE#" <<EOT 6.156 +$DEFAULT_CONTENT 6.157 +EOT 6.158 +)" 6.159 +fi 6.160 + 6.161 +htmldiff() 6.162 +{ 6.163 + local files 6.164 + local old 6.165 + local new 6.166 + old="$BACKUP_DIR$(GET page)/$1" 6.167 + new="$BACKUP_DIR$(GET page)/$2" 6.168 + [ -s "$old" ] || old=/dev/null 6.169 + [ -n "$2" -a "$2" != "none" ] || new=$PAGES_DIR$(GET page).txt 6.170 + files="$old $new" 6.171 + [ "$old" -nt "$new" -a "$old" != "/dev/null" ] && files="$new $old" 6.172 + diff -aU 99999 $files | sed -e '1,3d' -e '/^\\/d' -e 's|$|<br/>|' \ 6.173 + -e 's|^-\(.*\)$|<font color=red>\1</font>|' \ 6.174 + -e 's|^+\(.*\)$|<font color=green>\1</font>|' 6.175 +} 6.176 + 6.177 +# Actions speciales du Wiki 6.178 +case "$action" in 6.179 +edit) 6.180 + editable=false 6.181 + HISTORY="<a href=\"$urlbase?page=$(urlencode $PAGE_TITLE)\&action=history\" accesskey=\"6\" rel=\"nofollow\">$HISTORY_BUTTON</a><br />" 6.182 + CONTENT="<form method=\"post\" action=\"$urlbase\"> 6.183 +<textarea name=\"content\" cols=\"83\" rows=\"30\" style=\"width: 100%;\"> 6.184 +$CONTENT 6.185 +</textarea> 6.186 +<input type=\"hidden\" name=\"page\" value=\"$PAGE_TITLE\" /><br /> 6.187 +<p align=\"right\">" 6.188 + if authentified; then 6.189 + CONTENT="$CONTENT<input type=\"hidden\" value=\"$(POST password)\"" 6.190 + else 6.191 + CONTENT="$CONTENT$MDP : <input type=\"password\"" 6.192 + fi 6.193 + CONTENT="$CONTENT name=\"sc\" /> <input type=\"submit\" value=\"$DONE_BUTTON\" accesskey=\"s\" /></p></form>" 6.194 + ;; 6.195 +history) 6.196 + complete_dir="$BACKUP_DIR$PAGE_TITLE/" 6.197 + if [ -n "$gtime" ]; then 6.198 + HISTORY="<a href=\"$urlbase?page=$PAGE_TITLE\&action=history\" rel=\"nofollow\">$HISTORY_BUTTON</a>" 6.199 + if [ -r "$complete_dir$gtime" ]; then 6.200 + HISTORY="$HISTORY <a href=\"$urlbase?page=$PAGE_TITLE\&action=edit\&time=$gtime&restore=1\" rel=\"nofollow\">$RESTORE</a>" 6.201 + CONTENT="$(cat $complete_dir$gtime | sed -e s/$(echo -ne '\r')//g -e 's|$|<br/>|g')" 6.202 + else 6.203 + HISTORY="$HISTORY -" 6.204 + fi 6.205 + else 6.206 + HISTORY="$HISTORY_BUTTON" 6.207 + CONTENT="$NO_HISTORY" 6.208 + if [ -d $complete_dir ]; then 6.209 + CONTENT="<form method=\"GET\" action=\"$urlbase\">\n<input type=hidden name=action value=diff><input type=hidden name=page value=\"$PAGE_TITLE\">" 6.210 + for file in $(ls $complete_dir | sort -r); do 6.211 + CONTENT="$CONTENT 6.212 +<input type=radio name=f1 value=$file><input type=radio name=f2 value=$file /> 6.213 +<a href=\"$urlbase?page=$PAGE_TITLE&action=history&time=$file\">$file</a><br /> 6.214 +" 6.215 + done 6.216 + CONTENT="$CONTENT<input type=submit value=diff></form>" 6.217 + fi 6.218 + fi ;; 6.219 +diff) 6.220 + if [ -n "$(GET f1)" ]; then 6.221 + HISTORY="<a href=\"$urlbase?page=$(urlencode "$PAGE_TITLE")\&action=history\">$HISTORY_BUTTON</a>" 6.222 + CONTENT="$(htmldiff "$(GET f1)" "$(GET f2)" )" 6.223 + else 6.224 + # diff auto entre les 2 dernières versions 6.225 + ls "$BACKUP_DIR$PAGE_TITLE/" | ( sort -r ; echo none ; echo ) | head -n 2 | while read f1 f2; do 6.226 + redirect "$urlbase?page=$(urlencode "$PAGE_TITLE")&action=$action&f1=$f1&f2=$f2" 6.227 + done 6.228 + fi ;; 6.229 +search) 6.230 + PAGE_TITLE_link=false 6.231 + editable=false 6.232 + query="$(GET query)" 6.233 + n=0 6.234 + for file in $(ls $PAGES_DIR/*.txt 2> /dev/null | sort) ; do 6.235 + [ -e $file ] || continue 6.236 + echo $file | grep -qs "$query" $file /dev/stdin || continue 6.237 + file=$(basename $file ".txt") 6.238 + CONTENT="$CONTENT<a href=\"$urlbase?page=$file\">$file</a><br /> 6.239 +" 6.240 + n=$(($n + 1)) 6.241 + done 6.242 + PAGE_TITLE="$PAGE_TITLE ($n)" ;; 6.243 +recent) 6.244 + PAGE_TITLE_link=false 6.245 + editable=false 6.246 + n=0 6.247 + for file in $(ls -l $PAGES_DIR/*.txt 2> /dev/null | awk '{ print $9 }' | tail -n 10) ; do 6.248 + filename=$(basename $file ".txt") 6.249 + timestamp=$(filedate $file) 6.250 + CONTENT="$CONTENT<a href=\"$urlbase?page=$filename\">$filename</a> ($timestamp - <a href=\"$urlbase?page=$filename&action=diff\">diff</a>)<br /> 6.251 +" 6.252 + done ;; 6.253 +'') ;; 6.254 +*) 6.255 + plugin_call_method "action" $action || action="" ;; 6.256 +esac 6.257 +if [ -z "$action" ]; then 6.258 + if echo "$CONTENT" | grep -q '%html%\s'; then 6.259 + CONTENT="$(sed 's/%html%\s//' <<EOT 6.260 +$CONTENT 6.261 +EOT 6.262 +)" 6.263 + else 6.264 + tmpdir=/tmp/tazwiki$$ 6.265 + mkdir $tmpdir 6.266 + unesc="$(echo "$CONTENT" | sed 's/\^\(.\)/\n^\1\n/g' | grep '\^' |\ 6.267 + sort | uniq | grep -v "['[!]" | hexdump -e '"" 3/1 "%d " "\n"' |\ 6.268 + awk '{ printf "-e '\''s/\\^%c/\\&#%d;/g'\'' ",$2,$2}') \ 6.269 + -e 's/\\^'\\''/\\'/g' -e 's/\^\!/\!/g' \ 6.270 + -e 's/\^\[/\[/g'" 6.271 + CONTENT="$(eval sed $unesc <<EOT | \ 6.272 + sed -e 's/&/\&/g' -e s/$(echo -ne '\r')//g \ 6.273 + -e 's/&lt;/\</g' -e 's/&#\([0-9]\)/\&#\1/g' | \ 6.274 + awk -v tmpdir=$tmpdir 'BEGIN { n=1; state=0 } { 6.275 +s=$0 6.276 +while (1) { 6.277 + if (state == 0) { 6.278 + if (match(s,/\{\{/)) { 6.279 + printf "%s<pre><code>{{CODE%s}}</code></pre>",substr(s,1,RSTART-1),n 6.280 + s=substr(s,RSTART+RLENGTH) 6.281 + state=1 6.282 + } 6.283 + else { 6.284 + print s 6.285 + break 6.286 + } 6.287 + } 6.288 + if (state == 1) { 6.289 + if (match(s,/\}\}/)) { 6.290 + printf "%s",substr(s,1,RSTART-1) >> tmpdir "/CODE" n 6.291 + s=substr(s,RSTART+RLENGTH) 6.292 + n++ 6.293 + state=0 6.294 + } 6.295 + else { 6.296 + print s >> tmpdir "/CODE" n 6.297 + break 6.298 + } 6.299 + } 6.300 +} 6.301 +}' 6.302 +$CONTENT 6.303 +EOT 6.304 +)" 6.305 + plugin_call_method formatBegin 6.306 + CONTENT="$(sed -e 's/<-->/\↔/g' -e 's/<==>/\⇔/g'\ 6.307 + -e 's/-->/\→/g' -e 's/<--/\←/g' \ 6.308 + -e 's/==>/\⇒/g' -e 's/<==/\⇐/g' \ 6.309 + -e 's/([eE])/\€/g' -e 's/([pP])/\£/g' \ 6.310 + -e 's/([yY])/\¥/g' -e 's/([tT][mM])/\™/g' \ 6.311 + -e 's/([cC])/\©/g' -e 's/([rR])/\®/g' \ 6.312 + -e 's/(<=)/\≤/g' -e 's/(>=)/\≥/g' \ 6.313 + -e 's/(!=)/\≠/g' -e 's/(+-)/\±/g' <<EOT 6.314 +$CONTENT 6.315 +EOT 6.316 +)" 6.317 + rg_url="[0-9a-zA-Z\.\#/~\-\_%=\?\&,\+\:@;!\(\)\*\$']*" # TODO: verif & / & 6.318 + rg_link_local="$rg_url" 6.319 + rg_link_http="https\?://$rg_url" 6.320 + rg_img_local="$rg_url\.jpe\?g\|$rg_url\.gif\|$rg_url\.png" 6.321 + rg_img_http="$rg_link_http\.jpe\?g\|$rg_link_http\.gif\|$rg_link_http\.png" 6.322 + 6.323 + # image, image link, link, wikipedia, email ... 6.324 + CONTENT="$(sed \ 6.325 + -e "s#\[\($rg_img_http\)|*\([a-z]*\)*\]#<img src=\"\1\" alt=\"\1\" style=\"float:\2;\"/>#g" \ 6.326 + -e "s#\[\($rg_img_local\)|*\([a-z]*\)*\]#<img src=\"\1\" alt=\"\1\" style=\"float:\2;\"/>#g" \ 6.327 + -e "s#\[\($rg_img_http\)|\($rg_link_http\)|*\([a-z]*\)*\]#<a href=\"\2\" class=\"url\"><img src=\"\1\" alt=\"\1\" title=\"\1\"style=\"float:\3;\"/></a>#g" \ 6.328 + -e "s#\[\($rg_img_http\)|\($rg_link_local\)|*\([a-z]*\)*\]#<a href=\"\2\" class=\"url\"><img src=\"\1\" alt=\"\1\" title=\"\1\"style=\"float:\3;\"/></a>#g" \ 6.329 + -e "s#\[\($rg_img_local\)|\($rg_link_http\)|*\([a-z]*\)*\]#<a href=\"\2\" class=\"url\"><img src=\"\1\" alt=\"\1\" title=\"\1\"style=\"float:\3;\"/></a>#g" \ 6.330 + -e "s#\[\($rg_img_local\)|\($rg_link_local\)|*\([a-z]*\)*\]#<a href=\"\2\" class=\"url\"><img src=\"\1\" alt=\"\1\" title=\"\1\"style=\"float:\3;\"/></a>#g" \ 6.331 + -e "s#\[\([^]]*\)|\($rg_link_http\)\]#<a href=\"\2\" class=\"url\">\1</a>#g" \ 6.332 + -e "s#\[\([^]]*\)|\($rg_link_local\)\]#<a href=\"\2\" class=\"url\">\1</a>#g" \ 6.333 + -e "s#\[\($rg_link_http\)\]#<a href=\"\1\" class=\"url\">\1</a>#g" \ 6.334 + -e "s#\([^>\"]\)\($rg_link_http\)#\1<a href=\"\2\" class=\"url\">\2</a>#g" \ 6.335 + -e "s#\[?\([^]]*\)\]#<a href=\"http://$LANG.wikipedia.org/wiki/\1\" class=\"url\" title=\"Wikipedia\">\1</a>#g" \ 6.336 + -e "s#\[\([^]]*\)\]#<a href=\"$urlbase?page=\1\">\1</a>#g" \ 6.337 + -e 's#\([0-9a-zA-Z\./~\-\_][0-9a-zA-Z\./~\-\_]*@[0-9a-zA-Z\./~\-\_][0-9a-zA-Z\./~\-\_]*\)#<a href=\"mailto:\1\">\1</a>#g' \ 6.338 + -e 's#^\*\*\*\(.*\)#<ul><ul><ul><li>\1</li></ul></ul></ul>#g' \ 6.339 + -e 's#^\*\*\(.*\)#<ul><ul><li>\1</li></ul></ul>#g' \ 6.340 + -e 's#^\*\(.*\)#<ul><li>\1</li></ul>#g' \ 6.341 + -e 's,^\#\#\#\(.*\),<ol><ol><ol><li>\1</li></ol></ol></ol>,g' \ 6.342 + -e 's,^\#\#\(.*\),<ol><ol><li>\1</li></ol></ol>,g' \ 6.343 + -e 's,^\#\(.*\),<ol><li>\1</li></ol>,g' \ 6.344 + -e "s/$(printf '\r')//" <<EOT | sed \ 6.345 + -e ':x;/<\/ol>$/{N;s/\n//;$P;$D;bx;}' | sed \ 6.346 + -e ':x;/<\/ul>$/{N;s/\n//;$P;$D;bx;}' | sed \ 6.347 + -e ':x;s/<\/ul><ul>//g;tx' -e ':x;s/<\/ol><ol>//g;tx' \ 6.348 + -e 's|----*$|<hr />|' -e 's|$|<br />|' \ 6.349 + -e 's#</li>#&\n#g' -e 's#\(</h[123456]>\)<br />#\1#g' \ 6.350 + -e "s#'--\([^']*\)--'#<del>\1</del>#g" \ 6.351 + -e "s#'__\([^']*\)__'#<u>\1</u>#g" \ 6.352 + -e "s#'''''\([^']*\)'''''#<strong><em>\1</em></strong>#g" \ 6.353 + -e "s#'''\([^']*\)'''#<strong>\1</strong>#g" \ 6.354 + -e "s#''\([^']*\)''#<em>\1</em>#g" 6.355 +$CONTENT 6.356 +EOT 6.357 +)" 6.358 + while read link; do 6.359 + [ -s $PAGES_DIR$link.txt ] && continue 6.360 + CONTENT="$(sed "s/\\?page=$link\"/& class=\"pending\"/" <<EOT 6.361 +$CONTENT 6.362 +EOT 6.363 +)" 6.364 + done <<EOT 6.365 +$(grep "$urlbase?page=" <<EOM | sed -e 's/^.*\?page=\([^"]*\).*$/\1/' -e 's/&.*//' 6.366 +$CONTENT 6.367 +EOM 6.368 +) 6.369 +EOT 6.370 + while echo "$CONTENT" | grep -q '^ ' ; do 6.371 + CONTENT="$(sed 's/^\( *\) \([^ ]\)/\1\ \ \ \ \2/' <<EOT 6.372 +$CONTENT 6.373 +EOT 6.374 +)" 6.375 + done 6.376 + read hastoc <<EOT 6.377 +$CONTENT 6.378 +EOT 6.379 + CONTENT="$(sed -e 's/^ /\ \ \ \ /' -e '1s/^TOC//' <<EOT 6.380 +$CONTENT 6.381 +EOT 6.382 +)" 6.383 + toc='<div id="toc">' 6.384 + i=1 6.385 + for pat in '^![^!]' '^!![^!]' '^!!![^!]' '^!!!![^!]' '^!!!!!' ; do 6.386 + while read line; do 6.387 + [ -n "$line" ] || continue 6.388 + label="$(echo $line | sed 's/[^\dA-Za-z]/_/g')" 6.389 + toc="$(cat <<EOT 6.390 +$toc 6.391 + <h$i><a href="#$label">$line</a></h$i> 6.392 +EOT 6.393 +)" 6.394 + CONTENT="$(sed "s#^!!* *$line\$#<h$i><a name=\"$label\">$line</a></h$i>#" <<EOT 6.395 +$CONTENT 6.396 +EOT 6.397 +)" 6.398 + done <<EOT 6.399 +$(grep "$pat" <<EOM | sed -e 's/^!!*//' -e 's/#/\#/g' -e 's/&/\\\&/g' 6.400 +$CONTENT 6.401 +EOM 6.402 +) 6.403 +EOT 6.404 + i=$(( $i + 1 )) 6.405 + done 6.406 + toc="$(cat <<EOT 6.407 +$toc 6.408 +</div> 6.409 +EOT 6.410 +)" 6.411 + case "$hastoc" in 6.412 + TOC*) ;; 6.413 + *) toc='';; 6.414 + esac 6.415 + CONTENT="$(awk -v tmpdir=$tmpdir '{ 6.416 +s=$0 6.417 +while (1) { 6.418 + if (match(s,/\{\{CODE[0-9]+\}\}/)) { 6.419 + printf "%s" substr(s,1,RSTART-1) 6.420 + system("cat " tmpdir "/" substr(s,RSTART+2,RLENGTH-4)) 6.421 + s=substr(s,RSTART+RLENGTH) 6.422 + } 6.423 + else { 6.424 + print s 6.425 + break 6.426 + } 6.427 +} 6.428 +}' <<EOT 6.429 +$CONTENT 6.430 +EOT 6.431 +)" 6.432 + rm -rf $tmpdir 6.433 + plugin_call_method formatEnd 6.434 + fi 6.435 +fi 6.436 + 6.437 +# Remplacement dans le template 6.438 +RECENT="<a href=\"$urlbase?action=recent\" accesskey=\"3\">$RECENT_CHANGES</a>" 6.439 +[ "$action" == "recent" ] && RECENT=$RECENT_CHANGES 6.440 +HOME="<a href=\"$urlbase?page=$START_PAGE\" accesskey=\"1\">$HOME_BUTTON</a>" 6.441 +[ "$PAGE_TITLE" == "$START_PAGE" -a "$action" != "search" ] && HOME=$HOME_BUTTON 6.442 +HELP="\1<a href=\"$urlbase?page=$HELP_BUTTON\" accesskey=\"2\" rel=\"nofollow\">$HELP_BUTTON</a>\2" 6.443 +[ "$action" != "edit" ] && HELP="" 6.444 + 6.445 +[ -r "$template" ] || die "'$template' is missing!" 6.446 +html="$(sed -e "s#{\([^}]*\)RECENT_CHANGES\([^}]*\)}#\1$RECENT\2#" \ 6.447 + -e "s#{\([^}]*\)HOME\([^}]*\)}#\1$HOME\2#" \ 6.448 + -e "s#{\([^}]*\)HELP\([^}]*\)}#$HELP#" \ 6.449 + -e "s#{SEARCH}#<form method=\"get\" action=\"$urlbase?page=$(urlencode "$PAGE_TITLE" | sed 's/#/\\#/g')\"><div><input type=\"hidden\" name=\"action\" value=\"search\" /><input type=\"text\" name=\"query\" value=\"$(htmlentities $(GET query) )\" tabindex=\"1\" /> <input type=\"submit\" value=\"$SEARCH_BUTTON\" accesskey=\"q\" /></div></form>#" \ 6.450 + < $template )" 6.451 +[ "$action" != "" -a "$action" != "edit" -o ! -e "$PAGE_txt" ] && TIME="-" 6.452 +plugin_call_method template 6.453 +[ -n "$(GET error)" ] || ERROR="" 6.454 +[ -n "$HISTORY" ] && HISTORY="\1$HISTORY\2" 6.455 +PAGE_TITLE_str="$(htmlentities "$PAGE_TITLE")" 6.456 +$PAGE_TITLE_link && 6.457 +PAGE_TITLE_str="<a href=\"$urlbase?page=$(urlencode "$PAGE_TITLE")\">$PAGE_TITLE_str</a>" 6.458 +EDIT="$EDIT_BUTTON" 6.459 +if $editable ; then 6.460 + EDIT="$PROTECTED_BUTTON" 6.461 + [ -w "$PAGE_txt" -o ! -e "$PAGE_txt" ] && 6.462 + EDIT="<a href=\"$urlbase?page=$(urlencode "$PAGE_TITLE")\&action=edit\" accesskey=\"5\" rel=\"nofollow\">$EDIT_BUTTON</a>" 6.463 +fi 6.464 +[ -n "$toc" ] && toc="\1$toc\2" 6.465 +AUTH_GET="" 6.466 +AUTH_POST="" 6.467 +if authentified; then 6.468 + AUTH_GET="auth=$AUTH\&" 6.469 + AUTH_POST="\n<input type=\"hidden\" name=\"auth\" value=\"$AUTH\" />" 6.470 +fi 6.471 + 6.472 +header "Content-type: text/html" 6.473 +sed -e "s#{ERROR}#$ERROR#" -e "s#{WIKI_TITLE}#$WIKI_TITLE#" \ 6.474 + -e "s#{\([^}]*\)HISTORY\([^}]*\)}#$HISTORY#" \ 6.475 + -e "s#{PAGE_TITLE}#$PAGE_TITLE_str#" \ 6.476 + -e "s#{\([^}]*\)EDIT\([^}]*\)}#\1$EDIT\2#" \ 6.477 + -e "s|{\([^}]*\)TOC\([^}]*\)}|$(awk '{ printf "%s\\n" $0 }' <<EOT | \ 6.478 + sed -e 's/&/\\\&/g' -e 's/|/\\|/g' 6.479 +$toc 6.480 +EOT 6.481 +)|" \ 6.482 + -e "s#{PAGE_TITLE_BRUT}#$(htmlentities "$PAGE_TITLE")#" \ 6.483 + -e "s#{LAST_CHANGE}#$LAST_CHANGES :#" \ 6.484 + -e "s#{CONTENT}#$(awk '{ printf "%s\\n" $0 }' <<EOT | \ 6.485 + sed -e 's/&/\\\&/g' -e 's/#/\\#/g' 6.486 +$CONTENT 6.487 +EOT 6.488 +)#" \ 6.489 + -e "s#{LANG}#$LANG#" -e "s#href=\"?#href=\"$urlbase?#g" \ 6.490 + -e "s#$urlbase?#&$AUTH_GET#g" -e "s#action=\"$urlbase\">#&$AUTH_POST#g" \ 6.491 + -e "s#{WIKI_VERSION}#$WIKI_VERSION#" \ 6.492 + -e "s#{TIME}#$TIME#" -e "s#{DATE}#$datew#" \ 6.493 + -e "s#{IP}#$REMOTE_ADDR#" -e "s#{COOKIE}##" <<EOT 6.494 +$html 6.495 +EOT
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/tazwikiss/stuff/var/www/wiki/pages/Accueil.txt Sun Jul 18 12:02:49 2010 +0200 7.3 @@ -0,0 +1,12 @@ 7.4 +TOC 7.5 +!Bienvenue... 7.6 +!!...sur votre wiki 7.7 +Merci d'avoir choisi TazWiKiss l'adaptation de [WiKiss|http://wikiss.tuxfamily.org/] pour SliTaz. 7.8 +N'hésitez pas à parcourir cette installation par défaut, jusqu'à ce que vous vous sentiez à l'aise. 7.9 + 7.10 +!!Aide 7.11 +Pour tester l'édition et la mise en forme dans ''TazWiKiss'', cliquez simplement sur « '''Éditer''' » en haut de cet écran pour accéder à cette page (et la modifier). Vous pouvez aussi créer et tester via la page [BacASable]. 7.12 + 7.13 +Allez voir l'[Aide] et [AideTables] pour un aperçu de toutes les possibilités. Vous pouvez toujours revenir sur cette page en cliquant sur « '''Accueil''' ». 7.14 + 7.15 +'''Amusez vous !'''
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/tazwikiss/stuff/var/www/wiki/pages/Aide.txt Sun Jul 18 12:02:49 2010 +0200 8.3 @@ -0,0 +1,88 @@ 8.4 +TOC 8.5 +!Aide 8.6 +Voici un aperçu de toutes les règles de mise en forme dans ''WiKiss''. 8.7 +Cliquez sur "Éditer" en haut ou en bas de cette page pour voir comment ça se passe. 8.8 +(Si vous ne voyez que "Page verrouillée", effectuez un CHMOD 775 sur ce fichier via un logiciel FTP) 8.9 +---- 8.10 +Les titres utilisent le point d'exclamation '''!''' 8.11 +^! Gros 8.12 +^!! Moins gros 8.13 +^!!! Encore moins gros 8.14 +produit : 8.15 +! Gros 8.16 +!! Moins gros 8.17 +!!! Encore moins gros 8.18 + 8.19 +Pour générer automatiquement une table des matières dans une page, ajoutez le terme TOC dans celle-ci : 8.20 +* en dernière ligne pour plus de clarté, cela n'influe pas sur son positionnement ; 8.21 +* en 1ère ligne si vous voulez écrire TOC dans la page. Seule la 1ère occurrence sera remplacée par la table des matières. 8.22 +---- 8.23 +Les styles utilisent la simple apostrophe ' 8.24 +^''^'Gras^''^' --> '''Gras''' 8.25 +^''italique^'' --> ''italique'' 8.26 +^''^''^'Gras et italique^''^''^' --> '''''Gras et italique''''' 8.27 +---- 8.28 +La rayure de mot utilise l'apostrophe avec deux tirets 8.29 +^'--Rayé--' --> '--Rayé--' 8.30 +de même pour souligner, l'apostrophe suivit de deux blancs soulignés (underscore) 8.31 +^'__Souligné__' --> '__Souligné__' 8.32 +---- 8.33 +Les listes ordonnées utilisent le dièse '''#''' 8.34 +# Premier 8.35 +# Deuxième 8.36 +# Troisième 8.37 +---- 8.38 +Les listes non ordonnées utilisent l'étoile '''*''' 8.39 +* Pomme 8.40 +* Poire 8.41 +* Pêche 8.42 +---- 8.43 +Le code, et tous les textes où le formatage est important, utilisent deux accolades 8.44 +^{{import sys 8.45 +if len(sys.argv) == 2: 8.46 + print "Hello",sys.argv^[1]}} 8.47 +donne : 8.48 +{{import sys 8.49 +if len(sys.argv) == 2: 8.50 + print "Hello",sys.argv[1]}} 8.51 +---- 8.52 +Certains caractères spéciaux sont reconnus : 8.53 +* Flèches : <^-- : <--, ^--> : -->, <^--> : <--> 8.54 +* Copyrights : ^(c) ou ^(C) : (c), ^(r) ou ^(R) : (r) 8.55 +---- 8.56 +Les liens externes et les adresses eMail sont reconnus automagiquement ... 8.57 +^http://wikiss.tuxfamily.org/ --> http://wikiss.tuxfamily.org/ 8.58 +wikiss^@example.org --> wikiss@example.org 8.59 + 8.60 +ou au travers d'un texte entre crochets : 8.61 +'''^['''Visitez le site de WiKiss'''|'''^http://wikiss.tuxfamily.org/''']''' --> [Visitez le site de WiKiss|http://wikiss.tuxfamily.org/] 8.62 + 8.63 +avec un ? on fait un lien vers Wikipedia dans la langue courante : 8.64 +'''^[?'''Wiki''']''' --> [?Wiki] 8.65 +---- 8.66 +Les images sont incluses automagiquement en insérant l'URL de l'image que vous voulez voir entre crochets 8.67 +'''^['''^http://wikiss.tuxfamily.org/img/logo_100.png''']''' --> 8.68 +[http://wikiss.tuxfamily.org/img/logo_100.png] 8.69 + 8.70 +Vous pouvez aussi utiliser une image comme un lien : '''^['''^http://wikiss.tuxfamily.org/img/logo_100.png'''|'''^http://wikiss.tuxfamily.org/''']''' --> 8.71 +[http://wikiss.tuxfamily.org/img/logo_100.png|http://wikiss.tuxfamily.org/] 8.72 + 8.73 +Mais aussi positionner l'image de manière flottante à gauche ou à droite : 8.74 +[http://wikiss.tuxfamily.org/img/logo_100.png|left] [http://wikiss.tuxfamily.org/img/logo_100.png|http://wikiss.tuxfamily.org|right] 8.75 +<-- '''^['''^http://wikiss.tuxfamily.org/img/logo_100.png'''|left]''' 8.76 +'''^['''^http://wikiss.tuxfamily.org/img/logo_100.png'''|'''^http://wikiss.tuxfamily.org'''|right]''' --> 8.77 + 8.78 +---- 8.79 +Les liens vers les wiki-pages utilisent les crochets : 8.80 +'''^['''Acceuil''']''' --> [Accueil] 8.81 + 8.82 +Si une page n'existe pas, elle sera créée au premier clic sur son lien. 8.83 +Cliquez sur "BacASable" ci-dessous et vous pourrez tout simplement écrire cette nouvelle page ... 8.84 +[BacASable] 8.85 +---- 8.86 +... et pour insérer des lignes, utilisez quatre tirets : '''---- ''' 8.87 +---- 8.88 +Enfin, pour neutraliser la syntaxe de WiKiss, utilisez l'accent circonflexe ^^ 8.89 +Ainsi, saisir '''^^^['''WiKiss''']''' permet d'afficher ^[WiKiss] plutôt que [WiKiss] 8.90 +---- 8.91 +Essayez ! Vous verrez, c'est très simple (^_^) 8.92 \ No newline at end of file
9.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 9.2 +++ b/tazwikiss/stuff/var/www/wiki/pages/AideTables.txt Sun Jul 18 12:02:49 2010 +0200 9.3 @@ -0,0 +1,63 @@ 9.4 +! Aide à la syntaxe des tables 9.5 + 9.6 +!! Création de table 9.7 +Les tables sont définies à l'aide du caractère | 9.8 +basiquement, il suffit de dessiner le tableau : 9.9 +{{|case 1|case 2| 9.10 +|case 3|case 4| 9.11 +}} 9.12 +donnera : 9.13 +|case 1|case 2| 9.14 +|case 3|case 4| 9.15 + 9.16 +On peut aussi faire de la mise-en-forme de cellule. Il faut pour cela indiquer quelques caractères au début de celle-ci : 9.17 +* des lettres suivies d'un espace pour définir l'alignement : 9.18 +** h : la cellule fait partie d'un titre 9.19 +** t : alignement vertical en haut 9.20 +** b : alignement vertical en bas 9.21 +** l : alignement horizontal à gauche 9.22 +** r : alignement horizontal à droite 9.23 +* deux chiffres peuvent être ajoutés pour connecter les cellules : 9.24 +** le premier indique combien de colonnes doivent être connectées 9.25 +** le second placé après une virgule connecte les lignes 9.26 + 9.27 +{{ 9.28 +|hl Titre gauche|hr Titre droite| 9.29 +|r droite |l gauche | 9.30 +|2 Deux colonnes | 9.31 +|t ,2 Deux lignes| A | 9.32 + | B | 9.33 +|,2 Deux lignes | C | 9.34 + | D |}} 9.35 + 9.36 +|hl Titre gauche|hr Titre droite| 9.37 +|r droite |l gauche | 9.38 +|2 Deux colonnes | 9.39 +|t ,2 Deux lignes| A | 9.40 + | B | 9.41 +|,2 Deux lignes | C | 9.42 + | D | 9.43 + 9.44 +!! Inclusion dans une table 9.45 +|h 3 Syntaxe supportée| 9.46 +|ht ,7 Mise en forme | ^''italique^'' | ''italique'' | 9.47 + | '^''gras'^'' | '''gras''' | 9.48 + |'^'^'^''gras italique'^'^'^''|'''''gras italique'''''| 9.49 + |^'--rayé--'|'--rayé--'| 9.50 + |^'__souligné__'|'__souligné__'| 9.51 + | Caractères spéciaux | (c) (r) --> <-- | 9.52 + |^{{code}}|{{code}}| 9.53 +|ht ,3 Liens |^[Liens] | [Liens] | 9.54 + |^[Liens 2^|?page=Liens]| [Liens 2|?page=Liens] | 9.55 + |^[?Wikipedia]| [?Wikipedia] | 9.56 +|ht ,4 Images |^[^http://wikiss.tuxfamily.org/img/logo_100.png]|[http://wikiss.tuxfamily.org/img/logo_100.png]| 9.57 + |^[/logo_100.png^|^http://wikiss.tuxfamily.org/]|[http://wikiss.tuxfamily.org/img/logo_100.png|http://wikiss.tuxfamily.org/]| 9.58 + |^[^http://wikiss.tuxfamily.org/img/logo_100.png^|right] | [http://wikiss.tuxfamily.org/img/logo_100.png|right]| 9.59 + |^[/logo_100.png^|^http://wikiss.tuxfamily.org/^|left] | [http://wikiss.tuxfamily.org/img/logo_100.png|http://wikiss.tuxfamily.org/|left]| 9.60 + 9.61 + 9.62 +|h 2 Syntaxe non supportée| 9.63 +|Titres | !! Titre| 9.64 +|,2 Listes | * non ordonnée | 9.65 + | # ordonnée | 9.66 +|Lignes |----| 9.67 \ No newline at end of file
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/tazwikiss/stuff/var/www/wiki/pages/Help.txt Sun Jul 18 12:02:49 2010 +0200 10.3 @@ -0,0 +1,127 @@ 10.4 +TOC 10.5 +!Help 10.6 + 10.7 +Here is a summary of all the formatting rules in ''WiKiss''. 10.8 +Click "Edit" on top or bottom of this page to see how it works. 10.9 +(if you see "Page Locked", do a chmod 775 on this file via a ftp client) 10.10 + 10.11 +See also [AideTables] to create tables. 10.12 + 10.13 +---- 10.14 + 10.15 +Tiles use the exclamation mark '''!'''%% 10.16 +^! Big%% 10.17 +^!! Less big%% 10.18 +^!!! Smaller%% 10.19 +gives you : 10.20 +! Big 10.21 +!! Less big 10.22 +!!! Smaller 10.23 + 10.24 +To automatically add a table of contents in a page, add the '''TOC''' mark in it : 10.25 +* at the last line to be clearer, there is no influence on position ; 10.26 +* at the first line if you need to write TOC in your page. Only the first occurrence will be replaced. 10.27 + 10.28 +---- 10.29 + 10.30 +Styles use the single quote ' 10.31 +* ^''^'Bold^''^' --> '''Bold''' 10.32 +* ^''italic^'' --> ''italic'' 10.33 +* ^''^''^'Bold and italic^''^''^' --> '''''Bold and italic''''' 10.34 + 10.35 +---- 10.36 + 10.37 +Stroke of a work use quote and two dashes%% 10.38 +^'--Stroked--' --> '--Stroked--' 10.39 + 10.40 +the same applies for underline, quote followed by by two underscore%% 10.41 +^'__Underlined__' --> '__Underlined__' 10.42 + 10.43 +---- 10.44 + 10.45 +The ordered lists use sharp '''#''' 10.46 +# First 10.47 +# Second 10.48 +# Third 10.49 + 10.50 +---- 10.51 + 10.52 +Non ordered lists use the star '''*''' 10.53 +* Apple 10.54 +* Pear 10.55 +* Peach 10.56 + 10.57 +---- 10.58 + 10.59 +The code, and all of those things where formatting is important, use the braces %% 10.60 +^{{import sys%% 10.61 +if len(sys.argv) == 2:%% 10.62 + print "Hello",sys.argv^[1]}}%% 10.63 +give : 10.64 +{{import sys 10.65 +if len(sys.argv) == 2: 10.66 + print "Hello",sys.argv[1]}} 10.67 + 10.68 +---- 10.69 + 10.70 +The separation between paragraphs of text is done through an empty line. 10.71 +To force a line break in the middle of a paragraph, use: ^%% 10.72 + 10.73 +---- 10.74 + 10.75 +Some special characters are recognized: 10.76 +* Arrows : <^-- : <--, ^--> : -->, <^--> : <--> 10.77 +* Copyrights : ^(c) or ^(C) : (c), ^(r) or ^(R) : (r) 10.78 + 10.79 +---- 10.80 + 10.81 +Links to wiki-pages use square brackets : 10.82 +'''^['''Accueil''']''' --> [Accueil] 10.83 + 10.84 +If a page does not exists, it will be created on first click. 10.85 +Click on "SandBox" below and you will be able to create it ...%% 10.86 +[SandBox] 10.87 + 10.88 +To link a wiki-page with a different text use : 10.89 +'''^['''Beginning'''|?page='''Accueil''']''' --> [Beginning|?page=Accueil] 10.90 + 10.91 +The external links and addresses eMail are automagically recognized ... 10.92 +* ^http://wikiss.tuxfamily.org/ --> http://wikiss.tuxfamily.org/ 10.93 +* wikiss^@example.org --> wikiss@example.org 10.94 + 10.95 +or through a text between square brackets : 10.96 +* '''^['''Visit WiKiss web site'''|'''^http://wikiss.tuxfamily.org/''']''' --> [Visit WiKiss web site|http://wikiss.tuxfamily.org/] 10.97 + 10.98 +with a ? you get a Wikipedia link in the current language : 10.99 +* '''^[?'''Wiki''']''' --> [?Wiki] 10.100 + 10.101 +---- 10.102 + 10.103 +Images are automagically inserted with the picture URL between square brackets%% 10.104 +'''^['''^http://wikiss.tuxfamily.org/img/logo_100.png''']''' --> 10.105 +[http://wikiss.tuxfamily.org/img/logo_100.png] 10.106 + 10.107 +You can also use an image as a link : %% 10.108 +'''^['''^http://wikiss.tuxfamily.org/img/logo_100.png'''|'''^http://wikiss.tuxfamily.org/''']''' --> 10.109 +[http://wikiss.tuxfamily.org/img/logo_100.png|http://wikiss.tuxfamily.org/] 10.110 + 10.111 +But also position the image on a floating left or right: 10.112 +[http://wikiss.tuxfamily.org/img/logo_100.png|left] [http://wikiss.tuxfamily.org/img/logo_100.png|http://wikiss.tuxfamily.org|right] 10.113 +%% 10.114 + 10.115 +<-- '''^['''^http://wikiss.tuxfamily.org/img/logo_100.png'''|left]'''%% 10.116 +'''^['''^http://wikiss.tuxfamily.org/img/logo_100.png'''|'''^http://wikiss.tuxfamily.org'''|right]''' --> 10.117 +%% 10.118 + 10.119 +---- 10.120 + 10.121 +... to insert lines, simply use four dashes : '''---- ''' 10.122 + 10.123 +---- 10.124 + 10.125 +Finally, in order to neutralize the syntax WiKiss, use the caret ^ %% 10.126 +Thus, enter '''^^^['''WiKiss''']''' can display ^[WiKiss] rather than [WiKiss] 10.127 + 10.128 +---- 10.129 + 10.130 +Try it, you'll see, it's very simple.
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 11.2 +++ b/tazwikiss/stuff/var/www/wiki/pages/HelpTables.txt Sun Jul 18 12:02:49 2010 +0200 11.3 @@ -0,0 +1,70 @@ 11.4 +! Help on the table syntax 11.5 + 11.6 +!! Table creation 11.7 +Tables are defined with the pipe character | 11.8 + 11.9 +Basically you just need to draw the table : 11.10 + 11.11 +{{|cell 1|cell 2| 11.12 +|cell 3|cell 4| 11.13 +}} 11.14 + 11.15 +will be displayed as : 11.16 +|cell 1|cell 2| 11.17 +|cell 3|cell 4| 11.18 + 11.19 +You can also format your cell. For that, add some characters at the beginning : 11.20 + 11.21 +* a '''h''' if the cell is a header 11.22 +* more letters followed by a space to defined alignment : 11.23 +** t : vertically aligned on top 11.24 +** b : vertically aligned on bottom 11.25 +** l : horizontally aligned on left 11.26 +** r : horizontally aligned on right 11.27 +* two numbers can be added to connect cells 11.28 +** first one to give how many columns has to be connected 11.29 +** second one, after a comma connects lines 11.30 + 11.31 +{{ 11.32 +|hl Title on left|hr Title on right| 11.33 +|r right |l left | 11.34 +|2 Two columns | 11.35 +|t ,2 Two lines | A | 11.36 + | B | 11.37 +|,2 two lines | C | 11.38 + | D |}} 11.39 + 11.40 +|hl Title on left|hr title on right| 11.41 +|r right |l left | 11.42 +|2 Two columns | 11.43 +|t ,2 Two lines | A | 11.44 + | B | 11.45 +|,2 two lines | C | 11.46 + | D | 11.47 + 11.48 +!! Other syntax included in a table 11.49 + 11.50 +|h 3 Supported wiki syntax | 11.51 +|ht ,7 Formatting | ^''italic^'' | ''italic'' | 11.52 + | '^''bold'^'' | '''bold''' | 11.53 + |'^'^'^''bold italic'^'^'^''|'''''bold italic'''''| 11.54 + |^'--stroked--'|'--stroked--'| 11.55 + |^'__underlined__'|'__underlined__'| 11.56 + | Special chars | (c) (r) --> <-- | 11.57 + |^{{code}}|{{code}}| 11.58 +|ht ,3 Links |^[WikiLink] | [WikiLink] | 11.59 + |^[Link 2^|?page=Link]| [Link 2|?page=Link] | 11.60 + |^[?Wikipedia]| [?Wikipedia] | 11.61 +|ht ,4 Images |^[^http://wikiss.tuxfamily.org/img/logo_100.png]|[http://wikiss.tuxfamily.org/img/logo_100.png]| 11.62 + |^[/logo_100.png^|^http://wikiss.tuxfamily.org/]|[http://wikiss.tuxfamily.org/img/logo_100.png|http://wikiss.tuxfamily.org/]| 11.63 + |^[^http://wikiss.tuxfamily.org/img/logo_100.png^|right] | [http://wikiss.tuxfamily.org/img/logo_100.png|right]| 11.64 + |^[/logo_100.png^|^http://wikiss.tuxfamily.org/^|left] | [http://wikiss.tuxfamily.org/img/logo_100.png|http://wikiss.tuxfamily.org/|left]| 11.65 + 11.66 +and 11.67 + 11.68 +|h 2 Not supported syntax| 11.69 +|Titles | !! Titles| 11.70 +|,2 Lists | * non ordered | 11.71 + | # ordered | 11.72 +|Lines |----| 11.73 +
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/tazwikiss/stuff/var/www/wiki/pages/Welcome.txt Sun Jul 18 12:02:49 2010 +0200 12.3 @@ -0,0 +1,14 @@ 12.4 +TOC 12.5 +!Welcome ... 12.6 +!!... to your wiki 12.7 + 12.8 +Thanks for choosing TazWiKiss, the SliTaz port of [WiKiss|http://wikiss.tuxfamily.org/]. 12.9 +Feel free to browse the default installation, until you feel comfortable. 12.10 + 12.11 +!!Help 12.12 + 12.13 +To test edition and formatting of ''WiKiss'', just click on "'''Edit'''" on top of this screen to access (and modify) this page. You can also create and test via the [SandBox] page. 12.14 + 12.15 +Go see the [Help] and [HelpTables] for an overview of all the possibilities. You can always return to this page by clicking on "'''Home'''" 12.16 + 12.17 +'''Have fun !'''
13.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 13.2 +++ b/tazwikiss/stuff/var/www/wiki/plugins/wkp_ListPlugins.sh Sun Jul 18 12:02:49 2010 +0200 13.3 @@ -0,0 +1,51 @@ 13.4 +plugin="<a href=\"?action=list\">ListPlugins</a>" 13.5 +description_fr="Affiche la liste des plugins chargés" 13.6 +description="List plugins" 13.7 + 13.8 +action() 13.9 +{ 13.10 + [ "$1" == "list" -o "$1" == "config" ] || return 1 13.11 + CONTENT=' 13.12 +<table width="100%"> 13.13 +<tr><td span=2><h2>Plugins</h2></td></tr> 13.14 +' 13.15 + PAGE_TITLE_link=false 13.16 + editable=false 13.17 + lang="${HTTP_ACCEPT_LANGUAGE%%,*}" 13.18 + PAGE_TITLE="Configuration" 13.19 + for i in $plugins_dir/*.sh ; do 13.20 + plugin= 13.21 + eval $(grep ^plugin= $i) 13.22 + [ -n "$plugin" ] || continue 13.23 + eval $(grep ^description= $i) 13.24 + alt="$(grep ^description_$lang= $i)" 13.25 + [ -n "$alt" ] && eval $(echo "$alt" | sed 's/_..=/=/') 13.26 + CONTENT="$CONTENT 13.27 +<tr><td><b> 13.28 +<input type=checkbox disabled=disabled $([ -x $i ] && echo 'checked=checked ')/> 13.29 +$plugin</b></td><td><i>$description</i></td></tr>" 13.30 + done 13.31 + CONTENT="$CONTENT 13.32 +<tr><td span=2><br /><h2>Locales</h2></td></tr> 13.33 +" 13.34 + for i in config-*.sh ; do 13.35 + i=${i#config-} 13.36 + i=${i%.sh} 13.37 + [ -n "$i" ] || continue 13.38 + CONTENT="$CONTENT 13.39 +<tr><td><b> 13.40 +<input type=checkbox disabled=disabled $([ "$i" == "$lang" ] && echo 'checked=checked ')/> 13.41 +$i</b></td></tr> 13.42 +" 13.43 + done 13.44 + CONTENT="$CONTENT 13.45 +<tr><td><br /><h2>Data</h2></td> 13.46 +<td><form method=\"get\" action=\"?action=saveconf\"> 13.47 +<input disabled type=\"submit\" name=\"save\" value=\"save\" /> 13.48 +<input disabled type=\"file\" name=\"file\" value=\"file\" /> 13.49 +<input disabled type=\"submit\" name=\"restore\" value=\"restore\" /> 13.50 +</form></td></tr> 13.51 +$(du -hs */ | awk '{ printf "<tr><td><b>%s</b></td><td><i>%s</i></td></tr>\n",$1,$2 }') 13.52 +</table> 13.53 +" 13.54 +}
14.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 14.2 +++ b/tazwikiss/stuff/var/www/wiki/plugins/wkp_Rss.sh Sun Jul 18 12:02:49 2010 +0200 14.3 @@ -0,0 +1,45 @@ 14.4 +plugin="Rss" 14.5 +description_fr="Génération d'un flux Rss des derniers changements" 14.6 +description="Generate a Rss streams with last changes" 14.7 + 14.8 +writedPage() 14.9 +{ 14.10 + # Attention, bug si https ou port différent de 80 ? 14.11 + ADR_ACCUEIL="http://$SERVER_NAME$SCRIPT_NAME" 14.12 + CONTENT_RSS="" 14.13 + for file in $(ls -l $PWD/$PAGES_DIR/*.txt 2> /dev/null | awk '{ print $9 }' | tail -n 10) ; do 14.14 + filename=$(basename $file ".txt") 14.15 + timestamp=$(filedate $file) 14.16 + CONTENT="$CONTENT<a href=\"?page=$filename\">$filename</a> ($timestamp - <a href=\"./?page=$filename&action=diff\">diff</a>)<br />" 14.17 +CONTENT_RSS="$CONTENT_RSS<item> 14.18 +<title>$filename</title> 14.19 +<pubDate>$timestamp</pubDate> 14.20 +<link>$ADR_ACCUEIL?page=$(urlencode '$filename')</link> 14.21 +<description>$filename $timestamp</description> 14.22 +</item>" 14.23 + done 14.24 + sed -e "s#{WIKI_TITLE}#$WIKI_TITLE#" \ 14.25 + -e "s#{ADR_ACCUEIL}#$ADR_ACCUEIL#" \ 14.26 + -e "s#{LANG}#$LANG#" \ 14.27 + -e "s#{WIKI_DESCRIPTION}#Flux RSS de $WIKI_TITLE#" \ 14.28 + -e "s#{CONTENT_RSS}#$CONTENT_RSS#" > rss.xml <<EOT 14.29 +<rss version="0.91"> 14.30 +<channel> 14.31 +<title>{WIKI_TITLE}</title> 14.32 +<link>{ADR_ACCUEIL}</link> 14.33 +<description>{WIKI_DESCRIPTION}</description> 14.34 +<language>{LANG}</language> 14.35 +{CONTENT_RSS} 14.36 +</channel> 14.37 +</rss> 14.38 +EOT 14.39 +} 14.40 + 14.41 +template() 14.42 +{ 14.43 + html="$(sed 's#{RSS}#<link rel="alternate" type="application/rss+xml" title="RSS" href="rss.xml" />#' <<EOT 14.44 +$html 14.45 +EOT 14.46 +)" 14.47 + return 0 14.48 +}
15.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 15.2 +++ b/tazwikiss/stuff/var/www/wiki/plugins/wkp_Tables.sh Sun Jul 18 12:02:49 2010 +0200 15.3 @@ -0,0 +1,57 @@ 15.4 +plugin="Tables" 15.5 +description_fr="Syntaxe de tables" 15.6 +description="Table syntax" 15.7 + 15.8 +formatBegin() 15.9 +{ 15.10 +CONTENT=$(sed -e 's/\[\([^]]*\)|\([^]]*\)|\([^]]*\)\]/[\1{WKP_TBL_BAR}\2{WKP_TBL_BAR}\3]/g' \ 15.11 + -e 's/\[\([^]]*\)|\([^]]*\)\]/[\1{WKP_TBL_BAR}\2]/g' -e 's,|,||,g' \ 15.12 + -e 's,^\( *|\)|,\1,' -e 's/|\( *\)$/\1/' <<EOT | awk ' 15.13 +{ 15.14 + if (/^ *\|.*\|$/) { 15.15 + if (in_array == 0) printf "<table class=\"wikitable\">" 15.16 + in_array = 1 15.17 + s = $0 15.18 + printf "<tr>" 15.19 + while (match(s,/\|[^\|]*\|/)) { 15.20 + q = substr(s,RSTART+1,RLENGTH-2) 15.21 + s = substr(s,RSTART+RLENGTH) 15.22 + c=""; lr=""; tb="" 15.23 + if (match(q,/^[hlrtb]+ /)) { 15.24 + for (i = 0; i < RLENGTH; i++) { 15.25 + if (q ~ /^h/) c=" class=\"em\"" 15.26 + if (q ~ /^l/) lr="text-align: left; " 15.27 + if (q ~ /^r/) lr="text-align: right; " 15.28 + if (q ~ /^t/) tb="vertical-align: top; " 15.29 + if (q ~ /^b/) tb="vertical-align: bottom; " 15.30 + q = substr(q,2) 15.31 + } 15.32 + } 15.33 + if (lr != "" || tb != "") c = c " style=\"" lr tb "\"" 15.34 + if (match(q,/^[0-9]+ */)) { 15.35 + n = RLENGTH 15.36 + match(q,/^[0-9]+/) 15.37 + c = c " colspan=\"" substr(q,1,RLENGTH) "\"" 15.38 + q = substr(q,n+1) 15.39 + } 15.40 + if (match(q,/^,[0-9]+ */)) { 15.41 + n = RLENGTH 15.42 + match(q,/^,[0-9]+/) 15.43 + c = c " rowspan=\"" substr(q,2,RLENGTH-1) "\"" 15.44 + q = substr(q,n+1) 15.45 + } 15.46 + printf " <td" c ">" q "</td>" 15.47 + } 15.48 + printf "</tr>" 15.49 + } 15.50 + else { 15.51 + if (in_array != 0) print "</table>" 15.52 + in_array = 0 15.53 + print 15.54 + } 15.55 +} END { if (in_array != 0) print "</table>" }' | \ 15.56 +sed -e 's/{WKP_TBL_BAR}/|/g' -e 's,||,|,g' 15.57 +$CONTENT 15.58 +EOT 15.59 +) 15.60 +}
16.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 16.2 +++ b/tazwikiss/stuff/var/www/wiki/style.css Sun Jul 18 12:02:49 2010 +0200 16.3 @@ -0,0 +1,172 @@ 16.4 +/* Plugin wkp_Tables */ 16.5 +table.wikitable { 16.6 + border-collapse: collapse; 16.7 + border: 1px solid #ccc; 16.8 +} 16.9 + 16.10 +table.wikitable td { 16.11 + border: 1px solid #ccc; 16.12 + text-align: center; 16.13 + vertical-align: middle; 16.14 + padding: 2px; 16.15 +} 16.16 + 16.17 +table.wikitable td.em { 16.18 + background: #ccc; 16.19 + font-weight: bold; 16.20 +} 16.21 + 16.22 +/* Table Of Content */ 16.23 +#toc { 16.24 + border: 1px dashed #11141A; 16.25 + float:right; 16.26 + padding-right: 2em; 16.27 +} 16.28 +#toc h1 { 16.29 + font-size: 10px; 16.30 + padding-left: .5em; 16.31 +} 16.32 +#toc h2 { 16.33 + font-size: 9px; 16.34 + padding-left: 1.5em; 16.35 +} 16.36 +#toc h3 { 16.37 + font-size: 8px; 16.38 + padding-left: 2em; 16.39 +} 16.40 +#toc h4 { 16.41 + font-size: 7px; 16.42 + padding-left: 2.5em; 16.43 +} 16.44 +#toc h5 { 16.45 + font-size: 6px; 16.46 + padding-left: 3em; 16.47 +} 16.48 + 16.49 +img { 16.50 +border: 0px 16.51 +} 16.52 + 16.53 +body { 16.54 +background-color: #828A99; 16.55 +font-family: Trebuchet, "Trebuchet MS", sans-serif; 16.56 +font-size: 14px; 16.57 +line-height: 16px; 16.58 +} 16.59 + 16.60 +pre 16.61 +{ 16.62 +border: 1px dotted #ccc; 16.63 +padding: 4px; 16.64 +width: 640px; 16.65 +overflow: auto; 16.66 +} 16.67 + 16.68 +code 16.69 +{ 16.70 +font-family: "Courier New", monospace; 16.71 +font-size: 12px; 16.72 +} 16.73 + 16.74 +a { 16.75 +color: #333C4D; 16.76 +} 16.77 + 16.78 +a.pending { 16.79 +color: #7F4736; 16.80 +} 16.81 + 16.82 +a.url { 16.83 +color: #808080; 16.84 +} 16.85 + 16.86 +a:hover { 16.87 +color: #57A2D4; 16.88 +background: inherit; 16.89 +} 16.90 + 16.91 +.category { 16.92 + color: #999; 16.93 + background: inherit; 16.94 +} 16.95 + 16.96 +th 16.97 +{ 16.98 +padding-left: 1em; 16.99 +background: #333C4D; 16.100 +color: white; 16.101 +text-align: left; 16.102 +border-bottom: 1px dashed #11141A; 16.103 +} 16.104 + 16.105 +th h1 { 16.106 +font-family: "Futura Condensed", Futura, sans-serif !important; 16.107 +font-weight: bolder; 16.108 +padding-top: 10px; 16.109 +padding-bottom: 4px; 16.110 +margin-top: 0; 16.111 +margin-bottom: 0; 16.112 +} 16.113 + 16.114 +h1, h2, h3, h4, h5, h6 { 16.115 +font-family: "Futura Condensed", Futura, sans-serif !important; 16.116 +} 16.117 + 16.118 +th a { 16.119 +text-decoration: none; 16.120 +color: white !important; 16.121 +} 16.122 + 16.123 +th p { 16.124 +font-size: 80%; 16.125 +margin-top: 0; 16.126 +margin-bottom: 0; 16.127 +padding-left: 2em; 16.128 +} 16.129 + 16.130 +#mainTable { 16.131 +border: 1px solid #11141A; 16.132 +} 16.133 + 16.134 +.pageLinks { 16.135 +padding-left: 1em; 16.136 +padding-right: 1em; 16.137 +font-size: 80%; 16.138 +margin-top: 0; 16.139 +margin-bottom: 0; 16.140 +background-color: #eee; 16.141 +color: #666; 16.142 +} 16.143 +.pageLinks a { 16.144 +font-weight: bold; 16.145 +text-decoration: none; 16.146 +} 16.147 + 16.148 +#headerLinks td { 16.149 +border-bottom: 1px dashed #ccc !important; 16.150 +} 16.151 + 16.152 +#footerLinks td { 16.153 +border-top: 1px dashed #ccc !important; 16.154 +} 16.155 + 16.156 +#mainContent { 16.157 +font-size: 90%; 16.158 +padding: 1em; 16.159 +background-color: white; 16.160 +} 16.161 + 16.162 +#mainContent h2:first-child { 16.163 +margin-top: 0px; 16.164 +} 16.165 + 16.166 + 16.167 +.error { 16.168 +color: #F25A5A; 16.169 +font-size: 80%; 16.170 +font-weight: bold; 16.171 +} 16.172 + 16.173 +form { 16.174 +display: inline 16.175 +}
17.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 17.2 +++ b/tazwikiss/stuff/var/www/wiki/template.html Sun Jul 18 12:02:49 2010 +0200 17.3 @@ -0,0 +1,49 @@ 17.4 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 17.5 + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 17.6 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{LANG}" lang="{LANG}"> 17.7 +<head> 17.8 + <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 17.9 + <title>{WIKI_TITLE} - {PAGE_TITLE_BRUT}</title> 17.10 + <style type="text/css"> @import "style.css"; </style> 17.11 + {RSS} 17.12 +</head> 17.13 + 17.14 +<body> 17.15 +<table border="0" width="100%" cellpadding="4" id="mainTable" cellspacing="0" summary="{PAGE_TITLE_BRUT}"> 17.16 + <tr> 17.17 + <th colspan="3"> 17.18 + <h1>{PAGE_TITLE}</h1> 17.19 + <p>{LAST_CHANGE} {TIME}</p> 17.20 + </th> 17.21 + </tr> 17.22 + <tr id="headerLinks"> 17.23 + <td class="pageLinks" colspan="2"> 17.24 + {HOME} {/ RECENT_CHANGES} 17.25 + </td> 17.26 + <td class="pageLinks" align="right"> 17.27 + {EDIT} {(HELP)} {/ HISTORY} 17.28 + </td> 17.29 + </tr> 17.30 + <tr> 17.31 + <td id="mainContent" colspan="3"> 17.32 + {TOC} 17.33 + <div class="error">{ERROR}</div> 17.34 + {CONTENT} 17.35 + </td> 17.36 + </tr> 17.37 + <tr id="footerLinks"> 17.38 + <td class="pageLinks"> 17.39 + <div>{SEARCH}</div> 17.40 + </td> 17.41 + <td class="pageLinks"> 17.42 + <a href="http://wikiss.tuxfamily.org/">{WIKI_VERSION}</a> 17.43 + <br /> 17.44 + {DATE} -- {IP} {COOKIE} 17.45 + </td> 17.46 + <td class="pageLinks" align="right"> 17.47 + {EDIT} {(HELP)} {/ HISTORY} 17.48 + </td> 17.49 + </tr> 17.50 +</table> 17.51 +</body> 17.52 +</html> 17.53 \ No newline at end of file