view mrjunejune/README.md @ 248:b8b6e726964a

[style] Use Dowa type aliases in C Co-authored-by: Copilot <[email protected]>
author MrJuneJune <me@mrjunejune.com>
date Tue, 04 Aug 2026 02:44:06 -0700
parents 70f2a3dafc1c
children 667156fcd3e3
line wrap: on
line source

# Mrjunejune

My personal website where I post my blogs / about me and resume.

## WebP assets

Raster source images live under `mrjunejune/assets/png/` and `assets/png/`.
Bazel converts them to WebP before they enter the server runfiles or release
bundle:

```bash
bazel build //mrjunejune:generated_webp_assets
bazel build //mrjunejune:mrjunejune_server_bundle
```

The deployed site contains no PNG files. Add new PNG source assets to the
corresponding list in `mrjunejune/BUILD` or `assets/BUILD`, then reference the
generated `.webp` URL from the site.

## HLS player

`/tools/hls_player` is a dependency-free JavaScript HLS player. It uses native
HLS where available and a MediaSource fallback for unencrypted VOD playlists
with fragmented MP4 segments. A VP9/Opus HLS sample is bundled at:

```text
/public/hls-sample/master.m3u8
```

The sample is generated from `mrjunejune/assets/video/sample_hls.mp4` through
the restored FFmpeg CLI wrapper:

```bash
bazel run //mrjunejune:generate_hls_sample
```

```bash
bazel test //mrjunejune/test:hls_player_test
bazel test //mrjunejune/test:theme_and_webp_test
```

## LaTeX editor

`/tools/latex_editor` sends source to the C server, which compiles it with the
offline Tectonic runtime from `//third_party/tectonic:runtime` and returns the
PDF directly to the browser. Bazel pins the static compiler, prewarms common
packages, and includes both in the server runfiles and release bundle.

The compiler child uses restricted TeX file access, Linux Landlock, a seccomp
network filter, and CPU, memory, file-size, process, and wall-clock limits.
Compilation fails closed when the Linux sandbox cannot be applied.

```bash
bazel test //mrjunejune/test:latex_renderer_test
bazel test //mrjunejune/test:latex_editor_test
```

## TODO 

- Add caching layer
- Update talk to be part
- Update test to automatically tests all paths for blogs.