The basics

What is bitmark?

Bitmark is a standard designed to enhance the rendering of text. It is a system that uses specific prefixes to denote different types of content. These prefixes, known as bits, are placed on a separate line before the content they are associated with.

Bitmark is an uncompromisingly content- and mobile-first standard for digital, interactive textbooks. More technically speaking, bitmark is an umbrella term for the bitmark JSON data model and the bitmark markup language.

bitmark is strictly content-first: you have one common data base of all digital assets for mobile, tablet and web apps — produce once, publish everywhere.

The graphical representation of learning content is very individual. Therefore bitmark does not contain any visual information. It strictly follows the well-established MVC (Model-View-Controller) paradigm, where model (data model), view (visual representation) and logic (control logic) are strictly separated.

More information: https://docs.bitmark.cloud/

Using bitmark

Every piece of content is preceded by its bit. The bit type is placed on a separate line before the content it is associated with, enclosed in square brackets and beginning with a period — for instance [.article].

Simply begin each piece of content with the appropriate bit: an article with [.article], a note with [.note], a chapter heading with [.chapter], and so on.

The basic structure of a bit:

[.bitType]
[@id:123]

[%item][%lead]

[!instruction]

Body

Bit design

The design of a bit is given by the definition of its corresponding theme — it cannot be changed in bitmark:

  • The design of a bit is defined by its theme, not by the markup.
  • This provides consistency through all contents and bits.
  • A theme can be applied to a whole book or to a single bit.

Bit structure

Tags

All bitmark tags start with [ and end with ]:

[&image:https://example.org/images/background.png]

The first character after the opening square bracket is a reserved character that defines the role and the format of the tag (. bit type, @ property, % item/lead, ! instruction, ? hint, & resource, # title, _ gap, …).

Every bit carries a unique ID (the [@id:…] property), assigned by the platform. It identifies the bit and is crucial for referencing and rights management — never change it.

Nearly all bit types can have a footer. The content of the footer is always shown at the bottom of the bit. To add a footer, insert ~~~~ (or a ==== footer ==== divider) after the body of the bit:

[.multiple-choice]
[!Tick the correct answer!]
====
[+A]
[-B]
[-C]
~~~~
Source: my imagination

Chains

Chains are a fundamental concept of bitmark. All bitmark tags that are "glued" together (not separated by a space character) belong to the same object.

One gap with two accepted solutions — the two tags are chained:

[.cloze]
The students completed the [_cloze][_gap text] with the correct verb forms.

Two separate gaps — the tags are not chained, because they are separated by a space character:

[.cloze]
The students completed the [_cloze] [_with] the correct verb forms.

Property (@) tags are fully supported in chains: a chained @ tag relates to the tag it is chained to, not to the whole bit. The same holds for hints:

[.cloze]
[_gap][?This is a hint to solve this gap and not a hint for the whole quiz][@example]