diff --git a/amp-app.xpr b/amp-app.xpr index 3d377edc3..a5ffb4326 100644 --- a/amp-app.xpr +++ b/amp-app.xpr @@ -32,27 +32,30 @@ - index + toc + search XSL + XSL 2 + 2 - data/editions/ + build_app/ant/build.xml - editions + search @@ -68,11 +71,11 @@ - html/css/style.css + data/meta/auden-biography.xml - search + biographies @@ -88,11 +91,11 @@ - data/editions/photos/amp-transcript__0048.xml + data/editions/ - index + editions @@ -108,11 +111,11 @@ - data/meta/editorial-declaration.xml + html/css/style.css - editorial-declaration + search @@ -128,7 +131,7 @@ - data/indices/listorg.xml + data/editions/photos/amp-transcript__0048.xml @@ -148,11 +151,11 @@ - data/editions/memoirs/amp-transcript__0062.xml + data/meta/editorial-declaration.xml - editions + editorial-declaration @@ -168,7 +171,27 @@ - data/editions/memoirs/amp-transcript__0028.xml + data/indices/listorg.xml + + + + index + + + + + XSL + + + + + 2 + + + + + + data/editions/memoirs/amp-transcript__0062.xml @@ -188,11 +211,11 @@ - data/meta/musulin-biography.xml + data/editions/memoirs/amp-transcript__0028.xml - biographies + editions @@ -208,7 +231,7 @@ - data/meta/auden-biography.xml + data/meta/musulin-biography.xml diff --git a/build_app/ant/build.xml b/build_app/ant/build.xml index 3cba2dc02..de8bce790 100644 --- a/build_app/ant/build.xml +++ b/build_app/ant/build.xml @@ -18,7 +18,7 @@ - + @@ -40,19 +40,19 @@ - + - + - + - + - + diff --git a/build_app/python/make_ts_index.py b/build_app/python/make_ts_index.py index a0fa10249..f3a53662a 100644 --- a/build_app/python/make_ts_index.py +++ b/build_app/python/make_ts_index.py @@ -64,29 +64,69 @@ 'type': 'string[]', 'facet': True, 'optional': True - } + }, + { + 'name': 'events', + 'type': 'string[]', + 'facet': True, + 'optional': True + }, + { + 'name': 'document_type', + 'type': 'string[]', + 'optional': True, + 'facet': True, + }, + { + 'name': 'image', + 'type': 'string', + }, + {"name": "page_int", "type": "int32", "sort": True}, + {"name": "page_str", "type": "string"}, + {"name": "comments_count", "type": "int32"}, + {"name": "comments_bool", "type": "bool", "facet": True}, + {"name": "poem_bool", "type": "bool", "facet": True}, + {"name": "poem_count", "type": "int32"} ] } client.collections.create(current_schema) +def get_context(xpath): + comments = False + comments_len = 0 + for p in body: + try: + ent = p.xpath(xpath, namespaces={'tei': "http://www.tei-c.org/ns/1.0"}) + except AttributeError: + ent = [] + if len(ent) > 0: + comments = True + comments_len += len(ent) + return (comments, comments_len) + + def get_entities(ent_type, ent_node, ent_name): entities = [] e_path = f'.//tei:rs[@type="{ent_type}"]/@ref' for p in body: - ent = p.xpath(e_path, namespaces={'tei': "http://www.tei-c.org/ns/1.0"}) + try: + ent = p.xpath(e_path, namespaces={'tei': "http://www.tei-c.org/ns/1.0"}) + except AttributeError: + ent = [] ref = [ref.replace("#", "") for e in ent if len(ent) > 0 for ref in e.split()] - for r in ref: - p_path = f'.//tei:{ent_node}[@xml:id="{r}"]//tei:{ent_name}[1]' - en = doc.any_xpath(p_path) - if en: - entity = " ".join(" ".join(en[0].xpath(".//text()")).split()) - if len(entity) != 0: - entities.append(entity) - else: - with open("log-entities.txt", "a") as f: - f.write(f"{r} in {record['id']}\n") + if len(ref) > 0: + for r in ref: + p_path = f'.//tei:{ent_node}[@xml:id="{r}"]//tei:{ent_name}[1]' + en = doc.any_xpath(p_path) + if en: + entity = " ".join(" ".join(en[0].xpath(".//text()")).split()) + if len(entity) != 0: + entities.append(entity) + else: + with open("log-entities.txt", "a") as f: + f.write(f"{r} in {record['id']}\n") return [ent for ent in sorted(set(entities))] @@ -94,27 +134,52 @@ def get_entities(ent_type, ent_node, ent_name): cfts_records = [] for x in tqdm(files, total=len(files)): doc = TeiReader(xml=x, xsl='./xslt/preprocess_typesense.xsl') - facs = doc.any_xpath('.//tei:body/tei:div/tei:pb/@facs') - pages = 0 + try: + corresp = doc.any_xpath('.//tei:text[@type="letter"]')[0] + except IndexError: + corresp = False + try: + photo = doc.any_xpath('.//tei:text[@type="photograph"]')[0] + except IndexError: + photo = False + facs = doc.any_xpath('.//tei:body/tei:div//tei:pb') + pages = 1 for v in facs: - p_group = f""".//tei:body/tei:div/tei:p[preceding-sibling::tei:pb[1]/@facs='{v}']| - .//tei:body/tei:div/tei:lg[preceding-sibling::tei:pb[1]/@facs='{v}']""" + facs_id = v.attrib['facs'] + try: + facs_page = v.attrib['ed'] + except KeyError: + facs_page = str(pages) + facs_type = v.attrib['type'] + p_group = f""".//tei:body/tei:div/tei:p[preceding-sibling::tei:pb[1]/@facs='{facs_id}']| + .//tei:body/tei:div/tei:lg[preceding-sibling::tei:pb[1]/@facs='{facs_id}']| + .//tei:body/tei:div/tei:div/tei:ab[preceding-sibling::tei:pb[1]/@facs='{facs_id}']| + .//tei:body/tei:div/tei:div/tei:div[preceding-sibling::tei:pb[1]/@facs='{facs_id}']""" body = doc.any_xpath(p_group) - pages += 1 cfts_record = { 'project': 'amp', } record = {} - record['id'] = os.path.split(x)[-1].replace('.xml', f".html?tab={str(pages)}") + if len(facs_id) > 0: + record['image'] = facs_id.split("/")[-2] + record['page_int'] = int(pages) + record['page_str'] = str(facs_page) + if corresp: + record["document_type"] = ["Correspondence"] + elif photo: + record["document_type"] = ["Photograph"] + else: + record["document_type"] = ["Other"] + record['id'] = os.path.split(x)[-1].replace('.xml', f".html?tab={facs_page}") cfts_record['id'] = record['id'] cfts_record['resolver'] = f"https://amp.acdh.oeaw.ac.at/{record['id']}" record['rec_id'] = os.path.split(x)[-1] cfts_record['rec_id'] = record['rec_id'] r_title = " ".join(" ".join(doc.any_xpath('.//tei:titleStmt/tei:title[@level="a"]/text()')).split()) - record['title'] = f"{r_title} Page {str(pages)}" + record['title'] = r_title cfts_record['title'] = record['title'] try: - date_str = doc.any_xpath('//tei:origin/tei:origDate/@notBefore')[0] + date_str = doc.any_xpath('//tei:origin/tei:origDate/@notBefore-iso')[0] except IndexError: date_str = doc.any_xpath('//tei:origin/tei:origDate/text()')[0] data_str = date_str.split("--")[0] @@ -151,11 +216,19 @@ def get_entities(ent_type, ent_node, ent_name): ent_node = "bibl" record['works'] = get_entities(ent_type=ent_type, ent_node=ent_node, ent_name=ent_name) cfts_record['works'] = record['works'] + # get unique bibls per page + ent_type = "event" + ent_name = "label" + record['events'] = get_entities(ent_type=ent_type, ent_node=ent_type, ent_name=ent_name) + cfts_record['events'] = record['events'] record['full_text'] = "\n".join(" ".join("".join(p.itertext()).split()) for p in body) if len(record['full_text']) > 0: records.append(record) cfts_record['full_text'] = record['full_text'] cfts_records.append(cfts_record) + record['comments_bool'], record['comments_count'] = get_context('.//node()[@ana]') + record['poem_bool'], record['poem_count'] = get_context('.//tei:l') + pages += 1 make_index = client.collections['amp'].documents.import_(records) print(make_index) diff --git a/build_app/python/make_ts_index_local.py b/build_app/python/make_ts_index_local.py index daddad871..c1b81cb79 100644 --- a/build_app/python/make_ts_index_local.py +++ b/build_app/python/make_ts_index_local.py @@ -17,7 +17,7 @@ # 'connection_timeout_seconds': 2 # }) -files = glob.glob('../../data/editions/*/*.xml') +files = glob.glob('./data/editions/*/*.xml') # try: # client.collections['amp'].delete() @@ -37,11 +37,11 @@ }, { 'name': 'title', - 'type': 'string' + 'type': 'string', }, { 'name': 'full_text', - 'type': 'string' + 'type': 'string', }, { 'name': 'year', @@ -72,7 +72,21 @@ 'type': 'string[]', 'facet': True, 'optional': True - } + }, + { + 'name': 'document_type', + 'type': 'string[]', + 'optional': True, + 'facet': True, + }, + { + 'name': 'image', + 'type': 'string', + }, + {"name": "page_int", "type": "int32", "sort": True}, + {"name": "page_str", "type": "string"}, + {"name": "comments_count", "type": "int32"}, + {"name": "comments_bool", "type": "bool", "facet": True}, ] } @@ -83,36 +97,87 @@ def get_entities(ent_type, ent_node, ent_name): entities = [] e_path = f'.//tei:rs[@type="{ent_type}"]/@ref' for p in body: - ent = p.xpath(e_path, namespaces={'tei': "http://www.tei-c.org/ns/1.0"}) + try: + ent = p.xpath(e_path, namespaces={'tei': "http://www.tei-c.org/ns/1.0"}) + except AttributeError: + ent = [] ref = [ref.replace("#", "") for e in ent if len(ent) > 0 for ref in e.split()] - for r in ref: - p_path = f'.//tei:{ent_node}[@xml:id="{r}"]//tei:{ent_name}[1]' - en = doc.any_xpath(p_path) - if en: - entity = " ".join(" ".join(en[0].xpath(".//text()")).split()) - if len(entity) != 0: - entities.append(entity) - else: - with open("log-entities.txt", "a") as f: - f.write(f"{r} in {record['id']}\n") + if len(ref) > 0: + for r in ref: + p_path = f'.//tei:{ent_node}[@xml:id="{r}"]//tei:{ent_name}[1]' + en = doc.any_xpath(p_path) + if en: + entity = " ".join(" ".join(en[0].xpath(".//text()")).split()) + if len(entity) != 0: + entities.append(entity) + else: + with open("log-entities.txt", "a") as f: + f.write(f"{r} in {record['id']}\n") return [ent for ent in sorted(set(entities))] +def get_comments(): + e_path = './/node()[@ana]/@ana' + comments = False + comments_len = 0 + for p in body: + try: + ent = p.xpath(e_path, namespaces={'tei': "http://www.tei-c.org/ns/1.0"}) + except AttributeError: + ent = [] + if len(ent) > 0: + comments = True + comments_len += len(ent) + return (comments, comments_len) + + records = [] for x in tqdm(files, total=len(files)): doc = TeiReader(xml=x, xsl='./xslt/preprocess_typesense.xsl') - facs = doc.any_xpath('.//tei:body/tei:div/tei:pb/@facs') - pages = 0 + try: + corresp = doc.any_xpath('.//tei:text[@type="letter"]')[0] + except IndexError: + corresp = False + try: + photo = doc.any_xpath('.//tei:text[@type="photograph"]')[0] + except IndexError: + photo = False + facs = doc.any_xpath(".//tei:body/tei:div//tei:pb") + pages = 1 for v in facs: - p_group = f""".//tei:body/tei:div/tei:p[preceding-sibling::tei:pb[1]/@facs='{v}']| - .//tei:body/tei:div/tei:lg[preceding-sibling::tei:pb[1]/@facs='{v}']""" + facs_id = v.attrib['facs'] + try: + facs_page = v.attrib['ed'] + except KeyError: + facs_page = str(pages) + facs_type = v.attrib['type'] + p_group = f""".//tei:body/tei:div/tei:p[preceding-sibling::tei:pb[1]/@facs='{facs_id}']| + .//tei:body/tei:div/tei:lg[preceding-sibling::tei:pb[1]/@facs='{facs_id}']| + .//tei:body/tei:div/tei:div/tei:ab[preceding-sibling::tei:pb[1]/@facs='{facs_id}']| + .//tei:body/tei:div/tei:div/tei:div[preceding-sibling::tei:pb[1]/@facs='{facs_id}']""" body = doc.any_xpath(p_group) - pages += 1 + cfts_record = { + 'project': 'amp', + } record = {} - record['id'] = os.path.split(x)[-1].replace('.xml', f".html?page={str(pages)}") + if len(facs_id) > 0: + record['image'] = facs_id.split("/")[-2] + record['page_int'] = int(pages) + record['page_str'] = str(facs_page) + if corresp: + record["document_type"] = ["correspondence"] + elif photo: + record["document_type"] = ["photograph"] + else: + record["document_type"] = ["other"] + record['id'] = os.path.split(x)[-1].replace('.xml', f".html?tab={str(pages)}") + cfts_record['id'] = record['id'] + cfts_record['resolver'] = f"https://amp.acdh.oeaw.ac.at/{record['id']}" record['rec_id'] = os.path.split(x)[-1] + cfts_record['rec_id'] = record['rec_id'] r_title = " ".join(" ".join(doc.any_xpath('.//tei:titleStmt/tei:title[@level="a"]/text()')).split()) - record['title'] = f"{r_title} Page {str(pages)}" + record['title'] = r_title + cfts_record['title'] = record['title'] try: date_str = doc.any_xpath('//tei:origin/tei:origDate/@notBefore')[0] except IndexError: @@ -149,7 +214,10 @@ def get_entities(ent_type, ent_node, ent_name): record['full_text'] = "\n".join(" ".join("".join(p.itertext()).split()) for p in body) if len(record['full_text']) > 0: records.append(record) + print(record['id']) + print(len(record['full_text'])) + record['comments_bool'], record['comments_count'] = get_comments() + pages += 1 -# make_index = client.collections['amp'].documents.import_(records) # print(make_index) print('done with indexing amp') diff --git a/build_app/shell/denormalize.sh b/build_app/shell/denormalize.sh index 8994c2a15..5537a643c 100755 --- a/build_app/shell/denormalize.sh +++ b/build_app/shell/denormalize.sh @@ -1,3 +1,3 @@ # bin/bash -denormalize-indices -f "./data/editions/*/*.xml" -i "./data/indices/*.xml" -m ".//tei:rs[@ref]/@ref" -x ".//tei:title[@level='a']/text()" \ No newline at end of file +denormalize-indices -f "./data/editions/*/*.xml" -i "./data/indices/*.xml" -m ".//tei:rs[@ref]/@ref|//tei:quote[@source]/@source" -x ".//tei:titleStmt/tei:title[@level='a']/text()" \ No newline at end of file diff --git a/build_app/shell/dl_imprint.sh b/build_app/shell/dl_imprint.sh index 281e3c1dd..fee571b0d 100755 --- a/build_app/shell/dl_imprint.sh +++ b/build_app/shell/dl_imprint.sh @@ -4,6 +4,6 @@ REDMINE_ID=20226 IMPRINT_XML=./data/imprint.xml rm ${IMPRINT_XML} echo '' -echo "" >> ${IMPRINT_XML} -curl https://shared.acdh.oeaw.ac.at/acdh-common-assets/api/imprint.php?serviceID=${REDMINE_ID} >> ${IMPRINT_XML} -echo "" >> ${IMPRINT_XML} \ No newline at end of file +echo "
" >> ${IMPRINT_XML} +curl "https://imprint.acdh.oeaw.ac.at/${REDMINE_ID}/?locale=en&format=xhtml" >> ${IMPRINT_XML} +echo "
" >> ${IMPRINT_XML} \ No newline at end of file diff --git a/html/css/micro-editor.css b/html/css/micro-editor.css index e50817ff3..58952f677 100644 --- a/html/css/micro-editor.css +++ b/html/css/micro-editor.css @@ -114,6 +114,10 @@ input:checked + .i-slider:before { font-style: normal; } +.orange { + background-color: #ffdbb8; +} + .red { background-color: #ffe6e6; } @@ -135,7 +139,11 @@ input:checked + .i-slider:before { } .au-brown { - background-color: #b59890; + background-color: #b59890; +} + +.i-slider.orange { + background-color: #ffdbb8; } .i-slider.pink { @@ -178,13 +186,24 @@ input:checked + .i-slider:before { font-weight: bold; } +.light-grey { + color: #dadada; +} + .int::after { - content: url("../images/icons/chat-left-dots.svg"); + content: url("../images/icons/chat-right-quote.svg"); background-color: #b59890; border-radius: 0.5rem; padding: 0.05em; } +.qte::after { + content: url("../images/icons/quote.svg"); + background-color: #dadada; + border-radius: 0.5rem; + padding: 0.05em; +} + .wrk::before { content: url("../images/icons/book.svg"); background-color: #a4f1fd; @@ -230,53 +249,51 @@ input:checked + .i-slider:before { } .editor-btns { - border-radius: .25rem; + border-radius: 0.25rem; } .editor-btns li { - display: inline; - max-width: 50px; - color: #fff; + display: inline; + max-width: 50px; + color: #fff; } .editor-btns-wrapper { - padding: .1em .5em !important; - margin: 0 !important; + padding: 0.1em 0.5em !important; + margin: 0 !important; } - - .editor-back-link { - padding: .1em .5em !important; - margin: 0 !important; + padding: 0.1em 0.5em !important; + margin: 0 !important; } .btn-back-link { - color: #fff; - text-align: left; + color: #fff; + text-align: left; } .btn-back-link:hover { - color: #b59890; + color: #b59890; } .editor-options { - display: flex; - border-radius: .25rem .25rem 0 0; - background-color: #615a60; - justify-content: space-between; + display: flex; + border-radius: 0.25rem 0.25rem 0 0; + background-color: #615a60; + justify-content: space-between; } .img-viewer-btn { - cursor: pointer; + cursor: pointer; } .img-viewer-btn.active { - color: #b59890 !important; + color: #b59890 !important; } .window-screen-btn.active { - color: #b59890 !important; + color: #b59890 !important; } #clear-link { @@ -292,7 +309,8 @@ input:checked + .i-slider:before { } .nav-link.active { - background-color: #f1f1f1 !important; + background-color: #b59890 !important; + color: #fff !important; } .nav-link.btn.active { @@ -336,15 +354,15 @@ input:checked + .i-slider:before { } .handwritten { - font-size: 22px; + font-size: 22px; } .typed { - font-size: 18px; + font-size: 18px; } .printed { - font-size: 18px; + font-size: 18px; } .font-size-26 { @@ -364,50 +382,51 @@ input:checked + .i-slider:before { } .font-dropdown { - border-radius: .25rem; - font-size: 13px; + border-radius: 0.25rem; + font-size: 13px; } #aot-navbarNavDropdown { - text-align: center !important; + text-align: center !important; } #aot-navbarNavDropdown li { width: 100% !important; border: none !important; - padding: .3em !important; + padding: 0.3em !important; } .edition-doc-search { - font-size: 13px; + font-size: 13px; } .edition-doc-search input { - border-radius: .25rem; + border-radius: 0.25rem; } annotation-slider { - display: flex; - justify-content: space-between; + display: flex; + justify-content: space-between; } annotation-slider label { - margin-left: 2em; + margin-left: 2em; } .aot-list { - margin: 0 auto; - display: inline-grid; - width: 25%; - justify-content: space-evenly; + margin: 0 auto; + display: inline-grid; + width: 25%; + justify-content: space-evenly; } .switch input { - visibility: hidden; + visibility: hidden; } /* entities */ -.entity, .ent { +.entity, +.ent { cursor: pointer; } @@ -427,11 +446,15 @@ annotation-slider label { /* Medium devices (tablets, 768px and up) */ @media (max-width: 992px) { .aot-list { - margin: 0 auto; - display: inline-grid; - width: 100%; - justify-content: space-evenly; - padding: 1em 0; - border-bottom: 2px dashed lightgrey; - } -} \ No newline at end of file + margin: 0 auto; + display: inline-grid; + width: 100%; + justify-content: space-evenly; + padding: 1em 0; + border-bottom: 2px dashed lightgrey; + } +} + +.choice.reg { + display: none; +} diff --git a/html/css/style.css b/html/css/style.css index 39fc1aff3..93dba4746 100644 --- a/html/css/style.css +++ b/html/css/style.css @@ -1,14 +1,25 @@ -body { - /*background: url("../images/letter-background.png") 0 0 repeat;*/ +:root { + --amp-primary-bg-color: #b598902a; + --amp-secondary-bg-color: #ffffff; + --amp-primary-link-color: #615a60; + --amp-secondary-link-color: #b59890; + --amp-primary-text-color: #615a60; + --amp-secondary-text-color: #b59890; } -/*.card-header { - background: url("../images/letter-background.png") 0 0 repeat; +.navbar-search { + background-color: #fff !important; } -.card-footer { - background: url("../images/letter-background.png") 0 0 repeat; -}*/ +#mark-scroll { + top: 2em !important; +} + +#mark-scroll button { + border-radius: 0.5rem; + border: 2px solid var(--amp-secondary-text-color); + background-color: var(--amp-primary-bg-color); +} #footnotes li, #endnotes li { @@ -80,11 +91,11 @@ body { max-width: 550px; } -nav { +#wrapper-navbar { transition: 0.2s; } -nav.hiddenNav { +#wrapper-navbar.hiddenNav { transform: translate3d(0, -100%, 0); } @@ -135,7 +146,7 @@ nav.hiddenNav { vertical-align: middle; margin-top: 0 !important; border-radius: 0.35rem; - background-color: rgba(246, 246, 246, 1); + background-color: var(--amp-primary-bg-color); border-radius: 0.35rem; min-height: 280px; transition: transform 0.2s; @@ -145,6 +156,8 @@ nav.hiddenNav { .index-tile:hover { transform: scale(1.02); + background-color: #b59890; + color: #ffffff; } .index-tile-footer { @@ -156,6 +169,14 @@ nav.hiddenNav { margin: 0 auto; } +.sticky { + position: -webkit-sticky; + position: sticky; + top: 0; + width: 400px; + z-index: 1000; +} + .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); @@ -451,9 +472,13 @@ div.dataTables_filter { /* main navigation */ +#wrapper-navbar { + background-color: #ffffff; +} + .navbar { border-bottom: 5px solid #615a60 !important; - background-color: #fff; + background-color: var(--amp-primary-bg-color); overflow: visible; padding-top: 10px; padding-bottom: 10px; @@ -506,17 +531,38 @@ div.dataTables_filter { border-radius: 0.5rem; word-wrap: break-word; word-break: break-word; + background-color: var(--amp-primary-bg-color); +} + +body { + background-color: #ffffff; +} + +.tab-content { + background-color: #ffffff !important; } .index-card { /*opacity: .6;*/ transition: transform 0.2s; - border: 1px solid #f1f1f1; box-shadow: 2px 2px 4.5px 0 rgba(0, 0, 0, 0.1); + min-height: 520px; + justify-content: space-between; +} + +.index-card a:hover { + color: #ffffff !important; +} + +.accordion-item { + --bs-accordion-btn-bg: transparent; + background-color: transparent; } .index-card:hover { transform: scale(1.02); + background-color: #b59890; + color: #ffffff !important; } .index-link:hover { @@ -845,7 +891,6 @@ a.btn-round:hover { .container-fluid { max-width: 1200px; - margin-bottom: 1em; } .container { @@ -1151,8 +1196,6 @@ fieldset.ssFieldset > span > input { .transcript { padding: 0 !important; - border-top: 3px solid #b59890; - border-bottom: 3px solid #b59890; min-height: 1000px; } @@ -1167,6 +1210,20 @@ div.text-re div.card-body { justify-content: center; } +.card-body, +.card-header, +.card-footer { + background-color: transparent !important; +} + +.card-header.img { + background-color: #000 !important; +} + +.index-card .card-footer { + align-self: baseline; +} + /* expanding and descreasing osd images */ .expand-wrapper { cursor: col-resize; @@ -1234,17 +1291,15 @@ div.text-re div.card-body { display: none; } -.tab-pane > .tab-content { - border: 1px solid #b59890; - margin: 0 0.5em; - border-radius: 0.5rem; +.tab-edition { + border-top: 3px solid #b59890; + border-bottom: 3px solid #b59890; } .pagination-top > .pagination { margin: 0 auto; text-align: center; display: block; - background-color: #fff; } .pagination-top > .pagination .nav { @@ -1399,7 +1454,9 @@ td > label { .badge-en.intes:hover { background-color: #615a60; } - +.badge-en.qtes:hover { + background-color: #dadada; +} .badge-en > .number { background-color: #615a60; } @@ -1419,6 +1476,10 @@ td > label { color: #b59890; } +#wrapper-footer-secondary { + background-color: #00122f; +} + /* XML raw style */ .tnc { color: brown; @@ -1811,6 +1872,9 @@ td > label { display: block; padding: 0.3em; } + #searchbox { + width: 100% !important; + } } @media (max-width: 1200px) { @@ -1821,6 +1885,12 @@ td > label { .margin-top { margin-top: 0; } + .hidemobile { + display: none !important; + } + #searchbox { + width: 80% !important; + } } /* Large devices (desktops, 992px and up) */ diff --git a/html/css/ts_search.css b/html/css/ts_search.css index 31c71cf96..0742e1c3e 100644 --- a/html/css/ts_search.css +++ b/html/css/ts_search.css @@ -1,78 +1,115 @@ -#hits { - padding: 1em 0; +:root { + --amp-primary-bg-color: #b598902a; + --amp-secondary-bg-color: #b59890; + --amp-primary-link-color: #615a60; + --amp-secondary-link-color: #b59890; + --amp-primary-text-color: #615a60; + --amp-secondary-text-color: #b59890; } -.ais-Hits-item, -.ais-InfiniteHits-item, -.ais-InfiniteResults-item, -.ais-Results-item { - width: 100%; +/* #hits { + padding: 1em 0; +} */ + +.ais-Hits-item { + width: 47%; } -.ais-SearchBox-form { - display: flex; +.table td, +.table th { + padding: 0.5em; + border: none !important; } -#stats-container, -#searchbox, -#current-refinements, -#clear-refinements, -#range-input { - padding: 1em 0 .5em 0; +/* .ais-SearchBox-form { + display: flex; +} */ -} -#refinement-list-persons, +/* #stats-container, +#searchbox, +#current-refinements, +#clear-refinements, +#range-input { + padding: 1em 0 0.5em 0; +} */ +/* #refinement-list-persons, #refinement-list-keywords, #refinement-list-works, -#refinement-list-orgs, +#refinement-list-orgs, #refinement-list-places { - padding: 1em .5em 2em .5em; - -webkit-box-shadow: -14px 21px 24px -28px rgba(156,156,156,1); - -moz-box-shadow: -14px 21px 24px -28px rgba(156,156,156,1); - box-shadow: -14px 21px 24px -28px rgba(156,156,156,1); - background-color: #fff; - border-radius: .10rem; + padding: 1em 0.5em 2em 0.5em; + -webkit-box-shadow: -14px 21px 24px -28px rgba(156, 156, 156, 1); + -moz-box-shadow: -14px 21px 24px -28px rgba(156, 156, 156, 1); + box-shadow: -14px 21px 24px -28px rgba(156, 156, 156, 1); + background-color: #fff; + border-radius: 0.1rem; +} */ + +/* .col-md-4 h4 { + text-align: center; + margin-top: 1em; +} */ + +.table-ais ul li { + display: inline; + overflow: hidden; +} +.table.table-sm { + margin-bottom: 0; } -.col-md-4 h4 { - text-align: center; - margin-top: 1em; +.table.table-sm th, +.table.table-sm td { + padding: 0.1em; +} + +.table-ais ul li span { + max-width: 200px; } .ais-Hits-item { - background-color: #fff; + background-color: var(--amp-primary-bg-color); +} + +.ais-Hits-item:hover { + background-color: var(--amp-secondary-bg-color); + color: #ffffff !important; +} + +.img-thumbnail { + border: 1px solid var(--amp-secondary-bg-color); } .page-link { - color: #000; + color: #000; } .ais-Pagination-item--selected .ais-Pagination-link { - background-color: #615a60; - border-color: #615a60; + background-color: var(--amp-primary-link-color); + border-color: var(--amp-primary-link-color); } .ais-Pagination-item .ais-Pagination-link:hover { - background-color: #615a60; - border-color: #615a60; - color: #fff; + background-color: var(--amp-primary-link-color); + border-color: var(--amp-primary-link-color); + color: #fff; } .btn { - background-color: lightgrey; - border-color: lightgrey; - color: #000; + background-color: lightgrey; + border-color: lightgrey; + color: #000; } .ais-SearchBox-submit { - background-color: transparent; - border-color: transparent; + background-color: transparent; + border-color: transparent; } .ais-SearchBox-submit:hover { - background-color: transparent !important; - border-color: transparent !important; + background-color: transparent !important; + border-color: transparent !important; } /*.ais-SearchBox-submitIcon { @@ -82,12 +119,23 @@ }*/ .btn:hover { - background-color: #615a60; - border-color: #615a60; - color: #fff; - + background-color: #615a60; + border-color: #615a60; + color: #fff; } - +/* .search-panel { - margin: 2em auto; -} \ No newline at end of file + margin: 2em auto; +} */ + +@media (max-width: 1200px) { + .ais-Hits-item { + width: 100%; + } + .hidemobile { + display: none !important; + } + .image-wrapper { + text-align: center; + } +} diff --git a/html/images/icons/chat-left-dots.svg b/html/images/icons/chat-left-dots.svg index c73169d7d..376ceb19b 100644 --- a/html/images/icons/chat-left-dots.svg +++ b/html/images/icons/chat-left-dots.svg @@ -1,4 +1,4 @@ - - - + + + \ No newline at end of file diff --git a/html/images/icons/chat-right-quote.svg b/html/images/icons/chat-right-quote.svg new file mode 100644 index 000000000..e9091bcf1 --- /dev/null +++ b/html/images/icons/chat-right-quote.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/html/images/icons/quote.svg b/html/images/icons/quote.svg new file mode 100644 index 000000000..0aa0e175a --- /dev/null +++ b/html/images/icons/quote.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/html/js/commentary.js b/html/js/commentary.js index 8ca4da9f5..6f7f165b9 100644 --- a/html/js/commentary.js +++ b/html/js/commentary.js @@ -1,5 +1,5 @@ var comments = document.getElementById("commentary"); -var comment = document.getElementsByClassName("interp"); +var comment = document.getElementsByClassName("note"); [...comment].forEach((c) => { c.addEventListener("click", function () { let ref = c.getAttribute("ref").split("#")[1]; diff --git a/html/js/mark.js b/html/js/mark.js index 0974685b4..34406183b 100644 --- a/html/js/mark.js +++ b/html/js/mark.js @@ -1,39 +1,41 @@ // the DOM object of the context (where to search for matches) -var markInstance = new Mark(document.querySelectorAll("p.yes-index")); -// Cache DOM elements -var keywordInput = document.querySelector("input[name='keyword']"); -var optionInputs = document.querySelectorAll("input[name='opt[]']"); +var input = document.querySelectorAll(".tab-content"), + markInstance = new Mark(input), + // Cache DOM elements + keywordInput = document.querySelector("input[name='keyword']"), + optionInputs = document.querySelectorAll("input[name='opt[]']"), + btns = document.getElementById("mark-scroll"), + clearBtn = document.querySelector("button[data-search='clear']"), + prevBtn = document.querySelector("button[data-search='prev']"), + nextBtn = document.querySelector("button[data-search='next']"), + results = [], + currentClass = "current", + // offsetTop = 50, + resultDiv = document.getElementById("results-div"), + currentIndex = 0; -function performMark() { - // Read the keyword - var keyword = keywordInput.value; - - // Determine selected options - var options = { - acrossElements: true, - }; - [].forEach.call(optionInputs, function (opt) { - options[opt.value] = opt.checked; - }); - - // Remove previous marked elements and mark - // the new keyword inside the context - markInstance.unmark({ - done: function () { - markInstance.mark(keyword, options); - }, - }); +function jumpTo(trigger) { + if (results.length) { + var position, + current = results[currentIndex]; + [].forEach.call(results, function (el) { + el.classList.remove(currentClass); + }); + clearBtn.removeAttribute("disabled"); + nextBtn.removeAttribute("disabled"); + prevBtn.removeAttribute("disabled"); + if (current && trigger) { + current.classList.add(currentClass); + current.scrollIntoView({ + block: "start", + inline: "nearest", + smooth: "true", + }); + } + } } function performMarkUrl() { - // Determine selected options - var options = { - acrossElements: true, - }; - [].forEach.call(optionInputs, function (opt) { - options[opt.value] = opt.checked; - }); - // get current url parameters let url = new URL(window.location.href); let urlParam = new URLSearchParams(url.search); @@ -42,15 +44,113 @@ function performMarkUrl() { } else if (urlParam.get("mark") == "default") { // no action needed } else { - var params = urlParam.get("mark"); + // Determine selected options + var options = { + done: function () { + results = input[0].querySelectorAll("mark"); + currentIndex = 0; + jumpTo(true); + console.log(results); + btns.classList.remove("fade-all"); + resultDiv.innerHTML = "Hits: " + results.length; + }, + }; + + [].forEach.call(optionInputs, function (opt) { + options[opt.value] = opt.checked; + }); + + var keyword = urlParam.get("mark"); + // Remove previous marked elements and mark + markInstance.unmark({ + done: function () { + if (keyword.length >= 3) { + markInstance.mark(keyword, options); + } + }, + }); + } +} + +function performMark() { + // Read the keyword + var keyword = keywordInput.value; + var flags = "gmi"; + if (keyword[keyword.length - 1] !== "\\") { + var regex = new RegExp(keyword, flags); + + // Determine selected options + var options = { + accrossElements: true, + done: function () { + results = input[0].querySelectorAll("mark"); + console.log(results); + console.log(input); + currentIndex = 0; + jumpTo(true); + setTimeout(() => { + btns.classList.remove("fade-all"); + resultDiv.innerHTML = "Hits: " + results.length; + }, 500); + }, + }; + + [].forEach.call(optionInputs, function (opt) { + options[opt.value] = opt.checked; + }); + + // Remove previous marked elements and mark + // the new keyword inside the context markInstance.unmark({ done: function () { - markInstance.mark(params, options); + if (keyword.length >= 3) { + markInstance.markRegExp(regex, options); + } }, }); } } +clearBtn.addEventListener("click", function () { + markInstance.unmark(); + keywordInput.value = ""; + window.scrollTo({ + top: 0, + left: 0, + behavior: "smooth", + }); + clearBtn.setAttribute("disabled", "disabled"); + nextBtn.setAttribute("disabled", "disabled"); + prevBtn.setAttribute("disabled", "disabled"); + btns.classList.add("fade-all"); +}); + +nextBtn.addEventListener("click", function () { + if (results.length) { + currentIndex += this === nextBtn ? 1 : -1; + if (currentIndex < 0) { + currentIndex = results.length - 1; + } + if (currentIndex > results.length - 1) { + currentIndex = 0; + } + jumpTo(true); + } +}); + +prevBtn.addEventListener("click", function () { + if (results.length) { + currentIndex += this === prevBtn ? -1 : 1; + if (currentIndex < 0) { + currentIndex = results.length - 1; + } + if (currentIndex > results.length - 1) { + currentIndex = 0; + } + jumpTo(true); + } +}); + // Listen to input and option changes keywordInput.addEventListener("input", performMark); for (var i = 0; i < optionInputs.length; i++) { diff --git a/html/js/navScrollHide.js b/html/js/navScrollHide.js index 02c0b95a9..f1b4d7d5e 100644 --- a/html/js/navScrollHide.js +++ b/html/js/navScrollHide.js @@ -5,7 +5,7 @@ On scroll up the navbar appears and is sticky. */ var box = document, - nav = document.querySelector("nav"), + nav = document.getElementById("wrapper-navbar"), posEnd = 200; box.addEventListener("scroll", function (event) { diff --git a/html/js/prev-next-urlupdate.js b/html/js/prev-next-urlupdate.js index b8c1fdb99..ae8dd23bd 100644 --- a/html/js/prev-next-urlupdate.js +++ b/html/js/prev-next-urlupdate.js @@ -39,12 +39,12 @@ function nextPrevUrl() { } if (prev) { var prev_href = prev.getAttribute("href"); - var new_prev = new URL(`${domain}/${path}/${prev_href}?${urlparam}`); + var new_prev = new URL(`${domain}${path}/${prev_href}?${urlparam}`); prev.setAttribute("href", new_prev); } if (next) { var next_href = next.getAttribute("href"); - var new_next = new URL(`${domain}/${path}/${next_href}?${urlparam}`); + var new_next = new URL(`${domain}${path}/${next_href}?${urlparam}`); next.setAttribute("href", new_next); } } diff --git a/html/js/run.js b/html/js/run.js index 363ad0bd3..80ced6e32 100644 --- a/html/js/run.js +++ b/html/js/run.js @@ -71,19 +71,20 @@ var editor = new LoadEditor({ }, }, { - opt: "int", - color: "au-brown", - title: "Comments", - html_class: "interp", - css_class: "int", + opt: "cho", + opt_slider: "cho-slider", + title: "Original spelling", + color: "orange", + html_class: "cho", + css_class: "choice", hide: { hidden: true, - class: "interp", + class: "cho.orig", }, chg_citation: "citation-url", features: { all: false, - class: "features-3", + class: "features-1", }, }, { @@ -103,6 +104,38 @@ var editor = new LoadEditor({ class: "features-1", }, }, + { + opt: "nte", + color: "au-brown", + title: "Comments", + html_class: "note", + css_class: "int", + hide: { + hidden: true, + class: "note", + }, + chg_citation: "citation-url", + features: { + all: false, + class: "features-3", + }, + }, + { + opt: "qte", + color: "light-grey", + title: "Quotes", + html_class: "quote", + css_class: "qte", + hide: { + hidden: true, + class: "quote", + }, + chg_citation: "citation-url", + features: { + all: false, + class: "features-3", + }, + }, { opt: "ef", opt_slider: "ef-features-slider", @@ -224,8 +257,8 @@ var editor = new LoadEditor({ font2: "Courier-New", font3: "Arial-serif", }, - paragraph: "p, a", - p_class: "yes-index", + paragraph: "p", + p_class: "yes-index, p.yes-index .segment", css_class: "", }, ], @@ -264,8 +297,8 @@ var editor = new LoadEditor({ font_size_22: "22", font_size_26: "26", }, - paragraph: "p, a", - p_class: "yes-index", + paragraph: "p", + p_class: "yes-index, p.yes-index .segment", css_class: "font-size-", }, ], @@ -296,7 +329,7 @@ var editor = new LoadEditor({ class_parent: "pagination-tab", resize: "resize-hide", }, - image_size: "1000px", + image_size: "800px", }, ], active_class: "active", @@ -313,7 +346,7 @@ var editor = new LoadEditor({ chg_citation: "citation-url", pag_link: ".pagination .nav-tabs .nav-item .nav-link", pag_tab: ".pagination-tab.tab-pane", - img_size: "1000px", + img_size: "800px", url: "https://iiif.acdh.oeaw.ac.at/iiif/images/amp/", url_param: ".jp2/full/full/0/default.jpg", osd_target: "container", @@ -343,7 +376,7 @@ var editor = new LoadEditor({ chg_citation: "citation-url", pag_link: ".pagination-link", pag_tab: ".pagination-tab.tab-pane", - img_size: "1000px", + img_size: "800px", active_class: "active", inactive_class: "fade", bootstrap_class: "show", diff --git a/html/js/ts_search.js b/html/js/ts_search.js index a6f54f509..7f0e344c7 100644 --- a/html/js/ts_search.js +++ b/html/js/ts_search.js @@ -1,3 +1,15 @@ +var project_collection_name = "amp"; +const img_url = "https://iiif.acdh.oeaw.ac.at/iiif/images/amp/"; + +function makeImgUrl(hit) { + let hitImage = hit.image; + if (hitImage.length > 0) { + return img_url + hitImage + ".jp2/full/,200/0/default.jpg"; + } else { + return "no image avaliable"; + } +} + const typesenseInstantsearchAdapter = new TypesenseInstantSearchAdapter({ server: { apiKey: "ItDIbHdyx8VIgjYJjmO23EhFh2f6lUXJ", // Be sure to use an API key that only allows searches, in production @@ -8,14 +20,6 @@ const typesenseInstantsearchAdapter = new TypesenseInstantSearchAdapter({ protocol: "https", }, ], - // apiKey: "xyz", // Be sure to use an API key that only allows searches, in production - // nodes: [ - // { - // host: "0.0.0.0", - // port: "8108", - // protocol: "http", - // }, - // ], }, // The following parameters are directly passed to Typesense's search API endpoint. // So you can pass any parameters supported by the search endpoint below. @@ -30,7 +34,7 @@ const typesenseInstantsearchAdapter = new TypesenseInstantSearchAdapter({ const searchClient = typesenseInstantsearchAdapter.searchClient; const search = instantsearch({ searchClient, - indexName: "amp", + indexName: project_collection_name, routing: true, }); @@ -39,8 +43,7 @@ search.addWidgets([ container: "#searchbox", autofocus: true, cssClasses: { - form: "form-inline", - input: "form-control col-md-11", + input: "form-control col-md-12", submit: "btn", reset: "btn", }, @@ -48,35 +51,257 @@ search.addWidgets([ instantsearch.widgets.hits({ container: "#hits", + cssClasses: { + item: "w-20 border border-light rounded m-2 p-2 d-flex flex-column hover-shadow", + }, templates: { empty: "No results for {{ query }}", - item: ` -
{{#helpers.snippet}}{ "attribute": "title", "highlightedTagName": "mark" }{{/helpers.snippet}}
-

{{#helpers.snippet}}{ "attribute": "full_text", "highlightedTagName": "mark" }{{/helpers.snippet}}

-
{{ project }}
-
-
- {{#persons}} - {{ . }} - {{/persons}} -
-
- {{#works}} - {{ . }} - {{/works}} -
-
- {{#places}} - {{ . }} - {{/places}} -
-
- {{#orgs}} - {{ . }} - {{/orgs}} -
-
- `, + item(hit, { html, components }) { + return html` +
+
+
+ Keywords in Context: +
+

+ ${hit._snippetResult.full_text.matchedWords.length > 0 + ? components.Snippet({ hit, attribute: "full_text" }) + : ""} +

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Title:${hit.title}
Page:${hit.page_str}
Year:${hit.year}
Type:${hit.document_type[0]}
Comments:${hit.comments_count}
Verses:${hit.poem_count}
+
+
+ `; + }, + }, + }), + + instantsearch.widgets.menu({ + container: "#document_type", + attribute: "document_type", + }), + + //
+ // Show more + //
+ // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + // + //
Persons: + //
    + // ${hit.persons.map( + // (item) => + // html`
  • + // ${item} + //
  • ` + // )} + //
+ //
Places: + //
    + // ${hit.places.map( + // (item) => + // html`
  • + // ${item} + //
  • ` + // )} + //
+ //
Institutions: + //
    + // ${hit.orgs.map( + // (item) => + // html`
  • + // ${item} + //
  • ` + // )} + //
+ //
Works: + //
    + // ${hit.works.map( + // (item) => + // html`
  • + // ${item} + //
  • ` + // )} + //
+ //
Events: + //
    + // ${hit.events.map( + // (item) => + // html`
  • + // ${item} + //
  • ` + // )} + //
+ //
+ + // instantsearch.widgets.hits({ + // container: "#hits", + // templates: { + // empty: "No results for {{ query }}", + // item: ` + //
{{#helpers.snippet}}{ "attribute": "title", "highlightedTagName": "mark" }{{/helpers.snippet}}
+ //

{{#helpers.snippet}}{ "attribute": "full_text", "highlightedTagName": "mark" }{{/helpers.snippet}}

+ //
{{ project }}
+ //
+ //
+ // {{#persons}} + // {{ . }} + // {{/persons}} + //
+ //
+ // {{#works}} + // {{ . }} + // {{/works}} + //
+ //
+ // {{#places}} + // {{ . }} + // {{/places}} + //
+ //
+ // {{#orgs}} + // {{ . }} + // {{/orgs}} + //
+ //
+ // `, + // }, + // }), + + instantsearch.widgets.refinementList({ + container: "#has-comments", + attribute: "comments_bool", + searchable: false, + transformItems(items) { + return items.map((item) => ({ + ...item, + highlighted: (item.highlighted = + item.label === "true" ? "with comments" : "without comments"), + })); + }, + cssClasses: { + searchableInput: "form-control form-control-sm m-2 border-light-2", + searchableSubmit: "d-none", + searchableReset: "d-none", + showMore: "btn btn-secondary btn-sm align-content-center", + list: "list-unstyled", + count: "badge d-flex align-self-end m-2 badge-secondary hideme ", + label: "d-flex align-items-start text-left", + checkbox: "m-2", + }, + }), + + instantsearch.widgets.refinementList({ + container: "#has-poem", + attribute: "poem_bool", + searchable: false, + transformItems(items) { + return items.map((item) => ({ + ...item, + highlighted: (item.highlighted = + item.label === "true" ? "includes verse" : "no verse included"), + })); + }, + cssClasses: { + searchableInput: "form-control form-control-sm m-2 border-light-2", + searchableSubmit: "d-none", + searchableReset: "d-none", + showMore: "btn btn-secondary btn-sm align-content-center", + list: "list-unstyled", + count: "badge d-flex align-self-end m-2 badge-secondary", + label: "d-flex align-items-start text-left", + checkbox: "m-2", }, }), @@ -168,8 +393,25 @@ search.addWidgets([ }, }), + instantsearch.widgets.refinementList({ + container: "#refinement-list-events", + attribute: "events", + searchable: true, + searchablePlaceholder: "Search", + cssClasses: { + searchableInput: "form-control form-control-sm mb-2 border-light-2", + searchableSubmit: "d-none", + searchableReset: "d-none", + showMore: "btn btn-secondary btn-sm align-content-center", + list: "list-unstyled", + count: "badge ml-2 badge-success", + label: "d-flex align-items-center", + checkbox: "mr-2", + }, + }), + instantsearch.widgets.rangeInput({ - container: "#range-input", + container: "#refinement-range-year", attribute: "year", templates: { separatorText: "to", @@ -224,13 +466,16 @@ search.addWidgets([ container: "#sort-by", items: [ { label: "Default", value: "amp" }, - { label: "Year (asc)", value: "amp/sort/year:asc" }, - { label: "Year (desc)", value: "amp/sort/year:desc" }, + { label: "Year (asc)", value: "amp/sort/year:asc, page_int:asc" }, + { + label: "Year (desc)", + value: "amp/sort/year:desc, page_int:asc", + }, ], }), instantsearch.widgets.configure({ - hitsPerPage: 8, + hitsPerPage: 18, attributesToSnippet: ["full_text"], }), ]); @@ -242,3 +487,19 @@ search.addWidgets([ // ]); search.start(); + +// function toggleTable(el) { +// console.log(el); +// show_table = document.getElementById("table-ais-show"); +// if (el.classList.contains("activated")) { +// el.classList.add("deactivated"); +// el.classList.remove("activated"); +// show_table.classList.remove("show"); +// show_table.classList.add("fade"); +// } else { +// el.classList.remove("deactivated"); +// el.classList.add("activated"); +// show_table.classList.remove("fade"); +// show_table.classList.add("show"); +// } +// } diff --git a/xslt/additional-materials.xsl b/xslt/additional-materials.xsl index e38ebb442..59cbe885f 100644 --- a/xslt/additional-materials.xsl +++ b/xslt/additional-materials.xsl @@ -1,10 +1,10 @@ - + xmlns:tei="http://www.tei-c.org/ns/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + version="2.0" exclude-result-prefixes="#all"> + @@ -13,8 +13,7 @@ - <!DOCTYPE html> - + @@ -24,21 +23,20 @@ - - -
- + + +

-
-
- - - - - - -
-
+ + + + + +
- - - - - + + + +
diff --git a/xslt/analytics.xsl b/xslt/analytics.xsl index 6632a3f63..f2439b3a4 100644 --- a/xslt/analytics.xsl +++ b/xslt/analytics.xsl @@ -1,10 +1,10 @@ - + xmlns:tei="http://www.tei-c.org/ns/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + version="2.0" exclude-result-prefixes="#all"> + @@ -12,26 +12,17 @@ - <!DOCTYPE html> - + - - - - - - - - - -
- + + +
@@ -54,9 +45,15 @@
- - -
+ + + + + + + + + diff --git a/xslt/biographies.xsl b/xslt/biographies.xsl index 2fe0369d8..c9e4b98bf 100644 --- a/xslt/biographies.xsl +++ b/xslt/biographies.xsl @@ -1,11 +1,10 @@ - + version="2.0" exclude-result-prefixes="#all"> + @@ -17,27 +16,11 @@ - <!DOCTYPE html> - - - - - - - - - - - - - - + @@ -45,9 +28,9 @@ integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""> - -
- + + +
- - +

- + TOP

@@ -137,33 +120,31 @@
- - - +
- -
- -
+
+ + + - -
+ + + + +
diff --git a/xslt/description.xsl b/xslt/description.xsl index 032a68dc2..8695e2695 100644 --- a/xslt/description.xsl +++ b/xslt/description.xsl @@ -1,61 +1,53 @@ - + xmlns:tei="http://www.tei-c.org/ns/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + version="2.0" exclude-result-prefixes="#all"> + - - - <!DOCTYPE html> - -
- - -
-
-
-

-
-
-
-
- - -
-
-
- - {//tei:figure/tei:head} -

-
-
+ + +
+
+
+

+
+
+ +
-
-
- - +
+
+ + {//tei:figure/tei:head} +

-
+
+
+
+ + +
+
- -
+
+ diff --git a/xslt/editions.xsl b/xslt/editions.xsl index bb59c57f6..d70951977 100644 --- a/xslt/editions.xsl +++ b/xslt/editions.xsl @@ -1,27 +1,23 @@ - + version="2.0" exclude-result-prefixes="#all"> + - - - + - <!DOCTYPE html> @@ -31,15 +27,6 @@ .transcript { padding: 1em 0; } - /*.text-re::before { - content: ''; - background-color: #ccc; - right: .05em; - width: 10px; - height: 100%; - position:absolute; - border-top: 10px solid ccc; - }*/ .card-body { padding: 4em 1em; } @@ -52,12 +39,11 @@ } - -
- - + + +
+
+ - + @@ -211,13 +197,11 @@ ('text-align:center;font-weight:bold;letter-spacing:.2em;') else () }"> - - + - @@ -228,15 +212,12 @@ - - -

- + - - - + + + + +

-


-

- -

+ +
+ +
+
+ + +
+ +
- -

+ +
+ +
- -

- @@ -309,7 +320,6 @@ - @@ -353,123 +363,174 @@ + + + + + + + + + + + + + + + + + - + + + + + - - - - - - - - - - - - + + + - - - - + + + + + + + - - - + + + + + + + + + + + + + + + + + + modal + + + + + + + + + + + + + + + + + + modal + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+ + + + | + + +
+ +

+
+
    + + +
  • + +
  • +
    + +
  • + +
  • +
  • + +
  • +
    +
+ +

External Evidence:

+
+
+
+
-
-
- -
-
-
- -

-
-
    - - -
  • - -
  • -
    - -
  • - -
  • -
  • - -
  • -
    -
- -

External Evidence:

-
- -
-
+ + +
- - + + -
-
- -
-
-
- -

-
-
    - - -
  • - -
  • -
    - -
  • - -
  • -
  • - -
  • -
    -
- -

External Evidence:

-
-
-
+ + +
@@ -486,17 +547,17 @@ - -
+
+ + @@ -149,24 +161,16 @@ - <!DOCTYPE html> - + - - - - - - -
- - + + +
- @@ -245,26 +249,26 @@ - + - + @@ -298,7 +302,7 @@
  • - +
  • @@ -311,8 +315,8 @@
    GND - - + +
    Wikidata - - + +
    - -
    + +
    @@ -322,25 +326,16 @@ - <!DOCTYPE html> - + - - - - - - -
    - - + + +
    - - @@ -398,26 +393,26 @@ - + - + @@ -428,8 +423,8 @@ GND ID @@ -464,7 +459,7 @@
  • - +
  • @@ -476,9 +471,9 @@
    Geonames ID - - + +
    Wikidata ID - - + +
    - - + +
    -
    - -
    +
    + + @@ -488,24 +483,16 @@ - <!DOCTYPE html> - + - - - - - - -
    - - + + +
    - @@ -547,6 +534,16 @@ + + + + + + - + - + @@ -611,7 +608,7 @@
  • - +
  • @@ -623,9 +620,9 @@
    + Type + + +
    @@ -567,26 +564,26 @@
    GND - - + +
    Wikidata - - + +
    -
    - -
    +
    + + @@ -635,22 +632,15 @@ - <!DOCTYPE html> - + - - - - - - -
    - - + + +
    @@ -676,7 +666,6 @@ - - + - + @@ -741,7 +729,7 @@
  • - +
  • @@ -753,9 +741,9 @@
    Located in @@ -685,8 +674,7 @@
    GND - - + +
    Wikidata - - + +
    -
    - -
    +
    + + diff --git a/xslt/imprint.xsl b/xslt/imprint.xsl index 6d4e0883a..95bffa90c 100644 --- a/xslt/imprint.xsl +++ b/xslt/imprint.xsl @@ -1,46 +1,36 @@ - + xmlns:tei="http://www.tei-c.org/ns/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + version="2.0" exclude-result-prefixes="#all"> + - <!DOCTYPE html> - + - -
    - - + + +
    -
    -
    -

    -
    -
    - - - - - -
    -
    +

    + + + + +
    - - - -
    + +
    diff --git a/xslt/index.xsl b/xslt/index.xsl index 955669132..23fdf0ce8 100644 --- a/xslt/index.xsl +++ b/xslt/index.xsl @@ -1,10 +1,10 @@ - + xmlns:tei="http://www.tei-c.org/ns/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + version="2.0" exclude-result-prefixes="#all"> + @@ -13,25 +13,23 @@ - <!DOCTYPE html> - + - -
    - - + + +
    - +
    - -
    + + - @@ -58,12 +55,10 @@ } - -
    - - + + +
    - @@ -78,9 +73,9 @@ -
    - -
    +
    + + @@ -104,7 +99,7 @@ @@ -120,7 +115,7 @@ @@ -155,27 +150,33 @@ - - - - - - , - - - - - + + + + + + + , + + + + + + - - + + + + - - + + + + @@ -184,14 +185,18 @@ - - - + + + + + - - - + + + + + @@ -233,6 +238,7 @@ + @@ -243,21 +249,28 @@ + - - + + + + - - + + + + - - + + + + @@ -285,9 +298,11 @@ + + @@ -313,38 +328,44 @@ - + - - - + + + + + - - - + + + + + - + + + @@ -369,6 +390,7 @@ Title Author Date + Type Wikidata ID Language Mentioned in papers # @@ -378,26 +400,33 @@ - - - + + + + + - + + + - + + + + @@ -420,9 +449,11 @@ Label Participants Located in - Date + Start Date + End Date Wikidata ID - Description + Type + Subtype Mentioned in papers # @@ -430,26 +461,31 @@ + + - + + + - - - + + + + - + subtitle="{$base/tei:placeName}"> + - - + + + + + - + + + + - - + + + + - + + + + diff --git a/xslt/memoirs.xsl b/xslt/memoirs.xsl deleted file mode 100644 index 19cf47e83..000000000 --- a/xslt/memoirs.xsl +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - <!DOCTYPE html> - - - - - - - - -
    - -
    - -
    -
    -
    - - - -
    -
    -
    -
    -
    -

    -
    -
    - - - -
    -
    -
    -
    -
    - - - - -
    - - -
    - -

    -
    - - -

    -
    - - -
    -
    - - -
  • -
    - - - - - - - - - - - - - -
    \ No newline at end of file diff --git a/xslt/partials/add_modal-metadata.xsl b/xslt/partials/add_modal-metadata.xsl index 0b103fdc1..b88e7816d 100644 --- a/xslt/partials/add_modal-metadata.xsl +++ b/xslt/partials/add_modal-metadata.xsl @@ -1,6 +1,10 @@ - - + diff --git a/xslt/partials/annotation-options.xsl b/xslt/partials/annotation-options.xsl index d59fc289c..c1288a215 100644 --- a/xslt/partials/annotation-options.xsl +++ b/xslt/partials/annotation-options.xsl @@ -1,9 +1,8 @@ - - + xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="#all" version="2.0"> @@ -33,6 +32,9 @@
  • +
  • + +
    • @@ -55,8 +57,11 @@
      -
    • - +
    • + +
    • +
    • +
    diff --git a/xslt/partials/biography-circle.xsl b/xslt/partials/biography-circle.xsl index 9757674c1..5997a3554 100644 --- a/xslt/partials/biography-circle.xsl +++ b/xslt/partials/biography-circle.xsl @@ -1,7 +1,10 @@ - - - + +

    Widget tei-facsimile.

    @@ -13,8 +16,9 @@
    - - + + +
    +
    +
    + + +
      + +
    • + + + + + + + + + + + + + + + + +
    • +
      +
    +
    + + +
      + +
    • + + + + + + + + + + + + + + + + +
    • +
      +
    +
    + + +
      + +
    • + + + + + + + +
    • +
      +
    \ No newline at end of file diff --git a/xslt/partials/edition-md.xsl b/xslt/partials/edition-md.xsl index 7a83496ce..41d7ebbe2 100644 --- a/xslt/partials/edition-md.xsl +++ b/xslt/partials/edition-md.xsl @@ -1,6 +1,10 @@ - - + @@ -15,7 +19,6 @@
    - @@ -108,19 +111,19 @@
    PID
    • - - + +
    • - - + +
    @@ -168,14 +171,14 @@ + 'Frühwirth Timo, ', + 'Grigoriou Dimitra, ', + 'Mayer Sandra, ', + 'Mendelson Edward and Neundlinger Helmut')"/> . Auden Musulin Papers: A Digital Edition of W. H. Auden's Letters to Stella Musulin. Austrian Centre for Digital Humanities and Cultural Heritage, Austrian Academy of Sciences, 2022, amp.acdh.oeaw.ac.at - . + .
    diff --git a/xslt/partials/edition-metadata.xsl b/xslt/partials/edition-metadata.xsl deleted file mode 100644 index bfb55db90..000000000 --- a/xslt/partials/edition-metadata.xsl +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - -

    Widget tei-facsimile.

    -

    Contact person: daniel.stoxreiter@oeaw.ac.at

    -

    Applied with call-templates in html:body.

    -

    The template "toc-cards" creats a card view of items from a collection

    -

    Bootstrap is required.

    -
    -
    - - - - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PID - - - -
    Author
    Editor(s) -
      - -
    • - -
    • -
      -
    -
    Publisher - -
    Download - -
    IIIF Endpoint(s) - -
    Cite this Source (MLA 9th Edition) - - . Auden Musulin Papers: A Digital Edition of W. H. Auden's Letters to Stella Musulin. Austrian Centre for Digital Humanities and Cultural Heritage, Austrian Academy of Sciences, 2022, - - . - Acessed Please activate JavaScript and reload page!. -
    -
    - - - -
    - -
    -
    -
    \ No newline at end of file diff --git a/xslt/partials/html_footer.xsl b/xslt/partials/html_footer.xsl index a6f1871d2..898bd850c 100644 --- a/xslt/partials/html_footer.xsl +++ b/xslt/partials/html_footer.xsl @@ -1,156 +1,156 @@ - -