langserver.github.io
langserver.github.io copied to clipboard
Use Jekyll to seperate data from markup
The information from the tables could be stored in one of the languages supported by Jekyll (YAML, JSON, or CSV) then the page could built via Jekyll with use of Liquid templates. GitHub Pages would take care of the building. This should make it easier to add implementations and easier to change the markup in the future (if desired).
Happy to submit a PR if interested.
This would also help reduce merge conflicts such as have been experienced in #10 because new servers could be added without editing the HTML layout.
@felixfbecker Thoughts? (you appear to be the main maintainer)
I'm a bit worried that it would raise the barrier to contribution. Everyone understands HTML, but to try out changes locally with Jekyll, you would need to setup a Ruby environment and install the needed gem
I can see that as a valid concern. bundler
takes care of the gems question nowadays, but there is still the need to install ruby/bundler and needing to serve the page with Jekyll to preview. This is all the same situation with any GitHub Pages-based site, but still a concern.
This may be offset slightly, in that there could be less need for previewing if you are just trying to contribute a new or updated server since you do not need to touch any HTML. This would be an analogous YAML-based example. Issues in such a YAML file would be more obvious to spot than an error in the HTML. However, for anyone wanting to change up the HTML markup, Jekyll would be unavoidable.
Separate data from markup is definitely better. But I am not very familiar with Jekyll with Liquid templates. Mircrosoft already maintains a list of protocol implementations in their repo. So can we just use that for data and convert that page to Liquid templates somehow? That would solve the barrier to contribution issue as well.
As examples you can see:
template: https://raw.githubusercontent.com/json-schema-org/json-schema-org.github.io/master/implementations.md data: https://github.com/json-schema-org/json-schema-org.github.io/blob/master/_data/validator-libraries.yml
template: https://github.com/macchina/showcase/blob/master/libraries.md data: https://github.com/macchina/showcase/blob/master/_data/arduino-libraries.yml
I don't think using MS as a data source would work because it does not track as much information as this site does.
Then we can open pull request to improve the MS page to track the same information as this site does.
I found one PR here for adding a client to the MS repo: https://github.com/Microsoft/language-server-protocol/pull/423
If they are regularly merging that type of change, it makes sense to inquire if they are willing to also host status of WIP adoptions.
They use jekyll on the gh-pages branch