We’ve rebuilt Dev.Opera as a static site, powered by Jekyll, Sass and Grunt. In this repository, you find all the source files and content to build the site, make improvements, and submit new articles.
- Install Jekyll, Sass and all needed gems by running
sudo gem install jekyll stringex sass
on the command line. - Download and install Node.js with the default installer options.
- Clone the project by running
git clone git@github.com:operasoftware/devopera.git
. - Run
npm install
inside thedevopera
folder. - Run
npm install grunt-cli -g
to install Grunt globally.
Please install EditorConfig plugin for your editor to keep code style declared in the .editorconfig file.
If you’ve set up all the above at some point in the past, and want to update your installation, these are the steps to follow:
- Run
sudo gem update
to install the latest Ruby gems. - Run
npm install
inside thedevopera
folder.
To open Dev.Opera locally, simply run grunt
. It will take up to 1 minute to:
- Build the site in “limited mode” with only the latest 150 posts.
- Start local server at
http://0.0.0.0:33310
address. - Open it in your default browser.
To start developing Dev.Opera run grunt dev
, it would take up to 1 minute to:
- Build site in a limited mode with only latest 150 posts.
- Start local server on
http://0.0.0.0:33310
address. - Open it in your default browser.
- Launch a
watch
task for all files.
So now every time you change project files, Dev.Opera will be rebuilt and you browser will update. For HTML and MD files it will still take up to 1 minute, for CSS it will be much faster (please request the same fast track for JS or anything else if needed).
To build a complete Dev.Opera, run grunt build
: it will take a while to build the full site with all posts included in the _site
folder. To deploy (sync build with remote server), run grunt deploy
.
- All instructions are for Unix (OS X, Linux, etc.) because Jekyll is not compatible with Windows.
- You may require write access for all commands mentioned above. Type
sudo
, space and command if needed.