Copyright held by
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Further details of licences are available from our
Licences page. For more
information, contact the project director,
Provider: University of Victoria
Database: The Map of Early Modern London
Content: text/plain; charset="utf-8"
TY - ELEC
A1 - El Hajj, Tracey
ED - Jenstad, Janelle
T1 - MoEML’s PDF Files Process
T2 - The Map of Early Modern London
PY - 2020
DA - 2020/06/26
CY - Victoria
PB - University of Victoria
LA - English
UR - https://mapoflondon.uvic.ca/pdf_about.htm
UR - https://mapoflondon.uvic.ca/xml/standalone/pdf_about.xml
ER -
RT Web Page
SR Electronic(1)
A1 El Hajj, Tracey
A6 Jenstad, Janelle
T1 MoEML’s PDF Files Process
T2 The Map of Early Modern London
WP 2020
FD 2020/06/26
RD 2020/06/26
PP Victoria
PB University of Victoria
LA English
OL English
LK https://mapoflondon.uvic.ca/pdf_about.htm
Project Manager, 2020-present.
Junior Programmer, 2018-present. Tracey is a PhD candidate in the English Department at the University of Victoria. Her research focuses on Critical Technical Practice, more specifically Algorhythmics. She is interested in how technologies communicate without humans, affecting social and cultural environments in complex ways.
Programmer, 2018-present. Junior Programmer, 2015-2017. Research Assistant, 2014-2017. Joey Takeda was a graduate student at the University of British Columbia in the Department of English (Science and Technology research stream). He completed his BA honours in English (with a minor in Women’s Studies) at the University of Victoria in 2016. His primary research interests included diasporic and indigenous Canadian and American literature, critical theory, cultural studies, and the digital humanities.
Janelle Jenstad is Associate Professor of English at the University of Victoria, Director of
Programmer at the University of Victoria Humanities Computing and Media Centre (HCMC). Martin ported the MOL project from its original PHP incarnation to a pure eXist database implementation in the fall of 2011. Since then, he has been lead programmer on the project and has also been responsible for maintaining the project schemas. He was a co-applicant on MoEML’s 2012 SSHRC Insight Grant.
Our editorial and encoding practices are documented in detail in the Praxis section of our website.
PDF documents are created by transforming the html
source document to an XSL:FO
file that gets processed into a fixed (image-like) PDF document. In order to get to the final format that we want, the files are processed multiple times. Our main concern is to preserve as much of the theme and feel of Early Modern works in general, and
XSL:FO
) requirements and restrictions. To this end, we carefully create attribute-sets documents that replicate the styling of the source file, within the limitations of FO. This means that we need to account for some inline attributes and values that we cannot know to generate globally for the project, along with the ones that we can generally retrieve from appropriate CSS
files. Thus, we parse the style element of each document (inside the
then parses the source file and assigns appropriate attribute sets to the corresponding FO elements.
The cover page is delicately designed to represent the feel of the project and the primary source
PDFs have a hybrid metadata title page that contains the title of the work, author(s), compiler(s), editor(s), and the publication information, which basically indicates the version of
When building a PDF document, the build application first retrieves the source file from our Jenkins repository. The file gets processed to remove elements and details that are mainly for web purposes including (but not limited to) navigation, breadcrumbs, search, and send feedback. The build application then creates the special styles module, which is the one that contains the document specific styling attributes. This module gets included in the master file. Further, to create the PDF files, we need to copy images and fonts, which is achieved by the build application during the process. The process also checks for the latest version of the FOP
application, and downloads it if it is not available.
Note that a global file, named pdf_globals.xsl
, contains functions, variables, and parameters that are common to the entire build process and files.
In order to create the final file and document specific XSLT
code, we process multiple XSLT
s that write and override general PDF code. For example, add_special_styles_to_fo_master.xsl
allows us to include a special document styles module in the master XSLT
. The PDF global file also has functions that allow us to add specific classes and their attributes to the elements. It also creates a document that contains the classes and attributes, with the name of docID_styles_module.xsl
. The resulting XSLT
has a function – getAtts
– that overwrites attributes and values that would otherwise break the FO file.
The PDFs will be published on
For more detailed information about the PDF building process, please see the developers’ PDF documentation.