stringtranslate.com

Módulo: enlace anotado

 función  local pipedLink ( nombre ,  visualización )  devuelve  '[[:' .. nombre .. '|' .. display .. ']]'  finaliza la función local isEmpty ( valor ) valor de retorno == nil o valor == '' finaliza la función local notEmpty ( valor ) devuelve no isEmpty ( valor ) final - Funcionalidad Unescape tomada 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 ( d ) devuelve string.char ( tonumber ( d , 16 )) end ) devuelve str fin de la función local hashDelimitedList ( list_string ) devuelve mw . texto . gsplit ( unescape ( list_string ), '%s*#%s*' ) finaliza la función local alarmingMessage ( mensaje ) return '<span style="color:#d33">[[Module:Annotated link]] ' .. mensaje . . '.</span>' .. '[[Categoría:Páginas que muestran mensajes alarmantes sobre el Módulo:Enlace anotado]]' finaliza la función local opcionalmenteVisibleCategoría ( clase , categoría ) devuelve '<span style="display:none" class=" ' .. clase .. '">' .. categoría .. '</span>[[Categoría:' .. categoría .. ' vía Módulo:Enlace anotado]]' finaliza la función local handleFirstLetterCase ( short_description , case                                                ) devolver mw . cuerda . gsub ( short_description , '^([ ^ %d ] ) ' , función ( first_char ) si caso == ' superior ' entonces devuelve mw.ustring.top ( first_char ) end return mw.ustring . lower ( first_char ) end ) end local mLang = require ( 'Module:Lang' ) función local langify ( args ) local lang = args . idioma texto local = argumentos . texto si está vacío ( lang ) o lang == 'en' y luego devuelve el texto final regresa mLang . _lang { idioma , texto , cursiva = argumentos . cursiva , nocat = argumentos . nocat , tamaño = argumentos . tamaño , gato = argumentos . gato , rtl = argumentos . rtl } finaliza la función local formatResult ( resultado , guión , descripción , prefix_parentheses ) si no está vacío ( descripción ) entonces si prefix_parentheses entonces local startIdx = descripción : buscar ( "%(" ) si startIdx entonces local beforeParens = descripción : sub ( 1 , startIdx - 2 ) local insideParens = descripción : sub ( startIdx , - 1                                                                  ) devuelve resultado .. ' ' .. insideParens .. guión .. ' ' .. beforeParens final final devuelve resultado .. guión .. ' ' .. descripción final devuelve resultado final función local anotadoEnlace ( args ) nombre local = args . nombre si está vacío ( nombre ) y luego devuelve alarmingMessage ( 'requiere un nombre de página (incluido el espacio de nombres)' ) fin - Para manejar un intento de anotar un enlace de plantilla - ya formateado con algo como {{tl|<nombre de plantilla >}}; -- nombre sin escape para dar sentido a las llaves en la coincidencia de lua patern. nombre = unescape ( nombre ) si nombre : coincide ( '^{%b{}}$' ) entonces - Aquí existe la posibilidad de extraer datos útiles: por ejemplo, {{tl*|Template}}. return alarmingMessage ( 'requiere solo un nombre de página (incluido el espacio de nombres) sin marcado. ' .. 'Si se intenta anotar un enlace a una plantilla, ' .. 'proporcione solo el nombre de la plantilla con el espacio de nombres, por ejemplo, "Plantilla:Ejemplo "' ) end : si se proporcionó un enlace literal como nombre; - extraer el contenido y aplicarlo al nombre y mostrarlo según corresponda. enlace wiki local = mw . cuerda . match ( nombre , '^%[%[%s*:*%s*(.-)%s*%]%]$' ) si wikilink entonces nombre_enlace local , link_display = descomprimir ( mw . text . split ( wikilink , '%s*|%s*' )) si nombre_enlace entonces nombre = nombre_enlace finalice si display_enlace y está vacío ( args . display ) luego args . display = link_display end end - Prepárese para concatenar.                                       resultado local local is_template = nombre : coincidencia ( '^Template:(.+)$' ) local template_link = args . template_link si is_template y template_link ~= 'no' entonces resultado = '{{' .. pipedLink ( nombre , is_template ) .. '}}' si template_link == 'código' entonces resultado = '<código>' .. resultado . '</code>' fin de lo contrario visualización local = args . mostrar si está vacío ( mostrar ) entonces mostrar = nombre resultado final = langify ({ lang = args . link_lang , texto = pipedLink ( nombre , mostrar ), cursiva = args . link_lang_italic , nocat = args . link_lang_nocat , tamaño = args . link_lang_size , cat = args . link_lang_cat , rtl = args . link_lang_rtl }) si no está vacío ( args . quote ) entonces resultado = '"' .. resultado .. '"' end local abbr = args . abbr si no está vacío ( abbr ) entonces resultado = resultado .. ' (<abbr' local abbr_title = args . abbr_title si no está vacío ( abbr_title ) entonces resultado = resultado .. ' title="' .. abbr_title .. '"' resultado final = resultado ..'>'                                                                 .. abbr .. '</abbr>)' end end si está vacío ( resultado ) luego devuelve alarmingMessage ( 'no se pudo crear un enlace para "' .. nombre .. '"' ) end local aka = args . también conocido como si no está vacío ( también conocido como ) entonces resultado = resultado .. ', también conocido como ' .. langify ({ lang = args . aka_lang , text = aka , italic = args . aka_lang_italic , nocat = args . aka_lang_nocat , size = args . aka_lang_size , cat = args . aka_lang_cat , rtl = args } ) finaliza la cuña local = args . cuña si no está vacía ( cuña ) entonces resultado = resultado .. ', ' .. langify ({ lang = args . cuña_lang , texto = cuña , cursiva = args . cuña_lang_italic , nocat = args . cuña_lang_nocat , tamaño = args . cuña_lang_tamaño , gato = args . wedge_lang_cat , rtl = args . wedge_lang_rtl }) end : excluye el respaldo de wikidata para cualquier lista especificada de títulos de enlaces, a menos que se indique explícitamente que está bien. local not_wikidata_for_links_starting_with = args . not_wikidata_for_links_starting_with si está vacío ( args . wikidata ) y notEmpty ( not_wikidata_for_links_starting_with )                                                    luego, para only_explicit en hashDelimitedList ( not_wikidata_for_links_starting_with ), haga si nombre : coincide ( '^' ... only_explicit ) y luego args . only = 'explicit' break end end end - Obtenga la breve descripción del Módulo:GetShortDescription. short_description local = require ( 'Módulo:GetShortDescription' ). principal ( { none_is_valid = args . none_is_valid , none_is_nil = args . none_is_nil , lang_italic = args . desc_lang_italic , lang_nocat = args . desc_lang_nocat , lang_size = args . desc_lang_size , lang_cat = args . desc_lang_cat , lang_rtl argumentos . desc_lang_rtl , idioma_no = argumentos desc_lang_no . , prefiere = args prefiere , solo = solo argumentos , nombre = nombre } ) guión local = argumentos .guión si está vacío ( guión ) entonces guión = ' –' finaliza el respaldo local = args . respaldo si está vacío ( descripción_corta ) o descripción_corta . redlink luego devuelve formatResult ( resultado , guión , respaldo , args . prefix_parentheses ) y finaliza si short_description . alarma y luego devuelve short_description . alarma fin mantenimiento local = '' si                                                          Breve descripción . redirigido  y luego mantenimiento = opcionalmenteVisibleCategory ( 'anotación-categoría-con-descripción-redireccionada' , 'Páginas que muestran descripciones breves de objetivos de redireccionamiento' ) finalizan el respaldo local si descripción_corta . wikidata entonces si short_description . retroceso luego retroceso = verdadero mantenimiento = mantenimiento .. opcionalmenteVisibleCategory ( 'categoría-wikidata-fallback-annotation' , 'Páginas que muestran descripciones de wikidata como respaldo' ) finalizan short_description = short_description . wikidata : filtro contra descripciones de wikidata probablemente basura. local not_wikidata_descriptions_incluido = args . not_wikidata_descriptions_incluido si no está vacío ( not_wikidata_descriptions_incluido ) entonces - Coincidencia que no distingue entre mayúsculas y minúsculas. local lower_case_short_description = short_description : lower () para exclusión en hashDelimitedList ( not_wikidata_descriptions_incluyendo : lower ()) haga si lower_case_short_description : coincide ( exclusión ) entonces short_description = '' romper final final si está vacío ( short_description ) luego devuelve formatResult ( resultado , guión , respaldo , args . prefix_parentheses ) y demás descripción_corta = descripción_corta . fin explícito local lower_case_name = nombre : lower () si no está vacío ( short_description ) y no short_description : coincide ( ' ' ) entonces                                             - Filtre contra descripciones de una sola palabra que puedan ser basura. local lower_case_short_description = short_description : lower () local not_single_word = args . not_single_word si no está vacío ( not_single_word ), entonces : coincidencia que no distingue entre mayúsculas y minúsculas. para una sola palabra en hashDelimitedList ( not_single_word : lower ()) haga si single_word == lower_case_short_description entonces short_description = '' romper fin si está vacío ( short_description ) o lower_case_name : coincidir ( minúsculas_short_description ) luego devuelva formatResult ( resultado , guión , respaldo , args . prefix_parentheses ) finaliza si está vacío ( args . space_cat ) entonces mantenimiento = mantenimiento .. opcionalmenteVisibleCategory ( 'categoría-anotación sin espacio' , ' Páginas que muestran descripciones breves sin espacios' ) finaliza si nombre_minúscula == descripción_corta : inferior () entonces si respaldo luego devuelve formatResult ( resultado , guión , respaldo , args . prefix_parentheses ) finaliza mantenimiento = mantenimiento ... opcionalmenteVisibleCategory ( 'categoría-anotación-coincide-nombre' , 'Páginas que muestran descripciones breves que coinciden con su nombre de página' ) final - Descripciones breves en es Wikipedia debe tener formato con una primera letra mayúscula, pero - la aplicación típica de este módulo requerirá que el primer carácter esté en minúscula, pero - algunas descripciones pueden comenzar con nombres propios y deben comenzar con una letra mayúscula incluso si se usan en un anotación.                                          -- Por defecto; este módulo no afectará el uso de la primera letra de las descripciones recuperadas por Module:GetShortDescription, pero el uso de la primera letra se puede transformar explícitamente si es necesario. local desc_first_letter_case = argumentos . desc_first_letter_case if desc_first_letter_case == 'upper' o desc_first_letter_case == 'lower' entonces short_description = handleFirstLetterCase ( short_description , desc_first_letter_case ) end return formatResult ( resultado , guión , ( short_description o alternativa ) .. mantenimiento , args . prefix_parentheses ) end local p = { } función p . argumentos locales principales ( marco ) = requerir ( 'Módulo:Argumentos' ). getArgs ( frame ) si está vacío ( args ) entonces devuelve alarmingMessage ( 'could not getArgs' ) - Esto realmente sería alarmante. fin de retorno anotadoEnlace ( args ) fin de retorno p