{"id":23468358,"url":"https://github.com/dikkadev/tag","last_synced_at":"2026-07-03T10:02:59.696Z","repository":{"id":263734249,"uuid":"878729185","full_name":"dikkadev/tag","owner":"dikkadev","description":"A fast, lightweight Windows application for generating XML tags with attributes through a simple text interface.","archived":false,"fork":false,"pushed_at":"2025-06-03T20:45:35.000Z","size":1163,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-21T23:37:28.157Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dikkadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-26T00:45:32.000Z","updated_at":"2025-06-03T20:41:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"0dada205-e270-4565-b9ad-67e677b0bb18","html_url":"https://github.com/dikkadev/tag","commit_stats":null,"previous_names":["dikkadev/tag"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/dikkadev/tag","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dikkadev%2Ftag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dikkadev%2Ftag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dikkadev%2Ftag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dikkadev%2Ftag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dikkadev","download_url":"https://codeload.github.com/dikkadev/tag/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dikkadev%2Ftag/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261211683,"owners_count":23125544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-24T13:52:50.682Z","updated_at":"2026-07-03T10:02:59.617Z","avatar_url":"https://github.com/dikkadev.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tag - XML Generator UI\r\n\r\nA fast, lightweight Windows application for generating XML tags with attributes through a simple text interface.\r\n\r\n![Tag - XML Generator UI screenshot](.github/screenshot.png)\n\n## Features\n\n- **Real-time XML generation** - See XML output update instantly as you type\n- **Intuitive syntax** - Use tabs to separate tag names, attributes, and values\n- **Smart attribute handling** - Automatically distinguishes boolean attributes from key-value pairs\n- **Two output modes**:\n  - **Type mode** (Enter) - Types XML directly into the active application with reliable Shift+Enter line breaks\n  - **Clipboard mode** (Ctrl+Enter or Shift+Enter) - Copies XML to clipboard\n- **Undo/Redo support** - Undo changes with Ctrl+Z and redo with Ctrl+Y\n- **Clipboard paste** - Paste clipboard content into a value (after first tab) using Ctrl+V\n- **XML mode toggle** - Switch between regular tags and self-closing tags (e.g., `\u003cbr /\u003e`) with Ctrl+S\n- **Special character escaping** - Replaces unsupported characters with `~` and escapes `\u0026`, `\u003c`, `\u003e`, and `\"` in attribute values\n- **Text wrapping** - Automatically wraps long lines in the display view for readability\n- **Multi-monitor support** - Opens on the monitor where your mouse cursor is located\n- **Clean, modern UI** - Built with the Sokol graphics library\n\r\n## Quick Start\r\n\r\n1. Run `tag.exe`\n2. Type your tag structure using tabs to separate elements\n3. (Optional) Use Ctrl+V to paste clipboard content into an attribute value, Ctrl+Z/Ctrl+Y to undo/redo, or Ctrl+S to toggle between regular and self-closing tag modes\n4. Press Enter to type the XML into the active window, or Ctrl+Enter/Shift+Enter to copy XML to the clipboard and quit\n\r\n## Examples\r\n\r\n### Simple tag\r\n**Input:**\r\n```\r\ndiv\r\n```\r\n**Output:**\r\n```xml\r\n\u003cdiv\u003e\r\n\r\n\u003c/div\u003e\r\n```\r\n\r\n### Tag with attributes\r\n**Input:**\r\n```\r\nimg\u003ctab\u003esrc\u003ctab\u003ephoto.jpg\u003ctab\u003ealt\u003ctab\u003eA photo\r\n```\r\n**Output:**\r\n```xml\r\n\u003cimg src=\"photo.jpg\" alt=\"A photo\"\u003e\r\n\r\n\u003c/img\u003e\r\n```\r\n\r\n### Mixed boolean and key-value attributes\r\n**Input:**\r\n```\r\nbutton\u003ctab\u003edisabled\u003ctab\u003e\u003ctab\u003etype\u003ctab\u003esubmit\r\n```\r\n**Output:**\r\n```xml\r\n\u003cbutton disabled type=\"submit\"\u003e\r\n\r\n\u003c/button\u003e\r\n```\r\n\r\n## Controls\r\n\r\n- **Type characters** - Build your tag structure\n- **TAB** - Insert tab character (separates tag name, attributes, values)\n- **BACKSPACE** - Delete last character\n- **ENTER** - Close the app and type XML with reliable Shift+Enter line breaks\n- **CTRL+ENTER** or **SHIFT+ENTER** - Copy XML to clipboard and quit\n- **CTRL+V** - Paste clipboard content into a value (after first tab)\n- **CTRL+Z** - Undo last action\n- **CTRL+Y** - Redo last undone action\n- **CTRL+S** - Toggle between regular and self-closing XML modes\n- **ESC** - Cancel and quit immediately\n\r\n## Building\r\n\r\n### Prerequisites\r\n- [Zig](https://ziglang.org/) (latest)\r\n\r\n### Build Commands\r\n```bash\r\n# Debug build (shows console logs)\r\nzig build\r\n\r\n# Release build (no console window)\r\nzig build -Doptimize=ReleaseFast\r\n\r\n# Run tests\r\nzig build test\r\n\r\n# Run directly\r\nzig build run\r\n```\r\n\r\n## Acknowledgments\r\n\r\n**Special thanks to [SUI (Simple User Input)](https://github.com/Finxx1/SUI)** - This project relies on the excellent SUI library by Finxx1 for reliable keyboard input simulation on Windows. SUI provides the robust foundation that makes the typing functionality work seamlessly across different applications.\r\n\r\n## Technical Details\r\n\r\n- **Language**: Zig\r\n- **Graphics**: [Sokol](https://github.com/floooh/sokol) \r\n- **Input Simulation**: [SUI](https://github.com/Finxx1/SUI) by Finxx1\r\n- **Platform**: Windows (input simulation is Windows-specific)\r\n- **Architecture**: Single executable, no external dependencies\r\n\r\n## License\r\n\r\nMIT License - see [LICENSE](LICENSE) file for details. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdikkadev%2Ftag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdikkadev%2Ftag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdikkadev%2Ftag/lists"}