Open Source is awesome, PHP Quill Renderer v3.01.0

A few hours after arriving at work I got an email from GitHub letting me know about a posted issue on one of my Open Source libraries, turns out I had missed a couple of things in my testing.

When I create a library, I have a use case in mind; typically I’m trying to solve a problem specific to one of my projects, having an extra set of eyes reviewing my libraries and using them differently is terrific.

I’m always happy to receive bug reports; each fix improves the library. Hopefully, there will not be too many more but if there are I will jump on them to fix the issue.

I have released v3.01.0 of my PHP Quill Renderer; Parser::load() wasn’t resetting the deltas array, and the Compound delta was incorrectly trying to handle images with multiple attributes assigned.

PHP Quill Renderer v3.00.0

I have released v3.00.0 of my PHP Quill renderer; the rewrite only took three weeks, I expected it to take a little longer, but once I put fingers to keyboard, it came together very quickly.

I had a significant head start when I started the rewrite, I had the design down on paper, and I had the unit tests from v2.03.1, it can never be over-stated, when your library has good test coverage working on an almost complete rewrite is a joy.

I’m hoping v3.00.0 will be well received; I’ve had more emails than I would have expected from other developers asking for progress, raising bugs and thanking me, developers appear to be using it.

The new design is much more flexible than v2.03.1; it should make it simple for me to support the rest of the features in Quill without continually adding hacks, a colleague at work helped pushed me in the right direction.

I now need to work on the v3.01.0 release to tidy up a few issues and then create a simple demo site to show live use; the one-page website will display a Quill editor, the delta after submission and the output in the requested format as well as the PHP code itself.

v3.00.0 supports all the features present in v2.03.1; it fixes the issue with paragraphs sitting next to lists and paragraphs being ignored and includes additional test coverage.

Row and column view helpers

Over the weekend I released updates to three of my libraries, Zend Framework 3 view helpers has been bumped to v1.02.1, Zend Framework 3 view helpers code completion is now v1.07.0, and Bootstrap 4 helpers is now at v0.04.

I added row and column view helpers to the Zf3 view helpers library, the other libraries have been updated to include the new additions.

For an overview of all my libraries, visit Transmute-Coffee.com, to get the code, go to GitHub.

Library updates

I’ve just pushed three library updates, the Bootstrap 4 helpers library is now at v0.03, the Zend Framework 3 view helpers library is at v1.01 and the sister library which provides code completion is now at v1.06.

I’m slowly adding support for additional Bootstrap components, this time the alert component, details and links can be found at Transmute Coffee.

Dlayer, vNext

This is a cross post from the Dlayer.com blog, it is relevant here because their is a good chance I will be releasing new open source libraries related to the tools development.

Development work on Dlayer vNext is deliberately slow; I’m attempting to ensure that any and all of the core architecture issues I noticed developing version 1 get resolved.

I spent a considerable amount of time on the UI and UX for version 1 of Dlayer, very little of that will change for vNext. My issues with version 1 can be summed up in one word, modular, as in, the app wasn’t.

There are two parts to the problem; the designers were not modular, in Zend Framework 1 (modules were a bit of a hack), and two, the tools were not plug-and-play.

Modules

This one is easy, by switching to Zend Framework 3, and being careful as I develop, the modules can behave as real modules, turn them on or off, transfer to different apps, all possible

Plug-and-play

The tools in version 1 of Dlayer had too many hooks into the system; they could be disabled dynamically, but you could not drop a tool into another module or quickly remove the code for a disabled tool.

On paper, I have a new plan; and I am in the middle of prototyping to see if it solves the core issues.

The solution is complicated; it will take time to develop examples of each tool type. However, as soon as I am sure the design is right, it simplifies the rest of the app.

Simpler app

The tools in version 1 were solely data management within the designers, in vNext, this changes.

The tools in vNext are responsible for everything relating to the content item, including, how the content is displayed in the WYSIWYG designer. The app at this point is merely a vehicle to provide access to the tools.

 

 

Library updates and two new sites

I treated myself to a little time off after my contract ended, I’m back now and have a few minor updates.

There are new releases for two of my packages, v0.60 of the Zend view helper library and v1.04.1 of the Zend view helper code completion library. The view helper library now has initial support for the following Bootstrap 4 components;

  • Bootstrap 4 Badge component
  • Bootstrap 4 Button component
  • Bootstrap 4 Card component
  • Bootstrap 4 Jumbotron component
  • Bootstrap 4 Navbar component (lite)
  • Bootstrap 4 Progress bar component
  • Bootstrap 4 Multiple progress bar component

In the last week, I released two new single page sites, Transmute Coffee and Professional Coding: What to expect?, both are mere placeholders for now but will gain additional content soon ™.

Dlayer, ZF3 and Composer libraries

I’m cross posting this post on two of my blogs because it is relevant to both sites, my blog and Dlayer.

I started development of the second rewrite of Dlayer using version 1 of the Zend Framework, in the following years I concentrated on building Dlayer rather than the underlying framework. With the EOL of Zend Framework 1, I can’t honestly continue on this path.

I started to move Dlayer over to Zend Framework 2 early last year but never got anywhere; I’m am now in the process of moving it to Zend Framework 3.

What does that mean for Dlayer?

I am in the process of developing v1.17, which will be released, and I will probably release another version of two, however, from this point forward I will focus the majority of my time on the migration.

I am migrating Dlayer; I am not undertaking another rewrite, sure, I will improve a few things along the way, but my goal is to migrate to Zend Framework 3 as quickly as possible,

Composer

While I migrate my code, I am taking the time to review it. If I see a tool or group of functions that is not unique to Dlayer, I will try to pull them out and turn them into a composer package.

So far I have four composer packages in progress, a PHP Quill renderer, Bootstrap 3/4 Zend Framework view helpers, Zend Framework view helper code completion and a random grab bag.

You can check out my composer packages at packagist. I’m going to have a website to showcase all the packages, so far I have only purchased the domain, as soon as the first version of the grab bag is release I will work on the website.

Which rich text editor?

For a while, I have been thinking about which rich text editor to include in Dlayer, after considered review I opted for Quill, in the end, it came down to Quill generating data (deltas) and not HTML.

Unlike the other rich text editors that I reviewed this creates a problem, how do I display the HTML within the designer?

On Saturday I created a PHP Quill HTML renderer, it loops through the inserts and generates the required HTML. The renderer is limited, it only supports bold, italic, strike and underlines at the moment.

Eventually, I will add support for every attribute, for now, though, I am trying to get the renderer and Dlayer working, so I figured supporting those four was a good start. In the short term, I will be adding support for links, images, videos, lists and headings.

The Dlayer MVP, how open sourcing the app helped me

If I ignore the inevitable restarts, I have been working on the minimum viable product (MVP) of Dlayer for a little over three years; it is astonishing how quickly time passes when you have a career and family.

I’ve been working on Dlayer demo, a responsive web development tool, one way or another, for almost a decade. In that period I got married, we have a three-year-old son and have moved half way across the country (small country).

I had an idea for a product, and I plan to realise it.

To say it has been tough would be a massive understatement. Realising Dlayer has been challenging, finding the time and money to work on my projects isn’t simple, it is about balance, you need to ensure you have enough cash flow to ensure your family is safe and comfortable, but on the other hand, you need the time to develop your projects.

I always planned on Dlayer being a private commercial product, 18 months ago I changed direction. After years of solo development and countless more ahead of me, I came to the conclusion that it is not possible to do this alone, I need help, but more importantly, I needed to relieve any stress from attempting to singlehandedly design, build and finance a complex product.

It took 18 months to prepare Dlayer for the official v1.00 Open Source beta release, but I got there, at the tail end of last year I released the first version.

Dlayer isn’t ready for prime time yet; there is still much to do, progress is consistent, and I’m getting my house in order so that the first contributors have a great experience.

As soon as you Open Source a product and realise that the eyes of other developers could be looking at your code you wake up, the quality goes up, standards you aim to adhere to get met and working practices in general improved, thank you.

Dlayer, v1.00

I’m happy to announce that today, I released v1.00 of my Open Source project, Dlayer.com.

It has taken a lot of work to reach this point, I’ve restarted the project multiple times, got married, had a child but finally, I reached a point where I was happy to release the project officially on GitHub.

The v1.00 release will act as a stable base for all future development; there is a long way to go, please read the release at Dlayer.com try out the demo. If you have any feedback, positive or negative, please let me know, I will also work towards releasing the roadmap at some point next year.