@zaowu-labs/teach 1.0.2 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -12
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,eAAO,MAAM,YAAY,EAAE,gBAkB1B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE7F,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,eAAO,MAAM,YAAY,EAAE,gBAkB1B,CAAC;AA2DF,eAAO,MAAM,kBAAkB,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,eAAe,CA8B/E,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,OAAO,MAAM,EACb,UAAS;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,KAChD,OAAO,CAAC,eAAe,CA0CzB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -38,15 +38,25 @@ const readTopicOrFile = async (input) => {
|
|
|
38
38
|
return input;
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
+
const HEADING_LINE_PATTERN = /^#{1,6}\s/;
|
|
42
|
+
const stripHeadingMarker = (line) => line.replace(/^#+\s*/, '').trim();
|
|
41
43
|
const getTopic = (content) => {
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
const lines = content.split(/\r?\n/);
|
|
45
|
+
const topic = lines.map(stripHeadingMarker).find(Boolean) ?? 'Untitled topic';
|
|
46
|
+
// The topic counts as heading-derived only when the first non-empty line is
|
|
47
|
+
// itself a heading; a plain-text first line means every heading is a real
|
|
48
|
+
// section.
|
|
49
|
+
const firstNonEmptyLine = lines.map((line) => line.trim()).find(Boolean);
|
|
50
|
+
return {
|
|
51
|
+
topic,
|
|
52
|
+
fromHeading: firstNonEmptyLine ? HEADING_LINE_PATTERN.test(firstNonEmptyLine) : false,
|
|
53
|
+
};
|
|
47
54
|
};
|
|
48
55
|
const getSentences = (content) => content
|
|
49
|
-
|
|
56
|
+
// Latin sentence enders only split when followed by whitespace or end of
|
|
57
|
+
// text, so `Node.js`, `3.14`, and `v1.0` stay whole. CJK enders and
|
|
58
|
+
// newlines split anywhere, since CJK text has no inter-word spaces.
|
|
59
|
+
.split(/[.!?]+(?=\s|$)|[。!?]+|\r?\n/)
|
|
50
60
|
.map((sentence) => sentence.trim())
|
|
51
61
|
.filter(Boolean);
|
|
52
62
|
/**
|
|
@@ -55,19 +65,20 @@ const getSentences = (content) => content
|
|
|
55
65
|
*/
|
|
56
66
|
const getHeadings = (content) => content
|
|
57
67
|
.split(/\r?\n/)
|
|
58
|
-
.filter((line) =>
|
|
59
|
-
.map(
|
|
68
|
+
.filter((line) => HEADING_LINE_PATTERN.test(line))
|
|
69
|
+
.map(stripHeadingMarker)
|
|
60
70
|
.filter(Boolean);
|
|
61
71
|
export const createTeachingPlan = async (input) => {
|
|
62
72
|
const content = await readTopicOrFile(input);
|
|
63
|
-
const topic = getTopic(content);
|
|
73
|
+
const { topic, fromHeading } = getTopic(content);
|
|
64
74
|
const headings = getHeadings(content);
|
|
75
|
+
const sectionHeadings = fromHeading ? headings.slice(1) : headings;
|
|
65
76
|
// Build a richer outline when the content has discoverable section headings.
|
|
66
|
-
const outline =
|
|
77
|
+
const outline = sectionHeadings.length > 0
|
|
67
78
|
? [
|
|
68
79
|
`Goal: understand ${topic}.`,
|
|
69
80
|
'Warm-up: ask what the learner already knows.',
|
|
70
|
-
...
|
|
81
|
+
...sectionHeadings.map((h, i) => `Section ${i + 1}: ${h}`),
|
|
71
82
|
'Practice: complete a short guided exercise.',
|
|
72
83
|
'Check: summarize the key point and one common mistake.',
|
|
73
84
|
]
|
|
@@ -97,7 +108,7 @@ export const createTeachingQuiz = async (input, options = {}) => {
|
|
|
97
108
|
}
|
|
98
109
|
const count = rawCount;
|
|
99
110
|
const content = await readTopicOrFile(input);
|
|
100
|
-
const topic = getTopic(content);
|
|
111
|
+
const { topic } = getTopic(content);
|
|
101
112
|
const sentences = getSentences(content).slice(0, count);
|
|
102
113
|
const questions = sentences.length > 0
|
|
103
114
|
? sentences.map((sentence, index) => `Q${index + 1}: Explain this idea in your own words: ${sentence}.`)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AAmB7F,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,+DAA+D;IACxE,YAAY,EAAE,sBAAsB,CAAC;QACnC,UAAU,EAAE,IAAI;KACjB,CAAC;IACF,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,wBAAwB;YACjC,MAAM,EAAE,WAAW;SACpB;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,kDAAkD;YAC3D,MAAM,EAAE,WAAW;SACpB;KACF;CACF,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,KAAa,EAAmB,EAAE;IAC/D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB,MAAM,IAAI,UAAU,CAAC;YACnB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,6BAA6B;YACtC,GAAG,EAAE,wDAAwD;YAC7D,GAAG,EAAE,0CAA0C;SAChD,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,OAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zaowu-labs/teach",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "ZaoWu teaching workflows",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@zaowu-labs/core": "1.0.
|
|
23
|
+
"@zaowu-labs/core": "1.0.6"
|
|
24
24
|
},
|
|
25
25
|
"keywords": [
|
|
26
26
|
"zaowu",
|