پودمان:Citation/CS1/Configuration: تفاوت میان نسخه‌ها

۸٬۱۰۷ بایت اضافه‌شده ،  ‏۴ سپتامبر ۲۰۱۹
hide deprecated parameters error messages and hide missing periodical error messages;
جز (۱ نسخه واردشده)
(hide deprecated parameters error messages and hide missing periodical error messages;)
خط ۱: خط ۱:
local citation_config = {};


--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------
--[[--------------------------< U N C A T E G O R I Z E D _ N A M E S P A C E S >------------------------------
خط ۱۱: خط ۹:
local uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk', 'File_talk', 'Template_talk', 'Help_talk', 'Category_talk', 'Portal_talk', 'Book_talk', 'Draft_talk', 'Education_Program_talk', 'Module_talk', 'MediaWiki_talk' };
local uncategorized_namespaces = { 'User', 'Talk', 'User_talk', 'Wikipedia_talk', 'File_talk', 'Template_talk', 'Help_talk', 'Category_talk', 'Portal_talk', 'Book_talk', 'Draft_talk', 'Education_Program_talk', 'Module_talk', 'MediaWiki_talk' };


local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases'}; -- list of Lua patterns found in page names of pages we should not categorize
local uncategorized_subpages = {'/[Ss]andbox', '/[Tt]estcases'}; -- list of Lua patterns found in page names of pages we should not categorize
 


--[[--------------------------< M E S S A G E S >--------------------------------------------------------------
--[[--------------------------< M E S S A G E S >--------------------------------------------------------------
خط ۲۴: خط ۲۳:


local messages = {
local messages = {
['agency'] = '$1 $2', -- $1 is sepc, $2 is agency
['archived-dead'] = 'Archived from $1 on $2',
['archived-dead'] = 'Archived from $1 on $2',
['archived-not-dead'] = '$1 from the original on $2',
['archived-live'] = '$1 from the original on $2',
['archived-missing'] = 'Archived from the original$1 on $2',
['archived-missing'] = 'Archived from the original$1 on $2',
['archived'] = 'Archived',
['archived'] = 'Archived',
خط ۴۲: خط ۴۲:
['newsgroup'] = '[[Usenet newsgroup|Newsgroup]]:&nbsp;$1',
['newsgroup'] = '[[Usenet newsgroup|Newsgroup]]:&nbsp;$1',
['original'] = 'the original',
['original'] = 'the original',
['origyear'] = ' [$1]',
['published'] = ' (published $1)',
['published'] = ' (published $1)',
['retrieved'] = 'Retrieved $1',
['retrieved'] = 'Retrieved $1',
خط ۴۷: خط ۴۸:
['section'] = '§ $1',
['section'] = '§ $1',
['sections'] = '§§ $1',
['sections'] = '§§ $1',
['series'] = 'Series $1',
['series'] = '$1 $2', -- $1 is sepc, $2 is series
['seriesnum'] = 'Series $1',
['translated'] = 'Translated by $1',
['translated'] = 'Translated by $1',
['type'] = ' ($1)', -- for titletype
['type'] = ' ($1)', -- for titletype
خط ۹۵: خط ۹۷:
['unknown_argument_map'] = 'Argument map not defined for this variable',
['unknown_argument_map'] = 'Argument map not defined for this variable',
['bare_url_no_origin'] = 'Bare url found but origin indicator is nil or empty',
['bare_url_no_origin'] = 'Bare url found but origin indicator is nil or empty',
}
--[=[-------------------------< E T _ A L _ P A T T E R N S >--------------------------------------------------
This table provides Lua patterns for the phrase "et al" and variants in name text
(author, editor, etc.). The main module uses these to identify and emit the 'etal' message.
TODO: detect wikilinked et al.:  [[et al]].
]=]
local et_al_patterns = {
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][%.\"']*$", -- variations on the 'et al' theme
"[;,]? *[\"']*%f[%a][Ee][Tt]%.? *[Aa][Ll][Ii][Aa][%.\"']*$", -- variations on the 'et alia' theme
"[;,]? *%f[%a]and [Oo]thers", -- and alternate to et al.
}
--[[--------------------------< E D I T O R _ M A R K U P _ P A T T E R N S >----------------------------------
This table provides Lua patterns for the phrase "ed" and variants in name text
(author, editor, etc.). The main module uses these to identify and emit the
'extra_text_names' message. (It is not the only series of patterns for this message.)
]]
local editor_markup_patterns = { -- these patterns match annotations at end of name
'%f[%(%[][%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]?$', -- (ed) or (eds): leading '(', case insensitive 'ed', optional 's', '.' and/or ')'
'[,%.%s]%f[e]eds?%.?$', -- ed or eds: without '('or ')'; case sensitive (ED could be initials Ed could be name)
'%f[%(%[][%(%[]%s*[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?%s*[%)%]]?$', -- (editor) or (editors): leading '(', case insensitive, optional '.' and/or ')'
'[,%.%s]%f[Ee][Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%.?$', -- editor or editors: without '('or ')'; case insensitive
-- these patterns match annotations at beginning of name
'^eds?[%.,;]', -- ed. or eds.: lower case only, optional 's', requires '.'
'^[%(%[]%s*[Ee][Dd][Ss]?%.?%s*[%)%]]', -- (ed) or (eds): also sqare brackets, case insensitive, optional 's', '.'
'^[%(%[]?%s*[Ee][Dd][Ii][Tt][Oo][Rr][Ss]?%A', -- (editor or (editors: also sq brackets, case insensitive, optional brackets, 's'
'^[%(%[]?%s*[Ee][Dd][Ii][Tt][Ee][Dd]%A', -- (edited: also sq brackets, case insensitive, optional brackets
}
}


خط ۱۸۷: خط ۲۲۶:
['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
['ASINTLD'] = {'ASIN-TLD', 'asin-tld'},
['At'] = 'at',
['At'] = 'at',
['Authors'] = {'authors', 'people', 'host', 'credits'},
['Authors'] = {'authors', 'people', 'credits'},
['BookTitle'] = {'book-title', 'booktitle'},
['BookTitle'] = {'book-title', 'booktitle'},
['Cartography'] = 'cartography',
['Cartography'] = 'cartography',
خط ۲۰۱: خط ۲۴۰:
['Contribution'] = 'contribution', -- introduction, foreword, afterword, etc; required when |contributor= set
['Contribution'] = 'contribution', -- introduction, foreword, afterword, etc; required when |contributor= set
['Date'] = 'date',
['Date'] = 'date',
['DeadURL'] = {'dead-url', 'deadurl'},
['Degree'] = 'degree',
['Degree'] = 'degree',
['DF'] = 'df',
['DF'] = 'df',
['DisplayAuthors'] = {'display-authors', 'displayauthors'},
['DisplayAuthors'] = {'display-authors', 'displayauthors'},
['DisplayContributors'] = 'display-contributors',
['DisplayEditors'] = {'display-editors', 'displayeditors'},
['DisplayEditors'] = {'display-editors', 'displayeditors'},
['DisplayInterviewers'] = 'display-interviewers',
['DisplayTranslators'] = 'display-translators',
['Docket'] = 'docket',
['Docket'] = 'docket',
['DoiBroken'] = {'doi-broken', 'doi-broken-date', 'doi-inactive-date'},
['DoiBroken'] = {'doi-broken', 'doi-broken-date', 'doi-inactive-date'},
خط ۲۲۸: خط ۲۶۹:
['MapFormat'] = 'map-format', -- cite map only
['MapFormat'] = 'map-format', -- cite map only
['MapURL'] = {'mapurl', 'map-url'}, -- cite map only
['MapURL'] = {'mapurl', 'map-url'}, -- cite map only
['MapUrlAccess'] = 'map-url-access', -- cite map only
['MessageID'] = 'message-id',
['MessageID'] = 'message-id',
['Minutes'] = 'minutes',
['Minutes'] = 'minutes',
خط ۲۴۱: خط ۲۸۳:
['Page'] = {'p', 'page'},
['Page'] = {'p', 'page'},
['Pages'] = {'pp', 'pages'},
['Pages'] = {'pp', 'pages'},
['Periodical'] = {'journal', 'newspaper', 'magazine', 'work',
['Periodical'] = {'journal', 'magazine', 'newspaper', 'periodical', 'website', 'work',
'website', 'periodical', 'encyclopedia', 'encyclopaedia', 'dictionary', 'mailinglist'},
'encyclopedia', 'encyclopaedia', 'dictionary', 'mailinglist'}, -- these masquerade as periodicals but aren't TODO: find a better way to handle these?
['Place'] = {'place', 'location'},
['Place'] = {'place', 'location'},
['PostScript'] = 'postscript',
['PostScript'] = 'postscript',
['PublicationDate'] = {'publicationdate', 'publication-date'},
['PublicationDate'] = {'publicationdate', 'publication-date'},
['PublicationPlace'] = {'publication-place', 'publicationplace'},
['PublicationPlace'] = {'publication-place', 'publicationplace'},
['PublisherName'] = {'publisher', 'distributor', 'institution', 'newsgroup'},
['PublisherName'] = {'publisher', 'institution', 'newsgroup'},
['Quote'] = {'quote', 'quotation'},
['Quote'] = {'quote', 'quotation'},
['Ref'] = 'ref',
['Ref'] = 'ref',
['RegistrationRequired'] = 'registration',
['RegistrationRequired'] = 'registration',
['Scale'] = 'scale',
['Scale'] = 'scale',
['ScriptChapter'] = 'script-chapter',
['ScriptChapter'] = {'script-chapter', 'script-contribution', 'script-entry', 'script-article', 'script-section'},
['ScriptPeriodical'] = {'script-journal', 'script-magazine', 'script-newspaper', 'script-periodical', 'script-website', 'script-work'},
['ScriptTitle'] = 'script-title',
['ScriptTitle'] = 'script-title',
['Section'] = 'section',
['Section'] = 'section',
خط ۲۷۱: خط ۳۱۴:
['TitleNote'] = 'department',
['TitleNote'] = 'department',
['TitleType'] = {'type', 'medium'},
['TitleType'] = {'type', 'medium'},
['TransChapter'] = 'trans-chapter',
['TransChapter'] = {'trans-article', 'trans-chapter', 'trans-contribution', 'trans-entry', 'trans-section'},
['TransMap'] = 'trans-map', -- cite map only
['Transcript'] = 'transcript',
['Transcript'] = 'transcript',
['TranscriptFormat'] = 'transcript-format',
['TranscriptFormat'] = 'transcript-format',
['TranscriptURL'] = {'transcript-url', 'transcripturl'},
['TranscriptURL'] = {'transcript-url', 'transcripturl'},
['TransMap'] = 'trans-map', -- cite map only
['TransPeriodical'] = {'trans-journal', 'trans-magazine', 'trans-newspaper', 'trans-periodical', 'trans-website', 'trans-work'},
['TransTitle'] = 'trans-title',
['TransTitle'] = 'trans-title',
['URL'] = {'url', 'URL'},
['URL'] = {'url', 'URL'},
['UrlAccess'] = {'url-access'},
['UrlAccess'] = {'url-access'},
['UrlStatus'] = {'url-status', 'dead-url', 'deadurl'}, -- TODO: remove 'dead-url', 'deadurl'
['Vauthors'] = 'vauthors',
['Vauthors'] = 'vauthors',
['Veditors'] = 'veditors',
['Veditors'] = 'veditors',
خط ۲۸۶: خط ۳۳۱:


['AuthorList-First'] = {"first#", "given#", "author-first#", "author#-first"},
['AuthorList-First'] = {"first#", "given#", "author-first#", "author#-first"},
['AuthorList-Last'] = {"last#", "author#", "surname#", "author-last#", "author#-last", "subject#"},
['AuthorList-Last'] = {"last#", "author#", "surname#", "author-last#", "author#-last", "subject#", 'host#'},
['AuthorList-Link'] = {"authorlink#", "author-link#", "author#-link", "subjectlink#", "author#link", "subject-link#", "subject#-link", "subject#link"},
['AuthorList-Link'] = {"authorlink#", "author-link#", "author#-link", "subjectlink#", "author#link", "subject-link#", "subject#-link", "subject#link"},
['AuthorList-Mask'] = {"author-mask#", "authormask#", "author#mask", "author#-mask"},
['AuthorList-Mask'] = {"author-mask#", "authormask#", "author#mask", "author#-mask"},
خط ۳۱۰: خط ۳۵۵:
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'},
['TranslatorList-Mask'] = {'translator-mask#', 'translator#-mask'},
}
}
--[[--------------------------< P U N C T _ S K I P >----------------------------------------------------------
builds a table of parameter names that the extraneous terminal punctuation check should not check.
]]
local punct_skip = {};
local meta_params = { -- table of aliases[] keys (meta parameters); each key has a table of parameter names for a value
'BookTitle', 'Chapter', 'ScriptChapter', 'ScriptTitle', 'Title', 'TransChapter', 'Transcript', 'TransMap', 'TransTitle', -- title-holding parameters
'PostScript', 'Quote', -- miscellaneous
'ArchiveURL', 'ChapterURL', 'ConferenceURL', 'LayURL', 'MapURL', 'TranscriptURL', 'URL', -- url-holding parameters
}
for _, meta_param in ipairs (meta_params) do -- for each meta parameter key
local params = aliases[meta_param]; -- get the parameter or the table of parameters associated with the meta parameter name
if 'string' == type (params) then
punct_skip[params] = 1; -- just a single parameter
else
for _, param in ipairs (params) do -- get the parameter name
punct_skip[param] = 1; -- add the parameter name to the skip table
end
end
end




خط ۳۲۱: خط ۳۹۲:


local special_case_translation = {
local special_case_translation = {
['AuthorList'] = "authors list", -- these for multiple names maint categories
['AuthorList'] = 'authors list', -- these for multiple names maint categories
['ContributorList'] = "contributors list",
['ContributorList'] = 'contributors list',
['EditorList'] = "editors list",
['EditorList'] = 'editors list',
['InterviewerList'] = "interviewers list",
['InterviewerList'] = 'interviewers list',
['TranslatorList'] = "translators list",
['TranslatorList'] = 'translators list',
['authors'] = "authors", -- used in get_display_authors_editors()
['authors'] = 'authors', -- used in get_display_names()
['editors'] = "editors",
['contributors'] = 'contributors',
['editors'] = 'editors',
['interviewers'] = 'interviewers',
['translators'] = 'translators',


['archived_copy'] = '^archived?%s+copy$', -- lua pattern to match pseudo title used by Internet Archive bot and others as place holder for unknown |title= value
['archived_copy'] = '^archived?%s+copy$', -- lua pattern to match pseudo title used by Internet Archive bot and others as place holder for unknown |title= value
خط ۳۴۳: خط ۴۱۷:


local defaults = {
local defaults = {
['DeadURL'] = 'yes',
['UrlStatus'] = 'dead',
}
}


خط ۳۶۷: خط ۴۴۱:
local date_names = {
local date_names = {
['en'] = { -- English
['en'] = { -- English
['long'] = {['January']=1, ['February']=2, ['March']=3, ['April']=4, ['May']=5, ['June']=6, ['July']=7, ['August']=8, ['September']=9, ['October']=10, ['November']=11, ['December']=12};
['long'] = {['January']=1, ['February']=2, ['March']=3, ['April']=4, ['May']=5, ['June']=6, ['July']=7, ['August']=8, ['September']=9, ['October']=10, ['November']=11, ['December']=12},
['short'] = {['Jan']=1, ['Feb']=2, ['Mar']=3, ['Apr']=4, ['May']=5, ['Jun']=6, ['Jul']=7, ['Aug']=8, ['Sep']=9, ['Oct']=10, ['Nov']=11, ['Dec']=12};
['short'] = {['Jan']=1, ['Feb']=2, ['Mar']=3, ['Apr']=4, ['May']=5, ['Jun']=6, ['Jul']=7, ['Aug']=8, ['Sep']=9, ['Oct']=10, ['Nov']=11, ['Dec']=12},
['season'] = {['Winter']=24, ['Spring']=21, ['Summer']=22, ['Fall']=23, ['Autumn']=23};
['season'] = {['Winter']=24, ['Spring']=21, ['Summer']=22, ['Fall']=23, ['Autumn']=23},
['named'] = {['Christmas']=99};
['named'] = {['Christmas']=99},
},
},
['local'] = { -- replace these English date names with the local language equivalents
['local'] = { -- replace these English date names with the local language equivalents
['long'] = {['January']=1, ['February']=2, ['March']=3, ['April']=4, ['May']=5, ['June']=6, ['July']=7, ['August']=8, ['September']=9, ['October']=10, ['November']=11, ['December']=12};
['long'] = {['January']=1, ['February']=2, ['March']=3, ['April']=4, ['May']=5, ['June']=6, ['July']=7, ['August']=8, ['September']=9, ['October']=10, ['November']=11, ['December']=12},
['short'] = {['Jan']=1, ['Feb']=2, ['Mar']=3, ['Apr']=4, ['May']=5, ['Jun']=6, ['Jul']=7, ['Aug']=8, ['Sep']=9, ['Oct']=10, ['Nov']=11, ['Dec']=12};
['short'] = {['Jan']=1, ['Feb']=2, ['Mar']=3, ['Apr']=4, ['May']=5, ['Jun']=6, ['Jul']=7, ['Aug']=8, ['Sep']=9, ['Oct']=10, ['Nov']=11, ['Dec']=12},
['season'] = {['Winter']=24, ['Spring']=21, ['Summer']=22, ['Fall']=23, ['Autumn']=23};
['season'] = {['Winter']=24, ['Spring']=21, ['Summer']=22, ['Fall']=23, ['Autumn']=23},
['named'] = {['Christmas']=99};
['named'] = {['Christmas']=99},
},
},
['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}; -- used to convert local language digits to Western 0-9
['inv_local_l'] = {}, -- used in date reformatting; copy of date_names['local'].long where k/v are inverted: [1]='<local name>' etc
['xlate_digits'] = {};
['inv_local_s'] = {}, -- used in date reformatting; copy of date_names['local'].short where k/v are inverted: [1]='<local name>' etc
['local_digits'] = {['0'] = '0', ['1'] = '1', ['2'] = '2', ['3'] = '3', ['4'] = '4', ['5'] = '5', ['6'] = '6', ['7'] = '7', ['8'] = '8', ['9'] = '9'}, -- used to convert local language digits to Western 0-9
['xlate_digits'] = {},
}
 
for name, i in pairs (date_names['local'].long) do -- this table is ['name'] = i
date_names['inv_local_l'][i] = name; -- invert to get [i] = 'name' for conversions from ymd
end
 
for name, i in pairs (date_names['local'].short) do -- this table is ['name'] = i
date_names['inv_local_s'][i] = name; -- invert to get [i] = 'name' for conversions from ymd
end
 
for ld, ed in pairs (date_names.local_digits) do -- make a digit translation table for simple date translation from en to local language using local_digits table
date_names.xlate_digits [ed] = ld; -- en digit becomes index with local digit as the value
end
 
local df_template_patterns = { -- table of redirects to {{Use dmy dates}} and {{Use mdy dates}}
'{{ *[Uu]se (dmy) dates *[|}]', -- 915k -- sorted by approximate transclusion count
'{{ *[Uu]se *(mdy) *dates *[|}]', -- 161k
'{{ *[Uu]se (DMY) dates *[|}]', -- 2929
'{{ *[Uu]se *(dmy) *[|}]', -- 250 + 34
'{{ *([Dd]my) *[|}]', -- 272
'{{ *[Uu]se (MDY) dates *[|}]', -- 173
'{{ *[Uu]se *(mdy) *[|}]', -- 59 + 12
'{{ *([Mm]dy) *[|}]', -- 9
'{{ *[Uu]se (MDY) *[|}]', -- 3
'{{ *([Dd]MY) *[|}]', -- 2
'{{ *([Mm]DY) *[|}]', -- 0
-- '{{ *[Uu]se(mdy) *[|}]',
-- '{{ *[Uu]se(mdy)dates *[|}]',
-- '{{ *[Uu]se(dmy) *[|}]',
}
}


for ld, ed in pairs (date_names.local_digits) do -- make a digit translation table for simple date translation from en to local language using local_digits table
local function get_date_format ()
date_names.xlate_digits [ed] = ld; -- en digit becomes index with local digit as the value
local content = mw.title.getCurrentTitle():getContent() or ''; -- get the content of the article or ''; new pages edited w/ve do not have 'content' until saved; ve does not preview; phab:T221625
for _, pattern in ipairs (df_template_patterns) do -- loop through the patterns looking for {{Use dmy dates}} or {{Use mdy dates}} or any of their redirects
local start, _, match = content:find(pattern); -- match is the three letters indicating desired date format
if match then
content = content:match ('%b{}', start); -- get the whole template
if content:match ('| *cs1%-dates *= *[lsy][sy]?') then -- look for |cs1-dates=publication date length access-/archive-date length
return match:lower() .. '-' .. content:match ('| *cs1%-dates *= *([lsy][sy]?)');
else
return match:lower() .. '-all'; -- no |cs1-dates= k/v pair; return value appropriate for use in |df=
end
end
end
end
end
local global_df = get_date_format ();




خط ۴۰۸: خط ۵۲۶:
local keywords = {
local keywords = {
['yes_true_y'] = {'yes', 'true', 'y'}, -- ignore-isbn-error, last-author-amp, no-tracking, nopp, registration, subscription
['yes_true_y'] = {'yes', 'true', 'y'}, -- ignore-isbn-error, last-author-amp, no-tracking, nopp, registration, subscription
-- ['deadurl'] = {'yes', 'true', 'y', 'no', 'unfit', 'usurped', 'unfit no archive', 'usurped no archive'}, -- hidden 2016-04-10; see Help_talk:Citation_Style_1#Recycled_urls
['deadurl'] = {'yes', 'true', 'y', 'no', 'unfit', 'usurped', 'bot: unknown'},
['deadurl'] = {'yes', 'true', 'y', 'no', 'unfit', 'usurped', 'bot: unknown'},
['mode'] = {'cs1', 'cs2', 'mla'},
['mode'] = {'cs1', 'cs2'},
['name-list-format'] = {'vanc'},
['name-list-format'] = {'vanc'},
['contribution'] = {'afterword', 'foreword', 'introduction', 'preface'}, -- generic contribution titles that are rendered unquoted in the 'chapter' position
['contribution'] = {'afterword', 'foreword', 'introduction', 'preface'}, -- generic contribution titles that are rendered unquoted in the 'chapter' position
['date-format'] = {'dmy', 'dmy-all', 'mdy', 'mdy-all', 'ymd', 'ymd-all'},
['date-format'] = {'dmy', 'dmy-all', 'mdy', 'mdy-all', 'ymd', 'ymd-all'},
['url-access'] = {'subscription', 'limited', 'registration'},   -- access level of a URL (subscription required, limited access, free registration required), free to read by default
-- ['date-format'] = {'dmy', 'dmy-all', 'mdy', 'mdy-all', 'ymd', 'ymd-all', 'yMd', 'yMd-all'}, -- not supported at en.wiki
    ['id-access'] = {'free'},                                         -- access level of an identifier (free to read), subscription required (or no full text) by default
['url-access'] = {'subscription', 'limited', 'registration'}, -- access level of a URL (subscription required, limited access, registration required); free to read by default
['url-status'] = {'dead', 'live', 'unfit', 'usurped', 'bot: unknown'}, -- replacement for |dead-url=
['id-access'] = {'free'}, -- access level of an identifier (free to read); not free-to-read  by default
}
}


خط ۴۳۸: خط ۵۵۷:
table data in an arbitrary order.  Here, we want to process the table from top to bottom because the entries at
table data in an arbitrary order.  Here, we want to process the table from top to bottom because the entries at
the top of the table are also found in the ranges specified by the entries at the bottom of the table.
the top of the table are also found in the ranges specified by the entries at the bottom of the table.
This list contains patterns for templates like {{'}} which isn't an error but transcludes characters that are
invisible.  These kinds of patterns must be recognized by the functions that use this list.


Also here is a pattern that recognizes stripmarkers that begin and end with the delete characters.  The nowiki
Also here is a pattern that recognizes stripmarkers that begin and end with the delete characters.  The nowiki
خط ۵۰۲: خط ۶۱۸:
'he', 'hi', 'hy', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ku',
'he', 'hi', 'hy', 'ja', 'ka', 'kk', 'km', 'kn', 'ko', 'ku',
'mk', 'ml', 'mn', 'mr', 'my', 'ne', 'ps', 'ru', 'sd', 'si',
'mk', 'ml', 'mn', 'mr', 'my', 'ne', 'ps', 'ru', 'sd', 'si',
'sr', 'ta', 'tg', 'th', 'uk', 'ug', 'ur', 'yi', 'zh'
'sr', 'ta', 'tg', 'th', 'ug', 'uk', 'ur', 'uz', 'yi', 'zh'
};
};


خط ۵۱۲: خط ۶۲۸:
]]
]]


local lang_code_remap = { -- used for |language= and |script-title= / |script-chapter=
local lang_code_remap = { -- used for |language= and |script-title= / |script-chapter=
['als'] = 'Tosk Albanian', -- MediaWiki returns Alemannisch  
['als'] = 'Tosk Albanian', -- MediaWiki returns Alemannisch  
['bh'] = 'Bihari', -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri wWikipedia: bh.wikipedia.org
['bh'] = 'Bihari', -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri wWikipedia: bh.wikipedia.org
['bn'] = 'Bengali', -- MediaWiki returns Bangla
['bn'] = 'Bengali', -- MediaWiki returns Bangla
['ca-valencia'] = 'Valencian', -- IETF variant of Catalan
['ca-valencia'] = 'Valencian', -- IETF variant of Catalan
['crh'] = 'Crimean Tatar', -- synonymous with Crimean Turkish (return value from {{#language:crh|en}})
['crh'] = 'Crimean Tatar', -- synonymous with Crimean Turkish (return value from {{#language:crh|en}})
}
}
 
local lang_name_remap = { -- used for |language=
['alemannisch'] = {'Swiss German', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org
['bangla'] = {'Bengali', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap
['bengali'] = {'Bengali', 'bn'}, -- MediaWiki doesn't use exonym so here we provide correct language name and 639-1 code
['bihari'] = {'Bihari', 'bh'}, -- MediaWiki replaces 'Bihari' with 'Bhojpuri' so 'Bihari' cannot be found
['bhojpuri'] = {'Bhojpuri', 'bho'}, -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org
['crimean tatar'] = {'Crimean Tatar', 'crh'}, -- MediaWiki uses 'crh' as a subdomain name for Crimean Tatar Wikipedia: crh.wikipedia.org
['tosk albanian'] = {'Tosk Albanian', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found
['valencian'] = {'Valencian', 'ca'}, -- variant of Catalan; categorizes as Catalan
}


local lang_name_remap = { -- used for |language=
['alemannisch'] = {'Swiss German', 'gsw'}, -- not an ISO or IANA language name; MediaWiki uses 'als' as a subdomain name for Alemannic Wikipedia: als.wikipedia.org
['bangla'] = {'Bengali', 'bn'}, -- MediaWiki returns Bangla (the endonym) but we want Bengali (the exonym); here we remap
['bengali'] = {'Bengali', 'bn'}, -- MediaWiki doesn't use exonym so here we provide correct language name and 639-1 code
['bihari'] = {'Bihari', 'bh'}, -- MediaWiki replaces 'Bihari' with 'Bhojpuri' so 'Bihari' cannot be found
['bhojpuri'] = {'Bhojpuri', 'bho'}, -- MediaWiki uses 'bh' as a subdomain name for Bhojpuri Wikipedia: bh.wikipedia.org
['crimean tatar'] = {'Crimean Tatar', 'crh'}, -- MediaWiki uses 'crh' as a subdomain name for Crimean Tatar Wikipedia: crh.wikipedia.org
['tosk albanian'] = {'Tosk Albanian', 'als'}, -- MediaWiki replaces 'Tosk Albanian' with 'Alemannisch' so 'Tosk Albanian' cannot be found
['valencian'] = {'Valencian', 'ca'}, -- variant of Catalan; categorizes as Catalan
}


--[[--------------------------< M A I N T E N A N C E _ C A T E G O R I E S >----------------------------------
--[[--------------------------< M A I N T E N A N C E _ C A T E G O R I E S >----------------------------------
خط ۵۳۹: خط ۶۵۶:
local maint_cats = {
local maint_cats = {
['ASIN'] = 'CS1 maint: ASIN uses ISBN',
['ASIN'] = 'CS1 maint: ASIN uses ISBN',
['archived_copy'] = 'CS1 maint: Archived copy as title',
['archived_copy'] = 'CS1 maint: archived copy as title',
['authors'] = 'CS1 maint: Uses authors parameter',
['authors'] = 'CS1 maint: uses authors parameter',
['bot:_unknown'] = 'CS1 maint: BOT: original-url status unknown',
['bot:_unknown'] = 'CS1 maint: BOT: original-url status unknown',
['date_format'] = 'CS1 maint: Date format',
['date_format'] = 'CS1 maint: date format',
['date_year'] = 'CS1 maint: Date and year',
['date_year'] = 'CS1 maint: date and year',
['disp_auth_ed'] = 'CS1 maint: display-$1', -- $1 is authors or editors; gets value from special_case_translation table
['disp_name'] = 'CS1 maint: display-$1', -- $1 is authors, contributors, editors, interviewers, translators; gets value from special_case_translation table
['editors'] = 'CS1 maint: Uses editors parameter',
['editors'] = 'CS1 maint: uses editors parameter',
['embargo'] = 'CS1 maint: PMC embargo expired',
['embargo'] = 'CS1 maint: PMC embargo expired',
['english'] = 'CS1 maint: English language specified',
['extra_punct'] = 'CS1 maint: extra punctuation',
['etal'] = 'CS1 maint: Explicit use of et al.',
['extra_text'] = 'CS1 maint: extra text',
['extra_text'] = 'CS1 maint: Extra text',
['extra_text_names'] = 'CS1 maint: extra text: $1', -- $1 is <name>s list; gets value from special_case_translation table
['extra_text_names'] = 'CS1 maint: Extra text: $1', -- $1 is <name>s list; gets value from special_case_translation table
['ignore_isbn_err'] = 'CS1 maint: ignored ISBN errors',
['ignore_isbn_err'] = 'CS1 maint: Ignored ISBN errors',
['mult_names'] = 'CS1 maint: multiple names: $1', -- $1 is <name>s list; gets value from special_case_translation table
['missing_pipe'] = 'CS1 maint: Missing pipe',
['others'] = 'CS1 maint: others',
['mult_names'] = 'CS1 maint: Multiple names: $1', -- $1 is <name>s list; gets value from special_case_translation table
['pmc_format'] = 'CS1 maint: PMC format',
['pmc_format'] = 'CS1 maint: PMC format',
['unfit'] = 'CS1 maint: Unfit url',
['unfit'] = 'CS1 maint: unfit url',
['unknown_lang'] = 'CS1 maint: Unrecognized language',
['unknown_lang'] = 'CS1 maint: unrecognized language',
['untitled'] = 'CS1 maint: Untitled periodical',
['untitled'] = 'CS1 maint: untitled periodical',
['zbl'] = 'CS1 maint: ZBL',
}
}


خط ۵۶۹: خط ۶۸۶:
local prop_cats = {
local prop_cats = {
['foreign_lang_source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is language name, $2 is ISO639-1 code
['foreign_lang_source'] = 'CS1 $1-language sources ($2)', -- |language= categories; $1 is language name, $2 is ISO639-1 code
['foreign_lang_source_2'] = 'CS1 foreign language sources (ISO 639-2)|$1', -- |language= category; a cat for ISO639-2 languages; $1 is the ISO 639-2 code
['foreign_lang_source_2'] = 'CS1 foreign language sources (ISO 639-2)|$1', -- |language= category; a cat for ISO639-2 languages; $1 is the ISO 639-2 code used as a sort key
['script'] = 'CS1 uses foreign language script', -- when language specified by |script-title=xx: doesn't have its own category
['script'] = 'CS1 uses foreign language script', -- when language specified by |script-title=xx: doesn't have its own category
['script_with_name'] = 'CS1 uses $1-language script ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code
['script_with_name'] = 'CS1 uses $1-language script ($2)', -- |script-title=xx: has matching category; $1 is language name, $2 is ISO639-1 code
خط ۶۱۲: خط ۷۲۹:
anchor = 'accessdate_missing_url',
anchor = 'accessdate_missing_url',
category = 'Pages using citations with accessdate and no URL',
category = 'Pages using citations with accessdate and no URL',
hidden = false
},
apostrophe_markup = {
message = 'Italic or bold markup not allowed in: <code class="cs1-code">&#124;$1=</code>',
anchor = 'apostrophe_markup',
category = 'CS1 errors: markup',
hidden = false
hidden = false
  },
  },
خط ۸۴۰: خط ۹۶۳:
anchor = 'deprecated_params',
anchor = 'deprecated_params',
category = 'CS1 errors: deprecated parameters',
category = 'CS1 errors: deprecated parameters',
hidden = true
},
doibroken_missing_doi = {
message = '<code class="cs1-code">&#124;$1=</code> requires <code class="cs1-code">&#124;doi=</code>',
anchor = 'doibroken_missing_doi',
category = 'CS1 errors: DOI',
hidden = false
hidden = false
},
},
خط ۸۴۶: خط ۹۷۵:
anchor = 'empty_citation',
anchor = 'empty_citation',
category = 'Pages with empty citations',
category = 'Pages with empty citations',
hidden = false
},
etal = {
message = 'Explicit use of et al. in: <code class="cs1-code">&#124;$1=</code>',
anchor = 'explicit_et_al',
category = 'CS1 errors: explicit use of et al.',
hidden = false
hidden = false
},
},
first_missing_last = {
first_missing_last = {
message = '<code class="cs1-code">&#124;first$2=</code> missing <code class="cs1-code">&#124;last$2=</code> in $1',
message = '<code class="cs1-code">&#124;$1=</code> missing <code class="cs1-code">&#124;$2=</code>', -- $1 is first alias, $2 is matching last alias
anchor = 'first_missing_last',
anchor = 'first_missing_last',
category = 'CS1 errors: missing author or editor',
category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator
hidden = false
hidden = false
},
},
خط ۸۷۳: خط ۱٬۰۰۸:
},
},
missing_name = {
missing_name = {
message = 'Missing <code class="cs1-code">&#124;last$2=</code> in $1',
message = 'Missing <code class="cs1-code">&#124;$1$2=</code>', -- $1 is modified NameList; $2 is enumerator
anchor = 'missing_name',
anchor = 'missing_name',
category = 'CS1 errors: missing author or editor',
category = 'CS1 errors: missing name', -- author, contributor, editor, interviewer, translator
hidden = false
},
missing_periodical = {
message = 'Cite $1 requires <code class="cs1-code">&#124;$2=</code>', -- $1 is cs1 template name; $2 is canonical periodical parameter name for cite $1
anchor = 'missing_periodical',
category = 'CS1 errors: missing periodical',
hidden = true
},
missing_pipe = {
message = 'Missing pipe in: <code class="cs1-code">&#124;$1=</code>',
anchor = 'missing_pipe',
category = 'CS1 errors: missing pipe',
hidden = false
hidden = false
},
},
خط ۹۰۶: خط ۱٬۰۵۳:
anchor = 'redundant_parameters',
anchor = 'redundant_parameters',
category = 'Pages with citations having redundant parameters',
category = 'Pages with citations having redundant parameters',
hidden = false
},
script_parameter = {
message = 'Invalid <code class="cs1-code">&#124;$1=</code>: $2',
anchor = 'script_parameter',
category = 'CS1 errors: script parameters',
hidden = false
hidden = false
},
},
خط ۹۹۰: خط ۱٬۱۴۳:
label = 'Bibcode',
label = 'Bibcode',
mode = 'manual',
mode = 'manual',
prefix = 'http://adsabs.harvard.edu/abs/',
prefix = 'https://ui.adsabs.harvard.edu/abs/',
encode = false,
encode = false,
COinS = 'info:bibcode',
COinS = 'info:bibcode',
خط ۱٬۲۳۹: خط ۱٬۳۹۲:




--[[--------------------------< E X P O R T S >----------------------------------------------------------------
--[[--------------------------< E X P O R T E D  T A B L E S >------------------------------------------------
]]
]]


خط ۱٬۲۴۸: خط ۱٬۴۰۱:
date_names = date_names,
date_names = date_names,
error_conditions = error_conditions,
error_conditions = error_conditions,
editor_markup_patterns = editor_markup_patterns,
et_al_patterns = et_al_patterns,
global_df = global_df,
id_handlers = id_handlers,
id_handlers = id_handlers,
keywords = keywords,
keywords = keywords,
خط ۱٬۲۵۷: خط ۱٬۴۱۳:
presentation = presentation,
presentation = presentation,
prop_cats = prop_cats,
prop_cats = prop_cats,
punct_skip = punct_skip,
script_lang_codes = script_lang_codes,
script_lang_codes = script_lang_codes,
lang_code_remap = lang_code_remap,
lang_code_remap = lang_code_remap,
کاربر ناشناس