feat(lessons): Add lessons modules

This commit is contained in:
Khaled Garbaya
2017-09-27 11:50:00 +02:00
committed by Benedikt Rötsch
parent 1875c99a4c
commit 62ecdfe60c
7 changed files with 43 additions and 6 deletions

View File

@@ -2,6 +2,7 @@ const marked = require('marked')
// Parse markdown text
exports.markdown = (content) => {
content = content || ''
return marked(removeIvalidDataURL(content), {sanitize: true})
}

View File

@@ -25,7 +25,7 @@ exports.getCourse = (slug) => {
// the SDK support link resolution only when you request the collection endpoint
// That's why we are using getEntries with a query instead of getEntry(entryId)
// make sure to specify the content_type whenever you want to perform a query
return client.getEntries({content_type: 'course', 'fields.slug': slug})
return client.getEntries({content_type: 'course', 'fields.slug': slug, include: 10})
.then((response) => response.items[0])
}

View File

@@ -1,5 +1,7 @@
extends layout
include mixins/_lesson
block content
.wrapper.wrapper-with-sidebar
section.wrapper__sidebar
@@ -15,8 +17,7 @@ block content
h1= course.fields.title
if lesson
h2= lesson.fields.title
p !{helpers.markdown(lesson.fields.description)}
+lesson(lesson)
if lessonIndex + 1< lessons.length
a.cta(href=`/courses/${course.fields.slug}/lessons/${lessons[lessonIndex + 1].fields.slug}`) View next lesson
else

View File

@@ -1,7 +1,17 @@
include _lessonModuleCodeSnippet
include _lessonModuleCopy
include _lessonModuleImage
mixin lesson(lesson)
.lesson
h1.lesson__tilte #{lesson.fields.title}
div.lesson__shortDescription !{helpers.markdown(lesson.fields.shortDescription)}
div.lesson__shortDescription !{helpers.markdown(lesson.fields.description)}
img.lesson__image(src=`${lesson.fields.image.fields.file.url}` alt=`${lesson.fields.image.fields.title}`)
each module in lesson.fields.modules
case module.sys.contentType.sys.id
when 'lessonModuleCodeSnippets'
+lessonModuleCodeSnippet(module)
when 'lessonModuleCopy'
+lessonModuleCopy(module)
when 'lessonModuleImage'
+lessonModuleImage(module)

View File

@@ -0,0 +1,15 @@
mixin lessonModuleCodeSnippet(module)
.lessonModule
.lessonModule__code
h1.lessonModule__title #{module.fields.title}
pre.lessonModule__code__curl !{helpers.markdown(module.fields.curl)}
pre.lessonModule__code__dotnet !{helpers.markdown(module.fields.dotNet)}
pre.lessonModule__code__javascript !{helpers.markdown(module.fields.javascript)}
pre.lessonModule__code__java !{helpers.markdown(module.fields.java)}
pre.lessonModule__code__javaAndroid !{helpers.markdown(module.fields.javaAndroid)}
pre.lessonModule__code__php !{helpers.markdown(module.fields.php)}
pre.lessonModule__code__python !{helpers.markdown(module.fields.python)}
pre.lessonModule__code__ruby !{helpers.markdown(module.fields.ruby)}
pre.lessonModule__code__swift !{helpers.markdown(module.fields.swift)}

View File

@@ -0,0 +1,5 @@
mixin lessonModuleCopy(module)
.lessonModule
.lessonModule__copy
h1.lessonModule__copy__title #{module.fields.title}
.lessonModule__copy__copy !{helpers.markdown(module.fields.copy)}

View File

@@ -0,0 +1,5 @@
mixin lessonModuleImage(module)
.lessonModule
.lessonModule__image
h1.lessonModule__image__title #{module.fields.title}
img.lessonModule__image__image(src=module.fields.file.url alt=module.fields.title)