stringtranslate.com

Módulo: FUNCIONES DE NÚMEROS

local  p  =  {} - Funcionalidad Unescape extraída de https://stackoverflow.com/a/14899740/1832568 función local unescape ( str ) str = string.gsub ( str , '&#(%d+);' , string.char ) str = string.gsub ( str , '&#x(%d+);' , función ( n ) return string.char ( tonumber ( n , 16 )) end ) return str end - Función de conteo que acepta una cadena haystack y una tabla de agujas función local count ( haystack , needles ) número local = 0 - Mientras tengamos agujas para buscar for index , needle in ipairs ( needles ) do - encuéntrelas todas en nuestro haystack for m in string.gmatch ( haystack , needle ) do number = number + 1 end end return number end - La función acepta cualquier número de nombres de página delimitados por # y números de nivel de sección function p . main ( frame ) local total = 0 local needles = {} local haystack = '' - Separar los nombres de las páginas de la cadena delimitada por # en la tabla local pages = mw . text . split ( unescape ( frame . args [ 1 ]), '%s*#%s*' ) - Separar los números de nivel de sección delimitados por espacios en blanco en la tabla local levels = mw . text . split ( frame . args [ 'level' ], '%s*' ) - Iterar a través de los niveles para level en mw .                                                         text . gsplit ( table. concat ( levels ),  '' )  do -- y agrega el nivel needle a needles needles [ # needles + 1 ] = ' \n ' .. string. rep ( '=' , tonumber ( level )) .. '[^=]' end -- Para cada nombre de página en pages for index , page in ipairs ( pages ) do -- crea un haystack para buscar desde el contenido de la página haystack = mw . title . new ( page ): getContent () -- Si hemos solicitado el contenido de una página legítima if haystack then -- [[ pasa el marcado sin procesar y needles a count  y agrega el retorno a total ]] total = total + count ( ' \n ' .. haystack , needles ) end end -- [[ luego devuelve cuántas secciones del nivel requerido  hay en todas las páginas pasadas ]] return total end return p