Syllabus Generation Tool
(Used to create WDX180)
Usage:
sgen curriculum.yaml
sgen week01.yaml or just sgen 1
git clone git@github.com:in-tech-gration/sgen.gitcd sgennpm installnpm linksgen --version
{{ SGEN:ASSETS_DIR }}->curriculum/week<NUM_OF_WEEK>/assets{{ SGEN:ASSETS_AS_CODE }}-><GITHUB_BLOB_URL>curriculum/week<NUM_OF_WEEK>/assets{{ SGEN:EXERCISES_DIR }}->curriculum/week<NUM_OF_WEEK>/exercises
{{ SGEN:WEEK }}->Week <NUM_OF_WEEK>{{ SGEN:WEEK_FULL }}->Week <NUM_OF_WEEK>{{ SGEN:WEEK_NUM }}-><NUM_OF_WEEK>{{ SGEN:TITLE }}-><FRONTMATTER_TITLE{{ SGEN:DAY }}->Day <NUM_OF_DAY>{{ SGEN:DAY_FULL }}->Day <NUM_OF_DAY>{{ SGEN:DAY_NUM }}-><NUM_OF_DAY>{{ SGEN:DATE_UPDATED }}->DD/MM/YYYY
{{ SGEN:DAILY_SCHEDULE }}-> Replaced with content inside section### Schedule{{ SGEN:STUDY_PLAN }}-> Replaced with content inside section### Extra Resources{{ SGEN:SUMMARY }}-> Replaced with content inside section### Study Plan{{ SGEN:EXERCISES }}-> Replaced with content inside section### Summary{{ SGEN:EXTRAS }}-> Replaced with content inside section### Exercises{{ SGEN:ATTRIBUTIONS }}-> Replaced with content inside section### Sources and Attributions
{{ SGEN:INCLUDES:<FILE_NAME> }}-> Replaced with content found insidecurriculum/schedule/includes/<FILE_NAME>.md{{ SGEN:MODULE:some/path_inside_modules/index.md }}-> Replaced with content found insidesome/path_inside_modules/index.md{{ {{ SGEN:MODULE_READ:path/to/index.md }} }}-> Replaced with- [Read: **<FRONTMATTER_TITLE>**](../modules/path/to/index.md}){:target="_blank"}{{ SGEN:WEEKLY_CONTENT }}-> Replaced with content from all days specified inside aweekXX.yamlconfiguration file
The markdown comments found below can be used to generate progress sheet entries and tests for exercises
<!-- SGEN:META:PROGRESS:<params> --><params>->param_name=<PARAM_CONTENT>(separated by|)task=<TASK>: requireduser_folder=<FOLDER_NAME>
- Replaced with empty string and inserts
<WEEK_NUM>,<DAY_NUM>,<WEEK_TITLE>: <DAY_TITLE>,<TASK>,<LEVEL>,0-10,FALSE,<INSTRUCTIONS>touser/week<WEEK_NUM>/progress/progress.draft.w<WEEK_NUM>.d<DAY_NUM>.csvfile.<WEEK_NUM>-> Num of current week<DAY_NUM>-> Num of current day<WEEK_TITLE>-> Title of current week<DAY_TITLE>-> Title of current day<LEVEL>-> 'Beginner', 'Intermediate' or 'Advanced'<INSTRUCTIONS>->Update FALSE to TRUE in the COMPLETED columnorUpload the required assets to the user/week<WEEK_NUM>/exercises/day<DAY_NUM>/<FOLDER_NAME>/ folder
<!-- SGEN:META:TESTS:<params> --><params>->param_name=<PARAM_CONTENT>(separated by|)name=<NAME>: requiredtype=<TYPE>: required (Available types:exist)user_folder=<FOLDER_NAME>: requiredfiles=<FILENAMES>: required (Filenames separated by comma e.g.file1.js,file2.js)
- Replaced with empty string and creates
w<WEEK_NUM>-d<DAY_NUM>-<FOLDER_NAME>.yamlto.github/workflows/folder. The content of the generated file is a the template shown below
name: "Week <WEEK_NUM> - Day <DAY_NUM> <WEEK_TITLE> | <NAME>"
on:
push:
branches:
- 'main'
paths:
- user/week<WEEK_NUM>/exercises/day<DAY_NUM>/<FOLDER_NAME>/**
jobs:
fetch_basics:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: "<NAME> > Check solution files existence"
uses: andstor/file-existence-action@v2
with:
files: "user/week<WEEK_NUM>/exercises/day<DAY_NUM>/<FOLDER_NAME>/<FILENAMES>, user/week<WEEK_NUM>/exercises/day<DAY_NUM>/<FOLDER_NAME>/<FILENAMES>"
fail: true