1857 की महान क्रांति – प्रथम स्वतंत्रता संग्राम
<script>
tailwind.config = {
darkMode: 'class',
theme: {
extend: {
colors: {
brand: {
50: '#fdf2f2',
100: '#fde8e8',
500: '#991b1b', // Deep Crimson Red
600: '#7f1d1d',
700: '#581c1c',
},
amberAccent: '#d97706'
},
fontFamily: {
sans: ['Mukta', 'Poppins', 'sans-serif'],
}
}
}
}
</script>
<style>
/* Smooth transitions */
.transition-all-300 {
transition: all 0.3s ease-in-out;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
background: #991b1b;
border-radius: 4px;
}
.dark ::-webkit-scrollbar-track {
background: #1f2937;
}
.dark ::-webkit-scrollbar-thumb {
background: #f59e0b;
}
/* Highlight editable elements when active */
[contenteditable="true"] {
outline: 2px dashed #d97706;
padding: 2px 6px;
border-radius: 4px;
background-color: rgba(217, 119, 6, 0.05);
}
[contenteditable="true"]:focus {
outline: 2px solid #991b1b;
background-color: rgba(153, 27, 27, 0.08);
}
</style>
<!-- Top Navigation Bar -->
<nav class="sticky top-0 z-40 bg-brand-500 text-white shadow-lg py-3 px-4 md:px-8 flex justify-between items-center">
<div class="flex items-center space-x-3">
<button id="mobileMenuBtn" class="md:hidden text-white focus:outline-none text-2xl mr-2">
<i class="fas fa-bars"></i>
</button>
<div class="bg-amber-500 p-2 rounded-full hidden sm:block">
<i class="fas fa-landmark text-white text-lg"></i>
</div>
<div>
<span class="text-xl md:text-2xl font-bold tracking-wide">Rajasthan GK Portal</span>
<span class="text-xs block text-amber-200">ज्ञान जो सफलता दिलाए</span>
</div>
</div>
<!-- Search Bar -->
<div class="hidden lg:flex items-center bg-white/10 rounded-lg px-3 py-1.5 w-96">
<input type="text" id="globalSearch" placeholder="अध्याय या क्रांति के केंद्र खोजें..." class="bg-transparent text-white placeholder-white/70 outline-none w-full text-sm">
<i class="fas fa-search text-white/70"></i>
</div>
<!-- Utilities -->
<div class="flex items-center space-x-3 md:space-x-4">
<!-- Theme Toggle -->
<button id="themeToggle" class="p-2 rounded-full hover:bg-white/10 text-white transition-all-300" title="डार्क/लाइट मोड बदलें">
<i class="fas fa-moon text-lg" id="themeIcon"></i>
</button>
<!-- Live Edit Toggle Button -->
<button id="editModeToggle" class="flex items-center space-x-2 bg-amber-500 hover:bg-amber-600 text-white font-semibold py-1.5 px-3 rounded-lg text-sm transition-all-300 shadow-md">
<i class="fas fa-edit"></i>
<span id="editText">संपादित करें (Edit)</span>
</button>
<!-- Settings / Popup trigger -->
<button id="settingsBtn" class="p-2 rounded-full hover:bg-white/10 text-white transition-all-300" title="सेटिंग्स">
<i class="fas fa-cog text-lg animate-spin-slow"></i>
</button>
</div>
</nav>
<!-- Main Container -->
<div class="max-w-[1600px] mx-auto flex min-h-screen relative">
<!-- Sidebar - Left Chapter List (Collapsible on Mobile) -->
<aside id="sidebar" class="w-72 bg-white dark:bg-gray-800 border-r border-amber-100 dark:border-gray-700 p-4 fixed md:sticky top-[64px] h-[calc(100vh-64px)] overflow-y-auto z-30 transition-all-300 transform -translate-x-full md:translate-x-0">
<div class="flex justify-between items-center mb-4 border-b pb-2 border-amber-100 dark:border-gray-700">
<h3 class="text-lg font-bold text-brand-500 dark:text-amber-400">अध्याय सूची</h3>
<button id="closeSidebar" class="md:hidden text-gray-500 hover:text-brand-500 text-xl">
<i class="fas fa-times"></i>
</button>
</div>
<!-- Quick search for mobile side list -->
<div class="mb-4 relative md:hidden">
<input type="text" id="mobileSearch" placeholder="खोजें..." class="w-full bg-gray-100 dark:bg-gray-700 border-none rounded-lg px-3 py-2 text-sm">
</div>
<nav id="chapterNavigation" class="space-y-1.5">
<!-- Chapters will be generated dynamically here by JS -->
</nav>
<div class="mt-6 p-4 bg-brand-50 dark:bg-gray-700/50 rounded-lg border border-brand-100 dark:border-gray-700 text-center">
<p class="text-xs text-gray-500 dark:text-gray-400">पूरे अध्याय का PDF प्राप्त करें</p>
<button id="downloadPDF" class="mt-2 w-full bg-brand-500 hover:bg-brand-600 text-white text-sm py-2 px-3 rounded-md transition-all-300 shadow">
<i class="fas fa-file-pdf mr-1"></i> PDF डाउनलोड करें
</button>
</div>
</aside>
<!-- Overlay for Mobile Sidebar -->
<div id="sidebarOverlay" class="fixed inset-0 bg-black/50 z-20 hidden"></div>
<!-- Central Content Area -->
<main class="flex-1 p-4 md:p-8 overflow-x-hidden">
<!-- Hero banner (Dynamic Background & SVG Illustration) -->
<div class="relative bg-gradient-to-r from-brand-700 to-brand-500 text-white rounded-2xl p-6 md:p-10 mb-8 overflow-hidden shadow-xl">
<!-- Decorative Graphic Vector Shapes -->
<div class="absolute right-0 bottom-0 top-0 opacity-15 pointer-events-none hidden lg:block w-1/3">
<svg viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg" class="w-full h-full">
<path d="M100 0 C150 0 180 30 180 80 C180 130 150 180 100 180 C50 180 20 130 20 80 C20 30 50 0 100 0 Z" fill="currentColor"/>
</svg>
</div>
<div class="relative z-10">
<div class="inline-block bg-amber-500 text-white text-xs font-bold uppercase tracking-wider px-3 py-1 rounded-full mb-3">
भारत का प्रथम स्वतंत्रता संग्राम
</div>
<h1 class="text-3xl md:text-5xl font-extrabold mb-3 leading-tight font-sans" id="heroTitle" contenteditable="false">
1857 की महान क्रांति
</h1>
<p class="text-base md:text-xl text-amber-100 max-w-2xl font-light mb-6" id="heroSubtitle" contenteditable="false">
एक ऐसी ज्वाला जिसने स्वतंत्रता की चिंगारी को पूरे देश में फैला दिया।
</p>
<div class="flex flex-wrap gap-3">
<span class="bg-black/20 text-xs px-3 py-1.5 rounded-md border border-white/10 flex items-center">
<i class="fas fa-book-open mr-1.5 text-amber-400"></i> <span id="statChapters">10+ अध्याय</span>
</span>
<span class="bg-black/20 text-xs px-3 py-1.5 rounded-md border border-white/10 flex items-center">
<i class="fas fa-users mr-1.5 text-amber-400"></i> <span id="statLeaders">8+ प्रमुख नायक</span>
</span>
<span class="bg-black/20 text-xs px-3 py-1.5 rounded-md border border-white/10 flex items-center">
<i class="fas fa-map-marker-alt mr-1.5 text-amber-400"></i> <span id="statCenters">9+ प्रमुख केंद्र</span>
</span>
</div>
</div>
</div>
<!-- Interactive Search / Filter alert if any -->
<div id="searchAlert" class="hidden mb-6 p-3 bg-amber-100 dark:bg-amber-900/30 text-amber-800 dark:text-amber-200 rounded-lg flex justify-between items-center">
<span>खोज परिणाम सक्रिय हैं। अध्याय सूची साफ़ करने के लिए 'X' दबाएं।</span>
<button id="clearSearch" class="text-lg font-bold">×</button>
</div>
<!-- Chapter Main Viewer Card -->
<div class="bg-white dark:bg-gray-800 rounded-2xl shadow-md p-6 md:p-8 mb-8 border border-amber-100/50 dark:border-gray-700/50 transition-all-300">
<article id="activeChapterContent" class="prose prose-lg dark:prose-invert max-w-none">
<!-- Chapter content will be loaded dynamically here -->
</article>
<!-- Edit mode notification overlay -->
<div id="editModeIndicator" class="hidden mt-6 p-4 bg-amber-50 dark:bg-amber-900/10 border-l-4 border-amber-500 rounded text-sm text-amber-800 dark:text-amber-200">
<div class="flex items-center">
<i class="fas fa-info-circle mr-2 text-amber-600"></i>
<span>आप संपादन मोड में हैं। आप पृष्ठ पर किसी भी टेक्स्ट पर सीधे क्लिक करके बदलाव कर सकते हैं। संपादन पूर्ण होने पर ऊपर <strong>"संपादित करें"</strong> बटन पर पुनः क्लिक करें।</span>
</div>
</div>
</div>
<!-- Visual Causes Interactive Slider/Card Deck -->
<section class="mb-8">
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 mb-6 flex items-center">
<span class="bg-brand-100 dark:bg-gray-700 p-2 rounded-lg mr-2 inline-flex"><i class="fas fa-puzzle-piece"></i></span>
क्रांति के बहुआयामी कारण
</h2>
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
<!-- Causes Cards -->
<div class="bg-red-50 dark:bg-red-950/20 border border-red-100 dark:border-red-900/30 p-5 rounded-xl hover:shadow-md transition-all-300">
<div class="text-red-600 dark:text-red-400 text-3xl mb-3"><i class="fas fa-crown"></i></div>
<h4 class="font-bold text-lg mb-2">राजनीतिक कारण</h4>
<p class="text-sm text-gray-600 dark:text-gray-300">डलहौजी की 'लैप्स का सिद्धांत' (Doctrine of Lapse), अवध का विलय तथा मुगल सम्राट का निरंतर अपमान।</p>
</div>
<div class="bg-emerald-50 dark:bg-emerald-950/20 border border-emerald-100 dark:border-emerald-900/30 p-5 rounded-xl hover:shadow-md transition-all-300">
<div class="text-emerald-600 dark:text-emerald-400 text-3xl mb-3"><i class="fas fa-coins"></i></div>
<h4 class="font-bold text-lg mb-2">आर्थिक कारण</h4>
<p class="text-sm text-gray-600 dark:text-gray-300">कृषि पर भारी भूमि-कर, कुटीर उद्योगों का विनाश, बुनकरों का शोषण तथा संपत्ति का इंग्लैंड पलायन।</p>
</div>
<div class="bg-amber-50 dark:bg-amber-950/20 border border-amber-100 dark:border-amber-900/30 p-5 rounded-xl hover:shadow-md transition-all-300">
<div class="text-amber-600 dark:text-amber-400 text-3xl mb-3"><i class="fas fa-om"></i></div>
<h4 class="font-bold text-lg mb-2">सामाजिक-धार्मिक</h4>
<p class="text-sm text-gray-600 dark:text-gray-300">सती प्रथा उन्मूलन, ईसाई मिशनरियों का बढ़ता प्रभाव और धर्म परिवर्तन का भय।</p>
</div>
<div class="bg-blue-50 dark:bg-blue-950/20 border border-blue-100 dark:border-blue-900/30 p-5 rounded-xl hover:shadow-md transition-all-300">
<div class="text-blue-600 dark:text-blue-400 text-3xl mb-3"><i class="fas fa-shield-halved"></i></div>
<h4 class="font-bold text-lg mb-2">सैन्य व तात्कालिक</h4>
<p class="text-sm text-gray-600 dark:text-gray-300">वेतन में भेदभाव, समुद्र पार तैनाती विवाद तथा एनफील्ड राइफल के कारतूसों में चर्बी का मुद्दा।</p>
</div>
</div>
</section>
<!-- Major Revolution Centers Interactive Map Representation -->
<section class="mb-8 bg-white dark:bg-gray-800 rounded-2xl p-6 border border-amber-100 dark:border-gray-700">
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 mb-4 flex items-center">
<span class="bg-brand-100 dark:bg-gray-700 p-2 rounded-lg mr-2 inline-flex"><i class="fas fa-map-marked-alt"></i></span>
क्रांति के प्रमुख केंद्र एवं वीर नायक
</h2>
<p class="text-gray-600 dark:text-gray-400 mb-6 text-sm">नीचे दिए गए केंद्रों पर क्लिक करके संबंधित प्रमुख नायक और उनके ऐतिहासिक योगदान को विस्तार से देखें:</p>
<div class="grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-3" id="centersGrid">
<!-- Loaded dynamically via JS -->
</div>
</section>
<!-- Bottom Quote -->
<div class="bg-amber-500/10 border-l-4 border-amber-500 p-6 rounded-r-xl my-6 text-center">
<p class="text-lg md:text-xl italic text-amber-800 dark:text-amber-300 font-semibold">
"1857 की क्रांति भले ही अपने लक्ष्य में सफल न हो सकी, लेकिन इसने स्वतंत्रता की लौ को जला दिया, जिसने आगे चलकर पूरे भारत को स्वतंत्रता दिलाने का मार्ग प्रशस्त किया।"
</p>
</div>
</main>
<!-- Right Sidebar - Facts, Timeline & Live Quiz Widget -->
<aside class="w-80 bg-white dark:bg-gray-800 border-l border-amber-100 dark:border-gray-700 p-4 sticky top-[64px] h-[calc(100vh-64px)] overflow-y-auto hidden xl:block space-y-6">
<!-- Quick Facts Block -->
<div class="bg-brand-50/50 dark:bg-gray-700/50 rounded-xl p-4 border border-brand-100 dark:border-gray-700">
<h4 class="text-base font-bold text-brand-500 dark:text-amber-400 mb-3 flex items-center">
<i class="fas fa-award mr-2"></i> महत्वपूर्ण तथ्य
</h4>
<ul class="space-y-2 text-xs text-gray-700 dark:text-gray-300" id="quickFactsList">
<!-- Dynamic rendering -->
</ul>
</div>
<!-- Quiz Box -->
<div class="bg-amber-500/10 dark:bg-amber-950/20 rounded-xl p-4 border border-amber-200 dark:border-amber-900/40">
<h4 class="text-base font-bold text-amber-800 dark:text-amber-400 mb-3 flex items-center justify-between">
<span><i class="fas fa-question-circle mr-1.5"></i> क्विज़ आज़माएँ</span>
<span id="quizScore" class="bg-amber-500 text-white text-[10px] px-2 py-0.5 rounded-full">स्कोर: 0</span>
</h4>
<div id="quizWidget">
<!-- Live Question Loaded Here -->
</div>
</div>
<!-- Timeline Chronology -->
<div class="bg-gray-50 dark:bg-gray-700/30 rounded-xl p-4 border border-gray-100 dark:border-gray-700">
<h4 class="text-base font-bold text-gray-800 dark:text-gray-200 mb-3 flex items-center">
<i class="fas fa-calendar-alt mr-2 text-brand-500"></i> महत्वपूर्ण घटनाक्रम
</h4>
<div class="relative pl-4 border-l border-brand-300 space-y-4" id="timelineList">
<!-- Dynamic timeline elements loaded here -->
</div>
</div>
<!-- Quick Links -->
<div class="text-center text-xs text-gray-400 dark:text-gray-500">
<p>© 2026 Rajasthan GK Portal</p>
<p>Made with <i class="fas fa-heart text-red-500"></i> for Students</p>
</div>
</aside>
</div>
<!-- Interactive Pop-up / Modal Settings Dialog -->
<div id="settingsModal" class="fixed inset-0 z-50 flex items-center justify-center hidden">
<div class="absolute inset-0 bg-black/60 backdrop-blur-sm"></div>
<div class="bg-white dark:bg-gray-800 rounded-2xl w-full max-w-md p-6 relative z-10 shadow-2xl mx-4 transform transition-all">
<button id="closeModal" class="absolute top-4 right-4 text-gray-500 hover:text-brand-500 text-2xl">
×
</button>
<h3 class="text-xl font-bold mb-4 text-brand-500 dark:text-amber-400 flex items-center">
<i class="fas fa-sliders-h mr-2"></i> पोर्टल सेटिंग्स एवं विकल्प
</h3>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium mb-1.5">फ़ॉन्ट आकार बदलें (Readability):</label>
<div class="flex space-x-2">
<button onclick="changeFontSize('small')" class="flex-1 py-1 px-3 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 rounded text-sm font-medium">छोटा</button>
<button onclick="changeFontSize('medium')" class="flex-1 py-1 px-3 bg-brand-500 text-white rounded text-sm font-medium">सामान्य</button>
<button onclick="changeFontSize('large')" class="flex-1 py-1 px-3 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 rounded text-sm font-medium">बड़ा</button>
</div>
</div>
<div>
<label class="block text-sm font-medium mb-1.5">नया अध्याय जोड़ें:</label>
<button onclick="addNewChapterModal()" class="w-full bg-emerald-500 hover:bg-emerald-600 text-white py-2 px-4 rounded-lg font-semibold text-sm transition-all-300">
<i class="fas fa-plus-circle mr-1"></i> नया कस्टम अध्याय जोड़ें
</button>
</div>
<div class="border-t border-gray-100 dark:border-gray-700 pt-4">
<label class="block text-sm font-medium mb-1.5">कंटेंट रीसेट (Reset Content):</label>
<p class="text-xs text-gray-500 mb-2">यदि आपने कंटेंट एडिट किया है और वापस मूल पाठ पर जाना चाहते हैं:</p>
<button onclick="resetToOriginalData()" class="w-full bg-red-600 hover:bg-red-700 text-white py-2 px-4 rounded-lg font-semibold text-sm transition-all-300">
<i class="fas fa-undo mr-1"></i> मूल डेटा रीसेट करें
</button>
</div>
</div>
</div>
</div>
<!-- Add Chapter Popup Modal -->
<div id="addChapterModal" class="fixed inset-0 z-50 flex items-center justify-center hidden">
<div class="absolute inset-0 bg-black/60 backdrop-blur-sm"></div>
<div class="bg-white dark:bg-gray-800 rounded-2xl w-full max-w-xl p-6 relative z-10 shadow-2xl mx-4">
<button onclick="toggleAddModal(false)" class="absolute top-4 right-4 text-gray-500 hover:text-brand-500 text-2xl">×</button>
<h3 class="text-xl font-bold mb-4 text-emerald-500"><i class="fas fa-plus-circle mr-2"></i> नया अध्याय बनाएं</h3>
<div class="space-y-4">
<div>
<label class="block text-sm font-medium mb-1">अध्याय का शीर्षक:</label>
<input type="text" id="newChapTitle" placeholder="उदाहरण: राजस्थान में क्रांति के मुख्य प्रभाव" class="w-full bg-gray-100 dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg p-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500">
</div>
<div>
<label class="block text-sm font-medium mb-1">अध्याय की विषय वस्तु (Content - HTML सपोर्टेड):</label>
<textarea id="newChapContent" rows="8" placeholder="यहाँ अध्याय की पूरी व्याख्या विस्तार से लिखें..." class="w-full bg-gray-100 dark:bg-gray-700 border border-gray-300 dark:border-gray-600 rounded-lg p-2 text-sm focus:outline-none focus:ring-2 focus:ring-emerald-500"></textarea>
</div>
<button onclick="saveNewChapter()" class="w-full bg-emerald-500 hover:bg-emerald-600 text-white py-2 px-4 rounded-lg font-bold">सहेजें (Save Chapter)</button>
</div>
</div>
</div>
<!-- Footer Mobile View Utilities -->
<footer class="xl:hidden bg-white dark:bg-gray-800 border-t border-amber-100 dark:border-gray-700 p-4 text-center text-xs space-y-2 mt-8">
<div class="flex justify-center space-x-4 mb-2">
<button onclick="openTab('quiz')" class="bg-amber-500 text-white px-3 py-1.5 rounded-full"><i class="fas fa-question mr-1"></i> लाइव क्विज़</button>
<button onclick="toggleSidebar(true)" class="bg-brand-500 text-white px-3 py-1.5 rounded-full"><i class="fas fa-book mr-1"></i> अध्याय सूची</button>
</div>
<p class="text-gray-400 dark:text-gray-500">© 2026 Rajasthan GK Portal | ज्ञान जो सफलता दिलाए</p>
</footer>
<!-- Database Script Area -->
<script>
// Core book database extracted dynamically from the PDF upload
const originalBookData = {
chapters: [
{
id: "chap-1",
title: "अध्याय-1: 1857 की महान क्रांति - परिचय",
summary: "भारत के इतिहास में वर्ष 1857 एक ऐसा मोड़ था जिसने अंग्रेजी शासन की नींव को पहली बार गंभीर चुनौती दी।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">परिचय</h2>
<p class="leading-relaxed mb-4">भारत के इतिहास में वर्ष 1857 एक ऐसा मोड़ था जिसने अंग्रेजी शासन की नींव को पहली बार गंभीर चुनौती दी। यह घटना केवल कुछ सैनिकों के असंतोष तक सीमित नहीं थी, बल्कि लंबे समय से पनप रहे राजनीतिक, आर्थिक, सामाजिक, धार्मिक और सैन्य असंतोष का परिणाम थी। इसलिए इतिहास में इसे विभिन्न नामों से जाना जाता है, जैसे- <strong>1857 का विद्रोह, प्रथम स्वतंत्रता संग्राम, सिपाही विद्रोह तथा महान क्रांति।</strong></p>
<p class="leading-relaxed mb-4">18वीं शताब्दी के मध्य में प्लासी (1757) और बक्सर (1764) के युद्धों के बाद ईस्ट इंडिया कंपनी ने भारत में अपना प्रभाव लगातार बढ़ाया। धीरे-धीरे उसने भारतीय राज्यों की स्वतंत्रता समाप्त कर दी, पारंपरिक शासन व्यवस्था को कमजोर किया और अपनी प्रशासनिक नीतियों के माध्यम से पूरे देश पर नियंत्रण स्थापित करना शुरू कर दिया। अंग्रेजों का उद्देश्य केवल शासन करना नहीं था, बल्कि भारत के संसाधनों का अधिकतम दोहन करना भी था। इसके कारण किसानों, शिल्पकारों, व्यापारियों, सैनिकों, राजाओं, जमींदारों तथा सामान्य जनता में व्यापक असंतोष फैल गया।</p>
<div class="my-6 p-4 bg-brand-50 dark:bg-gray-700 rounded-xl border-l-4 border-brand-500">
<h4 class="font-bold text-brand-700 dark:text-amber-300 mb-1">विशेष तथ्य:</h4>
<p class="text-sm">अंग्रेजी शासन की विस्तारवादी नीति ने अनेक भारतीय रियासतों का अस्तित्व समाप्त कर दिया। "लैप्स का सिद्धांत" (Doctrine of Lapse) और अन्य विलय नीतियों के माध्यम से कई राज्यों को कंपनी के अधीन मिला लिया गया।</p>
</div>
<p class="leading-relaxed mb-4">सामाजिक और धार्मिक क्षेत्र में भी अंग्रेजों की नीतियों ने लोगों में संदेह और असुरक्षा की भावना पैदा की। अनेक भारतीयों को यह भय था कि अंग्रेज उनकी धार्मिक परंपराओं और सामाजिक व्यवस्था को समाप्त करना चाहते हैं। सेना के भारतीय सैनिक भी वेतन, पदोन्नति, भेदभाव तथा धार्मिक भावनाओं की उपेक्षा से असंतुष्ट थे।</p>
<p class="leading-relaxed mb-4">इन सभी परिस्थितियों के बीच 1857 में एनफील्ड राइफल के कारतूसों से जुड़ा विवाद तत्कालीन चिंगारी सिद्ध हुआ। सैनिकों को ऐसे कारतूसों का उपयोग करना पड़ता था जिन्हें दाँतों से काटना आवश्यक था। यह अफवाह फैल गई कि इन कारतूसों पर गाय और सूअर की चर्बी लगी हुई है। इससे हिंदू और मुस्लिम दोनों सैनिकों की धार्मिक भावनाएँ आहत हुईं और व्यापक विरोध शुरू हो गया।</p>
<p class="leading-relaxed mb-4">29 मार्च 1857 को बैरकपुर छावनी में मंगल पांडे ने अंग्रेज अधिकारियों के विरुद्ध विद्रोह का बिगुल फूंका। इसके बाद 10 मई 1857 को मेरठ से व्यापक विद्रोह प्रारंभ हुआ, जिसने शीघ्र ही दिल्ली, कानपुर, झाँसी, लखनऊ, बरेली, बिहार और मध्य भारत सहित अनेक क्षेत्रों को अपनी चपेट में ले लिया। दिल्ली पहुँचकर विद्रोहियों ने बहादुर शाह ज़फ़र को भारत का सम्राट घोषित किया, जिससे इस आंदोलन को एक राजनीतिक नेतृत्व भी प्राप्त हुआ।</p>
`
},
{
id: "chap-2",
title: "अध्याय-2: राजनीतिक एवं प्रशासनिक कारण",
summary: "अंग्रेजों की साम्राज्यवादी एवं लैप्स की नीतियों से भारतीय शासक वर्ग का गहरा रोष।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">राजनीतिक एवं प्रशासनिक कारण</h2>
<p class="leading-relaxed mb-4">1857 की क्रांति के पीछे अनेक कारण थे, किंतु उनमें राजनीतिक और प्रशासनिक कारण सबसे अधिक प्रभावशाली माने जाते हैं। अंग्रेजों ने भारत में अपने शासन का विस्तार केवल युद्धों के माध्यम से ही नहीं किया, बल्कि अनेक ऐसी नीतियाँ अपनाईं जिनसे भारतीय राज्यों की स्वतंत्रता समाप्त होती चली गई। इन नीतियों के कारण राजा, नवाब, सामंत, सैनिक और सामान्य जनता सभी वर्गों में असंतोष बढ़ने लगा। धीरे-धीरे यह असंतोष इतना व्यापक हो गया कि 1857 में एक बड़े विद्रोह का रूप ले लिया।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">1. लॉर्ड डलहौजी की विस्तारवादी नीति</h3>
<p class="leading-relaxed mb-4">1848 से 1856 तक भारत के गवर्नर-जनरल रहे लॉर्ड डलहौजी ने अंग्रेजी शासन का विस्तार अपनी सर्वोच्च प्राथमिकता बनाया। उनका विश्वास था कि पूरे भारत को अंग्रेजी शासन के अधीन लाना आवश्यक है। इसी उद्देश्य से उन्होंने अनेक भारतीय राज्यों को विभिन्न बहानों से कंपनी में मिला लिया।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">2. लैप्स का सिद्धांत (Doctrine of Lapse)</h3>
<p class="leading-relaxed mb-4">डलहौजी द्वारा अपनाई गई सबसे विवादास्पद नीति "लैप्स का सिद्धांत" थी। इस सिद्धांत के अनुसार यदि किसी राज्य का शासक बिना प्राकृतिक उत्तराधिकारी (जैविक पुत्र) के मर जाता था, तो उसका राज्य ईस्ट इंडिया कंपनी के अधीन चला जाता था। दत्तक पुत्र को उत्तराधिकारी के रूप में मान्यता नहीं दी जाती थी। यह नीति भारतीय परंपराओं के विपरीत थी, क्योंकि भारत में दत्तक पुत्र को वास्तविक उत्तराधिकारी माना जाता था।</p>
<div class="my-4 bg-gray-50 dark:bg-gray-700/50 p-4 rounded-lg">
<p class="font-semibold mb-2">इस नीति के आधार पर विलीन किए गए राज्य:</p>
<ul class="list-disc pl-5 space-y-1 text-sm">
<li>सतारा (1848)</li>
<li>जैतपुर (1849)</li>
<li>संभलपुर (1849)</li>
<li>उदयपुर (मध्य भारत)</li>
<li>झाँसी (1854)</li>
<li>नागपुर (1854)</li>
</ul>
</div>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">3. अवध का विलय</h3>
<p class="leading-relaxed mb-4">1856 में अंग्रेजों ने अवध को "कुशासन" का आरोप लगाकर अपने अधीन कर लिया। नवाब वाजिद अली शाह को सत्ता से हटाकर कलकत्ता भेज दिया गया। अवध केवल एक राज्य नहीं था, बल्कि उत्तर भारत का प्रमुख सांस्कृतिक और राजनीतिक केंद्र भी था। उसके विलय से लाखों सैनिक, दरबारी, अधिकारी, कलाकार और कारीगर बेरोजगार हो गए।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">4. मुगल सम्राट का अपमान</h3>
<p class="leading-relaxed mb-4">यद्यपि मुगल साम्राज्य केवल नाममात्र का रह गया था, फिर भी भारतीय जनता के मन में मुगल सम्राट के प्रति सम्मान बना हुआ था। अंग्रेजों ने धीरे-धीरे मुगल सम्राट की प्रतिष्ठा समाप्त करने का प्रयास किया। यह घोषणा की गई कि बहादुर शाह ज़फ़र के बाद उनके उत्तराधिकारियों को लाल किला छोड़ना होगा और उन्हें केवल एक सामान्य व्यक्ति की तरह रहने के लिए बाध्य किया जाएगा।</p>
`
},
{
id: "chap-3",
title: "अध्याय-3: आर्थिक कारण",
summary: "कृषि और व्यापार में अंग्रेजों के औपनिवेशिक शोषण से भारतीय अर्थव्यवस्था का विनाश।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">आर्थिक कारण</h2>
<p class="leading-relaxed mb-4">1857 की महान क्रांति के पीछे आर्थिक कारण अत्यंत महत्वपूर्ण थे। अंग्रेजों का प्रमुख उद्देश्य भारत पर शासन करके यहाँ के प्राकृतिक संसाधनों, कृषि उत्पादन और व्यापार से अधिक से अधिक लाभ कमाना था। उनकी आर्थिक नीतियाँ भारतीय जनता के हितों के बजाय ब्रिटिश उद्योगों और व्यापारियों के लाभ के लिए बनाई गई थीं।</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 my-6">
<div class="bg-amber-50 dark:bg-gray-700/40 p-4 rounded-xl border border-amber-100">
<h4 class="font-bold text-brand-600 dark:text-amber-300 mb-2">भारतीय संपत्ति का निरंतर दोहन</h4>
<p class="text-sm">भारत की आय का बड़ा भाग वेतन, पेंशन, सैन्य खर्च और व्यापारिक लाभ के रूप में सीधे इंग्लैंड भेजा जाता था (Drain of Wealth)।</p>
</div>
<div class="bg-amber-50 dark:bg-gray-700/40 p-4 rounded-xl border border-amber-100">
<h4 class="font-bold text-brand-600 dark:text-amber-300 mb-2">कृषि पर अत्यधिक करों का बोझ</h4>
<p class="text-sm">किसानों को अपनी उपज का बड़ा हिस्सा लगान के रूप में देना पड़ता था। अकाल और सूखे में भी कर राहत नहीं मिलती थी।</p>
</div>
</div>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">परंपरागत उद्योगों और हस्तशिल्प का पतन</h3>
<p class="leading-relaxed mb-4">औद्योगिक क्रांति के बाद इंग्लैंड में मशीनों से बने सामान को भारत में बेहद कम आयात शुल्क पर बेचा गया, जबकि भारतीय पारंपरिक हस्तशिल्प पर भारी कर लादे गए। इस असमान प्रतिस्पर्धा के कारण भारत का प्रसिद्ध वस्त्र उद्योग नष्ट हो गया। लाखों बुनकर और शिल्पकार बेरोजगार होकर भुखमरी की कगार पर पहुँच गए।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">नकदी फसलों की खेती को बढ़ावा</h3>
<p class="leading-relaxed mb-4">अंग्रेजों ने किसानों को खाद्यान्न फसलों के स्थान पर नील, कपास, अफीम जैसी नकदी फसलें उगाने के लिए मजबूर किया। इससे खाद्यान्न संकट गहरा गया और भयानक अकालों की पृष्ठभूमि तैयार हुई।</p>
`
},
{
id: "chap-4",
title: "अध्याय-4: सामाजिक एवं धार्मिक कारण",
summary: "भारतीय संस्कृति, सती प्रथा, विधवा विवाह सुधारों को लोगों द्वारा धर्म में हस्तक्षेप के रूप में देखना।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">सामाजिक एवं धार्मिक कारण</h2>
<p class="leading-relaxed mb-4">अंग्रेजों की सामाजिक एवं धार्मिक नीतियों ने भी भारतीय समाज में गहरा असंतोष उत्पन्न किया। भारत एक ऐसा देश था जहाँ धर्म, परंपराएँ, रीति-रिवाज और सामाजिक मान्यताएँ लोगों के जीवन का अभिन्न हिस्सा थीं। अंग्रेजी शासन के दौरान अनेक ऐसे परिवर्तन किए गए जिनसे लोगों को यह आशंका होने लगी कि उनकी संस्कृति, धर्म और सामाजिक पहचान खतरे में पड़ सकती है।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">1. धार्मिक मामलों में हस्तक्षेप और धर्म परिवर्तन का भय</h3>
<p class="leading-relaxed mb-4">ईसाई मिशनरियों की तीव्र गतिविधियों, स्कूलों तथा अस्पतालों में उनके प्रचार और सरकारी संरक्षण के कारण आम भारतीयों में यह दृढ़ विश्वास बन गया कि अंग्रेजी सरकार का अंतिम उद्देश्य सभी का धर्म परिवर्तन कराना है।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">2. सामाजिक सुधारों को लेकर संदेह</h3>
<p class="leading-relaxed mb-4">सती प्रथा निषेध अधिनियम (1829) और हिंदू विधवा पुनर्विवाह अधिनियम (1856) जैसे प्रगतिशील सुधार आधुनिक दृष्टि से अत्यंत महत्वपूर्ण थे, परंतु उस समय के रूढ़िवादी भारतीय समाज ने इसे अपनी सदियों पुरानी धार्मिक व सामाजिक व्यवस्था में विदेशी प्रहार और बाहरी हस्तक्षेप के रूप में देखा।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">3. समुद्र पार यात्रा का विवाद</h3>
<p class="leading-relaxed mb-4">उस समय हिंदू समाज में समुद्र पार यात्रा को धर्म भ्रष्ट होने के समान माना जाता था। जब सैनिकों को विदेशों में सैन्य अभियानों के लिए भेजने का प्रयास किया गया, तो सैनिकों ने इसे अपनी धार्मिक परंपराओं के विरुद्ध माना जिससे सेना में तीव्र असंतोष फैल गया।</p>
`
},
{
id: "chap-5",
title: "अध्याय-5: सैन्य कारण एवं तात्कालिक कारण",
summary: "सैनिकों में भेदभाव, कम वेतन तथा नई एनफील्ड राइफल के कारतूसों में गाय-सूअर की चर्बी की अफवाह।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">सैन्य कारण एवं तात्कालिक कारण</h2>
<p class="leading-relaxed mb-4">विद्रोह की वास्तविक शुरुआत सेना से हुई, इसलिए सैन्य कारणों को अत्यंत महत्वपूर्ण माना जाता है। ईस्ट इंडिया कंपनी की सेना में भारतीय सैनिकों की संख्या अंग्रेज सैनिकों की तुलना में बहुत अधिक थी। फिर भी अधिकार, सम्मान और सुविधाएँ केवल अंग्रेज अधिकारियों को मिलती थीं।</p>
<ul class="list-disc pl-6 space-y-2 mb-6">
<li><strong>वेतन एवं भत्तों में असमानता:</strong> समान पद और कार्य के बावजूद भारतीय सैनिकों को अंग्रेज सैनिकों से बहुत कम वेतन मिलता था।</li>
<li><strong>पदोन्नति में भेदभाव:</strong> भारतीय सैनिकों के लिए सूबेदार से ऊपर के पद तक पहुँचना असंभव था।</li>
<li><strong>धार्मिक भावनाओं की उपेक्षा:</strong> दाढ़ी रखने, तिलक लगाने या पगड़ी पहनने पर प्रतिबंध।</li>
</ul>
<h3 class="text-xl font-bold text-brand-500 dark:text-amber-400 border-t pt-4 mb-2">तात्कालिक कारण – एनफील्ड राइफल और कारतूस विवाद</h3>
<p class="leading-relaxed mb-4">1856-57 में अंग्रेजी सेना में नई एनफील्ड राइफल का प्रयोग शुरू किया गया। इस राइफल के कारतूसों का उपयोग करने से पहले दांतों से काटना पड़ता था। इसी समय यह अफवाह उड़ गई कि इन कारतूसों में <strong>गाय और सूअर की चर्बी</strong> लगी हुई है। गाय हिंदुओं के लिए पूज्य थी और सूअर मुस्लिमों के लिए अपवित्र। इससे हिंदू और मुस्लिम सैनिकों की धार्मिक भावनाओं को भारी ठेस पहुँची।</p>
<div class="my-6 p-4 bg-red-50 dark:bg-red-950/20 border-l-4 border-red-600 rounded">
<h4 class="font-bold text-red-700 dark:text-red-300">क्रांति की प्रथम चिंगारी - मंगल पांडे</h4>
<p class="text-sm mt-1">29 मार्च 1857 को बैरकपुर छावनी में सैनिक मंगल पांडे ने चर्बी वाले कारतूसों के विरोध में ब्रिटिश अधिकारी पर गोली चलाकर विद्रोह की घोषणा कर दी। उन्हें 8 अप्रैल 1857 को फाँसी दे दी गई।</p>
</div>
`
},
{
id: "chap-6",
title: "अध्याय-6: 1857 की क्रांति का विस्तार एवं प्रमुख केंद्र",
summary: "मेरठ, दिल्ली, कानपुर, झाँसी, लखनऊ, बिहार तथा अन्य क्रांति केंद्रों का विस्तृत विवरण।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">क्रांति का विस्तार एवं प्रमुख केंद्र</h2>
<p class="leading-relaxed mb-4">10 मई 1857 को मेरठ से प्रारंभ हुआ सैनिक विद्रोह कुछ ही दिनों में उत्तर और मध्य भारत के अनेक क्षेत्रों में फैल गया। शीघ्र ही इसमें राजा, किसान, जमींदार और सामान्य नागरिक भी शामिल हो गए।</p>
<div class="overflow-x-auto my-6">
<table class="min-w-full bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg overflow-hidden">
<thead class="bg-brand-500 text-white">
<tr>
<th class="py-2.5 px-4 text-left">विद्रोह का क्षेत्र</th>
<th class="py-2.5 px-4 text-left">प्रमुख विद्रोही नेता</th>
<th class="py-2.5 px-4 text-left">मुख्य योगदान व तथ्य</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200 dark:divide-gray-700 text-sm">
<tr>
<td class="py-2.5 px-4 font-bold">दिल्ली</td>
<td class="py-2.5 px-4">बहादुर शाह ज़फ़र & बख्त खां</td>
<td class="py-2.5 px-4">प्रतीकात्मक रूप से भारत का सम्राट घोषित।</td>
</tr>
<tr>
<td class="py-2.5 px-4 font-bold">कानपुर</td>
<td class="py-2.5 px-4">नाना साहब & तात्या टोपे</td>
<td class="py-2.5 px-4">पेंशन रोकने के विरोध में संघर्ष, तात्या टोपे का गुरिल्ला युद्ध।</td>
</tr>
<tr>
<td class="py-2.5 px-4 font-bold">झाँसी</td>
<td class="py-2.5 px-4">रानी लक्ष्मीबाई</td>
<td class="py-2.5 px-4">अद्वितीय साहस और वीरता के साथ अंग्रेजों से ऐतिहासिक युद्ध।</td>
</tr>
<tr>
<td class="py-2.5 px-4 font-bold">लखनऊ (अवध)</td>
<td class="py-2.5 px-4">बेगम हज़रत महल</td>
<td class="py-2.5 px-4">बिरजिस कद्र को शासक घोषित कर अंग्रेजों की लखनऊ रेजीडेंसी घेरी।</td>
</tr>
<tr>
<td class="py-2.5 px-4 font-bold">बिहार (जगदीशपुर)</td>
<td class="py-2.5 px-4">बाबू कुंवर सिंह</td>
<td class="py-2.5 px-4">80 वर्ष की उम्र में भी अंग्रेजों के विरुद्ध बेजोड़ सैन्य रण-कौशल।</td>
</tr>
</tbody>
</table>
</div>
`
},
{
id: "chap-7",
title: "अध्याय-7: 1857 की क्रांति का स्वरूप",
summary: "इतिहासकारों के विभिन्न मत - सिपाही विद्रोह, सामंतों का विद्रोह, या प्रथम स्वतंत्रता संग्राम।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">क्रांति का स्वरूप</h2>
<p class="leading-relaxed mb-4">1857 के आंदोलन के वास्तविक स्वरूप को लेकर इतिहासकारों में लंबे समय से वैचारिक मतभेद रहे हैं। इसके विभिन्न आयामों को इस प्रकार समझा जा सकता है:</p>
<div class="space-y-4 my-6">
<div class="border-l-4 border-amber-500 pl-4">
<h4 class="font-bold text-lg">क्या यह केवल सिपाही विद्रोह था?</h4>
<p class="text-sm text-gray-600 dark:text-gray-300">ब्रिटिश इतिहासकारों (जैसे लॉरेंस और सीले) ने इसे केवल एक संकीर्ण सिपाही विद्रोह माना। लेकिन यह दृष्टिकोण एकांगी है क्योंकि विद्रोह जल्द ही नागरिक आबादी में फैल गया था।</p>
</div>
<div class="border-l-4 border-amber-500 pl-4">
<h4 class="font-bold text-lg">क्या यह सामंतवादी प्रतिक्रिया थी?</h4>
<p class="text-sm text-gray-600 dark:text-gray-300">कुछ विद्वानों का मानना है कि विस्थापित राजाओं और ज़मींदारों ने अपने खोए हुए विशेषाधिकारों को पुनः प्राप्त करने के लिए इसे हवा दी।</p>
</div>
<div class="border-l-4 border-amber-500 pl-4">
<h4 class="font-bold text-lg">भारत का प्रथम स्वतंत्रता संग्राम</h4>
<p class="text-sm text-gray-600 dark:text-gray-300"><strong>विनायक दामोदर सावरकर</strong> ने अपनी पुस्तक "The Indian War of Independence, 1857" में इसे भारत का पहला नियोजित स्वतंत्रता संघर्ष बताया। यह मत वर्तमान में सबसे अधिक स्वीकार किया जाता है।</p>
</div>
</div>
`
},
{
id: "chap-8",
title: "अध्याय-8: क्रांति की असफलता के कारण",
summary: "संगठित नेतृत्व, पूर्व योजना, आधुनिक हथियार और पूरे देश के समर्थन के अभाव में क्रांति की असफलता।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">क्रांति की असफलता के कारण</h2>
<p class="leading-relaxed mb-4">1857 की क्रांति ने ब्रिटिश शासन को हिला तो दिया, परंतु कुछ महत्वपूर्ण कमियों के कारण यह सफल नहीं हो सकी:</p>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 my-4 text-sm">
<div class="p-3 bg-red-50/50 dark:bg-gray-700/50 rounded border-l-2 border-red-500">
<strong>1. संगठित और केंद्रीय नेतृत्व का अभाव:</strong> बहादुर शाह जफर बूढ़े थे और सभी विद्रोही सेनापतियों में आपसी तालमेल की भारी कमी थी।
</div>
<div class="p-3 bg-red-50/50 dark:bg-gray-700/50 rounded border-l-2 border-red-500">
<strong>2. समय से पूर्व विद्रोह होना:</strong> निर्धारित तिथि से पहले मेरठ में क्रांति भड़कने से अंग्रेजों को संभलने का पूरा समय मिल गया।
</div>
<div class="p-3 bg-red-50/50 dark:bg-gray-700/50 rounded border-l-2 border-red-500">
<strong>3. सीमित भौगोलिक विस्तार:</strong> विद्रोह मुख्य रूप से उत्तर-मध्य भारत तक रहा; दक्षिण भारत, पंजाब और बंगाल शांत रहे।
</div>
<div class="p-3 bg-red-50/50 dark:bg-gray-700/50 rounded border-l-2 border-red-500">
<strong>4. भारतीय राजाओं की गद्दारी:</strong> ग्वालियर के सिंधिया, हैदराबाद के निजाम, कश्मीर और नेपाल के शासकों ने अंग्रेजों की भरपूर सहायता की।
</div>
<div class="p-3 bg-red-50/50 dark:bg-gray-700/50 rounded border-l-2 border-red-500">
<strong>5. आधुनिक संसाधनों की कमी:</strong> अंग्रेजों के पास उन्नत बंदूकें, रेलवे और टेलीग्राफ थे, जिससे वे तेजी से सैनिक भेज पाते थे।
</div>
</div>
`
},
{
id: "chap-9",
title: "अध्याय-9: क्रांति के परिणाम एवं प्रभाव",
summary: "ईस्ट इंडिया कंपनी के शासन का अंत और ब्रिटिश क्राउन का प्रत्यक्ष नियंत्रण।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">क्रांति के परिणाम एवं प्रभाव</h2>
<p class="leading-relaxed mb-4">यद्यपि तात्कालिक रूप से क्रांति असफल रही, लेकिन इसके दूरगामी परिणाम बेहद क्रांतिकारी सिद्ध हुए:</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">1. ईस्ट इंडिया कंपनी के शासन का अंत</h3>
<p class="leading-relaxed mb-4"><strong>भारत शासन अधिनियम 1858</strong> पारित करके कंपनी के शासन को समाप्त कर दिया गया और भारत का प्रशासन सीधे ब्रिटिश सम्राट (क्राउन) के अधीन कर दिया गया। गवर्नर जनरल का पदनाम बदलकर 'वायसराय' कर दिया गया (लॉर्ड कैनिंग प्रथम वायसराय बने)।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">2. महारानी विक्टोरिया की घोषणा (1 नवंबर 1858)</h3>
<p class="leading-relaxed mb-4">इलाहाबाद दरबार में लॉर्ड कैनिंग ने महारानी की उद्घोषणा पढ़ी जिसमें भारतीय राज्यों के साथ संधियों का सम्मान करने, धार्मिक मामलों में दखल न देने और डलहौजी की विस्तारवादी नीतियों को वापस लेने का वादा किया गया।</p>
<h3 class="text-xl font-bold text-gray-800 dark:text-gray-100 mt-6 mb-2">3. सैन्य संगठन में 'फूट डालो और राज करो'</h3>
<p class="leading-relaxed mb-4">सेना का पुनर्गठन पील कमीशन की सिफारिशों पर किया गया। यूरोपीय सैनिकों का अनुपात बढ़ाया गया, तोपखाने को ब्रिटिश नियंत्रण में रखा गया और सैनिकों को जाति-धर्म के आधार पर बांट दिया गया।</p>
`
},
{
id: "chap-10",
title: "अध्याय-10: इतिहासकारों के मत एवं महत्वपूर्ण तथ्य",
summary: "विभिन्न प्रख्यात विद्वानों के दृष्टिकोण और परीक्षा उपयोगी बिंदु।",
content: `
<h2 class="text-2xl font-bold text-brand-500 dark:text-amber-400 border-b pb-2 mb-4">इतिहासकारों के प्रमुख मत</h2>
<div class="space-y-3 mb-6">
<p class="border-b pb-2">"यह सन 1857 का विद्रोह न तो पहला, न ही राष्ट्रीय और न ही स्वतंत्रता संग्राम था।" <br><span class="text-xs text-amber-600 dark:text-amber-400 font-bold">— आर. सी. मजूमदार</span></p>
<p class="border-b pb-2">"यह सभ्यता और बर्बरता के बीच का संघर्ष था।" <br><span class="text-xs text-amber-600 dark:text-amber-400 font-bold">— टी. आर. होम्स</span></p>
<p class="border-b pb-2">"यह धर्मांधों का ईसाइयों के विरुद्ध एक युद्ध था।" <br><span class="text-xs text-amber-600 dark:text-amber-400 font-bold">— एल. ई. आर. रीज</span></p>
<p class="border-b pb-2">"यह विद्रोह हिंदू-मुस्लिम साजिश का परिणाम था।" <br><span class="text-xs text-amber-600 dark:text-amber-400 font-bold">— जेम्स ऑउटराम एवं डब्ल्यू. टेलर</span></p>
</div>
<h3 class="text-xl font-bold text-brand-500 dark:text-amber-400 mt-6 mb-2">परीक्षा उपयोगी क्विक वन-लाइनर</h3>
<ul class="list-disc pl-6 space-y-1.5 text-sm">
<li>1857 की क्रांति के समय भारत के गवर्नर जनरल <strong>लॉर्ड कैनिंग</strong> थे।</li>
<li>क्रांति के समय ब्रिटेन के प्रधानमंत्री <strong>पामर्स्टन</strong> थे।</li>
<li>क्रांति का प्रतीक चिन्ह <strong>'कमल का फूल और रोटी'</strong> था।</li>
<li>क्रांति के समय इलाहाबाद को आपातकालीन मुख्यालय बनाया गया था।</li>
</ul>
`
}
],
quickFacts: [
"प्रथम शहीद - मंगल पांडे (29 मार्च 1857 बैरकपुर)",
"विद्रोह का प्रारंभ - मेरठ (10 मई 1857)",
"दिल्ली पर अधिकार - 11 मई 1857",
"ईस्ट इंडिया कंपनी का अंत - 1858",
"भारत शासन अधिनियम - 1858",
"प्रथम वायसराय - लॉर्ड कैनिंग"
],
timeline: [
{ date: "29 मार्च 1857", text: "मंगल पांडे का विद्रोह (बैरकपुर)" },
{ date: "10 मई 1857", text: "मेरठ छावनी में भारतीय सैनिकों का ऐतिहासिक विद्रोह" },
{ date: "11 मई 1857", text: "विद्रोहियों का दिल्ली पर अधिकार व बहादुर शाह सम्राट घोषित" },
{ date: "जून 1858", text: "लखनऊ और झाँसी पर पुनः अंग्रेजों का पूर्ण नियंत्रण" },
{ date: "18 जून 1858", text: "रानी लक्ष्मीबाई वीरगति को प्राप्त हुईं" },
{ date: "1 नवंबर 1858", text: "महारानी विक्टोरिया की घोषणा (ईस्ट इंडिया कंपनी का अंत)" }
],
quiz: [
{
q: "1857 की क्रांति का प्रारंभ कहाँ से हुआ था?",
options: ["दिल्ली", "मेरठ", "कानपुर", "लखनऊ"],
correct: 1
},
{
q: "1857 के विद्रोह के समय भारत के गवर्नर-जनरल कौन थे?",
options: ["लॉर्ड डलहौजी", "लॉर्ड कर्जन", "लॉर्ड कैनिंग", "लॉर्ड बेंटिक"],
correct: 2
},
{
q: "क्रांति का प्रतीक चिन्ह क्या निर्धारित किया गया था?",
options: ["कमल और रोटी", "तिरंगा", "तलवार", "मशाल"],
correct: 0
},
{
q: "बिहार के जगदीशपुर में विद्रोह का नेतृत्व किसने किया था?",
options: ["नाना साहब", "कुंवर सिंह", "तात्या टोपे", "बख्त खां"],
correct: 1
}
],
centers: [
{ name: "दिल्ली", leader: "बहादुर शाह ज़फ़र", desc: "सम्राट घोषित कर नेतृत्व संभाला।" },
{ name: "कानपुर", leader: "नाना साहब और तात्या टोपे", desc: "पेंशन और संप्रभुता के लिए विद्रोह।" },
{ name: "लखनऊ", leader: "बेगम हज़रत महल", desc: "अवध के विलय का डटकर मुकाबला किया।" },
{ name: "झाँसी", leader: "रानी लक्ष्मीबाई", desc: "मातृभूमि की रक्षा के लिए अदम्य साहस।" },
{ name: "बिहार (जगदीशपुर)", leader: "बाबू कुंवर सिंह", desc: "असीमित शौर्य व गोरिल्ला युद्ध।" }
]
};
// Initialize state from localstorage or use original book data
let bookData = JSON.parse(localStorage.getItem('portal_1857_data')) || JSON.parse(JSON.stringify(originalBookData));
let currentChapterIndex = 0;
let isEditMode = false;
let currentQuizIndex = 0;
let userQuizScore = 0;
// Render the Active Chapter Content
function renderActiveChapter() {
const chapter = bookData.chapters[currentChapterIndex];
const contentArea = document.getElementById('activeChapterContent');
contentArea.innerHTML = `
<div class="flex justify-between items-center mb-4 flex-wrap gap-2">
<span class="text-xs font-semibold text-brand-500 bg-brand-50 px-3 py-1 rounded-full dark:bg-gray-700 dark:text-amber-400">
अध्याय ${currentChapterIndex + 1} / ${bookData.chapters.length}
</span>
<span class="text-xs text-gray-400">अंतिम बार संपादित: अभी-अभी</span>
</div>
<h1 id="chapterTitleDisplay" class="text-3xl font-extrabold text-brand-600 dark:text-amber-400 mb-4" ${isEditMode ? 'contenteditable="true"' : 'contenteditable="false"'} onblur="saveChapterTitle(this)">
${chapter.title}
</h1>
<div id="chapterBodyDisplay" class="space-y-4" ${isEditMode ? 'contenteditable="true"' : 'contenteditable="false"'} onblur="saveChapterBody(this)">
${chapter.content}
</div>
`;
updateSidebarHighlight();
}
// Handle dynamically editing title
function saveChapterTitle(elem) {
bookData.chapters[currentChapterIndex].title = elem.innerText;
saveDataLocally();
buildChapterSidebar();
}
// Handle dynamically editing body
function saveChapterBody(elem) {
bookData.chapters[currentChapterIndex].content = elem.innerHTML;
saveDataLocally();
}
// Save progress to local storage
function saveDataLocally() {
localStorage.setItem('portal_1857_data', JSON.stringify(bookData));
}
// Build Chapter Navigation Sidebar
function buildChapterSidebar() {
const nav = document.getElementById('chapterNavigation');
nav.innerHTML = '';
bookData.chapters.forEach((chap, idx) => {
const btn = document.createElement('button');
btn.className = `w-full text-left px-3 py-2.5 rounded-lg text-sm flex items-start space-x-2 transition-all-300 ${idx === currentChapterIndex ? 'bg-brand-500 text-white shadow-md font-bold' : 'hover:bg-brand-50 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300'}`;
btn.onclick = () => {
currentChapterIndex = idx;
renderActiveChapter();
toggleSidebar(false);
};
btn.innerHTML = `
<span class="mt-0.5"><i class="fas ${idx === currentChapterIndex ? 'fa-book-open' : 'fa-book'} text-xs"></i></span>
<span class="line-clamp-2">${chap.title}</span>
`;
nav.appendChild(btn);
});
document.getElementById('statChapters').innerText = `${bookData.chapters.length} अध्याय`;
}
// Highlight Active Chapter in Sidebar
function updateSidebarHighlight() {
const btns = document.querySelectorAll('#chapterNavigation button');
btns.forEach((btn, idx) => {
if(idx === currentChapterIndex) {
btn.className = "w-full text-left px-3 py-2.5 rounded-lg text-sm flex items-start space-x-2 transition-all-300 bg-brand-500 text-white shadow-md font-bold";
} else {
btn.className = "w-full text-left px-3 py-2.5 rounded-lg text-sm flex items-start space-x-2 transition-all-300 hover:bg-brand-50 dark:hover:bg-gray-700 text-gray-700 dark:text-gray-300";
}
});
}
// Quick Facts Rendering
function renderQuickFacts() {
const list = document.getElementById('quickFactsList');
list.innerHTML = '';
bookData.quickFacts.forEach(fact => {
const li = document.createElement('li');
li.className = 'flex items-start space-x-2 pb-1.5 border-b border-dashed border-gray-100 dark:border-gray-700';
li.innerHTML = `<i class="fas fa-check-circle text-amber-500 mt-0.5"></i> <span ${isEditMode ? 'contenteditable="true"' : ''} class="fact-item">${fact}</span>`;
list.appendChild(li);
});
}
// Timeline Chronology Rendering
function renderTimeline() {
const list = document.getElementById('timelineList');
list.innerHTML = '';
bookData.timeline.forEach(event => {
const item = document.createElement('div');
item.className = 'relative pl-2';
item.innerHTML = `
<div class="absolute -left-[21px] top-1 bg-amber-500 w-2.5 h-2.5 rounded-full border-2 border-white dark:border-gray-800"></div>
<span class="block text-[10px] font-bold text-brand-500 dark:text-amber-400 uppercase tracking-wide" ${isEditMode ? 'contenteditable="true"' : ''}>${event.date}</span>
<p class="text-xs text-gray-600 dark:text-gray-300" ${isEditMode ? 'contenteditable="true"' : ''}>${event.text}</p>
`;
list.appendChild(item);
});
}
// Centers Grid Rendering
function renderCenters() {
const grid = document.getElementById('centersGrid');
grid.innerHTML = '';
bookData.centers.forEach(center => {
const card = document.createElement('button');
card.className = "text-left p-3.5 bg-brand-50/50 dark:bg-gray-700/50 hover:bg-amber-500 hover:text-white dark:hover:bg-amber-600 rounded-xl border border-brand-100/40 dark:border-gray-700 transition-all-300 flex flex-col justify-between";
card.onclick = () => {
showCenterPopup(center);
};
card.innerHTML = `
<div>
<h4 class="font-bold text-sm text-brand-600 dark:text-amber-400 hover:text-inherit mb-1">${center.name}</h4>
<p class="text-xs font-semibold opacity-90">${center.leader}</p>
</div>
<span class="text-[10px] opacity-75 mt-2 block">विवरण देखें →</span>
`;
grid.appendChild(card);
});
document.getElementById('statCenters').innerText = `${bookData.centers.length} प्रमुख केंद्र`;
}
// Pop-up Center Details Handler
function showCenterPopup(center) {
// Setup simple dynamic modern popup or alert box inside central layout
const modal = document.createElement('div');
modal.id = "centerPopupModal";
modal.className = "fixed inset-0 z-50 flex items-center justify-center p-4";
modal.innerHTML = `
<div class="absolute inset-0 bg-black/50 backdrop-blur-sm" onclick="closeCenterPopup()"></div>
<div class="bg-white dark:bg-gray-800 p-6 rounded-2xl max-w-sm w-full relative z-10 shadow-2xl border border-amber-400">
<h3 class="text-xl font-bold text-brand-500 dark:text-amber-400 mb-2">${center.name}</h3>
<p class="text-sm font-semibold mb-3">नेतृत्व: <span class="text-amber-500">${center.leader}</span></p>
<p class="text-sm text-gray-600 dark:text-gray-300 leading-relaxed mb-4">${center.desc}</p>
<button onclick="closeCenterPopup()" class="w-full bg-brand-500 hover:bg-brand-600 text-white py-2 rounded-lg text-sm font-bold transition-all-300">बंद करें</button>
</div>
`;
document.body.appendChild(modal);
}
function closeCenterPopup() {
const popup = document.getElementById('centerPopupModal');
if(popup) popup.remove();
}
// Live Interactive MCQ Quiz Widget Logic
function renderQuizWidget() {
const widget = document.getElementById('quizWidget');
const currentQ = bookData.quiz[currentQuizIndex];
widget.innerHTML = `
<div class="space-y-3">
<span class="text-[10px] font-bold text-amber-600 dark:text-amber-400">प्रश्न ${currentQuizIndex + 1} / ${bookData.quiz.length}</span>
<h5 class="text-xs font-bold leading-snug">${currentQ.q}</h5>
<div class="space-y-1.5">
${currentQ.options.map((opt, oIdx) => `
<button onclick="checkQuizAnswer(${oIdx})" class="w-full text-left text-xs p-2 rounded-lg bg-white dark:bg-gray-800 border border-amber-200/50 dark:border-gray-700 hover:bg-amber-100 dark:hover:bg-gray-700 transition-all-300">
${opt}
</button>
`).join('')}
</div>
</div>
`;
}
function checkQuizAnswer(selectedIdx) {
const currentQ = bookData.quiz[currentQuizIndex];
const isCorrect = selectedIdx === currentQ.correct;
if(isCorrect) {
userQuizScore += 10;
showNotification("🎉 सही उत्तर! +10 अंक", "success");
} else {
showNotification(`❌ गलत उत्तर! सही उत्तर था: ${currentQ.options[currentQ.correct]}`, "error");
}
document.getElementById('quizScore').innerText = `स्कोर: ${userQuizScore}`;
// Go to next question or loop
currentQuizIndex = (currentQuizIndex + 1) % bookData.quiz.length;
renderQuizWidget();
}
// Live Custom Alert System
function showNotification(msg, type = "success") {
const div = document.createElement('div');
div.className = `fixed bottom-4 right-4 z-50 p-4 rounded-xl shadow-lg text-white font-semibold flex items-center space-x-2 transition-all-300 transform translate-y-10 opacity-0 ${type === 'success' ? 'bg-emerald-500' : 'bg-red-500'}`;
div.innerHTML = `
<i class="fas ${type === 'success' ? 'fa-check-circle' : 'fa-times-circle'}"></i>
<span>${msg}</span>
`;
document.body.appendChild(div);
setTimeout(() => {
div.classList.remove('translate-y-10', 'opacity-0');
}, 50);
setTimeout(() => {
div.classList.add('translate-y-10', 'opacity-0');
setTimeout(() => div.remove(), 300);
}, 3000);
}
// Toggle Live Editing Mode
document.getElementById('editModeToggle').addEventListener('click', () => {
isEditMode = !isEditMode;
const btn = document.getElementById('editModeToggle');
const text = document.getElementById('editText');
const indicator = document.getElementById('editModeIndicator');
if (isEditMode) {
btn.className = "flex items-center space-x-2 bg-emerald-500 hover:bg-emerald-600 text-white font-semibold py-1.5 px-3 rounded-lg text-sm transition-all-300 shadow-md";
text.innerText = "सहेजें (Save Mode)";
indicator.classList.remove('hidden');
showNotification("संपादन मोड चालू हो गया है। पृष्ठ सामग्री एडिट करें!", "success");
} else {
btn.className = "flex items-center space-x-2 bg-amber-500 hover:bg-amber-600 text-white font-semibold py-1.5 px-3 rounded-lg text-sm transition-all-300 shadow-md";
text.innerText = "संपादित करें (Edit)";
indicator.classList.add('hidden');
// Read modified values back to memory
const modifiedTitle = document.getElementById('chapterTitleDisplay').innerText;
const modifiedBody = document.getElementById('chapterBodyDisplay').innerHTML;
bookData.chapters[currentChapterIndex].title = modifiedTitle;
bookData.chapters[currentChapterIndex].content = modifiedBody;
saveDataLocally();
buildChapterSidebar();
showNotification("सभी बदलाव सफलतापूर्वक सहेज लिए गए हैं!", "success");
}
renderActiveChapter();
renderQuickFacts();
renderTimeline();
});
// Theme Toggle Handler
document.getElementById('themeToggle').addEventListener('click', () => {
document.documentElement.classList.toggle('dark');
const icon = document.getElementById('themeIcon');
if (document.documentElement.classList.contains('dark')) {
icon.className = "fas fa-sun text-lg";
showNotification("डार्क मोड सक्रिय किया गया", "success");
} else {
icon.className = "fas fa-moon text-lg";
showNotification("लाइट मोड सक्रिय किया गया", "success");
}
});
// Responsive Sidebar Handlers
const sidebar = document.getElementById('sidebar');
const overlay = document.getElementById('sidebarOverlay');
function toggleSidebar(open) {
if(open) {
sidebar.classList.remove('-translate-x-full');
overlay.classList.remove('hidden');
} else {
sidebar.classList.add('-translate-x-full');
overlay.classList.add('hidden');
}
}
document.getElementById('mobileMenuBtn').addEventListener('click', () => toggleSidebar(true));
document.getElementById('closeSidebar').addEventListener('click', () => toggleSidebar(false));
overlay.addEventListener('click', () => toggleSidebar(false));
// Settings Dialog Handlers
const settingsModal = document.getElementById('settingsModal');
document.getElementById('settingsBtn').addEventListener('click', () => settingsModal.classList.remove('hidden'));
document.getElementById('closeModal').addEventListener('click', () => settingsModal.classList.add('hidden'));
// Font Changer functionality
function changeFontSize(size) {
const article = document.getElementById('activeChapterContent');
if (size === 'small') {
article.className = "prose prose-sm dark:prose-invert max-w-none";
} else if (size === 'large') {
article.className = "prose prose-xl dark:prose-invert max-w-none";
} else {
article.className = "prose prose-lg dark:prose-invert max-w-none";
}
settingsModal.classList.add('hidden');
showNotification("फ़ॉन्ट का आकार बदल दिया गया है।");
}
// Add New Custom Chapter Trigger
function addNewChapterModal() {
settingsModal.classList.add('hidden');
toggleAddModal(true);
}
function toggleAddModal(open) {
const addModal = document.getElementById('addChapterModal');
if(open) {
addModal.classList.remove('hidden');
} else {
addModal.classList.add('hidden');
}
}
function saveNewChapter() {
const title = document.getElementById('newChapTitle').value.trim();
const content = document.getElementById('newChapContent').value.trim();
if(!title || !content) {
showNotification("कृपया शीर्षक और सामग्री दोनों भरें!", "error");
return;
}
const newChap = {
id: `chap-${bookData.chapters.length + 1}`,
title: title,
summary: title,
content: content
};
bookData.chapters.push(newChap);
saveDataLocally();
buildChapterSidebar();
currentChapterIndex = bookData.chapters.length - 1;
renderActiveChapter();
toggleAddModal(false);
showNotification("बधाई हो! नया अध्याय सफलतापूर्वक जोड़ा गया है।", "success");
}
// Reset memory to PDF default values
function resetToOriginalData() {
if(confirm("क्या आप वाकई सभी संपादन हटाकर पोर्टल को मूल प्रारूप में वापस लाना चाहते हैं?")) {
localStorage.removeItem('portal_1857_data');
bookData = JSON.parse(JSON.stringify(originalBookData));
currentChapterIndex = 0;
buildChapterSidebar();
renderActiveChapter();
renderQuickFacts();
renderTimeline();
renderCenters();
renderQuizWidget();
settingsModal.classList.add('hidden');
showNotification("पोर्टल मूल डाटा पर रीसेट हो गया है।", "success");
}
}
// Dummy PDF download trigger
document.getElementById('downloadPDF').addEventListener('click', () => {
showNotification("📥 पीडीएफ जेनरेशन शुरू हो रहा है... (सभी अध्यायों की प्रिंटिंग सक्षम)", "success");
window.print();
});
// Global Search Logic (Search by terms inside titles)
const searchInput = document.getElementById('globalSearch');
const mobileSearchInput = document.getElementById('mobileSearch');
const searchAlert = document.getElementById('searchAlert');
function performSearch(query) {
if (!query) {
searchAlert.classList.add('hidden');
buildChapterSidebar();
return;
}
const filteredChaps = bookData.chapters.filter(chap =>
chap.title.toLowerCase().includes(query.toLowerCase()) ||
chap.content.toLowerCase().includes(query.toLowerCase())
);
const nav = document.getElementById('chapterNavigation');
nav.innerHTML = '';
if (filteredChaps.length === 0) {
nav.innerHTML = '<p class="text-xs text-red-500 p-2">कोई परिणाम नहीं मिला।</p>';
return;
}
filteredChaps.forEach((chap) => {
const idx = bookData.chapters.findIndex(c => c.id === chap.id);
const btn = document.createElement('button');
btn.className = `w-full text-left px-3 py-2.5 rounded-lg text-sm flex items-start space-x-2 transition-all-300 hover:bg-brand-50 text-gray-700 dark:text-gray-300`;
btn.onclick = () => {
currentChapterIndex = idx;
renderActiveChapter();
toggleSidebar(false);
};
btn.innerHTML = `
<span class="mt-0.5"><i class="fas fa-search text-xs text-amber-500"></i></span>
<span class="line-clamp-2">${chap.title}</span>
`;
nav.appendChild(btn);
});
searchAlert.classList.remove('hidden');
}
searchInput.addEventListener('input', (e) => performSearch(e.target.value));
mobileSearchInput.addEventListener('input', (e) => performSearch(e.target.value));
document.getElementById('clearSearch').addEventListener('click', () => {
searchInput.value = '';
mobileSearchInput.value = '';
searchAlert.classList.add('hidden');
buildChapterSidebar();
});
// Initialize UI Elements on page load
window.onload = function() {
buildChapterSidebar();
renderActiveChapter();
renderQuickFacts();
renderTimeline();
renderCenters();
renderQuizWidget();
};
</script>