plugins.js

 1function detectOS() {
 2  var userAgent = navigator.userAgent;
 3
 4  var platform = navigator.platform;
 5  var macosPlatforms = ["Macintosh", "MacIntel", "MacPPC", "Mac68K"];
 6  var windowsPlatforms = ["Win32", "Win64", "Windows", "WinCE"];
 7  var iosPlatforms = ["iPhone", "iPad", "iPod"];
 8
 9  if (macosPlatforms.indexOf(platform) !== -1) {
10    return "Mac";
11  } else if (iosPlatforms.indexOf(platform) !== -1) {
12    return "iOS";
13  } else if (windowsPlatforms.indexOf(platform) !== -1) {
14    return "Windows";
15  } else if (/Android/.test(userAgent)) {
16    return "Android";
17  } else if (/Linux/.test(platform)) {
18    return "Linux";
19  }
20
21  return "Unknown";
22}
23
24// Usage
25var os = detectOS();
26console.log("Operating System:", os);
27
28(function updateKeybindings() {
29  const os = detectOS();
30  const isMac = os === "Mac" || os === "iOS";
31
32  function processKeybinding(element) {
33    const [macKeybinding, linuxKeybinding] = element.textContent.split("|");
34    element.textContent = isMac ? macKeybinding : linuxKeybinding;
35    element.classList.add("keybinding");
36  }
37
38  function walkDOM(node) {
39    if (node.nodeType === Node.ELEMENT_NODE) {
40      if (node.tagName.toLowerCase() === "kbd") {
41        processKeybinding(node);
42      } else {
43        Array.from(node.children).forEach(walkDOM);
44      }
45    }
46  }
47
48  // Start the process from the body
49  walkDOM(document.body);
50})();