LOOPS ⋅ Supported features

This is a list of features available in the LOOPS single source publishing workflow and on the Specs and Docs sites.

Please note that not every published site or document set uses all features outlined below. This is a list of what’s doable, not what has been used.


Authors can declare a hyperlink’s type – the relation of the hyperlinked document to the current document (for example “target contains more information”, “target contradicts statement”) by applying a (CSS) class to the link. The target type is indicated by an icon, styling and/or an added text label.

When a reader uses (clicks/taps) an in-document hyperlink, the link target will be briefly highlighted using CSS animation. This improves the user experience, as the otherwise immediate “jump” to the link target is attenuated.

Responsive presentation

HTML content is automatically adjusted to the currently used device / viewport size using responsive CSS (media queries).

Styles (Style Sheets) for screen + paged media

Displayed content is styled using well-balanced style sheets both for screen and print.

Styling – class-based

Authors can style output by applying styles/classes both to semantic elements such as headings and in-segment spans.

Styling – classless

Designers can style output based on semantic structure (tags) such as headings without having to specify styles/classes, making for easy formatting.

JavaScript + CSS

Element ID creation for all block elements (user-side / runtime)

For every HTML block element where the author hasn’t assigned an identification (ID), a unique ID will be created during runtime, which can be used for other in-document functionality – for example table of contents and “purple number”-style ID exposure for bookmarking.

Index (linked list) of headings (ToC) for all document types / static

Authors can set a flag to place a hierarchical, hyperlinked table of contents in the current document at a fixed template position.

Index (linked list) of headings (ToC) for HTML documents / live

Authors can set a flag to place a hierarchical, hyperlinked table of contents in the current document at an arbitrary position in the document.

Next / Previous section navigation of same type + Home

For all elements of a given type (h1, h2), “Previous” and “Next” links will be created, hyperlinked to the previous and next element of this type. This allows users to jump between all elements of a certain type without having to open / go to an index or table of contents.

Presentation customization – style activator (for optional styles)

Document templates can be augmented with style activation controls. Users can use these controls to activate specific styles for the current page, for example to show optional information, hide everything but images etc. Other active / imported styles will not be affected. This also allows for conditional text: Tagged content is shown or hidden using CSS.

Presentation customization – style switcher

Document templates can be augmented with style switcher widgets. Users can activate a full style sheet for the current page, for example “dark mode” or “improved legibility”. Activating such a style sheet will deactivate / reset all other active styles.

Separation of structure, presentation and logic

Actual content and its structure (hierarchy), presentation (styling) and logic (access to and modification of content) are separated.

Transclusion / StretchText – interactive

Authors can assign an attribute to a hyperlink that will (via JavaScript) load the lead part or a designated section of a document into the current document (instead of having the hyperlinked document replacing the current document).

Markup conversion

Document templates selection for current document / simple

Authors can select a specific template for rendering / exporting the current document by specifying a metadata variable. When multiple documents are rendered in one session, the template selection for an indivifdual document can be overriden.

Element ID creation for major block elements (converter-side)

Every block element is automatically assigned an ID attribute (either a number based on a hierarchical pattern or derived from content, e.g. as its MD5 hash) on rendering, making the respective element accessible for navigation / bookmarking and display modification (highlight, hide etc.). The ID is displayed as a separate HTML anchor element that can be styled and accessed.


Authors can add footnotes to document sections. The footnote content is placed at the end of the document or document set and linked back to the footnote marker, so readers can easily access additional information and then return to the main content.

Authors can easily refer to a predefined, named link target (a reference link) instead of specifying the link target each time. This is especially useful for frequently used linked targets.

Markup: Basic text

Authors can enter text, which by default will be rendered as paragraphs.

Markup: Code blocks / line blocks

Authors can mark sections of a document as software code, with formatting (line breaks) retained and markup not interpreted on rendering, but shown as such.

Markup: Emphasis / strong emphasis

Authors can mark up fragments as emphasized or important, usually visualized in the browser or target format as italic and bold type. Alternative presentation styles can be specified using CSS.

Markup: Headings

Authors can structure documents using hierarchical headings (Level 1 to 6). Headings are used for table of contents and as split level indicators for “chunked” HTML output.

Authors can enter links to pages or page sections (anchors). In all supported formats, clicking the link will open the linked resource.

Markup: Image integration via URL

Authors can reference an image file by its URL. The image will be integrated either as an inline image in a paragraph or as a captioned figure into the document. Image captions are semantic markup, and a linked index / table of contents listing all images can be placed in a document.

Markup: Lists – definitions

Authors can mark a segment as a term, followed by one or more definitions. This markup can also be used for key-value pairs, where the term designates the key (for example “length”) and the definitions designate the value(s) – for example “3 kg” and “6.6 lbs”. Terms are semantic markup, and a linked index / table of contents listing all terms can be placed in a document.

Markup: Lists – indented

Authors can mark up consecutive segments as belonging to an ordered or unordered list. Lists can be nested to represent hierarchy (for example sub-steps in instructions). Lists can be typed (for example as instructions or items) by wrapping them in a section tag.

Markup: Lists – ordered and unordered

Authors can mark up consecutive segments as belonging to an ordered (numbered) or unordered (bullets) list. List bullets or numbers can be styled using CSS.

Markup: Quotations – block quotations

Authors can mark up segments as quotes. This is semantic markup, and it is possible to create a table of contents / index of quots in a document. Quotes can be styled using CSS. Quotes are semantic markup, and a linked index / table of contents listing all quotes can be placed in a document.

Markup: Rulers

Authors can set rulers / separators in a document to designate breaks. These breaks can be styled using CSS.

Markup: Sections

Authors can define sections in documents for styling (using CSS) and other uses. Section tags and attributes such as “platform-mac” can be used to designate content that should only be shown in a specific context using style switchers or style activators.

Markup: Semantic markup

Authors can tag semantic structures – questions, instructions, specs etc. – as such, and semantic markup can be exposed to end users using CSS (colours, labels, icons).

Markup: Structural markup

Authors can structure content by applying markup for headings and lists to indicate the hierarchy of document sections and list items.

Markup: Superscript & subscript

Characters and character ranges can be styled as superscript and subscript text, which is useful for math and chemical formulas.

Markup: Tables

Tabular data can be organized in tables, which are comprised of table rows with table cells. Table headings can be marked up as such. Tables can have captions. A linked index / table of contents listing all table captions can be placed in a document.

Metadata (YAML) – direct key/value input

Authors can place arbitrary metadata in document headers or separate configuration (“default”) files. Metadata can be placed in documents or used to control template logic (“If variable X is set, display document section Y”). LOOPS template make heavy use of this feature to control presentation and filtering of content.

Multiple / alternative page sequences / table of contents

Short documents / document sections can be used in more than one project / context by specifying the documents to chain in the rendering process. Table of contents and “Previous” / “Next” hyperlinks show documents / sections in the selected sequence. This can also be achieved by transclusions, where multiple transclusions constitute a sequence.

Source documents conversion / export to EPUB format

Authors can convert source documents (and linked images) to EPUB documents, supported in Amazon Kindle and other ebook reading applications and devices.

Source documents conversion / export to HTML format / 1:1

Authors can convert source documents to HTML documents, which can be served straight from the CMS or elsewhere as static web pages.reading applications and devices.

Source documents conversion / export to HTML format / chapter-based (“chunked”)

Authors or project managers can decide to split long-form documents such as reference manuals into sections for web / HTML output. In this “chunked” output format, links between sections are retained / updated. The segmentation level (for example at each level 1 heading, or level 1 + level 2) can be customized as required.

Source documents conversion / export to Microsoft Word format (DOCX)

Authors can convert source documents (and linked images) to Microsoft Word (DOCX) format documents.

Source documents conversion / export to Plain Text format

Authors can convert source documents to plain text documents.

Browser-side / native HTML features

Bookmarking of current document – local / on device

Readers can bookmark the current page (wether it’s a long-form document or a short chapter) for later retrieval in their web browser. This is the standard mechanism for storing (access to) a document for later retrieval.

Highlight (text fragments)

Users, authors and third parties can highlight a section of a web / HTML pager. A bookmarkable link to the highlighted section is created, which can be sent to third parties, e.g. for support. See https://web.dev/text-fragments/ and https://developer.mozilla.org/en-US/docs/Web/Text_fragments

HTML documents export to PDF format (client-side)

Readers can convert web / HTML documents to print-ready PDF documents using their browser’s Print / “HTML to PDF export” feature.

HTML documents printout (client-side)

Readers can print web / HTML documents using their browser’s Print feature.

Typography (font + style specification)

Authors can style textual content using default and custom fonts.


Access control / user management for content creation (authoring)

For content authoring, users are identified, authenticated and authorized to access file management (create / read / write / delete / rename) functions. As an alternative to complex user management with fine-grained privileges and user name / password combination, a simple token-based system is used. Every person with a valid token has access, and if access should be revoked, the token is changed.

Rendering – on demand

Authors can initiate rendering of target document formats at any time.

Third party / integration

Translation Tier 1 b – static / human – external system

Content can easily be sent to a separate translation management system with translation memories, termbases and machine translation access and pushed back.

Translation Tier 3 – on-the-fly / user-side machine translation

Users can select a translation language for a HTML page from a drop-down menu, and if no local translation is available, the page will be sent to Google’s translation service.

↻ 2024-07-06