<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?action=history&amp;feed=atom&amp;title=Module%3AUtilHyper</id>
	<title>Module:UtilHyper - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?action=history&amp;feed=atom&amp;title=Module%3AUtilHyper"/>
	<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Module:UtilHyper&amp;action=history"/>
	<updated>2026-10-02T13:33:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Module:UtilHyper&amp;diff=27561&amp;oldid=prev</id>
		<title>76561198048502585: Created page with &quot;-- Usage: see Module:UtilHyper/doc local p = {}  -- Displays a variable ------------------------------------------------------------------------------------------------------------------------ local function dump(target)     return &#039;&lt;pre&gt;&#039; .. mw.dumpObject(target) .. &#039;&lt;/pre&gt;&#039; end  ------------------------------------------------------------------------------------------------------------------------ local function lowerPattern(pattern)     return (mw.ustring.gsub(pattern...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.hoodedhorse.com/Heroes_of_Might_and_Magic_Olden_Era/index.php?title=Module:UtilHyper&amp;diff=27561&amp;oldid=prev"/>
		<updated>2026-07-01T10:26:14Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- Usage: see Module:UtilHyper/doc local p = {}  -- Displays a variable ------------------------------------------------------------------------------------------------------------------------ local function dump(target)     return &amp;#039;&amp;lt;pre&amp;gt;&amp;#039; .. mw.dumpObject(target) .. &amp;#039;&amp;lt;/pre&amp;gt;&amp;#039; end  ------------------------------------------------------------------------------------------------------------------------ local function lowerPattern(pattern)     return (mw.ustring.gsub(pattern...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Usage: see Module:UtilHyper/doc&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Displays a variable&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function dump(target)&lt;br /&gt;
    return &amp;#039;&amp;lt;pre&amp;gt;&amp;#039; .. mw.dumpObject(target) .. &amp;#039;&amp;lt;/pre&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function lowerPattern(pattern)&lt;br /&gt;
    return (mw.ustring.gsub(pattern, &amp;quot;%a&amp;quot;, function(c)&lt;br /&gt;
        local lower, upper = mw.ustring.lower(c), mw.ustring.upper(c)&lt;br /&gt;
        if lower ~= upper then&lt;br /&gt;
            return &amp;quot;[&amp;quot; .. lower .. upper .. &amp;quot;]&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
        return c&lt;br /&gt;
    end))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function parseHyper(hyper)&lt;br /&gt;
    local output = {}&lt;br /&gt;
    if not hyper or type(hyper) ~= &amp;#039;string&amp;#039; then&lt;br /&gt;
        return output&lt;br /&gt;
    end&lt;br /&gt;
    for line in hyper:gmatch(&amp;quot;[^\n;]+&amp;quot;) do&lt;br /&gt;
        local key, value = line:match(&amp;quot;^([^=]+)=(.*)$&amp;quot;)&lt;br /&gt;
        if key and value then&lt;br /&gt;
            key = mw.text.trim(key)&lt;br /&gt;
            value = mw.text.trim(value)&lt;br /&gt;
            if key ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                value = value == &amp;#039;&amp;#039; and key or value&lt;br /&gt;
                --key = &amp;#039;(&amp;#039; .. lowerPattern(key) .. &amp;#039;)&amp;#039;&lt;br /&gt;
                key = &amp;#039;(&amp;#039; .. key .. &amp;#039;)&amp;#039;&lt;br /&gt;
                output[key] = value&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Main processing function&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
local function process(text, hyper)&lt;br /&gt;
    if not text or type(text) ~= &amp;#039;string&amp;#039; then&lt;br /&gt;
        return text&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local hub = parseHyper(hyper)&lt;br /&gt;
    for pattern, value in pairs(hub) do&lt;br /&gt;
        text = mw.ustring.gsub(text, pattern, &amp;#039;[[&amp;#039; .. value .. &amp;#039;|%1]]&amp;#039;, 1)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- M A I N&lt;br /&gt;
------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
function p.apply(frame, hyper)&lt;br /&gt;
    if frame and frame.args then&lt;br /&gt;
        local args = frame.args&lt;br /&gt;
        local text = args.text or args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
        hyper = args.hyper or args[2] or hyper or &amp;#039;&amp;#039;&lt;br /&gt;
        return process(text, hyper)&lt;br /&gt;
    else&lt;br /&gt;
        return process(frame, hyper)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>76561198048502585</name></author>
	</entry>
</feed>