From 14934270fb1074b1dd381a054172df32f77f281f Mon Sep 17 00:00:00 2001 From: terichadbourne Date: Mon, 22 Apr 2019 09:37:06 -0400 Subject: [PATCH 1/7] Surface MFS tutorials - Uncomment MFS lessons in `main.js` - Add MFS tutorial to courses in `courses.json` --- src/main.js | 22 +++++++++++----------- src/static/courses.json | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main.js b/src/main.js index d3743acd3..3b7468996 100644 --- a/src/main.js +++ b/src/main.js @@ -30,11 +30,11 @@ import LessonDataStructures02 from './tutorials/Data-Structures/02.vue' import LessonDataStructures03 from './tutorials/Data-Structures/03.vue' import LessonDataStructures04 from './tutorials/Data-Structures/04.vue' import LessonDataStructures05 from './tutorials/Data-Structures/05.vue' -// import MutableFileSystem01 from './tutorials/Mutable-File-System/01.vue' -// import MutableFileSystem02 from './tutorials/Mutable-File-System/02.vue' -// import MutableFileSystem03 from './tutorials/Mutable-File-System/03.vue' -// import MutableFileSystem04 from './tutorials/Mutable-File-System/04.vue' -// import MutableFileSystem05 from './tutorials/Mutable-File-System/05.vue' +import MutableFileSystem01 from './tutorials/Mutable-File-System/01.vue' +import MutableFileSystem02 from './tutorials/Mutable-File-System/02.vue' +import MutableFileSystem03 from './tutorials/Mutable-File-System/03.vue' +import MutableFileSystem04 from './tutorials/Mutable-File-System/04.vue' +import MutableFileSystem05 from './tutorials/Mutable-File-System/05.vue' Vue .use(VueRouter) @@ -70,12 +70,12 @@ const routes = [ { path: '/blog/06', component: LessonBlog06 }, { path: '/blog/07', component: LessonBlog07 }, // Lessons - MFS - // { path: '/mutable-file-system', component: Landing, props: { tutorialId: 'mutableFileSystem' } }, - // { path: '/mutable-file-system/01', component: MutableFileSystem01 }, - // { path: '/mutable-file-system/02', component: MutableFileSystem02 }, - // { path: '/mutable-file-system/03', component: MutableFileSystem03 }, - // { path: '/mutable-file-system/04', component: MutableFileSystem04 }, - // { path: '/mutable-file-system/05', component: MutableFileSystem05 }, + { path: '/mutable-file-system', component: Landing, props: { tutorialId: 'mutableFileSystem' } }, + { path: '/mutable-file-system/01', component: MutableFileSystem01 }, + { path: '/mutable-file-system/02', component: MutableFileSystem02 }, + { path: '/mutable-file-system/03', component: MutableFileSystem03 }, + { path: '/mutable-file-system/04', component: MutableFileSystem04 }, + { path: '/mutable-file-system/05', component: MutableFileSystem05 }, // 404 { path: '*', name: '404' } ] diff --git a/src/static/courses.json b/src/static/courses.json index 9ec762ba8..7cc3e74d1 100644 --- a/src/static/courses.json +++ b/src/static/courses.json @@ -1,4 +1,4 @@ { - "all": ["dataStructures", "basics", "blog"], - "featured": ["dataStructures", "basics", "blog"] + "all": ["mutableFileSystem", "dataStructures", "basics", "blog"], + "featured": ["mutableFileSystem", "dataStructures", "basics", "blog"] } From 21e0e8125542ec99ed98a4a2439a55da2271c26d Mon Sep 17 00:00:00 2001 From: terichadbourne Date: Mon, 22 Apr 2019 09:46:16 -0400 Subject: [PATCH 2/7] Grammar fixes --- src/tutorials/Mutable-File-System/02-exercise.md | 2 +- src/tutorials/Mutable-File-System/03-exercise.md | 2 +- src/tutorials/Mutable-File-System/03.vue | 4 ++-- src/tutorials/Mutable-File-System/04.vue | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/tutorials/Mutable-File-System/02-exercise.md b/src/tutorials/Mutable-File-System/02-exercise.md index 52643185d..3367c1b01 100644 --- a/src/tutorials/Mutable-File-System/02-exercise.md +++ b/src/tutorials/Mutable-File-System/02-exercise.md @@ -1 +1 @@ -First, upload one or more files by dropping it below or clicking to make a selection from your file explorer. Next, in the code editor, remove the comment markers that precede `return files.length` within the `run` function, which will make the function calculate how many files have been uploaded (the "length" of an array is the number of items it contains). Open your inspector and select `Console` before you hit the "Submit" button. What do you see? +First, upload one or more files by dropping it below or clicking to make a selection from your file explorer. Next, in the code editor, remove the comment markers that precede `return files.length` within the `run` function, which will make the function calculate how many files have been uploaded. (The "length" of an array in JavaScript is the number of items it contains.) Open your inspector and select `Console` before you hit the "Submit" button. What do you see? diff --git a/src/tutorials/Mutable-File-System/03-exercise.md b/src/tutorials/Mutable-File-System/03-exercise.md index 4a04690d6..f519f1037 100644 --- a/src/tutorials/Mutable-File-System/03-exercise.md +++ b/src/tutorials/Mutable-File-System/03-exercise.md @@ -1,3 +1,3 @@ Let's add some files to IPFS using MFS. Since `files` is an array representing the files currently available to us in the browser, we'll need to loop through the array and use `files.write()` to add each file we find there to IPFS, one at a time. (Only have a single file uploaded? No problem!) -Put your files in the root directory (`/`) and be sure to add the name of each file to the path when you add it (**hint:** the file object in the browser stores the filename as `file.name`). Be sure to set up your options so that a new file is created when one isn't found at the given path. +Put your files in the root directory (`/`) and be sure to add the name of each file to the path when you add it. (**Hint:** The file object in the browser stores the filename as `file.name`). Be sure to set up your options so that a new file is created when one isn't found at the given path. diff --git a/src/tutorials/Mutable-File-System/03.vue b/src/tutorials/Mutable-File-System/03.vue index de6e09850..501e48ef0 100644 --- a/src/tutorials/Mutable-File-System/03.vue +++ b/src/tutorials/Mutable-File-System/03.vue @@ -33,8 +33,8 @@ const validate = async (result, ipfs) => { if (itemsMatch && itemsAreFiles) { return { - success: 'Success, you made it!', - logDesc: "This is the data that is now in your root directory in IPFS.", + success: 'Success! You did it!', + logDesc: "This is the data that is now in your root directory in IPFS:", log: log } } else if (uploadedFiles = false) { diff --git a/src/tutorials/Mutable-File-System/04.vue b/src/tutorials/Mutable-File-System/04.vue index 993e78854..c74a37a97 100644 --- a/src/tutorials/Mutable-File-System/04.vue +++ b/src/tutorials/Mutable-File-System/04.vue @@ -51,8 +51,8 @@ const validate = async (result, ipfs) => { } } else if (directoryContentsMatch) { return { - success: 'Success, you made it!', - logDesc: 'This is the data returned by the `ls` method.', + success: 'Success! You did it!', + logDesc: 'This is the data returned by the `ls` method:', log: result } } else { From 0316e8848f7573b74195517ec30be90bf1ea32be Mon Sep 17 00:00:00 2001 From: terichadbourne Date: Mon, 22 Apr 2019 15:25:39 -0400 Subject: [PATCH 3/7] update lesson validation wording --- src/tutorials/Mutable-File-System/03.vue | 4 ++-- src/tutorials/Mutable-File-System/04.vue | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tutorials/Mutable-File-System/03.vue b/src/tutorials/Mutable-File-System/03.vue index 501e48ef0..a5b861351 100644 --- a/src/tutorials/Mutable-File-System/03.vue +++ b/src/tutorials/Mutable-File-System/03.vue @@ -45,10 +45,10 @@ const validate = async (result, ipfs) => { return { fail: 'Uh oh. It looks like you created a folder instead of a file. Did you forget to include a filename in your path?' } } else if (result && result.error.message === 'file does not exist') { // Forgot the `{ create: true }` option - return { fail: 'The file doesn\'t exist, so you need to create it. Maybe you forgot and option...' } + return { fail: 'The file doesn\'t exist yet, so you need to create it. Did you forget an option?' } } - // Output the default error if we haven't catched any + // Output the default error if we haven't caught any return { error: result.error } } diff --git a/src/tutorials/Mutable-File-System/04.vue b/src/tutorials/Mutable-File-System/04.vue index c74a37a97..8cff38805 100644 --- a/src/tutorials/Mutable-File-System/04.vue +++ b/src/tutorials/Mutable-File-System/04.vue @@ -46,13 +46,13 @@ const validate = async (result, ipfs) => { } else if (result[0].hash.length === 0) { return { fail: 'Oops! Looks like you forgot to use the { long: true } option!', - logDesc: 'This is the data returned by the `ls` method.', + logDesc: 'When you forget to use the `{ long: true }` option, the `ls` method only returns filenames, not file types, sizes, or hashes (CIDs). Take a look at what happens without that option below, then try again.', log: result } } else if (directoryContentsMatch) { return { success: 'Success! You did it!', - logDesc: 'This is the data returned by the `ls` method:', + logDesc: 'Take a look at the complete data returned by the `ls` method:', log: result } } else { From c80c95464785a0f8f3ef353752482f3def9ee5e8 Mon Sep 17 00:00:00 2001 From: terichadbourne Date: Tue, 23 Apr 2019 10:32:40 -0400 Subject: [PATCH 4/7] change _solution to solution --- src/tutorials/Mutable-File-System/03.vue | 2 +- src/tutorials/Mutable-File-System/04.vue | 2 +- src/tutorials/Mutable-File-System/05.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/tutorials/Mutable-File-System/03.vue b/src/tutorials/Mutable-File-System/03.vue index a5b861351..d60a7affe 100644 --- a/src/tutorials/Mutable-File-System/03.vue +++ b/src/tutorials/Mutable-File-System/03.vue @@ -60,7 +60,7 @@ const code = `const run = async (files) => { return run ` -const _solution = `const run = async (files) => { +const solution = `const run = async (files) => { for (let file of files) { await ipfs.files.write('/' + file.name, file, { create: true }) } diff --git a/src/tutorials/Mutable-File-System/04.vue b/src/tutorials/Mutable-File-System/04.vue index 8cff38805..98afb74b4 100644 --- a/src/tutorials/Mutable-File-System/04.vue +++ b/src/tutorials/Mutable-File-System/04.vue @@ -70,7 +70,7 @@ return run ` // '/' in the solution code below is optional -const _solution = `const run = async (files) => { +const solution = `const run = async (files) => { // this code adds your uploaded files to IPFS await Promise.all(files.map(f => ipfs.files.write('/' + f.name, f, { create: true }))) let directoryContents = await ipfs.files.ls('/', { long: true }) diff --git a/src/tutorials/Mutable-File-System/05.vue b/src/tutorials/Mutable-File-System/05.vue index e715f6ff4..186917928 100644 --- a/src/tutorials/Mutable-File-System/05.vue +++ b/src/tutorials/Mutable-File-System/05.vue @@ -64,7 +64,7 @@ return run ` // '/' in the solution code below is optional -const _solution = `const run = async (files) => { +const solution = `const run = async (files) => { // this code adds your uploaded files to your root directory in IPFS await Promise.all(files.map(f => ipfs.files.write('/' + f.name, f, {create: true}))) await ipfs.files.mkdir('/some/stuff', { parents: true }) From db8d2c7bbf227da7f9d040afbb6c5bfea1e16eaf Mon Sep 17 00:00:00 2001 From: terichadbourne Date: Tue, 23 Apr 2019 10:37:34 -0400 Subject: [PATCH 5/7] add missing solution code to mfs lesson 2 --- src/tutorials/Mutable-File-System/02.vue | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tutorials/Mutable-File-System/02.vue b/src/tutorials/Mutable-File-System/02.vue index 8b823d446..781d9298c 100644 --- a/src/tutorials/Mutable-File-System/02.vue +++ b/src/tutorials/Mutable-File-System/02.vue @@ -33,6 +33,13 @@ const code = `const run = async (files) => { return run ` +const solution = `const run = async (files) => { + console.log(files) + return files.length +} +return run +` + const modules = { cids: require('cids') } export default { From ff96c55637ca112a8336cd72708a920319f766a4 Mon Sep 17 00:00:00 2001 From: terichadbourne Date: Tue, 23 Apr 2019 10:52:04 -0400 Subject: [PATCH 6/7] add solution prop to MFS lessons and boilerplates --- src/tutorials/Mutable-File-System/02.vue | 3 ++- src/tutorials/Mutable-File-System/03.vue | 3 ++- src/tutorials/Mutable-File-System/04.vue | 3 ++- src/tutorials/Mutable-File-System/05.vue | 5 ++--- src/tutorials/boilerplates/boilerplate-file-upload.vue | 3 ++- src/tutorials/boilerplates/boilerplate-standard.vue | 3 ++- 6 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/tutorials/Mutable-File-System/02.vue b/src/tutorials/Mutable-File-System/02.vue index 781d9298c..9d2503434 100644 --- a/src/tutorials/Mutable-File-System/02.vue +++ b/src/tutorials/Mutable-File-System/02.vue @@ -5,6 +5,7 @@ :validate="validate" :modules="modules" :exercise="exercise" + :solution="solution" lessonTitle="Working with files in ProtoSchool"> @@ -47,7 +48,7 @@ export default { FileLesson }, data: () => { - return { text, validate, code, modules, exercise } + return { text, validate, code, modules, exercise, solution } } } diff --git a/src/tutorials/Mutable-File-System/03.vue b/src/tutorials/Mutable-File-System/03.vue index d60a7affe..6518dbc6b 100644 --- a/src/tutorials/Mutable-File-System/03.vue +++ b/src/tutorials/Mutable-File-System/03.vue @@ -6,6 +6,7 @@ :overrideErrors="true" :modules="modules" :exercise="exercise" + :solution="solution" lessonTitle="Add a new file to MFS" /> @@ -75,7 +76,7 @@ export default { FileLesson }, data: () => { - return { text, validate, code, modules, exercise } + return { text, validate, code, modules, exercise, solution } } } diff --git a/src/tutorials/Mutable-File-System/04.vue b/src/tutorials/Mutable-File-System/04.vue index 98afb74b4..e017ffdd3 100644 --- a/src/tutorials/Mutable-File-System/04.vue +++ b/src/tutorials/Mutable-File-System/04.vue @@ -5,6 +5,7 @@ :validate="validate" :modules="modules" :exercise="exercise" + :solution="solution" lessonTitle="View the contents of a directory"> @@ -86,7 +87,7 @@ export default { FileLesson }, data: () => { - return { text, validate, code, modules, exercise } + return { text, validate, code, modules, exercise, solution } } } diff --git a/src/tutorials/Mutable-File-System/05.vue b/src/tutorials/Mutable-File-System/05.vue index 186917928..23fc4cea7 100644 --- a/src/tutorials/Mutable-File-System/05.vue +++ b/src/tutorials/Mutable-File-System/05.vue @@ -4,6 +4,7 @@ :validate="validate" :modules="modules" :exercise="exercise" + :solution="solution" lessonTitle="Create a directory"> @@ -81,9 +82,7 @@ export default { FileLesson }, data: () => { - return { - text, validate, code, modules, exercise - } + return { text, validate, code, modules, exercise, solution } } } diff --git a/src/tutorials/boilerplates/boilerplate-file-upload.vue b/src/tutorials/boilerplates/boilerplate-file-upload.vue index 8b1cef8cb..0b7871186 100644 --- a/src/tutorials/boilerplates/boilerplate-file-upload.vue +++ b/src/tutorials/boilerplates/boilerplate-file-upload.vue @@ -5,6 +5,7 @@ :validate="validate" :modules="modules" :exercise="exercise" + :solution="solution" lessonTitle="REPLACEME" /> @@ -44,7 +45,7 @@ export default { FileLesson }, data: () => { - return { text, validate, code, modules, exercise } + return { text, validate, code, modules, exercise, solution } } } diff --git a/src/tutorials/boilerplates/boilerplate-standard.vue b/src/tutorials/boilerplates/boilerplate-standard.vue index 0d07f785b..f8e744bdf 100644 --- a/src/tutorials/boilerplates/boilerplate-standard.vue +++ b/src/tutorials/boilerplates/boilerplate-standard.vue @@ -5,6 +5,7 @@ :validate="validate" :modules="modules" :exercise="exercise" + :solution="solution" lessonTitle="REPLACEME" /> @@ -44,7 +45,7 @@ export default { Lesson }, data: () => { - return { text, validate, code, modules, exercise } + return { text, validate, code, modules, exercise, solution } } } From 69bd549a5a281b277d69bb1e2f6d1d40d998e879 Mon Sep 17 00:00:00 2001 From: Diogo Silva Date: Wed, 24 Apr 2019 14:35:11 +0100 Subject: [PATCH 7/7] fix: update code highlight --- src/components/Lesson.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Lesson.vue b/src/components/Lesson.vue index 59833ae1b..18749ffd7 100644 --- a/src/components/Lesson.vue +++ b/src/components/Lesson.vue @@ -120,7 +120,7 @@
Inspect results
{{output.test.logDesc}}
-                  {{output.test.log}}
+