Merge pull request #462 from davemachado/site-plan
Alpha website candidate
This commit is contained in:
commit
0e51a860c1
6 changed files with 153 additions and 0 deletions
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
src/_site
|
||||
src/Gemfile.lock
|
||||
53
src/css/stylesheet.css
Normal file
53
src/css/stylesheet.css
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
body {
|
||||
border-collapse: collapse;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
table {
|
||||
table-layout: fixed;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
#entries td, #entries th {
|
||||
border: 1px solid #ddd;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#entries tr:nth-child(even) {
|
||||
background-color: #f2f2f2;
|
||||
}
|
||||
|
||||
#entries tr:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
|
||||
#entries {
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #ddd;
|
||||
font-size: 18px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#entries th {
|
||||
background-color: #4783e5;
|
||||
color: white;
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.isHidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#searchbox {
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 50px;
|
||||
margin-bottom: 12px;
|
||||
font-size: 16px;
|
||||
padding: 12px 20px 12px 40px;
|
||||
text-align: center;
|
||||
width: 50%;
|
||||
}
|
||||
BIN
src/favicon.ico
Normal file
BIN
src/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
56
src/index.html
Normal file
56
src/index.html
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
<!doctype html>
|
||||
|
||||
<html lang="en" manifest="manifest.appcache">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" type="text/css" href="css/stylesheet.css"/>
|
||||
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon"/>
|
||||
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
|
||||
<script src="https://unpkg.com/vue@2.4.2/dist/vue.min.js"></script>
|
||||
<title>Public APIs</title>
|
||||
</head>
|
||||
<header>
|
||||
<a href="https://github.com/toddmotto/public-apis" class="github-corner" aria-label="View source on Github"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#4783e5; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
|
||||
<h1 class="center-text">
|
||||
Public APIs
|
||||
</h1>
|
||||
<h3 class="center-text">
|
||||
A collective list of free APIs for use in web development
|
||||
</h3>
|
||||
<h3 class="center-text">
|
||||
For information on contributing to this project, please see the <a href="https://github.com/toddmotto/public-apis/blob/master/.github/CONTRIBUTING.md">contributing guide</a>
|
||||
</h3>
|
||||
</header>
|
||||
<body>
|
||||
<div id="app">
|
||||
<div class="center-text">
|
||||
<input type="search" id="searchbox" placeholder="Search APIs" autocomplete="off" spellcheck="false" tabindex="0" v-model="filter">
|
||||
</div>
|
||||
<div style="overflow-x:auto;">
|
||||
<table id="entries">
|
||||
<thead>
|
||||
<tr class="tbl-head">
|
||||
<th>API</th>
|
||||
<th>Description</th>
|
||||
<th>Auth</th>
|
||||
<th>HTTPS</th>
|
||||
<th>Category</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="item in items" v-show="filtered(item)">
|
||||
<td><a :href="item.Link">{{ item.API }}</a></td>
|
||||
<td>{{ item.Description }}</td>
|
||||
<td>{{ (item.Auth) ? item.Auth : '-' }}</td>
|
||||
<td>{{ (item.HTTPS) ? '✔' : '✖' }}</td>
|
||||
<td>{{ item.Category }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<script src="scripts/main.js"></script>
|
||||
</html>
|
||||
|
||||
6
src/manifest.appcache
Normal file
6
src/manifest.appcache
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
CACHE MANIFEST
|
||||
index.html
|
||||
css/stylesheet.css
|
||||
scripts/main.js
|
||||
https://unpkg.com/vue@2.4.2/dist/vue.min.js
|
||||
https://raw.githubusercontent.com/toddmotto/public-apis/master/json/entries.min.json
|
||||
36
src/scripts/main.js
Normal file
36
src/scripts/main.js
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
new Vue({
|
||||
data: {
|
||||
filter: '',
|
||||
items: ''
|
||||
},
|
||||
created() {
|
||||
fetch('https://raw.githubusercontent.com/toddmotto/public-apis/master/json/entries.min.json')
|
||||
.then(data => data.json())
|
||||
.then(data => {
|
||||
this.items = data.entries;
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
filtered(item) {
|
||||
let show = true;
|
||||
|
||||
if(this.filter.length) {
|
||||
|
||||
show = false;
|
||||
|
||||
let filterKeyword = this.filter.toLowerCase();
|
||||
|
||||
Object.keys(item).map(function(key) {
|
||||
if(typeof item[key] === 'string') {
|
||||
let value = item[key].toString().toLowerCase();
|
||||
|
||||
if(value.includes(filterKeyword)) {
|
||||
show = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return show;
|
||||
}
|
||||
}
|
||||
}).$mount('#app');
|
||||
Loading…
Add table
Reference in a new issue