Github pages uses Jekyll, a static site generator. Your site is built once when you push to your gh-pages
branch. After that, your browser is just served the generated HTML pages. All the iterating over your YAML files is done at generation time, not when you request the pages. Since you have no server-side code that is executed when you change your dropdown, you cannot process a query parameter.
Since you cannot process query parameters, you need to place your cars on different URLs. Here's a simple example how to change URLs with a <select>
and JavaScript, using the code from this answer:
<select name="" onchange="javascript:location.href = this.value;">
<option value="/mypage/car1/" selected>Car1</option>
<option value="/mypage/car2/">Car2</option>
</select>
Then you just need to generate the HTML pages for each car, located at /mypage/car1/
and /mypage/car2/
respectively. That can be done by using your YAML data as part of the YAML front matter. For example, this could be car1.md
:
---
layout: car
permalink: /mypage/car1/
data: # data of your car here
name: my very awesome car
---
Markdown content here (leave empty if you don't need it)
You then create the layout _layouts/car.html
and in it, generate the appropriate HTML page. For example, to show the car's name, do something like:
<label>Name:</label> {{page.data.name}}
To avoid JavaScript, you can also create a dropdown menu containing <a>
links with pure HTML+CSS.