@kth/om-kursen-ladok-client 2.1.1 → 2.1.2
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.
|
@@ -7,6 +7,25 @@ exports.mapProgramSyllabus = void 0;
|
|
|
7
7
|
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
9
|
const showdown_1 = __importDefault(require("showdown"));
|
|
10
|
+
const normalizeMarkdownTables = (raw) => {
|
|
11
|
+
if (!raw)
|
|
12
|
+
return raw;
|
|
13
|
+
let normalized = raw
|
|
14
|
+
// Step 1: Convert escaped \n to real newlines
|
|
15
|
+
.replace(/\\n/g, '\n')
|
|
16
|
+
// Step 2: Remove unnecessary escapes (but preserve Markdown ones like \*, \_)
|
|
17
|
+
.replace(/\\(?![|*_\\])/g, '')
|
|
18
|
+
// Step 3: Fix escaped pipe characters in full table rows
|
|
19
|
+
.replace(/^\\\|(.+?)\\\|$/gm, (_match, row) => `|${row}|`)
|
|
20
|
+
.replace(/\\\|/g, '|')
|
|
21
|
+
// Step 4: Replace double backslashes with single
|
|
22
|
+
.replace(/\\\\/g, '\\')
|
|
23
|
+
// Step 5: Insert newline between two table rows if they're mashed together
|
|
24
|
+
.replace(/(\|.+?\|)\s*(?=\|)/g, '$1\n')
|
|
25
|
+
// Step 6: Remove \n at the end of the <br>
|
|
26
|
+
.replace(/<br>\n/g, '<br>');
|
|
27
|
+
return normalized;
|
|
28
|
+
};
|
|
10
29
|
const convertMarkdownToHtml = (markdownText) => {
|
|
11
30
|
const converter = new showdown_1.default.Converter({ tables: true });
|
|
12
31
|
if (markdownText)
|
|
@@ -20,7 +39,8 @@ const mapProgramSyllabus = (syllabus, periods, language) => {
|
|
|
20
39
|
const findAndConvertMarkdownValue = (attribute, attributvarden = syllabus.AktuellaAttributvarden) => {
|
|
21
40
|
const attributeKey = buildAttributeKey(attribute);
|
|
22
41
|
const extractedValueForAttribute = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, attributeKey, 'markdown');
|
|
23
|
-
|
|
42
|
+
const normalizedMarkdownData = normalizeMarkdownTables(extractedValueForAttribute);
|
|
43
|
+
return convertMarkdownToHtml(normalizedMarkdownData);
|
|
24
44
|
};
|
|
25
45
|
const findIntegerValue = (attribute, attributvarden = syllabus.AktuellaAttributvarden) => {
|
|
26
46
|
const attributeKey = buildAttributeKey(attribute);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapProgramSyllabus.js","sourceRoot":"","sources":["../src/mapProgramSyllabus.ts"],"names":[],"mappings":";;;;;;AACA,8EAA6G;AAC7G,mCAAsD;AACtD,wDAA+B;
|
|
1
|
+
{"version":3,"file":"mapProgramSyllabus.js","sourceRoot":"","sources":["../src/mapProgramSyllabus.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED