[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ML] Hosting of gnustep.org

From: David Chisnall
Subject: Re: [ML] Hosting of gnustep.org
Date: Tue, 19 Jan 2021 12:42:07 +0000
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1

On 19/01/2021 12:12, H. Nikolaus Schaller wrote:
How would all this work for dynamic content 
likehttp://www.gnustep.org/softwareindex/  ?

Can you be a bit more specific? At first glance, that looks pretty static: There's a top-level index page and a load of child pages. I'd put each of the entries in a Markdown file with the metadata in the YAML frontmatter. Jekyll can load that as a collection, sort and index it, and generate the main page and each sub page from templates. Each of the sub-indexes (Application, Developer Tool) and so on is just the top-level index filtered by things that match some key in the metadata.

The only dynamic thing that seems to work is the search box. Given that this is searching from under a hundred things, all of which can be downloaded in a single HTTP request quite cheaply, you could do that client side in less than one network round trip time.

How can you make pages that can be sorted/filtered dynamically on user-request?

Normally, with client-side JavaScript. I realise that some people dislike JavaScript, but in 2021 I think that battle is probably lost.

There are off-the-shelf JavaScript things for sortable / filterable / searchable tables, I quite like this one, which gives you a single .js file and falls back to a non-sortable table gracefully if JavaScript is disabled:


I don't seem to be able to sort the table with the live version and the filter by OS and Model boxes let me filter by Any, with no other options in the drop-down.

Making the filter box work on the summary table is pretty trivial, just iterate over the table entries, hide (set the hidden property in the DOM) any table rows that don't match the search term.

Using a database or any server-side scripting seems massively overengineered for this. If the software index grows to have thousands of entries, I'd change my mind, but the complete data for the summary table is likely to be a couple of K and so you're likely to need more network traffic for boilerplate on multiple page requests with the same template than you save by filtering the contents on the server.

How can you make a page with user-generated change requests send out an e-mail 
to reviewers for approval?

I wouldn't. Folks that want to update it can raise a GitHub PR that has their new Markdown file in it. They can install the github-pages Ruby Gem and run jekyll-serve locally to test how their changes will look before submitting. GitHub automatically sends emails about PRs to all maintainers of a project.

I've seen this scale to projects with hundreds of contributors, I don't imagine GNUstep having problems with it. Looking at that index, it appears as if it averages less than one update per month currently.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]