LOOPS ⋅ Supported features

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

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

1. Annotation & Feedback

Highlight (text fragments)

Users, authors, and third parties can highlight a section of a web / HTML page. 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 http://developer.mozilla.org/en-US/docs/Web/Text_fragments.

2. Authoring

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 a username/password combination, a simple token-based system is used. Every person, group, or organization with a valid token has access, and if access should be revoked, the token is changed.

Content Editor – Markdown

User can edit documents in-system, using a renowned editor (Microsoft Monaco).

Document template selection for current document / simple

Authors can select a specific template for rendering / exporting the current document by specifying a metadata variable in a project configuration (default) file. When multiple documents are rendered in one session, the template selection for an individual document can be overridden.

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.

File management

Authors can use CRUD functions: Select + New (Create) / View (Read) / Save (Update) / Delete, also Upload / Download / Rename.

Index (linked list) of arbitrary elements (tables, images, videos) in HTML documents / live

Authors can place hyperlinked, alphabetically sorted lists of tables, images, videos, etc., in arbitrary positions of an HTML document. Entries are linked to the respective elements.

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.

Authors can declare a hyperlink’s type, i.e., 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 hyperlink. The target type is indicated by an icon, styling, and / or an added text label. This makes it easier for readers to estimate the usefulness of a linked resource before following the link.

Markup: Footnotes

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.

Metadata (YAML) – direct key / value input

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

Rendering – on demand

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

Separation of structure, presentation, and logic

During authoring, 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 in a document that will (via JavaScript) load the lead part or a designated section of another document into the current document (instead of having the hyperlinked document replace the current document).

3. Content Markup

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 tags 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 the 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, which is useful for creating glossaries. 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 quotes 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. Table captions are semantic markup, and a linked index / table of contents listing all quotes can be placed in a document.

4. Export / rendering

HTML documents export to PDF format (client-side)

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

HTML documents printout (client-side)

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

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 for reading applications (browsers) 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.

5. Navigation / between documents

Bookmarking of current document – local / on device

Readers can bookmark the current page (whether 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.

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.

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

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.

6. Navigation / in document

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, for table of contents creation and ID exposure for bookmarking.

Authors can mark areas of an image and assign hyperlinks to these areas using a third-party image map editor (a web service or software such as Inkscape). Hyperlinks can go to arbitrary targets both in the current and other documents. As these image maps are based on scalable vector graphics, they are responsive and will adapt to the device’s viewport size and orientation.

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 user is made aware of the “jump” process.

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 particular type without having to open / go to an index or table of contents.

7. Presentation / Customization

Element ID exposure for content sharing (“Purple numbers”)

For all elements with an ID, a “pilcrow” (paragraph) element will be shown, hyperlinked to this element’s ID, and thereby allowing easy bookmarking. Using an optional script component, clicking the pilcrow will copy the page and ID URL to the system clipboard.

Presentation customization – style activator (for optional styles)

Document templates can have style activation controls. Users can use these controls to activate specific styles for the currently displayed page – for example, to show optional information, hide everything but images, or change font sizes. Other active / imported styles will not be affected. This also allows for conditional text: Tagged content is shown or hidden using CSS. Style activators and style switchers solve two different problems (modifying or replacing the presentation layer) and can be used in tandem.

Presentation customization – style switcher

Document templates can have style switcher controls. 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. Style activators and style switchers solve two different problems (modifying or replacing the presentation layer) and can be used in tandem.

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 structural 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.

Typography (font + style specification)

Authors can style textual content using default and custom fonts.

8. Translation

Translation Tier 1 a – human – internal

Content can be translated in-system simply by duplicating pages and translating their content directly.

Translation Tier 1 b – external MTE (DeepL) + human post-editing

Content can (easily) be sent to a third-party machine translation engine. The machine translation is returned to the system for human post-editing.

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.

↻ 2025-08-21