diff --git a/site/content/tutorial/01-introduction/01-basics/App.svelte b/site/content/tutorial/01-introduction/01-basics/app-a/App.svelte similarity index 100% rename from site/content/tutorial/01-introduction/01-basics/App.svelte rename to site/content/tutorial/01-introduction/01-basics/app-a/App.svelte diff --git a/site/content/tutorial/01-introduction/02-adding-data/App.svelte b/site/content/tutorial/01-introduction/02-adding-data/app-a/App.svelte similarity index 100% rename from site/content/tutorial/01-introduction/02-adding-data/App.svelte rename to site/content/tutorial/01-introduction/02-adding-data/app-a/App.svelte diff --git a/site/content/tutorial/01-introduction/02-adding-data/app-b/App.svelte b/site/content/tutorial/01-introduction/02-adding-data/app-b/App.svelte new file mode 100644 index 0000000000..2ab60ba0ac --- /dev/null +++ b/site/content/tutorial/01-introduction/02-adding-data/app-b/App.svelte @@ -0,0 +1,5 @@ + + +

Hello {name.toUpperCase()}!

\ No newline at end of file diff --git a/site/content/tutorial/01-introduction/03-dynamic-attributes/App.svelte b/site/content/tutorial/01-introduction/03-dynamic-attributes/app-a/App.svelte similarity index 100% rename from site/content/tutorial/01-introduction/03-dynamic-attributes/App.svelte rename to site/content/tutorial/01-introduction/03-dynamic-attributes/app-a/App.svelte diff --git a/site/content/tutorial/01-introduction/03-dynamic-attributes/app-b/App.svelte b/site/content/tutorial/01-introduction/03-dynamic-attributes/app-b/App.svelte new file mode 100644 index 0000000000..6a12752e1a --- /dev/null +++ b/site/content/tutorial/01-introduction/03-dynamic-attributes/app-b/App.svelte @@ -0,0 +1,6 @@ + + +{name} dancing \ No newline at end of file diff --git a/site/content/tutorial/01-introduction/04-styling/App.svelte b/site/content/tutorial/01-introduction/04-styling/app-a/App.svelte similarity index 100% rename from site/content/tutorial/01-introduction/04-styling/App.svelte rename to site/content/tutorial/01-introduction/04-styling/app-a/App.svelte diff --git a/site/content/tutorial/01-introduction/05-nested-components/App.svelte b/site/content/tutorial/01-introduction/04-styling/app-b/App.svelte similarity index 100% rename from site/content/tutorial/01-introduction/05-nested-components/App.svelte rename to site/content/tutorial/01-introduction/04-styling/app-b/App.svelte diff --git a/site/content/tutorial/01-introduction/05-nested-components/app-a/App.svelte b/site/content/tutorial/01-introduction/05-nested-components/app-a/App.svelte new file mode 100644 index 0000000000..ab87af83d8 --- /dev/null +++ b/site/content/tutorial/01-introduction/05-nested-components/app-a/App.svelte @@ -0,0 +1,9 @@ + + +

This is a paragraph.

\ No newline at end of file diff --git a/site/content/tutorial/01-introduction/05-nested-components/Nested.svelte b/site/content/tutorial/01-introduction/05-nested-components/app-a/Nested.svelte similarity index 100% rename from site/content/tutorial/01-introduction/05-nested-components/Nested.svelte rename to site/content/tutorial/01-introduction/05-nested-components/app-a/Nested.svelte diff --git a/site/content/tutorial/01-introduction/05-nested-components/app-b/App.svelte b/site/content/tutorial/01-introduction/05-nested-components/app-b/App.svelte new file mode 100644 index 0000000000..9ba76665bf --- /dev/null +++ b/site/content/tutorial/01-introduction/05-nested-components/app-b/App.svelte @@ -0,0 +1,14 @@ + + + + +

This is a paragraph.

+ \ No newline at end of file diff --git a/site/content/tutorial/01-introduction/05-nested-components/app-b/Nested.svelte b/site/content/tutorial/01-introduction/05-nested-components/app-b/Nested.svelte new file mode 100644 index 0000000000..5297ab1044 --- /dev/null +++ b/site/content/tutorial/01-introduction/05-nested-components/app-b/Nested.svelte @@ -0,0 +1 @@ +

This is another paragraph.

\ No newline at end of file diff --git a/site/content/tutorial/02-reactivity/01-reactive-assignments/App.svelte b/site/content/tutorial/02-reactivity/01-reactive-assignments/app-a/App.svelte similarity index 100% rename from site/content/tutorial/02-reactivity/01-reactive-assignments/App.svelte rename to site/content/tutorial/02-reactivity/01-reactive-assignments/app-a/App.svelte diff --git a/site/content/tutorial/02-reactivity/02-reactive-declarations/App.svelte b/site/content/tutorial/02-reactivity/01-reactive-assignments/app-b/App.svelte similarity index 100% rename from site/content/tutorial/02-reactivity/02-reactive-declarations/App.svelte rename to site/content/tutorial/02-reactivity/01-reactive-assignments/app-b/App.svelte diff --git a/site/content/tutorial/02-reactivity/03-reactive-statements/App.svelte b/site/content/tutorial/02-reactivity/02-reactive-declarations/app-a/App.svelte similarity index 100% rename from site/content/tutorial/02-reactivity/03-reactive-statements/App.svelte rename to site/content/tutorial/02-reactivity/02-reactive-declarations/app-a/App.svelte diff --git a/site/content/tutorial/02-reactivity/02-reactive-declarations/app-b/App.svelte b/site/content/tutorial/02-reactivity/02-reactive-declarations/app-b/App.svelte new file mode 100644 index 0000000000..a9fc207851 --- /dev/null +++ b/site/content/tutorial/02-reactivity/02-reactive-declarations/app-b/App.svelte @@ -0,0 +1,14 @@ + + + + +

{count} doubled is {doubled}

\ No newline at end of file diff --git a/site/content/tutorial/02-reactivity/03-reactive-statements/app-a/App.svelte b/site/content/tutorial/02-reactivity/03-reactive-statements/app-a/App.svelte new file mode 100644 index 0000000000..bc50d74cfc --- /dev/null +++ b/site/content/tutorial/02-reactivity/03-reactive-statements/app-a/App.svelte @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/site/content/tutorial/02-reactivity/03-reactive-statements/app-b/App.svelte b/site/content/tutorial/02-reactivity/03-reactive-statements/app-b/App.svelte new file mode 100644 index 0000000000..f757be6f51 --- /dev/null +++ b/site/content/tutorial/02-reactivity/03-reactive-statements/app-b/App.svelte @@ -0,0 +1,16 @@ + + + \ No newline at end of file diff --git a/site/src/routes/tutorial/[slug]/index.json.js b/site/src/routes/tutorial/[slug]/index.json.js index 2e8682020e..a44685530d 100644 --- a/site/src/routes/tutorial/[slug]/index.json.js +++ b/site/src/routes/tutorial/[slug]/index.json.js @@ -26,7 +26,8 @@ function get_tutorial(slug) { const dir = `content/tutorial/${found.section}/${found.chapter}`; const markdown = fs.readFileSync(`${dir}/text.md`, 'utf-8'); - const files = fs.readdirSync(dir).filter(file => file[0] !== '.' && file !== 'text.md'); + const app_a = fs.readdirSync(`${dir}/app-a`); + const app_b = fs.existsSync(`${dir}/app-b`) && fs.readdirSync(`${dir}/app-b`); const { content } = extract_frontmatter(markdown); @@ -69,20 +70,22 @@ function get_tutorial(slug) { html = `

${meta.title}

\n${html}`; } + function get_file(stage, file) { + const ext = path.extname(file); + const name = file.slice(0, -ext.length); + const type = ext.slice(1); + + return { + name, + type, + source: fs.readFileSync(`${dir}/${stage}/${file}`, 'utf-8') + }; + } return { html, - files: files.map(file => { - const ext = path.extname(file); - const name = file.slice(0, -ext.length); - const type = ext.slice(1); - - return { - name, - type, - source: fs.readFileSync(`${dir}/${file}`, 'utf-8') - }; - }) + app_a: app_a.map(file => get_file('app-a', file)), + app_b: app_b && app_b.map(file => get_file('app-b', file)) }; } diff --git a/site/src/routes/tutorial/[slug]/index.svelte b/site/src/routes/tutorial/[slug]/index.svelte index b5fe971c67..793cb743e9 100644 --- a/site/src/routes/tutorial/[slug]/index.svelte +++ b/site/src/routes/tutorial/[slug]/index.svelte @@ -47,10 +47,28 @@ $: selected = lookup.get(slug); - $: app = { - components: chapter.files, - values: {} - }; + // TODO once reactive values are fixed + // $: app = { + // components: chapter.app_a, + // values: {} + // }; + + let app; + $: start(chapter); + + function start(chapter) { + app = { + components: chapter.app_a, + values: {} + }; + } + + function complete() { + app = { + components: chapter.app_b, + values: {} + }; + } @@ -149,9 +187,19 @@
{@html chapter.html} - {#if selected.next} - - {/if} +
+ {#if chapter.app_b} + + + {/if} + + {#if selected.next} + + {/if} +