Nikola, a static blog & site generator   python meetup 19 feb2014
Upcoming SlideShare
Loading in...5
×
 

Nikola, a static blog & site generator python meetup 19 feb2014

on

  • 1,459 views

Python static blog & site generator

Python static blog & site generator

Statistics

Views

Total Views
1,459
Views on SlideShare
799
Embed Views
660

Actions

Likes
0
Downloads
1
Comments
0

5 Embeds 660

http://pybcn.org 602
http://127.0.0.1 45
https://twitter.com 11
http://feedly.com 1
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Nikola, a static blog & site generator   python meetup 19 feb2014 Nikola, a static blog & site generator python meetup 19 feb2014 Presentation Transcript

  • Nikola a static Blog & Site generator Areski Belaid <areski@gmail.com> 19th February 2014 slideshare.net/areski/
  • Who am I? - Areski! - CTO at Star2Billing - VoIP guy, have worked with Python for many years - Love the web, day2day work with Django & Flask (Build a lot of Telefony products using Django/Flask) - I might need a haircut…
  • WAT! This is not a Web-Framework... Sorry guys! I know this talk doesn’t fit with tonight’s topic?
  • Pybcn.org - 2 months ago we built pybcn.org for our Python Group - Hosted on Github Pages Goals: - a simple website to provide information about the events in a more friendly fashion (use bootstrap3) - No cost / Self maintained - Still in discussion of what will happen on pybcn.org...
  • Nikola is a static website and blog generator It allows you to build a website/blog by simply writing text. You will write your Post/Page content in a text file and Nikola will generate the HTML pages, the website structure, URLs, links, menu, etc… “It will leverage all the heavy work of creating websites!” It’s very easy use… Don’t believe me!?
  • Why static http://getnikola.com/handbook.html#why-static Security Dynamic sites are prone to experiencing security issues. Obsolescence If you create a site (ie using a CMS), what happens when CMS releases a new version? Cost and Performance On dynamic sites, every time a reader requests a page, a whole lot of database queries are made. Time & Maintenance Hosting on Github page is extremely fast, no need to configure Apache/Nginx. Once it's there it will stay there.
  • Nikola features Most remarkable features: - Blogs, with tags, RSS feeds, archives, comments, etc. - A lot of themes: https://github.com/getnikola/nikola-themes - Flexible, extensible via plugins (https://github.com/getnikola/plugins) - reStructuredText or Markdown as input language (also Wiki, BBCode, Textile, and HTML) - Easy image galleries (just drop files into a folder!) - Preview web server examples - Live re-rendering while you edit ….
  • Markdown & Restructuredtext Plain text formatting syntax designed so that it can be converted to HTML
  • Install Nikola in 3 steps 1) create a virtualenv : $ mkvirtualenv myownpybcn-website 2) install nikola: $ pip install Nikola 3) install python-requests & livereload: $ pip install requests==2.2.1 $ pip install livereload==2.1.0
  • Let's create a demo website 1) Let’s create a demo site with fake data $ nikola init --demo myownpybcn This created directory myownpybcn, if you don't want the demo files remove --demo `Explorons` what has been created: - files: directory contains static assets - galleries: reveal the photo gallery feature of Nikola - posts: keep all your post files in a chosen markup language - stories: contains all the "static" pages (non-post pages) and finally `conf.py`, the config file for your site
  • Let’s create a post $ nikola new_post Creating New Post ----------------- Enter title: my new post Scanning posts....done! [2014-02-13T16:17:46Z] NOTICE: new_post: Your post's text is at: posts/my-new-post.rst then edit posts/my-new-post.rst and write more content
  • Let's build it How to build it (even my mum can do it): $ nikola build Some magic happens here… read your conf.py files, based on your templates, assests, custom css, plugins used, etc… it will produce HTML pages to create a full functional Website All the static files are stored in the folder output, you can open the output/index.html Yeah I know, it’s too easy :/
  • Serve it on a plate Nikola can serve all the static files from `output` directory locally: $ nikola serve Point your browser to the ip/port indicated - http://127.0.0.1:8000/ 'CRTL-C' to terminate We installed `livereload` earlier this will help to reload our website automatically every time we edit our code. $ nikola auto
  • Configure your conf.py The configuration file is called conf.py and can be used to customize a lot of what Nikola does # Data about this site BLOG_TITLE = "Demo Site" SITE_URL = "http://getnikola.com" BLOG_EMAIL = "joe@demo.site" BLOG_DESCRIPTION = "This is a demo site for Nikola." but also: - Configure your Menu, multi-language, google-analytic, comment(disqus), RSS feed, configure the template, and much more
  • Conclusion - Static website fits many cases - Nikola is a great tool and it’s Python based - Very fast to use: in a matter of minutes you can create functional Websites - Nikola has a lot of plugins & short codebase - Many templates, support bootstrap / bootstrap3 Time to get started : http://getnikola.com/
  • Questions? http://areskibelaid.com/nikola-one-kickass-site-generator/ http://getnikola.com/ slideshare.net/areski/ github.com/areski/ twitter.com/areskib