|
|
Sətir 238: |
Sətir 238: |
|
| |
|
|
| |
|
| --[[--------------------------< L I N K _ P A R A M _ O K >---------------------------------------------------
| |
|
| |
|
| checks the content of |title-link=, |series-link=, |author-link= etc for properly formatted content: no wikilinks, no urls
| |
|
| |
| Link parameters are to hold the title of a wikipedia article so none of the WP:TITLESPECIALCHARACTERS are allowed:
| |
| # < > [ ] | { } _
| |
| except the underscore which is used as a space in wiki urls and # which is used for section links
| |
|
| |
| returns false when the value contains any of these characters.
| |
|
| |
| When there are no illegal characters, this function returns TRUE if value DOES NOT appear to be a valid url (the
| |
| |<param>-link= parameter is ok); else false when value appears to be a valid url (the |<param>-link= parameter is NOT ok).
| |
|
| |
| ]]
| |
|
| |
| local function link_param_ok (value)
| |
| local scheme, domain;
| |
| if value:find ('[<>%[%]|{}]') then -- if any prohibited characters
| |
| return false;
| |
| end
| |
|
| |
| scheme, domain = split_url (value); -- get scheme or nil and domain or nil from url;
| |
| return not is_url (scheme, domain); -- return true if value DOES NOT appear to be a valid url
| |
| end
| |
|
| |
|
| |
| --[[--------------------------< L I N K _ T I T L E _ O K >---------------------------------------------------
| |
|
| |
| Use link_param_ok() to validate |<param>-link= value and its matching |<title>= value.
| |
|
| |
| |<title>= may be wikilinked but not when |<param>-link= has a value. This function emits an error message when
| |
| that condition exists
| |
|
| |
| ]]
| |
|
| |
| local function link_title_ok (link, lorig, title, torig)
| |
| local orig;
| |
|
| |
| if is_set (link) then -- don't bother if <param>-link doesn't have a value
| |
| if not link_param_ok (link) then -- check |<param>-link= markup
| |
| orig = lorig; -- identify the failing link parameter
| |
| elseif title:find ('%[%[') then -- check |title= for wikilink markup
| |
| orig = torig; -- identify the failing |title= parameter
| |
| end
| |
| end
| |
|
| |
| if is_set (orig) then
| |
| table.insert( z.message_tail, { set_error( 'bad_paramlink', orig)}); -- url or wikilink in |title= with |title-link=;
| |
| end
| |
| end
| |
|
| |
|
|
| |
|