Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prototype an events page #7

Open
2 tasks done
benhur07b opened this issue Sep 5, 2022 · 4 comments
Open
2 tasks done

Prototype an events page #7

benhur07b opened this issue Sep 5, 2022 · 4 comments
Assignees
Labels
feature New feature or functionality

Comments

@benhur07b
Copy link
Collaborator

benhur07b commented Sep 5, 2022

Expected behavior

  • Shows a list of all events (current, upcoming, and past)
  • Pagination
  • Ability to search or filter events based on tags:
    • topic/theme
    • series
    • language
    • country
    • region
    • date

Current behavior

  • None.

Tests to pass

  • A new page where all events are listed with pagination.
  • Can search or filter events based on tags.
@nikeshbalami
Copy link
Collaborator

Analysis of this issue

Found Jekyll's customization on these tasks was not as flexible as expected for our requirements.

  • First of all the Jekyll theme configuration is fixed and offers things done in a certain rigid way that may not be able to meet requirement of customized functions.
  • Jekyll uses liquid templating language. Though simple rendering is easy based on the Jekyll theme customization it is time-consuming and requires a lot of workaround solutions for customization.
  • For sites hosted on the GitHub pages apart from some default plugins, most of the plugins that may be used are not supported on GitHub pages, which puts a barrier to their use and those solutions need to be written from scratch in the hacky way for it to work.
  • Jekyll's support seems stale and did not find an active developer community and discussions that are crucial for the troubleshooting of frequent problems.
  • So from these findings; came to conclude that Jekyll sites are preferable for the projects that have all requirements predefined from the beginning which will help select the best theme to use for given requirement but for the projects that may have requirements added and may require more customization on the functions the Javascript alternatives for static site generators (ssg) may be better.

Despite all these issues, the progress on the current solutions are:

  • Filtering functions: Adding frontmatter like tags, categories, languages, regions, Listing the available tags, categories along with their count, and listing the events based on these tags on click.
  • Instant search function: Lists all the events based on the queries on the search bar.
  • Pagination: The popular plugin jekyll-paginate-v2 is not supported on GitHub pages so working on the workaround solution that involves the javascript DOM manipulation and liquid templating.

Longterm recommendation
Though Jekyll has the advantage of ease of use, if the project needs customization along the way in the future it would be better to opt for the better ssg alternatives. But if we are fixed on our requirements it is better to use best-suited themes, other alternatives may be to change the theme along the requirement but this solution may also be time-consuming and inefficient.

cc @benhur07b

@benhur07b
Copy link
Collaborator Author

Thanks @nikeshbalami.

I was somewhat expecting the issues you mentioned. I also implement a basic search, tag, and pagination on my own website/blog based on Jekyll and have found these issues present before. Although I was able to implement them in a basic way.

You may want to refer to it for some inspiration here: https://bnhr.xyz/blog/ and the repo is here: https://github.com/benhur07b/benhur07b.github.io

I agree with the assessment. At the moment the requirements are nice to have and not required. A basic search, filter, and pagination should suffice and then we can try to look for a better alternative (maybe a different ssg or framework) once we do v2 (beta).

@nikeshbalami
Copy link
Collaborator

Thank you so much @benhur07b, this is helpful. I am working on implementing a basic search, filter, and pagination.

@nikeshbalami
Copy link
Collaborator

Implemented via #11

benhur07b added a commit that referenced this issue Oct 5, 2022
All event page implemented as per #7
@benhur07b benhur07b reopened this Oct 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or functionality
Projects
None yet
Development

No branches or pull requests

2 participants