diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 9b85fb5c..faf0d5b4 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,3 +1,4 @@ +# Sample workflow for building and deploying a Hugo site to GitHub Pages name: Deploy Hugo site to Pages on: diff --git a/CHANGELOG.md b/CHANGELOG.md index 115712eb..178b9336 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # CHANGELOG +## Issue 5 + +- Caption functionality added for deepzoom and sketchfab shortcodes +- New instructions for using Docraptor to produce PDFs +- New acknowledgements functionality with dedicated formatting +- DOIs now minted by Princeton University Libraries using CrossRef +- Embedded tweets from Twitter accounts no longer active now replaced with plain text +- Hugo was not updated; TODO for next issue + ## Issue 4 - Typeface and type styles for Chinese characters (Noto TC and Noto Sans TC) diff --git a/content/issues/4/sonorous-medieval/index.md b/content/issues/4/sonorous-medieval/index.md index eeaebcec..6b6742a5 100644 --- a/content/issues/4/sonorous-medieval/index.md +++ b/content/issues/4/sonorous-medieval/index.md @@ -10,7 +10,8 @@ authors: date: 2023-10-02 doi: 10.5281/zenodo.8380841 pdf: https://zenodo.org/record/8408357/files/startwords-4-sonorous-medieval.pdf -images: ["issues/4/sonorous-medieval/images/sonorous-medieval-social.png"] +images: + - "issues/4/sonorous-medieval/images/sonorous-medieval-social.png" summary: A distinctive set of challenges arises when training machines to process a historical language, especially one that was last spoken two millennia ago. hook_height_override: 175 --- diff --git a/content/issues/5/_index.md b/content/issues/5/_index.md new file mode 100644 index 00000000..37d90ccb --- /dev/null +++ b/content/issues/5/_index.md @@ -0,0 +1,30 @@ +--- +type: issue +layout: single +title: Issue 5 +number: 5 +theme: PROCESSES +theme_wrap_width: 12rem +# Unless the publish date is before today's date, hugo won't publish it. +date: 2024-12-18 # Change me +slug: 5 +num_features: 3 +summary: This issue features the work of three leading graduate students from the Center for Digital Humanities at Princeton. +authors: + - WythoffGrant +contributors: + - Editor: + - Grant Wythoff + - Manuscript Editing: + - Camey Van Sant +--- + +This issue of *Startwords* features the work of three leading graduate students from the Center for Digital Humanities at Princeton. While their work spans disciplines and historical periods, these scholars all use data curation and visualization to highlight the importance of everyday, historical people whose lives may otherwise have remained unknown to us: non-elites in early modern South Asia, nineteenth-century African students attending US universities, and craftspeople who aided the work of sculptors in the Renaissance. + +In “[Casting in Reverse](https://startwords.cdh.princeton.edu/issues/5/casting-in-reverse/),” art historian Sharifa Lookman writes of Antonio Susini, studio assistant to famous Renaissance sculptors. For technicians working in bronze, like Susini, “in order to achieve the height of their craft, they must erase all traces of their labor.” In her remarkable work, Lookman reverse engineers these labors through 3D scanning, photogrammetry, and an internship with a local metal foundry “to understand the intricacies of casting, from wax to bronze.” At times, these digital and analog processes inflect one another, as they do when Lookman uses casting wax to secure a sculpture to the base of a 3D scanner. Lookman aims in her dissertation to rewrite the history of art as a history of process. But she herself fully engages with these artistic processes in order to better understand them. + +Religion scholar Kimberly Akano in “[Visualizing African Student Mobility](https://startwords.cdh.princeton.edu/issues/5/visualizing-african-student-mobility/)” traces the migrations of late-nineteenth and early-twentieth century students from Africa to historically Black colleges and universities in the United States. Akano draws on Kim Gallon in hoping that her dataset can “be used as a ‘technology of recovery’ to begin unearthing the narratives of African students.” At the center of Akano’s work is an extraordinary collection of index cards maintained by Horace Mann Bond---a midcentury leader at Atlanta and Lincoln Universities---that records the names, origins and destinations, areas of study, and eventual occupation of these students over more than a century. Bond’s goal was “to demonstrate the underappreciated role of HBCUs in educating West African leaders such as Nnamdi Azikiwe (later the first president of Nigeria) and Kwame Nkrumah (the first president of Ghana).” But Akano takes this handmade dataset and uses it to map hundreds of lesser-known students’ journeys. + +Finally, in “[Mapping Persian Literacy in Early Modern South Asia](https://test-startwords.cdh.princeton.edu/issues/5/mapping-persian-literacy/),” historian Hasan Hameed grapples with archival silences in a region “where two centuries of British colonialism systematically distorted local libraries, archives, and collective memory.” Hameed’s article tracks the spread and influence of the *Gulistan* (Rose-Garden), a Persian poem composed in the mid-thirteenth century that educators used for centuries to “teach students how to behave and how to appreciate language.” Though a countless number of these manuscripts have been lost over time to “wind, water, and worms,” as Hameed puts it, the hundreds that remain speak to a remarkable spread of Persian literacy in early modern India among everyday people, “beyond courtly elites.” Through his maps, Hameed shows how this Islamic text circulated among Sikh and Hindu communities, traveling thousands of miles from Southern India all the way to present-day Western Afghanistan. + +All three contributors here reflect on method in digital humanities, each concluding that these methods are primarily valuable not in their ability to prove something incontrovertibly but rather as tools for thought. For Akano, “the process of creating the digital products was itself a practice of scholarly interpretation.” Hameed writes that in cleaning hundreds of bibliographic records, he realized any one of those records can “reveal an entire world of knowledge production and transmission.” And Lookman curated a dataset that led her to find “unnoticed patterns and trends . . . filling the gaps in what we can know.” Far from automating scholarly labor, these practices, methods, and processes in DH demand additional thought and reflection. \ No newline at end of file diff --git a/content/issues/5/casting-in-reverse/images/fig1-lion-horse.jpg b/content/issues/5/casting-in-reverse/images/fig1-lion-horse.jpg new file mode 100644 index 00000000..fdd93a7d Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig1-lion-horse.jpg differ diff --git a/content/issues/5/casting-in-reverse/images/fig10-cast-w-scan.jpg b/content/issues/5/casting-in-reverse/images/fig10-cast-w-scan.jpg new file mode 100644 index 00000000..7710a5b3 Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig10-cast-w-scan.jpg differ diff --git a/content/issues/5/casting-in-reverse/images/fig11-sketchfab_crucifix_still.png b/content/issues/5/casting-in-reverse/images/fig11-sketchfab_crucifix_still.png new file mode 100644 index 00000000..0bfa663e Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig11-sketchfab_crucifix_still.png differ diff --git a/content/issues/5/casting-in-reverse/images/fig3-horse.jpg b/content/issues/5/casting-in-reverse/images/fig3-horse.jpg new file mode 100644 index 00000000..8ca383f4 Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig3-horse.jpg differ diff --git a/content/issues/5/casting-in-reverse/images/fig4-scaled-w-mold.jpg b/content/issues/5/casting-in-reverse/images/fig4-scaled-w-mold.jpg new file mode 100644 index 00000000..79a0dc51 Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig4-scaled-w-mold.jpg differ diff --git a/content/issues/5/casting-in-reverse/images/fig5-torso-cast.jpg b/content/issues/5/casting-in-reverse/images/fig5-torso-cast.jpg new file mode 100644 index 00000000..78fc36a7 Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig5-torso-cast.jpg differ diff --git a/content/issues/5/casting-in-reverse/images/fig6-frog-fail.jpg b/content/issues/5/casting-in-reverse/images/fig6-frog-fail.jpg new file mode 100644 index 00000000..837677e5 Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig6-frog-fail.jpg differ diff --git a/content/issues/5/casting-in-reverse/images/fig7-drapery-scan.jpg b/content/issues/5/casting-in-reverse/images/fig7-drapery-scan.jpg new file mode 100644 index 00000000..2d40f5f3 Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig7-drapery-scan.jpg differ diff --git a/content/issues/5/casting-in-reverse/images/fig8-frog-combined.jpg b/content/issues/5/casting-in-reverse/images/fig8-frog-combined.jpg new file mode 100644 index 00000000..fcddb000 Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig8-frog-combined.jpg differ diff --git a/content/issues/5/casting-in-reverse/images/fig9-sketchfab-frog-still.png b/content/issues/5/casting-in-reverse/images/fig9-sketchfab-frog-still.png new file mode 100644 index 00000000..caac6138 Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/fig9-sketchfab-frog-still.png differ diff --git a/content/issues/5/casting-in-reverse/images/social-media-preview.png b/content/issues/5/casting-in-reverse/images/social-media-preview.png new file mode 100644 index 00000000..9632b63c Binary files /dev/null and b/content/issues/5/casting-in-reverse/images/social-media-preview.png differ diff --git a/content/issues/5/casting-in-reverse/index.md b/content/issues/5/casting-in-reverse/index.md new file mode 100644 index 00000000..d7a4afde --- /dev/null +++ b/content/issues/5/casting-in-reverse/index.md @@ -0,0 +1,244 @@ +--- +type: article +title: "Casting in Reverse: Recuperating Sixteenth-Century Marks and Makers through Data Curation and 3D Imaging" +slug: casting-in-reverse +order: 1 +authors: + - LookmanSharifa +date: 2024-12-18 +images: ["issues/5/casting-in-reverse/images/social-media-preview.png"] +summary: In 1611, German ducal agent and art collector Philipp Hainhofer recorded two bronze statuettes in an imperial Augsburg collection. +doi: 10.70400/MVMV3001 +pdf: https://github.com/Princeton-CDH/startwords/blob/main/content/issues/5/casting-in-reverse/startwords-5-casting-in-reverse.pdf +hook_height_override: 155 +--- + +In 1611, German ducal agent and art collector Philipp Hainhofer recorded two bronze statuettes in an imperial Augsburg collection: "a group of a lion slaying a horse," and "a group of a lion slaying a bull." These sculptures, he writes, were "*di mano del*" (by the hand of) Florentine court sculptor, Giambologna (1529--1608).[^1] From Giambologna's eighteenth-century biographer, we learn that the subjects were cast in multiple, continuing even after his death.[^2] Though the location of the Augsburg casts is unknown, others survive across various collections. Only two "sets," however, are signed, one in the Galleria Corsini in Rome and the other broken up between the Louvre and the Detroit Institute of Arts. + +{{< figure src="images/fig1-lion-horse.jpg" alt="Bronze statue, deep brown color, of a lion biting into the side of a horse, who turns its head to face the lion." caption="**Figure 1.** Antonio Susini; after Giovanni da Bologna, *Lion Attacking Horse,* ca. between 1580 and 1590, bronze, red lacquer." attr="Detroit Institute of Arts, City of Detroit Purchase, 25.20.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Bronze statue, deep brown color, of a lion biting into the side of a bull, who turns its head to face the lion. +| +| CAPTION: **Figure 1.** Antonio Susini; after Giovanni da Bologna, *Lion Attacking Horse,* ca. between 1580 and 1590, bronze, red lacquer. +| +| ATTRIBUTION: Detroit Institute of Arts, City of Detroit Purchase, 25.20. +#----------------------------------------------------------------------------------- +{{}} + +And yet, it is not Giambologna's name that we find etched into them; instead, on the horse reads "ANT. SVSI/INI OPVS/FLORE.," and the bull "ANT./SVSINI/F."---that is, on one, "the work of Antonio Susini, Florentine"; on the other, "Antonio Susini made this."[^3] + +For about twenty years, from 1581 until around 1600, Antonio Susini (1558--1624) worked for Giambologna as his assistant and collaborator. As Giambologna's reputation working for the Medicean court grew, so too did his market and, by extension, his workshop. Working between marble and bronze, large and small scales, Giambologna employed several assistants across media and specialties. Though Susini assisted with the colossal bronzes, he was primarily responsible for carrying out small-scale bronze copies and reductions after Giambologna's designs. Whether beginning with a large-scale marble, a clay model, or a prefabricated mold, Susini would produce an intermediary model in wax, which he, put simply, would then refine, cast, and finish. Giambolognan in design and authorship, these works were Susini-made. For Susini to sign the *Lion Attacking a Bull* with an "F" for "*fecit*," or "made," is on some level to acknowledge these divisions---and slippages---in labor and media. It is to state outright his role as executor, a distinction that has the added effect of distancing himself from designer. The opposite seems at play in his use of "opus" for *Lion Attacking a Horse*. Based on an antique prototype in marble, then still fragmented, this work is thought to be an experimental reconstruction in bronze, which Susini's choice signature takes credit for. Scholarship is uncommitted to this latter construction, seeing Susini's interventions as not necessarily autonomous; whatever the case, and "by the hand of" Giambologna or not, these works are perpetually inscribed by the Susini name.[^4] + +{{}} + +While contemporaneous accounts depict Susini as more of a promising protégé than an anonymous middleman, scholarship over the subsequent centuries tends only to value assistants and pupils when they are seen to surpass their teacher---a fate Susini, ostensibly, did not meet. Over the years, scholarship has simultaneously labeled him a "superior craftsman" and an "absolutely uncreative manufacturer" who, "so long as he stayed in Giovanni Bologna's studio, was neither a full-fledged technician nor sculptor."[^5] When Susini is remembered, it is as the harbinger of a particular style or finish in bronze---he brought to the genre of small-scale bronzes heightened polish, refined chasing, and a characteristically angular treatment of forms. Giambologna himself would regard Susini's casts as "the most beautiful things that they \[patrons\] can have from my hands," seeing the latter's labor, technical acumen, and, even, body as surrogates for his own.[^6] Indeed, to speak of "a Susini" bronze today is to directly comment upon a work's execution and finish; in a twist of phrase, his name has come to signify just as much a technical faculty as it does a person. + +In the field of Renaissance art where the primacy of design and the "Idea" reign, to prioritize execution goes against the grain. If Susini's production is tracked by his labor and technical acuity rather than the designs he created, how and where do we locate him today? Indeed, in the case of Susini, both an assimilable hand and anonymous execution suggest an artist that is simultaneously present and absent. How does framing Susini's position as an "invisible technician," or even "alter-ego," for example, open onto new ways of studying assistants as vital fabricators and recuperating these makers' nebulous positions between design and artifact?[^7] That is, how can the study of sculpture favor techniques "from below"? To tell the story of Susini as both independent laborer and cooperative assistant is to recuperate from the extant objects an otherwise absent or forgotten historical record. It is to grapple with invisibility as a necessary hurdle and charged heuristic. + +Over the past eight months, I have explored how strategies in data curation and imaging technologies can, literally and metaphorically, help visualize these historical gaps. At the same time, I have apprenticed as a fabricator working with local foundries to understand the intricacies of casting, from wax to bronze, and to familiarize myself with Susini's embodied experience as a sculptor. In what follows, I share some early notes on what I have learned. First, I will consider how amassing and sorting art objects as data points can reveal unnoticed patterns and trends. Then, I will introduce my own experiments in wax modeling and casting. Putting oneself in the artist's shoes can not only fill the gaps in what we can know, but also complement digital reconstructions through an experiential and artifactual approach. Finally, I will share my preliminary experiments in 3D imaging compared to photogrammetry, highlighting the challenges of using 3D scanning to capture reflective surfaces like bronze. Here, I will consider 3D scanning as its own form of casting. Throughout, I wish to linger on the potential of seeing and using these technologies as surrogates for the historical process or object they themselves try to capture. + +**Objects as Data** + +Of the words associated with the Renaissance bronze statuette, "reproduction" is perhaps the most fitting. All bronze casts are, by definition, reproductions of an earlier model made in wax; many are reproductions of other sculptures, large or small; and some are even reproductions of yet other casts. Whereas in the modern age ideas of replication or reproducibility often carry with them connotations of the copy or even the derivative, the very technology of casting is imbricated in the rhetoric of reproduction. + +{{}} + +Let's begin with a brief overview of the process and terms involved: In what is often referred to as "direct casting," the process begins with a model in wax around which an "investment" in clay or plaster is built. The wax is then "burnt" (melted) out, and into the cavity molten metal is poured---this will become the finished cast. Important here is that the original model is destroyed, and a unique cast produced. In "indirect casting," we begin with a model in any material (clay, wood, even metal) from which a "piece-mold" is made, a type of mold deconstructed in pieces so as not to damage the object it replicates. This piece-mold can then be used and reused to make multiple copies in wax, which are then cast in metal using the direct method above. Multiple versions of the same model can be produced in this way. + +In the sixteenth century, in and around the Giambologna workshop, the use of indirect casting and a demanding art market meant an increase in the production of small bronzes. Giambologna employed, in addition to Susini, several other artists who were responsible for adapting and reproducing his designs. The great number of casts produced during these decades has fueled debates about authorship and dating, but also complicated attempts to assign and differentiate Susini's output. Exhibition catalogs exacerbate the issue, arbitrarily assigning or even muting his involvement. And yet, a study of Susini's practice cannot begin without a catalog of what he produced. The large number of works in his orbit, moreover, presents an extraordinary amount of raw data in need of explanation. In this pursuit, I turned to a simple spreadsheet. More than a list of the works to which Susini is attached, this document is a repository of each object's history with technical data describing their size, weight, and other characteristics. While the genre of "catalog" in art history is a mode of collation and explanation, this repository functions equally as an interactive database for sorting and (re)categorizing the objects. + +{{}} +{{}} +| | Unique ID | Location Known? (Y/N) | Location | Accession # | Title | Subject | Model | Length (cm) | Width (cm) | Height (cm) | Period | Start Date | End Date | Attributed Certainty "Score" | Author/Artist | Founder | Collaborators? | Signature | Contested? | Source | +|-| --------- | ----------------------| ------------------------------- | ----------------- | ------------------------------------- | -------------------------------- | ----- | ----------- | ---------- | ----------- | -------------------------- | ---------- | -------- | ---------------------------- | ------------------------------------ | --------------- | ---------------------------- | ---------------------------------------- | ---------- | ---------------------------------| +|1| 241021-043| N | Private Collection | | The Flying Mercury | flying Mercury | | | | 17.4 | late sixteenth century | 1575 | 1600 | | model by Willem Danielsz van Tetrode | Antonio Susini? | | | | Avery, *Giambologna*, 1998 | +|2| 241021-006| N | Private Collection | | Mercury in Flight | flying Mercury | | | | 64.8 | late sixteenth century | 1575 | 1600 | | model by Giambologna | Antonio Susini? | | | | Avery, *Giambologna*, 1998 | +|3| 241021-012| Y | J. Paul Getty Museum | 94.SB.11.1 | Lion Attacking a Horse | Lion Attacking a Horse Type 1 | M-01 | 24 | | 28 | first quarter 17th century | 1600 | 1625 | | Antonio Susini | | or Giovanni Francesco Susini | | | | +|4| 241021-032| Y | Detroit Institute of Arts | 25.20 | Lion Attacking a Horse | Lion Attacking a Horse Type 1 | M-02 | 25.4 | | 30.5 | 1580-90 | 1580 | 1590 | | Antonio Susini | | | ANTo. SVSINI \| FLORE. OPVS. | | | +|5| 241021-021| Y | Kunshistorisches Museum, Vienna | Kunstkammer, 6018 | Lion Attacking a Horse | Lion Attacking a Horse Type 2 | M-03 | 38 | 26.5 | 33 | ca. 1600 | 1590 | 1610 | | Antonio Susini | | | | | | +|6| 241021-014| Y | Kunshistorisches Museum, Vienna | Kunstkammer, 5893 | Venus Urania or Allegory of Astronomy | | | | | 38.8 | c. 1575 | 1565 | 1585 | | Giambologna | Antonio Susini? | Antonio Susini | GIO BOLONGE | | | +|7| 241021-026| Y | Galleria Borghese | CCXLIX | Farnese Bull | Farnese Bull (after the antique) | | | | 48 | 1613 | | | 10 | Anonio Susini | | | ANT.II SUSINII FLOR.I: OPUS/ A D MDCXIII | N | | +{{
}} +{{
}} + +In addition to standard metadata like "artist," "collection," and "date," each object also has a unique identification number (i.e. 241021-006, labeled according to date and order of entry), through which objects of similar subjects can be grouped and "certainty" of authorship mapped. Casts signed and dated by Susini, for example, receive a "certainty" score of a 9 or 10, whereas others more tenuously designated in early catalogs as "possibly cast by" receive a much lower number.[^8] + +{{< figure src="images/fig3-horse.jpg" alt="Two almost identical bronze figures of a horse, standing with front left hoof raised." caption="**Figure 3.** (Left) Antonio Susini. *A Pacing Horse*, ca. 1600, bronze, 29.5 x 32.35 x 9.5cm. Victoria and Albert Museum, London, A.11-1924. Signed ANT: SVSINII FLOR: FE. (Right) Giovanni Bologna, called Giambologna, *Walking Horse with Hogged Mane and Saddlecloth Bearing the Vinta Coat of Arms,* ca. 1610, bronze, 27.5 x 8.9 x 25.1 cm. Clark Art Institute, 1955.1004. Image courtesy of Clark Art Institute.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Two almost identical bronze figures of a horse, standing with front left hoof raised. +| +| CAPTION: **Figure 3.** (Left) Antonio Susini. *A Pacing Horse*, ca. 1600, bronze, 29.5 x 32.35 x 9.5cm. Victoria and Albert Museum, London, A.11-1924. Signed ANT: SVSINII FLOR: FE. (Right) Giovanni Bologna, called Giambologna, *Walking Horse with Hogged Mane and Saddlecloth Bearing the Vinta Coat of Arms,* ca. 1610, bronze, 27.5 x 8.9 x 25.1 cm. Clark Art Institute, 1955.1004. Image courtesy of Clark Art Institute. +#----------------------------------------------------------------------------------- +{{}} + +Most exciting here is the category of "model," an auxiliary sheet that seeks to track and recuperate how many models---many of the same subject---Susini was working from. Often designated in catalogs generally as "Cristo Morto [crucifix] Type A" or "Cristo Morto Type B," to account for deviations in design, for example, the number and type of models used have yet to be comprehensively mapped. Though a few waxes and terracottas from the Giambologna workshop survive, the majority of models are long gone, either destroyed in the workshop or lost. To reconstruct their movement and lifespan from the extant casts is to visualize the otherwise intangible. + +This database is in an early stage of development and much work remains to be done to reap significant conclusions; an expanded version, for example, might include all of Susini's colleagues in the Giambologna workshop to more definitively understand the rate at which models were circulated and reproduced between them and where the derivations lie. Artists moved from model, to wax, to bronze. My data sculpts in reverse, moving from bronze cast, to maker, and eventually, to the lost model. + +**Objects in Process** + +Describing the production of molds for casting in bronze, Sienese metallurgist Vannoccio Biringuccio advised his reader, "If you have not been the workman yourself, you must at least have been an active helper in this and in every other part in order to be able to follow everything without a fault."[^9] Still today Biringuccio's provocation rings true: you won't properly understand how something is done until you have tried it yourself. In the world of artistic technique and process, this is especially apt. If Susini's expertise lay in both ephemeral techniques and surface treatment, the only way to understand his labor, at least in part, is to reconstruct it oneself. As a trained painter, I am very familiar with this idea; but having more limited experience sculpting or casting, I entered a novice. + +{{}} + +In about 1596, Susini modeled and cast a series of bronze statuettes for the tabernacle of a Carthusian monastery (the Certosa) outside Florence, the production of which is among his most documented in both period sources and museum conservation. Of these figures, Saint Matthew, now conserved at the Metropolitan Museum of Art, seemed a good subject to experiment with. The process began with a fundamental question that Susini and other artists tasked with reproducing, reducing, or enlarging a sculpture would have faced: How does one render something to scale? Not having the original readily available to measure and compare, I instead turned to the two dimensional and worked off scaled photographs of the sculpture from various angles. To simulate in modern, quicker means the Renaissance piece-mold, I made a rubber mold of my clay (itself a "free copy" destroyed in the molding process) to cast a wax replica. + +{{< figure src="images/fig4-scaled-w-mold.jpg" alt="The back of a bronze cast of a robed figure, next to an impression of that figure left in a wax block." caption="**Figure 4.** (Left) Antonio Susini (model and cast, possibly after a model by Giambologna), *Saint Matthew,* 1596, bronze. Metropolitan Museum of Art, New York, Purchase, Joseph Pulitzer Bequest, 1957, 57.136.2. Scaled by author. (Right) Half of the rubber mold to cast my free copy in wax.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. The back of a bronze cast of a robed figure, next to an impression of that figure left in a wax block. +| +| CAPTION: **Figure 4.** (Left) Antonio Susini (model and cast, possibly after a model by Giambologna), *Saint Matthew,* 1596, bronze. Metropolitan Museum of Art, New York, Purchase, Joseph Pulitzer Bequest, 1957, 57.136.2. Scaled by author. (Right) Half of the rubber mold to cast my free copy in wax. +| +| ATTRIBUTION: Metropolitan Museum of Art, and courtesy of author. +#----------------------------------------------------------------------------------- +{{}} + +The cast wax is malleable with heated metal tools and an open flame, but it requires a gentle touch. Initially I assumed the wax was a quick, auxiliary step---a means to a bronze end. In reality it is both time-consuming and labor-intensive. In a task of repair and editing the wax modeler is as much sculptor as he is "fixer." Indeed, one wants the finished wax to be as close to the final product as it can, for it is much easier to alter in soft wax than in hard, obdurate metal. + +{{}} + +Preparing the wax to be cast requires focus of another kind. Maintaining the structure of the wax and ensuring it will be properly cast becomes the priority. The wax is prepared with vents and sprues that are burnt out, leaving behind intricate channels for the molten bronze to properly fill. An imprecise alignment of vents means a potentially faulty cast. Modern casting no longer uses the investment technique, but instead what is called "shell casting," where the wax is repeatedly dipped in a ceramic shell slurry and sand. Once cast, the real work begins. The bronze must be excavated from the shell (no easy task), the core removed, and the sprues and vents cut off, all before the polishing and chasing of the work can even begin. + +{{< figure src="images/fig5-torso-cast.jpg" alt="Two side-by-side photos: one of material crumbling away from a sculpture, and another of that sculpture beind held in a hand." caption="**Figure 5.** (Left) My cast of an antique torso mid-removal from its investment. (Right) Same cast illustrating the vents, sprues, and cup (once wax, now bronze)." attr="Courtesy of author.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Two side-by-side photos: one of material crumbling away from a sculpture, +| and another of that sculpture beind held in a hand. +| +| CAPTION: **Figure 5.** (Left) My cast of an antique torso mid-removal from its +| investment. (Right) Same cast illustrating the vents, sprues, and cup (once wax, +| now bronze). +| +| ATTRIBUTION: Courtesy of author. Work produced through coursework at the +| Philadelphia Academy of Fine Arts. +#----------------------------------------------------------------------------------- +{{}} + +Sanding, polishing, and engraving the bronze surface is a long process, one I have only just begun. But for me there is one striking takeaway: the finishing process is one of reversal, trying to erase all signs of the process and grime that came before---that is, removing the debris from casting and filling all holes, seams, and repairs. The quality of the surface and gestures involved---high polish and intricate design---instead replaces these intermediary processes as signifiers of the artist's labor. For the artist or technician, this is significant: in order to achieve the height of their craft, they must erase all traces of their labor. + +**Objects as Surface** + +As we have seen, cleaning and finishing a bronze cast is---and was---a labor-intensive process preoccupied with surface. Whether working in bronze or pixels, to cast is, after all, to capture surface. In this final section, I want to discuss another means by which to "cast" a bronze object: 3D scanning and photogrammetry. Increasingly in the humanities, 3D imaging technologies have been integrated to conserve and closely study historical objects otherwise inaccessible or ill-preserved. These technologies are particularly useful in revealing technical data about an object and have been integrated most successfully into conservation studies. Not only do they have the potential to offer refined images of an object's surface geometry, for example, but they also capture its exact dimensions. My interest in the technology began out of its potential for the latter.[^10] + +{{}} + +The Princeton University Art Museum (PUAM) owns a gilt bronze corpus for a crucifix originating from or around the workshop of Susini, one of many attributed to the artist. Ultimately, the objective is to scan two of these and compare the 3D models to determine where, if at all, piece-molds were reused or altered. Though measurements can be taken manually from an object, they are inexact for curved surfaces in particular. Still in the early stages of this endeavor, I have been experimenting with the technologies available and the involved logistics of handling and imaging a sixteenth-century museum artifact. A series of test objects---some produced during my casting project---reveals the potentials and limits of doing so, and a preliminary photogrammetric model provides a standard on which to build. + +The first few scans of a small brass frog with a tabletop scanner (EinScan SP) made it clear the process would not be straightforward. Very little data was captured in these initial scans and only in areas where the patina was darker and matte. + +{{< figure src="images/fig6-frog-fail.jpg" alt="Two views of sketchy digital textures that barely hint at the contours of a frog." caption="**Figure 6.** My initial---unsuccessful---scans of the brass frog." attr="Courtesy of author.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Two views of sketchy digital textures that barely hint at the contours of a frog. +| +| CAPTION: **Figure 6.** My initial --- unsuccessful --- scans of the brass frog. +| +| ATTRIBUTION: Courtesy of author. +#----------------------------------------------------------------------------------- +{{}} + +The reflective surface of the metal was simply not captured by the scanner. For a project centered on bronze, this was a problem. In such cases, there is a matte, white spray used to cover objects so that they register more readily in the scanner's camera. This solution was not viable, however, when working with invaluable museum objects. There was a special irony to this hurdle. The characteristics that defined bronze---shiny, polished, reflective---made it resist reproduction, the very process to which it is indebted. In a project defined by its desire to recuperate a "hidden Susini," the fundamental work and gestures he was responsible for would be rendered, quite literally, invisible. + +Naturally matte materials, like clay, or, on the other hand, semi-gloss, like wax, translated well to a 3D scan. I used both my wax model and fragments from my original clay model to test out the level of detail and structure picked up. Where the brass result was piecemeal at best, even from an initial scan of the clay the tabletop scanner was able to produce a far more cohesive and legible model.[^11] For the wax, which exceeded in height the limit of the tabletop scanner, a handheld version (Einstar) was used. + +{{< figure src="images/fig7-drapery-scan.jpg" alt="Two views of a digital scan of a robed figure. The scan on the right is of much higher quality, showing some of the statue's color and texture." caption="**Figure 7.** (Left) 3D scan of terracotta clay drapery fragment (EinScan SP, tabletop). (Right) 3D scan of wax model (Einstar, handheld)." attr="Courtesy of author.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Two views of a digital scan of a robed figure. The scan on the right is of much higher quality, showing some of the statue's color and texture. +| +| CAPTION: **Figure 7.** (Left) 3D scan of terracotta clay drapery fragment (EinScan SP, tabletop). (Right) 3D scan of wax model (Einstar, handheld). +| +| ATTRIBUTION: Courtesy of author. +#----------------------------------------------------------------------------------- +{{}} + +In both, the technology shined and produced the sort of results I was hoping for; the only problem was that those results were with the wrong materials. If the object's reflectivity was the dominant issue and not the technology, then the object's refraction needed to be mitigated. One option was to limit the light source (shades and overhead lights), but the scan was only marginally better. However, it was quickly realized that it was not only the position and strength of the light source that mattered, but also the orientation of the object. Instead of positioning the frog flat on its base, two orientations on its side, horizontal and vertical, were tried, securing it with a bit of casting wax (something with enough tensile strength to keep the frog vertical but not enough to obscure the object itself). These changes garnered shockingly better results, and each orientation captured slightly different data. Not only did the scans now capture the contours of the object in full but, when multiple scans were aggregated, they even captured and reproduced the reflective surface of the brass itself.[^12] + +{{< figure src="images/fig8-frog-combined.jpg" alt="Three views of a patchy digital scan of a small metal frog statue from different angles. The view on the right clearly reads 'CANADA' printed across the bototm." caption="**Figure 8.** (Left) Illustration showing number of scans and variety of orientation that were aggregated. (Center) Combined scan of brass frog, view from the top. (Right) Combined scan of brass frog, view from the bottom.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Three views of a patchy digital scan of a small metal frog statue from different angles. The view on the right clearly reads 'CANADA' printed across the bototm. +| +| CAPTION: **Figure 8.** (Left) Illustration showing number of scans and variety of orientation that were aggregated. (Center) Combined scan of brass frog, view from the top. (Right) Combined scan of brass frog, view from the bottom. +| +| ATTRIBUTION: Courtesy of author. +#----------------------------------------------------------------------------------- +{{}} + +In 3D scanning, it is necessary to "mesh" the model, which effectively fills in the data gaps and together renders a more lifelike scan.[^13] If the raw scans can be seen as a hollow, untreated bronze cast---with imperfections, sprue holes, and other proverbial "casting flaws"---the mesh function becomes a surrogate for the finishing processes of polish and repair. The results of the mesh were striking, if also unexpected. + +{{}} +{{< wrap class="txt-only" >}} +⩩-----------------------------------------------------------------------------------⟩ +| FIGURE 9. 3D scan of brass frog, using EinScan SP, tabletop. The black shapes on the bottom and side capture the casting wax used to support the object. Image courtesy of author. +⩩-----------------------------------------------------------------------------------⟩ +{{}} + +On the one hand, the surface is surprisingly reflective, reading without doubt as metallic material. On the other, however, it is dark and the details blurry, two characteristics that didn't come to define the aggregative scan from which we started. Where both finishing stages in bronze and 3D scanning brought out the polish, in bronze the details are also defined; here, in pixels, they are obfuscated. Post-processing in EinScan and Rhino did little to remedy these effects, and more experimentation is needed. Nevertheless, the reflectivity of the material interfered with not only the laser scan itself, but also the post-processing---only in the inverse: whereas the laser scan was at first unable to pick up highlights, the mesh processing centered on the reflective, thus negating, in turn, all other surface textures. + +{{< pullquote right `To cast is, after all, to capture surface.` >}} + +In addition to 3D scanning, which uses laser measurements, photogrammetry uses photographs to build the model. Whereas scanning is more accurate in shape and color, photogrammetry offers better color and surface texture. To test the potential of this technology, I used Metascan Pro to create a model of a bronze that I had just recently cast and removed from its investment. The cast had yet to be fully cleaned and polished and as such displayed a number of surfaces, from rough to polished bronze: perfect for testing photogrammetry's ability to handle a variety of surfaces, reflective or otherwise. I made a model using two hundred photographs of the cast. Though there are some losses and peculiarities, the result captures the surface in relatively high detail and documents the dimensions with some accuracy. (It was about half an inch off in all directions, which could have been due to a skewed angle of the camera, for example.) The two polished areas on the back of the cast (where the vents had been cut) are picked up without difficulty and read in equal detail to their rougher counterparts. A three-part comparison between stills from the photogrammetric model, the 3D scan (using the handheld Einstar), and a photograph illustrates some of the differences between technologies. + +{{< figure src="images/fig10-cast-w-scan.jpg" alt="Three views of a slab of material: a photograph of it held in the hand, a photogrammetry image of the slab in high resolution, and a 3D scan of the object with slightly less resolution." caption="**Figure 10.** (Left) Still from 3D scan, Einstar handheld. (Center) Still from photogrammetry model. (Right) Still photo of cast.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Three views of a slab of material: a photograph of it held in the hand, a photogrammetry image of the slab in high resolution, and a 3D scan of the object with slightly less resolution. +| +| CAPTION: **Figure 10.** (Left) Still from 3D scan, Einstar handheld. (Center) Still from photogrammetry model. (Right) Still photo of cast. +| +| ATTRIBUTION: Courtesy of author. +#----------------------------------------------------------------------------------- +{{}} + +Most notably, the 3D scan is unfocused, and the surface textures read more or less homogenous; the photogrammetric still, on the other hand, perhaps expectedly, reads closer to that of the still photograph. + +Now we can return to Susini and the PUAM Cristo Morto. Though at this time I was not able to take photogrammetric scans of the object directly using the Metascan Pro phone application, I was able to do the next best thing. Using Metascan's online platform, I uploaded three hundred photos of the object from all angles that I had taken during a study visit last November; from these images, it generated a relatively successful model. + +{{}} +{{< wrap class="txt-only" >}} +⩩-----------------------------------------------------------------------------------⟩ +| FIGURE 11. 3D model of a gilt bronze crucifix, viewed head on. Photogrammetry model, Workshop of Antonio Susini, after Giambologna, *Corpus for Crucifix,* gilt bronze, 22.3 x 19.9 x 4.9 cm. Princeton University Art Museum, y1981-42. +⩩-----------------------------------------------------------------------------------⟩ +{{}} + +Some areas are slightly less focused and the hands, in particular, are not well rendered.[^14] Despite this, the measurements are more or less commensurate with those I had taken in person, suggesting that the distortion of the object was not as great as expected. The surface texture and color are somewhat muted in this model, coming off closer to an ochre color than reflective gold, as it appears in person. Despite these inconsistencies between model and object, the model still offers a vivid, interactive view of the object's technical intricacies and state of conservation---its chased surface, patchy gilding, visible plugs and repairs---in three dimensions.[^15] Whereas the conditions of the tabletop scanner are better controlled---the object is a consistent distance from the camera---photogrammetry is a bit harder to regulate and more prone to human error. A dual-approach combining both 3D scanning and photogrammetry (one prioritizing shape, the other surface) would instead be optimal. I will continue to experiment with this combined approach by reconstructing the object---as would the caster himself---from the bottom up, giving both surface and structure equal regard. + +********** + +Recently, art historian Michael Cole published an article in *West 86th* entitled "Bronze as Model."[^16] In it, he suggests how the genre of Renaissance bronze statuette, commonly seen as a reduction or copy in itself, may have inspired the production of subsequent artworks---as copies, enlargements, or, even entirely new subjects. In the approaches explored above, the small-scale bronze indeed becomes the model from which we must extract---and in some ways critically fabulate---otherwise invisible narratives of production. The end result for the artist and workshop is the beginning from which we---as historians, practitioners, and data wranglers---must learn to cast in reverse. + +[^1]: O. Doering, *Des Augsburger Patriciers Philipp Hainhofer Beziehung zum Herzog Philipp II. von Pommern-Stettin - Correspondenzen aus den Jahren 1610--* *1619* (Vienna, 1894), 97: "Li seguenti 10. Pezzi di bronzo sono tutti di mano del E.mo S.r Cav. Gio. Bologna, di gloriosa memoria, con somma dilignza inventati, et ciaschuno è sopra un basamento posto . . . un gruppo d'un lione, ch'amazza un cavallo./un gruppo d'un lione, ch'uccide un toro." + +[^2]: Filippo Baldinucci, "Notizie di Giovanni Bologna," in *Notizie De\' Professori Del Disegno Da Cimabue: In Qua, Per Le Quali Si Dimostra Come, e Per Chi Le Bell\' Arti Di Pittura, Scultura, e Architettura Lasciata La Rozzezza Delle Maniere Greca, e Gottica, Si Siano In Questi Secoli Ridotte All\' Antica Loro Perfezione* (Firenze, 1846), 2: 583. + +[^3]: The inscriptions, as quoted in text, relate to the Roman casts. There is slight variation in the Louvre and DIA versions: the Louvre inscription reads "ANT-/SVSI/NI.F.," and the DIA, "ANT.O SVSINI FLORE. OPVS." + +[^4]: For matters of space and clarity, this is of course a simplification of ongoing discussions and debates surrounding these works and their authorship. For a more comprehensive account, see Peggy Fogelman's catalog entry for the Getty's (unsigned) pair. Peggy Fogelman, "Lion Attacking a Horse and Lion Attacking a Bull," In *Italian and Spanish Sculpture: Catalogue of the J. Paul Getty Museum Collection*, edited by Peggy Fogelman et al. (Los Angeles: J. Paul Getty Museum, 2002), 177--89. + +[^5]: James Holderbaum, *The Sculptor Giovanni Bologna* (New York: Garland, 1983), 255; Katherine Watson, *Pietro Tacca, Successor to Giovanni Bologna* (New York: Garland, 1983), 47. + +[^6]: In a letter from Giambologna to Belisario Vinta, August 6, 1605. Cited in Watson, *Pietro Tacca*, 33n37. + +[^7]: For these concepts, see Steven Shapin, "The Invisible Technician," *American Scientist* 77, no. 6 (1989): 554--63; Jacques de Caso, "Serial Sculpture in Nineteenth-Century France," in *Metamorphoses in Nineteenth-Century Sculpture*, ed. Jeanne L. Wasserman (Cambridge, MA: Fogg Museum, 1975), 1--28. + +[^8]: It should be acknowledged, of course, that signatures, especially those in bronze, do not in and of themselves assert authorship with absolute certainty. For our purposes, however, they offer measures from which to work. + +[^9]: Vannoccio Biringuccio, *The Pirotechnia of Vannoccio Biringuccio*, trans. Cyril Stanley Smith and Maratha Teach Gnudi (Cambridge, MA: M.I.T. Press, 1966), 220. + +[^10]: I am also inspired here by other sculpture 3D-modeling initiatives in art history, such as the collaborative multidisciplinary project, "The Technical Study of Bernini's Bronzes," between the University of Toronto, the Art Gallery of Ontario, and the Getty Research Institute. https://www.berninisbronzes.com/ + +[^11]: Prior to this I had tried the handheld scanner. Surprisingly, this scanner picked up little to no data. It is my sense that the handheld scanner is most effective for large-scale objects. + +[^12]: I took a number of scans but aggregated six of the best and fullest for the model reproduced here. + +[^13]: A "watertight" mesh fills any openings in the model (ideal for 3D printing), while a "nonwatertight" model follows only the contours of the raw scans and leaves gaps where there is missing data. Luckily, enough data was gathered in these scans that both renders were quite similar. I used the watertight option for the model reproduced here. + +[^14]: Photos of either higher quality or focus might remedy these imperfections, as it appears the photogrammetry software was unable to differentiate the contours of the fingers from the background underneath. + +[^15]: I took the photogrammetry model's measurements using Metascan. While the proportions were similar, Metascan is peculiarly measuring at 10x magnification, labeling the object's five-centimeter forearm, for example, as fifty. + +[^16]: Michael Cole, "Bronze as Model," *West 86th: A Journal of Decorative Arts, Design History, and Material Culture* 28, no. 2 ( 2021): 232--39, https://doi.org/10.1086/721203. diff --git a/content/issues/5/casting-in-reverse/startwords-5-casting-in-reverse.pdf b/content/issues/5/casting-in-reverse/startwords-5-casting-in-reverse.pdf new file mode 100644 index 00000000..f67ad883 Binary files /dev/null and b/content/issues/5/casting-in-reverse/startwords-5-casting-in-reverse.pdf differ diff --git a/content/issues/5/mapping-persian-literacy/gulistan_map.html b/content/issues/5/mapping-persian-literacy/gulistan_map.html new file mode 100644 index 00000000..8604054d --- /dev/null +++ b/content/issues/5/mapping-persian-literacy/gulistan_map.html @@ -0,0 +1,1703 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/content/issues/5/mapping-persian-literacy/gulistan_map_detail.html b/content/issues/5/mapping-persian-literacy/gulistan_map_detail.html new file mode 100644 index 00000000..612c2c5c --- /dev/null +++ b/content/issues/5/mapping-persian-literacy/gulistan_map_detail.html @@ -0,0 +1,1703 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/content/issues/5/mapping-persian-literacy/images/MKmosque.jpg b/content/issues/5/mapping-persian-literacy/images/MKmosque.jpg new file mode 100644 index 00000000..5853ddd9 Binary files /dev/null and b/content/issues/5/mapping-persian-literacy/images/MKmosque.jpg differ diff --git a/content/issues/5/mapping-persian-literacy/images/folio_GB8919.jpg b/content/issues/5/mapping-persian-literacy/images/folio_GB8919.jpg new file mode 100644 index 00000000..a474d60d Binary files /dev/null and b/content/issues/5/mapping-persian-literacy/images/folio_GB8919.jpg differ diff --git a/content/issues/5/mapping-persian-literacy/images/gullistan_map_detail_still.png b/content/issues/5/mapping-persian-literacy/images/gullistan_map_detail_still.png new file mode 100644 index 00000000..0a5c842c Binary files /dev/null and b/content/issues/5/mapping-persian-literacy/images/gullistan_map_detail_still.png differ diff --git a/content/issues/5/mapping-persian-literacy/images/gullistan_map_still.png b/content/issues/5/mapping-persian-literacy/images/gullistan_map_still.png new file mode 100644 index 00000000..c66c44e5 Binary files /dev/null and b/content/issues/5/mapping-persian-literacy/images/gullistan_map_still.png differ diff --git a/content/issues/5/mapping-persian-literacy/images/social-media-preview.png b/content/issues/5/mapping-persian-literacy/images/social-media-preview.png new file mode 100644 index 00000000..38cd2f02 Binary files /dev/null and b/content/issues/5/mapping-persian-literacy/images/social-media-preview.png differ diff --git a/content/issues/5/mapping-persian-literacy/index.md b/content/issues/5/mapping-persian-literacy/index.md new file mode 100644 index 00000000..092fe54e --- /dev/null +++ b/content/issues/5/mapping-persian-literacy/index.md @@ -0,0 +1,182 @@ +--- +type: article +title: Mapping Persian Literacy in Early Modern South Asia +slug: mapping-persian-literacy +order: 3 +authors: + - HameedHasan +date: 2024-12-18 +images: ["issues/5/mapping-persian-literacy/images/social-media-preview.png"] +summary: On May 15, 1722, in the town of Gujranwala, Sayyid ʿInayatullah produced a commentary on one of the most well-read books in human history. +doi: 10.70400/BKUQ2306 +pdf: https://github.com/Princeton-CDH/startwords/blob/main/content/issues/5/mapping-persian-literacy/startwords-5-mapping-persian-literacy.pdf +# hook_height_override: height for preview shape on mobile if default calculation on mobile does not work +--- + +On May 15, 1722, in the town of Gujranwala, Sayyid ʿInayatullah produced a manuscript: a commentary on one of the most well-read books in human history, the *Gulistan* of Saʿdi. Before discussing the significance of the *Gulistan* and its commentaries, we might well ask: What's special about a manuscript? + +Imagine a historian two hundred years from now who wants to write a history of our times. She could access a range of sources: government documents, digital archives, social media feeds of dead people, the books and newspapers that we produced, the statues we erected, and so on. For a historian who wants to write a history of an era before print, however, sources are considerably limited. The problem is further exacerbated for a region like South Asia, where two centuries of British colonialism systematically distorted local libraries, archives, and collective memory. The sources that can shed light on India's past are accordingly fewer in quantity and scope than, say, sources on France or England. In this context, manuscripts produced in India acquire immense value as both carriers of textual knowledge and material artifacts of the past. + +{{}} + +Generations of Indian historians, of course, have recognized the importance of manuscripts. Working on such diverse themes as politics and economy, gender and sexuality, scholars have drawn on these texts to illustrate some features of India's past. These sketches are incomplete, however, not only due to the paucity of sources, but also because every source carries a particular perspective to the exclusion of others. For instance, we know much more about Indian elites than the Indian laity because the most well-preserved manuscripts are those produced at the imperial court at the behest of rich, royal patrons. They formed the core of royal libraries, many of which were looted by the British and other European collectors and transported to Europe. For social and cultural historians, an overwhelming focus on these sources has meant that our present knowledge about everyday Indians distant from the court remains rather limited. This is especially the case for histories of gender and sexuality in early modern India, the era roughly between 1600--1850. What gender and sexual norms were everyday Indians being socialized in? How did they conceive of sexual desires, identities, and acts? Manuscripts of the *Gulistan* can provide important clues. + +********** + +{{< figure src="images/folio_GB8919.jpg" alt="A manuscript page of handwritten text within a double-lined box. Outside that box is commentary text handwritten at a slanted angle." caption="**Figure 1.** Page from ʿAbdul Rasul bin Shihab al-Din Qurashi, \"Sharḥ-i Gulistān-i Sa'dī,\" 8919, fols. 1--2." attr="Ganj Bakhsh Library, Iran-Pakistan Institute of Persian Studies, Islamabad, Pakistan.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. A manuscript page of handwritten text within a double-lined box. Outside that box is commentary text handwritten at a slanted angle. +| +| CAPTION: **Figure 1.** Page from ʿAbdul Rasul bin Shihab al-Din Qurashi, "Sharḥ-i Gulistān-i Sa'dī," 8919, fols. 1--2, Ganj Baksh, Rawalpindi. +| +| ATTRIBUTION: Ganj Bakhsh Library, Iran-Pakistan Institute of Persian Studies, Islamabad, Pakistan. +#----------------------------------------------------------------------------------- +{{}} + +The *Gulistan* (Rose-Garden) was composed in the mid-thirteenth century by the famous Persian writer and poet, Shaykh Saʿdi (d. 1291 CE). Composed in Shiraz, part of present-day Iran, copies of the *Gulistan* soon found their way to India. The book became so popular that it was made a part of school curricula and became the subject of scholarly commentaries. Today, historians agree that the *Gulistan* was used as a textbook for inculcating Islamic ethics and the Persian language. To get a later, seventeenth-century view of its importance, let us read the words of one commentator. Writing shortly after 1662 CE (1073 in the Hijri calendar),[^1] ʿAbd al-Rasul Qurashi noted that the *Gulistan* includes "sweet poetry and colorful prose" and that "all its exhortations are aligned with the knowledge of practical philosophy (*hikmat-i ʿamali*) and all its lessons with the science of ethics (*ʿilm-i akhlaq*)." Unfortunately, students were unable to fully benefit from the text because + +> \[t\]he handling by children and the slippages of their tongues and the corrections of lowly, ill-qualified instructors and those of the unbalanced, weak-spirited schoolmasters (*maktab-dāran*)---those who have not acquired the central meanings of the text---have made certain inappropriate \[passages\] part of the poetry and erased some appropriate passages. This has led to the brilliant textual features (*ʿibārāt-i rāyiʿah*) and the high implications (*ishārāt-i fāyiqah*) of the *Gulistan* to be distorted.[^2] + +As this passage indicates, the *Gulistan* was being taught in the classrooms of early modern India. In fact, it was a mandatory component of a transregional curriculum followed not just in India but also in Central Asia, Iran, and the Ottoman Empire. The goal of this curriculum was to inculcate *adab*, a term that refers both to the proper use of language (exemplified in literary works) and to refined social behavior.[^3] As a text of *adab* par excellence, the *Gulistan* taught students how to behave and how to use and appreciate language. Not all teachers were adequately trained to teach the text, however, which is why commentators sought to clarify the ethical lessons and the linguistic beauties of the text. + +{{< deepzoom tile="https://images.lib.cam.ac.uk/iiif/MS-RAS-00258-000-00011.jp2/info.json" class="shadow" alt="Interactive zoomable viewer showing a manuscript illustration of a teacher surrounded by students." pdf-img="https://images.lib.cam.ac.uk/content/images/MS-RAS-00258-000-00011.jpg" pdf-alt="a manuscript illustration of a teacher surrounded by students." height="50em" caption="**Figure 2.** An elderly man teaching female students and attendants. The illustration is inserted (probably at a later date) into a Gulistan manuscript copied at Fatehpur Sikri in 990 HJ / 1582-3 CE. [Collection of the Royal Asiatic Society](https://cudl.lib.cam.ac.uk/mirador/MS-RAS-00258/11), RAS Persian 258. (accessed October 2, 2024).">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Interactive zoomable viewer showing a manuscript illustration of a teacher surrounded by students. +| +| CAPTION: **Figure 2.** An elderly man teaching female students and attendants. The illustration is inserted (probably at a later date) into a Gulistan manuscript copied at Fatehpur Sikri in 990 HJ / 1582-3 CE. +| ATTRIBUTION: Collection of the Royal Asiatic Society, RAS Persian 258 +| LINK: https://cudl.lib.cam.ac.uk/mirador/MS-RAS-00258/11 +#----------------------------------------------------------------------------------- +{{}} + +Who were the different groups of students studying the *Gulistan*? Given the central importance of the text to the cultivation of Muslim ethics, the *Gulistan* was studied by royal princes and princesses, as indicated in the [portrait](https://cudl.lib.cam.ac.uk/view/MS-RAS-00258/11) above in one of the most finely-illustrated manuscripts of the *Gulistan* produced at the royal court. But much has already been written about the Mughals' patronage of Persian literature. In fact, there is a longstanding assumption that Persian was primarily a language of the Mughal elite and was cultivated mostly in urban centers close to imperial and regional courts.[^4] But we know that the *Gulistan* was widely used as a text for schoolchildren. If we can find further evidence that manuscripts of the text and its commentaries were produced in regions far away from imperial courts, we will begin to see that Persian literature was much more broadly cultivated in early modern India. My ongoing project at The Center for Digital Humanities at Princeton University presents some of this evidence. + +********** + +{{< wrap class="interlude" >}} + + + +
Figure 3: Places where Gulistan manuscripts were originally produced are marked with red pins. Places where commentaries were written on those manuscripts are indicated with blue pins.
+ +{{< wrap class="txt-only" >}} +⩩-----------------------------------------------------------------------------------⟩ +| INTERACTIVE MAP: Map of India and Pakistan with pins indicating the location of manuscripts and commentaries. +| +| CAPTION: **Figure 3:** Places where *Gulistan* manuscripts were originally produced are marked with red pins. Places where commentaries were written on those manuscripts are indicated with blue pins. +| +| SOURCE CODE: https://github.com/Princeton-CDH/startwords/tree/main/content/issues/5/mapping-persian-literacy/gulistan_map.html +⩩-----------------------------------------------------------------------------------⟩ +{{}} + +{{}} + +The map above plots some of the manuscripts of the *Gulistan* and its commentaries that were produced in India between roughly 1650--1900. The raw data for the map was derived from the bibliophilic labor of Ahmed Monzavi, a cataloger from Iran who, together with a team of researchers, undertook a massive research project spanning the late 1950s to the early 1980s. Monzavi and his team cataloged all the Persian manuscripts then present in the libraries of Pakistan. This team of scholars browsed through manuscripts scattered across the country, whether in small village libraries, special collections in universities, or the private collections of individuals. The output of this labor of love is a fourteen-volume tome, an extract of which was printed separately: manuscripts of the writings of Saʿdi.[^5] In this small book are listed about 370 manuscripts of the *Gulistan* itself and about two hundred manuscripts of commentaries on the text. These are the manuscripts that found their way into a recognized collection in Pakistan. There were probably thousands of additional manuscripts produced in South Asia. Some of these are located in libraries in India; many were taken to other parts of the world. Princeton University, for instance, holds a [manuscript](https://catalog.princeton.edu/catalog/9975743063506421) of a *Gulistan* commentary that was composed in Dehvi, a village in the mountainous state of Himachal Pradesh in Northern India. A large number of manuscripts, however, was destroyed over time by human negligence and such elements as wind, water, and worms. + +The manuscripts cataloged in Monzavi's book are therefore only a fraction of the actual number of *Gulistan* manuscripts and commentaries that circulated in early modern India. When it comes to identifying the places of origin of these manuscripts, we encounter obstacles that further limit our already delimited data set. For example, many entries do not include a place of origin at all. This means that the cataloger could not identify an explicit place where the manuscript was first copied using the front matter or end matter, the handful of pages that a cataloger usually scans when compiling a manuscript's meta-data. (There could, nonetheless, be other clues to the place of origin in the manuscript that await discovery by future scholars who read the manuscript in its entirety.) Even when a location is given, the exact provenance can be ambiguous. We are told, for instance, that one commentary was copied on June 22, 1890 CE, in Sharifabad. But, in early modern times and even today, there were many towns referred to by the name of "Sharifabad." Because this manuscript is currently located in a library in Sargodha near Okara, Punjab---just over a hundred miles from one of these Sharifabads---we can assume that's where it was created. But this goes to show the degree of detective work that is needed to place these manuscripts accurately. + +{{}} + +Applying similar methods, we can also gain strong indications---if not definitive information---about the place of origin using the name of the scribe. In India, it has been common practice (even until the early twentieth century) to share one's hometown when giving one's name. For instance, on July 6, 1846, a *Gulistan* commentary was copied by "Muhammad Hasan *mutawattin-i Bhagiyan*," which means "Muhammad Hasan whose *watan* (home) is/has become Bhagiyan" (Bhagiyan is a village in Northern Punjab). In such cases, we can be almost certain that the manuscript was produced in Bhagiyan. However, in some cases, the scribe does not tell us where he is currently based, but follows another common practice of the time by giving a place moniker. For instance, one manuscript was copied by an "Abu al-Fatḥ Sialkoti." Sialkoti is the adjectival form of Sialkot, a city in Pakistan that has acquired global fame for its sporting goods.[^6] It is highly probable that the scribe was in Sialkot at the time he produced the manuscript, but it is also possible that he might have moved to a different city yet retained the moniker "Sialkot." + +Such are the ambiguities and approximations that inevitably attach to writing about the past. Far from making historiography a futile enterprise, the gaps in our knowledge can provide opportunities for further inquiry. A future historian, for instance, might uncover a vibrant culture of Persian-language study in early modern Sialkot, supporting the idea that the manuscript was produced there. One could travel to the library where the manuscript is now held and check its records for the source of the manuscript---perhaps it was donated by a private collector whose descendants can shed some light on the manuscript. + +Historians can also increase the accuracy of their claims by collating their data together. That is, while I might not be one-hundred-percent certain about an individual manuscript, a claim based on a group of manuscripts would hold greater confidence. I turn, therefore, to some of the striking patterns that emerge from the data, in addition to some individual peculiarities. + +********** + +On May 24, 1877, Muhammad Sharif "Nangarhari" inscribed a *Gulistan* commentary in Hisarak, a village in Nangarhar province in Western Afghanistan (the westernmost pin on our map). Its population in 2002 was estimated to be just thirty thousand. The fact that a *Gulistan* commentary was copied there implies a few facts about this village in the nineteenth century: that there was at least one professionally trained scribe (Muhammad Sharif) who could copy Persian books; that there was at least one other manuscript of the same commentary from which Sharif produced his copy; that there were copies of the *Gulistan*, for the teaching of which someone felt the need to have a copy of a commentary; that there was a patron who could pay for the production of the copy; that there were parchment and ink with which the copy could be produced. In other words, the existence of a single manuscript reveals an entire world of knowledge production and transmission in this small village of Hesarak. The fact that our map features a number of such small towns and villages suggests a remarkable reach of Persian literacy beyond courtly elites. + +{{< wrap class="interlude" >}} + + + +
Figure 4: Persian manuscripts at the border of modern-day Afghanistan and Pakistan.
+ +{{< wrap class="txt-only" >}} +⩩-----------------------------------------------------------------------------------⟩ +| INTERACTIVE MAP: Map showing border of modern-day Afghanistan and Pakistan with +| pins indicating the location of manuscripts and commentaries. +| +| CAPTION: **Figure 4:** Persian manuscripts at the border of modern-day Afghanistan and Pakistan. +| +| SOURCE CODE: https://github.com/Princeton-CDH/startwords/tree/main/content/issues/5/mapping-persian-literacy/gulistan_map.html +⩩-----------------------------------------------------------------------------------⟩ +{{}} + +{{}} + +The content of the *Gulistan* and its commentaries can also shed broader light on medieval Indian culture and society. Some stories in the book talk about a man's attraction to a male youth on account of the rosy down on his cheeks; others mention the power of female sexual desire in ways that so shocked European readers of the nineteenth century that they censored these stories altogether from their English translations. One frequently omitted story goes thus: + +> An old man was asked, "Why don't you take a wife?"\ +> "I don't take any pleasure in old women," he replied.\ +> "Get a young one,' they said, "since you are rich enough."\ +> "Inasmuch as I, who am old, have no inclination for old women, what love could a young woman have for me?"\ +> \[verse\] Potency is necessary, not gold / a woman prefers a hard carrot to ten maunds of meat.[^7] + +How did early modern readers engage with such stories? Did they find them unsuitable to be included in a textbook of Islam, as many modern Muslims undoubtedly feel? The commentaries on the *Gulistan* here provide clues. We see that the commentators, unlike later European and Muslim readers, far from displaying any consternation or criticism of such passages, found it important to explicate the passages so that Saʿdi's message is clear. In this case, for instance, the commentators clarified the anatomical reference in the verse. In fact, many commentators stressed the importance of a wife's sexual satisfaction to a healthy marriage. My ongoing dissertation research delves further into the content of the commentaries, especially how the commentators interpret stories pertaining to same-sex desire in ways that disrupt contemporary understandings of the links between desire and selfhood. Here, my point is just to indicate the ways in which tracing the circulation of *Gulistan* manuscripts can shed light on wider historiographical questions. + +Among these wider questions are those of Hindu-Muslim relations and the extent to which cultural and social norms were shared amongst them. The *Gulistan* manuscripts provide evidence that the world of Islamic ethics was not restricted to Muslims. For example, on April 6, 1701, Nanakchand, a Hindu scribe, copied a *Gulistan* commentary for a Hindu patron named Nisbat Raʾye (the commentary is now in a library in the small town of Bhalwal in central Punjab). As further evidence of the participation of other religious groups in the world of the *Gulistan*, we find some manuscripts in Monzavi's catalog which---as opposed to the majority of entries that use the Islamic Hijri calendar---give the date in the [Bikrami calendar](https://en.wikipedia.org/wiki/Vikram_Samvat) that was followed by the Sikh and Hindu communities in the Punjab. These facts are direct evidence that some non-Muslims also patronized Perso-Islamic texts, while others were sufficiently trained in Persian to serve as professional scribes. While it is well established among historians of medieval India that peoples of different faiths served in the Mughal bureaucracy, direct evidence of non-Muslims' participation in the Persian scholarly milieu away from imperial and regional courts is significant. + +Beyond these generic patterns, the visual representation of the data draws our eyes to particularly interesting points. The concentration of points in and around the Lahore region in the Punjab probably reflects the fact that the two largest collections of Persian manuscripts in Pakistan are held by the Punjab University in Lahore and the Ganj Baksh Library in Rawalpindi. But the spread is also illustrative. For instance, a manuscript now in Karachi has traveled all the way from Solapur in Southern India. Not coincidentally, this manuscript is in the [naskh script](https://en.wikipedia.org/wiki/Naskh_(script)), as opposed to the [nastaʿliq script](https://en.wikipedia.org/wiki/Nastaliq) that was more common in Northern India. One manuscript, dated to around the 1800s, was produced in a town in Bihar and is currently located in Peshawar. Within a couple of centuries, it has traveled thousands of miles. How, why, and by whom did this movement take place? These are questions that might make for a riveting historical drama, and one hopes that future researchers can pursue them. + +{{< figure src="images/MKmosque.jpg" alt="Photograph of a mosque, set against a blue sky." caption="**Figure 5.** The Mohabbat Khan Mosque, located in Peshawar, Pakistan." attr="Wikimedia Commons" attrlink="https://commons.wikimedia.org/wiki/File:MKmosque.jpg">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Photograph of a mosque, set against a blue sky. +| +| CAPTION: **Figure 5.** The Mohabbat Khan Mosque, located in Peshawar, Pakistan. +| +| ATTRIBUTION: Wikimedia Commons +#----------------------------------------------------------------------------------- +{{}} + +********** + +This brief article has attempted to give a sort of extended caption to an interactive map of *Gulistan* manuscripts produced in early modern India. Though recognizing all the limitations of the project, I have followed an Arabic proverb often cited by the authors of commentaries: "Whoever cannot encapsulate all, should not leave all." I hope that it can inspire me and others to explore the understudied world of Perso-Islamic manuscripts in India.[^8] + +## Acknowledgments + +I extend my gratitude to a number of people: Maulana Dr. Sabeeh Hamdani, for his help in deciphering the commentaries; Muhammad Siddique Anjum, for helping me extract data from the catalogs and plotting it onto Excel; Arif Noushahi Sahib, for helping me identify obscure places; Wouter Haverals, for revealing the wonders of Leaflet; and Grant Wythoff, for his consistent encouragement and support from the very start of the project through to its present stage. I am also grateful to other fellows and staff at The Center for Digital Humanities at Princeton University, and to many friends and advisers who will be recognized properly in my dissertation acknowledgements. I remain perpetually indebted to Aysha Saeed Hameed, my wife, whose love and care keep me going. + +[^1]: Before the coming of European colonialism, the main calendar used across the Muslim world from Spain to Southeast Asia was the Hijri calendar. It is based on the lunar cycle, which means that a year given in the Hijri calendar can correspond to two years of the CE calendar. For instance, the year 1446 Hijri will span parts of 2024 and 2025 of the CE calendar. + +[^2]: ʿAbdul Rasul bin Shihab al-Din Qurashi, "Sharḥ-i Gulistān-i Sa'dī," 8919, fols. 1--2, Ganj Baksh, Rawalpindi. All translations in this article are my own, unless otherwise noted. + +[^3]: For an excellent article on *adab* and the transregional curriculum that fostered it, with special reference to the *Gulistan*, see Mana Kia, "Adab as Ethics of Literary Form and Social Conduct: Reading the *Gulistan* in Late Mughal India," in *No Tapping Around Philology: A Festschrift in Honor of Wheeler McIntosh Thackston Jr.'s 70th Birthday*, eds. Alireza Korangy and Daniel J. Sheffield (Wiesbaden: Harrassowitz Verlag, 2014), 281--308. + +[^4]: A good illustration of this view comes from Francis Robinson, for whom "Perso-Islamic culture," as he puts it, was decidedly elite. It was the culture of the Muslim *ashraf* \["the respected"\] who came from outside India. These outsiders were mainly "town-dwellers" in towns that were "islands of international Perso-Islamic civilization set in countrysides dominated by local cultures, some barely Islamic, others not Islamic at all." Francis Robinson, *The 'Ulama of Farangi Mahall and Islamic Culture in South Asia* (London: Hurst , 2012). + +[^5]: Ahmed Monzavi, *Sa'di Through the Manuscripts of Pakistan* (Iran-Pakistan Institute of Persian Studies, 1985). + +[^6]: Naeem Abbas, "'Made-in-Sialkot' Adidas Ball Puts Pakistan in the World Cup," Reuters, December 9, 2022, https://www.reuters.com/lifestyle/sports/made-in-sialkot-adidas-ball-puts-pakistan-world-cup-2022-12-09/. + +[^7]: With slight modifications, this translation is taken from Wheeler M. Thackston, *The Gulistan (Rose Garden) of Sa'di* (Bethesda: Ibex Publishers, 2008), 129. + +[^8]: As this piece was going through the final proofs, I discovered "The Persian Tadhkira Project" which maps *tadhkiras* (biographical anthologies) of Persian poets produced and circulating across the Persianate world, c. 1200-1900. For more, see Kevin L. Schwartz, “A Transregional Persianate Library: The Production and Circulation of tadhkiras of Persian Poets in the 18th and 19th Centuries,” *International Journal of Middle East Studies,* 52.1 (2020): pp. 109-135. \ No newline at end of file diff --git a/content/issues/5/mapping-persian-literacy/startwords-5-mapping-persian-literacy.pdf b/content/issues/5/mapping-persian-literacy/startwords-5-mapping-persian-literacy.pdf new file mode 100644 index 00000000..572f553d Binary files /dev/null and b/content/issues/5/mapping-persian-literacy/startwords-5-mapping-persian-literacy.pdf differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/fig1-sample-tied.png b/content/issues/5/visualizing-african-student-mobility/images/fig1-sample-tied.png new file mode 100644 index 00000000..7ebdeeed Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/fig1-sample-tied.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/fig2-sample-grid.png b/content/issues/5/visualizing-african-student-mobility/images/fig2-sample-grid.png new file mode 100644 index 00000000..1a60c844 Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/fig2-sample-grid.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/fig3-census.png b/content/issues/5/visualizing-african-student-mobility/images/fig3-census.png new file mode 100644 index 00000000..6a7d16db Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/fig3-census.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/fig5-massaquoi-card.png b/content/issues/5/visualizing-african-student-mobility/images/fig5-massaquoi-card.png new file mode 100644 index 00000000..6c424a3f Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/fig5-massaquoi-card.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/fig6-mdodona.png b/content/issues/5/visualizing-african-student-mobility/images/fig6-mdodona.png new file mode 100644 index 00000000..bb31d9c9 Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/fig6-mdodona.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/fig7-map-hometown.png b/content/issues/5/visualizing-african-student-mobility/images/fig7-map-hometown.png new file mode 100644 index 00000000..a19404f7 Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/fig7-map-hometown.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/fig8-map-before-ww2.png b/content/issues/5/visualizing-african-student-mobility/images/fig8-map-before-ww2.png new file mode 100644 index 00000000..84b7e52c Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/fig8-map-before-ww2.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/fig9-before-after-zik.png b/content/issues/5/visualizing-african-student-mobility/images/fig9-before-after-zik.png new file mode 100644 index 00000000..a41f21a2 Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/fig9-before-after-zik.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/images/social-media-preview.png b/content/issues/5/visualizing-african-student-mobility/images/social-media-preview.png new file mode 100644 index 00000000..7ebdeeed Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/images/social-media-preview.png differ diff --git a/content/issues/5/visualizing-african-student-mobility/index.md b/content/issues/5/visualizing-african-student-mobility/index.md new file mode 100644 index 00000000..fbc78b16 --- /dev/null +++ b/content/issues/5/visualizing-african-student-mobility/index.md @@ -0,0 +1,246 @@ +--- +type: article +title: Visualizing African Student Mobility +slug: visualizing-african-student-mobility +order: 2 +authors: + - AkanoKim +date: 2024-12-18 +images: ["issues/5/visualizing-african-student-mobility/images/social-media-preview.png"] +summary: What can bundles of worn index cards tell us about twentieth-century African migration to the United States? +doi: 10.70400/QLLR8107 +pdf: https://github.com/Princeton-CDH/startwords/blob/main/content/issues/5/visualizing-african-student-mobility/startwords-5-visualizing-african-student-mobility.pdf +hook_height_override: 177 +--- + +What can bundles of worn index cards tell us about twentieth-century African migration to the United States? In 1959, Horace Mann Bond, then dean of the School of Education at Atlanta University, set out to survey the history of encounters between African Americans and Africans. Key to his investigation was his interest in African students who studied at historically Black colleges and universities (HBCUs) in the US as early as 1848. Against the backdrop of desegregation at home and African decolonization abroad, Bond hoped to demonstrate what he deemed the underappreciated role of HBCUs in educating West African leaders such as Nnamdi Azikiwe (later the first president of Nigeria) and Kwame Nkrumah (the first president of Ghana). Drawing upon information provided by a vast network of fellow college administrators, Bond compiled over 1,100 index cards, each documenting information on an African student.[^1] These cards are a critical resource for my research on the religious, racial, and political formation of African students in the US during the twentieth century. + +{{< figure src="images/fig1-sample-tied.png" alt="Three stacks of index cards tied with black string." caption="**Figure 1.** Sample Set of Index Cards. \"African Students Survey: Index Cards,\" 1961." attr="Horace Mann Bond Papers, Robert S. Cox Special Collections and University Archives Research Center, UMass Amherst Libraries. Photo taken by author.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Three stacks of index cards tied with black string. +| +| CAPTION: **Figure 1.** Sample set of index cards. "African Students Survey: Index +| Cards, 1961." +| +| ATTRIBUTION: Horace Mann Bond Papers, Robert S. Cox Special Collections and +| University Archives Research Center, UMass Amherst Libraries. Photo taken by +| author. +#----------------------------------------------------------------------------------- +{{}} + +As a primary source for analyzing African student mobility, the index cards provide an unparalleled body of archival material that has yet to be analyzed by scholars. Spanning decades worth of data on student migration to over thirty HBCUs, the cards consist of the student's name, where in Africa they came from, the college or university they attended in the US, and the years in which the student was enrolled at the school.[^2] Many cards also include miscellaneous notes such as the student's area of study, whether they returned to Africa, or their occupation following graduation. Housed in a collection of Bond's personal papers at the University of Massachusetts Amherst, the cards offer portraits of students who attended HBCUs at various times, through various means, and for various purposes. + +Handling the cards was just as intriguing as the information they possessed. For each of the thirteen bundles of cards, I carefully removed the black cord binding the cards together. Trying not to disturb the order of the cards, I slowly shuffled one bundle before moving to the next. I let my imagination wander as I speculated about the stories behind the names and details printed on each card. As I perused the cards, I grew convinced that analyzing the "transatlantic educational traffic" of twentieth-century African student mobility presented an exciting opportunity to contribute to the growing body of research that explores student migrations in the context of religion and geopolitics.[^3] Having located African students in this abundant archive, I hoped to situate them in both time and space. + +{{}} + +There was just one problem: although the index cards presented a wealth of information, working with the data on the cards in their current form proved to be unwieldy. Using a repurposed set of tabbed recipe card dividers, Bond roughly organized the index cards by educational institution with clear sections separating African students who attended Lincoln University from those who attended Howard University, for example. This way of organizing the data was perfectly suitable for beginning to answer some of his driving research questions---questions that still preoccupy scholars of African student mobility: "Where did they come \[from\]? Why? Who sent them?"[^4] But what if you wanted to ask additional questions of Bond's data? What if, like me, you were curious about how African student mobility might have changed over time? + +{{< figure src="images/fig2-sample-grid.png" alt="A 3x3 grid of index cards, each containing type-written text." caption="**Figure 2.** Sample set of index cards. \"African Students Survey: Index Cards,\" 1961." attr="Horace Mann Bond Papers, Robert S. Cox Special Collections and University Archives Research Center, UMass Amherst Libraries. Photo taken by author.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. A 3x3 grid of index cards, each containing type-written text. +| +| CAPTION: **Figure 2.** Sample set of index cards. "African Students Survey: Index +| Cards," 1961. +| +| ATTRIBUTION: Horace Mann Bond Papers, Robert S. Cox Special Collections and +| University Archives Research Center, UMass Amherst Libraries. Photo taken by +| author. +#----------------------------------------------------------------------------------- +{{}} + +While images of the index cards have since been digitized, the data remains frozen in time. The text on the cards, a mixture of typewritten and handwritten scripts, cannot readily be processed by text-recognition software.[^5] Furthermore, the scanned cards are still organized according to academic institution, thus obstructing other ways of conceiving and ordering the data. Without the ability to easily reorganize and visualize the information on the cards, the full potential of Bond's intellectual labor has yet to be realized. Motivated to transform this static data into a more pliable form useful for my research, and hopefully that of others, I sought to build upon Bond's work using digital tools. + +Once I was armed with geographic data---that is, the locations where the students were from and the HBCUs they attended---my first inclination was to transform the information on the cards in order to produce a map. I wondered what viewing the scope of students' trajectories might tell me about the nature and contours of their mobility. Fixated on this goal, I began my digital work by viewing it as a means to an end---a laborious, yet necessary chore needed to generate a final product. I assumed that the primary value of digital tools was their convenience. Perhaps, I thought, digital humanities approaches could help me more quickly get to the "true" work of scholarship by making it easier for me to study the information and arrive at scholarly conclusions. I decided my digital experiments would take three forms: transcribing the data, reorganizing the African student records by creating a database, and finally, visualizing African student migration to HBCUs through mapping. + +{{}} + +Yet, I soon realized that the *process* of creating the digital products was itself a practice of scholarly interpretation. The decisions I made along the way---from how to organize the material to what information to add to Bond's dataset---reflected my efforts to make meaning of the data in ways that went beyond Bond's interest in highlighting the significance of HBCUs. To be sure, digital tools, at times, provided a more convenient way of accessing and manipulating the data on the cards. However, working with the archival material using digital humanities methods was not simply a matter of ease. As a supplement to my archival work, using digital tools challenged me to deepen my scholarly inquiry and develop new approaches for analyzing African student mobility. My process revealed that mapping is not the end of our scholarly explorations, but, in many ways, the beginning. + +********** + +The breadth of information Bond gathered is as remarkable now as it would have been then. Recent scholarship on twentieth-century African students in the US has typically relied on data representing students who hailed from one African country or region, students recruited by one US Christian denomination, or students funded by one governmental program.[^6] Historical records documenting African student mobility are as far-flung as the students themselves, often limiting opportunities to identify broader trends in factors that might have informed students' trajectories. However, thanks to Bond's meticulous data curation, we now have access to hundreds of names of African students---individuals who otherwise would have remained buried in the past and within scattered archival records. The index cards thus provide one of the most extensive pieces of historical evidence documenting African migration to the US during the twentieth century. + +During his term as president of Lincoln University, Bond developed a keen interest in learning about African students who came to the US. As the first African American president of the Pennsylvania institution, he inherited Lincoln's long-standing commitment to educating Black men from Africa and the African diaspora. Founded in 1854 with a mission oriented toward "the redemption of Africa," Lincoln (then called the Ashmun Institute) had enduring, if not complicated, religious connections to the continent.[^7] In 1959, Bond began conducting a "historical census" of the African presence at HBCUs. With financial support from the United Negro College Fund, he wrote to over twenty registrars and deans to assist in collecting the data.[^8] The information would serve as the basis for his discussion of Lincoln's legacy of educating Africans as documented in Bond's history of Lincoln entitled *Education for Freedom*.[^9] + +{{< figure src="images/fig3-census.png" alt="A sheet of paper, landscape oriented, containing typewritten text and blank lines." caption="**Figure 3.** Form for completing historical census of African students, ca. 1959." attr="Horace Mann Bond Papers, Robert S. Cox Special Collections and University Archives Research Center, UMass Amherst Libraries.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. A sheet of paper, landscape oriented, containing typewritten text and +| blank lines. +| +| CAPTION: **Figure 3.** Form for completing historical census of African students, +| ca. 1959. +| +| ATTRIBUTION: Horace Mann Bond Papers, Robert S. Cox Special Collections and +| University Archives Research Center, UMass Amherst Libraries. +#----------------------------------------------------------------------------------- +{{}} + +********** + +After viewing the above form, I transcribed the information on the cards into a spreadsheet using Bond's original categories as a structural guide, beginning with the following columns: "Name," "Institution," "Years Enrolled," "African Hometown," "African Country of Origin," and "Miscellaneous Notes." The slow work of transcribing the text on the index cards exposed the limitations of these categories. Modifications would need to be made to account for the variability of data found on the cards. I aimed to transform the spreadsheet into a database that was more than a mere reflection of Bond's institutional concerns and instead could be useful for my research questions. Inspired by the work of Black digital humanities scholar, Kim Gallon, I hoped the digital database could be used as a "technology of recovery" to begin unearthing the narratives of African students.[^10] Further engagement with the archival material using digital tools offered opportunities to arrive at new ways of interpreting Bond's data---to tell new stories. + +The process of reorganizing and visualizing the information on Bond's index cards came with its own set of difficulties. I soon realized, as other scholars have observed, that digital humanities approaches do not simply "do our work for us," but instead "point to where our work lies."[^11] One of the first modifications needed was to account for students who attended more than one academic institution during their stay in the US. After transcribing the data, and with the assistance of the data-cleaning software OpenRefine, I discovered that about one-fourth of the cards were duplicates. What began as a database with about 1,150 entries was whittled down to a collection of 860 entries. I soon realized that many African students began their education at one institution in the US and transferred to other schools to complete their undergraduate education or to pursue graduate or professional training. The data on the index cards does not always document these movements. Still, we can see that the internal mobility of African students in the US meant that some appeared in the records of multiple institutions, thus generating multiple cards that highlight different segments of a student's educational journey. As a result, the "Institution" category spawned two additional columns. For at least sixteen percent of students, their first stop in the US was not their last. + +{{}} +{{}} +| ID | Duplicate ID | Name | Africa City | Africa Country | Education Record Start | Education Record End | Institution 1 | Institution 2 | Institution3 | Misc. Notes | +| ----- | --------------- | ---------------------------- | ----------- | -------------- | ---------------------- | -------------------- | ----------------------------------- | -------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------- | +| 00055 | 00676 | Nurse, Nathaniel | Monrovia | Liberia | 1876 | 1879 | Fisk University | NA | NA | Studied theology; Sent to Fisk by friends in London for missionary work; Returned to the Mendi Mission in West Africa | +| 01081 | NA | Aggrey, James Emman | Cape Coast | Ghana | 1898 | 1902 | Livingstone College | NA | NA | Faculty and Financial Secretary at Livingstone College 1903—1904 | +| 00934 | "00284, 01045" | Tantsi, Harsant J.J. | Lesseyton | South Africa | 1898 | 1906 | Wilberforce University | Morris Brown College | NA | Studied carpentry and vocal music; 1915—1917 Minister in South Africa | +| 00237 | 00899 | Mdodana, David Buyabuye | Idutywa | South Africa | 1906 | 1909 | Shaw University | NA | NA | Graduated with B.Th. in 1908 | +| 00346 | 00217 | Langa, Arthur Bidewell | Mtwalume | South Africa | 1912 | 1913 | Lincoln University | NA | NA | Freshman; Remained for only one year | +| 00352 | NA | Azikiwe, Benjamin Nnamdi | Missing | Nigeria | 1927 | 1932 | Lincoln University | Howard University | NA | Lincoln A.B. in 1931 | +| 00359 | NA | Nkrumah, Francis Nwia-Kofi | Amis[s]ano | Ghana | 1935 | 1942 | Lincoln University | NA | NA | A.B. in 1939; S.T.B. in 1942 | +| 00051 | "00680, 01061" | Massaquoi, Fatima Sandimanni | Monrovia | Liberia | 1936 | 1942 | Fisk University | Lane College | NA | M.A. in 1941; Daughter of another Massaquoi (Albert Momo Thompson) | +| 01052 | 00727 | Hammond, Samuel Ashitey | Accra | Ghana | 1948 | 1956 | Morris Brown College | Atlanta University | NA | Studied English at Morris Brown; Graduate student in social sciences at Atlanta University | +| 00149 | "00142, 00982 " | Gibson, Joseph | Freetown | Sierra Leone | 1952 | 1957 | Central State College (Wilberforce) | NA | NA | Studied theology | +| 00871 | NA | Okwumabua, Onuekwuke | Iselle-Uku | Nigeria | 1956 | 1957 | Virginia Union University | NA | NA | Student in the School of Drama | +{{
}} +{{
}} + +Adjudicating the duplicate student entries proved to be one of the most exciting, though laborious, aspects of the reorganization process. Some duplicate entries were indeed due to students attending multiple institutions while others were due to the misspelling of student names. In order to clean the duplicate entries, I turned to additional archival materials. Doing so exposed me to a range of archival sources, allowing me to locate African migrants in unexpected places. Using archival databases such as Ancestry, I searched the names of students who had multiple cards. University yearbooks, immigration records, US census data, World War I and II draft registration cards, naturalization documents, and other historical records became my guide for placing students in time and space. In my field of religious studies, such sources have been underutilized by scholars of African migration who have typically relied on ethnographic methods in their studies of contemporary African migrant communities.[^12] Triangulating historical sources allowed me to wade through hundreds of duplicate index cards while also beginning to flesh out the narratives of twentieth-century African students. + +{{< figure src="images/fig5-massaquoi-card.png" alt="A lined index card containing typewritten text." caption="**Figure 5.** One of Fatima Massaquoi's index cards." attr="Horace Mann Bond Papers, Robert S. Cox Special Collections and University Archives Research Center, UMass Amherst Libraries." max-width="400px">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. A lined index card containing typewritten text. +| +| CAPTION: **Figure 5.** One of Fatima Massaquoi's index cards. +| +| ATTRIBUTION: Horace Mann Bond Papers, Robert S. Cox Special Collections and +| University Archives Research Center, UMass Amherst Libraries. +#----------------------------------------------------------------------------------- +{{}} + +Liberian student Fatima Massaquoi, who first appears in HBCU catalogs in 1936, for example, attended two Tennessee HBCUs---Lane College and Fisk University---and thus has two sets of index cards. Fatima was not the first in her family to study at an HBCU. Her father, Momolu Massaquoi, attended the Christian Methodist Episcopal Church's Central Tennessee College (later called Walden University) in 1888. Unlike some African students whose travels were sponsored by their home governments, US immigration port records show that the Massaquoi family was able to self-fund Fatima's journey to the US. Fatima began her US education at Lane, which was then led by a former classmate of her father's. After completing her studies at Lane, Fatima decided she wanted to pursue graduate work in sociology. Unfortunately, Lane did not have such a program at the time, so she enrolled at Fisk. Fatima, like many other students, began her studies at an institution where she had relational connections and later continued her studies at institutions that were better suited for her academic interests. Although Bond hoped to highlight the contribution of HBCUs to African students' educational formation, my study of Fatima's record suggests that African students also played a pivotal role in "shaping the nature, meaning and scope of their mobility" by attending multiple institutions.[^13] As one of the relatively few African women who studied in the US during the twentieth century, Fatima's presence in archival records also invites scholars to consider the role of gender in mediating the migratory experiences of African students.[^14] + +{{< figure src="images/fig6-mdodona.png" alt="Two documents side by side, a registration card and a typewritten index card." caption="**Figure 6.** (Left) David Mdodana’s World War I Draft Registration Card. Ancestry.com, World War I Draft Registration Cards, 1917—1918. (Right) One of David Mdodana’s index cards. Horace Mann Bond Papers, Robert S. Cox Special Collections and University Archives Research Center, UMass Amherst Libraries.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Two documents side by side, a registration card and a typewritten index +| card. +| +| CAPTION: **Figure 6.** (Left) David Mdodana’s World War I Draft Registration Card. +| Ancestry.com, World War I Draft Registration Cards, 1917—1918. (Right) One of +| David Mdodana’s index cards. Horace Mann Bond Papers, Robert S. Cox Special +| Collections and University Archives Research Center, UMass Amherst Libraries. +| +#----------------------------------------------------------------------------------- +{{}} + +South African student David Mdodana also appears twice in Bond's set of index cards, although his last name is misspelled as "Mdodona." Both cards place Mdodana at Shaw University around the same time. The North Carolina HBCU was founded by the American Baptist Home Mission Society. I sought out additional historical records to confirm that the cards represented the same student and to see what else I could learn about him. Archival records reveal that he was among the eighteen percent of foreign-born men drafted into World War I.[^15] It does not appear that Mdodana fought in the war; however, his World War I draft card, available on Ancestry, does give us insight into his life in the US. The draft card lists Mdodana as a Baptist minister in North Carolina. One wonders how Mdodana might have made meaning of his conscription given his standing as a Black African "declarant alien"---one intending to become a citizen of the US. As a US-educated clergyperson, Mdodana joined other African students like Ghana's James Aggrey who contributed to US religious life through their professional service.[^16] + +{{}} + +Sorting through duplicates thus became one way to dive deeper into the lives of lesser-known students. Much ink has been spilled examining the lives of African students such as Nnamdi Azikiwe and Kwame Nkrumah---both statesmen and graduates of Lincoln University. However, my research suggests that plenty of work remains to develop a more robust understanding of African student mobility beyond the narratives of notable political figures. Given my interest in the religious formation of students, future versions of the database will include columns for the religious affiliations of the various HBCUs using additional archival material from Bond's collection. As my digital work continues to develop, I hope to explore what connections might emerge between the religious affiliations of the students during their time in Africa and the religious affiliations of the institutions they attended while in the US. Doing so could illuminate the narratives of students who may not have had a significant political impact, but instead bridged religious communities in the US and Africa. + +********** + +While preparing my data for mapping, I started to pay closer attention to where students came from. Given the temporal range of Bond's study, covering the period of 1848--1960, the names of some of the students' home countries changed over time. For example, students hailing from the "Gold Coast" gave way to students coming from "Ghana" when the country gained both independence and a new name in 1957. Moreover, the names of territories listed in the data such as "Congo Free State" (Democratic Republic of the Congo), Southern Rhodesia (Zimbabwe), Northern Rhodesia (Zambia), Tanganyika (Tanzania), and Nyasaland (Malawi), which are not found on present-day maps, also reflect Africa's colonial history. Moving from transcription to mapping revealed that the search for African "origins," even when equipped with geographic data, remains a contested endeavor. + +{{}} + +Reorganizing the data in this way also raised several questions that I hope to explore in my future research. For example: did the ebb and flow of various African independence movements influence how and whether African students articulated national identities while living in the US? Although this question cannot be answered with the index card data alone, it comes into view when restructuring the data and considering the broader implications of Africa's shifting political landscape. + +{{< figure src="images/fig7-map-hometown.png" alt="A map of Africa with purple dots along the western and southern coasts." caption="**Figure 7.** Hometowns of HBCU-educated African Students, 1848–1960." attr="Generated by the author using Palladio." max-width="350px">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. A map of Africa with purple dots along the western and southern coasts. +| +| CAPTION: **Figure 7.** Hometowns of HBCU-educated African Students, 1848-1960. +| +| ATTRIBUTION: Generated by the author using Palladio. +#----------------------------------------------------------------------------------- +{{}} + +Mapping the trajectories of African students who studied at HBCUs reveals the scope and dynamic nature of African migration during the twentieth century. Stanford University's data visualization platform, Palladio, proved especially helpful in this regard. From 1848--1960, the majority of the approximately 865 African students who attended HBCUs came from five countries: Liberia, Nigeria, South Africa, Sierra Leone, and Ghana.[^17] Although African students during the twentieth century also migrated to places like Britain, France, and the USSR for higher education, the US was also an attractive option for at least two reasons. First, students from Anglophone African contexts studied in the US because of linguistic similarities. Second, the significant number of students in Anglophone West Africa and South Africa can be traced to histories of US missionaries who forged connections with Africans and facilitated the migration of students from the late nineteenth century and into the twentieth. + +{{< figure src="images/fig8-map-before-ww2.png" alt="A map of the Atlantic Ocean criss-crossed by purple lines joining the western and southern African coasts with the eastern U.S. coast." caption="**Figure 8.** Liberian and South African Student Migration before World War II." attr="Generated by the author using Palladio.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. A map of the Atlantic Ocean criss-crossed by purple lines joining the +| western and southern African coasts with the eastern U.S. coast. +| +| CAPTION: **Figure 8.** Liberian and South African Student Migration before World +| War II. +| +| ATTRIBUTION: Generated by the author using Palladio. +#----------------------------------------------------------------------------------- +{{}} + +The early influence of Presbyterian missionaries in Liberia, Baptist missionaries in Nigeria, the African Methodist Episcopal (AME) Church in South Africa, the United Brethren Church in Sierra Leone, and the African Methodist Episcopal Zion Church in Ghana partially accounts for the higher concentration of students hailing from these areas.[^18] Prior to World War II, African-American missionary connections to Africa played a significant role in facilitating the migration of students from Liberia and South Africa. The AME Church in particular, by conducting missions in South Africa during the late nineteenth century and early twentieth, is largely responsible for paving the way for South African students to attend schools like Wilberforce University in Ohio and the Tuskegee Institute (now Tuskegee University) in Alabama during this period.[^19] In future versions of my mapping project, I hope to add a layer to the map that displays the presence of US missions in Africa to further tease out these religious connections. + +{{< figure src="images/fig9-before-after-zik.png" alt="Two maps of the Atlantic Ocean criss-crossed by purple lines between the western African coast and the eastern U.S. There are far more lines in the second map." caption="**Figure 9.** Nigerian student migration to HBCUs before (above) and after (below) Nnamdi Azikiwe's return to Nigeria in 1937." attr="Generated by the author using Palladio.">}} +{{< wrap class="txt-only" >}} +#----------------------------------------------------------------------------------- +| FIGURE. Two maps of the Atlantic Ocean criss-crossed by purple lines between the +| western African coast and the eastern U.S. There are far more lines in the second +| map. +| +| CAPTION: **Figure 9.** Nigerian student migration to HBCUs before (above) and +| after (below) Nnamdi Azikiwe's return to Nigeria in 1937. +| +| ATTRIBUTION: Generated by the author using Palladio. +#----------------------------------------------------------------------------------- +{{}} + +Yet missions were not the only animating force driving African student migration. Mapping African student migration to the US also allows us to visualize the impact that US-educated Africans had on fellow Africans back home. Nnamdi Azikiwe attended three HBCUs on his way to completing his undergraduate studies---Storer College in West Virginia, Howard University in D.C., and Lincoln University. During the decade before he began his studies at Lincoln, only thirteen Nigerian students attended HBCUs. + +After graduate work at the University of Pennsylvania and Columbia University, Azikiwe returned to Nigeria in 1934. By 1939, as part of his activism in support of decolonization, Azikiwe sponsored a group of Nigerian men in their pursuit of education in the US so that they too could return home and contribute to decolonization efforts. Referring to themselves as "the Argonauts," the group of students included Kingsley Mbadiwe, his brother George Mbadiwe, Nwafor Orizu, and Mbonu Ojike.[^20] All of the men began their education at Azikiwe's beloved Lincoln. Their presence at the school would inspire future generations of Nigerian students to look to the US for higher education. As can be seen in the maps above, the number of African students at HBCUs hailing from Nigeria more than quadrupled during the decade following Azikiwe's return to his home country. Two cohorts attended Lincoln University, while another cohort migrated to D.C. to attend Howard University, in no small part due to the ongoing influence of Nigerian students like Azikiwe who studied in the US. + +{{}} + +While mapping illuminated some things about African student migration to HBCUs, there were other factors influencing African student mobility that mapping obscures or makes more difficult to visualize. In the case of mapping African student mobility, additional work is needed to highlight aspects of students' movements that the map fails to capture. For relative ease of viewing, these maps illustrate the first institution each student attended. As mentioned previously, students often attended more than one institution during their stay in the US. Thus, while the point-to-point trajectories on the map suggest linear movement from Africa to a single destination in the US, the migratory journeys of students were often far more complicated. Future iterations of this digital project might include creating an animated map that allows viewers to trace the movements of students who began their education at one institution and ended at another. An animated map could also more seamlessly present the option of viewing changes in African student mobility over time. + +********** + +Bond's "African student survey" is a treasure trove for transnational historians and others interested in the relationship between migration, education, and geopolitics. The index cards provide hundreds of names and fragments of biographical information that otherwise remain scattered through a "globally dispersed shadow archive."[^21] The work of transcription, digitization, and mapping begins to answer some questions related to African migration during the twentieth century, while also underscoring the need for further research. The questions that emerge are particularly useful for additional work in the Black digital humanities as they challenge scholars to continue exploring how migration informs Black social and political realities. As this project continues to develop, I hope to make my work available so that others may be inspired to ask questions of the data which, if answered, Bond argued, "would unfold a rich chapter of American history."[^22] Exploring the contours of African migration invites scholars to be flexible in their archival and research methods---to be as mobile as our subjects of study. + +[^1]: Bond began using index cards to organize his research materials after learning this method from a classmate during his time as a graduate student at the University of Chicago. Wayne J. Urban, *Black Scholar: Horace Mann Bond, 1904–1972* (Athens: University of Georgia Press, 1992), 33. + +[^2]: The dates correspond with when the student appears in college and university catalogs. Although Bond's study focused on HBCUs, his data includes students from two Ohio institutions that are not categorized as HBCUs. Both Oberlin College and Otterbein University were two of the earliest non-HBCUs to welcome African-American and African students. + +[^3]: James T. Campbell, *Songs of Zion: The African Methodist Episcopal Church in the United States and South Africa* (Chapel Hill: Univ. of North Carolina Press, 1998), 250; Liping Bu, *Making the World Like Us: Education, Cultural Expansion, and the American Century* (Westport: Praeger, 2003); Manna Duah, "'The Right Kind of Africans': US International Education, Western Liberalism, and the Cold War in Africa" (PhD diss., Temple University, 2020); Paul A. Kramer, "Is the World Our Campus? International Students and US Global Power in the Long Twentieth Century," *Diplomatic History* 33, no. 5 (November 2009): 775--806, https://www.jstor.org/stable/44214049. Matthew K. Shannon, *Losing Hearts and Minds: American-Iranian Relations and International Education during the Cold War* (Ithaca: Cornell University Press, 2017). + +[^4]: "First and Highly Tentative Draft of an Outline for a Research and Action Program by the United Negro Colleges on 'The African Student in the United States,'" September 1959, African Students Survey: General, January 15, 1959--June 11, 1960, Horace Mann Bond Papers, MS 411, Robert S. Cox Special Collections and University Archives, UMass Amherst Libraries (hereafter cited as HMBP). + +[^5]: Processing the text using text recognition software was especially challenging because at least two kinds of handwritten script were used on the cards and certain categories of data (for example, the student's area of study) were not available on all of the cards. + +[^6]: See, for example, Sylvia M. Jacobs, "James Emman Kwegyir Aggrey: An African Intellectual in the United States," *Journal of Negro History* 81, no. 1/4 (Winter--Autumn, 1996): 47--61, https://www.jstor.org/stable/2717607; Kenneth J. King, *Pan-Africanism and Education: A Study of Race, Philanthropy and Education in the United States of America and East Africa* (Brooklyn: Diasporic Africa Press, 2016); Anton Tarradellas, "Pan-African Networks, Cold War Politics, and Postcolonial Opportunities: The African Scholarship Program of American Universities, 1961--75," *Journal of African History* 63, no. 1 (March 2022): 75--90, . + +[^7]: Cortlandt Van Rensselaer, *God Glorified by Africa: An Address Delivered on December 31, 1856, at the Opening of the Ashmun Institute, Near Oxford, Pennsylvania* (J.M. Wilson, 1859), 41--43. + +[^8]: Outline for "A Proposed Research and Action Program by the United Negro Colleges on the Subject: 'The African Student in the United States,'" African Students Survey: General, January 15, 1959–June 11, 1960, HMBP. + +[^9]: Horace Mann Bond, *Education for Freedom: A History of Lincoln University, Pennsylvania* (Lincoln University, PA: Lincoln University, 1976). + +[^10]: Kim Gallon, "Making a Case for the Black Digital Humanities," in *Debates in the Digital Humanities 2016*, ed. Lauren F. Klein and Matthew K. Gold (Minneapolis: Univ. of Minnesota Press, 2016), 44, https://doi.org/10.5749/j.ctt1cn6thb.7. + +[^11]: Dan Edelstein et al., "Historical Research in a Digital Age: Reflections from the Mapping the Republic of Letters Project," *American Historical Review* 122, no. 2 (April 2017): 409, https://www.jstor.org/stable/26576710. + +[^12]: See, for example, Jacob K. Olupona and Regina Gemignani, eds., *African Immigrant Religions in America* (New York: New York University Press, 2007). + +[^13]: Anton Tarradellas and Romain Landmeters, "Les Mobilités des étudiantes et des étudiants africains: une histoire transnationale de l'Afrique depuis la décolonisation," *Diasporas. Circulations, migrations, histoire*, no. 37 (February 2021): 3, [https://doi.org/10.4000/diasporas.6089](https://doi.org/10.4000/diasporas.6089). + +[^14]: Fatima Massaquoi, *The Autobiography of an African Princess*, ed. Vivian Seton, Konrad Tuchscherer, and Arthur Abraham (New York: Palgrave Macmillan, 2013). + +[^15]: "The Immigrant Army: Immigrant Service Members in World War I," US Citizenship and Immigration Services, last modified March 5, 2020, https://www.uscis.gov/about-us/our-history/stories-from-the-archives/the-immigrant-army-immigrant-service-members-in-world-war-i. + +[^16]: Jacobs, "James Emman Kwegyir Aggrey." + +[^17]: See, for example, Obed Mfum-Mensah, *Education Marginalization in Sub-Saharan Africa: Policies, Politics, and Marginality* (Lanham: Lexington Books, 2018). + +[^18]: See Campbell, *Songs of Zion* for a discussion of the AME Church and South African students at Wilberforce University. Campbell, 249-94. + +[^19]: Ibid. + +[^20]: Gloria Chuku, "Mbonu Ojike: An African Nationalist and Pan-Africanist," in *The Igbo Intellectual Tradition: Creative Conflict in African and African Diasporic Thought*, ed. Chuku (New York: Palgrave Macmillan, 2013). + +[^21]: Jean Allman, "Phantoms of the Archive: Kwame Nkrumah, a Nazi Pilot Named Hanna, and the Contingencies of Postcolonial History-Writing," *American Historical Review* 118, no. 1 (February 2013): 129, https://www.jstor.org/stable/23425461. + +[^22]: "First and Highly Tentative Draft of an Outline," HMBP. diff --git a/content/issues/5/visualizing-african-student-mobility/startwords-5-visualizing-african-student-mobility.pdf b/content/issues/5/visualizing-african-student-mobility/startwords-5-visualizing-african-student-mobility.pdf new file mode 100644 index 00000000..e966201d Binary files /dev/null and b/content/issues/5/visualizing-african-student-mobility/startwords-5-visualizing-african-student-mobility.pdf differ diff --git a/data/authors.yml b/data/authors.yml index b0d9d0f7..b47bba16 100644 --- a/data/authors.yml +++ b/data/authors.yml @@ -129,4 +129,22 @@ RomingerGian: title: Assistant Professor, Asian Languages & Literature affiliation: University of Washington website: https://asian.washington.edu/people/gian-rominger - orcid: 0000-0002-0952-2783 \ No newline at end of file + orcid: 0000-0002-0952-2783 +LookmanSharifa: + name: Sharifa Lookman + title: PhD Candidate + affiliation: Princeton University, Departent of Art & Archaeology + website: https://artandarchaeology.princeton.edu/people/sharifa-lookman + orcid: +HameedHasan: + name: Hasan Hameed + title: PhD Candidate + affiliation: Princeton University, Department of History + website: https://history.princeton.edu/people/hasan-hameed + orcid: +AkanoKim: + name: Kimberly Akano + title: PhD Candidate + affiliation: Princeton University, Department of Religion + website: https://religion.princeton.edu/people/kim-akano + orcid: \ No newline at end of file diff --git a/lighthouserc.js b/lighthouserc.js index d3dfec24..59c43591 100644 --- a/lighthouserc.js +++ b/lighthouserc.js @@ -14,9 +14,10 @@ module.exports = { "/issues/", "/issues/1/", "/issues/1/data-beyond-vision/", - "/issues/4/", - "/issues/4/sonorous-medieval/", - "/issues/4/toward-deep-map/", + "/issues/5/", + "/issues/5/casting-in-reverse/", + "/issues/5/visualizing-african-student-mobility/", + "/issues/5/mapping-persian-literacy/", "/authors/", "/404.html" ] diff --git a/package-lock.json b/package-lock.json index 7d6bdeca..74a5f0db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,12 +60,14 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" @@ -109,14 +111,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" @@ -368,17 +372,19 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -417,23 +423,14 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "node_modules/@babel/parser": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.26.3" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -1546,32 +1543,31 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz", - "integrity": "sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.17", - "debug": "^4.1.0", + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.3", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1579,26 +1575,27 @@ } }, "node_modules/@babel/types": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", - "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -1613,9 +1610,10 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "node": ">=6.0.0" } @@ -1626,9 +1624,10 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1680,17 +1679,6 @@ "node": ">=8" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -1798,11 +1786,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -1858,19 +1847,6 @@ } ] }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", @@ -1904,19 +1880,6 @@ "node": ">=12" } }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -2003,14 +1966,6 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -2043,9 +1998,10 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2216,14 +2172,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -2299,6 +2247,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -2306,17 +2255,19 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json5": { @@ -2391,11 +2342,12 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -2856,17 +2808,6 @@ "node": ">=8" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -2883,18 +2824,11 @@ "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -3100,12 +3034,13 @@ } }, "@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" } }, "@babel/compat-data": { @@ -3136,14 +3071,15 @@ } }, "@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "requires": { - "@babel/types": "^7.22.15", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" } }, "@babel/helper-annotate-as-pure": { @@ -3320,14 +3256,14 @@ } }, "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==" + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==" }, "@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==" + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==" }, "@babel/helper-validator-option": { "version": "7.22.15", @@ -3354,21 +3290,14 @@ "@babel/types": "^7.22.15" } }, - "@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "@babel/parser": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "requires": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.26.3" } }, - "@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==" - }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.22.15", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", @@ -4085,50 +4014,46 @@ } }, "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" } }, "@babel/traverse": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.17.tgz", - "integrity": "sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==", - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.17", - "debug": "^4.1.0", + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "requires": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.3", + "debug": "^4.3.1", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", - "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" } }, "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "requires": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" } }, "@jridgewell/resolve-uri": { @@ -4137,9 +4062,9 @@ "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" }, "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" }, "@jridgewell/sourcemap-codec": { "version": "1.4.15", @@ -4147,9 +4072,9 @@ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, "@jridgewell/trace-mapping": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", - "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "requires": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -4189,14 +4114,6 @@ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -4266,11 +4183,11 @@ } }, "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "requires": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" } }, "browserslist": { @@ -4289,16 +4206,6 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001529.tgz", "integrity": "sha512-n2pUQYGAkrLG4QYj2desAh+NqsJpHbNmVZz87imptDdxLAtjxary7Df/psdfyDGmskJK/9Dt9cPnx5RZ3CU4Og==" }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, "chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", @@ -4324,19 +4231,6 @@ "wrap-ansi": "^7.0.0" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, "commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -4399,11 +4293,6 @@ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -4430,9 +4319,9 @@ } }, "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "requires": { "to-regex-range": "^5.0.1" } @@ -4546,11 +4435,6 @@ "function-bind": "^1.1.1" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, "ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -4615,9 +4499,9 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==" }, "json5": { "version": "2.2.3", @@ -4673,11 +4557,11 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "requires": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" } }, @@ -4967,14 +4851,6 @@ "ansi-regex": "^5.0.1" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", @@ -4985,11 +4861,6 @@ "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==" }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/themes/startwords/README.md b/themes/startwords/README.md index 25748b76..3330e157 100644 --- a/themes/startwords/README.md +++ b/themes/startwords/README.md @@ -8,7 +8,7 @@ The Startwords Hugo theme is designed for [a journal of the same name](https://s ## Features - Markdown footnotes ([^1]) are rendered both as **contextual notes**—a new design feature that allows for popup annotations to float above a referenced line—as well as endnotes at the bottom of an article's page. These contextual notes also allow for images to be included within the space of the note itself. -- Multiple article output formats: articles are generated as .txt files using Hugo's `{{ .Plain }}` [page variable](https://gohugo.io/variables/page/) and as PDFs using [paged.js](https://pagedjs.org/) +- Multiple article output formats: articles are generated as .txt files using Hugo's `{{ .Plain }}` [page variable](https://gohugo.io/variables/page/) and as PDFs using [DocRaptor](https://docraptor.com/) - Article DOIs (registered with [Zenodo](zenodo.org/)) are specified in each article's YAML header, so that article metadata can be easily harvested by [Zotero](https://www.zotero.org/) citation management software. - Article illustration capabilities are built in using deep-zoom view of [IIIF](https://iiif.io/) images and [Sketchfab](https://sketchfab.com/) for embedding 3D models. - Excerpts of the current issue's opening lines are generated on the homepage using Hugo's [content summary divider](https://gohugo.io/content-management/summaries/), either with a `` tag after an article's opening sentence, or by populating a `summary:` field in the article's YAML header. @@ -137,12 +137,15 @@ Example use: When pages using this shortcode are rendered as a PDF, the interactive viewer will be replaced by the static image specified in the `pdf-img` attribute, if one was provided. The image will be displayed using the same styles as a figure (see below), with the automatically added caption `The online version of this essay includes an interactive 3D viewer displaying a model of this object.`. +The sketchfab shortcode supports an optional `caption` attribute; the caption may include markdown formatting. + #### parameters - `id`, ID of the SketchFab object to be embedded; can be found in the URL to view the object. - `alt`, text used by assistive technology to describe the content of the viewer. - `pdf-img`, optional: URL to a static image that will be used in place of the viewer in the PDF version of the article. - `pdf-alt`, optional: text used by assistive technology to describe the image specified by `pdf-img`. required if `pdf-img` is specified. +- `caption`, optional: figure caption used on the web version of the article that will appear beneath the embedded SketchFab object. [view source](layouts/shortcodes/sketchfab.html) @@ -308,31 +311,25 @@ authors: ## Generating PDFs -PDF versions of feature articles should be created with [paged.js](https://pagedjs.org/) from the production site so that URLs are correct. +PDF versions of feature articles should be created with [DocRaptor](https://docraptor.com/) from the production site so that URLs are correct. -Install paged.js command-line interface: -``` -npm install -g pagedjs-cli pagedjs -``` +First, install python dependencies: `pip install docraptor bs4 requests`. Next, create a DocRaptor account and get an API key. Your API key can be found on your [account dashboard](https://docraptor.com/login). -Generate a PDF: -``` -pagedjs-cli https://startwords.cdh.princeton.edu/issues/1/their-data-ourselves/ -o startwords-1-their-data-ourselves.pdf -``` +Download our Python script for generating PDFs at https://github.com/Princeton-CDH/startwords/blob/develop/scripts/create_pdf.py -### Generating PDFs for publication +Run that script with the following code: -Build the site with the `pre-production` environment enabled (links to the official Startwords site instead of local development site): -``` -hugo --environment pre-production -``` +`env DOCRAPTOR_API_KEY=foo python create_pdf.py https://startwords.cdh.princeton.edu/issues/3/llm-limit-case/ -o startwords-3-llm-limit-case.pdf` -Serve out the built static site so that you can access it locally, e.g. using python: -``` -python3 -m http.server --directory public -``` +Let's break down that command above: You'll set your API key as the environment variable, replacing the text "foo." You'll also enter the URL you want to export as a PDF (in this case `https://startwords.cdh.princeton.edu/issues/3/llm-limit-case/`) and add a filename for your finished PDF (`startwords-3-llm-limit-case.pdf`). + +The DocRaptor API allows unlimited test PDFs, which are watermarked; creating a test PDF is the default behavior for this script. When you are ready to create a final PDF, use the `--no-test` flag to turn test mode off. + +### Generating PDFs for publication + +To generate PDFs for all the feature articles in one Startwords issue, use the `--issue` flag and run with the issue url, e.g., `create_pdf.py https://startwords.cdh.princeton.edu/issues/3/mapping-latent-spaces/ --issue`, including your API key as described above. -Review the site locally and then generate PDFs as documented. +PDFs will be named according to current Startwords PDF naming conventions. ## Customizing shape of preview text for article hook on issue list and home page diff --git a/themes/startwords/layouts/shortcodes/sketchfab.html b/themes/startwords/layouts/shortcodes/sketchfab.html index 3ee044d0..3fdbc3ee 100644 --- a/themes/startwords/layouts/shortcodes/sketchfab.html +++ b/themes/startwords/layouts/shortcodes/sketchfab.html @@ -1,15 +1,20 @@ {{/* Shortcode for Sketchfab 3D object embedding */}}
- +
+ + {{ with .Get `caption` }} +

{{ . | markdownify }}

+ {{ end }} +
{{/* image, alt & caption rendered in pdf only, in place of viewer */}} {{ if (.Get "pdf-img") }}