diff --git a/QuestionPaperPreview.js b/QuestionPaperPreview.js index 99402a4..ed654f5 100644 --- a/QuestionPaperPreview.js +++ b/QuestionPaperPreview.js @@ -2,6 +2,44 @@ function QuestionPaperPreview(jsonData){ // The provided JSON data // console.log(jsonData) + +// start Remove
tag + +var jsonDat = jsonData; +// Remove
tags only with
tags
+function removeEmptyPTags(htmlString) {
+ var tempdiv = document.createElement('div');
+ tempdiv.innerHTML = htmlString;
+ var paragraphs = tempdiv.querySelectorAll('p');
+
+ paragraphs.forEach(function(paragraph) {
+ if (paragraph.innerHTML.trim() === '
') {
+ paragraph.remove();
+ }
+ });
+
+ return tempdiv.innerHTML;
+}
+// Recursive function to modify HTML content in an object
+function modifyHTMLProperties(obj) {
+ for (var key in obj) {
+ if (obj.hasOwnProperty(key)) {
+ if (typeof obj[key] === 'string') {
+ // If the property is a string, modify it
+ obj[key] = removeEmptyPTags(obj[key]);
+ } else if (typeof obj[key] === 'object') {
+ // If the property is an object, recursively modify its properties
+ modifyHTMLProperties(obj[key]);
+ }
+ }
+ }
+}
+modifyHTMLProperties(jsonDat);
+
+//end Remove
tag + + + function convertToLatex(text, mathstatus) { // Parse mathstatus into a boolean const mathStatusBoolean = JSON.parse(mathstatus); @@ -25,59 +63,82 @@ function convertToLatex(text, mathstatus) { let questionPaper = ""; -function CheakQnType(question, questionIndex, depth) { +function CheakQnType(question, questionIndex, depth,nested) { const questionType = question.question_type; - if (questionType) { - processQuestion(question, questionIndex, depth); + processQuestion(question, questionIndex, depth,nested); }else { GroupQuestion(question, questionIndex, depth); } } let count =0 -function processQuestion(question, questionIndex, depth) { - const questionText = question.question; +var count1 =0 +function processQuestion(question, questionIndex, depth,nested) { + const questionTex = question.question; + const questionText = questionTex.replace('
', '
'); const questionDescription = question.question_description; const mathstatus = question.is_math_enabled; - + const questionMark = question.marks; + const multipleAnswer =question.question_sub_type; // this gives true or false to chaeck multiple answers or not // Add appropriate indentation for nested questions const questionIndentation = " ".repeat(depth + 1); - count++ - questionPaper += `
Marks :${questionMark}
Marks :${questionMark}
', '
') + count++ + questionPaper += `
Marks : ${question.group_marks}
Attempt Any : ${question.group_attempt_any}
', '
');//add the id for Section Title + + const sectionAttempt = `
Attempt Any : ${section.section_attempt_any}
`; + const sectionMark = `Marks: ${section.section_marks}
`; const sectionDescription = section.section_description; const questions = section.questions; // Add appropriate indentation for nested sections const indentation = " ".repeat(depth); - questionPaper += `${indentation}${sectionTitle}${indentation}${sectionDescription}`; + + // questionPaper += `${indentation}${sectionTitle}${sectionAttempt}${sectionMark}${indentation}${sectionDescription}`; + questionPaper += `${indentation}${modifiedSectionTitle}${sectionMark}${sectionAttempt}${indentation}${sectionDescription}`; + // Process each question in the section questions.forEach((question, questionIndex) => { @@ -108,6 +176,7 @@ function convertJSONToQuestionPaper(data, depth = 0, sectionIndex = 1, questionI }); // Return the formatted question paper + // console.log(questionPaper); return questionPaper; } diff --git a/QuestionPreview.html b/QuestionPreview.html index b47139c..bbbd0bf 100644 --- a/QuestionPreview.html +++ b/QuestionPreview.html @@ -49,8 +49,53 @@