Git Product home page Git Product logo

tindra's Introduction

Tindra - the glimmering site generator!

Like Rubys Jekyll but for Go! Project is in initial planning and hacking phase, stay tuned! Try it out by running:

go run tindra.go --target <site folder>

Should output a generated site in /build dir

Special folders

All files and folders in site root are copied verbatim except for a few that are special and one that is allways ignored (build/, config.yml). Files in root are parsed.

<site>/media		- content specific media (media used in posts)
<site>/css

<site>/includes		- snippets that can be included in other places (refer to an include by its filename). May contain subfolders.
<site>/layouts
<site>/posts

404.html
index.html
favicon.png
config.yml

Order of Execution

  • Templates are applied last after page have been generated by including includes and applying layouts.
  • Most recently set data entry is used for variables (that is a frontmatter specifying title in both layout and post the post title is used)

Dependency Graph

Includes are static and nothing can be inserted Layouts can use other layouts. Posts can use layouts

API

Pre-processing

Tindra relies on convention over configuration for many of its setttings. Use special folders for content.

Include files: {% include sidebar.html %} For layouts: {% content %} In posts: accesss variables using golang templates

Post

All blog post files must begin with YAML front-matter. That is the first paragraph and contains a Yaml header. The header affects the rendering of the post.

---
title: "My post title" // if not set uses filename as title
layout: "layout.html"  // if not set just outputs parsed markdown
---

Roadmap

  • Add support for file inclusion
  • Add ability run as stand alone webserver
  • Add filesytem watchers
  • Add support for plugins such as Disqus
  • Generation of feed.xml

tindra's People

Contributors

wejeus avatar

Stargazers

Yang Meyer avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.