├── .hugo_build.lock
├── archetypes
└── default.md
├── content
├── my-fifth-post.md
├── my-first-post.md
├── my-fourth-post.md
├── my-second-post.md
└── my-third-post.md
├── hugo.toml
├── layouts
├── 404.html
├── _default
│ ├── baseof.html
│ ├── list.html
│ └── single.html
├── categories
│ └── list.html
└── partials
│ ├── footer.html
│ ├── navbar.html
│ └── rightBar.html
└── static
├── .DS_Store
├── images
├── 1b.webp
├── 1s.webp
├── 2b.webp
├── 2s.webp
├── 3b.webp
├── 3s.webp
├── 4b.webp
├── 4s.webp
├── 5b.webp
├── 5s.webp
├── adh.webp
├── ads.webp
└── avatar.webp
├── js
└── app.js
└── styles
└── style.css
/.hugo_build.lock:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/.hugo_build.lock
--------------------------------------------------------------------------------
/archetypes/default.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = '{{ replace .File.ContentBaseName "-" " " | title }}'
3 | date = {{ .Date }}
4 | draft = false
5 | description = ""
6 | image = ""
7 | imageBig = ""
8 | categories = ["general"]
9 | authors = ["Lama Dev"]
10 | avatar = "/images/avatar.webp"
11 | +++
12 |
--------------------------------------------------------------------------------
/content/my-fifth-post.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = 'My Fifth Post My Fifth Post My Fifth Post '
3 | date = 2023-11-22T16:55:24+01:00
4 | draft = false
5 | description = "This is a description"
6 | image = "/images/5s.webp"
7 | imageBig = "/images/5b.webp"
8 | categories = ["general", "life", "coding"]
9 | authors = ["Lama Dev"]
10 | avatar = "/images/avatar.webp"
11 | +++
12 |
13 | Test Content
--------------------------------------------------------------------------------
/content/my-first-post.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = 'My First Post'
3 | date = 2023-11-22T16:55:24+01:00
4 | draft = false
5 | description = "This is a description"
6 | image = "/images/1s.webp"
7 | imageBig = "/images/1b.webp"
8 | categories = ["general", "travel", "culture"]
9 | authors = ["Lama Dev"]
10 | avatar = "/images/avatar.webp"
11 | +++
12 |
13 | Test Content
--------------------------------------------------------------------------------
/content/my-fourth-post.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = 'My Fourth Post'
3 | date = 2023-11-22T16:55:24+01:00
4 | draft = false
5 | description = "This is a description"
6 | image = "/images/4s.webp"
7 | imageBig = "/images/4b.webp"
8 | categories = ["general", "html", "css"]
9 | authors = ["Lama Dev"]
10 | avatar = "/images/avatar.webp"
11 | +++
12 |
13 | Test Content
--------------------------------------------------------------------------------
/content/my-second-post.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = 'My Second Post'
3 | date = 2023-11-22T16:55:24+01:00
4 | draft = false
5 | description = "This is a description"
6 | image = "/images/2s.webp"
7 | imageBig = "/images/2b.webp"
8 | categories = ["general", "css", "js"]
9 | authors = ["Jane Doe"]
10 | avatar = "/images/avatar.webp"
11 | +++
12 |
13 | Test Content
--------------------------------------------------------------------------------
/content/my-third-post.md:
--------------------------------------------------------------------------------
1 | +++
2 | title = 'My Third Post'
3 | date = 2023-11-22T16:55:24+01:00
4 | draft = false
5 | description = "This is a description"
6 | image = "/images/3s.webp"
7 | imageBig = "/images/3b.webp"
8 | categories = ["general", "life", "js"]
9 | authors = ["John Doe"]
10 | avatar = "/images/avatar.webp"
11 | +++
12 |
13 | Test Content
--------------------------------------------------------------------------------
/hugo.toml:
--------------------------------------------------------------------------------
1 | baseURL = 'https://hugoblogapp.com'
2 | languageCode = 'en-us'
3 | title = 'Lama dev blog'
4 |
5 | paginate = 4
6 |
7 | [params]
8 | description = "The fastest blog"
9 | dateFormat = "Jan 2, 2006"
10 |
11 | [taxonomies]
12 | category = "categories"
13 | author = "authors"
--------------------------------------------------------------------------------
/layouts/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Not Found
7 |
8 |
9 | Not Found
10 | Go to homepage
11 |
12 |
--------------------------------------------------------------------------------
/layouts/_default/baseof.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | {{ .Title }}
11 |
12 |
13 |
14 | {{ partial "navbar" . }}
15 | {{ block "main" . }} {{ end }}
16 | {{ partial "footer" . }}
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/layouts/_default/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 | {{ range .Paginator.Pages }}
4 |
5 |

13 |
14 |
17 |
{{.Params.description}}
18 |
19 |

20 |
{{ range (.GetTerms "authors")}}
21 | {{ .Name }}
22 | {{end}}
23 |
24 |
25 |
26 | {{ range (.GetTerms "categories") }}
27 |
{{ .Name }}
28 | {{ end }}
29 |
30 |
31 |
32 | {{ end }} {{ template "_internal/pagination.html" . }}
33 |
34 | {{ end }}
35 |
--------------------------------------------------------------------------------
/layouts/_default/single.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 |
3 |
4 |
5 |
{{.Title}}
6 |
{{.Params.description}}
7 |
8 |

9 |
{{ range (.GetTerms "authors")}}
10 | {{ .Name }}
11 | {{end}}
12 |
13 | {{ range (.GetTerms "categories")}}
14 |
{{ .Name }}
15 | {{end}}
16 |
17 |
18 |
19 |

20 |
21 |
22 |
{{ .Content }}
23 |
24 | {{ partial "rightBar" .}}
25 |
26 |
27 |
28 | {{ end }}
--------------------------------------------------------------------------------
/layouts/categories/list.html:
--------------------------------------------------------------------------------
1 | {{ define "main" }}
2 | {{ if eq .RelPermalink "/categories/"}}
3 | {{ range $.Site.Taxonomies.categories.ByCount }}
4 |
5 | # {{ .Name }} ({{.Count}})
6 |
7 | {{end}}
8 | {{ else }}
9 |
10 | {{ range .Paginator.Pages }}
11 |
12 |

20 |
21 |
24 |
{{.Params.description}}
25 |
26 |

32 |
{{ range (.GetTerms "authors")}}
34 | {{ .Name }}
35 | {{end}}
37 |
38 |
39 |
40 | {{ range (.GetTerms "categories") }}
41 |
{{ .Name }}
42 | {{ end }}
43 |
44 |
45 |
46 | {{ end }} {{ template "_internal/pagination.html" . }}
47 |
48 | {{end}} {{ end }}
49 |
--------------------------------------------------------------------------------
/layouts/partials/footer.html:
--------------------------------------------------------------------------------
1 |
160 |
--------------------------------------------------------------------------------
/layouts/partials/navbar.html:
--------------------------------------------------------------------------------
1 |
67 |
--------------------------------------------------------------------------------
/layouts/partials/rightBar.html:
--------------------------------------------------------------------------------
1 |
2 |

3 |

4 |
--------------------------------------------------------------------------------
/static/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/.DS_Store
--------------------------------------------------------------------------------
/static/images/1b.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/1b.webp
--------------------------------------------------------------------------------
/static/images/1s.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/1s.webp
--------------------------------------------------------------------------------
/static/images/2b.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/2b.webp
--------------------------------------------------------------------------------
/static/images/2s.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/2s.webp
--------------------------------------------------------------------------------
/static/images/3b.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/3b.webp
--------------------------------------------------------------------------------
/static/images/3s.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/3s.webp
--------------------------------------------------------------------------------
/static/images/4b.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/4b.webp
--------------------------------------------------------------------------------
/static/images/4s.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/4s.webp
--------------------------------------------------------------------------------
/static/images/5b.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/5b.webp
--------------------------------------------------------------------------------
/static/images/5s.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/5s.webp
--------------------------------------------------------------------------------
/static/images/adh.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/adh.webp
--------------------------------------------------------------------------------
/static/images/ads.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/ads.webp
--------------------------------------------------------------------------------
/static/images/avatar.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/safak/markdown-blog/627ef9fda33adfcb558d9a84a59df09903b29d3f/static/images/avatar.webp
--------------------------------------------------------------------------------
/static/js/app.js:
--------------------------------------------------------------------------------
1 | const mode = localStorage.getItem("mode") || "";
2 | const toggle = document.querySelector(".toggle");
3 | const body = document.querySelector("body");
4 |
5 | document.body.className = mode;
6 |
7 | toggle.addEventListener("click", ()=>{
8 | localStorage.setItem("mode", mode === "light" ? "" : "light")
9 | body.classList.toggle("light")
10 | })
11 |
--------------------------------------------------------------------------------
/static/styles/style.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --bg: #0b1529;
3 | --bgSoft: #1f3050;
4 | --text: #dee4eb;
5 | --textSoft: #cbd2d9;
6 | }
7 |
8 | * {
9 | margin: 0;
10 | box-sizing: border-box;
11 | }
12 |
13 | body {
14 | background: var(--bg);
15 | color: var(--text);
16 | }
17 |
18 | body.light{
19 | --bg: #dee4eb;
20 | --text: #0b1529;
21 | }
22 |
23 | a {
24 | color: inherit;
25 | text-decoration: none;
26 | }
27 |
28 | .container {
29 | max-width: 1366px;
30 | padding-left: 50px;
31 | padding-right: 50px;
32 | margin: auto;
33 | min-height: 100vh;
34 | display: flex;
35 | flex-direction: column;
36 | justify-content: space-between;
37 | }
38 |
39 | /* NAVBAR START */
40 |
41 | .navbar {
42 | display: flex;
43 | align-items: center;
44 | justify-content: space-between;
45 | height: 100px;
46 | position: sticky;
47 | top: 0;
48 | background-color: var(--bg);
49 | }
50 |
51 | .logo {
52 | font-weight: bold;
53 | font-size: 24px;
54 | }
55 |
56 | .links {
57 | display: flex;
58 | align-items: center;
59 | gap: 20px;
60 | font-size: 20px;
61 | }
62 |
63 | .searchButton {
64 | display: flex;
65 | align-items: center;
66 | gap: 10px;
67 | background-color: var(--bgSoft);
68 | color: var(--textSoft);
69 | padding: 5px;
70 | border-radius: 10px;
71 | }
72 |
73 | .toggle {
74 | width: 40px;
75 | height: 20px;
76 | border-radius: 50px;
77 | cursor: pointer;
78 | display: flex;
79 | align-items: center;
80 | gap: 5px;
81 | background-color: var(--bgSoft);
82 | border: 0.5px solid var(--textSoft);
83 | padding: 5px;
84 | position: relative;
85 | }
86 |
87 | .ball {
88 | width: 19px;
89 | height: 19px;
90 | border-radius: 50%;
91 | position: absolute;
92 | left: 0;
93 | background-color: var(--textSoft);
94 | border: 1px solid var(--bgSoft);
95 | }
96 |
97 | .light .ball {
98 | left: unset;
99 | right: 0;
100 | }
101 |
102 | /* NAVBAR END */
103 |
104 | /* FOOTER START */
105 |
106 | .footer {
107 | display: flex;
108 | align-items: center;
109 | justify-content: space-between;
110 | height: 100px;
111 | font-size: 14px;
112 | }
113 |
114 | .social {
115 | display: flex;
116 | gap: 10px;
117 | }
118 |
119 | /* FOOTER END */
120 |
121 | /* LIST START */
122 |
123 | .listItem {
124 | display: flex;
125 | align-items: center;
126 | gap: 50px;
127 | margin-bottom: 50px;
128 | }
129 |
130 | .listItemImage {
131 | width: 200px;
132 | height: 200px;
133 | object-fit: cover;
134 | }
135 |
136 | .listItemTexts {
137 | display: flex;
138 | flex-direction: column;
139 | gap: 10px;
140 | }
141 |
142 | .listItemDetail {
143 | display: flex;
144 | align-items: center;
145 | gap: 10px;
146 | font-size: 14px;
147 | }
148 |
149 | .listItemAvatar {
150 | width: 24px;
151 | height: 24px;
152 | border-radius: 50%;
153 | object-fit: cover;
154 | }
155 |
156 | .listItemCategories {
157 | display: flex;
158 | gap: 10px;
159 | }
160 |
161 | .listItemCategory {
162 | padding: 5px;
163 | border-radius: 5px;
164 | background-color: var(--bgSoft);
165 | color: var(--textSoft);
166 | font-size: 14px;
167 | }
168 |
169 | .pagination{
170 | display: flex;
171 | gap: 10px;
172 | list-style: none;
173 | padding: 0;
174 | margin: 0;
175 | font-size: 14px;
176 | margin-top: 80px;
177 | margin-bottom: 30px;
178 | }
179 |
180 | .page-item{
181 | border: 1px solid gray;
182 | width: 30px;
183 | height: 30px;
184 | display: flex;
185 | align-items: center;
186 | justify-content: center;
187 | border-radius: 5px;
188 | }
189 |
190 | .page-item.active{
191 | background-color: var(--text);
192 | color: var(--bg);
193 | }
194 | .page-item.disabled{
195 | background-color: #313845;
196 | cursor: not-allowed;
197 | }
198 |
199 | /* LIST END */
200 |
201 | /* SINGLE START */
202 |
203 | .singleHead {
204 | display: flex;
205 | align-items: center;
206 | justify-content: space-between;
207 | gap: 20px;
208 | }
209 |
210 | .singleHeadTexts {
211 | flex: 1;
212 | display: flex;
213 | flex-direction: column;
214 | gap: 20px;
215 | }
216 |
217 | .singleHeadTitle {
218 | font-size: 48px;
219 | }
220 |
221 | .singleHeadDesc {
222 | font-size: 20px;
223 | font-weight: 300;
224 | }
225 |
226 | .singleHeadDetail {
227 | display: flex;
228 | align-items: center;
229 | gap: 20px;
230 | }
231 |
232 | .singleAvatar {
233 | width: 50px;
234 | height: 50px;
235 | border-radius: 50%;
236 | object-fit: cover;
237 | }
238 |
239 | .singleCategory {
240 | padding: 5px;
241 | border-radius: 5px;
242 | background-color: var(--bgSoft);
243 | color: var(--textSoft);
244 | font-size: 14px;
245 | }
246 |
247 | .singleHeadImg {
248 | flex: 1;
249 | max-height: 350px;
250 | object-fit: cover;
251 | }
252 |
253 | .singleBottom {
254 | display: flex;
255 | justify-content: space-between;
256 | gap: 50px;
257 | margin-top: 50px;
258 | }
259 |
260 | .singleContent {
261 | flex: 3;
262 | font-size: 20px;
263 | line-height: 32px;
264 | }
265 |
266 | .singleContent p,
267 | .singleContent h1,
268 | .singleContent h2,
269 | .singleContent h3 {
270 | margin: 20px 0px;
271 | }
272 |
273 | .singleContent img {
274 | width: 100%;
275 | object-fit: cover;
276 | }
277 |
278 | .singleContent pre {
279 | width: 100%;
280 | overflow-x: scroll;
281 | padding: 20px;
282 | }
283 |
284 | .singleRightBar {
285 | flex: 1;
286 | }
287 |
288 | /* SINGLE END */
289 |
290 | /* RIGHTBAR START */
291 |
292 | .rightBar {
293 | position: sticky;
294 | top: 100px;
295 | }
296 |
297 | .rightBarImg {
298 | width: 100%;
299 | height: 100%;
300 | object-fit: cover;
301 | }
302 |
303 | .rightBarImgHr {
304 | display: none;
305 | }
306 |
307 | /* RIGHTBAR END */
308 |
309 | @media (max-width: 1536px) {
310 | .container {
311 | max-width: 1366px;
312 | }
313 | }
314 | @media (max-width: 1366px) {
315 | .container {
316 | max-width: 1280px;
317 | }
318 | }
319 | @media (max-width: 1280px) {
320 | .container {
321 | max-width: 1024px;
322 | }
323 | }
324 | @media (max-width: 1024px) {
325 | .container {
326 | max-width: 768px;
327 | padding-left: 10px;
328 | padding-right: 10px;
329 | }
330 |
331 | .singleHeadImg {
332 | display: none;
333 | }
334 |
335 | .singleBottom {
336 | flex-direction: column-reverse;
337 | }
338 |
339 | .rightBarImg {
340 | display: none;
341 | }
342 |
343 | .rightBarImgHr {
344 | display: block;
345 | width: 100%;
346 | }
347 | }
348 | @media (max-width: 768px) {
349 | .container {
350 | max-width: 640px;
351 | }
352 | .links {
353 | font-size: 14px;
354 | }
355 |
356 | .listItemImage {
357 | display: none;
358 | }
359 |
360 | .searchButton span{
361 | display: none;
362 | }
363 | }
364 | @media (max-width: 640px) {
365 | .container {
366 | max-width: 475px;
367 | }
368 | }
369 |
--------------------------------------------------------------------------------