<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.infinf.info/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AFloatingUI</id>
	<title>模块:FloatingUI - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.infinf.info/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AFloatingUI"/>
	<link rel="alternate" type="text/html" href="https://wiki.infinf.info/index.php?title=%E6%A8%A1%E5%9D%97:FloatingUI&amp;action=history"/>
	<updated>2026-04-17T08:53:47Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.infinf.info/index.php?title=%E6%A8%A1%E5%9D%97:FloatingUI&amp;diff=1450&amp;oldid=prev</id>
		<title>9Yan：​创建页面，内容为“--- Lua functions for Extension:FloatingUI --- --- WARNING --- ------- --- THIS IS AN EXPERIMENTAL MODULE MADE FOR AN EXPERIMENTAL EXTENSION --- THIS IS NOT READY FOR PRODUCTION AND SUBJECT TO CHANGE --- ------- local FloatingUI = {}   --- Check if a string is empty --- --- @param str string --- @return boolean local function isStringEmpty( str )     return str == nil or str == &#039;&#039; end   --- Return the HTML of the FloatingUI section component as string --- --- @…”</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinf.info/index.php?title=%E6%A8%A1%E5%9D%97:FloatingUI&amp;diff=1450&amp;oldid=prev"/>
		<updated>2025-08-02T14:17:29Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“--- Lua functions for Extension:FloatingUI --- --- WARNING --- ------- --- THIS IS AN EXPERIMENTAL MODULE MADE FOR AN EXPERIMENTAL EXTENSION --- THIS IS NOT READY FOR PRODUCTION AND SUBJECT TO CHANGE --- ------- local FloatingUI = {}   --- Check if a string is empty --- --- @param str string --- @return boolean local function isStringEmpty( str )     return str == nil or str == &amp;#039;&amp;#039; end   --- Return the HTML of the FloatingUI section component as string --- --- @…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--- Lua functions for Extension:FloatingUI&lt;br /&gt;
---&lt;br /&gt;
--- WARNING&lt;br /&gt;
--- -------&lt;br /&gt;
--- THIS IS AN EXPERIMENTAL MODULE MADE FOR AN EXPERIMENTAL EXTENSION&lt;br /&gt;
--- THIS IS NOT READY FOR PRODUCTION AND SUBJECT TO CHANGE&lt;br /&gt;
--- -------&lt;br /&gt;
local FloatingUI = {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--- Check if a string is empty&lt;br /&gt;
---&lt;br /&gt;
--- @param str string&lt;br /&gt;
--- @return boolean&lt;br /&gt;
local function isStringEmpty( str )&lt;br /&gt;
    return str == nil or str == &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--- Return the HTML of the FloatingUI section component as string&lt;br /&gt;
---&lt;br /&gt;
--- @param data table {label, data, desc, col, inline)&lt;br /&gt;
--- @return string html&lt;br /&gt;
function FloatingUI.renderSection( data )&lt;br /&gt;
    if data == nil or type( data ) ~= &amp;#039;table&amp;#039; or next( data ) == nil then return &amp;#039;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
    local htmlTag = &amp;#039;div&amp;#039;&lt;br /&gt;
    if data[&amp;#039;inline&amp;#039;] == true then&lt;br /&gt;
        htmlTag = &amp;#039;span&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local html = mw.html.create( htmlTag )&lt;br /&gt;
        :addClass( &amp;#039;t-floatingui-section&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
    if data[&amp;#039;col&amp;#039;] then html:addClass( &amp;#039;t-floatingui-section--cols-&amp;#039; .. data[&amp;#039;col&amp;#039;] ) end&lt;br /&gt;
&lt;br /&gt;
    local dataOrder = { &amp;#039;label&amp;#039;, &amp;#039;data&amp;#039;, &amp;#039;desc&amp;#039; }&lt;br /&gt;
    for _, key in ipairs( dataOrder ) do&lt;br /&gt;
        if data[key] then&lt;br /&gt;
            html:tag( htmlTag )&lt;br /&gt;
                :addClass( &amp;#039;t-floatingui-&amp;#039; .. key )&lt;br /&gt;
                :wikitext( data[key] )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return tostring( html )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Load FloatingUI library only&lt;br /&gt;
---&lt;br /&gt;
--- @return string wikitext Wikitext to load the FloatingUI library only&lt;br /&gt;
function FloatingUI.load( frame )&lt;br /&gt;
    frame = frame or mw.getCurrentFrame()&lt;br /&gt;
    return frame:extensionTag {&lt;br /&gt;
        name = &amp;#039;templatestyles&amp;#039;, args = { src = &amp;#039;Module:FloatingUI/styles.css&amp;#039; }&lt;br /&gt;
    } .. frame:callParserFunction {&lt;br /&gt;
        name = &amp;#039;#floatingui&amp;#039;, args = { &amp;#039;&amp;#039; }&lt;br /&gt;
    }&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Attach the FloatingUI content to the HTML element&lt;br /&gt;
---&lt;br /&gt;
--- @param content string&lt;br /&gt;
--- @param htmlTag string&lt;br /&gt;
--- @return table|nil&lt;br /&gt;
function FloatingUI.getContentHtml( content, htmlTag )&lt;br /&gt;
    if isStringEmpty( content ) then&lt;br /&gt;
        return&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- TODO: Detect if HTML is a div or a span&lt;br /&gt;
    htmlTag = htmlTag or &amp;#039;div&amp;#039;&lt;br /&gt;
&lt;br /&gt;
    local html = mw.html.create( &amp;#039;div&amp;#039; ):addClass( &amp;#039;ext-floatingui-content&amp;#039; )&lt;br /&gt;
        :tag( htmlTag )&lt;br /&gt;
        :addClass( &amp;#039;mw-parser-output&amp;#039; )&lt;br /&gt;
        :tag( htmlTag )&lt;br /&gt;
        :addClass( &amp;#039;t-floatingui&amp;#039; )&lt;br /&gt;
        :wikitext( content )&lt;br /&gt;
        :allDone()&lt;br /&gt;
&lt;br /&gt;
    return html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- Render the HTML for FloatingUI&lt;br /&gt;
---&lt;br /&gt;
--- @param reference string Reference wikitext to trigger the floating element&lt;br /&gt;
--- @param content string Content wikitext in the floating element&lt;br /&gt;
--- @param inline boolean Whether to render inline&lt;br /&gt;
--- @return string wikitext Wikitext for the HTML required to use FloatingUI&lt;br /&gt;
function FloatingUI.render( reference, content, inline )&lt;br /&gt;
    if not reference or not content then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local htmlTag = &amp;#039;div&amp;#039;&lt;br /&gt;
    if inline == true then&lt;br /&gt;
        htmlTag = &amp;#039;span&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local html = mw.html.create()&lt;br /&gt;
        :tag( htmlTag )&lt;br /&gt;
        :addClass( &amp;#039;ext-floatingui-reference&amp;#039; )&lt;br /&gt;
        :wikitext( reference )&lt;br /&gt;
        :done()&lt;br /&gt;
        :node( FloatingUI.getContentHtml( content, htmlTag ) )&lt;br /&gt;
&lt;br /&gt;
    return tostring( html )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return FloatingUI&lt;/div&gt;</summary>
		<author><name>9Yan</name></author>
	</entry>
</feed>