@ 260802.2

200426.1 · 36c995dad7a8bd843a3e6d5fdfc8c1deffe770ee

initial commit

This brings over mostly everything from my old $HOME-only repository. I remove some unused scripts. This commit does not include work-related stuff, which will be encrypted and added in a subsequent commit.

This also does not include my SSH configuration. There's nothing particularly sensitive in it, but it seems prudent to encrypt that too.

reading declarations

Changes to .config/tridactyl/rustdoc-condensed.js. All files

.config/tridactyl/rustdoc-condensed.js

new file mode 100644@@ -0,0 +1,69 @@+(function() {+  // This function forces rustdoc to collapse documentation for all items,+  // except for the methods defined in an impl block and the primary type's+  // declaration. This is the most natural view IMO, since it provides the+  // primary type along with an easy to scan overview of available methods.+  //+  // rustdoc does seemingly have user settings that purport to make this the+  // default, but I could never cause them to work in a reliably consistent+  // way. This is especially useful when writing documents, where you commonly+  // want to refresh and look at the docs for the specific item you're working+  // on. This mini-script will automatically scroll to and expand the currently+  // selected method.+  //+  // I used the tridactyl Firefox extension to bind this script to `,z` with+  // the following in my tridactylrc:+  //+  //     bind ,z composite jsb tri.native.run('cat path/to/rustdoc-condensed.js') | js -p eval(JS_ARG.content)++  // get the currently selected doc item from URL's hash fragment+  // e.g., in `struct.BStr.html#method.words`, this returns `method.words`.+  function getPageId() {+    var id = document.location.href.split("#")[1];+    if (id) {+      return id.split("?")[0].split("&")[0];+    }+    return null;+  }++  // collapse everything, with an extra click in case things are partially+  // collapased already+  const toggleAll = document.getElementById('toggle-all-docs');+  if (toggleAll.className.indexOf('will-expand') > -1) {+    toggleAll.click();+  }+  toggleAll.click();++  // re-expand primary impls+  const impls = document.getElementsByClassName('impl');+  for (let i = 0; i < impls.length; i++) {+    // but don't expand every impl, just the ones on this type+    if (!/^impl(-\d+)?$/.test(impls[i].id)) {+      continue;+    }++    const toggles = impls[i].getElementsByClassName('collapse-toggle');+    for (let j = 0; j < toggles.length; j++) {+      // If it's already expanded, then let it be. In newer versions of+      // rustdoc, collapsing everything doesn't collapse the methods, so we+      // don't need to do anything.+      if (toggles[j].innerText == '[−]') {+        continue;+      }+      toggles[j].click();+    }+  }++  // expand type declaration docs+  const main = document.getElementById('main');+  const wrapper = document.getElementsByClassName('toggle-wrapper')[0];+  wrapper.getElementsByTagName('a')[0].click();++  // re-expand specific method declaration, and scroll to it+  const pageId = getPageId();+  if (pageId !== null) {+    const method = document.getElementById(pageId);+    method.getElementsByClassName('collapse-toggle')[0].click();+    method.scrollIntoView();+  }+})()