Module:ListGeneration: Difference between revisions

// via Wikitext Extension for VSCode
// via Wikitext Extension for VSCode
 
Line 1: Line 1:
-- Module:ListGeneration
--[[
-- A centralized and flexible module for generating various types of lists from delimited strings.
* Name: ListGeneration
--
* Author: Mark W. Datysgeld
-- This module is designed to replace fragmented list generation logic across the wiki,
* Description: Centralized and flexible module for generating various types of lists from delimited strings, designed to replace fragmented list generation logic
-- providing a single, powerful function to create multiple list formats.
* Notes: Handles semicolon-delimited strings automatically; supports multiple list modes (bullet, bullet_custom, invisible, comma); allows custom CSS classes on list container; provides itemHook for custom per-item processing and formatting; accepts both string input (auto-split) and pre-split table input
--
]]
-- Features:
--  * Handles semicolon-delimited strings automatically.
--  * Supports multiple list modes:
--    - 'bullet': Standard HTML unordered list (<ul>).
--    - 'bullet_custom': Unordered list with a custom Unicode character as the bullet.
--    - 'invisible': A bulleted list with the 'no-bullets' CSS class for an unstyled list.
--    - 'comma': A simple, comma-separated string of items.
--  * Allows for custom CSS classes on the list container.
--  * Provides an 'itemHook' for custom, per-item processing and formatting.
--
-- Usage:
--  local ListGeneration = require('Module:ListGeneration')
--  local options = {
--    mode = 'bullet',
--    listClass = 'my-custom-list',
--    itemHook = function(item) return '<b>' .. item .. '</b>' end
--  }
--  local htmlList = ListGeneration.createList('item1; item2; item3', options)


local p = {}
local p = {}