{"id":34976466,"url":"https://github.com/lucianofedericopereira/codecraft","last_synced_at":"2026-05-19T13:38:51.276Z","repository":{"id":334797772,"uuid":"1123776554","full_name":"lucianofedericopereira/codecraft","owner":"lucianofedericopereira","description":"Modern, lightweight static site generator powered by Python and Jinja2","archived":false,"fork":false,"pushed_at":"2026-03-01T16:11:22.000Z","size":343,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-01T17:54:40.112Z","etag":null,"topics":["codepen","jinja2","lunr","markdown","mermaid-diagrams","python","ssg","static-site-generator","translation"],"latest_commit_sha":null,"homepage":"https://lucianofedericopereira.github.io/codecraft/","language":"Python","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/lucianofedericopereira.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-27T15:45:23.000Z","updated_at":"2026-03-01T16:11:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lucianofedericopereira/codecraft","commit_stats":null,"previous_names":["lucianofedericopereira/codecraft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lucianofedericopereira/codecraft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucianofedericopereira%2Fcodecraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucianofedericopereira%2Fcodecraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucianofedericopereira%2Fcodecraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucianofedericopereira%2Fcodecraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lucianofedericopereira","download_url":"https://codeload.github.com/lucianofedericopereira/codecraft/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lucianofedericopereira%2Fcodecraft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33218994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T07:54:09.561Z","status":"ssl_error","status_checked_at":"2026-05-19T07:54:08.508Z","response_time":58,"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":["codepen","jinja2","lunr","markdown","mermaid-diagrams","python","ssg","static-site-generator","translation"],"created_at":"2025-12-27T00:14:10.429Z","updated_at":"2026-05-19T13:38:51.259Z","avatar_url":"https://github.com/lucianofedericopereira.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.svg\" alt=\"CodeCraft\" width=\"400\"\u003e\n\u003c/div\u003e\n\n\u003e A modern, lightweight static site generator built with Python and Jinja2 — no Jekyll, no Ruby, just Python simplicity.\n\n[![Build and Deploy](https://github.com/lucianofedericopereira/codecraft/workflows/Build%20and%20Deploy/badge.svg)](https://github.com/lucianofedericopereira/codecraft/actions)\n[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)\n[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)\n\n**CodeCraft** is a Python-powered static site generator designed for developers who want full control over their blog without the complexity of Ruby-based tools. Built with modern Python practices, type hints, and a clean CLI interface.\n\n---\n\n## ✨ Features\n\n### 🚀 **Core Features**\n\n- **Pure Python** — No Ruby, no Jekyll, no complex dependencies\n- **Modern CLI** — Unified `codecraft.py` command for all operations\n- **Fast Builds** — Efficient markdown processing with Pygments syntax highlighting\n- **Live Preview** — Built-in development server with auto-reload\n- **GitHub Actions** — Automatic deployment to GitHub Pages\n- **RSS Feed** — Auto-generated feed for subscribers\n- **Client-side Search** — Powered by Lunr.js with pre-built index\n- **Multi-language Support** — Date formatting for English, Spanish, and Italian\n\n### 🎨 **Content Features**\n\n- **Markdown + Frontmatter** — Write in clean markdown with YAML metadata\n- **Syntax Highlighting** — Beautiful code blocks via Pygments\n- **Table of Contents** — Auto-generated TOC for long posts\n- **Mermaid Diagrams** — Embed flowcharts, sequence diagrams, and more\n- **CodePen Embeds** — Integrate live CodePen examples\n- **Interactive Examples** — Inline code viewer with tabs (HTML/CSS/JS) and live preview\n- **Custom Fonts** — Configure multiple fonts via YAML\n- **Comments** — Integrated Utterances (GitHub-based comments)\n\n### 🛠️ **Developer Experience**\n\n- **Type Hints** — Full type annotations throughout codebase\n- **Comprehensive Docs** — Docstrings on every function and class\n- **Clean Architecture** — Organized constants, utilities, and processing functions\n- **Extensible** — Easy to add custom filters, templates, and processors\n- **Automated Testing** — Optional linting with Ruff in CI/CD\n- **Dependabot** — Automatic dependency updates with PR grouping\n\n---\n\n## 📁 Project Structure\n\n```\ncodecraft/\n├── codecraft.py                    # Unified CLI tool (build, serve, watch, new)\n├── publish.py                 # Core site builder class\n├── requirements.txt           # Python dependencies\n│\n├── content/                   # Markdown blog posts\n│   ├── code/                  # Programming \u0026 tech posts\n│   ├── design/                # Design \u0026 UX posts\n│   └── projects/              # Project showcases\n│\n├── themes/                    # Theme configuration\n│   ├── config.yaml            # Site configuration\n│   ├── templates/             # Jinja2 templates\n│   │   ├── codeCraft.html     # Main layout\n│   │   ├── posts.html         # Post listing\n│   │   ├── category.html      # Category pages\n│   │   ├── archive.html       # Archive page\n│   │   ├── feed.xml           # RSS template\n│   │   └── search.json        # Search index template\n│   ├── sections/              # Special pages (home, archive, etc.)\n│   └── assets/                # Static files (CSS, JS, fonts, images)\n│\n├── examples/                  # Interactive code examples\n│   ├── 1.html                 # Example files\n│   └── README.md              # Examples documentation\n│\n├── build/                     # Generated static site (gitignored)\n│\n└── .github/\n    ├── workflows/\n    │   └── publish.yml        # CI/CD workflow\n    └── dependabot.yml         # Dependency management\n```\n\n---\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- **Python 3.12+** (3.11+ also supported)\n- **pip** package manager\n- **Git** (for deployment)\n\n### Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/codecraft.git\ncd codecraft\n\n# Install dependencies\npip install -r requirements.txt\n```\n\n### Create Your First Post\n\n```bash\n# Using the CLI (recommended)\npython codecraft.py new -c code -t \"My First Post\"\n\n# Or create manually\ncat \u003e content/code/hello-world.md \u003c\u003c 'EOF'\n---\ntitle: \"Hello World\"\ndate: 2025-12-24\ncomments: true\ntoc: true\n---\n\n## Welcome to CodeCraft!\n\nThis is my first post using CodeCraft.\nEOF\n```\n\n### Build and Preview\n\n```bash\n# Build the site\npython codecraft.py build\n\n# Start local server\npython codecraft.py serve\n\n# Visit http://localhost:8000\n```\n\n### Deploy to GitHub Pages\n\n```bash\ngit add .\ngit commit -m \"Add new post\"\ngit push origin main\n\n# GitHub Actions automatically builds and deploys! ✨\n```\n\n---\n\n## 📝 Writing Posts\n\n### Frontmatter Options\n\n```yaml\n---\ntitle: \"Your Post Title\"           # Required\ndate: 2025-12-24                   # Required (YYYY-MM-DD)\ncomments: true                     # Enable GitHub-based comments\ntoc: true                          # Auto-generate table of contents\nmermaid: false                     # Enable Mermaid diagram support\ncodepen: false                     # Enable CodePen embeds\nbanner: false                      # Show banner on category pages\nsidebar: true                      # Show sidebar (default: true)\n---\n```\n\n### Markdown Features\n\n#### Code Blocks with Syntax Highlighting\n\n```markdown\n```python\ndef hello_world():\n    print(\"Hello, CodeCraft!\")\n```\n```\n\n#### Mermaid Diagrams\n\n```markdown\n```mermaid\ngraph LR\n    A[Start] --\u003e B{Decision}\n    B --\u003e|Yes| C[Action]\n    B --\u003e|No| D[End]\n```\n```\n\n#### Interactive Examples\n\n```markdown\nCreate an HTML file in `examples/1.html`:\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003chead\u003e\n  \u003cstyle id=\"example-css\"\u003e\n    button { background: linear-gradient(45deg, #667eea, #764ba2); }\n  \u003c/style\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n  \u003cbutton\u003eClick Me!\u003c/button\u003e\n  \u003cscript id=\"example-js\"\u003e\n    console.log('Interactive example!');\n  \u003c/script\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\nThen embed it in your post:\n\n```markdown\n[example:1]\n```\n\nThis creates a split-pane viewer with tabs (HTML/CSS/JS) and live preview!\n\n---\n\n## ⚙️ Configuration\n\nEdit `themes/config.yaml` to customize your site:\n\n```yaml\n# Site metadata\nmeta:\n  title: design﹢code\n  tagline: CodeCraft Chronicles\n  author: Your Name\n  repository: https://github.com/yourusername\n  license: GPLv2\n  locale: en\n\n# Deployment settings\nbase:\n  url: yourusername.github.io\n  folder: repository-name  # Leave empty for user/org pages\n\n# Social links\nlinks:\n  LinkedIn: https://linkedin.com/in/yourprofile\n  GitHub: https://github.com/yourusername\n\n# Post categories\nsections:\n  - design\n  - code\n  - projects\n\n# Custom fonts\nassets:\n  fonts:\n    - type: title\n      name: Mediaan\n      weight: Regular\n      extension: woff2\n    - type: body\n      name: VisueltPro\n      weight: Regular\n      extension: woff2\n\n# Feature defaults by path\nrules:\n  - scope:\n      path: content/code\n    features:\n      toc: true\n      comments: false\n\n# External scripts\nscripts:\n  mermaid: 11.4.1\n  lunr: 2.3.9\n\n# Comments (Utterances)\ncomments:\n  theme: github-light\n  repo: yourusername/comments\n  issue: title\n```\n\n---\n\n## 🔧 CLI Reference\n\nThe unified `codecraft.py` CLI provides all tools you need:\n\n### Build Commands\n\n```bash\n# Build the entire site\npython codecraft.py build\n\n# Clean build artifacts\npython codecraft.py clean\n```\n\n### Development Server\n\n```bash\n# Start server on default port (8000)\npython codecraft.py serve\n\n# Use custom port\npython codecraft.py serve -p 3000\n\n# The server automatically:\n# - Removes \u003cbase\u003e tags for local development\n# - Fixes asset paths (./assets/ → /assets/)\n# - Disables console suppression scripts\n```\n\n### Auto-Rebuild\n\n```bash\n# Watch for changes and rebuild (requires pyinotify)\npython codecraft.py watch\n\n# Install pyinotify:\npip install pyinotify\n\n# Or use inotify-tools (Linux):\n# Ubuntu/Debian: sudo apt install inotify-tools\n# Fedora: sudo dnf install inotify-tools\n```\n\n### Create Posts\n\n```bash\n# Basic post creation\npython codecraft.py new -c code -t \"My Article Title\"\n\n# With custom slug\npython codecraft.py new -c design -t \"UI Tips\" -s ui-design-tips\n\n# With features enabled\npython codecraft.py new -c code -t \"Python Tutorial\" --mermaid --codepen\n\n# Open in editor after creation\npython codecraft.py new -c code -t \"My Post\" --edit\n\n# Specify custom date\npython codecraft.py new -c code -t \"Post\" -d 2025-12-25\n\n# Force overwrite existing file\npython codecraft.py new -c code -t \"Post\" -f\n```\n\n### Help\n\n```bash\n# General help\npython codecraft.py --help\n\n# Command-specific help\npython codecraft.py new --help\npython codecraft.py serve --help\n```\n\n---\n\n## 🚢 Deployment\n\n### GitHub Pages (Automatic)\n\n1. **Enable GitHub Pages**\n   - Go to **Settings** → **Pages**\n   - Under **Source**, select **GitHub Actions**\n\n2. **Push to Main**\n   ```bash\n   git add .\n   git commit -m \"Update content\"\n   git push origin main\n   ```\n\n3. **Automatic Build**\n   - GitHub Actions triggers on push\n   - Builds site with Python 3.12\n   - Runs optional linting with Ruff\n   - Deploys to GitHub Pages\n   - Live in ~2 minutes\n\n### Manual Deployment\n\n```bash\n# Build locally\npython codecraft.py build\n\n# The build/ directory contains the complete static site\n# Deploy to any static host (Netlify, Vercel, etc.)\n```\n\n### Manual GitHub Actions Trigger\n\n1. Go to **Actions** tab\n2. Select \"Build and Deploy\"\n3. Click **Run workflow**\n\n---\n\n## 🏗️ Architecture\n\n### Core Components\n\n```python\n# publish.py — SiteBuilder class\nclass SiteBuilder:\n    \"\"\"Main site builder with methods for:\n    - Loading configuration\n    - Parsing markdown with frontmatter\n    - Processing Jinja2 templates\n    - Generating RSS feed and search index\n    - Copying static assets\n    \"\"\"\n\n    def build(self) -\u003e None:\n        \"\"\"Complete build pipeline:\n        1. Clean output directory\n        2. Collect posts from content/\n        3. Collect pages from themes/sections/\n        4. Render all pages with templates\n        5. Generate feed.xml and search.json\n        6. Copy static assets\n        7. Generate CSS from template\n        \"\"\"\n```\n\n### Markdown Processing Pipeline\n\n1. **Extract Include Directives** — `{% include posts.html %}` → placeholders\n2. **Extract Example Shortcodes** — `[example:1]` → placeholders\n3. **Extract Mermaid Blocks** — Save for later restoration\n4. **Highlight Code Blocks** — Pygments syntax highlighting\n5. **Convert to HTML** — Python-Markdown with extensions\n6. **Add CSS Classes** — Inline code classes\n7. **Restore Mermaid** — Insert with proper classes\n8. **Process Includes** — Render sub-templates\n9. **Render Final Page** — Complete HTML output\n\n### Template Hierarchy\n\n```\ncodeCraft.html (main layout)\n├── posts.html (recent posts listing)\n├── category.html (category-specific posts)\n└── archive.html (all posts by year)\n```\n\n---\n\n## 🎨 Customization\n\n### Custom Templates\n\nEdit `themes/templates/codeCraft.html`:\n\n```jinja2\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"{{ site.meta.locale }}\"\u003e\n\u003chead\u003e\n  \u003ctitle\u003e{{ page.title }} - {{ site.meta.title }}\u003c/title\u003e\n  \u003c!-- Custom filters available --\u003e\n  \u003cmeta name=\"date\" content=\"{{ page.date | date_format('%Y-%m-%d') }}\"\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n  {{ page.content | safe }}\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### Available Jinja2 Filters\n\n- `date_format(format)` — Format dates with strftime\n- `month_year(lang)` — \"Jan 2024\" format\n- `date_archive(lang)` — \"Nov 17\" format\n- `date_full(lang)` — \"Nov 17, 2024\" format\n- `year` — Extract year from date\n- `strip_whitespace` — Remove all whitespace\n- `split(separator)` — Split string into list\n\n### Custom CSS\n\nEdit `themes/assets/codeCraft.css` (Jinja2 template):\n\n```css\n/* Custom fonts are injected from config.yaml */\n{% for font in fonts %}\n@font-face {\n  font-family: '{{ font.name }}';\n  src: url('{{ font.name }}.{{ font.extension }}');\n  font-weight: {{ font.weight_num }};\n}\n{% endfor %}\n\n/* Your custom styles */\nbody {\n  font-family: 'VisueltPro', sans-serif;\n}\n```\n\n### Adding New Sections\n\n1. Edit `themes/config.yaml`:\n   ```yaml\n   sections:\n     - design\n     - code\n     - projects\n     - tutorials  # New section\n   ```\n\n2. Create directory:\n   ```bash\n   mkdir content/tutorials\n   ```\n\n3. Create category page:\n   ```bash\n   cat \u003e themes/sections/tutorials.md \u003c\u003c 'EOF'\n   ---\n   title: Tutorials\n   ---\n   {% include category.html %}\n   EOF\n   ```\n\n4. Add posts:\n   ```bash\n   python codecraft.py new -c tutorials -t \"My First Tutorial\"\n   ```\n\n---\n\n## 🧪 Testing\n\n### Local Testing\n\n```bash\n# Full build test\npython codecraft.py clean\npython codecraft.py build\nls -la build/\n\n# Test specific outputs\ncat build/index.html\ncat build/feed.xml\ncat build/search.json\n\n# Preview in browser\npython codecraft.py serve\nopen http://localhost:8000\n```\n\n### Validate Generated HTML\n\n```bash\n# Install validator\nnpm install -g html-validator-cli\n\n# Validate output\nhtml-validator build/index.html\n```\n\n### Check RSS Feed\n\n```bash\n# View feed\ncat build/feed.xml\n\n# Validate feed (online)\n# https://validator.w3.org/feed/\n```\n\n---\n\n## 🐛 Troubleshooting\n\n### Build Issues\n\n**Problem:** Build fails with `ModuleNotFoundError`\n```bash\n# Solution: Reinstall dependencies\npip install --upgrade -r requirements.txt\n```\n\n**Problem:** Python version error\n```bash\n# Check version\npython --version  # Should be 3.12+\n\n# Use specific version\npython3.12 codecraft.py build\n```\n\n**Problem:** Template not found\n```bash\n# Ensure templates directory exists\nls themes/templates/\n\n# Verify template names in publish.py match files\n```\n\n### Deployment Issues\n\n**Problem:** GitHub Actions fails\n```bash\n# Check Python version in .github/workflows/publish.yml\n# Should be 3.12\n\n# Verify requirements.txt is committed\ngit ls-files requirements.txt\n\n# Check Actions logs on GitHub\n```\n\n**Problem:** Site not updating after push\n```bash\n# Check Actions status\n# GitHub → Actions tab → View workflow run\n\n# Clear browser cache\n# Wait 2-3 minutes for GitHub Pages CDN\n\n# Verify GitHub Pages settings\n# Settings → Pages → Source: GitHub Actions\n```\n\n### Development Server Issues\n\n**Problem:** Port already in use\n```bash\n# Use different port\npython codecraft.py serve -p 3001\n\n# Kill process using port 8000 (Linux/Mac)\nlsof -ti:8000 | xargs kill -9\n```\n\n**Problem:** Assets not loading locally\n```bash\n# The dev server rewrites paths automatically\n# If issues persist, check browser console\n\n# Verify asset paths in build/\nls -R build/assets/\n```\n\n---\n\n## 📊 Performance\n\n### Build Times\n\n- **Small site** (10 posts): ~0.5s\n- **Medium site** (50 posts): ~2s\n- **Large site** (200 posts): ~8s\n\n### Optimizations\n\n- Pip caching in GitHub Actions\n- Incremental builds not needed (fast enough)\n- Static file copying uses `shutil.copy2` (preserves metadata)\n- Pygments caching via Python imports\n\n---\n\n## 🔒 Security\n\n### Best Practices\n\n- ✅ Minimal permissions in GitHub Actions\n- ✅ No secret tokens in repository\n- ✅ Dependabot for automated updates\n- ✅ YAML safe loading (no arbitrary code execution)\n- ✅ Jinja2 autoescape enabled\n- ✅ No user input in templates\n\n### Content Security\n\n- Use `| safe` filter sparingly\n- Validate URLs in config\n- Review Dependabot PRs before merging\n- Monitor GitHub Actions logs\n\n---\n\n## 🤝 Contributing\n\nContributions welcome! This is a personal project, but feel free to:\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Test thoroughly\n5. Submit a pull request\n\n### Development Setup\n\n```bash\n# Clone your fork\ngit clone https://github.com/yourusername/codecraft.git\n\n# Create virtual environment\npython -m venv venv\nsource venv/bin/activate  # Windows: venv\\Scripts\\activate\n\n# Install dependencies\npip install -r requirements.txt\n\n# Install dev dependencies\npip install ruff pyinotify\n\n# Run linter\nruff check .\n\n# Test build\npython codecraft.py build\npython codecraft.py serve\n```\n\n---\n\n## 📄 License\n\nThis project is licensed under the **GNU General Public License v2.0** (GPLv2).\n\nSee [LICENSE](LICENSE) file for details.\n\n---\n\n## 🙏 Acknowledgments\n\nBuilt with these excellent tools:\n\n- **[Python](https://python.org)** — Programming language\n- **[Jinja2](https://jinja.palletsprojects.com/)** — Template engine\n- **[Python-Markdown](https://python-markdown.github.io/)** — Markdown processor\n- **[Pygments](https://pygments.org/)** — Syntax highlighting\n- **[PyYAML](https://pyyaml.org/)** — YAML parser\n- **[python-frontmatter](https://github.com/eyeseast/python-frontmatter)** — Frontmatter parser\n- **[Lunr.js](https://lunrjs.com/)** — Client-side search\n- **[Mermaid](https://mermaid.js.org/)** — Diagram rendering\n- **[Utterances](https://utteranc.es/)** — GitHub-based comments\n- **[GitHub Actions](https://github.com/features/actions)** — CI/CD\n- **[GitHub Pages](https://pages.github.com/)** — Hosting\n\nInspired by the simplicity of static site generators, but built with Python's elegance.\n\n---\n\n## 📞 Support\n\n- **Issues:** [GitHub Issues](https://github.com/lucianofedericopereira/codecraft/issues)\n- **Discussions:** [GitHub Discussions](https://github.com/lucianofedericopereira/codecraft/discussions)\n- **Author:** [Luciano Pereira](https://github.com/lucianofedericopereira)\n\n---\n\n**Made with ❤️ using Python + Jinja2**\n\n*No Jekyll, no Ruby, just Python simplicity.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucianofedericopereira%2Fcodecraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flucianofedericopereira%2Fcodecraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flucianofedericopereira%2Fcodecraft/lists"}