fbpx
วิกิพีเดีย

มอดูล:Highlighted date list

คู่มือการใช้งานมอดูล[สร้าง]
-- This module takes a list of dates and adds a marker highlighting the closest -- date in the future.  local p = {} local lang = mw.language.getContentLanguage()  local function normalizeDate(timestamp)  local success, date = pcall(lang.formatDate, lang, 'Y-m-d', timestamp)  return success and date end  local function makeData(args)  local data, unsorted = {}, {}  for k, v in pairs(args) do  if type(k) == 'string' then  local datakey, num = k:match('^(.-)([1-9][0-9]*)$')  if datakey == 'item' or datakey == 'date' then  num = tonumber(num)  unsorted[num] = unsorted[num] or {}  unsorted[num][datakey] = v  elseif datakey then  error(string.format("invalid parameter '%s' detected", k), 3)  end  end  end  for num, t in pairs(unsorted) do  if t.item and t.date then  local date = normalizeDate(t.date)  if not date then  error(string.format(  "invalid date '%s' in parameter 'date%d'",  t.date, num  ), 3)  end  t.date = date  table.insert(data, t)  elseif t.item then  error(string.format(  "parameter 'item%d' was specified but parameter 'date%d' is missing",  num, num  ), 3)  else  error(string.format(  "parameter 'date%d' was specified but parameter 'item%d' is missing",  num, num  ), 3)  end  end  table.sort(data, function (t1, t2)  return t1.date < t2.date  end)  return data end  local function makeComparisonDate(gracePeriod)  local timestamp  if gracePeriod then  timestamp = 'now - ' .. gracePeriod  else  timestamp = 'now'  end  local date = normalizeDate(timestamp)  if date then  return date  else  error(string.format("invalid grace period '%s'", gracePeriod), 3)  end end  local function makeHighlighter(color)  color = color or '#FC6'  local highlighter = mw.html.create('span')  highlighter  :css('background-color', color)  :wikitext(lang:getArrow('forwards'))  return tostring(highlighter) end  function p._main(args)  local data = makeData(args)  local comparisonDate = makeComparisonDate(args.graceperiod)  local highlighter = args.highlighter or makeHighlighter(args.highlightercolor)  local root = mw.html.create('ul')  root  :addClass(args.class)  :cssText(args.style)  local doneHighlight = false  for i, t in ipairs(data) do  local item  if not doneHighlight and t.date >= comparisonDate then  doneHighlight = true  item = highlighter .. ' ' .. t.item  else  item = t.item  end  root  :newline()  :tag('li')  :wikitext(item)  end  root:newline()  return tostring(root) end  function p.main(frame)  local args = require('Module:Arguments').getArgs(frame, {  wrappers = 'Template:Highlighted date list'  })  return p._main(args) end  return p 

มอด, highlighted, date, list, อการใช, งานมอด, สร, าง, ณอาจจะต, องการสร, างค, อการใช, งานของมอด, ลน, เข, ยนสามารถทำการทดลองได, กระบะทราย, สร, าง, ดลอก, และช, ดทดสอบ, สร, าง, ของมอด, ลน, โปรดเพ, มหมวดหม, ไปท, หน, าย, อย, หน, าย, อยของมอด, ลน, this, module, takes. khumuxkarichnganmxdul srang khunxaccatxngkarsrangkhumuxkarichngankhxngmxdulniphuekhiynsamarththakarthdlxngidthikrabathray srang khdlxk aelachudthdsxb srang khxngmxdulnioprdephimhmwdhmuipthihnayxy doc hnayxykhxngmxdulni This module takes a list of dates and adds a marker highlighting the closest date in the future local p local lang mw language getContentLanguage local function normalizeDate timestamp local success date pcall lang formatDate lang Y m d timestamp return success and date end local function makeData args local data unsorted for k v in pairs args do if type k string then local datakey num k match 1 9 0 9 if datakey item or datakey date then num tonumber num unsorted num unsorted num or unsorted num datakey v elseif datakey then error string format invalid parameter s detected k 3 end end end for num t in pairs unsorted do if t item and t date then local date normalizeDate t date if not date then error string format invalid date s in parameter date d t date num 3 end t date date table insert data t elseif t item then error string format parameter item d was specified but parameter date d is missing num num 3 else error string format parameter date d was specified but parameter item d is missing num num 3 end end table sort data function t1 t2 return t1 date lt t2 date end return data end local function makeComparisonDate gracePeriod local timestamp if gracePeriod then timestamp now gracePeriod else timestamp now end local date normalizeDate timestamp if date then return date else error string format invalid grace period s gracePeriod 3 end end local function makeHighlighter color color color or FC6 local highlighter mw html create span highlighter css background color color wikitext lang getArrow forwards return tostring highlighter end function p main args local data makeData args local comparisonDate makeComparisonDate args graceperiod local highlighter args highlighter or makeHighlighter args highlightercolor local root mw html create ul root addClass args class cssText args style local doneHighlight false for i t in ipairs data do local item if not doneHighlight and t date gt comparisonDate then doneHighlight true item highlighter t item else item t item end root newline tag li wikitext item end root newline return tostring root end function p main frame local args require Module Arguments getArgs frame wrappers Template Highlighted date list return p main args end return p ekhathungcak https th wikipedia org w index php title mxdul Highlighted date list amp oldid 6337029, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

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