From 37480a93313602b9b62609364d2fd3804cb31b98 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 7 Mar 2019 20:29:00 -0500 Subject: [PATCH] chapter --- .../01-self/app-a/App.svelte | 41 +++++++++++++++ .../01-self/app-a/File.svelte | 14 +++++ .../01-self/app-a/Folder.svelte | 52 +++++++++++++++++++ .../01-self/app-b/App.svelte | 41 +++++++++++++++ .../01-self/app-b/File.svelte | 14 +++++ .../01-self/app-b/Folder.svelte | 52 +++++++++++++++++++ .../16-special-elements/01-self/text.md | 25 +++++++++ .../tutorial/16-special-elements/meta.json | 3 ++ site/content/tutorial/99-todo/99-todo/text.md | 5 +- site/static/tutorial/icons/folder-open.svg | 4 ++ site/static/tutorial/icons/folder.svg | 4 ++ site/static/tutorial/icons/gif.svg | 4 ++ site/static/tutorial/icons/md.svg | 4 ++ site/static/tutorial/icons/xlsx.svg | 4 ++ 14 files changed, 264 insertions(+), 3 deletions(-) create mode 100644 site/content/tutorial/16-special-elements/01-self/app-a/App.svelte create mode 100644 site/content/tutorial/16-special-elements/01-self/app-a/File.svelte create mode 100644 site/content/tutorial/16-special-elements/01-self/app-a/Folder.svelte create mode 100644 site/content/tutorial/16-special-elements/01-self/app-b/App.svelte create mode 100644 site/content/tutorial/16-special-elements/01-self/app-b/File.svelte create mode 100644 site/content/tutorial/16-special-elements/01-self/app-b/Folder.svelte create mode 100644 site/content/tutorial/16-special-elements/01-self/text.md create mode 100644 site/content/tutorial/16-special-elements/meta.json create mode 100644 site/static/tutorial/icons/folder-open.svg create mode 100644 site/static/tutorial/icons/folder.svg create mode 100644 site/static/tutorial/icons/gif.svg create mode 100644 site/static/tutorial/icons/md.svg create mode 100644 site/static/tutorial/icons/xlsx.svg diff --git a/site/content/tutorial/16-special-elements/01-self/app-a/App.svelte b/site/content/tutorial/16-special-elements/01-self/app-a/App.svelte new file mode 100644 index 0000000000..ff02fa6a42 --- /dev/null +++ b/site/content/tutorial/16-special-elements/01-self/app-a/App.svelte @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/site/content/tutorial/16-special-elements/01-self/app-a/File.svelte b/site/content/tutorial/16-special-elements/01-self/app-a/File.svelte new file mode 100644 index 0000000000..e34686101a --- /dev/null +++ b/site/content/tutorial/16-special-elements/01-self/app-a/File.svelte @@ -0,0 +1,14 @@ + + + + +{name} \ No newline at end of file diff --git a/site/content/tutorial/16-special-elements/01-self/app-a/Folder.svelte b/site/content/tutorial/16-special-elements/01-self/app-a/Folder.svelte new file mode 100644 index 0000000000..add7fb96d3 --- /dev/null +++ b/site/content/tutorial/16-special-elements/01-self/app-a/Folder.svelte @@ -0,0 +1,52 @@ + + + + +{name} + +{#if expanded} +
    + {#each files as file} +
  • + {#if file.type === 'folder'} + + {:else} + + {/if} +
  • + {/each} +
+{/if} \ No newline at end of file diff --git a/site/content/tutorial/16-special-elements/01-self/app-b/App.svelte b/site/content/tutorial/16-special-elements/01-self/app-b/App.svelte new file mode 100644 index 0000000000..ff02fa6a42 --- /dev/null +++ b/site/content/tutorial/16-special-elements/01-self/app-b/App.svelte @@ -0,0 +1,41 @@ + + + \ No newline at end of file diff --git a/site/content/tutorial/16-special-elements/01-self/app-b/File.svelte b/site/content/tutorial/16-special-elements/01-self/app-b/File.svelte new file mode 100644 index 0000000000..e34686101a --- /dev/null +++ b/site/content/tutorial/16-special-elements/01-self/app-b/File.svelte @@ -0,0 +1,14 @@ + + + + +{name} \ No newline at end of file diff --git a/site/content/tutorial/16-special-elements/01-self/app-b/Folder.svelte b/site/content/tutorial/16-special-elements/01-self/app-b/Folder.svelte new file mode 100644 index 0000000000..c25bb2a93d --- /dev/null +++ b/site/content/tutorial/16-special-elements/01-self/app-b/Folder.svelte @@ -0,0 +1,52 @@ + + + + +{name} + +{#if expanded} +
    + {#each files as file} +
  • + {#if file.type === 'folder'} + + {:else} + + {/if} +
  • + {/each} +
+{/if} \ No newline at end of file diff --git a/site/content/tutorial/16-special-elements/01-self/text.md b/site/content/tutorial/16-special-elements/01-self/text.md new file mode 100644 index 0000000000..773dded83e --- /dev/null +++ b/site/content/tutorial/16-special-elements/01-self/text.md @@ -0,0 +1,25 @@ +--- +title: +--- + +Svelte provides a variety of built-in elements. The first, ``, allows a component to contain itself recursively. + +It's useful for things like this folder tree view, where folders can contain *other* folders. In `Folder.svelte` we want to be able to do this... + +```html +{#if file.type === 'folder'} + +{:else} + +{/if} +``` + +...but that's impossible, because a file can't import itself. Instead, we use ``: + +```html +{#if file.type === 'folder'} + +{:else} + +{/if} +``` \ No newline at end of file diff --git a/site/content/tutorial/16-special-elements/meta.json b/site/content/tutorial/16-special-elements/meta.json new file mode 100644 index 0000000000..2718c14b59 --- /dev/null +++ b/site/content/tutorial/16-special-elements/meta.json @@ -0,0 +1,3 @@ +{ + "title": "Special elements" +} \ No newline at end of file diff --git a/site/content/tutorial/99-todo/99-todo/text.md b/site/content/tutorial/99-todo/99-todo/text.md index 683b4fa15b..ce1eef5fe5 100644 --- a/site/content/tutorial/99-todo/99-todo/text.md +++ b/site/content/tutorial/99-todo/99-todo/text.md @@ -52,8 +52,7 @@ Another one should cover how to set up an editor for syntax highlighting. * [x] `export let foo` * [x] `export let foo = 1` - - +* [ ] spread props * [ ] `export function foo(){...}` @@ -140,7 +139,7 @@ Maybe lifecycle should go first, since we're using `onMount` in the `this` demo? ## Context -* [ ] `setContext` and `getContext` +* [x] `setContext` and `getContext` ## Special elements diff --git a/site/static/tutorial/icons/folder-open.svg b/site/static/tutorial/icons/folder-open.svg new file mode 100644 index 0000000000..9dac0ef9e9 --- /dev/null +++ b/site/static/tutorial/icons/folder-open.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/site/static/tutorial/icons/folder.svg b/site/static/tutorial/icons/folder.svg new file mode 100644 index 0000000000..7d4a03f1d2 --- /dev/null +++ b/site/static/tutorial/icons/folder.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/site/static/tutorial/icons/gif.svg b/site/static/tutorial/icons/gif.svg new file mode 100644 index 0000000000..315860a247 --- /dev/null +++ b/site/static/tutorial/icons/gif.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/site/static/tutorial/icons/md.svg b/site/static/tutorial/icons/md.svg new file mode 100644 index 0000000000..60bc36f4a7 --- /dev/null +++ b/site/static/tutorial/icons/md.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/site/static/tutorial/icons/xlsx.svg b/site/static/tutorial/icons/xlsx.svg new file mode 100644 index 0000000000..6ee32e943d --- /dev/null +++ b/site/static/tutorial/icons/xlsx.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file