|  | 
| 1 | 1 | <script type="text/discourse-plugin" version="0.8.20"> | 
| 2 |  | -let customHeaderLinks = settings.Custom_header_links; | 
|  | 2 | + const customHeaderLinks = settings.Custom_header_links; | 
| 3 | 3 | 
 | 
| 4 |  | -customHeaderLinks.split("|").map(i => { | 
| 5 |  | - let seg = $.map(i.split(","), $.trim), | 
| 6 |  | - linkText = seg[0], | 
| 7 |  | - linkTitle = seg[1], | 
| 8 |  | - linkHref = seg[2], | 
| 9 |  | - deviceClass = "." + seg[3], | 
| 10 |  | - linkTarget = seg[4] === "self" ? "" : "_blank", | 
| 11 |  | - keepOnScrollClass = seg[5] === "keep" ? ".keep" : ""; | 
|  | 4 | + if (!customHeaderLinks.length) return; | 
|  | 5 | + | 
|  | 6 | + const h = require("virtual-dom").h; | 
|  | 7 | + const headerLinks = []; | 
|  | 8 | + | 
|  | 9 | + customHeaderLinks.split("|").map(i => { | 
|  | 10 | + const seg = $.map(i.split(","), $.trim); | 
|  | 11 | + const linkText = seg[0]; | 
|  | 12 | + const linkTitle = seg[1]; | 
|  | 13 | + const linkHref = seg[2]; | 
|  | 14 | + const deviceClass = `.${seg[3]}`; | 
|  | 15 | + const linkTarget = seg[4] === "self" ? "" : "_blank"; | 
|  | 16 | + const keepOnScrollClass = seg[5] === "keep" ? ".keep" : ""; | 
|  | 17 | + const linkClass = `.${linkText.trim().toLowerCase().replace(/\s/gi, '-')}`; | 
|  | 18 | + | 
|  | 19 | + if (!linkTarget) { | 
|  | 20 | + headerLinks.push( | 
|  | 21 | + h( | 
|  | 22 | + `li.headerLink${deviceClass}${keepOnScrollClass}${linkClass}`, | 
|  | 23 | + h( | 
|  | 24 | + "a", | 
|  | 25 | + { | 
|  | 26 | + title: linkTitle, | 
|  | 27 | + href: linkHref | 
|  | 28 | + }, | 
|  | 29 | + linkText | 
|  | 30 | + ) | 
|  | 31 | + ) | 
|  | 32 | + ); | 
|  | 33 | + } else { | 
|  | 34 | + headerLinks.push( | 
|  | 35 | + h( | 
|  | 36 | + `li.headerLink${deviceClass}${keepOnScrollClass}${linkClass}`, | 
|  | 37 | + h( | 
|  | 38 | + "a", | 
|  | 39 | + { | 
|  | 40 | + title: linkTitle, | 
|  | 41 | + href: linkHref, | 
|  | 42 | + target: linkTarget | 
|  | 43 | + }, | 
|  | 44 | + linkText | 
|  | 45 | + ) | 
|  | 46 | + ) | 
|  | 47 | + ); | 
|  | 48 | + } | 
|  | 49 | + }); | 
| 12 | 50 | 
 | 
| 13 | 51 |  api.decorateWidget("header-buttons:before", helper => { | 
| 14 | 52 |  return helper.h( | 
| 15 |  | - "li.headerLink" + deviceClass + keepOnScrollClass, | 
| 16 |  | - helper.h( | 
| 17 |  | - "a", | 
| 18 |  | - { | 
| 19 |  | - href: linkHref, | 
| 20 |  | - title: linkTitle, | 
| 21 |  | - target: linkTarget, | 
| 22 |  | - attributes: { "data-auto-route": "true" } | 
| 23 |  | - }, | 
| 24 |  | - linkText | 
| 25 |  | - ) | 
|  | 53 | + "ul.custom-header-links", headerLinks | 
| 26 | 54 |  ); | 
| 27 | 55 |  }); | 
| 28 |  | -}); | 
| 29 | 56 | 
 | 
| 30 |  | -api.decorateWidget("home-logo:after", helper => { | 
| 31 |  | - let titleVisible = helper.attrs.minimized; | 
| 32 |  | - if (titleVisible) { | 
| 33 |  | - $(".d-header").addClass("hide-menus"); | 
| 34 |  | - } else { | 
| 35 |  | - $(".d-header").removeClass("hide-menus"); | 
| 36 |  | - } | 
| 37 |  | -}); | 
|  | 57 | + api.decorateWidget("home-logo:after", helper => { | 
|  | 58 | +  let titleVisible = helper.attrs.minimized; | 
|  | 59 | +  if (titleVisible) { | 
|  | 60 | +  $(".d-header").addClass("hide-menus"); | 
|  | 61 | +  } else { | 
|  | 62 | +  $(".d-header").removeClass("hide-menus"); | 
|  | 63 | +  } | 
|  | 64 | + }); | 
| 38 | 65 | </script> | 
0 commit comments