Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Text Codec — Encode And Decode — Base64 · Url · Hex, in the Terminal Workbench style

Live site · Features · Run it · Keyboard · Host it yourself · Architecture

Encode and decode between plain text and Base64, URL-safe Base64, percent-encoding, or hex — live in both directions. Styled with the Terminal Workbench design system: calm graphite surfaces, restrained ANSI accents, monospace manifest labels.

No network. No dependencies. No build step. Everything runs in your browser and nothing you enter ever leaves the page. Open index.html from a USB stick and it works.

Features

  • Encode and decode between plain text and Base64, URL-safe Base64, URL/percent-encoding, and hex.
  • An example for each encoding type, one click away.
  • Two-way — type in either box.
  • Handles Unicode correctly.
  • Both themes, six accents — dark by default, light by preference or toggle; inputs, scrollbars and focus rings all follow the theme.
  • The ghost — the family site pet, ported from worldclock. It drifts, naps, and flees the cursor. Click it to recolor it.
  • Private by construction — no network requests, no analytics, no external fonts. Everything runs in your browser; nothing you enter ever leaves the page.

Run it

Open index.html. That's it — it works from file://, a USB stick, or any static file server.

For a local server:

python -m http.server 8000

then visit http://localhost:8000.

Keyboard

Press ? in the app to bring up this list at any time.

Key Action
/ focus the first input
s settings
t toggle theme
? this help
esc close / unfocus

Host it yourself

Everything needed to host is in this repository — static files only, no build.

GitHub Pages: fork or push this repo, then Settings → Pages → Deploy from branch → main / / (root). The included .nojekyll is required (it stops Jekyll from mangling the files).

GitLab Pages: the included .gitlab-ci.yml publishes the site on every push to the default branch — no configuration. Works on self-hosted / airgapped GitLab too; the job only copies files.

Anything else: copy index.html, css/, and js/ to any web root.

Offline / airgapped: grab the zip from the latest release — it contains everything above; no network is needed to host or run it.

Architecture

File Responsibility
js/tool.js tool logic and UI
js/settings.js preference store (sole localStorage owner), settings panel, theme/accent, keyboard shortcuts, help
js/content.js click-to-copy buttons for code examples
js/pet.js the ghost

Plain scripts, one shared TW namespace, two window events (tw:prefs, tw:pet) — no framework, no modules, view-source friendly.

Credits

License

MIT

About

Encode and decode between plain text and Base64, URL-safe Base64, percent-encoding, or hex — live in both directions.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages