{"id":20384875,"url":"https://github.com/screenly/screenly-cast-for-wordpress","last_synced_at":"2025-07-20T14:04:49.018Z","repository":{"id":147616308,"uuid":"88864022","full_name":"Screenly/Screenly-Cast-for-WordPress","owner":"Screenly","description":"A WordPress plugin for digital signage.","archived":false,"fork":false,"pushed_at":"2025-02-06T14:59:31.000Z","size":4944,"stargazers_count":20,"open_issues_count":4,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-12T09:42:22.927Z","etag":null,"topics":["digital-signage","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"https://wordpress.org/plugins/screenly-cast/","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/Screenly.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":"2017-04-20T12:37:36.000Z","updated_at":"2025-02-06T14:59:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"39b897e1-f5dd-4ccc-9896-4f203c8929bd","html_url":"https://github.com/Screenly/Screenly-Cast-for-WordPress","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Screenly/Screenly-Cast-for-WordPress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Screenly%2FScreenly-Cast-for-WordPress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Screenly%2FScreenly-Cast-for-WordPress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Screenly%2FScreenly-Cast-for-WordPress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Screenly%2FScreenly-Cast-for-WordPress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Screenly","download_url":"https://codeload.github.com/Screenly/Screenly-Cast-for-WordPress/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Screenly%2FScreenly-Cast-for-WordPress/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266135685,"owners_count":23881803,"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":["digital-signage","wordpress","wordpress-plugin"],"created_at":"2024-11-15T02:30:18.444Z","updated_at":"2025-07-20T14:04:49.001Z","avatar_url":"https://github.com/Screenly.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Screenly Cast for WordPress\n\nA WordPress plugin to enable easy and beautiful casting of pages, posts and image\nmedia on [Screenly](https://www.screenly.io) digital signage devices.\n\nThe Screenly Cast plugin optimizes your website content for beautiful,\neasy-to-read display on TVs and other non-interactive devices.\n\nWithout Screenly Cast for WordPress:\n![Without Screenly Cast for WordPress](/assets/screenshot-1.png)\n\nWith Screenly Cast for WordPress:\n![With Screenly Cast for WordPress](/assets/screenshot-2.png)\n\n## Installing\n\n* Search for *Screenly Cast* in the WordPress plugin directory (or you can find it\n  [here](https://wordpress.org/plugins/screenly-cast/))\n* Activate the plugin\n\n## Usage with [Screenly](https://www.screenly.io)\n\nTo make use of the plugin on your **Screenly Screen** you just need to follow\nthese simple steps:\n\n1. Make sure the **plugin is activated**.\n1. **Copy and Paste** the URL of your website, post, page or attachment.\n1. Change the URL, adding a parameter called `srly`, like this:\n    * `https://www.mydomain.com/?srly`\n    * `https://www.mydomain.com/my-post-url?srly`\n    * `https://www.mydomain.com/my-page-url?srly`\n    * `https://www.mydomain.com/my-attachment-url?srly`\n    * `https://www.mydomain.com/?somevar=1\u0026anothervar=2\u0026srly` \u0026mdash; in case you're\n      using more than one parameter\n\n    **NOTE:** There is no need to apply any value to the parameter. It just needs\n    to exist in the query.\n\n1. [Login to Screenly](https://login.screenlyapp.com) and navigate to **Content**\n   on the sidebar.\n1. Click on the button **+ New Content**.\n1. Select the tab **URL**.\n1. **Paste** the edited URL (from step 3).\n1. Click **Finish**.\n1. On the content detail page, make sure to set a **recognizable title** since this\n   is what you will see in Screenly later.\n1. Go to the **Playlists** section and go to the playlist where you want to add\n    the new content.\n1. Click the **+** button beside the **Content** section.\n1. Select the content you just created and click **+** beside it. Click **Done**\n    when you are ready.\n1. Make sure to pick an appropriate **Duration** for a good reading experience.\n1. Click **Save**.\n\nScreenly Cast for WordPress works with both [Screenly](https://www.screenly.io)\nand [Anthias](https://anthias.screenly.io/), and should also work just fine with\nmost other digital signage solutions, but the usage will vary.\n\n## How it works\n\nThe plugin comes with a simple theme that will be used specifically for Screenly\ncontent. The plugin detects the `srly` parameter in your URL, like in\n`http://www.myblog.com/?srly`, and applies the Screenly Cast theme. Enabling the\ntheme will not affect your normal theme still in use for the rest of your site.\n\nBecause the plugin targets Screenly devices with no end user interaction, content\nwill be laid out in a simple and TV-friendly layout. Just the title, content and\nfeatured image are used. The plugin automatically simplifies the markup and\nremoves functionality not appropriate for the medium. For example, since there is\nno interaction, any clickable links is simplified to just the title text.\n\nFor the best experience for your reader you should assume that no more than 250\ncharacters or so will be displayed. Screenly Cast does not try to automatically\nscroll the content because for these non-interactive, often large TV displays,\nfixed unmoving content usually looks and reads the best.\n\n## Development\n\n### Requirements\n\n* Docker\n* Docker Compose\n* PHP 7.4 or higher (for local development without Docker)\n* WordPress 6.2.4 or higher\n* Composer for dependency management\n\n\u003e [!NOTE]\n\u003e While there's an option to run the development environment without containerization,\n\u003e it is highly recommended to use Docker for development to minimize the setup and\n\u003e configuration needed.\n\n### Setup\n\n#### Without Docker\n\n```bash\ncomposer install\nnpm install\n```\n\n#### With Docker\n\n```bash\n# Install Node.js dependencies\nnpm install\n\n# Start development environment (WordPress + MySQL)\ndocker compose --profile dev up --build\n\n# The development site will be available at http://localhost:8000\n```\n\n#### Running unit tests\n\n```bash\n# Start test environment\ndocker compose --profile test up wordpress-test\n```\n\n#### Running linting checks\n\n```bash\n# Run PHP linting checks\ndocker compose --profile lint up\n\n# Run Node.js linting checks\ndocker compose --profile nodejs run --rm nodejs \\\n  bash -c \"npm install \u0026\u0026 npm run lint\"\n```\n\n### Release Process\n\n* Update version and changelog:\n  * Update the following information in the plugin header in [`screenly-cast.php`](/screenly-cast/screenly-cast.php):\n    * `Version`\n    * `Requires at least`\n    * `Requires PHP`\n  * Run the following commands to sync [`package.json`](/package.json) version with the plugin:\n\n    ```bash\n    docker compose --profile nodejs run --rm nodejs \\\n      bash -c \"npm run version:sync \u0026\u0026 npm install\"\n    ```\n\n  * Add detailed changelog entry in `readme.txt` under the `== Changelog ==`\n    section\n    * Follow the existing format (e.g., `= 1.0.0 =`)\n    * List all changes with proper categorization (Major/Feature/Fix)\n    * Include any breaking changes, new features, and bug fixes\n\n* Test the changes locally:\n\n```bash\n# Run the test suite\ndocker compose run --rm wordpress-test composer test\n```\n\n* Build and verify the release locally:\n\n```bash\n# Clean install dependencies without dev packages\ncomposer install --no-dev --optimize-autoloader\n\n# Build the release\n./bin/build.sh\n\n# Verify the build output in build/screenly-cast/\n```\n\n* Commit changes and push to GitHub:\n\n```bash\ngit add .\ngit commit -m \"Prepare release vX.Y.Z\"\ngit push origin master\n```\n\n* Create and push a new tag:\n\n```bash\n# Create a new tag\ngit tag -a vX.Y.Z -m \"Version X.Y.Z\"\n\n# Push the tag\ngit push origin vX.Y.Z\n\n# If you need to delete a tag locally and remotely (e.g., if made a mistake):\ngit tag -d vX.Y.Z               # Delete local tag\ngit push --delete origin vX.Y.Z # Delete remote tag\n```\n\n* The GitHub Actions workflow will automatically:\n  * Run tests across supported PHP versions\n  * Build the release package without dev dependencies\n  * Deploy to WordPress.org plugin repository if the build is successful\n  * The plugin will be available in the WordPress.org plugin directory after\n     deployment.\n\n### Version Numbers\n\nWe use [Semantic Versioning](https://semver.org/):\n\n* MAJOR version for incompatible API changes\n* MINOR version for backwards-compatible functionality additions\n* PATCH version for backwards-compatible bug fixes\n\n### Creating a WordPress Plugin ZIP\n\nRunning the build script will:\n\n* Create a clean build in the `build/` directory for WordPress.org deployment\n* Generate an installable ZIP file in the `dist/` directory\n\n```bash\n./bin/build.sh\n```\n\nThe resulting `dist/screenly-cast.zip` file can be uploaded via WordPress's \"Add New Plugin\" interface.\n\n## License\n\nThis project is licensed under the [GPLv2](/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscreenly%2Fscreenly-cast-for-wordpress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscreenly%2Fscreenly-cast-for-wordpress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscreenly%2Fscreenly-cast-for-wordpress/lists"}