This repository was archived by the owner on Jun 15, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
82 lines (70 loc) · 2.56 KB
/
index.js
File metadata and controls
82 lines (70 loc) · 2.56 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
* 2023 - DEV
* Developer: Kenneth Obsequio
* GitHub: https://github.com/lash0000
* License: GPL v3.0
*
*/
// for universal option
export async function fetchXML() {
var data1 = await Promise.all([
fetch("data/articles/headline.xml").then((response) => response.text()),
]);
var parser = new DOMParser();
var xmlDoc1 = parser.parseFromString(data1, "text/xml");
return xmlDoc1;
}
function convert(xmlDoc) {
let htmlString = "";
var items = xmlDoc.getElementsByTagName("tables");
var headlineLimit = 3; //limit for homepage
for (let i = 0; i < items.length && i < headlineLimit; i++) {
var headline = items[i].getElementsByTagName("headline")[0].innerHTML;
var articleLink = items[i].getElementsByTagName("art-link")[0].innerHTML;
var lashSm = items[i].getElementsByTagName("small-detail")[0].innerHTML;
var lashImg = items[i].getElementsByTagName("small-img")[0].innerHTML;
var lash1stTag = items[i].getElementsByTagName("first-tag")[0].innerHTML;
var lash2ndTag = items[i].getElementsByTagName("second-tag")[0].innerHTML;
var minRead = items[i].getElementsByTagName("min-read")[0].innerHTML;
var posted = items[i].getElementsByTagName("posted")[0].innerHTML;
htmlString += `
<aside class="my-art">
<figure class="f-col">
<div class="art-header">
<div hx-boost="true">
<a href="${articleLink}">${headline}</a>
</div>
<span>${lashSm}</span>
<figcaption>${posted}</figcaption>
</div>
<div class="art-tags">
<div>${minRead}</div>
<div>${lash1stTag}</div>
<div>${lash2ndTag}</div>
</div>
</figure>
<figure class="l-col">
<div class="art-img">
${lashImg}
</div>
</figure>
</aside>
`;
}
return htmlString;
}
async function displayData() {
const xmlDoc1 = await fetchXML();
if (xmlDoc1) {
const htmlString1 = convert(xmlDoc1);
document.getElementById("lash-art").innerHTML = htmlString1;
//article count each
var lashCount = xmlDoc1.getElementsByTagName("tables").length;
var lashCountEl = document.getElementById("lash-count");
lashCountEl.textContent = `${lashCount} Articles ✏️`;
}
console.log("By the essence and power of GNU License.");
console.log("Here's the source code btw.");
console.log("https://github.com/lash0000/lash");
}
displayData();