mirror of
https://github.com/wassname/template.git
synced 2026-06-27 23:09:26 +08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d6de08c82 | |||
| 9d253fdd33 |
Generated
+103
-33
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "distill-template",
|
||||
"version": "2.5.0",
|
||||
"version": "2.5.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -374,6 +374,17 @@
|
||||
"lodash": "^4.17.4",
|
||||
"mkdirp": "^0.5.1",
|
||||
"source-map-support": "^0.4.15"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map-support": {
|
||||
"version": "0.4.18",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
|
||||
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "^0.5.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-runtime": {
|
||||
@@ -822,6 +833,7 @@
|
||||
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
|
||||
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"inherits": "~2.0.0"
|
||||
}
|
||||
@@ -837,6 +849,7 @@
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
|
||||
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"hoek": "2.x.x"
|
||||
}
|
||||
@@ -1009,6 +1022,12 @@
|
||||
"isarray": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
|
||||
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
|
||||
"dev": true
|
||||
},
|
||||
"buffer-xor": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
|
||||
@@ -1211,6 +1230,7 @@
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
@@ -1258,7 +1278,8 @@
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
||||
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"constants-browserify": {
|
||||
"version": "1.0.0",
|
||||
@@ -1340,6 +1361,7 @@
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
|
||||
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"boom": "2.x.x"
|
||||
}
|
||||
@@ -2181,7 +2203,8 @@
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.1.1",
|
||||
@@ -2232,7 +2255,8 @@
|
||||
"balanced-match": {
|
||||
"version": "0.4.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.1",
|
||||
@@ -2247,6 +2271,7 @@
|
||||
"version": "0.0.9",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"inherits": "~2.0.0"
|
||||
}
|
||||
@@ -2255,6 +2280,7 @@
|
||||
"version": "2.10.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"hoek": "2.x.x"
|
||||
}
|
||||
@@ -2263,6 +2289,7 @@
|
||||
"version": "1.1.7",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^0.4.1",
|
||||
"concat-map": "0.0.1"
|
||||
@@ -2271,7 +2298,8 @@
|
||||
"buffer-shims": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.12.0",
|
||||
@@ -2288,12 +2316,14 @@
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.5",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
@@ -2301,17 +2331,20 @@
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "2.0.5",
|
||||
@@ -2357,7 +2390,8 @@
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"delegates": {
|
||||
"version": "1.0.0",
|
||||
@@ -2383,7 +2417,8 @@
|
||||
"extsprintf": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.6.1",
|
||||
@@ -2405,12 +2440,14 @@
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"fstream": {
|
||||
"version": "1.0.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"inherits": "~2.0.0",
|
||||
@@ -2466,6 +2503,7 @@
|
||||
"version": "7.1.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
@@ -2478,7 +2516,8 @@
|
||||
"graceful-fs": {
|
||||
"version": "4.1.11",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "1.0.5",
|
||||
@@ -2517,7 +2556,8 @@
|
||||
"hoek": {
|
||||
"version": "2.16.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.1.1",
|
||||
@@ -2534,6 +2574,7 @@
|
||||
"version": "1.0.6",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
@@ -2542,7 +2583,8 @@
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.4",
|
||||
@@ -2554,6 +2596,7 @@
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
@@ -2567,7 +2610,8 @@
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
@@ -2640,12 +2684,14 @@
|
||||
"mime-db": {
|
||||
"version": "1.27.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.15",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"mime-db": "~1.27.0"
|
||||
}
|
||||
@@ -2654,6 +2700,7 @@
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
@@ -2661,12 +2708,14 @@
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
@@ -2719,7 +2768,8 @@
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.8.2",
|
||||
@@ -2737,6 +2787,7 @@
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
@@ -2766,7 +2817,8 @@
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "0.2.0",
|
||||
@@ -2777,7 +2829,8 @@
|
||||
"process-nextick-args": {
|
||||
"version": "1.0.7",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
@@ -2815,6 +2868,7 @@
|
||||
"version": "2.2.9",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"buffer-shims": "~1.0.0",
|
||||
"core-util-is": "~1.0.0",
|
||||
@@ -2859,6 +2913,7 @@
|
||||
"version": "2.6.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"glob": "^7.0.5"
|
||||
}
|
||||
@@ -2866,7 +2921,8 @@
|
||||
"safe-buffer": {
|
||||
"version": "5.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.3.0",
|
||||
@@ -2924,6 +2980,7 @@
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
@@ -2934,6 +2991,7 @@
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
@@ -2948,6 +3006,7 @@
|
||||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
@@ -2962,6 +3021,7 @@
|
||||
"version": "2.2.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"block-stream": "*",
|
||||
"fstream": "^1.0.2",
|
||||
@@ -3017,7 +3077,8 @@
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.0.1",
|
||||
@@ -3046,7 +3107,8 @@
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3055,6 +3117,7 @@
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
|
||||
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"inherits": "~2.0.0",
|
||||
@@ -3336,6 +3399,7 @@
|
||||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
|
||||
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"boom": "2.x.x",
|
||||
"cryptiles": "2.x.x",
|
||||
@@ -3364,7 +3428,8 @@
|
||||
"version": "2.16.3",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
|
||||
"integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"home-or-tmp": {
|
||||
"version": "2.0.0",
|
||||
@@ -4423,13 +4488,15 @@
|
||||
"version": "1.37.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
|
||||
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==",
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.21",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
|
||||
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"mime-db": "~1.37.0"
|
||||
}
|
||||
@@ -5824,6 +5891,7 @@
|
||||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
|
||||
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"hoek": "2.x.x"
|
||||
}
|
||||
@@ -5844,18 +5912,19 @@
|
||||
}
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.4.15",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz",
|
||||
"integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=",
|
||||
"version": "0.5.16",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
|
||||
"integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "^0.5.6"
|
||||
"buffer-from": "^1.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.5.6",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
|
||||
"integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=",
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@@ -6041,6 +6110,7 @@
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"block-stream": "*",
|
||||
"fstream": "^1.0.2",
|
||||
|
||||
+2
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "distill-template",
|
||||
"version": "2.5.0",
|
||||
"version": "2.5.1",
|
||||
"description": "Template for creating Distill articles.",
|
||||
"main": "dist/template.v2.js",
|
||||
"bin": {
|
||||
@@ -48,6 +48,7 @@
|
||||
"rollup-plugin-uglify": "^1.0.1",
|
||||
"rollup-watch": "^2.5.0",
|
||||
"should": "^13.1.2",
|
||||
"source-map-support": "^0.5.16",
|
||||
"webpack": "^2.2.1"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -129,7 +129,9 @@ export class Cite extends T(HTMLElement) {
|
||||
}
|
||||
|
||||
get keys() {
|
||||
return this.key.split(",");
|
||||
const result = this.key.split(",");
|
||||
console.log(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Setters & Rendering */
|
||||
|
||||
+59
-49
@@ -12,45 +12,46 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import { FrontMatter, mergeFromYMLFrontmatter } from './front-matter';
|
||||
import { DMath } from './components/d-math';
|
||||
import { collect_citations } from './helpers/citation.js';
|
||||
import { domContentLoaded } from './helpers/domContentLoaded.js';
|
||||
import { parseFrontmatter } from './components/d-front-matter';
|
||||
import optionalComponents from './transforms/optional-components';
|
||||
import { FrontMatter, mergeFromYMLFrontmatter } from "./front-matter";
|
||||
import { DMath } from "./components/d-math";
|
||||
import { collect_citations } from "./helpers/citation.js";
|
||||
import { domContentLoaded } from "./helpers/domContentLoaded.js";
|
||||
import { parseFrontmatter } from "./components/d-front-matter";
|
||||
import optionalComponents from "./transforms/optional-components";
|
||||
|
||||
const frontMatter = new FrontMatter();
|
||||
|
||||
|
||||
export const Controller = {
|
||||
|
||||
frontMatter: frontMatter,
|
||||
waitingOn: {
|
||||
bibliography: [],
|
||||
citations: [],
|
||||
citations: []
|
||||
},
|
||||
listeners: {
|
||||
|
||||
onCiteKeyCreated(event) {
|
||||
const [citeTag, keys] = event.detail;
|
||||
|
||||
// ensure we have citations
|
||||
if (!frontMatter.citationsCollected) {
|
||||
// console.debug('onCiteKeyCreated, but unresolved dependency ("citations"). Enqueing.');
|
||||
Controller.waitingOn.citations.push(() => Controller.listeners.onCiteKeyCreated(event));
|
||||
Controller.waitingOn.citations.push(() =>
|
||||
Controller.listeners.onCiteKeyCreated(event)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
// ensure we have a loaded bibliography
|
||||
if (!frontMatter.bibliographyParsed) {
|
||||
// console.debug('onCiteKeyCreated, but unresolved dependency ("bibliography"). Enqueing.');
|
||||
Controller.waitingOn.bibliography.push(() => Controller.listeners.onCiteKeyCreated(event));
|
||||
Controller.waitingOn.bibliography.push(() =>
|
||||
Controller.listeners.onCiteKeyCreated(event)
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const numbers = keys.map( key => frontMatter.citations.indexOf(key) );
|
||||
const numbers = keys.map(key => frontMatter.citations.indexOf(key));
|
||||
citeTag.numbers = numbers;
|
||||
const entries = keys.map( key => frontMatter.bibliography.get(key) );
|
||||
const entries = keys.map(key => frontMatter.bibliography.get(key));
|
||||
citeTag.entries = entries;
|
||||
},
|
||||
|
||||
@@ -65,21 +66,23 @@ export const Controller = {
|
||||
}
|
||||
|
||||
// update bibliography
|
||||
const citationListTag = document.querySelector('d-citation-list');
|
||||
const bibliographyEntries = new Map(frontMatter.citations.map( citationKey => {
|
||||
return [citationKey, frontMatter.bibliography.get(citationKey)];
|
||||
}));
|
||||
const citationListTag = document.querySelector("d-citation-list");
|
||||
const bibliographyEntries = new Map(
|
||||
frontMatter.citations.map(citationKey => {
|
||||
return [citationKey, frontMatter.bibliography.get(citationKey)];
|
||||
})
|
||||
);
|
||||
citationListTag.citations = bibliographyEntries;
|
||||
|
||||
const citeTags = document.querySelectorAll('d-cite');
|
||||
const citeTags = document.querySelectorAll("d-cite");
|
||||
for (const citeTag of citeTags) {
|
||||
console.log(citeTag);
|
||||
const keys = citeTag.keys;
|
||||
const numbers = keys.map( key => frontMatter.citations.indexOf(key) );
|
||||
const numbers = keys.map(key => frontMatter.citations.indexOf(key));
|
||||
citeTag.numbers = numbers;
|
||||
const entries = keys.map( key => frontMatter.bibliography.get(key) );
|
||||
const entries = keys.map(key => frontMatter.bibliography.get(key));
|
||||
citeTag.entries = entries;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
onCiteKeyRemoved(event) {
|
||||
@@ -87,7 +90,7 @@ export const Controller = {
|
||||
},
|
||||
|
||||
onBibliographyChanged(event) {
|
||||
const citationListTag = document.querySelector('d-citation-list');
|
||||
const citationListTag = document.querySelector("d-citation-list");
|
||||
|
||||
const bibliography = event.detail;
|
||||
|
||||
@@ -99,19 +102,23 @@ export const Controller = {
|
||||
|
||||
// ensure we have citations
|
||||
if (!frontMatter.citationsCollected) {
|
||||
Controller.waitingOn.citations.push( function() {
|
||||
Controller.listeners.onBibliographyChanged({target: event.target, detail: event.detail});
|
||||
Controller.waitingOn.citations.push(function() {
|
||||
Controller.listeners.onBibliographyChanged({
|
||||
target: event.target,
|
||||
detail: event.detail
|
||||
});
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (citationListTag.hasAttribute('distill-prerendered')) {
|
||||
console.debug('Citation list was prerendered; not updating it.');
|
||||
if (citationListTag.hasAttribute("distill-prerendered")) {
|
||||
console.debug("Citation list was prerendered; not updating it.");
|
||||
} else {
|
||||
const entries = new Map(frontMatter.citations.map( citationKey => {
|
||||
return [citationKey, frontMatter.bibliography.get(citationKey)];
|
||||
}));
|
||||
const entries = new Map(
|
||||
frontMatter.citations.map(citationKey => {
|
||||
return [citationKey, frontMatter.bibliography.get(citationKey)];
|
||||
})
|
||||
);
|
||||
citationListTag.citations = entries;
|
||||
}
|
||||
},
|
||||
@@ -119,9 +126,9 @@ export const Controller = {
|
||||
onFootnoteChanged() {
|
||||
// const footnote = event.detail;
|
||||
//TODO: optimize to only update current footnote
|
||||
const footnotesList = document.querySelector('d-footnote-list');
|
||||
const footnotesList = document.querySelector("d-footnote-list");
|
||||
if (footnotesList) {
|
||||
const footnotes = document.querySelectorAll('d-footnote');
|
||||
const footnotes = document.querySelectorAll("d-footnote");
|
||||
footnotesList.footnotes = footnotes;
|
||||
}
|
||||
},
|
||||
@@ -130,25 +137,25 @@ export const Controller = {
|
||||
const data = event.detail;
|
||||
mergeFromYMLFrontmatter(frontMatter, data);
|
||||
|
||||
const interstitial = document.querySelector('d-interstitial');
|
||||
const interstitial = document.querySelector("d-interstitial");
|
||||
if (interstitial) {
|
||||
if (typeof frontMatter.password !== 'undefined') {
|
||||
if (typeof frontMatter.password !== "undefined") {
|
||||
interstitial.password = frontMatter.password;
|
||||
} else {
|
||||
interstitial.parentElement.removeChild(interstitial);
|
||||
}
|
||||
}
|
||||
|
||||
const prerendered = document.body.hasAttribute('distill-prerendered');
|
||||
const prerendered = document.body.hasAttribute("distill-prerendered");
|
||||
if (!prerendered && domContentLoaded()) {
|
||||
optionalComponents(document, frontMatter);
|
||||
|
||||
const appendix = document.querySelector('distill-appendix');
|
||||
const appendix = document.querySelector("distill-appendix");
|
||||
if (appendix) {
|
||||
appendix.frontMatter = frontMatter;
|
||||
}
|
||||
|
||||
const byline = document.querySelector('d-byline');
|
||||
const byline = document.querySelector("d-byline");
|
||||
if (byline) {
|
||||
byline.frontMatter = frontMatter;
|
||||
}
|
||||
@@ -157,25 +164,30 @@ export const Controller = {
|
||||
DMath.katexOptions = data.katex;
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
DOMContentLoaded() {
|
||||
if (Controller.loaded) {
|
||||
console.warn('Controller received DOMContentLoaded but was already loaded!');
|
||||
console.warn(
|
||||
"Controller received DOMContentLoaded but was already loaded!"
|
||||
);
|
||||
return;
|
||||
} else if (!domContentLoaded()) {
|
||||
console.warn('Controller received DOMContentLoaded at document.readyState: ' + document.readyState + '!');
|
||||
console.warn(
|
||||
"Controller received DOMContentLoaded at document.readyState: " +
|
||||
document.readyState +
|
||||
"!"
|
||||
);
|
||||
return;
|
||||
} else {
|
||||
Controller.loaded = true;
|
||||
console.debug('Runlevel 4: Controller running DOMContentLoaded');
|
||||
console.debug("Runlevel 4: Controller running DOMContentLoaded");
|
||||
}
|
||||
|
||||
const frontMatterTag = document.querySelector('d-front-matter');
|
||||
const frontMatterTag = document.querySelector("d-front-matter");
|
||||
if (frontMatterTag) {
|
||||
const data = parseFrontmatter(frontMatterTag);
|
||||
Controller.listeners.onFrontMatterChanged({detail: data});
|
||||
Controller.listeners.onFrontMatterChanged({ detail: data });
|
||||
}
|
||||
|
||||
// Resolving "citations" dependency due to initial DOM load
|
||||
@@ -191,13 +203,11 @@ export const Controller = {
|
||||
}
|
||||
}
|
||||
|
||||
const footnotesList = document.querySelector('d-footnote-list');
|
||||
const footnotesList = document.querySelector("d-footnote-list");
|
||||
if (footnotesList) {
|
||||
const footnotes = document.querySelectorAll('d-footnote');
|
||||
const footnotes = document.querySelectorAll("d-footnote");
|
||||
footnotesList.footnotes = footnotes;
|
||||
}
|
||||
}
|
||||
|
||||
}, // listeners
|
||||
|
||||
} // listeners
|
||||
}; // Controller
|
||||
|
||||
@@ -16,7 +16,9 @@ export function collect_citations(dom = document) {
|
||||
const citations = new Set();
|
||||
const citeTags = dom.querySelectorAll("d-cite");
|
||||
for (const tag of citeTags) {
|
||||
for (const key of tag.keys) {
|
||||
const keyString = tag.getAttribute("key") || tag.getAttribute("bibtex-key");
|
||||
const keys = keyString.split(",").map(k => k.trim());
|
||||
for (const key of keys) {
|
||||
citations.add(key);
|
||||
}
|
||||
}
|
||||
|
||||
+157
-114
@@ -14,75 +14,88 @@
|
||||
|
||||
/* global it, describe, before, beforeEach, after, afterEach */
|
||||
|
||||
const jsdom = require('jsdom');
|
||||
const jsdom = require("jsdom");
|
||||
const { JSDOM } = jsdom;
|
||||
|
||||
const expect = require('chai').expect;
|
||||
const distill = require('../dist/transforms.v2.js');
|
||||
const expect = require("chai").expect;
|
||||
const distill = require("../dist/transforms.v2.js");
|
||||
|
||||
// omitJSDOMErrors as JSDOM routinely can't parse modern CSS
|
||||
const virtualConsole = new jsdom.VirtualConsole();
|
||||
virtualConsole.sendTo(console, { omitJSDOMErrors: true });
|
||||
const options = { runScripts: 'outside-only', QuerySelector: true, virtualConsole: virtualConsole };
|
||||
const options = {
|
||||
runScripts: "outside-only",
|
||||
QuerySelector: true,
|
||||
virtualConsole: virtualConsole
|
||||
};
|
||||
|
||||
describe('Distill V2 (transforms)', function() {
|
||||
|
||||
it('should export its expected interface', function() {
|
||||
expect(distill.testing).to.be.an('object');
|
||||
expect(distill.usesTemplateV2).to.be.a('function');
|
||||
expect(distill.render).to.be.a('function');
|
||||
expect(distill.distillify).to.be.a('function');
|
||||
describe("Distill V2 (transforms)", function() {
|
||||
it("should export its expected interface", function() {
|
||||
expect(distill.testing).to.be.an("object");
|
||||
expect(distill.usesTemplateV2).to.be.a("function");
|
||||
expect(distill.render).to.be.a("function");
|
||||
expect(distill.distillify).to.be.a("function");
|
||||
});
|
||||
|
||||
describe('#usesTemplateV2()', function() {
|
||||
|
||||
it('should detect v1', function() {
|
||||
const frag = JSDOM.fragment('<script src="https://distill.pub/template.v1.js"></script>');
|
||||
describe("#usesTemplateV2()", function() {
|
||||
it("should detect v1", function() {
|
||||
const frag = JSDOM.fragment(
|
||||
'<script src="https://distill.pub/template.v1.js"></script>'
|
||||
);
|
||||
expect(distill.usesTemplateV2(frag)).to.be.false;
|
||||
});
|
||||
|
||||
it('should detect v2', function() {
|
||||
const frag = JSDOM.fragment('<script src="https://distill.pub/template.v2.js"></script>');
|
||||
it("should detect v2", function() {
|
||||
const frag = JSDOM.fragment(
|
||||
'<script src="https://distill.pub/template.v2.js"></script>'
|
||||
);
|
||||
expect(distill.usesTemplateV2(frag)).to.be.true;
|
||||
});
|
||||
|
||||
it('should detect local scripts as well', function() {
|
||||
it("should detect local scripts as well", function() {
|
||||
const frag = JSDOM.fragment('<script src="/template.v2.js"></script>');
|
||||
expect(distill.usesTemplateV2(frag)).to.be.true;
|
||||
});
|
||||
|
||||
it('should error on unknown distill script', function() {
|
||||
const frag = JSDOM.fragment('<script src="https://distill.pub/template.v42.js"></script>');
|
||||
expect(()=> distill.usesTemplateV2(frag)).to.throw('unknown');
|
||||
it("should error on unknown distill script", function() {
|
||||
const frag = JSDOM.fragment(
|
||||
'<script src="https://distill.pub/template.v42.js"></script>'
|
||||
);
|
||||
expect(() => distill.usesTemplateV2(frag)).to.throw("unknown");
|
||||
});
|
||||
|
||||
it('should error on no distill script', function() {
|
||||
const frag = JSDOM.fragment('<script src="https://code.jquery.com/jquery-3.2.1.js"></script>');
|
||||
expect(()=> distill.usesTemplateV2(frag)).to.throw('at all');
|
||||
it("should error on no distill script", function() {
|
||||
const frag = JSDOM.fragment(
|
||||
'<script src="https://code.jquery.com/jquery-3.2.1.js"></script>'
|
||||
);
|
||||
expect(() => distill.usesTemplateV2(frag)).to.throw("at all");
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('#render()', function() {
|
||||
|
||||
describe('should extract metadata', function() {
|
||||
|
||||
it('should extract citations', function() {
|
||||
const dom = new JSDOM('<d-cite key="test-citation-key">sth</d-cite>', options);
|
||||
describe("#render()", function() {
|
||||
describe("should extract metadata", function() {
|
||||
it("should extract citations", function() {
|
||||
const dom = new JSDOM(
|
||||
'<d-cite key="test-citation-key">sth</d-cite>',
|
||||
options
|
||||
);
|
||||
const data = {};
|
||||
const extractCitations = distill.testing.extractors.get('ExtractCitations');
|
||||
expect(extractCitations).to.be.a('function');
|
||||
const extractCitations = distill.testing.extractors.get(
|
||||
"ExtractCitations"
|
||||
);
|
||||
expect(extractCitations).to.be.a("function");
|
||||
extractCitations(dom.window.document, data);
|
||||
expect(data).to.have.property('citations');
|
||||
expect(data).to.have.property("citations");
|
||||
const citations = data.citations;
|
||||
expect(citations).to.be.an.instanceof(Array);
|
||||
expect(citations).to.have.lengthOf(1);
|
||||
const citation = citations[0];
|
||||
expect(citation).to.equal('test-citation-key');
|
||||
expect(citation).to.equal("test-citation-key");
|
||||
});
|
||||
|
||||
it('should extract bibliography', function() {
|
||||
const dom = new JSDOM(`
|
||||
it("should extract bibliography", function() {
|
||||
const dom = new JSDOM(
|
||||
`
|
||||
<d-cite key="mercier2011humans">sth</d-cite>
|
||||
<d-bibliography>
|
||||
<script type="text/bibtex">
|
||||
@@ -99,44 +112,58 @@ describe('Distill V2 (transforms)', function() {
|
||||
}
|
||||
</script>
|
||||
</d-bibliography>
|
||||
`, options);
|
||||
`,
|
||||
options
|
||||
);
|
||||
const data = {};
|
||||
const extractBibliography = distill.testing.extractors.get('ExtractBibliography');
|
||||
const extractBibliography = distill.testing.extractors.get(
|
||||
"ExtractBibliography"
|
||||
);
|
||||
extractBibliography(dom.window.document, data);
|
||||
expect(data.bibliography).to.be.an.instanceof(Map);
|
||||
const entry = data.bibliography.get('mercier2011humans');
|
||||
expect(entry).to.be.an('object');
|
||||
expect(entry).to.have.property('year', '2011');
|
||||
const entry = data.bibliography.get("mercier2011humans");
|
||||
expect(entry).to.be.an("object");
|
||||
expect(entry).to.have.property("year", "2011");
|
||||
});
|
||||
|
||||
it('should extract front-matter');
|
||||
|
||||
it("should extract front-matter");
|
||||
}); // metadata
|
||||
|
||||
describe('should transform the DOM', function() {
|
||||
|
||||
it('should add Google scholar citation information', function() {
|
||||
const dom = new JSDOM('', options);
|
||||
describe("should transform the DOM", function() {
|
||||
it("should add Google scholar citation information", function() {
|
||||
const dom = new JSDOM("", options);
|
||||
const data = {
|
||||
authors: [
|
||||
{firstName: 'Frank', lastName: 'Underwood', affiliation: 'Google Brain', affiliationURL: 'https://g.co/brain'},
|
||||
{firstName: 'Shan', lastName: 'Carter', affiliation: 'Google Brain', affiliationURL: 'https://g.co/brain'},
|
||||
{
|
||||
firstName: "Frank",
|
||||
lastName: "Underwood",
|
||||
affiliation: "Google Brain",
|
||||
affiliationURL: "https://g.co/brain"
|
||||
},
|
||||
{
|
||||
firstName: "Shan",
|
||||
lastName: "Carter",
|
||||
affiliation: "Google Brain",
|
||||
affiliationURL: "https://g.co/brain"
|
||||
}
|
||||
],
|
||||
doiSuffix: 'test-doi-suffix'
|
||||
doiSuffix: "test-doi-suffix"
|
||||
};
|
||||
const firstAuthorName = data.authors[0].firstName + ' ' + data.authors[0].lastName;
|
||||
const GSfirstAuthorName = data.authors[0].lastName + ', ' + data.authors[0].firstName;
|
||||
const firstAuthorName =
|
||||
data.authors[0].firstName + " " + data.authors[0].lastName;
|
||||
const GSfirstAuthorName =
|
||||
data.authors[0].lastName + ", " + data.authors[0].firstName;
|
||||
|
||||
const meta = distill.testing.transforms.get('Meta');
|
||||
expect(meta).to.be.a('function');
|
||||
const meta = distill.testing.transforms.get("Meta");
|
||||
expect(meta).to.be.a("function");
|
||||
|
||||
meta(dom.window.document, data);
|
||||
const metaTags = dom.window.document.querySelectorAll('meta');
|
||||
const metaTags = dom.window.document.querySelectorAll("meta");
|
||||
expect(metaTags).to.not.be.empty;
|
||||
|
||||
// Google Scholar
|
||||
const GSAuthorTags = Array.prototype.filter.call(metaTags, (tag) => {
|
||||
return tag.name === 'citation_author';
|
||||
const GSAuthorTags = Array.prototype.filter.call(metaTags, tag => {
|
||||
return tag.name === "citation_author";
|
||||
});
|
||||
expect(GSAuthorTags).to.have.lengthOf(2);
|
||||
const GSFirstAuthorTag = GSAuthorTags[0];
|
||||
@@ -144,74 +171,89 @@ describe('Distill V2 (transforms)', function() {
|
||||
expect(GSFirstAuthorTag.content).to.equal(GSfirstAuthorName);
|
||||
|
||||
// Schema.org Author tags
|
||||
const SOAuthorTags = Array.prototype.filter.call(metaTags, (tag) => {
|
||||
return tag.getAttribute('property') === 'article:author';
|
||||
const SOAuthorTags = Array.prototype.filter.call(metaTags, tag => {
|
||||
return tag.getAttribute("property") === "article:author";
|
||||
});
|
||||
expect(SOAuthorTags).to.have.lengthOf(2);
|
||||
const SOFirstAuthorTag = SOAuthorTags[0];
|
||||
expect(SOFirstAuthorTag.content).to.equal(firstAuthorName);
|
||||
|
||||
});
|
||||
|
||||
it('given already correct data, it should add Google scholar references information', function() {
|
||||
const dom = new JSDOM('', options);
|
||||
it("given already correct data, it should add Google scholar references information", function() {
|
||||
const dom = new JSDOM("", options);
|
||||
const data = {
|
||||
doiSuffix: 'test-doi-suffix',
|
||||
citations: ['test-citation-key'],
|
||||
bibliography: new Map([[
|
||||
'test-citation-key', {
|
||||
title: 'Why do humans reason? Arguments for an argumentative theory',
|
||||
author: 'Mercier, Hugo and Sperber, Dan',
|
||||
journal: 'Behavioral and brain sciences',
|
||||
volume: 34,
|
||||
number: 2
|
||||
}
|
||||
]])
|
||||
doiSuffix: "test-doi-suffix",
|
||||
citations: ["test-citation-key"],
|
||||
bibliography: new Map([
|
||||
[
|
||||
"test-citation-key",
|
||||
{
|
||||
title:
|
||||
"Why do humans reason? Arguments for an argumentative theory",
|
||||
author: "Mercier, Hugo and Sperber, Dan",
|
||||
journal: "Behavioral and brain sciences",
|
||||
volume: 34,
|
||||
number: 2
|
||||
}
|
||||
]
|
||||
])
|
||||
};
|
||||
const meta = distill.testing.transforms.get('Meta');
|
||||
expect(meta).to.be.a('function');
|
||||
const meta = distill.testing.transforms.get("Meta");
|
||||
expect(meta).to.be.a("function");
|
||||
meta(dom.window.document, data);
|
||||
const metaTags = [].slice.call(dom.window.document.querySelectorAll('meta[name="citation_reference"]'));
|
||||
const metaTags = [].slice.call(
|
||||
dom.window.document.querySelectorAll(
|
||||
'meta[name="citation_reference"]'
|
||||
)
|
||||
);
|
||||
expect(metaTags).to.not.be.empty;
|
||||
});
|
||||
|
||||
it('given an arxiv article, it should add a special Google scholar arxiv citation', function() {
|
||||
const dom = new JSDOM('', options);
|
||||
it("given an arxiv article, it should add a special Google scholar arxiv citation", function() {
|
||||
const dom = new JSDOM("", options);
|
||||
const data = {
|
||||
doiSuffix: 'test-doi-suffix',
|
||||
citations: ['dumoulin2016guide'],
|
||||
bibliography: new Map([[
|
||||
'dumoulin2016guide', {
|
||||
title: 'A guide to convolution arithmetic for deep learning',
|
||||
author: 'Dumoulin, Vincent and Visin, Francesco',
|
||||
journal: 'arXiv preprint arXiv:1603.07285',
|
||||
year: '2016',
|
||||
url: 'https://arxiv.org/pdf/1603.07285.pdf'
|
||||
}
|
||||
]])
|
||||
doiSuffix: "test-doi-suffix",
|
||||
citations: ["dumoulin2016guide"],
|
||||
bibliography: new Map([
|
||||
[
|
||||
"dumoulin2016guide",
|
||||
{
|
||||
title: "A guide to convolution arithmetic for deep learning",
|
||||
author: "Dumoulin, Vincent and Visin, Francesco",
|
||||
journal: "arXiv preprint arXiv:1603.07285",
|
||||
year: "2016",
|
||||
url: "https://arxiv.org/pdf/1603.07285.pdf"
|
||||
}
|
||||
]
|
||||
])
|
||||
};
|
||||
|
||||
const meta = distill.testing.transforms.get('Meta');
|
||||
expect(meta).to.be.a('function');
|
||||
const meta = distill.testing.transforms.get("Meta");
|
||||
expect(meta).to.be.a("function");
|
||||
meta(dom.window.document, data);
|
||||
|
||||
const metaTags = [].slice.call(dom.window.document.querySelectorAll('meta[name="citation_reference"]'));
|
||||
const metaTags = [].slice.call(
|
||||
dom.window.document.querySelectorAll(
|
||||
'meta[name="citation_reference"]'
|
||||
)
|
||||
);
|
||||
expect(metaTags).to.not.be.empty;
|
||||
|
||||
const metaTag = metaTags[0];
|
||||
expect(metaTag).to.have.property('content');
|
||||
expect(metaTag).to.have.property("content");
|
||||
|
||||
const content = metaTag.content;
|
||||
expect(content).to.include('citation_title');
|
||||
expect(content).to.include('citation_author');
|
||||
expect(content).to.include("citation_title");
|
||||
expect(content).to.include("citation_author");
|
||||
expect(content.match(/citation_author=/g).length).to.equal(2);
|
||||
expect(content).to.include('citation_publication_date');
|
||||
expect(content).to.include('citation_arxiv_id');
|
||||
expect(content).to.not.include('journal');
|
||||
expect(content).to.include("citation_publication_date");
|
||||
expect(content).to.include("citation_arxiv_id");
|
||||
expect(content).to.not.include("journal");
|
||||
});
|
||||
|
||||
it('given only a DOM (and publish data), it should add Google scholar references information', function() {
|
||||
const dom = new JSDOM(`
|
||||
it("given only a DOM (and publish data), it should add Google scholar references information", function() {
|
||||
const dom = new JSDOM(
|
||||
`
|
||||
<d-cite key="mercier2011humans">sth</d-cite>
|
||||
<d-bibliography>
|
||||
<script type="text/bibtex">
|
||||
@@ -228,27 +270,28 @@ describe('Distill V2 (transforms)', function() {
|
||||
}
|
||||
</script>
|
||||
</d-bibliography>
|
||||
`, options);
|
||||
`,
|
||||
options
|
||||
);
|
||||
const data = { publishedDate: new Date(), updatedDate: new Date() };
|
||||
distill.render(dom.window.document, data, false);
|
||||
const metaTags = [].slice.call(dom.window.document.querySelectorAll('meta[name="citation_reference"]'));
|
||||
const metaTags = [].slice.call(
|
||||
dom.window.document.querySelectorAll(
|
||||
'meta[name="citation_reference"]'
|
||||
)
|
||||
);
|
||||
expect(metaTags).to.not.be.empty;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}); // render
|
||||
|
||||
it('should export #distillify()', function() {
|
||||
expect(distill.distillify).to.be.a('function');
|
||||
it("should export #distillify()", function() {
|
||||
expect(distill.distillify).to.be.a("function");
|
||||
});
|
||||
|
||||
describe('#distillify()', function() {
|
||||
|
||||
it('should ensure existence of header');
|
||||
it('should ensure existence of footer');
|
||||
it('should ensure existence of distill appendix');
|
||||
|
||||
describe("#distillify()", function() {
|
||||
it("should ensure existence of header");
|
||||
it("should ensure existence of footer");
|
||||
it("should ensure existence of distill appendix");
|
||||
});
|
||||
|
||||
}); // describe 'Transform'
|
||||
|
||||
Reference in New Issue
Block a user