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

elements with CSS for centering questionPaper += `

${questionPaperTitle}

`; questionPaper += `
${questionPaperDescription}
`; // questionPaper += "


"; // Add a newline for separation // Process each section sections.forEach((section, sectionIndex) => { depth2=0 description_align =28; // console.log(sectionIndex); const sectionTitle = section.section_title; const modifiedSectionTitle = sectionTitle.replaceAll('

', '

');//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('

', '

', '


${modifiedSectionTitle}${sectionMark}${sectionAttempt}${indentation}${sectionDescription}`; displayQuestions(section) }); // Return the formatted question paper // console.log(questionPaper); return questionPaper; } var depth2 =0 var description_align =25; function displayQuestions(data, parentSno =''){ var questionIndentation = " ".repeat(depth2); var dataa =data.questions; dataa.forEach((question, index) =>{ var currentSno = parentSno + (index + 1) + '.'; var currentSno_length =currentSno.length-(currentSno.length/2) if (currentSno_length == 1) { description_align =25 } else if (currentSno_length == 2) { description_align =50 }else if(currentSno_length == 3){ description_align =65 }else { description_align =80 } if (question.group_title) { const questionGroupSetP = `${question.group_title}`; const questionGroupmodify =questionGroupSetP.replaceAll('

', '

') var questionGroupAttempt = `

Attempt Any : ${question.group_attempt_any}

` var questionGroupMark = `

Marks : ${question.group_marks}

` if (question.group_attempt_any === '') { questionGroupAttempt = questionGroupAttempt.replace('

', '

', '

${currentSno}) ${questionGroupmodify}${questionGroupMark}${questionGroupAttempt}
` // questionPaper += `
`; // questionPaper += `
`; questionPaper += `
${question.group_description}
`; depth2++ } else if (question.question) { const questionTex = question.question; const questionText = questionTex.replaceAll('

', '

'); 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('

', '

${currentSno}) ${convertToLatex(questionText, mathstatus)}
${questionMark}
${convertToLatex(questionDescription, mathstatus)}
`; if (question.question_type === "group") { const answers = question.answers; const alphabetOptions = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; // Define the alphabet options for (let i = 0; i < answers.length; i++) { // change the i +=2 aadhavan const optionA = alphabetOptions[i]; // const optionB = alphabetOptions[i + 1]; const answerA = answers[i] ? `${optionA}. ${convertToLatex(answers[i].choice_name, mathstatus)}` : ''; // const answerB = answers[i + 1] ? `${optionB}. ${convertToLatex(answers[i + 1].choice_name, mathstatus)}` : ''; if (multipleAnswer == 'false') { questionPaper += `
${answerA.padEnd(10)}
`; }else{ questionPaper += `
${answerA.padEnd(10)}
`; } } } } if (question.questions) { displayQuestions(question, currentSno); } }) } // Call the function and display the formatted question paper const formattedQuestionPaper = convertJSONToQuestionPaper(jsonData, 0, 1, 1); const questionPaperElement = document.getElementById("questionPaper"); questionPaperElement.innerHTML = formattedQuestionPaper; // Use innerHTML here }