Shammy is yet another static site generator. It uses the concepts of merging the real content with a pre-defined template, to build a static site or blog.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.settings
resource-processor
src
test
.checkstyle
.classpath
.gitignore
.project
LICENSE
README.md
pom.xml
repometa.json

README.md

Shammy

Shammy is yet another static site generator. It uses the concepts of merging the real content with a pre-defined template, to build a static site or blog. The motivation behind building this tool is to manage my own blog cheaply while having full control on its contents. This would also allow me to learn new concepts and build on top of it.

GOALS

  • Ease out writing and publishing a blog or a static site

Future

  • Providing static front-end to dynamic web applications
  • Ease out writing a dynamic web application

Writing a blog

A blog is published using HTML 5 as a standard. Browsers (on reader's machine) understand the HTML content provided by the author, to present it beautifully. According to Gartner blog is a website which makes it easier for the author to create entries. Also it displays the blog entries in chronological order, and archieves them from time to time.

Other unsaid requirements of a blog are to display the contents beautifully, ability to search the blog show navigation bar and maintain consistent look and feel across the site.
Achieving this is very difficult for a non-technical person who now needs to learn HTML to achieve expected results. This causes frustration and time wastage, which could instead be used for content writing instead of worrying about blog structure.
This problem can be reduced by using Markdown. It is an easy to learn language. Even in a simple text editor, it gives a feeling of writing a rich text. So it is easier to understand and see in advance how our content is going to look like.

Markdown conversion to HTML

To convert markdown files to HTML, we need an external tool. This is where Shammy plays a big role. To maintain a UX integrity across pages, we need to define templates. Shammy mixes the content with templates and generate HTML output which can then be deployed on server, e.g. github pages.

Workspace Structure Management

Workspace Location

Workspace Structure

Assets
Contents
Templates
Backup
Output

Initializing workspace structure

Validating workspace structure

Blog structure Management

Template

Markdown

Assets

Relative path management

Merging Template + markdown +assets

Validation of input files

Error Handling and Recovery

Default Options

Building website

Building website from Scratch

Hot Build

Deployment of website from scratch

Hot Deployment

SEO

Common Components

Index of all blogs

Archive

Search

Social Integration

Navigation Components

Categorization of blogs

Pagination

Scalability

Customization

Technology and Tools