Présentation
Nanoblogger est un joueb / blog dit de “geek”. En effet ce joueb est entièrement visible sous forme de pages html statiques, mais la manière d’ajouter des billets ou de générer lesdites pages est pour le moins … spécial !
Ainsi l’auteur de Nanoblogger, Kevin Hood, a conçu son programme de manière à n’utiliser que certaines commandes BASH (Bourne Again Shell), mais son utilisation se fait également par commandes BASH !
Ainsi la maintenance du site est possible à partir du moment où nous avons accès à la machine par une console, SSH ou pas.
Pour exemple de résultat, je vous invite à naviguer sur mon ancien blog .
Installation
Je ne détaillerais pas énormément l’installation, seuls quelques points seront abordés. Il faut savoir que l’installation a été effectuée sur Ubuntu Server 6.06 LTS.
L’installation commence par une simple commande sous Ubuntu :
apt-get install nanoblogger
Après quoi une nouvelle commande BASH est disponible :
nb
Grâce à cette commande, créez un nouveau dossier pour contenir votre joueb / blog, à l’aide de la ligne suivante :
nb -b /home/olivier/joueb -a
Remplacez evidemment /home/olivier/joueb par le répertoire que vous désirez utiliser, forcément un répertoire où vous possédez tout les droits.
Ensuite vous devez configurer votre nouveau joueb (nanoblogger vous pose la question à laquelle vous répondez Y / Yes / Oui).
Voici mon fichier de configuration, sachant que je suis sur Ubuntu Server, que j’ai installé les paquets fortune, et que je copie mes fichiers vers un serveur ftpperso.free.fr (dont nous donnerons les détails ci après) :
# NanoBlogger Weblog Config File - blog.conf
##### Publishing Preferences #####
# set default editor for your weblog (default is $EDITOR).
EDITOR="vim"
# set default browser for previewing your weblog (defaults to "lynx")
BROWSER="elinks"
# set default language for your weblog (defaults to "en")
NB_LANG="fr"
# maximum number of entries to display on the main index page.
MAX_ENTRIES="4"
# date format used for a new entry (used by the "date" command).
# e.g. DATE_FORMAT="%Y-%m-%d %H:%M:%S"
DATE_FORMAT="%d/%m/%Y %H:%M:%S"
# Date's locale (language) to display in (e.g. DATE_LOCALE="$LANG")
# set as blank to have it automatically detected at runtime.
DATE_LOCALE="fr_FR.UTF8"
# date command arguments (see date's man page).
DATE_ARGS=""
# set the full URL to your weblog (required for absolute links and
# syndication feeds).
# e.g. BLOG_URL="http://weblog.user/~foo" ("/" gets appended automatically)
BLOG_URL="http://blanko.free.fr/joueb"
# stylesheet used for your weblog (should always be relative link).
BLOG_CSS="styles/nb_steelblue.css"
# shortcut icon for your weblog (should always be relative link).
BLOG_ICON="images/favicon.ico"
# action to perform on links to entries (e.g. run a server-side script)
# must be activated in templates.
BLOG_URL_ACTION=""
# e.g. (with BLOG_URL set) BLOG_URL_ACTION######"$BLOG_URL/cgi-bin/cgicomment.pl?article"
# e.g. (using BASE_URL in templates) BLOG_URL_ACTION######"cgi-bin/cgicomment.pl?article"
# set the Language (character encoding) used for your weblog.
BLOG_CHARSET="utf-8"
# set the mime type used for your weblog
# e.g. BLOG_MIMETYPE="text/html"
BLOG_MIMETYPE="application/xhtml+xml"
# set the timezone for your RSS/Atom feed (should follow W3CDTF date format).
# set as blank to have it automatically detected if your system supports "date +%z".
# e.g. BLOG_TZD="-05:00"
BLOG_TZD="+01:00"
# title of your weblog.
BLOG_TITLE="Le BlankoJoueb"
# description of your weblog.
BLOG_DESCRIPTION="Le JOUrnal wEB de Blanko"
# default author of your weblog.
BLOG_AUTHOR="Blankoworld"
# contact information for your weblog.
BLOG_CONTACT='<a href="http://bl4n.fr">'$BLOG_AUTHOR'</a>'
# e.g. BLOG_CONTACT='<a href="mailto:foo@null.org">'$BLOG_AUTHOR'</a>'
# toggles display of directory index file in links (strongly suggested
# for local file browsing) - 0/1 = off/on
SHOW_INDEXFILE="1"
# show permanent links for each entry - 0/1 = off/on.
PERMALINKS="1"
# show category links for each entry - 0/1 = off/on.
CATEGORY_LINKS="1"
# command to run when previewing your weblog.
# used by the option and prompt for previewing (when set).
BLOG_PREVIEW_CMD="$BROWSER $BLOG_DIR/index.html"
# command to run when publishing your weblog to a remote site.
# used by the option and prompt for publishing (when set).
BLOG_PUBLISH_CMD=""
# enable Interactive mode (classic behavior) - 0/1 = off/on.
BLOG_INTERACTIVE="1"
##### Archive Preferences #####
# maximum number of entries to display for each category page.
MAX_PAGE_ENTRIES="25"
# build individual archives of each entry - 0/1 = off/on.
ENTRY_ARCHIVES="0"
# enable absolute links - 0/1 = off/on.
ABSOLUTE_LINKS="0"
# set data type to load for category archives - ALL or NOBODY.
# ALL = full entry metadata (slow and bigger cache)
# NOBODY = all except entry's BODY metadata (faster and smaller cache)
# edit the category_entry.htm template accordingly.
CATARCH_DATATYPE="NOBODY"
# chronological order - 0/1 = normal/reverse.
CHRON_ORDER="1"
##### Plugin Preferences #####
# plugins directory, defaults to $NB_BASE_DIR/plugins.
# set as blank to have it automatically fallback to defaults.
PLUGINS_DIR="/usr/share/nanoblogger/plugins"
# user plugins directory, defaults to $BLOG_DIR/plugins.
# set as blank to have it automatically fallback to defaults.
USR_PLUGINSDIR=""
# set the Language for your RSS feeds.
BLOG_FEED_LANG="fr_FR"
# default entry text formatting (name of the text formatting plugin(s)).
# e.g. plugins/entry/format/autobr.sh = autobr
ENTRY_FORMAT="autobr"
# default article text formatting (name of the text formatting plugin(s)).
# e.g. plugins/page/format/markdown.sh = markdown
ARTICLE_FORMAT="markdown"
# maximum links to yearly archives (-1 = all)
#MAX_YEARLINKS="12" # defaults to 12
# maximum links to monthly archives (-1 = all)
#MAX_MONTHLINKS="12" # defaults to 12
# calendar plugin - command arguments for cal. see cal's man pages.
CAL_ARGS=""
# tidy plugin - command arguments for tidy. see tidy's man pages or
# http://tidy.sourceforge.net/
TIDY_HTML_ARGS="-asxhtml -n -utf8"
TIDY_XML_ARGS="-xml -n -utf8 -wrap 0"
# fortune plugin - specify fortune data file to use
FORTUNE_FILE="/usr/share/games/fortunes/fr/"
# enable category feeds - 0/1 = off/on.
ATOM_CATFEEDS="0"
RSS_CATFEEDS="1"
RSS2_CATFEEDS="0"
##### Cache Preferences #####
# maximum number of entries to store in cache
MAX_CACHE_ENTRIES="$MAX_ENTRIES"
# set cache management to automatic (1) or manual (0)
BLOG_CACHEMNG="1"
##### Metadata File Formatting Preferences #####
# the following settings are here for transitional reasons only.
# if upgrading from 3.1 you can either use METADATA_CLOSETAG="-----"
# or modify the format of all the entries to match the more preferred
# (METADATA_CLOSETAG="END-----") way.
# WARNING: changing the following may require manually modifying the
# format of all existing entry data files!
METADATA_CLOSETAG="END-----"
Le programme va générer automatiquement tout les fichiers adéquats.
De là vous devez encore :
- Franciser votre joueb / blog
- Ajouter le code pour FORTUNE dans le template (si vous avez installé FORTUNE et savez ce que c’est)
- Modifier les liens (main_links) (pour ajouter des liens vers d’autres jouebs ou sites internets)
- Ajouter une introduction (si cela vous chante d’avoir un petit texte sympa dans votre joueb)
- Envoyer sur un FTP (si vous aimez travailler sur votre machine mais publier ailleurs)
- Ajouter des billets
Franciser le joueb / blog
Ceci s’adresse aux utilisateurs de Ubuntu Server, voire Ubuntu.
Je vous suggère de :
- Télécharger le fichier nb-lang.tar.gz sur le site officiel
- Copier les fichiers en tant que root dans le répertoire lang de Nanoblogger, généralement /usr/share/nanoblogger/lang/fr.
Bien qu’il soit possible de configurer Nanoblogger pour prendre en compte une nouvelle langue, mon NB (nanoblogger) n’a pas fonctionné pour le choix de la langue, j’ai du remplacer les fichiers EN par ceux FR. Donc je vous invite à faire de même.
Fortune
Le module Fortune s’ajoute très simplement :
- Éditez le fichier /home/olivier/joueb/templates/main_index.htm
- Repérez la balise
<div id="links">
- Ajoutez une balise
<div class="sidetitle">
et le contenu $NB_Fortune tel que vous obteniez :
<div id="links">
<div class="calendar">
$NB_Calendar
</div>
<div class="sidetitle">
message du jour
</div>
<div class="side">
$NB_Fortune
</div>
$NB_ArticleLinks
<div class="sidetitle">
$template_links
</div>
[...]
</div>
Liens
Pour ajouter des liens il vous suffit d’éditer le fichier /home/olivier/joueb/templates/main_links.htm, par exemple :
<a href="${BASE_URL}$NB_INDEX">$template_main</a><br />
<!-- add more links below this line -->
<br />
Amis:<br />
<a href="http://glenux.net">Chroniques d'un gnou Libre</a><br />
<a href="http://blog.bob6784.net/">Bob6784.NET</a><br />
<br />
Autre:<br />
<a href="http://blankoworld.googlepages.com/">Blanko sur le Web</a><br />
Ceci est mon fichier de liens, mais adaptez à votre situation 😆.
Introduction / ajout de textes
Comme nous l’avions expliqué lors de l’ajout du module Fortune, il faut modifier le fichier /home/olivier/joueb/templates/main_index.htm.
- Éditez ledit fichier
- Repérez la balise
<div id="content">
- Ajoutez le code suivant :
<div id="introduction">$(< "$BLOG_DIR/intro.txt")</div>
Ceci aura pour effet d’afficher le contenu du fichier intro.txt. Vous l’avez compris, nous n’avons pas de fichier pour le moment !
Créons le ! Une commande touch /home/olivier/joueb/intro.txt et le tour est joué !
Il ne vous reste plus qu’à éditer le fichier avec votre éditeur préféré, ne demandez pas, vous savez d’avance que j’utilise Vim !
Note de dernière minute : Si vous voulez ajouter un texte ou un bout de code qui devra s’afficher sur l’ensemble des pages du Joueb / blog, il faut aussi modifier le fichier templates/makepage.htm qui s’occupe de toucher de plus près la structure principale commune.
Ajouter des billets
Pour ajouter des billets je vous suggère de lire la documentation dans un terminal à l’aide de la commande man nb ou encore de lire le chapitre sur la Gestion des Entrées dans le manuel utilisateur franchophone.
Astuces
La plupart des astuces sont disponibles sur l'archive de l'ancien site nb.homelinux.com .
Publication FTP
L’astuce a migré sur le Wiki non-officiel de la communauté Francophone de Nanoblogger : Se rendre sur la page d'archive de NanobloggerFrancophone .
Référencement de Nanoblogger
(paragraphe non terminé)
- Modification du template et ajout de champs
- Modification revisit-after
- Création d’un sitemap.xml ??
Balises META ajoutées
- Dans main_index.htm,
<meta name="description" lang="fr" content="Le BlankoJoueb : Récits et nouvelles touchant de près ou de loin la vie d'un défenseur des libertés intellectuelles dans le monde informatique." />
<meta name="keywords" lang="fr" content="olivier,dossmann,blanko,blankoworld,joueb,lien,astuce,informatique,aide,linux,distribution,documentation,tutoriel,gnu,nouvelle,fantasme,fantasmablankoique,logiciel,web,libre,liberte" />
<meta name="identifier-url" content="http://olivier.dossmann.net/joueb/" />
<meta name="author" content="Olivier DOSSMANN" />
<meta name="owner" content="Olivier DOSSMANN" />
<meta name="reply-To" content="olivier@dossmann.net" />
<meta name="rating" content="General" />
<meta name="distribution" content="Global" />
<meta name="copyright" content="DOSSMANN.NET - (C) 2008" />
<meta name="language" content="fr" />
<meta name="title" content="Le BlankoJoueb, un Blanko en folie !" />
<meta http-equiv="Content-Style-Type" content="text/css" />
Sitemap
Sous Ubuntu il existe un logiciel très utile nommé sitemap (sous Debian vous trouverez google-sitemapgen spécifique pour Google).
Avec ce logiciel vous pouvez créer un fichier permettant d’indexer votre site Web, un peu comme un plan du site. Il suffit pour cela de créer un fichier de configuration, comme celui ci, dans /home/olivier/sitemapjouebrc :
[sitemap]
Hometitle=Espace d'Olivier DOSSMANN.NET
Homepage=http://olivier.dossmann.net/joueb/
Indextitle=Plan du site du BlankoJoueb (sitemap)
Encoding=UTF-8
Startdir=/home/olivier/joueb/
Prefix=http://olivier.dossmann.net/joueb/
Dirtitle=Archives
Fullname=Olivier DOSSMANN
Mailaddr=olivier@dossmann.net
Language=French
Indexfiles=index.html
Exclude=cache data image moods parts plugins style template
Après il suffit de lancer la commande suivante :
sitemap /home/olivier/sitemapjouebrc > /home/olivier/joueb/sitemap.html
Et vous avez un beau fichier sitemap.html sur votre Nanoblogger ! Ceci vous permettra d’informer Google des pages disponibles sur votre site Web.
NB : Après quelques échanges avec Buje , il s’avère que la ligne *PREFIX// soit à supprimer, ce qui permettrait d’éviter une répétition de l’adressage des liens.
Thèmes
nb_steelblue.css
Il semblerait que ce style ait été dans la version 3.3RCS de Nanoblogger, mais qu’elle ait été retirée pour cause de non compatibilité avec MSIE 7 (Internet Explorer 7). Apparemment ce devait être un dépassement ou que sais je encore.
Cependant, et utilisant cette feuille de style (un peu remaniée je vous l’accorde, mais de très peu), je n’ai rencontré qu’un souci : dépassement de texte pour les balises contenant du code PRE. Ainsi j’ai modifié le CSS, et ait simplement ajouté ceci :
.blogbody div.item-description pre {
overflow: auto;
}
Ceci ajoute des menus déroulants sous le code, de sorte à pouvoir proposer un contenu qui ne dépassera jamais.
J’ose espérer que vous pourrer en faire de même et utiliser cette merveilleuse feuille de style nb_steelblue !
Liens utiles
Je vous conseille d’utiliser les liens suivants :
- Site officiel
- Nanoblogger Francophone qui propose un manuel utilisateur francophone
- Nanoblogger de Philippe Latu qui possède une catégorie Nanoblogger Help très utile !