├── .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 | {{.Title}} 13 |
14 |

15 | {{.Title}} 16 |

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 | {{.Title}} 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 | {{.Title}} 20 |
21 |

22 | {{.Title}} 23 |

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 | ad 3 | ad 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 | --------------------------------------------------------------------------------