{"id":28818422,"url":"https://github.com/michaelsstuff/md_to_bbcode","last_synced_at":"2026-01-20T16:27:55.539Z","repository":{"id":299629916,"uuid":"1003626086","full_name":"michaelsstuff/md_to_bbcode","owner":"michaelsstuff","description":"Python tool that converts Markdown formatted text to BBCode format","archived":false,"fork":false,"pushed_at":"2025-06-17T14:30:25.000Z","size":118,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-08T22:52:08.254Z","etag":null,"topics":["bbcode","markdown"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michaelsstuff.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2025-06-17T12:31:11.000Z","updated_at":"2025-06-17T14:30:41.000Z","dependencies_parsed_at":"2025-06-17T14:35:21.805Z","dependency_job_id":null,"html_url":"https://github.com/michaelsstuff/md_to_bbcode","commit_stats":null,"previous_names":["michaelsstuff/md_to_bbcode"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/michaelsstuff/md_to_bbcode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsstuff%2Fmd_to_bbcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsstuff%2Fmd_to_bbcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsstuff%2Fmd_to_bbcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsstuff%2Fmd_to_bbcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelsstuff","download_url":"https://codeload.github.com/michaelsstuff/md_to_bbcode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelsstuff%2Fmd_to_bbcode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bbcode","markdown"],"created_at":"2025-06-18T19:05:15.509Z","updated_at":"2026-01-20T16:27:55.524Z","avatar_url":"https://github.com/michaelsstuff.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Markdown to BBCode Converter\n\n[![CI/CD Pipeline](https://github.com/michaelsstuff/md_to_bbcode/actions/workflows/ci-cd.yml/badge.svg)](https://github.com/michaelsstuff/md_to_bbcode/actions/workflows/ci-cd.yml)\n[![semantic-release: conventionalcommits](https://img.shields.io/badge/semantic--release-conventionalcommits-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)\n[![Docker Hub](https://img.shields.io/docker/pulls/michaelsstuff/md-to-bbcode)](https://hub.docker.com/r/michaelsstuff/md-to-bbcode)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\nA robust Python tool that converts Markdown formatted text to BBCode format. Perfect for migrating content from Markdown-based systems to forums, bulletin boards, or any platform that uses BBCode markup.\n\n## Features\n\n- **Comprehensive Format Support**: Headers, bold, italic, strikethrough, code blocks, links, images, lists, quotes, and horizontal rules\n- **Flexible I/O**: Command-line interface with stdin/stdout or file-based input/output\n- **Dockerized**: Containerized for consistent deployment and easy integration\n- **Production Ready**: Comprehensive testing, automated releases, and semantic versioning\n- **Open Source**: GPL v3 licensed for free use and modification\n\n## Quick Start\n\n### Using Docker (Recommended)\n\n**Pull from Docker Hub:**\n```bash\ndocker pull michaelsstuff/md-to-bbcode:latest\n```\n\n**Convert a file:**\n```bash\ndocker run --rm -v $(pwd):/data michaelsstuff/md-to-bbcode -f /data/input.md -o /data/output.bbcode\n```\n\n**Convert from stdin:**\n```bash\necho \"# Hello **World**\" | docker run --rm -i michaelsstuff/md-to-bbcode\n```\n\n### Using Python Locally\n\n1. **Clone and set up:**\n```bash\ngit clone https://github.com/michaelsstuff/md_to_bbcode.git\ncd md_to_bbcode\npython3 -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\npip install -r requirements.txt\n```\n\n2. **Run the converter:**\n```bash\npython md_to_bbcode.py -f input.md -o output.bbcode\n```\n\n## Supported Conversions\n\n| Markdown | BBCode | Notes |\n|----------|--------|-------|\n| `# Header 1` | `[size=6][b]Header 1[/b][/size]` | H1-H6 supported |\n| `## Header 2` | `[size=5][b]Header 2[/b][/size]` | Progressive sizing |\n| `**bold**` / `__bold__` | `[b]bold[/b]` | Both syntaxes |\n| `*italic*` / `_italic_` | `[i]italic[/i]` | Both syntaxes |\n| `***bold italic***` | `[b][i]bold italic[/i][/b]` | Nested formatting |\n| `~~strikethrough~~` | `[s]strikethrough[/s]` | Complete support |\n| `` `inline code` `` | `[code]inline code[/code]` | Inline code |\n| `[link text](url)` | `[url=url]link text[/url]` | Full link support |\n| `![alt text](image.jpg)` | `[img]image.jpg[/img]` | Image embedding |\n| `- list item` / `* item` | `[*] list item` | Unordered lists |\n| `1. ordered item` | `[list=1][*] ordered item[/list]` | Ordered lists |\n| `\u003e blockquote` | `[quote]blockquote[/quote]` | Multi-line quotes |\n| `---` / `***` | `[hr]` | Horizontal rules |\n\n## Usage Options\n\n### Command Line Arguments\n- `-f, --file`: Input Markdown file path\n- `-o, --output`: Output BBCode file path (default: stdout)\n- `-v, --version`: Show version information\n- `-h, --help`: Show help message and exit\n\n### Input/Output Methods\n- **File to File**: `python md_to_bbcode.py -f input.md -o output.bbcode`\n- **File to Stdout**: `python md_to_bbcode.py -f input.md`\n- **Stdin to File**: `cat input.md | python md_to_bbcode.py -o output.bbcode`\n- **Stdin to Stdout**: `echo \"# Title\" | python md_to_bbcode.py`\n\n## Docker Usage Examples\n\n### Basic Conversion\n```bash\n# Convert sample.md to BBCode\ndocker run --rm -v $(pwd):/data michaelsstuff/md-to-bbcode -f /data/sample.md\n```\n\n### Batch Processing\n```bash\n# Convert multiple files\nfor file in *.md; do\n    docker run --rm -v $(pwd):/data michaelsstuff/md-to-bbcode -f \"/data/$file\" -o \"/data/${file%.md}.bbcode\"\ndone\n```\n\n### Pipeline Integration\n```bash\n# Use in a pipeline\ncat input.md | docker run --rm -i michaelsstuff/md-to-bbcode | grep -E '^\\[.*\\]' \u003e filtered_output.bbcode\n```\n\n## Example Conversion\n\n### Input (Markdown)\n```markdown\n# Sample Document\n\nThis is a **sample document** with *italic text* and `inline code`.\n\n## Code Block\n```python\ndef hello():\n    print(\"Hello, World!\")\n```\n\n### Links and Lists\n- [Google](https://google.com)\n- [GitHub](https://github.com)\n\n1. First item\n2. Second item\n\n\u003e This is a blockquote\n\u003e with multiple lines\n\n---\n```\n\n### Output (BBCode)\n```bbcode\n[size=6][b]Sample Document[/b][/size]\n\nThis is a [b]sample document[/b] with [i]italic text[/i] and [code]inline code[/code].\n\n[size=5][b]Code Block[/b][/size]\n[code]def hello():\n    print(\"Hello, World!\")[/code]\n\n[size=4][b]Links and Lists[/b][/size]\n[*] [url=https://google.com]Google[/url]\n[*] [url=https://github.com]GitHub[/url]\n\n[list=1][*] First item\n[*] Second item[/list]\n\n[quote]This is a blockquote\nwith multiple lines[/quote]\n\n[hr]\n```\n\n## Installation \u0026 Dependencies\n\n### Python Requirements\n- **Python 3.10+**: Core runtime\n- **click**: Command-line interface framework\n- **markdown**: Markdown parsing (used for validation)\n\n### Docker Image\nThe Docker image is built on Alpine Linux for minimal size and includes:\n- Python 3.13 runtime\n- All required dependencies\n- Non-root user execution\n- Optimized for production use\n\n## License\n\nThis project is licensed under the **GNU General Public License v3.0 (GPL-3.0)**.\n\nYou are free to:\n- Use the software for any purpose\n- Study and modify the source code\n- Distribute copies of the software\n- Distribute modified versions\n\nUnder the condition that any distributed work is also licensed under GPL-3.0.\n\nSee the [LICENSE](LICENSE) file for full details.\n\n## Contributing\n\nContributions are welcome! This project uses automated versioning and semantic releases.\n\n**Quick contribution steps:**\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature/amazing-feature`\n3. Make your changes and test them\n4. Use conventional commit messages (see [CONTRIBUTING.md](CONTRIBUTING.md))\n5. Push to your branch and create a Pull Request\n\nFor detailed development setup, testing procedures, and contribution guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Support\n\nFor issues, questions, or contributions:\n- **Issues**: [GitHub Issues](https://github.com/michaelsstuff/md_to_bbcode/issues)\n- **Documentation**: Check the [sample.md](sample.md) file for supported syntax examples\n- **Testing**: Review the [test suite](test_converter.py) for comprehensive usage examples\n\n---\n\n**Made with ❤️ for the open source community**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelsstuff%2Fmd_to_bbcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelsstuff%2Fmd_to_bbcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelsstuff%2Fmd_to_bbcode/lists"}