{"id":15011473,"url":"https://github.com/thom4parisot/wp-less","last_synced_at":"2025-04-09T22:17:29.653Z","repository":{"id":2277658,"uuid":"3234631","full_name":"thom4parisot/wp-less","owner":"thom4parisot","description":"WordPress plugin which seemlessly compiles, caches and rebuilds your LESS stylesheets.","archived":false,"fork":false,"pushed_at":"2024-11-28T10:30:05.000Z","size":372,"stargazers_count":87,"open_issues_count":30,"forks_count":40,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-04-09T22:17:22.635Z","etag":null,"topics":["lesscss","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"https://wordpress.org/plugins/wp-less/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thom4parisot.png","metadata":{"files":{"readme":"readme.txt","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2012-01-21T16:22:27.000Z","updated_at":"2025-03-12T10:50:42.000Z","dependencies_parsed_at":"2023-07-05T19:47:59.919Z","dependency_job_id":null,"html_url":"https://github.com/thom4parisot/wp-less","commit_stats":null,"previous_names":["oncletom/wp-less"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thom4parisot%2Fwp-less","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thom4parisot%2Fwp-less/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thom4parisot%2Fwp-less/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thom4parisot%2Fwp-less/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thom4parisot","download_url":"https://codeload.github.com/thom4parisot/wp-less/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119286,"owners_count":21050755,"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":["lesscss","wordpress","wordpress-plugin"],"created_at":"2024-09-24T19:41:08.197Z","updated_at":"2025-04-09T22:17:29.625Z","avatar_url":"https://github.com/thom4parisot.png","language":"PHP","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=752034"],"categories":["PHP"],"sub_categories":[],"readme":"=== WP-LESS ===\nContributors: fabrizim,oncletom\nDonate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=752034\nTags: dev, theme, themes, toolkit, plugin-toolkit, less, lesscss, lessc, lessphp, productivity, style, stylesheet, api\nRequires at least: 3.2\nTested up to: 5.8\nStable tag: trunk\n\nImplementation of LESS (Leaner CSS) in order to make themes development easier.\n\n\n== Description ==\n[LESS](http://lesscss.org) is a templating language based on top of CSS. It provides numerous enhancements to speed up development and make its maintenance easier.\n\nTheme developers can even bundle the plugin without worrying about conflicts: just include the special `bootstrap-for-theme.php` and read its instructions.\n\n= Features =\n\n * Variables\n * Mixins (inheritance of rules)\n * Nested Rules (write less, do more)\n * Accessors (inherit a value from a specific rule)\n * Functions (logic operations for dynamic results)\n\nThe plugin lets you concentrate on what you need: coding CSS. Everything else is handled automatically, from cache management to user delivery.\nSeriously.\n\n= Documentation =\n\nAdvanced topics on how to use the plugin API are [available on the Github project documentation](https://github.com/oncletom/wp-less/tree/master/doc).\n\n= Requirements =\n\nThe sole requirement is to use WordPress API and LESS convention: the `.less` extension.\n\n**Minimal Requirements**: PHP 5.3 and WordPress 3.2.\n**Relies on**: [Less.php](http://lessphp.gpeasy.com/), [plugin-toolkit](http://wordpress.org/extend/plugins/plugin-toolkit/).\n\n*Notice*: in case you'd like to drop the usage of this plugin, it's safe to do it. You will just need to convert back your stylesheets to CSS.\n\n== Installation ==\n\n= Automatic =\n 1. Search for the plugin name (`WP-LESS`)\n 1. Click on the install button\n 1. Activate it\n\n= Manual =\n 1. Download the latest stable archive of the plugin\n 1. Unzip it in your plugin folder (by default, `wp-content/plugins`)\n 1. Activate it through your WordPress plugins administration page\n\n== Upgrade Notice ==\n\n= 1.6.0 =\n\nWarning: this release has some breaking changes. If you the old selector expression syntax (eg. Bootstrap 2.3) then it’s recommended to use 0.3.9.\n\n * Add support for ; as argument delimiter\n * Add support for passing arguments by name to mixin\n * Remove old selector expression syntax (\"hello\")\n * Remove ability to skip arguments by repeating delimiter\n * Add built in functions: sin, cos, tan, asin, acos, atan, pow, pi, mod, sqrt, extract\n * Fix bug where @arguments was not getting values from ...\n * Selector interpolation works inside of brackets in selector\n * Fix bug when resolving mixin that has same name as enclosing class\n * Duplicate properties are now removed from output\n\n== Changelog ==\n\n= Version 1.9.0 =\n\n* feature: default less compiler is now [wikimedia/less.php](https://github.com/wikimedia/less.php) ([#117](https://github.com/oncletom/wp-less/pull/117))\n* feature: output is compressed by default\n\n= Version 1.8.0 =\n\n * feature: default less compiler is now [oyejorge/less.php](http://lessphp.gpeasy.com/) ([#90](https://github.com/oncletom/wp-less/pull/90)\n\n= Version 1.7.6 =\n\n * info: updated vendored lessphp libraries versions (oyejorge/less.php@1.7.0.5)\n\n= Version 1.7.5 =\n\n * feature: now works properly in the admin side ([#68](https://github.com/oncletom/wp-less/pull/68))\n\n= Version 1.7.4 =\n\n * feature: favour composer autoload to manual PHP `require` ([#64](https://github.com/oncletom/wp-less/pull/64))\n\n= Version 1.7.3 =\n\n * bug: fixed the LESS library loading ([#63](https://github.com/oncletom/wp-less/issues/63))\n * doc: documented the new LESS library swapping\n\n= Version 1.7.0 =\n\n * feature: ability to provide your own flavour of `lessphp` or `less.php` ([#53](https://github.com/oncletom/wp-less/pull/53))\n * bug: fixed stylesheet directory computation ([#61](https://github.com/oncletom/wp-less/pull/61))\n * bug: unlink exception during utpdated files cleanup ([#49](https://github.com/oncletom/wp-less/pull/49))\n * style: code cleanup ([#56](https://github.com/oncletom/wp-less/pull/56), [#55](https://github.com/oncletom/wp-less/pull/55))\n\n= Version 1.6.0 =\n\nRead the UPGRADE NOTICE carefully as this release contains BC change. Hence the version bump to `1.6.0`.\n\n * lessphp: updated to v0.4.0\n\n= Version 1.5.4 =\n\n * bug: fixed stylesheet URL computation ([#38](https://github.com/oncletom/wp-less/pull/38))\n * bug: fixed cache-hit miss after stylesheet garbage collection ([#40](https://github.com/oncletom/wp-less/pull/40))\n * added a CONTRIBUTORS file\n\n= Version 1.5.3 =\n\n * lessphp: updated to v0.3.9\n\n= Version 1.5.2 =\n\n * bug: fixed garbage collector bug ([#28](https://github.com/oncletom/wp-less/pull/28))\n * bug: fixed cachebusting URI generation in deep mode ([#29](https://github.com/oncletom/wp-less/pull/29))\n * bug: fixed access to Plugin instance, matching the documentation ([#39](https://github.com/oncletom/wp-less/pull/39))\n\n= Version 1.5.1 =\n\n * feature(beta): less stylesheets can be enqueued in `wp-admin`\n * feature: added `WPLessConfiguration::getTtl` method to let you configure the delay of old-files cleanup\n * bug: fixed automatic replacements with absolute and data uri ([#19](https://github.com/oncletom/wp-less/pull/19))\n * bug: fixed garbage collector; was pruning active stylesheets even if too old (buggy with active cache) ([#20](https://github.com/oncletom/wp-less/pull/20))\n\n= Version 1.5 =\n\nMostly issues related to `lessphp` 0.3.8 features.\n\n * /!\\ Leveraged PHP Minimum Version to 5.2.4 /!\\ ([WordPress already asks you the same](http://wordpress.org/about/requirements/))\n * [dev documentation available online](https://github.com/oncletom/wp-less/tree/master/doc)\n * bug: stylesheets compilation is now processed on `wp_enqueue_scripts` ([prop of @RixTox](https://github.com/oncletom/wp-less/pull/18))\n * feature: providing stylesheet and template directory uri variables (`@stylesheet_directory_uri` \u0026 `@template_directory_uri`) following WordPress convention\n * feature: Pruning old compiled files [#15](https://github.com/oncletom/wp-less/pull/15)\n * feature: Smarter LESS compilation (following @import file updates) [#13](https://github.com/oncletom/wp-less/pull/13)\n * feature: Systematic LESS rebuild through configuration [#14](https://github.com/oncletom/wp-less/pull/14)\n * improvement: Match lessphp variable API [#12](https://github.com/oncletom/wp-less/pull/12)\n\n= Version 1.4.3 =\n\n * bug: fixed HTTPS/Networked Blog URL replacement ([#8](https://github.com/oncletom/wp-less/pull/8), [#9](https://github.com/oncletom/wp-less/pull/9))\n * bug: fixed the `property of non-object in Plugin.class.php` bug\n * lessphp: updated to 0.3.8 (compatible with lessjs 1.3)\n\n= Version 1.4.2 =\n\n * feature: if `WP_DEBUG` is set to true, compilation is done on every page\n * feature: rebuild now takes care of LESS PHP variable\n * feature: added support of [custom LESS functions](http://leafo.net/lessphp/docs/index.html#custom_functions)\n * lessphp: updated to version 0.3.1\n\n= Version 1.4.1 =\n\n * bug: CSS `url()` are now properly resolved relative to the theme URL\n\n= Version 1.4 =\n\n * action: `wp-less_compiler_parse_pre` now takes 3 arguments: class instance, text and variable arguments\n * action: `wp-less_stylesheet_save_pre` now takes 2 arguments: class instance and variable arguments\n * helper: added `less_add_variable` to ease manipulations from theme, if needed (the file needs to be included manually)\n * stylesheet: `getBuffer()` and `setBuffer` will be removed in 1.5 version\n * lessphp: removed the custom patch for buffer manipulation, due to built-in variable management\n * lessphp: updated to version 0.3.0\n\n= Version 1.3.1 =\n\n * renamed `wp-less_compiler_parse` action to `wp-less_compiler_parse_pre` to avoid name conflicts\n * renamed `wp-less_compiler_construct` action to `wp-less_compiler_construct_pre` to avoid name conflicts\n * lessphp: patched the lib to let manipulating the buffer, and replace strings (do it at your own risks)\n\n= Version 1.3 =\n\n * moved stylesheet processing from `wp_print_styles` to `wp` action\n * added new compiler actions and filters (same name each): `wp-less_compiler_construct` and `wp-less_compiler_parse`\n * added `WPLessCompiler::getBuffer()` and `WPLessCompiler::setBuffer()` method, to enables hooking on LESS content, before being compiled into CSS\n * removed `WPLessStyleseet::getTargetContent` method\n * upgraded `plugin-toolkit`\n * usage of `$WPLessPlugin-\u003edispatch` instead of `$WPLessPlugin-\u003eregisterHooks` to match the new `plugin-toolkit` signature\n * no more configuration collision if usage of multiple plugins using `plugin-toolkit`\n * lessphp: updated to [eac64a9d5a3bc3186a11c7130968388819f4c403](https://github.com/leafo/lessphp/commit/eac64a9d5a3bc3186a11c7130968388819f4c403) commit\n\n= Version 1.2.1 =\n\n * fixed the case where no stylesheet is queued (no warning anymore)\n\n= Version 1.2 =\n\n * added 2 new filters working on freshly transformed CSS\n * added a HTML helper to LESSify directly from templates, without queuying with `wp_enqueue_stylesheet` (can't really recommend this usage)\n * added timestamp calculation so as you can be HTTP cache-control compliant\n * documented plugin hooks and filters\n * hooked a filter to update relative paths to deal `uri` and cached file location\n * lessphp: updated to version 0.2.0\n\n= Version 1.1 =\n\n * added `bootstrap-for-theme.php` to let themers bundle the plugin in their own themes\n * added `WPLessPlugin::registerHooks` methods to ease hooks activation\n * theme bootstrap will only load if the plugin is not alread activated\n * `WPLessPlugin::processStylesheets()` and `WPLessPlugin::processStylesheet()` now accepts an additional parameter to force the rebuild\n * lessphp: updated to version 0.1.6\n * plugin-toolkit: updated to version 1.1\n\n\n= Version 1.0 =\n\n * implemented API to let you control the plugin the way you want\n * just in time compilation with static file caching\n * lessphp: bundled to version 0.1.6\n * plugin-toolkit: bundled experimental plugin development\n\n\n== Frequently Asked Questions ==\n\nLots of efforts have been done to write a [consistent documentation](https://github.com/oncletom/wp-less/tree/master/doc)\nto address issues you may encounter.\n\nIt covers topics like path customization, declaring LESS variables from PHP, creating new LESS functions etc.\n\n== Upgrade Notice ==\n\n= 1.5 =\n\nSome changes in the API may breaks compatibility with your PHP code dealing with `wp-less`.\n\nPlease [open issues](https://github.com/oncletom/wp-less/issues) and describe your technical problems [if the usage is not documented](https://github.com/oncletom/wp-less/tree/master/doc).\n\n= 1.4 =\n\nAs `lessphp` has been upgraded to `0.3.0`, its behavior changed a little bit.\n\nPlease check your LESS syntax [according to the document](http://leafo.net/lessphp/docs/) before applying this update.\n\n== Screenshots ==\n\n1. Sample of LESS to CSS conversion.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthom4parisot%2Fwp-less","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthom4parisot%2Fwp-less","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthom4parisot%2Fwp-less/lists"}