fbpx
วิกิพีเดีย

มอดูล:Random slideshow

คู่มือการใช้งานมอดูล[สร้าง]
-- Creates a slideshow gallery where the order is randomised. Intended for use on portal pages. local p = {} local excerptModule = require('Module:Excerpt/portals') local randomModule = require('Module:Random') local redirectModule = require('Module:Redirect')  function cleanupArgs(argsTable)  local cleanArgs = {}  for key, val in pairs(argsTable) do  if type(val) == 'string' then  val = val:match('^%s*(.-)%s*$')  if val ~= '' then  cleanArgs[key] = val  end  else  cleanArgs[key] = val  end  end  return cleanArgs end  function normaliseCssMeasurement(input)  local suffix = string.reverse(string.sub(string.reverse(input), 1, 2))  if ( suffix == 'px' ) or ( suffix == 'em' ) or ( string.sub(suffix, 2, 2) == '%' ) then  return input  else  return input .. 'px'  end end  function isDeclined(val)  if not val then return false end  local declinedWords = " decline declined exclude excluded false none not no n off omit omitted remove removed "  return string.find(declinedWords , ' '..val..' ', 1, true ) and true or false end  function makeOutput(galleryLines, maxWidth, containerClassName, nonRandom)  local randomiseArgs = { ['t'] = galleryLines }  local sortedLines = nonRandom and galleryLines or randomModule.main('array', randomiseArgs)  for i = 1, #sortedLines do  -- insert a switcher-label span just after the first pipe (which has already been escaped as {{!}} instead the | character)  sortedLines[i] = sortedLines[i]:gsub(  "%{%{%!%}%}",  '{{!}}<span class="switcher-label" style="display:none"><span class="randomSlideshow-sr-only">Image ' .. tostring(i) .. '</span></span>',  1)  end  local galleryContent = table.concat(sortedLines, '\n')  local output = '<div class="' .. containerClassName .. '" style="max-width:' .. normaliseCssMeasurement(maxWidth) .. '; margin:-4em auto;"><div class="nomobile"><!--intentionally empty on desktop, and is not present on mobile website (outside template namesapce)--></div>{{#tag:gallery|' .. galleryContent .. '|mode=slideshow|class=switcher-container}}</div>'  return output end  function makeGalleryLine(file, caption, credit)  local title = mw.title.new(file, "File" )  if not title  then  return "File:Blank.png{{!}}{{Error|File [[:File:" .. file .. "]] does not exist.}}"  end  local creditLine = ( credit and '<p><span style="font-size:88%">' .. credit .. '</span></p>' or '' )  return title.prefixedText .. '{{!}}' .. ( caption or '' ) .. creditLine end  function makeGalleryLinesTable(args)  local galleryLinesTable = {}  local i = 1  while args[i] do  table.insert(galleryLinesTable, makeGalleryLine(args[i], args[i+1], args['credit' .. (i+1)/2]))  i = i + 2  end  return galleryLinesTable end  function hasCaption(line)  local caption = mw.ustring.match(line, ".-{{!}}(.*)")  -- require caption to exist with more than 5 characters (avoids sizes etc being mistaken for captions)  return caption and #caption>5 and true or false end  function extractGalleryFiles(wikitext)  local gallery = mw.ustring.match(wikitext, '<gallery.->%s*(.-)%s*</gallery>')  if not gallery then  return false  end  gallery = mw.ustring.gsub(gallery, '|', '{{!}}')  return mw.text.split(gallery, '%c') end  function extractRegularFiles(wikitext)  local files = {}  local frame = mw.getCurrentFrame()  local expand = function(template)  return frame:preprocess(template)  end  for file in mw.ustring.gmatch(wikitext, '%b[]' ) do  -- remove keywords that don't work in galleries  file = mw.ustring.gsub(file, '|%s*thumb%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*thumbnail%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*border%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*left%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*right%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*center%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*centre%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*baseline%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*sub%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*super%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*top%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*text%-top%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*bottom%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*text%-bottom%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*framed?%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*frameless%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*upright%s*[0-9%.]*%s*([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*upright%s*=.-([|%]])', '%1')  file = mw.ustring.gsub(file, '|%s*link%s*=.-([|%]])', '%1')  -- remove spaces prior to captions (which cause pre-formatted text)  file = mw.ustring.gsub(file, '|%s*', '|')  -- remove sizes, which sometimes get mistaken for captions  file = mw.ustring.gsub(file, '|%s*%d*x?%d+%s*px%s*([|%]])', '%1')  -- expand templates  file = mw.ustring.gsub(file, '{%b{}}', expand)  -- remove loose closing braces which don't have matching opening braces  file = mw.ustring.gsub(file, '}}', '')  -- remove loose opening braces which don't have matching closing braces (and the subsequent content, which is probably just a template name)  file = mw.ustring.gsub(file, '{{.-([|%]])', '%1')  -- replace pipes and equals (which would otherwise break the {{#tag:}} syntax)  file = mw.ustring.gsub(file, '|%s*alt%s*=', '{{!}}alt=')  file = mw.ustring.gsub(file, '|', '{{!}}')  file = mw.ustring.gsub(file, '=', '{{=}}')  -- remove linebreaks  file = mw.ustring.gsub(file, '\n\n', '<br>')  file = mw.ustring.gsub(file, '\n', '')  -- remove surrounding square brackets  file = mw.ustring.gsub(file, '^%[%[', '')  file = mw.ustring.gsub(file, '%]%]$', '')  table.insert(files, file)  end  return files end  function makeTranscludedGalleryLinesTables(args)  local namespaceNumber = function(pagetitle)  local titleObject = mw.title.new(pagetitle)  return titleObject and titleObject.namespace  end  local lines = {}  local i = 1  while args[i] do  if namespaceNumber(args[i]) == 6 then -- file namespace  -- args[i] is either just the filename, or uses syntax File:Name.jpg##Caption##Credit  local parts = mw.text.split(args[i], '##%s*')  local filename = parts[1]  local caption = args['caption'..i] or parts[2] or false  local credit = args['credit'..i] or parts[3] or false  local line = makeGalleryLine(filename, caption, credit)  table.insert(lines, line)  else  local content, pagename = excerptModule.getContent(args[i])  if not pagename then  return error('Cannot read a valid page for "' .. args[i] .. '"', 0)  elseif not content then  return error('No content found on page "' .. args[i] .. '"', 0)  end  if args['section'..i] then  content = excerptModule.getSection(content, args['section'..i]) or ''  end  content = excerptModule.cleanupText(content, {keepSubsections=true}) -- true means keep subsections   local galleryFiles = extractGalleryFiles(content)  if galleryFiles then  for _, f in pairs(galleryFiles) do  if hasCaption(f) then  local filename = string.gsub(f, '{{!}}.*', '')  local isOkay = excerptModule.checkImage(filename)  if isOkay then  table.insert(lines, f.." (from '''[["..pagename.."]]''')")  end  end  end  end   local otherFiles = excerptModule.parse(content, {fileflags="1-100", filesOnly=true})  if otherFiles then  for _, f in pairs(extractRegularFiles(otherFiles)) do  if f and f ~= '' and mw.ustring.sub(f, 1, 5) == 'File:' and hasCaption(f) then  table.insert(lines, f.." (from '''[["..pagename.."]]''')")  end  end  end   end  i = i + 1  end  return ( #lines > 0 ) and lines or error('No images found') end  p._main = function(args, transclude, extraClassName)  if not args[1] then  return error(linked and 'No page specified' or 'No page specified', 0)  end  local lines = transclude and makeTranscludedGalleryLinesTables(args) or makeGalleryLinesTable(args)  local classNames = 'randomSlideshow-container'  if extraClassName then classNames = classNames .. ' ' .. extraClassName end  return makeOutput(lines, args.width or '100%', classNames, isDeclined(args.random)) end  p.main = function(frame)  local parent = frame.getParent(frame)  local parentArgs = parent.args  local args = cleanupArgs(parentArgs)  local output = p._main(args, false)  return frame:extensionTag{ name='templatestyles', args = { src='Module:Random slideshow/styles.css'} }  .. frame:preprocess(output) end  p.transclude = function(frame)  local parent = frame.getParent(frame)  local parentArgs = parent.args  local args = cleanupArgs(parentArgs)  local output = p._main(args, true)  return frame:extensionTag{ name='templatestyles', args = { src='Module:Random slideshow/styles.css'} }  .. frame:preprocess(output) end  return p 

มอด, random, slideshow, อการใช, งานมอด, สร, าง, ณอาจจะต, องการสร, างค, อการใช, งานของมอด, ลน, เข, ยนสามารถทำการทดลองได, กระบะทราย, สร, าง, ดลอก, และช, ดทดสอบ, สร, าง, ของมอด, ลน, โปรดเพ, มหมวดหม, ไปท, หน, าย, อย, หน, าย, อยของมอด, ลน, creates, slideshow, galle. khumuxkarichnganmxdul srang khunxaccatxngkarsrangkhumuxkarichngankhxngmxdulniphuekhiynsamarththakarthdlxngidthikrabathray srang khdlxk aelachudthdsxb srang khxngmxdulnioprdephimhmwdhmuipthihnayxy doc hnayxykhxngmxdulni Creates a slideshow gallery where the order is randomised Intended for use on portal pages local p local excerptModule require Module Excerpt portals local randomModule require Module Random local redirectModule require Module Redirect function cleanupArgs argsTable local cleanArgs for key val in pairs argsTable do if type val string then val val match s s if val then cleanArgs key val end else cleanArgs key val end end return cleanArgs end function normaliseCssMeasurement input local suffix string reverse string sub string reverse input 1 2 if suffix px or suffix em or string sub suffix 2 2 then return input else return input px end end function isDeclined val if not val then return false end local declinedWords decline declined exclude excluded false none not no n off omit omitted remove removed return string find declinedWords val 1 true and true or false end function makeOutput galleryLines maxWidth containerClassName nonRandom local randomiseArgs t galleryLines local sortedLines nonRandom and galleryLines or randomModule main array randomiseArgs for i 1 sortedLines do insert a switcher label span just after the first pipe which has already been escaped as instead the character sortedLines i sortedLines i gsub lt span class switcher label style display none gt lt span class randomSlideshow sr only gt Image tostring i lt span gt lt span gt 1 end local galleryContent table concat sortedLines n local output lt div class containerClassName style max width normaliseCssMeasurement maxWidth margin 4em auto gt lt div class nomobile gt lt intentionally empty on desktop and is not present on mobile website outside template namesapce gt lt div gt tag gallery galleryContent mode slideshow class switcher container lt div gt return output end function makeGalleryLine file caption credit local title mw title new file File if not title then return File Blank png Error File File file does not exist end local creditLine credit and lt p gt lt span style font size 88 gt credit lt span gt lt p gt or return title prefixedText caption or creditLine end function makeGalleryLinesTable args local galleryLinesTable local i 1 while args i do table insert galleryLinesTable makeGalleryLine args i args i 1 args credit i 1 2 i i 2 end return galleryLinesTable end function hasCaption line local caption mw ustring match line require caption to exist with more than 5 characters avoids sizes etc being mistaken for captions return caption and caption gt 5 and true or false end function extractGalleryFiles wikitext local gallery mw ustring match wikitext lt gallery gt s s lt gallery gt if not gallery then return false end gallery mw ustring gsub gallery return mw text split gallery c end function extractRegularFiles wikitext local files local frame mw getCurrentFrame local expand function template return frame preprocess template end for file in mw ustring gmatch wikitext b do remove keywords that don t work in galleries file mw ustring gsub file s thumb s 1 file mw ustring gsub file s thumbnail s 1 file mw ustring gsub file s border s 1 file mw ustring gsub file s left s 1 file mw ustring gsub file s right s 1 file mw ustring gsub file s center s 1 file mw ustring gsub file s centre s 1 file mw ustring gsub file s baseline s 1 file mw ustring gsub file s sub s 1 file mw ustring gsub file s super s 1 file mw ustring gsub file s top s 1 file mw ustring gsub file s text top s 1 file mw ustring gsub file s bottom s 1 file mw ustring gsub file s text bottom s 1 file mw ustring gsub file s framed s 1 file mw ustring gsub file s frameless s 1 file mw ustring gsub file s upright s 0 9 s 1 file mw ustring gsub file s upright s 1 file mw ustring gsub file s link s 1 remove spaces prior to captions which cause pre formatted text file mw ustring gsub file s remove sizes which sometimes get mistaken for captions file mw ustring gsub file s d x d s px s 1 expand templates file mw ustring gsub file b expand remove loose closing braces which don t have matching opening braces file mw ustring gsub file remove loose opening braces which don t have matching closing braces and the subsequent content which is probably just a template name file mw ustring gsub file 1 replace pipes and equals which would otherwise break the tag syntax file mw ustring gsub file s alt s alt file mw ustring gsub file file mw ustring gsub file remove linebreaks file mw ustring gsub file n n lt br gt file mw ustring gsub file n remove surrounding square brackets file mw ustring gsub file file mw ustring gsub file table insert files file end return files end function makeTranscludedGalleryLinesTables args local namespaceNumber function pagetitle local titleObject mw title new pagetitle return titleObject and titleObject namespace end local lines local i 1 while args i do if namespaceNumber args i 6 then file namespace args i is either just the filename or uses syntax File Name jpg Caption Credit local parts mw text split args i s local filename parts 1 local caption args caption i or parts 2 or false local credit args credit i or parts 3 or false local line makeGalleryLine filename caption credit table insert lines line else local content pagename excerptModule getContent args i if not pagename then return error Cannot read a valid page for args i 0 elseif not content then return error No content found on page args i 0 end if args section i then content excerptModule getSection content args section i or end content excerptModule cleanupText content keepSubsections true true means keep subsections local galleryFiles extractGalleryFiles content if galleryFiles then for f in pairs galleryFiles do if hasCaption f then local filename string gsub f local isOkay excerptModule checkImage filename if isOkay then table insert lines f from pagename end end end end local otherFiles excerptModule parse content fileflags 1 100 filesOnly true if otherFiles then for f in pairs extractRegularFiles otherFiles do if f and f and mw ustring sub f 1 5 File and hasCaption f then table insert lines f from pagename end end end end i i 1 end return lines gt 0 and lines or error No images found end p main function args transclude extraClassName if not args 1 then return error linked and No page specified or No page specified 0 end local lines transclude and makeTranscludedGalleryLinesTables args or makeGalleryLinesTable args local classNames randomSlideshow container if extraClassName then classNames classNames extraClassName end return makeOutput lines args width or 100 classNames isDeclined args random end p main function frame local parent frame getParent frame local parentArgs parent args local args cleanupArgs parentArgs local output p main args false return frame extensionTag name templatestyles args src Module Random slideshow styles css frame preprocess output end p transclude function frame local parent frame getParent frame local parentArgs parent args local args cleanupArgs parentArgs local output p main args true return frame extensionTag name templatestyles args src Module Random slideshow styles css frame preprocess output end return p ekhathungcak https th wikipedia org w index php title mxdul Random slideshow amp oldid 10379639, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม