This is the repository for the utahjs.com website. All are welcome to contribute.
Visit #utahjs on freenode for help any time. I'm there most of the day.
Contributing is easy. The website is built on nanoc, a static site compiler. Contributing is as easy as adding a member profile yaml file, and then writing an article in markdown.
-
Fork the repository (or ask for push/pull access on the mailing list), check out a new branch off of master.
# If you have push/pull access git clone [email protected]:UtahJS/utahjs.com # If you don't git clone git://github.com/UtahJS/utahjs.com cd utahjs.com git checkout master git checkout -b my-articles
-
Add your member profile to
content/members
. It should look something likecontent/members/Ryan Florence.yml
:name: Ryan Florence email: [email protected] location: West Jordan, UT github: rpflorence twitter: ryanflorence website: http://ryanflorence.com about: Yadda yadda yadda
This information will display on your articles and on the members page. The name of your yaml file is a unique identifier for articles you write. More on that in a minute.
-
Write an article in markdown, html, or haml in the
content/articles
directory. The name of the file becomes the url of the article. At the top of the article is some configuration.--- title: Sample article title author: Ryan Florence date: 2011-08-17 --- Then write your article here.
Your article extension needs to match the filter you want:
article-name.md -> filtered with markdown article-name.haml -> filtered with haml article-name.html -> not filtered
Check out
content/articles/example/index.md
-
Push to the repository (and perhaps send a pull request).
git add content/members/First\ Last.yml git commit -m 'added "First Last" as member' git add content/articles/my-article.md git commit -m 'added "My Article"' git checkout master git pull git merge my-article git push
You can look at articles/example
to see how to use some of the helpers.
If you want to view the site locally it's a bit more involved. You'll need ruby installed on your machine. If you're on Mac OS X, you've already got it.
-
Post to [email protected] and ask for Push / Pull access
-
Fork the repository
UTAHJS_HOME=~/Code cd ${UTAHJS_HOME} git clone [email protected]:UtahJS/utahjs.com.git
-
Install rvm, ruby, and bundler (Ubuntu / OS X)
cd ${UTAHJS_HOME}/utahjs.com bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer ) rvm install ruby-1.9.2 echo 'gem: --no-rdoc --no-ri' >> ~/.gemrc rvm use 1.9.2@utahjs --create # that's just a shortcut for: # rvm use ruby-1.9.2 # rvm gemset create utahjs # rvm gemset use utahjs rvm gemset list gem install bundler
-
Now, with bundler, install the gem dependencies
bundle install
All of the required ruby gems, including nanoc, should be installed locally for this project now.
Nanoc ships with several commands, but since the site uses bundler you
need to prepend all commands with bundle exec
. For example, nanoc
has a static file web server:
nanoc view
# with bundler
bundle exec nanoc view
To compile the site:
bundle exec nanoc compile
Autocompile compiles the site on each visit, so you don't have to compile after each change you make:
bundle exec nanoc autocompile
Check out the nanoc website to learn more about the platform utahjs.com is built on.