[gimp-web-devel] content: various styling/organization fixes.



commit f3e3cdba66c2430b130a1c2f8dd5daa4c6ce3df3
Author: Jehan <jehan girinstud io>
Date:   Sat Oct 15 19:55:12 2022 +0200

    content: various styling/organization fixes.
    
    These are various issues I noticed when re-verifying all pages we published in
    the new dev website:
    
    - Making show_subs to false for gimpcon/2003/ because it's redundant with
      in-text links.
    - Fixing heading levels in various documents (wrong levels made obvious by the
      recent table of contents feature).
    - Moving graphic_tablets_support to specifications/. It doesn't make much sense
      to have it as a base core documents. But it makes much more sense to make it a
      document to discuss how we want tablet support to be in GIMP (in other words:
      a spec, or at least work document).
    - Removing kinda useless toc in resource/api/.
    - Styling a bit the writing-a-plug-in/ tutorial and fixing licensing image and
      links. Also fixing the links to "next part".
    - Moving problems_and_solutions to base core/. It's not specifically a setup
      document, more a generic database of common development issues, when they
      don't deserve their own documents.

 content/conferences/gimpcon/2003/_index.md         |  1 +
 content/conferences/gimpcon/2003/minutes-1.md      | 14 ++---
 content/conferences/gimpcon/2003/minutes-2.md      | 16 +++---
 content/conferences/gimpcon/2003/minutes-3.md      | 12 ++---
 content/core/algorithm/flood.md                    |  6 +--
 ..._and_solutions.md => problems_and_solutions.md} | 22 ++++----
 .../graphic_tablets_support.md                     |  6 +++
 content/resource/api.md                            |  1 +
 content/resource/writing-a-plug-in/1.md            | 37 +++++--------
 content/resource/writing-a-plug-in/2.md            | 60 +++++++++-------------
 content/resource/writing-a-plug-in/3.md            | 27 +++++-----
 content/resource/writing-a-plug-in/_index.md       |  2 +-
 12 files changed, 92 insertions(+), 112 deletions(-)
---
diff --git a/content/conferences/gimpcon/2003/_index.md b/content/conferences/gimpcon/2003/_index.md
index 7f0df3d..b62be4c 100644
--- a/content/conferences/gimpcon/2003/_index.md
+++ b/content/conferences/gimpcon/2003/_index.md
@@ -4,6 +4,7 @@ abbrev = "GIMPCon 2003"
 description = "Chaos Communication Camp, Berlin, Germany"
 summary = "Chaos Communication Camp, Berlin, Germany"
 date = "2003-08-07"
+show_subs = false
 +++
 
 ## GIMPCon 2003
diff --git a/content/conferences/gimpcon/2003/minutes-1.md b/content/conferences/gimpcon/2003/minutes-1.md
index 1b098f2..5a33e5d 100644
--- a/content/conferences/gimpcon/2003/minutes-1.md
+++ b/content/conferences/gimpcon/2003/minutes-1.md
@@ -27,7 +27,7 @@ Topic discussion, in approximate chronological order:
 * [General stuff about CVS, Bugzilla](#general-stuff-about-bugzilla-and-cvs)
 * [Communication](#communication)
 
-#### The GIMP Foundation
+## The GIMP Foundation
 
 The idea of a foundation was proposed. Lots of ideas were thrown
 about as to what kind of remit it would have. If created, the
@@ -48,7 +48,7 @@ This led onto a discussion of whether the foundation would be
 responsible for setting release dates, or whether we would have
 a separate...
 
-#### Release Manager
+## Release Manager
 
 The general consensus (more on that later) was that a release
 manager is a good thing. There do seem to be a few different
@@ -81,7 +81,7 @@ out CVS commits OK, for example?
 So we started talking about how to get contentious decisions
 made.
 
-#### Decision making (or lack of it)
+## Decision making (or lack of it)
 
 Currently, there are two ways to get something done in the
 GIMP. First, you can write decent code and patches for a while,
@@ -122,7 +122,7 @@ enough standing and authority to post one of these thread-ending
 summaries? Some discussion is going to be had on that over the
 weekend.
 
-#### General stuff, about Bugzilla and CVS
+## General stuff, about Bugzilla and CVS
 
 We talked about various ways of improving the way we use these
 tools. First is whether it makes sense for us to have module
@@ -153,7 +153,7 @@ given group should know everyone else in the group, and know
 more or less that when an issue gets in, it will be handled by
 at least one person.
 
-#### Communication
+## Communication
 
 It was agreed that we need to communicate better (that's a
 no-brainer, really). For a start, every developer should be
@@ -166,14 +166,14 @@ be discussed on the user list.
 Basically, we're going to talk a lot more about how the
 developers can interface better with the users.
 
-#### Decisions
+## Decisions
 
 Not too many of these... we will have a release manager, but we
 need to define exactly what his/her remit will be. And who it
 will be. We agreed that the "5 days and it's dead" rule for threads
 makes sense, so that will be done.
 
-#### Future
+## Future
 
 1. Roadmap - rough release schedule, we will have a first draft today.
 2. GIMP Foundation - we need to define its responsibilities, set up election rules, and get this set up. The 
principle of the foundation is more or less agreed.
diff --git a/content/conferences/gimpcon/2003/minutes-2.md b/content/conferences/gimpcon/2003/minutes-2.md
index 5b1806a..e2720e6 100644
--- a/content/conferences/gimpcon/2003/minutes-2.md
+++ b/content/conferences/gimpcon/2003/minutes-2.md
@@ -29,7 +29,7 @@ Topic discussion, in approximate chronological order:
 * [GIMP Foundation](#gimp-foundation)
 * [Release manager](#release-manager)
 
-#### Features required for 2.0
+## Features required for 2.0
 
 There was quite a lot of talk on what was required for a 2.0
 release. It was agreed that a pre-release should have feature
@@ -47,7 +47,7 @@ necessary are:
 1. Web-site (again, more on this later)
 1. Some libgimp changes which need to be made now so that we can havebinary compatibility across a 2.2 
release
 
-#### Documentation
+## Documentation
 
 We felt that with pre-releases, the documentation will become
 more complete. There should, however, be an effort to actively
@@ -73,7 +73,7 @@ the help team.
 We also need to have the docs browsable online so that if people
 want to browse them they can.
 
-#### Web-site
+## Web-site
 
 The new site should switch over to www.gimp.org soon. There will
 obviously be quite a bit of pain involved as content gets added
@@ -86,7 +86,7 @@ suggested to do it even earlier than that, in the region of 2 to
 It was also discussed whether it was a good idea to have a
 separate coordinator for the website.
 
-#### Roadmap
+## Roadmap
 
 As an approximate set of ideals, it was agreed that we want
 this: 2.0pre1 very soon, 2.0 soon, 2.2 next year, and GEGL
@@ -111,7 +111,7 @@ little more than 2 weeks work, and people have real lives. So 6
 weeks was felt to be a reasonable amount of time to have the
 path tool and the help browser in place.
 
-#### Bugs
+## Bugs
 
 The developer release will also be a prelude to a bug week. We
 would like people (that's you, in particular) to actively work
@@ -145,7 +145,7 @@ leave more time for programmers to program.
 
 This leads us on to...
 
-#### Task list
+## Task list
 
 There are lots of non-technical jobs that need doing around the
 gimp-docs, website, bugzilla triage, internationalisation,
@@ -168,7 +168,7 @@ people looking at bugzilla regularly. Then again, if there were
 a link to a bugzilla query on the webpage marked "GIMP
 TODO list" we could get that for free.
 
-#### GIMP Foundation
+## GIMP Foundation
 
 Basically, we're agreed this is a good idea to have some kind of
 public face people and companies can contribute to. There is no
@@ -204,7 +204,7 @@ the foundation then gets sued.
 In brief, it's being set up with a very narrow remit, with the
 possibility to expand later if it is felt that there is a need.
 
-#### Release manager
+## Release manager
 
 The responsibilities are:
 
diff --git a/content/conferences/gimpcon/2003/minutes-3.md b/content/conferences/gimpcon/2003/minutes-3.md
index b02440e..c8715a9 100644
--- a/content/conferences/gimpcon/2003/minutes-3.md
+++ b/content/conferences/gimpcon/2003/minutes-3.md
@@ -26,7 +26,7 @@ the following topics were discussed:
  * [List of open tasks](#list-of-open-tasks)
  * [Mailing lists](#mailing-lists)
 
-#### How to get new developers?
+## How to get new developers?
 
 Like in any Free Software project, developers are leaving from
 time to time to pursue other projects. And from time to time,
@@ -52,7 +52,7 @@ involved?". It should be easy for potential new
 developers to see where to start and how they can help. More on
 that below.
 
-#### Do we need binary distributions?
+## Do we need binary distributions?
 
 There was a discussion about binary distributions. This may help
 people to try some versions of the GIMP (especially the
@@ -67,7 +67,7 @@ are providing binaries for various platforms.
 It would be very nice to have Windows binaries for the
 development version.
 
-#### Is Bugzilla too hard to use for new users?
+## Is Bugzilla too hard to use for new users?
 
 It was suggested to make it easier for users to submit bug
 reports, for example by having an e-mail address to which bug
@@ -91,7 +91,7 @@ a small problem with the GNOME2 keyword that prevents the open
 GIMP bugs from being displayed to the user and we should try to
 get this fixed.
 
-#### List of open tasks
+## List of open tasks
 
 There are many open bug reports or proposals for enhancements
 that would be relatively easy to fix or implement. We should
@@ -113,7 +113,7 @@ direct links to the corresponding bug reports. The second
 solution may require a bit more work because it would have to be
 maintained by someone, but it might be a bit easier to use.
 
-#### Mailing lists
+## Mailing lists
 
 Sometimes, there is a lack of communication between users and
 developers of The GIMP. After some discussion, it was decided
@@ -138,7 +138,7 @@ gimp.de, etc. The description of the mailing lists should
 encourage people to subscribe to both the users and developers
 lists.
 
-#### Summary
+## Summary
 
 We hope that the next stable release will attract new
 developers. This has been the case when 1.0 and 1.2 were
diff --git a/content/core/algorithm/flood.md b/content/core/algorithm/flood.md
index 39e52ba..6a5e2f4 100644
--- a/content/core/algorithm/flood.md
+++ b/content/core/algorithm/flood.md
@@ -140,7 +140,7 @@ transformation when dealing with vertical segments, as explained later.
 
 Each segment is processed using the following steps.
 
-#### 1. Vertical propagation
+### 1. Vertical propagation
 
 The segment's pixels are updated, using the above transformation rule, considering only the corresponding
 neighboring pixels of the source segment. During the process, we inspect which of the segment's pixels 
actually changed, and create a
@@ -163,7 +163,7 @@ becomes important in the next step.
                  dirty ranges.
 ```
 
-#### 2. Horizontal propagation
+### 2. Horizontal propagation
 
 The segment's pixels are updated, considering only their left and right neighbors, using the two-pass process
 described above. Though semantically equivalent, this process slightly more intricate than the one described 
above, since we use the
@@ -227,7 +227,7 @@ in our case). This condition is still met at the end of the first pass.
 One final detail: each dirty range has an associated ''modified'' flag, which is initially cleared. If, 
during the above process, the range is
 extended, or its existing pixels are modified, then its ''modified'' flag is set. This flag is used by the 
next step.
 
-#### 3. Distribution
+### 3. Distribution
 
 The changes to the current segment's water level may affect the two neighboring rows. For each dirty range, 
we push two new
 segments into the queue -- one for each neighboring row -- using the current row as their source segment.
diff --git a/content/core/setup/Problems_and_solutions.md b/content/core/problems_and_solutions.md
similarity index 97%
rename from content/core/setup/Problems_and_solutions.md
rename to content/core/problems_and_solutions.md
index 2406b93..9b66a44 100644
--- a/content/core/setup/Problems_and_solutions.md
+++ b/content/core/problems_and_solutions.md
@@ -935,7 +935,7 @@ Problem
 
 ## Translate
 
-#### Lots of merge conflicts in GIMP master
+### Lots of merge conflicts in GIMP master
 
 Problem
 : I'm translating on the current production branch of GIMP (`gimp-2-10`, etc.) and on `master`. I'd like to 
cherry-pick my changes from the production branch to the master branch. But I get lots of merge conflicts and 
changes I never introduced.
@@ -946,7 +946,7 @@ Cause
 Solution
 : Commit your translation updates directly into the master branch or try to merge your translation branch 
into the master branch.
 
-#### See also
+### See also
 
 * [GEGL Developer mailing list](https://mail.gnome.org/archives/gegl-developer-list/)
 * <a class="external text" href="irc://irc.gimp.org/#gegl" rel="nofollow">GEGL IRC channel</a>
@@ -970,7 +970,7 @@ Warnings and errors displayed in a terminal/console in which you started GIMP fr
 
 Many are just clutter, that make it hard to find severe errors from code you are testing.
 
-#### 'GEGL-Message: 14:09:17.687: Module '/usr/local/lib/x86_64-linux-gnu/libgegl-npd-0.4.so' load error: 
Missing gegl_module_query() symbol ?'
+### 'GEGL-Message: 14:09:17.687: Module '/usr/local/lib/x86_64-linux-gnu/libgegl-npd-0.4.so' load error: 
Missing gegl_module_query() symbol ?'
 
 Problem
 : GIMP starts, but the terminal displays many messages similar to the above, when plugins are loaded.
@@ -985,7 +985,7 @@ reference the top GEGL directory, not just its parent. Referencing the
 parent is sufficient for GIMP to start, but not for plugins to load
 without these warnings.
 
-#### GIMP fails to start with error, 'GIMP requires the GEGL operation "gegl:alien-map"'
+### GIMP fails to start with error, 'GIMP requires the GEGL operation "gegl:alien-map"'
 
 Problem
 : GIMP starts fails to start, with the message above.
@@ -996,7 +996,7 @@ Cause
 Solution
 : See above under 'Building'
 
-#### A plugin fails to appear in the menus, with error like "GIMP-WARNING: gimp-2.xx: gimp_wire_read(): 
error"
+### A plugin fails to appear in the menus, with error like "GIMP-WARNING: gimp-2.xx: gimp_wire_read(): error"
 
 Problem
 : GIMP starts, but a plugin does not appear in the GIMP menus as expected, and the terminal shows the above 
message.
@@ -1015,7 +1015,7 @@ To debug the flawed plugin, you can use print statements.
 An interpreted plugin may fail very early in its text, for example in the hashbang i.e. `#!/usr/bin/env 
python3` statement on the first line,
 or in an import statement.
 
-#### Chain of python exceptions beginning with gi.RepositoryError: Typelib file for namespace 'Gegl', 
version '0.4' not found
+### Chain of python exceptions beginning with gi.RepositoryError: Typelib file for namespace 'Gegl', version 
'0.4' not found
 
 Problem
 : On startup, GIMP starts but shows a long chain of Python exceptions.  The root exception (the first in the 
list) is as above.  Affects loading of plugins.
@@ -1032,7 +1032,7 @@ you use it.)
 
 The typelibs for GIMP, GEGL, and babl might be on different paths (as in the example).
 
-#### Gtk-Message: 19:04:46.797: Failed to load module "canberra-gtk-module"
+### Gtk-Message: 19:04:46.797: Failed to load module "canberra-gtk-module"
 
 Problem
 : Terminal often displays message like above.  Does not affect operation, except sounds may be missing?
@@ -1061,7 +1061,7 @@ self-built one may have been built differently), you may also decide to
 ignore the message, as it's harmless (unlike you needed to use this
 module, but chances are low this would ever be needed for GIMP).
 
-#### (gimp-2.99:xx): dbind-WARNING **: 09:35:43.023: Couldn't register with accessibility bus:
+### (gimp-2.99:xx): dbind-WARNING **: 09:35:43.023: Couldn't register with accessibility bus:
 
 Problem
 : Terminal often shows message like above.  Does not affect operation, unless you need accessibility i.e. 
are visually or hearing impaired.
@@ -1072,7 +1072,7 @@ Cause
 Solution
 : In your environment: `export NO_AT_BRIDGE=1`
 
-#### luajit: ...mp/2.99/plug-ins/goat-exercise-lua/goat-exercise-lua.lua:22: module 'lgi' not found:
+### luajit: ...mp/2.99/plug-ins/goat-exercise-lua/goat-exercise-lua.lua:22: module 'lgi' not found:
 
 Problem
 : On startup, terminal shows a message that begins like above and ends with "GIMP-WARNING: gimp-2.99: 
gimp_wire_read(): error".
@@ -1085,7 +1085,7 @@ Cause
 Solution
 : Install the package.
 
-## On Ubuntu:  Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed 
(error == NULL): Icon 'image-missing' not present in theme Symbolic (gtk-icon-theme-error-quark, 0====
+### On Ubuntu:  Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed 
(error == NULL): Icon 'image-missing' not present in theme Symbolic (gtk-icon-theme-error-quark, 0====
 
 Problem
 : On Ubuntu (only?), when using a plugin that opens a Gtk3 file chooser widget, terminal shows a message as 
above, and plugin crashes.
@@ -1096,7 +1096,7 @@ Cause
 Solution
 : Install the package. If you are not building GIMP yourself, apparently this issue is fixed by the 
packaging of GIMP having a dependency on package `gnome-icon-theme`.
 
-#### (gimp-2.99:xx): dconf-WARNING **: 13:59:42.430: failed to commit changes to dconf: Failed to execute 
child process ?dbus-launch? (No such file or directory)
+### (gimp-2.99:xx): dconf-WARNING **: 13:59:42.430: failed to commit changes to dconf: Failed to execute 
child process ?dbus-launch? (No such file or directory)
 
 Problem
 : The message appears as you start a plugin. It seems harmless unless you have configured GLib to stop on 
warnings, or if you want to use the services of [dbus](https://en.wikipedia.org/wiki/D-Bus)
diff --git a/content/core/graphic_tablets_support.md b/content/core/specifications/graphic_tablets_support.md
similarity index 96%
rename from content/core/graphic_tablets_support.md
rename to content/core/specifications/graphic_tablets_support.md
index 5c48ee2..5e8901a 100644
--- a/content/core/graphic_tablets_support.md
+++ b/content/core/specifications/graphic_tablets_support.md
@@ -4,6 +4,12 @@ Author: "GIMP team"
 Date: 2022-09-11
 ---
 
+ℹ️ **Note**: the current document so far is mostly "current state" information on
+tablet support in GIMP (stable and development). Ideally we should move the
+document into another direction, to be about "how we want tablet support to be".
+Basically it should rather be a specification on stylus and gesture support (and
+related technologies) in GIMP.
+
 ## Stylus usage
 ### GIMP 2.10
 
diff --git a/content/resource/api.md b/content/resource/api.md
index 70b53e4..5647da7 100644
--- a/content/resource/api.md
+++ b/content/resource/api.md
@@ -4,6 +4,7 @@ date = "2022-08-07"
 abbrev = "api-ref"
 description = "GIMP Reference Manuals"
 weight = 1
+toc = false
 +++
 
 GIMP comes with libraries which can be used by plug-in developers to
diff --git a/content/resource/writing-a-plug-in/1.md b/content/resource/writing-a-plug-in/1.md
index c9617fc..daf331e 100644
--- a/content/resource/writing-a-plug-in/1.md
+++ b/content/resource/writing-a-plug-in/1.md
@@ -62,7 +62,7 @@ directory.
 
 Syntax is
 
-```
+```sh
 gimptool-2.0 --install plugin.c or gimptool-2.0 --install-admin plugin.c
 ```
 
@@ -80,13 +80,13 @@ like a file saver plug-in.
 
 ## Essentials
 
-```
+```C
 #include <libgimp/gimp.h>
 ```
 
 This header makes all basic plug-in elements available to us.
 
-```
+```C
 GimpPlugInInfo PLUG_IN_INFO = {
        init,
        quit,
@@ -121,7 +121,7 @@ a pointer to output parameters, then determines if it is
 launched in a interactive way or by a script, and does all the
 plug-in processing. Its prototype is
 
-```
+```C
 void run (const gchar      *name,
         gint              nparams,
         const GimpParam  *param,
@@ -144,7 +144,7 @@ startup time, and refreshed only when the plug-in is modified.
 For our "Hello, world!" plug-in, the query function will look
 like this:
 
-```
+```C
 static void
 query (void)
 {
@@ -197,7 +197,7 @@ descriptors.
 `INDEXED` or `GRAY`, with or without Alpha. So "`RGB*, GRAY*`"
 describes RGB, `RGBA`, `GRAY` or `GRAY` image type.
 
-GIMP_PLUGIN declares this procedure to be external, and not to
+`GIMP_PLUGIN` declares this procedure to be external, and not to
 be executed in The GIMP core.
 
 By adding a stub run function now, we can check that our plug-in
@@ -239,7 +239,7 @@ For our test plug-in, we will simply display a dialog containing
 a "Hello, world!" message. Thankfully, this is really easy with
 GTK+. Our run function could be:
 
-```
+```C
 static void
 run (const gchar      *name,
    gint              nparams,
@@ -275,26 +275,15 @@ Have a look at the full [hello.c](hello.c) plug-in code.
 
 ## Next part
 
-In <olink targetdocent="writing-a-plug-in-2">next part</olink>
+In [next part](../2/)
 we will go on, making a more useful plug-in that will get its
 hands on image data. We will see how to use The GIMP image
 architecture to make the plug-in perform better, processing the
 image tile by tile.
 
-<para role="images">
-<ulink url="http://creativecommons.org/licenses/by-nc-sa/2.5/";>
-<mediaobject>
-<imageobject>
-<imagedata fileref="http://creativecommons.org/images/public/somerights20.gif"/>
-</imageobject>
-<textobject>
-<phrase>Creative Commons License</phrase>
-</textobject>
-</mediaobject>
-</ulink>
-
-This work is licensed under a <ulink
-url="http://creativecommons.org/licenses/by-nc-sa/2.5/";>Creative
-Commons Attribution-NonCommercial-ShareAlike 2.5
-License</ulink>.
+[![Creative Commons
+License](https://creativecommons.org/images/public/somerights20.gif)](http://creativecommons.org/licenses/by-nc-sa/2.5/)
 
+This work is licensed under a [Creative Commons
+Attribution-NonCommercial-ShareAlike 2.5
+License](http://creativecommons.org/licenses/by-nc-sa/2.5/).
diff --git a/content/resource/writing-a-plug-in/2.md b/content/resource/writing-a-plug-in/2.md
index 027f1d7..e1dcecb 100644
--- a/content/resource/writing-a-plug-in/2.md
+++ b/content/resource/writing-a-plug-in/2.md
@@ -35,7 +35,7 @@ x (2r + 1)` matrix.
 Last month, we wrote a run() function that did nothing useful.
 Let's look again at run() prototype:
 
-```
+```C
 static void run (const gchar     *name,
                gint             nparams,
                const GimpParam *param,
@@ -64,16 +64,15 @@ Drawables
 To get a GimpDrawable from its identifier, we need the
 `gimp_drawable_get()` function:
 
-```
+```C
 GimpDrawable *gimp_drawable_get (gint32 drawable_id);
 ```
 
 From this structure, one can access drawable data through a
 GimpPixelRgn structure, and one can check the drawable type
 (RGB, gray level). The full listing of functions available for a
-GimpDrawable can be found <ulink
-url="http://developer.gimp.org/api/2.0/libgimp/libgimp-gimpdrawable.html";>in
-the API</ulink>.
+GimpDrawable can be found [in the
+API](http://developer.gimp.org/api/2.0/libgimp/libgimp-gimpdrawable.html).
 
 Two very important functions for plug-ins are
 gimp_drawable_mask_bounds() and gimp_pixel_rgn_init(). The first
@@ -94,7 +93,7 @@ expensive, so we should not use it more than necessary.
 
 The main functions to get and set image data are:
 
-```
+```C
 void gimp_pixel_rgn_get_pixel (GimpPixelRgn *pr,
                              guchar       *buf,
                              gint          x,
@@ -158,7 +157,7 @@ gimp_drawable_detach (drawable);
 To be able to try out several different processing methods, we
 will delegate the job to a blur() function. Our run() is below.
 
-```
+```C
 static void
 run (const gchar      *name,
    gint              nparams,
@@ -204,19 +203,19 @@ run (const gchar      *name,
 ```
 
 There are a few lines here that need to be explained a bit more.
-The call to gimp_progress_init() initialises a progress
+The call to `gimp_progress_init()` initialises a progress
 measurement for our plug-in. Later, if we call
-gimp_progress_update(double percent), the percentage given as an
-input parameter will be shown graphically. The run_mode tells us
+`gimp_progress_update(double percent)`, the percentage given as an
+input parameter will be shown graphically. The `run_mode` tells us
 whether the plug-in was launched in a way such as we can display
 a graphical interface or not. Possible values are
-GIMP_RUN_INTERACTIVE, GIMP_RUN_NONINTERACTIVE or
-GIMP_RUN_WITH_LAST_VALS, which mean the plug-in was executed
+`GIMP_RUN_INTERACTIVE`, `GIMP_RUN_NONINTERACTIVE` or
+`GIMP_RUN_WITH_LAST_VALS`, which mean the plug-in was executed
 from The GIMP, from a script, or from the "Repeat last filter"
 menu entry.
 
 Regarding the blur algorithm itself, the first version using
-gimp_pixel_rgn_(get|set)_pixel() is found below. Some functions
+`gimp_pixel_rgn_(get|set)_pixel()` is found below. Some functions
 in it have not been explained yet.
 
 `gimp_drawable_mask_bounds()` allows calculation of the filter's
@@ -229,14 +228,14 @@ its limits for the processing, and two booleans that
 significantly modify the behaviour of the resulting GimpPixelRgn.
 The first one tells that "set" operations must be done on shadow
 tiles, in order to leave original data as is until
-gimp_drawable_merge_shadow() is called, when all modified data
+`gimp_drawable_merge_shadow()` is called, when all modified data
 will be merged. The second one tells that modified tiles should
 be tagged "dirty" and sent to the core to be merged. Most of the
 time, to read data, one uses FALSE and FALSE for these two
 parameters, and to write data, one uses TRUE and TRUE. Other
 combinations are possible but seldom used.
 
-```
+```C
 static void
 blur (GimpDrawable *drawable)
 {
@@ -344,16 +343,16 @@ blur (GimpDrawable *drawable)
 ## Row processing
 
 Our function has a bug drawback: performance. On a 300x300
-selection, with the timing code uncommented, blur() took 12
+selection, with the timing code uncommented, `blur()` took 12
 minutes on my K6-2 350MHz, well loaded with other stuff. To
 compare, on the same selection, Gaussian blur took 3 seconds.
 
 If we modify our function to rather use
-gimp_pixel_rgn_(get|set)_row() the result is far better. We
+`gimp_pixel_rgn_(get|set)_row()` the result is far better. We
 reduce the timing for the 300x300 selection from 760 seconds to
 6 seconds. blur() V2 is below:
 
-```
+```C
 static void
 blur (GimpDrawable *drawable)
 {
@@ -448,27 +447,14 @@ Have a look at the [slow](myblur1.c) or [fast](myblur2.c) blur complete code.
 
 ## Next part
 
-In [next part](writing-a-plug-in/3),
+In [next part](../3),
 we will see how to process the image tile by tile. We will also
 have a look at preferences, by modifying our algorithm so it can
 take an input parameter.
 
+[![Creative Commons
+License](https://creativecommons.org/images/public/somerights20.gif)](http://creativecommons.org/licenses/by-nc-sa/2.5/)
 
-<para role="images">
-<ulink url="http://creativecommons.org/licenses/by-nc-sa/2.5/";>
-<mediaobject>
-<imageobject>
-<imagedata fileref="http://creativecommons.org/images/public/somerights20.gif"/>
-</imageobject>
-<textobject>
-<phrase>Creative Commons License</phrase>
-</textobject>
-</mediaobject>
-</ulink>
-
-This work is licensed under a <ulink
-url="http://creativecommons.org/licenses/by-nc-sa/2.5/";>Creative
-Commons Attribution-NonCommercial-ShareAlike 2.5
-License</ulink>.
-
-
+This work is licensed under a [Creative Commons
+Attribution-NonCommercial-ShareAlike 2.5
+License](http://creativecommons.org/licenses/by-nc-sa/2.5/).
diff --git a/content/resource/writing-a-plug-in/3.md b/content/resource/writing-a-plug-in/3.md
index ca1e527..58b797a 100644
--- a/content/resource/writing-a-plug-in/3.md
+++ b/content/resource/writing-a-plug-in/3.md
@@ -45,7 +45,7 @@ sent when one needs it and freed when one asks for another one.
 Nevertheless, we can tell our plug-in to keep a tile cache to
 avoid this constant round trip, by calling the function:
 
-```
+```C
 gimp_tile_cache_ntiles (gulong ntiles);
 ```
 
@@ -58,7 +58,7 @@ divided by the tile width, plus one. So, for a layer width of
 tiles, we can double that number to compute the ideal cache size
 for our plug-in.
 
-```
+```C
 gimp_tile_cache_ntiles (2 * (drawable->width / 
                         gimp_tile_width () + 1));
 ```
@@ -95,7 +95,7 @@ The modified code to get this behaviour is below. Most of the
 work is done in the process_row function. init_mem and shuffle
 are there to keep the blur code clean and small.
 
-```
+```C
 static void blur        (GimpDrawable *drawable);
 
 static void init_mem    (guchar     ***row,
@@ -299,7 +299,7 @@ First we create a structure to allow saving and returning
 options. Usually one does this even for plug-ins with only one
 parameter.
 
-```
+```C
 typedef struct
 {
   gint radius;
@@ -323,7 +323,7 @@ Finally, in interactive mode, we add a few lines that will build
 the graphical interface allowing options modification.
 
 
-```
+```C
 static void
 run (const gchar      *name,
      gint              nparams,
@@ -418,7 +418,7 @@ GNOME Human Interface Guidelines. GimpPreview also appeared in
 blur_dialog1.png
 Blur dialog
 
-```
+```C
 static gboolean
 blur_dialog (GimpDrawable *drawable)
 {
@@ -529,7 +529,7 @@ into account.
 
 Here are the two functions in their last version:
 
-```
+```C
 static void
 blur (GimpDrawable *drawable,
       GimpPreview  *preview)
@@ -737,12 +737,9 @@ widgets to make a nice user interface.
 Thanks to my wife Anne and to David Odin (preview master) for
 helping me while I was writing this article.
 
-<ulink url="http://creativecommons.org/licenses/by-nc-sa/2.5/";>
-<imagedata fileref="http://creativecommons.org/images/public/somerights20.gif"/>
-<phrase>Creative Commons License</phrase>
-
-This work is licensed under a <ulink
-url="http://creativecommons.org/licenses/by-nc-sa/2.5/";>Creative
-Commons Attribution-NonCommercial-ShareAlike 2.5
-License</ulink>.
+[![Creative Commons
+License](https://creativecommons.org/images/public/somerights20.gif)](http://creativecommons.org/licenses/by-nc-sa/2.5/)
 
+This work is licensed under a [Creative Commons
+Attribution-NonCommercial-ShareAlike 2.5
+License](http://creativecommons.org/licenses/by-nc-sa/2.5/).
diff --git a/content/resource/writing-a-plug-in/_index.md b/content/resource/writing-a-plug-in/_index.md
index 7c47501..db17b3f 100644
--- a/content/resource/writing-a-plug-in/_index.md
+++ b/content/resource/writing-a-plug-in/_index.md
@@ -8,7 +8,7 @@ show_subs = false
 
 ℹ️  *The various documents listed below may not be very up-to-date. In particular,
 you will not find documentation for the upcoming v3.0 API and plug-in creation
-tutorials. We are currently in the process of rebuilding proper plug-in
+tutorials yet. We are currently in the process of rebuilding proper plug-in
 developer documentation. With a bit of patience, this will soon contain
 up-to-date information.* ⏳
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]