উইকিবই
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