Jedmodes Directory Structure



  • Each mode has its own directory to live in
  • autogenerate pages from metadata


  • Use flat files instead of a database engine
  • Use directories for "public" URL-s
    • URL will not change if e.g. index.html is replaced by index.php (or vice versa)
    • Structure of the site is transparent also with ftp or shell access
  • easy upload via shell access and cvs


  • several listing formats (categories, keywords, author, date)
  • search script (grep in metadata)

General Structure

Jedmodes has two parts:

  1. Catalogue
  2. Mode Sources in a CVS Repository

Modes can appear in the Catalogue while the sources are at a different location ("external modes"). This way, contributions from people with their own webspace can be listed too.


  • Each Jed mode has its own mode-root directory.
  • There are no "hard" restrictions regarding the directory structure under the mode-root directory, however, some assumptions are made and automatic generation of a modes "home page" requires some rules to be obeyed (see below).
  • Files in a subdirectory containing the substring "doc" will be listed as "further reading" by mode-index.php. Use this for additional documentation, screenshots and the like.
  • A (tar-gzipped) template for the default directory structure is available. See Jedmodes Howto for more instructions.
Strongly recommended files:
Metadata (described in dc-encoding) Enables keyword search and metadata listings
Filename restrictions:
Jedmodes places no restriction to the modes name. Staying to alphanumeric characters is a good advice, as the name is used in URL-s. If the mode shall be running on DOS, remember the 8.3 limit

Catalogue Directory

htdocs/                     % root of
|__index.php                % Homepage of jedmodes
|__parse-dcdata.php         % helper script, read dcdata into an php array
|__grep-dcdata.php          % helper script, grep for lines in dcdata
|__mode-index.php           % display mode metadata nicely formatted
|__doc/                     % Documentation and templates
|  |__changelog.txt         % Changelog for jedmodes project
|  |__mode-template.tgz     % Template mode-directory
|  |...
|__categories/              % Browse modes by Categories
|  |...
|__modes/                   % Browse modes by Subjec, Author, Date, ...
|  |...
|__mode/                    % Modes folder
   |__index.php             % display listing of modes
   |__default/              % default structure for a mode at jedmodes
   |  |__dcdata.txt         % metadata file (Dublin Core terms)
   |  |__index.php          % Index file. Reads ../../mode-index.php
   |  |__doc/               % optional additional documentation files
   |     |__screenshot1.png % will get links in the index page
   |__custom                % mode with a custom index page
   |  |__index.[html|php]   % user-provided index file
   |  |                     % No restrictions regarding the directory
   |  |                     % structure under the mode-root directory
   |  |__dcdata.txt         % metadata file (Dublin Core terms)
   |__virtual/              % virtual (meta/container/external) mode
   |  |__dcdata.txt         % metadata file (Dublin Core terms)
   |  |                     % with link to modes homepage or download-site
   |  |__index.php          % Index file. Reads ../../mode-index.php

CVS Repository

(see also jedmodes-cvs)

  • Base adress is

  • Mode sources are in the module in their own mode-directories.

    The name of the cvs-mode-directory should match the name of the catalogue- mode-directory.

CVS Directory % Base of jedmodes CVS repository
|__mode/                    % Modes folder
   |__default/              % place your mode in a dir, even if it is only
   |  |                     % one file
   |  |
   |__custom/               % Be sure to list all source files
   |  |          % in the dcdata.txt metadata file,
   |  |     % see dcdata-for-jedmodes.txt
   |  |__custom.hlp