H&D website v2
The following is a broad outline for the plans we have to re-build the current frontend website of H&D.
The current setup is composed of a Python program that reads from the WikiMedia instance of H&D (that we use as a CMS of sort), and build up a series of pages:
- a main page showing upcoming and past events
- a section page, listing pages under a specific Category
- an article page, displaying a single wiki article
While this structure holds well, there’s been some evolution in the type of content and the way we want to organize it. An explicit example of these problems can been seen in the ever-growing number of items forming the main navigation bar.
Moreover, there are still some ongoing difficulties when using some functionalities of MediaWiki (eg when using Concepts, or when making articles with particular titles), that should either be better documented, or re-thought of.
Starting from the above situation, here our plan:
- re-write the current Python program (currently using Werkzeug) into a more approachable codebase (eg by converting it to Flask — yes, Flask is built on top of Werkzeug), that can be understood and extended by more people; this includes:
- improve routing
- split functions and make them composable
- make it easier to add new features (when necessary)
- better error handling when something goes wrong in the wiki (eg it does not bring the frontend website completely down, as it happens now)
- re-think how top navigation works, both on wiki level as well as on frontend side (see Concepts problem)
- add multi-language support (this should be done on MediaWiki, and then implemented to the frontend)
- focus on making the website highly accessible for users with different disabilities; keyboard navigation, text-to-speech, english and dutch language, small bandwidth consumption
- better integration to the rest of the software that H&D setup and or built in these years: etherpad, livestream, mailing-list, etc
- add a search function to the frontend, to query the wiki-backend
- integrate more the wiki bits of MediaWiki into the frontend, eg show article’s last change timestamp, article’s history, if the article you are reading has been referenced in another article (within the wiki), etc; this can be put under “transparency”