langserver.github.io icon indicating copy to clipboard operation
langserver.github.io copied to clipboard

Use Jekyll to seperate data from markup

Open adamvoss opened this issue 7 years ago • 8 comments

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.

adamvoss avatar Jun 18 '17 04:06 adamvoss

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.

adamvoss avatar Jul 11 '17 02:07 adamvoss

@felixfbecker Thoughts? (you appear to be the main maintainer)

adamvoss avatar Jul 19 '17 17:07 adamvoss

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

felixfbecker avatar Jul 19 '17 18:07 felixfbecker

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.

adamvoss avatar Jul 19 '17 18:07 adamvoss

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.

VMatrix1900 avatar Sep 27 '17 03:09 VMatrix1900

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.

adamvoss avatar Sep 27 '17 12:09 adamvoss

Then we can open pull request to improve the MS page to track the same information as this site does.

VMatrix1900 avatar Sep 27 '17 13:09 VMatrix1900

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

jayvdb avatar Mar 21 '18 03:03 jayvdb