Hi,

I was thinking on improving the package-related pages, and made these mockups:


Figure 1. Package list page.
https://multimedialib.files.wordpress.com/2016/12/guixsd-package-list-view-v0.png

Notes:

- The gray circles indicate package logos.
- The red tag next to the name of a package indicates it has issues (I don't know if just issues as in https://www.gnu.org/software/guix/packages/issues.html or building problems as well). - Packages are grouped in numbered pages because displaying a given set of packages in one page may bring back the page size issue. For example, the current page with packages that start with G is already ~1 MiB. - The option to browse by category is something I'd like to have, but I don't see categories in package definitions, so I don't know if we could use that. - The option to browse by architecture... I just put it there, I don't know if that's needed.


Figure 2. Package detail page.
https://multimedialib.files.wordpress.com/2016/12/guixsd-package-detail-view-v0.png

Notes:

- The screenshots is something I'd like to have, but I don't know how that can be done. - The issues for a package would be in the package page, so the current issues page would be removed.


URL paths
=========

Implementing this would create web resources in paths like these:

/packages/
(Packages home page)

/packages/z/
(First page of the list of packages starting with letter Z)

/packages/z/page/N/
(Page N of the list of packages starting with letter Z)

/packages/categories/algebra/
(First page of the list of packages for algebra)

/packages/icecat-X.Y.Z/
(Page with details about IceCat version X.Y.Z)

This static pagination and filtering would generate A LOT of pages, but of reasonable size for web browsers to load.


Possible problems with the implementation
=========================================

I mentioned this proposal in bug #25045, and it seems that the amount of pages generated for the filtering part of this implementation could choke CVS, which is used as the deployment repository of the website (see https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25045#17).

I quote Ludovic from that bug report:

Sounds like a good plan as well, though that’s indeed a lot of web pages
for that rusty CVS repo to handle…

Medium-term, I think we should consider a solution involving pages
generated on the fly server-side, with a caching proxy (nginx!) in front
of it.  We’ll have to seek assistance from the gnu.org web masters, but
ISTR they were not against that idea.

That said, the proposed design, if useful, could be used independent of the nature of the website (static or dynamic).


What do you think?

--
Luis Felipe López Acevedo
http://sirgazil.bitbucket.org/



Reply via email to