|
|
| 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 = {} |