Grav Plugin Fullcalendar

So, by the end of the year, I finally managed to get my Grav ICS Calendar Plugin to display ICS Calendar(s) in a state that corresponds to what I was using during my Wordpress era .
This was a task that I had postponed since my switch to Grav earlier this year, knowing well that this was a Plugin that would need a substantial amount of work to get to a state that was comparable to my old Wordpress Plugin.
For some time, I was thinking about to create a Plugin (technically) very similar to that, but then decided to not follow this route further on, as I would have to basically write it new from scratch. Mainly, because the WP ICS parsing code was heavily outdated, and all the UI stuff could not be easily ported to Grav - so, also here, a complete rewrite would be necessary.
During my search for alternative implementations, I discovered Fullcalendar, checked it out and found if very nice.
But not only nice (which is good, but not sufficient) but also flexible in a means to incorporate into a dedicated Grav Plugin due to

  • good documentation
  • powerful API

So, what I had to do, was basically set up a Grav Plugin skeleton for Javascript functionality and then craft a JQuery based wrapper in a template, that would encapsulate all the fullcalendar functions in a way, so that the resulting HTML Output would essentially do everything what the old WP Plugin could do (except the proper Handling of recurring Events, which are not yet supported by the underlying framework).
Which turned out to not be too complicated, the last important thing left up to today was to display Events from different Calendars in customizable colors (including a Legend to show what is what). Now, with Version 0.1.5 from today, this has come true - enjoy .
And, yes, this Plugin is not only available on GitHub, but also in the Grav Plugins Directory and can thus be installed via the Grav Admin Backend as well as the (CLI-) Grav Package Manager.
Anyone interested can see it in Action on my own Calendar Page.

Kommentar hinzufügen