Module:DependencyList: Difference between revisions

osrsw>CephHunter
Sync with rs3
osrsw>Shayani
+some changes from rsw; unitalicise hatnotes
Line 107: Line 107:
     local dynamicLoadDataList = {}
     local dynamicLoadDataList = {}


     assert( param.has_content( content ), string.format( '%s does not exist', moduleName ) )
     assert( content ~= nil, string.format( '%s does not exist', moduleName ) )


     content = content:gsub( '%-%-%[(=-)%[.-%]%1%]', '' ):gsub( '%-%-[^\n]*', '' ) -- Strip comments
     content = content:gsub( '%-%-%[(=-)%[.-%]%1%]', '' ):gsub( '%-%-[^\n]*', '' ) -- Strip comments
Line 229: Line 229:
     local invokeList = {}
     local invokeList = {}


     assert( param.has_content( content ), string.format( '%s does not exist', templateName ) )
     assert( content ~= nil, string.format( '%s does not exist', templateName ) )


     for moduleName, funcName in string.gmatch( content, '{{[{|safeubt:}]-#[Ii]nvoke:([^|]+)|([^}|]+)[^}]*}}' ) do
     for moduleName, funcName in string.gmatch( content, '{{[{|safeubt:}]-#[Ii]nvoke:([^|]+)|([^}|]+)[^}]*}}' ) do
Line 314: Line 314:
     for _, item in ipairs( invokeList ) do
     for _, item in ipairs( invokeList ) do
         table.insert( res, string.format(
         table.insert( res, string.format(
             "<div class='seealso'>'''''%s''' invokes function '''%s''' in [[%s]] using [[RuneScape:Lua|Lua]]''.</div>",
             "<div class=\"seealso\">'%s''' invokes function '''%s''' in [[%s]] using [[RuneScape:Lua|Lua]].</div>",
             templateName,
             templateName,
             item.funcName,
             item.funcName,
Line 354: Line 354:
     if #invokedByList > COLLAPSE_LIST_LENGTH_THRESHOLD then
     if #invokedByList > COLLAPSE_LIST_LENGTH_THRESHOLD then
         table.insert( res, string.format(
         table.insert( res, string.format(
             "<div class='seealso'>'''''%s''' is invoked by %s''.</div>",
             "<div class=\"seealso\">'''%s''' is invoked by %s.</div>",
             moduleName,
             moduleName,
             collapseList( invokedByList, 'invokedBy', 'templates' )[1]
             collapseList( invokedByList, 'invokedBy', 'templates' )[1]
Line 361: Line 361:
         for _, item in ipairs( invokedByList ) do
         for _, item in ipairs( invokedByList ) do
             table.insert( res, string.format(
             table.insert( res, string.format(
                 "<div class='seealso'>'''''%s's''' %s''.</div>",
                 "<div class=\"seealso\">'''%s's''' %s.</div>",
                 moduleName,
                 moduleName,
                 item
                 item
Line 422: Line 422:
     for _, requiredByModuleName in ipairs( requiredByList ) do
     for _, requiredByModuleName in ipairs( requiredByList ) do
         table.insert( res, string.format(
         table.insert( res, string.format(
             "<div class='seealso'>'''''%s''' is required by %s''.</div>",
             "<div class=\"seealso\">'''%s''' is required by %s.</div>",
             moduleName,
             moduleName,
             requiredByModuleName
             requiredByModuleName
Line 434: Line 434:
     for _, loadedByModuleName in ipairs( loadedByList ) do
     for _, loadedByModuleName in ipairs( loadedByList ) do
         table.insert( res, string.format(
         table.insert( res, string.format(
             "<div class='seealso'>'''''%s''' is loaded by %s''.</div>",
             "<div class=\"seealso\">'''%s''' is loaded by %s.</div>",
             moduleName,
             moduleName,
             loadedByModuleName
             loadedByModuleName
Line 456: Line 456:
     for _, requiredModuleName in ipairs( requireList ) do
     for _, requiredModuleName in ipairs( requireList ) do
         table.insert( res, string.format(
         table.insert( res, string.format(
             "<div class='seealso'>'''''%s''' requires %s.''</div>",
             "<div class=\"seealso\">'''%s''' requires %s.</div>",
             currentPageName,
             currentPageName,
             requiredModuleName
             requiredModuleName
Line 478: Line 478:
     for _, loadedModuleName in ipairs( loadDataList ) do
     for _, loadedModuleName in ipairs( loadDataList ) do
         table.insert( res, string.format(
         table.insert( res, string.format(
             "<div class='seealso'>'''''%s''' loads data from %s.''</div>",
             "<div class=\"seealso\">'''%s''' loads data from %s.</div>",
             currentPageName,
             currentPageName,
             loadedModuleName
             loadedModuleName
Line 500: Line 500:
     for _, templateName in ipairs( usedTemplateList ) do
     for _, templateName in ipairs( usedTemplateList ) do
         table.insert( res, string.format(
         table.insert( res, string.format(
             "<div class='seealso'>'''''%s''' transcludes %s using <samp>frame:preprocess()</samp>.''</div>",
             "<div class=\"seealso\">'''%s''' transcludes %s using <samp>frame:preprocess()</samp>.</div>",
             currentPageName,
             currentPageName,
             templateName
             templateName
Line 538: Line 538:
     moduleIsUsed = yn( param.default_to( isUsed, false ) )
     moduleIsUsed = yn( param.default_to( isUsed, false ) )
      
      
     if title.text:match( '^(.-)/' ) == 'Sandbox' then
     if title.text:lower():find( 'sandbox' ) then
     moduleIsUsed = true -- Don't show sandbox modules as unused
     moduleIsUsed = true -- Don't show sandbox modules as unused
     end
     end