tinycm view README @ rev 72

Add a link to blog archives for logged users
author Christophe Lincoln <pankso@slitaz.org>
date Mon Apr 28 00:49:29 2014 +0200 (2014-04-28)
parents aff0e20fbd3e
children
line source
1 TinyCM - A micro CGI/SHell Content Manager!
2 ================================================================================
5 * CGI/Shell powered, small Wiki syntax and HTML JS editor helper
6 * Tiny, fast, elegant and easy to install and customize
7 * No database, flat file storage with diff and log
8 * Plugins support for any kind of functions such as a blog
9 * Help file with formatting rules, macro and HTML example code
10 * Gettext support and languages support for documents
11 * Mercurial integration with web and cmdline commits
12 * Shared and secure authentication system
13 * Easily themable and fine desktop integration
16 Installation
17 ------------
18 You must first get TinyCM source code via a tarball on SliTaz mirrors or Hg
19 repository. You can extract or clone the CM under a web server directory,
20 for security reasons the config file has a .cgi extension and users data are
21 stored outside the web server in the directory /var/lib/slitaz. The user
22 files paths can be changed via the configuration file.
24 When you have your copy of TinyCM you can then install a web interface under a
25 CGI/SHell enabled web server such as Busybox HTTPd, LightTPD or Apache. Gettext
26 must be installed for localisation support. So, let's download the Content Manager:
28 $ wget http://hg.slitaz.org/tinycm/archive/tip.tar.gz
29 $ tar xzf tinycm-*.tar.gz
31 Or clone the Mercurial repo:
33 $ hg clone http://hg.slitaz.org/tinycm
36 Change directory to the CM, check and edit the configuration file config.cgi,
37 and use make to install:
39 $ cd tinycm*
40 $ editor config.cgi
41 $ make install
43 If you want to install the web interface and auth DB in another directory
44 other than /var/www and /var/lib/slitaz you can use the following command:
46 $ make install WEB=/path/to/domain/vhost AUTH=/path/to/domain
48 If you already have a users DB and want to share auth system you can install
49 TinyCM with:
51 $ make install-web WEB=/path/to/domain/vhost
53 Plugins
54 -------
55 All plugins are located in plugins/* and consist of a SHell script, a config
56 file and an optional help.txt file. To start a new plugin simply copy and
57 rename the skel directory and files. Then edit the configuration file and
58 start coding.
61 Standalone Server
62 -----------------
63 On SliTaz you can install a copy of TinyCM anywhere under your $HOME directory
64 and start the stand alone web server powered by Busybox HTTPd applet. This also
65 helps to debug TazCM since error messages are displayed in the terminal. To
66 start the server, cd to TinyCM dir and execute:
68 $ ./tools/serv.sh
71 Mercurial integration
72 ---------------------
73 TinyCM can be integrated smoothly with Mercurial, each new document and edit
74 will be committed. You must first edit your config.cgi configuration to
75 enable Hg with HG="yes" then login to your TinyCM, follow the link to init the
76 repo or do it manually: cd content && hg init && hg add && hg commit -m "Message"
78 Then all content will be under Hg and people can commit as usual. To make sure
79 we use the latest files on the web interface we use a Hook to update the repo on
80 each commit. To have the mercurial web interface for the repo you can setup
81 a vhost, TinyCM provides a small web interface to display a Hg log but it can
82 be extended via a plugin. Hook for $content/.hg/hgrc:
84 [hooks]
85 incoming = hg update
88 Translation
89 -----------
90 To start a new translation please use msginit from the pot file directory.
91 Example for French/France locale (fr_FR):
93 $ msginit -l fr_FR -o fr.po -i tinycm.pot
95 To update all pot files when some new strings have been added (mainly for
96 developers before commit):
98 $ make pot
100 To update all translations from the pot file:
102 $ make msgmerge
104 To compile po files for testing purposes you can use 'make msgfmt' or manually
105 compile your translation. Example for french locale, note that the file must
106 be copied into /usr/share/locale/fr/LC_MESSAGES so gettext can find it:
108 $ msgfmt -o tinycm.mo fr.po
111 ================================================================================