MCPcopy Create free account
hub / github.com/codenameone/CodenameOne / write_lessons

Function write_lessons

docs/website/scripts/split_courses.py:191–223  ·  view source on GitHub ↗
(course_slug: str, title: str, lessons: List[Lesson])

Source from the content-addressed store, hash-verified

189
190
191def write_lessons(course_slug: str, title: str, lessons: List[Lesson]):
192 course_dir = OUT_BASE / course_slug
193 course_dir.mkdir(parents=True, exist_ok=True)
194
195 # clear existing generated lessons
196 for old in course_dir.glob("*.md"):
197 old.unlink()
198
199 for lesson in lessons:
200 fname = f"{lesson.global_order:03d}-{slugify(lesson.title)}.md"
201 path = course_dir / fname
202 module_key = f"{lesson.module_order:02d}-{slugify(lesson.module_title)}"
203
204 body = [
205 "---",
206 f'title: "{lesson.title}"',
207 'layout: "course-lesson"',
208 f'course_id: "{course_slug}"',
209 f'course_title: "{title}"',
210 f'module_title: "{lesson.module_title}"',
211 f'module_key: "{module_key}"',
212 f"module_order: {lesson.module_order}",
213 f"lesson_order: {lesson.lesson_order_in_module}",
214 f"weight: {lesson.global_order}",
215 "is_course_lesson: true",
216 f'description: "{lesson.summary().replace("\"", "\\\"")}"',
217 "---",
218 "",
219 f"> Module {lesson.module_order}: {lesson.module_title}",
220 "",
221 ]
222 body.extend(lesson.body_lines)
223 path.write_text("\n".join(body).rstrip() + "\n", encoding="utf-8")
224
225
226def process(source: Path):

Callers 1

processFunction · 0.85

Calls 6

slugifyFunction · 0.85
summaryMethod · 0.80
replaceMethod · 0.65
joinMethod · 0.65
mkdirMethod · 0.45
extendMethod · 0.45

Tested by

no test coverage detected