A Step-by-step Guide to Your Own Blog
We are now ready to explain step-by-step how to create your own blog using Nukumi2.
Designing the TopicTree
First of all, you should think about what skeleton tree to use. For
blogs, Nukumi2::Entry
uses permalinks at /archive/YEAR/MONTH/TITLE
and categories at /category/CATEGORY
.
So, let’s get started. Create a new directory myblog
that will
contain your blog:
mkdir myblog
Inside, create a file config.rb
with these contents (comments are
interspersed.):
blog {
First, we set some parameters required in the templates:
title 'example.org'
tagline 'cooporate weblog'
author 'CEO of Example.org'
mail 'ceo@example.org'
css '/data/style.css'
site 'http://example.org/'
baseuri 'http://example.org/blog'
This tag-URI is used for Atom guid
generation and should be chosen carefully:
taguri 'tag:ceo@example.org,2004-12-03:example-org-blog'
copyright \
"Copyright © 2004 Example.org, ceo@example.org\n" +
"Verbatim copying is permitted as long as this message is preserved."
This a bit cryptic section defines entries
to hold the blog entries.
You can define as many backends as you want.
register {
constant :backends, { :example_org => FileBackend.new("entries") }
}
Now, we get down to the nitty-gritty, the TopicTree. Each topic has
some attributes, title
(if given, used in navigation), view
(the
used view) and save
(statically render to these flavors).
topics {
title 'Front Page'
view 'Last'
save ['html', 'rss', 'atom']
Subtopics are created using topic.SUBTOPIC
:
topic.static {
title 'Also on this site'
view 'Subtopic'
save 'html'
all { view 'Full'; save 'html' }
topic.about { title 'About' }
topic.projects { title 'Projects'; view 'Direct'}
topic.contact { title 'Contact' }
}
topic.category {
title 'By Category'
view 'Subtopic'
save 'html'
There are two kinds of special topics, any
and all
. any
topics
apply the attributes given to any direct subelements while all
topics do even more: they apply recursively to all the subtopics.
any {
all {
view 'Last'
save ['html', 'rss', 'atom']
}
}
Now, let’s setup some categories:
topic.releases { title 'Software Releases' }
topic.features { title 'New Features' }
topic.finances {
title 'Finances'
topic.yearly_report {
title 'Yearly Reports'
}
}
}
This is the default code for archives.
topic.archive {
title 'By Date'
view 'Subtopic'
save 'html'
any {
view 'Subtopic'
save 'html'
all {
view 'Last'
Hidden topics won’t be shown in the topic overview. We don’t want to show permalinks here.
hidden true
}
any {
view 'Full'
save 'html'
any {
view 'Single'
hidden true
save 'html'
}
}
}
}
Perhaps, you’d also like to add some static pages for contact, a
description of yourself or something. We will use /static
for that.
topic.static {
title 'Also on this site'
view 'Subtopic'
all {
view 'Full'
}
}
}
}
Adding entries
You can now start populating your blog with entries. Since you use
the file backend (there are not others yet), you simply need to create
a file per entry into your entries
directory. This file needs to
have a format inspired by
RFC2822 and looks like this:
Title: Welcome to our new cooporate blog
Date: Mon, 18 Oct 2004 18:12:15 +0200
I'm proud to announce that Example.org Ltd. now has an cooporate
blog.
Subscribe now, and you won't loose track of our software releases,
new features of our products and financial reports.
Happy reading,
Your CEO of Example.org
The first paragraph contains the header, while the following text is
the body. Every entry should at least have a Title:
and a
Date:
, which contains the creation date and must not be
changed after publication.
The body text is by default processed with BlueCloth and RubyPants, but this can be customized. If you wanted to write you entry in RedCloth, for example, you’d simply need to add:
Encoding: RedCloth
Publishing your blog
Now, you need to decide how to publish your blog. You can either do this statically or dynamically. Statically will create files for each site that can be published with any webserver whereas dynamically publishing will require you to run Webrick. (A CGI/FastCGI publisher would be nice to have but is not yet written.)
Static publishing
To publish static pages, you simply run the nukumi2
command in your
blogging directory. It will output all files getting created. It’s
your job now to get them to the appropriate directory or upload
them to a server.
Nukumi2 uses as much relative links as possible. Sometimes, absolute
links cannot be avoided, though. Set baseuri
in the configuration
file to the URI the blog gets published at.
Dynamic publishing
To publish dynamically, run nukumi2 -s
inside your blogging
directory. Now, you can look at your blog by visiting
http://localhost:2000.
Well, there you go. You just set up Nukumi2 in a few easy steps. The “difficult” part will come now: Customizing and Extending Nukumi2.