A new project for Pinegrow!
My freelancing and work with Pinegrow has kept me busy lately, so there hasn’t been much time for braying. Needless to say, this donkey needs to exercise his lungs! So, I’m going to start a new series of blog postings detailing the inception and implementation of a new plugin for the Pinegrow Web Editor (full disclosure – I work as a freelancer for Pinegrow, but this is NOT an affiliate link. I don’t make any money if you click through.). This will serve both as an outline for others, as well as keeping me motivated to finish! To be honest, these new plugin ideas are much more intimidating than adding a simple framework.
I’ve been debating what Pinegrow needs going forward. It is a great HTML editor. Has support for creating WordPress themes. I’ve already added a few plugins to implement some newer HTML features that it didn’t include, like ‘srcset’. So, I was debating between a few features that would make Pinegrow a little more attractive than some of its competitors, like Webflow or Wappler.
- A way to interact with a variety of databases, like mySQL, MariaDB, or MongoDB.
- This one seems a bit daunting. Great integration in other products like Wappler, but really a core feature. Might not be that easy from a plugin. (mental note: is it worth doing a tutorial on using something like Firebase with Pinegrow?)
- A FTP client for Pinegrow.
- So both Webflow and Wappler can be used to publish projects to the web. Webflow is somewhat limited in that it only publishes content to their own hosting. Wappler, on the other hand, has built-in FTP, SFTP, FTPS tools. Fairly straight forward, but potentially requires some modification to the Project panel.
- Other thought is that there are some really great FTP clients out there. It means that you have to deal outside of Pinegrow, but…
- GitHub integration.
- I’m not sure of the status of versioning in Webflow or Wappler. If you are using the VSC or Atom plugins you can interact with GitHub through those programs, otherwise you can use the terminal.
Hmmmm, choices, choices, choices!!!
And the winner is —– GitHub! (You may have already guessed this from the image at the top.)
I think it would be great if Pinegrow could be a truly stand-alone product. Being able to have real version control from within Pinegrow would be perfect. However, FTP, I’m looking at you next!
So, the first thing we are going to want to do is figure out what we need in a versioning client. Here are my thoughts so far.
- Create a repository
- Clone a repository – maybe
- Create a new branch
- Stage Changes – hmmm, can we track changes in Pinegrow?
- Add commit messages
- Push changes
- Add pull requests – maybe, however since it is our own repository this may be overkill and better handled through GitHub directly?
- Merge branches – same thoughts as the pull requests
- read and write a ‘.git’ file
- read and write a ‘.gitignore’ file
Okay, do that is a teaser for what is coming up next. For the next tutorial, I want to decide if we are going to just use the straight GitHub API, or add some fancy wrapper to make our lives easier/more complicated. Then, we will potentially begin to set-up our basic plugin boilerplate.
Modest beginnings to this series, but I welcome your feedback!
As always, if there are any questions, criticisms, general comments, please send me an email or comment on this post. I’ll try to respond to everyone.