site documentation




Magyar? English

Documentation of how this web site is configured.

1.  Convention to classify wiki pages by page_type

By convention, each wiki page in the group Web/? should have a page text variable that indicates its primary purpose of that page:

VariableValueMeaningExample pages
page_typeweb"web" pageHome, News?
 cmsStructural page etcSideBar

1.1  page_type=cms: Structurally important wiki pages

Wiki pages that are used to create the structure, or add functionality, to this web site is listed below. This category also includes documentation pages and test pages. Please note that most of them are tagged by having the variable page_type set to cms.

Desc: Only exists to set the passwords for this group
Desc: Sets how search results are presented
Desc: Defines the "menu area" on the side of the main content
Desc: Documents the web site's configuration and structure
Title: A modified title...
Desc: A page used for testing wiki markup etc
Desc: Test page with no contents, nor footers etc
Desc: A page used for testing the google custom search markup etc
Desc: Default wiki home page of this group. This page is note used by the "webW pages

1.2  page_type=web: Web pages

Wiki pages that primarily comprise the content of the web site.

Title: Bai1y's at home
Desc: recipe, drink
Title: Wineliqueur
Desc: recipe, drink
Title: Picture gallery
Desc: alex, alexware, képek, pictures
Desc: recipe, quick cookie
Title: Onion soup
Desc: recipe, soup
Title: Homepage
Desc: homepage, alex, alexware
Title: Who is he?
Desc: alex, alexware, poem
Desc: To be added..
Title: PICkit2 and Debian Etch
Desc: pickit2, debian, linux, programming
Title: PIC and the Sdcc
Desc: pic, sdcc, make, makefile, example
Title: PIC and USB
Desc: pic, sdcc, usb, make, makefile, example
Title: Hope
Desc: alex, alexware, vers
Title: Installing Sdcc
Desc: pickit2, debian, linux, programming
Title: Bushwackers
Title: Everything passed
Title: PIC disassembly
Desc: pic, sdcc, make, makefile, diassembly, reverse engineering
Title: Crossway
Desc: alex, alexware, poem
Title: Extremeties?
Desc: alex, alexware, poem
Title: Wisdoms
Desc: alex, alexware, wisdom, saying

1.3  page_type=: Pages with page_type not set

Pages that do not have the page text variable "cms_page" set to anything (all pages should ideally have page_type set):


The web site corresponds to the directory


on the computer, which is aliased as The files in that directory are automatically exported from the project www-user in the Subversion repository whenever a commit takes place.

The notation <www-user> will henceforth be used in several meanings:

  • The first part of a URI that points to a LyX web site, e.g. although it could also be a mirror site, e.g.
  • The directory associated with the root of the web site, e.g.

Hopefully the context will clarify the meaning and the difference will not be important as the web server is supposed to map e.g.

to the file path

Gateways or access paths to the LyX web site

There are several ways (URIs) or gateways to access the LyX web site. They differ in how they show web pages and what functionality that is allowed.
Standard gateway for normal users. By default pages appears as regular web pages. Automatically redirects to
Standard gateway for normal users.
Wiki gateway to web site for developers.

The scripts index.php are wrapper scripts that start the actual wiki engine, <www-user>/farm/pmwiki/pmwiki.php.

When starting, the wiki engine reads the following configuration scripts:

  • pmwiki/local/farmconfig.php
    This configuration script is common to all the gateways. Among other things, it defines passwords and sets the path to the directory <www-user>/farm/pub that contains world readable files such as CSS files and images.
  • config.php
    This configuration script is specific to the gateway. It's located in the same directory as the wrapper script (index.php).
Important files and directories
<www-user>/File path to
index.phpWrapper script of the wiki engine
config.phpConfiguration file for the main web pages
wiki.d/Directory with source of wiki pages,
referenced using an absolute path
<Group>.<Page>Example of source of wiki page
index.phpWrapper script of the wiki engine
config.phpConfiguration file for wiki/-gateway
farmconfig.phpConfiguration file for the wiki farm
LyX/LyX scripts and data for LyX web site
lyx.tmplTemplate for the skin
pmwiki.phpThe PmWiki wiki enginge
test/Directory structure for testing

2.1  Directories and files

/home/lyx/www/www-user/		- Automatically exported from SVN:www-user
|-- index.php			- wiki engine wrapper script
|-- config.php			- config file for web pages
|-- images/
|   |-- about/
|   '-- LGT/
|-- farm/
|   |-- farmconfig.php		= Farm configuration file
|   |-- farmmap.txt		= Inter-link prefixes for wikis in the farm
|   |
|   |-- pmwiki/			= $FarmD
|   |   |-- pmwiki.php
|   |   |-- cookbook -> ../cookbook
|   |   |-- docs/
|   |   |-- local/
|   |	|   |-- config.php	= Blocks acces to 'home' wiki
|   |   |   |-- farmconfig.php -> ../../farmconfig.php
|   |   |   '-- farmmap.txt -> ../../farmmap.txt
|   |   |-- pub -> ../pub	 
|   |   `-- scripts/
|   |
|   |-- cookbook/		= Custom scripts (recipes)
|   |   `-- LyX/		= Scripts specific for LyX
|   |
|   `-- pub/			- <- FarmPubDirUrl
|       |-- css/
|       |-- guiedit/
|       `-- skins/
|	    |-- <various-skins>/
|           |-- lyx/
|           |   `-- images/
|           `-- print/
|-- test/
|   |
|   ...
|-- wiki/			- 
|   |-- index.php
|   '-- config.php
`-- wiki.d/			- web page files are stored here

Location of source of web pages (page files)

The web/wiki pages are stored as separate files, each page in its own page. The default configuration of PmWiki is to look for a local directory called wiki.d/. However, in this setup the wiki engine is told that the page files are to be found in the directory with the absolute path


This is done in the file farm/farmconfig.php by setting the variable $WorkDir and then specify this as the location for storing page files. Note that '$WorkDir' is a link that you can click to see more details about this path variable.

Deployment and update procedure

The web site (wiki installation) was initially deployed using a svn checkout. Now, after a commit to the www-user repository, a 'post commit hook' is executed that does a svn update on the deployment directory.

In addition, note that when a web page is modified through the wiki interface, this results in a page that is changed in the directory wiki.d/. These modified files need to be manually committed from the deployment directory.

3.  Pages with some kind of password

Below is a list of pages with some kind of password attribute that is specific to that page:

See SiteAdmin.AuthList for the entire wiki.

4.  Recipes

4.1  In test installation

The following recipes are enabled by the farm installation, i.e. in farmconfig.php, for all wikis in the wiki farm.

The following recipes are enabled by the wiki installation, i.e. in config.php, on a per-wiki basis.

4.2  Custom scripts and recipes

in cookbook\LyX

  • blanket-permission.php - input: (generated by
  • credits.php - input: (generated by
  • i18n.php - input:
  • news.php - input:
  • paypal.php

5.  Special pages with generated content

These sections describes how to modify the content of the pages BlanketPermission?, Credits?, News? and I18n? which are generated automatically.

5.1  Blanket Permission

The text below is shown on the wiki page blanket permission? when logged in with edit permissions.

To add people to the list below, check out <www-user> from the SVN repository. Then replace and commit the file:


Committing automatically deploys the file to the web server (it can take a few seconds).

Note that the file should be replaced by output from the script This script can be found in the current SVN trunk, and this is where actual changes should be done.

5.2  Credits

The text below is shown on the wiki page credits? when logged in with edit permissions.

The information about credits is defined in the file


To add credits for someone, checkout the project <www-user> from SVN, replace the above file and commit the changes. Committing automatically deploys the file to the web server (it can take a few seconds).

Note that the file should be replaced by output from the script This script can be found in the current SVN trunk, and this is where actual changes should be done.

5.3  News

The text below is shown on the wiki page news? when logged in with edit permissions.
News items (the headers of the most recent items) are also shown on the main page.

The information about news is currently defined in the file


To add a news item, modify the above file and commit the changes. Committing automatically deploys the file to the web server (it can take a few seconds).

5.4  I18n

The text below is shown on the wiki page I18n? when logged in with edit permissions.

To update the information in the table below, check out <www-user> from the SVN repository. Then replace and commit the file:


Committing automatically deploys the file to the web server (it can take a few seconds).

Note that the file is automatically generated from the po files. To update the web site, issue make in the po/ directory of the lyx stable branch, and replace the file in <www-user> with the autogenerated file. Do not edit the file manually, and do not use the development branch!

6.  Local pagelist template to list pages

This section defines a local pagelist template that is used to generate the lists of pages on this page.

* [[{=$FullName}|{=$Name}]] %rfloat%[-[[Edit->{=$FullName}?action=edit]]-]%%
(:if ! equal "{=$Name}" "{=$Title}":)-> [-''Title:''-] {=$Title}(:ifend:)
-> [-''Desc:''-] {=$:description}

7.  Local wiki styles defined in GroupHeader

The following wiki styles are defined in the group header:

note - for minor notes.
This is a note (created through %note% ... %%
important - for important notes and messages.

This is an important note

The line above was created with:
%important%This is an important note%%

An alternative:

An important note, over several lines. Usage:

@@rnote - for floating notes on the right side.

This text was created from an 'rnote'. Usage:


The markup [[<<]] is to cause a break, since the note is implemented using a float.

A more advanced example that only shows up when the viewer has permission to edit a page, i.e. when the person is logged in. First the wiki markup:

(:if auth edit:)
This text is only visible when logged in.

Then the result.

If you don't see anything above, it's because you are not logged in.

8.  Mapping old web pages to new locations

The sections below tabulate old web pages, and their corresponding new wiki pages. Ideally, all the old URIs should eventually map to a valid new page.

Note some of the .php-files might not actually be pages, and also that I might have forgotten some pages. Not all .txt-files are listed for instance.

Finally note that page names in the tables below that are shown in a special colour have been redirected somehow, even if only through manually created HTML-files. When marked with a another special colour, it means they're redirected through a mechanism that invokes the php-script <www-user>/redirect_to_old_pages.php. That's a temporary hackish solution, requiring the old .php-files to remain. When marked with another special colour, the script <www-user>oldpage.php?n=<old-page-name-or-path> is used.

8.1  Plan for re-mapping

Maybe use some patterns expressions on URIs and pass them along to a script that then redirects to the correct page?

Note: For now, Christian does some manual remapping by replaing e.g. news.php with HTML-code that does a redirect.

Here are the page URIs that we need to match:

And then there are patterns we need to match.

A wiki page could be used to store the data with regular expressions and target page, making it easy to do future redirects.

8.2 (incomplete - site_map.php missing)

Old pageNew pageComment
LyXWeb:/Homei.e. index.php
LyXWeb:site_map.php Needs to be created.

8.3 (done)

Old pageNew pageComment
LyXWeb:about/About LyX?i.e. about/index.php
LyXWeb:about/klyx.php No equivalent; KLyX appears to be abandoned and not linked to.

8.4 Comment...

This directory stores announcement texts. Will not redirect it. Link to LyXWeb:announce?.

Perhaps add an index.php or something that lists the announcements? Or redirect to a page that lists them using a special directive?
Old pageNew pageComment
LyXWeb:announce/N/Ano announce/index.php


Moved the .php-files to misc/LGT in case we need to look at them. Images have been moved to images/LGT. Now all redirected.

Old pageNew pageComment


Old pageNew pageComment
LyXWeb:internet/No equivalent; redirect to Homei.e. internet/index.php


None of the LDN was ported to the new site. Either this should be done, or all pages in this section should probably redirect to News?. -Rex

Old pageNew pageComment
LyXWeb:news/ i.e. news/index.php
LyXWeb:news/<many>.php e.g. 20000217.php


Old pageNew pageComment
LyXWeb:download/Download?i.e. download/index.php


Note: these pages all appear to not exist or be abandoned. -Rex

I agree, and removed them from SVN. I consider them dealt with. /Christian
Old pageNew pageComment
LyXWeb:feedback ? index.php ?

8.10 (devel/changetracking.php incomplete)

Old pageNew pageComment
LyXWeb:devel/Development?i.e. index.php
LyXWeb:devel/changetracking.phpNo equivalentI (Rex) don't know if this feature is still used or if this page is relevant; either this page should be ported or the link should redirect to Home
LyXWeb:devel/mirror.phpMirror?Port this page
LyXWeb:devel/tasks.phpRoadMap?Obsolete, redirected to RoadMap?

9.  Setting up a mirror site

Information on how to set up a mirror site will be placed on the page mirror?.

This section should eventually contain instructions for setting up a mirror site of (the web pages).

10.  Upgrading the wiki engine

Sometimes a new release of the wiki engine (PmWiki) is released and we want to upgrade. Below is the recommended procedure. It's a bit unusual due to our farm setup and use of Subversion.

These instructions assume that you do the upgrade on aussie.

# Go to your working directory
cd www-user/
# Update it, just in case
svn update
# Check that you don't have outstanding commits
svn status
# Get IP address of '', e.g
# (This is because of some bug in aussie)
# Set name of repository
# Export latest version of PmWiki from it's repository
# First the top level and then selected subdirectories
svn --non-recursive --force export $repo farm/pmwiki
d=docs        ; svn --force export $repo/$d farm/pmwiki/$d
d=scripts     ; svn --force export $repo/$d farm/pmwiki/$d
d=wikilib.d   ; svn --force export $repo/$d farm/pmwiki/$d
d=pub         ; svn --force export $repo/$d farm/$d
d=cookbook    ; svn --force export $repo/$d farm/$d
# Check what has been changed
svn status

Changed files in farm/pmwiki/wikilib.d:

  • Any files called 'Site*' should probably be added. These correspond to pages in the groups 'Site' and 'SiteAdmin'.
  • Any files called 'PmWiki.*' should have been ignored. They correspond to the PmWiki documentation and can be read online instead.
  • Any files called 'Main.*' can probably be ignored.
# Commit changes.
svn ci -m "Upgrading PmWiki engine."

Finally test that the web site still works.

Some test:

  • Go to Home
  • Login
    • Test that editing a page works
  • Logout
    • Test that it's not possible to edit a page

11.  Page variables

Page last modified on 2008.11.16. 00:45:29

Copyright Alex 2007-2015