summaryrefslogtreecommitdiff
path: root/README
blob: e582d5f524de328b21a2fb535a6e0aa3d6223312 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
fugitive: README

<h2 id="info">Info</h2>

<p>
  fugitive is a blog engine running on top of git using hooks to generate
  static html pages and thus having only git as dependency.
</p>
<p>
  In its hooks, fugitive uses only standard UNIX® tools that are included in
  the GNU core-utils package, plus sh as script interpreter. That's it.<br />
  Moreover, everything that can be done using git, is.<br />
  No dependencies like rack, heroku, or whatever Ruby gems you can think of. No
  configuration files. No metadata in your articles files. Hell, if you want to
  you could even make a <a href="#templating">template</a> that use git log as
  storage backend, which means <em>no files</em> either, just and only git.
</p>

<h2 id="install">Install</h2>

<h3 id="build">Build</h3>
<p>
  If you want to build fugitive from the source, clone the git repository:
  <br />
  <code>git clone git://gitorious.org/fugitive/fugitive.git fugitive</code>
  <br />
  Then go in the newly created directory: <code>cd fugitive</code>, and
  run the build script: <code>./build.sh</code>.
  <br />
  This will generate an executable file &quot;fugitive&quot; which you can use
  to create your blog.
</p>
<h3 id="create">Create a blog</h3>
<p>
  There's two install mode for fugitive: local and remote. The local mode
  should be used to install a repository where you edit your blog, and the
  remote mode for a repository to which you're going to push to publish your
  blog.<br />
  The local mode can also be used to publish if you edit your file directly on
  your server.
</p>
<p>
  To create you blog run the commande:<br />
  <code>fugitive --install-<em>mode</em> &lt;dir&gt;</code>,
  where <em>mode</em> is either &quot;local&quot; or &quot;remote&quot;
  <br />
  This will create the git repos with appropriate hooks, config and files in
  &lt;dir&gt;.
  <br />
  If &lt;dir&gt; isn't specified then the current working directory is used.
</p>
<p class="important">
  Once you have installed your blog you need to set the <em>blog-url</em>
  parameter in your git configuration. See <a href="#config">configuration</a>
  for details.
</p>

<h2 id="config">Configuration</h2>

<p>
  All this settings are in the &quot;fugitive&quot; section of the git config.
  You can change them with the command <br />
  <code>git config fugitive.<em>parameter</em> <em>value</em></code>,
  where <em>parameter</em> is one of the following:
</p>
<dl>
  <dt>blog-url</dt>
  <dd>
    This is the public url of the generated blog. <strong>You need to set
    it</strong> as soon as possible since it's required for the RSS feed (and
    used in the default template's footer).
  </dd>
  <dt>public-dir*</dt>
  <dd>
    This is the path to the directory that will contain the generated html
    files. Default value is &quot;_public&quot;. You could set it to
    &quot;_public/blog&quot; for instance if you want to have have a website in
    &quot;_public&quot; and your blog in &quot;/blog&quot;.
  </dd>
  <dt>articles-dir*</dt>
  <dd>
    This is the path where fugitive will look for published articles. Default
    value is &quot;_articles&quot;.
  </dd>
  <dt>templates-dire*</dt>
  <dd>
    This is the path where fugitive will look for templates files. Default
    value is &quot;_templates&quot;.
  </dd>
  <dt>preproc</dt>
  <dd>
    If you want your article to be preprocessed by an external tool (markdown,
    textile...) you need to set <em>preproc</em> to a command line that will
    read on stdin and write to stdout.
  </dd>
</dl>
<p class="note">
  * Those paths are relative to the root of the git repository, must be in it
  and must not start with &quot;.&quot; neither have a '/' at the end. Example:
  &quot;dir/subdir&quot; is valid but &quot;./dir/subdir&quot; and
  &quot;dir/subdir/&quot; are not.
</p>

<h2 id="usage">Usage</h2>

<h3 id="general-use">General use</h3>
<p>
  Article you want to publish should be file without the .html extension in the
  <em>articles-dir</em> directory (see <a href="#config">configuration</a>).
  The first line of the file will be used as title and the rest of the file as
  the content of the article.
</p>
<p>
  By default there's a &quot;_drafts&quot; directory in which you can put
  articles you are writing and you want to version control in your git
  repository but you don't want to publish yet.
</p>
<p>
  When you commit, <em>*TODO*: explain the process</em>.
</p>
<p>
  When you push to a remote repository installed with fugitive, the same thing
  will happen but instead of looking only at the last commit, the hooks will
  analyse every change since the last push and then (re)generate html files
  accordingly.
</p>
<p class="warning">
  Do not create an article file named &quot;archives&quot;.<br />
  Do not create an article file named &quot;index&quot;.
</p>
<h3 id="templating">Template system</h3>
<p><em>*TODO*</em></p>