- Scent
+ Scent
|
Wis |
diff --git a/index.xhtml b/index.xhtml
index de1f27d..2ba15e9 100644
--- a/index.xhtml
+++ b/index.xhtml
@@ -20,21 +20,59 @@
-
-
-
-
-
-
-
-
-
-
- This site is temporarily down as of 2019-02-22. No ETA.
+
+ James T. Martin
+ Summary
+ I am a self-taught programmer fond of programming language theory.
+ Skills
+
+ - Programming Languages: Java, Haskell, Agda, HTML, Rust.
+
+ Experience
+
+
+
+
+ I was a Java developer for the Hazen Robotics Club from September 2017 to October 2018.
+
+ In addition, I:
+
+ -
+ mentored programming at the robotics summer camp, and
+
+ -
+ taught basic tools like Java and Git to club members.
+
+
+
+ Education
+
+ - I graduated from Hazen High School in June 2019.
+ -
+ I will begin attending Bellevue College in Winter 2020,
+ with the intent to study computer science.
+
+
+ Certifications
+
diff --git a/key.pgp b/key.pgp
new file mode 100644
index 0000000..09d4702
--- /dev/null
+++ b/key.pgp
@@ -0,0 +1,51 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=43QG
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/lore/knowledge.xhtml b/lore/knowledge.xhtml
new file mode 100644
index 0000000..8af8664
--- /dev/null
+++ b/lore/knowledge.xhtml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+ Siberius: Knowledge
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Siberius: Knowledge
+
+ Knowledge
+ (Int;
+ Trained Only) is a family of skills in the Siberius homebrew.
+ Knowledge represents your study of some body of lore.
+ A knowledge check may be used to answer
+ a question regarding your field of study,
+ and in addition provide an array of
+
+ skill synergies.
+
+
+ This skill family is a simplification of
+
+ the system used in D&D 3.5e,
+ which contains a lot of complexity and useless skills.
+
+ Knowledge checks
+
+ A knowledge check is a free action used to
+ recall information about your field of study.
+ You cannot re-try knowledge checks; you either know the answer or you don't.
+
+
+
+
+ Knowledge DC |
+ Effect |
+
+
+ 10 |
+ Answer a very easy question. |
+
+
+ 15 |
+ Answer a basic question. |
+
+
+ 20–30 |
+ Answer a really tough question. |
+
+
+
+ For every five points by which your check result exceeds the DC,
+ you recall another useful piece of information.
+
+ Specific skills
+
+ -
+
+ Knowledge (survival) represents your knowledge of
+ nature, dungeoneering, and geography.
+ It helps you identify plants, animals, monsters and vermin,
+ navigate through forests and caverns,
+ and predict the weather.
+
+ At least five ranks in this skill also give
+ a +2 bonus to
+
+ Survival checks in all non-magical environments.
+
+ At least five ranks in
+
+ Survival give a +2 bonus to Knowledge (survival) checks
+
+
+ -
+
+ Knowledge (social) represents your knowledge of
+ cities, architecture, engineering, history, nobility, and lore.
+ It helps you navigate through a city environment,
+ talk to people, and identify architectural anomalies.
+
+
+ At least five ranks in this skill also give a +2 bonus to:
+
+
+
+ -
+
+ Knowledge (magical) represents your knowledge of
+ magic, psionics, religion, and the planes.
+ You know about ancient mysteries and traditions,
+ magical and holy symbols, magical beasts, the gods, and so forth.
+
+
+ At least five ranks in this skill also give a +2 bonus to:
+
+
+
+ At least five ranks in
+
+ Autohypnosis
+ a +2 bonus to Knowledge (magical) checks relating to psionics.
+
+
+
+
+
diff --git a/lore/smell.xhtml b/lore/smell.xhtml
new file mode 100644
index 0000000..f5f624f
--- /dev/null
+++ b/lore/smell.xhtml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+ Siberius: Smell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Siberius: Smell
+
+ Smell (Wis)
+ is a skill exclusive to creatures with the
+ Scent quality
+ (i.e. those with an animal-strength sense of smell).
+ It allows you to detect approaching enemies, sniff out hidden foes,
+ and track by sense of smell.
+ You can identify familiar odors just as humans do familiar sights.
+
+ To quote the
+ Scent SRD
+ regarding how a sense of smell functions:
+
+
+
+ The creature can detect opponents within 30 feet by sense of smell.
+ If the opponent is upwind, the range increases to 60 feet;
+ if downwind, it drops to 15 feet.
+ Strong scents, such as smoke or rotting garbage,
+ can be detected at twice the ranges noted above.
+ Overpowering scents, such as skunk musk or troglodyte stench,
+ can be detected at triple normal range.
+
+
+ When a creature detects a scent,
+ the exact location of the source is not revealed—only
+ its presence somewhere within range.
+ The creature can take a move action to note the direction of the scent.
+
+
+ Whenever the creature comes within 5 feet of the source,
+ the creature pinpoints the source’s location.
+
+
+ Water, particularly running water,
+ ruins a trail for air-breathing creatures.
+ Water-breathing creatures that have the scent ability,
+ however, can use it in the water easily.
+
+
+ False, powerful odors can easily mask other scents.
+ The presence of such an odor completely spoils
+ the ability to properly detect or identify creatures
+ [and makes it much more difficult].
+
+
+
+ Races with a weak sense of smell like humans recieve a -20 bonus
+ to all smell checks.
+
+ Smell checks
+
+ A smell check is made against a DC
+ that reflects how weak the scent you might smell is.
+
+
+
+ This skill has not been properly formalized yet.
+ These DCs are purely to get a general idea of a check's difficulty,
+ and should not be used as a reference or expectation for success.
+ I will update these DCs as the skill is used more in-game.
+
+
+
+ Smell DC |
+ Scent |
+
+
+ -30 |
+ Skunk musk sprayed on you. |
+
+
+ -20 |
+ Something rotting right next to you. |
+
+
+ -10 |
+ A pie baking nearby upwind. |
+
+
+ 0 |
+ Someone standing right next to you. |
+
+
+ 10 |
+ A fresh scent trail (on any surface). |
+
+
+ 20 |
+ The scent trail of someone who passed five hours ago. |
+
+
+
+ For every five points by which your check result exceeds the DC,
+ you smell another detail about the creature which passed.
+
+
+
diff --git a/old-resume.xhtml b/old-resume.xhtml
new file mode 100644
index 0000000..cea80a1
--- /dev/null
+++ b/old-resume.xhtml
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+ James Martin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hazen High School
+ -
+
+ Renton,
+ WA
+
+
+
+ –
+
+
+
+
+ - Member of marching, symphonic, and jazz bands.
+
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..2dd0fb0
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,714 @@
+{
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+ "abab": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
+ "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w=="
+ },
+ "acorn": {
+ "version": "5.7.3",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
+ "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw=="
+ },
+ "acorn-globals": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.0.tgz",
+ "integrity": "sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==",
+ "requires": {
+ "acorn": "^6.0.1",
+ "acorn-walk": "^6.0.1"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz",
+ "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA=="
+ }
+ }
+ },
+ "acorn-walk": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz",
+ "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw=="
+ },
+ "ajv": {
+ "version": "6.10.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
+ "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "array-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
+ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM="
+ },
+ "asn1": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+ "requires": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "async-limiter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
+ },
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ },
+ "aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
+ },
+ "aws4": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
+ "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
+ },
+ "bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "requires": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "browser-process-hrtime": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
+ "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw=="
+ },
+ "caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "combined-stream": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
+ "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "cssom": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz",
+ "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A=="
+ },
+ "cssstyle": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz",
+ "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==",
+ "requires": {
+ "cssom": "0.3.x"
+ }
+ },
+ "dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "data-urls": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
+ "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
+ "requires": {
+ "abab": "^2.0.0",
+ "whatwg-mimetype": "^2.2.0",
+ "whatwg-url": "^7.0.0"
+ },
+ "dependencies": {
+ "whatwg-url": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz",
+ "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ }
+ }
+ },
+ "deep-is": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
+ },
+ "domexception": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz",
+ "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==",
+ "requires": {
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "requires": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "escodegen": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz",
+ "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==",
+ "requires": {
+ "esprima": "^3.1.3",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1",
+ "source-map": "~0.6.1"
+ }
+ },
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
+ },
+ "estraverse": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
+ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM="
+ },
+ "esutils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "fast-deep-equal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
+ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+ },
+ "fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
+ },
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ }
+ },
+ "getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "requires": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
+ },
+ "har-validator": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "requires": {
+ "ajv": "^6.5.5",
+ "har-schema": "^2.0.0"
+ }
+ },
+ "html-encoding-sniffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
+ "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
+ "requires": {
+ "whatwg-encoding": "^1.0.1"
+ }
+ },
+ "http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ }
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+ },
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ },
+ "jsdom": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz",
+ "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
+ "requires": {
+ "abab": "^2.0.0",
+ "acorn": "^5.5.3",
+ "acorn-globals": "^4.1.0",
+ "array-equal": "^1.0.0",
+ "cssom": ">= 0.3.2 < 0.4.0",
+ "cssstyle": "^1.0.0",
+ "data-urls": "^1.0.0",
+ "domexception": "^1.0.1",
+ "escodegen": "^1.9.1",
+ "html-encoding-sniffer": "^1.0.2",
+ "left-pad": "^1.3.0",
+ "nwsapi": "^2.0.7",
+ "parse5": "4.0.0",
+ "pn": "^1.1.0",
+ "request": "^2.87.0",
+ "request-promise-native": "^1.0.5",
+ "sax": "^1.2.4",
+ "symbol-tree": "^3.2.2",
+ "tough-cookie": "^2.3.4",
+ "w3c-hr-time": "^1.0.1",
+ "webidl-conversions": "^4.0.2",
+ "whatwg-encoding": "^1.0.3",
+ "whatwg-mimetype": "^2.1.0",
+ "whatwg-url": "^6.4.1",
+ "ws": "^5.2.0",
+ "xml-name-validator": "^3.0.0"
+ }
+ },
+ "json-schema": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+ },
+ "jsprim": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "requires": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ }
+ },
+ "left-pad": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz",
+ "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA=="
+ },
+ "levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+ "requires": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ }
+ },
+ "lodash": {
+ "version": "4.17.11",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
+ },
+ "lodash.sortby": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
+ "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg="
+ },
+ "mathjax": {
+ "version": "2.7.5",
+ "resolved": "https://registry.npmjs.org/mathjax/-/mathjax-2.7.5.tgz",
+ "integrity": "sha512-OzsJNitEHAJB3y4IIlPCAvS0yoXwYjlo2Y4kmm9KQzyIBZt2d8yKRalby3uTRNN4fZQiGL2iMXjpdP1u2Rq2DQ=="
+ },
+ "mathjax-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/mathjax-node/-/mathjax-node-2.1.1.tgz",
+ "integrity": "sha1-JcgPSU91QEGP/Pqcx1bf0hUCAb0=",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "jsdom": "^11.0.0",
+ "mathjax": "^2.7.2"
+ }
+ },
+ "mime-db": {
+ "version": "1.38.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
+ "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg=="
+ },
+ "mime-types": {
+ "version": "2.1.22",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
+ "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
+ "requires": {
+ "mime-db": "~1.38.0"
+ }
+ },
+ "nwsapi": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.1.tgz",
+ "integrity": "sha512-T5GaA1J/d34AC8mkrFD2O0DR17kwJ702ZOtJOsS8RpbsQZVOC2/xYFb1i/cw+xdM54JIlMuojjDOYct8GIWtwg=="
+ },
+ "oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
+ },
+ "optionator": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
+ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "requires": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
+ }
+ },
+ "parse5": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz",
+ "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA=="
+ },
+ "performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+ },
+ "pn": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
+ "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA=="
+ },
+ "prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
+ },
+ "psl": {
+ "version": "1.1.31",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
+ "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ },
+ "qs": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ },
+ "request": {
+ "version": "2.88.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+ "requires": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.0",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.4.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+ },
+ "tough-cookie": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+ "requires": {
+ "psl": "^1.1.24",
+ "punycode": "^1.4.1"
+ }
+ }
+ }
+ },
+ "request-promise-core": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
+ "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
+ "requires": {
+ "lodash": "^4.17.11"
+ }
+ },
+ "request-promise-native": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz",
+ "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==",
+ "requires": {
+ "request-promise-core": "1.1.2",
+ "stealthy-require": "^1.1.1",
+ "tough-cookie": "^2.3.3"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "optional": true
+ },
+ "sshpk": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+ "requires": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ }
+ },
+ "stealthy-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz",
+ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks="
+ },
+ "symbol-tree": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
+ "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY="
+ },
+ "tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "requires": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ }
+ },
+ "tr46": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
+ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+ },
+ "type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+ "requires": {
+ "prelude-ls": "~1.1.2"
+ }
+ },
+ "uri-js": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
+ },
+ "verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "requires": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "w3c-hr-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
+ "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
+ "requires": {
+ "browser-process-hrtime": "^0.1.2"
+ }
+ },
+ "webidl-conversions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
+ "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg=="
+ },
+ "whatwg-encoding": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
+ "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+ "requires": {
+ "iconv-lite": "0.4.24"
+ }
+ },
+ "whatwg-mimetype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
+ "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g=="
+ },
+ "whatwg-url": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz",
+ "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==",
+ "requires": {
+ "lodash.sortby": "^4.7.0",
+ "tr46": "^1.0.1",
+ "webidl-conversions": "^4.0.2"
+ }
+ },
+ "wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+ },
+ "ws": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+ "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "xml-name-validator": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
+ "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw=="
+ }
+ }
+}
diff --git a/ranks.txt b/ranks.txt
new file mode 100644
index 0000000..4cc9016
--- /dev/null
+++ b/ranks.txt
@@ -0,0 +1,30 @@
+Enlisted (player) ranks:
+
+Rank Zkills
+===============
+Fodder 0
+Pvt 100
+PFC 250
+LCpl 500
+Cpl 1,000
+Sgt 2,500
+SSgt 5,000
+GySgt 10,000
+MSgt 25,000
+MGySgt 50,000
+
+
+Officer (staff) ranks:
+
+Rank Normal Analogue
+======================
+2ndLt
+1stLt Chat Moderator
+Capt
+Maj Moderator
+LtCol
+Col Administrator
+BGen
+MajGen Developer
+LtGen
+Gen Owner
diff --git a/res/common.css b/res/common.css
index 2ac40e2..1d19dbc 100644
--- a/res/common.css
+++ b/res/common.css
@@ -140,3 +140,6 @@ pre {
font-size: 16px;
padding-left: 2em;
}
+
+.mjx-chtml {font-size: 2.26ex ! important}
+.mjx-chtml .mjx-chtml {font-size: inherit ! important}
diff --git a/res/mathjax b/res/mathjax
new file mode 120000
index 0000000..871cc09
--- /dev/null
+++ b/res/mathjax
@@ -0,0 +1 @@
+/usr/share/javascript/mathjax/
\ No newline at end of file
diff --git a/res/style.css b/res/style.css
index 8d4c5e8..5313c6a 100644
--- a/res/style.css
+++ b/res/style.css
@@ -1,4 +1,7 @@
+html { height: 100%; }
+
body {
+ min-height: 100%;
max-width: 95ch;
padding: 20px;
margin: auto;
@@ -13,10 +16,14 @@ body {
overflow: auto;
}
-p {
+p, blockquote {
max-width: 70ch;
}
+blockquote {
+ font-style: italic;
+}
+
@media (min-width: 900px) {
.card {
float: right;
@@ -68,6 +75,10 @@ img.pgp-img {
padding: 0;
}
+.card img {
+ display: inline;
+}
+
.contact-list {
list-style-type: none;
padding: 0;
@@ -79,6 +90,10 @@ img.pgp-img {
height: 1em;
}
+.cryptedmail:after {
+ content: attr(data-name) "@" attr(data-domain) "." attr(data-tld);
+}
+
th {
padding-right: 7px;
}
@@ -91,14 +106,6 @@ th {
float: right;
}
-li > .service::after, .skill-category::after {
- content: ": ";
-}
-
-.dt-end::before {
- content: " — ";
-}
-
.inline-list {
display: inline-block;
list-style-type: none;
@@ -109,26 +116,6 @@ li > .service::after, .skill-category::after {
display: inline;
}
-.inline-list > li:not(:last-child)::after {
- content: ", ";
-}
-
-.inline-list > li:last-child:not(:first-child)::before {
- content: "and ";
-}
-
-.inline-list > li:last-child::after {
- content: ".";
-}
-
-.ap-score::before {
- content: "(";
-}
-
-.ap-score::after {
- content: ")";
-}
-
.p-experience:not(:last-child) {
padding-bottom: 20px;
}
@@ -156,5 +143,14 @@ section figure img {
}
footer {
- min-height: 100px;
+ font-size: 75%;
+}
+
+.cryptedmail:after {
+ content: attr(data-name) "@" attr(data-domain) "." attr(data-tld);
+}
+
+.nocss {
+ visibility: hidden;
+ display: none;
}
diff --git a/resume.pdf b/resume.pdf
new file mode 100644
index 0000000..fa1000e
Binary files /dev/null and b/resume.pdf differ
diff --git a/resume.xhtml b/resume.xhtml
index 222d626..56c1918 100644
--- a/resume.xhtml
+++ b/resume.xhtml
@@ -29,38 +29,22 @@
-
+