Skip to content
/ ro Public
forked from ahoward/ro

ro is library for managing your site's content in git, as god intended.

Notifications You must be signed in to change notification settings

sferik/ro

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

ro

TL;DR

    ro
    ├── people
    │   ├── ara
    │   │   ├── assets
    │   │   │   ├── ara-glacier.jpg
    │   │   │   └── source
    │   │   │       └── a.rb
    │   │   ├── attributes.yml
    │   │   └── bio.md.erb
    │   └── noah
    │       └── attributes.yml
    └── posts
        ├── foobar
        ├── hello-world
        │   ├── attributes.yml
        │   └── body.md
        └── second-awesome-post
            ├── attributes.yml
            └── body.md

  ro
    #=> all the content nodes

  ro.posts
    #=> all the post nodes

  ro.people                                 
    #=> all people nodes

  ro[:people]                               
    #=> same thing

  ro.people.ara                             
    #=> data for the person named 'ara'

  ro[:people][:ara]                         
    #=> same thing

  ro['people']['ara']                         
    #=> same thing

  ro.people.ara.first_name                  
    #=> give you *one* guess ;-) !

  ro.people.ara.url_for('ara-glacier.jpg')  
    #=> external timestamped  url for this asset

  ro.people.ara.source('a.rb')              
    #=> syntax highlighted source yo!

  ro.posts.find('second-awesome-post').body 
    #=> html-z yo

  ro.people.ara.related(:posts)             
    #=> all related posts

  ro.people.ara.related(:featured_posts)    
    #=> all featured posts
  

TRY

  ~ > git clone https://github.com/ahoward/ro.git
  ~ > cd ro
  ~> ./bin/ro console


  a:~/git/ahoward/ro $ ./bin/ro console
  Ro(./ro):001:0> ro.people
  => [people/ara, people/noah]

  Ro(./ro):002:0> ro.people.ara
  => people/ara

  Ro(./ro):003:0> ro.people.ara.first_name
  => "Ara"

  Ro(./ro):004:0> ro.people.ara.bio
  => "<ul>\n<li>one</li>\n<li>two</li>\n<li>three</li>\n</ul>\n\n<p>pretty syntax highlighting</p>\n<div class=\"highlight\"><pre>  <span class=\"vi\">@a</span> <span class=\"o\">=</span> <span class=\"mi\">42</span>\n</pre></div>\n<p>Ara</p>\n\n<p>/ro/people/ara/assets/ara-glacier.jpg?_=1382999368</p>\n"

  Ro(./ro):005:0> ro.people.ara.url_for('ara-glacier')
  => "/ro/people/ara/assets/ara-glacier.jpg?_=1382999368"

  Ro(./ro):006:0> ro.people.ara.related
  => [posts/hello-world, posts/second-awesome-post]

  Ro(./ro):007:0> ro.people.ara.related.posts
  => [posts/hello-world, posts/second-awesome-post]

  Ro(./ro):008:0> ro.people.ara.related(:featured_posts)
  => [posts/second-awesome-post]

DESCRIPTION

ro is library for managing your site's content in git, as god intended.

it features:

  • super fast loading via a robust caching/promise strategy
  • all teh templates supported via tilt (https://github.com/rtomayko/tilt)
  • the awesomest markdown ever, with syntax highlighting and even erb evaluation
  • an awesome command line tool for introspecting your data (./ro console)
  • data driven relationships

ro is the perfect companion to a site built by a static site generator such as middleman (http://middlemanapp.com/). especially a middleman site with a companion rails' application doing concurrent modifications of the site's content... ;-)

INSTALL

gem install ro

CONFIG

if you are using the url methods you'll need to make sure your application can route to the assets. by default ro assumes that the urls it generates are routeable under '/ro' so it is up to you to make sure this works.

for a rails app this might mean writing a 'RoController' or, more simply, just putting your ro data in ./public/ro.

for a middleman app this might mean putting your ro data in ./source/ro.

if you choose a non-standard approach you'll need to


  Ro.route = '/my-custom-route'


in all cases ro urls will be prefixed by the route, so be sure that this prefix is either automatically, or manually, exposed.

DOCS

RTFC

About

ro is library for managing your site's content in git, as god intended.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%