Remote CSS Plugin Launched on WordCamp.org

The Remote CSS tool is now available on WordCamp.org. Itโ€™s one of the ideas that came out of last yearโ€™s Community Summit, and it allows WordCamp.org site developers to work with whatever tools they want, instead of Jetpackโ€™s CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. editor.

remote-css-basic

What You Can Do

For instance, you can:

  • Work in a local development environment, like Varying Vagrant Vagrants.
  • Use your favorite IDE or text-editor, like PhpStorm or Sublime Text.
  • Use SASS or LESS instead of vanilla CSS.
  • Use tools like Grunt to automate your workflow.
  • Manage your CSS in a versionย control system like GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/..
  • Collaborate with others on a social coding platform like GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โ€˜pull requestโ€™ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/.

You can use all of those tools, only some of them, or completely different ones. Itโ€™s up to you how you choose to work.

How It Works

Remote CSSย works by downloadingย your CSS file from a remote server (like GitHub.com), sanitizing it to remove security threats, minifying it, and then storing a local copy on WordCamp.org. The local copy is then enqueued as a stylesheet, either in addition to your themeโ€™s stylesheet, or as a replacement for it. The local copy of the CSS is synchronized with the remote file whenever you press the Update button, and you can also setup webhook notifications for automatic synchronization when the remote file changes.

Because of security concerns, itย can only support specific hosting platforms, but itย currently supports GitHub, and we can add others if thereโ€™s interest. If youย want to use Beanstalk, Bitbucket, CodeForge, or something else, let me know.

Contextual Help

The pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party also contains detailed setup instructions insideย wp-admin; justย open the Help tab.

remote-css-help

Itย plays nicely with Jetpack, so you can test it out today without losing any of your current CSS.

If youโ€™re looking for something simpler, though,ย Jetpackโ€™s CSS Editor is still a great option.

If you have any feedback or ideas to improve it, please leave a comment. If youโ€™d like to check out the source code, itโ€™s available in the Meta repository.

#git, #improving-wordcamp-org, #jetpack-css-editor, #wordcamp-org

Editing WordCamp CSS Locally with Git

One of theย Improving WordCamp.org projectsย is to let organizers develop their CSSCSS CSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. locally, and then commit it to a version control system like GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/., and have it automatically updated on their WordCamp.org site. This is the project that I thinkย willย makeย the most impact for organizing teams with experienced developers.

The benefits are that:

  • You avoid all of the pain points of editing CSS in a browser.
  • You can use whatever IDE and other toolsย that you normally use.
  • You get all the benefits of aย version control system, like easier/safer collaboration, history, and a structured approach.

So, Iโ€™d like toย discuss the best way to implementย a system like that.

Implementing a solution

After thinking about it for awhile, this is the bestย approach Iโ€™ve come up with:

(Note: This process has been updated since it was originally published, toย incorporate feedback from theย comments.)

  1. Add a new wp-admin screen under the Appearance menu, called something like โ€œRemote CSSโ€. It will have a field where you can enter the URLURL A specific web address of a website or web page on the Internet, such as a websiteโ€™s URL www.wordpress.orgย for a CSS file, and a button toย pull CSS from that repository and enqueue it locally. The CSS file can be in a source controlย repository like Git, but it doesnโ€™t have to be.
  2. The CSS file can be named anything, and it can be built from supporting SASS/LESS/etc files, but only the CSSย file will be used by WordCamp.org; everything else will be ignored.
  3. The contents of CSS fileย will beย passedย through Jetpackโ€™s CSS sanitization functions, and if thereโ€™s anything left, the safe CSS will beย cached. If there are any errors while fetching the file, the process will abort to avoid overriding the known-goodย version thatโ€™s already stored on WordCamp.org.
  4. When front-end pages are loaded, the cached CSSย will be enqueued as a extra stylesheet, similar to how Jetpackโ€™s Custom CSS is enqueued.
  5. To automate updates, there will also be an endpoint listening for webhook notifications of pushesย to source controlย repositories. If the files changed in the pushed commits include the CSS file, the pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party willย automatically fetch the latest version, sanitize it, and cacheย it.ย Updates will be limited to once every 3ย minutes, to prevent abuse.ย Rate-limited notifications should be queued and acted onย once the limit has expired.
  6. If the fieldon the Remote CSS screen for the CSS file is empty, weโ€™llย display step-by-step instructions for setting up the CSS file,ย webhook, and aย local WordCamp.org sandbox. If the file is hosted on GitHubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the โ€˜pull requestโ€™ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/, weโ€™ll also recommend enabling two factor authentication, toย mitigate the risk of a compromised account leading to CSS defacement or other malicious changes.
  7. Aย new metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. box could be added to the Appearance > Custom CSS page to advertise the option of using aย remote repository.

Does anybody see any problems with that approach, have a different idea, or have any other feedback?

ย 

#git, #improving-wordcamp-org, #jetpack-css-editor, #official-websites, #wordcamp-org