ManageMediaWiki

The educational technology and digital learning wiki
Jump to navigation Jump to search

Definition

This is a maintenace page in french where we write down things we did to this and a few other wikis we host. Plus other useful information for things we may implement in the future .... I will change stuff to English gradually when I feel like - Daniel K. Schneider)

Testing

See the Testing Sandbox for some tests that I intend to stay a bit. New users should just use the ordinary SandBox

Layout et boxes

Toolbox

  • Modifier directement dans le skin du template utilise. habituellement /skin/monobook.php
  • Lors du upgrade, il faudra rajouter les logos+liens supplémentaires, de même que le petit hack pour affichier le lien meetings uniquement pour les administrateurs du wiki (si jamais, j'ai joue sur l'id des utilisateurs et utilise la fonction pour checker si on est identifies:
  $this->data['loggedin']==1 && ($_SESSION['wsUserID'] == 1 ||...)

Modifier la barre de navigation

Skins

  • Pour ajouter des styles spécifiques à des templates etc. il faut editer la page. Donc ne PAS éditer les fichiers source sur le serveur !)

MediaWiki:Common.css

Images

Images externes

Pour avoir des images externes il fallait reconfiguer le Wiki (dans LocalSettings.php: $wgAllowExternalImages = true;)

Ensuite il suffit de mettre l'URL tel quel dans le texte

C.f. biorousso modèle:img pour une macro qui aide l'affichage

Images pour la navigation

SVG Image Support

La situation n'est pas encore claire:

Upload de SVG et traduction devrait en principe marcher (à configurer ??)
Dessiner dans le wiki (en projet)

Configuration et upgrades

Downloads de Mediawiki software

Fichier de configuration

  • Plusieurs choses doivent etre configurés dans LocalSettings.php

Par exemple:

  • Types de fichiers acceptés:
$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'ogg', 'pdf', 'mp3', 'svg', 'doc', 'xls', 'ppt', 'pub', 'txt', 'ps', 'zip' );
  • Permissions (c.f. plus loin)

WikiMedia Upgrades majeurs - procédure

  • Lire les instructions dans le fichier UPGRADE à la racine.
Sauvegardes
  • Sauvegarder la base de données:
 mysqldump -p base_de_donnees > fichier.sql

Ne pas perdre les répertoires et fichiers suivants:

  1. le répertoire avec les fichiers uploadés: images
  2. le fichier LocalSettings.php
  3. le fichier AdminSettings.php
  4. le fichier ExtensionFunctions.php
  5. Dans le répertoire includes, les fichier pour renommer les users
    • SpecialRenameuser.php
    • SpecialRenameuser.i18n.php
    • SpecialRenameuser_body.php
  6. le répertoire des extensions
  7. le repertoire /(f)mediawiki/skins/monobook/tecfa: a l'interieur se trouvent les differents logo
    • a l'interieur se trouvent egalement les fichier originaux du logo
    • le fichier /(f)mediawiki/skins/Monobook.php. Modifications effectuées:
    • le logo edutech
    • les deux logos en bas à gauche
    • le petit hack pour afficher la page Meetings (plus maintenant)
    • La boite pour Google search

... generally fixing the skin is the worst part besides making sure that certain extensions are up-to-date.

Préparation Upgrade
  • Déarchiver la nouvelle version dans un répertoire nouveau
  • Recopier le répertoire images, extensions etc. (voir ci-dessus)
  • Editer/recopier LocalSettings (et controler si rien n'est à changer !)
  • Quoter les extensions (éventuellement, en tout cas faut de temps à autre les mettre à jour !)
  • Reporter les modifications dans skins/Monobook.php
Commandes préparation (à peu près)

Donc le nouveau install est dans mediawiki-new

Mediawiki en:

gtar zxf mediawiki-xxx
chown xxx:yyy mediawiki-xxx
cp -rp mediawiki/images/ mediawiki-new/
cp -p mediawiki/LocalSettings.php mediawiki-new/
cp -p mediawiki/AdminSettings.php mediawiki-new/
cp -p mediawiki/ExtensionFunctions.php mediawiki-new/
cp -rp mediawiki/extensions mediawiki-new/
cp -rp mediawiki/skins/monobook/tecfa mediawiki-new/skins/monobook/
cp -p mediawiki-new/skins/MonoBook.php mediawiki-new/skins/MonoBook.php.ORI
cp -p mediawiki/skins/MonoBook.php mediawiki-new/skins/MonoBook.php
  • Arreter le serveur Web et bouger les 2 install
mv mediawiki mediawiki.old
mv mediawiki-new mediawiki

Mediawiki fr:

gtar zxf mediawiki-xxx
mv mediawiki-xxx mediawiki-new
chown xxx:yyy mediawiki-new
cp -rp fmediawiki/images/ fmediawiki-new/
cp -p fmediawiki/LocalSettings.php fmediawiki-new/
cp -p fmediawiki/AdminSettings.php fmediawiki-new/
cp -p fmediawiki/ExtensionFunctions.php fmediawiki-new/
cp -rp fmediawiki/extensions fmediawiki-new/
cp -rp fmediawiki/skins/monobook/tecfa fmediawiki-new/skins/monobook/
cp -p fmediawiki-new/skins/MonoBook.php fmediawiki-new/skins/MonoBook.php.ORI
cp -p fmediawiki/skins/MonoBook.php fmediawiki-new/skins/MonoBook.php
  • Arreter le serveur Web et bouger les 2 install
mv fmediawiki fmediawiki.old
mv fmediawiki-new fmediawiki
  • Ensuite lancer le script de mise à jour en ligne de commande (PAS via le Web !!!)
> php maintenance/update.php

WikiMedia Upgrades minors - procédure

  • Par ex. 1.6.5 à 1.6.6
  • Décomprimer l'archive qq. par
  • chown -R owner:group *
  • Wikiwiz et autre custom stuff: il faut saver
index.php
includes/SpecialPage.php
skins/Monobook.php
languages/Messages.php (ou fichier équivalent pour autres langues)
  • Copier tout l'arbre nouveau sur l'ancien
  • Virer le répertoire config ?
  • Ensuite comparer les pages "custom" et restituer l'ancienne ou changer la nouvelle...

Cool URL

  • Petit tuto pour modier le .htaccess et avoir ainsi des cool url (ca evite d'avoir l'index.php dans l'url)
  • Enfin DKS a fait plus simple: Eliminating index.php. La solution est la suivante:

Dans httpd.conf:

  Redirect /portails/mediawiki  "http://edutechwiki.unige.ch/en"
  Redirect /mediawiki  "http://edutechwiki.unige.ch/en"
  Redirect /portails/fmediawiki "http://edutechwiki.unige.ch/fr"

<VirtualHost *:80>
       ServerName edutechwiki.unige.ch
       DocumentRoot "/data/portails/edutechwiki"
   # ALIASES for edutechwiki: THREE alias for each WIKI
   Alias /mediawiki "/data/portails/mediawiki"
   Alias /en "/data/portails/mediawiki/index.php"
   Alias /en/index.php "/data/portails/mediawiki/index.php"
   Alias /fmediawiki "/data/portails/fmediawiki"
   Alias /fr "/data/portails/fmediawiki/index.php"
   Alias /fr/index.php "/data/portails/fmediawiki/index.php"
< /VirtualHost >	

Ensuite dans LocalSettings.php:

$wgSitename         = "EduTech Wiki";
$wgScriptPath	    = "/mediawiki";
$wgScript           = "$wgScriptPath/index.php";
$wgRedirectScript   = "$wgScriptPath/redirect.php";
## If using PHP as a CGI module, use the ugly URLs
#   $wgArticlePath      = "$wgScript/$1";
# DKS 3/2006
$wgArticlePath      = "/en/$1";

Donc on ne reecrit pas les pages très spéciales (genre pour éditer), mais les autres (avec un alias).


aussi: Inclure les pages spéciales "mediawiki" dans robots.txt. Pas de raison à ce que ce soit indexé.

Les language strings pour le Wiki

Cela dépend de l'installation !!

If you are using database message ($wgUseDatabaseMessages is true, the default), then the Special:Allmessages page lists all the navigation box. Display the messages, then click on it (will open a page for the message) and EDIT. /DKS cela m'a pris 1/2 heure ....

If you aren't using database messages, you can edit the languages/Language.php file (for English) or languages/LanguageXX.php for non-English languages, where XX is the two-letter language code for your language.

Finally, some strings (E.g. the copyright messages) can be set as variables in the LocalSettings.php file

Life time d'une session

  • Faut modifier /usr/local/lib/php.ini
 ; Modif DKS augmenter le lifetime d'une session à 3600 secondes pour Mediawiki editing !
 ; session.gc_maxlifetime = 1440
 session.gc_maxlifetime = 3600

See: [1]


Copie mediawiki sur PC / Windows

See also: WAMP, a probably updated English version of this section

  • Attention, il faut PHP 5.x pour Mediawiki 1.7 !!
    • Easyphp ne le fait pas, mais on peut upgrader:
    • Vider le répertoire ./php et ensuite le remplir avec le zip: http://www.php.net/downloads.php
    • IMPORTANT: Il faut editer php.ini et charger explicitement php_mysql (pour php 4 c'était pas le cas)
extensions_dir = "./ext"
extensions = php_mysql.dll

mysqldump -p base_de_donnees > fichier.sql
par ex. mysqldump -p wikimedia > /tmp/wikimedia.sql
    • Ensuite transférer sur le PC.
  • Importation:
    • Je suggère d'utiliser mysql en ligne de commande (alternativement augmenter LARGEMENT tous les paramètres dans php.ini)
    • Se trouve dans c:\program files\Easyphp-XX\mysql\bin\mysql.exe
mysql.exe base_de_donnees -u root -p < c:\tmp\wikimedia.sql               ... attendre un bon moment ;)
  • Ensuite copier les fichiers PHP
  • Adapter LocalSettings.php
    • changer mot de passe de la bd (j'utilise root sur mon pc ... juste pour jouer ca va)
    • changer $IP
    • Vérifier le include path (les anciens, genre Mediawiki 1.5 était fait pour Unix)
$path = array( $IP, "$IP/includes", "$IP/languages" );
set_include_path( implode( PATH_SEPARATOR, $path ) );
require_once( "includes/DefaultSettings.php" );
  • Finalement faire des alias Apache s'il en a (sinon ca crée un problème je pense)

Access rights et user management

Détruire un utilisateur

L'utilisateur n'a jamais rien édité (et UNIQUEMENT dans ce cas)
  • SAUF si l'utilisateur n'a jamais rien édité. Dans ce cas on peut simplement l'enlever de la base de données.
  • Dans le répertoire maintanace il y a un script pour tuer tous les utilisateurs qui n'ont jamais édité une page (faudrait l'adapter pour tuer un utilisateur ...)
 php removeUnusedAccounts.php --help
L'utilisateur à édité
  • Il faut utiliser un script pour reassigner ses pages:
./maintenance/reassignEdits.php --help
  • Ensuite seulement, on peut le tuer !

Rename a user

Needs an extension (installed on edutechwiki eng/fr)

Détruire une page

  • A utiliser pour une page page de type spam (le undelete ne marchera pas)
./maintenance/nukePage.php

Login obligatoire

cf. LocalSettings.php

Access rights per page

(le problème va surtout se poser dans le contexte d'autres cultures que celle de TECFA)

Permissions et groupes

  • On peut les définir le fichier de config
  • Exemple pour un Wiki assez ouvert:
$wgGroupPermissions['*']['edit']            = false;
$wgGroupPermissions['*']['createaccount']   = true;
$wgGroupPermissions['*']['read']            = true;
  • Permissions read-only pour guests ET logins (group=user), seuls eleve et sysop peuvent editer etc.
$wgGroupPermissions['*']['edit']            = false;
$wgGroupPermissions['*']['createaccount']   = true;
$wgGroupPermissions['*']['read']            = true;
$wgGroupPermissions['*']['edit']            = false;

$wgGroupPermissions['user' ]['move']            = false;
$wgGroupPermissions['user' ]['read']            = true;
$wgGroupPermissions['user' ]['edit']            = false;
$wgGroupPermissions['user' ]['createpage']      = false;
$wgGroupPermissions['user' ]['createtalk']      = false;
$wgGroupPermissions['user' ]['upload']          = false;
$wgGroupPermissions['user' ]['reupload']        = false;
$wgGroupPermissions['user' ]['reupload-shared'] = false;
$wgGroupPermissions['user' ]['minoredit']       = false;

$wgGroupPermissions['sysop' ]['move']            = true;
$wgGroupPermissions['sysop' ]['read']            = true;
$wgGroupPermissions['sysop' ]['edit']            = true;
$wgGroupPermissions['sysop' ]['createpage']      = true;
$wgGroupPermissions['sysop' ]['createtalk']      = true;
$wgGroupPermissions['sysop' ]['upload']          = true;
$wgGroupPermissions['sysop' ]['reupload']        = true;
$wgGroupPermissions['sysop' ]['reupload-shared'] = true;
$wgGroupPermissions['sysop' ]['minoredit']       = true;

$wgGroupPermissions['eleve']['move']            = true;
$wgGroupPermissions['eleve']['read']            = true;
$wgGroupPermissions['eleve']['edit']            = true;
$wgGroupPermissions['eleve']['createpage']      = true;
$wgGroupPermissions['eleve']['createtalk']      = true;
$wgGroupPermissions['eleve']['upload']          = true;
$wgGroupPermissions['eleve']['reupload']        = true;
$wgGroupPermissions['eleve']['reupload-shared'] = true;
$wgGroupPermissions['eleve']['minoredit']       = true;


See also extensions to create category or user-based permissions.

Exportation / importation d'articles

Exportation

Editing tools

HTML import

Word 2 Wiki

  • Extension:Word2MediaWikiPlus. Convert Microsoft Word document content to MediaWiki markup. This is a Word Visual Basic macro. Usage requires a running copy of Microsoft Word that supports Visual Basic macros (Word 2000 or greater). This is an enhancement of the Word2MediaWiki converter.
  • Daniel K. Schneider has tested this and it works.
Installation
  • Get http://www.beadsoft.net/files/Word2MediaWikiPlus.zip
  • Change Macro security level in Word, in Word 2003 (english) do:
    • Open Tools -> Options -> Security Tab
    • Click on the Macro Security button (lower right)
    • Set Security level to "Medium"
    • Set Trusted Publishers to "Trust all installed ..." and Trust access to Visual Basic
  • Install the macro: Click
  • You can revert "Trust acces to Visual Basic" after this.
Post installation configuration
  • Once the macro is installed, you can define the URL of your Wiki (2 versions)
  • MS Photo editor doesn't exist anymore in Office 2003. You can reinstall it from an old Office version if you have it still around (http://support.microsoft.com/kb/817095)
Upload
  • You have to cut and paste, but the macro will launch the probable page in your wiki. If it doesn't exist you can create it.
  • You can enter the category the article will belong to

Export from OpenOffice

I like Open Office even less than word. I really don't understand how to use style in an efficient way, e.g. like in FrameMaker. However, starting version version 2.3 there is a relatively decent export to MediaWiki format. (Menu File->Export). It's not great, but ok. What I always resent is that with software like Word or OpenOffice it is always difficult to find a stylesheet that contains just the tags you need for a given task. E.g. 50 tags for a book and maybe 15 for a Wikipage. Then when you write, you just use these styles. PERIOD.

Wysywig extension

  • WikiEd is an alternative because it supports pasting formatted text, e.g. from MS-Word (including tables). An in-browser text editor that adds enhanced text processing functions to Wikipedia and other MediaWiki edit pages. Currently it works only for Mozilla browsers like Firefox and SeaMonkey

Cache

Cache interne

  • Pour dire la vérité, aucune idee ce que cache interne veut dire / DKS

(1) Pour vider des pages individuelles:

 ?action=purge

(2) Pour tout vider, il faut vider la table "objectcache"

TRUNCATE TABLE objectcache;

Cache externe avec Squid

A faire
  • logfiles format (apache style dans squid ou encore faire un forward pour Apache)
  • perfomance tuning.
  • Mise à jour: version 2.6
Config approximative dans Apache http.conf
  • Apache n'est plus visible à l'extérieur.
 NameVirtualHost 127.0.0.1:80
 <VirtualHost 127.0.0.1:80>
 	ServerName tecfaX.unige.ch
 <VirtualHost 127.0.0.1:80>
     ServerName edutechwiki.unige.ch
Config approximative de squid
http_port 129.194.9.48:80
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
# acl to_localhost dst 127.0.0.0/8
acl CONNECT method CONNECT
acl Safe_ports port 80		# http
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
httpd_accel_host 127.0.0.1 # same machine
httpd_accel_port 80
httpd_accel_single_host on
httpd_accel_uses_host_header on
Changement dans la config des Wiki
  • IMPORTANT dans Localsettings.php
$wgUseSquid = true;

$wgSquidServers = array('127.0.0.1');

  • La boite "top contributors" empeche le cache de fonctionner, donc on censure:
Fichier: extensions/awc/top_ten/config.php
define (nav_menu, false);
Links

Autres pointeurs cache

Installed extensions and templates

This may not be up-to-date or just not documented on purpose ;) See Special:Version for installed extensions. Note that some just show up indirectly in the tag list.

Various PDF export options

php.ini

max_execution_time = 600
max_input_time = 600
memory_limit = 100M

httpd.conf

Timeout 600

Semantic Wiki

  • A local production to visualize links with Java (disabled now, since size was too big)

SVGViz

Confirm Edit

Cite et Special:Cite, Page Authors

Cite
require_once( "extensions/Cite/Cite.php" );
Special
Cite.
require_once( "extensions/Cite/SpecialCite.php" );
PageBy
  • This will list authors.
<pageby/>
  • I suggest to use the following (made an emacs macro of course, since typing is too long)
<pageby nominor="false" comments="false"/>

MetaUML

This is more complicated.

Step: Make sure that latex, dvips, gs (ghostscript), and convert (ImageMagick) installed and available in the PATH. Depending on how the system is installed, this also means to fix the path of the Apache webserver.

It probably would be a good idea to install livetex, but since I found I binary for (older) teTex I went with this. texTex in /opt/sfw wasn't correctly installed. Got a new version from http://www.sunfreeware.com/. This package installs in /usr/local

gunzip tetex-3.0-sol10-sparc-local.gz
pkgadd -d tetex-3.0-sol10-sparc-local

teTex now should be installed and there is some postinstall work to do

  • Add /usr/local/teTeX/bin/sparc-sun-solaris2.10 to the path.
  • Configure
texconfig conf

Step: Install texvc (maybe not needed). This is a standard Mediawiki script to render Latex math fragments.

Step: Fix some configuration variables. Some documentation on variables is here:

You have to make sure that all these variables are defined:

$wgUseTeX	    = true;
$wgMathPath         = "{$wgUploadPath}/math";
$wgMathDirectory    = "{$wgUploadDirectory}/math";
$wgTmpDirectory     = "{$wgUploadDirectory}/tmp";
$wgImageMagickIdentifyCommand="/usr/local/bin/identify";
$wgImageMagickConvertCommand = "/usr/local/bin/convert";
$wgDvipsCommand="/usr/local/teTeX/bin/sparc-sun-solaris2.10/dvips";

Step: Install MetaUML, UML for LaTeX/MetaPost

This works.

tag clouds, navigation, who did what

See e.g. the The big picture page for examples.

Top ten pages
<TopTenPages>20</TopTenPages>
Top contributors (by Rob Church)
<topcontributors/>
Tag Cloud (by Orange Dino, http://www.orangedino.org)
<tagcloud></tagcloud>

Templates

Liste des templates utilisé dans ce wiki
  • ATTENTION: Me semble qu'utiliser un éditeur externe ne marche pas bien ...
Problème avec les templates
  • Ils sont reliés à un problème du système de caching (ne sais pas où).
  • Redémarrer le serveur résout le problème
  • Autre alternative: au lieu de {{incomplete}}, utiliser {{subst:incomplete}}. Cela substitue en dur avec les désavantage évident que (a) tout changement global n'aura pas d'effet et (b) cela ajouter du code HTML dans la page ... ; FAQ entry * http://meta.wikimedia.org/wiki/Help:A_quick_guide_to_templates *I edited the template, so why didn't the page it is used on change? :There are some caching bugs. One way to force refresh is to do edit on the page in which the template appears, and to then click on Save page without having changed anything - there is no need to fill in the Summary field since there will not be any history of this as a change generated. Alternatively, refreshing by pressing Ctrl and F5 often helps. other way is edit bookmark and add <nowiki>&action=purge

to the URL.

New Extensions etc.

Others


Bots

Wikipedia:Bots

References et citations

Pas clair quel systeme va s'imposer sur les Wikipedia. voir:

More ambitious projects that aim to support citation networks (and data more generally)
Harward references

Il faudrait se demander si on ne veut pas utiliser le system "Harward" de certains parse extensions....

Bibliography management

List of extensions to install / test

User management
People
Who is online
Chat
Shoutbox
  • There is no Wikimedia shoutbox as far as I can tell
  • But one might try to include standalone shoutboxes with an i-frame (in a skin file, no tested)
Some code that looks ok
Navigation / Information Organization
Assembly / In/oc/transclusions


Special contents
Feeds

Extensions docs and parser extensions

  • Il faudrait faire un inventaire de ce qu'on aimerai avoir et inclure ici la liste complete (templates et autres). La situation n'est pas du tout claire pour moi -- DSchneider. Si j'ai bien compris:
  1. extensions avec des balises wikitext (xml)
  2. extensions avec des pages spéciales
  3. extensions avec des templates
    • hacks anciens, comme Harvard ou citation
    • ParserFunctions ajoutent un "vrai" langage de controle dans le parser, ne marchent qu'avec 1.7 ??

Documentation:

Extension categories:

Wikitech


External editors

Perl / GTK

Perl-based reference implementation

  • DSchneider uses this on his Linux box, not that difficult to install. Wiki serves a special mime type that calls the perl script which in turn works with any UTF-8 capable editor (I use Gnu Emacs).
  • Did not manage to get this working on Win XP (maybe some problem with the GTK library).
Configuration of Emacs
  • Alternatively, one could use a Firefox extension that pipes all forms editing into emacs.

MwJed plugin for jEdit

MwJed plugin is available for jEdit with Firefox or Safari Works well with Mac OS 10.4 and Windows XP (using Firefox 1.5+). Nice syntax highlighting. Moderately easy to install.

  1. Get and install all the necessary downloads at mwjed (including JRE 1.4.2, jEdit 4.2 final and the dependent plugins XML and JakartaCommons)
  2. create a directory $HOME/.jedit/mwjed/_family
  3. extract $HOME/.jedit/jars/mwapi.jar into a new directory
  4. find and copy common.family and common.site into $HOME/.jedit/mwjed/_family/ and rename accordingly (NAME.family and NAME.site
  5. adapt these two files for the mediawiki you wish to edit
  6. add edit link on mwjed homepage to your bookmarks within either Firefox 1.5+ or Safari.
  7. restart jEdit
  8. within jEdit select Plugins>MwJed>Log in and select the mediawiki you wish to edit (the one with the NAME given in step 4
  9. open mediawiki page you wish to edit in your browser and select bookmark link created in step 6. The page will load into jEdit.

For more detailed instructions see mwjed homepage and modkwiki.net's help page

Windows (jEdit 4.3pre 10)
  • Modified in jEdit download preferences to install jars in the installation directory
  • Installed the plugin in the installation directory
  • Create a new directory mwjed under c:\Documents and Settings\USER\.jEdit, then a subdirectory called "_family"
  • Extract the files commons.family and commons.site from /jars/mwapi.jar into this _family directory (use any unzip program). Then rename them to something like edutech_en.*

A typical config *.family file should look like this:

## configuration for a whole wiki family

# identification
name	 edutechwiki

# languages
multilingual 	true
defaultLanguage 	en
supportedLanguage 	en
supportedLanguage 	fr

A typical config file for a wiki site:

# identification
family	edutechwiki
language en

# network
protocol	http://
hostName	edutechwiki.unige.ch
rawPath	        /mediawiki/index.php
prettyPath	/en/
apiPath	        /mediawiki/api.php

Do no remove messages etc. This plugin is really tricky and does not show any useful error messages when something goes wrong. See Utilities->Troubleshooting->Activity Log

Other useful tools

  • L'extension Copy+ pour Firefox permet de copier coller URL + Titre en format MediaWiki

Wiki readers (books)

Global Links

  • Il existe 23
    • Importer dans traitement de texte
    • Exporter vers DocBook (pas de liens, mais les Allemands semblent l'avoir fait)
    • Directement générer du PDF (moins joli)

German wiki links

Manually / German method

Filters / Exporters

  • flexbisonparse module ??
  • flexbisonparse

Generators

Examples

Importation into Wiki

Humor