-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.js
45 lines (40 loc) · 1.21 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'use strict';
const list = document.querySelector('.projects-list');
// Project Name Formatter
const projectNameFormatter = name => {
return name
.split('-')
.map(word => word[0] + word.slice(1))
.join(' ');
};
let _forReadMe = '';
// UpdateUI
const updateUI = data => {
const { repo, projects, url, demo } = data;
projects.map(({ name, id, ...other }) => {
const _folderName = `${Number(id)}-${name}`;
const itemList = document.createElement('li');
itemList.innerHTML = `
<span class="project-number">${id}</span>
<span class="project-name">
<a href="./${_folderName}/index.html" target="_blank" >
${projectNameFormatter(name)}
</a>
</span>
<a href="${url}${_folderName}" target="_blank" class="code-link">
${'{'} code ${'}'}
</a>
<a href="${demo}${_folderName}${
other.hasBuild ? '/build' : ''
}" target="_blank" class="code-link">
${'{'} demo ${'}'}
</a>`;
list.appendChild(itemList);
_forReadMe += `| ${id} | ${name} | [Code](${url}${_folderName}) | [Demo](${demo}${_folderName}) |\n`;
});
// console.log(_forReadMe);
};
// Fetch data
fetch('./projects.json')
.then(res => res.json())
.then(data => updateUI(data));