Guide
Adding new lesson material
Edit the file tools/data/lessonDataInput.yaml
A minimal lesson looks like this:
- topic: Name
cname: name
pairs:
- q: Who gave you your name?
a: 'My parents gave me my name, my father to be exact.'
- q: Does your name have any particular (or special) meaning?
a: 'Zhi means knowledge, and Lei means accumulation. So I guess my parents wanted to tell me that being knowledgeable depends on accumulation. You see they put a lot of pressure on my shoulders with this name.'
- q: Do you like your name?
a: 'I quite like my name, and I won''t change it for the world, because it is unique. I don''t think that anyone else in China has the same name. It''s part of my identity, and it is meaningful to me.'
- q: 'In your country, do people feel that their name is very important?'
a: People in my country pay great attention to their names because they believe that suitable names will bring them good fortune. Sometimes they even change their names for their business and family purpose.
- q: Would you like to change your name?
a: 'In China, I believe that fathers are in the position of naming their children. Sometimes they will look through some Chinese classical literatures to seek the meaningful words for their children.'
After that's prepared
Process the lessonData
cd tools
bin/cleanYaml.js
This will extract long words from the sentences and use them as vocab, eg adding a block like this
Creates file tools/data/lessonOutput.yaml
words:
- identity
- Sometimes
- shoulders
- pressure
- particular
- literatures
- classical
- knowledge
vocab:
- en: identity
stem: ident
pos: 'n'
syns:
- personal identity
- individuality
def: the distinct personality of an individual regarded as a persisting entity
# etc
render Pages
Will output markdown pages based on lessonDataOutput.yaml
to the src/.vuepress/speaking/..
section.
Run the local vuepress server
From top level run yarn docs:dev
Access http://localhost:8080/course/speaking/newspapers.html#questions on your local machine.
screenshot the pages
cd tools
bin/shotter.js
renders multiple screenshots to src/.vuepress/public/assets/$page/...
Deploy
bin/deploy-github.sh
Puts the images eg here https://tutorweb.rikai-bots.com/course/assets/shots/holidays/summary.jpg
More
Check out parts page for design parts