Skip to content

Commit 491f0f5

Browse files
authored
Merge pull request #1 from sukso96100/master
Added Plugins Pags
2 parents 44ae154 + 07a160f commit 491f0f5

4 files changed

Lines changed: 175 additions & 0 deletions

File tree

about.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<ul class="nav navbar-nav pull-right">
4646
<li><a href="index.html">home</a></li>
4747
<li class="active"><a href="about.html">about</a></li>
48+
<li><a href="plugins.html">plugins</a></li>
4849
<li><a href="https://github.com/zyedidia/micro">development</a></li>
4950
</ul>
5051
</div>

index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
<ul class="nav navbar-nav pull-right">
4747
<li class="active"><a href="index.html">home</a></li>
4848
<li><a href="about.html">about</a></li>
49+
<li><a href="plugins.html">plugins</a></li>
4950
<li><a href="https://github.com/zyedidia/micro">development</a></li>
5051
</ul>
5152
</div>

micro_files/plugin-search.js

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
let searchResults = [];
2+
let pluginData;
3+
4+
function fetchData(){
5+
fetch('https://raw.githubusercontent.com/micro-editor/plugin-channel/master/channel.json')
6+
.then(response=>response.text()
7+
.then(text=>{
8+
// Remove Comments
9+
let rawdata = text.replace(/[/s][\/]\B.+/g, "");
10+
console.log(rawdata);
11+
// Parse Data
12+
const channel = JSON.parse(rawdata);
13+
pluginData = [];
14+
channel.forEach(item=>{
15+
fetch(item)
16+
.then(response=>response.json()
17+
.then(json=>{
18+
pluginData.push(json[0]);
19+
console.log(json[0]);
20+
}));
21+
});
22+
})
23+
);
24+
}
25+
26+
function search(){
27+
switch(document.querySelector('input[name="searchby"]:checked').value){
28+
case 'Name':
29+
console.log('Search by Name');
30+
searchResults = pluginData.filter(item=>{
31+
return item.Name.includes(document.getElementById('keyword').value);
32+
});
33+
console.log(searchResults);
34+
showResults(searchResults);
35+
break;
36+
case 'Description':
37+
console.log('Search by Description');
38+
searchResults = pluginData.filter(item=>{
39+
return item.Description.includes(document.getElementById('keyword').value);
40+
});
41+
console.log(searchResults);
42+
showResults(searchResults);
43+
break;
44+
case 'Tags':
45+
console.log('Search by Tags');
46+
searchResults = pluginData.filter(item=>{
47+
return item.Tags.includes(document.getElementById('keyword').value);
48+
});
49+
console.log(searchResults);
50+
showResults(searchResults);
51+
break;
52+
}
53+
}
54+
55+
function showResults(results){
56+
let table = document.getElementById('results');
57+
table.innerHTML = '';
58+
results.forEach(item=>{
59+
table.innerHTML +=
60+
`<div class="panel panel-default">
61+
<div class="panel-heading" role="tab" id="h-${item.Name}">
62+
<h4 class="panel-title">
63+
<a role="button" data-toggle="collapse" data-parent="#results"
64+
href="#c-${item.Name}" aria-controls="c-${item.Name}">
65+
${item.Name} ${item.Versions[0].Version}
66+
</a>
67+
</h4>
68+
</div>
69+
<div id="c-${item.Name}" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="h-${item.Name}">
70+
<div class="panel-body">
71+
<p>${item.Description}</p>
72+
<p><span class="glyphicon glyphicon-tags" aria-hidden="true"></span> ${item.Tags.toString()}<p>
73+
<p><b>Require : </b>${JSON.stringify(item.Versions[0].Require)}</p>
74+
<p>To install this plugin, open micro from your CLI,
75+
press [Crtl + E] then run the command line below.
76+
Once you are done, restart micro.</p>
77+
<div class="well">plugin install ${item.Name}</div>
78+
</div>
79+
</div>
80+
</div>`;
81+
});
82+
}

plugins.html

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
5+
<meta charset="utf-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
8+
<meta name="description" content="">
9+
<meta name="author" content="">
10+
<link rel="icon" href="./micro_files/icon.png">
11+
<script async defer src="https://buttons.github.io/buttons.js"></script>
12+
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
13+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
14+
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
15+
16+
<title>Micro - Plugins</title>
17+
18+
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
19+
<link href="micro_files/ie10-viewport-bug-workaround.css" rel="stylesheet">
20+
21+
<!-- Custom styles for this template -->
22+
<link href="micro_files/micro.css" rel="stylesheet">
23+
24+
<script>
25+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
26+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
27+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
28+
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
29+
30+
ga('create', 'UA-66418971-2', 'auto');
31+
ga('send', 'pageview');
32+
</script>
33+
</head>
34+
<body onload="fetchData()">
35+
36+
<div class="container">
37+
<div class="header clearfix">
38+
<div class="navbar-header pull-left">
39+
<a href="index.html" class="micro-logo">Micro</a>
40+
</div>
41+
42+
<button type="button" data-toggle="collapse" data-target=".navbar-collapse" class="navbar-toggle"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button>
43+
44+
<div class="collapse navbar-collapse navbar-right">
45+
<ul class="nav navbar-nav pull-right">
46+
<li><a href="index.html">home</a></li>
47+
<li><a href="about.html">about</a></li>
48+
<li class="active"><a href="plugins.html">plugins</a></li>
49+
<li><a href="https://github.com/zyedidia/micro">development</a></li>
50+
</ul>
51+
</div>
52+
</div>
53+
54+
<div class="row about">
55+
<div class="col-lg-12">
56+
<div class="heading">
57+
<h2>Plugins</h2>
58+
</div>
59+
<div>
60+
<input type="radio" name="searchby" value="Name"
61+
checked="true">Name</option>
62+
<input type="radio" name="searchby" value="Description">Description</option>
63+
<input type="radio" name="searchby" value="Tags">Tags</option>
64+
<br /><br />
65+
<div class="input-group">
66+
<input type="text" class="form-control" placeholder="Search plugins..."
67+
onchange="search()" id="keyword">
68+
<span class="input-group-btn">
69+
<button class="btn btn-default" type="button"
70+
onclick="search()">Search</button>
71+
</span>
72+
</div><!-- /input-group -->
73+
</div>
74+
<hr />
75+
<div class="panel-group" id="results" role="tablist" aria-multiselectable="true">
76+
77+
</div>
78+
</div>
79+
</div>
80+
81+
82+
<footer class="footer">
83+
<p>View the source code for this website on <a href="https://github.com/micro-editor/micro-editor.github.io">Github</a></p>
84+
</footer>
85+
</div> <!-- /container -->
86+
87+
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
88+
<script src="micro_files/ie10-viewport-bug-workaround.js"></script>
89+
<script src="micro_files/plugin-search.js"></script>
90+
</body>
91+
</html>

0 commit comments

Comments
 (0)