Skip to content

Commit 52ee474

Browse files
committed
add preview feature
1 parent d7a9f21 commit 52ee474

File tree

4 files changed

+31
-3
lines changed

4 files changed

+31
-3
lines changed

features.js

+7
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,12 @@ module.exports = {"aac": function() { return require("caniuse-db/features-json/a
4646
"css-boxdecorationbreak": function() { return require("caniuse-db/features-json/css-boxdecorationbreak")},
4747
"css-boxshadow": function() { return require("caniuse-db/features-json/css-boxshadow")},
4848
"css-canvas": function() { return require("caniuse-db/features-json/css-canvas")},
49+
"css-case-insensitive": function() { return require("caniuse-db/features-json/css-case-insensitive")},
4950
"css-clip-path": function() { return require("caniuse-db/features-json/css-clip-path")},
5051
"css-counters": function() { return require("caniuse-db/features-json/css-counters")},
5152
"css-crisp-edges": function() { return require("caniuse-db/features-json/css-crisp-edges")},
5253
"css-cross-fade": function() { return require("caniuse-db/features-json/css-cross-fade")},
54+
"css-default-pseudo": function() { return require("caniuse-db/features-json/css-default-pseudo")},
5355
"css-deviceadaptation": function() { return require("caniuse-db/features-json/css-deviceadaptation")},
5456
"css-element-function": function() { return require("caniuse-db/features-json/css-element-function")},
5557
"css-exclusions": function() { return require("caniuse-db/features-json/css-exclusions")},
@@ -66,6 +68,7 @@ module.exports = {"aac": function() { return require("caniuse-db/features-json/a
6668
"css-image-orientation": function() { return require("caniuse-db/features-json/css-image-orientation")},
6769
"css-image-set": function() { return require("caniuse-db/features-json/css-image-set")},
6870
"css-in-out-of-range": function() { return require("caniuse-db/features-json/css-in-out-of-range")},
71+
"css-indeterminate-pseudo": function() { return require("caniuse-db/features-json/css-indeterminate-pseudo")},
6972
"css-initial-value": function() { return require("caniuse-db/features-json/css-initial-value")},
7073
"css-letter-spacing": function() { return require("caniuse-db/features-json/css-letter-spacing")},
7174
"css-line-clamp": function() { return require("caniuse-db/features-json/css-line-clamp")},
@@ -80,6 +83,7 @@ module.exports = {"aac": function() { return require("caniuse-db/features-json/a
8083
"css-motion-paths": function() { return require("caniuse-db/features-json/css-motion-paths")},
8184
"css-nth-child-of": function() { return require("caniuse-db/features-json/css-nth-child-of")},
8285
"css-opacity": function() { return require("caniuse-db/features-json/css-opacity")},
86+
"css-optional-pseudo": function() { return require("caniuse-db/features-json/css-optional-pseudo")},
8387
"css-page-break": function() { return require("caniuse-db/features-json/css-page-break")},
8488
"css-placeholder-shown": function() { return require("caniuse-db/features-json/css-placeholder-shown")},
8589
"css-placeholder": function() { return require("caniuse-db/features-json/css-placeholder")},
@@ -127,6 +131,7 @@ module.exports = {"aac": function() { return require("caniuse-db/features-json/a
127131
"devicepixelratio": function() { return require("caniuse-db/features-json/devicepixelratio")},
128132
"dialog": function() { return require("caniuse-db/features-json/dialog")},
129133
"dispatchevent": function() { return require("caniuse-db/features-json/dispatchevent")},
134+
"document-currentscript": function() { return require("caniuse-db/features-json/document-currentscript")},
130135
"document-execcommand": function() { return require("caniuse-db/features-json/document-execcommand")},
131136
"documenthead": function() { return require("caniuse-db/features-json/documenthead")},
132137
"dom-range": function() { return require("caniuse-db/features-json/dom-range")},
@@ -212,6 +217,7 @@ module.exports = {"aac": function() { return require("caniuse-db/features-json/a
212217
"link-rel-dns-prefetch": function() { return require("caniuse-db/features-json/link-rel-dns-prefetch")},
213218
"link-rel-preconnect": function() { return require("caniuse-db/features-json/link-rel-preconnect")},
214219
"link-rel-prefetch": function() { return require("caniuse-db/features-json/link-rel-prefetch")},
220+
"link-rel-preload": function() { return require("caniuse-db/features-json/link-rel-preload")},
215221
"link-rel-prerender": function() { return require("caniuse-db/features-json/link-rel-prerender")},
216222
"matchesselector": function() { return require("caniuse-db/features-json/matchesselector")},
217223
"matchmedia": function() { return require("caniuse-db/features-json/matchmedia")},
@@ -323,6 +329,7 @@ module.exports = {"aac": function() { return require("caniuse-db/features-json/a
323329
"web-animation": function() { return require("caniuse-db/features-json/web-animation")},
324330
"web-bluetooth": function() { return require("caniuse-db/features-json/web-bluetooth")},
325331
"webgl": function() { return require("caniuse-db/features-json/webgl")},
332+
"webgl2": function() { return require("caniuse-db/features-json/webgl2")},
326333
"webm": function() { return require("caniuse-db/features-json/webm")},
327334
"webp": function() { return require("caniuse-db/features-json/webp")},
328335
"websockets": function() { return require("caniuse-db/features-json/websockets")},

index.js

+17-2
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,20 @@
22

33
const _ = require('lodash');
44
const caniuse = require('./caniuse-api');
5+
const fs = require('fs');
6+
const path = require('path');
57

68
module.exports = (pluginContext) => {
79
const shell = pluginContext.shell;
810

11+
let html = '';
12+
913
const browsers = ['firefox', 'chrome', 'ie', 'edge', 'opera', 'safari'];
1014

15+
function startup() {
16+
html = fs.readFileSync(path.join(__dirname, 'preview.html'), 'utf8');
17+
}
18+
1119
function capitalize(word) {
1220
return word[0].toUpperCase() + word.slice(1);
1321
}
@@ -72,7 +80,8 @@ module.exports = (pluginContext) => {
7280
id: x,
7381
payload: 'open',
7482
title: x,
75-
desc: getDesc(x)
83+
desc: getDesc(x),
84+
preview: true
7685
});
7786
});
7887
}
@@ -85,5 +94,11 @@ module.exports = (pluginContext) => {
8594
shell.openExternal(`http://caniuse.com/#search=${id}`);
8695
}
8796

88-
return {search, execute};
97+
function renderPreview(id, payload, render) {
98+
var preview = html.replace('%property%', id);
99+
render(preview);
100+
}
101+
102+
103+
return {startup, search, execute, renderPreview};
89104
};

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hain-plugin-caniuse",
3-
"version": "0.0.8",
3+
"version": "0.0.9",
44
"description": "All the power of caniuse.com in a hain plugin",
55
"main": "index.js",
66
"repository": {

preview.html

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
<p class="ciu_embed" data-feature="%property%" data-periods="future_1,current,past_2"> <a href="http://caniuse.com/#feat=%property%">Can I Use %property%?</a> Data on support for the %property% feature across the major browsers from caniuse.com. </p>
3+
4+
<script>
5+
(function(){for(var e=document.getElementsByClassName("ciu_embed"),t=0;t<e.length;t++){var s=e[t],a=s.getAttribute("data-feature"),n=s.getAttribute("data-periods");if(a){var r="http://caniuse.bitsofco.de/embed/index.html",o='<iframe src="'+r+"?feat="+a+"&periods="+n+'" frameborder="0" width="100%" height="400px"></iframe>';s.innerHTML=o}else s.innerHTML="A feature was not included. Go to <a href='http://caniuse.bitsofco.de/#how-to-use'>http://caniuse.bitsofco.de/#how-to-use</a> to generate an embed."}var i=window.addEventListener?"addEventListener":"attachEvent",d=window[i],l="attachEvent"==i?"onmessage":"message";d(l,function(t){var s=t.data;if("string"==typeof s&&s.indexOf("ciu_embed")>-1)for(var a=s.split(":")[1],n=s.split(":")[2],r=0;r<e.length;r++){var o=e[r];if(o.getAttribute("data-feature")===a){var i=parseInt(n)+20;o.childNodes[0].height=i+"px";break}}},!1)}).call(this);
6+
</script>

0 commit comments

Comments
 (0)