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