-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdev.html
More file actions
212 lines (170 loc) · 8.33 KB
/
dev.html
File metadata and controls
212 lines (170 loc) · 8.33 KB
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="utf-8">
<title>Laidout Development</title>
<meta name="description" content="Laidout, desktop publishing software.">
<meta name="keywords" content="Cartoons, Prints, Drawings, Polyhedra, Polyhedron, Calendar,
Desktop, Publishing, Page, Layout, Multipage, Booklet, Books, Imposition, Linux, Software,
Tensor, Product, Patch, Laidout, Folded, Pamphlet, Help,
Dodecahedron">
<link rel="icon" href="laidout-icon-16x16.png" type="image/png">
<link rel="stylesheet" href="css/style.css" type="text/css">
</head>
<body>
<div class="whole">
<div id="side">
<ul class='sidenav'>
<!-- li><a class="feeds" href="rss.xml"><img src="images/rss.png" alt="RSS feed"/></a></li -->
<li><a href="dev.html">Dev</a></li>
<li><a href="index.html#download">Download</a></li>
<li><a href="links.html">Links</a></li>
<li><a href="faq.html">FAQ</a></li>
<li><a href="screenshots/">Screenshots</a></li>
<li><a href="index.html">Home</a></li>
</ul>
</div><!-- side -->
<div id="main">
<h1>Laidout Development</h1>
<p>
Here is some general information about the development of Laidout. As with any project, testers and coders are
certainly encouraged to test and code!
</p>
<p>Some general links which might be relevant:</p>
<p>
<a href="https://github.com/Laidout/laidout">Laidout on Github</a><br />
<a href="roadmap.html">The Roadmap</a><br>
<a href="https://github.com/Laidout/laidout/blob/master/src/LEFT---OFF">Roadmap from the trenches</a><br>
</p>
<br><div class="section">Bugs and Feature Requests</div>
<p>If there is something that you think is a bug, irritation, or missing feature, you can
<a href="https://github.com/Laidout/laidout/issues">post an issue on Laidout's github</a>,
or search the <a href="faq.html">help page</a> for mention of it.
</p>
<br>
<div class="section">Development Source Code</div>
<p>Laidout has so far been coded by one person, <a href="http://www.tomlechner.com">Tom Lechner</a>, along with a
few patches and a translation submitted by various people. It would be pleasant if more people were involved!
</p>
<p>Laidout is built on the <a href="https://github.com/Laidout/laxkit">Laxkit</a>, whose sole purpose for
existence at the moment is to be the windowing backbone of Laidout.
Anything said about Laidout applies just as much to the Laxkit.</p>
<p>There is copius <a href="http://www.doxygen.org">doxygen</a> style source code documentation for you to whet your appetite, which is easily accessible by
running "make docs", which basically just tells doxygen to do its thing. Running "make alldocs" will build all the
documentation for Laidout and for the Laxkit, as long as you have a link in the top Laidout directory pointing to
wherever you have the Laxkit source files. For release tarballs, the Laxkit is there already.</p>
<p>You can download the cutting edge, latest and (ideally) greatest version of Laidout
from the git repository with this command:</p>
<div class="code">
git clone https://github.com/Laidout/laidout.git<br>
</div>
<br /><br />
<div class="section">Compiling the Development Source Code</div>
<br />
Compiling directly from the dev source has a couple more steps then compiling a normal release.
It is assumed that those compiling from dev source like pain.
In a nut shell, you must install dependencies, download Laidout source, download Laxkit source, configure, compile,
then make the icons.
<br /><br />
<ul>
<li> <b>Install dependencies</b><br />
On debian systems, you can use the following command to install everything for all current extensions:
<br /><br />
<div class="code">
apt-get install g++ pkg-config libpng12-dev libreadline-dev libx11-dev libxext-dev libxi-dev libxft-dev libcups2-dev libimlib2-dev libfontconfig-dev libfreetype6-dev libssl-dev xutils-dev libcairo2-dev libharfbuzz-dev libsqlite3-dev libgraphicsmagick++1-dev mesa-common-dev libglu1-mesa-dev libftgl-dev zlib1g-dev<br>
</div>
<br />
On Fedora, you can install these with:
<br /><br />
<div class="code">
sudo dnf install -y cairo-devel cups-devel fontconfig-devel ftgl-devel glibc-headers harfbuzz-devel imlib2-devel lcms-devel libpng-devel libX11-devel libXext-devel libXft-devel libXi-devel mesa-libGL-devel mesa-libGLU-devel openssl-devel readline-devel sqlite-devel xorg-x11-proto-devel zlib-devel GraphicsMagick-c++-devel libstdc++-devel freetype-devel imake
</div>
<br/>
</li>
<li><b>Compile everything</b><br />
Hopefully, this will run without errors:
<br /><br />
<div class="code">
git clone https://github.com/Laidout/laidout.git<br />
cd laidout<br />
git clone http://github.com/Laidout/laxkit.git laxkit<br />
cd laxkit<br />
./configure<br />
make depends<br />
cd ..<br />
./configure --laxkit=`pwd`/laxkit/lax<br />
make<br />
</div>
<br />
At this point, Laidout is ready to run. You don't actually have to install it anywhere to make it run,
you can just run <span class="code">src/laidout</span>, though icons may not show up automatically without installing (see next section).
<br /><br />
You may notice tons of garbage outputting to the console when you run this development source. This is info that is sometimes helpful for debugging.
You can hide all this by running "make hidegarbage" before running "make", or by running with <span class="code">./laidout 2> /dev/null</span>.
<br /><br />
</li>
<li><b>Icons</b><br />
You can modify <span class="code">~/.config/laidout/(version)/laidoutrc</span> to point to an icon directory that contains
the icons (i.e. /path/to/laidout/src/icons).
<br><br>
If you need to generate the icons, they are currently created from source svg files in <span class="code">laidout/src/icons</span>
and <span class="code">laidout/laxkit/src/icons</span>.
Each source svg is scanned and broken down into individual icon pngs. You need to have compiled Laidout already, then:
<br /><br />
<div class="code">
cd (laidout)/src/icons<br />
make all-with-lax<br />
</div>
</li>
</ul>
<br>
<a name="Translations"></a>
<div class="section">Translations</div>
<p>
Any translations done for either messages in
Laidout itself, or of the Laidout web pages are greatly appreciated.
</p>
<p>
Translating Laidout to new languages is mainly a matter of translators translating a
couple thousand little words and phrases
from a file called <a href="https://raw.githubusercontent.com/Laidout/laidout/master/src/po/laidout.pot">laidout.pot</a>.
Normally, you take that file, rename it to es.po (a spanish translation, for example), and then update all the strings in it.
You can do this by hand, or you might use a program like
<a href="https://userbase.kde.org/Lokalize">Lokalize</a> or <a href="http://www.poedit.net/">poedit</a>.
<br /><br />
Once translated, the whatever.po needs to end up in the src/po directory of the Laidout source code.
There is a README file in that directory with a lot more of the nitty gritty details for dealing with translation files, such
as how to merge a new translation with an old one.
</p>
<p>
<b>Current Translations</b> (french and spanish translations getting very out of date)<br>
<ul>
<li>American (that is to say U.S.) English</li>
<li>Spanish. from my slight knowledge of Spanish, and google translations</li>
<li>French. by Nabyl Bennouri</li>
</ul>
</p>
<br>
<div class="section">The Laidout File Format</div>
<p>Documentation for the Laidout file format is found easily through running:</p>
<div class="code">
laidout --file-format
</div>
<p>
This will dump out a pseudo-Laidout file with copious comments about each of the possible
Laidout file elements. The format itself is an indented data file format, sort of in the same spirit of
<a href="http://www.yaml.org">yaml</a>, but is slightly more ad-hoc, making it even easier to read and figure out,
in this developer's opinion. Laidout's indented format is simply a collection of nested name-value pairs, where both are scanned
in as strings, at which point it is up to the application to decipher the strings into integers, points, and whatnot.
</p>
<p>Please <a href="fileformat.txt">click here</a> for the current file format description.
If you do not find it explanatory enough, or it is flat out wrong,
<a href="https://github.com/Laidout/laidout/issues">please let me know.</a>.
</p>
<br><br>
</div><!-- main -->
</div><!-- whole -->
</body>
</html>