smartable
JavaScript module enables easy and flexible way of visualising any custom YAML/JSON data (coming from external sources or hosted directly on GitHub) as a feature-rich HTML table.
The JavaScript as well as the generated HTML do not require a dedicated hosting web server. Instead, the Github feature called ‘GitHub Pages’ is used to host everything a single-page web application.
There are probably dozens of other smart tables libraries floating about that provide similar functionality. Nevertheless, this one aims to address several rather “unique” requirements:
range of numbers
, IP addresses / Subnets
or Versions Strings
.At the time of creation there were no fitting libraries that could easily fulfil all of those goals, so here is “yet another JS library”, enjoy.
The generated HTML tables are “smart” as they provide the following features out of the box:
There are certain limitations and assumptions that one needs to be aware of before using the library in its intended way:
smartable
enabled application) does not provide any authorization mechanism, so the generated HTML pages would be openly accessible to all those clients who have ordinary network access to the GitHub server, without the need to provide any credentials (although, hosting the web application on GitHub is not a must - the library can also be hosted on any other web server where any authentication / authorization concept could be realized).smartable
format.This little framework is not supposed to be universal / super-advanced / feature rich library, not by a long shot. It addresses a very specific use case: serving YAML data as interactive HTML tables (using GitHub pages). There are hundreds of other features and ideas one could potentially bring into this, no doubt. But then again, there are probably hundreds of other JS libraries allowing you to work with structured data anyway. Please understand this and don’t ask for new features or support unless something is really broken in the current implementation. I am publishing this on GitHub not to compete with other libraries but rather than a source of inspiration for others. If you cannot make this work for you, please look elsewhere as I cannot afford time for individual support. If you find it useful in your projects, I’d appreciate if you could give my effort some credit or attribution.
Thank you for understanding.