chore: update portfolio
This commit is contained in:
parent
0a0273062c
commit
b6dd692633
11 changed files with 90 additions and 134 deletions
4
.vscode/settings.json
vendored
4
.vscode/settings.json
vendored
|
@ -11,6 +11,7 @@
|
||||||
"bspwm",
|
"bspwm",
|
||||||
"cairographics",
|
"cairographics",
|
||||||
"classnet",
|
"classnet",
|
||||||
|
"createreactapp",
|
||||||
"deno",
|
"deno",
|
||||||
"developomp",
|
"developomp",
|
||||||
"developomp's",
|
"developomp's",
|
||||||
|
@ -39,12 +40,15 @@
|
||||||
"linaria",
|
"linaria",
|
||||||
"nodedotjs",
|
"nodedotjs",
|
||||||
"noto",
|
"noto",
|
||||||
|
"planetscale",
|
||||||
"pnpm",
|
"pnpm",
|
||||||
"pocketbase",
|
"pocketbase",
|
||||||
"polybar",
|
"polybar",
|
||||||
"Pomky",
|
"Pomky",
|
||||||
|
"pompup",
|
||||||
"precompress",
|
"precompress",
|
||||||
"rainmeter",
|
"rainmeter",
|
||||||
|
"statcounter",
|
||||||
"sxhkd",
|
"sxhkd",
|
||||||
"tailwindcss",
|
"tailwindcss",
|
||||||
"tauri",
|
"tauri",
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
@ -9,89 +9,41 @@ badges:
|
||||||
- typescript
|
- typescript
|
||||||
- javascript
|
- javascript
|
||||||
- nodedotjs
|
- nodedotjs
|
||||||
|
- pnpm
|
||||||
- firebase
|
- firebase
|
||||||
- amazonaws
|
- amazonaws
|
||||||
- react
|
- react
|
||||||
|
- svelte
|
||||||
|
- vite
|
||||||
|
- createreactapp
|
||||||
|
- eslint
|
||||||
|
- prettier
|
||||||
- html5
|
- html5
|
||||||
|
- markdown
|
||||||
|
- tailwindcss
|
||||||
|
- postcss
|
||||||
- css3
|
- css3
|
||||||
|
- sass
|
||||||
---
|
---
|
||||||
|
|
||||||
## Intro
|
## Introduction
|
||||||
|
|
||||||
developomp.com is a website I built for blogging, data hosting, portfolio, resume, etc.
|
developomp-site is a monorepo managed by [turborepo](https://turbo.build/repo)
|
||||||
|
and pnpm workspace.
|
||||||
|
|
||||||
It is a static, single page application built with [react](https://reactjs.org) framework.
|
- https://developomp.com - about me, built with **SvelteKit**
|
||||||
It is hosted on [google firebase](https://firebase.google.com), and domain registered with [AWS](https://aws.amazon.com) Route 53.
|
- https://blog.developomp.com - Blogging site, built with **React + CRA**
|
||||||
|
- https://portfolio.developomp.com - Portfolio, built with **React + Vite**
|
||||||
|
|
||||||
## How it's used
|
The following services/technologies are used by the project:
|
||||||
|
|
||||||
The portfolio page doubles as a project description page where it lists some interesting aspects of the project.
|
- **Google Firebase** - site hosting & CDN
|
||||||
It's basically a developer's note where I show parts I put extra effort and want people to know about it.
|
- **GitHub Action** - Automated Building & Deployment
|
||||||
|
- **AWS Route 53** - Domain Management
|
||||||
|
|
||||||
## How it works
|
## Interesting Stuff
|
||||||
|
|
||||||
The build process of the site can be subdivided into three major stages: _content generation_, _site building_, and _deployment_.
|
- [markdown parsing][markdown-parsing]
|
||||||
|
- [test post](https://blog.developomp.com/posts/test-post)
|
||||||
|
|
||||||
### 1. content generation
|
[markdown-parsing]: https://github.com/developomp/developomp-site/tree/081855a4ecb6f5bf74b76758c358ea54b465b2b7/packages/blog-content
|
||||||
|
|
||||||
Before the site ever gets to deal with react stuff, a sort of content pre-processing should take place.
|
|
||||||
In this stage, markdown files are rendered to HTML, svg images are constructed, and json files containing metadata are generated.
|
|
||||||
These files are all saved in the `src/data` directory with exceptions for some image files which are saved in the `public/img` directory.
|
|
||||||
|
|
||||||
#### A. HTML generation
|
|
||||||
|
|
||||||
The [markdown files](https://github.com/developomp/developomp-site/tree/16cb0ee44dbf2545951c6422e7ba442ca5c33cde/packages/blog-content/markdown) are rendered to HTML using the [markdown-it](https://github.com/markdown-it/markdown-it) library.
|
|
||||||
Various extensions are used in this stage to extend markdown features such as footnotes, mathematical expressions, and code blocks.
|
|
||||||
|
|
||||||
- Check the [test post](/posts/test-post) to see all markdown related features.
|
|
||||||
- The conversion logic can be found in the [`packages/blog-content/src/parseMarkdown.ts`](https://github.com/developomp/developomp-site/blob/16cb0ee44dbf2545951c6422e7ba442ca5c33cde/packages/blog-content/src/parseMarkdown.ts) file.
|
|
||||||
|
|
||||||
#### B. images
|
|
||||||
|
|
||||||
After the all the text contents are parsed, svg images are constructed.
|
|
||||||
|
|
||||||
First, icons from [simple-icons](https://github.com/simple-icons/simple-icons) that are used by the site are copied to the `src/data/icons` directory.
|
|
||||||
Then, other images such as the "programming skills" stats that can be seen in the [portfolio](/portfolio) page and in my [github profile](https://github.com/developomp#development-skills) are generated using the [EJS](https://ejs.co) library.
|
|
||||||
|
|
||||||
- The code can be found in [`packages/blog-content/src/portfolio`](https://github.com/developomp/developomp-site/tree/16cb0ee44dbf2545951c6422e7ba442ca5c33cde/packages/blog-content/src/portfolio).
|
|
||||||
|
|
||||||
#### C. metadata
|
|
||||||
|
|
||||||
After dealing with all the contents, json files containing metadata are generated.
|
|
||||||
These can then be imported by react for searching and listing.
|
|
||||||
|
|
||||||
Files generated in this stage includes:
|
|
||||||
|
|
||||||
- `src/data/map.json` (contains information about regular blog posts and pages)
|
|
||||||
- `src/data/portfolio.json` (contains information about portfolio related data)
|
|
||||||
- `src/data/search.json` (contains searchable [elasticlunr](https://github.com/weixsong/elasticlunr.js) index for the search page)
|
|
||||||
|
|
||||||
### 2. site building
|
|
||||||
|
|
||||||
Good old react build process using [react-scripts](https://www.npmjs.com/package/react-scripts).
|
|
||||||
|
|
||||||
### 3. deployment
|
|
||||||
|
|
||||||
The site is deployed to firebase.
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
### Reactive UI
|
|
||||||
|
|
||||||
The site is designed to work on displays of any sizes.
|
|
||||||
Horizontal overflows are properly dealt with in small displays,
|
|
||||||
and contents have a maximum width so it looks beautiful on ultra-wide displays.
|
|
||||||
|
|
||||||
### Searching
|
|
||||||
|
|
||||||
The search feature usually involves a server or service like [algolia](https://www.algolia.com).
|
|
||||||
However, the searching logic is in the client side so there's no task that requires a server aside from static site hosting.
|
|
||||||
|
|
||||||
## Limitations
|
|
||||||
|
|
||||||
Because all the computation is done in the client-side,
|
|
||||||
there is a possibility for the site to be too slow to use some users with outdated hardware (especially mobile users).
|
|
||||||
|
|
||||||
Also, since the search operation also happens in the client-side,
|
|
||||||
the client has to download every blog posts in the site for the search feature to work.
|
|
||||||
This may be a issue for users with slow/limited access to the internet.
|
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
---
|
|
||||||
name: Exyle.io
|
|
||||||
overview: A free and simple community-driven competitive online multiplayer fps game
|
|
||||||
image: /img/portfolio/exyleio.avif
|
|
||||||
repo: https://github.com/exyleio
|
|
||||||
badges:
|
|
||||||
- githubactions
|
|
||||||
- docker
|
|
||||||
- typescript
|
|
||||||
- javascript
|
|
||||||
- nodedotjs
|
|
||||||
- rust
|
|
||||||
- csharp
|
|
||||||
- godotengine
|
|
||||||
- pocketbase
|
|
||||||
- redis
|
|
||||||
- linode
|
|
||||||
- firebase
|
|
||||||
- amazonaws
|
|
||||||
- svelte
|
|
||||||
- html5
|
|
||||||
- css3
|
|
||||||
- gnubash
|
|
||||||
---
|
|
|
@ -1,23 +0,0 @@
|
||||||
---
|
|
||||||
name: Arch Linux setup script
|
|
||||||
overview: My Arch Linux desktop setup
|
|
||||||
image: /img/portfolio/linux-setup-script.avif
|
|
||||||
repo: https://github.com/developomp/setup
|
|
||||||
badges:
|
|
||||||
- githubpages
|
|
||||||
- githubactions
|
|
||||||
- linux
|
|
||||||
- python
|
|
||||||
---
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
Properly setting up a desktop takes a lot of time.
|
|
||||||
Installing all of your favorite applications and configuring them to your liking is no easy task.
|
|
||||||
The primary purpose of this project is to solve this exact problem by automating the process of installation and configuration of applications and system.
|
|
||||||
|
|
||||||
## How does it work?
|
|
||||||
|
|
||||||
[Github pages](https://pages.github.com) allows the developers to deploy a static site directly from their repositories.
|
|
||||||
I have set up a [github action](https://docs.github.com/en/actions) so that the content of the bootstrap script gets copied over to the `index.html` file in the `gh-pages` branch so it can be downloaded from https://setup.developomp.com/.
|
|
||||||
This script then clones the rest of the repository upon execution so it can start doing its thing.
|
|
|
@ -9,5 +9,9 @@ badges:
|
||||||
- typescript
|
- typescript
|
||||||
---
|
---
|
||||||
|
|
||||||
The llama bot is a discord bot made for the [Llama's Pyjamas community discord server](discord.gg/2fsar34APa).
|
## Introduction
|
||||||
It is written in typescript and uses the [sapphire framework](https://sapphirejs.dev).
|
|
||||||
|
The llama bot is a discord bot made for the
|
||||||
|
[Llama's Pyjamas community discord server](discord.gg/2fsar34APa).
|
||||||
|
It is written in typescript and uses the
|
||||||
|
[sapphire framework](https://sapphirejs.dev).
|
||||||
|
|
|
@ -15,4 +15,7 @@ badges:
|
||||||
- css3
|
- css3
|
||||||
---
|
---
|
||||||
|
|
||||||
Mocha Downloader is a cross-platform desktop download manager built with web technologies.
|
## Introduction
|
||||||
|
|
||||||
|
Mocha Downloader is a cross-platform desktop download manager app built with
|
||||||
|
web technologies.
|
||||||
|
|
24
packages/blog-content/markdown/projects/pompup.md
Normal file
24
packages/blog-content/markdown/projects/pompup.md
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
---
|
||||||
|
name: Pompup
|
||||||
|
overview: My Arch Linux desktop setup
|
||||||
|
image: /img/portfolio/pompup.avif
|
||||||
|
repo: https://github.com/developomp/pompup
|
||||||
|
badges:
|
||||||
|
- githubactions
|
||||||
|
- githubpages
|
||||||
|
- gnubash
|
||||||
|
- go
|
||||||
|
- linux
|
||||||
|
- python
|
||||||
|
---
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Pompup is my third attempt at making my personal post-install utility for
|
||||||
|
[Arch Linux](https://archlinux.org).
|
||||||
|
|
||||||
|
Here are the past versions:
|
||||||
|
|
||||||
|
1. https://github.com/developomp/setup-script-sh - Third version written in Shell Script
|
||||||
|
2. https://github.com/developomp/setup-script-py - Second version written in Python
|
||||||
|
3. https://github.com/developomp/pompup - First version written in Shell Go
|
|
@ -17,26 +17,31 @@ badges:
|
||||||
- tauri
|
- tauri
|
||||||
---
|
---
|
||||||
|
|
||||||
## Intro
|
## Introduction
|
||||||
|
|
||||||
War Brokers Mods (WBM) is a mod for the game [War Brokers](https://warbrokers.io).
|
The War Brokers Mods (WBM) is a mod for the game
|
||||||
|
[War Brokers](https://warbrokers.io) consisting of 3 sub-projects:
|
||||||
|
|
||||||
## The mod
|
- [mod][mod] - Built with C#, it uses the [BepInEx][bepinex] framework to patch
|
||||||
|
different aspects of the game
|
||||||
Built with C#, it uses [BepInEx](https://github.com/BepInEx/BepInEx) framework to patch different aspects of the game.
|
- [OBS overlay][overlays] - Customizable overlays for [OBS studio](https://github.com/obsproject/obs-studio)
|
||||||
|
|
||||||
## OBS Overlay
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img alt="Overlay image" src="/img/portfolio/wbm-overlays.avif" />
|
<img alt="Overlay image" src="/img/portfolio/wbm-overlays.avif" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
Overlays for [OBS studio](https://github.com/obsproject/obs-studio). Built with standard web technologies (html, css, js).
|
- [installer][installer] - Utility for installing updating the mod. Built with [tauri][tauri],
|
||||||
|
[rust][rust], [svelte][svelte], and [tailwind css][tailwindcss].
|
||||||
## Installer
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img alt="Installer image" src="/img/portfolio/wbm-installer.avif" />
|
<img alt="Installer image" src="/img/portfolio/wbm-installer.avif" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
A simple cross-platform installer and update manager. Built with [tauri](https://github.com/tauri-apps/tauri), [rust](https://github.com/rust-lang/rust), [svelte](https://github.com/sveltejs/svelte), and [tailwind css](https://github.com/tailwindlabs/tailwindcss).
|
[mod]: https://github.com/War-Brokers-Mods/WBM
|
||||||
|
[overlays]: https://github.com/War-Brokers-Mods/WBM-Overlays
|
||||||
|
[installer]: https://github.com/War-Brokers-Mods/WBM-installer
|
||||||
|
[bepinex]: https://github.com/BepInEx/BepInEx
|
||||||
|
[tauri]: https://github.com/tauri-apps/tauri
|
||||||
|
[rust]: https://github.com/rust-lang/rust
|
||||||
|
[svelte]: https://github.com/sveltejs/svelte
|
||||||
|
[tailwindcss]: https://github.com/tailwindlabs/tailwindcss
|
||||||
|
|
|
@ -16,4 +16,15 @@ badges:
|
||||||
- html5
|
- html5
|
||||||
---
|
---
|
||||||
|
|
||||||
<!-- add yew to badges -->
|
<!-- add yew to badges https://github.com/simple-icons/simple-icons/issues/7122 -->
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
wbtimeline is an experimental project made as an excuse to use [deno][deno]
|
||||||
|
and [rust][rust]. The most notable thing about this project is that the frontend
|
||||||
|
code is entirely written in the rust programming language by the power of the
|
||||||
|
[yew][yew] framework.
|
||||||
|
|
||||||
|
[deno]: https://github.com/denoland/deno
|
||||||
|
[rust]: https://github.com/rust-lang/rust
|
||||||
|
[yew]: https://github.com/yewstack/yew
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue