Finishing touches
Our gameplay evolves nicely. Only a few pieces left. Thinking about our game's UI, we'll want to show the game's progression, indicating the articles the player has navigated through. For this, we'll need the titles of the articles. If we could also include an image, that would make our game much prettier.
Fortunately, we are now using CSS selectors, so extracting the missing data should be a piece of cake. All we need to do is add the following to the Wikipedia
module:
import Cascadia: matchFirst function extracttitle(elem) matchFirst(Selector("#section_0"), elem) |> nodeText end function extractimage(elem) e = matchFirst(Selector(".content a.image img"), elem) isa(e, Void) ? "" : e.attributes["src"] end
The extracttitle
and extractimage
functions will retrieve the corresponding content from our article pages. In both cases, since we only want to select a single element, the main page heading and the first image respectively, we use Cascadia.matchFirst...