{"id":30314301,"url":"https://github.com/ioncakephper/php-theme-gen","last_synced_at":"2026-04-07T21:31:53.735Z","repository":{"id":309097643,"uuid":"1034950555","full_name":"ioncakephper/php-theme-gen","owner":"ioncakephper","description":"Streamline WordPress theme development. This CLI converts HTML to a full WP theme (PHP files, style.css) and scaffolds new HTML templates.","archived":false,"fork":false,"pushed_at":"2025-11-18T10:52:59.000Z","size":430,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-15T17:32:34.958Z","etag":null,"topics":["automation","cli-tool","commanderjs","eslint","frontend-development","html-to-php","javascript","jest","nodejs","php-development","prettier","scaffolding","theme-development","wordpress"],"latest_commit_sha":null,"homepage":"https://ioncakephper.github.io/php-theme-gen/","language":"JavaScript","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/ioncakephper.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-08-09T10:31:54.000Z","updated_at":"2025-08-09T21:40:52.000Z","dependencies_parsed_at":"2025-08-09T21:26:00.115Z","dependency_job_id":null,"html_url":"https://github.com/ioncakephper/php-theme-gen","commit_stats":null,"previous_names":["ioncakephper/php-theme-gen"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/ioncakephper/php-theme-gen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioncakephper%2Fphp-theme-gen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioncakephper%2Fphp-theme-gen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioncakephper%2Fphp-theme-gen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioncakephper%2Fphp-theme-gen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ioncakephper","download_url":"https://codeload.github.com/ioncakephper/php-theme-gen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ioncakephper%2Fphp-theme-gen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31530641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["automation","cli-tool","commanderjs","eslint","frontend-development","html-to-php","javascript","jest","nodejs","php-development","prettier","scaffolding","theme-development","wordpress"],"created_at":"2025-08-17T19:00:38.325Z","updated_at":"2026-04-07T21:31:53.725Z","avatar_url":"https://github.com/ioncakephper.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WordPress Theme PHP Files Generator\n\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md) [![Build Status](https://github.com/ioncakephper/php-theme-gen/actions/workflows/ci.yml/badge.svg)](https://github.com/ioncakephper/php-theme-gen/actions/workflows/ci.yml) [![codecov](https://codecov.io/gh/ioncakephper/php-theme-gen/branch/main/graph/badge.svg)](https://codecov.io/gh/ioncakephper/php-theme-gen) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![Changelog](https://img.shields.io/badge/changelog-keep_a_changelog-blue.svg)](CHANGELOG.md)\n\nA command-line interface (CLI) that streamlines WordPress theme development. It generates a complete WordPress theme structure (including `header.php`, `footer.php`, `index.php`, `style.css`, and `functions.php`) from a single HTML file, using `\u003c!-- wp:file ... --\u003e` comment tags for content separation. It also provides a command to quickly scaffold new HTML templates.\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n## 📚 Table of Contents\n\n- [WordPress Theme PHP Files Generator](#wordpress-theme-php-files-generator)\n  - [📚 Table of Contents](#-table-of-contents)\n  - [✨ Key Features](#-key-features)\n  - [🚀 Getting Started](#-getting-started)\n    - [Prerequisites](#prerequisites)\n    - [Installation](#installation)\n    - [Quick demo](#quick-demo)\n  - [🚀 Usage](#-usage)\n    - [`build` Command](#build-command)\n    - [`new` Command](#new-command)\n  - [🚀 Available Scripts](#-available-scripts)\n    - [Automated Documentation](#automated-documentation)\n    - [Code Quality \\\u0026 Formatting](#code-quality--formatting)\n    - [Core Development](#core-development)\n    - [The \"One-Click\" Pre-Commit Workflow](#the-one-click-pre-commit-workflow)\n  - [A Focus on Quality and Productivity](#a-focus-on-quality-and-productivity)\n    - [The Cost of Stale Documentation](#the-cost-of-stale-documentation)\n    - [The Power of Workflow Scripts](#the-power-of-workflow-scripts)\n  - [📦 Release \\\u0026 Versioning](#-release--versioning)\n    - [How it Works](#how-it-works)\n    - [Creating a New Release](#creating-a-new-release)\n      - [Your First Release](#your-first-release)\n  - [📁 Project Structure](#-project-structure)\n  - [✍️ Linting for Documentation](#️-linting-for-documentation)\n    - [How to Check for Missing Documentation](#how-to-check-for-missing-documentation)\n    - [Example](#example)\n  - [🤝 Contributing](#-contributing)\n  - [🗺️ Roadmap](#️-roadmap)\n  - [⚖️ Code of Conduct](#️-code-of-conduct)\n  - [🙏 Acknowledgements](#-acknowledgements)\n  - [👨‍💻 About the Author](#-about-the-author)\n  - [📄 License](#-license)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n## ✨ Key Features\n\n- **WordPress Theme Generation**: Quickly generate a full WordPress theme (including `header.php`, `footer.php`, `index.php`, and `style.css`) from a single HTML file.\n- **HTML-to-PHP Conversion**: Intelligently extracts content based on `\u003c!-- wp:file ... --\u003e` and `\u003c!-- /wp:file --\u003e` HTML comment tags to create corresponding PHP template files.\n- **Customizable Theme Metadata**: Easily define theme name, author, description, and other details via CLI options, which are automatically included in `style.css` and PHP file headers.\n- **HTML Template Scaffolding**: Generate new HTML template files pre-configured with `wp:file` tags, accelerating new page development.\n- **Comprehensive Testing Suite**: Pre-configured with Jest for unit and integration testing. Includes coverage reporting out-of-the-box to ensure code quality.\n- **Automated Code Quality**: A strict, pre-configured setup using ESLint and Prettier to catch errors, enforce best practices, and maintain a consistent code style across all files (`.js`, `.md`, `.json`).\n- **Enforced Documentation Standards**: Integrated `eslint-plugin-jsdoc` to require JSDoc comments for all functions, improving code clarity and long-term maintainability.\n- **Living Documentation**: Custom automation scripts (`npm run docs:all`) that keep your `README.md` perpetually up-to-date by generating the project structure, a table of contents, and a list of available scripts. This eliminates documentation drift.\n- **Automated Release Workflow**: Integrated `release-please` to automate version bumping, `CHANGELOG.md` generation, and GitHub releases based on the Conventional Commits specification.\n- **One-Command Pre-Commit Preparation**: A single `npm run ready` command that formats, lints, and updates all documentation, guaranteeing every commit is clean, consistent, and professional. This command is designed to be run before every commit.\n- **Robust Project Defaults**: Thoughtfully pre-configured with `.gitignore`, `.prettierignore`, and a ready-to-use Continuous Integration (CI) workflow for GitHub Actions.\n- **Automated Dependency Updates**: Dependabot integration to keep your dependencies up-to-date and secure.\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js version 18.0.0 or higher\n\n### Installation\n\n- Install the package globally (recommended):\n\n  ```bash\n  npm install -g php-theme-gen\n  ```\n\n  The `phpgen` app is available globally. In any folder on your computer, check it runs:\n\n  ```bash\n  phpgen -V\n  ```\n\n- Execute the package directly, using the `npx` command:\n\n  ```bash\n  npx php-theme-gen [options] [command] [arguments]\n\n  # e.g. for help\n  # npx php-theme-gen -h\n\n  # e.g. to build theme from index.html\n  # npx php-theme-gen build demo/index.html --output demo/mytheme\n  ```\n\n### Quick demo\n\nCreate `demo/index.html` with the following content:\n\n```html\n\u003c!-- wp:file name=\"header\" --\u003e\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n  \u003chead\u003e\n    \u003cmeta charset=\"UTF-8\" /\u003e\n    \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" /\u003e\n    \u003ctitle\u003eElegant Page with Tailwind CSS\u003c/title\u003e\n    \u003cscript src=\"https://cdn.tailwindcss.com\"\u003e\u003c/script\u003e\n  \u003c/head\u003e\n  \u003cbody class=\"bg-gray-100 text-gray-800 font-sans\"\u003e\n    \u003cheader class=\"bg-white shadow-md\"\u003e\u003c/header\u003e\n    \u003c!-- /wp:file --\u003e\n\n    \u003cmain class=\"container mx-auto px-6 py-12\"\u003e\n      \u003c!-- Hero Section --\u003e\n      \u003csection class=\"text-center mb-16\"\u003e\n        \u003ch1 class=\"text-5xl font-extrabold text-gray-900 mb-4\"\u003e\n          Build Your Elegant Website\n        \u003c/h1\u003e\n        \u003cp class=\"text-lg text-gray-600 mb-8\"\u003e\n          A beautiful and responsive starting point for your next project.\n        \u003c/p\u003e\n        \u003ca\n          href=\"#\"\n          class=\"bg-blue-600 text-white font-bold py-3 px-8 rounded-full hover:bg-blue-700 transition duration-300\"\n          \u003eGet Started\u003c/a\n        \u003e\n      \u003c/section\u003e\n    \u003c/main\u003e\n\n    \u003c!-- wp:file name=\"footer\" --\u003e\n    \u003cfooter class=\"bg-gray-800 text-white\"\u003e\n      \u003cdiv class=\"container mx-auto px-6 py-12\"\u003e\u003c/div\u003e\n      \u003cdiv class=\"bg-gray-900 py-4\"\u003e\n        \u003cdiv class=\"container mx-auto px-6 text-center text-gray-500\"\u003e\n          \u0026copy; 2025 MyLogo. All Rights Reserved.\n        \u003c/div\u003e\n      \u003c/div\u003e\n    \u003c/footer\u003e\n  \u003c/body\u003e\n\u003c/html\u003e\n\u003c!-- /wp:file --\u003e\n```\n\nThe file contains HTML code and `\u003c~-- wp-file ... --\u003e` and `\u003c!-- /wp:file --\u003e` pair to designate the `php` filename and the content for that file.\n\nInvoke `phphen`:\n\n```bash\nphpgen build demo/index.html --output demo/mytheme\n```\n\nIt generates the following files in `demo/mytheme`:\n\n- `header.php`\n- `footer.php`\n- `index.php`\n- `style.css`\n\n## 🚀 Usage\n\nThe `phpgen` CLI tool allows you to quickly generate a WordPress theme structure from a single HTML file.\n\n### `build` Command\n\nThe `build` command is used to process your HTML file and generate the theme files.\n\n```bash\nnode src/index.js build \u003csourceFile\u003e [options]\n```\n\n**Arguments:**\n\n- `\u003csourceFile\u003e`: The path to your source HTML file. This file should contain `\u003c!-- wp:file name=\"header\" --\u003e` and `\u003c!-- wp:file name=\"footer\" --\u003e` HTML comments to delineate the header and footer sections.\n\n**Options:**\n\n- `-o, --output \u003cdir\u003e`: The output directory for the generated theme files. Defaults to `dist`.\n- `--themeName \u003cname\u003e`: The name of your WordPress theme. This will be used in the theme's `style.css` and PHP file headers. Defaults to `MyTheme`.\n- `--themeURI \u003curi\u003e`: The URI of your theme.\n- `--author \u003cname\u003e`: The author of the theme.\n- `--authorURI \u003curi\u003e`: The author's URI.\n- `--description \u003ctext\u003e`: A brief description of your theme.\n- `--tags \u003ctags\u003e`: Comma-separated tags for your theme (e.g., `blog, responsive`).\n\n**Example:**\n\nTo generate a theme from `demo/index.html` into the `demo/mytheme` directory with a custom theme name:\n\n```bash\nphpgen build demo/index.html --output demo/mytheme --themeName \"My Elegant Theme\" --author \"Your Name\" --description \"An elegant WordPress theme.\"\n```\n\nThis command will create the following files in `demo/mytheme`:\n\n- `header.php`\n- `footer.php`\n- `index.php` (or the basename of your source file, e.g., `demo.php`)\n- `style.css`\n\n### `new` Command\n\nThe `new` command generates a new HTML template file with basic WordPress theme tags. This is useful for quickly starting a new theme development.\n\n```bash\nphpgen new \u003ctemplateName\u003e [options]\n```\n\n**Arguments:**\n\n- `\u003ctemplateName\u003e`: The name of the HTML template file to create (e.g., `my-page`). The tool will create `\u003ctemplateName\u003e.html`.\n\n**Options:**\n\n- `-o, --output \u003cdir\u003e`: The output directory for the new template file. Defaults to the current directory (`.`).\n\n**Example:**\n\nTo create a new HTML template named `about-us.html` in the `templates` directory:\n\n```bash\nphpgen new about-us --output templates\n```\n\n## 🚀 Available Scripts\n\nThis template includes a set of scripts designed to streamline development, enforce quality, and automate documentation.\n\n\u003c!-- START AVAILABLE SCRIPTS --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN npm run docs:scripts TO UPDATE --\u003e\n\n### Automated Documentation\n\n- `npm run docs:all`: A convenience script that updates all documentation sections: table of contents, available scripts, and project structure.\n- `npm run docs:scripts`: Updates the \"Available Scripts\" section in `README.md` with this script.\n- `npm run docs:structure`: Updates the project structure tree in `README.md`.\n- `npm run toc`: Generates a Table of Contents in `README.md` using `doctoc`.\n\n### Code Quality \u0026 Formatting\n\n- `npm run check`: A convenience script that runs the linter.\n- `npm run fix`: A convenience script that formats code and then fixes lint issues.\n- `npm run format`: Formats all JavaScript, Markdown, and JSON files with Prettier.\n- `npm run lint`: Lints all JavaScript and Markdown files using ESLint.\n- `npm run lint:fix`: Automatically fixes linting issues in all JavaScript and Markdown files.\n\n### Core Development\n\n- `npm run start`: Runs the application using `node src/index.js`.\n- `npm run test`: Runs all tests with Jest and generates a coverage report.\n- `npm run test:watch`: Runs Jest in watch mode, re-running tests on file changes.\n\n### The \"One-Click\" Pre-Commit Workflow\n\n- `npm run ready`: A convenience script to run before committing: updates all documentation and then formats and fixes all files.\n\n\u003c!-- END AVAILABLE SCRIPTS --\u003e\n\n## A Focus on Quality and Productivity\n\nThis starter template is more than just a collection of files; it's a workflow designed to maximize developer productivity and enforce high-quality standards from day one. The core philosophy is to **automate the tedious and error-prone tasks** so you can focus on what matters: building great software.\n\n### The Cost of Stale Documentation\n\nIn many projects, the `README.md` quickly becomes outdated. Manually updating the project structure or list of scripts is an easily forgotten chore.\n\n`php-theme-gen` solves this problem with its custom documentation scripts:\n\n- `scripts/update-readme-structure.js`: Saves you from manually drawing out file trees. What might take 5-10 minutes of careful, manual work (and is often forgotten) is now an instant, accurate, and repeatable command.\n- `scripts/update-readme-scripts.js`: Ensures that your project's capabilities are always documented. It reads directly from `package.json`, so the documentation can't lie. It even reminds you to describe your scripts, promoting good habits.\n\n### The Power of Workflow Scripts\n\nChaining commands together is a simple but powerful concept. The `fix`, `docs:all`, and `ready` scripts are designed to create a seamless development experience.\n\n- Instead of remembering to run `prettier` then `eslint --fix`, you just run `npm run fix`.\n- Instead of running three separate documentation commands, you just run `npm run docs:all`.\n- And most importantly, before you commit, you run `npm run ready`. This single command is your pre-flight check. It guarantees that every commit you push is not only functional but also perfectly formatted, linted, and documented. This discipline saves countless hours in code review and prevents messy commit histories.\n\nBy embracing this automation, `php-theme-gen` helps you build better software, faster.\n\n## 📦 Release \u0026 Versioning\n\nThis project uses [`release-please`](https://github.com/googleapis/release-please) to automate releases, versioning, and changelog generation. This ensures a consistent and hands-off release process, relying on the Conventional Commits specification.\n\n### How it Works\n\n1.  **Conventional Commits**: All changes merged into the `main` branch should follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification (e.g., `feat: add new feature`, `fix: resolve bug`).\n2.  **Release Pull Request**: `release-please` runs as a GitHub Action and monitors the `main` branch for new Conventional Commits. When it detects changes that warrant a new release (e.g., a `feat` commit for a minor version, a `fix` commit for a patch version), it automatically creates a \"Release PR\" with a title like `chore(release): 1.2.3`.\n3.  **Review and Merge**: This Release PR contains:\n    - An updated `CHANGELOG.md` with all changes since the last release.\n    - A bumped version number in `package.json`.\n    - Proposed release notes. Review this PR, and once satisfied, merge it into `main`.\n4.  **Automated GitHub Release \u0026 Publish**: Merging the Release PR triggers two final, sequential actions:\n    - The `release-please` action creates a formal GitHub Release and a corresponding Git tag (e.g., `v1.1.0`).\n    - The creation of this release then triggers the `publish.yml` workflow, which automatically publishes the package to the npm registry.\n\n### Creating a New Release\n\nTo create subsequent releases, simply merge changes into the `main` branch using Conventional Commits. `release-please` will handle the rest by creating a Release PR. Once that PR is merged, the new version will be released automatically.\n\n#### Your First Release\n\nTo bootstrap the process and create your very first release:\n\n1.  Ensure your `package.json` version is at a sensible starting point (e.g., `1.0.0`).\n2.  Make at least one commit to the `main` branch that follows the Conventional Commits specification. A good first commit would be: `feat: Initial release`.\n3.  Push your commit(s) to `main`. The `release-please` action will run and create your first Release PR.\n4.  Review and merge this PR. This will trigger the creation of your `v1.0.0` GitHub Release and publish the package to npm.\n\nFor more details, refer to the [release-please documentation](https://github.com/googleapis/release-please#how-it-works).\n\n## 📁 Project Structure\n\n\u003c!-- START PROJECT STRUCTURE --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN `npm run docs:structure` TO UPDATE --\u003e\n\n```plaintext\n.\n├── .github/           # GitHub Actions workflows\n│   └── workflows/\n│       ├── ci.yml             # Continuous Integration (CI) workflow\n│       ├── publish.yml\n│       └── release-please.yml\n├── .qodo/\n├── demo/\n│   ├── mytheme/\n│   │   ├── footer.php\n│   │   ├── header.php\n│   │   ├── index.php\n│   │   └── style.css\n│   └── index.html\n├── src/               # Source code\n│   ├── commands/\n│   │   ├── build.js\n│   │   └── new.js\n│   ├── utils/\n│   │   ├── createThemeFile.js\n│   │   └── loadCommands.js\n│   ├── cli.js\n│   ├── index.js   # Main application entry point\n│   └── program.js\n├── tests/\n│   ├── utils/\n│   │   └── createThemeFile.test.js\n│   └── index.test.js\n├── .eslintignore      # Files/folders for ESLint to ignore\n├── .eslintrc.json     # ESLint configuration\n├── .gitignore         # Files/folders for Git to ignore\n├── .npmrc\n├── .prettierignore    # Files/folders for Prettier to ignore\n├── .prettierrc.json   # Prettier configuration\n├── CHANGELOG.md\n├── CODE_OF_CONDUCT.md # Community standards\n├── CONTRIBUTING.md    # Guidelines for contributors\n├── jest.config.mjs\n├── LICENSE            # Project license\n├── package.json       # Project metadata and dependencies\n└── README.md          # This file\n```\n\u003c!-- END PROJECT STRUCTURE --\u003e\n\n## ✍️ Linting for Documentation\n\nThis project uses the [`eslint-plugin-jsdoc`](https://github.com/gajus/eslint-plugin-jsdoc) package to enforce that all functions, classes, and methods are properly documented using JSDoc comments. This helps maintain a high level of code quality and makes the codebase easier for new and existing developers to understand.\n\n### How to Check for Missing Documentation\n\nYou can check the entire project for missing or incomplete docblocks by running the standard linting command:\n\n```bash\nnpm run lint\n```\n\nESLint will scan your JavaScript files and report any undocumented code as a warning.\n\n### Example\n\nConsider the following function in your code without any documentation:\n\n```javascript\nfunction calculateArea(width, height) {\n  return width * height;\n}\n```\n\nWhen you run `npm run lint`, ESLint will produce a warning similar to this:\n\n```plaintext\n/path/to/your/project/src/your-file.js\n  1:1  warning  Missing JSDoc for function 'calculateArea'  jsdoc/require-jsdoc\n```\n\nTo fix this, you would add a JSDoc block that describes the function, its parameters, and what it returns. Most modern code editors (like VS Code) can help by generating a skeleton for you if you type `/**` and press Enter above the function.\n\n**Corrected Code:**\n\n```javascript\n/**\n * Calculates the area of a rectangle.\n * @param {number} width The width of the rectangle.\n * @param {number} height The height of the rectangle.\n * @returns {number} The calculated area.\n */\nfunction calculateArea(width, height) {\n  return width * height;\n}\n```\n\nAfter adding the docblock, running `npm run lint` again will no longer show the warning for this function.\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [contributing guidelines](CONTRIBUTING.md) to get started.\n\n## 🗺️ Roadmap\n\nThis project is actively maintained, and we have a clear vision for its future. Here are some of the features and improvements we are planning:\n\n- **TypeScript Support**: Add a separate branch or configuration for a TypeScript version of this template.\n- **Monorepo Example**: Provide guidance and an example setup for using this template within a monorepo structure.\n- **Containerization**: Include a `Dockerfile` and `docker-compose.yml` for easy container-based development.\n- **Additional CI/CD Examples**: Add examples for other CI/CD providers like CircleCI or GitLab CI.\n\nIf you have ideas for other features, please open an issue to discuss them!\n\n## ⚖️ Code of Conduct\n\nTo ensure a welcoming and inclusive community, this project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). Please read it to understand the standards of behavior we expect from all participants.\n\n## 🙏 Acknowledgements\n\nThis project was built upon the shoulders of giants. We'd like to thank the creators and maintainers of these amazing open-source tools and specifications that make this template possible:\n\n- [Node.js](https://nodejs.org/)\n- [Jest](https://jestjs.io/)\n- [ESLint](https://eslint.org/)\n- [Prettier](https://prettier.io/)\n- [Release Please](https://github.com/googleapis/release-please)\n- [Conventional Commits](https://www.conventionalcommits.org/)\n- [Doctoc](https://github.com/thlorenz/doctoc)\n- [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc)\n- [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)\n- [Semantic Versioning](https://semver.org/)\n- [Contributor Covenant](https://www.contributor-covenant.org/)\n\n## 👨‍💻 About the Author\n\nThis template was created and is maintained by **Ion Gireada**.\n\n- **GitHub**: [@ioncakephper](https://github.com/ioncakephper)\n- **Website**: Feel free to add your personal website or blog here.\n- **LinkedIn**: Connect with me on [LinkedIn](https://www.linkedin.com/in/ion-gireada-223929/)!\n\n## 📄 License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fioncakephper%2Fphp-theme-gen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fioncakephper%2Fphp-theme-gen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fioncakephper%2Fphp-theme-gen/lists"}