Module:Tracked in: Difference between revisions
Appearance
Content deleted Content added
clarify |
detect issue numbers not at the end of a URL |
||
Line 14: | Line 14: | ||
function p.getIssueNumber(frame) |
function p.getIssueNumber(frame) |
||
local url = frame.args[1] |
local url = frame.args[1] |
||
local issueNumber = string.match(url, '(%d+) |
local issueNumber = string.match(url, '/(%d+)') |
||
if tonumber(issueNumber) == nil then |
if tonumber(issueNumber) == nil then |
||
return "ERROR: Issue number not found" |
return "ERROR: Issue number not found" |
Latest revision as of 21:33, 25 January 2024
Implements {{tracked in}}
-- Utility functions for {{Tracked in}}, which is a template similar to {{Tracked}}, but lets you link to issues and pull requests that aren't on Phabricator, e.g. GitHub, GitLab, etc.
local p = {}
-- {{#invoke:Tracked in|getDomain|{{{1|}}}}}
function p.getDomain(frame)
local url = frame.args[1]
local domain = string.gsub(url, "www%.", "")
domain = string.match(domain, 'https?:%/%/(.-)%/.*$')
return domain
end
-- {{#invoke:Tracked in|getIssueNumber|{{{1|}}}}}
function p.getIssueNumber(frame)
local url = frame.args[1]
local issueNumber = string.match(url, '/(%d+)')
if tonumber(issueNumber) == nil then
return "ERROR: Issue number not found"
else
return "Issue #" .. issueNumber -- add a # sign in front of the number. can't use #, that creates a numbered list
end
end
return p