Compose tips

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>

    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="https://www.louisajones.fr">louisa jones</a>louisa jones
    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

    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;"
  • 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.
  • You may link to files uploaded with the current node using special tags. The tags will be replaced by the corresponding files. For example: Suppose you uploaded three files (in this order):

    • imag1.png (referred as file #1)
    • file1.pdf (referred as file #2)
    • imag2.png (referred as file #3)
    [inline:1=test]  or  [inline:imag1.png=test]
    will be replaced by <img src=imag1.png alt=test>
    [file:1=test]  or  [file:imag1.png=test]
    will be replaced by <a href=imag1.png>test</a>
    [attachment:2=test]  or  [attachment:file1.pdf=test]
    will be replaced by <a href=file1.pdf.png>test</a>

  • Using custom PHP code

    Custom PHP code may be embedded in some types of site content, including posts and blocks. While embedding PHP code inside a post or block is a powerful and flexible feature when used by a trusted user with PHP experience, it is a significant and dangerous security risk when used improperly. Even a small mistake when posting PHP code may accidentally compromise your site.

    If you are unfamiliar with PHP, SQL, or Drupal, avoid using custom PHP code within posts. Experimenting with PHP may corrupt your database, render your site inoperable, or significantly compromise security.


    • Remember to double-check each line for syntax and logic errors before saving.
    • Statements must be correctly terminated with semicolons.
    • Global variables used within your PHP code retain their values after your script executes.
    • register_globals is turned off. If you need to use forms, understand and use the functions in the Drupal Form API.
    • Use a print or return statement in your code to output content.
    • Develop and test your PHP code using a separate test script and sample database before deploying on a production site.
    • Consider including your custom PHP code within a site-specific module or template.php file rather than embedding it directly into a post or block.
    • Be aware that the ability to embed PHP code within content is provided by the PHP Filter module. If this module is disabled or deleted, then blocks and posts with embedded PHP may display, rather than execute, the PHP code.

    A basic example: Creating a "Welcome" block that greets visitors with a simple message.

    • Add a custom block to your site, named "Welcome". With its input format set to "PHP code" (or another format supporting PHP input), add the following in the Block body:

      print t('Welcome visitor! Thank you for visiting.');
    • To display the name of a registered user, use this instead:

      global $user;
      if ($user->uid) {
        print t('Welcome @name! Thank you for visiting.', array('@name' => $user->name));
      else {
        print t('Welcome visitor! Thank you for visiting.');

    Drupal.org offers some example PHP snippets, or you can create your own with some PHP experience and knowledge of the Drupal system.