Repository navigation
Expand file tree
/
Copy pathindex.html
More file actions
120 lines (103 loc) · 4.5 KB
/
Copy pathindex.html
File metadata and controls
120 lines (103 loc) · 4.5 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Dipam's Notebook</title>
<link rel="stylesheet" href="style.css" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Azeret+Mono:ital,wght@0,100..900;1,100..900&family=Open+Sans:ital,wght@0,300..900;1,300..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&display=swap"
rel="stylesheet"
/>
<script>
document.addEventListener("DOMContentLoaded", () => {
populatePosts();
});
const pdfSvg = `<svg viewBox="0 0 24 24" class="icon" fill="none" stroke="currentColor" stroke-width="2">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/>
<polyline points="14 2 14 8 20 8"/>
<line x1="16" y1="13" x2="8" y2="13"/>
<line x1="16" y1="17" x2="8" y2="17"/>
<polyline points="10 9 9 9 8 9"/>
</svg><span>pdf</span>`;
async function populatePosts() {
const posts = await fetch("pages.json").then((res) => res.json());
posts.reverse();
const postsDiv = document.querySelector(".posts");
const fmt = new Intl.DateTimeFormat("en-US", {
// dateStyle: "long",
day: "numeric",
month: "short",
year: "numeric",
});
for (const post of posts) {
if (post.hidden) continue;
const postDiv = document.createElement("div");
postDiv.classList.add("post");
const infoDiv = document.createElement("div");
infoDiv.classList.add("info");
const detailsDiv = document.createElement("div");
detailsDiv.classList.add("details");
const h2 = document.createElement("h2");
const a = document.createElement("a");
a.href = `page/${post.path}.html`;
if (post.pdf && post.html === false) {
a.href = `page/${post.path}.pdf`;
}
a.textContent = post.title;
h2.appendChild(a);
if (post.pdf && !("html" in post)) {
const pdfA = document.createElement("a");
pdfA.href = `page/${post.path}.pdf`;
pdfA.classList.add("pdf");
pdfA.innerHTML = pdfSvg;
h2.appendChild(pdfA);
}
const dateDiv = document.createElement("div");
dateDiv.classList.add("date");
dateDiv.textContent = fmt.format(new Date(post.date));
detailsDiv.appendChild(dateDiv);
detailsDiv.appendChild(h2);
const p = document.createElement("p");
p.textContent = post.description;
infoDiv.appendChild(detailsDiv);
infoDiv.appendChild(p);
postDiv.appendChild(infoDiv);
postsDiv.appendChild(postDiv);
}
}
</script>
</head>
<body>
<main>
<header>
<div class="left">
<h1>Dipam's Notebook</h1>
<p>stuff about programming, math and more</p>
</div>
</header>
<hr />
<div class="posts"></div>
</main>
<footer>
<div class="contain">
<a href="https://github.com/dipamsen">
<span
>@dipamsen
<svg class="github-icon" viewBox="0 0 24 24" fill="currentColor">
<path
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"
/>
</svg>
</span>
</a>
<p style="color: #545454">
Powered by
<a href="https://typst.app" target="_blank" class="typst">Typst</a>
</p>
</div>
</footer>
</body>
</html>