Skip to content

A fully customizable and flexible static website generator

License

Notifications You must be signed in to change notification settings

WilliamRagstad/Pond

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pond Logo
GitHub release (latest by date) GitHub All Releases GitHub contributors GitHub Release Date

Welcome

Have you ever wanted to create a website from your Markdown just with the click of a button? Then I welcome you to Pond, a fully customizable and flexible static website generator inspired by Django’s (or Jinja's) templates.

Pond let's you write everything in Markdown and instantly produce a complete website of your liking ready for publication.

Install

You can download the latest version, or view all releases.

If you want to use Pond in other projects, read how you can install Pond to PATH.


CLI usage

Pond Command Line 1.0.0.0

Usage: Pond (options) (commands)

Options:
¨¨¨¨¨¨¨¨
  /c [file]  Configuration file

Commands:
¨¨¨¨¨¨¨¨¨
  init    Initialize a new Pond project

Configuration

As promised, Pond comes with with extensive customization and flexibility so you can have as much freedom as possible when designing your templates.

You write all the content in Markdown, which is then combined with the correct HTML template and CSS stylesheet to produce a finished page.

[This is not yet written]

Template Syntax

Global variables

All global variables are UPPERCASE. These are:

Name Description Type
TITLE The article title string
CHAPTERS Data about all chapter Chapter array
ELEMENTS All elements in the article Element array

Template tags

Tags formatted as {{ [expression] }} will produce a text result. If you desire to utilize some kind of compile-time action, these are formatted as {% [expression] %} and will produce different results depending on the action type described by the expression.

Pipes

Raw HTML

Use the {{ [expression] | raw }} notation to print out the result of the expression as raw HTML. This may be unsafe if users can control the expression value.

Actions

About

Pond comes shipping with a powerful integration of the C# programming language, which allows you to create advanced logic in your template files.

If-statements

Use the {% if [expression] %} notation to only use a specific template if the expression returns true. Remember to always add the corresponding closing {% endif %} or just {% end %} .

Loops

Use the {% for [element] in [array] %} notation for iterating over a text array. Remember to always add the corresponding closing {% endfor %} or just {% end %} .

Objects

Type Description Fields Methods
Chapter Holds data about each and every chapter. title: Text, elements: Element array
Element Text, Images, Quotes, etc. toHTML()

Methods

Name Description
toHTML() Returns the default HTML implementation of the specific Element.

Example page

Markdown article:

# My fancy title
## Welcome
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent tincidunt metus ac velit facilisis elementum. Nam iaculis sagittis ante, non rhoncus risus mattis at. Integer semper felis ac pretium placerat. Maecenas placerat ipsum ut odio egestas, rutrum gravida velit suscipit. Sed ornare, sapien non ornare ultrices, mi mauris ullamcorper magna, eget sollicitudin nibh tellus ac nunc. Curabitur tempus ornare ornare. Pellentesque urna diam, bibendum nec urna tristique, malesuada iaculis odio. Integer finibus magna ac nunc scelerisque commodo. Nunc porta massa quis est porttitor lobortis. Quisque finibus lorem vitae ante consequat tincidunt. Aliquam efficitur eros vitae ligula tempor, a interdum ex aliquet. Mauris nibh nibh, mollis vitae est quis, tempus sollicitudin mauris. Vestibulum cursus, ligula sit amet sodales venenatis, orci sem sagittis est, eu mattis orci tellus a nibh. Vestibulum tempus lacus sed nunc imperdiet porttitor. Morbi gravida ullamcorper fermentum.

![Maybe an image](assets/img.png)

## The end
Praesent cursus elit id lacus hendrerit, ac interdum ante euismod. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed sollicitudin suscipit hendrerit. Pellentesque faucibus eget eros at auctor. Ut pulvinar ante vel neque dignissim, gravida pulvinar felis pellentesque. Ut fermentum molestie efficitur. Praesent molestie vehicula enim vitae tincidunt. Quisque vel pellentesque dui. Morbi a arcu nulla. Nullam aliquet vel quam et vehicula. Aliquam erat volutpat.

HTML Template:

<html>
    <head>
        <title>Article | {{ TITLE.ToLower() }}</title>
    </head>
    <body>
        <h1> {{ TITLE }} </h1>
        {% for chapter in CHAPTERS %}
        <section id="{{ chapter.Title }}">
            {% if chapter.Title.ToString().Trim() != string.Empty %}
            <h1>{{ chapter.Title }}</h1>
            {% endif %}
            {% for elm in chapter.Elements %}
                {{ elm.ToHtml() }}
            {% endfor %}
        </section>
        {% endfor %}
    </body>
</html>

Produces:

<html>
    <head>
        <title>Article | hello word</title>
    </head>
    <body>
        <h1> Hello World </h1>
        <h2> Welcome </h2>
        <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent tincidunt metus ac velit facilisis elementum. Nam iaculis sagittis ante, non rhoncus risus mattis at. Integer semper felis ac pretium placerat. Maecenas placerat ipsum ut odio egestas, rutrum gravida velit suscipit. Sed ornare, sapien non ornare ultrices, mi mauris ullamcorper magna, eget sollicitudin nibh tellus ac nunc. Curabitur tempus ornare ornare. Pellentesque urna diam, bibendum nec urna tristique, malesuada iaculis odio. Integer finibus magna ac nunc scelerisque commodo. Nunc porta massa quis est porttitor lobortis. Quisque finibus lorem vitae ante consequat tincidunt. Aliquam efficitur eros vitae ligula tempor, a interdum ex aliquet. Mauris nibh nibh, mollis vitae est quis, tempus sollicitudin mauris. Vestibulum cursus, ligula sit amet sodales venenatis, orci sem sagittis est, eu mattis orci tellus a nibh. Vestibulum tempus lacus sed nunc imperdiet porttitor. Morbi gravida ullamcorper fermentum. </p>
        <img src="assets/img.png" alt="Maybe an image"/>
        <h2> The end </h2>
        <p> Praesent cursus elit id lacus hendrerit, ac interdum ante euismod. Interdum et malesuada fames ac ante ipsum primis in faucibus. Sed sollicitudin suscipit hendrerit. Pellentesque faucibus eget eros at auctor. Ut pulvinar ante vel neque dignissim, gravida pulvinar felis pellentesque. Ut fermentum molestie efficitur. Praesent molestie vehicula enim vitae tincidunt. Quisque vel pellentesque dui. Morbi a arcu nulla. Nullam aliquet vel quam et vehicula. Aliquam erat volutpat. </p>
    </body>
</html>

Easy huh? Just build your own templates to get started!

Install Pond to PATH

This is for those who are going to use Pond in more than one projects, or just like to keep their files organized.

First, download Pond and unzip the package. Create a folder in your desired location, we suggest C:\Program Files (x86)\Pond, and move the content files from the zip into this folder. Next, click on the windows home icon in the bottom left corner, and serach Environment Variables . The window should look like the one below.

Environment Variables

Click the button at the bottom that says Environment Variables. This window should pop up.

Environment Variables

Now, look for the variable Path, click Edit... and New. Now paste the location in which you put all Pond files, ours was C:\Program Files (x86)\Pond. Press OK everywhere.

Now you have installed Pond globally on your computer. Open up a terminal and type Pond to test it out.

About

A fully customizable and flexible static website generator

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages