Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

Keep all your website's pages under one template

Project description

AutoSite

AutoSite helps you keep all of your website's pages in the same basic template. Managing a navigation bar, a footer, and even meta/OpenGraph tags across several pages is simple.

You can try AutoSite right in your browser!

Prerequisites

  • Python 3
  • BeautifulSoup 4
  • pathlib
  • Markdown

Installation

AutoSite can be installed and used anywhere with the command autosite.

Usage

  1. Run autosite. It will create a basic default.html template and the in and includes folders.

  2. Edit templates/default.html, filling in with these tags:

        [#content#] - The page's content.
        [#path#] - The relative file path from root.
        [#root#] - Use this to point to the site's root folder.
    

    You can also use any other attributes, like [#title#] or [#description#], provided that you define them in each page as below.

  3. Add your pages to the "in" folder. You can define a title and description, or any other attributes you wish, and tell AutoSite which template to use for the page at the top of the file like so:

        <!-- attrib title: Your title -->
        <!-- attrib description: Your description -->
        <!-- attrib template: default -->
        <p>Everything under the above lines will replace [#content#] in template.html.</p>
    

    Put other site files in the "includes" folder. Input pages can be HTML or Markdown files, and use the same attribute syntax.

  4. Run the script. How long it takes depends on how large your site is. Your pages will be in the "out" folder.

Conditional text

Many sites have a navigation where if you're on a page, that page's name in the navigation is not a link. AutoSite has a feature that lets you replicate this. Consider the following example:

  [path!=index.html]<a href="../index.html">[/path!=]
      Home
  [path!=index.html]</a>[/path!=]

You can also omit the ! symbol and it will only show if it is that page, like this:

  [path=index.html]<p>[/path!=]
      This is the index page.
  [path=index.html]<p>[/path!=]

Conditional text is not limited to just file paths! Nearly any attribute can be used with conditional text.

However, conditional text still has some issues. You can only have one instance of conditional text per line, it is not nestable, and not multiline either.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
AutoSite-1.0.2-py3.7.egg (7.9 kB) Copy SHA256 hash SHA256 Egg 3.7
AutoSite-1.0.2-py3-none-any.whl (5.9 kB) Copy SHA256 hash SHA256 Wheel py3
AutoSite-1.0.2.tar.gz (5.8 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page