Every specification you enter needs a name in order to access it and to retrieve it later. These names are very important because, in many cases, the name you choose influences the name of the URL that will be used to access pages of your site.

General Naming Conventions

All names used for specifications must follow these general rules:

  1. Must consist of lower-case letters, numeric digits and dashes or underscores.
  2. Most specification names must begin with a letter (a - z), however a number is allowed for page names.
  3. May contain a forward slash (/) to introduce a folder name.
  4. Folder and file names must not contain embedded spaces or special characters (except - and/or _).

Naming Pages

Every page of your site must have a unique name. Generally (for SEO purposes) you should make your page names descriptive and separate words using dashes. For example, rather than page name "prodoverview" it is better to call the page "product-overview".

Folder Based Names

For sites with a lot of pages, you may want to logically group pages into "folders". For example, you might want URLs such as:


To achieve this, you can use slashes in the name you use to stow a page to delineate folders. In this example, the actual pages would be stowed using these names:


The fitness and nutrition folders do not need to be created in advance. These will be create automatically as required.

Dash Restrictions

Specifications entered into GenHelm are often used to generate PHP Classes. Classes are allowed to have underscores in their name but not dashes. In such cases, you will not be allowed to enter dashes in the name.

In some cases, when generating specifications for web pages, we want to use dashes in the name (for SEO benefits) even though we are generating classes that do not allow dashes. In such cases there may be some inconsistency in the name of the specification (and the webpage) and the name of the supporting generated class. For example, if you are generating a custom page, the page may be named "our-products" even though this is implemented using the generated class "our_products". This is fine as long as you don't try to create a second page named "our_products" since this would cause a collision in the generated class name.

Non-Unique Names

The names for pages must be unique. Similarly the names of lists, anchors, etc. must be unique. Nevertheless, you can use the same name for a page as is used for a list or an anchor, etc.

If the name you use is unique across all models, then you can access the specification by simply entering e somename. On the other hand, if this name is not unique, you must qualify the name using the model which created the specification. For example, e tags somename.

Note that several different models are used to generate pages of a site (such as tags, table, form, etc.). The names of these specifications must be unique across all "page type" models. Note that the page name includes the path to the page, so for example, you are allowed to have a page named city/new-york and another page named state/new-york. These "new-york" pages do not conflict since they reside in different folders.

When accessing this page, you would just use the command "e new-york" and you will be presented with the list of pages to choose from. You can also use the list command to navigate the components of your site.

Help Index

GenHelm Architecture GenHelm Architecure.
Why GenHelm? Summary of the GenHelm methodology.
Getting Started Learn how to start a new website.
Naming Conventions Naming web pages and other items.
Common Web Page Fields Descriptions of fields that are common to all page models.
Layouts Defining codeframes and layouts.
Styles and Scripts Descriptions of fields that are common to all page models.
Meta Tags How to configure meta tags for your site and specific pages.
Dollar Functions General information about dollar functions.
Navigation Tips Navigation Tips and Techniques
Favourite Icons How to configure favorite icons for your site.
Blog Maintenance Blog and post administration.
Direct Command Help Help for the direct command field.
Programming with GenHelm Writing programs that interact with the GenHelm framework.