Week Beginning 9th March 2026
I divided my time between four projects this week: Playbills, the Burns Supper Map, the place-names of Armagh and the Dictionaries of the Scots Language. For the Playbills project I spent some time processing the Playbill images. These were stored in hundreds of directories in many different file formats, including HEIC that is an Apple-specific format, JPEG, PNG, GIF, TIFF and even PDF. Thankfully I discovered that the command-line tool ImageMagick can process HEIC files in Windows and I wrote a script to find all image files across the hundreds of directories, move them to a single folder and convert them (where necessary) into JPEGs. It took a while for the script to execute, but it did so during Monday evening and successfully migrated 17,406 image files.
On Tuesday I then wrote a further script that picked out just the images actually referenced in our current dataset (so 1902 images) and I uploaded these to the server. I then worked on the page through which the image can be viewed. I’d already created the playbill page last week, through which the textual representation of each playbill can be accessed, and it was now a matter of adding in an OpenLayers viewer that would load in the image and enable users to zoom and pan around it. Eventually we’re hoping to connect this to a IIIF server, which will make loading the image a lot quicker, but for now the view just loads in the full, high-resolution image when the page loads. As this can take some time I added in a loading ‘spinner’. I also made the image pane as tall as the browser window and the text pane is the same height, with text scrolling if it’s longer than the pane. This ensures you can still see the image as you scroll down the text. You can also press on the icon in the top right of the image pane to view the image full screen. The following screenshot shows how things currently look, although bear in mind that the interface is still very much a work in progress – it doesn’t work very well on mobile devices yet, for example.
I also had a chat with Deven about the process for consolidating and amalgamating records using spreadsheets, and once Deven has completed this process I’ll update the data and continue to work on the site.
The Burns Supper Map took up much of the rest of the week. My work included fixing an issue with ‘guests’ not working in the short URLs, relocating a New York supper that was appearing in Barcelona to its proper location and adding ‘Source’ to the table view. I then implemented the ‘Download CSV’ option, which includes all of the fields from the table view and outputs the CSV using a purely JavaScript approach rather than connecting to the server.
I also added ‘country’ to the advanced filters, and fixed a few typos (e.g. ‘Astria’). It took several hours to implement the update, as ‘country’ is free-text and includes spaces and characters such as the colon that don’t work well in URLs. I’ve therefore had to create a new field that stores URL-friendly versions of the name and it is this that is then used for search purposes.
I then moved on to processing the supper images. This was quite nicely timed as the processing was very similar to what was required for the Playbills project (lots of different image formats with files spread across countless directories) so I could adapt the script I’d written earlier in the week. I set the script to migrate all of the images to JPEG and to copy them all to once single location with a standardised filename.
With image processing complete, I uploaded the files to the server and began work on the ‘images’ tab in the supper record pop-up, which I managed to complete. I decided to use the Bootstrap carousel to display the images, as it works very well and has support for touch controls (e.g. swiping left and right). Addin in Bootstrap (which the interface was not previously using) caused a few layout issues as some existing styles were overwritten by Bootstrap’s styles, but I was able to sort these issues out.
Where the supper has one image it just gets displayed, but where there is more than one image the carousel navigation buttons appear on the left and right of the image, allowing you to scroll through. One issue I encountered is that we have a mixture of portrait and landscape images, and this causes some layout problems. However, I’ve managed to sort this and I’ve given any extra space a black background, which I think works quite well. Another thing to note is that all of the images are loaded into the carousel at once, so for a record that has hundreds of images, or very large image files, it can take some time before everything gets loaded in. This won’t be an issue for long, though, as we’re going to pick out just a few imager per supper (some currently have as many as 200) and I’m going to resize the images (some are currently up to 16MB). Below is a screenshot of the image tab showing the image tab and accordion for one Burns Supper:
I also realised that people are going to be pretty interested in seeing the images so I added an option to the advanced filters that allows you to limit the display to records that include (or don’t include) media.
For the DSL this week I added in a user feedback popup to our test site and also at a temporary URL on the live site so that the team can test out how the popup will function. As the live and test sites use different user interface frameworks I needed to implement the popup separately for each site, but it didn’t take too long to set up.
On Friday I returned to the Place-names of Armagh resource, which I’ve not worked on for a few weeks. The PI Mícheál had gone through the lists of parishes and baronies and had noted which needed to be merged or deleted, and I spent some time processing the data, moving place-name records to different parishes or baronies as required. I also spent some time writing a script to extract the Irish forms and translations from the ‘analysis’ field (which is actually called ‘description’ in the database). The outputted table displays fields for the PID, the name and the current contents of the Description field in these columns. The ‘Irish Form’ column extracts all italic text. As there are often multiple italicised pieces of text and in such cases each is extracted and separated with a slash, and tags are displayed rather than being rendered in this and the following two columns as I’ll need the tags when I grab the data.
The ‘Translation’ column includes all of the text from the first paragraph of the description, except where this contains ‘reference’, ‘uncertain’ and ‘details’ as these text to signify that it’s not a translation. Any other text gets added to the ‘Remaining Text’ column. Unfortunately it looks like the policy of using italics for Irish forms is not used in later records, and also it looks like the HTML is malformed in a number of these later records, so all text for these rows has just been added to the ‘Remaining Text’ column. I might be able to further process things to sort some of this. But for now I’ll need to wait until Mícheál has a chance to look through the output and decides whether he wants to use it.

