মিডিয়াউইকি:Showhide line numbers.js

উইকিসংকলন থেকে
টীকা: সংরক্ষণ করার পর, পরিবর্তনসমূহ তৎক্ষণাৎ নাও দেখাতে পারে। আপনার ব্রাউজারের ক্যাশ কিভাবে এড়াবেন তা জানতে এখানে ক্লিক করুন।
  • ফায়ারফক্স / সাফারি: Shift ধরে রাখা অবস্থায়পুনঃলোড করুন-এ ক্লিক করুন, অথবা Ctrl-F5 বা Ctrl-R (ম্যাক-এ ⌘-R) চাপুন
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাক-এ ⌘-Shift-R) চাপুন
  • ইন্টারনেট এক্সপ্লোরার: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 চাপুন
  • অপেরা: মেনু → ব্যবস্থাপনাসমূহ-এ যান (ম্যাকে অপেরা → পছন্দসমূহ) এবং এরপর গোপনীয়তা ও সুরক্ষা → ব্রাউজিং-এর তথ্য পরিষ্কার করুন → ক্যাশে করা ছবি ও ফাইলগুলি

অন্যান্য ব্রাউজার সম্পর্কে বিশদ নির্দেশাবলীর জন্য, উইকিপিডিয়া:আপনার ক্যাশে বাইপাস করুন দেখুন।

// <source lang="javascript">

function jlnUpdateLink(toggle) {
	// add link
	var jln = {};
	jln.linkbox = document.getElementById('jln_link');
	
	if(toggle=='show') {
		jln.linkbox.innerHTML = '<a href="#" onClick="jlnEnable();" title="show line numbers">Show line numbers</a>';
	}
	else {
		jln.linkbox.innerHTML = '<a href="#" onClick="jlnDisable();" title="hide line numbers">Hide line numbers</a>';
	}
}

function jlnEnable() {
	// initialize
	var jln = {};
	var bodyContent = document.getElementById('bodyContent');
	jln.poems = getElementsByClassName(bodyContent,'*','numbering');

	// iterate over poems
	jln.countPoems = jln.poems.length;
	
	for(var i = 0; i<jln.countPoems; i++) {
		// variables
		jln.poem  = jln.poems[i];
		jln.lines = jln.poem.innerHTML.split('\n');
		jln.countLines = jln.lines.length;
		
		// insert line numbers
		x = 1;
		for(var i=0; i < jln.countLines; i++) {
			// skip blank lines
			if(!jln.lines[i].match(/^(?:<br>|\s*)$/)) {
				jln.lines[i] = jln.lines[i].replace(/^(<p>)?(.+)/,'$1<span style="margin-right:2em; color:gray;" class="jln">' + x + '</span> $2');
				x++;
			}
		}
		
		// replace text
		jln.poem.innerHTML = jln.lines.join('\n');
	}

	// update link
	jlnUpdateLink('hide');
}
function jlnDisable() {
	// initialize
	var jln = {};
	var bodyContent = document.getElementById('bodyContent');

	// remove all line numbers
	bodyContent.innerHTML = bodyContent.innerHTML.replace(/<span[^>]+class="jln">[^>]*<\/span>/g,'');
	
	// update link
	jlnUpdateLink('show');
}
jlnUpdateLink('show');

// </source>