bitmark-grammar
Version:
1,085 lines (1,079 loc) • 875 kB
JSON
<<<<./tests/jsfiddle.bit
[
{
"bitmark": "[.vendor-jsfiddle&image]\n[@id:119768]\n[&image:https://cdn.bitmark.cloud/books/com.firstpub.book98789/cat3_1024x1024.jpg][@src1x:https://cdn.bitmark.cloud/books/com.firstpub.book98789/cat3_64x64.jpg][@src2x:https://cdn.bitmark.cloud/books/com.firstpub.book98789/cat3_64x64@2x.jpg][@width:640][@height:640]\nBitmarkListener.prototype.get_result = function () {\n while (0 < this.curr_bit_stk.size)\n delete this.curr_bit_stk.pop();\n return this.stk.bucket;\n};",
"bit": {
"type": "vendor-jsfiddle",
"format": "bitmark--",
"body": "BitmarkListener.prototype.get_result = function () {\n while (0 < this.curr_bit_stk.size)\n delete this.curr_bit_stk.pop();\n return this.stk.bucket;\n};",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"id": [
"119768"
],
"resource": {
"type": "image",
"image": {
"src": "https://cdn.bitmark.cloud/books/com.firstpub.book98789/cat3_1024x1024.jpg",
"showInIndex": false,
"format": "jpg",
"width": "640",
"height": "640",
"alt": "",
"caption": "",
"license": "",
"copyright": "",
"src1x": "https://cdn.bitmark.cloud/books/com.firstpub.book98789/cat3_64x64.jpg",
"src2x": "https://cdn.bitmark.cloud/books/com.firstpub.book98789/cat3_64x64@2x.jpg"
}
}
}
},
{
"bitmark": "[.vendor-jsfiddle-embed&image]\n[@id:119768]\n\nBitmarkListener.prototype.set_value_based_on_curr_bit_stk = function (val1, sub1, val2, sub2, tmpl = null) {\n let subscript = this.curr_bit_stk.top();\n let key_obj = null;\n\n if (subscript.startsWith('{'))\n key_obj = subscript.split('$'); // like \"{Diaz:0}:marks\"\n if (key_obj.length === 2) {\n if (tmpl && !(key_obj[0] in this.stk.top().bit[key_obj[1]]))\n (this.stk.top()).bit[key_obj[1]][key_obj[0]] = R.clone(tmpl);\n if (key_obj[0] in this.stk.top().bit[key_obj[1]]) {\n // e.g. bit.gaps['{0}'].example = true;\n (this.stk.top()).bit[key_obj[1]][key_obj[0]][sub1] = val1;\n if (sub2 != null)\n (this.stk.top()).bit[key_obj[1]][key_obj[0]][sub2] = val2;\n }\n }\n}\n\nbody { font-family: Helvetica, Tahoma; }\nh2 { font-size: 1.5em; margin-bottom: 10px; display: block;}\np { margin-bottom: 15px; display: block; font-size: 0.8em; }\nlabel { font-weight: bold; }\ntextarea, input[type=text] {\n padding: 3px 5px;\n width: 80%;\n display: block;\n border: 1px solid #ddd;\n margin-bottom: 5px;\n}\ntextarea { height: 70px; }\n\n<h2>Load a fiddle based on the POST variables</h2>\n<form method='post' action='http://jsfiddle.net/api/post/mootools/1.3/dependencies/more/' target='check'>\n <p><input type='submit'/> - fiddle will be loaded in different browser window/tab.</p>\n <select name=\"panel_html\">\n <option value=\"0\">HTML</option>\n </select>\n <textarea name='html'><p class=\"red\">It's magic!</p>\n<p><a href=\"http://doc.jsfiddle.net/api/post.html\">Documentation</a></p></textarea>\n <select name=\"panel_js\">\n <option value=\"0\">JavaScript</option>\n <option value=\"1\">CoffeeScript</option>\n <option value=\"2\">JavaScript 1.7</option>\n </select>\n <textarea name='js'>window.addEvent('domready', function() {\n $$('p.red').each(function(el) {\n el.setStyle('color', '#00ff00');\n });\n});</textarea>\n <select name=\"panel_css\">\n <option value=\"0\">CSS</option>\n <option value=\"1\">SCSS</option>\n </select>\n <textarea name='css'>p {font-family: Helvetica, Arial; }</textarea>\n <label>Title:</label>\n <input type='text' name='title' value='some title'/>\n <label>Description:</label>\n <textarea name='description'>descr</textarea>\n <label>Resources (comma separated, no spaces):</label>\n <textarea name='resources'>http://abc.it/xyz.js</textarea>\n <label>DTD:</label>\n <input type='text' name='dtd' value='html 4'/>\n <label>Wrap (l/d/h/b)</label>\n <input type='text' name='wrap' value='l'/>\n</form>",
"bit": {
"type": "vendor-jsfiddle-embed",
"format": "bitmark--",
"body": "BitmarkListener.prototype.set_value_based_on_curr_bit_stk = function (val1, sub1, val2, sub2, tmpl = null) {\n let subscript = this.curr_bit_stk.top();\n let key_obj = null;\n\n if (subscript.startsWith('{'))\n key_obj = subscript.split('$'); // like \"{Diaz:0}:marks\"\n if (key_obj.length === 2) {\n if (tmpl && !(key_obj[0] in this.stk.top().bit[key_obj[1]]))\n (this.stk.top()).bit[key_obj[1]][key_obj[0]] = R.clone(tmpl);\n if (key_obj[0] in this.stk.top().bit[key_obj[1]]) {\n // e.g. bit.gaps['{0}'].example = true;\n (this.stk.top()).bit[key_obj[1]][key_obj[0]][sub1] = val1;\n if (sub2 != null)\n (this.stk.top()).bit[key_obj[1]][key_obj[0]][sub2] = val2;\n }\n }\n}\n\nbody { font-family: Helvetica, Tahoma; }\nh2 { font-size: 1.5em; margin-bottom: 10px; display: block;}\np { margin-bottom: 15px; display: block; font-size: 0.8em; }\nlabel { font-weight: bold; }\ntextarea, input[type=text] {\n padding: 3px 5px;\n width: 80%;\n display: block;\n border: 1px solid #ddd;\n margin-bottom: 5px;\n}\ntextarea { height: 70px; }\n\n<h2>Load a fiddle based on the POST variables</h2>\n<form method='post' action='http://jsfiddle.net/api/post/mootools/1.3/dependencies/more/' target='check'>\n <p><input type='submit'/> - fiddle will be loaded in different browser window/tab.</p>\n <select name=\"panel_html\">\n <option value=\"0\">HTML</option>\n </select>\n <textarea name='html'><p class=\"red\">It's magic!</p>\n<p><a href=\"http://doc.jsfiddle.net/api/post.html\">Documentation</a></p></textarea>\n <select name=\"panel_js\">\n <option value=\"0\">JavaScript</option>\n <option value=\"1\">CoffeeScript</option>\n <option value=\"2\">JavaScript 1.7</option>\n </select>\n <textarea name='js'>window.addEvent('domready', function() {\n $$('p.red').each(function(el) {\n el.setStyle('color', '#00ff00');\n });\n});</textarea>\n <select name=\"panel_css\">\n <option value=\"0\">CSS</option>\n <option value=\"1\">SCSS</option>\n </select>\n <textarea name='css'>p {font-family: Helvetica, Arial; }</textarea>\n <label>Title:</label>\n <input type='text' name='title' value='some title'/>\n <label>Description:</label>\n <textarea name='description'>descr</textarea>\n <label>Resources (comma separated, no spaces):</label>\n <textarea name='resources'>http://abc.it/xyz.js</textarea>\n <label>DTD:</label>\n <input type='text' name='dtd' value='html 4'/>\n <label>Wrap (l/d/h/b)</label>\n <input type='text' name='wrap' value='l'/>\n</form>",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"id": [
"119768"
]
}
},
{
"bitmark": "[.image-render-svg]\n[@id:119768]\n<?xml version=\"1.0\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\" height=\"100%\" viewBox=\"0 0 1288.000000 728.000000\"\n preserveAspectRatio=\"xMidYMid meet\">\n<g transform=\"translate(0.000000,728.000000) scale(0.100000,-0.100000)\"\nfill=\"#000000\" stroke=\"none\">\n<path d=\"M0 3640 l0 -3640 6440 0 6440 0 0 3640 0 3640 -6440 0 -6440 0 0 -3640z\n m12800 0 l0 -3560 -6360 0 -6360 0 0 3560 0 3560 6360 0 6360 0 0 -3560z\"/>\n</g>\n</svg>",
"bit": {
"type": "image-render-svg",
"format": "bitmark--",
"body": "<?xml version=\"1.0\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\" height=\"100%\" viewBox=\"0 0 1288.000000 728.000000\"\n preserveAspectRatio=\"xMidYMid meet\">\n<g transform=\"translate(0.000000,728.000000) scale(0.100000,-0.100000)\"\nfill=\"#000000\" stroke=\"none\">\n<path d=\"M0 3640 l0 -3640 6440 0 6440 0 0 3640 0 3640 -6440 0 -6440 0 0 -3640z\n m12800 0 l0 -3560 -6360 0 -6360 0 0 3560 0 3560 6360 0 6360 0 0 -3560z\"/>\n</g>\n</svg>",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"id": [
"119768"
]
}
}
]
<<<<./tests/learning-path1.bit
[
{
"bitmark": "[.learning-path-lti&image]\n[&image:https://our.s3/book_cover.jpg]\n[!Nullserie]\n[@action:Übungsprüfung]\n[@deeplink:https://other.platform/path/to/quiz]\n[@duration:3600s]\nOf course, it exists without the image resource like any other bit.\nIt works like a .article (instruction, body, resources, …)\nIt just adds action, duration and deepLink\nThree strings",
"bit": {
"type": "learning-path-lti",
"format": "bitmark--",
"body": "Of course, it exists without the image resource like any other bit.\nIt works like a .article (instruction, body, resources, …)\nIt just adds action, duration and deepLink\nThree strings",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"resource": {
"type": "image",
"image": {
"src": "https://our.s3/book_cover.jpg",
"showInIndex": false,
"format": "jpg",
"width": null,
"height": null,
"alt": "",
"caption": "",
"license": "",
"copyright": ""
}
},
"instruction": "Nullserie",
"action": "Übungsprüfung",
"deeplink": [
"https://other.platform/path/to/quiz"
],
"duration": "3600s"
}
},
{
"bitmark": "[.learning-path-step]\n[!Nullserie]\n[@action:Päsenz-Seminar]\n[@duration:3600s]\n\nCan also contain resources like all bits",
"bit": {
"type": "learning-path-step",
"format": "bitmark--",
"body": "Can also contain resources like all bits",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Nullserie",
"action": "Päsenz-Seminar",
"duration": "3600s"
}
},
{
"bitmark": "[.learning-path-sign]\n[!Nullserie]\n[@action:Päsenz-Seminar]\n[@duration:3600s]\n\nCan also contain resources like all bits",
"bit": {
"type": "learning-path-sign",
"format": "bitmark--",
"body": "Can also contain resources like all bits",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Nullserie",
"action": "Päsenz-Seminar",
"duration": "3600s"
}
},
{
"bitmark": "[.learning-path-video-call]\n[@videoCallLink:https://yasminboland.com/video/call.php]",
"bit": {
"type": "learning-path-video-call",
"format": "bitmark--",
"body": "",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"videoCallLink": "https://yasminboland.com/video/call.php"
}
},
{
"bitmark": "[.learning-path-learning-goal]\n[!Nullserie]\n[@action:Päsenz-Seminar]\n[@duration:3600s]\nCan also contain resources like all bits",
"bit": {
"type": "learning-path-learning-goal",
"format": "bitmark--",
"body": "Can also contain resources like all bits",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Nullserie",
"action": "Päsenz-Seminar",
"duration": "3600s"
}
},
{
"bitmark": "[.learning-path-closing]\n[!Nullserie]\n[@action:Päsenz-Seminar]\n[@duration:3600s]\nCan also contain resources like all bits",
"bit": {
"type": "learning-path-closing",
"format": "bitmark--",
"body": "Can also contain resources like all bits",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Nullserie",
"action": "Päsenz-Seminar",
"duration": "3600s"
}
},
{
"bitmark": "[.learning-path-feedback]\n[!Nullserie]\n[@action:Päsenz-Seminar]\n[@duration:3600s]\nCan also contain resources like all bits",
"bit": {
"type": "learning-path-feedback",
"format": "bitmark--",
"body": "Can also contain resources like all bits",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Nullserie",
"action": "Päsenz-Seminar",
"duration": "3600s"
}
},
{
"bitmark": "[.learning-path-bot-training]\n[@bot:b-87687aszd87wed78]",
"bit": {
"type": "learning-path-bot-training",
"format": "bitmark--",
"body": "",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"bot": [
"b-87687aszd87wed78"
]
}
}
]
<<<<./tests/learning-path3.bit
[
{
"bitmark": "[.learning-path-book&website-link]\n[!Skript «Grundausbildung Altersvorsorge»]\n[@action:Selbststudium]\n[@duration:3600s]\n[@book:e-876z78z87og87g8zg][►Ref4.2.34][►Ref4.3.1]\n\nFirst one is the normal reference.\nSecond is the optional property called “referenceEnd”\nAll these bits support all resources (like &website-link, …\nAll of these bits (starting with .learning-path support the following optional properties:\n[@date:2015-03-25T12:00:00Z]\n[@location:Zug]",
"bit": {
"type": "learning-path-book",
"format": "bitmark--",
"body": "First one is the normal reference.\nSecond is the optional property called “referenceEnd”\nAll these bits support all resources (like &website-link, …\nAll of these bits (starting with .learning-path support the following optional properties:",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Skript «Grundausbildung Altersvorsorge»",
"action": "Selbststudium",
"duration": "3600s",
"book": "e-876z78z87og87g8zg",
"reference": "Ref4.2.34",
"referenceEnd": "Ref4.3.1",
"date": "2015-03-25T12:00:00Z",
"location": "Zug"
}
}
]
<<<<./tests/resource-all.bit
[
{
"bitmark": "[.article:bitmark--&image-link]\n[@id:119760]\n[&image-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4][@src2x:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/poster.png]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "image-link",
"imageLink": {
"provider": "",
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4",
"format": "mp4",
"src2x": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/poster.png"
}
}
}
},
{
"bitmark": "[.article:bitmark--&website-link]\n[@id:119760]\n[&website-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "website-link",
"websiteLink": {
"siteName": "",
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4"
}
}
}
},
{
"bitmark": "[.article:bitmark--&article-link]\n[@id:119760]\n[&article-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "article-link",
"articleLink": {
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4"
}
}
}
},
{
"bitmark": "[.article:bitmark--&video]\n[@id:119760]\n[&video:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4][@posterImage:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/poster.png][@width:740][@height:540]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "video",
"video": {
"format": "mp4",
"src": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4",
"width": "740",
"height": "540",
"duration": "",
"mute": false,
"autoplay": false,
"allowSubtitles": false,
"showSubtitles": false,
"alt": "",
"license": "",
"copyright": "",
"posterImage": {
"src": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/poster.png",
"format": "png",
"width": null,
"height": null
}
}
}
}
},
{
"bitmark": "[.article:bitmark--&image]\n[@id:119760]\n[&image:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4][@src2x:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/poster.png][@width:1040][@height:140]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "image",
"image": {
"src": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4",
"showInIndex": false,
"format": "mp4",
"width": "1040",
"height": "140",
"alt": "",
"caption": "",
"license": "",
"copyright": "",
"src2x": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/poster.png"
}
}
}
},
{
"bitmark": "[.article:bitmark--&website-link]\n[@id:119760]\n[&website-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "website-link",
"websiteLink": {
"siteName": "",
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4"
}
}
}
},
{
"bitmark": "[.article:bitmark--&article-link]\n[@id:119760]\n[&article-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "article-link",
"articleLink": {
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4"
}
}
}
},
{
"bitmark": "[.article:bitmark--&app-link]\n[@id:119760]\n[&app-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "app-link",
"appLink": {
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4"
}
}
}
},
{
"bitmark": "[.article:bitmark--&video]\n[@id:119760]\n[&video:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4][@posterImage:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/poster.png][@width:740][@height:540][@duration:PT12M31S]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "video",
"video": {
"format": "mp4",
"src": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4",
"width": "740",
"height": "540",
"duration": "PT12M31S",
"mute": false,
"autoplay": false,
"allowSubtitles": false,
"showSubtitles": false,
"alt": "",
"license": "",
"copyright": "",
"posterImage": {
"src": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/poster.png",
"format": "png",
"width": null,
"height": null
}
}
}
}
},
{
"bitmark": "[.article:bitmark--&video-link]\n[@id:119760]\n[&video-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4][@src1x:https://www.youtube.com/tumb_201809210816.png][@src2x:https://www.youtube.com/tumb_201809210816.png][@width:740][@height:540][@duration:PT12M31S]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "video-link",
"videoLink": {
"provider": "docs.bitmark.cloud",
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4",
"width": "740",
"height": "540",
"duration": "PT12M31S",
"thumbnails": [
{
"format": "png",
"width": null,
"height": null,
"src1x": "https://www.youtube.com/tumb_201809210816.png"
},
{
"format": "png",
"width": null,
"height": null,
"src2x": "https://www.youtube.com/tumb_201809210816.png"
}
]
}
}
}
},
{
"bitmark": "[.article:bitmark--&still-image-film]\n[@id:119760]\n[&still-image-film:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4][@duration:PT12M31S]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "still-image-film",
"image": {
"provider": "",
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4",
"format": "mp4",
"duration": "PT12M31S"
}
}
}
},
{
"bitmark": "[.article:bitmark--&still-image-film-link]\n[@id:119760]\n[&still-image-film-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4][@duration:PT12M31S]",
"bit": {
"type": "article",
"format": "bitmark--",
"body": "",
"id": [
"119760"
],
"resource": {
"type": "still-image-film-link",
"videoLink": {
"provider": "",
"url": "https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4",
"format": "mp4",
"duration": "PT12M31S"
}
}
}
}
]
<<<<./tests/utfgpun.bit
[
{
"bitmark": "[.cloze-solution-grouped:bitmark++&image]\n[%A32a]\n[&image:https://docs.bitbook.education/bit-books/schubert/schubert_erkundungen_b2/web-resources/images/065-1b.png][@caption: Willy Brandt: Bundeskanzler der Bundesrepublik Deutschland von 1969 bis 1974][@search: Icons can be tinted by the color in the tint property.\t ‐‑‒–—―‖‗†‡•…‰‱※⁞⁝]",
"bit": {
"type": "cloze-solution-grouped",
"format": "bitmark++",
"body": "",
"item": "A32a",
"hint": "",
"isExample": false,
"example": "",
"resource": {
"type": "image",
"image": {
"src": "https://docs.bitbook.education/bit-books/schubert/schubert_erkundungen_b2/web-resources/images/065-1b.png",
"showInIndex": false,
"format": "png",
"width": null,
"height": null,
"alt": "",
"caption": "Willy Brandt: Bundeskanzler der Bundesrepublik Deutschland von 1969 bis 1974",
"license": "",
"copyright": "",
"search": "Icons can be tinted by the color in the tint property.\t ‐‑‒–—―‖‗†‡•…‰‱※⁞⁝"
}
}
}
}
]
<<<<./tests/learning-path4.bit
[
{
"bitmark": "[.learning-path-book&website-link]\n[!Skript «Grundausbildung Altersvorsorge»]\n[@action:Selbststudium]\n[@duration:3600s]\n[@book:e-876z78z87og87g8zg][►Ref4.2.34][►Ref4.3.1]\n\nFirst one is the normal reference.\nSecond is the optional property called “referenceEnd”\nAll these bits support all resources (like &website-link, …\nAll of these bits (starting with .learning-path support the following optional properties:\n[@date:2015-03-25T12:00:00Z]\n[@location:Zug]\n[@list:One]\n[@list:Two]\n[@list:Three]\n[@list:Four]\n[@id:119760]\n||[&website-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4]||",
"bit": {
"type": "learning-path-book",
"format": "bitmark--",
"body": "First one is the normal reference.\nSecond is the optional property called “referenceEnd”\nAll these bits support all resources (like &website-link, …\nAll of these bits (starting with .learning-path support the following optional properties:",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Skript «Grundausbildung Altersvorsorge»",
"action": "Selbststudium",
"duration": "3600s",
"book": "e-876z78z87og87g8zg",
"reference": "Ref4.2.34",
"referenceEnd": "Ref4.3.1",
"date": "2015-03-25T12:00:00Z",
"location": "Zug",
"list": [
"One",
"Two",
"Three",
"Four"
],
"id": [
"119760"
]
}
}
]
<<<<./tests/learning-path5.bit
[
{
"bitmark": "[.learning-path-external-link]\n[!Skript «Grundausbildung Altersvorsorge»]\n[@action:Selbststudium]\n[@duration:3600s]\n[@book:e-876z78z87og87g8zg][►Ref4.2.34][►Ref4.3.1]\n\nFirst one is the normal reference.\nSecond is the optional property called “referenceEnd”\nAll these bits support all resources (like &website-link, …\nAll of these bits (starting with .learning-path support the following optional properties:\n[@date:2015-03-25T12:00:00Z][@date:2022-04-19T00:00:00]\n[@location:Zug]\n[@list:One]\n[@list:Two]\n[@list:Three]\n[@list:Four]\n[@id:119760]\n[@botAnnounceAt: Allein zu Haus]\n[@botSaveAt:Tagesspiegel]\n[@botSendAt:Tagesspiegel]\n[@botRemindAt: Welche Aussage entspricht]\n[@externalLink: optional property ]\n[@videoCallLink:https://zoom.us/j/96545131108?pwd=RXdvTTVhW1aG1GcWFJeEEvQT09]",
"bit": {
"type": "learning-path-external-link",
"format": "bitmark--",
"body": "First one is the normal reference.\nSecond is the optional property called “referenceEnd”\nAll these bits support all resources (like &website-link, …\nAll of these bits (starting with .learning-path support the following optional properties:\n[@date:2015-03-25T12:00:00Z]",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Skript «Grundausbildung Altersvorsorge»",
"action": "Selbststudium",
"duration": "3600s",
"book": "e-876z78z87og87g8zg",
"reference": "Ref4.2.34",
"referenceEnd": "Ref4.3.1",
"dateEnd": "2022-04-19T00:00:00",
"date": "2015-03-25T12:00:00Z",
"location": "Zug",
"list": [
"One",
"Two",
"Three",
"Four"
],
"id": [
"119760"
],
"botAnnounceAt": "Allein zu Haus",
"botSaveAt": "Tagesspiegel",
"botSendAt": "Tagesspiegel",
"botRemindAt": "Welche Aussage entspricht",
"externalLink": "optional property",
"videoCallLink": "https://zoom.us/j/96545131108?pwd=RXdvTTVhW1aG1GcWFJeEEvQT09"
}
}
]
<<<<./tests/learning-path6.bit
[
{
"bitmark": "[.learning-path-classroom-training]\n[!Skript «Grundausbildung Altersvorsorge»]\n[@action:Selbststudium]\n[@duration:3600s]\n[@book:e-876z78z87og87g8zg][►Ref4.2.34][►Ref4.3.1]\n\nFirst one is the normal reference.\nSecond is the optional property called “referenceEnd”\nAll these bits support all resources (like &website-link, …\nAll of these bits (starting with .learning-path support the following optional properties:\n[@date:2015-03-25T12:00:00Z]\n[@location:Zug]\n[@list:One]\n[@list:Two]\n[@list:Three]\n[@list:Four]\n[@id:119760]\n||[&website-link:https://docs.bitmark.cloud/bit-books/rav/web-resources/video/rav_video.mp4]||",
"bit": {
"type": "learning-path-classroom-training",
"format": "bitmark--",
"body": "First one is the normal reference.\nSecond is the optional property called “referenceEnd”\nAll these bits support all resources (like &website-link, …\nAll of these bits (starting with .learning-path support the following optional properties:",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Skript «Grundausbildung Altersvorsorge»",
"action": "Selbststudium",
"duration": "3600s",
"book": "e-876z78z87og87g8zg",
"reference": "Ref4.2.34",
"referenceEnd": "Ref4.3.1",
"date": "2015-03-25T12:00:00Z",
"location": "Zug",
"list": [
"One",
"Two",
"Three",
"Four"
],
"id": [
"119760"
]
}
},
{
"bitmark": "[.learning-path-external-link]\n[!Grundlagen 1 – Externe Konserve]\n[@action:Selbststudium]\n[@duration: 3600s]\n[@externalLinkText:www.apple.com]\n[@externalLink:https://www.apple.com]\n[@progressPoints:12345]\n[@textReference: foo\nbar baz yoshi@foo.com]",
"bit": {
"type": "learning-path-external-link",
"format": "bitmark--",
"body": "",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Grundlagen 1 – Externe Konserve",
"action": "Selbststudium",
"duration": "3600s",
"externalLinkText": "www.apple.com",
"externalLink": "https://www.apple.com",
"progressPoints": 12345,
"textReference": "foo\nbar baz yoshi@foo.com"
}
},
{
"bitmark": "[.learning-path-classroom-event]\n[!Grundlagen 1]\n[@action:Päsenz-Seminar]\n[@date:2022-10-01T08:00:00CET]\n[@duration:28800s]\n[@location:Zug]\n[@isTracked:true]\n[@isInfoOnly:false]\n[@textReference: foo\nbar\nbaz]",
"bit": {
"type": "learning-path-classroom-event",
"format": "bitmark--",
"body": "",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Grundlagen 1",
"action": "Päsenz-Seminar",
"date": "2022-10-01T08:00:00CET",
"duration": "28800s",
"location": "Zug",
"textReference": "foo\nbar\nbaz"
}
}
]
<<<<./tests/learning-path7.bit
[
{
"bitmark": "[.learning-path-external-link]\n[!Grundlagen 1 – Externe Konserve]\n[@action:Selbststudium]\n[@duration: 3600s]\n[@externalLinkText:www.apple.com]\n[@externalLink:https://www.apple.com]\n[@progressPoints:not12345]",
"bit": {
"type": "learning-path-external-link",
"format": "bitmark--",
"body": "[@progressPoints:not12345]",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Grundlagen 1 – Externe Konserve",
"action": "Selbststudium",
"duration": "3600s",
"externalLinkText": "www.apple.com",
"externalLink": "https://www.apple.com"
},
"errors": [
{
"message": "progressPoints property has to be positive integer value",
"line": 8,
"column": 0,
"errorLine": "[@progressPoints:not12345]"
}
]
},
{
"bitmark": "[.learning-path-classroom-event]\n[!Grundlagen 1]\n[@action:Päsenz-Seminar]\n[@date:2022-10-01T08:00:00CET]\n[@duration:28800s]\n[@location:Zug]\n[@isTracked:trua]\n[@isInfoOnly:felse]",
"bit": {
"type": "learning-path-classroom-event",
"format": "bitmark--",
"body": "[@isTracked:trua]\n[@isInfoOnly:felse]",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"isTracked": true,
"isInfoOnly": false,
"instruction": "Grundlagen 1",
"action": "Päsenz-Seminar",
"date": "2022-10-01T08:00:00CET",
"duration": "28800s",
"location": "Zug"
},
"errors": [
{
"message": "isTracked property has to be true or false",
"line": 8,
"column": 0,
"errorLine": "[@isTracked:trua]"
},
{
"message": "isInfoOnly property has to be true or false",
"line": 9,
"column": 0,
"errorLine": "[@isInfoOnly:felse]"
}
]
}
]
<<<<./tests/book1.bit
[
{
"bitmark": "[.book:text]\n[! this is my book]\n[# Erkundungen]\n[## Deutsch als Fremdsprache]\n[%][%k testing L&D R&D]\n[@subject: Integriertes Kurs- und Arbeitsbuch Sprachniveau B2]\n[@ language:en]\n[@ copyright: © 2012 by A Publisher International Ltd., Zurich, Switzerland]\n[@ skills: reading]\n[@ ageRange: 18, 969]\n[@ complexity: intermediate]\n[@seriesTitle: German as a Foreign Language]\n[@seriesId: com.firstpub.e0111]\n[@numberInSeries: 1]\n[@format: Integrated course and work book]\n[@type: book]\n[@isLiveBook: false]\n[@isSmartBook: false]\n[@isHighQuality: true]",
"bit": {
"type": "book",
"format": "text",
"body": "",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"instruction": "this is my book",
"title": "Erkundungen",
"subtitle": "Deutsch als Fremdsprache",
"lead": "k testing L&D R&D",
"subject": [
"Integriertes Kurs- und Arbeitsbuch Sprachniveau B2"
],
"language": [
"en"
],
"copyright": [
"© 2012 by A Publisher International Ltd., Zurich, Switzerland"
],
"skills": [
"reading"
],
"ageRange": [
"18, 969"
],
"complexity": [
"intermediate"
],
"seriesTitle": [
"German as a Foreign Language"
],
"seriesId": [
"com.firstpub.e0111"
],
"numberInSeries": [
"1"
],
"_format": [
"Integrated course and work book"
],
"_type": [
"book"
],
"isLiveBook": [
"false"
],
"isSmartBook": [
"false"
],
"isHighQuality": [
"true"
]
}
}
]
<<<<./tests/book2.bit
[
{
"bitmark": "[. book \t]\n[%bk2]\n[@authors.name:Anne Buschas]\n[@authors.name:Susanne Raven]\n[@authors.name:Szilvia Szita]\n\n[#Erkundungen B2]\n[##Deutsch als Fremdsprache]\n[@subject: Integriertes Kurs- und Arbeitsbuch]\n\n[@ leave.levelCEFR:B2]\n\n[@ publications:3., veränderte Auflage]\n\n[@ publisher.name:SCHUBERT-Verlag, Leipzig]\n\n[@ISBN:978-3-941323-43-8]",
"bit": {
"type": "book",
"format": "bitmark--",
"body": "",
"item": "bk2",
"hint": "",
"isExample": false,
"example": "",
"authors.name": [
"Anne Buschas",
"Susanne Raven",
"Szilvia Szita"
],
"title": "Erkundungen B2",
"subtitle": "Deutsch als Fremdsprache",
"subject": [
"Integriertes Kurs- und Arbeitsbuch"
],
"leave.levelCEFR": [
"B2"
],
"publications": [
"3., veränderte Auflage"
],
"publisher.name": [
"SCHUBERT-Verlag, Leipzig"
],
"ISBN": [
"978-3-941323-43-8"
]
}
}
]
<<<<./tests/book3.bit
[
{
"bitmark": "[.book&image]\n[! this is my book]\n[# Erkundungen]\n[## Deutsch als Fremdsprache]\n[@ subject: Integriertes Kurs- und Arbeitsbuch Sprachniveau B2]\n[@ language:en]\n[@ copyright: © 2012 by A Publisher International Ltd., Zurich, Switzerland]\n[@ skills: reading]\n[@ ageRange: 18, 969]\n[@ complexity: intermediate]\n[@seriesTitle: German as a Foreign Language]\n[@seriesId: com.firstpub.e0111]\n[@numberInSeries: 1]\n[@format: Integrated course and work book]\n[@type: book]\n[@isLiveBook: false]\n[@isSmartBook: false]\n[@isHighQuality: true]\n\n[&image:https://docs.bitbook.education/bit-books/schubert/schubert_erkundungen_b2/web-resources/images/chapter_images/schubert_b2_images-007-010_1.png]",
"bit": {
"type": "book",
"format": "bitmark--",
"body": "",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"instruction": "this is my book",
"title": "Erkundungen",
"subtitle": "Deutsch als Fremdsprache",
"subject": [
"Integriertes Kurs- und Arbeitsbuch Sprachniveau B2"
],
"language": [
"en"
],
"copyright": [
"© 2012 by A Publisher International Ltd., Zurich, Switzerland"
],
"skills": [
"reading"
],
"ageRange": [
"18, 969"
],
"complexity": [
"intermediate"
],
"seriesTitle": [
"German as a Foreign Language"
],
"seriesId": [
"com.firstpub.e0111"
],
"numberInSeries": [
"1"
],
"_format": [
"Integrated course and work book"
],
"_type": [
"book"
],
"isLiveBook": [
"false"
],
"isSmartBook": [
"false"
],
"isHighQuality": [
"true"
],
"resource": {
"type": "image",
"image": {
"src": "https://docs.bitbook.education/bit-books/schubert/schubert_erkundungen_b2/web-resources/images/chapter_images/schubert_b2_images-007-010_1.png",
"showInIndex": false,
"format": "png",
"width": null,
"height": null,
"alt": "",
"caption": "",
"license": "",
"copyright": ""
}
}
}
}
]
<<<<./tests/book4.bit
[
{
"bitmark": "[.book]\n[^.book]\n[^Kompatibilitätsmodus ]\n[#Microsoft PowerPoint - CFP - Folien [^Kompatibilitätsmodus ]]\n[@authors.name:ami]\nIch habe die __(deutsche)__ Staatsbürgerschaft. Ich bin __(Deutsche[r]). __",
"bit": {
"type": "book",
"format": "bitmark--",
"body": "[^.book]\n[^Kompatibilitätsmodus ]\n\n\nIch habe die __(deutsche)__ Staatsbürgerschaft. Ich bin __(Deutsche[r]). __",
"item": "",
"hint": "",
"isExample": false,
"example": "",
"title": "Microsoft PowerPoint - CFP - Folien [^Kompatibilitätsmodus ]",
"authors.name": [
"ami"
]
}
}
]
<<<<./tests/page1.bit
[
{
"bitmark": "[.page:bitmark++]\n[@ageRange:18][@ageRange:120]\n[@language:en]\n[@language:jp]\n[@language:cn]\n\n**Some bold text,**\nfollowed by some plain text. cloze open close cloze1 book.\n[&image:https://cdn.bitbook.education/cat.jpg]\n\nSome more text.\n::remark::\n::",
"bit": {
"type": "page",
"format": "bitmark++",
"body": "**Some bold text,**\nfollowed by some plain text. cloze open close cloze1 book.\n\n\nSome more text.\n::remark::\n::",
"ageRange": [
"18",
"120"
],
"language": [
"en",
"jp",
"cn"
]
},
"parser": {
"excessResources": [
{
"type": "image",
"format": "jpg",
"src": "https://cdn.bitbook.education/cat.jpg"
}
]
}
}
]
<<<<./tests/page2.bit
[
{
"bitmark": "[.page:bitmark++]\n**Erfolg um jeden Preis**\n\nImmer, wenn ein Dopingfall durch die Medien geht, melden sich auch die Moralisten zu Wort.\n\n[&image:http://cdn.bitbook.education/publishers/3/books/26363/erfolg.jpg]\n\nWas sind dagegen ein paar anabole Steroide ==anabole Steroide==(*synthetisch hergestellte Mittel zur Leistungssteigerung)==",
"bit": {
"type": "page",
"format": "bitmark++",
"body": "**Erfolg um jeden Preis**\n\nImmer, wenn ein Dopingfall durch die Medien geht, melden sich auch die Moralisten zu Wort.\n\n\n\nWas sind dagegen ein paar anabole Steroide ==anabole Steroide==(*synthetisch hergestellte Mittel zur Leistungssteigerung)=="
},
"parser": {
"excessResources": [
{
"type": "image",
"format": "jpg",
"src": "http://cdn.bitbook.education/publishers/3/books/26363/erfolg.jpg"
}
]
}
}
]
<<<<./tests/article1.bit
[
{
"bitmark": "[.article:bitmark++]\n[@ageRange:18][@ageRange:120]\n[@language:en]\n[@language:jp]\n[@language:cn]\n\n**Some bold text,**\nfollowed by some plain text. cloze open close cloze1 book.\n[&image:https://cdn.bitbook.education/cat.jpg]\n\nSome more text.\n::remark::\n::",
"bit": {
"type": "article",
"format": "bitmark++",
"body": "**Some bold text,**\nfollowed by some plain text. cloze open close cloze1 book.\n\n\nSome more text.\n::remark::\n::",
"ageRange": [
"18",
"120"
],
"language": [
"en",
"jp",
"cn"
]
},
"parser": {
"excessResources": [
{
"type": "image",
"format": "jpg",
"src": "https://cdn.bitbook.education/cat.jpg"
}
]
}
}
]
<<<<./tests/article2.bit
[
{
"bitmark": "[.essay&article]\n[!Fassen Sie den Text kurz mit eigenen Worten zusammen.]",
"bit": {
"type": "essay",
"format": "bitmark--",
"instruction": "Fassen Sie den Text kurz mit eigenen Worten zusammen.",
"partialAnswer": "",
"body": "",
"item": "",
"hint": "",
"isExample": false,
"example": ""
}
},
{
"bitmark": "[.article:bitmark++]\n**Erfolg um jeden Preis**\n\nImmer, wenn ein Dopingfall durch die Medien geht, melden sich auch die Moralisten zu Wort.\n\n[&image:http://cdn.bitbook.education/publishers/3/books/26363/erfolg.jpg]\n\nWas sind dagegen ein paar anabole Steroide ==anabole Steroide==(*synthetisch hergestellte Mittel zur Leistungssteigerung)==",
"bit": {
"type": "article",
"format": "bitmark++",
"body": "**Erfolg um jeden Preis**\n\nImmer, wenn ein Dopingfall durch die Medien geht, melden sich auch die Moralisten zu Wort.\n\n\n\nWas sind dagegen ein paar anabole Steroide ==anabole Steroide==(*synthetisch hergestellte Mittel zur Leistungssteigerung)=="
},
"parser": {
"excessResources": [
{
"type": "image",
"format": "jpg",
"src": "http://cdn.bitbook.education/publishers/3/books/26363/erfolg.jpg"
}
]
}
}
]
<<<<./tests/article6.bit
[
{
"bitmark": "[.newspaper-article]\n[@ageRange:18][@ageRange:120]\n[@language:jp]\n\n「和歌山発電所は今回の事件とは別に、和歌山県日高川町で計画された出力47メガワット(MW)のメガソーラーです。’17年にトライベイと東京のJ社が別会社をつくって開発していた。別会社の登記簿によると代表社員はトライベイ、職務執行者は清志氏です」(全国紙記者)",
"bit": {
"type": "newspaper-article",
"format": "bitmark--",
"body": "「和歌山発電所は今回の事件とは別に、和歌山県日高川町で計画された出力47メガワット(MW)のメガソーラーです。’17年にトライベイと東京のJ社が別会社をつくって開発していた。別会社の登記簿によると代表社員はトライベイ、職務執行者は清志氏です」(全国紙記者)",
"item": "",
"hint": "",
"isExample": false,