Module:section article/analyse

Bonjour, vous êtes venu ici pour chercher la signification du mot Module:section article/analyse. Dans DICTIOUS, vous trouverez non seulement toutes les significations du dictionnaire pour le mot Module:section article/analyse, mais vous apprendrez également son étymologie, ses caractéristiques et comment dire Module:section article/analyse au singulier et au pluriel. Tout ce que vous devez savoir sur le mot Module:section article/analyse est ici. La définition du mot Module:section article/analyse vous aidera à être plus précis et correct lorsque vous parlerez ou écrirez vos textes. Connaître la définition deModule:section article/analyse, ainsi que celles d'autres mots, enrichit votre vocabulaire et vous fournit des ressources linguistiques plus nombreuses et de meilleure qualité.

La documentation pour ce module peut être créée à Module:section article/analyse/Documentation

-- Tests: ]
local m_bases = require("Module:bases")

local data = mw.loadData("Module:section article/data")

local p = {}

--- @return table
local function getAliases()
  local aliases = {}
  for alias, refCode in pairs(data) do
    if aliases == nil then
      aliases = {}
    end
    table.insert(aliases, alias)
  end
  return aliases
end

--- @param code string
--- @param sectionTypeData table
--- @return string
local function generateSectionTypeWikicode(code, sectionTypeData)
  local level = sectionTypeData
  local equalSigns = "====="
  if level ~= nil then
    if level == 3 then
      equalSigns = "==="
    elseif level == 4 then
      equalSigns = "===="
    end
  end

  return "<code>" .. equalSigns .. " {{S&vert;" .. code .. "}} " .. equalSigns .. "</code>"
end

--- @param code1 string
--- @param code2 string
--- @return boolean
local function sortSections(code1, code2)
  local data1 = data
  local data2 = data
  local level1 = tostring(data1)
  local level2 = tostring(data2)
  return level1 < level2 or (level1 == level2 and data1 < data2)
end

--- @return string A wiki table that lists all defined section types and their data.
function p.showSectionTypes()
  local keySet = {}
  local n = 0
  for key, _ in pairs(data) do
    n = n + 1
    keySet = key
  end
  table.sort(keySet, sortSections)

  local result = {
    "Cette liste est générée automatiquement à partir de ].\n\nIl y a actuellement "
        .. n .. " titres de section dans cette liste.\nElle peut être triée."
  }

  table.insert(result, m_bases.tableau_entete({
    "Nom", "Code", "Alias possibles", "Niveau", "Sous-section de"
  }))

  local aliases = getAliases()
  for _, code in ipairs(keySet) do
    local sectionTypeData = data
    local aliasesForCode = aliases and aliases or {}
    table.insert(aliasesForCode, 1, "'''" .. code .. "'''")
    local aliasesText = table.concat(aliasesForCode, "<br>")
    code = generateSectionTypeWikicode(code, sectionTypeData)
    local parentText = (
        (sectionTypeData
            and data]
            and data])
            or sectionTypeData
    )
    local values = {
      sectionTypeData or "-",
      code or "-",
      aliasesText or "-",
      sectionTypeData or "-",
      parentText or "-"
    }
    table.insert(result, m_bases.tableau_ligne(values))
  end
  table.insert(result, m_bases.tableau_fin())

  return table.concat(result, "\n")
end

function p.showPythonReplacements()
  local result = {}

  table.insert(result, "<pre>")

  local aliases = getAliases()
  for code, _ in pairs(data) do
    local aliasesForCode = aliases and aliases or {}
    if #aliasesForCode > 0 then
      local text = table.concat(aliasesForCode, "|")
      local replacements = '(r"\\{\\{S\\|(' .. text .. ')\\}\\}", "{{S|' .. code .. '}}"),'
      table.insert(result, replacements)
    end
  end
  table.insert(result, "</pre>")

  return table.concat(result, "\n")
end

return p