|
@@ -9,16 +9,32 @@ angular.module('app')
|
9
|
9
|
|
10
|
10
|
$scope.questions = [];
|
11
|
11
|
|
|
12
|
+ $scope.macros = [];
|
|
13
|
+
|
|
14
|
+ $scope.addMacro = function(latex, html)
|
|
15
|
+ {
|
|
16
|
+ $scope.macros.push({
|
|
17
|
+ latex: latex,
|
|
18
|
+ html: html
|
|
19
|
+ });
|
|
20
|
+ };
|
|
21
|
+
|
12
|
22
|
$scope.formatText = function(text)
|
13
|
23
|
{
|
14
|
|
- return text.replace(/\$([^\$]+)\$/g, function($1, $2)
|
|
24
|
+ text = text.replace(/\$([^\$]+)\$/g, function($1, $2)
|
15
|
25
|
{
|
16
|
26
|
return "\\(" + $2 + "\\)";
|
17
|
|
- })
|
|
27
|
+ }).replace("\n", "");
|
|
28
|
+ $scope.macros.forEach(function(macro)
|
|
29
|
+ {
|
|
30
|
+ text = text.replace(macro.latex, macro.html);
|
|
31
|
+ });
|
|
32
|
+ return text;
|
18
|
33
|
};
|
19
|
34
|
|
20
|
35
|
$scope.convert = function()
|
21
|
36
|
{
|
|
37
|
+ $scope.Data.Output = "";
|
22
|
38
|
$scope.questions = [];
|
23
|
39
|
var input = $scope.Data.Input;
|
24
|
40
|
$scope.Data.Output = "";
|
|
@@ -34,15 +50,15 @@ angular.module('app')
|
34
|
50
|
};
|
35
|
51
|
var responses = questionStr.split("\\item");
|
36
|
52
|
question.Text = responses[0].replace(/^\*\{.*\}/, "")
|
37
|
|
- .replace(/\\medskip/, "")
|
38
|
|
- .replace(/\\begin\{.*\}/, "")
|
|
53
|
+ .replace(/\\medskip/g, "")
|
|
54
|
+ .replace(/\\begin\{.*\}/g, "")
|
39
|
55
|
.trim();
|
40
|
56
|
question.Text = $scope.formatText(question.Text);
|
41
|
57
|
responses.splice(0, 1);
|
42
|
58
|
|
43
|
59
|
responses.forEach(function(answerStr) {
|
44
|
60
|
answerStr = answerStr.replace(/\\medskip/, "")
|
45
|
|
- .replace(/\\end\{.*\}/, "")
|
|
61
|
+ .replace(/\\end\{.*\}/g, "")
|
46
|
62
|
.trim();
|
47
|
63
|
var a = answerStr.match(/^\[[^\]\[]+\]/)[0];
|
48
|
64
|
answerStr = answerStr.substring(a.length, answerStr.length);
|
|
@@ -56,8 +72,36 @@ angular.module('app')
|
56
|
72
|
$scope.questions.push(question);
|
57
|
73
|
});
|
58
|
74
|
|
59
|
|
- /*var re = /\$[^$]+\$/g;
|
60
|
|
- console.log(input.match(re));*/
|
|
75
|
+ $scope.questions.forEach(function(question)
|
|
76
|
+ {
|
|
77
|
+ $scope.Data.Output += question.Text + "\n";
|
|
78
|
+
|
|
79
|
+ var goodAnswersCount = 0;
|
|
80
|
+ question.Answers.forEach(function(answer)
|
|
81
|
+ {
|
|
82
|
+ if (answer.Correct) {
|
|
83
|
+ ++goodAnswersCount;
|
|
84
|
+ }
|
|
85
|
+ });
|
|
86
|
+
|
|
87
|
+ question.Answers.forEach(function(answer)
|
|
88
|
+ {
|
|
89
|
+ $scope.Data.Output += "\t" + (goodAnswersCount > 1 ? "[" : "(") + (answer.Correct ? "x" : "") +
|
|
90
|
+ (goodAnswersCount > 1 ? "]" : ")") + answer.Text + "\n";
|
|
91
|
+ });
|
|
92
|
+ $scope.Data.Output += "\n";
|
|
93
|
+ });
|
61
|
94
|
};
|
62
|
95
|
|
|
96
|
+ $scope.addMacro("\\RR", "\\mathbb{R}");
|
|
97
|
+ $scope.addMacro("\\CC", "\\mathbb{C}");
|
|
98
|
+ $scope.addMacro("\\QQ", "\\mathbb{Q}");
|
|
99
|
+ $scope.addMacro("\\di", "\\displaystyle");
|
|
100
|
+ $scope.addMacro("\\dd", "\\text{d}");
|
|
101
|
+ $scope.addMacro("<<", "«");
|
|
102
|
+ $scope.addMacro(">>", "»");
|
|
103
|
+ $scope.addMacro("<", "<");
|
|
104
|
+ $scope.addMacro(">", ">");
|
|
105
|
+ $scope.addMacro("\\\'{E}", "É");
|
|
106
|
+ $scope.addMacro("\\\'{A}", "À");
|
63
|
107
|
}]);
|