Site Generator

DropPages includes a static site generator, which allows you to create a simple website using just Markdown files.

  • The source files for your web pages must be placed in a folder called _pages in the root of your site folder e.g.
    /Apps/My.DropPages/(site-name)/_pages
  • Assets such as images, stylesheets and scripts must be placed within the root of the site folder, not within the _pages folder.
  • If you have an index.md file within _pages then you should remove any index.html file from the root of the site folder.

Markdown Files

Markdown files in the _pages folder are automatically published as web pages. The file must have the .md file extension. The file name and path will be used to generate the web page URL e.g.

  • Input file path: /Apps/My.DropPages/example.droppages.site/_pages/my-web-page.md
  • Output URL: https://example.droppages.site/my-web-page

If the file or path contains spaces, these will be replaced by hyphens within the URL.

Page Settings

A number of settings can be included within the Markdown file in YAML format:

  • theme - sets the page theme
  • title - sets the page title in the web browser
  • site_title - creates a site header with the site title
  • site_links - a list of links to include in the site header
  • head - for setting anything within the <head> section of the web page e.g. meta tags, analytics scripts, favicons
  • footer - text or Markdown for displaying a footer

All settings are optional, you can include just those you need. Settings must be included at the start of the file with 3 dashes before and after e.g.

---
theme: simplecss
title: My page title
site_title: My site title
site_links:
  - title: Home
    url: /
  - title: Contact
    url: /contact
  - title: About
    url: /about
head: |
  <link rel="icon" type="image/svg+xml" href="/favicon.svg">
  <meta name="description" content="Meta description here">
footer: |
  Contact me at [me@gmail.com](mailto:me@gmail.com)
---
                

Default settings

If there are settings you want to repeat across every page you can create a file called _defaults.yml in the root of the _pages folder and add them to this file in the same format. You no longer need to include these settings in each page file then. The defaults file should not include the 3 dashes above and below the settings.

Blog Posts

There are additional page settings for creating a simple blog:

  • is_post - marks the page as a blog post
  • date - the date the blog post is published
  • tag - a tag/category to group blog posts by

---
title: My blog post title
date: 2025-06-01
tag: mytag
is_post: true
---
                

To generate a list of blog posts add the following code snippet to your page:
{{ posts }}

To generate a list of blog posts for a particular tag add the following code snippet to your page (replacing 'mytag' with your tag name):
{{ posts|tag:mytag }}

Themes

DropPages includes a few themes based on open source CSS libraries:

Example Templates

Custom Layout

If you want to further customise your website you can create your own HTML layout file. To create a custom layout, add a _layouts folder within the root of the _pages folder, add a HTML layout to this folder and then set the layout setting in your page or _defaults.yml e.g.

layout: default
                

The layout name is the name of the HTML file without the .html extension. Layout files use the Liquid template language to process the page settings (also known as variables).