@@ -45,7 +45,7 @@ the source-code this way. This::
4545 !! The ammount of pet food (in kilograms) which you have on hand.
4646 integer, intent(out) :: angry
4747 !! The number of pets angry because they weren't fed.
48-
48+
4949 !...
5050 return
5151 end subroutine feed_pets
@@ -65,7 +65,7 @@ looks better/more readable than::
6565 real, intent(inout) :: food
6666 !! The number of pets angry because they weren't fed.
6767 integer, intent(out) :: angry
68-
68+
6969 !...
7070 return
7171 end subroutine feed_pets
@@ -280,35 +280,73 @@ this is ``[[component(type):item(type)]]``:
280280 as a type and its public constructor). If multiple items with the
281281 same name exist and ``type `` is not specified then FORD’s behaviour
282282 is undefined; it will link to the first of those items which it
283- finds. The available options are “procedure”, “subroutine”,
284- “function”, “proc” (all of which are interchangeable and specify a
285- procedure), “interface”, “absinterface” (both of which are for
286- abstract interfaces), “block” (for the legacy ``block data `` program
287- unit), and “type”, “file”, “module”, and “program” (which are
288- self-explanatory).
283+ finds. The available options are:
284+
285+ - "procedure", "proc", "subroutine", "function" for any kind of
286+ procedure defined within the project
287+ - "interface", "absinterface" for abstract interfaces
288+ - "block" for the legacy ``block data `` construct
289+ - "type"
290+ - "file"
291+ - "module"
292+ - "submodule"
293+ - "program"
294+ - "namelist"
295+
296+ The majority of these can also be prefixed with "ext" to refer to
297+ entities defined in `external projects <option-external> `
289298- ``item `` (optional) specifies an item within ``component `` which is
290299 to be linked to. The link’s target will be ``item ``\ ’s location on
291300 ``component ``\ ’s page. If ``item `` is not present then the colon in
292301 the link must be omitted.
293302- ``type `` (optional, but ``item `` must also be present) is
294303 ``item ``\ ’s type of Fortran construct. It can be used in the same
295- manner as the component ``type ``, but has different options. These
296- are “variable”, “type”, “constructor”, “interface”, “absinterface”
297- (abstract interface), “subroutine”, “function”, “final” (finalization
298- procedure), “bound” (type-bound procedure), “modproc” (module
299- procedure in a generic interface block), and “common”. None of these
300- options are interchangeable. If no description is given then its
301- meaning should be self-explanatory. If you specify an option that can
302- not exist within ``component `` (for example, if ``component `` is a
303- module and ``item `` is “bound”) then a warning message is issued and
304- the link is not generated.
304+ manner as the component ``type ``, but has different options:
305+
306+ - "absinterface" for abstract interfaces
307+ - "bound" for type-bound procedures
308+ - "common" for ``common `` blocks
309+ - "constructor" for structure constructor procedures
310+ - "final" for finalization procedures
311+ - "function"
312+ - "interface"
313+ - "modproc" for module procedures in generic interfaces
314+ - "subroutine"
315+ - "type"
316+ - "variable"
317+
318+ None of these options are interchangeable. If you specify an option
319+ that can not exist within ``component `` (for example, if
320+ ``component `` is a module and ``item `` is “bound”) then a warning
321+ message is issued and the link is not generated.
322+
323+ For example, to link to a module called ``my_mod `` you could
324+ use ``[[my_mod]] `` or ``[[my_mod(module)]] ``, while if you wanted to
325+ refer to a function called ``my_function `` in that module you could
326+ use any of (from least to most specific):
327+
328+ - ``[[my_function]] ``
329+ - ``[[my_function(function)]] ``
330+ - ``[[my_function(proc)]] ``
331+ - ``[[my_mod:my_function]] ``
332+ - ``[[my_mod(module):my_function]] ``
333+ - ``[[my_mod:my_function(function)]] ``
334+ - ``[[my_mod(module):my_function(function)]] ``
305335
306336If you have an overridden constructor a derived type, then it is
307337strongly recommended that you specify ``item `` should you wish to link
308338to either of them. Otherwise FORD will not know whether you are
309339referring to the derived type itself or the interface for its
310340constructor.
311341
342+ .. versionchanged :: 7.0.0
343+ Previously, links inside code blocks (with backticks) were
344+ resolved, now they are left verbatim, as with all other
345+ markup. That is, pre-v7, ```call [[my_subroutine]]` `` would be
346+ rendered as ``call my_subroutine `` with a link to
347+ ``my_subroutine ``, while now it will be left as: ``call
348+ [[my_subroutine]] ``.
349+
312350.. _non-fortran-source-files :
313351
314352Non-Fortran Source Files
0 commit comments