Compose tips

  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote>

    This site allows HTML content. While learning all of HTML may feel intimidating, learning how to use a very small number of the most basic HTML "tags" is very easy. This table provides examples for each tag that is enabled on this site.

    For more information see W3C's HTML Specifications or use your favorite search engine to find other sites that explain HTML.

    Tag DescriptionYou TypeYou Get
    Anchors are used to make links to other pages.<a href="">Christian Roy</a>Christian Roy
    Coded text used to show programming source code<code>Coded</code>Coded
    Unordered list - use the <li> to begin each list item<ul> <li>First item</li> <li>Second item</li> </ul>
    • First item
    • Second item
    Ordered list - use the <li> to begin each list item<ol> <li>First item</li> <li>Second item</li> </ol>
    1. First item
    2. Second item
    Definition lists are similar to other HTML lists. <dl> begins the definition list, <dt> begins the definition term and <dd> begins the definition description.<dl> <dt>First term</dt> <dd>First definition</dd> <dt>Second term</dt> <dd>Second definition</dd> </dl>
    First term
    First definition
    Second term
    Second definition
    Block quoted<blockquote>Block quoted</blockquote>
    Block quoted

    Most unusual characters can be directly entered without any problems.

    If you do encounter problems, try using HTML character entities. A common example looks like &amp; for an ampersand & character. For a full list of entities see HTML's entities page. Some of the available characters include:

    Character DescriptionYou TypeYou Get
    Greater than&gt;>
    Less than&lt;<
    Quotation mark&quot;"
  • Using custom PHP code

    If you know how to script in PHP, Drupal gives you the power to embed any script you like. It will be executed when the page is viewed and dynamically embedded into the page. This gives you amazing flexibility and power, but of course with that comes danger and insecurity if you do not write good code. If you are not familiar with PHP, SQL or with the site engine, avoid experimenting with PHP because you can corrupt your database or render your site insecure or even unusable! If you do not plan to do fancy stuff with your content then you are probably better off with straight HTML.

    Remember that the code within each PHP item must be valid PHP code - including things like correctly terminating statements with a semicolon. It is highly recommended that you develop your code separately using a simple test script on top of a test database before migrating to your production environment.


    • You can use global variables, such as configuration parameters, within the scope of your PHP code but remember that global variables which have been given values in your code will retain these values in the engine afterwards.
    • register_globals is now set to off by default. If you need form information you need to get it from the "superglobals" $_POST, $_GET, etc.
    • You can either use the print or return statement to output the actual content for your item.

    A basic example:

    You want to have a box with the title "Welcome" that you use to greet your visitors. The content for this box could be created by going:

      print t("Welcome visitor, ... welcome message goes here ...");

    If we are however dealing with a registered user, we can customize the message by using:

      global $user;
      if ($user->uid) {
        print t("Welcome $user->name, ... welcome message goes here ...");
      else {
        print t("Welcome visitor, ... welcome message goes here ...");

    For more in-depth examples, we recommend that you check the existing Drupal code and use it as a starting point, especially for sidebar boxes.

  • Lines and paragraphs are automatically recognized. The <br /> line break, <p> paragraph and </p> close paragraph tags are inserted automatically. If paragraphs are not recognized simply add a couple blank lines.
  • Syntax highlighting of source code can be enabled with the following tags:

    • Generic syntax highlighting tags: "<code>", "<blockcode>".
    • Language specific syntax highlighting tags: .
    • PHP source code can also be enclosed in <?php ... ?> or <% ... %>, but additional options like line numbering are not possible here.

    Options and tips:

    • The language for the generic syntax highlighting tags can be specified with one of the attribute(s): type, lang, language. The possible values are: "apache" (for Apache configuration), "bash" (for Bash), "c" (for C), "cpp" (for C++), "css" (for CSS), "diff" (for Diff), "dos" (for DOS), "drupal5" (for Drupal 5), "drupal6" (for Drupal 6), "gettext" (for GNU Gettext), "html4strict" (for HTML), "ini" (for INI), "java" (for Java), "javascript" (for Javascript), "lisp" (for Lisp), "make" (for GNU make), "mysql" (for MySQL), "perl" (for Perl), "php" (for PHP), "python" (for Python), "ruby" (for Ruby), "sql" (for SQL), "text" (for Text), "xml" (for XML).
    • Line numbering can be enabled/disabled with the attribute "linenumbers". Possible values are: "off" for no line numbers, "normal" for normal line numbers and "fancy" for fancy line numbers (every nth line number highlighted). The start line number can be specified with the attribute "start", which implicitly enables normal line numbering. For fancy line numbering the interval for the highlighted line numbers can be specified with the attribute "fancy", which implicitly enables fancy line numbering.
    • If the source code between the tags contains a newline (e.g. immediatly after the opening tag), the highlighted source code will be displayed as a code block. Otherwise it will be displayed inline.
    • Beside the tag style "<foo>" it is also possible to use "[foo]".


    • Default highlighting mode for generic syntax highlighting tags: the default language used for syntax highlighting is "php".
    • Default line numbering: no line numbers.


    You typeYou get
    <code>foo = "bar";</code>Inline code with the default syntax highlighting mode.
    foo = "bar";
    baz = "foz";
    Code block with the default syntax highlighting mode.
    <code lang="sql" linenumbers="normal">
    foo = "bar";
    baz = "foz";
    Code block with syntax highlighting for SQL source code
    and normal line numbers.
    <code language="sql" start="23" fancy="7">
    foo = "bar";
    baz = "foz";
    Code block with syntax highlighting for SQL source code,
    line numbers starting from 23
    and highlighted line numbers every 7th line.
  • Web page addresses and e-mail addresses turn into links automatically.