Skip to content

HTML5 Mini Template for quick rendering of status pages, TOC pages, or any other minimal single-serving site

Notifications You must be signed in to change notification settings

pixelbrackets/html5-mini-template

Repository files navigation

HTML5 Mini Template

Version Build Status Made With License Contribution

HTML5 Mini Template for quick rendering of status pages, TOC pages, or any other minimal single-serving site.

Screenshot

⭐ You like this package? Please star it or send a tweet. ⭐

Vision

This package provides a single class to turn a message or HTML-snippet into a valid HTML5 document.

This way it is possible to let an app return an HTML response without the need to store a template file beforehand or initialize a full-blown template engine.

The package therefore does not have template variables or modifiers. Two lines of code should be sufficient to wrap a given text into a valid HTML document. One more to add a link to fancy stylesheet.

See »Usage« for some examples.

The package follows the KISS principle.

When to Use This

Use HTML5 Mini Template when you need to:

  • Generate a simple HTML page without template files or a template engine
  • Return HTML responses from a PHP script with minimal setup
  • Create single-serving pages (status, error, placeholder) programmatically
  • Avoid adding template engine dependencies for trivial HTML output

You might want to use an alternative if you need:

  • Multiple templates or layouts → use Twig or Blade
  • Template variables, loops, conditionals → use slim/php-view
  • A full frontend build system → use a static site generators like Hugo or Jekyll
  • Complex multi-page sites → use a framework with proper templating

Webapp

This package is used on html5example.com.

If you are in need of a boilerplate HTML document once only, then you may use a commandline tool like cURL or HTTPie and run http https://html5example.com > index.html to save a template file.

The webapp supports some options of this package as well, for example http POST https://html5example.com title=Minimal-Template > index.html to pass a custom title.

Requirements

  • PHP

Installation

Packagist Entry https://packagist.org/packages/pixelbrackets/html5-mini-template/

Source

https://gitlab.com/pixelbrackets/html5-mini-template/

Mirror https://github.com/pixelbrackets/html5-mini-template/ (Issues & Pull Requests mirrored to GitLab)

Demo

⌨️ php tests/demo.php.

Usage

  1. Wrap a message into a HTML5 document, return to a PSR-7 implementation

    $template = new \Pixelbrackets\Html5MiniTemplate\Html5MiniTemplate();
    $template->setContent('<h1>Status</h1><p>All Systems Operational</p>');
    return $template->getMarkup();
  2. Wrap a message, use a preconfigured CSS framework CDN (see »options« for a list of supported frameworks), and save the document into a file

    $template = new \Pixelbrackets\Html5MiniTemplate\Html5MiniTemplate();
    $template->setStylesheet('barbone');
    $template->setContent('<h1>Index</h1><p>Nothing to see here</p>');
    file_put_contents('/var/www/example/index.html', $template->getMarkup());
  3. Wrap a message, set your own stylesheet URL, set a title, output the document

    $template = (new \Pixelbrackets\Html5MiniTemplate\Html5MiniTemplate())
        ->setStylesheet('/assets/styles.css')
        ->setTitle('Index')
        ->setContent('<h1>TOC</h1><ul><li>a</li><li>b</li></ul>');
    echo $template->getMarkup();
  4. Get the boilerplate example template only (👉 or use the Webapp)

    echo \Pixelbrackets\Html5MiniTemplate\Html5MiniTemplate::getTemplate();

Common Use Cases:

  • Status pages - Generate "All Systems Operational" or maintenance pages
  • Error pages - Create custom 404, 500, or maintenance error responses
  • CLI tool HTML output - Wrap command-line tool output in viewable HTML
  • Build artifacts - Generate HTML reports, coverage summaries, or changelogs
  • Email templates - Create simple HTML emails without a template engine
  • API documentation landing pages - Quick index pages for API endpoints
  • Placeholder pages - "Coming soon" or "Under construction" pages
  • Print-friendly output - Convert data to styled, printable HTML documents

Options

  • setContent() (string) the message to show, any HTML string to set the main content of the document – if empty, then a boilerplate example content is used instead
  • setStylesheet() (string) may be a URL to any existing stylesheet or one of following reserved keywords – each keyword creates a link to a CDN of the associated CSS framework
  • setStylesheetMode() (string) switch between a link to the given stylesheet (using the constant Html5MiniTemplate::STYLE_LINK, this is the default mode) or fetch the stylesheet file content and print it inline (using the constant Html5MiniTemplate::STYLE_INLINE)
  • setTitle() (string) the document title – if empty, then the first H1 headline found in the main content is used as title instead
  • setAdditionalMetadata() (string) any additional metadata like metatags, custom styles or link references like a canonical link
    • ⚠️ Usage of this option is an indicator that the given use case is too specific and switching to a template engine like the minimal slim/php-view or the powerfull twig/twig should be considered

License

GNU General Public License version 2 or later

The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html.

Author

Dan Kleine (mail@pixelbrackets.de / @pixelbrackets)

Changelog

See CHANGELOG.md

Contribution

This script is Open Source, so please use, share, patch, extend or fork it.

Contributions are welcome!

Feedback

Please send some feedback and share how this package has proven useful to you or how you may help to improve it.

About

HTML5 Mini Template for quick rendering of status pages, TOC pages, or any other minimal single-serving site

Topics

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published