Coder Social home page Coder Social logo

ethomasjoseph.com's Introduction

Github + Bootstrap Powered Website

This project is the code and configuration for my personal bliki website (blog + wiki), which gives me the power to write articles that evolve over time.

This uses an interesting mix of technology - aptly to power my technology bliki:

Driving Forces

The reason for me to start a Github powered website had multiple reasons:

  1. Flexibility of a blog & wiki as described by Martin Fowler. I used Blogger since 2006 for my blog, but I always wanted more power - especially when dealing with technology topics.
  2. Power and flexibility to control the look and feel of the content published.
  3. Learning and apply some frontend technologies such as Bootstrap, Bower & Gulp.
  4. Free - as in free speech as well as free as in free beer. Being in Github does not require me to have a web hosting provider. The even better part is that it is free for anyone to see and learn.

Setting up your local environment

1. Install latest version of ruby and devkit - from http://rubyinstaller.org/downloads/.
2. Install Jekyll and other dependencies
gem install jekyll
gem install bundler
gem install github-pages
gem install jemoji
gem install wdm
3. Delete the Gemfile.lock and rebuild it:
bundle install

Psst! You may encounter issues while installing Ruby gems (especially on Windows), since some of them require native extensions. In that case please follow Ruby documentation.

4. Make changes and run Jekyll locally to confirm that the command executes properly. Do not focus on the website output yet. More information on Jekyll on its official documentation at https://jekyllrb.com/docs/home/.
bundle exec jekyll serve
5. No doubt - you will have to also setup NodeJS and its friends. Install the latest NodeJS from https://nodejs.org/.
7. Now setup initial NodeJS and Bower dependencies for this project
npm install
bower install

Building & Publishing

This is where NodeJS and friends come to play. Gulp has been used to automate most of the tasks needed for building and running the website locally.

The idea here is that Gulp would be used to perform most of the workflow including compilation of SASS, minification, uglification, linting etc. Jekyll will be used to assemble the pages to HTML output.

Updating web dependencies

If you need to update the web dependencies, update the versions on bower.json and run bower again. See the Bower documentation for more information.

bower install --force

Editing website content and previewing

The normal website edit - whether it is changing the code or design, or whether it is adding new content, gulp tasks have been confugured for these as well, which will also run the Jekyll, so that you can exactly see how it will look when hosted on Github pages.

gulp serve

The above command will process the JavaScript files by concatinating, uglifying and linting them; start Jekyll server; and lint the generated HTML files as well!

Note: Because of the way gulp workflow is setup, any file which requires gulp to perform a workflow (eg wiring dependencies etc), should reside in src folder, while others can be directly put under app.

Publishing changes to Github powered website

Simply running gulp will do all the above tasks, but without running the Jekyll server itself, and instead preparing for committing the changes to Github.

Once the gulp command has successfully executed. The resulting state of the repository can be committed and pushed to Github for instant publishing.

Contributions

Please use the issues tracker on Github to report any issues on this project.

References

ethomasjoseph.com's People

Contributors

ethomasjoseph avatar

Watchers

 avatar

ethomasjoseph.com's Issues

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.