{"id":21840182,"url":"https://github.com/gocom/massplugcompiler","last_synced_at":"2025-04-14T10:51:11.058Z","repository":{"id":62532785,"uuid":"1595280","full_name":"gocom/MassPlugCompiler","owner":"gocom","description":"Textpattern CMS plugin compiler","archived":false,"fork":false,"pushed_at":"2024-11-22T21:12:29.000Z","size":140,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-28T00:04:33.806Z","etag":null,"topics":["php","textpattern","textpattern-development"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gocom.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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},"funding":{"custom":["https://www.paypal.me/jukkasvahn"]}},"created_at":"2011-04-10T15:55:32.000Z","updated_at":"2024-11-22T21:12:32.000Z","dependencies_parsed_at":"2024-11-22T21:38:39.384Z","dependency_job_id":null,"html_url":"https://github.com/gocom/MassPlugCompiler","commit_stats":{"total_commits":153,"total_committers":2,"mean_commits":76.5,"dds":0.3921568627450981,"last_synced_commit":"0d73dd5eb5941d20ffaaa7a69a026ece41846774"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocom%2FMassPlugCompiler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocom%2FMassPlugCompiler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocom%2FMassPlugCompiler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gocom%2FMassPlugCompiler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gocom","download_url":"https://codeload.github.com/gocom/MassPlugCompiler/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248868827,"owners_count":21174754,"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":["php","textpattern","textpattern-development"],"created_at":"2024-11-27T21:24:57.443Z","updated_at":"2025-04-14T10:51:11.033Z","avatar_url":"https://github.com/gocom.png","language":"PHP","funding_links":["https://www.paypal.me/jukkasvahn"],"categories":[],"sub_categories":[],"readme":"mtxpc\n=====\n\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=gocom_MassPlugCompiler\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=gocom_MassPlugCompiler) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=gocom_MassPlugCompiler\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=gocom_MassPlugCompiler)\n\n**mtxpc** compiles [Textpattern CMS](https://textpattern.com) plugin sources into installer packages. Supports multi-file structure and a JSON manifest file.\n\nInstall\n-----\n\nUsing [Composer](https://getcomposer.org):\n\n```shell\n$ composer require rah/mtxpc --dev\n```\n\nUsage\n-----\n\n### As a Library\n\n```php\nuse Rah\\Mtxpc\\Compiler;\n\n$compiler = new Compiler();\n\n$plugin = $compiler-\u003ecompile('path/to/plugin/source/directory');\n\necho $plugin-\u003egetInstaller();\n```\n\n### Via Command Line\n\n```shell\n$ vendor/bin/mtxpc [[-h|--help][-c|--compress][--outdir=\u003cpath\u003e]] \u003cfile\u003e\n```\n\nExamples:\n\n```shell\n$ vendor/bin/mtxpc path/to/abc_plugin \u003e abc_plugin_v0.1.0.txt\n$ vendor/bin/mtxpc -c path/to/abc_plugin \u003e abc_plugin_v0.1.0_zip.txt\n$ vendor/bin/mtxpc -c --outdir=dist/ .\n```\n\nExample Plugin Template\n-----\n\nSee [abc_plugin](https://github.com/gocom/abc_plugin) repository for an example template.\n\nGitHub Action\n-----\n\nA [GitHub action](https://github.com/gocom/action-textpattern-package-plugin) is available to integrating plugin compilation to automated build chain.\n\nPlugin Template\n-----\n\nThe main difference compared to Textpattern's vanilla plugin template is how plugins are constructed. Textpattern's official template hosts everything in a single file, while **mtxpc** splits the sources to separate files; translations, readme, manifest and source code.\n\n### Translations\n\n[Textpacks](https://forum.textpattern.com/viewtopic.php?id=33182), Textpattern's plugin localization files, can be stored in a single file, or as separate files, each file storing a different language. The compiler searches `.textpack` files from a directory named `textpacks`.\n\nTextpattern offers a way to set the default language which is used as the fallback when the plugin doesn't come with user's language. The default language is chosen based on `#@language` keyword, or lack of. Textpack files that do not define a language, are treated as the default fallback. Compare abc_plugin's [en-gb.texpack](https://github.com/gocom/abc_plugin/blob/master/textpack/en-gb.textpack) and [fi-fi.textpack](https://github.com/gocom/abc_plugin/blob/master/textpack/fi-fi.textpack) files. The `en-gb` doesn't define the language code and is set as the default.\n\n### Manifest\n\nThe manifest file, `manifest.json`, contains all plugin's meta data. That's the rest of the stuff a plugin is made of, including plugin's **version** number, **author**, **url**, special **flags**, **type**, and recommended loading **order**.\n\n### Help File\n\nManifest file can also be used to specify help file's location. By default a help file is expected to be named as `help` with any extension, but a different location can be chosen with a file option:\n\n```json\n{\n    \"help\": {\n        \"file\": [\"./README.textile\"]\n    }\n}\n```\n\nTextile markup can be used in the help file. If the help file's filename ends with `.textile` extension, or the file contents start with `h1.` tag, the file is treated as if it contained Textile markup.\n\nDevelopment\n-----\n\nSee [CONTRIBUTING.md](https://github.com/gocom/MassPlugCompiler/blob/master/CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgocom%2Fmassplugcompiler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgocom%2Fmassplugcompiler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgocom%2Fmassplugcompiler/lists"}