Skip to content

Platane/january

Repository files navigation

Travis

Static blog generator.

features

  • 🍰 as simple as git push
  • 🖋 read content as markdown.
  • 📦 generate optimized images resolutions.
  • 🔌 progressive web app, works offline.
  • 👓 rss feed.
  • 🛰 SEO friendly with server side rendering.

along with neat ui 👍

build

Dev

The app can be served trought webpack-dev-server for developpement purpose. Still, you need at least to build the posts as json and the images.

yarn run build:contentData && yarn run build:images && yarn run start

Production

The build process is composed of several steps:

  • yarn run build:contentData parse the files in src/content/posts, write the parsed posts as dist/posts.jon

  • yarn run build:asset run webpack to build the static assets.

  • yarn run build:images parse the dist/posts.jon file, generating several versions of images for several dimensions. rewrites the dist/post.json to include path to generated images.

  • yarn run build:icons generates severals version of the favicon, make them readable in dist/icons.json /!\ this step require to have graphicMagic in path

  • yarn run build:pages pre-render the html pages, reading the post.json file.

  • yarn run build:manifest build the manifest file, reading the generated icons.

  • yarn run build:serviceWorker build the serviceWorker file, reading the assets generated by webpack.

  • yarn run build:rss build the rss page.

path

As the router later the route, requiring relative path will fail.

In order to re-write path absolutely, the ROOT_URL can be defined and will be append at the start of the paths.

For example as this project is hosted at platane.github.io/january, the style url must be //platane.github.io/january/asset/style.css. The base path to set is //platane.github.io/january.

CI

The .travis file allows to build at every push and deploy to gh-pages.

GITHUB_TOKEN env var must be set. As well as BASE_PATH if applyable.

tl;dr

yarn run build to build the static files.

/!\ graphicMagic must be installed

But you probably shouldn't care as every thing runs on CI 😃.