@@ -158,22 +158,26 @@ gloss_example <- function(transliteration,
158158 }
159159
160160# add glosses to the document gloss list -----------------------------------
161- single_gl <- unlist(strsplit(glosses_by_word , " [-\\ .=:\\ )\\ (!\\ ?<>\\ ~\\ +\u FF3D\u FF3B]" ))
162- starts_with_punctuation <- single_gl [1 ] == " "
163- single_gl <- gsub(pattern = " <" , replacement = " <" , single_gl )
164- single_gl <- gsub(pattern = " >" , replacement = " >" , single_gl )
165- single_gl <- lingglosses :: add_gloss(single_gl )
166- if (starts_with_punctuation ){single_gl <- c(" " , single_gl )}
161+ glosses_by_word | >
162+ strsplit(" (?=[-\\ .=:\\ )\\ (!\\ ?<>\\ ~\\ +\u FF3D\u FF3B])" , perl = TRUE ) | >
163+ lapply(FUN = function (i ){
164+ gsub(pattern = " <" , replacement = " <" , x = i ) | >
165+ gsub(pattern = " >" , replacement = " >" , x = _)
166+ }) - >
167+ single_gl
168+
169+ single_gl | >
170+ lapply(function (i ){
171+ lingglosses :: add_gloss(i )
172+ })
167173
168174# get delimiters back ------------------------------------------------------
169- delimiters <- unlist(strsplit(glosses ,
170- " [^-:\\ .= \\ )\\ (!\\ ?\u 201E\u 201C\u 2019\u 201D\u 00BB\u 00AB\u 201F<>\\ ~\\ +\u FF3B\u FF3D]" ))
171- delimiters <- c(delimiters [delimiters != " " ], " " )
172- if (! starts_with_punctuation ){single_gl <- c(single_gl , rep(" " , sum(delimiters == " >" )))}
173- glosses <- paste0(single_gl , delimiters , collapse = " " )
174- glosses <- gsub(" <span style=" , " <span_style=" , glosses )
175- glosses <- unlist(strsplit(glosses , " " ))
176- glosses <- gsub(" <span_style=" , " <span style=" , glosses )
175+
176+ single_gl | >
177+ lapply(function (i ){
178+ paste0(i , collapse = " " )
179+ }) - >
180+ glosses
177181
178182# italic of the language line ----------------------------------------------
179183 if (isTRUE(italic_transliteration ) & ! drop_transliteration ){
0 commit comments