{"id":51195677,"url":"https://github.com/guilamu/file-type-icons","last_synced_at":"2026-06-27T20:01:31.924Z","repository":{"id":363817775,"uuid":"1265059787","full_name":"guilamu/file-type-icons","owner":"guilamu","description":"Automatically adds customizable SVG icons to file links (PDF, Word, Excel, PowerPoint, TXT, etc.)","archived":false,"fork":false,"pushed_at":"2026-06-10T14:13:52.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T14:20:30.732Z","etag":null,"topics":["wordpress"],"latest_commit_sha":null,"homepage":"https://github.com/guilamu/file-type-icons","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/guilamu.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":"2026-06-10T12:31:22.000Z","updated_at":"2026-06-10T14:16:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/guilamu/file-type-icons","commit_stats":null,"previous_names":["guilamu/file-type-icons"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/guilamu/file-type-icons","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guilamu%2Ffile-type-icons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guilamu%2Ffile-type-icons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guilamu%2Ffile-type-icons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guilamu%2Ffile-type-icons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/guilamu","download_url":"https://codeload.github.com/guilamu/file-type-icons/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/guilamu%2Ffile-type-icons/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34866118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["wordpress"],"created_at":"2026-06-27T20:01:31.132Z","updated_at":"2026-06-27T20:01:31.906Z","avatar_url":"https://github.com/guilamu.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# File Type Icons\n\n[![Latest Release](https://img.shields.io/github/v/release/guilamu/file-type-icons?color=blue)](https://github.com/guilamu/file-type-icons/releases) [![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-green.svg)](LICENSE) [![WordPress: 7.0+](https://img.shields.io/badge/WordPress-7.0%2B-blue.svg)](https://wordpress.org) [![PHP: 8.0+](https://img.shields.io/badge/PHP-8.0%2B-purple.svg)](https://php.net)\n\nAutomatically adds customizable SVG icons to file links (PDF, Word, Excel, PowerPoint, TXT, etc.)\n\n![Plugin Screenshot](https://github.com/guilamu/file-type-icons/blob/main/screenshot.png)\n\n## Custom SVG Icons\n- Display elegant vector graphics next to document links automatically.\n- Colorize icons using HSL tailored colors directly from a modern Coloris color picker.\n- Choose between Solid/Filled and Outline icon designs to match your style.\n- Set responsive sizing and align icons to either the left or right of link text.\n\n## Smart Link Exclusions\n- Add the `no-fti` class to any anchor tag or container element to disable icons.\n- Exclude whole blocks of content easily by wrapping them inside the `[no_fti]...[/no_fti]` shortcode.\n- Toggle off icon rendering completely on specific pages via the editor sidebar metadata check.\n\n## Key Features\n- **Customizable:** Adjust colors, style presets, sizes, and layout choices instantly.\n- **Lightweight:** Pure CSS-based mask-image presentation with zero javascript front-end libraries.\n- **Multilingual:** Works with content in any language\n- **Translation-Ready:** All strings are internationalized\n- **Secure:** Enforces strict server sanitization and outputs clean, escaped inline styles.\n- **GitHub Updates:** Automatic updates from GitHub releases\n\n## Requirements\n- WordPress 7.0 or higher\n- PHP 8.0 or higher\n\n## Installation\n1. Upload the `file-type-icons` folder to `/wp-content/plugins/`\n2. Activate the plugin through the **Plugins** menu in WordPress\n3. Go to **Settings → File Type Icons** and configure icon sizes, styles, positions, and active types.\n\n## FAQ\n\n### How do I change the color of an icon?\nGo to the configuration page **Settings → File Type Icons** and use the color picker next to the desired file type.\n\n### How do I disable icons on a specific page?\nCheck the **Disable icons on this page** box located in the editor sidebar (Document settings) when editing your page or post.\n\n### How do I exclude specific links in the content?\nSimply add the CSS class `no-fti` to your links or wrap the text containing the links with the shortcode `[no_fti]...[/no_fti]`.\n\n### Can I customize the icon URL via code?\nYes, use the `fti_icon_url` filter:\n```php\nadd_filter( 'fti_icon_url', function( $url, $type ) {\n    return $url;\n}, 10, 2 );\n```\n\n### Can I disable the icon handler programmatically?\nYes, use the `fti_is_disabled` filter:\n```php\nadd_filter( 'fti_is_disabled', function( $is_disabled ) {\n    return $is_disabled;\n} );\n```\n\n## Project Structure\n```\n.\n├── file-type-icons.php           # Main plugin bootstrap file\n├── uninstall.php                 # Database settings cleanup on uninstall\n├── README.md                     # Documentation\n├── assets\n│   ├── css\n│   │   ├── admin.css             # Styles for settings options page\n│   │   ├── coloris.min.css       # Coloris library styles\n│   │   └── frontend.css          # Frontend layout structures\n│   ├── js\n│   │   ├── admin.js              # Settings real-time preview sync script\n│   │   └── coloris.min.js        # Coloris library logic\n│   └── icons\n│       └── ...                   # Solid and outline SVG vector assets\n├── includes\n│   ├── class-admin-settings.php  # Options registry and admin settings page\n│   ├── class-disabler.php        # Meta box and shortcode handler\n│   ├── class-github-updater.php  # GitHub automatic updater filter engine\n│   ├── class-icon-handler.php    # Frontend link parser and dynamic CSS injector\n│   ├── class-plugin.php          # Main bootstrap loader\n│   └── Parsedown.php             # PHP Markdown parser library dependency\n└── languages\n    ├── file-type-icons-fr_FR.mo  # French translation compiled binary\n    ├── file-type-icons-fr_FR.po  # French translation source file\n    └── file-type-icons.pot       # Main translation template\n```\n\n## Changelog\n\n### 1.0.8 - 2026-06-15\n- **Fix:** \"View Details\" link on plugins page now works correctly (plugin information API result now survives WordPress core filter mutations).\n\n### 1.0.7 - 2026-06-11\n- Bundled the admin settings icons locally so the settings UI no longer depends on an external CDN.\n\n### 1.0.6 - 2026-06-11\n- Added [no_fti] shortcode explanation in the Class Exclusions settings section.\n\n### 1.0.5 - 2026-06-11\n- Fixed updater metadata to report the plugin's tested WordPress version consistently.\n- Hardened the per-post disable meta capability and nonce handling.\n- Cleaned up the hover effect option on uninstall and switched admin asset versioning to the plugin version.\n- Aligned the documented license references with the bundled AGPL license file.\n\n### 1.0.4 - 2026-06-10\n- Added customizable mouse hover effects (Lift and Zoom) for frontend file link icons with an interactive live settings preview.\n\n### 1.0.3 - 2026-06-10\n- Integrated the modern Coloris color picker into the admin settings page.\n\n### 1.0.2 - 2026-06-10\n- Added Style 3 (\"Rounded\" round gradient badge preset) with real-time settings page preview support.\n\n### 1.0.1 - 2026-06-10\n- Added Live Link Preview in general settings panel.\n\n### 1.0.0 - 2026-06-10\n- Initial stable release.\n\n## Security\n\nIf you discover a security vulnerability in this plugin, please report it responsibly through [GitHub Security Advisories](https://github.com/guilamu/file-type-icons/security/advisories/new). Do not open a public issue for security reports.\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request on [GitHub](https://github.com/guilamu/file-type-icons).\n\nFor translations, the plugin uses WordPress i18n. You can contribute translations by editing the `.po` files in the `languages/` directory and generating the corresponding `.mo` files with the `wp i18n` CLI commands.\n\n## Credits\n\n- [Coloris](https://github.com/mdbassit/Coloris) - A lightweight, responsive, and dependency-free color picker library by Momo Bassit (MIT License).\n\n## License\nThis project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) — see the [LICENSE](LICENSE) file for details.\n\n---\n\nMade with love for the WordPress community\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguilamu%2Ffile-type-icons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fguilamu%2Ffile-type-icons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fguilamu%2Ffile-type-icons/lists"}