Skip to content
sparktsangPublic

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

🛠️ Personal Utility Toolkit

A lightweight, single-page web application hosted on GitHub Pages. This toolkit replaces the need to open heavy IDEs (like Spyder/VS Code) or risk privacy by using ad-ridden online converters. It performs text processing tasks instantly within the browser.

👉 Click here to use the App


🧰 Current Tools

1. URL to Readable Format

Decodes messy, percent-encoded URLs into clean, human-readable Unicode strings.

  • Input: https://example.com/%E4%BD%A0%E5%A5%BD
  • Output: https://example.com/你好
  • Use Case: Perfect for cleaning up links before sharing or documenting.

2. Smart Markdown TOC Generator

Automatically generates a Table of Contents for Markdown files based on ### headers.

  • Smart Filtering: It intelligently detects if a "Contents" section already exists and ignores it, preventing recursive duplication.
  • Auto-Formatting: Automatically prepends ### Contents with correct line spacing.
  • Logic: Handles Chinese/Unicode characters and complex symbols perfectly when generating anchor links (slugs).

3. AI Studio JSON Converter

A specialized tool for extracting conversation history from Google AI Studio export files.

  • The Problem: AI Studio exports are complex JSON files mixed with metadata. They are unreadable to humans, and surprisingly, no existing online tool handles this conversion simply.
  • The Solution: Just drop the raw JSON file (even without a file extension). The app instantly parses the structure and outputs a clean, readable Markdown conversation log.
  • Logic: Implements the exact extraction logic used in Python data pipelines but runs instantly in your browser.

4. Relationship Mapper (Mermaid Generator)

An intuitive, form-based builder for creating complex Mermaid.js diagrams without writing a single line of code.

  • The Problem: Creating relationship graphs (like corporate structures or family trees) in Mermaid requires writing repetitive, error-prone syntax. Managing node IDs and grouping entities manually is tedious.
  • The Solution: A visual interface where you define Entities (People, Companies, Events) and then simply link them together using dropdown menus. It automatically handles unique IDs, grouping (Subgraphs), and styling logic.
  • Features:
    • Smart ID System: Auto-generates unique IDs (N1, N2...) or accepts custom ones.
    • Visual Styling: Easily assign shapes (Round, Square, Diamond) and color tags (Red, Green, Purple) to categorize entities (e.g., highlighting "Winners" or "Suspects").
    • Instant Export: Generates clean, ready-to-paste Mermaid code for documentation or visualization tools.

5. BibTeX Cleaner (Zotero to Overleaf)

Strips bloated bibliography exports down to the "necessary and sufficient" standards required for LaTeX.

  • The Problem: Exporting citations from Zotero or Google Scholar often includes massive, redundant fields like multi-paragraph abstracts, local file paths, urldate, and Google-Books-ID notes. This clutters your .bib file and can even cause Overleaf compilation errors.
  • The Solution: Paste your messy BibTeX code. The tool uses a strict whitelist to extract only the essential academic fields (author, title, journal, year, doi, volume, etc.).
  • Smart URL Logic: It automatically removes redundant url fields if a formal doi is already present, ensuring your reference list renders cleanly without duplicate links.

6. Markdown Line Break Fixer

Converts standard plain text notes into strictly formatted Markdown by handling "hard breaks".

  • The Problem: Standard Markdown (used in Jekyll, GitHub Pages, etc.) ignores single line breaks. If you paste regular text notes, all single line breaks collapse into a massive, unreadable paragraph.
  • The Solution: This tool scans your text and automatically cleans up trailing whitespaces, appending exactly two spaces ( ) to the end of every non-empty line. This forces Markdown renderers to respect your original single line breaks without altering paragraph spacing.

7. CJK Spacing Formatter (+ MD Fixer)

Automatically applies standard modern typography spacing to mixed Chinese/English text.

  • The Problem: When taking notes, Chinese characters and English words or numbers are often crammed together without spaces (e.g., 哈佛大學Donald Rubin於1974年). Modern typography standards dictate that a half-width space should separate them for readability. Doing this manually for 80+ notes is impossible.
  • The Solution: This tool automatically injects a single space between Chinese characters and English letters/numbers.
  • Smart Punctuation Logic: It strictly ignores Chinese punctuation marks (e.g., 。, (), so references like (Mian and Sufi, 2012) remain untouched. It also properly spaces English parentheses attached to English words like (this).
  • 2-in-1 Tool: As a bonus, it automatically runs the Markdown Line Break Fixer (Tool 6) on the final output, making the text 100% ready for Jekyll/GitHub Pages rendering in a single click.

🚀 Why Build This? (The Philosophy)

There are thousands of "free online tools" out there, so why build another one?

1. 🔒 100% Privacy & Security

Most online converters process data on their servers or are loaded with tracking scripts. This app runs entirely in your browser (Client-Side JavaScript). No data is ever sent to a server. It is safe to use with sensitive work documents or internal links.

2. ⚡ Zero Latency & Zero Setup

  • Faster than Python: No need to launch Anaconda, Spyder, or run a .py script. The browser's V8 engine parses text instantly.
  • Access Anywhere: Works on mobile, tablets, or any computer without a development environment.

3. 🎯 Tailor-Made Logic

Generic tools (like VS Code plugins) use generic logic. This app is customized for a specific workflow. For example, the TOC generator specifically filters out old directories and formats spacing exactly how I want it. It adapts to the user, not the other way around.


🤝 Fork & Extend

This repository is designed to be a template. The architecture is intentionally simple (single index.html with vanilla JS/CSS).

I highly encourage you to fork this repository and make it your own!

How to add your own tool:

  1. Fork this repo.
  2. Edit index.html.
  3. Add a new <button> in the sidebar.
  4. Copy/Paste a .tool-section div and customize the inputs.
  5. Add your JavaScript function at the bottom.
  6. Enable GitHub Pages in your settings.

Build the tools that solve your specific problems. Happy coding!

Contributors

Languages