imag/doc/src/04100-lib-link.md

1.5 KiB

liblink

The "liblink" library contains functionality for linking from entries to internal and external content.

The utilities provided by "liblink" contain functions to

  • Get internal links from arbitraty entries
  • Access an "EntryHeader" object to
    • get internal links
    • set internal links
    • get "Entry" objects for links from a header

Linking internal content with liblink

As one entry MAY contain zero or more interal links in the header section "imag.links", the "liblink" library provides functionality to

  • get the link from an EntryHeader object
  • set the links in a EntryHeader object
  • query for a specific link in a EntryHeader object
    • by regex
    • by module name
    • by filename

as well as functionality to get "Entry" objects for each entry in the Header.

Linking external content with liblink

As one "EntryHeader" MUST NOT contain more than one link to external content (as defined in @sec:thestore:linking:external, the following scheme for linking to external content MUST BE provided by "liblink":

  • Generate a "link" entry in the store
    • with store path starting with "/link/"
    • where the header field "imag.content.uri" MUST BE set
    • with optional content which can be stored in the section of the "liblink" module section (section name "link", as defined by @sec:thestore:fileformat:header:module).
  • Get an external link by store path (looking up the store path entry and getting the link to the external content from it)