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); // Check if the text contains
tags if (!/
|<\/p>/i.test(text)) { if (mathStatusBoolean) { // Use MathJax to convert the text to LaTeX const cov = MathJax.tex2chtml(text).outerHTML; return cov; } else { // Return the text as-is return text; } } else { // Return the text as-is return text; } } // Initialize the formatted question paper string let questionPaper = ""; // Function to recursively convert JSON to a formatted question paper function convertJSONToQuestionPaper(data, depth = 0, sectionIndex , questionIndex = 1) { const sections = data.sections; const questionPaperTitle = data.question_paper_title; const questionPaperDescription = data.question_paper_description; // Wrap the heading elements in
', '
');//add the id for Section Title var sectionAttempt = `
Attempt Any : ${section.section_attempt_any}
`; var sectionMark = `Marks: ${section.section_marks}
`; const sectionDescription = section.section_description; // const questions = section.questions; // Add appropriate indentation for nested sections const indentation = " ".repeat(depth); if (section.section_attempt_any === '') { sectionAttempt = sectionAttempt.replace('', '
') } if (section.section_marks === '') { sectionMark = sectionMark.replace('
', '
') } questionPaper += `${indentation}
', '
') var questionGroupAttempt = `
Attempt Any : ${question.group_attempt_any}
` var questionGroupMark = `Marks : ${question.group_marks}
` if (question.group_attempt_any === '') { questionGroupAttempt = questionGroupAttempt.replace('', '
') } if (question.group_marks === '') { questionGroupMark = questionGroupMark.replace('
', '
') } questionPaper += `
', '
'); console.log(questionText); const questionDescription = question.question_description; const mathstatus = question.is_math_enabled; var questionMark = `
Marks :${question.marks}
`; // console.log(questionMark); const multipleAnswer =question.question_sub_type; if (question.marks == '') { questionMark = questionMark.replace('', '
') } questionPaper += `