chore: remove old parser
This commit is contained in:
committed by
Mrugesh Mohapatra
parent
e3511f2930
commit
a3a678b7af
@ -0,0 +1,95 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
617
tools/challenge-parser/parser/__fixtures__/ast-before-after.json
Normal file
617
tools/challenge-parser/parser/__fixtures__/ast-before-after.json
Normal file
@ -0,0 +1,617 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
502
tools/challenge-parser/parser/__fixtures__/ast-broken-hints.json
Normal file
502
tools/challenge-parser/parser/__fixtures__/ast-broken-hints.json
Normal file
@ -0,0 +1,502 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
218
tools/challenge-parser/parser/__fixtures__/ast-c-code.json
Normal file
218
tools/challenge-parser/parser/__fixtures__/ast-c-code.json
Normal file
@ -0,0 +1,218 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
144
tools/challenge-parser/parser/__fixtures__/ast-empty-after.json
Normal file
144
tools/challenge-parser/parser/__fixtures__/ast-empty-after.json
Normal file
@ -0,0 +1,144 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
144
tools/challenge-parser/parser/__fixtures__/ast-empty-before.json
Normal file
144
tools/challenge-parser/parser/__fixtures__/ast-empty-before.json
Normal file
@ -0,0 +1,144 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,448 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
166
tools/challenge-parser/parser/__fixtures__/ast-empty-css.json
Normal file
166
tools/challenge-parser/parser/__fixtures__/ast-empty-css.json
Normal file
@ -0,0 +1,166 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
166
tools/challenge-parser/parser/__fixtures__/ast-empty-html.json
Normal file
166
tools/challenge-parser/parser/__fixtures__/ast-empty-html.json
Normal file
@ -0,0 +1,166 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,133 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,533 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,427 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
437
tools/challenge-parser/parser/__fixtures__/ast-gfm.json
Normal file
437
tools/challenge-parser/parser/__fixtures__/ast-gfm.json
Normal file
@ -0,0 +1,437 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
320
tools/challenge-parser/parser/__fixtures__/ast-imports-two.json
Normal file
320
tools/challenge-parser/parser/__fixtures__/ast-imports-two.json
Normal file
@ -0,0 +1,320 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
300
tools/challenge-parser/parser/__fixtures__/ast-imports.json
Normal file
300
tools/challenge-parser/parser/__fixtures__/ast-imports.json
Normal file
@ -0,0 +1,300 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,388 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
122
tools/challenge-parser/parser/__fixtures__/ast-jsx-seed.json
Normal file
122
tools/challenge-parser/parser/__fixtures__/ast-jsx-seed.json
Normal file
@ -0,0 +1,122 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,303 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,303 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
1123
tools/challenge-parser/parser/__fixtures__/ast-realistic.json
Normal file
1123
tools/challenge-parser/parser/__fixtures__/ast-realistic.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,95 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
411
tools/challenge-parser/parser/__fixtures__/ast-simple.json
Normal file
411
tools/challenge-parser/parser/__fixtures__/ast-simple.json
Normal file
@ -0,0 +1,411 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,385 @@
|
||||
{
|
||||
"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": "--question--",
|
||||
"position": {
|
||||
"start": { "line": 17, "column": 3, "offset": 121 },
|
||||
"end": { "line": 17, "column": 15, "offset": 133 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 17, "column": 1, "offset": 119 },
|
||||
"end": { "line": 17, "column": 15, "offset": 133 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "heading",
|
||||
"depth": 2,
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "--text--",
|
||||
"position": {
|
||||
"start": { "line": 19, "column": 4, "offset": 138 },
|
||||
"end": { "line": 19, "column": 12, "offset": 146 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 19, "column": 1, "offset": 135 },
|
||||
"end": { "line": 19, "column": 12, "offset": 146 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "Question line 1",
|
||||
"position": {
|
||||
"start": { "line": 21, "column": 1, "offset": 148 },
|
||||
"end": { "line": 21, "column": 16, "offset": 163 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 21, "column": 1, "offset": 148 },
|
||||
"end": { "line": 21, "column": 16, "offset": 163 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "code",
|
||||
"lang": "js",
|
||||
"meta": null,
|
||||
"value": " var x = 'y';",
|
||||
"position": {
|
||||
"start": { "line": 23, "column": 1, "offset": 165 },
|
||||
"end": { "line": 25, "column": 4, "offset": 189 },
|
||||
"indent": [1, 1]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "heading",
|
||||
"depth": 2,
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "--answers--",
|
||||
"position": {
|
||||
"start": { "line": 27, "column": 4, "offset": 194 },
|
||||
"end": { "line": 27, "column": 15, "offset": 205 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 27, "column": 1, "offset": 191 },
|
||||
"end": { "line": 27, "column": 15, "offset": 205 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "Some inline ",
|
||||
"position": {
|
||||
"start": { "line": 29, "column": 1, "offset": 207 },
|
||||
"end": { "line": 29, "column": 13, "offset": 219 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "inlineCode",
|
||||
"value": "code",
|
||||
"position": {
|
||||
"start": { "line": 29, "column": 13, "offset": 219 },
|
||||
"end": { "line": 29, "column": 19, "offset": 225 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 29, "column": 1, "offset": 207 },
|
||||
"end": { "line": 29, "column": 19, "offset": 225 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "thematicBreak",
|
||||
"position": {
|
||||
"start": { "line": 31, "column": 1, "offset": 227 },
|
||||
"end": { "line": 31, "column": 4, "offset": 230 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "Some ",
|
||||
"position": {
|
||||
"start": { "line": 33, "column": 1, "offset": 232 },
|
||||
"end": { "line": 33, "column": 6, "offset": 237 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "emphasis",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "italics",
|
||||
"position": {
|
||||
"start": { "line": 33, "column": 7, "offset": 238 },
|
||||
"end": { "line": 33, "column": 14, "offset": 245 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 33, "column": 6, "offset": 237 },
|
||||
"end": { "line": 33, "column": 15, "offset": 246 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 33, "column": 1, "offset": 232 },
|
||||
"end": { "line": 33, "column": 15, "offset": 246 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "A second answer paragraph.",
|
||||
"position": {
|
||||
"start": { "line": 35, "column": 1, "offset": 248 },
|
||||
"end": { "line": 35, "column": 27, "offset": 274 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 35, "column": 1, "offset": 248 },
|
||||
"end": { "line": 35, "column": 27, "offset": 274 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "thematicBreak",
|
||||
"position": {
|
||||
"start": { "line": 37, "column": 1, "offset": 276 },
|
||||
"end": { "line": 37, "column": 4, "offset": 279 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"position": {
|
||||
"start": { "line": 39, "column": 1, "offset": 281 },
|
||||
"end": { "line": 39, "column": 33, "offset": 313 },
|
||||
"indent": []
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"type": "html",
|
||||
"value": "<code>",
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 1, "offset": 0 },
|
||||
"end": { "line": 1, "column": 7, "offset": 6 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"value": " code in ",
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 7, "offset": 6 },
|
||||
"end": { "line": 1, "column": 16, "offset": 15 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "html",
|
||||
"value": "</code>",
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 16, "offset": 15 },
|
||||
"end": { "line": 1, "column": 23, "offset": 22 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"value": " code tags",
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 23, "offset": 22 },
|
||||
"end": { "line": 1, "column": 33, "offset": 32 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "heading",
|
||||
"depth": 2,
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "--video-solution--",
|
||||
"position": {
|
||||
"start": { "line": 41, "column": 4, "offset": 318 },
|
||||
"end": { "line": 41, "column": 22, "offset": 336 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 41, "column": 1, "offset": 315 },
|
||||
"end": { "line": 41, "column": 22, "offset": 336 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "3",
|
||||
"position": {
|
||||
"start": { "line": 43, "column": 1, "offset": 338 },
|
||||
"end": { "line": 43, "column": 2, "offset": 339 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 43, "column": 1, "offset": 338 },
|
||||
"end": { "line": 43, "column": 2, "offset": 339 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 1, "offset": 0 },
|
||||
"end": { "line": 44, "column": 1, "offset": 340 }
|
||||
}
|
||||
}
|
@ -0,0 +1,385 @@
|
||||
{
|
||||
"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": 2,
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "--text--",
|
||||
"position": {
|
||||
"start": { "line": 17, "column": 4, "offset": 122 },
|
||||
"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": "text",
|
||||
"value": "Question line 1",
|
||||
"position": {
|
||||
"start": { "line": 19, "column": 1, "offset": 132 },
|
||||
"end": { "line": 19, "column": 16, "offset": 147 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 19, "column": 1, "offset": 132 },
|
||||
"end": { "line": 19, "column": 16, "offset": 147 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"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 },
|
||||
"indent": [1, 1]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "heading",
|
||||
"depth": 1,
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "--question--",
|
||||
"position": {
|
||||
"start": { "line": 25, "column": 3, "offset": 177 },
|
||||
"end": { "line": 25, "column": 15, "offset": 189 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 25, "column": 1, "offset": 175 },
|
||||
"end": { "line": 25, "column": 15, "offset": 189 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "heading",
|
||||
"depth": 2,
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "--answers--",
|
||||
"position": {
|
||||
"start": { "line": 27, "column": 4, "offset": 194 },
|
||||
"end": { "line": 27, "column": 15, "offset": 205 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 27, "column": 1, "offset": 191 },
|
||||
"end": { "line": 27, "column": 15, "offset": 205 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "Some inline ",
|
||||
"position": {
|
||||
"start": { "line": 29, "column": 1, "offset": 207 },
|
||||
"end": { "line": 29, "column": 13, "offset": 219 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "inlineCode",
|
||||
"value": "code",
|
||||
"position": {
|
||||
"start": { "line": 29, "column": 13, "offset": 219 },
|
||||
"end": { "line": 29, "column": 19, "offset": 225 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 29, "column": 1, "offset": 207 },
|
||||
"end": { "line": 29, "column": 19, "offset": 225 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "thematicBreak",
|
||||
"position": {
|
||||
"start": { "line": 31, "column": 1, "offset": 227 },
|
||||
"end": { "line": 31, "column": 4, "offset": 230 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "Some ",
|
||||
"position": {
|
||||
"start": { "line": 33, "column": 1, "offset": 232 },
|
||||
"end": { "line": 33, "column": 6, "offset": 237 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "emphasis",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "italics",
|
||||
"position": {
|
||||
"start": { "line": 33, "column": 7, "offset": 238 },
|
||||
"end": { "line": 33, "column": 14, "offset": 245 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 33, "column": 6, "offset": 237 },
|
||||
"end": { "line": 33, "column": 15, "offset": 246 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 33, "column": 1, "offset": 232 },
|
||||
"end": { "line": 33, "column": 15, "offset": 246 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "A second answer paragraph.",
|
||||
"position": {
|
||||
"start": { "line": 35, "column": 1, "offset": 248 },
|
||||
"end": { "line": 35, "column": 27, "offset": 274 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 35, "column": 1, "offset": 248 },
|
||||
"end": { "line": 35, "column": 27, "offset": 274 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "thematicBreak",
|
||||
"position": {
|
||||
"start": { "line": 37, "column": 1, "offset": 276 },
|
||||
"end": { "line": 37, "column": 4, "offset": 279 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"position": {
|
||||
"start": { "line": 39, "column": 1, "offset": 281 },
|
||||
"end": { "line": 39, "column": 33, "offset": 313 },
|
||||
"indent": []
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"type": "html",
|
||||
"value": "<code>",
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 1, "offset": 0 },
|
||||
"end": { "line": 1, "column": 7, "offset": 6 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"value": " code in ",
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 7, "offset": 6 },
|
||||
"end": { "line": 1, "column": 16, "offset": 15 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "html",
|
||||
"value": "</code>",
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 16, "offset": 15 },
|
||||
"end": { "line": 1, "column": 23, "offset": 22 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"value": " code tags",
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 23, "offset": 22 },
|
||||
"end": { "line": 1, "column": 33, "offset": 32 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "heading",
|
||||
"depth": 2,
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "--video-solution--",
|
||||
"position": {
|
||||
"start": { "line": 41, "column": 4, "offset": 318 },
|
||||
"end": { "line": 41, "column": 22, "offset": 336 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 41, "column": 1, "offset": 315 },
|
||||
"end": { "line": 41, "column": 22, "offset": 336 },
|
||||
"indent": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "paragraph",
|
||||
"children": [
|
||||
{
|
||||
"type": "text",
|
||||
"value": "3",
|
||||
"position": {
|
||||
"start": { "line": 43, "column": 1, "offset": 338 },
|
||||
"end": { "line": 43, "column": 2, "offset": 339 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 43, "column": 1, "offset": 338 },
|
||||
"end": { "line": 43, "column": 2, "offset": 339 },
|
||||
"indent": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"position": {
|
||||
"start": { "line": 1, "column": 1, "offset": 0 },
|
||||
"end": { "line": 44, "column": 1, "offset": 340 }
|
||||
}
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
1072
tools/challenge-parser/parser/__fixtures__/ast-with-jsx.json
Normal file
1072
tools/challenge-parser/parser/__fixtures__/ast-with-jsx.json
Normal file
File diff suppressed because it is too large
Load Diff
533
tools/challenge-parser/parser/__fixtures__/ast-with-markers.json
Normal file
533
tools/challenge-parser/parser/__fixtures__/ast-with-markers.json
Normal file
@ -0,0 +1,533 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,333 @@
|
||||
{
|
||||
"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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
# comp title
|
||||
|
||||
some different text
|
||||
|
||||
# another title
|
5
tools/challenge-parser/parser/__fixtures__/document.md
Normal file
5
tools/challenge-parser/parser/__fixtures__/document.md
Normal file
@ -0,0 +1,5 @@
|
||||
# comp title
|
||||
|
||||
some text
|
||||
|
||||
# another title
|
@ -0,0 +1,59 @@
|
||||
::import{component="Script" from="./script.md" }
|
||||
|
||||
# --description--
|
||||
|
||||
Paragraph 1
|
||||
|
||||
```html
|
||||
code example
|
||||
```
|
||||
|
||||
# --instructions--
|
||||
|
||||
Paragraph 0
|
||||
|
||||
```html
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
# --seed--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
::id{#custom-name}
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
::use{component="Script"}
|
182
tools/challenge-parser/parser/__fixtures__/realistic.md
Normal file
182
tools/challenge-parser/parser/__fixtures__/realistic.md
Normal file
@ -0,0 +1,182 @@
|
||||
# --description--
|
||||
|
||||
When you add a lower rank heading element to the page, it's implied that you're starting a new subsection.
|
||||
|
||||
After the last <code>h2</code> element of the second `section` element, add an `h3` element with the text `Things cats love:`.
|
||||
|
||||
<blockquote>
|
||||
<p>Some text in a blockquote</p>
|
||||
<p>
|
||||
Some text in a blockquote, with <code>code</code>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
# --instructions--
|
||||
|
||||
Do something with the `code`.
|
||||
|
||||
To test that adjacent tags are handled correctly:
|
||||
|
||||
a bit of <code>code</code> <tag>with more after a space</tag> and another pair of <strong>elements</strong> <em>with a space</em>
|
||||
|
||||
# --hints--
|
||||
|
||||
The second `section` element appears to be missing or does not have both an opening and closing tag.
|
||||
|
||||
```js
|
||||
assert(
|
||||
document.querySelectorAll('main > section')[1] &&
|
||||
code.match(/\<\/section>/g).length == 2
|
||||
);
|
||||
```
|
||||
|
||||
There should be an `h3` element right above the second `section` element's closing tag.
|
||||
|
||||
```js
|
||||
assert(
|
||||
document.querySelectorAll('main > section')[1].lastElementChild.nodeName ===
|
||||
'H3'
|
||||
);
|
||||
```
|
||||
|
||||
The `h3` element right above the second `section` element's closing tag should have the text `Things cats love:`. Make sure to include the colon at the end of the text.
|
||||
|
||||
```js
|
||||
assert(
|
||||
document
|
||||
.querySelectorAll('main > section')[1]
|
||||
.lastElementChild.innerText.toLowerCase()
|
||||
.replace(/\s+/g, ' ') === 'things cats love:'
|
||||
);
|
||||
```
|
||||
|
||||
There should be an `h2` element with the text `Cat Lists` above the last `h3` element that is nested in the last `section` element'. You may have accidentally deleted the `h2` element.
|
||||
|
||||
```js
|
||||
const secondSectionLastElemNode = document.querySelectorAll('main > section')[1]
|
||||
.lastElementChild;
|
||||
assert(
|
||||
secondSectionLastElemNode.nodeName === 'H3' &&
|
||||
secondSectionLastElemNode.previousElementSibling.innerText
|
||||
.toLowerCase()
|
||||
.replace(/\s+/g, ' ') === 'cat lists'
|
||||
);
|
||||
```
|
||||
|
||||
# --seed--
|
||||
|
||||
## --before-user-code--
|
||||
|
||||
```js
|
||||
// this runs before the user's code is evaluated.
|
||||
```
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
::id{#html-key}
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
<h1>CatPhotoApp</h1>
|
||||
<main>
|
||||
<section>
|
||||
<h2>Cat Photos</h2>
|
||||
<!-- TODO: Add link to cat photos -->
|
||||
<p>
|
||||
Click here to view more
|
||||
<a target="_blank" href="https://www.freecodecamp.org/cat-photos"
|
||||
>cat photos</a
|
||||
>.
|
||||
</p>
|
||||
<a href="https://www.freecodecamp.org/cat-photos"
|
||||
><img
|
||||
src="https://bit.ly/fcc-relaxing-cat"
|
||||
alt="A cute orange cat lying on its back."
|
||||
/></a>
|
||||
</section>
|
||||
--fcc-editable-region--
|
||||
<section>
|
||||
<h2>Cat Lists</h2>
|
||||
</section>
|
||||
--fcc-editable-region--
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: white;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 20px;
|
||||
}
|
||||
--fcc-editable-region--
|
||||
|
||||
--fcc-editable-region--
|
||||
|
||||
a {
|
||||
color: green;
|
||||
}
|
||||
```
|
||||
|
||||
::id{#final-key}
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
# --solutions--
|
||||
|
||||
::id{#html-key}
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
<h1>CatPhotoApp</h1>
|
||||
<main>
|
||||
<section>
|
||||
<h2>Cat Photos</h2>
|
||||
<!-- TODO: Add link to cat photos -->
|
||||
<p>
|
||||
Click here to view more
|
||||
<a target="_blank" href="https://www.freecodecamp.org/cat-photos"
|
||||
>cat photos</a
|
||||
>.
|
||||
</p>
|
||||
<a href="https://www.freecodecamp.org/cat-photos"
|
||||
><img
|
||||
src="https://bit.ly/fcc-relaxing-cat"
|
||||
alt="A cute orange cat lying on its back."
|
||||
/></a>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Cat Lists</h2>
|
||||
</section>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: white;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
|
||||
a {
|
||||
color: green;
|
||||
}
|
||||
```
|
||||
|
||||
::id{#final-key}
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
5
tools/challenge-parser/parser/__fixtures__/script-two.md
Normal file
5
tools/challenge-parser/parser/__fixtures__/script-two.md
Normal file
@ -0,0 +1,5 @@
|
||||
```css
|
||||
div {
|
||||
background: red
|
||||
}
|
||||
```
|
@ -0,0 +1,8 @@
|
||||
```js
|
||||
for (let index = 0; index < array.length; index++) {
|
||||
const element = array[index];
|
||||
--fcc-editable-region--
|
||||
// imported from script.md
|
||||
--fcc-editable-region--
|
||||
}
|
||||
```
|
6
tools/challenge-parser/parser/__fixtures__/script.md
Normal file
6
tools/challenge-parser/parser/__fixtures__/script.md
Normal file
@ -0,0 +1,6 @@
|
||||
```js
|
||||
for (let index = 0; index < array.length; index++) {
|
||||
const element = array[index];
|
||||
// imported from script.md
|
||||
}
|
||||
```
|
81
tools/challenge-parser/parser/__fixtures__/simple.md
Normal file
81
tools/challenge-parser/parser/__fixtures__/simple.md
Normal file
@ -0,0 +1,81 @@
|
||||
# --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 {
|
||||
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,107 @@
|
||||
# --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
|
||||
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';
|
||||
``
|
@ -0,0 +1,73 @@
|
||||
# --description--
|
||||
|
||||
Paragraph 1
|
||||
|
||||
```html
|
||||
code example
|
||||
```
|
||||
|
||||
# --instructions--
|
||||
|
||||
Paragraph 0
|
||||
|
||||
```html
|
||||
code example 0
|
||||
```
|
||||
|
||||
# --hints--
|
||||
|
||||
```js
|
||||
// test code
|
||||
```
|
||||
|
||||
First hint
|
||||
|
||||
Second hint with <code>code</code>
|
||||
|
||||
```js
|
||||
// more test code
|
||||
```
|
||||
|
||||
Third *hint* with <code>code</code> and `inline code`
|
||||
|
||||
|
||||
# --seed--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
|
||||
# --solutions--
|
||||
|
||||
::id{#html-key}
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: white;
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
``
|
68
tools/challenge-parser/parser/__fixtures__/with-c-code.md
Normal file
68
tools/challenge-parser/parser/__fixtures__/with-c-code.md
Normal file
@ -0,0 +1,68 @@
|
||||
# --seed--
|
||||
|
||||
## --before-user-code--
|
||||
|
||||
```css
|
||||
body {
|
||||
etc: ''
|
||||
}
|
||||
```
|
||||
|
||||
```html
|
||||
<!-- comment -->
|
||||
```
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
```c
|
||||
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';
|
||||
```
|
@ -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--
|
||||
background: green;
|
||||
|
||||
--fcc-editable-region--
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
|
||||
# --solutions--
|
||||
|
||||
::id{#html-key}
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: white;
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
@ -0,0 +1,44 @@
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
|
||||
# --solutions--
|
||||
|
||||
::id{#html-key}
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
--fcc-editable-region--
|
||||
background: white;
|
||||
--fcc-editable-region--
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
@ -0,0 +1,51 @@
|
||||
---
|
||||
id: bd7123c8c441eddfaeb5bdef
|
||||
title: Say Hello to HTML Elements
|
||||
challengeType: 0
|
||||
isHidden: false
|
||||
videoUrl: 'https://scrimba.com/p/pVMPUv/cE8Gpt2'
|
||||
forumTopicId: 18276
|
||||
---
|
||||
|
||||
# --description--
|
||||
|
||||
Paragraph 1
|
||||
|
||||
```html
|
||||
code example
|
||||
```
|
||||
|
||||
# --hints--
|
||||
|
||||
First hint
|
||||
|
||||
```js
|
||||
// test code
|
||||
```
|
||||
|
||||
Second hint with <code>code</code>
|
||||
|
||||
```js
|
||||
// more test code
|
||||
```
|
||||
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
86
tools/challenge-parser/parser/__fixtures__/with-gfm.md
Normal file
86
tools/challenge-parser/parser/__fixtures__/with-gfm.md
Normal file
@ -0,0 +1,86 @@
|
||||
# --description--
|
||||
|
||||
Paragraph 1 ~~Strikethrough text~~. https://should.not.be.autolinked
|
||||
|
||||
```html
|
||||
code example
|
||||
```
|
||||
|
||||
| example | of a |
|
||||
| --- | --- |
|
||||
| gfm | table |
|
||||
|
||||
|
||||
# --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 {
|
||||
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,60 @@
|
||||
::import{component="Script" from="./script.md" }
|
||||
::import{component="Second" from="./script-two.md" }
|
||||
|
||||
# --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
|
||||
```
|
||||
|
||||
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
::use{component="Second"}
|
||||
|
||||
::id{#custom-name}
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
::use{component="Script"}
|
58
tools/challenge-parser/parser/__fixtures__/with-imports.md
Normal file
58
tools/challenge-parser/parser/__fixtures__/with-imports.md
Normal file
@ -0,0 +1,58 @@
|
||||
::import{component="Script" from="./script.md" }
|
||||
::import{component="Second" from="./script-two.md" }
|
||||
|
||||
# --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
|
||||
```
|
||||
|
||||
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
::id{#custom-name}
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
::use{component="Script"}
|
@ -0,0 +1,57 @@
|
||||
::import{component="Script" from="./script-with-markers.md" }
|
||||
|
||||
# --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
|
||||
```
|
||||
|
||||
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
::id{#custom-name}
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
::use{component="Script"}
|
@ -0,0 +1,3 @@
|
||||
# --description--
|
||||
|
||||
<code> code in </code> code tags *emphasis* followed by <div><span>some nested html </span></div>
|
@ -0,0 +1,88 @@
|
||||
# --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 -->
|
||||
```
|
||||
|
||||
## --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';
|
||||
``
|
@ -0,0 +1,111 @@
|
||||
# --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
|
||||
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';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
::id{#html-key}
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
solution number two
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: white;
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
::id{#html-key}
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: white;
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y3';
|
||||
```
|
@ -0,0 +1,24 @@
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
::id{#key-for-css}
|
||||
|
||||
::id{#key-for-js}
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
@ -0,0 +1,27 @@
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
::id{#key-for-css}
|
||||
|
||||
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
::id{#key-for-js}
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
@ -0,0 +1,18 @@
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
::id{#key-for-html}
|
24
tools/challenge-parser/parser/__fixtures__/with-seed-keys.md
Normal file
24
tools/challenge-parser/parser/__fixtures__/with-seed-keys.md
Normal file
@ -0,0 +1,24 @@
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
::id{#key-for-css}
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
::id{#key-for-js}
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
@ -0,0 +1,43 @@
|
||||
# --description--
|
||||
|
||||
Paragraph 1
|
||||
|
||||
```html
|
||||
code example
|
||||
```
|
||||
|
||||
# --instructions--
|
||||
|
||||
Paragraph 0
|
||||
|
||||
```html
|
||||
code example 0
|
||||
```
|
||||
|
||||
## --text--
|
||||
|
||||
Question line 1
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
# --question--
|
||||
|
||||
## --answers--
|
||||
|
||||
Some inline `code`
|
||||
|
||||
---
|
||||
|
||||
Some *italics*
|
||||
|
||||
A second answer paragraph.
|
||||
|
||||
---
|
||||
|
||||
<code> code in </code> code tags
|
||||
|
||||
## --video-solution--
|
||||
|
||||
3
|
@ -0,0 +1,43 @@
|
||||
# --description--
|
||||
|
||||
Paragraph 1
|
||||
|
||||
```html
|
||||
code example
|
||||
```
|
||||
|
||||
# --instructions--
|
||||
|
||||
Paragraph 0
|
||||
|
||||
```html
|
||||
code example 0
|
||||
```
|
||||
|
||||
# --question--
|
||||
|
||||
## --text--
|
||||
|
||||
Question line 1
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
||||
|
||||
## --answers--
|
||||
|
||||
Some inline `code`
|
||||
|
||||
---
|
||||
|
||||
Some *italics*
|
||||
|
||||
A second answer paragraph.
|
||||
|
||||
---
|
||||
|
||||
<code> code in </code> code tags
|
||||
|
||||
## --video-solution--
|
||||
|
||||
3
|
56
tools/challenge-parser/parser/__fixtures__/with-yaml.md
Normal file
56
tools/challenge-parser/parser/__fixtures__/with-yaml.md
Normal file
@ -0,0 +1,56 @@
|
||||
# --description--
|
||||
|
||||
Paragraph 1
|
||||
|
||||
```html
|
||||
code example
|
||||
```
|
||||
|
||||
```yaml
|
||||
key:
|
||||
- subkey: value
|
||||
anothersubkey: another value
|
||||
```
|
||||
|
||||
# --instructions--
|
||||
|
||||
Paragraph 0
|
||||
|
||||
```html
|
||||
code example 0
|
||||
```
|
||||
|
||||
# --hints--
|
||||
|
||||
First hint
|
||||
|
||||
```js
|
||||
// test code
|
||||
```
|
||||
|
||||
Second hint with <code>code</code>
|
||||
|
||||
```js
|
||||
// more test code
|
||||
```
|
||||
|
||||
# --seed--
|
||||
|
||||
## --seed-contents--
|
||||
|
||||
```html
|
||||
<html>
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
```css
|
||||
body {
|
||||
background: green;
|
||||
}
|
||||
```
|
||||
|
||||
```js
|
||||
var x = 'y';
|
||||
```
|
Reference in New Issue
Block a user