Navigation Menu

Skip to content

Commit

Permalink
Merge pull request #1296 from digitaljudaica/cleanup
Browse files Browse the repository at this point in the history
Cleanup
  • Loading branch information
dubinsky committed Feb 24, 2020
2 parents a1eda9c + 53953a4 commit eaf4070
Show file tree
Hide file tree
Showing 12 changed files with 60 additions and 70 deletions.

This file was deleted.

@@ -1,7 +1,7 @@
package org.digitaljudaica.archive.collector

import java.io.File
import org.digitaljudaica.xml.Print
import org.digitaljudaica.xml.{From, Parser, Print, Xml}
import org.digitaljudaica.archive.collector.reference.Names
import scala.xml.{Elem, Text}

Expand Down Expand Up @@ -29,9 +29,16 @@ object Main {
writeCollectionsTree(collectionsSorted, layout)
writeIndex(collectionsSorted, layout)

println("Reading names.")
val names: Names =
Parser.parseDo(From.file(layout.docs, layout.namesListsFileName).parse(
Xml.withName("names", Names.parser(layout.namesDirectory, layout))))

println("Processing name references.")
val names: Names = Names(layout.namesDirectory, layout)
names.processReferences(collections.flatMap(_.references))
names.addDocumentReferences(collections.flatMap(_.references))
names.checkReferences()
names.writeNames(layout.namesDirectory)
names.writeList(layout.namesFileDirectory, layout.namesFileName, layout)
}

private def writeIndex(collections: Seq[Collection], layout: Layout): Unit = Util.writeTei(
Expand Down
@@ -1,15 +1,13 @@
package org.digitaljudaica.archive.collector.reference

import java.io.File
import org.digitaljudaica.archive.collector.{CollectionLike, Errors, Layout, Util}
import org.digitaljudaica.archive.collector.{CollectionLike, Layout, Util}
import org.digitaljudaica.xml.{ContentType, Error, From, Parser, Xml}
import org.digitaljudaica.util.Files
import zio.{IO, ZIO}

import scala.xml.{Elem, Text}

final class Names private(
directory: File,
layout: Layout,
override val reference: String,
teiNameds: Seq[org.digitaljudaica.reference.Named],
Expand All @@ -20,25 +18,28 @@ final class Names private(

private val lists: Seq[NamesList] = listDescriptors.map(_.fillOut(nameds))

private val references: Seq[Reference] = nameds.flatMap(_.references)

def findByRef(ref: String): Option[Named] = nameds.find(_.id == ref)

def processReferences(documentReferences: Seq[Reference]): Unit = {
val errors: Errors = new Errors
val references: Seq[Reference] = (this.references ++ documentReferences).filterNot(_.name == Text("?"))
for (reference <- references) reference.check(this, errors)
errors.check()
private var references: Seq[Reference] = null

// Individual names
for (named <- nameds) Util.writeTei(
directory,
fileName = named.id,
head = None,
content = named.toXml(references),
target = "namesViewer"
)
def addDocumentReferences(documentReferences: Seq[Reference]): Unit = {
references = (nameds.flatMap(_.references) ++ documentReferences).filterNot(_.name == Text("?"))
}

def checkReferences(): Unit = {
val errors: Seq[String] = references.flatMap(_.check(this))
if (errors.nonEmpty) throw new IllegalArgumentException(errors.mkString("\n"))
}

def writeNames(directory: File): Unit = for (named <- nameds) Util.writeTei(
directory,
fileName = named.id,
head = None,
content = named.toXml(references),
target = "namesViewer"
)

def writeList(directory: File, fileName: String, layout: Layout): Unit = {
// List of all names
val nonEmptyLists = lists.filterNot(_.isEmpty)
val content: Seq[Elem] =
Expand All @@ -47,8 +48,8 @@ final class Names private(
(for (list <- nonEmptyLists) yield list.toXml)

Util.writeTei(
directory = layout.namesFileDirectory,
fileName = layout.namesFileName,
directory = directory,
fileName = fileName,
head = Some(Text(reference)),
content,
target = "namesViewer"
Expand All @@ -58,11 +59,7 @@ final class Names private(

object Names {

def apply(directory: File, layout: Layout): Names =
Parser.parseDo(From.file(layout.docs, layout.namesListsFileName).parse(
Xml.withName("names", parser(directory, layout))))

private def parser(
def parser(
directory: File,
layout: Layout,
): Parser[Names] = for {
Expand All @@ -77,7 +74,6 @@ object Names {
if (errors.nonEmpty) IO.fail(errors.mkString("--", "\n--", "")) else IO.succeed(results)
}
} yield new Names(
directory,
layout,
reference,
teiNameds,
Expand Down
@@ -1,6 +1,5 @@
package org.digitaljudaica.archive.collector.reference

import org.digitaljudaica.archive.collector.Errors
import org.digitaljudaica.reference.Entity
import scala.xml.{Elem, Node}

Expand All @@ -16,11 +15,12 @@ final case class Reference(
def role: Option[String] = reference.role
def ref: Option[String] = reference.ref

def check(names: Names, errors: Errors): Unit = {
ref.fold(errors.error(s"Missing 'ref' attribute: Name>$name< ($source)")) { ref =>
if (ref.contains(" ")) errors.error(s"""Value of the ref attribute contains spaces: ref="$ref" """) else {
names.findByRef(ref).fold(errors.error(s"""Unresolvable reference: Name ref="$ref">${name.text}< """)) { named =>
if (named.entity != entity) errors.error(s"$entity reference to ${named.entity} ${named.name}: $name [$ref]")
def check(names: Names): Option[String] = {
ref.fold[Option[String]](Some(s"Missing 'ref' attribute: Name>$name< ($source)")) { ref =>
if (ref.contains(" ")) Some(s"""Value of the ref attribute contains spaces: ref="$ref" """) else {
names.findByRef(ref).fold[Option[String]](Some(s"""Unresolvable reference: Name ref="$ref">${name.text}< """)) { named =>
if (named.entity != entity) Some(s"$entity reference to ${named.entity} ${named.name}: $name [$ref]")
else None
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion docs/collections/dubnov/tei/088.xml
Expand Up @@ -173,7 +173,7 @@
<item><label>№ 19.</label> <date when="1800-12-??">Декабрь 1800</date>. Реестръ бумагъ (14 №№) и книгъ (103 №№)
<persName ref="alter-rebbe">Залмана Боруховича</persName>, съ переводомъ его двухъ молитвъ за царя, съ
удостовѣреніемъ составителей описи и переводчиковъ съ еврейскаго на русскій языкъ —
<persName ref="Невахович">Лейбы Неваховича</persName> и <persName ref="Файбишевич">Юды Файбишевича</persName>.
<persName ref="Лейба_Невахович">Лейбы Неваховича</persName> и <persName ref="Файбишевич">Юды Файбишевича</persName>.
</item>

<item><label>№ 20.</label> <date when="1800-12-??">Декабрь 1800</date>. (Получено прокуроромъ
Expand Down
6 changes: 3 additions & 3 deletions docs/collections/dubnov/tei/269.xml
Expand Up @@ -54,7 +54,7 @@
бумагамъ и алфавитный регистръ
приложенъ тамъ же. А кромѣ сихъ и краткаго сочиненія обрядовъ еврейской религіи, выбраннаго изъ древнихъ
еврейскихъ книгъ, никакихъ другихъ, а паче противныхъ еврейскому закону или благу народному нѣтъ, – въ чемъ подписуемся:
переводчикъ съ еврейскаго еврей <persName ref="Невахович">Лейба Неваховичъ</persName>, переводчикъ съ еврейскаго
переводчикъ съ еврейскаго еврей <persName ref="Лейба_Невахович">Лейба Неваховичъ</persName>, переводчикъ съ еврейскаго
еврей <persName ref="Файбишевич">Юда Файбишовичъ</persName>.</p>
<p>Регистръ письмамъ:</p>
<p>1-е) Письмецо <persName ref="alter-rebbe">Боруховича</persName> къ евреямъ Давиду и Абелю о присылкѣ на письмѣ
Expand All @@ -81,7 +81,7 @@
<p>
<pb xml:id="p270" n="270" facs="http://facsimiles.alter-rebbe.org/facsimiles/dubnov/270.jpg"/>
Что точно сей регистръ сходствуетъ съ писаннымъ, подписуемся: переводчикъ еврейскаго языка
<persName ref="Невахович">Лейба Неваховичъ</persName>,
<persName ref="Лейба_Невахович">Лейба Неваховичъ</persName>,
переводчикъ еврейскаго языка <persName ref="Файбишевич">Юда Файбишовичъ</persName>.</p>
<note type="gloss">(Далѣе идетъ русскій переводъ упомянутой въ № <ref
target="/collections/dubnov/documents/263.2.html" role="documentViewer">14</ref> регистра молитвы,
Expand Down Expand Up @@ -111,7 +111,7 @@
ברכה" דינים . – שיטה מקובצת. – ,ראשית חכמה". - .תקוני זהר". -- קצור של"ה . - שבילי אמונה,– שערי ציון, תפלות -
ברתי ופלתי . - מדרש רבה . - שו רשב"א . . . ועוד חלקים מתנ"ך, תלמוד בבלי, דובליקאטום מהנ"ל וכו' . </p>
<p>Что сей регистръ точно соотвѣтствуетъ прописаннымъ книгамъ, въ чемъ подписуемся. Переводчикъ еврейскаго яз.
<persName ref="Невахович">Лейба Неваховичъ</persName>... <persName ref="Файбишевич">Юда Файбишовичъ</persName>.</p>
<persName ref="Лейба_Невахович">Лейба Неваховичъ</persName>... <persName ref="Файбишевич">Юда Файбишовичъ</persName>.</p>
</body>
</text>
</TEI>
2 changes: 1 addition & 1 deletion docs/collections/rgia413/tei/011.xml
Expand Up @@ -74,7 +74,7 @@
<l>14. молитва по еврейскіи сочиненная о благо</l>
<l>денствіи и спасеніи Государя._______________</l>
<l>Что очно сей регистръ сходствуетъ съ <unclear>подлинн</unclear>,</l>
<l>подписуемся. <signed>переводчикъ еврейскаго языка <persName ref="Невахович">Лейба<lb/>
<l>подписуемся. <signed>переводчикъ еврейскаго языка <persName ref="Лейба_Невахович">Лейба<lb/>
_________ неваховичъ</persName></signed></l>
<l><signed>Переводчикъ еврейскаго языка Юда файбишович</signed></l>
</p>
Expand Down
2 changes: 1 addition & 1 deletion docs/collections/rgia413/tei/013.xml
Expand Up @@ -98,7 +98,7 @@
<l>праведность же оцарствуетъ царя. – Заступленіе закона</l>
<l>и пророковъ заступила бы ВСЕМИЛОСТИВѢЙШАГО –</l>
<l>ГОСУДАРЯ НАШЕГО, и да возвысилась бы слава его!!! –</l>
<l>Переводилъ съ еврейскаго переводчикъ <persName ref="Невахович">Лейба Неваховичъ</persName></l>
<l>Переводилъ съ еврейскаго переводчикъ <persName ref="Лейба_Невахович">Лейба Неваховичъ</persName></l>
</p>
</body>
</text>
Expand Down
10 changes: 5 additions & 5 deletions docs/names.xml
Expand Up @@ -202,6 +202,11 @@
<persName>Лейба Меіерович</persName>
</ref>
</l>
<l>
<ref target="/names/Лейба_Невахович.html" role="namesViewer">
<persName>Лейба Невахович</persName>
</ref>
</l>
<l>
<ref target="/names/Лейба_Юделевич.html" role="namesViewer">
<persName>Лейба Юделевич</persName>
Expand Down Expand Up @@ -247,11 +252,6 @@
<persName>Моше</persName>
</ref>
</l>
<l>
<ref target="/names/Невахович.html" role="namesViewer">
<persName>Лейба Невахович</persName>
</ref>
</l>
<l>
<ref target="/names/Нота_Ноткин.html" role="namesViewer">
<persName>Ноткин, Нота Хаимович</persName>
Expand Down
5 changes: 5 additions & 0 deletions docs/names/Лейба_Невахович.html
@@ -0,0 +1,5 @@
---
layout: tei
tei: 'Лейба_Невахович.xml'
target: namesViewer
---
Expand Up @@ -24,17 +24,17 @@
</teiHeader>
<text>
<body>
<person xml:id="Невахович" role="jew">
<person xml:id="Лейба_Невахович" role="jew">
<persName>Лейба Невахович</persName>
<persName>Невахович, Лев Николаевич</persName>
<ref target="https://ru.wikipedia.org/wiki/Невахович,_Лев_Николаевич">[Википедия]</ref>
<ref target="http://ejwiki.org/wiki/Невахович,_Иехуда_Лейб_Бен_Hoax">[ЕжеВиКа,_Еврейская_Вики-энциклопедия]</ref>
<ref target="https://eleven.co.il/jewish-literature/in-russian/12937/">[Электронная_еврейская_энциклопедия]</ref>
<ref target="http://ju.org.ua/ru/publicism/608.html"/>
<ref target="http://www.jewhistory.ort.spb.ru/rus/main/s.php?id=810">[Евреи_Петербурга._Три_века_истории]</ref>
<ref target="http://ejwiki.org/wiki/Невахович,_Иехуда_Лейб_Бен_Hoax">[ЕжеВиКа, Еврейская Вики-энциклопедия]</ref>
<ref target="https://eleven.co.il/jewish-literature/in-russian/12937/">[Электронная еврейская энциклопедия]</ref>
<ref target="http://ju.org.ua/ru/publicism/608.html">publicism</ref>
<ref target="http://www.jewhistory.ort.spb.ru/rus/main/s.php?id=810">[Евреи Петербурга. Три века истории]</ref>
<p>Переводчик с иврита на русский язык показаний участников следствия в 1800 г.</p>
<p rendition="mentions">
<ref target="/names.html#Невахович" role="namesViewer">[...]</ref>
<ref target="/names.html#Лейба_Невахович" role="namesViewer">[...]</ref>
<l>
Дубнов:
<ref target="/collections/dubnov/documents/088.html" role="documentViewer">088</ref>
Expand Down
5 changes: 0 additions & 5 deletions docs/names/Невахович.html

This file was deleted.

0 comments on commit eaf4070

Please sign in to comment.