Status: | Merged |
---|---|
Approved by: | Paweł Forysiuk |
Approved revision: | 6179 |
Merged at revision: | 6201 |
Proposed branch: | lp:~kalikiana/midori/hacking |
Merge into: | lp:midori |
Diff against target: |
475 lines (+203/-251) 3 files modified
HACKING (+200/-169) INSTALL (+0/-82) tools/release (+3/-0) |
To merge this branch: | bzr merge lp:~kalikiana/midori/hacking |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Paweł Forysiuk | Approve | ||
Review via email:
|
Commit message
Replace INSTALL/ HACKING with exported Contribute wiki page
Description of the change
Replace INSTALL/ HACKING with exported Contribute wiki page
To post a comment you must log in.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Paweł Forysiuk (tuxator) wrote : | # |
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Cris Dywan (kalikiana) wrote : | # |
Both MIDORI_TOUCHSCREEN and MIDORI_
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Cris Dywan (kalikiana) wrote : | # |
I will add something about G_DEBUG=all to the wiki, we can polish that until release and the file will be updated as the script is run.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Paweł Forysiuk (tuxator) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'HACKING' | |||
2 | --- HACKING 2011-01-30 20:35:39 +0000 | |||
3 | +++ HACKING 2013-05-29 19:40:32 +0000 | |||
4 | @@ -1,169 +1,200 @@ | |||
174 | 1 | This file is licensed under the terms of the expat license, see the file EXPAT. | 1 | ====== Midori - Contribute ====== |
175 | 2 | 2 | ||
176 | 3 | + Hacking guide for Midori + | 3 | **This document is licensed under the LGPL 2.1.** |
177 | 4 | 4 | ||
178 | 5 | - How to contribute | 5 | ====== Check out the sources ====== |
179 | 6 | - Coding style | 6 | |
180 | 7 | - Source files in the project | 7 | bzr branch lp:midori |
181 | 8 | - Examplary source code | 8 | |
182 | 9 | 9 | The development **trunk** (master, tip) is the latest iteration of the next release. Browse it online and look for other branches at http://code.launchpad.net/midori or http://bazaar.launchpad.net/~midori/midori/trunk/tarball download a tarball of the latest revision. | |
183 | 10 | +++ How to contribute +++ | 10 | |
184 | 11 | 11 | //The code used to be hosted in git.xfce.org/apps/midori.// | |
185 | 12 | There are several ways to contribute to the project: | 12 | ====== Join IRC chat rooms ====== |
186 | 13 | 13 | ||
187 | 14 | For translating, have a look at the file TRANSLATE. | 14 | Join irc://irc.freenode.net/midori #midori on Freenode https://kiwiirc.com/client/irc.freenode.net/midori or use webchat to talk about Midori, discuss bugs and new ideas. |
188 | 15 | 15 | ====== Contribute other than touching code ====== | |
189 | 16 | For helping with testing and triaging bug reports, you should register with the bug tracker at https://bugs.launchpad.net/midori and join #midori on irc.freenode.net where a lot of problems are discussed. You can start right away by trying to reproduce bug reports and comment with your findings. | 16 | |
190 | 17 | 17 | * http://bugs.launchpad.net/midori Go through problem reports and check Unconfirmed bugs or those lacking information and mark any duplicates you spot | |
191 | 18 | If you are interested in contributing code, there are a few options. You can join #midori to discuss a particular problem you would like to look into, or a feature you would want to implement. Opening a bug report or feature request if there isn't already one is the next step. To attract some attention, if you attached a patch or have questions, ask in #midori. | 18 | * https://www.bountysource.com/#trackers/130181-midori Add a bounty for a feature or bug you'd like to support |
192 | 19 | 19 | ||
193 | 20 | +++ Coding style +++ | 20 | ====== Build the code ====== |
194 | 21 | 21 | ||
195 | 22 | Indentation is 4 spaces, no tabs, preferrably at 80 to 120 columns per line to | 22 | ./waf configure --prefix=/usr |
196 | 23 | avoid automated line-breaks. Trailing whitespace is not desirable. | 23 | ./waf build |
197 | 24 | 24 | sudo ./waf install | |
198 | 25 | Declarations go to the beginning of a block, not inline. Variables of one plain | 25 | |
199 | 26 | type may be grouped in one declaration, pointer types may not be grouped. The | 26 | Midori can be **run without being installed**. |
200 | 27 | asterisk goes next to the type. | 27 | |
201 | 28 | Variables should be ordered in the order they are used. | 28 | _build/default/midori/midori |
202 | 29 | 29 | ||
203 | 30 | Comments explain functionality, they should not state facts. The appropriate | 30 | You can use a **temporary folder for testing** without affecting normal settings |
204 | 31 | style is always C style /* */, not C++ style. | 31 | |
205 | 32 | 32 | _build/default/midori/midori -c /tmp/midoridev | |
206 | 33 | Variable and function names should be animal, animal_shelter or animalsc in | 33 | |
207 | 34 | case it would otherwise be very long. Loop counters may be single letters. | 34 | You'll want to **unit test** the code if you're testing a new version or contributed your own changes: |
208 | 35 | Type names should be Animal, AnimalShelter or AnimalSC. No prefixes from third | 35 | |
209 | 36 | party projects should be used, such as GTK or WebKit, while underlines may be | 36 | xvfb-run ./waf check |
210 | 37 | used but do not have a particular meaning. | 37 | |
211 | 38 | 38 | Automated daily builds in Launchpad (https://launchpad.net/~elementary-os/+archive/daily ppa:elementary-os/daily and https://launchpad.net/~midori/+archive/midori-dev ppa:midori/midori-dev) run these tests as well. | |
212 | 39 | There is a space between functions or keywords and round brackets, and curly | 39 | ====== Debugging issues ====== |
213 | 40 | brackets always go on separate lines, at the indentation level of the | 40 | |
214 | 41 | function, conditional or loop expression. Curly brackets are left out for single | 41 | Testing an installed release may reveal crashers or memory corruption which require investigating from a local build and obtaining a stacktrace (backtrace, crash log). |
215 | 42 | statement conditionals and loops unless they notably help readability. | 42 | |
216 | 43 | The type of a function goes on a separate line before the function. | 43 | _build/default/midori/midori -g [OPTIONAL ARGUMENTS] |
217 | 44 | Preprocessor instructions are indented with the code they relate to. | 44 | |
218 | 45 | 45 | For more specific debugging output, depending on the feature in question you may use | |
219 | 46 | Code history is precious, so one should avoid renaming a lot of functions at | 46 | |
220 | 47 | once or moving whole paragraphs only to add or remove a level of indentation. | 47 | env MIDORI_DEBUG=help _build/default/midori/midori |
221 | 48 | Moving blocks of code around is also undesriable because it makes patches less | 48 | |
222 | 49 | readable since the result looks like new code. | 49 | ====== Coding style and quality ====== |
223 | 50 | 50 | ||
224 | 51 | 51 | Midori code should in general have: | |
225 | 52 | +++ Source files in the project +++ | 52 | |
226 | 53 | 53 | * 4 space indentation, no tabs | |
227 | 54 | Core: | 54 | * Between 80 to 120 columns |
228 | 55 | Files prefixed with "midori-" in the folder "midori" make up the core. They | 55 | * Prefer /* */ style comments |
229 | 56 | are essential to running the browser and mostly tailored to the browser. | 56 | * Call variables //animal// and //animal_shelter// instead of <del>camelCase</del> |
230 | 57 | All header files prefixed with "midori-" are considered supported API and | 57 | * Keep a space between functions/ keywords and round parentheses |
231 | 58 | can be used to implement extensions. | 58 | |
232 | 59 | "sokoke" is a collection of very specialized helper functions which change | 59 | For Vala: |
233 | 60 | from time to time as needed. In the past some of the code was moved to | 60 | |
234 | 61 | "katze" when it was considered generally useful. | 61 | * Prefer //new Gtk.Widget ()// over //using Gtk; new Widget ()// |
235 | 62 | "socket" is a socket implementation with no dependency on other parts of | 62 | * Stick to standard Vala-style curly parentheses on the same line |
236 | 63 | the core, which is used if Midori is built without an external single | 63 | * Cuddled //} else {// and //} catch (Error error) {// |
237 | 64 | instance support library. | 64 | |
238 | 65 | Panels: | 65 | For C: |
239 | 66 | Files in the "panels" folder are classes that implement MidoriViewable and | 66 | |
240 | 67 | which are loaded into the MidoriPanel at startup. These panels are in | 67 | * Always keep { and } on their own line |
241 | 68 | principle optional. | 68 | |
242 | 69 | Katze: | 69 | //Extensions may historically diverge from the standard styling on a case-by-case basis// |
243 | 70 | Re-usable classes and utility functions that don't depend on the core and | 70 | |
244 | 71 | some of that code indeed found its way into other projects. | 71 | ====== Committing code ====== |
245 | 72 | Extensions: | 72 | |
246 | 73 | These are extensions, written in C, which are loaded optionally if the user | 73 | Tell Bazaar your name if you haven't yet |
247 | 74 | so chooses. Extensions can use API from "midori-" and "katze-" headers. Each | 74 | bzr whoami "Real Name <email@address>" |
248 | 75 | module consists of either a single .c file or a folder with .c files. | 75 | |
249 | 76 | Tests: | 76 | See what you did so far |
250 | 77 | Unit tests are run regularly to verify possible regressions or measure | 77 | bzr diff |
251 | 78 | performance of implementations. Except for select cases code changes should | 78 | |
252 | 79 | not cause failure of unit tests. | 79 | Get an overview of changed and new files |
253 | 80 | 80 | bzr status | |
254 | 81 | 81 | ||
255 | 82 | +++ Examplary source code +++ | 82 | Add new files, move/ rename or delete |
256 | 83 | 83 | bzr add FILENAME | |
257 | 84 | /* | 84 | bzr mv OLDFILE NEWFILE |
258 | 85 | Copyright | 85 | bzr rm FILENAME |
259 | 86 | LICENSE TEXT | 86 | |
260 | 87 | */ | 87 | Commit all current changes - Bazaar automatically picks up edited files. //If you're used to git, think of an implicit staging area.// |
261 | 88 | 88 | bzr commit -p | |
262 | 89 | #include "foo.h" | 89 | |
263 | 90 | 90 | If you've done several commits | |
264 | 91 | #include "bar.h" | 91 | bzr log | less |
265 | 92 | 92 | bzr log -p | less | |
266 | 93 | #include <glib.h> | 93 | |
267 | 94 | 94 | In the case you committed something wrong or want to ammend it: | |
268 | 95 | void | 95 | bzr uncommit |
269 | 96 | foobar (FooEnum bar, const gchar* foo) | 96 | |
270 | 97 | { | 97 | If you end up with unrelated debugging code or other patches in the current changes, it's sometimes handy to temporarily clean up. //This may be seen as bzr's version of git stash.// |
271 | 98 | gint n, i; | 98 | bzr shelve |
272 | 99 | 99 | bzr commit -p | |
273 | 100 | if (!foo) | 100 | bzr unshelve |
274 | 101 | return; | 101 | |
275 | 102 | 102 | Remember to keep your branch updated: | |
276 | 103 | #ifdef BAR_STRICT | 103 | bzr pull |
277 | 104 | if (bar == FOO_N) | 104 | |
278 | 105 | { | 105 | As a general rule of thumb, ''bzr help COMMAND'' gives you an explanation of any command and ''bzr help commands'' lists all available commands. |
279 | 106 | g_print ("illegal value for 'bar'.\n"); | 106 | |
280 | 107 | return; | 107 | //If you're a die-hard git user, http://zyga.github.io/git-lp/ checkout git-lp to use git commands with the Bazaar repository.// |
281 | 108 | } | 108 | |
282 | 109 | #endif | 109 | ====== Push proposed changes ====== |
283 | 110 | 110 | ||
284 | 111 | /* this is an example */ | 111 | If you haven't yet, https://launchpad.net/~/+editsshkeys check that Launchpad has your SSH key - you can create an SSH key with **Passwords and Keys** aka **Seahorse** or ''ssh-keygen -t rsa'' - and use ''bzr launchpad-login'' to make youself known to bzr locally. |
285 | 112 | switch (bar) | 112 | |
286 | 113 | { | 113 | If you checked out trunk, and added your patch(es), just **push it under your username** in Launchpad and you can **propose it for merging into trunk**. This will automatically request a **review from other developers** who can then comment on it and provide feedback. |
287 | 114 | case FOO_FOO: | 114 | |
288 | 115 | n = bar + 1; | 115 | bzr push --remember lp:~USERNAME/midori/fix-bug1120383 && bzr lp-propose-merge lp:midori |
289 | 116 | break; | 116 | |
290 | 117 | case FOO_BAR: | 117 | lp-propose-merge command may not be working on some distributions like Arch or Fedora. |
291 | 118 | n = bar + 10; | 118 | In case you get error like //bzr: ERROR: Unable to import library "launchpadlib": No module named launchpadlib// just use Launchpad's Web UI to propose a merge. |
292 | 119 | break; | 119 | |
293 | 120 | default: | 120 | |
294 | 121 | n = 1; | 121 | **What happens to all the branches?** |
295 | 122 | } | 122 | |
296 | 123 | 123 | Leave the branches alone, **approved branches are cleared automatically** by Launchpad. | |
297 | 124 | for (i = 0; i < n; i++) | 124 | |
298 | 125 | { | 125 | For larger feature branches, **use the team** in Launchpad to allow other developers to work on the code with you. |
299 | 126 | g_print ("%s\n", foo); | 126 | |
300 | 127 | } | 127 | bzr push --remember lp:~midori/midori/featuritis && bzr lp-propose-merge lp:midori |
301 | 128 | } | 128 | |
302 | 129 | 129 | What if I want to help out on an **existing merge request** that I can't push to? | |
303 | 130 | Header file example: | 130 | |
304 | 131 | 131 | ||
305 | 132 | /* | 132 | bzr branch ~OTHERPERSON/midori/fix-bug1120383 |
306 | 133 | Copyright | 133 | cd fix-bug1120383 |
307 | 134 | LICENSE TEXT | 134 | # make commits |
308 | 135 | */ | 135 | bzr push lp:USERNAME~/midori/fix-bug1120383 |
309 | 136 | 136 | bzr lp-propose-merge ~OTHERPERSON/midori/fix-bug1120383 | |
310 | 137 | #ifndef __FOO_H__ | 137 | |
311 | 138 | #define __FOO_H__ 1 | 138 | |
312 | 139 | 139 | Updating a branch that may be out of sync with trunk: | |
313 | 140 | #ifdef HAVE_BAR_H | 140 | |
314 | 141 | #define BAR_STRICT | 141 | |
315 | 142 | #endif | 142 | bzr pull |
316 | 143 | 143 | bzr: ERROR: These branches have diverged | |
317 | 144 | /* Types */ | 144 | bzr merge lp:midori |
318 | 145 | 145 | # Hand-edit conflicting changes | |
319 | 146 | typedef enum | 146 | bzr resolve FILENAME |
320 | 147 | { | 147 | # If any conflicts remain continue fixing |
321 | 148 | FOO_FOO, | 148 | bzr commit -m 'Merge lp:midori' |
322 | 149 | FOO_BAR, | 149 | |
323 | 150 | FOO_N | 150 | |
324 | 151 | } FooEnum; | 151 | Save a little bandwidth, **branch from an existing local copy** that you keep around: |
325 | 152 | 152 | ||
326 | 153 | typedef struct | 153 | |
327 | 154 | { | 154 | bzr branch lp:midori midori |
328 | 155 | FooEnum foo_bar; | 155 | bzr branch midori midori.fix-bug1120383 |
329 | 156 | } FooStruct; | 156 | cd midori.fix-bug1120383 |
330 | 157 | 157 | bzr pull lp:midori | |
331 | 158 | /* Declarations */ | 158 | |
332 | 159 | 159 | ====== Midori for Windows ====== | |
333 | 160 | void | 160 | ===== Dependencies ===== |
334 | 161 | foo_bar (FooEnum bar, | 161 | Midori for Windows is compiled on a Linux host and MinGW stack. For the current build Fedora 18 packages are used. Packages needed are listed below: |
335 | 162 | const gchar* foo); | 162 | |
336 | 163 | 163 | yum install gcc vala intltool | |
337 | 164 | const gchar* | 164 | |
338 | 165 | foo_foo (FooStruct foo_struct, | 165 | For a native build |
339 | 166 | guint number, | 166 | yum install libsoup-devel webkitgtk3-devel sqlite-devel |
340 | 167 | gboolean flag); | 167 | |
341 | 168 | 168 | For cross-compilation | |
342 | 169 | #endif /* !__FOO_H__ */ | 169 | yum install mingw{32,64}-webkitgtk3 mingw{32,64}-glib-networking mingw{32,64}-gdb |
343 | 170 | |||
344 | 171 | Packages needed when assembling the archive | ||
345 | 172 | yum install faenza-icon-theme p7zip mingw32-nsis | ||
346 | 173 | |||
347 | 174 | Installing those should get you the packages needed to successfully build and develop Midori for Win32. | ||
348 | 175 | |||
349 | 176 | ===== Building ===== | ||
350 | 177 | For 32-bit builds: | ||
351 | 178 | |||
352 | 179 | mingw32-env | ||
353 | 180 | ./configure --enable-gtk3 --prefix=/usr/i686-w64-mingw32/sys-root/mingw/ | ||
354 | 181 | make | ||
355 | 182 | sudo make install | ||
356 | 183 | |||
357 | 184 | For 64-bit builds: | ||
358 | 185 | |||
359 | 186 | mingw64-env | ||
360 | 187 | ./configure --enable-gtk3 --prefix=/usr/x86_64-w64-mingw32/sys-root/mingw/ | ||
361 | 188 | make | ||
362 | 189 | sudo make install | ||
363 | 190 | |||
364 | 191 | Once built and tested you can assemble the Midori archive with a helper script | ||
365 | 192 | 32-bit build: | ||
366 | 193 | env MINGW_PREFIX="/usr/i686-w64-mingw32/sys-root/mingw" ./win32/makedist/makedist.midori | ||
367 | 194 | 64-bit build: | ||
368 | 195 | env MINGW_PREFIX="/usr/x86_64-w64-mingw32/sys-root/mingw/" ./win32/makedist/makedist.midori x64 | ||
369 | 196 | |||
370 | 197 | ===== Testing ===== | ||
371 | 198 | For testing your changes unfortuantely a real system is needed because Midori and WebKitGTK+ don't work properly under Wine. Even if it works some problems are not visible when using Wine, but are present when running under a real Windows system and vice versa. | ||
372 | 199 | |||
373 | 200 | One way around it is to virtualize Windows on a Linux host and mount your MinGW directories as a network drive or shared folder. | ||
374 | 170 | \ No newline at end of file | 201 | \ No newline at end of file |
375 | 171 | 202 | ||
376 | === removed file 'INSTALL' | |||
377 | --- INSTALL 2012-11-26 18:05:35 +0000 | |||
378 | +++ INSTALL 1970-01-01 00:00:00 +0000 | |||
379 | @@ -1,82 +0,0 @@ | |||
380 | 1 | This file is licensed under the terms of the expat license, see the file EXPAT. | ||
381 | 2 | |||
382 | 3 | +++ Installing Midori +++ | ||
383 | 4 | |||
384 | 5 | Building and installing Midori is straightforward. | ||
385 | 6 | |||
386 | 7 | Make sure you have Python 2.4 or higher installed. | ||
387 | 8 | |||
388 | 9 | Change to the Midori folder on your hard disk in a terminal. | ||
389 | 10 | |||
390 | 11 | Run './waf configure' | ||
391 | 12 | |||
392 | 13 | Run './waf build' | ||
393 | 14 | |||
394 | 15 | You can now run Midori from the build folder like so | ||
395 | 16 | |||
396 | 17 | '_build/default/midori/midori' | ||
397 | 18 | |||
398 | 19 | Midori will pick up extensions and resources from the build folder; | ||
399 | 20 | it will NOT use localizations. | ||
400 | 21 | |||
401 | 22 | You can install it with './waf install' | ||
402 | 23 | |||
403 | 24 | If you need to do a clean rebuild, you can do either './waf clean' | ||
404 | 25 | in order to remove binaries or './waf distclean' which deletes generated | ||
405 | 26 | configuration files as well. | ||
406 | 27 | |||
407 | 28 | For further options run './waf --help' | ||
408 | 29 | |||
409 | 30 | +++ Debugging Midori +++ | ||
410 | 31 | |||
411 | 32 | Midori is by default built with debugging symbols, make sure you have | ||
412 | 33 | installed 'gdb', the GNU Debugger. | ||
413 | 34 | |||
414 | 35 | It's a good idea to execute all unit test cases and see that they pass. | ||
415 | 36 | |||
416 | 37 | 'xvfb-run ./waf check' | ||
417 | 38 | |||
418 | 39 | In this example, Xvfb is used to avoid relying on the local user setup. | ||
419 | 40 | |||
420 | 41 | You can also run Midori proper as 'gdb _build/default/midori/midori'. | ||
421 | 42 | |||
422 | 43 | Inside gdb, type 'run'. | ||
423 | 44 | |||
424 | 45 | Try to reproduce a crash that you experienced earlier, | ||
425 | 46 | this time Midori will freeze at the point of the crash. | ||
426 | 47 | Switch to your terminal, type bt ('backtrace') and hit Return. | ||
427 | 48 | What you obtained now is a backtrace that should include | ||
428 | 49 | function names and line numbers. | ||
429 | 50 | |||
430 | 51 | If the problem is a warning and not a crash, try this: | ||
431 | 52 | |||
432 | 53 | 'G_DEBUG=all gdb _build/default/midori/midori' | ||
433 | 54 | |||
434 | 55 | If you are interested in HTTP communication, try this: | ||
435 | 56 | |||
436 | 57 | 'MIDORI_DEBUG=headers _build/default/midori/midori' | ||
437 | 58 | |||
438 | 59 | Where 'headers' can be replaced with 'body' to get full message contents. | ||
439 | 60 | |||
440 | 61 | If you are interested in (non-) touchscreen behaviour, try this: | ||
441 | 62 | |||
442 | 63 | 'MIDORI_TOUCHSCREEN=1 _build/default/midori/midori', or | ||
443 | 64 | |||
444 | 65 | 'MIDORI_TOUCHSCREEN=0 _build/default/midori/midori' | ||
445 | 66 | |||
446 | 67 | If you want to "dry run" without WebKitGTK+ rendering, try this: | ||
447 | 68 | |||
448 | 69 | 'MIDORI_DEBUG=unarmed _build/default/midori/midori' | ||
449 | 70 | |||
450 | 71 | If you want to test bookmarks, you can enable database tracing: | ||
451 | 72 | |||
452 | 73 | 'MIDORI_DEBUG=bookmarks _build/default/midori/midori' | ||
453 | 74 | |||
454 | 75 | To disable Netscape plugins, use MOZ_PLUGIN_PATH=/. | ||
455 | 76 | |||
456 | 77 | When running from the build folder, extensions will also be located | ||
457 | 78 | in the build folder (setting MIDORI_EXTENSION_PATH is no longer needed). | ||
458 | 79 | |||
459 | 80 | For further information a tutorial for gdb and | ||
460 | 81 | reading up on how you can install debugging | ||
461 | 82 | symbols for libraries used by Midori are recommended. | ||
462 | 83 | 0 | ||
463 | === modified file 'tools/release' | |||
464 | --- tools/release 2013-05-19 14:04:16 +0000 | |||
465 | +++ tools/release 2013-05-29 19:40:32 +0000 | |||
466 | @@ -16,6 +16,9 @@ | |||
467 | 16 | OLDVER=0.5.1 | 16 | OLDVER=0.5.1 |
468 | 17 | sed -i "s@$OLDVER@$NEWVER@g" wscript win32/makedist/midori.nsi | 17 | sed -i "s@$OLDVER@$NEWVER@g" wscript win32/makedist/midori.nsi |
469 | 18 | echo; echo v$NEWVER:; bzr log --line -rtag:$OLDVER.. | sed -r 's@.+2013-[0-9]+-[0-9]+ @@' | grep -v l10n | grep -v makedist | grep -v tools/release | grep -v nsi | grep -v -E 'Update .+ translation'; echo | 18 | echo; echo v$NEWVER:; bzr log --line -rtag:$OLDVER.. | sed -r 's@.+2013-[0-9]+-[0-9]+ @@' | grep -v l10n | grep -v makedist | grep -v tools/release | grep -v nsi | grep -v -E 'Update .+ translation'; echo |
470 | 19 | curl http://wiki.xfce.org/_export/raw/midori/contribute | \ | ||
471 | 20 | sed -r 's@\[\[([^|]+)\|([^]]+)\]\]@\1 \2@g' | \ | ||
472 | 21 | sed -r 's@<code( bash|)>|</code>@@g' > HACKING | ||
473 | 19 | curl http://wiki.xfce.org/_export/xhtml/midori/faq | \ | 22 | curl http://wiki.xfce.org/_export/xhtml/midori/faq | \ |
474 | 20 | sed 's@This is a list of frequently asked questions@This is <a href="http://wiki.xfce.org/midori/faq">a snapshot of the online FAQ</a>@g' | \ | 23 | sed 's@This is a list of frequently asked questions@This is <a href="http://wiki.xfce.org/midori/faq">a snapshot of the online FAQ</a>@g' | \ |
475 | 21 | sed 's@<link rel="style.*>@<link rel="stylesheet" href="faq.css" />@g' > data/faq.html | 24 | sed 's@<link rel="style.*>@<link rel="stylesheet" href="faq.css" />@g' > data/faq.html |
Would be awesome if we could strip markup somehow. Mostly <code></code> tags and [[ ]] for links.
I guess italics tag // will be tricky to match. But those two above should go as they go in the way when trying to read the text.
There is no info now about EXTENSION_ PATH
MIDORI_TOUCHSCREEN MIDORI_
and G_DEBUG=all
Probably could/should be added to wiki then.
Otherwise looks good.