Table of contents
No headers
var allowed_elements = { tags:"div.pageInfo", files:"div.file", images:"div.gallery", comments:"div#comments" };
var elements = $0 ?? $elements;
var byuser = $1 ?? $byuser ?? false;
var selectors = [];
if (elements != nil) {
if (elements == "all")
let selectors = map.values(allowed_elements);
else if (elements is not list)
<p> "ERROR: HidePageElements: first argument (ELEMENTS) must be a list of strings" </p>;
else {
var errors = [];
foreach (var e in elements) {
let e = string.tolower(e);
if (e is not str || !list.contains(map.keys(allowed_elements), e))
let errors ..= [ e ];
else
let selectors ..= [ allowed_elements[e] ];
}
if (#errors)
<div>
"ERROR: HidePageElements: bad elements: " .. string.serialize(errors) .. "; allowed elements are:";
<ul> foreach (var ae in map.keys(allowed_elements)) <li> ae </li>; </ul>;
</div>;
}
}
if (#selectors && (!byuser || !wiki.pagepermissions().update))
<style type="text/css"> string.join(selectors, ",").."{ display:none; }" </style>;