Skip to content

Instantly share code, notes, and snippets.

@binq
Created December 27, 2018 19:29
Show Gist options
  • Save binq/42a802a6f1b619821a6bb08be3d2197d to your computer and use it in GitHub Desktop.
Save binq/42a802a6f1b619821a6bb08be3d2197d to your computer and use it in GitHub Desktop.
$$(".extension").map(function (x) {
const
getName = function () {
const
maybeName = x.querySelector(".descname"),
name = null == maybeName ? "no name" : maybeName.innerText;
return name;
},
getDek = function () {
const
maybeDek = x.querySelector("dd"),
dek = null == maybeDek ? null : maybeDek.innerText;
return dek;
},
extractImplies = function (src) {
const
maybeImplies = (/Implies:\s+((\S+|,\s+)+)(\s*Since.*)/).exec(src),
[implies, rest] = null == maybeImplies ? [null, null] : [maybeImplies[1].split(", "), maybeImplies[3]];
return [implies, rest];
},
extractSince = function (src) {
const
maybeSince = (/Since:\s+((\d+|\.)+)(.*)/s).exec(dek),
[since, rest] = null == maybeSince ? [null, null] : [maybeSince[1].split(".").join("|"), maybeSince[3]];
return [since, rest];
},
extractDesc = function (src) {
const
result = src.replace(/\n/g, " ");
return result;
}
name = getName(),
dek = getDek(),
[implies, sinceSrc] = null == dek ? [] : extractImplies(dek),
[since, descSrc] = null == dek ? [] : extractSince(null == implies ? dek : sinceSrc),
desc = null == descSrc ? null : extractDesc(descSrc),
result = {dek: dek, name: name, implies: implies, since: since, desc: desc};
return result;
}).sort(function (a, b) {
return a.name.localeCompare(b.name);
}).map(function (x) {
const
result = `${x.name}|${x.implies}|${x.since}|${x.desc}`;
return result;
}).join("\n");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment