How do I integrate nanoc and Twitter Bootstrap/Zurb Foundation? - ruby

I am making a fairly big website. Mostly on culture of a particular place.
Are static sites a good idea?
How do I integrate nanoc and some framework? There are a couple of github repos on this, but I wanted to this from scratch in order to learn. Otherwise, I am afraid I might not be able to fix something that goes wrong later.
PLease help~

I've recently decided to make a reasonably sized site using nanoc and Zurb Foundation myself, so I can tell you my thoughts on this:
A static site is a good idea in many situations, but they do have obvious limitations (with everything being static!). The typical use of a static generator like nanoc is for a blog, for which most of the limitations aren't a problem (especially with services like Disqus for comments). I personally decided to use nanoc to save hosting/maintenance costs initially (using Amazon S3 to host a static site is cheap and scalable compared to a VPS), because I don't need any of the dynamic stuff yet, and to learn something new!
I've written a few posts on my blog (link in my profile) about how I've integrated foundation from scratch with nanoc. I can't comment for bootstrap, but my steps were:
Use the nanoc tutorial to create a site
Use compass to integrate foundation into your site, by creating a compass.rb that has a require "zurb-foundation" line as well as config for your asset paths (mine is here)
Run a compass install foundation -c compass.rb to populate the foundation stylesheets, images and javascripts into your asset directories
Update your Rules file to include compass, and process the stylesheets accordingly
That is a high-level overview - there's step-by-step detail on my blog if you're interested in going the foundation route.

Related

standard d3 workflow and hosting solutions

I am new to d3.js and it seems like there are a lot of options when it comes to developing and hosting projects.
Options include:
bl.ocks.org
plnkr.co
jsfiddle
jsbin
vida.io
etc.
I can also run a web server with python for local development, but in my case, I am not able to host my projects locally.
bl.ocks.org is really popular, but I have run into many caching issues when using it to develop code (make a change, wait 5 mins, see the change).
At the moment, I was thinking that the best bet would be to develop locally then put the code in a gist and use bl.ocks.org to host it.
My question is:
Is this a fairly standard and sensible workflow for d3 and are there any other services out there that you recommend I should use instead of bl.ocks.org?
Develop locally. For most D3 work you don't even need a server running, since browsers will "serve" static html, javascript, json and csv over the file:// protocol (EDIT: except Chrome). This makes the development cycle simple, fast and easy.
Deploy with GitHub. If you're just serving static pages and not hosting anything else, it's the fastest way to get something up on the web. There are two good ways to do this:
Gist hosted, view on bl.ocks.org. This is great for little examples and one-off tricks. The best part of this is that it just works, no configuration necessary. Also it's neat to see the auto-generated gallery of your visualizations.
GitHub Pages. This is best for more significant projects, since you can completely customize the interface to your liking (and even use your own domain!). Just don't forget to put a "fork me" ribbon in the corner.
And please do post any neat visualizations you build to the gallery!

Simple Compass+HAML webserver

I love compass (SASS) and HAML. I've been using staticmatic for building static web pages. Staticmatic seams outdated (no updates, bugs). What are the alternatives?
What I would like:
$ preview .
> Server started ad port XXXX
> Now you can use Compass and HAML
:). So... no configuratio, no directory structure, just haml and sass files.
I am currently using Compass/Sass/Haml with middleman. https://github.com/tdreyno/middleman It is very easy to use, and runs a sinatra in the background so you can see your changes live in your web browser.
After you are done editing and previewing your markup it builds static HTML from your stack of Compass/Sass/Haml. See https://github.com/tdreyno/middleman/wiki for usage.
This requires no conf at all except to tell it which templating engines you are using at setup so I think it is exactly what you are looking for.
You can try jekyll. I think it doesn't work with sass and haml out of the box but you can look at plugins
Don't forget Nanoc. While it is a little involved, it has some slightly more powerful features than StaticMatic. It does depend on a directory however. :/
There are just a ton of static generators around, most of them in Ruby. I'm planning to use Frank for the next few static projects.
It uses Tilt to support a ton of template engines
It has a concept of layouts, which go in a separate layouts folder, and templates can have a metadata header, but other than that it's very minimal.

Package rails app as gem or something else reusable?

I'm looking for a guide on how to package a rails app as a gem or something reusable like that..
At work we build a lot of client rails apps where wordpress is too bloggy(and php) and radient and the other ruby cms's seem a little clunky to fit them perfectly..
So im building (you guessed it) yet another CMS for simple sites using the common factors ive seen across multiple sites..
What would be perfect would be, being able to say
$: MyCMSName new sitename
To setup the common defaults, and then:
$: rails g MyCMSName:downloads
Or
$: rails g MyCMSName:galleries
Also it would also be nice to say:
$: MyCMSName new sitename --with-galleries --with-downloads
This is the way RefineryCMS works.
Rather than wasting your time creating yet another CMS, I suggest you download the source and help in development.
There are a few rails engine extensions available too, including a gallery. The main developer is open to pull requests and can often be found on irc.

Best way to create a blog with static pages in Ruby

I just visited the Static Website Generation on Ruby toolbox and I don't know which of applications listed there is best suited for a little blog engine. Basically I need:
an index page with 1..5 of latest articles with shortened content;
possibility to add few main pages and a menu to access them (breadcrumb optional);
show articles
show/search archives
commenting system - Disqus Ok
tag-list cloud - optional
Look&Feel via layout
Important all content will be translated in 3 languages!
I can host on my own server, so side processing is possible.
Update:
First I'll try nanoc => blog's source on github
I think nanoc worth a try it has everything you specified, even if is not the best ranked on ruby toolbox its actively developed and highly customizable.
nanoc is a tool that runs on your local computer and compiles documents written in formats such as Markdown, Textile, Haml… into a static web site consisting of simple HTML files, ready for uploading to any web server.
and thats true :) I use it for a while not specially for a blog, but it has also helpers for that...
check out jekyll, it should work well for this.
Try my own "serious" - apart from archive search and tag cloud, it has everything you specified, plus the basic install should take you something like 5 minutes on heroku (and maybe 10 on your own server via Rack). It also has syntax highlighting, Disqus comments, Google Analytics and other goodies.
http://github.com/colszowka/serious
gem install serious
Disclaimer: It does not produce static html pages you can upload to your php vhost, though. But it uses caching and is really easy to setup and works on the free plan on heroku.

Jekyll vs RefineryCMS?

I know many Ruby users are using Jekyll but I wonder what the benefits that will bring over RefineryCMS?
Could someone highlights the differences and pros/cons for each.
I'm one of the core developers on Refinery CMS.
The architecture of each project is vastly different. Here's a few things Refinery CMS has:
Web based interface (just go to /refinery to login and edit content)
Visual content editing (but also supports editing in plain HTML)
Stores it's content in a database (MySQL, SQLite, PostgreSQL - your choice)
Suitable for non technical people to edit
Supports Rails 3
Supports localisation in 11 languages (and you can add your own)
Support and docs: IRC, Google Group, Tutorials, API docs, Github repository
I can't be authoritative about Jekyll (maybe mojombo can answer) but it looks like:
Static content editing
Stores it's content in files
Developer focused, not suitable for an end user to edit
Markup based editing
Will load slightly faster as the pages are static
I hope that helps weigh it up. It all comes down to your project requirements.
Well, jekyll is 100% static. All files are generated into static HTML. Jekyll is amazing for small sites that don't really need dynamic content. With jekyll you write the content in your own text editor.
I haven't tested RefineryCMS, but it is more like what you would think of as a content management system with data stored in a database managed through a web interface. If the site is going to be managed by non-tech people, I'll say jekyll is a no-go and that refinery is a better choice.
RefineryCMS is fully Rails 3.0 compatible and they offer great support over IRC. Furthermore RefineryCMS is a fully featured CMS with a localizable interface while Jekyl is not. It all depends on your projects needs.
The best thing to do would be to install them both and play. You will soon see they both serve two completely different purposes. Refinery is a CMS and Jekyll is a static site generator . Jekyll is not built for content management.

Resources