Module:Linksplit

Template-info.svg 模块文档  [创建] [刷新]
  1. local p = {}
  2. function p.main(frame)
  3. local wrappers = {
  4. ['Template:沙盒'] = true,
  5. ['Template:Linksplit'] = true,
  6. }
  7. local parent = frame:getParent()
  8. if parent and wrappers[parent:getTitle()] then
  9. frame = parent
  10. end
  11. return p._main(frame.args)
  12. end
  13. function p._main(args)
  14. local titles = {} -- 链接
  15. local _c = args.c or ':'
  16. local sep = args.char or ' • '
  17. local delcontent = args.del or ''
  18. local afterdel -- 要删除的内容
  19. -- 处理参数1~n
  20. for _, v in ipairs(args) do
  21. v = mw.text.trim(v)
  22. -- 判断是否有{{!}}(已被展开)
  23. if v ~= "" then
  24. if not mw.ustring.find(v, "|") then
  25. afterdel = mw.ustring.gsub(v , delcontent ,'')
  26. if args.prefix then
  27. table.insert(titles, args.prefix.._c..v.."|"..afterdel)
  28. else
  29. table.insert(titles, v.."|"..mw.ustring.gsub(afterdel,"^(.*)".._c,""))
  30. end
  31. else
  32. table.insert(titles, v)
  33. end
  34. end
  35. end
  36. local str = table.concat(titles, ']]'..sep.."[[")
  37. return '[['..str..']]'
  38. end
  39. return p