Skip to content

Commit 1abe9c0

Browse files
committed
Merge
2 parents 4e2fe66 + 3aec380 commit 1abe9c0

13 files changed

+142
-55
lines changed

index.html

+32-2
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,38 @@
8282
<li data-target="#screenshots" data-slide-to="2"></li>
8383
<li data-target="#screenshots" data-slide-to="3"></li>
8484
<li data-target="#screenshots" data-slide-to="4"></li>
85+
<li data-target="#screenshots" data-slide-to="5"></li>
86+
<li data-target="#screenshots" data-slide-to="6"></li>
87+
<li data-target="#screenshots" data-slide-to="7"></li>
88+
<li data-target="#screenshots" data-slide-to="8"></li>
89+
<li data-target="#screenshots" data-slide-to="9"></li>
90+
<li data-target="#screenshots" data-slide-to="10"></li>
8591
</ol>
8692

8793
<!-- Wrapper for slides -->
8894
<div class="carousel-inner" role="listbox">
8995
<div class="item active">
90-
<img src="screenshots/micro-solarized.png" alt="Chania">
96+
<img src="screenshots/micro-monokai.png" alt="Chania">
9197
</div>
9298

9399
<div class="item">
94-
<img src="screenshots/micro-monokai.png" alt="Chania">
100+
<img src="screenshots/micro-one-dark.png" alt="Flower">
101+
</div>
102+
103+
<div class="item">
104+
<img src="screenshots/micro-darcula.png" alt="Flower">
105+
</div>
106+
107+
<div class="item">
108+
<img src="screenshots/micro-twilight.png" alt="Flower">
109+
</div>
110+
111+
<div class="item">
112+
<img src="screenshots/micro-railscast.png" alt="Flower">
113+
</div>
114+
115+
<div class="item">
116+
<img src="screenshots/micro-solarized.png" alt="Chania">
95117
</div>
96118

97119
<div class="item">
@@ -102,6 +124,14 @@
102124
<img src="screenshots/micro-gruvbox.png" alt="Flower">
103125
</div>
104126

127+
<div class="item">
128+
<img src="screenshots/micro-material.png" alt="Flower">
129+
</div>
130+
131+
<div class="item">
132+
<img src="screenshots/micro-gotham.png" alt="Flower">
133+
</div>
134+
105135
<div class="item">
106136
<img src="screenshots/micro-zenburn.png" alt="Flower">
107137
</div>

micro_files/plugin-search.js

+110-53
Original file line numberDiff line numberDiff line change
@@ -3,64 +3,111 @@
33
var searchResults = [];
44
var pluginData;
55

6+
function versionCompare(v1, v2, options) {
7+
var lexicographical = options && options.lexicographical,
8+
zeroExtend = options && options.zeroExtend,
9+
v1parts = v1.split('.'),
10+
v2parts = v2.split('.');
11+
12+
function isValidPart(x) {
13+
return (lexicographical ? /^\d+[A-Za-z]*$/ : /^\d+$/).test(x);
14+
}
15+
16+
if (!v1parts.every(isValidPart) || !v2parts.every(isValidPart)) {
17+
return NaN;
18+
}
19+
20+
if (zeroExtend) {
21+
while (v1parts.length < v2parts.length) v1parts.push("0");
22+
while (v2parts.length < v1parts.length) v2parts.push("0");
23+
}
24+
25+
if (!lexicographical) {
26+
v1parts = v1parts.map(Number);
27+
v2parts = v2parts.map(Number);
28+
}
29+
30+
for (var i = 0; i < v1parts.length; ++i) {
31+
if (v2parts.length == i) {
32+
return 1;
33+
}
34+
35+
if (v1parts[i] == v2parts[i]) {
36+
continue;
37+
}
38+
else if (v1parts[i] > v2parts[i]) {
39+
return 1;
40+
}
41+
else {
42+
return -1;
43+
}
44+
}
45+
46+
if (v1parts.length != v2parts.length) {
47+
return -1;
48+
}
49+
50+
return 0;
51+
}
52+
653
function fetchData() {
7-
fetch('https://raw.githubusercontent.com/micro-editor/plugin-channel/master/channel.json').then(function (response) {
8-
return response.text().then(function (text) {
9-
// Remove Comments
10-
var rawdata = text.replace(/[/s][\/]\B.+/g, "");
11-
console.log(rawdata);
12-
// Parse Data
13-
var channel = JSON.parse(rawdata);
14-
pluginData = [];
15-
channel.forEach(function (item) {
16-
fetch(item).then(function (response) {
17-
return response.json().then(function (json) {
18-
pluginData.push(json[0]);
19-
console.log(json[0]);
20-
search(true);
21-
});
22-
});
23-
});
24-
});
54+
fetch('https://raw.githubusercontent.com/micro-editor/plugin-channel/master/channel.json').then(function (response) {
55+
return response.text().then(function (text) {
56+
// Remove Comments
57+
var rawdata = text.replace(/[/s][\/]\B.+/g, "");
58+
console.log(rawdata);
59+
// Parse Data
60+
var channel = JSON.parse(rawdata);
61+
pluginData = [];
62+
channel.forEach(function (item) {
63+
fetch(item).then(function (response) {
64+
return response.json().then(function (json) {
65+
pluginData.push(json[0]);
66+
console.log(json[0]);
67+
search(true);
68+
});
69+
});
70+
});
71+
});
2572
});
2673
}
2774

2875
function search(collapse) {
29-
switch (document.querySelector('input[name="searchby"]:checked').value) {
30-
case 'Name':
31-
console.log('Search by Name');
32-
searchResults = pluginData.filter(function (item) {
33-
return item.Name.includes(document.getElementById('keyword').value);
34-
});
35-
console.log(searchResults);
36-
showResults(searchResults, collapse);
37-
break;
38-
case 'Description':
39-
console.log('Search by Description');
40-
searchResults = pluginData.filter(function (item) {
41-
return item.Description.includes(document.getElementById('keyword').value);
42-
});
43-
console.log(searchResults);
44-
showResults(searchResults, collapse);
45-
break;
46-
case 'Tags':
47-
console.log('Search by Tags');
48-
searchResults = pluginData.filter(function (item) {
49-
return item.Tags.includes(document.getElementById('keyword').value);
50-
});
51-
console.log(searchResults);
52-
showResults(searchResults, collapse);
53-
break;
54-
}
76+
switch (document.querySelector('input[name="searchby"]:checked').value) {
77+
case 'Name':
78+
console.log('Search by Name');
79+
searchResults = pluginData.filter(function (item) {
80+
return item.Name.includes(document.getElementById('keyword').value);
81+
});
82+
console.log(searchResults);
83+
showResults(searchResults, collapse);
84+
break;
85+
case 'Description':
86+
console.log('Search by Description');
87+
searchResults = pluginData.filter(function (item) {
88+
return item.Description.includes(document.getElementById('keyword').value);
89+
});
90+
console.log(searchResults);
91+
showResults(searchResults, collapse);
92+
break;
93+
case 'Tags':
94+
console.log('Search by Tags');
95+
searchResults = pluginData.filter(function (item) {
96+
return item.Tags.includes(document.getElementById('keyword').value);
97+
});
98+
console.log(searchResults);
99+
showResults(searchResults, collapse);
100+
break;
101+
}
55102
}
56103

57104
function showResults(results, collapsed) {
58-
var table = document.getElementById('results');
59-
table.innerHTML = '';
60-
var collapseStr = "panel-collapse collapse";
61-
if (!collapsed) {
62-
collapseStr += " in";
63-
}
105+
var table = document.getElementById('results');
106+
table.innerHTML = '';
107+
var collapseStr = "panel-collapse collapse";
108+
if (!collapsed) {
109+
collapseStr += " in";
110+
}
64111

65112
function separate_with_commas(tar_array) {
66113
let results = "";
@@ -74,7 +121,7 @@ function showResults(results, collapsed) {
74121
return results;
75122
}
76123

77-
results.forEach(function (item) {
124+
results.forEach(function (item) {
78125
// The displayed tag(s)
79126
let display_item_tag = separate_with_commas(item.Tags);
80127
// The displayed version(s)
@@ -83,6 +130,7 @@ function showResults(results, collapsed) {
83130
let display_item_require = '';
84131
let current_requires = [];
85132
let requires_len = 0;
133+
let latestVers = "0.0.0"
86134

87135
// Handle multiple versions in repo.json
88136
for (let i = 0; i < item.Versions.length; i++) {
@@ -114,6 +162,10 @@ function showResults(results, collapsed) {
114162
// Linebreak so we display them below eachother
115163
display_item_require += '\n';
116164
}
165+
166+
if (versionCompare(latestVers, item.Versions[i].Version) < 0) {
167+
latestVers = item.Versions[i].Version;
168+
}
117169
}
118170

119171
// If there's only a single version, don't show the "All versions: " thing
@@ -124,6 +176,11 @@ function showResults(results, collapsed) {
124176
display_item_allversions += '</p>';
125177
}
126178

127-
table.innerHTML += '<div class="panel panel-default">\n <div class="panel-heading" role="tab" id="h-' + item.Name + '">\n <h4 class="panel-title">\n <a role="button" data-toggle="collapse" data-parent="#results"\n href="#c-' + item.Name + '" aria-controls="c-' + item.Name + '">\n ' + item.Name + ' ' + item.Versions[item.Versions.length - 1].Version + '\n </a>\n </h4>\n </div>\n <div id="c-' + item.Name + '" class="' + collapseStr + '" role="tabpanel" aria-labelledby="h-' + item.Name + '">\n <div class="panel-body">\n <p>' + item.Description + '</p>\n <p><span class="glyphicon glyphicon-tags" aria-hidden="true"></span> ' + display_item_tag + display_item_allversions + display_item_require + '</p>\n <p>To install this plugin, open micro from your CLI,\n press [Crtl + E] then run the command line below.\n Once you are done, restart micro.</p>\n <div class="well">&gt; plugin install ' + item.Name + '</div>\n </div>\n </div>\n </div>';
128-
});
179+
var website = "";
180+
if (item.Website != undefined) {
181+
website = '<a href="' + item.Website + '">' + item.Website + '</a><br>';
182+
}
183+
184+
table.innerHTML += '<div class="panel panel-default">\n <div class="panel-heading" role="tab" id="h-' + item.Name + '">\n <h4 class="panel-title">\n <a role="button" data-toggle="collapse" data-parent="#results"\n href="#c-' + item.Name + '" aria-controls="c-' + item.Name + '">\n ' + item.Name + ' ' + latestVers + '\n </a>\n </h4>\n </div>\n <div id="c-' + item.Name + '" class="' + collapseStr + '" role="tabpanel" aria-labelledby="h-' + item.Name + '">\n <div class="panel-body">\n <p>' + item.Description + '</p>\n' + website + '\n <p><span class="glyphicon glyphicon-tags" aria-hidden="true"></span> ' + display_item_tag + display_item_allversions + display_item_require + '</p>\n <p>To install this plugin, run the following command from your CLI</p>\n <div class="well"><code>$ micro -plugin install ' + item.Name + '</code></div>\n </div>\n </div>\n </div>';
185+
});
129186
}

screenshots/micro-atom-dark.png

46.5 KB
Loading

screenshots/micro-darcula.png

202 KB
Loading

screenshots/micro-gotham.png

197 KB
Loading

screenshots/micro-gruvbox.png

54.5 KB
Loading

screenshots/micro-material.png

195 KB
Loading

screenshots/micro-monokai.png

34.6 KB
Loading

screenshots/micro-one-dark.png

163 KB
Loading

screenshots/micro-railscast.png

186 KB
Loading

screenshots/micro-solarized.png

9.01 KB
Loading

screenshots/micro-twilight.png

225 KB
Loading

screenshots/micro-zenburn.png

54.9 KB
Loading

0 commit comments

Comments
 (0)