2010-08-23 12:26:48 +00:00
<?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "fr" xml:lang = "fr" >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" / >
< meta name = "keywords" content = "blog, nanoc" >
< link rel = "shortcut icon" type = "image/x-icon" href = "/Scratch/img/favicon.ico" / >
< link rel = "stylesheet" type = "text/css" href = "/Scratch/assets/css/main.css" / >
< link rel = "stylesheet" type = "text/css" href = "/Scratch/css/twilight.css" / >
< link rel = "stylesheet" type = "text/css" href = "/Scratch/css/idc.css" / >
< link rel = "alternate" type = "application/rss+xml" title = "RSS" href = "http://feeds.feedburner.com/yannespositocomen" / >
< link rel = "alternate" lang = "fr" xml:lang = "fr" title = "Récupérez mon système de blog" type = "text/html" hreflang = "fr" href = "/Scratch/fr/blog/2010-06-15-Get-my-blog-engine/" / >
< link rel = "alternate" lang = "en" xml:lang = "en" title = "Get my blog engine" type = "text/html" hreflang = "en" href = "/Scratch/en/blog/2010-06-15-Get-my-blog-engine/" / >
< script type = "text/javascript" src = "/Scratch/js/jquery-1.3.1.min.js" > < / script >
< script type = "text/javascript" src = "/Scratch/js/jquery.cookie.js" > < / script >
< script type = "text/javascript" src = "/Scratch/js/index.js" > < / script >
< title > Get my blog engine< / title >
< / head >
< body lang = "en" >
< script type = "text/javascript" > / / < ! [ C D A T A [
document.write('< div id = "blackpage" > < img src = "/Scratch/img/loading.gif" alt = "loading..." / > < / div > ');
// ]]>
< / script >
< div id = "content" >
2010-09-27 18:49:15 +00:00
< div id = "choix" >
< div class = "return" > < a href = "#entete" > ↓ Menu ↓ < / a > < / div >
< div id = "choixlang" >
< a href = "/Scratch/fr/blog/2010-06-15-Get-my-blog-engine/" onclick = "setLanguage('fr')" > en Français< / a >
< / div >
< / div >
< img src = "/Scratch/img/presentation.png" alt = "Presentation drawing" / >
2010-08-23 12:26:48 +00:00
< div id = "titre" >
< h1 >
Get my blog engine
< / h1 >
< / div >
< div class = "flush" > < / div >
< div class = "flush" > < / div >
< div id = "afterheader" >
< div class = "corps" >
< p > I published a < em > light< / em > version of my blog engine based on < a href = "http://nanoc.stoneship.org" > nanoc< / a > yesterday night. By < em > light< / em > , I mean a lighter, more portable CSS (without round border).
You can get it on < a href = "http://github.com/yogsototh/nanoc3_blog" > github.com< / a > .< / p >
< p > What this system provide?< / p >
< ul >
< li > All < a href = "http://nanoc.stoneship.org" > nanoc< / a > advantages,< / li >
< li > Easy multi-language handling,< / li >
< li > Syntax Coloration for most languages,< / li >
< li > < a href = "http://intensedebate.org" > intenseDebate< / a > comments integration (asynchronous) ;< / li >
< li > Portable with and without javascript, XHTML Strict 1.0 / CSS3,< / li >
< li > Write in markdown format (no HTML editing needed),< / li >
< li > Typographic ameliorations (no ‘ :’ starting a line in French for example),< / li >
< li > < a href = "http://graphviz.org" > Graphviz< / a > graph generation integration.< / li >
< / ul >
< / div >
< div class = "corps" >
< h1 class = "first" id = "main-documentation-page" > Main Documentation Page< / h1 >
< h1 id = "use-it-now" > Use It NOW!< / h1 >
< p > Once installed (follow the README.md instructions).< / p >
< pre class = "twilight" >
$ cd /root/of/nanoc3_blog
$ ./task/new_blog_entry Title of the blog
$ vi latest.md
$ ./task/recompile
< / pre >
< p > Now your website reside into the < code > output< / code > directory.< / p >
< / div >
< div class = "corps" >
< h1 class = "first" id = "documentation" > Documentation< / h1 >
< h2 id = "useful-things-to-know" > Useful things to know< / h2 >
< h3 id = "multi-language" > Multi-language< / h3 >
< p > All files in < code > multi< / code > are processed and copied in the < code > content< / code > directory.
For each file in multi, each line starting by ‘ < code > fr: < / code > ’ are copied (without the < code > fr: < / code > into the < code > content/html/fr/< / code > tree, but not into the < code > content/html/en< / code > tree. File not starting by < code > fr: < / code > or < code > en: < / code > are copied in each destinations.< / p >
< p > If you want to add another language, you’ ll have to modify < code > tasks/config< / code > , and < code > config.yaml< / code > , create a < code > content/html/xx< / code > where < code > xx< / code > is the language code.< / p >
< h3 id = "edition--rendering" > Edition & Rendering< / h3 >
< h4 id = "additional-keywords" > additional keywords< / h4 >
< p > You can separate multi content div using the: < code > n< / code > < code > ewcorps< / code > directive (see examples).< / p >
< p > You can create div using < code > b< / code > < code > egindiv(classname)< / code > , < code > e< / code > < code > nddiv< / code > . (See some existing blog entries for example). Use the class < code > intro< / code > for the abstract part.< / p >
< p > You can create nice description table using < code > < < / code > < code > desc> < / code > (See source code for example).< / p >
< h4 id = "typography" > Typography< / h4 >
< p > In French all ‘ :’ , ‘ ;’ , ‘ !’ and ‘ ?’ are preceded automatically by < code > & nbsp< / code > . This enable not to have a line starting by a single special character.< / p >
< p > You can use small caps using < code > < sc> < / code > tags. < / p >
< ul >
< li > < code > (c< / code > < code > )< / code > is replaced by < small > © < / small > .< / li >
< li > < code > (r< / code > < code > )< / code > is replaced by < small > ® < / small > .< / li >
< li > < code > < < / code > < code > -< / code > is replaced by ← .< / li >
< li > < code > -< / code > < code > > < / code > is replaced by → .< / li >
< / ul >
< h4 id = "source-code" > source code< / h4 >
< p > To write source code you should use the following format:< / p >
< pre class = "twilight" >
< span class = "MetaTagInline" > < span class = "MetaTagInline" > < < / span > < span class = "MetaTagInline" > code< / span > < span class = "MetaTagInline" > class< / span > =< span class = "String" > < span class = "String" > " < / span > ruby< span class = "String" > " < / span > < / span > < span class = "MetaTagInline" > file< / span > =< span class = "String" > < span class = "String" > " < / span > filename.rb< span class = "String" > " < / span > < / span > < span class = "MetaTagInline" > > < / span > < / span >
The code
< span class = "MetaTagInline" > < span class = "MetaTagInline" > < /< / span > < span class = "MetaTagInline" > cOde< / span > < span class = "MetaTagInline" > > < / span > < / span >
< / pre >
< p > The < code > file< / code > attribute is not required.< / p >
< h3 id = "blog" > blog< / h3 >
< p > If you want to make really long blog post, you can separate them into many files. To accomplish that, you simply have to make your files like:< / p >
< pre class = "twilight" >
multi/blog/2010-06-01-the-title.md
multi/blog/2010-06-01-the-title/second_part.md
multi/blog/2010-06-01-the-title/third_part.md
< / pre >
< h3 id = "mobileme" > mobileme< / h3 >
< p > All files are intended to be generated into the < code > output/Scratch< / code > directory.
This was made like that to work nicely with iWeb organisation of websites.< / p >
< h3 id = "menu" > menu< / h3 >
< p > The order of post is done using the < code > menupriority< / code > meta-data in the header of the files.< / p >
< p > You can hide some file from the menu by setting: < code > isHidden: true< / code > in the header.< / p >
< h2 id = "details" > Details< / h2 >
< p > To know more about this blog engine, you should look at
< a href = "http://nanoc.stoneship.org" > nanoc< / a > project.< / p >
< p > Then look at the files inside your project:< / p >
< div > < table class = "description" summary = "no description" > < tr class = "assombris20" > < td class = "definitionCell" >
README.md < / td > < td class = "valueCell" > readme for the project (used by github) < / td > < / tr > < tr class = "assombris10" > < td class = "definitionCell" >
latest.md < / td > < td class = "valueCell" > symbolic link to the last blog entry < / td > < / tr > < tr class = "assombris20" > < td class = "definitionCell" >
multi/ < / td > < td class = "valueCell" > Directory containing multi-language articles < / td > < / tr > < tr class = "assombris10" > < td class = "definitionCell" >
tasks/ < / td > < td class = "valueCell" > scripts for website live < / td > < / tr > < tr class = "assombris20" > < td class = "definitionCell" >
config.yaml < / td > < td class = "valueCell" > global configuration file < / td > < / tr > < tr class = "assombris10" > < td class = "definitionCell" >
Rules < / td > < td class = "valueCell" > generation rules < / td > < / tr > < tr class = "assombris20" > < td class = "definitionCell" >
content/ < / td > < td class = "valueCell" > content files processed by nanoc < / td > < / tr > < tr class = "assombris10" > < td class = "definitionCell" >
layouts/ < / td > < td class = "valueCell" > erb templates < / td > < / tr > < tr class = "assombris20" > < td class = "definitionCell" >
lib/ < / td > < td class = "valueCell" > ruby libraries used to process files < / td > < / tr > < tr class = "assombris10" > < td class = "definitionCell" >
output/ < / td > < td class = "valueCell" > website < / td > < / tr > < tr class = "assombris20" > < td class = "definitionCell" >
Rakefile < / td > < td class = "valueCell" > not mandatory for this blog < / td > < / tr >
< / table > < / div >
< / div >
< div id = "choixrss" >
< a id = "rss" href = "http://feeds.feedburner.com/yannespositocomen" >
Subscribe
< / a >
< / div >
< script type = "text/javascript" >
$(document).ready(function(){
$('#comment').hide();
$('#clickcomment').click(showComments);
});
function showComments() {
$('#comment').show();
$('#clickcomment').fadeOut();
}
document.write('< div id = "clickcomment" > Comments< / div > ');
< / script >
< div class = "flush" > < / div >
< div class = "corps" id = "comment" >
< h2 class = "first" > comments< / h2 >
< noscript >
Vous devez activer javascript pour commenter.
< / noscript >
< script type = "text/javascript" >
var idcomments_acct = 'a307f0044511ff1b5cfca573fc0a52e7';
var idcomments_post_id = '/Scratch/en/blog/2010-06-15-Get-my-blog-engine/';
var idcomments_post_url = 'http://yannesposito.com/Scratch/en/blog/2010-06-15-Get-my-blog-engine/';
< / script >
< span id = "IDCommentsPostTitle" style = "display:none" > < / span >
< script type = 'text/javascript' src = '/Scratch/js/genericCommentWrapperV2.js' > < / script >
< / div >
< div id = "entete" class = "corps_spaced" >
< div id = "liens" >
< ul > < li > < a href = "/Scratch/en/" > Homepage< / a > < / li >
< li > < a href = "/Scratch/en/blog/" > Blog< / a > < / li >
2010-09-30 13:01:14 +00:00
< li > < a href = "/Scratch/en/softwares/" > Softwares< / a > < / li >
2010-09-28 01:00:51 +00:00
< li > < a href = "/Scratch/en/about/" > About< / a > < / li > < / ul >
2010-08-23 12:26:48 +00:00
< / div >
< div class = "flush" > < / div >
< hr / >
< div id = "next_before_articles" >
< div id = "previous_articles" >
previous entries
< div class = "previous_article" >
2010-09-28 15:10:12 +00:00
< a href = "/Scratch/en/blog/2010-06-14-multi-language-choices/" > < span class = "nicer" > «< / span > multi language choices< / a >
2010-08-23 12:26:48 +00:00
< / div >
< div class = "previous_article" >
2010-09-28 15:10:12 +00:00
< a href = "/Scratch/en/blog/2010-05-24-Trees--Pragmatism-and-Formalism/" > < span class = "nicer" > «< / span > Trees; Pragmatism and Formalism< / a >
2010-08-23 12:26:48 +00:00
< / div >
< div class = "previous_article" >
2010-09-28 15:10:12 +00:00
< a href = "/Scratch/en/blog/2010-05-19-How-to-cut-HTML-and-repair-it/" > < span class = "nicer" > «< / span > How to repair a cutted XML?< / a >
2010-08-23 12:26:48 +00:00
< / div >
< / div >
< div id = "next_articles" >
next entries
< div class = "next_article" >
2010-09-28 15:10:12 +00:00
< a href = "/Scratch/en/blog/2010-06-17-track-events-with-google-analytics/" > Track Events with Google Analytics < span class = "nicer" > »< / span > < / a >
2010-08-23 12:26:48 +00:00
< / div >
< div class = "next_article" >
2010-09-28 15:10:12 +00:00
< a href = "/Scratch/en/blog/2010-06-17-hide-yourself-to-analytics/" > Hide Yourself to your Analytics < span class = "nicer" > »< / span > < / a >
2010-08-23 12:26:48 +00:00
< / div >
< div class = "next_article" >
2010-09-28 15:10:12 +00:00
< a href = "/Scratch/en/blog/2010-06-19-jQuery-popup-the-easy-way/" > jQuery popup the easy way < span class = "nicer" > »< / span > < / a >
2010-08-23 12:26:48 +00:00
< / div >
< / div >
< div class = "flush" > < / div >
< / div >
< / div >
< div id = "bottom" >
< div >
< a rel = "license" href = "http://creativecommons.org/licenses/by-sa/3.0/" > Copyright ©, Yann Esposito< / a >
< / div >
< div id = "lastmod" >
2010-08-31 13:06:43 +00:00
Created: 06/15/2010
2010-09-02 09:51:46 +00:00
Modified: 06/24/2010
2010-08-23 12:26:48 +00:00
< / div >
< div >
Entirely done with
< a href = "http://www.vim.org" > Vim< / a >
and
< a href = "http://nanoc.stoneship.org" > nanoc< / a >
< / div >
< div >
< a href = "/Scratch/en/validation/" > Validation< / a >
< a href = "http://validator.w3.org/check?uri=referer" > [xhtml] < / a >
.
< a href = "http://jigsaw.w3.org/css-validator/check/referer?profile=css3" > [css] < / a >
.
< a href = "http://validator.w3.org/feed/check.cgi?url=http%3A//yannesposito.com/Scratch/en/blog/feed/feed.xml" > [rss]< / a >
< / div >
< / div >
< div class = "clear" > < / div >
< / div >
< / body >
< / html >