k (Admin heeft de pagina Module:Format title for sorting hernoemd naar Module:Format for sorting zonder een doorverwijzing achter te laten) |
|||
(10 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 4: | Regel 4: | ||
local mDiacritics = require('Module:Diacritics') | local mDiacritics = require('Module:Diacritics') | ||
+ | local mConvertNumerals = require('Module:ConvertNumerals') | ||
+ | local mPadNumbers = require('Module:Pad numbers') | ||
local p = {} | local p = {} | ||
Regel 26: | Regel 28: | ||
end | end | ||
+ | local function padNumbers( str, padlength ) | ||
+ | str = mPadNumbers.replaceNumbers( str, padlength ) | ||
+ | return str | ||
+ | end | ||
+ | |||
+ | local function convertToArabic( str ) | ||
+ | newstr = mConvertNumerals.runToArabicNum( str, str ) | ||
+ | if newstr == str then | ||
+ | -- If newstr is equal to default, there is nothing to convert | ||
+ | return str | ||
+ | else | ||
+ | paddedstr = mPadNumbers.replaceNumbers( newstr, 5 ) | ||
+ | return paddedstr | ||
+ | end | ||
+ | end | ||
+ | |||
+ | --[[ | ||
+ | Currently used for strings of type Page with appropriate collation | ||
+ | ]]-- | ||
function p.main( frame ) | function p.main( frame ) | ||
local str = "" | local str = "" | ||
Regel 34: | Regel 55: | ||
if str == nil then | if str == nil then | ||
error("...") | error("...") | ||
+ | else | ||
+ | return str | ||
+ | end | ||
+ | end | ||
+ | |||
+ | --[[ | ||
+ | Used for strings of type Text, hence the need for padding with leading zeroes | ||
+ | ]]-- | ||
+ | function p.textString( frame ) | ||
+ | local str = "0" | ||
+ | str = mw.text.unstrip(frame.args[1]) | ||
+ | str = string.lower( str ) | ||
+ | str = removeDiacritics( str ) | ||
+ | --str = removePunctuation( str ) | ||
+ | str = padNumbers( str, 5 ) | ||
+ | str = convertToArabic( str ) | ||
+ | |||
+ | if str == nil then | ||
+ | error("...") | ||
+ | elseif str == "" then | ||
+ | return "0" | ||
else | else | ||
return str | return str |
Huidige versie van 10 aug 2023 om 15:39
Module:Format for sorting
Description
Test using main:
hallo hallo d d hello this is 45567 ff
test using textString
series 45.567.1 ? = series 00045.00567.00001 ?
- Roman numeral
00017
00011--[[ -- {{#invoke:Strip title for sorting|main|...}} ]]-- local mDiacritics = require('Module:Diacritics') local mConvertNumerals = require('Module:ConvertNumerals') local mPadNumbers = require('Module:Pad numbers') local p = {} local function removePunctuation( str ) local str = str str = string.gsub( str, "%-?[%p%.]+", "" ) local addchars ={ "‘", "’", "“", "”" } for i, v in ipairs( addchars ) do str = string.gsub(str, v, "") end if str == nil then error(" No string received. " ) else return str end end local function removeDiacritics( str ) str = mDiacritics.strip_diacrits( str ) return str end local function padNumbers( str, padlength ) str = mPadNumbers.replaceNumbers( str, padlength ) return str end local function convertToArabic( str ) newstr = mConvertNumerals.runToArabicNum( str, str ) if newstr == str then -- If newstr is equal to default, there is nothing to convert return str else paddedstr = mPadNumbers.replaceNumbers( newstr, 5 ) return paddedstr end end --[[ Currently used for strings of type Page with appropriate collation ]]-- function p.main( frame ) local str = "" str = mw.text.unstrip(frame.args[1]) str = removeDiacritics( str ) str = string.lower( str ) str = removePunctuation( str ) if str == nil then error("...") else return str end end --[[ Used for strings of type Text, hence the need for padding with leading zeroes ]]-- function p.textString( frame ) local str = "0" str = mw.text.unstrip(frame.args[1]) str = string.lower( str ) str = removeDiacritics( str ) --str = removePunctuation( str ) str = padNumbers( str, 5 ) str = convertToArabic( str ) if str == nil then error("...") elseif str == "" then return "0" else return str end end return p