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
| |
| | | |
| | | |