-
Notifications
You must be signed in to change notification settings - Fork 0
TOOLS_BUILD_GUIDE
I've created high-quality versions of these tools:
✅ clean-text.html - Remove empty lines, trim whitespace ✅ password-generator.html - Secure random password creation ✅ url-cleaner.html - Clean, normalize, and extract URLs ✅ csv-to-json.html - Convert CSV to JSON format ✅ hex-visualizer.html - Hex color code visualization
Below is a prioritized list with suggested implementations:
Uses: Turndown.js library
// Download from: https://unpkg.com/turndown/dist/turndown.js
const turndownService = new TurndownService();
const markdown = turndownService.turndown(htmlContent);Task: Take URLs and text, generate HTML links
Input:
https://example.com | Example Site
https://google.com | Search
Output:
<a href="https://example.com">Example Site</a>
<a href="https://google.com">Search</a>Task: Format/clean code (indentation, spacing)
- Detect language (auto-detect or select)
- Format with proper indentation
- Remove trailing whitespace
- Fix brace placement
Task: Extract and split URLs from text
- Regex:
/(https?:\/\/[^\s]+)/g - Split by URL, extract URLs, list them
Task: Extract H1-H6 headers from text/markdown and generate TOC
const headers = text.match(/^#{1,6}\s+.+$/gm) || [];Task: Auto-detect RSS/Atom feeds from URLs
- Look for
<link rel="alternate" type="application/rss+xml"> - Extract feed URL
- Validate RSS/Atom structure
Task: Parse and convert OPML files
- Read OPML XML structure
- Convert to/from JSON or list format
<outline type="rss" xmlUrl="...">
Task: Simple syntax highlighting editor
- Use Highlight.js for coloring
- Auto-detect language
- Copy formatted or raw
Task: Take ISBNs, look up metadata
- ISBNdb API (free tier available)
- or hardcoded popular book data
- Format: ISBN | Title | Author | Year
Task: Parse book lists, clean formatting
- Parse different formats (ISBN, Title • Author)
- Standardize to consistent format
- Remove duplicates
- Parse RSS feed URLs
- Display feed items in a list
- Show title, description, date
- Link to article
- Convert RSS feed to Markdown format
- Each item becomes a section
- Include date, author, description
- Output as Markdown
- Remove all HTML tags
- Remove formatting (bold, italic, etc.)
- Clean special characters
- Normalize whitespace
- Take image URLs
- Resize/optimize metadata
- Generate multiple formats
- Output:
for Markdown
- Parse Markdown links
[text](url) - Export as TSV:
text\turl - Or CSV format
- Bulk conversion
- Paste Markdown
- Preview as HTML
- Copy HTML or Markdown
- Toggle between formats
- Take multiple URLs
- Choose action:
- Extract domain
- Add/remove www
- Shorten URLs
- Check status (200, 404, etc.)
- Input: Multiple URLs (one per line)
- Output: List of found RSS feeds
- Format:
URL | Feed URL | Feed Title
- Simple form UI mockup
- localStorage storage
- Display entries
- Add/delete functionality
- Input: Spotify track/artist/playlist URL
- Output: Embed code
- Format:
<iframe src="..."></iframe>
- Generate StackEdit editor embed
- Link to external markdown
- Configurable options
- Generate embeddable HTML widget
- Displays latest feed items
- Customizable styling
- Single HTML snippet to copy
- XML upload
- XSLT stylesheet upload
- Transform and display result
- Syntax highlight output
- Search for movies/shows
- Display poster, rating, info
- Uses OMDB API
- Link to IMDb page
- Input: Movie/show title
- Output: IMDb ID
- Uses OMDB or scraping
- Uses markdown-it library
- Live preview
- Syntax highlighting
- Export as HTML
- Combines Jinja2 templating with Markdown
- Parse variables:
{{ var }} - Render output
- Input: URL
- Fetch page content
- Convert to Markdown
- Display or download
- Collection of small utilities
- Tabs for different tools:
- Text case converter
- Base64 encoder/decoder
- JSON formatter
- Etc.
- Major compilation of multiple tools
- Tab-based interface
- All common utilities
<!-- For markdown-it -->
<script src="https://cdn.jsdelivr.net/npm/markdown-it@13/dist/markdown-it.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/highlight.js@11/dist/highlight.min.js"></script>
<!-- For Turndown (HTML → Markdown) -->
<script src="https://unpkg.com/turndown/dist/turndown.js"></script>
<!-- For RSS parsing -->
<script src="https://cdn.jsdelivr.net/npm/rss-parser@3/dist/rss-parser.min.js"></script>
<!-- For code highlighting -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>-
Copy the template (
TOOL_TEMPLATE.html) - Replace
[TOOL NAME]and[TOOL DESCRIPTION] - Add your HTML content (inputs, outputs, buttons)
- Write the JavaScript logic (keep the theme toggle!)
- Test in browser
- Deploy
const extractHeaders = (text) => {
const headers = [];
const lines = text.split('\n');
lines.forEach((line, index) => {
const match = line.match(/^(#{1,6})\s+(.+)$/);
if (match) {
const level = match[1].length;
const text = match[2];
headers.push({ level, text, line: index });
}
});
return headers;
};const generateTOC = (headers) => {
return headers.map(h => {
const indent = ' '.repeat(h.level - 1);
const anchor = h.text.toLowerCase().replace(/\s+/g, '-');
return `${indent}- [${h.text}](#${anchor})`;
}).join('\n');
};const extractURLs = (text) => {
const urlRegex = /(https?:\/\/[^\s]+)/g;
return text.match(urlRegex) || [];
};const validateEmails = (text) => {
const emailRegex = /[^\s@]+@[^\s@]+\.[^\s@]+/g;
return text.match(emailRegex) || [];
};const parseCSV = (text, delimiter = ',') => {
const lines = text.split('\n');
const headers = lines[0].split(delimiter).map(h => h.trim());
return lines.slice(1).map(line => {
const values = line.split(delimiter).map(v => v.trim());
const obj = {};
headers.forEach((h, i) => obj[h] = values[i]);
return obj;
});
};function showStatus(message, type = 'success') {
const status = document.getElementById('status');
status.textContent = message;
status.className = `status show ${type}`;
setTimeout(() => status.classList.remove('show'), 2000);
}If you want to add API functionality:
- Endpoint:
https://www.omdbapi.com/ - Free tier: 1000 requests/day
- Get API key: https://www.omdbapi.com/apikey.aspx
- Endpoint:
https://api.isbndb.com/ - Free tier: Available
- Get key: https://isbndb.com/
- Use:
https://cdn.jsdelivr.net/npm/rss-parser@3/dist/rss-parser.min.js - No API key needed
- Parse any RSS feed
For each tool:
- Theme toggle works (light/dark)
- All buttons functional
- Copy-to-clipboard works
- Input validation
- Mobile responsive
- No console errors
- Fast (<1s operation)
- Start with Tier 1 (most important tools)
- Use code snippets provided above
- Copy TOOL_TEMPLATE.html as base
- Test in browser before deploying
- Move to Tier 2 when Tier 1 complete
Refer to your global.css for styling variables:
-
var(--bg)- background -
var(--text)- text color -
var(--accent)- accent color (#ff6600) -
var(--puny)- muted color -
var(--hover)- hover background -
var(--highlight)- highlight background
All tools should follow the same structure and use these variables!
- TOOL_TEMPLATE.html — Copy this and modify for new tools
- clean-text.html — Example: complete, working tool
- password-generator.html — Example: with validation
- url-cleaner.html — Example: with advanced features
- csv-to-json.html — Example: with options
- hex-visualizer.html — Example: with conversions
Use these as references when building new tools!
Good luck building! 🚀
links