diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2025-08-02 20:28:26 +0200 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2025-08-02 20:28:26 +0200 |
| commit | f871619d7fedbf973c249ad6e16c0fcf7e819cf8 (patch) | |
| tree | 93bcdeb6ffb45b12580a7890b0cc1d88ce977a32 | |
| parent | e326e848dc9e065af2cb4a324e3ebcf98ad9fb33 (diff) | |
| download | mitjafelicijan.com-f871619d7fedbf973c249ad6e16c0fcf7e819cf8.tar.gz | |
Update
| -rw-r--r-- | Makefile | 22 | ||||
| -rw-r--r-- | content/pages/projects.fossil.md.part | 4 | ||||
| -rw-r--r-- | content/pages/projects.github.md.part | 392 | ||||
| -rw-r--r-- | content/pages/projects.md | 8 | ||||
| -rw-r--r-- | static/projects/pats.fossil | bin | 0 -> 225280 bytes | |||
| -rw-r--r-- | static/projects/xmagnify.fossil | bin | 0 -> 225280 bytes | |||
| -rw-r--r-- | tools/fossil-projects.sh | 17 | ||||
| -rw-r--r-- | tools/github-projects.py (renamed from tools/projects.py) | 19 |
8 files changed, 445 insertions, 17 deletions
| @@ -1,4 +1,5 @@ | |||
| 1 | MAKEFLAGS+=-j2 | 1 | MAKEFLAGS+=-j2 |
| 2 | PROJECTS_FILENAME = content/pages/projects.md | ||
| 2 | 3 | ||
| 3 | dev: watch server | 4 | dev: watch server |
| 4 | 5 | ||
| @@ -8,5 +9,22 @@ watch: | |||
| 8 | server: | 9 | server: |
| 9 | jbmafp -s | 10 | jbmafp -s |
| 10 | 11 | ||
| 11 | fetch-projects: | 12 | update-projects: projects-header |
| 12 | cd tools && python projects.py | 13 | cat content/pages/projects.fossil.md.part \ |
| 14 | content/pages/projects.github.md.part >> \ | ||
| 15 | content/pages/projects.md | ||
| 16 | |||
| 17 | projects-header: | ||
| 18 | echo "---" > $(PROJECTS_FILENAME) | ||
| 19 | echo "title: Personal projects" >> $(PROJECTS_FILENAME) | ||
| 20 | echo "date: 2024-10-21T12:00:00+02:00" >> $(PROJECTS_FILENAME) | ||
| 21 | echo "url: projects.html" >> $(PROJECTS_FILENAME) | ||
| 22 | echo "type: page" >> $(PROJECTS_FILENAME) | ||
| 23 | echo "draft: false" >> $(PROJECTS_FILENAME) | ||
| 24 | echo "---\n" >> $(PROJECTS_FILENAME) | ||
| 25 | |||
| 26 | update-fossil: | ||
| 27 | cd tools && bash fossil-projects.sh | ||
| 28 | |||
| 29 | update-github: | ||
| 30 | cd tools && python github-projects.py | ||
diff --git a/content/pages/projects.fossil.md.part b/content/pages/projects.fossil.md.part new file mode 100644 index 0000000..796af87 --- /dev/null +++ b/content/pages/projects.fossil.md.part | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | ## Fossil repositories | ||
| 2 | |||
| 3 | - [pats.fossil](/projects/pats.fossil)<br><small>Size: 220K, Modified: 2025-08-02 20:24:05</small> | ||
| 4 | - [xmagnify.fossil](/projects/xmagnify.fossil)<br><small>Size: 220K, Modified: 2025-08-02 20:24:05</small> | ||
diff --git a/content/pages/projects.github.md.part b/content/pages/projects.github.md.part new file mode 100644 index 0000000..92a8c74 --- /dev/null +++ b/content/pages/projects.github.md.part | |||
| @@ -0,0 +1,392 @@ | |||
| 1 | |||
| 2 | |||
| 3 | ## GitHub repositories | ||
| 4 | |||
| 5 | <div class='project-list'> | ||
| 6 | |||
| 7 | - [abtts](#abtts) | ||
| 8 | - [blpconvert](#blpconvert) | ||
| 9 | - [ClassicEnhanced](#classicenhanced) | ||
| 10 | - [clutch](#clutch) | ||
| 11 | - [jbmafp](#jbmafp) | ||
| 12 | - [lazycommit](#lazycommit) | ||
| 13 | - [makext](#makext) | ||
| 14 | - [mprogress](#mprogress) | ||
| 15 | - [newsbarge](#newsbarge) | ||
| 16 | - [oberon](#oberon) | ||
| 17 | - [p9tree](#p9tree) | ||
| 18 | - [pats](#pats) | ||
| 19 | - [rssperado](#rssperado) | ||
| 20 | - [sm](#sm) | ||
| 21 | - [sparklines](#sparklines) | ||
| 22 | - [ttdaw](#ttdaw) | ||
| 23 | - [TurtleTweaks](#turtletweaks) | ||
| 24 | - [xmagnify](#xmagnify) | ||
| 25 | |||
| 26 | |||
| 27 | </div> | ||
| 28 | |||
| 29 | ## abtts | ||
| 30 | Convert text like ebooks into audiobooks with UnrealSpeech. | ||
| 31 | |||
| 32 | |||
| 33 | <div class='project-release'> | ||
| 34 | |||
| 35 | |Released|Description|Download| | ||
| 36 | |--------|-----------|--------| | ||
| 37 | |2023-07-05|Added introduction audio option| [abtts-v0.3.tar.gz](/projects/abtts-v0.3.tar.gz) | | ||
| 38 | |2023-07-03|Moved to OGG as default format| [abtts-v0.2.tar.gz](/projects/abtts-v0.2.tar.gz) | | ||
| 39 | |2023-07-03|First release| [abtts-v0.1.tar.gz](/projects/abtts-v0.1.tar.gz) | | ||
| 40 | |||
| 41 | |||
| 42 | </div> | ||
| 43 | |||
| 44 | <div class='github-link'> | ||
| 45 | |||
| 46 | [mitjafelicijan/abtts](https://github.com/mitjafelicijan/abtts) | ||
| 47 | |||
| 48 | </div> | ||
| 49 | |||
| 50 | ## blpconvert | ||
| 51 | This tool converts BLP texture files used in many games such as World of Warcraft into PNG files. With support for DXT1, DXT3 and DXT5 compression. | ||
| 52 | |||
| 53 | |||
| 54 | <div class='project-release'> | ||
| 55 | |||
| 56 | |Released|Description|Download| | ||
| 57 | |--------|-----------|--------| | ||
| 58 | |2025-02-04|First version| [blpconvert-v1.0.tar.gz](/projects/blpconvert-v1.0.tar.gz) | | ||
| 59 | |||
| 60 | |||
| 61 | </div> | ||
| 62 | |||
| 63 | <div class='github-link'> | ||
| 64 | |||
| 65 | [mitjafelicijan/blpconvert](https://github.com/mitjafelicijan/blpconvert) | ||
| 66 | |||
| 67 | </div> | ||
| 68 | |||
| 69 | ## ClassicEnhanced | ||
| 70 | Quality of life improvements and general enhancements for WoW Classic Client. | ||
| 71 | |||
| 72 | |||
| 73 | <div class='project-release'> | ||
| 74 | |||
| 75 | |Released|Description|Download| | ||
| 76 | |--------|-----------|--------| | ||
| 77 | |2024-04-13|Fixed Druid initial state of mana bar| [ClassicEnhanced-v1.0.1.tar.gz](/projects/ClassicEnhanced-v1.0.1.tar.gz) | | ||
| 78 | |2024-04-13|First release| [ClassicEnhanced-v1.0.0.tar.gz](/projects/ClassicEnhanced-v1.0.0.tar.gz) | | ||
| 79 | |||
| 80 | |||
| 81 | </div> | ||
| 82 | |||
| 83 | <div class='github-link'> | ||
| 84 | |||
| 85 | [mitjafelicijan/ClassicEnhanced](https://github.com/mitjafelicijan/ClassicEnhanced) | ||
| 86 | |||
| 87 | </div> | ||
| 88 | |||
| 89 | ## clutch | ||
| 90 | Clutch allows you to run nested dwm session inside your existing X or Wayland session. This comes in handy when you already have a desktop environment running (like Gnome) but you want to have a tiling window manager as well. | ||
| 91 | |||
| 92 | |||
| 93 | <div class='project-release'> | ||
| 94 | |||
| 95 | |Released|Description|Download| | ||
| 96 | |--------|-----------|--------| | ||
| 97 | |2024-06-19|First release| [clutch-v1.0.tar.gz](/projects/clutch-v1.0.tar.gz) | | ||
| 98 | |||
| 99 | |||
| 100 | </div> | ||
| 101 | |||
| 102 | <div class='github-link'> | ||
| 103 | |||
| 104 | [mitjafelicijan/clutch](https://github.com/mitjafelicijan/clutch) | ||
| 105 | |||
| 106 | </div> | ||
| 107 | |||
| 108 | ## jbmafp | ||
| 109 | A simple static site generator that is semi compatible with Hugo and aims to be a simpler version of it, getting out of your way when it comes to taxonomies. | ||
| 110 | |||
| 111 | |||
| 112 | <div class='project-release'> | ||
| 113 | |||
| 114 | |Released|Description|Download| | ||
| 115 | |--------|-----------|--------| | ||
| 116 | |2024-06-21|Added better filtering| [jbmafp-v0.3.tar.gz](/projects/jbmafp-v0.3.tar.gz) | | ||
| 117 | |2024-06-18|Added filters first, last, random| [jbmafp-v0.2.tar.gz](/projects/jbmafp-v0.2.tar.gz) | | ||
| 118 | |2024-03-10|First release| [jbmafp-v0.1.tar.gz](/projects/jbmafp-v0.1.tar.gz) | | ||
| 119 | |||
| 120 | |||
| 121 | </div> | ||
| 122 | |||
| 123 | <div class='github-link'> | ||
| 124 | |||
| 125 | [mitjafelicijan/jbmafp](https://github.com/mitjafelicijan/jbmafp) | ||
| 126 | |||
| 127 | </div> | ||
| 128 | |||
| 129 | ## lazycommit | ||
| 130 | Git commit messages for lazy people that use AI in the backend. | ||
| 131 | |||
| 132 | |||
| 133 | <div class='project-release'> | ||
| 134 | |||
| 135 | |Released|Description|Download| | ||
| 136 | |--------|-----------|--------| | ||
| 137 | |2025-03-17|First release| [lazycommit-v1.0.tar.gz](/projects/lazycommit-v1.0.tar.gz) | | ||
| 138 | |||
| 139 | |||
| 140 | </div> | ||
| 141 | |||
| 142 | <div class='github-link'> | ||
| 143 | |||
| 144 | [mitjafelicijan/lazycommit](https://github.com/mitjafelicijan/lazycommit) | ||
| 145 | |||
| 146 | </div> | ||
| 147 | |||
| 148 | ## makext | ||
| 149 | Makext is a collection of useful extensions for Makefiles, aimed at simplifying and enhancing the functionality of Make-based projects. These extensions provide additional features and convenience functions to improve the overall usage of GNU Make as a task runner. | ||
| 150 | |||
| 151 | |||
| 152 | <div class='project-release'> | ||
| 153 | |||
| 154 | |Released|Description|Download| | ||
| 155 | |--------|-----------|--------| | ||
| 156 | |2024-05-15|First release| [makext-v1.0.tar.gz](/projects/makext-v1.0.tar.gz) | | ||
| 157 | |||
| 158 | |||
| 159 | </div> | ||
| 160 | |||
| 161 | <div class='github-link'> | ||
| 162 | |||
| 163 | [mitjafelicijan/makext](https://github.com/mitjafelicijan/makext) | ||
| 164 | |||
| 165 | </div> | ||
| 166 | |||
| 167 | ## mprogress | ||
| 168 | Displays progress bar in terminal. It can be used as a standalone program so you can put it in /usr/bin. The name is stupid like that because of the potential name conflicts. | ||
| 169 | |||
| 170 | |||
| 171 | <div class='project-release'> | ||
| 172 | |||
| 173 | |Released|Description|Download| | ||
| 174 | |--------|-----------|--------| | ||
| 175 | |2022-12-31|First release| [mprogress-v1.0.tar.gz](/projects/mprogress-v1.0.tar.gz) | | ||
| 176 | |||
| 177 | |||
| 178 | </div> | ||
| 179 | |||
| 180 | <div class='github-link'> | ||
| 181 | |||
| 182 | [mitjafelicijan/mprogress](https://github.com/mitjafelicijan/mprogress) | ||
| 183 | |||
| 184 | </div> | ||
| 185 | |||
| 186 | ## newsbarge | ||
| 187 | Converts RSS feeds into single HTMLpage containing all the feed stories. | ||
| 188 | |||
| 189 | |||
| 190 | <div class='project-release'> | ||
| 191 | |||
| 192 | |Released|Description|Download| | ||
| 193 | |--------|-----------|--------| | ||
| 194 | |2025-03-01|First release| [newsbarge-v0.1.tar.gz](/projects/newsbarge-v0.1.tar.gz) | | ||
| 195 | |||
| 196 | |||
| 197 | </div> | ||
| 198 | |||
| 199 | <div class='github-link'> | ||
| 200 | |||
| 201 | [mitjafelicijan/newsbarge](https://github.com/mitjafelicijan/newsbarge) | ||
| 202 | |||
| 203 | </div> | ||
| 204 | |||
| 205 | ## oberon | ||
| 206 | This is a tiny project boilerplate for OpenResty and Lua website that includes basic router, memcached, Redis and MySQL with accompanying examples how to use all this. | ||
| 207 | |||
| 208 | |||
| 209 | <div class='project-release'> | ||
| 210 | |||
| 211 | |Released|Description|Download| | ||
| 212 | |--------|-----------|--------| | ||
| 213 | |2025-03-29|First release| [oberon-v1.0.tar.gz](/projects/oberon-v1.0.tar.gz) | | ||
| 214 | |||
| 215 | |||
| 216 | </div> | ||
| 217 | |||
| 218 | <div class='github-link'> | ||
| 219 | |||
| 220 | [mitjafelicijan/oberon](https://github.com/mitjafelicijan/oberon) | ||
| 221 | |||
| 222 | </div> | ||
| 223 | |||
| 224 | ## p9tree | ||
| 225 | tree is written with Plan9 Operating System in mind so it may not work with other systems. | ||
| 226 | |||
| 227 | |||
| 228 | <div class='project-release'> | ||
| 229 | |||
| 230 | |Released|Description|Download| | ||
| 231 | |--------|-----------|--------| | ||
| 232 | |2023-11-11|First release| [p9tree-v1.0.tar.gz](/projects/p9tree-v1.0.tar.gz) | | ||
| 233 | |||
| 234 | |||
| 235 | </div> | ||
| 236 | |||
| 237 | <div class='github-link'> | ||
| 238 | |||
| 239 | [mitjafelicijan/p9tree](https://github.com/mitjafelicijan/p9tree) | ||
| 240 | |||
| 241 | </div> | ||
| 242 | |||
| 243 | ## pats | ||
| 244 | Pats is a command-line tool for managing PulseAudio audio sinks that allows you to list available audio outputs and cycles between them seamlessly. | ||
| 245 | |||
| 246 | |||
| 247 | <div class='project-release'> | ||
| 248 | |||
| 249 | |Released|Description|Download| | ||
| 250 | |--------|-----------|--------| | ||
| 251 | |2025-07-19|First release| [pats-v1.0.tar.gz](/projects/pats-v1.0.tar.gz) | | ||
| 252 | |||
| 253 | |||
| 254 | </div> | ||
| 255 | |||
| 256 | <div class='github-link'> | ||
| 257 | |||
| 258 | [mitjafelicijan/pats](https://github.com/mitjafelicijan/pats) | ||
| 259 | |||
| 260 | </div> | ||
| 261 | |||
| 262 | ## rssperado | ||
| 263 | The RSS parser is a command-line utility that simplifies the process of parsing RSS feeds, enriching the extracted data, exporting it to JSON files, enabling content classification, and providing English translation. | ||
| 264 | |||
| 265 | |||
| 266 | <div class='project-release'> | ||
| 267 | |||
| 268 | |Released|Description|Download| | ||
| 269 | |--------|-----------|--------| | ||
| 270 | |2023-06-07|First release| [rssperado-v1.0.tar.gz](/projects/rssperado-v1.0.tar.gz) | | ||
| 271 | |||
| 272 | |||
| 273 | </div> | ||
| 274 | |||
| 275 | <div class='github-link'> | ||
| 276 | |||
| 277 | [mitjafelicijan/rssperado](https://github.com/mitjafelicijan/rssperado) | ||
| 278 | |||
| 279 | </div> | ||
| 280 | |||
| 281 | ## sm | ||
| 282 | Simple snapshot utility that uses TAR to compress current directory into a .tar file while ignoring some of the directories. | ||
| 283 | |||
| 284 | |||
| 285 | <div class='project-release'> | ||
| 286 | |||
| 287 | |Released|Description|Download| | ||
| 288 | |--------|-----------|--------| | ||
| 289 | |2024-10-21|First release| [sm-v1.0.tar.gz](/projects/sm-v1.0.tar.gz) | | ||
| 290 | |||
| 291 | |||
| 292 | </div> | ||
| 293 | |||
| 294 | <div class='github-link'> | ||
| 295 | |||
| 296 | [mitjafelicijan/sm](https://github.com/mitjafelicijan/sm) | ||
| 297 | |||
| 298 | </div> | ||
| 299 | |||
| 300 | ## sparklines | ||
| 301 | Self-contained tiny SVG sparkline chart library written in vanilla JS with zero dependencies. | ||
| 302 | |||
| 303 | |||
| 304 | <div class='project-release'> | ||
| 305 | |||
| 306 | |Released|Description|Download| | ||
| 307 | |--------|-----------|--------| | ||
| 308 | |2023-12-09|First release| [sparklines-v1.0.tar.gz](/projects/sparklines-v1.0.tar.gz) | | ||
| 309 | |||
| 310 | |||
| 311 | </div> | ||
| 312 | |||
| 313 | <div class='github-link'> | ||
| 314 | |||
| 315 | [mitjafelicijan/sparklines](https://github.com/mitjafelicijan/sparklines) | ||
| 316 | |||
| 317 | </div> | ||
| 318 | |||
| 319 | ## ttdaw | ||
| 320 | ttdaw is a tiny terminal based digital audio workstation made for fun, experimentation and learning more about audio, MIDI and terminal applications in general. | ||
| 321 | |||
| 322 | |||
| 323 | <div class='project-release'> | ||
| 324 | |||
| 325 | |Released|Description|Download| | ||
| 326 | |--------|-----------|--------| | ||
| 327 | |2024-12-22|First release| [ttdaw-v0.1.tar.gz](/projects/ttdaw-v0.1.tar.gz) | | ||
| 328 | |||
| 329 | |||
| 330 | </div> | ||
| 331 | |||
| 332 | <div class='github-link'> | ||
| 333 | |||
| 334 | [mitjafelicijan/ttdaw](https://github.com/mitjafelicijan/ttdaw) | ||
| 335 | |||
| 336 | </div> | ||
| 337 | |||
| 338 | ## TurtleTweaks | ||
| 339 | World of Warcraft 1.12 client Tweaks and Enhancements Addon. | ||
| 340 | |||
| 341 | |||
| 342 | <div class='project-release'> | ||
| 343 | |||
| 344 | |Released|Description|Download| | ||
| 345 | |--------|-----------|--------| | ||
| 346 | |2023-05-14|Added cooldown timers to actionbars| [TurtleTweaks-v0.7.tar.gz](/projects/TurtleTweaks-v0.7.tar.gz) | | ||
| 347 | |2023-05-12|Rested bar now has a proper progress bar| [TurtleTweaks-v0.6.tar.gz](/projects/TurtleTweaks-v0.6.tar.gz) | | ||
| 348 | |2023-05-09|Removed debug messages| [TurtleTweaks-v0.5.1.tar.gz](/projects/TurtleTweaks-v0.5.1.tar.gz) | | ||
| 349 | |2023-05-09|Added option to open world map in a window| [TurtleTweaks-v0.5.tar.gz](/projects/TurtleTweaks-v0.5.tar.gz) | | ||
| 350 | |2023-05-09|Added nameplate scaling option| [TurtleTweaks-v0.4.tar.gz](/projects/TurtleTweaks-v0.4.tar.gz) | | ||
| 351 | |2023-05-08|Fixed progress bar to reflect the value in rested bar| [TurtleTweaks-v0.3.tar.gz](/projects/TurtleTweaks-v0.3.tar.gz) | | ||
| 352 | |2023-05-08|Added align grid slashcommand| [TurtleTweaks-v0.2.tar.gz](/projects/TurtleTweaks-v0.2.tar.gz) | | ||
| 353 | |2023-05-08|First release| [TurtleTweaks-v0.1.tar.gz](/projects/TurtleTweaks-v0.1.tar.gz) | | ||
| 354 | |||
| 355 | |||
| 356 | </div> | ||
| 357 | |||
| 358 | <div class='github-link'> | ||
| 359 | |||
| 360 | [mitjafelicijan/TurtleTweaks](https://github.com/mitjafelicijan/TurtleTweaks) | ||
| 361 | |||
| 362 | </div> | ||
| 363 | |||
| 364 | ## xmagnify | ||
| 365 | Xmagnify is a real-time screen magnification tool for X11 systems that provides a zoomed view of the area around your mouse cursor. | ||
| 366 | |||
| 367 | |||
| 368 | <div class='project-release'> | ||
| 369 | |||
| 370 | |Released|Description|Download| | ||
| 371 | |--------|-----------|--------| | ||
| 372 | |2025-07-18|First release| [xmagnify-v1.0.tar.gz](/projects/xmagnify-v1.0.tar.gz) | | ||
| 373 | |||
| 374 | |||
| 375 | </div> | ||
| 376 | |||
| 377 | <div class='github-link'> | ||
| 378 | |||
| 379 | [mitjafelicijan/xmagnify](https://github.com/mitjafelicijan/xmagnify) | ||
| 380 | |||
| 381 | </div> | ||
| 382 | |||
| 383 | |||
| 384 | |||
| 385 | <style> | ||
| 386 | .project-release table tr td:last-child { text-align: right; } | ||
| 387 | .project-release table tr th:last-child { text-align: right; } | ||
| 388 | .project-list ul { column-count: 3; column-gap: 3em; } | ||
| 389 | .github-link p { display: flex; align-items: center; gap: 0.3em; } | ||
| 390 | .github-link p img { border: 0; padding: 0; height: 15px; } | ||
| 391 | </style> | ||
| 392 | |||
diff --git a/content/pages/projects.md b/content/pages/projects.md index 8c341b6..cc10185 100644 --- a/content/pages/projects.md +++ b/content/pages/projects.md | |||
| @@ -6,6 +6,14 @@ type: page | |||
| 6 | draft: false | 6 | draft: false |
| 7 | --- | 7 | --- |
| 8 | 8 | ||
| 9 | ## Fossil repositories | ||
| 10 | |||
| 11 | - [pats.fossil](/projects/pats.fossil)<br><small>Size: 220K, Modified: 2025-08-02 20:21:40</small> | ||
| 12 | - [xmagnify.fossil](/projects/xmagnify.fossil)<br><small>Size: 220K, Modified: 2025-08-02 20:21:40</small> | ||
| 13 | |||
| 14 | |||
| 15 | ## GitHub repositories | ||
| 16 | |||
| 9 | <div class='project-list'> | 17 | <div class='project-list'> |
| 10 | 18 | ||
| 11 | - [abtts](#abtts) | 19 | - [abtts](#abtts) |
diff --git a/static/projects/pats.fossil b/static/projects/pats.fossil new file mode 100644 index 0000000..ad91737 --- /dev/null +++ b/static/projects/pats.fossil | |||
| Binary files differ | |||
diff --git a/static/projects/xmagnify.fossil b/static/projects/xmagnify.fossil new file mode 100644 index 0000000..258d27d --- /dev/null +++ b/static/projects/xmagnify.fossil | |||
| Binary files differ | |||
diff --git a/tools/fossil-projects.sh b/tools/fossil-projects.sh new file mode 100644 index 0000000..bb6e673 --- /dev/null +++ b/tools/fossil-projects.sh | |||
| @@ -0,0 +1,17 @@ | |||
| 1 | set -xe | ||
| 2 | |||
| 3 | OUT=../content/pages/projects.fossil.md.part | ||
| 4 | |||
| 5 | echo -e "## Fossil repositories\n" > $OUT | ||
| 6 | |||
| 7 | find ~/Projects/ -type f -name "*.fossil" -not -path "*/website/*" | while read -r file; do | ||
| 8 | cp $file ../static/projects/ | ||
| 9 | done | ||
| 10 | |||
| 11 | find ../static/projects/ -type f -name "*.fossil" | while read -r file; do | ||
| 12 | base=$(basename "$file") | ||
| 13 | size=$(stat -c %s "$file" | numfmt --to=iec) | ||
| 14 | modified_date=$(stat -c %Y "$file") | ||
| 15 | formatted_date=$(date -d @"$modified_date" +"%Y-%m-%d %H:%M:%S") | ||
| 16 | echo -e "- [$base](/projects/$base)<br><small>Size: $size, Modified: $formatted_date</small>" >> $OUT | ||
| 17 | done | ||
diff --git a/tools/projects.py b/tools/github-projects.py index 65cea8d..e2afe95 100644 --- a/tools/projects.py +++ b/tools/github-projects.py | |||
| @@ -12,17 +12,11 @@ headers = { | |||
| 12 | "Accept": "application/vnd.github.v3+json" | 12 | "Accept": "application/vnd.github.v3+json" |
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | |||
| 16 | def generate_markdown_file(include_repositories): | 15 | def generate_markdown_file(include_repositories): |
| 17 | file = open("../content/pages/projects.md", "w") | 16 | file = open("../content/pages/projects.github.md.part", "w") |
| 18 | 17 | ||
| 19 | file.write("---\n") | 18 | file.write(DOUBLE_NL) |
| 20 | file.write("title: Personal projects\n") | 19 | file.write("## GitHub repositories") |
| 21 | file.write("date: 2024-10-21T12:00:00+02:00\n") | ||
| 22 | file.write("url: projects.html\n") | ||
| 23 | file.write("type: page\n") | ||
| 24 | file.write("draft: false\n") | ||
| 25 | file.write("---") | ||
| 26 | file.write(DOUBLE_NL) | 20 | file.write(DOUBLE_NL) |
| 27 | 21 | ||
| 28 | file.write("<div class='project-list'>") | 22 | file.write("<div class='project-list'>") |
| @@ -76,8 +70,6 @@ def generate_markdown_file(include_repositories): | |||
| 76 | 70 | ||
| 77 | file.close() | 71 | file.close() |
| 78 | 72 | ||
| 79 | |||
| 80 | |||
| 81 | def download_tarball(url, filepath): | 73 | def download_tarball(url, filepath): |
| 82 | with requests.get(url, stream=True, timeout=30) as response: | 74 | with requests.get(url, stream=True, timeout=30) as response: |
| 83 | response.raise_for_status() | 75 | response.raise_for_status() |
| @@ -86,7 +78,6 @@ def download_tarball(url, filepath): | |||
| 86 | for chunk in response.iter_content(chunk_size=8192): | 78 | for chunk in response.iter_content(chunk_size=8192): |
| 87 | file.write(chunk) | 79 | file.write(chunk) |
| 88 | 80 | ||
| 89 | |||
| 90 | def assert_rate_limit(response): | 81 | def assert_rate_limit(response): |
| 91 | rate_limit_limit = int(response.headers.get("x-ratelimit-limit")) | 82 | rate_limit_limit = int(response.headers.get("x-ratelimit-limit")) |
| 92 | rate_limit_remaining = int(response.headers.get("x-ratelimit-remaining")) | 83 | rate_limit_remaining = int(response.headers.get("x-ratelimit-remaining")) |
| @@ -97,7 +88,6 @@ def assert_rate_limit(response): | |||
| 97 | if rate_limit_remaining == 0: | 88 | if rate_limit_remaining == 0: |
| 98 | sys.exit(1) | 89 | sys.exit(1) |
| 99 | 90 | ||
| 100 | |||
| 101 | def fetch_github_data(): | 91 | def fetch_github_data(): |
| 102 | include_repositories = [] | 92 | include_repositories = [] |
| 103 | print(headers) | 93 | print(headers) |
| @@ -136,7 +126,6 @@ def fetch_github_data(): | |||
| 136 | 126 | ||
| 137 | return include_repositories | 127 | return include_repositories |
| 138 | 128 | ||
| 139 | |||
| 140 | include_repositories = fetch_github_data() | 129 | include_repositories = fetch_github_data() |
| 141 | 130 | ||
| 142 | # with open("out.json", "w") as json_file: | 131 | # with open("out.json", "w") as json_file: |
