T-F1
Manchester, John Rylands Library, French 6
Digitization available via The University of Manchester HERE.
show the code
# Load the xml2 package
library(xml2)
#Path to xml file
path_xml <- "data/T-F1.xml"
# START OF "NEARLY DIPLOMATIC" CODE
# Read the XML content
xml_file <- read_xml("data/T-F1-nearly_diplomatic.xml")
# Extract <l>, <cb>, and <pb> elements
lines <- xml_find_all(xml_file, "//text//l | //text//cb | //text//pb")
# Initialize an empty list to store the processed lines
processed_lines <- list()
# Function to process each element
process_line <- function(line) {
# Handle column breaks
if (xml_name(line) == "cb") {
return("<div class='column-break'></div>")
}
# Process emph elements (decorative initials)
emph_elements <- xml_find_all(line, ".//emph")
for (emph in emph_elements) {
# Get the initial letter text
initial_letter <- xml_text(emph)
# Get the size attribute (n) and style attribute (rend)
size_attr <- xml_attr(emph, "n")
style_attr <- xml_attr(emph, "rend")
# Create the HTML for the styled initial
styled_initial <- sprintf('<span class="decorative-initial %s" data-size="%s">%s</span>',
style_attr, size_attr, initial_letter)
# Replace the emph element with the styled HTML
xml_text(emph) <- styled_initial
}
# Process choice elements
choices <- xml_find_all(line, ".//choice")
for (choice in choices) {
orig_text <- xml_text(xml_find_first(choice, ".//orig"))
xml_set_text(choice, orig_text)
}
# Remove reg elements
reg_elements <- xml_find_all(line, ".//reg")
xml_remove(reg_elements)
# Return processed line text
return(sprintf("<div style='line-height: 1.2;'>%s</div>", xml_text(line)))
}
# Process each line
for (line in lines) {
processed_lines <- c(processed_lines, process_line(line))
}
# Format and print
formatted_text <- paste(processed_lines, collapse = "\n")
cat(formatted_text)
# function to create html from xml
convert_xml_to_html <- function(xml_file,
version_name = c("minimal", "intermediate", "extensive"),
min_line = NULL,
max_line = NULL) {
# Check if the version name is valid
version_name <- match.arg(version_name)
# WHITESPACE PRESERVATION: Apply placeholders before xml2 parsing
# Read the entire XML file as a single string (avoids readLines warnings)
file_size <- file.info(xml_file)$size
raw_xml <- readChar(xml_file, file_size)
# Replace whitespace between elements with placeholder tags
processed_xml <- gsub("(</[^>]+>)\\s+(<[^>]*>)", "\\1<SPACE/>\\2", raw_xml)
# Now parse the XML with placeholders in place
xml_file <- read_xml(processed_xml)
# Extract both <l>, <cb>, and <pb> elements
lines <- xml_find_all(xml_file, "//text//l | //text//cb | //text//pb")
# Initialize an empty list to store the processed lines
processed_lines <- list()
# --- NEW: state for folio handling and range tracking
line_count <- 0
in_desired_range <- FALSE
last_folio <- NULL # most recent <pb n="..."> seen (always recorded)
folio_emitted <- FALSE # ensure we only inject the prelude folio once
need_prelude_folio <- FALSE # signal to inject just before first kept line
# Function to process each element with whitespace preservation
process_line <- function(line) {
# Handle page breaks: always record latest folio, render only if in-range
if (xml_name(line) == "pb") {
last_folio <<- xml_attr(line, "n") # record regardless of range
if (!in_desired_range) return(NULL) # do not render until we're in range
return(sprintf("<div class='folio-number'>%s</div>", last_folio))
}
# Only increment line count and compute range for verse lines
if (xml_name(line) == "l") {
line_count <<- line_count + 1
# compute whether *this* line is in range
current_in_range <- if (is.null(min_line) && is.null(max_line)) {
TRUE
} else if (is.null(min_line) && !is.null(max_line)) {
line_count <= max_line
} else if (!is.null(min_line) && is.null(max_line)) {
line_count >= min_line
} else {
line_count >= min_line && line_count <= max_line
}
# detect first entry into range (FALSE -> TRUE)
if (current_in_range && !in_desired_range) {
need_prelude_folio <<- TRUE
}
in_desired_range <<- current_in_range
if (!in_desired_range) return(NULL) # Skip lines outside our range
# Add line number div every 5th line
line_number <- if (line_count %% 5 == 0) {
sprintf("<div class='line-number'>%d</div>", line_count)
} else {
""
}
} else {
# Non-<l> elements (<cb>, etc.)
line_number <- ""
if (!in_desired_range) return(NULL) # Skip non-line elements outside range
}
# Process emph elements (decorative initials)
emph_elements <- xml_find_all(line, ".//emph")
for (emph in emph_elements) {
# Get the initial letter text
initial_letter <- xml_text(emph)
# Get the size attribute (n) and style attribute (rend)
size_attr <- xml_attr(emph, "n")
style_attr <- xml_attr(emph, "rend")
# Create the HTML for the styled initial
styled_initial <- sprintf('<span class="decorative-initial %s" data-size="%s">%s</span>',
style_attr, size_attr, initial_letter)
# Replace the emph element with the styled HTML
xml_text(emph) <- styled_initial
}
if (version_name == "minimal") {
# Find all <choice> elements within the line
choices <- xml_find_all(line, ".//choice")
for (choice in choices) {
# Extract the text from the <orig> tag
orig_text <- xml_text(xml_find_first(choice, ".//orig"))
# Remove all children and set text directly
xml_remove(xml_children(choice))
xml_text(choice) <- orig_text
}
# remove any <reg> entirely
reg_elements <- xml_find_all(line, ".//reg")
xml_remove(reg_elements)
} else if (version_name == "intermediate") {
# Find all <choice> elements within the line
choices <- xml_find_all(line, ".//choice")
for (choice in choices) {
abbr_exists <- xml_find_first(choice, ".//abbr")
expan_exists <- xml_find_first(choice, ".//expan")
# First check if there's an intermediate tag
if (!is.na(abbr_exists) && !is.na(expan_exists)) {
intermediate_node <- xml_find_first(choice, ".//expan/intermediate")
if (!is.na(intermediate_node)) {
# If intermediate exists, use its text
text_to_use <- xml_text(intermediate_node)
} else {
# If no intermediate, use reg text
text_to_use <- xml_text(xml_find_first(choice, ".//expan/reg"))
}
xml_remove(xml_children(choice))
xml_text(choice) <- text_to_use
} else {
orig_text <- xml_text(xml_find_first(choice, ".//orig"))
xml_remove(xml_children(choice))
xml_text(choice) <- orig_text
}
}
# remove any <reg> entirely
reg_elements <- xml_find_all(line, ".//reg")
xml_remove(reg_elements)
} else if (version_name == "extensive") {
# remove <orig> entirely
orig_elements <- xml_find_all(line, ".//orig")
xml_remove(orig_elements)
# collapse <choice> to <reg>
choices <- xml_find_all(line, ".//choice")
for (choice in choices) {
reg_text <- xml_text(xml_find_first(choice, ".//reg"))
xml_remove(xml_children(choice))
xml_text(choice) <- reg_text
}
}
# Remove <lb/> tags entirely
lb_elements <- xml_find_all(line, ".//lb")
xml_remove(lb_elements)
# Replace SPACE placeholder elements with actual spaces
space_elements <- xml_find_all(line, ".//SPACE")
for (space_elem in space_elements) {
xml_text(space_elem) <- " "
xml_name(space_elem) <- "span"
xml_attr(space_elem, "class") <- "space-marker"
}
# Extract text
line_text <- xml_text(line)
# Clean up extra whitespace but preserve intended spaces
line_text <- trimws(line_text)
line_text <- gsub("\\s+", " ", line_text)
# Return line with number if applicable
return(sprintf("<div style='line-height: 1.2;'>%s%s</div>",
line_number, line_text))
}
# Process each line and wrap with <div class='column-break'> at each <cb/>
for (line in lines) {
processed_line <- process_line(line)
if (!is.null(processed_line)) {
# --- NEW: inject the folio that immediately precedes the first kept line
if (need_prelude_folio && !folio_emitted && !is.null(last_folio)) {
processed_lines <- c(processed_lines,
sprintf("<div class='folio-number'>%s</div>", last_folio))
folio_emitted <- TRUE
need_prelude_folio <- FALSE
}
if (xml_name(line) == "cb" && in_desired_range) {
# Add a closing </div> for the previous column and an opening <div> for the new column
processed_lines <- c(processed_lines, "</div>", "<div class='column-break'>")
} else {
# Process the line and add it to the current column
processed_lines <- c(processed_lines, processed_line)
}
}
}
# Process lines and wrap in edition-text div
formatted_text <- paste(c("<div class='edition-text'>", processed_lines, "</div>"), collapse = "\n")
cat(formatted_text)
}
# PRINT "MINIMAL" VERSION
convert_xml_to_html(xml_file = path_xml, version_name = "minimal")
# PRINT "INTERMEDIATE VERSION"
convert_xml_to_html(xml_file = path_xml, version_name = "intermediate")
#PRINT "EXTENSIVE" VERSION
convert_xml_to_html(xml_file = path_xml, version_name = "extensive")Nearly Diplomatic
Oez seigns une raisun . U il ni ad si vite nun .
Tuite est faite de vrite . ni ad un mot de fal
sete .Bn crei q volents orrunt . Cil q Dapnedeu
amerunt . kar a cels q de lui nut cure . Sap
ole ÷ aspre & dure . Tuit cil q lui volet amer .
e p sa am mei escot . De ma dame seinte Ma
rie .legypciene orrut la vie .K co sacet tuit
peccheur .Q forfet st alur Seignur . Qnul
pecche ÷ tant gnt . Ne tant horible ne tat
pesant . Dunt ne face veir pardun .p fei e
p confessiun .A ces q pernet penitance .Mai
gardent sei de mescreance .Si ho guerpist
la mci De .cil pecche nert ja pdone .pecche
nest mie creature .ainz ÷ un mahain de na
ture .Une Deus ne ca pecche .e nepuroc si ad
sun sie .en tuz homes ad sun ostal .e force
les de fere mal .Nuls ho ÷ en ceste vie .Tant
seit sages u neit folie .p mutes feiz pecche
ret .Li apostle q Deu serviret .p co ne me pui
mveiller .del dolent qat loi peccher .mais de
celui ai gat mveille .Q tuz jurz dort & net se
veille .en ses ordz pecchez se dort . desql sent
al quer la mort .Qnt il se muert & il se sent .
Duc dist il jo men repent .a tart ad ps le rep
entir .Qnt ÷ venu al murir . Sulunc les diz
seint Austin .Nest mie bone icele fin .Qnt
le chaitis sent la mort .Ne pot fere dreit ne
tort .Guerpist la mal iniquite .Nen ad mes
de poeste .Si plus i eust de sa vie .uncore fese
it de folie .Qnt lalme sen vait miserine .Q
li pot fere mescine .Fors cil Deu q la ca .co q
ad fet co tvera .
Ceste dame dunt voil parler .Marie le voil no
mer . Egyptiene est par co dite . Quele fu ne
en Egipte .Ileu fu ne & baptize .Mais malemet
fu enseigne .Legere devit en sun enfance .hun
te pdi & amance .Tant ert espse de luxure .Q
daltre chose naveit cure .P co q ele esteit bele
& gente .Safiout tant en sa juvente . Qle fe
seit tot sun pleisir .Ne li menbrout pas de m
orir .De do parenz ne se gardout .A tuz home
sabandonout .Nespeir q fust en ceste vie .
feme de greign lecherie .Sis pe & sa mre viv
eiet .P poi de dol ne moroient .Il la voleiet ch
astier .Mais nel pisout un dener .Ne pisout
chasti de pent .Plus q feseit trespas de vet .
Fille co li diseit sa mere .kar creez le ꝯseil da
tun pe . Si lungemet tens cest mester .N en
averugntdestu reprover .Pur Deu te pri fi
le Marie .Guerpis ceste lecherie .Qnt cest
mest auras guerpi .Nus te durrum riche
mari .Nest dreit q tu seies pdue .P suffrai
te de nre auue .Fille tu es de gnt parage .
Mlt÷gnt dol & damage .Q tu seies issi pie .
p ta malvaise lecherie .Tis pes ÷ issi irez .
Ja mais a nul jur nert il lez .E maldit
tote saventure .Qnt ad fait tel engendru
re .Qnt Marie loit pler .Ne la pout sule
metescot .Desqle out passe duze anz .A
tuz volt fere lur talanz .P pfere sa volen
te .Sen fui en altre regne .Tuit sun pen
te deguerpit .Unc puis un dels ne la vit .
e issue est cume lere .Senz sou de pere ne
de mere .el chemin entra Marie .Unc ne
demanda ꝯpaignie .en Alisandre ÷ venue .
desconseille & mal seue .Chef le meretce
pst ostal .Iloc ad fet sun curs venal .ele
esteit blanche come flur .Des juvencel
aveit lamur .Tuit enveneiet al bordal .
p sue am li juvencel .Mes p fere tuit su
deduit .Les out od sei jur & nuit .A sun
delit ert ententive .De jur & de nui la
chaitive .Kar beuire & mang & luxure .
co ert tote la sue cure .Qnt levout del
soper .od les garcuns alout juer .Si par
amout od els burdir .ne tendeit guere
al dormir .Li juvencel tuit li plusur .e
ret si esps de sam . Q devant sun us en
lentre .Ileu feseit meinte melle .p co ql
eret si ami .Se feseient ileuc hardi .De
gisarmes & des espees .sentdonouet dono
vent gnt colees .Del sanc q esteit espan
du .se coreit aval la palu .La chative q se
veeit .Nule pour nen enpneit .Si unmo
reit de ses amis .ele en aveit qrante vifs .
Qnt ele veeit les do occis . Ja plus tart ne
feist un ris .Ja cil q pur lui fust naffre .
pur lui n fust il esgarde .plus ama od
les seins juer .Q les malades visit . en
Alisandre esteit Marie .U ele demenout
ceste vie .e ileuc demena ses talenz . La chai
tive dis & set anz .La vile ert de li enpei
re .alqs en ert mahaine .e le pais tut e
virun .esteit en gnt pdiciun .
De sa bealte & de sa figure .Si cum ÷ en
lescpture .Voil un poi dire le seblat .
ainz q jo pas avat .en cel tens en icel
regne .ne vit un home pl bele feme .ne
cuntesse ne reine .nout el chef pl bele
crine .Rundes aveit les oreilles .Mes bl
anches erent a mveilles .les surciz neir
Minimal
8r
Oez seigns une raisun .
U il ni ad si vite nun .
Tuite est faite de vrite .
ni ad un mot de falsete .
5
Bn crei q volents orrunt .
Cil q Dapnedeu amerunt .
kar a cels q de lui nut cure .
Sapole ÷ aspre & dure .
Tuit cil q lui volet amer .
10
e p sa am mei escot .
De ma dame seinte Marie .
legypciene orrut la vie .
K co sacet tuit peccheur .
Q forfet st alur Seignur .
15
Qnul pecche ÷ tant gnt .
Ne tant horible ne tat pesant .
Dunt ne face veir pardun .
p fei e p confessiun .
A ces q pernet penitance .
20
Mai gardent sei de mescreance .
Si ho guerpist la mci De .
cil pecche nert ja pdone .
pecche nest mie creature .
ainz ÷ un mahain de nature .
25
Une Deus ne ca pecche .
e nepuroc si ad sun sie .
en tuz homes ad sun ostal .
e force les de fere mal .
Nuls ho ÷ en ceste vie .
30
Tant seit sages u neit folie .
p mutes feiz pecche ret .
Li apostle q Deu serviret .
p co ne me pui mveiller .
8v
del dolent qat loi peccher .
35
mais de celui ai gat mveille .
Q tuz jurz dort & net seveille .
en ses ordz pecchez se dort .
desql sent al quer la mort .
Qnt il se muert & il se sent .
40
Duc dist il jo men repent .
a tart ad ps le repentir .
Qnt ÷ venu al murir .
Sulunc les diz seint Austin .
Nest mie bone icele fin .
45
Qnt le chaitis sent la mort .
Ne pot fere dreit ne tort .
Guerpist la mal iniquite .
Nen ad mes de poeste .
Si plus i eust de sa vie .
50
uncore fese it de folie .
Qnt lalme sen vait miserine .
Q li pot fere mescine .
Fors cil Deu q la ca .
co q ad fet co tvera .
55
Ceste dame dunt voil parler .
Marie le voil no mer .
Egyptiene est par co dite .
Quele fu ne en Egipte .
Ileu fu ne & baptize .
60
Mais malemet fu enseigne .
Legere devit en sun enfance .
hun te pdi & amance .
Tant ert espse de luxure .
Q daltre chose naveit cure .
65
P co q ele esteit bele & gente .
Safiout tant en sa juvente .
Qle fe seit tot sun pleisir .
Ne li menbrout pas de morir .
De do parenz ne se gardout .
70
A tuz home sabandonout .
Nespeir q fust en ceste vie .
feme de greign lecherie .
Sis pe & sa mre viveiet .
P poi de dol ne moroient .
75
Il la voleiet chastier .
Mais nel pisout un dener .
Ne pisout chasti de pent .
Plus q feseit trespas de vet .
Fille co li diseit sa mere .
80
kar creez le ꝯseil da tun pe .
Si lungemet tens cest mester .
N en averu gnt destu reprover .
Pur Deu te pri file Marie .
Guerpis ceste lecherie .
85
Qnt cest mest auras guerpi .
Nus te durrum riche mari .
Nest dreit q tu seies pdue .
P suffrai te de nre auue .
Fille tu es de gnt parage .
90
Mlt ÷ gnt dol & damage .
Q tu seies issi pie .
p ta malvaise lecherie .
Tis pes ÷ issi irez .
Ja mais a nul jur nert il lez .
95
E maldit tote saventure .
Qnt ad fait tel engendrure .
Qnt Marie loit pler .
Ne la pout sule met escot .
Desqle out passe duze anz .
100
A tuz volt fere lur talanz .
P pfere sa volente .
Sen fui en altre regne .
Tuit sun pente deguerpit .
Unc puis un dels ne la vit .
105
e issue est cume lere .
Senz sou de pere ne de mere .
el chemin entra Marie .
Unc ne demanda ꝯpaignie .
en Alisandre ÷ venue .
110
desconseille & mal seue .
Chef le meretce pst ostal .
Iloc ad fet sun curs venal .
ele esteit blanche come flur .
Des juvencel aveit lamur .
115
Tuit enveneiet al bordal .
p sue am li juvencel .
Mes p fere tuit su deduit .
Les out od sei jur & nuit .
A sun delit ert ententive .
120
De jur & de nui la chaitive .
Kar beuire & mang & luxure .
co ert tote la sue cure .
Qnt levout del soper .
od les garcuns alout juer .
125
Si par amout od els burdir .
ne tendeit guere al dormir .
Li juvencel tuit li plusur .
e ret si esps de sam .
Q devant sun us en lentre .
130
Ileu feseit meinte melle .
p co ql eret si ami .
Se feseient ileuc hardi .
De gisarmes & des espees .
sentdonouet dono vent gnt colees .
135
Del sanc q esteit espandu .
se coreit aval la palu .
La chative q se veeit .
Nule pour nen enpneit .
Si unmoreit de ses amis .
140
ele en aveit qrante vifs .
Qnt ele veeit les do occis .
Ja plus tart ne feist un ris .
Ja cil q pur lui fust naffre .
pur lui n fust il esgarde .
145
plus ama od les seins juer .
Q les malades visit .
en Alisandre esteit Marie .
U ele demenout ceste vie .
e ileuc demena ses talenz .
150
La chaitive dis & set anz .
La vile ert de li enpeire .
alqs en ert mahaine .
e le pais tut evirun .
esteit en gnt pdiciun .
155
De sa bealte & de sa figure .
Si cum ÷ en lescpture .
Voil un poi dire le seblat .
ainz q jo pas avat .
en cel tens en icel regne .
160
ne vit un home pl bele feme .
ne cuntesse ne reine .
nout el chef pl bele crine .
Rundes aveit les oreilles .
Mes blanches erent a mveilles .
165
les surciz neir
Intermediate
8r
Oez seignors une raisun .
U il ni ad si verite nun .
Tuite est faite de verite .
ni ad un mot de falsete .
5
Bien crei que volentiers orrunt .
Cil qui Dampnedeu amerunt .
kar a cels qui de lui nut cure .
Saparole est aspre & dure .
Tuit cil qui lui volent amer .
10
e por sa amor mei escoter .
De ma dame seinte Marie .
legypciene orrunt la vie .
Ke co sacent tuit peccheur .
Qui forfet sont alur Seignur .
15
Quenul pecche est tant granz .
Ne tant horible ne tant pesant .
Dunt ne face veir pardun .
par fei e par confessiun .
A ces qui pernent penitance .
20
Mai gardent sei de mescreance .
Si hom guerpist la merci De .
cil pecche nert ja pardone .
pecche nest mie creature .
ainz est un mahains de nature .
25
Une Deus ne cria pecche .
e nepuroc si ad sun sie .
en tuz homes ad sun ostal .
e force les de fere mal .
Nuls hom est en ceste vie .
30
Tant seit sages u neit folie .
par mutes feiz pecche rent .
Li apostle qui Deu servirent .
por co ne me pui merveiller .
8v
del dolent quant loi peccher .
35
mais de celui ai grant merveille .
Qui tuz jurz dort & nent seveille .
en ses ordz pecchez se dort .
Desquil sent al quer la mort .
Quant il se muert & il se sent .
40
Dunc dist il jo men repent .
a tart ad pris le repentir .
Quant est venu al murir .
Sulunc les diz seint Augustin .
Nest mie bone icele fin .
45
Quant le chaitis sent la mort .
Ne pot fere dreit ne tort .
Guerpist la mal iniquite .
Nen ad mes de poeste .
Si plus i eust de sa vie .
50
uncore fese it de folie .
Quant lalme sen vait miserine .
Qui li pot fere mescine .
Fors cil Deu qui la cria .
co que ad fet co trovera .
55
Ceste dame dunt voil parler .
Marie le voil no mer .
Egyptiene est par co dite .
Quele fu ne en Egipte .
Ileu fu ne & baptize .
60
Mais malement fu enseigne .
Legere devint en sun enfance .
hun te perdi & amance .
Tant ert esprise de luxure .
Que daltre chose naveit cure .
65
Por co quele esteit bele & gente .
Safiout tant en sa juvente .
Quele fe seit tot sun pleisir .
Ne li menbrout pas de morir .
De dous parenz ne se gardout .
70
A tuz home sabandonout .
Nespeir que fust en ceste vie .
fenme de greignor lecherie .
Sis peres & sa mere viveient .
Por poi de dol ne moroient .
75
Il la voleient chastier .
Mais nel prisout un dener .
Ne prisout chasti de parent .
Plus que feseit trespas de vent .
Fille co li diseit sa mere .
80
kar creez le conseil da tun pere .
Si lungement tiens cest mester .
Nos en averuns grant destu reprover .
Pur Deu te pri file Marie .
Guerpis ceste lecherie .
85
Quant cest mestier auras guerpi .
Nus te durrum riche mari .
Nest dreit que tu seies perdue .
Por suffrai te de nostre auue .
Fille tu es de grant parage .
90
Molt est grant dol & damage .
Que tu seies issi perie .
per ta malvaise lecherie .
Tis peres est issi irez .
Ja mais a nul jur nert il lez .
95
E maldit tote saventure .
Quant ad fait tel engendrure .
Quant Marie loit parler .
Ne la pout sule ment escoter .
Desquele out passe duze anz .
100
A tuz volt fere lur talanz .
Por perfere sa volente .
Sen fui en altre regne .
Tuit sun parente deguerpit .
Unc puis un dels ne la vit .
105
e issue est cume lere .
Senz sou de pere ne de mere .
el chemin entra Marie .
Unc ne demanda compaignie .
en Alisandre est venue .
110
desconseille & mal seue .
Chef le meretrice prist ostal .
Iloc ad fet sun curs venal .
ele esteit blanche come flur .
Des juvencel aveit lamur .
115
Tuit enveneient al bordal .
por sue amor li juvencel .
Mes por fere tuit sun deduit .
Les out od sei jur & nuit .
A sun delit ert ententive .
120
De jur & de nui la chaitive .
Kar beuire & mangier & luxure .
co ert tote la sue cure .
Quant levout del soper .
od les garcuns alout juer .
125
Si par amout od els burdir .
ne tendeit gueres al dormir .
Li juvencel tuit li plusur .
e rent si espris de samor .
Que devant sun us en lentre .
130
Ileuc feseient meinte melle .
por co quil erent si ami .
Se feseient ileuc hardi .
De gisarmes & des espees .
sentredonouent dono vent grant colees .
135
Del sanc qui esteit espandu .
se coreit aval la palu .
La chative qui se veeit .
Nule pour nen enperneit .
Si unmoreit de ses amis .
140
ele en aveit quarante vifs .
Quant ele veeit les dous occis .
Ja plus tart ne feist un ris .
Ja cil qui pur lui fust naffre .
pur lui ne fust il esgarde .
145
plus ama od les seins juer .
Que les malades visiter .
en Alisandre esteit Marie .
U ele demenout ceste vie .
e ileuc demena ses talenz .
150
La chaitive dis & set anz .
La vile ert de li enpeire .
alques en ert mahaine .
e le pais tut envirun .
esteit en grant perdiciun .
155
De sa bealte & de sa figure .
Si cum est en lescripture .
Voil un poi dire le semblant .
ainz que jo pas avant .
en cel tens en icel regne .
160
ne vit un home plus bele fenme .
ne cuntesse ne reine .
nout el chef plus bele crine .
Rundes aveit les oreilles .
Mes blanches erent a merveilles .
165
les surciz neirs
Extensive
8r
Oez seignors une raisun .
U il ni ad si verité nun .
Tuite est faite de verité .
n’i ad un mot de falseté .
5
Bien crei que volentiers orrunt .
Cil qui Dampnedeu amerunt .
kar a cels qui de lui n’unt cure .
Sa parole est aspre & dure .
Tuit cil qui lui volent amer .
10
e por s’amor mei escoter .
De ma dame seinte Marie .
l’Egypciene orrunt la vie .
Ke ço saçent tuit peccheur .
Qui forfet sont a lur Seignur .
15
Que nul pecché est tant granz .
Ne tant horible ne tant pesant .
Dunt ne face veir pardun .
par fei e par confessiun .
A ces qui pernent penitance .
20
Mais gardent sei de mescreance .
Si hom guerpist la merci Dé .
cil pecché n’ert ja pardoné .
pecché n’est mie creature .
ainz est un mahains de nature .
25
Une Deus ne cria pecché .
e nepuroc si ad sun sié .
en tuz homes ad sun ostal .
e force les de fere mal .
Nuls hom est en ceste vie .
30
Tant seit sages u n’eit folie .
par mutes feiz pecché rent .
Li apostle qui Deu servirent .
por ço ne me puis merveiller .
8v
del dolent quant l’oi peccher .
35
mais de celui ai grant merveille .
Qui tuz jurz dort & n’ent s’eveille .
en ses ordz pecchez se dort .
Desqu’il sent al quer la mort .
Quant il se muert & il se sent .
40
Dunc dist il jo men repent .
a tart ad pris le repentir .
Quant est venu al murir .
Sulunc les diz seint Augustin .
N’est mie bone icele fin .
45
Quant le chaitis sent la mort .
Ne pot fere dreit ne tort .
Guerpist la mal iniquité .
N’en ad mes de poesté .
Si plus i eust de sa vie .
50
uncore fese it de folie .
Quant l’alme s’en vait miserine .
Qui li pot fere mescine .
Fors cil Deu qui la cria .
ço que ad fet ço trovera .
55
Ceste dame dunt voil parler .
Marie le l’oi voil no mer .
Egyptiene est pur ço dite .
Qu’ele fu ne en Egipte .
Ileu fu ne & baptize .
60
Mais malement fu enseigne .
Legere devint en sun enfance .
hun te perdi & amance .
Tant ert esprise de luxure .
Que d’altre chose n’aveit cure .
65
Por ço qu’ele esteit bele & gente .
S’afiout tant en sa juvente .
Qu’ele fe seit tot sun pleisir .
Ne li menbrout pas de morir .
De dous parenz ne se gardout .
70
A tuz homes s’abandonout .
N’espeir que fust en ceste vie .
fenme de greignor lecherie .
Sis peres & sa mere viveient .
Por poi de dol ne moroient .
75
Il la voleient chastier .
Mais nel prisout un dener .
Ne prisout chasti de parent .
Plus que feseit trespas de vent .
Fille ço li diseit sa mere .
80
kar creez le conseil da tun pere .
Si lungement tiens cest mester .
Nos en averuns grant reprover .
Pur Deu te pri file Marie .
Guerpis ceste lecherie .
85
Quant cest mestier auras guerpi .
Nus te durrum riche mari .
N’est dreit que tu seies perdue .
Por suffrai te de nostre auue .
Fille tu es de grant parage .
90
Molt est grant dol & damage .
Que tu seies issi perie .
per ta malvaise lecherie .
Tis peres est issi irez .
Ja mais a nul jur n’ert il lez .
95
E maldit tote s’aventure .
Quant ad fait tel engendrure .
Quant Marie l’oit parler .
Ne la pout sule ment escoter .
Desqu’ele out passe duze anz .
100
A tuz volt fere lur talanz .
Por perfere sa volenté .
S’en fui en altre regné .
Tuit sun parenté deguerpit .
Unc puis un dels ne la vit .
105
e issue est cume lere .
Senz sou de pere ne de mere .
el chemin entra Marie .
Unc ne demanda compaignie .
en Alisandre est venue .
110
desconseille & mal seue .
Chef le meretrice prist ostal .
Iloc ad fet sun curs venal .
ele esteit blanche come flur .
Des juvencels aveit l’amur .
115
Tuit en veneient al bordal .
por sue amor li juvencel .
Mes por fere tuit sun deduit .
Les out od sei jur & nuit .
A sun delit ert ententive .
120
De jur & de nui la chaitive .
Kar beuire & mangier & luxure .
ço ert tote la sue cure .
Quant levout del soper .
od les garçuns alout juer .
125
Si par amout od els burdir .
ne tendeit gueres al dormir .
Li juvencel tuit li plusur .
e rent si espris de s’amor .
Que devant sun us en l’entre .
130
Ileuc feseient meinte melle .
por ço qu’il erent si ami .
Se feseient ileuc hardi .
De gisarmes & des espees .
s’entredonouent grant colees .
135
Del sanc qui esteit espandu .
se coreit aval la palu .
La chative qui se veeit .
Nule pour n’en en perneit .
Si un moreit de ses amis .
140
ele en aveit quarante vifs .
Quant ele veeit les dous occis .
Ja plus tart ne feist un ris .
Ja cil qui pur lui fust naffré .
pur lui ne fust il esgardé .
145
plus ama od les seins juer .
Que les malades visiter .
en Alisandre esteit Marie .
U ele demenout ceste vie .
e ileuc demena ses talenz .
150
La chaitive dis & set anz .
La vile ert de li enpeire .
alques en ert mahaine .
e le pais tut envirun .
esteit en grant perdiciun .
155
De sa bealté & de sa figure .
Si cum est en l’escripture .
Voil un poi dire le semblant .
ainz que jo pas avant .
en cel tens en icel regne .
160
ne vit un home plus bele fenme .
ne cuntesse ne reine .
n’out el chef plus bele crine .
Rundes aveit les oreilles .
Mes blanches erent a merveilles .
165
les surciz neirs