refactor: clean up parser test code (#56271)

This commit is contained in:
Oliver Eyton-Williams
2024-09-25 09:34:27 +02:00
committed by GitHub
parent c3cebba832
commit 435cbc0024
97 changed files with 1006 additions and 15002 deletions
@@ -1,95 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 5, "column": 1, "offset": 34 },
"end": { "line": 10, "column": 4, "offset": 79 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 12, "column": 1, "offset": 81 },
"end": { "line": 16, "column": 4, "offset": 121 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "key-for-css" },
"children": [],
"position": {
"start": { "line": 18, "column": 1, "offset": 123 },
"end": { "line": 18, "column": 19, "offset": 141 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "key-for-js" },
"children": [],
"position": {
"start": { "line": 20, "column": 1, "offset": 143 },
"end": { "line": 20, "column": 18, "offset": 160 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 22, "column": 1, "offset": 162 },
"end": { "line": 24, "column": 4, "offset": 184 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 25, "column": 1, "offset": 185 }
}
}
@@ -1,617 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 19, "offset": 76 },
"indent": []
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 19, "offset": 76 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 91 },
"end": { "line": 15, "column": 4, "offset": 117 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 17, "column": 3, "offset": 121 },
"end": { "line": 17, "column": 12, "offset": 130 },
"indent": []
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 119 },
"end": { "line": 17, "column": 12, "offset": 130 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-1",
"label": "test-id-1",
"referenceType": "shortcut",
"alt": "test-id-1",
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 13, "offset": 144 },
"indent": []
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 13, "offset": 144 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 21, "column": 1, "offset": 146 },
"end": { "line": 21, "column": 11, "offset": 156 },
"indent": []
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 146 },
"end": { "line": 21, "column": 11, "offset": 156 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 23, "column": 1, "offset": 158 },
"end": { "line": 25, "column": 4, "offset": 180 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-2",
"label": "test-id-2",
"referenceType": "shortcut",
"alt": "test-id-2",
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 27, "column": 13, "offset": 194 },
"indent": []
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 27, "column": 13, "offset": 194 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 29, "column": 1, "offset": 196 },
"end": { "line": 29, "column": 18, "offset": 213 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 29, "column": 18, "offset": 213 },
"end": { "line": 29, "column": 24, "offset": 219 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 29, "column": 24, "offset": 219 },
"end": { "line": 29, "column": 28, "offset": 223 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 29, "column": 28, "offset": 223 },
"end": { "line": 29, "column": 35, "offset": 230 },
"indent": []
}
}
],
"position": {
"start": { "line": 29, "column": 1, "offset": 196 },
"end": { "line": 29, "column": 35, "offset": 230 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 31, "column": 1, "offset": 232 },
"end": { "line": 33, "column": 4, "offset": 259 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-3",
"label": "test-id-3",
"referenceType": "shortcut",
"alt": "test-id-3",
"position": {
"start": { "line": 35, "column": 1, "offset": 261 },
"end": { "line": 35, "column": 13, "offset": 273 },
"indent": []
}
}
],
"position": {
"start": { "line": 35, "column": 1, "offset": 261 },
"end": { "line": 35, "column": 13, "offset": 273 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Third ",
"position": {
"start": { "line": 37, "column": 1, "offset": 275 },
"end": { "line": 37, "column": 7, "offset": 281 },
"indent": []
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "hint",
"position": {
"start": { "line": 37, "column": 8, "offset": 282 },
"end": { "line": 37, "column": 12, "offset": 286 },
"indent": []
}
}
],
"position": {
"start": { "line": 37, "column": 7, "offset": 281 },
"end": { "line": 37, "column": 13, "offset": 287 },
"indent": []
}
},
{
"type": "text",
"value": " with ",
"position": {
"start": { "line": 37, "column": 13, "offset": 287 },
"end": { "line": 37, "column": 19, "offset": 293 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 37, "column": 19, "offset": 293 },
"end": { "line": 37, "column": 25, "offset": 299 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 37, "column": 25, "offset": 299 },
"end": { "line": 37, "column": 29, "offset": 303 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 37, "column": 29, "offset": 303 },
"end": { "line": 37, "column": 36, "offset": 310 },
"indent": []
}
},
{
"type": "text",
"value": " and ",
"position": {
"start": { "line": 37, "column": 36, "offset": 310 },
"end": { "line": 37, "column": 41, "offset": 315 },
"indent": []
}
},
{
"type": "inlineCode",
"value": "inline code",
"position": {
"start": { "line": 37, "column": 41, "offset": 315 },
"end": { "line": 37, "column": 54, "offset": 328 },
"indent": []
}
}
],
"position": {
"start": { "line": 37, "column": 1, "offset": 275 },
"end": { "line": 37, "column": 54, "offset": 328 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code\nif(let x of xs) {\n console.log(x);\n}",
"position": {
"start": { "line": 39, "column": 1, "offset": 330 },
"end": { "line": 44, "column": 4, "offset": 395 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 46, "column": 3, "offset": 399 },
"end": { "line": 46, "column": 11, "offset": 407 },
"indent": []
}
}
],
"position": {
"start": { "line": 46, "column": 1, "offset": 397 },
"end": { "line": 46, "column": 11, "offset": 407 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 48, "column": 4, "offset": 412 },
"end": { "line": 48, "column": 24, "offset": 432 },
"indent": []
}
}
],
"position": {
"start": { "line": 48, "column": 1, "offset": 409 },
"end": { "line": 48, "column": 24, "offset": 432 },
"indent": []
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n etc: ''\n}",
"position": {
"start": { "line": 50, "column": 1, "offset": 434 },
"end": { "line": 54, "column": 4, "offset": 463 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<!-- comment -->",
"position": {
"start": { "line": 56, "column": 1, "offset": 465 },
"end": { "line": 58, "column": 4, "offset": 493 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 60, "column": 4, "offset": 498 },
"end": { "line": 60, "column": 21, "offset": 515 },
"indent": []
}
}
],
"position": {
"start": { "line": 60, "column": 1, "offset": 495 },
"end": { "line": 60, "column": 21, "offset": 515 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 62, "column": 1, "offset": 517 },
"end": { "line": 67, "column": 4, "offset": 562 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 69, "column": 1, "offset": 564 },
"end": { "line": 73, "column": 4, "offset": 604 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 75, "column": 1, "offset": 606 },
"end": { "line": 77, "column": 4, "offset": 628 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 79, "column": 4, "offset": 633 },
"end": { "line": 79, "column": 23, "offset": 652 },
"indent": []
}
}
],
"position": {
"start": { "line": 79, "column": 1, "offset": 630 },
"end": { "line": 79, "column": 23, "offset": 652 },
"indent": []
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: blue;\n}",
"position": {
"start": { "line": 81, "column": 1, "offset": 654 },
"end": { "line": 85, "column": 4, "offset": 693 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "function teardown(params) {\n // after\n}",
"position": {
"start": { "line": 87, "column": 1, "offset": 695 },
"end": { "line": 91, "column": 4, "offset": 745 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 94, "column": 3, "offset": 750 },
"end": { "line": 94, "column": 15, "offset": 762 },
"indent": []
}
}
],
"position": {
"start": { "line": 94, "column": 1, "offset": 748 },
"end": { "line": 94, "column": 15, "offset": 762 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "html-key",
"label": "html-key",
"referenceType": "shortcut",
"alt": "html-key",
"position": {
"start": { "line": 96, "column": 1, "offset": 764 },
"end": { "line": 96, "column": 12, "offset": 775 },
"indent": []
}
}
],
"position": {
"start": { "line": 96, "column": 1, "offset": 764 },
"end": { "line": 96, "column": 12, "offset": 775 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 98, "column": 1, "offset": 777 },
"end": { "line": 103, "column": 4, "offset": 822 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 105, "column": 1, "offset": 824 },
"end": { "line": 109, "column": 4, "offset": 864 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';\n``\n",
"position": {
"start": { "line": 111, "column": 1, "offset": 866 },
"end": { "line": 114, "column": 1, "offset": 888 },
"indent": [1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 114, "column": 1, "offset": 888 }
}
}
@@ -1,502 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 19, "offset": 76 },
"indent": []
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 19, "offset": 76 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 91 },
"end": { "line": 15, "column": 4, "offset": 117 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 17, "column": 3, "offset": 121 },
"end": { "line": 17, "column": 12, "offset": 130 },
"indent": []
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 119 },
"end": { "line": 17, "column": 12, "offset": 130 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-1",
"label": "test-id-1",
"referenceType": "shortcut",
"alt": "test-id-1",
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 13, "offset": 144 },
"indent": []
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 13, "offset": 144 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 21, "column": 1, "offset": 146 },
"end": { "line": 23, "column": 4, "offset": 168 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 25, "column": 1, "offset": 170 },
"end": { "line": 25, "column": 11, "offset": 180 },
"indent": []
}
}
],
"position": {
"start": { "line": 25, "column": 1, "offset": 170 },
"end": { "line": 25, "column": 11, "offset": 180 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 27, "column": 18, "offset": 199 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 27, "column": 18, "offset": 199 },
"end": { "line": 27, "column": 24, "offset": 205 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 27, "column": 24, "offset": 205 },
"end": { "line": 27, "column": 28, "offset": 209 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 27, "column": 28, "offset": 209 },
"end": { "line": 27, "column": 35, "offset": 216 },
"indent": []
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 27, "column": 35, "offset": 216 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-2",
"label": "test-id-2",
"referenceType": "shortcut",
"alt": "test-id-2",
"position": {
"start": { "line": 29, "column": 1, "offset": 218 },
"end": { "line": 29, "column": 13, "offset": 230 },
"indent": []
}
}
],
"position": {
"start": { "line": 29, "column": 1, "offset": 218 },
"end": { "line": 29, "column": 13, "offset": 230 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 31, "column": 1, "offset": 232 },
"end": { "line": 33, "column": 4, "offset": 259 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-3",
"label": "test-id-3",
"referenceType": "shortcut",
"alt": "test-id-3",
"position": {
"start": { "line": 35, "column": 1, "offset": 261 },
"end": { "line": 35, "column": 13, "offset": 273 },
"indent": []
}
}
],
"position": {
"start": { "line": 35, "column": 1, "offset": 261 },
"end": { "line": 35, "column": 13, "offset": 273 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Third ",
"position": {
"start": { "line": 37, "column": 1, "offset": 275 },
"end": { "line": 37, "column": 7, "offset": 281 },
"indent": []
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "hint",
"position": {
"start": { "line": 37, "column": 8, "offset": 282 },
"end": { "line": 37, "column": 12, "offset": 286 },
"indent": []
}
}
],
"position": {
"start": { "line": 37, "column": 7, "offset": 281 },
"end": { "line": 37, "column": 13, "offset": 287 },
"indent": []
}
},
{
"type": "text",
"value": " with ",
"position": {
"start": { "line": 37, "column": 13, "offset": 287 },
"end": { "line": 37, "column": 19, "offset": 293 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 37, "column": 19, "offset": 293 },
"end": { "line": 37, "column": 25, "offset": 299 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 37, "column": 25, "offset": 299 },
"end": { "line": 37, "column": 29, "offset": 303 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 37, "column": 29, "offset": 303 },
"end": { "line": 37, "column": 36, "offset": 310 },
"indent": []
}
},
{
"type": "text",
"value": " and ",
"position": {
"start": { "line": 37, "column": 36, "offset": 310 },
"end": { "line": 37, "column": 41, "offset": 315 },
"indent": []
}
},
{
"type": "inlineCode",
"value": "inline code",
"position": {
"start": { "line": 37, "column": 41, "offset": 315 },
"end": { "line": 37, "column": 54, "offset": 328 },
"indent": []
}
}
],
"position": {
"start": { "line": 37, "column": 1, "offset": 275 },
"end": { "line": 37, "column": 54, "offset": 328 },
"indent": []
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 40, "column": 3, "offset": 333 },
"end": { "line": 40, "column": 11, "offset": 341 },
"indent": []
}
}
],
"position": {
"start": { "line": 40, "column": 1, "offset": 331 },
"end": { "line": 40, "column": 11, "offset": 341 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 42, "column": 1, "offset": 343 },
"end": { "line": 47, "column": 4, "offset": 388 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 49, "column": 1, "offset": 390 },
"end": { "line": 53, "column": 4, "offset": 430 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 55, "column": 1, "offset": 432 },
"end": { "line": 57, "column": 4, "offset": 454 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 60, "column": 3, "offset": 459 },
"end": { "line": 60, "column": 15, "offset": 471 },
"indent": []
}
}
],
"position": {
"start": { "line": 60, "column": 1, "offset": 457 },
"end": { "line": 60, "column": 15, "offset": 471 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "html-key",
"label": "html-key",
"referenceType": "shortcut",
"alt": "html-key",
"position": {
"start": { "line": 62, "column": 1, "offset": 473 },
"end": { "line": 62, "column": 12, "offset": 484 },
"indent": []
}
}
],
"position": {
"start": { "line": 62, "column": 1, "offset": 473 },
"end": { "line": 62, "column": 12, "offset": 484 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 64, "column": 1, "offset": 486 },
"end": { "line": 69, "column": 4, "offset": 531 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 71, "column": 1, "offset": 533 },
"end": { "line": 75, "column": 4, "offset": 573 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';\n``\n",
"position": {
"start": { "line": 77, "column": 1, "offset": 575 },
"end": { "line": 80, "column": 1, "offset": 597 },
"indent": [1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 80, "column": 1, "offset": 597 }
}
}
@@ -1,218 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 24, "offset": 35 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 24, "offset": 35 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n etc: ''\n}",
"position": {
"start": { "line": 5, "column": 1, "offset": 37 },
"end": { "line": 9, "column": 4, "offset": 66 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<!-- comment -->",
"position": {
"start": { "line": 11, "column": 1, "offset": 68 },
"end": { "line": 13, "column": 4, "offset": 96 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 15, "column": 4, "offset": 101 },
"end": { "line": 15, "column": 21, "offset": 118 }
}
}
],
"position": {
"start": { "line": 15, "column": 1, "offset": 98 },
"end": { "line": 15, "column": 21, "offset": 118 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 17, "column": 1, "offset": 120 },
"end": { "line": 22, "column": 4, "offset": 165 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 24, "column": 1, "offset": 167 },
"end": { "line": 28, "column": 4, "offset": 207 }
}
},
{
"type": "code",
"lang": "c",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 30, "column": 1, "offset": 209 },
"end": { "line": 32, "column": 4, "offset": 231 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 34, "column": 4, "offset": 236 },
"end": { "line": 34, "column": 23, "offset": 255 }
}
}
],
"position": {
"start": { "line": 34, "column": 1, "offset": 233 },
"end": { "line": 34, "column": 23, "offset": 255 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: blue;\n}",
"position": {
"start": { "line": 36, "column": 1, "offset": 257 },
"end": { "line": 40, "column": 4, "offset": 296 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "function teardown(params) {\n // after\n}",
"position": {
"start": { "line": 42, "column": 1, "offset": 298 },
"end": { "line": 46, "column": 4, "offset": 348 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 49, "column": 3, "offset": 353 },
"end": { "line": 49, "column": 16, "offset": 366 }
}
}
],
"position": {
"start": { "line": 49, "column": 1, "offset": 351 },
"end": { "line": 49, "column": 16, "offset": 366 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "image",
"title": null,
"url": "",
"alt": "html-key",
"position": {
"start": { "line": 51, "column": 1, "offset": 368 },
"end": { "line": 51, "column": 14, "offset": 381 }
}
}
],
"position": {
"start": { "line": 51, "column": 1, "offset": 368 },
"end": { "line": 51, "column": 14, "offset": 381 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 53, "column": 1, "offset": 383 },
"end": { "line": 58, "column": 4, "offset": 428 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 60, "column": 1, "offset": 430 },
"end": { "line": 64, "column": 4, "offset": 470 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 66, "column": 1, "offset": 472 },
"end": { "line": 68, "column": 4, "offset": 494 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 69, "column": 1, "offset": 495 }
}
}
@@ -1,185 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "textDirective",
"name": "root",
"attributes": {},
"children": [],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 6, "offset": 24 }
}
},
{
"type": "text",
"value": " appears, ",
"position": {
"start": { "line": 3, "column": 6, "offset": 24 },
"end": { "line": 3, "column": 16, "offset": 34 }
}
},
{
"type": "textDirective",
"name": "import",
"attributes": {},
"children": [],
"position": {
"start": { "line": 3, "column": 16, "offset": 34 },
"end": { "line": 3, "column": 23, "offset": 41 }
}
},
{
"type": "text",
"value": " appears",
"position": {
"start": { "line": 3, "column": 23, "offset": 41 },
"end": { "line": 3, "column": 31, "offset": 49 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 31, "offset": 49 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "the next paragraph should appear",
"position": {
"start": { "line": 5, "column": 1, "offset": 51 },
"end": { "line": 5, "column": 33, "offset": 83 }
}
}
],
"position": {
"start": { "line": 5, "column": 1, "offset": 51 },
"end": { "line": 5, "column": 33, "offset": 83 }
}
},
{
"type": "leafDirective",
"name": "import",
"attributes": {},
"children": [],
"position": {
"start": { "line": 7, "column": 1, "offset": 85 },
"end": { "line": 7, "column": 9, "offset": 93 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "even though it's an import directive, but if we use the full syntax ",
"position": {
"start": { "line": 9, "column": 1, "offset": 95 },
"end": { "line": 9, "column": 58, "offset": 152 }
}
},
{
"type": "inlineCode",
"value": "::directive-name{attr=\"name\" attr2=\"a/path\"}",
"position": {
"start": { "line": 9, "column": 58, "offset": 152 },
"end": { "line": 9, "column": 100, "offset": 194 }
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 95 },
"end": { "line": 9, "column": 100, "offset": 194 }
}
},
{
"type": "leafDirective",
"name": "import",
"attributes": { "component": "name", "from": "script.md" },
"children": [],
"position": {
"start": { "line": 11, "column": 1, "offset": 196 },
"end": { "line": 11, "column": 44, "offset": 239 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "it goes.",
"position": {
"start": { "line": 13, "column": 1, "offset": 241 },
"end": { "line": 13, "column": 9, "offset": 249 }
}
}
],
"position": {
"start": { "line": 13, "column": 1, "offset": 241 },
"end": { "line": 13, "column": 9, "offset": 249 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "::: name [inline-content] {key=val}\na container directive\n:::",
"position": {
"start": { "line": 15, "column": 1, "offset": 251 },
"end": { "line": 17, "column": 4, "offset": 312 }
}
}
],
"position": {
"start": { "line": 15, "column": 1, "offset": 251 },
"end": { "line": 17, "column": 4, "offset": 312 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": ":::",
"position": {
"start": { "line": 19, "column": 1, "offset": 314 },
"end": { "line": 19, "column": 4, "offset": 317 }
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 314 },
"end": { "line": 19, "column": 4, "offset": 317 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 20, "column": 1, "offset": 318 }
}
}
@@ -1,82 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 21, "offset": 32 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 21, "offset": 32 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n --fcc-editable-region-- --fcc-editable-region--\n </body>\n</html>",
"position": {
"start": { "line": 5, "column": 1, "offset": 34 },
"end": { "line": 11, "column": 4, "offset": 129 },
"indent": [1, 1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 13, "column": 1, "offset": 131 },
"end": { "line": 17, "column": 4, "offset": 171 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 19, "column": 1, "offset": 173 },
"end": { "line": 21, "column": 4, "offset": 195 },
"indent": [1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 22, "column": 1, "offset": 196 }
}
}
@@ -1,144 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n etc: ''\n}",
"position": {
"start": { "line": 5, "column": 1, "offset": 37 },
"end": { "line": 9, "column": 4, "offset": 66 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<!-- comment -->",
"position": {
"start": { "line": 11, "column": 1, "offset": 68 },
"end": { "line": 13, "column": 4, "offset": 96 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 15, "column": 4, "offset": 101 },
"end": { "line": 15, "column": 21, "offset": 118 },
"indent": []
}
}
],
"position": {
"start": { "line": 15, "column": 1, "offset": 98 },
"end": { "line": 15, "column": 21, "offset": 118 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 17, "column": 1, "offset": 120 },
"end": { "line": 22, "column": 4, "offset": 165 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 24, "column": 1, "offset": 167 },
"end": { "line": 28, "column": 4, "offset": 207 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 30, "column": 1, "offset": 209 },
"end": { "line": 32, "column": 4, "offset": 231 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 34, "column": 4, "offset": 236 },
"end": { "line": 34, "column": 23, "offset": 255 },
"indent": []
}
}
],
"position": {
"start": { "line": 34, "column": 1, "offset": 233 },
"end": { "line": 34, "column": 23, "offset": 255 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 36, "column": 1, "offset": 257 }
}
}
@@ -1,144 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 7, "column": 4, "offset": 42 },
"end": { "line": 7, "column": 21, "offset": 59 },
"indent": []
}
}
],
"position": {
"start": { "line": 7, "column": 1, "offset": 39 },
"end": { "line": 7, "column": 21, "offset": 59 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 9, "column": 1, "offset": 61 },
"end": { "line": 14, "column": 4, "offset": 106 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 16, "column": 1, "offset": 108 },
"end": { "line": 20, "column": 4, "offset": 148 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 22, "column": 1, "offset": 150 },
"end": { "line": 24, "column": 4, "offset": 172 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 26, "column": 4, "offset": 177 },
"end": { "line": 26, "column": 23, "offset": 196 },
"indent": []
}
}
],
"position": {
"start": { "line": 26, "column": 1, "offset": 174 },
"end": { "line": 26, "column": 23, "offset": 196 },
"indent": []
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: blue;\n}",
"position": {
"start": { "line": 28, "column": 1, "offset": 198 },
"end": { "line": 32, "column": 4, "offset": 237 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "function teardown(params) {\n // after\n}",
"position": {
"start": { "line": 34, "column": 1, "offset": 239 },
"end": { "line": 38, "column": 4, "offset": 289 },
"indent": [1, 1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 39, "column": 1, "offset": 290 }
}
}
@@ -1,448 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 19, "offset": 76 }
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 19, "offset": 76 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 }
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 91 },
"end": { "line": 15, "column": 4, "offset": 117 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 17, "column": 3, "offset": 121 },
"end": { "line": 17, "column": 12, "offset": 130 }
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 119 },
"end": { "line": 17, "column": 12, "offset": 130 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 11, "offset": 142 }
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 11, "offset": 142 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 21, "column": 1, "offset": 144 },
"end": { "line": 23, "column": 4, "offset": 166 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 25, "column": 1, "offset": 168 },
"end": { "line": 25, "column": 18, "offset": 185 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 25, "column": 18, "offset": 185 },
"end": { "line": 25, "column": 24, "offset": 191 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 25, "column": 24, "offset": 191 },
"end": { "line": 25, "column": 28, "offset": 195 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 25, "column": 28, "offset": 195 },
"end": { "line": 25, "column": 35, "offset": 202 }
}
}
],
"position": {
"start": { "line": 25, "column": 1, "offset": 168 },
"end": { "line": 25, "column": 35, "offset": 202 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 27, "column": 1, "offset": 204 },
"end": { "line": 29, "column": 4, "offset": 231 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Third ",
"position": {
"start": { "line": 31, "column": 1, "offset": 233 },
"end": { "line": 31, "column": 7, "offset": 239 }
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "hint",
"position": {
"start": { "line": 31, "column": 8, "offset": 240 },
"end": { "line": 31, "column": 12, "offset": 244 }
}
}
],
"position": {
"start": { "line": 31, "column": 7, "offset": 239 },
"end": { "line": 31, "column": 13, "offset": 245 }
}
},
{
"type": "text",
"value": " with ",
"position": {
"start": { "line": 31, "column": 13, "offset": 245 },
"end": { "line": 31, "column": 19, "offset": 251 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 31, "column": 19, "offset": 251 },
"end": { "line": 31, "column": 25, "offset": 257 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 31, "column": 25, "offset": 257 },
"end": { "line": 31, "column": 29, "offset": 261 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 31, "column": 29, "offset": 261 },
"end": { "line": 31, "column": 36, "offset": 268 }
}
},
{
"type": "text",
"value": " and ",
"position": {
"start": { "line": 31, "column": 36, "offset": 268 },
"end": { "line": 31, "column": 41, "offset": 273 }
}
},
{
"type": "inlineCode",
"value": "inline code",
"position": {
"start": { "line": 31, "column": 41, "offset": 273 },
"end": { "line": 31, "column": 54, "offset": 286 }
}
}
],
"position": {
"start": { "line": 31, "column": 1, "offset": 233 },
"end": { "line": 31, "column": 54, "offset": 286 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code\nif(let x of xs) {\n console.log(x);\n}",
"position": {
"start": { "line": 33, "column": 1, "offset": 288 },
"end": { "line": 38, "column": 4, "offset": 353 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 40, "column": 3, "offset": 357 },
"end": { "line": 40, "column": 11, "offset": 365 }
}
}
],
"position": {
"start": { "line": 40, "column": 1, "offset": 355 },
"end": { "line": 40, "column": 11, "offset": 365 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 42, "column": 4, "offset": 370 },
"end": { "line": 42, "column": 24, "offset": 390 }
}
}
],
"position": {
"start": { "line": 42, "column": 1, "offset": 367 },
"end": { "line": 42, "column": 24, "offset": 390 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n etc: ''\n}",
"position": {
"start": { "line": 44, "column": 1, "offset": 392 },
"end": { "line": 48, "column": 4, "offset": 421 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<!-- comment -->",
"position": {
"start": { "line": 50, "column": 1, "offset": 423 },
"end": { "line": 52, "column": 4, "offset": 451 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 54, "column": 4, "offset": 456 },
"end": { "line": 54, "column": 23, "offset": 475 }
}
}
],
"position": {
"start": { "line": 54, "column": 1, "offset": 453 },
"end": { "line": 54, "column": 23, "offset": 475 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: blue;\n}",
"position": {
"start": { "line": 56, "column": 1, "offset": 477 },
"end": { "line": 60, "column": 4, "offset": 516 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "function teardown(params) {\n // after\n}",
"position": {
"start": { "line": 62, "column": 1, "offset": 518 },
"end": { "line": 66, "column": 4, "offset": 568 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 69, "column": 3, "offset": 573 },
"end": { "line": 69, "column": 16, "offset": 586 }
}
}
],
"position": {
"start": { "line": 69, "column": 1, "offset": 571 },
"end": { "line": 69, "column": 16, "offset": 586 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "image",
"title": null,
"url": "",
"alt": "html-key",
"position": {
"start": { "line": 71, "column": 1, "offset": 588 },
"end": { "line": 71, "column": 14, "offset": 601 }
}
}
],
"position": {
"start": { "line": 71, "column": 1, "offset": 588 },
"end": { "line": 71, "column": 14, "offset": 601 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 73, "column": 1, "offset": 603 },
"end": { "line": 78, "column": 4, "offset": 648 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 80, "column": 1, "offset": 650 },
"end": { "line": 84, "column": 4, "offset": 690 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';\n``",
"position": {
"start": { "line": 86, "column": 1, "offset": 692 },
"end": { "line": 89, "column": 1, "offset": 714 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 89, "column": 1, "offset": 714 }
}
}
@@ -1,166 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n etc: ''\n}",
"position": {
"start": { "line": 5, "column": 1, "offset": 37 },
"end": { "line": 9, "column": 4, "offset": 66 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<!-- comment -->",
"position": {
"start": { "line": 11, "column": 1, "offset": 68 },
"end": { "line": 13, "column": 4, "offset": 96 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 15, "column": 4, "offset": 101 },
"end": { "line": 15, "column": 21, "offset": 118 },
"indent": []
}
}
],
"position": {
"start": { "line": 15, "column": 1, "offset": 98 },
"end": { "line": 15, "column": 21, "offset": 118 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 17, "column": 1, "offset": 120 },
"end": { "line": 22, "column": 4, "offset": 165 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 24, "column": 1, "offset": 167 },
"end": { "line": 28, "column": 4, "offset": 207 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 30, "column": 1, "offset": 209 },
"end": { "line": 32, "column": 4, "offset": 231 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 34, "column": 4, "offset": 236 },
"end": { "line": 34, "column": 23, "offset": 255 },
"indent": []
}
}
],
"position": {
"start": { "line": 34, "column": 1, "offset": 233 },
"end": { "line": 34, "column": 23, "offset": 255 },
"indent": []
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "",
"position": {
"start": { "line": 36, "column": 1, "offset": 257 },
"end": { "line": 37, "column": 4, "offset": 267 },
"indent": [1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "function teardown(params) {\n // after\n}",
"position": {
"start": { "line": 39, "column": 1, "offset": 269 },
"end": { "line": 43, "column": 4, "offset": 319 },
"indent": [1, 1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 44, "column": 1, "offset": 320 }
}
}
@@ -1,166 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n etc: ''\n}",
"position": {
"start": { "line": 5, "column": 1, "offset": 37 },
"end": { "line": 9, "column": 4, "offset": 66 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "",
"position": {
"start": { "line": 11, "column": 1, "offset": 68 },
"end": { "line": 12, "column": 4, "offset": 79 },
"indent": [1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 14, "column": 4, "offset": 84 },
"end": { "line": 14, "column": 21, "offset": 101 },
"indent": []
}
}
],
"position": {
"start": { "line": 14, "column": 1, "offset": 81 },
"end": { "line": 14, "column": 21, "offset": 101 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 16, "column": 1, "offset": 103 },
"end": { "line": 21, "column": 4, "offset": 148 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 23, "column": 1, "offset": 150 },
"end": { "line": 27, "column": 4, "offset": 190 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 29, "column": 1, "offset": 192 },
"end": { "line": 31, "column": 4, "offset": 214 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 33, "column": 4, "offset": 219 },
"end": { "line": 33, "column": 23, "offset": 238 },
"indent": []
}
}
],
"position": {
"start": { "line": 33, "column": 1, "offset": 216 },
"end": { "line": 33, "column": 23, "offset": 238 },
"indent": []
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: blue;\n}",
"position": {
"start": { "line": 35, "column": 1, "offset": 240 },
"end": { "line": 39, "column": 4, "offset": 279 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "function teardown(params) {\n // after\n}",
"position": {
"start": { "line": 41, "column": 1, "offset": 281 },
"end": { "line": 45, "column": 4, "offset": 331 },
"indent": [1, 1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 46, "column": 1, "offset": 332 }
}
}
@@ -1,133 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 5, "column": 1, "offset": 34 },
"end": { "line": 10, "column": 4, "offset": 79 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 12, "column": 1, "offset": 81 },
"end": { "line": 16, "column": 4, "offset": 121 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 18, "column": 1, "offset": 123 },
"end": { "line": 20, "column": 4, "offset": 145 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 23, "column": 3, "offset": 150 },
"end": { "line": 23, "column": 16, "offset": 163 }
}
}
],
"position": {
"start": { "line": 23, "column": 1, "offset": 148 },
"end": { "line": 23, "column": 16, "offset": 163 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "html-key" },
"children": [],
"position": {
"start": { "line": 25, "column": 1, "offset": 165 },
"end": { "line": 25, "column": 16, "offset": 180 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 32, "column": 4, "offset": 227 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n--fcc-editable-region--\n background: white;\n--fcc-editable-region--\n}",
"position": {
"start": { "line": 34, "column": 1, "offset": 229 },
"end": { "line": 40, "column": 4, "offset": 317 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 42, "column": 1, "offset": 319 },
"end": { "line": 44, "column": 4, "offset": 341 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 45, "column": 1, "offset": 342 }
}
}
@@ -1,533 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 19, "offset": 76 },
"indent": []
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 19, "offset": 76 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 91 },
"end": { "line": 15, "column": 4, "offset": 117 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 17, "column": 3, "offset": 121 },
"end": { "line": 17, "column": 12, "offset": 130 },
"indent": []
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 119 },
"end": { "line": 17, "column": 12, "offset": 130 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-1",
"label": "test-id-1",
"referenceType": "shortcut",
"alt": "test-id-1",
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 13, "offset": 144 },
"indent": []
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 13, "offset": 144 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 21, "column": 1, "offset": 146 },
"end": { "line": 21, "column": 11, "offset": 156 },
"indent": []
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 146 },
"end": { "line": 21, "column": 11, "offset": 156 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 23, "column": 1, "offset": 158 },
"end": { "line": 25, "column": 4, "offset": 180 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-2",
"label": "test-id-2",
"referenceType": "shortcut",
"alt": "test-id-2",
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 27, "column": 13, "offset": 194 },
"indent": []
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 27, "column": 13, "offset": 194 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 29, "column": 1, "offset": 196 },
"end": { "line": 29, "column": 18, "offset": 213 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 29, "column": 18, "offset": 213 },
"end": { "line": 29, "column": 24, "offset": 219 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 29, "column": 24, "offset": 219 },
"end": { "line": 29, "column": 28, "offset": 223 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 29, "column": 28, "offset": 223 },
"end": { "line": 29, "column": 35, "offset": 230 },
"indent": []
}
}
],
"position": {
"start": { "line": 29, "column": 1, "offset": 196 },
"end": { "line": 29, "column": 35, "offset": 230 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 31, "column": 1, "offset": 232 },
"end": { "line": 33, "column": 4, "offset": 259 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-3",
"label": "test-id-3",
"referenceType": "shortcut",
"alt": "test-id-3",
"position": {
"start": { "line": 35, "column": 1, "offset": 261 },
"end": { "line": 35, "column": 13, "offset": 273 },
"indent": []
}
}
],
"position": {
"start": { "line": 35, "column": 1, "offset": 261 },
"end": { "line": 35, "column": 13, "offset": 273 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Third ",
"position": {
"start": { "line": 37, "column": 1, "offset": 275 },
"end": { "line": 37, "column": 7, "offset": 281 },
"indent": []
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "hint",
"position": {
"start": { "line": 37, "column": 8, "offset": 282 },
"end": { "line": 37, "column": 12, "offset": 286 },
"indent": []
}
}
],
"position": {
"start": { "line": 37, "column": 7, "offset": 281 },
"end": { "line": 37, "column": 13, "offset": 287 },
"indent": []
}
},
{
"type": "text",
"value": " with ",
"position": {
"start": { "line": 37, "column": 13, "offset": 287 },
"end": { "line": 37, "column": 19, "offset": 293 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 37, "column": 19, "offset": 293 },
"end": { "line": 37, "column": 25, "offset": 299 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 37, "column": 25, "offset": 299 },
"end": { "line": 37, "column": 29, "offset": 303 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 37, "column": 29, "offset": 303 },
"end": { "line": 37, "column": 36, "offset": 310 },
"indent": []
}
},
{
"type": "text",
"value": " and ",
"position": {
"start": { "line": 37, "column": 36, "offset": 310 },
"end": { "line": 37, "column": 41, "offset": 315 },
"indent": []
}
},
{
"type": "inlineCode",
"value": "inline code",
"position": {
"start": { "line": 37, "column": 41, "offset": 315 },
"end": { "line": 37, "column": 54, "offset": 328 },
"indent": []
}
}
],
"position": {
"start": { "line": 37, "column": 1, "offset": 275 },
"end": { "line": 37, "column": 54, "offset": 328 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code\nif(let x of xs) {\n console.log(x);\n}",
"position": {
"start": { "line": 39, "column": 1, "offset": 330 },
"end": { "line": 44, "column": 4, "offset": 395 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 46, "column": 3, "offset": 399 },
"end": { "line": 46, "column": 11, "offset": 407 },
"indent": []
}
}
],
"position": {
"start": { "line": 46, "column": 1, "offset": 397 },
"end": { "line": 46, "column": 11, "offset": 407 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 48, "column": 4, "offset": 412 },
"end": { "line": 48, "column": 21, "offset": 429 },
"indent": []
}
}
],
"position": {
"start": { "line": 48, "column": 1, "offset": 409 },
"end": { "line": 48, "column": 21, "offset": 429 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body></body>\n</html>",
"position": {
"start": { "line": 50, "column": 1, "offset": 431 },
"end": { "line": 54, "column": 4, "offset": 473 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n--fcc-editable-region--\n background: green;\n\n--fcc-editable-region--\n}",
"position": {
"start": { "line": 56, "column": 1, "offset": 475 },
"end": { "line": 63, "column": 4, "offset": 564 },
"indent": [1, 1, 1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "--fcc - editable - region--;\nvar x = 'y';",
"position": {
"start": { "line": 65, "column": 1, "offset": 566 },
"end": { "line": 68, "column": 4, "offset": 617 },
"indent": [1, 1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 70, "column": 3, "offset": 621 },
"end": { "line": 70, "column": 16, "offset": 634 },
"indent": []
}
}
],
"position": {
"start": { "line": 70, "column": 1, "offset": 619 },
"end": { "line": 70, "column": 16, "offset": 634 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "html-key",
"label": "html-key",
"referenceType": "shortcut",
"alt": "html-key",
"position": {
"start": { "line": 72, "column": 1, "offset": 636 },
"end": { "line": 72, "column": 12, "offset": 647 },
"indent": []
}
}
],
"position": {
"start": { "line": 72, "column": 1, "offset": 636 },
"end": { "line": 72, "column": 12, "offset": 647 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body></body>\n</html>",
"position": {
"start": { "line": 74, "column": 1, "offset": 649 },
"end": { "line": 78, "column": 4, "offset": 691 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 80, "column": 1, "offset": 693 },
"end": { "line": 84, "column": 4, "offset": 733 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 86, "column": 1, "offset": 735 },
"end": { "line": 88, "column": 4, "offset": 757 },
"indent": [1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 89, "column": 1, "offset": 758 }
}
}
@@ -1,427 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "a heading",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 12, "offset": 69 },
"indent": []
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 12, "offset": 69 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "this should still be inside --description--",
"position": {
"start": { "line": 11, "column": 1, "offset": 71 },
"end": { "line": 11, "column": 44, "offset": 114 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 71 },
"end": { "line": 11, "column": 44, "offset": 114 },
"indent": []
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 13, "column": 3, "offset": 118 },
"end": { "line": 13, "column": 19, "offset": 134 },
"indent": []
}
}
],
"position": {
"start": { "line": 13, "column": 1, "offset": 116 },
"end": { "line": 13, "column": 19, "offset": 134 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 15, "column": 1, "offset": 136 },
"end": { "line": 15, "column": 12, "offset": 147 },
"indent": []
}
}
],
"position": {
"start": { "line": 15, "column": 1, "offset": 136 },
"end": { "line": 15, "column": 12, "offset": 147 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 17, "column": 1, "offset": 149 },
"end": { "line": 19, "column": 4, "offset": 175 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 21, "column": 3, "offset": 179 },
"end": { "line": 21, "column": 12, "offset": 188 },
"indent": []
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 177 },
"end": { "line": 21, "column": 12, "offset": 188 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-1",
"label": "test-id-1",
"referenceType": "shortcut",
"alt": "test-id-1",
"position": {
"start": { "line": 23, "column": 1, "offset": 190 },
"end": { "line": 23, "column": 13, "offset": 202 },
"indent": []
}
}
],
"position": {
"start": { "line": 23, "column": 1, "offset": 190 },
"end": { "line": 23, "column": 13, "offset": 202 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 25, "column": 1, "offset": 204 },
"end": { "line": 25, "column": 11, "offset": 214 },
"indent": []
}
}
],
"position": {
"start": { "line": 25, "column": 1, "offset": 204 },
"end": { "line": 25, "column": 11, "offset": 214 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 27, "column": 1, "offset": 216 },
"end": { "line": 29, "column": 4, "offset": 238 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-2",
"label": "test-id-2",
"referenceType": "shortcut",
"alt": "test-id-2",
"position": {
"start": { "line": 31, "column": 1, "offset": 240 },
"end": { "line": 31, "column": 13, "offset": 252 },
"indent": []
}
}
],
"position": {
"start": { "line": 31, "column": 1, "offset": 240 },
"end": { "line": 31, "column": 13, "offset": 252 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 33, "column": 1, "offset": 254 },
"end": { "line": 33, "column": 18, "offset": 271 },
"indent": []
}
},
{
"type": "jsx",
"value": "<code>",
"position": {
"start": { "line": 33, "column": 18, "offset": 271 },
"end": { "line": 33, "column": 24, "offset": 277 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 33, "column": 24, "offset": 277 },
"end": { "line": 33, "column": 28, "offset": 281 },
"indent": []
}
},
{
"type": "jsx",
"value": "</code>",
"position": {
"start": { "line": 33, "column": 28, "offset": 281 },
"end": { "line": 33, "column": 35, "offset": 288 },
"indent": []
}
}
],
"position": {
"start": { "line": 33, "column": 1, "offset": 254 },
"end": { "line": 33, "column": 35, "offset": 288 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 35, "column": 1, "offset": 290 },
"end": { "line": 37, "column": 4, "offset": 317 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 39, "column": 3, "offset": 321 },
"end": { "line": 39, "column": 11, "offset": 329 },
"indent": []
}
}
],
"position": {
"start": { "line": 39, "column": 1, "offset": 319 },
"end": { "line": 39, "column": 11, "offset": 329 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 41, "column": 1, "offset": 331 },
"end": { "line": 46, "column": 4, "offset": 376 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 48, "column": 1, "offset": 378 },
"end": { "line": 52, "column": 4, "offset": 418 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 54, "column": 1, "offset": 420 },
"end": { "line": 56, "column": 4, "offset": 442 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 59, "column": 3, "offset": 447 },
"end": { "line": 59, "column": 15, "offset": 459 },
"indent": []
}
}
],
"position": {
"start": { "line": 59, "column": 1, "offset": 445 },
"end": { "line": 59, "column": 15, "offset": 459 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "html-key",
"label": "html-key",
"referenceType": "shortcut",
"alt": "html-key",
"position": {
"start": { "line": 61, "column": 1, "offset": 461 },
"end": { "line": 61, "column": 12, "offset": 472 },
"indent": []
}
}
],
"position": {
"start": { "line": 61, "column": 1, "offset": 461 },
"end": { "line": 61, "column": 12, "offset": 472 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 63, "column": 1, "offset": 474 },
"end": { "line": 68, "column": 4, "offset": 519 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 70, "column": 1, "offset": 521 },
"end": { "line": 74, "column": 4, "offset": 561 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';\n``\n",
"position": {
"start": { "line": 76, "column": 1, "offset": 563 },
"end": { "line": 79, "column": 1, "offset": 585 },
"indent": [1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 79, "column": 1, "offset": 585 }
}
}
@@ -1,563 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": {
"line": 1,
"column": 3,
"offset": 2
},
"end": {
"line": 1,
"column": 18,
"offset": 17
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 1,
"column": 18,
"offset": 17
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "In English, to check or confirm something people sometimes use tag questions. For example, ",
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 19
},
"end": {
"line": 3,
"column": 92,
"offset": 110
}
}
},
{
"type": "inlineCode",
"value": "You are a programmer, right?",
"position": {
"start": {
"line": 3,
"column": 92,
"offset": 110
},
"end": {
"line": 3,
"column": 122,
"offset": 140
}
}
},
{
"type": "text",
"value": " Here, ",
"position": {
"start": {
"line": 3,
"column": 122,
"offset": 140
},
"end": {
"line": 3,
"column": 129,
"offset": 147
}
}
},
{
"type": "inlineCode",
"value": "right?",
"position": {
"start": {
"line": 3,
"column": 129,
"offset": 147
},
"end": {
"line": 3,
"column": 137,
"offset": 155
}
}
},
{
"type": "text",
"value": " is used as a tag to check or confirm the previous statement.",
"position": {
"start": {
"line": 3,
"column": 137,
"offset": 155
},
"end": {
"line": 3,
"column": 198,
"offset": 216
}
}
}
],
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 19
},
"end": {
"line": 3,
"column": 198,
"offset": 216
}
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--fillInTheBlank--",
"position": {
"start": {
"line": 5,
"column": 3,
"offset": 220
},
"end": {
"line": 5,
"column": 21,
"offset": 238
}
}
}
],
"position": {
"start": {
"line": 5,
"column": 1,
"offset": 218
},
"end": {
"line": 5,
"column": 21,
"offset": 238
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--sentence--",
"position": {
"start": {
"line": 7,
"column": 4,
"offset": 243
},
"end": {
"line": 7,
"column": 16,
"offset": 255
}
}
}
],
"position": {
"start": {
"line": 7,
"column": 1,
"offset": 240
},
"end": {
"line": 7,
"column": 16,
"offset": 255
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "A sentence BLANK paragraph 1",
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 257
},
"end": {
"line": 9,
"column": 27,
"offset": 283
}
}
},
{
"type": "text",
"value": "\n",
"position": {
"start": {
"line": 9,
"column": 27,
"offset": 283
},
"end": {
"line": 10,
"column": 1,
"offset": 284
}
}
},
{
"type": "inlineCode",
"value": "not enough newlines, so no paragraph 2",
"position": {
"start": {
"line": 10,
"column": 1,
"offset": 284
},
"end": {
"line": 10,
"column": 41,
"offset": 324
}
}
}
],
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 257
},
"end": {
"line": 10,
"column": 41,
"offset": 324
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Sentence in BLANK 2",
"position": {
"start": {
"line": 12,
"column": 1,
"offset": 326
},
"end": {
"line": 12,
"column": 16,
"offset": 341
}
}
}
],
"position": {
"start": {
"line": 12,
"column": 1,
"offset": 326
},
"end": {
"line": 12,
"column": 16,
"offset": 341
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--blanks--",
"position": {
"start": {
"line": 14,
"column": 4,
"offset": 346
},
"end": {
"line": 14,
"column": 14,
"offset": 356
}
}
}
],
"position": {
"start": {
"line": 14,
"column": 1,
"offset": 343
},
"end": {
"line": 14,
"column": 14,
"offset": 356
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "are",
"position": {
"start": {
"line": 16,
"column": 1,
"offset": 358
},
"end": {
"line": 16,
"column": 6,
"offset": 363
}
}
}
],
"position": {
"start": {
"line": 16,
"column": 1,
"offset": 358
},
"end": {
"line": 16,
"column": 6,
"offset": 363
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 18,
"column": 5,
"offset": 369
},
"end": {
"line": 18,
"column": 17,
"offset": 381
}
}
}
],
"position": {
"start": {
"line": 18,
"column": 1,
"offset": 365
},
"end": {
"line": 18,
"column": 17,
"offset": 381
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Pay attention to the verb in the sentence.",
"position": {
"start": {
"line": 20,
"column": 1,
"offset": 383
},
"end": {
"line": 20,
"column": 43,
"offset": 425
}
}
}
],
"position": {
"start": {
"line": 20,
"column": 1,
"offset": 383
},
"end": {
"line": 20,
"column": 43,
"offset": 425
}
}
},
{
"type": "thematicBreak",
"position": {
"start": {
"line": 22,
"column": 1,
"offset": 427
},
"end": {
"line": 22,
"column": 4,
"offset": 430
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "right",
"position": {
"start": {
"line": 24,
"column": 1,
"offset": 432
},
"end": {
"line": 24,
"column": 8,
"offset": 439
}
}
}
],
"position": {
"start": {
"line": 24,
"column": 1,
"offset": 432
},
"end": {
"line": 24,
"column": 8,
"offset": 439
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 26,
"column": 5,
"offset": 445
},
"end": {
"line": 26,
"column": 17,
"offset": 457
}
}
}
],
"position": {
"start": {
"line": 26,
"column": 1,
"offset": 441
},
"end": {
"line": 26,
"column": 17,
"offset": 457
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Pay attention to the verb in the sentence.",
"position": {
"start": {
"line": 28,
"column": 1,
"offset": 459
},
"end": {
"line": 28,
"column": 43,
"offset": 501
}
}
}
],
"position": {
"start": {
"line": 28,
"column": 1,
"offset": 459
},
"end": {
"line": 28,
"column": 43,
"offset": 501
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 29,
"column": 1,
"offset": 502
}
}
}
@@ -1,531 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": {
"line": 1,
"column": 3,
"offset": 2
},
"end": {
"line": 1,
"column": 18,
"offset": 17
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 1,
"column": 18,
"offset": 17
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "In English, to check or confirm something people sometimes use tag questions. For example, ",
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 19
},
"end": {
"line": 3,
"column": 92,
"offset": 110
}
}
},
{
"type": "inlineCode",
"value": "You are a programmer, right?",
"position": {
"start": {
"line": 3,
"column": 92,
"offset": 110
},
"end": {
"line": 3,
"column": 122,
"offset": 140
}
}
},
{
"type": "text",
"value": " Here, ",
"position": {
"start": {
"line": 3,
"column": 122,
"offset": 140
},
"end": {
"line": 3,
"column": 129,
"offset": 147
}
}
},
{
"type": "inlineCode",
"value": "right?",
"position": {
"start": {
"line": 3,
"column": 129,
"offset": 147
},
"end": {
"line": 3,
"column": 137,
"offset": 155
}
}
},
{
"type": "text",
"value": " is used as a tag to check or confirm the previous statement.",
"position": {
"start": {
"line": 3,
"column": 137,
"offset": 155
},
"end": {
"line": 3,
"column": 198,
"offset": 216
}
}
}
],
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 19
},
"end": {
"line": 3,
"column": 198,
"offset": 216
}
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--fillInTheBlank--",
"position": {
"start": {
"line": 5,
"column": 3,
"offset": 220
},
"end": {
"line": 5,
"column": 21,
"offset": 238
}
}
}
],
"position": {
"start": {
"line": 5,
"column": 1,
"offset": 218
},
"end": {
"line": 5,
"column": 21,
"offset": 238
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--sentence--",
"position": {
"start": {
"line": 7,
"column": 4,
"offset": 243
},
"end": {
"line": 7,
"column": 16,
"offset": 255
}
}
}
],
"position": {
"start": {
"line": 7,
"column": 1,
"offset": 240
},
"end": {
"line": 7,
"column": 16,
"offset": 255
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "A sentence BLANK paragraph 1",
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 257
},
"end": {
"line": 9,
"column": 27,
"offset": 283
}
}
}
],
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 257
},
"end": {
"line": 9,
"column": 27,
"offset": 283
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Sentence in BLANK 2",
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 285
},
"end": {
"line": 11,
"column": 16,
"offset": 300
}
}
}
],
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 285
},
"end": {
"line": 11,
"column": 16,
"offset": 300
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--blanks--",
"position": {
"start": {
"line": 13,
"column": 4,
"offset": 305
},
"end": {
"line": 13,
"column": 14,
"offset": 315
}
}
}
],
"position": {
"start": {
"line": 13,
"column": 1,
"offset": 302
},
"end": {
"line": 13,
"column": 14,
"offset": 315
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "are",
"position": {
"start": {
"line": 15,
"column": 1,
"offset": 317
},
"end": {
"line": 15,
"column": 6,
"offset": 322
}
}
}
],
"position": {
"start": {
"line": 15,
"column": 1,
"offset": 317
},
"end": {
"line": 15,
"column": 6,
"offset": 322
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 17,
"column": 5,
"offset": 328
},
"end": {
"line": 17,
"column": 17,
"offset": 340
}
}
}
],
"position": {
"start": {
"line": 17,
"column": 1,
"offset": 324
},
"end": {
"line": 17,
"column": 17,
"offset": 340
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Pay attention to the verb in the sentence.",
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 342
},
"end": {
"line": 19,
"column": 43,
"offset": 384
}
}
}
],
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 342
},
"end": {
"line": 19,
"column": 43,
"offset": 384
}
}
},
{
"type": "thematicBreak",
"position": {
"start": {
"line": 21,
"column": 1,
"offset": 386
},
"end": {
"line": 21,
"column": 4,
"offset": 389
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "right",
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 391
},
"end": {
"line": 23,
"column": 8,
"offset": 398
}
}
}
],
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 391
},
"end": {
"line": 23,
"column": 8,
"offset": 398
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 25,
"column": 5,
"offset": 404
},
"end": {
"line": 25,
"column": 17,
"offset": 416
}
}
}
],
"position": {
"start": {
"line": 25,
"column": 1,
"offset": 400
},
"end": {
"line": 25,
"column": 17,
"offset": 416
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Pay attention to the verb in the sentence.",
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 418
},
"end": {
"line": 27,
"column": 43,
"offset": 460
}
}
}
],
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 418
},
"end": {
"line": 27,
"column": 43,
"offset": 460
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 28,
"column": 1,
"offset": 461
}
}
}
@@ -1,520 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--fillInTheBlank--",
"position": {
"start": {
"line": 1,
"column": 3,
"offset": 2
},
"end": {
"line": 1,
"column": 21,
"offset": 20
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 1,
"column": 21,
"offset": 20
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--sentence--",
"position": {
"start": {
"line": 3,
"column": 4,
"offset": 25
},
"end": {
"line": 3,
"column": 16,
"offset": 37
}
}
}
],
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 22
},
"end": {
"line": 3,
"column": 16,
"offset": 37
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "Sure thing! BLANK BLANK BLANK.",
"position": {
"start": {
"line": 5,
"column": 1,
"offset": 39
},
"end": {
"line": 5,
"column": 21,
"offset": 59
}
}
}
],
"position": {
"start": {
"line": 5,
"column": 1,
"offset": 39
},
"end": {
"line": 5,
"column": 21,
"offset": 59
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--blanks--",
"position": {
"start": {
"line": 7,
"column": 4,
"offset": 64
},
"end": {
"line": 7,
"column": 14,
"offset": 74
}
}
}
],
"position": {
"start": {
"line": 7,
"column": 1,
"offset": 61
},
"end": {
"line": 7,
"column": 14,
"offset": 74
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "I'd",
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 76
},
"end": {
"line": 9,
"column": 6,
"offset": 81
}
}
}
],
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 76
},
"end": {
"line": 9,
"column": 6,
"offset": 81
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 11,
"column": 5,
"offset": 87
},
"end": {
"line": 11,
"column": 17,
"offset": 99
}
}
}
],
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 83
},
"end": {
"line": 11,
"column": 17,
"offset": 99
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Feedback 1",
"position": {
"start": {
"line": 13,
"column": 1,
"offset": 101
},
"end": {
"line": 13,
"column": 11,
"offset": 111
}
}
}
],
"position": {
"start": {
"line": 13,
"column": 1,
"offset": 101
},
"end": {
"line": 13,
"column": 11,
"offset": 111
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--blanks--",
"position": {
"start": {
"line": 15,
"column": 4,
"offset": 116
},
"end": {
"line": 15,
"column": 14,
"offset": 126
}
}
}
],
"position": {
"start": {
"line": 15,
"column": 1,
"offset": 113
},
"end": {
"line": 15,
"column": 14,
"offset": 126
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "love",
"position": {
"start": {
"line": 17,
"column": 1,
"offset": 128
},
"end": {
"line": 17,
"column": 7,
"offset": 134
}
}
}
],
"position": {
"start": {
"line": 17,
"column": 1,
"offset": 128
},
"end": {
"line": 17,
"column": 7,
"offset": 134
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 19,
"column": 5,
"offset": 140
},
"end": {
"line": 19,
"column": 17,
"offset": 152
}
}
}
],
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 136
},
"end": {
"line": 19,
"column": 17,
"offset": 152
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Feedback 2",
"position": {
"start": {
"line": 21,
"column": 1,
"offset": 154
},
"end": {
"line": 21,
"column": 11,
"offset": 164
}
}
}
],
"position": {
"start": {
"line": 21,
"column": 1,
"offset": 154
},
"end": {
"line": 21,
"column": 11,
"offset": 164
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--blanks--",
"position": {
"start": {
"line": 23,
"column": 4,
"offset": 169
},
"end": {
"line": 23,
"column": 14,
"offset": 179
}
}
}
],
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 166
},
"end": {
"line": 23,
"column": 14,
"offset": 179
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "to",
"position": {
"start": {
"line": 25,
"column": 1,
"offset": 181
},
"end": {
"line": 25,
"column": 5,
"offset": 185
}
}
}
],
"position": {
"start": {
"line": 25,
"column": 1,
"offset": 181
},
"end": {
"line": 25,
"column": 5,
"offset": 185
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 27,
"column": 5,
"offset": 191
},
"end": {
"line": 27,
"column": 17,
"offset": 203
}
}
}
],
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 187
},
"end": {
"line": 27,
"column": 17,
"offset": 203
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Feedback 3",
"position": {
"start": {
"line": 29,
"column": 1,
"offset": 205
},
"end": {
"line": 29,
"column": 11,
"offset": 215
}
}
}
],
"position": {
"start": {
"line": 29,
"column": 1,
"offset": 205
},
"end": {
"line": 29,
"column": 11,
"offset": 215
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 30,
"column": 1,
"offset": 216
}
}
}
@@ -1,592 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": {
"line": 9,
"column": 3,
"offset": 159
},
"end": {
"line": 9,
"column": 18,
"offset": 174
}
}
}
],
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 157
},
"end": {
"line": 9,
"column": 18,
"offset": 174
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "In English, when making introductions or identifying someone, you use the verb ",
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 176
},
"end": {
"line": 11,
"column": 80,
"offset": 255
}
}
},
{
"type": "inlineCode",
"value": "to be",
"position": {
"start": {
"line": 11,
"column": 80,
"offset": 255
},
"end": {
"line": 11,
"column": 87,
"offset": 262
}
}
},
{
"type": "text",
"value": ". In this case, ",
"position": {
"start": {
"line": 11,
"column": 87,
"offset": 262
},
"end": {
"line": 11,
"column": 103,
"offset": 278
}
}
},
{
"type": "inlineCode",
"value": "You are",
"position": {
"start": {
"line": 11,
"column": 103,
"offset": 278
},
"end": {
"line": 11,
"column": 112,
"offset": 287
}
}
},
{
"type": "text",
"value": " is used to address the person Maria is talking to and affirmatively identify their occupation.",
"position": {
"start": {
"line": 11,
"column": 112,
"offset": 287
},
"end": {
"line": 11,
"column": 207,
"offset": 382
}
}
}
],
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 176
},
"end": {
"line": 11,
"column": 207,
"offset": 382
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Maria is introducing herself and confirming Tom's job role. ",
"position": {
"start": {
"line": 13,
"column": 1,
"offset": 384
},
"end": {
"line": 13,
"column": 61,
"offset": 444
}
}
},
{
"type": "inlineCode",
"value": "Are",
"position": {
"start": {
"line": 13,
"column": 61,
"offset": 444
},
"end": {
"line": 13,
"column": 66,
"offset": 449
}
}
},
{
"type": "text",
"value": " is used in the present affirmative to make a statement.",
"position": {
"start": {
"line": 13,
"column": 66,
"offset": 449
},
"end": {
"line": 13,
"column": 122,
"offset": 505
}
}
}
],
"position": {
"start": {
"line": 13,
"column": 1,
"offset": 384
},
"end": {
"line": 13,
"column": 122,
"offset": 505
}
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--fillInTheBlank--",
"position": {
"start": {
"line": 15,
"column": 3,
"offset": 509
},
"end": {
"line": 15,
"column": 21,
"offset": 527
}
}
}
],
"position": {
"start": {
"line": 15,
"column": 1,
"offset": 507
},
"end": {
"line": 15,
"column": 21,
"offset": 527
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--sentence--",
"position": {
"start": {
"line": 17,
"column": 4,
"offset": 532
},
"end": {
"line": 17,
"column": 16,
"offset": 544
}
}
}
],
"position": {
"start": {
"line": 17,
"column": 1,
"offset": 529
},
"end": {
"line": 17,
"column": 16,
"offset": 544
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "Hello, You BLANK the new graphic designer, right?",
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 546
},
"end": {
"line": 19,
"column": 48,
"offset": 593
}
}
}
],
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 546
},
"end": {
"line": 19,
"column": 48,
"offset": 593
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--blanks--",
"position": {
"start": {
"line": 21,
"column": 4,
"offset": 598
},
"end": {
"line": 21,
"column": 14,
"offset": 608
}
}
}
],
"position": {
"start": {
"line": 21,
"column": 1,
"offset": 595
},
"end": {
"line": 21,
"column": 14,
"offset": 608
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "are",
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 610
},
"end": {
"line": 23,
"column": 6,
"offset": 615
}
}
}
],
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 610
},
"end": {
"line": 23,
"column": 6,
"offset": 615
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 25,
"column": 5,
"offset": 621
},
"end": {
"line": 25,
"column": 17,
"offset": 633
}
}
}
],
"position": {
"start": {
"line": 25,
"column": 1,
"offset": 617
},
"end": {
"line": 25,
"column": 17,
"offset": 633
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "The verb ",
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 635
},
"end": {
"line": 27,
"column": 10,
"offset": 644
}
}
},
{
"type": "inlineCode",
"value": "to be",
"position": {
"start": {
"line": 27,
"column": 10,
"offset": 644
},
"end": {
"line": 27,
"column": 17,
"offset": 651
}
}
},
{
"type": "text",
"value": " is an irregular verb. When conjugated with the pronoun ",
"position": {
"start": {
"line": 27,
"column": 17,
"offset": 651
},
"end": {
"line": 27,
"column": 73,
"offset": 707
}
}
},
{
"type": "inlineCode",
"value": "you",
"position": {
"start": {
"line": 27,
"column": 73,
"offset": 707
},
"end": {
"line": 27,
"column": 78,
"offset": 712
}
}
},
{
"type": "text",
"value": ", ",
"position": {
"start": {
"line": 27,
"column": 78,
"offset": 712
},
"end": {
"line": 27,
"column": 80,
"offset": 714
}
}
},
{
"type": "inlineCode",
"value": "be",
"position": {
"start": {
"line": 27,
"column": 80,
"offset": 714
},
"end": {
"line": 27,
"column": 84,
"offset": 718
}
}
},
{
"type": "text",
"value": " becomes ",
"position": {
"start": {
"line": 27,
"column": 84,
"offset": 718
},
"end": {
"line": 27,
"column": 93,
"offset": 727
}
}
},
{
"type": "inlineCode",
"value": "are",
"position": {
"start": {
"line": 27,
"column": 93,
"offset": 727
},
"end": {
"line": 27,
"column": 98,
"offset": 732
}
}
},
{
"type": "text",
"value": ". For example: ",
"position": {
"start": {
"line": 27,
"column": 98,
"offset": 732
},
"end": {
"line": 27,
"column": 113,
"offset": 747
}
}
},
{
"type": "inlineCode",
"value": "You are an English learner.",
"position": {
"start": {
"line": 27,
"column": 113,
"offset": 747
},
"end": {
"line": 27,
"column": 142,
"offset": 776
}
}
}
],
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 635
},
"end": {
"line": 27,
"column": 142,
"offset": 776
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 28,
"column": 1,
"offset": 777
}
}
}
@@ -1,531 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": {
"line": 1,
"column": 3,
"offset": 2
},
"end": {
"line": 1,
"column": 18,
"offset": 17
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 1,
"column": 18,
"offset": 17
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "In English, to check or confirm something people sometimes use tag questions. For example, ",
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 19
},
"end": {
"line": 3,
"column": 92,
"offset": 110
}
}
},
{
"type": "inlineCode",
"value": "You are a programmer, right?",
"position": {
"start": {
"line": 3,
"column": 92,
"offset": 110
},
"end": {
"line": 3,
"column": 122,
"offset": 140
}
}
},
{
"type": "text",
"value": " Here, ",
"position": {
"start": {
"line": 3,
"column": 122,
"offset": 140
},
"end": {
"line": 3,
"column": 129,
"offset": 147
}
}
},
{
"type": "inlineCode",
"value": "right?",
"position": {
"start": {
"line": 3,
"column": 129,
"offset": 147
},
"end": {
"line": 3,
"column": 137,
"offset": 155
}
}
},
{
"type": "text",
"value": " is used as a tag to check or confirm the previous statement.",
"position": {
"start": {
"line": 3,
"column": 137,
"offset": 155
},
"end": {
"line": 3,
"column": 198,
"offset": 216
}
}
}
],
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 19
},
"end": {
"line": 3,
"column": 198,
"offset": 216
}
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--fillInTheBlank--",
"position": {
"start": {
"line": 5,
"column": 3,
"offset": 220
},
"end": {
"line": 5,
"column": 21,
"offset": 238
}
}
}
],
"position": {
"start": {
"line": 5,
"column": 1,
"offset": 218
},
"end": {
"line": 5,
"column": 21,
"offset": 238
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--sentence--",
"position": {
"start": {
"line": 7,
"column": 4,
"offset": 243
},
"end": {
"line": 7,
"column": 16,
"offset": 255
}
}
}
],
"position": {
"start": {
"line": 7,
"column": 1,
"offset": 240
},
"end": {
"line": 7,
"column": 16,
"offset": 255
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "A sentence BLANK paragraph 1",
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 257
},
"end": {
"line": 9,
"column": 27,
"offset": 283
}
}
}
],
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 257
},
"end": {
"line": 9,
"column": 27,
"offset": 283
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "Sentence in BLANK 2",
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 285
},
"end": {
"line": 11,
"column": 18,
"offset": 302
}
}
}
],
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 285
},
"end": {
"line": 11,
"column": 18,
"offset": 302
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--blanks--",
"position": {
"start": {
"line": 13,
"column": 4,
"offset": 307
},
"end": {
"line": 13,
"column": 14,
"offset": 317
}
}
}
],
"position": {
"start": {
"line": 13,
"column": 1,
"offset": 304
},
"end": {
"line": 13,
"column": 14,
"offset": 317
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "are",
"position": {
"start": {
"line": 15,
"column": 1,
"offset": 319
},
"end": {
"line": 15,
"column": 6,
"offset": 324
}
}
}
],
"position": {
"start": {
"line": 15,
"column": 1,
"offset": 319
},
"end": {
"line": 15,
"column": 6,
"offset": 324
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 17,
"column": 5,
"offset": 330
},
"end": {
"line": 17,
"column": 17,
"offset": 342
}
}
}
],
"position": {
"start": {
"line": 17,
"column": 1,
"offset": 326
},
"end": {
"line": 17,
"column": 17,
"offset": 342
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Pay attention to the verb in the sentence.",
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 344
},
"end": {
"line": 19,
"column": 43,
"offset": 386
}
}
}
],
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 344
},
"end": {
"line": 19,
"column": 43,
"offset": 386
}
}
},
{
"type": "thematicBreak",
"position": {
"start": {
"line": 21,
"column": 1,
"offset": 388
},
"end": {
"line": 21,
"column": 4,
"offset": 391
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "right",
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 393
},
"end": {
"line": 23,
"column": 8,
"offset": 400
}
}
}
],
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 393
},
"end": {
"line": 23,
"column": 8,
"offset": 400
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 25,
"column": 5,
"offset": 406
},
"end": {
"line": 25,
"column": 17,
"offset": 418
}
}
}
],
"position": {
"start": {
"line": 25,
"column": 1,
"offset": 402
},
"end": {
"line": 25,
"column": 17,
"offset": 418
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Pay attention to the verb in the sentence.",
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 420
},
"end": {
"line": 27,
"column": 43,
"offset": 462
}
}
}
],
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 420
},
"end": {
"line": 27,
"column": 43,
"offset": 462
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 28,
"column": 1,
"offset": 463
}
}
}
@@ -1,755 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": {
"line": 1,
"column": 3,
"offset": 2
},
"end": {
"line": 1,
"column": 18,
"offset": 17
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 1,
"column": 18,
"offset": 17
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "In English, when making introductions or identifying someone, you use the verb ",
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 19
},
"end": {
"line": 3,
"column": 80,
"offset": 98
}
}
},
{
"type": "inlineCode",
"value": "to be",
"position": {
"start": {
"line": 3,
"column": 80,
"offset": 98
},
"end": {
"line": 3,
"column": 87,
"offset": 105
}
}
},
{
"type": "text",
"value": ". In this case, ",
"position": {
"start": {
"line": 3,
"column": 87,
"offset": 105
},
"end": {
"line": 3,
"column": 103,
"offset": 121
}
}
},
{
"type": "inlineCode",
"value": "You are",
"position": {
"start": {
"line": 3,
"column": 103,
"offset": 121
},
"end": {
"line": 3,
"column": 112,
"offset": 130
}
}
},
{
"type": "text",
"value": " is used to address the person Maria is talking to and affirmatively identify their occupation.",
"position": {
"start": {
"line": 3,
"column": 112,
"offset": 130
},
"end": {
"line": 3,
"column": 207,
"offset": 225
}
}
}
],
"position": {
"start": {
"line": 3,
"column": 1,
"offset": 19
},
"end": {
"line": 3,
"column": 207,
"offset": 225
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Maria is introducing herself and confirming Tom's job role. ",
"position": {
"start": {
"line": 5,
"column": 1,
"offset": 227
},
"end": {
"line": 5,
"column": 61,
"offset": 287
}
}
},
{
"type": "inlineCode",
"value": "Are",
"position": {
"start": {
"line": 5,
"column": 61,
"offset": 287
},
"end": {
"line": 5,
"column": 66,
"offset": 292
}
}
},
{
"type": "text",
"value": " is used in the present affirmative to make a statement.",
"position": {
"start": {
"line": 5,
"column": 66,
"offset": 292
},
"end": {
"line": 5,
"column": 122,
"offset": 348
}
}
}
],
"position": {
"start": {
"line": 5,
"column": 1,
"offset": 227
},
"end": {
"line": 5,
"column": 122,
"offset": 348
}
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--fillInTheBlank--",
"position": {
"start": {
"line": 7,
"column": 3,
"offset": 352
},
"end": {
"line": 7,
"column": 21,
"offset": 370
}
}
}
],
"position": {
"start": {
"line": 7,
"column": 1,
"offset": 350
},
"end": {
"line": 7,
"column": 21,
"offset": 370
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--sentence--",
"position": {
"start": {
"line": 9,
"column": 4,
"offset": 375
},
"end": {
"line": 9,
"column": 16,
"offset": 387
}
}
}
],
"position": {
"start": {
"line": 9,
"column": 1,
"offset": 372
},
"end": {
"line": 9,
"column": 16,
"offset": 387
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "Hello, You BLANK the new graphic designer, BLANK? BLANK to meet you!",
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 389
},
"end": {
"line": 11,
"column": 59,
"offset": 447
}
}
}
],
"position": {
"start": {
"line": 11,
"column": 1,
"offset": 389
},
"end": {
"line": 11,
"column": 59,
"offset": 447
}
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--blanks--",
"position": {
"start": {
"line": 13,
"column": 4,
"offset": 452
},
"end": {
"line": 13,
"column": 14,
"offset": 462
}
}
}
],
"position": {
"start": {
"line": 13,
"column": 1,
"offset": 449
},
"end": {
"line": 13,
"column": 14,
"offset": 462
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "are",
"position": {
"start": {
"line": 15,
"column": 1,
"offset": 464
},
"end": {
"line": 15,
"column": 6,
"offset": 469
}
}
}
],
"position": {
"start": {
"line": 15,
"column": 1,
"offset": 464
},
"end": {
"line": 15,
"column": 6,
"offset": 469
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 17,
"column": 5,
"offset": 475
},
"end": {
"line": 17,
"column": 17,
"offset": 487
}
}
}
],
"position": {
"start": {
"line": 17,
"column": 1,
"offset": 471
},
"end": {
"line": 17,
"column": 17,
"offset": 487
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "The verb ",
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 489
},
"end": {
"line": 19,
"column": 10,
"offset": 498
}
}
},
{
"type": "inlineCode",
"value": "to be",
"position": {
"start": {
"line": 19,
"column": 10,
"offset": 498
},
"end": {
"line": 19,
"column": 17,
"offset": 505
}
}
},
{
"type": "text",
"value": " is an irregular verb. When conjugated with the pronoun ",
"position": {
"start": {
"line": 19,
"column": 17,
"offset": 505
},
"end": {
"line": 19,
"column": 73,
"offset": 561
}
}
},
{
"type": "inlineCode",
"value": "you",
"position": {
"start": {
"line": 19,
"column": 73,
"offset": 561
},
"end": {
"line": 19,
"column": 78,
"offset": 566
}
}
},
{
"type": "text",
"value": ", ",
"position": {
"start": {
"line": 19,
"column": 78,
"offset": 566
},
"end": {
"line": 19,
"column": 80,
"offset": 568
}
}
},
{
"type": "inlineCode",
"value": "be",
"position": {
"start": {
"line": 19,
"column": 80,
"offset": 568
},
"end": {
"line": 19,
"column": 84,
"offset": 572
}
}
},
{
"type": "text",
"value": " becomes ",
"position": {
"start": {
"line": 19,
"column": 84,
"offset": 572
},
"end": {
"line": 19,
"column": 93,
"offset": 581
}
}
},
{
"type": "inlineCode",
"value": "are",
"position": {
"start": {
"line": 19,
"column": 93,
"offset": 581
},
"end": {
"line": 19,
"column": 98,
"offset": 586
}
}
},
{
"type": "text",
"value": ". For example: ",
"position": {
"start": {
"line": 19,
"column": 98,
"offset": 586
},
"end": {
"line": 19,
"column": 113,
"offset": 601
}
}
},
{
"type": "inlineCode",
"value": "You are an English learner.",
"position": {
"start": {
"line": 19,
"column": 113,
"offset": 601
},
"end": {
"line": 19,
"column": 142,
"offset": 630
}
}
}
],
"position": {
"start": {
"line": 19,
"column": 1,
"offset": 489
},
"end": {
"line": 19,
"column": 142,
"offset": 630
}
}
},
{
"type": "thematicBreak",
"position": {
"start": {
"line": 21,
"column": 1,
"offset": 632
},
"end": {
"line": 21,
"column": 4,
"offset": 635
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "right",
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 637
},
"end": {
"line": 23,
"column": 8,
"offset": 644
}
}
}
],
"position": {
"start": {
"line": 23,
"column": 1,
"offset": 637
},
"end": {
"line": 23,
"column": 8,
"offset": 644
}
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": {
"line": 25,
"column": 5,
"offset": 650
},
"end": {
"line": 25,
"column": 17,
"offset": 662
}
}
}
],
"position": {
"start": {
"line": 25,
"column": 1,
"offset": 646
},
"end": {
"line": 25,
"column": 17,
"offset": 662
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Feedback 2",
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 664
},
"end": {
"line": 27,
"column": 11,
"offset": 674
}
}
}
],
"position": {
"start": {
"line": 27,
"column": 1,
"offset": 664
},
"end": {
"line": 27,
"column": 11,
"offset": 674
}
}
},
{
"type": "thematicBreak",
"position": {
"start": {
"line": 29,
"column": 1,
"offset": 676
},
"end": {
"line": 29,
"column": 4,
"offset": 679
}
}
},
{
"type": "paragraph",
"children": [
{
"type": "inlineCode",
"value": "Nice",
"position": {
"start": {
"line": 31,
"column": 1,
"offset": 681
},
"end": {
"line": 31,
"column": 7,
"offset": 687
}
}
}
],
"position": {
"start": {
"line": 31,
"column": 1,
"offset": 681
},
"end": {
"line": 31,
"column": 7,
"offset": 687
}
}
}
],
"position": {
"start": {
"line": 1,
"column": 1,
"offset": 0
},
"end": {
"line": 31,
"column": 7,
"offset": 687
}
}
}
@@ -1,437 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1 ~~Strikethrough text~~.",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 36, "offset": 54 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 36, "offset": 54 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 56 },
"end": { "line": 7, "column": 4, "offset": 80 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "| example | of a |\n| --- | --- |\n| gfm | table |",
"position": {
"start": { "line": 9, "column": 1, "offset": 82 },
"end": { "line": 11, "column": 16, "offset": 130 }
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 82 },
"end": { "line": 11, "column": 16, "offset": 130 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 14, "column": 3, "offset": 135 },
"end": { "line": 14, "column": 19, "offset": 151 }
}
}
],
"position": {
"start": { "line": 14, "column": 1, "offset": 133 },
"end": { "line": 14, "column": 19, "offset": 151 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 16, "column": 1, "offset": 153 },
"end": { "line": 16, "column": 12, "offset": 164 }
}
}
],
"position": {
"start": { "line": 16, "column": 1, "offset": 153 },
"end": { "line": 16, "column": 12, "offset": 164 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 18, "column": 1, "offset": 166 },
"end": { "line": 20, "column": 4, "offset": 192 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 22, "column": 3, "offset": 196 },
"end": { "line": 22, "column": 12, "offset": 205 }
}
}
],
"position": {
"start": { "line": 22, "column": 1, "offset": 194 },
"end": { "line": 22, "column": 12, "offset": 205 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 24, "column": 1, "offset": 207 },
"end": { "line": 24, "column": 11, "offset": 217 }
}
}
],
"position": {
"start": { "line": 24, "column": 1, "offset": 207 },
"end": { "line": 24, "column": 11, "offset": 217 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 26, "column": 1, "offset": 219 },
"end": { "line": 28, "column": 4, "offset": 241 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 30, "column": 1, "offset": 243 },
"end": { "line": 30, "column": 18, "offset": 260 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 30, "column": 18, "offset": 260 },
"end": { "line": 30, "column": 24, "offset": 266 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 30, "column": 24, "offset": 266 },
"end": { "line": 30, "column": 28, "offset": 270 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 30, "column": 28, "offset": 270 },
"end": { "line": 30, "column": 35, "offset": 277 }
}
}
],
"position": {
"start": { "line": 30, "column": 1, "offset": 243 },
"end": { "line": 30, "column": 35, "offset": 277 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 32, "column": 1, "offset": 279 },
"end": { "line": 34, "column": 4, "offset": 306 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Third ",
"position": {
"start": { "line": 36, "column": 1, "offset": 308 },
"end": { "line": 36, "column": 7, "offset": 314 }
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "hint",
"position": {
"start": { "line": 36, "column": 8, "offset": 315 },
"end": { "line": 36, "column": 12, "offset": 319 }
}
}
],
"position": {
"start": { "line": 36, "column": 7, "offset": 314 },
"end": { "line": 36, "column": 13, "offset": 320 }
}
},
{
"type": "text",
"value": " with ",
"position": {
"start": { "line": 36, "column": 13, "offset": 320 },
"end": { "line": 36, "column": 19, "offset": 326 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 36, "column": 19, "offset": 326 },
"end": { "line": 36, "column": 25, "offset": 332 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 36, "column": 25, "offset": 332 },
"end": { "line": 36, "column": 29, "offset": 336 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 36, "column": 29, "offset": 336 },
"end": { "line": 36, "column": 36, "offset": 343 }
}
},
{
"type": "text",
"value": " and ",
"position": {
"start": { "line": 36, "column": 36, "offset": 343 },
"end": { "line": 36, "column": 41, "offset": 348 }
}
},
{
"type": "inlineCode",
"value": "inline code",
"position": {
"start": { "line": 36, "column": 41, "offset": 348 },
"end": { "line": 36, "column": 54, "offset": 361 }
}
}
],
"position": {
"start": { "line": 36, "column": 1, "offset": 308 },
"end": { "line": 36, "column": 54, "offset": 361 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code\nif(let x of xs) {\n console.log(x);\n}",
"position": {
"start": { "line": 38, "column": 1, "offset": 363 },
"end": { "line": 43, "column": 4, "offset": 428 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 45, "column": 3, "offset": 432 },
"end": { "line": 45, "column": 11, "offset": 440 }
}
}
],
"position": {
"start": { "line": 45, "column": 1, "offset": 430 },
"end": { "line": 45, "column": 11, "offset": 440 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 47, "column": 4, "offset": 445 },
"end": { "line": 47, "column": 21, "offset": 462 }
}
}
],
"position": {
"start": { "line": 47, "column": 1, "offset": 442 },
"end": { "line": 47, "column": 21, "offset": 462 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 49, "column": 1, "offset": 464 },
"end": { "line": 54, "column": 4, "offset": 509 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 56, "column": 1, "offset": 511 },
"end": { "line": 60, "column": 4, "offset": 551 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 62, "column": 1, "offset": 553 },
"end": { "line": 64, "column": 4, "offset": 575 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 67, "column": 3, "offset": 580 },
"end": { "line": 67, "column": 16, "offset": 593 }
}
}
],
"position": {
"start": { "line": 67, "column": 1, "offset": 578 },
"end": { "line": 67, "column": 16, "offset": 593 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "image",
"title": null,
"url": "",
"alt": "html-key",
"position": {
"start": { "line": 69, "column": 1, "offset": 595 },
"end": { "line": 69, "column": 14, "offset": 608 }
}
}
],
"position": {
"start": { "line": 69, "column": 1, "offset": 595 },
"end": { "line": 69, "column": 14, "offset": 608 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 71, "column": 1, "offset": 610 },
"end": { "line": 76, "column": 4, "offset": 655 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 78, "column": 1, "offset": 657 },
"end": { "line": 82, "column": 4, "offset": 697 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';\n``",
"position": {
"start": { "line": 84, "column": 1, "offset": 699 },
"end": { "line": 87, "column": 1, "offset": 721 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 87, "column": 1, "offset": 721 }
}
}
@@ -1,321 +0,0 @@
{
"type": "root",
"children": [
{
"type": "leafDirective",
"name": "import",
"attributes": { "component": "Script", "from": "./script.md" },
"children": [],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 49, "offset": 48 }
}
},
{
"type": "leafDirective",
"name": "import",
"attributes": { "component": "Second", "from": "./script-two.md" },
"children": [],
"position": {
"start": { "line": 2, "column": 1, "offset": 49 },
"end": { "line": 2, "column": 53, "offset": 101 }
}
},
{
"type": "leafDirective",
"name": "import",
"attributes": {},
"children": [],
"position": {
"start": { "line": 3, "column": 1, "offset": 102 },
"end": { "line": 3, "column": 9, "offset": 110 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 5, "column": 3, "offset": 114 },
"end": { "line": 5, "column": 18, "offset": 129 }
}
}
],
"position": {
"start": { "line": 5, "column": 1, "offset": 112 },
"end": { "line": 5, "column": 18, "offset": 129 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1 ::import",
"position": {
"start": { "line": 7, "column": 1, "offset": 131 },
"end": { "line": 7, "column": 21, "offset": 151 }
}
}
],
"position": {
"start": { "line": 7, "column": 1, "offset": 131 },
"end": { "line": 7, "column": 21, "offset": 151 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 9, "column": 1, "offset": 153 },
"end": { "line": 11, "column": 4, "offset": 177 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 13, "column": 3, "offset": 181 },
"end": { "line": 13, "column": 19, "offset": 197 }
}
}
],
"position": {
"start": { "line": 13, "column": 1, "offset": 179 },
"end": { "line": 13, "column": 19, "offset": 197 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 15, "column": 1, "offset": 199 },
"end": { "line": 15, "column": 12, "offset": 210 }
}
}
],
"position": {
"start": { "line": 15, "column": 1, "offset": 199 },
"end": { "line": 15, "column": 12, "offset": 210 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 17, "column": 1, "offset": 212 },
"end": { "line": 19, "column": 4, "offset": 238 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 21, "column": 3, "offset": 242 },
"end": { "line": 21, "column": 12, "offset": 251 }
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 240 },
"end": { "line": 21, "column": 12, "offset": 251 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 23, "column": 1, "offset": 253 },
"end": { "line": 23, "column": 11, "offset": 263 }
}
}
],
"position": {
"start": { "line": 23, "column": 1, "offset": 253 },
"end": { "line": 23, "column": 11, "offset": 263 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 25, "column": 1, "offset": 265 },
"end": { "line": 27, "column": 4, "offset": 287 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 29, "column": 1, "offset": 289 },
"end": { "line": 29, "column": 18, "offset": 306 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 29, "column": 18, "offset": 306 },
"end": { "line": 29, "column": 24, "offset": 312 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 29, "column": 24, "offset": 312 },
"end": { "line": 29, "column": 28, "offset": 316 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 29, "column": 28, "offset": 316 },
"end": { "line": 29, "column": 35, "offset": 323 }
}
}
],
"position": {
"start": { "line": 29, "column": 1, "offset": 289 },
"end": { "line": 29, "column": 35, "offset": 323 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 31, "column": 1, "offset": 325 },
"end": { "line": 33, "column": 4, "offset": 352 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 36, "column": 3, "offset": 357 },
"end": { "line": 36, "column": 11, "offset": 365 }
}
}
],
"position": {
"start": { "line": 36, "column": 1, "offset": 355 },
"end": { "line": 36, "column": 11, "offset": 365 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 38, "column": 4, "offset": 370 },
"end": { "line": 38, "column": 21, "offset": 387 }
}
}
],
"position": {
"start": { "line": 38, "column": 1, "offset": 367 },
"end": { "line": 38, "column": 21, "offset": 387 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 40, "column": 1, "offset": 389 },
"end": { "line": 45, "column": 4, "offset": 434 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 47, "column": 1, "offset": 436 },
"end": { "line": 51, "column": 4, "offset": 476 }
}
},
{
"type": "leafDirective",
"name": "use",
"attributes": { "component": "Second" },
"children": [],
"position": {
"start": { "line": 53, "column": 1, "offset": 478 },
"end": { "line": 53, "column": 26, "offset": 503 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "custom-name" },
"children": [],
"position": {
"start": { "line": 55, "column": 1, "offset": 505 },
"end": { "line": 55, "column": 19, "offset": 523 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 57, "column": 1, "offset": 525 },
"end": { "line": 59, "column": 4, "offset": 547 }
}
},
{
"type": "leafDirective",
"name": "use",
"attributes": { "component": "Script" },
"children": [],
"position": {
"start": { "line": 61, "column": 1, "offset": 549 },
"end": { "line": 61, "column": 26, "offset": 574 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 62, "column": 1, "offset": 575 }
}
}
@@ -1,320 +0,0 @@
{
"type": "root",
"children": [
{
"type": "leafDirective",
"name": "import",
"attributes": { "component": "Script", "from": "./script.md" },
"children": [],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 50, "offset": 49 }
}
},
{
"type": "leafDirective",
"name": "import",
"attributes": { "component": "Second", "from": "./script-two.md" },
"children": [],
"position": {
"start": { "line": 2, "column": 1, "offset": 50 },
"end": { "line": 2, "column": 54, "offset": 103 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 4, "column": 3, "offset": 107 },
"end": { "line": 4, "column": 18, "offset": 122 }
}
}
],
"position": {
"start": { "line": 4, "column": 1, "offset": 105 },
"end": { "line": 4, "column": 18, "offset": 122 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 6, "column": 1, "offset": 124 },
"end": { "line": 6, "column": 12, "offset": 135 }
}
}
],
"position": {
"start": { "line": 6, "column": 1, "offset": 124 },
"end": { "line": 6, "column": 12, "offset": 135 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 8, "column": 1, "offset": 137 },
"end": { "line": 10, "column": 4, "offset": 161 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 12, "column": 3, "offset": 165 },
"end": { "line": 12, "column": 19, "offset": 181 }
}
}
],
"position": {
"start": { "line": 12, "column": 1, "offset": 163 },
"end": { "line": 12, "column": 19, "offset": 181 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 14, "column": 1, "offset": 183 },
"end": { "line": 14, "column": 12, "offset": 194 }
}
}
],
"position": {
"start": { "line": 14, "column": 1, "offset": 183 },
"end": { "line": 14, "column": 12, "offset": 194 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 16, "column": 1, "offset": 196 },
"end": { "line": 18, "column": 4, "offset": 222 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 20, "column": 3, "offset": 226 },
"end": { "line": 20, "column": 12, "offset": 235 }
}
}
],
"position": {
"start": { "line": 20, "column": 1, "offset": 224 },
"end": { "line": 20, "column": 12, "offset": 235 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 22, "column": 1, "offset": 237 },
"end": { "line": 22, "column": 11, "offset": 247 }
}
}
],
"position": {
"start": { "line": 22, "column": 1, "offset": 237 },
"end": { "line": 22, "column": 11, "offset": 247 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 24, "column": 1, "offset": 249 },
"end": { "line": 26, "column": 4, "offset": 271 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 28, "column": 1, "offset": 273 },
"end": { "line": 28, "column": 18, "offset": 290 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 28, "column": 18, "offset": 290 },
"end": { "line": 28, "column": 24, "offset": 296 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 28, "column": 24, "offset": 296 },
"end": { "line": 28, "column": 28, "offset": 300 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 28, "column": 28, "offset": 300 },
"end": { "line": 28, "column": 35, "offset": 307 }
}
}
],
"position": {
"start": { "line": 28, "column": 1, "offset": 273 },
"end": { "line": 28, "column": 35, "offset": 307 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 30, "column": 1, "offset": 309 },
"end": { "line": 32, "column": 4, "offset": 336 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 35, "column": 3, "offset": 341 },
"end": { "line": 35, "column": 11, "offset": 349 }
}
}
],
"position": {
"start": { "line": 35, "column": 1, "offset": 339 },
"end": { "line": 35, "column": 11, "offset": 349 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 37, "column": 4, "offset": 354 },
"end": { "line": 37, "column": 21, "offset": 371 }
}
}
],
"position": {
"start": { "line": 37, "column": 1, "offset": 351 },
"end": { "line": 37, "column": 21, "offset": 371 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 39, "column": 1, "offset": 373 },
"end": { "line": 44, "column": 4, "offset": 418 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 46, "column": 1, "offset": 420 },
"end": { "line": 50, "column": 4, "offset": 460 }
}
},
{
"type": "leafDirective",
"name": "use",
"attributes": { "component": "Second" },
"children": [],
"position": {
"start": { "line": 52, "column": 1, "offset": 462 },
"end": { "line": 52, "column": 26, "offset": 487 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "image",
"title": null,
"url": "",
"alt": "custom-name",
"position": {
"start": { "line": 54, "column": 1, "offset": 489 },
"end": { "line": 54, "column": 17, "offset": 505 }
}
}
],
"position": {
"start": { "line": 54, "column": 1, "offset": 489 },
"end": { "line": 54, "column": 17, "offset": 505 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 56, "column": 1, "offset": 507 },
"end": { "line": 58, "column": 4, "offset": 529 }
}
},
{
"type": "leafDirective",
"name": "use",
"attributes": { "component": "Script" },
"children": [],
"position": {
"start": { "line": 60, "column": 1, "offset": 531 },
"end": { "line": 60, "column": 26, "offset": 556 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 61, "column": 1, "offset": 557 }
}
}
@@ -1,300 +0,0 @@
{
"type": "root",
"children": [
{
"type": "leafDirective",
"name": "import",
"attributes": { "component": "Script", "from": "./script.md" },
"children": [],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 50, "offset": 49 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 3, "column": 3, "offset": 53 },
"end": { "line": 3, "column": 18, "offset": 68 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 51 },
"end": { "line": 3, "column": 18, "offset": 68 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 5, "column": 1, "offset": 70 },
"end": { "line": 5, "column": 12, "offset": 81 }
}
}
],
"position": {
"start": { "line": 5, "column": 1, "offset": 70 },
"end": { "line": 5, "column": 12, "offset": 81 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 7, "column": 1, "offset": 83 },
"end": { "line": 9, "column": 4, "offset": 107 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 11, "column": 3, "offset": 111 },
"end": { "line": 11, "column": 19, "offset": 127 }
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 109 },
"end": { "line": 11, "column": 19, "offset": 127 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 129 },
"end": { "line": 13, "column": 12, "offset": 140 }
}
}
],
"position": {
"start": { "line": 13, "column": 1, "offset": 129 },
"end": { "line": 13, "column": 12, "offset": 140 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 15, "column": 1, "offset": 142 },
"end": { "line": 17, "column": 4, "offset": 168 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 19, "column": 3, "offset": 172 },
"end": { "line": 19, "column": 12, "offset": 181 }
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 170 },
"end": { "line": 19, "column": 12, "offset": 181 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 21, "column": 1, "offset": 183 },
"end": { "line": 21, "column": 11, "offset": 193 }
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 183 },
"end": { "line": 21, "column": 11, "offset": 193 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 23, "column": 1, "offset": 195 },
"end": { "line": 25, "column": 4, "offset": 217 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 27, "column": 1, "offset": 219 },
"end": { "line": 27, "column": 18, "offset": 236 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 27, "column": 18, "offset": 236 },
"end": { "line": 27, "column": 24, "offset": 242 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 27, "column": 24, "offset": 242 },
"end": { "line": 27, "column": 28, "offset": 246 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 27, "column": 28, "offset": 246 },
"end": { "line": 27, "column": 35, "offset": 253 }
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 219 },
"end": { "line": 27, "column": 35, "offset": 253 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 29, "column": 1, "offset": 255 },
"end": { "line": 31, "column": 4, "offset": 282 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 34, "column": 3, "offset": 287 },
"end": { "line": 34, "column": 11, "offset": 295 }
}
}
],
"position": {
"start": { "line": 34, "column": 1, "offset": 285 },
"end": { "line": 34, "column": 11, "offset": 295 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 36, "column": 4, "offset": 300 },
"end": { "line": 36, "column": 21, "offset": 317 }
}
}
],
"position": {
"start": { "line": 36, "column": 1, "offset": 297 },
"end": { "line": 36, "column": 21, "offset": 317 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 38, "column": 1, "offset": 319 },
"end": { "line": 43, "column": 4, "offset": 364 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 45, "column": 1, "offset": 366 },
"end": { "line": 49, "column": 4, "offset": 406 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "image",
"title": null,
"url": "",
"alt": "custom-name",
"position": {
"start": { "line": 51, "column": 1, "offset": 408 },
"end": { "line": 51, "column": 17, "offset": 424 }
}
}
],
"position": {
"start": { "line": 51, "column": 1, "offset": 408 },
"end": { "line": 51, "column": 17, "offset": 424 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 53, "column": 1, "offset": 426 },
"end": { "line": 55, "column": 4, "offset": 448 }
}
},
{
"type": "leafDirective",
"name": "use",
"attributes": { "component": "Script" },
"children": [],
"position": {
"start": { "line": 57, "column": 1, "offset": 450 },
"end": { "line": 57, "column": 26, "offset": 475 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 58, "column": 1, "offset": 476 }
}
}
@@ -1,388 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--step-description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 23, "offset": 22 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 23, "offset": 22 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 24 },
"end": { "line": 3, "column": 12, "offset": 35 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 24 },
"end": { "line": 3, "column": 12, "offset": 35 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 37 },
"end": { "line": 7, "column": 4, "offset": 61 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--step-instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 65 },
"end": { "line": 9, "column": 24, "offset": 86 },
"indent": []
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 63 },
"end": { "line": 9, "column": 24, "offset": 86 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 88 },
"end": { "line": 11, "column": 12, "offset": 99 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 88 },
"end": { "line": 11, "column": 12, "offset": 99 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 101 },
"end": { "line": 15, "column": 4, "offset": 127 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--step-hints--",
"position": {
"start": { "line": 17, "column": 3, "offset": 131 },
"end": { "line": 17, "column": 17, "offset": 145 },
"indent": []
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 129 },
"end": { "line": 17, "column": 17, "offset": 145 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-1",
"label": "test-id-1",
"referenceType": "shortcut",
"alt": "test-id-1",
"position": {
"start": { "line": 19, "column": 1, "offset": 147 },
"end": { "line": 19, "column": 13, "offset": 159 },
"indent": []
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 147 },
"end": { "line": 19, "column": 13, "offset": 159 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 21, "column": 1, "offset": 161 },
"end": { "line": 21, "column": 11, "offset": 171 },
"indent": []
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 161 },
"end": { "line": 21, "column": 11, "offset": 171 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 23, "column": 1, "offset": 173 },
"end": { "line": 25, "column": 4, "offset": 195 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-2",
"label": "test-id-2",
"referenceType": "shortcut",
"alt": "test-id-2",
"position": {
"start": { "line": 27, "column": 1, "offset": 197 },
"end": { "line": 27, "column": 13, "offset": 209 },
"indent": []
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 197 },
"end": { "line": 27, "column": 13, "offset": 209 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 29, "column": 1, "offset": 211 },
"end": { "line": 29, "column": 18, "offset": 228 },
"indent": []
}
},
{
"type": "jsx",
"value": "<code>",
"position": {
"start": { "line": 29, "column": 18, "offset": 228 },
"end": { "line": 29, "column": 24, "offset": 234 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 29, "column": 24, "offset": 234 },
"end": { "line": 29, "column": 28, "offset": 238 },
"indent": []
}
},
{
"type": "jsx",
"value": "</code>",
"position": {
"start": { "line": 29, "column": 28, "offset": 238 },
"end": { "line": 29, "column": 35, "offset": 245 },
"indent": []
}
}
],
"position": {
"start": { "line": 29, "column": 1, "offset": 211 },
"end": { "line": 29, "column": 35, "offset": 245 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 31, "column": 1, "offset": 247 },
"end": { "line": 33, "column": 4, "offset": 274 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--step-seed--",
"position": {
"start": { "line": 35, "column": 3, "offset": 278 },
"end": { "line": 35, "column": 16, "offset": 291 },
"indent": []
}
}
],
"position": {
"start": { "line": 35, "column": 1, "offset": 276 },
"end": { "line": 35, "column": 16, "offset": 291 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 37, "column": 1, "offset": 293 },
"end": { "line": 42, "column": 4, "offset": 338 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 44, "column": 1, "offset": 340 },
"end": { "line": 48, "column": 4, "offset": 380 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 50, "column": 1, "offset": 382 },
"end": { "line": 52, "column": 4, "offset": 404 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solution-marker--",
"position": {
"start": { "line": 55, "column": 3, "offset": 409 },
"end": { "line": 55, "column": 22, "offset": 428 },
"indent": []
}
}
],
"position": {
"start": { "line": 55, "column": 1, "offset": 407 },
"end": { "line": 55, "column": 22, "offset": 428 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "html-key",
"label": "html-key",
"referenceType": "shortcut",
"alt": "html-key",
"position": {
"start": { "line": 57, "column": 1, "offset": 430 },
"end": { "line": 57, "column": 12, "offset": 441 },
"indent": []
}
}
],
"position": {
"start": { "line": 57, "column": 1, "offset": 430 },
"end": { "line": 57, "column": 12, "offset": 441 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 59, "column": 1, "offset": 443 },
"end": { "line": 64, "column": 4, "offset": 488 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 66, "column": 1, "offset": 490 },
"end": { "line": 70, "column": 4, "offset": 530 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';\n``\n",
"position": {
"start": { "line": 72, "column": 1, "offset": 532 },
"end": { "line": 75, "column": 1, "offset": 554 },
"indent": [1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 75, "column": 1, "offset": 554 }
}
}
@@ -1,122 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 24, "offset": 35 },
"indent": []
}
},
{
"type": "code",
"lang": "jsx",
"meta": null,
"value": "function setup() {}",
"position": {
"start": { "line": 5, "column": 1, "offset": 37 },
"end": { "line": 7, "column": 4, "offset": 67 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 9, "column": 4, "offset": 72 },
"end": { "line": 9, "column": 21, "offset": 89 },
"indent": []
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 69 },
"end": { "line": 9, "column": 21, "offset": 89 },
"indent": []
}
},
{
"type": "code",
"lang": "jsx",
"meta": null,
"value": "var x = 'y';\n\n/* comment */\nconst Button = () => {\n return <button> {/* another comment! */} text </button>;\n};",
"position": {
"start": { "line": 11, "column": 1, "offset": 91 },
"end": { "line": 18, "column": 4, "offset": 214 },
"indent": [1, 1, 1, 1, 1, 1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 20, "column": 4, "offset": 219 },
"end": { "line": 20, "column": 23, "offset": 238 },
"indent": []
}
}
],
"position": {
"start": { "line": 20, "column": 1, "offset": 216 },
"end": { "line": 20, "column": 23, "offset": 238 },
"indent": []
}
},
{
"type": "code",
"lang": "jsx",
"meta": null,
"value": "function teardown(params) {\n // after\n}",
"position": {
"start": { "line": 22, "column": 1, "offset": 240 },
"end": { "line": 26, "column": 4, "offset": 291 },
"indent": [1, 1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 27, "column": 1, "offset": 292 }
}
}
@@ -1,303 +0,0 @@
{
"type": "root",
"children": [
{
"type": "leafDirective",
"name": "import",
"attributes": {
"component": "Script",
"from": "./script-with-markers.md"
},
"children": [],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 63, "offset": 62 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 3, "column": 3, "offset": 66 },
"end": { "line": 3, "column": 18, "offset": 81 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 64 },
"end": { "line": 3, "column": 18, "offset": 81 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 5, "column": 1, "offset": 83 },
"end": { "line": 5, "column": 12, "offset": 94 }
}
}
],
"position": {
"start": { "line": 5, "column": 1, "offset": 83 },
"end": { "line": 5, "column": 12, "offset": 94 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 7, "column": 1, "offset": 96 },
"end": { "line": 9, "column": 4, "offset": 120 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 11, "column": 3, "offset": 124 },
"end": { "line": 11, "column": 19, "offset": 140 }
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 122 },
"end": { "line": 11, "column": 19, "offset": 140 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 142 },
"end": { "line": 13, "column": 12, "offset": 153 }
}
}
],
"position": {
"start": { "line": 13, "column": 1, "offset": 142 },
"end": { "line": 13, "column": 12, "offset": 153 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 15, "column": 1, "offset": 155 },
"end": { "line": 17, "column": 4, "offset": 181 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 19, "column": 3, "offset": 185 },
"end": { "line": 19, "column": 12, "offset": 194 }
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 183 },
"end": { "line": 19, "column": 12, "offset": 194 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 21, "column": 1, "offset": 196 },
"end": { "line": 21, "column": 11, "offset": 206 }
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 196 },
"end": { "line": 21, "column": 11, "offset": 206 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 23, "column": 1, "offset": 208 },
"end": { "line": 25, "column": 4, "offset": 230 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 27, "column": 1, "offset": 232 },
"end": { "line": 27, "column": 18, "offset": 249 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 27, "column": 18, "offset": 249 },
"end": { "line": 27, "column": 24, "offset": 255 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 27, "column": 24, "offset": 255 },
"end": { "line": 27, "column": 28, "offset": 259 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 27, "column": 28, "offset": 259 },
"end": { "line": 27, "column": 35, "offset": 266 }
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 232 },
"end": { "line": 27, "column": 35, "offset": 266 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 29, "column": 1, "offset": 268 },
"end": { "line": 31, "column": 4, "offset": 295 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 34, "column": 3, "offset": 300 },
"end": { "line": 34, "column": 11, "offset": 308 }
}
}
],
"position": {
"start": { "line": 34, "column": 1, "offset": 298 },
"end": { "line": 34, "column": 11, "offset": 308 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 36, "column": 4, "offset": 313 },
"end": { "line": 36, "column": 21, "offset": 330 }
}
}
],
"position": {
"start": { "line": 36, "column": 1, "offset": 310 },
"end": { "line": 36, "column": 21, "offset": 330 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 38, "column": 1, "offset": 332 },
"end": { "line": 43, "column": 4, "offset": 377 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 45, "column": 1, "offset": 379 },
"end": { "line": 49, "column": 4, "offset": 419 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "image",
"title": null,
"url": "",
"alt": "custom-name",
"position": {
"start": { "line": 51, "column": 1, "offset": 421 },
"end": { "line": 51, "column": 17, "offset": 437 }
}
}
],
"position": {
"start": { "line": 51, "column": 1, "offset": 421 },
"end": { "line": 51, "column": 17, "offset": 437 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 53, "column": 1, "offset": 439 },
"end": { "line": 55, "column": 4, "offset": 461 }
}
},
{
"type": "leafDirective",
"name": "use",
"attributes": { "component": "Script" },
"children": [],
"position": {
"start": { "line": 57, "column": 1, "offset": 463 },
"end": { "line": 57, "column": 26, "offset": 488 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 58, "column": 1, "offset": 489 }
}
}
@@ -1,38 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
},
{
"type": "jsx",
"value": "<code> code in </code> code tags *emphasis* followed by <div><span>some nested html </span></div>",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 98, "offset": 116 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 4, "column": 1, "offset": 117 }
}
}
@@ -1,303 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--before-user-code--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 24, "offset": 35 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 24, "offset": 35 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n etc: ''\n}",
"position": {
"start": { "line": 5, "column": 1, "offset": 37 },
"end": { "line": 9, "column": 4, "offset": 66 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<!-- comment -->",
"position": {
"start": { "line": 11, "column": 1, "offset": 68 },
"end": { "line": 13, "column": 4, "offset": 96 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 15, "column": 4, "offset": 101 },
"end": { "line": 15, "column": 21, "offset": 118 }
}
}
],
"position": {
"start": { "line": 15, "column": 1, "offset": 98 },
"end": { "line": 15, "column": 21, "offset": 118 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 17, "column": 1, "offset": 120 },
"end": { "line": 22, "column": 4, "offset": 165 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 24, "column": 1, "offset": 167 },
"end": { "line": 28, "column": 4, "offset": 207 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 30, "column": 1, "offset": 209 },
"end": { "line": 32, "column": 4, "offset": 231 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--after-user-code--",
"position": {
"start": { "line": 34, "column": 4, "offset": 236 },
"end": { "line": 34, "column": 23, "offset": 255 }
}
}
],
"position": {
"start": { "line": 34, "column": 1, "offset": 233 },
"end": { "line": 34, "column": 23, "offset": 255 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: blue;\n}",
"position": {
"start": { "line": 36, "column": 1, "offset": 257 },
"end": { "line": 40, "column": 4, "offset": 296 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "function teardown(params) {\n // after\n}",
"position": {
"start": { "line": 42, "column": 1, "offset": 298 },
"end": { "line": 46, "column": 4, "offset": 348 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 49, "column": 3, "offset": 353 },
"end": { "line": 49, "column": 16, "offset": 366 }
}
}
],
"position": {
"start": { "line": 49, "column": 1, "offset": 351 },
"end": { "line": 49, "column": 16, "offset": 366 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "html-key" },
"children": [],
"position": {
"start": { "line": 51, "column": 1, "offset": 368 },
"end": { "line": 51, "column": 16, "offset": 383 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 53, "column": 1, "offset": 385 },
"end": { "line": 58, "column": 4, "offset": 430 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 60, "column": 1, "offset": 432 },
"end": { "line": 64, "column": 4, "offset": 472 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 66, "column": 1, "offset": 474 },
"end": { "line": 68, "column": 4, "offset": 496 }
}
},
{
"type": "thematicBreak",
"position": {
"start": { "line": 70, "column": 1, "offset": 498 },
"end": { "line": 70, "column": 4, "offset": 501 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "html-key" },
"children": [],
"position": {
"start": { "line": 72, "column": 1, "offset": 503 },
"end": { "line": 72, "column": 16, "offset": 518 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n solution number two\n </body>\n</html>",
"position": {
"start": { "line": 74, "column": 1, "offset": 520 },
"end": { "line": 80, "column": 4, "offset": 587 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 82, "column": 1, "offset": 589 },
"end": { "line": 86, "column": 4, "offset": 629 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 88, "column": 1, "offset": 631 },
"end": { "line": 90, "column": 4, "offset": 653 }
}
},
{
"type": "thematicBreak",
"position": {
"start": { "line": 92, "column": 1, "offset": 655 },
"end": { "line": 92, "column": 4, "offset": 658 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "html-key" },
"children": [],
"position": {
"start": { "line": 94, "column": 1, "offset": 660 },
"end": { "line": 94, "column": 16, "offset": 675 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 96, "column": 1, "offset": 677 },
"end": { "line": 101, "column": 4, "offset": 722 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 103, "column": 1, "offset": 724 },
"end": { "line": 107, "column": 4, "offset": 764 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y3';",
"position": {
"start": { "line": 109, "column": 1, "offset": 766 },
"end": { "line": 111, "column": 4, "offset": 789 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 112, "column": 1, "offset": 790 }
}
}
@@ -1,75 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 5, "column": 1, "offset": 34 },
"end": { "line": 10, "column": 4, "offset": 79 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 12, "column": 1, "offset": 81 },
"end": { "line": 16, "column": 4, "offset": 121 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "key-for-html" },
"children": [],
"position": {
"start": { "line": 18, "column": 1, "offset": 123 },
"end": { "line": 18, "column": 20, "offset": 142 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 19, "column": 1, "offset": 143 }
}
}
File diff suppressed because it is too large Load Diff
@@ -1,95 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 5, "column": 1, "offset": 34 },
"end": { "line": 10, "column": 4, "offset": 79 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "key-for-css" },
"children": [],
"position": {
"start": { "line": 12, "column": 1, "offset": 81 },
"end": { "line": 12, "column": 19, "offset": 99 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 14, "column": 1, "offset": 101 },
"end": { "line": 18, "column": 4, "offset": 141 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "key-for-js" },
"children": [],
"position": {
"start": { "line": 20, "column": 1, "offset": 143 },
"end": { "line": 20, "column": 18, "offset": 160 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 22, "column": 1, "offset": 162 },
"end": { "line": 24, "column": 4, "offset": 184 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 25, "column": 1, "offset": 185 }
}
}
@@ -1,411 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 19, "offset": 76 }
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 19, "offset": 76 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 }
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 91 },
"end": { "line": 15, "column": 4, "offset": 117 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 17, "column": 3, "offset": 121 },
"end": { "line": 17, "column": 12, "offset": 130 }
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 119 },
"end": { "line": 17, "column": 12, "offset": 130 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 11, "offset": 142 }
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 11, "offset": 142 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 21, "column": 1, "offset": 144 },
"end": { "line": 23, "column": 4, "offset": 166 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 25, "column": 1, "offset": 168 },
"end": { "line": 25, "column": 18, "offset": 185 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 25, "column": 18, "offset": 185 },
"end": { "line": 25, "column": 24, "offset": 191 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 25, "column": 24, "offset": 191 },
"end": { "line": 25, "column": 28, "offset": 195 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 25, "column": 28, "offset": 195 },
"end": { "line": 25, "column": 35, "offset": 202 }
}
}
],
"position": {
"start": { "line": 25, "column": 1, "offset": 168 },
"end": { "line": 25, "column": 35, "offset": 202 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 27, "column": 1, "offset": 204 },
"end": { "line": 29, "column": 4, "offset": 231 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Third ",
"position": {
"start": { "line": 31, "column": 1, "offset": 233 },
"end": { "line": 31, "column": 7, "offset": 239 }
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "hint",
"position": {
"start": { "line": 31, "column": 8, "offset": 240 },
"end": { "line": 31, "column": 12, "offset": 244 }
}
}
],
"position": {
"start": { "line": 31, "column": 7, "offset": 239 },
"end": { "line": 31, "column": 13, "offset": 245 }
}
},
{
"type": "text",
"value": " with ",
"position": {
"start": { "line": 31, "column": 13, "offset": 245 },
"end": { "line": 31, "column": 19, "offset": 251 }
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 31, "column": 19, "offset": 251 },
"end": { "line": 31, "column": 25, "offset": 257 }
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 31, "column": 25, "offset": 257 },
"end": { "line": 31, "column": 29, "offset": 261 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 31, "column": 29, "offset": 261 },
"end": { "line": 31, "column": 36, "offset": 268 }
}
},
{
"type": "text",
"value": " and ",
"position": {
"start": { "line": 31, "column": 36, "offset": 268 },
"end": { "line": 31, "column": 41, "offset": 273 }
}
},
{
"type": "inlineCode",
"value": "inline code",
"position": {
"start": { "line": 31, "column": 41, "offset": 273 },
"end": { "line": 31, "column": 54, "offset": 286 }
}
}
],
"position": {
"start": { "line": 31, "column": 1, "offset": 233 },
"end": { "line": 31, "column": 54, "offset": 286 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code\nif(let x of xs) {\n console.log(x);\n}",
"position": {
"start": { "line": 33, "column": 1, "offset": 288 },
"end": { "line": 38, "column": 4, "offset": 353 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 40, "column": 3, "offset": 357 },
"end": { "line": 40, "column": 11, "offset": 365 }
}
}
],
"position": {
"start": { "line": 40, "column": 1, "offset": 355 },
"end": { "line": 40, "column": 11, "offset": 365 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 42, "column": 4, "offset": 370 },
"end": { "line": 42, "column": 21, "offset": 387 }
}
}
],
"position": {
"start": { "line": 42, "column": 1, "offset": 367 },
"end": { "line": 42, "column": 21, "offset": 387 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 44, "column": 1, "offset": 389 },
"end": { "line": 49, "column": 4, "offset": 434 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 51, "column": 1, "offset": 436 },
"end": { "line": 55, "column": 4, "offset": 476 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 57, "column": 1, "offset": 478 },
"end": { "line": 59, "column": 4, "offset": 500 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 62, "column": 3, "offset": 505 },
"end": { "line": 62, "column": 16, "offset": 518 }
}
}
],
"position": {
"start": { "line": 62, "column": 1, "offset": 503 },
"end": { "line": 62, "column": 16, "offset": 518 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "html-key" },
"children": [],
"position": {
"start": { "line": 64, "column": 1, "offset": 520 },
"end": { "line": 64, "column": 16, "offset": 535 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 66, "column": 1, "offset": 537 },
"end": { "line": 71, "column": 4, "offset": 582 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 73, "column": 1, "offset": 584 },
"end": { "line": 77, "column": 4, "offset": 624 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';\n``",
"position": {
"start": { "line": 79, "column": 1, "offset": 626 },
"end": { "line": 82, "column": 1, "offset": 648 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 82, "column": 1, "offset": 648 }
}
}
@@ -1,381 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 19, "offset": 76 }
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 19, "offset": 76 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 }
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 91 },
"end": { "line": 15, "column": 4, "offset": 117 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--questions--",
"position": {
"start": { "line": 17, "column": 3, "offset": 121 },
"end": { "line": 17, "column": 16, "offset": 134 }
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 119 },
"end": { "line": 17, "column": 16, "offset": 134 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--text--",
"position": {
"start": { "line": 19, "column": 4, "offset": 139 },
"end": { "line": 19, "column": 12, "offset": 147 }
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 136 },
"end": { "line": 19, "column": 12, "offset": 147 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Question line 1",
"position": {
"start": { "line": 21, "column": 1, "offset": 149 },
"end": { "line": 21, "column": 16, "offset": 164 }
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 149 },
"end": { "line": 21, "column": 16, "offset": 164 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": " var x = 'y';",
"position": {
"start": { "line": 23, "column": 1, "offset": 166 },
"end": { "line": 25, "column": 4, "offset": 190 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--answers--",
"position": {
"start": { "line": 27, "column": 4, "offset": 195 },
"end": { "line": 27, "column": 15, "offset": 206 }
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 192 },
"end": { "line": 27, "column": 15, "offset": 206 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Some inline ",
"position": {
"start": { "line": 29, "column": 1, "offset": 208 },
"end": { "line": 29, "column": 13, "offset": 220 }
}
},
{
"type": "inlineCode",
"value": "code",
"position": {
"start": { "line": 29, "column": 13, "offset": 220 },
"end": { "line": 29, "column": 19, "offset": 226 }
}
}
],
"position": {
"start": { "line": 29, "column": 1, "offset": 208 },
"end": { "line": 29, "column": 19, "offset": 226 }
}
},
{
"type": "heading",
"depth": 3,
"children": [
{
"type": "text",
"value": "--feedback--",
"position": {
"start": { "line": 31, "column": 5, "offset": 232 },
"end": { "line": 31, "column": 17, "offset": 244 }
}
}
],
"position": {
"start": { "line": 31, "column": 1, "offset": 228 },
"end": { "line": 31, "column": 17, "offset": 244 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "That is not correct.",
"position": {
"start": { "line": 33, "column": 1, "offset": 246 },
"end": { "line": 33, "column": 21, "offset": 266 }
}
}
],
"position": {
"start": { "line": 33, "column": 1, "offset": 246 },
"end": { "line": 33, "column": 21, "offset": 266 }
}
},
{
"type": "thematicBreak",
"position": {
"start": { "line": 35, "column": 1, "offset": 268 },
"end": { "line": 35, "column": 4, "offset": 271 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Some ",
"position": {
"start": { "line": 37, "column": 1, "offset": 273 },
"end": { "line": 37, "column": 6, "offset": 278 }
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "italics",
"position": {
"start": { "line": 37, "column": 7, "offset": 279 },
"end": { "line": 37, "column": 14, "offset": 286 }
}
}
],
"position": {
"start": { "line": 37, "column": 6, "offset": 278 },
"end": { "line": 37, "column": 15, "offset": 287 }
}
}
],
"position": {
"start": { "line": 37, "column": 1, "offset": 273 },
"end": { "line": 37, "column": 15, "offset": 287 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "A second answer paragraph.",
"position": {
"start": { "line": 39, "column": 1, "offset": 289 },
"end": { "line": 39, "column": 27, "offset": 315 }
}
}
],
"position": {
"start": { "line": 39, "column": 1, "offset": 289 },
"end": { "line": 39, "column": 27, "offset": 315 }
}
},
{
"type": "thematicBreak",
"position": {
"start": { "line": 41, "column": 1, "offset": 317 },
"end": { "line": 41, "column": 4, "offset": 320 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 43, "column": 1, "offset": 322 },
"end": { "line": 43, "column": 7, "offset": 328 }
}
},
{
"type": "text",
"value": " code in ",
"position": {
"start": { "line": 43, "column": 7, "offset": 328 },
"end": { "line": 43, "column": 16, "offset": 337 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 43, "column": 16, "offset": 337 },
"end": { "line": 43, "column": 23, "offset": 344 }
}
},
{
"type": "text",
"value": " code tags",
"position": {
"start": { "line": 43, "column": 23, "offset": 344 },
"end": { "line": 43, "column": 33, "offset": 354 }
}
}
],
"position": {
"start": { "line": 43, "column": 1, "offset": 322 },
"end": { "line": 43, "column": 33, "offset": 354 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--video-solution--",
"position": {
"start": { "line": 45, "column": 4, "offset": 359 },
"end": { "line": 45, "column": 22, "offset": 377 }
}
}
],
"position": {
"start": { "line": 45, "column": 1, "offset": 356 },
"end": { "line": 45, "column": 22, "offset": 377 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "3",
"position": {
"start": { "line": 47, "column": 1, "offset": 379 },
"end": { "line": 47, "column": 2, "offset": 380 }
}
}
],
"position": {
"start": { "line": 47, "column": 1, "offset": 379 },
"end": { "line": 47, "column": 2, "offset": 380 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 48, "column": 1, "offset": 381 }
}
}
@@ -1,346 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 19, "offset": 76 }
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 19, "offset": 76 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 }
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 91 },
"end": { "line": 15, "column": 4, "offset": 117 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--text--",
"position": {
"start": { "line": 17, "column": 4, "offset": 122 },
"end": { "line": 17, "column": 12, "offset": 130 }
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 119 },
"end": { "line": 17, "column": 12, "offset": 130 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Question line 1",
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 16, "offset": 147 }
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 16, "offset": 147 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": " var x = 'y';",
"position": {
"start": { "line": 21, "column": 1, "offset": 149 },
"end": { "line": 23, "column": 4, "offset": 173 }
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--questions--",
"position": {
"start": { "line": 25, "column": 3, "offset": 177 },
"end": { "line": 25, "column": 16, "offset": 190 }
}
}
],
"position": {
"start": { "line": 25, "column": 1, "offset": 175 },
"end": { "line": 25, "column": 16, "offset": 190 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--answers--",
"position": {
"start": { "line": 27, "column": 4, "offset": 195 },
"end": { "line": 27, "column": 15, "offset": 206 }
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 192 },
"end": { "line": 27, "column": 15, "offset": 206 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Some inline ",
"position": {
"start": { "line": 29, "column": 1, "offset": 208 },
"end": { "line": 29, "column": 13, "offset": 220 }
}
},
{
"type": "inlineCode",
"value": "code",
"position": {
"start": { "line": 29, "column": 13, "offset": 220 },
"end": { "line": 29, "column": 19, "offset": 226 }
}
}
],
"position": {
"start": { "line": 29, "column": 1, "offset": 208 },
"end": { "line": 29, "column": 19, "offset": 226 }
}
},
{
"type": "thematicBreak",
"position": {
"start": { "line": 31, "column": 1, "offset": 228 },
"end": { "line": 31, "column": 4, "offset": 231 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Some ",
"position": {
"start": { "line": 33, "column": 1, "offset": 233 },
"end": { "line": 33, "column": 6, "offset": 238 }
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "italics",
"position": {
"start": { "line": 33, "column": 7, "offset": 239 },
"end": { "line": 33, "column": 14, "offset": 246 }
}
}
],
"position": {
"start": { "line": 33, "column": 6, "offset": 238 },
"end": { "line": 33, "column": 15, "offset": 247 }
}
}
],
"position": {
"start": { "line": 33, "column": 1, "offset": 233 },
"end": { "line": 33, "column": 15, "offset": 247 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "A second answer paragraph.",
"position": {
"start": { "line": 35, "column": 1, "offset": 249 },
"end": { "line": 35, "column": 27, "offset": 275 }
}
}
],
"position": {
"start": { "line": 35, "column": 1, "offset": 249 },
"end": { "line": 35, "column": 27, "offset": 275 }
}
},
{
"type": "thematicBreak",
"position": {
"start": { "line": 37, "column": 1, "offset": 277 },
"end": { "line": 37, "column": 4, "offset": 280 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 39, "column": 1, "offset": 282 },
"end": { "line": 39, "column": 7, "offset": 288 }
}
},
{
"type": "text",
"value": " code in ",
"position": {
"start": { "line": 39, "column": 7, "offset": 288 },
"end": { "line": 39, "column": 16, "offset": 297 }
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 39, "column": 16, "offset": 297 },
"end": { "line": 39, "column": 23, "offset": 304 }
}
},
{
"type": "text",
"value": " code tags",
"position": {
"start": { "line": 39, "column": 23, "offset": 304 },
"end": { "line": 39, "column": 33, "offset": 314 }
}
}
],
"position": {
"start": { "line": 39, "column": 1, "offset": 282 },
"end": { "line": 39, "column": 33, "offset": 314 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--video-solution--",
"position": {
"start": { "line": 41, "column": 4, "offset": 319 },
"end": { "line": 41, "column": 22, "offset": 337 }
}
}
],
"position": {
"start": { "line": 41, "column": 1, "offset": 316 },
"end": { "line": 41, "column": 22, "offset": 337 }
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "3",
"position": {
"start": { "line": 43, "column": 1, "offset": 339 },
"end": { "line": 43, "column": 2, "offset": 340 }
}
}
],
"position": {
"start": { "line": 43, "column": 1, "offset": 339 },
"end": { "line": 43, "column": 2, "offset": 340 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 44, "column": 1, "offset": 341 }
}
}
@@ -1,95 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 11, "offset": 10 }
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 3, "column": 4, "offset": 15 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 12 },
"end": { "line": 3, "column": 21, "offset": 32 }
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 5, "column": 1, "offset": 34 },
"end": { "line": 10, "column": 4, "offset": 79 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "key-for-css" },
"children": [],
"position": {
"start": { "line": 11, "column": 1, "offset": 80 },
"end": { "line": 11, "column": 19, "offset": 98 }
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 15, "column": 1, "offset": 102 },
"end": { "line": 19, "column": 4, "offset": 142 }
}
},
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "key-for-js" },
"children": [],
"position": {
"start": { "line": 24, "column": 1, "offset": 147 },
"end": { "line": 24, "column": 18, "offset": 164 }
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 25, "column": 1, "offset": 165 },
"end": { "line": 27, "column": 4, "offset": 187 }
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 28, "column": 1, "offset": 188 }
}
}
File diff suppressed because it is too large Load Diff
@@ -1,533 +0,0 @@
{
"type": "root",
"children": [
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 1, "column": 3, "offset": 2 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 1, "column": 18, "offset": 17 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 7, "column": 4, "offset": 56 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--instructions--",
"position": {
"start": { "line": 9, "column": 3, "offset": 60 },
"end": { "line": 9, "column": 19, "offset": 76 },
"indent": []
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 58 },
"end": { "line": 9, "column": 19, "offset": 76 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 78 },
"end": { "line": 11, "column": 12, "offset": 89 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 13, "column": 1, "offset": 91 },
"end": { "line": 15, "column": 4, "offset": 117 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--hints--",
"position": {
"start": { "line": 17, "column": 3, "offset": 121 },
"end": { "line": 17, "column": 12, "offset": 130 },
"indent": []
}
}
],
"position": {
"start": { "line": 17, "column": 1, "offset": 119 },
"end": { "line": 17, "column": 12, "offset": 130 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-1",
"label": "test-id-1",
"referenceType": "shortcut",
"alt": "test-id-1",
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 13, "offset": 144 },
"indent": []
}
}
],
"position": {
"start": { "line": 19, "column": 1, "offset": 132 },
"end": { "line": 19, "column": 13, "offset": 144 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 21, "column": 1, "offset": 146 },
"end": { "line": 21, "column": 11, "offset": 156 },
"indent": []
}
}
],
"position": {
"start": { "line": 21, "column": 1, "offset": 146 },
"end": { "line": 21, "column": 11, "offset": 156 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 23, "column": 1, "offset": 158 },
"end": { "line": 25, "column": 4, "offset": 180 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-2",
"label": "test-id-2",
"referenceType": "shortcut",
"alt": "test-id-2",
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 27, "column": 13, "offset": 194 },
"indent": []
}
}
],
"position": {
"start": { "line": 27, "column": 1, "offset": 182 },
"end": { "line": 27, "column": 13, "offset": 194 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 29, "column": 1, "offset": 196 },
"end": { "line": 29, "column": 18, "offset": 213 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 29, "column": 18, "offset": 213 },
"end": { "line": 29, "column": 24, "offset": 219 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 29, "column": 24, "offset": 219 },
"end": { "line": 29, "column": 28, "offset": 223 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 29, "column": 28, "offset": 223 },
"end": { "line": 29, "column": 35, "offset": 230 },
"indent": []
}
}
],
"position": {
"start": { "line": 29, "column": 1, "offset": 196 },
"end": { "line": 29, "column": 35, "offset": 230 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 31, "column": 1, "offset": 232 },
"end": { "line": 33, "column": 4, "offset": 259 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-3",
"label": "test-id-3",
"referenceType": "shortcut",
"alt": "test-id-3",
"position": {
"start": { "line": 35, "column": 1, "offset": 261 },
"end": { "line": 35, "column": 13, "offset": 273 },
"indent": []
}
}
],
"position": {
"start": { "line": 35, "column": 1, "offset": 261 },
"end": { "line": 35, "column": 13, "offset": 273 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Third ",
"position": {
"start": { "line": 37, "column": 1, "offset": 275 },
"end": { "line": 37, "column": 7, "offset": 281 },
"indent": []
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "hint",
"position": {
"start": { "line": 37, "column": 8, "offset": 282 },
"end": { "line": 37, "column": 12, "offset": 286 },
"indent": []
}
}
],
"position": {
"start": { "line": 37, "column": 7, "offset": 281 },
"end": { "line": 37, "column": 13, "offset": 287 },
"indent": []
}
},
{
"type": "text",
"value": " with ",
"position": {
"start": { "line": 37, "column": 13, "offset": 287 },
"end": { "line": 37, "column": 19, "offset": 293 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 37, "column": 19, "offset": 293 },
"end": { "line": 37, "column": 25, "offset": 299 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 37, "column": 25, "offset": 299 },
"end": { "line": 37, "column": 29, "offset": 303 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 37, "column": 29, "offset": 303 },
"end": { "line": 37, "column": 36, "offset": 310 },
"indent": []
}
},
{
"type": "text",
"value": " and ",
"position": {
"start": { "line": 37, "column": 36, "offset": 310 },
"end": { "line": 37, "column": 41, "offset": 315 },
"indent": []
}
},
{
"type": "inlineCode",
"value": "inline code",
"position": {
"start": { "line": 37, "column": 41, "offset": 315 },
"end": { "line": 37, "column": 54, "offset": 328 },
"indent": []
}
}
],
"position": {
"start": { "line": 37, "column": 1, "offset": 275 },
"end": { "line": 37, "column": 54, "offset": 328 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code\nif(let x of xs) {\n console.log(x);\n}",
"position": {
"start": { "line": 39, "column": 1, "offset": 330 },
"end": { "line": 44, "column": 4, "offset": 395 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--seed--",
"position": {
"start": { "line": 46, "column": 3, "offset": 399 },
"end": { "line": 46, "column": 11, "offset": 407 },
"indent": []
}
}
],
"position": {
"start": { "line": 46, "column": 1, "offset": 397 },
"end": { "line": 46, "column": 11, "offset": 407 },
"indent": []
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--seed-contents--",
"position": {
"start": { "line": 48, "column": 4, "offset": 412 },
"end": { "line": 48, "column": 20, "offset": 428 },
"indent": []
}
}
],
"position": {
"start": { "line": 48, "column": 1, "offset": 409 },
"end": { "line": 48, "column": 20, "offset": 428 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 50, "column": 1, "offset": 430 },
"end": { "line": 55, "column": 4, "offset": 475 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n--fcc-editable-region--\n background: green;\n\n--fcc-editable-region--\n}",
"position": {
"start": { "line": 57, "column": 1, "offset": 477 },
"end": { "line": 64, "column": 4, "offset": 566 },
"indent": [1, 1, 1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 66, "column": 1, "offset": 568 },
"end": { "line": 68, "column": 4, "offset": 590 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 1,
"children": [
{
"type": "text",
"value": "--solutions--",
"position": {
"start": { "line": 71, "column": 3, "offset": 595 },
"end": { "line": 71, "column": 15, "offset": 607 },
"indent": []
}
}
],
"position": {
"start": { "line": 71, "column": 1, "offset": 593 },
"end": { "line": 71, "column": 15, "offset": 607 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "html-key",
"label": "html-key",
"referenceType": "shortcut",
"alt": "html-key",
"position": {
"start": { "line": 73, "column": 1, "offset": 609 },
"end": { "line": 73, "column": 12, "offset": 620 },
"indent": []
}
}
],
"position": {
"start": { "line": 73, "column": 1, "offset": 609 },
"end": { "line": 73, "column": 12, "offset": 620 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 75, "column": 1, "offset": 622 },
"end": { "line": 80, "column": 4, "offset": 667 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: white;\n}",
"position": {
"start": { "line": 82, "column": 1, "offset": 669 },
"end": { "line": 86, "column": 4, "offset": 709 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';\n``\n",
"position": {
"start": { "line": 88, "column": 1, "offset": 711 },
"end": { "line": 91, "column": 1, "offset": 733 },
"indent": [1, 1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 91, "column": 1, "offset": 733 }
}
}
@@ -1,333 +0,0 @@
{
"type": "root",
"children": [
{
"type": "yaml",
"value": "id: bd7123c8c441eddfaeb5bdef\ntitle: Say Hello to HTML Elements\nchallengeType: 0\nvideoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'\nforumTopicId: 18276",
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 7, "column": 4, "offset": 156 },
"indent": [1, 1, 1, 1, 1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--step-description--",
"position": {
"start": { "line": 9, "column": 4, "offset": 161 },
"end": { "line": 9, "column": 24, "offset": 181 },
"indent": []
}
}
],
"position": {
"start": { "line": 9, "column": 1, "offset": 158 },
"end": { "line": 9, "column": 24, "offset": 181 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 11, "column": 1, "offset": 183 },
"end": { "line": 11, "column": 12, "offset": 194 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 183 },
"end": { "line": 11, "column": 12, "offset": 194 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example",
"position": {
"start": { "line": 13, "column": 1, "offset": 196 },
"end": { "line": 15, "column": 4, "offset": 220 },
"indent": [1, 1]
}
},
{
"type": "code",
"lang": "yaml",
"meta": null,
"value": "key:\n - subkey: value\n anothersubkey: another value",
"position": {
"start": { "line": 17, "column": 1, "offset": 222 },
"end": { "line": 21, "column": 4, "offset": 289 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--step-instructions--",
"position": {
"start": { "line": 23, "column": 4, "offset": 294 },
"end": { "line": 23, "column": 25, "offset": 315 },
"indent": []
}
}
],
"position": {
"start": { "line": 23, "column": 1, "offset": 291 },
"end": { "line": 23, "column": 25, "offset": 315 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 0",
"position": {
"start": { "line": 25, "column": 1, "offset": 317 },
"end": { "line": 25, "column": 12, "offset": 328 },
"indent": []
}
}
],
"position": {
"start": { "line": 25, "column": 1, "offset": 317 },
"end": { "line": 25, "column": 12, "offset": 328 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "code example 0",
"position": {
"start": { "line": 27, "column": 1, "offset": 330 },
"end": { "line": 29, "column": 4, "offset": 356 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--step-hints--",
"position": {
"start": { "line": 31, "column": 4, "offset": 361 },
"end": { "line": 31, "column": 18, "offset": 375 },
"indent": []
}
}
],
"position": {
"start": { "line": 31, "column": 1, "offset": 358 },
"end": { "line": 31, "column": 18, "offset": 375 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-1",
"label": "test-id-1",
"referenceType": "shortcut",
"alt": "test-id-1",
"position": {
"start": { "line": 33, "column": 1, "offset": 377 },
"end": { "line": 33, "column": 13, "offset": 389 },
"indent": []
}
}
],
"position": {
"start": { "line": 33, "column": 1, "offset": 377 },
"end": { "line": 33, "column": 13, "offset": 389 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "First hint",
"position": {
"start": { "line": 35, "column": 1, "offset": 391 },
"end": { "line": 35, "column": 11, "offset": 401 },
"indent": []
}
}
],
"position": {
"start": { "line": 35, "column": 1, "offset": 391 },
"end": { "line": 35, "column": 11, "offset": 401 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// test code",
"position": {
"start": { "line": 37, "column": 1, "offset": 403 },
"end": { "line": 39, "column": 4, "offset": 425 },
"indent": [1, 1]
}
},
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "test-id-2",
"label": "test-id-2",
"referenceType": "shortcut",
"alt": "test-id-2",
"position": {
"start": { "line": 41, "column": 1, "offset": 427 },
"end": { "line": 41, "column": 13, "offset": 439 },
"indent": []
}
}
],
"position": {
"start": { "line": 41, "column": 1, "offset": 427 },
"end": { "line": 41, "column": 13, "offset": 439 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Second hint with ",
"position": {
"start": { "line": 43, "column": 1, "offset": 441 },
"end": { "line": 43, "column": 18, "offset": 458 },
"indent": []
}
},
{
"type": "jsx",
"value": "<code>",
"position": {
"start": { "line": 43, "column": 18, "offset": 458 },
"end": { "line": 43, "column": 24, "offset": 464 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 43, "column": 24, "offset": 464 },
"end": { "line": 43, "column": 28, "offset": 468 },
"indent": []
}
},
{
"type": "jsx",
"value": "</code>",
"position": {
"start": { "line": 43, "column": 28, "offset": 468 },
"end": { "line": 43, "column": 35, "offset": 475 },
"indent": []
}
}
],
"position": {
"start": { "line": 43, "column": 1, "offset": 441 },
"end": { "line": 43, "column": 35, "offset": 475 },
"indent": []
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "// more test code",
"position": {
"start": { "line": 45, "column": 1, "offset": 477 },
"end": { "line": 47, "column": 4, "offset": 504 },
"indent": [1, 1]
}
},
{
"type": "heading",
"depth": 2,
"children": [
{
"type": "text",
"value": "--step-seed--",
"position": {
"start": { "line": 49, "column": 4, "offset": 509 },
"end": { "line": 49, "column": 17, "offset": 522 },
"indent": []
}
}
],
"position": {
"start": { "line": 49, "column": 1, "offset": 506 },
"end": { "line": 49, "column": 17, "offset": 522 },
"indent": []
}
},
{
"type": "code",
"lang": "html",
"meta": null,
"value": "<html>\n <body>\n </body>\n</html>",
"position": {
"start": { "line": 51, "column": 1, "offset": 524 },
"end": { "line": 56, "column": 4, "offset": 569 },
"indent": [1, 1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "css",
"meta": null,
"value": "body {\n background: green;\n}",
"position": {
"start": { "line": 58, "column": 1, "offset": 571 },
"end": { "line": 62, "column": 4, "offset": 611 },
"indent": [1, 1, 1, 1]
}
},
{
"type": "code",
"lang": "js",
"meta": null,
"value": "var x = 'y';",
"position": {
"start": { "line": 64, "column": 1, "offset": 613 },
"end": { "line": 66, "column": 4, "offset": 635 },
"indent": [1, 1]
}
}
],
"position": {
"start": { "line": 1, "column": 1, "offset": 0 },
"end": { "line": 67, "column": 1, "offset": 636 }
}
}
@@ -1,5 +0,0 @@
# comp title
some different text
# another title
@@ -1,5 +0,0 @@
# comp title
some text
# another title
@@ -0,0 +1 @@
<code> code in </code> code tags _emphasis_ followed by <div><span>some nested html </span></div>
@@ -0,0 +1,3 @@
Paragraph 1
Third _hint_ with <code>code</code> and `inline code`
@@ -0,0 +1,13 @@
const { join } = require('path');
const remark = require('remark');
const directive = require('remark-directive');
const frontmatter = require('remark-frontmatter');
const { read } = require('to-vfile');
const parseFixture = async (filename) => remark()
.use(directive)
.use(frontmatter, ['yaml'])
.parse(await read(join(__dirname, filename)));
module.exports = parseFixture;
@@ -1,8 +0,0 @@
```js
for (let index = 0; index < array.length; index++) {
const element = array[index];
--fcc-editable-region--
// imported from script.md
--fcc-editable-region--
}
```
@@ -0,0 +1,84 @@
# --description--
Paragraph 1
```html
code example
```
# --instructions--
Paragraph 0
```html
code example 0
```
# --hints--
First hint
```js
// test code
```
Second hint with <code>code</code>
```js
// more test code
```
Third *hint* with <code>code</code> and `inline code`
```js
// more test code
if(let x of xs) {
console.log(x);
}
```
# --seed--
## --seed-contents--
```html
<html>
<body>
</body>
</html>
```
```css
body {
--fcc-editable-region-- --fcc-editable-region--
background: green;
}
```
```js
var x = 'y';
```
# --solutions--
::id{#html-key}
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: white;
}
```
```js
var x = 'y';
```
@@ -0,0 +1,95 @@
# --description--
Paragraph 1
```html
code example
```
# --instructions--
Paragraph 0
```html
code example 0
```
# --hints--
First hint
```js
// test code
```
Second hint with <code>code</code>
```js
// more test code
```
Third *hint* with <code>code</code> and `inline code`
```js
// more test code
if(let x of xs) {
console.log(x);
}
```
# --seed--
## --before-user-code--
```css
body {
etc: ''
}
```
```html
<!-- comment -->
```
## --seed-contents--
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: green;
}
```
```js
var x = 'y';
```
## --after-user-code--
# --solutions--
::id{#html-key}
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: white;
}
```
```js
var x = 'y';
``
@@ -0,0 +1,96 @@
# --description--
Paragraph 1
```html
code example
```
# --instructions--
Paragraph 0
```html
code example 0
```
# --hints--
First hint
```js
// test code
```
Second hint with <code>code</code>
```js
// more test code
```
Third *hint* with <code>code</code> and `inline code`
```js
// more test code
if(let x of xs) {
console.log(x);
}
```
# --seed--
## --before-user-code--
## --seed-contents--
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: green;
}
```
```js
var x = 'y';
```
## --after-user-code--
```css
body {
background: blue;
}
```
```js
function teardown(params) {
// after
}
```
# --solutions--
::id{#html-key}
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: white;
}
```
```js
var x = 'y';
``
@@ -1,7 +1,7 @@
::import{component="Script" from="./script.md" }
# --description--
# this should still be inside --description--
Paragraph 1
```html
@@ -18,25 +18,31 @@ code example 0
# --hints--
::id{#test-id-1}
First hint
```js
// test code
```
::id{#test-id-2}
Second hint with <code>code</code>
```js
// more test code
```
Third *hint* with <code>code</code> and `inline code`
```js
// more test code
if(let x of xs) {
console.log(x);
}
```
# --seed--
## --seed-contents--
```html
<html>
<body>
@@ -50,10 +56,28 @@ body {
}
```
::id{#custom-name}
```js
var x = 'y';
```
::use{component="Script"}
# --solutions--
::id{#html-key}
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: white;
}
```
```js
var x = 'y';
``
@@ -6,10 +6,10 @@ In English, to check or confirm something people sometimes use tag questions. Fo
## --sentence--
`A sentence _ paragraph 1`
`A sentence BLANK paragraph 1`
`not enough newlines, so no paragraph 2`
Sentence in _ 2
Sentence in BLANK 2
## --blanks--
@@ -6,9 +6,9 @@ In English, to check or confirm something people sometimes use tag questions. Fo
## --sentence--
`A sentence _ paragraph 1`
`A sentence BLANK paragraph 1`
Sentence in _ 2
Sentence in BLANK 2
## --blanks--
@@ -2,7 +2,7 @@
## --sentence--
`Sure thing! _ _ _.`
`Sure thing! BLANK _ _.`
## --blanks--
@@ -8,7 +8,7 @@ Maria is introducing herself and confirming Tom's job role. `Are` is used in the
## --sentence--
`Hello, You _ the new graphic designer, right?`
`Hello, You BLANK the new graphic designer, right?`
## --blanks--
@@ -6,9 +6,9 @@ In English, to check or confirm something people sometimes use tag questions. Fo
## --sentence--
`A sentence _ paragraph 1`
`A sentence BLANK paragraph 1`
`Sentence in _ 2`
`Sentence in BLANK 2`
## --blanks--
@@ -8,7 +8,7 @@ Maria is introducing herself and confirming Tom's job role. `Are` is used in the
## --sentence--
`Hello, You _ the new graphic designer, _? _ to meet you!`
`Hello, You BLANK the new graphic designer, BLANK? BLANK to meet you!`
## --blanks--
@@ -28,4 +28,4 @@ Feedback 2
---
`Nice`
`Nice`
@@ -0,0 +1,5 @@
::id{#html-key}
![test image](https://example.com/image.png)
Paragraph with an image ![test image](https://example.com/image.png) in it.
@@ -1,5 +1,4 @@
::import{component="Script" from="./script.md" }
::import{component="Second" from="./script-two.md" }
# --description--
@@ -0,0 +1,104 @@
# --description--
Paragraph 1
```html
code example
```
# --instructions--
Paragraph 0
```html
code example 0
```
# --hints--
First hint
```js
// test code
```
Second hint with <code>code</code>
```js
// more test code
```
Third *hint* with <code>code</code> and `inline code`
```js
// more test code
if(let x of xs) {
console.log(x);
}
```
# --seed--
## --before-user-code--
```css
body {
etc: ''
}
```
```html
<!-- comment -->
```
## --seed-contents--
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: green;
}
```
```js
var x = 'y';
```
## --after-user-code--
```css
```
```js
function teardown(params) {
// after
}
```
# --solutions--
::id{#html-key}
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: white;
}
```
```js
var x = 'y';
``
@@ -0,0 +1,104 @@
# --description--
Paragraph 1
```html
code example
```
# --instructions--
Paragraph 0
```html
code example 0
```
# --hints--
First hint
```js
// test code
```
Second hint with <code>code</code>
```js
// more test code
```
Third *hint* with <code>code</code> and `inline code`
```js
// more test code
if(let x of xs) {
console.log(x);
}
```
# --seed--
## --before-user-code--
```css
```
```html
<!-- comment -->
```
## --seed-contents--
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: green;
}
```
```js
var x = 'y';
```
## --after-user-code--
```css
body {
background: blue;
}
```
```js
function teardown(params) {
// after
}
```
# --solutions--
::id{#html-key}
```html
<html>
<body>
</body>
</html>
```
```css
body {
background: white;
}
```
```js
var x = 'y';
``
@@ -1,3 +0,0 @@
# --description--
<code> code in </code> code tags *emphasis* followed by <div><span>some nested html </span></div>
@@ -0,0 +1,5 @@
# --hints--
First hint
Whoops, this should have been a test code block
@@ -0,0 +1,77 @@
# --description--
Paragraph 1
```html
code example
```
# --instructions--
Paragraph 0
```html
code example 0
```
# --questions--
## --text--
Question line 1
```js
var x = 'y';
```
## --answers--
Some inline `code`
### --feedback--
That is not correct.
---
Some *italics*
A second answer paragraph.
---
<code> code in </code> code tags
## --video-solution--
3
## --text--
Question 2
```js
var anything = 'y';
```
## --answers--
Some inline `code` again
### --feedback--
That is not correct.
---
Some *italics*
A second answer paragraph.
---
<code> code in </code> code tags
## --video-solution--
2
@@ -0,0 +1,43 @@
# --seed--
## --seed-contents--
```html
<html>
<body>
</body>
</html>
```
::id{#key-for-css}
```css
body {
background: green;
}
```
::id{#key-for-jsx}
```jsx
var x = 'y';
/* comment */
const Button = () => {
return <button> {/* another comment! */} text </button>;
};
```
## --before-user-code--
```jsx
function setup() {}
```
## --after-user-code--
```jsx
function teardown(params) {
// after
}
```
@@ -5,6 +5,7 @@ exports[`process-frontmatter plugin should have an output to match the snapshot
"challengeType": 0,
"forumTopicId": 18276,
"id": "bd7123c8c441eddfaeb5bdef",
"isHidden": false,
"title": "Say Hello to HTML Elements",
"videoUrl": "https://scrimba.com/p/pVMPUv/cE8Gpt2",
}
@@ -10,12 +10,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 18,
"line": 3,
"offset": 68,
"offset": 67,
},
"start": {
"column": 3,
"line": 3,
"offset": 53,
"offset": 52,
},
},
"type": "text",
@@ -27,12 +27,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 18,
"line": 3,
"offset": 68,
"offset": 67,
},
"start": {
"column": 1,
"line": 3,
"offset": 51,
"offset": 50,
},
},
"type": "heading",
@@ -44,12 +44,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 12,
"line": 5,
"offset": 81,
"offset": 80,
},
"start": {
"column": 1,
"line": 5,
"offset": 70,
"offset": 69,
},
},
"type": "text",
@@ -60,12 +60,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 12,
"line": 5,
"offset": 81,
"offset": 80,
},
"start": {
"column": 1,
"line": 5,
"offset": 70,
"offset": 69,
},
},
"type": "paragraph",
@@ -77,12 +77,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 4,
"line": 9,
"offset": 107,
"offset": 106,
},
"start": {
"column": 1,
"line": 7,
"offset": 83,
"offset": 82,
},
},
"type": "code",
@@ -95,12 +95,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 19,
"line": 11,
"offset": 127,
"offset": 126,
},
"start": {
"column": 3,
"line": 11,
"offset": 111,
"offset": 110,
},
},
"type": "text",
@@ -112,12 +112,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 19,
"line": 11,
"offset": 127,
"offset": 126,
},
"start": {
"column": 1,
"line": 11,
"offset": 109,
"offset": 108,
},
},
"type": "heading",
@@ -129,12 +129,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 12,
"line": 13,
"offset": 140,
"offset": 139,
},
"start": {
"column": 1,
"line": 13,
"offset": 129,
"offset": 128,
},
},
"type": "text",
@@ -145,12 +145,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 12,
"line": 13,
"offset": 140,
"offset": 139,
},
"start": {
"column": 1,
"line": 13,
"offset": 129,
"offset": 128,
},
},
"type": "paragraph",
@@ -162,12 +162,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 4,
"line": 17,
"offset": 168,
"offset": 167,
},
"start": {
"column": 1,
"line": 15,
"offset": 142,
"offset": 141,
},
},
"type": "code",
@@ -180,12 +180,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 12,
"line": 19,
"offset": 181,
"offset": 180,
},
"start": {
"column": 3,
"line": 19,
"offset": 172,
"offset": 171,
},
},
"type": "text",
@@ -197,12 +197,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 12,
"line": 19,
"offset": 181,
"offset": 180,
},
"start": {
"column": 1,
"line": 19,
"offset": 170,
"offset": 169,
},
},
"type": "heading",
@@ -214,12 +214,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 11,
"line": 21,
"offset": 193,
"offset": 192,
},
"start": {
"column": 1,
"line": 21,
"offset": 183,
"offset": 182,
},
},
"type": "text",
@@ -230,12 +230,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 11,
"line": 21,
"offset": 193,
"offset": 192,
},
"start": {
"column": 1,
"line": 21,
"offset": 183,
"offset": 182,
},
},
"type": "paragraph",
@@ -247,12 +247,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 4,
"line": 25,
"offset": 217,
"offset": 216,
},
"start": {
"column": 1,
"line": 23,
"offset": 195,
"offset": 194,
},
},
"type": "code",
@@ -265,12 +265,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 18,
"line": 27,
"offset": 236,
"offset": 235,
},
"start": {
"column": 1,
"line": 27,
"offset": 219,
"offset": 218,
},
},
"type": "text",
@@ -281,12 +281,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 24,
"line": 27,
"offset": 242,
"offset": 241,
},
"start": {
"column": 18,
"line": 27,
"offset": 236,
"offset": 235,
},
},
"type": "html",
@@ -297,12 +297,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 28,
"line": 27,
"offset": 246,
"offset": 245,
},
"start": {
"column": 24,
"line": 27,
"offset": 242,
"offset": 241,
},
},
"type": "text",
@@ -313,12 +313,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 35,
"line": 27,
"offset": 253,
"offset": 252,
},
"start": {
"column": 28,
"line": 27,
"offset": 246,
"offset": 245,
},
},
"type": "html",
@@ -329,12 +329,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 35,
"line": 27,
"offset": 253,
"offset": 252,
},
"start": {
"column": 1,
"line": 27,
"offset": 219,
"offset": 218,
},
},
"type": "paragraph",
@@ -346,12 +346,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 4,
"line": 31,
"offset": 282,
"offset": 281,
},
"start": {
"column": 1,
"line": 29,
"offset": 255,
"offset": 254,
},
},
"type": "code",
@@ -364,12 +364,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 11,
"line": 34,
"offset": 295,
"offset": 294,
},
"start": {
"column": 3,
"line": 34,
"offset": 287,
"offset": 286,
},
},
"type": "text",
@@ -381,12 +381,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 11,
"line": 34,
"offset": 295,
"offset": 294,
},
"start": {
"column": 1,
"line": 34,
"offset": 285,
"offset": 284,
},
},
"type": "heading",
@@ -398,12 +398,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 21,
"line": 36,
"offset": 317,
"offset": 316,
},
"start": {
"column": 4,
"line": 36,
"offset": 300,
"offset": 299,
},
},
"type": "text",
@@ -415,12 +415,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 21,
"line": 36,
"offset": 317,
"offset": 316,
},
"start": {
"column": 1,
"line": 36,
"offset": 297,
"offset": 296,
},
},
"type": "heading",
@@ -432,12 +432,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 4,
"line": 43,
"offset": 364,
"offset": 363,
},
"start": {
"column": 1,
"line": 38,
"offset": 319,
"offset": 318,
},
},
"type": "code",
@@ -453,12 +453,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 4,
"line": 49,
"offset": 406,
"offset": 405,
},
"start": {
"column": 1,
"line": 45,
"offset": 366,
"offset": 365,
},
},
"type": "code",
@@ -467,39 +467,24 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
}",
},
{
"children": [
{
"alt": "custom-name",
"position": {
"end": {
"column": 17,
"line": 51,
"offset": 424,
},
"start": {
"column": 1,
"line": 51,
"offset": 408,
},
},
"title": null,
"type": "image",
"url": "",
},
],
"attributes": {
"id": "custom-name",
},
"children": [],
"name": "id",
"position": {
"end": {
"column": 17,
"column": 19,
"line": 51,
"offset": 424,
"offset": 425,
},
"start": {
"column": 1,
"line": 51,
"offset": 408,
"offset": 407,
},
},
"type": "paragraph",
"type": "leafDirective",
},
{
"lang": "js",
@@ -508,12 +493,12 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 4,
"line": 55,
"offset": 448,
"offset": 449,
},
"start": {
"column": 1,
"line": 53,
"offset": 426,
"offset": 427,
},
},
"type": "code",
@@ -545,7 +530,7 @@ exports[`replace-imports should have an output to match the snapshot 1`] = `
"end": {
"column": 1,
"line": 58,
"offset": 476,
"offset": 477,
},
"start": {
"column": 1,
@@ -1,4 +1,4 @@
const getAllBetween = require('./utils/between-headings');
const getSection = require('./utils/get-section');
const mdastToHtml = require('./utils/mdast-to-html');
const { splitOnThematicBreak } = require('./utils/split-on-thematic-break');
@@ -7,7 +7,7 @@ function plugin() {
return transformer;
function transformer(tree, file) {
const assignmentNodes = getAllBetween(tree, '--assignment--');
const assignmentNodes = getSection(tree, '--assignment--');
const assignment = getAssignments(assignmentNodes).filter(a => a != '');
@@ -1,7 +1,7 @@
const { root } = require('mdast-builder');
const find = require('unist-util-find');
const visit = require('unist-util-visit');
const getAllBetween = require('./utils/between-headings');
const getSection = require('./utils/get-section');
const getAllBefore = require('./utils/before-heading');
const mdastToHtml = require('./utils/mdast-to-html');
@@ -36,14 +36,14 @@ Example of good formatting:
function plugin() {
return transformer;
function transformer(tree, file) {
const fillInTheBlankNodes = getAllBetween(tree, '--fillInTheBlank--');
const fillInTheBlankNodes = getSection(tree, '--fillInTheBlank--');
if (fillInTheBlankNodes.length > 0) {
const fillInTheBlankTree = root(fillInTheBlankNodes);
validateBlanksCount(fillInTheBlankTree);
const sentenceNodes = getAllBetween(fillInTheBlankTree, '--sentence--');
const blanksNodes = getAllBetween(fillInTheBlankTree, '--blanks--');
const sentenceNodes = getSection(fillInTheBlankTree, '--sentence--');
const blanksNodes = getSection(fillInTheBlankTree, '--blanks--');
const fillInTheBlank = getfillInTheBlank(sentenceNodes, blanksNodes);
@@ -97,7 +97,7 @@ function getBlanks(blanksNodes) {
if (feedback) {
const blanksNodes = getAllBefore(blanksTree, '--feedback--');
const feedbackNodes = getAllBetween(blanksTree, '--feedback--');
const feedbackNodes = getSection(blanksTree, '--feedback--');
return {
answer: blanksNodes[0].children[0].value,
@@ -1,15 +1,35 @@
const mockFillInTheBlankAST = require('../__fixtures__/ast-fill-in-the-blank.json');
const mockFillInTheBlankYouAreAST = require('../__fixtures__/ast-fill-in-the-blank-one-blank.json');
const mockFillInTheBlankTwoSentencesAST = require('../__fixtures__/ast-fill-in-the-blank-two-sentences.json');
const mockFillInTheBlankBadSentence = require('../__fixtures__/ast-fill-in-the-blank-bad-sentence.json');
const mockFillInTheBlankBadParagraph = require('../__fixtures__/ast-fill-in-the-blank-bad-paragraph.json');
const mockFillInTheBlankMultipleBlanks = require('../__fixtures__/ast-fill-in-the-blank-many-blanks.json');
const parseFixture = require('../__fixtures__/parse-fixture');
const addFillInTheBlankQuestion = require('./add-fill-in-the-blank');
describe('fill-in-the-blanks plugin', () => {
let mockFillInTheBlankAST,
mockFillInTheBlankYouAreAST,
mockFillInTheBlankTwoSentencesAST,
mockFillInTheBlankBadSentence,
mockFillInTheBlankBadParagraph,
mockFillInTheBlankMultipleBlanks;
const plugin = addFillInTheBlankQuestion();
let file = { data: {} };
beforeAll(async () => {
mockFillInTheBlankAST = await parseFixture('with-fill-in-the-blank.md');
mockFillInTheBlankYouAreAST = await parseFixture(
'with-fill-in-the-blank-one-blank.md'
);
mockFillInTheBlankTwoSentencesAST = await parseFixture(
'with-fill-in-the-blank-two-sentences.md'
);
mockFillInTheBlankBadSentence = await parseFixture(
'with-fill-in-the-blank-bad-sentence.md'
);
mockFillInTheBlankBadParagraph = await parseFixture(
'with-fill-in-the-blank-bad-paragraph.md'
);
mockFillInTheBlankMultipleBlanks = await parseFixture(
'with-fill-in-the-blank-many-blanks.md'
);
});
beforeEach(() => {
file = { data: {} };
});
@@ -1,9 +1,15 @@
const { isObject } = require('lodash');
const mockAST = require('../__fixtures__/ast-yaml-challenge.json');
const parse = require('../__fixtures__/parse-fixture');
const processFrontmatter = require('./add-frontmatter');
describe('process-frontmatter plugin', () => {
let mockAST;
beforeAll(async () => {
mockAST = await parse('with-frontmatter.md');
});
const plugin = processFrontmatter();
let file = { data: {} };
beforeEach(() => {
@@ -26,6 +32,7 @@ describe('process-frontmatter plugin', () => {
'id',
'title',
'challengeType',
'isHidden',
'videoUrl',
'forumTopicId'
];
@@ -35,7 +42,6 @@ describe('process-frontmatter plugin', () => {
});
it('should not mutate any type held in the frontmatter', () => {
expect.assertions(5);
plugin(mockAST, file);
const { id, title, challengeType, videoUrl, forumTopicId } = file.data;
expect(typeof id).toEqual('string');
@@ -46,7 +52,6 @@ describe('process-frontmatter plugin', () => {
});
it('should trim extra whitespace from keys and values', () => {
expect.assertions(8);
plugin(mockAST, file);
const whitespaceRE = /(^\s\S+|\S\s$)/;
const keys = Object.keys(file.data);
@@ -1,10 +1,10 @@
const getAllBetween = require('./utils/between-headings');
const getSection = require('./utils/get-section');
function plugin() {
return transformer;
function transformer(tree, file) {
const sceneNodes = getAllBetween(tree, '--scene--');
const sceneNodes = getSection(tree, '--scene--');
if (sceneNodes.length > 0) {
if (sceneNodes.length !== 1) {
@@ -1,7 +1,7 @@
const { isEmpty } = require('lodash');
const { root } = require('mdast-builder');
const visitChildren = require('unist-util-visit-children');
const getAllBetween = require('./utils/between-headings');
const getSection = require('./utils/get-section');
const { getFileVisitor } = require('./utils/get-file-visitor');
const editableRegionMarker = '--fcc-editable-region--';
@@ -33,13 +33,13 @@ function removeLines(contents, toRemove) {
// TODO: DRY this. Start with an array of markers and go from there.
function addSeeds() {
function transformer(tree, file) {
const seedTree = root(getAllBetween(tree, `--seed--`));
const seedTree = root(getSection(tree, `--seed--`));
// Not all challenges have seeds (video challenges, for example), so we stop
// processing in these cases.
if (isEmpty(seedTree.children)) return;
const contentsTree = root(getAllBetween(seedTree, `--seed-contents--`));
const headTree = root(getAllBetween(seedTree, `--before-user-code--`));
const tailTree = root(getAllBetween(seedTree, `--after-user-code--`));
const contentsTree = root(getSection(seedTree, `--seed-contents--`));
const headTree = root(getSection(seedTree, `--before-user-code--`));
const tailTree = root(getSection(seedTree, `--after-user-code--`));
const seeds = {};
// While before and after code are optional, the contents are not
@@ -1,28 +1,50 @@
const isArray = require('lodash/isArray');
const adjacentKeysAST = require('../__fixtures__/ast-adjacent-keys.json');
const withBeforeAfterAST = require('../__fixtures__/ast-before-after.json');
const cCodeAST = require('../__fixtures__/ast-c-code.json');
const doubleMarkerAST = require('../__fixtures__/ast-double-marker.json');
const emptyAfterAST = require('../__fixtures__/ast-empty-after.json');
const emptyBeforeAST = require('../__fixtures__/ast-empty-before.json');
const emptyContentAST = require('../__fixtures__/ast-empty-contents.json');
const emptyCSSAST = require('../__fixtures__/ast-empty-css.json');
const emptyHTMLAST = require('../__fixtures__/ast-empty-html.json');
const explodedMarkerAST = require('../__fixtures__/ast-exploded-marker.json');
const jsxSeedAST = require('../__fixtures__/ast-jsx-seed.json');
const orphanKeyAST = require('../__fixtures__/ast-orphan-key.json');
const withSeedKeysAST = require('../__fixtures__/ast-seed-keys.json');
const simpleAST = require('../__fixtures__/ast-simple.json');
const withExtraLinesAST = require('../__fixtures__/ast-with-extra-lines.json');
const withEditableAST = require('../__fixtures__/ast-with-markers.json');
const parseFixture = require('../__fixtures__/parse-fixture');
const addSeed = require('./add-seed');
describe('add-seed plugin', () => {
let adjacentKeysAST,
withSeedKeysAST,
withBeforeAfterAST,
cCodeAST,
withErmsOnOneLineAST,
withEmptyAfterAST,
withEmptyBeforeAST,
withEmptyContentsAST,
withInvalidBeforeAST,
withInvalidAfterAST,
simpleAST,
withEditableMarkersAST,
withSeedKeysOrphanAST,
withSeedKeysExtraLinesAST,
withSeedKeysJSXAST;
const plugin = addSeed();
let file = { data: {} };
beforeAll(async () => {
adjacentKeysAST = await parseFixture('with-seed-keys-adjacent.md');
withSeedKeysAST = await parseFixture('with-seed-keys.md');
withBeforeAfterAST = await parseFixture('with-before-and-after.md');
cCodeAST = await parseFixture('with-c-code.md');
withErmsOnOneLineAST = await parseFixture(
'with-editable-markers-on-one-line.md'
);
withEmptyAfterAST = await parseFixture('with-empty-after.md');
withEmptyBeforeAST = await parseFixture('with-empty-before.md');
withEmptyContentsAST = await parseFixture('with-empty-contents.md');
withInvalidBeforeAST = await parseFixture('with-invalid-before.md');
withInvalidAfterAST = await parseFixture('with-invalid-after.md');
simpleAST = await parseFixture('simple.md');
withEditableMarkersAST = await parseFixture('with-editable-markers.md');
withSeedKeysOrphanAST = await parseFixture('with-seed-keys-orphan.md');
withSeedKeysExtraLinesAST = await parseFixture(
'with-seed-keys-extra-lines.md'
);
withSeedKeysJSXAST = await parseFixture('with-seed-keys-jsx.md');
});
beforeEach(() => {
file = { data: {} };
});
@@ -87,7 +109,7 @@ describe('add-seed plugin', () => {
it('removes region markers from contents', () => {
expect.assertions(2);
plugin(withEditableAST, file);
plugin(withEditableMarkersAST, file);
const {
data: { challengeFiles }
} = file;
@@ -119,7 +141,7 @@ describe('add-seed plugin', () => {
expect(() => plugin(adjacentKeysAST, file)).toThrow(
'::id{#id}s must come before code blocks'
);
expect(() => plugin(orphanKeyAST, file)).toThrow(
expect(() => plugin(withSeedKeysOrphanAST, file)).toThrow(
'::id{#id}s must come before code blocks'
);
});
@@ -128,7 +150,7 @@ describe('add-seed plugin', () => {
expect.assertions(1);
plugin(withSeedKeysAST, file);
const fileTwo = { data: {} };
plugin(withExtraLinesAST, fileTwo);
plugin(withSeedKeysExtraLinesAST, fileTwo);
expect(file).toEqual(fileTwo);
});
@@ -178,17 +200,17 @@ describe('add-seed plugin', () => {
it('throws if there is before/after code with empty blocks', () => {
expect.assertions(2);
expect(() => plugin(emptyHTMLAST, file)).toThrow(
expect(() => plugin(withInvalidBeforeAST, file)).toThrow(
'Empty code block in --before-user-code-- section'
);
expect(() => plugin(emptyCSSAST, file)).toThrow(
expect(() => plugin(withInvalidAfterAST, file)).toThrow(
'Empty code block in --after-user-code-- section'
);
});
it('quietly ignores empty before sections', () => {
expect.assertions(6);
plugin(emptyBeforeAST, file);
plugin(withEmptyBeforeAST, file);
const {
data: { challengeFiles }
} = file;
@@ -206,7 +228,7 @@ describe('add-seed plugin', () => {
it('quietly ignores empty after sections', () => {
expect.assertions(6);
plugin(emptyAfterAST, file);
plugin(withEmptyAfterAST, file);
const {
data: { challengeFiles }
} = file;
@@ -224,21 +246,14 @@ describe('add-seed plugin', () => {
it('throws an error (with line number) if 2 markers appear on 1 line', () => {
expect.assertions(1);
expect(() => plugin(doubleMarkerAST, file)).toThrow(
`Line 8 has two markers. Each line should only have one.`
);
});
it('throws if a javascript file has formatted a marker', () => {
expect.assertions(1);
expect(() => plugin(explodedMarkerAST, file)).toThrow(
`Line 66 has a malformed marker. It should be --fcc-editable-region--`
expect(() => plugin(withErmsOnOneLineAST, file)).toThrow(
`Line 53 has two markers. Each line should only have one.`
);
});
it('handles jsx', () => {
expect.assertions(3);
plugin(jsxSeedAST, file);
plugin(withSeedKeysJSXAST, file);
const {
data: { challengeFiles }
} = file;
@@ -276,12 +291,12 @@ const Button = () => {
depending on what's easier to work with in graphQL
});
*/
it('should throw an error if a seed has no contents', () => {
expect.assertions(1);
expect(() => plugin(emptyContentAST, file)).toThrow(
expect(() => plugin(withEmptyContentsAST, file)).toThrow(
`## --seed-contents-- must appear in # --seed-- sections`
);
});
@@ -3,7 +3,7 @@ const { root } = require('mdast-builder');
const visitChildren = require('unist-util-visit-children');
const { editableRegionMarker } = require('./add-seed');
const getAllBetween = require('./utils/between-headings');
const getSection = require('./utils/get-section');
const { getFileVisitor } = require('./utils/get-file-visitor');
const { splitOnThematicBreak } = require('./utils/split-on-thematic-break');
@@ -19,7 +19,7 @@ function validateMarkers({ value }) {
function createPlugin() {
return function transformer(tree, file) {
const solutionArrays = splitOnThematicBreak(
getAllBetween(tree, `--solutions--`)
getSection(tree, `--solutions--`)
);
const solutions = [];
@@ -1,11 +1,16 @@
const { isObject } = require('lodash');
const editableSolutionAST = require('../__fixtures__/ast-erm-in-solution.json');
const multiSolnsAST = require('../__fixtures__/ast-multiple-solutions.json');
const mockAST = require('../__fixtures__/ast-simple.json');
const parseFixture = require('../__fixtures__/parse-fixture');
const addSolution = require('./add-solution');
describe('add solution plugin', () => {
let mockAST, multiSolnsAST, editableSolutionAST;
beforeAll(async () => {
editableSolutionAST = await parseFixture('with-erm-in-solution.md');
mockAST = await parseFixture('simple.md');
multiSolnsAST = await parseFixture('with-multiple-solns.md');
});
const plugin = addSolution();
let file = { data: {} };
@@ -1,12 +1,12 @@
const chunk = require('lodash/chunk');
const getAllBetween = require('./utils/between-headings');
const getSection = require('./utils/get-section');
const mdastToHtml = require('./utils/mdast-to-html');
function plugin() {
return transformer;
function transformer(tree, file) {
const hintNodes = getAllBetween(tree, '--hints--');
const hintNodes = getSection(tree, '--hints--');
if (hintNodes.length % 2 !== 0)
throw Error('Tests must be in (text, ```testString```) order');
@@ -1,11 +1,17 @@
const brokenHintsAST = require('../__fixtures__/ast-broken-hints.json');
const simpleAST = require('../__fixtures__/ast-simple.json');
const parseFixture = require('../__fixtures__/parse-fixture');
const addTests = require('./add-tests');
describe('add-tests plugin', () => {
let brokenHintsAST, simpleAST, missingTestStringAST;
const plugin = addTests();
let file = { data: {} };
beforeAll(async () => {
simpleAST = await parseFixture('simple.md');
brokenHintsAST = await parseFixture('with-broken-hints.md');
missingTestStringAST = await parseFixture('with-missing-teststring.md');
});
beforeEach(() => {
file = { data: {} };
});
@@ -33,8 +39,14 @@ describe('add-tests plugin', () => {
// TODO: make this a bit more robust and informative
it('should throw if a test pair is out of order', () => {
expect.assertions(1);
// TODO: update the markdown so it makes this error
expect(() => plugin(brokenHintsAST, file)).toThrow(
'Tests must be in (text, ```testString```) order'
);
});
it('should throw if a test string is not found', () => {
expect(() => plugin(missingTestStringAST, file)).toThrow(
'testString (code block) is missing from hint'
);
});
@@ -1,5 +1,5 @@
const { isEmpty } = require('lodash');
const getAllBetween = require('./utils/between-headings');
const getSection = require('./utils/get-section');
const mdastToHTML = require('./utils/mdast-to-html');
function addText(sectionIds) {
@@ -8,7 +8,7 @@ function addText(sectionIds) {
}
function transformer(tree, file) {
for (const sectionId of sectionIds) {
const textNodes = getAllBetween(tree, `--${sectionId}--`);
const textNodes = getSection(tree, `--${sectionId}--`);
const sectionText = mdastToHTML(textNodes);
if (!isEmpty(sectionText)) {
@@ -1,15 +1,18 @@
// eslint-disable-next-line max-len
const incorrectMarkersAST = require('../__fixtures__/ast-incorrect-markers.json');
const realisticAST = require('../__fixtures__/ast-realistic.json');
const mockAST = require('../__fixtures__/ast-simple.json');
const parseFixture = require('../__fixtures__/parse-fixture');
const addText = require('./add-text');
describe('add-text', () => {
let realisticAST, mockAST;
const descriptionId = 'description';
const instructionsId = 'instructions';
// const unexpectedField = 'does-not-exist';
const missingId = 'missing';
let file = { data: {} };
beforeAll(async () => {
realisticAST = await parseFixture('realistic.md');
mockAST = await parseFixture('simple.md');
});
beforeEach(() => {
file = { data: {} };
});
@@ -83,8 +86,8 @@ describe('add-text', () => {
// eslint-disable-next-line max-len
it('should add nothing if a section id does not appear in the md', () => {
const plugin = addText([descriptionId]);
plugin(incorrectMarkersAST, file);
const plugin = addText([missingId]);
plugin(mockAST, file);
expect(file.data[descriptionId]).toBeUndefined();
});
@@ -1,6 +1,6 @@
const { root } = require('mdast-builder');
const find = require('unist-util-find');
const getAllBetween = require('./utils/between-headings');
const getSection = require('./utils/get-section');
const getAllBefore = require('./utils/before-heading');
const mdastToHtml = require('./utils/mdast-to-html');
@@ -9,7 +9,7 @@ const { splitOnThematicBreak } = require('./utils/split-on-thematic-break');
function plugin() {
return transformer;
function transformer(tree, file) {
const allQuestionNodes = getAllBetween(tree, '--questions--');
const allQuestionNodes = getSection(tree, '--questions--');
if (allQuestionNodes.length > 0) {
const questions = [];
@@ -28,9 +28,9 @@ function plugin() {
questionTrees.forEach(questionNodes => {
const questionTree = root(questionNodes);
const textNodes = getAllBetween(questionTree, '--text--');
const answersNodes = getAllBetween(questionTree, '--answers--');
const solutionNodes = getAllBetween(questionTree, '--video-solution--');
const textNodes = getSection(questionTree, '--text--');
const answersNodes = getSection(questionTree, '--answers--');
const solutionNodes = getSection(questionTree, '--video-solution--');
questions.push(getQuestion(textNodes, answersNodes, solutionNodes));
});
@@ -61,7 +61,7 @@ function getAnswers(answersNodes) {
if (feedback) {
const answerNodes = getAllBefore(answerTree, '--feedback--');
const feedbackNodes = getAllBetween(answerTree, '--feedback--');
const feedbackNodes = getSection(answerTree, '--feedback--');
if (answerNodes.length < 1) {
throw Error('Answer missing');
@@ -1,13 +1,22 @@
const simpleAST = require('../__fixtures__/ast-simple.json');
const mockVideoAST = require('../__fixtures__/ast-video-challenge.json');
// eslint-disable-next-line max-len
const videoOutOfOrderAST = require('../__fixtures__/ast-video-out-of-order.json');
const parseFixture = require('../__fixtures__/parse-fixture');
const addVideoQuestion = require('./add-video-question');
describe('add-video-question plugin', () => {
let simpleAST, videoAST, multipleQuestionAST, videoOutOfOrderAST;
const plugin = addVideoQuestion();
let file = { data: {} };
beforeAll(async () => {
simpleAST = await parseFixture('simple.md');
videoAST = await parseFixture('with-video-question.md');
multipleQuestionAST = await parseFixture(
'with-multiple-video-questions.md'
);
videoOutOfOrderAST = await parseFixture(
'with-video-question-out-of-order.md'
);
});
beforeEach(() => {
file = { data: {} };
});
@@ -17,32 +26,45 @@ describe('add-video-question plugin', () => {
});
it('adds a `questions` property to `file.data`', () => {
plugin(mockVideoAST, file);
plugin(videoAST, file);
expect('questions' in file.data).toBe(true);
});
const checkQuestion = question => {
expect(question).toHaveProperty('text');
expect(typeof question.text).toBe('string');
expect(question).toHaveProperty('solution');
expect(typeof question.solution).toBe('number');
expect(question).toHaveProperty('answers');
expect(Array.isArray(question.answers)).toBe(true);
expect(typeof question.answers[0]).toBe('object');
expect(question.answers[0]).toHaveProperty('answer');
expect(question.answers[0].answer).toBeTruthy();
expect(question.answers[0]).toHaveProperty('feedback');
};
it('should generate a questions array from a video challenge AST', () => {
expect.assertions(11);
plugin(mockVideoAST, file);
plugin(videoAST, file);
const testArr = file.data.questions;
expect(Array.isArray(testArr)).toBe(true);
expect(testArr.length).toBe(1);
const testObject = testArr[0];
expect(testObject).toHaveProperty('text');
expect(typeof testObject.text).toBe('string');
expect(testObject).toHaveProperty('solution');
expect(typeof testObject.solution).toBe('number');
expect(testObject).toHaveProperty('answers');
expect(Array.isArray(testObject.answers)).toBe(true);
expect(typeof testObject.answers[0]).toBe('object');
expect(testObject.answers[0]).toHaveProperty('answer');
expect(testObject.answers[0]).toHaveProperty('feedback');
checkQuestion(testArr[0]);
});
it('should include multiple questions if present', () => {
plugin(multipleQuestionAST, file);
const testArr = file.data.questions;
expect(Array.isArray(testArr)).toBe(true);
expect(testArr.length).toBe(2);
for (const testObject of testArr) {
checkQuestion(testObject);
}
});
it('should convert question and answer markdown into html', () => {
plugin(mockVideoAST, file);
plugin(videoAST, file);
const testObject = file.data.questions[0];
expect(Object.keys(testObject).length).toBe(3);
expect(testObject.text).toBe(
@@ -79,7 +101,7 @@ describe('add-video-question plugin', () => {
});
it('should match the video snapshot', () => {
plugin(mockVideoAST, file);
plugin(videoAST, file);
expect(file.data).toMatchSnapshot();
});
});
@@ -2,22 +2,32 @@ const path = require('path');
const cloneDeep = require('lodash/cloneDeep');
const toVfile = require('to-vfile');
const selectAll = require('unist-util-select').selectAll;
const parseFixture = require('../__fixtures__/parse-fixture');
const originalImportsExtraAST = require('../__fixtures__/ast-imports-extra.json');
const originalImportsTwoAST = require('../__fixtures__/ast-imports-two.json');
const originalImportsAST = require('../__fixtures__/ast-imports.json');
const originalMarkerAST = require('../__fixtures__/ast-marker-imports.json');
const originalSimpleAST = require('../__fixtures__/ast-simple.json');
const addImports = require('./replace-imports');
describe('replace-imports', () => {
let importsAST;
let importsTwoAST;
let importsExtraAST;
let simpleAST;
let markerAST;
let correctFile;
let incorrectFile;
let importsAST,
importsTwoAST,
importsExtraAST,
simpleAST,
markerAST,
correctFile,
incorrectFile;
let originalImportsAST,
originalImportsTwoAST,
originalImportsExtraAST,
originalMarkerAST,
originalSimpleAST;
beforeAll(async () => {
originalImportsAST = await parseFixture('with-imports.md');
originalImportsTwoAST = await parseFixture('with-imports-two.md');
originalImportsExtraAST = await parseFixture('with-imports-extra.md');
originalSimpleAST = await parseFixture('simple.md');
originalMarkerAST = await parseFixture('with-marker-imports.md');
});
beforeEach(() => {
importsAST = cloneDeep(originalImportsAST);
@@ -2,11 +2,14 @@ const cloneDeep = require('lodash/cloneDeep');
const find = require('unist-util-find');
const { selectAll } = require('unist-util-select');
const directivesOriginalAST = require('../__fixtures__/ast-directives.json');
const parseFixture = require('../__fixtures__/parse-fixture');
const restoreDirectives = require('./restore-directives');
describe('restore-directives', () => {
let directivesAST;
let directivesAST, directivesOriginalAST;
beforeAll(async () => {
directivesOriginalAST = await parseFixture('with-directives.md');
});
beforeEach(() => {
directivesAST = cloneDeep(directivesOriginalAST);
});
@@ -1,10 +0,0 @@
{
"type": "leafDirective",
"name": "id",
"attributes": { "id": "html-key" },
"children": [],
"position": {
"start": { "line": 29, "column": 1, "offset": 200 },
"end": { "line": 29, "column": 16, "offset": 215 }
}
}
@@ -1,21 +0,0 @@
{
"type": "paragraph",
"children": [
{
"type": "image",
"title": null,
"url": "https://www.image.com",
"alt": "html-key",
"position": {
"start": { "line": 65, "column": 1, "offset": 481 },
"end": { "line": 65, "column": 35, "offset": 515 },
"indent": []
}
}
],
"position": {
"start": { "line": 65, "column": 1, "offset": 481 },
"end": { "line": 65, "column": 35, "offset": 515 },
"indent": []
}
}
@@ -1,119 +0,0 @@
{
"type": "paragraph",
"children": [
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 7, "offset": 25 },
"indent": []
}
},
{
"type": "text",
"value": " code in ",
"position": {
"start": { "line": 3, "column": 7, "offset": 25 },
"end": { "line": 3, "column": 16, "offset": 34 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 3, "column": 16, "offset": 34 },
"end": { "line": 3, "column": 23, "offset": 41 },
"indent": []
}
},
{
"type": "text",
"value": " code tags ",
"position": {
"start": { "line": 3, "column": 23, "offset": 41 },
"end": { "line": 3, "column": 34, "offset": 52 },
"indent": []
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "emphasis",
"position": {
"start": { "line": 3, "column": 35, "offset": 53 },
"end": { "line": 3, "column": 43, "offset": 61 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 34, "offset": 52 },
"end": { "line": 3, "column": 44, "offset": 62 },
"indent": []
}
},
{
"type": "text",
"value": " followed by ",
"position": {
"start": { "line": 3, "column": 44, "offset": 62 },
"end": { "line": 3, "column": 57, "offset": 75 },
"indent": []
}
},
{
"type": "html",
"value": "<div>",
"position": {
"start": { "line": 3, "column": 57, "offset": 75 },
"end": { "line": 3, "column": 62, "offset": 80 },
"indent": []
}
},
{
"type": "html",
"value": "<span>",
"position": {
"start": { "line": 3, "column": 62, "offset": 80 },
"end": { "line": 3, "column": 68, "offset": 86 },
"indent": []
}
},
{
"type": "text",
"value": "some nested html ",
"position": {
"start": { "line": 3, "column": 68, "offset": 86 },
"end": { "line": 3, "column": 85, "offset": 103 },
"indent": []
}
},
{
"type": "html",
"value": "</span>",
"position": {
"start": { "line": 3, "column": 85, "offset": 103 },
"end": { "line": 3, "column": 92, "offset": 110 },
"indent": []
}
},
{
"type": "html",
"value": "</div>",
"position": {
"start": { "line": 3, "column": 92, "offset": 110 },
"end": { "line": 3, "column": 98, "offset": 116 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 98, "offset": 116 },
"indent": []
}
}
@@ -1,113 +0,0 @@
[
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Paragraph 1",
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
}
],
"position": {
"start": { "line": 3, "column": 1, "offset": 19 },
"end": { "line": 3, "column": 12, "offset": 30 },
"indent": []
}
},
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Third ",
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 5, "column": 7, "offset": 38 },
"indent": []
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "hint",
"position": {
"start": { "line": 5, "column": 8, "offset": 39 },
"end": { "line": 5, "column": 12, "offset": 43 },
"indent": []
}
}
],
"position": {
"start": { "line": 5, "column": 7, "offset": 38 },
"end": { "line": 5, "column": 13, "offset": 44 },
"indent": []
}
},
{
"type": "text",
"value": " with ",
"position": {
"start": { "line": 5, "column": 13, "offset": 44 },
"end": { "line": 5, "column": 19, "offset": 50 },
"indent": []
}
},
{
"type": "html",
"value": "<code>",
"position": {
"start": { "line": 5, "column": 19, "offset": 50 },
"end": { "line": 5, "column": 25, "offset": 56 },
"indent": []
}
},
{
"type": "text",
"value": "code",
"position": {
"start": { "line": 5, "column": 25, "offset": 56 },
"end": { "line": 5, "column": 29, "offset": 60 },
"indent": []
}
},
{
"type": "html",
"value": "</code>",
"position": {
"start": { "line": 5, "column": 29, "offset": 60 },
"end": { "line": 5, "column": 36, "offset": 67 },
"indent": []
}
},
{
"type": "text",
"value": " and ",
"position": {
"start": { "line": 5, "column": 36, "offset": 67 },
"end": { "line": 5, "column": 41, "offset": 72 },
"indent": []
}
},
{
"type": "inlineCode",
"value": "inline code",
"position": {
"start": { "line": 5, "column": 41, "offset": 72 },
"end": { "line": 5, "column": 54, "offset": 85 },
"indent": []
}
}
],
"position": {
"start": { "line": 5, "column": 1, "offset": 32 },
"end": { "line": 5, "column": 54, "offset": 85 },
"indent": []
}
}
]
@@ -1,66 +0,0 @@
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "Just some ",
"position": {
"start": { "line": 11, "column": 1, "offset": 120 },
"end": { "line": 11, "column": 11, "offset": 130 },
"indent": []
}
},
{
"type": "emphasis",
"children": [
{
"type": "text",
"value": "emphasis",
"position": {
"start": { "line": 11, "column": 12, "offset": 131 },
"end": { "line": 11, "column": 20, "offset": 139 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 11, "offset": 130 },
"end": { "line": 11, "column": 21, "offset": 140 },
"indent": []
}
},
{
"type": "text",
"value": " and a bit of ",
"position": {
"start": { "line": 11, "column": 21, "offset": 140 },
"end": { "line": 11, "column": 35, "offset": 154 },
"indent": []
}
},
{
"type": "strong",
"children": [
{
"type": "text",
"value": "bold",
"position": {
"start": { "line": 11, "column": 37, "offset": 156 },
"end": { "line": 11, "column": 41, "offset": 160 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 35, "offset": 154 },
"end": { "line": 11, "column": 43, "offset": 162 },
"indent": []
}
}
],
"position": {
"start": { "line": 11, "column": 1, "offset": 120 },
"end": { "line": 11, "column": 43, "offset": 162 },
"indent": []
}
}
@@ -1,31 +0,0 @@
{
"type": "paragraph",
"children": [
{
"type": "imageReference",
"identifier": "html-key",
"label": "html-key",
"referenceType": "shortcut",
"alt": "html-key",
"position": {
"start": { "line": 65, "column": 1, "offset": 481 },
"end": { "line": 65, "column": 12, "offset": 492 },
"indent": []
}
},
{
"type": "text",
"value": "\nMore stuff in the paragraph",
"position": {
"start": { "line": 65, "column": 12, "offset": 492 },
"end": { "line": 66, "column": 28, "offset": 520 },
"indent": [1]
}
}
],
"position": {
"start": { "line": 65, "column": 1, "offset": 481 },
"end": { "line": 66, "column": 28, "offset": 520 },
"indent": [1]
}
}
@@ -1,19 +0,0 @@
{
"type": "paragraph",
"children": [
{
"type": "text",
"value": "--description--",
"position": {
"start": { "line": 65, "column": 1, "offset": 481 },
"end": { "line": 65, "column": 12, "offset": 492 },
"indent": []
}
}
],
"position": {
"start": { "line": 65, "column": 1, "offset": 481 },
"end": { "line": 65, "column": 12, "offset": 492 },
"indent": []
}
}
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`between-headings should match the hints snapshot 1`] = `
exports[`getSection should match the hints snapshot 1`] = `
[
{
"children": [
@@ -338,7 +338,7 @@ if(let x of xs) {
]
`;
exports[`between-headings should match the instructions snapshot 1`] = `
exports[`getSection should match the instructions snapshot 1`] = `
[
{
"children": [
@@ -1,8 +1,15 @@
const isArray = require('lodash/isArray');
const simpleAst = require('../../__fixtures__/ast-simple.json');
const parseFixture = require('../../__fixtures__/parse-fixture');
const getAllBefore = require('./before-heading');
describe('before-headings', () => {
let simpleAst;
beforeAll(async () => {
simpleAst = await parseFixture('simple.md');
});
it('should return an array', () => {
expect.assertions(1);
const actual = getAllBefore(simpleAst, '--hints--');
@@ -1,10 +1,14 @@
const idNode = require('./__fixtures__/id-node.json');
const imageNode = require('./__fixtures__/image-node.json');
const multipleChildrenNode = require('./__fixtures__/multiple-children.json');
const nonIdNode = require('./__fixtures__/non-id-node.json');
const parseFixture = require('../../__fixtures__/parse-fixture');
const getId = require('./get-id');
describe('get-id', () => {
let idNode, imageNode, multipleChildrenNode;
beforeAll(async () => {
const withIdNode = await parseFixture('with-id-node.md');
idNode = withIdNode.children[0];
imageNode = withIdNode.children[1];
multipleChildrenNode = withIdNode.children[2];
});
it('should return a string', () => {
expect.assertions(1);
const actual = getId(idNode);
@@ -19,7 +23,7 @@ describe('get-id', () => {
it('should return null if the node does contain an id', () => {
expect.assertions(1);
const actual = getId(nonIdNode);
const actual = getId(imageNode);
expect(actual).toBeNull();
});
@@ -3,7 +3,7 @@ const findAfter = require('unist-util-find-after');
const findAllAfter = require('unist-util-find-all-after');
const between = require('unist-util-find-all-between');
function getAllBetween(tree, marker) {
function getSection(tree, marker) {
const start = find(tree, {
type: 'heading',
children: [
@@ -43,4 +43,4 @@ function getAllBetween(tree, marker) {
return targetNodes;
}
module.exports = getAllBetween;
module.exports = getSection;
@@ -2,27 +2,33 @@ const isArray = require('lodash/isArray');
const { root } = require('mdast-builder');
const find = require('unist-util-find');
const extraHeadingAst = require('../../__fixtures__/ast-extra-heading.json');
const simpleAst = require('../../__fixtures__/ast-simple.json');
const getAllBetween = require('./between-headings');
const parseFixture = require('../../__fixtures__/parse-fixture');
const getSection = require('./get-section');
describe('getSection', () => {
let simpleAst, extraHeadingAst;
beforeAll(async () => {
extraHeadingAst = await parseFixture('with-extra-heading.md');
simpleAst = await parseFixture('simple.md');
});
describe('between-headings', () => {
it('should return an array', () => {
expect.assertions(1);
const actual = getAllBetween(simpleAst, '--hints--');
const actual = getSection(simpleAst, '--hints--');
expect(isArray(actual)).toBe(true);
});
it('should return an empty array if the marker is not present', () => {
expect.assertions(2);
const actual = getAllBetween(simpleAst, '--not-a-marker--');
const actual = getSection(simpleAst, '--not-a-marker--');
expect(isArray(actual)).toBe(true);
expect(actual.length).toBe(0);
});
it('should include any headings without markers', () => {
expect.assertions(1);
const actual = getAllBetween(extraHeadingAst, '--description--');
const actual = getSection(extraHeadingAst, '--description--');
expect(
find(root(actual), {
value: 'this should still be inside --description--'
@@ -32,7 +38,7 @@ describe('between-headings', () => {
it('should include the rest of the AST if there is no end marker', () => {
expect.assertions(2);
const actual = getAllBetween(extraHeadingAst, '--solutions--');
const actual = getSection(extraHeadingAst, '--solutions--');
expect(actual.length > 0).toBe(true);
expect(
find(root(actual), { value: 'body {\n background: white;\n}' })
@@ -40,11 +46,11 @@ describe('between-headings', () => {
});
it('should match the hints snapshot', () => {
const actual = getAllBetween(simpleAst, '--hints--');
const actual = getSection(simpleAst, '--hints--');
expect(actual).toMatchSnapshot();
});
it('should match the instructions snapshot', () => {
const actual = getAllBetween(simpleAst, '--instructions--');
const actual = getSection(simpleAst, '--instructions--');
expect(actual).toMatchSnapshot();
});
});
@@ -1,10 +1,17 @@
const leadingInlineHTMLNode = require('./__fixtures__/leading-html-node.json');
const mdastMixedNodes = require('./__fixtures__/mdast-mixed-nodes.json');
const mdastWithEmNode = require('./__fixtures__/mdast-with-em.json');
const singleNode = require('./__fixtures__/non-id-node.json');
const parseFixture = require('../../__fixtures__/parse-fixture');
const mdastToHTML = require('./mdast-to-html');
describe('mdast-to-html', () => {
let mdastMixedNodes, singleNode, inlineHTMLNodes;
beforeAll(async () => {
const mdastMixedAST = await parseFixture('mixed-nodes.md');
const mdastInlineHTMLAST = await parseFixture('inline-html.md');
mdastMixedNodes = mdastMixedAST.children;
singleNode = mdastMixedAST.children[0];
inlineHTMLNodes = mdastInlineHTMLAST.children;
});
it('should return a string', () => {
expect.assertions(1);
const actual = mdastToHTML(mdastMixedNodes);
@@ -18,13 +25,6 @@ describe('mdast-to-html', () => {
);
});
it('should convert markdown nodes into html', () => {
const actual = mdastToHTML([mdastWithEmNode]);
expect(actual).toBe(
'<p>Just some <em>emphasis</em> and a bit of <strong>bold</strong></p>'
);
});
it('should not escape html', () => {
const actual = mdastToHTML(mdastMixedNodes);
expect(actual).toBe(`<p>Paragraph 1</p>
@@ -32,7 +32,7 @@ describe('mdast-to-html', () => {
});
it('should put inline html inside the enclosing paragraph', () => {
const actual = mdastToHTML([leadingInlineHTMLNode]);
const actual = mdastToHTML(inlineHTMLNodes);
expect(actual).toBe(
'<p><code> code in </code> code tags <em>emphasis</em> followed' +
' by <div><span>some nested html </span></div></p>'
@@ -6,9 +6,10 @@ const { read } = require('to-vfile');
(async () => {
const path = './example.md';
const file = await read(path);
await remark()
const out = await remark()
.use(directive)
.use(frontmatter, ['yaml'])
.use(() => tree => console.log(JSON.stringify(tree)))
.process(file);
.parse(file);
console.log(out);
})();