উইকিবই bnwikibooks https://bn.wikibooks.org/wiki/%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A6%A7%E0%A6%BE%E0%A6%A8_%E0%A6%AA%E0%A6%BE%E0%A6%A4%E0%A6%BE MediaWiki 1.39.0-wmf.25 first-letter মিডিয়া বিশেষ আলাপ ব্যবহারকারী ব্যবহারকারী আলাপ উইকিবই উইকিবই আলোচনা চিত্র চিত্র আলোচনা মিডিয়াউইকি মিডিয়াউইকি আলোচনা টেমপ্লেট টেমপ্লেট আলোচনা সাহায্য সাহায্য আলোচনা বিষয়শ্রেণী বিষয়শ্রেণী আলোচনা উইকিশৈশব উইকিশৈশব আলাপ বিষয় বিষয় আলাপ রন্ধনপ্রণালী রন্ধনপ্রণালী আলোচনা TimedText TimedText talk মডিউল মডিউল আলাপ গ্যাজেট গ্যাজেট আলোচনা গ্যাজেট সংজ্ঞা গ্যাজেট সংজ্ঞার আলোচনা উইকিবই:সম্পাদনার সংখ্যা অনুযায়ী উইকিবইয়ের সম্পাদকগণ 4 10681 46496 45574 2022-08-19T12:03:42Z MdsShakil 7280 /* তালিকা */ হালনাগাদ করা হল wikitext text/x-wiki {{উপরে ও নিচে চলুন}} এটি বাংলা উইকিবইয়ে সম্পাদনার সংখ্যা অনুযায়ী সম্পাদকগণের একটি তালিকা। সকল নামস্থানের সম্পাদনা গণনায় অন্তর্ভুক্ত হয়েছে। পাতা স্থানান্তর বা অপসারিত সম্পাদনার মত সম্পাদনা অনেক সম্পাদনা গণকে গণনা হলেও এখানে তা গণনা করা হয়নি। তাই অনেক সম্পাদনা গণকের সাথে এ তালিকার পার্থক্য হতে পারে। এই পাতাতে সর্বোচ্চ ১০০ জন সম্পাদকের নাম যোগ করা হয়েছে। এই তালিকাটি মাসভিত্তিক হালনাগাদ করা হয়। [[বিশেষ:পছন্দসমূহ|আমার পছন্দসমূহ]] লিঙ্কে ক্লিক করে আপনি আপনার সঠিক সম্পাদনা সংখ্যা দেখতে পারবেন। == বিশেষ দ্রষ্টব্য == তালিকাটি উইকিবইয়ের সর্বোচ্চ সম্পাদনাকারীদের একটি সারাংশ মাত্র। তালিকায় প্রদত্ত তথ্যগুলো সবসময় সঠিক নাও হতে পারে এবং তালিকাটি কোনো সম্পাদকের মান যাচাই করতে ব্যবহার করা উচিত নয়। বিভিন্ন কারণে সর্বোচ্চ সম্পাদনাকারী সম্পাদক সেরা মানের সম্পাদককে নির্দেশ করে না। # সফটওয়্যার বাগের কারণে কোনো কোনো সম্পাদকের সম্পাদনার সংখ্যা অত্যাধিক বেড়ে যেতে পারে। # কিছু কিছু সম্পাদক স্বয়ংক্রিয় যন্ত্র বট এবং অ্যাসিস্টেড সিস্টেম ব্যবহার করে যা প্রতি মিনিটে বহু ভুল (বানান, লিঙ্ক ইত্যাদি) শুদ্ধ করে, অনেক কম সময়ে বহু বিজ্ঞপ্তি প্রচার করে, অন্যদিকে অন্যান্য সম্পাদকরা এমন কাজ করে যেখানে এসব যন্ত্রের উপযোগিতা নেই যেমন- বই তৈরি, কপিরাইট রিভিউ এবং সংঘাত নিরসন। # কিছু বট ব্যবহারকারী তাদের বটের জন্য আলাদা অ্যাকাউন্ট তৈরি করে আবার কিছু ব্যবহারকারী তাদের বটকে নিজস্ব সম্পাদনার সাথে যোগ করে। # কিছু ব্যবহারকারী বিভিন্ন কারণে একাধিক অ্যাকাউন্ট ব্যবহার করে যার ফলে তাদের সম্পাদনা ভাগ হয়ে যায়। # এই তালিকায় শীর্ষের দিকে থাকা অনেক সম্পাদক কিছু গতানুগতিক কাজ করেন যা করতে অল্প সময় লাগে বিশেষ করে অন্য সম্পাদকদের রিভার্ট করা, পাতা সুরক্ষার আবেদন করা, ব্যবহারকারীদের সতর্ক করা। এর উল্টো চিত্র হিসেবে কিছু ব্যবহারকারী অনেক সময় নিয়ে গবেষণা সম্পন্ন করার পর বই তৈরি করে এবং তারা তালিকার নিচের দিকে থাকতে পারে। # কিছু ব্যবহারকারী প্রাকদর্শন ব্যবহার করতে থাকে যতক্ষণ পর্যন্ত না সম্পাদনাটি তাদের মনমতো হয়, আবার কেউ স্বভাবগত কারণে পর্যায়ক্রমে ছোট ছোট পরিবর্তনের মাধ্যমে সম্পাদনা করে। # বহু লোক লগ ইন ছাড়াই সম্পাদনা করে এবং অনেক বেনামি সম্পাদক মূল্যবান সম্পাদনার মাধ্যমে উইকিবইকে সমৃদ্ধ করে যাচ্ছে। সুতরাং, সম্পাদনা সংখ্যা এককভাবে উইকিবইয়ের উন্নতির জন্য দায়ী নয়। == তালিকা == '''সর্বশেষ হালনাগাদ''' ১২:০৩, ১৯ আগস্ট ২০২২ (ইউটিসি) {{/১-১০০}} == বহিঃসংযোগ == * [https://tools.wmflabs.org/supercount/ সুপারকাউন্ট] enkmzho042lpgtu4px9r13s0vva20pg উইকিবই:সম্পাদনার সংখ্যা অনুযায়ী উইকিবইয়ের সম্পাদকগণ/১-১০০ 4 10682 46495 45573 2022-08-19T12:03:15Z MdsShakil 7280 হালনাগাদ করা হল wikitext text/x-wiki {| class="wikitable sortable" |- style="white-space:nowrap;" ! নং ! ব্যবহারকারী নাম ! সম্পাদনার সংখ্যা |- |১ |[[ব্যবহারকারী:MdsShakil|MdsShakil]] |৭,৫৯৬ |- |২ |[[ব্যবহারকারী:ShahadatHossain|ShahadatHossain]] |৪,২১৫ |- |৩ |[[ব্যবহারকারী:Tahmid|Tahmid]] |৩,৩৩০ |- |৪ |[[ব্যবহারকারী:Aishik Rehman|Aishik Rehman]] |৩,০২৪ |- |৫ |[[ব্যবহারকারী:Salil Kumar Mukherjee|Salil Kumar Mukherjee]] |১,৫৯৩ |- |৬ |[[ব্যবহারকারী:IqbalHossain|IqbalHossain]] |১,২৭৫ |- |৭ |[[ব্যবহারকারী:আ হ ম সাকিব|আ হ ম সাকিব]] |৯১৬ |- |৮ |[[ব্যবহারকারী:Alphaa Noman|Alphaa Noman]] |৯১০ |- |৯ |[[ব্যবহারকারী:SHEIKH|SHEIKH]] |৯০০ |- |১০ |[[ব্যবহারকারী:Sumasa|Sumasa]] |৭৬২ |- |১১ |[[ব্যবহারকারী:BiolysisBiologist|BiolysisBiologist]] |৭৫৬ |- |১২ |[[ব্যবহারকারী:আফতাবুজ্জামান|আফতাবুজ্জামান]] |৭৪৩ |- |১৩ |[[ব্যবহারকারী:শরদিন্দু ভট্টাচার্য্য|শরদিন্দু ভট্টাচার্য্য]] |৬৪৬ |- |১৪ |[[ব্যবহারকারী:Yahya|Yahya]] |৫২৭ |- |১৫ |[[ব্যবহারকারী:Jayantanth|Jayantanth]] |৪৮৩ |- |১৬ |[[ব্যবহারকারী:CommonsDelinker|CommonsDelinker]] |৪২৬ |- |১৭ |[[ব্যবহারকারী:Pathoschild|Pathoschild]] |৩৭১ |- |১৮ |[[ব্যবহারকারী:Szilard|Szilard]] |৩৫৭ |- |১৯ |[[ব্যবহারকারী:Mcepy|Mcepy]] |৩৪০ |- |২০ |[[ব্যবহারকারী:NahidSultan|NahidSultan]] |৩১৮ |- |২১ |[[ব্যবহারকারী:ZI Jony|ZI Jony]] |৩১০ |- |২২ |[[ব্যবহারকারী:Ragib|Ragib]] |৩০৬ |- |২৩ |[[ব্যবহারকারী:Muhammad|Muhammad]] |২৯৭ |- |২৪ |[[ব্যবহারকারী:Jonoikobangali|Jonoikobangali]] |২৭৯ |- |২৫ |[[ব্যবহারকারী:Pratyya Ghosh|Pratyya Ghosh]] |২৩৩ |- |২৬ |[[ব্যবহারকারী:AbuSayeed|AbuSayeed]] |২২০ |- |২৭ |[[ব্যবহারকারী:Al Riaz Uddin Ripon|Al Riaz Uddin Ripon]] |২১৭ |- |২৮ |[[ব্যবহারকারী:Shuvo Hulk|Shuvo Hulk]] |১৯৬ |- |২৯ |[[ব্যবহারকারী:Sajidmahamud835|Sajidmahamud835]] |১৮৭ |- |৩০ |[[ব্যবহারকারী:Shakibul Alam Risvy|Shakibul Alam Risvy]] |১৬৫ |- |৩১ |[[ব্যবহারকারী:Safi Mahfouz|Safi Mahfouz]] |১৫৩ |- |৩২ |[[ব্যবহারকারী:Greatder|Greatder]] |১৪৮ |- |৩৩ |[[ব্যবহারকারী:Wikitanvir|Wikitanvir]] |১৩৯ |- |৩৪ |[[ব্যবহারকারী:Nettime Sujata|Nettime Sujata]] |১৩৬ |- |৩৫ |[[ব্যবহারকারী:MS Sakib|MS Sakib]] |১৩০ |- |৩৬ |[[ব্যবহারকারী:Masud1395|Masud1395]] |১২৮ |- |৩৭ |[[ব্যবহারকারী:Anubhab91|Anubhab91]] |১০৬ |- |৩৮ |[[ব্যবহারকারী:Obangmoy|Obangmoy]] |৯১ |- |৩৯ |[[ব্যবহারকারী:Sammati Das|Sammati Das]] |৮৮ |- |৪০ |[[ব্যবহারকারী:Timeontask|Timeontask]] |৮৫ |- |৪১ |[[ব্যবহারকারী:কায়সার আহমাদ|কায়সার আহমাদ]] |৭৭ |- |৪২ |[[ব্যবহারকারী:MdaNoman|MdaNoman]] |৬৮ |- |৪৩ |[[ব্যবহারকারী:Rahul amin roktim|Rahul amin roktim]] |৬৮ |- |৪৪ |[[ব্যবহারকারী:Ladsgroup|Ladsgroup]] |৬৬ |- |৪৫ |[[ব্যবহারকারী:Nakul Chandra Barman|Nakul Chandra Barman]] |৬৫ |- |৪৬ |[[ব্যবহারকারী:Mahir256|Mahir256]] |৬৫ |- |৪৭ |[[ব্যবহারকারী:WikimediaNotifier|WikimediaNotifier]] |৬০ |- |৪৮ |[[ব্যবহারকারী:RUBEL SHAIKH|RUBEL SHAIKH]] |৫৮ |- |৪৯ |[[ব্যবহারকারী:Md. Golam Mukit Khan|Md. Golam Mukit Khan]] |৫২ |- |৫০ |[[ব্যবহারকারী:Sadi2202|Sadi2202]] |৫০ |- |৫১ |[[ব্যবহারকারী:Bellayet|Bellayet]] |৪৯ |- |৫২ |[[ব্যবহারকারী:Moheen|Moheen]] |৪৭ |- |৫৩ |[[ব্যবহারকারী:Sumitroydipto|Sumitroydipto]] |৪৫ |- |৫৪ |[[ব্যবহারকারী:Mahmud124|Mahmud124]] |৪৪ |- |৫৫ |[[ব্যবহারকারী:Jakaria Rion|Jakaria Rion]] |৪১ |- |৫৬ |[[ব্যবহারকারী:Zaheen|Zaheen]] |৩৯ |- |৫৭ |[[ব্যবহারকারী:মেহেদী উইকি|মেহেদী উইকি]] |৩৭ |- |৫৮ |[[ব্যবহারকারী:ইফতেখার নাইম|ইফতেখার নাইম]] |৩৫ |- |৫৯ |[[ব্যবহারকারী:Hasive|Hasive]] |৩৫ |- |৬০ |[[ব্যবহারকারী:Syfur007|Syfur007]] |৩২ |- |৬১ |[[ব্যবহারকারী:ব্যা করণ|ব্যা করণ]] |৩০ |- |৬২ |[[ব্যবহারকারী:Mohaguru|Mohaguru]] |২৮ |- |৬৩ |[[ব্যবহারকারী:Imran Hossan|Imran Hossan]] |২৭ |- |৬৪ |[[ব্যবহারকারী:RKBM RIzmi|RKBM RIzmi]] |২৭ |- |৬৫ |[[ব্যবহারকারী:Ahmad Kanik|Ahmad Kanik]] |২৬ |- |৬৬ |[[ব্যবহারকারী:Md. Abdul Ahad Khan|Md. Abdul Ahad Khan]] |২৪ |- |৬৭ |[[ব্যবহারকারী:Parvej Husen Talukder|Parvej Husen Talukder]] |২৪ |- |৬৮ |[[ব্যবহারকারী:1997kB|1997kB]] |২৪ |- |৬৯ |[[ব্যবহারকারী:খাত্তাব হাসান|খাত্তাব হাসান]] |২৩ |- |৭০ |[[ব্যবহারকারী:Cekli829|Cekli829]] |২৩ |- |৭১ |[[ব্যবহারকারী:Hatashe|Hatashe]] |২৩ |- |৭২ |[[ব্যবহারকারী:Firuz Ahmmed|Firuz Ahmmed]] |২১ |- |৭৩ |[[ব্যবহারকারী:Robin shaha|Robin shaha]] |২০ |- |৭৪ |[[ব্যবহারকারী:WikipedianSorjo|WikipedianSorjo]] |১৯ |- |৭৫ |[[ব্যবহারকারী:Nokib Sarkar|Nokib Sarkar]] |১৯ |- |৭৬ |[[ব্যবহারকারী:রামিশা তাবাস্সুম|রামিশা তাবাস্সুম]] |১৯ |- |৭৭ |[[ব্যবহারকারী:সাদী|সাদী]] |১৯ |- |৭৮ |[[ব্যবহারকারী:অভিজিৎ দাস|অভিজিৎ দাস]] |১৮ |- |৭৯ |[[ব্যবহারকারী:Safuan12616|Safuan12616]] |১৮ |- |৮০ |[[ব্যবহারকারী:এস এম মেহেদি উল হাসান|এস এম মেহেদি উল হাসান]] |১৭ |- |৮১ |[[ব্যবহারকারী:Rupam|Rupam]] |১৭ |- |৮২ |[[ব্যবহারকারী:CSinha (WMF)|CSinha (WMF)]] |১৭ |- |৮৩ |[[ব্যবহারকারী:Quentinv57|Quentinv57]] |১৬ |- |৮৪ |[[ব্যবহারকারী:Kwamikagami|Kwamikagami]] |১৬ |- |৮৫ |[[ব্যবহারকারী:Bdwreport|Bdwreport]] |১৬ |- |৮৬ |[[ব্যবহারকারী:Nazmul.hossain12|Nazmul.hossain12]] |১৫ |- |৮৭ |[[ব্যবহারকারী:Simanto123|Simanto123]] |১৫ |- |৮৮ |[[ব্যবহারকারী:Jahangiralam16167874|Jahangiralam16167874]] |১৫ |- |৮৯ |[[ব্যবহারকারী:Minorax|Minorax]] |১৫ |- |৯০ |[[ব্যবহারকারী:Robin Khisa|Robin Khisa]] |১৫ |- |৯১ |[[ব্যবহারকারী:Iliazm|Iliazm]] |১৫ |- |৯২ |[[ব্যবহারকারী:Ferdous|Ferdous]] |১৪ |- |৯৩ |[[ব্যবহারকারী:Pinakpani|Pinakpani]] |১৪ |- |৯৪ |[[ব্যবহারকারী:Masum Ibn Musa|Masum Ibn Musa]] |১৪ |- |৯৫ |[[ব্যবহারকারী:Mmrsafy|Mmrsafy]] |১৪ |- |৯৬ |[[ব্যবহারকারী:Jalexander-WMF|Jalexander-WMF]] |১৪ |- |৯৭ |[[ব্যবহারকারী:মোহাম্মদ হাসানুর রশিদ|মোহাম্মদ হাসানুর রশিদ]] |১৪ |- |৯৮ |[[ব্যবহারকারী:Mamunvai|Mamunvai]] |১৩ |- |৯৯ |[[ব্যবহারকারী:WIKIPEDIAN SR|WIKIPEDIAN SR]] |১৩ |- |১০০ |[[ব্যবহারকারী:Adv.Shoaib|Adv.Shoaib]] |১৩ |} 6il2vfkzjvh75m8qvxky2hemptgshmc মডিউল:Printable version 828 15837 46498 46487 2022-08-19T13:28:54Z JackPotte 2496 Add printable version header, footer and no evaluation param if overflow Scribunto text/plain -- Search and display the book pages from the TOC page, in order to create a printable version and a previous / next navigation. debug = false include_book_subpages_only = true do_not_evaluate_each_chapter = false local p = {} ModuleTnt = require('Module:TNT') Error = ModuleTnt.format('I18n/Module:Printable version', 'error_invalid_toc') Beginning1 = ModuleTnt.format('I18n/Module:Printable version', 'header_notice') Beginning2 = ModuleTnt.format('I18n/Module:Printable version', 'header_cover') Break = ModuleTnt.format('I18n/Module:Printable version', 'page_break') Ending1 = ModuleTnt.format('I18n/Module:Printable version', 'footer_license') Ending2 = ModuleTnt.format('I18n/Module:Printable version', 'footer2') templateLeft = ModuleTnt.format('I18n/Module:Printable version', 'template_left') templateRight = ModuleTnt.format('I18n/Module:Printable version', 'template_right') TOC = ModuleTnt.format('I18n/Module:Printable version', 'TOC') sep = ModuleTnt.format('I18n/Module:Printable version', 'subpage_separator') page_before = ModuleTnt.format('I18n/Module:Printable version', 'page_before') page_after = ModuleTnt.format('I18n/Module:Printable version', 'page_after') function p._escapePattern(pattern) return mw.ustring.gsub(pattern, "([%(%)%.%%%+%-%*%?%[%^%$%]])", "%%%1"); end function p.displays_book(frame) if not debug then Error = '' end if frame == nil then return '' end if frame.args == nil then return '' end if frame.args[1] == nil then return '' end local BookName = frame.args[1] if (BookName ~= nil and mw.text.trim(BookName) ~= '') then title = mw.title.new(BookName) if frame.args[2] ~= nil and frame.args[2] ~= '' then BookName = frame.args[2] else if mw.ustring.find(BookName, sep .. TOC, 1, true) ~= nil then BookName = mw.ustring.gsub(BookName, "^(.*)" .. sep .. TOC .. "$", "%1") end end if frame.args[3] ~= nil then include_book_subpages_only = false end else return Error end if frame.args[4] ~= nil and frame.args[4] ~= '' then do_not_evaluate_each_chapter = true end if (title == nil or title == '') then return Error end text = title.getContent(title) if (text == nil or text == '') then return Error end -- Book subpages titles normalization to absolute names local lines_ = mw.text.split(text, "\n") local fullPageName local PrintVersion = {} if (page_before ~= '') then -- Add book header fullPageName = BookName .. sep .. page_before ChapterTitle = mw.title.new(fullPageName) if (ChapterTitle ~= nil and ChapterTitle.exists) then -- Title should be defined in the page itself table.insert(PrintVersion, frame:expandTemplate{ title = ':' .. fullPageName } .. '\n\n') end end -- Add book chapters for i,v in ipairs(lines_) do if mw.text.trim(v) ~= '' then fullPageName = p.getFullPageName(BookName, v) if fullPageName ~= nil then ChapterTitle = mw.title.new(fullPageName) if (ChapterTitle ~= nil and (do_not_evaluate_each_chapter or ChapterTitle.exists)) then PageName = p.getSubpageName(BookName, fullPageName) if (PageName ~= nil and PageName ~= '') then if Break ~= "" then table.insert(PrintVersion, frame:expandTemplate{title = Break}) end table.insert(PrintVersion, '\n<div style="clear:both;page-break-before:always;"></div>\n=' .. PageName .. '=\n') end table.insert(PrintVersion, frame:expandTemplate{ title = ':' .. fullPageName } .. '\n\n') else if debug then table.insert(PrintVersion, '<span class="error">Missing subpage "' .. fullPageName .. '" on line "' .. v .. '" for the book:</span> ' .. BookName .. '\n\n') end end end end end if (page_after ~= '') then -- Add book footer fullPageName = BookName .. sep .. page_after ChapterTitle = mw.title.new(fullPageName) if (ChapterTitle ~= nil and ChapterTitle.exists) then -- Title should be defined in the page itself table.insert(PrintVersion, frame:expandTemplate{ title = ':' .. fullPageName } .. '\n\n') end end Templates1 = "" if Beginning1 ~= "" then Templates1 = Templates1 .. frame:expandTemplate{title = Beginning1} .. '\n' end if Beginning2 ~= "" then Templates1 = Templates1 .. frame:expandTemplate{title = Beginning2} .. '\n' end Templates2 = "" if Ending1 ~= "" then Templates2 = Templates2 .. frame:expandTemplate{title = Ending1} .. '\n' end if Ending2 ~= "" then Templates2 = Templates2 .. frame:expandTemplate{title = Ending2} .. '\n' end return Templates1 .. table.concat(PrintVersion, "\r\n") .. Templates2 end function p.extract_fullPageName(frame) if frame == nil then return '' end if frame.args == nil then return '' end if frame.args[1] == nil then return '' end if frame.args[2] == nil then return '' end return p.getFullPageName(frame.args[1], frame.args[2]) end function p.getFullPageName(BookName, chapter) if (BookName ~= nil and mw.text.trim(BookName) ~= '') or (chapter ~= nil and mw.text.trim(chapter) ~= '') then BookName = mw.text.trim(BookName) chapter = mw.text.trim(chapter) BookName = mw.ustring.gsub(BookName, "_", " ") chapter = mw.ustring.gsub(chapter, "_", " ") else if debug then chapter = '<span class="error">Incorrect book or chapter name</span>' else chapter = '' end end chapter = mw.ustring.gsub(chapter, "{{BOOKNAME}}", BookName) chapter = mw.ustring.gsub(chapter, "{{[Mm]odulo%|([^}]+)}}", "[[%1]]") chapter = mw.ustring.gsub(chapter, " *%| *[0-9]*.*{{[Cc]%|([^}]+)%|[0-9]}}", "[[" .. BookName .. sep .. "%1]]") chapter = mw.ustring.gsub(chapter, " *%| *[0-9]*.*{{[Cc]%|([^}]+)}}", "[[" .. BookName .. sep .. "%1]]") chapter = mw.ustring.gsub(chapter, " *%[%[Image:[^%]]+%]%]", "") chapter = mw.ustring.gsub(chapter, "{{[^}]*}}", "") chapter = mw.ustring.gsub(chapter, "^[%#%*:; ]*", "") chapter = mw.ustring.gsub(chapter, "%[%[%.%.?/", "[[" .. BookName .. sep) chapter = mw.ustring.gsub(chapter, "%[%[/", "[[" .. BookName .. sep) chapter = mw.ustring.gsub(chapter, "%/%]%]", "]]") chapter = mw.ustring.gsub(chapter, "%/$", "") if mw.ustring.find(chapter, "%[%[") ~= nil then -- Pages titles extraction from the TOC if mw.ustring.find(chapter, "%|") == nil or (mw.ustring.find(chapter, "%]") ~= nil and mw.ustring.find(chapter, "%|") > mw.ustring.find(chapter, "%]")) then Ending = "%]" else if mw.ustring.find(chapter, "%/%|") == nil or mw.ustring.find(chapter, "%/%|") > mw.ustring.find(chapter, "%|") then Ending = "%|" else Ending = "%/%|" end end chapter = mw.text.split(chapter, Ending)[1] -- extraction of the line beginning --chapter = mw.text.split(chapter, "%[%[")[2] chapter = mw.ustring.gsub(chapter, "[^%[]*%[%[(.*)", "%1") -- brackets and pipes removal if chapter == BookName or chapter == BookName .. sep or mw.ustring.find(chapter, "%#") ~= nil then if debug then chapter = '<span class="error">Chapter = ' .. chapter .. ' => book name or another subpage name</span> with Ending = ' .. Ending else chapter = '' end else if include_book_subpages_only then -- Book subpages only (and ignoring the other links like "see also") if mw.ustring.find(chapter, BookName .. sep, 1, true) == nil then if debug then chapter = "<span class=\"error\">No book subpage into the internal link:</span> '" .. chapter .. "' doesn't include '" .. BookName .. sep .. "'" else chapter = '' end end end end else if debug then chapter = "<span class=\"error\">No internal link</span> for: " .. chapter .. "\n" else chapter = '' end end return chapter end function p.getSubpageName(bookName, fullPageName) k, v = mw.ustring.gsub(fullPageName, '^' .. p._escapePattern(bookName .. sep), '') return k end function p.extract_subpageName(frame) if frame == nil then return '' end if frame.args == nil then return '' end if frame.args[1] == nil then return '' end if frame.args[2] == nil then return '' end return p.getSubpageName(frame.args[1], frame.args[2]) end function p.displays_footer(frame) if not debug then Error = '' end if frame == nil then return "" end if frame.args == nil then return "" end if frame.args[1] == nil then return "" end local footer = {} local BookName = frame.args[1] if (BookName ~= nil and mw.text.trim(BookName) ~= "") then title = mw.title.new(BookName) if mw.ustring.find(BookName, sep .. TOC, 1, true) ~= nil then BookName = mw.ustring.gsub(BookName, "^(.*)" .. sep .. TOC .. "$", "%1") end else return Error end local currentPageName if frame.args[2] ~= nil and frame.args[2] ~= '' then currentPageName = frame.args[2] else currentPageName = p.getSubpageName(BookName, mw.title.getCurrentTitle().fullText) end if (currentPageName ~= nil and mw.text.trim(currentPageName) ~= "") then currentPageName = mw.text.trim(currentPageName) else return Error end if debug then table.insert(footer, " currentPageName = " .. currentPageName .. "\n") end if (title == nil or title == "") then return Error end text = title.getContent(title) if (text == nil or text == "") then return Error end if frame.args[3] ~= nil and frame.args[3] ~= '' then if frame.args[3] == 'programming' then if debug then table.insert(footer, " skin=programming\n\n") end templateLeft = '{| style="width:100%; border:solid 1px #71c837; background:#c6e9af; color:#2d5016;" class="navlinks noprint"\n| style="text-align:left; width:33%; font-size:90%;" class="navprevious" |[[Image:Navigation_Left_Arrow.svg|18px|link=printf|alt=]] [[printf]]\n' templateRight = '| style="text-align:center; width:34%;" class="navtitle" | [['..mw.title.getCurrentTitle().rootText..']]<br><b>'..mw.title.getCurrentTitle().subpageText..'</b>\n| style="text-align:right; width:33%; font-size:90%;" class="navnext" | [[printf]] [[Image:Navigation_Right_Arrow.svg|18px|link=printf|alt=]]\n|}' end end -- Book subpages titles normalization to absolute names local lines_ = mw.text.split(text, "\n") local previousChapter = "" local found = false local fullPageName local homepage = false local subpageName local rawFullPageName if (currentPageName == BookName) then if debug then table.insert(footer, " homepage\n") end homepage = true end for i, v in ipairs(lines_) do rawFullPageName = mw.text.trim(v) if rawFullPageName ~= '' then fullPageName = p.getFullPageName(BookName, rawFullPageName) if debug then if mw.ustring.find(fullPageName, "<span class=\"error\">No internal link</span>") ~= nil then fullPageName = nil else table.insert(footer, " research into: " .. rawFullPageName .. "\n") table.insert(footer, " extraction of: " .. fullPageName .. "\n") end end if fullPageName ~= nil then if mw.ustring.find(fullPageName, BookName .. sep, 1, true) == nil then if debug then table.insert(footer, " replacement of " .. fullPageName .. " by " .. BookName .. sep .. fullPageName .. "\n") end fullPageName = BookName .. sep .. fullPageName end ChapterTitle = mw.title.new(fullPageName) if (ChapterTitle ~= nil and ChapterTitle.exists) then subpageName = p.getSubpageName(BookName, fullPageName) if debug then table.insert(footer, " cut subpage: " .. subpageName .. "\n") end if (subpageName ~= nil and subpageName ~= "") then if found == true or homepage == true then if debug then table.insert(footer, "<span class=\"error\">Previous & next chapter insertion</span>\n") end if homepage == false then if previousChapter == "" then theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. "|" .. TOC) else theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. sep .. previousChapter .. "|" .. previousChapter) end table.insert(footer, theTemplateLeft) end theTemplateRight, nb = mw.ustring.gsub(templateRight, "printf", BookName .. sep .. subpageName .. "|" .. subpageName) table.insert(footer, theTemplateRight) break elseif subpageName == currentPageName then if debug then table.insert(footer, "<span class=\"error\">Page</span> '" .. currentPageName .. "' found\n\n") end found = true elseif fullPageName ~= "" then if debug then table.insert(footer, " " .. subpageName .. " is different from " .. currentPageName .. "\n") end previousChapter = subpageName else if debug then table.insert(footer, "<span class=\"error\">The current page</span> '" .. subpageName .. "' is not '" .. currentPageName .. "'") end end end else if debug then table.insert(footer, "<span class=\"error\">The page</span> '" .. fullPageName .. "' doesn't exist, for '" .. currentPageName .. "'\n\n") end end end end end if found == true and table.getn(footer) == 0 then if debug then table.insert(footer, "<span class=\"error\">No next chapter</span>\n") end theTemplateLeft, nb = mw.ustring.gsub(templateLeft, "printf", BookName .. sep .. previousChapter .. "|" .. previousChapter) table.insert(footer, theTemplateLeft) theTemplateRight, nb = mw.ustring.gsub(templateRight, "printf", BookName .. "|" .. TOC) table.insert(footer, theTemplateRight) end return table.concat(footer, "") end return p 35av02bakr987k40bv756fw0o856sxj ব্যবহারকারী আলাপ:DiBabelYurikBot 3 15839 46497 2022-08-19T12:40:18Z KanikBot 8129 স্বাগতম! wikitext text/x-wiki == বাংলা উইকিবইয়ে স্বাগত == {{স্বাগত/২য় সংস্করণ}} ১২:৪০, ১৯ আগস্ট ২০২২ (ইউটিসি) ps6bwjcqw2oo8mvu30prsblwhmd97wv ব্যবহারকারী আলাপ:Saeedmoin 3 15840 46499 2022-08-19T18:40:18Z KanikBot 8129 স্বাগতম! wikitext text/x-wiki == বাংলা উইকিবইয়ে স্বাগত == {{স্বাগত/২য় সংস্করণ}} ১৮:৪০, ১৯ আগস্ট ২০২২ (ইউটিসি) 19xzca6eu9570cnks59882fyqvlbgwv ব্যবহারকারী আলাপ:Botcon2 3 15841 46500 2022-08-19T18:40:29Z KanikBot 8129 স্বাগতম! wikitext text/x-wiki == বাংলা উইকিবইয়ে স্বাগত == {{স্বাগত/২য় সংস্করণ}} ১৮:৪০, ১৯ আগস্ট ২০২২ (ইউটিসি) 19xzca6eu9570cnks59882fyqvlbgwv ব্যবহারকারী আলাপ:নাইমুর হাসিব আলভী 3 15842 46501 2022-08-19T21:40:38Z KanikBot 8129 স্বাগতম! wikitext text/x-wiki == বাংলা উইকিবইয়ে স্বাগত == {{স্বাগত/২য় সংস্করণ}} ২১:৪০, ১৯ আগস্ট ২০২২ (ইউটিসি) a8ui5pcoooj6q3ldmc9s6wzh9nyl1lu