I'll try to keep everyone up to date on the crazy stuff I'm doing.
There's been a couple of bugfixes and issues raised with the pretty printer, so I'm releasing an update. Thanks go out to the people who submitted issues on github and others who contacted me directly. Your suggestions and pull requests are reflected in this release.
Not much really changed, but a couple new properties were added and the webkit gradient "side or corner" rule was fixed. The rest of it all stayed the same.
So, are there any requests for things you need out of a CSS pretty printer? Anyone want special things added, such as minimizing or obfuscation of some sort?
After putting many hours of work into the tests and finding odd little problems with how I was handling some of the CSS3 values, I am happy to announce that version 0.3.0 has just been released. Get it now from the Download page, or view a live demo to understand more about how it works.
This release includes tests for all of the values for the properties I've defined (not quite all of them, but it will be difficult to find something that wasn't covered). There's also other tests and a couple functional tests that do pretty printing and validation of actual CSS files.
My next task is to get some better documentation written and put on this website. Stay tuned!
It's taken a long time and I had to get outside help, but now the CSS validator actually validates CSS! Go ahead and accidentally use "display: bloc" (purposely misspelled) and the tool will now call you out on it. I also detect when you are using deprecated properties and sometimes suggest alternatives.
The next step is to kick it around a bit and parse our CSS. We only have approximately 1.3 megs of CSS (78k lines) which should get checked. I'll be working on refining the command-line utility during this time and hook it into our source code management tools. The entire UI team will be eventually exposed to this tool and I'm looking forward to their feedback. I need to know what more they would expect from this tool and how it could make life easier in other places.
After the initial feedback and during lulls in feature development, there is still the matter of adding block-level validation. For instance, if you use "opacity", you probably also want to use the IE-specific "filter" property.
I'll hang my head a bit and admit that I've added tons of code without tests. This must not be allowed to continue, so those missing tests will be written after we get our CSS files all checked. Documentation must also be written before releasing version 1.0.0.
So, now the challenge is up to you - does this tool do what you need?
With some help from a coworker, the PrettyCSS validation works to our satisfaction on our CSS. It's a combined 78,000 lines spread across 200+ files. Now all that needs to get done is to write a command-line tool in order to plug it into our Git hooks. This will automatically validate all changed CSS as well as pretty print the results so we have a consistent look to our files.
It's good to get this work to a point where it is usable for a team of developers. I will get more feedback and potentially additional CSS declarations that need to get parsed as they will now be able to focus more on CSS3 properties (our older tool didn't support them).
I'm happy to say that I received permission to move some git documentation out of a top secret location and into a far more public location. I'm reworking the markup and trying to clear up some passages as I go along with this copy and paste job.
If you are a git guru and you have additional tips for me to post, feel free to let me know with a comment or email me your request directly. I'm sure others may benefit from any extra information that can be added.
The software that is being written in order to check and reformat CSS files is progressing nicely. I'm to the point that most of the CSS spec has been implemented, warning codes are generated, and this is getting significantly closer to being usable. We are writing unit tests to make sure that the software works as expected, and I'm very thankful for these tests. They have exposed a couple bugs that my test CSS file didn't show, and the code is much better for it.
If this tool looks like something that would help you out or fill a need of yours but you need some modifications to get exactly what you want, please don't hesitate to contact me. I want to make a general-purpose tool that would really help a lot of web developers and UI designers. To that end, if I had more people who write CSS for a living and they were to email me with the features they would want, then I would have a much better picture of what's needed and a more complete understanding of how this tool could assist others.
Stay tuned for more updates!
First off, I have finished up enough tests and improved the code to do error detection and I am finally happy enough to release v0.1.0 of the CSS pretty printer. The next big thing is actual validation of the declaration keys, values, and everything else. It turns out that I will be very fortunate and will receive help on this next part over the next couple weeks. That should really provide a huge boost in getting the software more complete.
Secondly, due to popular demand, I have added a new section to my website. It's titled "Problems Only Tyler Has" because I apparently have a lot of really obscure issues. I eventually find or write a solution and my coworkers suggested that I start writing these solutions up in order to benefit others that have the same problem. I hope that they exist so that my work is useful for someone.
After much work, and thanks to my employer, there is finally another CSS beautifier in the world. It existed in a broken state before, but now PrettyCSS is actually working. It currently does not do much more than removing invalid structure (just like a web browser would) and complete control over the whitespace. However, this means you can minify your CSS safely with this tool and shrink your CSS files down a bit. It can also pretty print CSS files before you commit them to a repository, ensuring that all of your developers work with one consistent structure.
Next up will be adding tests to the code, better handling of invalid structures, and then starting on property name and value validation.
I've already got a tokenizer working and I am building a set of classes to work together as a parser.
When done, this should be able to work on a server with node.js or something similar as well as in a web browser when embedded into a web page.
Welcome to my future home for the documentation of some PHP tools I'm helping to write.
Note: I did say future home, not current home.
1-10 of 10