Änderungen von Dokument File Organisation & Naming
Zuletzt geändert von Veronika Kocher am Freitag, 04 Sep. 2026 14:45
Von Version 1.10
bearbeitet von Veronika Kocher
am Donnerstag, 03 Sep. 2026 14:15
am Donnerstag, 03 Sep. 2026 14:15
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 3.3
bearbeitet von Veronika Kocher
am Freitag, 04 Sep. 2026 14:45
am Freitag, 04 Sep. 2026 14:45
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,1471 +71,269 @@ 1 -Lege klare Ordnerstrukturen, Regeln für Dateinamen und grundlegende Versionierungsregeln für eine konsistente Projektarbeit fest. 2 - 3 -== Überblick == 4 - 5 -Eine nachvollziehbare Datei- und Ordnerstruktur erleichtert Zusammenarbeit, Versionierung und Übergabe. Benennungsregeln sollten einfach genug sein, dass sie im gesamten Team konsequent verwendet werden. 6 - 7 -== Was du wissen solltest == 8 - 9 -* Ordner sollten nach Projektfunktion oder Inhalt und nicht nach einzelnen Personen strukturiert sein. 10 -* Dateinamen sollten Inhalt, Datum oder Version dort erkennen lassen, wo diese Angaben relevant sind. 11 -* Verwende dieselben Regeln für alle Teammitglieder und dokumentiere Ausnahmen. 12 - 13 -== Was du tun solltest == 14 - 15 -1. Prüfe, was auf dein Projekt zutrifft. 16 -2. Dokumentiere die relevanten Entscheidungen. 17 -3. Nutze bei Bedarf geeignete institutionelle Services und Unterstützungsangebote. 18 - 19 -== Schlüsselfragen == 20 - 21 -* Was muss entschieden werden? 22 -* Wer ist verantwortlich? 23 -* Was muss dokumentiert werden? 24 -* Gibt es rechtliche, ethische oder technische Rahmenbedingungen? 25 -* Was muss vor der nächsten Projektphase erledigt sein? 26 - 27 -== Services & Tools == 28 - 29 -Nutze die institutionellen Services, Infrastrukturen und Tools, die zu deinem Projekt und seinen Anforderungen passen. Konkrete Verlinkungen werden ergänzt, sobald die jeweiligen Angebote im Navigator erfasst sind. 30 - 31 -== Info-Blätter & Checklisten == 32 - 33 -Passende Info-Blätter, Checklisten und Vorlagen werden hier ergänzt, sobald sie verfügbar sind. 34 - 35 -== Anleitungen == 36 - 37 - 38 -{{html}}<span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">IN VORBEREITUNG</span>{{/html}} 39 -Schritt-für-Schritt-Anleitungen werden hier ergänzt, sobald sie verfügbar sind. 40 - 41 -== Verwandte Themen == 42 - 43 -Weitere Orientierung findest du in den angrenzenden Phasen Vorbereiten, Arbeiten & Verwalten sowie Publizieren & Teilen. 44 - 45 -== Wer ist zuständig? == 46 - 47 - 48 -{{info title="Service-Routing"}} 49 -**Primäre Fachzuständigkeit:** Das Projektteam verantwortet die Arbeitskonvention; Universitätsbibliothek / Forschungsdatenmanagement berät zu Forschungsdaten- und Dokumentationspraxis; IT unterstützt bei der technischen Umsetzung, wenn nötig. 50 - 51 -**Rolle von Support Kunst und Forschung (SKF):** Verknüpft Datei- und Dokumentationsanforderungen bei geförderten Projekten mit Antrag, Deliverables oder DMP. 52 -{{/info}} 53 - 54 -Wenn du unsicher bist, welcher Weg gilt, starte bei der oben genannten Fachstelle. Bei geförderter oder projektbasierter Forschung mit mehreren beteiligten Einheiten kann SKF den Projektweg koordinieren. 55 - 56 -{{html}} 57 -<!-- ARSN_SEARCH_TERMS_START --> 58 -<details class="arsn-search-terms" style="margin-top:28px;padding-top:10px;border-top:1px solid #eee;"> 59 -<summary style="cursor:pointer;color:#666;font-size:13px;">Suchbegriffe & verwandte Themen</summary> 60 -<div style="margin-top:9px;color:#555;font-size:13px;"> 61 -<p style="margin:0 0 8px 0;"> 62 -Dieses Thema kann auch über verwandte Begriffe, Synonyme und häufige Suchanfragen gefunden werden. 63 -Wähle einen Begriff aus, um den Service-Navigator Kunst & Forschung zu durchsuchen. 64 -</p> 65 -<p style="margin:0;"><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=kunst%20und%20forschung#arsn-search-input" class="arsn-search-term" data-search-term="kunst und forschung" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">kunst und forschung</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=vorbereiten#arsn-search-input" class="arsn-search-term" data-search-term="vorbereiten" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">vorbereiten</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=dateiorganisation#arsn-search-input" class="arsn-search-term" data-search-term="dateiorganisation" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">dateiorganisation</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=ordnerstruktur#arsn-search-input" class="arsn-search-term" data-search-term="ordnerstruktur" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">ordnerstruktur</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=dateibenennung#arsn-search-input" class="arsn-search-term" data-search-term="dateibenennung" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">dateibenennung</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=namenskonventionen#arsn-search-input" class="arsn-search-term" data-search-term="namenskonventionen" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">namenskonventionen</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=projektdateien#arsn-search-input" class="arsn-search-term" data-search-term="projektdateien" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">projektdateien</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=identifikatoren#arsn-search-input" class="arsn-search-term" data-search-term="identifikatoren" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">identifikatoren</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=dateiname#arsn-search-input" class="arsn-search-term" data-search-term="dateiname" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">dateiname</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=dateinamen#arsn-search-input" class="arsn-search-term" data-search-term="dateinamen" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">dateinamen</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=ordnerbenennung#arsn-search-input" class="arsn-search-term" data-search-term="ordnerbenennung" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">ordnerbenennung</a><a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/?q=dateistruktur#arsn-search-input" class="arsn-search-term" data-search-term="dateistruktur" style="display:inline-block;margin:3px 5px 3px 0;padding:3px 8px;border:1px solid #d7d7d7;border-radius:14px;background:#fff;color:#333;text-decoration:none;font-size:12px;">dateistruktur</a></p> 66 -</div> 67 -</details> 68 -<!-- ARSN_SEARCH_TERMS_END --> 69 -{{/html}} 70 - 71 71 {{html clean="false"}} 72 -<!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START --> 73 73 74 -<style data-sn-service-navigator-master="1"> 75 -/* ========================================================= 76 - MASTER TYPOGRAPHY 77 - ========================================================= */ 78 -#xwikicontent h1, 79 -#xwikicontent h2, 80 -#xwikicontent h3, 81 -#xwikicontent h4, 82 -#xwikicontent h5, 83 -#xwikicontent h6, 84 -#xwikicontent .box-title, 85 -#xwikicontent [role="heading"], 86 -#xwikicontent h1 a, 87 -#xwikicontent h2 a, 88 -#xwikicontent h3 a, 89 -#xwikicontent h4 a, 90 -#xwikicontent h5 a, 91 -#xwikicontent h6 a, 92 -#xwikicontent .box-title a, 93 -#xwikicontent [role="heading"] a{ 94 - text-align:left!important; 95 - text-justify:auto!important; 96 - word-spacing:normal!important; 97 -} 98 - 99 -/* ========================================================= 100 - COMING SOON / IN VORBEREITUNG 101 - ========================================================= */ 102 -.sn-coming-soon-badge{ 103 - display:inline-block; 104 - vertical-align:middle; 105 - margin-left:10px; 106 - padding:4px 8px; 107 - border-radius:14px; 108 - border:1px solid #efd9cc; 109 - background:#fff4ee; 110 - color:#8a4d36; 111 - font-size:11px; 112 - font-weight:700; 113 - letter-spacing:.055em; 114 - line-height:1.2; 115 - white-space:nowrap; 116 -} 117 - 118 -/* ========================================================= 119 - NATIVE / DETAIL CALLOUT GEOMETRY 120 - Preserve existing backgrounds. 121 - ========================================================= */ 122 -#xwikicontent .arsn-info, 123 -#xwikicontent .dmp-info, 124 -#xwikicontent .ido-info, 125 -#xwikicontent .pp-info, 126 -#xwikicontent .infomessage{ 127 - box-sizing:border-box!important; 128 - border-left:4px solid #21b6d7!important; 129 - border-radius:8px; 130 - text-align:left!important; 131 - word-spacing:normal!important; 132 -} 133 - 134 -#xwikicontent .arsn-warn, 135 -#xwikicontent .dmp-warn, 136 -#xwikicontent .ido-warn, 137 -#xwikicontent .pp-warn, 138 -#xwikicontent .warn, 139 -#xwikicontent .warning, 140 -#xwikicontent .warningmessage, 141 -#xwikicontent .errormessage{ 142 - box-sizing:border-box!important; 143 - border-left:4px solid #e94b13!important; 144 - border-radius:8px; 145 - text-align:left!important; 146 - word-spacing:normal!important; 147 -} 148 - 149 -[data-sn-master-equal-height], 150 -[data-sn-master-first-row]{ 151 - box-sizing:border-box; 152 -} 153 - 154 -/* ========================================================= 155 - FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS 156 - ========================================================= */ 157 -#xwikicontent .arsn-area-label[data-sn-three-line="1"]{ 158 - display:grid!important; 159 - grid-template-columns:minmax(0,1fr)!important; 160 - grid-auto-rows:auto!important; 161 - width:100%!important; 162 - max-width:none!important; 163 - box-sizing:border-box!important; 164 - justify-items:start!important; 165 - align-items:start!important; 166 - gap:2px!important; 167 - text-align:left!important; 168 - text-align-last:left!important; 169 - text-justify:auto!important; 170 - word-spacing:normal!important; 171 - white-space:normal!important; 172 -} 173 -#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number, 174 -#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title, 175 -#xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{ 176 - display:block!important; 177 - width:100%!important; 178 - margin:0!important; 179 - text-align:left!important; 180 - text-align-last:left!important; 181 - text-justify:auto!important; 182 - word-spacing:normal!important; 183 - white-space:normal!important; 184 -} 3 +<style> 4 +.fon{max-width:1400px;margin:0 auto;color:#322f2b} 5 +.fon *{box-sizing:border-box} 6 +.fon-card{border:1px solid #e3ded6;border-radius:11px;background:#fcfbf8;box-shadow:0 1px 3px rgba(0,0,0,.035)} 7 +.fon-hero{height:132px;overflow:hidden;background:#f1eee9;border-radius:11px 11px 0 0} 8 +.fon-hero img{width:100%;height:100%;object-fit:cover;object-position:center 45%;display:block} 9 +.fon-eye{font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase} 10 +.fon-sec{margin:0 0 27px 0} 11 +.fon-sec h3{font-size:22px;line-height:1.25;margin:0 0 7px;color:#35312d;text-align:left!important;text-align-last:left!important;text-justify:auto!important;word-spacing:normal!important} 12 +.fon-sec>p{color:#625d56;line-height:1.58;margin:0 0 13px} 13 +.fon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:12px} 14 +.fon-grid-2{display:grid;grid-template-columns:repeat(2,minmax(300px,1fr));gap:12px} 15 +.fon-info{padding:15px 17px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#eaf6f9;border-radius:8px;color:#365e68;line-height:1.5} 16 +.fon-info strong{color:#2d5661} 17 +.fon-plan{padding:15px 17px;border:1px solid #efd9cc;border-left:5px solid #e94b13;background:#fff6f1;border-radius:8px;color:#67564e;line-height:1.5} 18 +.fon-plan strong{color:#744531} 19 +.fon-warn{padding:15px 17px;border:1px solid #efd9cc;border-left:5px solid #e94b13;background:#fff6f1;border-radius:8px;color:#67564e;line-height:1.5} 20 +.fon-warn strong{color:#744531} 21 +.fon-check{position:relative;padding:12px 13px 12px 37px;border:1px solid #e3ded6;border-radius:8px;background:#fffdf9;color:#504a44;line-height:1.5} 22 +.fon-check:before{content:"✓";position:absolute;left:13px;top:10px;color:#e94b13;font-weight:800} 23 +.fon-step{position:relative;padding:13px 14px 13px 50px;border:1px solid #e3ded6;border-radius:8px;background:#fcfbf8;min-height:76px} 24 +.fon-step .n{position:absolute;left:13px;top:13px;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f7e6dd;color:#7b4430;font-weight:800;font-size:12px} 25 +.fon-step h4{margin:0 0 4px;font-size:16px;line-height:1.3;color:#3b352e;text-align:left!important;text-align-last:left!important;text-justify:auto!important;word-spacing:normal!important} 26 +.fon-step p{margin:0;color:#625d56;line-height:1.45} 27 +.fon-example{padding:14px 15px;border:1px solid #e3ded6;border-top:4px solid #e94b13;border-radius:9px;background:#fcfbf8} 28 +.fon-example h4{margin:0 0 6px;font-size:16px;color:#3e372e;text-align:left!important;word-spacing:normal!important} 29 +.fon-example p{margin:0;color:#625d56;line-height:1.5} 30 +.fon-code{margin-top:8px;padding:9px 10px;border:1px solid #e3ded6;border-radius:6px;background:#f7f4ef;color:#49433d;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;overflow-wrap:anywhere} 31 +.fon-table-wrap{overflow-x:auto;border:1px solid #e3ded6;border-radius:8px} 32 +.fon-table{width:100%;border-collapse:collapse;background:#fffdf9;min-width:900px} 33 +.fon-table th,.fon-table td{padding:10px 11px;border-bottom:1px solid #e3ded6;vertical-align:top;text-align:left;line-height:1.4} 34 +.fon-table th{background:#f3efe8;color:#403b36;font-weight:700} 35 +.fon-table tr:last-child td{border-bottom:0} 36 +.fon-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px} 37 +.fon-service{display:block;padding:13px 14px;border:1px solid #e3ded6;border-left:4px solid #e94b13;border-radius:8px;background:#fcfbf8;color:#2f2b27} 38 +.fon-service strong{display:block;margin-bottom:4px} 39 +.fon-service span{display:block;color:#625d56;line-height:1.45;font-weight:400} 40 +.fon-linkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px} 41 +.fon-navlink{display:block;padding:10px 11px;border:1px solid #e9e4dc;border-left:3px solid #e94b13;border-radius:6px;background:#fffdf9;color:#252321;text-decoration:none;font-weight:600;line-height:1.35} 42 +.fon-navlink:hover,.fon-navlink:focus{background:#fff7f1;text-decoration:none} 43 +.fon-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px} 44 +.fon-resource{padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-radius:9px} 45 +.fon-resource strong{display:block;color:#4c4130;margin-bottom:4px} 46 +.fon-badge{display:inline-block;margin:5px 0 7px;padding:4px 8px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.055em;line-height:1.2} 47 +.fon h1,.fon h2,.fon h3,.fon h4,.fon h5,.fon h6,.fon h1 a,.fon h2 a,.fon h3 a,.fon h4 a,.fon h5 a,.fon h6 a{text-align:left!important;text-align-last:left!important;text-justify:auto!important;word-spacing:normal!important} 48 +@media(max-width:850px){.fon-grid-2,.fon-resource-grid{grid-template-columns:1fr}} 49 +@media(max-width:680px){.fon-hero{height:105px}.fon-sec h3{font-size:20px}} 185 185 </style> 186 186 187 -<script data-sn-service-navigator-master="1"> 188 -(function(){ 189 - "use strict"; 52 +<div class="fon"> 190 190 191 - var PAGE_KIND="detail"; 192 - var PLACEHOLDER=true; 193 - var PLACEHOLDER_LABEL="IN VORBEREITUNG"; 54 +<section class="fon-card" style="margin-bottom:18px;overflow:hidden;border-left:6px solid #e94b13;"> 55 + <div class="fon-hero"> 56 + <img src="https://xwiki.uni-ak.ac.at/bin/download/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/WebHome/enable.png" alt="Dateien und Ordner in Kunst- und Forschungsprojekten organisieren" /> 57 + </div> 58 + <div style="padding:18px 21px 20px;"> 59 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:5px;">VORBEREITEN · PLANEN & ORGANISIEREN</div> 60 + <h2 style="font-size:27px;line-height:1.2;margin:0 0 8px;color:#2c2926;">Eine einfache Datei- und Ordnerlogik festlegen, die das gesamte Projektteam tatsächlich verwenden kann</h2> 61 + <p style="margin:0;color:#5e5953;line-height:1.6;max-width:1160px;"> 62 + Klare Ordnerstrukturen, verständliche Dateinamen und einfache Versionierungsregeln helfen dabei, 63 + Dateien schnell zu finden, Verwechslungen zu vermeiden und Übergaben nachvollziehbar zu machen. 64 + Gute Regeln sind nicht möglichst komplex, sondern konsistent und für alle Beteiligten verständlich. 65 + </p> 66 + </div> 67 +</section> 194 194 195 - var MOBILE_MAX=767; 196 - var ROW_TOLERANCE=6; 197 - var RESIZE_DEBOUNCE=220; 69 +<div class="fon-info" style="margin-bottom:14px;"> 70 + <strong>Beginne mit einem gemeinsamen Minimum.</strong> 71 + Lege fest, wie Ordner aufgebaut sind, welche Angaben in Dateinamen gehören, 72 + wie Arbeits-, Freigabe- und Masterversionen unterschieden werden und wo diese Regeln dokumentiert sind. 73 +</div> 198 198 199 - var root= 200 - document.getElementById("xwikicontent")|| 201 - document.querySelector(".xwiki-rendering-content")|| 202 - document.querySelector("main")|| 203 - document.body; 75 +<div class="fon-plan" style="margin-bottom:27px;"> 76 + <strong>Die Struktur soll die Projektarbeit unterstützen – nicht zusätzliche Bürokratie erzeugen.</strong> 77 + Verwende nur jene Angaben in Ordnern und Dateinamen, die tatsächlich helfen, Dateien zu verstehen, zu unterscheiden und wiederzufinden. 78 +</div> 204 204 205 - if(!root)return; 80 +<section class="fon-sec"> 81 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">SCHRITT 1 · PROJEKTSTRUKTUR FESTLEGEN</div> 82 + <h3>Ordne Dateien nach Projektfunktion und Inhalt, nicht nach einzelnen Personen</h3> 83 + <p>Eine gute Struktur bleibt verständlich, auch wenn Personen wechseln oder das Projekt an eine andere Stelle übergeben wird.</p> 84 + <div class="fon-grid"> 85 + <div class="fon-check"><strong>Projektverwaltung:</strong> Verträge, Budget, Förderunterlagen, Berichte und organisatorische Dokumentation getrennt von Forschungs- oder Produktionsmaterial halten.</div> 86 + <div class="fon-check"><strong>Arbeitsmaterial:</strong> Aktive Arbeitsdateien nach nachvollziehbaren Projektbereichen, Arbeitspaketen, Medien oder Methoden ordnen.</div> 87 + <div class="fon-check"><strong>Quellmaterial:</strong> Originale, Eingangsdateien oder unveränderte Quellen sichtbar von bearbeiteten Dateien unterscheiden.</div> 88 + <div class="fon-check"><strong>Prozessdokumentation:</strong> Skizzen, Protokolle, Produktionsdokumente, Provenienz und methodische Aufzeichnungen auffindbar halten.</div> 89 + <div class="fon-check"><strong>Masterdateien:</strong> Maßgebliche oder freigegebene Versionen klar von Arbeits- und Exportkopien trennen.</div> 90 + <div class="fon-check"><strong>Outputs:</strong> Publikations-, Präsentations- und Übergabeversionen strukturiert von internen Arbeitsdateien unterscheiden.</div> 91 + <div class="fon-check"><strong>Externe Beiträge:</strong> Material von Partner:innen oder Dritten so ablegen, dass Herkunft und Rechteinformationen nachvollziehbar bleiben.</div> 92 + <div class="fon-check"><strong>Archiv / Abschluss:</strong> Früh festlegen, was am Ende übernommen, erhalten, deponiert oder gelöscht werden soll.</div> 93 + </div> 94 +</section> 206 206 207 - var managedHeight=new Set(); 208 - var managedMargin=new Set(); 209 - var originalHeight=new WeakMap(); 210 - var originalMargin=new WeakMap(); 96 +<section class="fon-sec"> 97 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">WICHTIGE UNTERSCHEIDUNGEN</div> 98 + <h3>Diese Begriffe sollten im Projekt nicht durcheinandergeraten</h3> 99 + <div class="fon-grid"> 100 + <div class="fon-plan"><strong>Arbeitsdatei ≠ Masterdatei.</strong><br>Eine Datei kann für die tägliche Bearbeitung praktisch sein, ohne die maßgebliche oder langfristig geeignete Version zu sein.</div> 101 + <div class="fon-plan"><strong>Aktuell ≠ freigegeben.</strong><br>Die zuletzt bearbeitete Datei ist nicht automatisch jene Version, die intern bestätigt, publiziert oder übergeben werden soll.</div> 102 + <div class="fon-plan"><strong>Ordnername ≠ vollständige Dokumentation.</strong><br>Ordnerstruktur hilft bei Orientierung, ersetzt aber keine Metadaten, Provenienz- oder Entscheidungsdokumentation.</div> 103 + <div class="fon-plan"><strong>Synchronisation ≠ Versionierung.</strong><br>Ein synchronisierter Ordner zeigt nicht automatisch, welche Version maßgeblich ist oder warum eine Änderung vorgenommen wurde.</div> 104 + <div class="fon-plan"><strong>Export ≠ Master.</strong><br>PDF, JPEG, MP4 oder andere Distributionsformate können praktische Ausgaben sein, während andere Dateien für Weiterbearbeitung oder Erhaltung maßgeblich bleiben.</div> 105 + <div class="fon-plan"><strong>Persönlicher Ordner ≠ Projektstruktur.</strong><br>Projektdateien sollten nicht nur über Namen einzelner Personen auffindbar sein, wenn sie langfristig gemeinsam genutzt werden müssen.</div> 106 + </div> 107 +</section> 211 211 212 - var resizeTimer=0; 213 - var running=false; 109 +<section class="fon-sec"> 110 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">SCHRITT 2 · DATEINAMEN-KONVENTION FESTLEGEN</div> 111 + <h3>Dateinamen sollen relevante Unterschiede sichtbar machen</h3> 112 + <p>Verwende ein konsistentes Muster und nur jene Bestandteile, die für dein Projekt wirklich nützlich sind.</p> 113 + <div class="fon-grid"> 114 + <div class="fon-step"><div class="n">01</div><h4>Kernbestandteile auswählen</h4><p>Zum Beispiel Projektkürzel, Inhalt, Datum, Version, Sprache, Status oder verantwortlicher Teilbereich.</p></div> 115 + <div class="fon-step"><div class="n">02</div><h4>Reihenfolge festlegen</h4><p>Definiere eine Reihenfolge, die beim Sortieren und schnellen Lesen funktioniert.</p></div> 116 + <div class="fon-step"><div class="n">03</div><h4>Datum einheitlich schreiben</h4><p>Wenn Datumsangaben wichtig sind, nutze ein konsistentes Format wie YYYY-MM-DD.</p></div> 117 + <div class="fon-step"><div class="n">04</div><h4>Version sichtbar machen</h4><p>Nutze klare Versionsangaben, wenn mehrere Arbeitsstände parallel oder nacheinander entstehen.</p></div> 118 + <div class="fon-step"><div class="n">05</div><h4>Status nicht überladen</h4><p>Verwende verständliche Statusangaben und vermeide lange Ketten wie final_final_neu_wirklichfinal.</p></div> 119 + <div class="fon-step"><div class="n">06</div><h4>Sonderzeichen bewusst einsetzen</h4><p>Halte Dateinamen möglichst robust und kompatibel mit den verwendeten Systemen und Austauschwegen.</p></div> 120 + <div class="fon-step"><div class="n">07</div><h4>Regeln dokumentieren</h4><p>Lege ein kurzes Beispiel oder eine README-Datei im Projekt ab, damit alle dieselbe Konvention verwenden.</p></div> 121 + <div class="fon-step"><div class="n">08</div><h4>Konvention testen</h4><p>Prüfe an realen Dateien, ob die Namen lesbar, sortierbar und für neue Teammitglieder verständlich sind.</p></div> 122 + </div> 123 +</section> 214 214 215 - var THEMES=[ 216 - { 217 - name:"BLUE", 218 - accent:"#21b6d7", 219 - bg:"#eaf7fb", 220 - text:"#315d68", 221 - labels:[ 222 - "HIER STARTEN", 223 - "ENTSCHEIDEN", 224 - "ÜBERPRÜFEN & ANPASSEN", 225 - "START HERE", 226 - "DECIDE", 227 - "REVIEW & ADAPT" 228 - ] 229 - }, 230 - { 231 - name:"RED", 232 - accent:"#e94b13", 233 - bg:"#fff1ec", 234 - text:"#8a4d36", 235 - labels:[ 236 - "PLANEN & ORGANISIEREN", 237 - "ORGANISIEREN & DOKUMENTIEREN", 238 - "PUBLIZIEREN & PRÄSENTIEREN", 239 - "PLAN & ORGANISE", 240 - "PLAN & ORGANIZE", 241 - "ORGANISE & DOCUMENT", 242 - "ORGANIZE & DOCUMENT", 243 - "PUBLISH & PRESENT" 244 - ] 245 - }, 246 - { 247 - name:"YELLOW", 248 - accent:"#f0aa00", 249 - bg:"#fff8e7", 250 - text:"#785b17", 251 - labels:[ 252 - "SCHÜTZEN & KLÄREN", 253 - "STANDARDISIEREN & IDENTIFIZIEREN", 254 - "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN", 255 - "PROTECT & CLARIFY", 256 - "STANDARDISE & IDENTIFY", 257 - "STANDARDIZE & IDENTIFY", 258 - "OPEN, REUSE & MAKE FINDABLE" 259 - ] 260 - }, 261 - { 262 - name:"GREEN", 263 - accent:"#38b76a", 264 - bg:"#edf9f1", 265 - text:"#3f7451", 266 - labels:[ 267 - "INFRASTRUKTUR EINRICHTEN", 268 - "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN", 269 - "SPEICHERN & ZUGRIFF STEUERN", 270 - "REPOSITORIUM, ERHALTEN & ÜBERGEBEN", 271 - "SET UP INFRASTRUCTURE", 272 - "SET UP INFRASTRUCTURE & COLLABORATION", 273 - "STORE & CONTROL ACCESS", 274 - "REPOSITORY, PRESERVE & HAND OVER" 275 - ] 276 - } 277 - ]; 125 +<section class="fon-sec"> 126 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">BEISPIELE</div> 127 + <h3>Ein Muster ist hilfreich, wenn es die tatsächliche Arbeit abbildet</h3> 128 + <div class="fon-grid"> 129 + <div class="fon-example"> 130 + <h4>Projektdatei mit Datum und Version</h4> 131 + <p>Geeignet, wenn zeitliche Abfolge und Versionsstand wichtig sind.</p> 132 + <div class="fon-code">PROJ_interview-guide_2026-09-03_v03.docx</div> 133 + </div> 134 + <div class="fon-example"> 135 + <h4>Medienproduktion mit Status</h4> 136 + <p>Geeignet, wenn mehrere Bearbeitungs- und Ausgabestände unterschieden werden müssen.</p> 137 + <div class="fon-code">PROJ_film-trailer_v07_APPROVED.mov</div> 138 + </div> 139 + <div class="fon-example"> 140 + <h4>Mehrsprachige Publikation</h4> 141 + <p>Geeignet, wenn Sprachversionen parallel geführt werden.</p> 142 + <div class="fon-code">PROJ_catalogue-text_DE_v04.docx</div> 143 + </div> 144 + <div class="fon-example"> 145 + <h4>Datensatz oder strukturierter Export</h4> 146 + <p>Geeignet, wenn Inhalt, Zeitraum oder Release unterschieden werden.</p> 147 + <div class="fon-code">PROJ_dataset_2026-09_release-01.csv</div> 148 + </div> 149 + <div class="fon-example"> 150 + <h4>Master und Derivat unterscheiden</h4> 151 + <p>Masterdatei und Präsentationskopie sollten eindeutig auseinanderzuhalten sein.</p> 152 + <div class="fon-code">PROJ_installation_MASTER_v02.tif<br>PROJ_installation_web_v02.jpg</div> 153 + </div> 154 + <div class="fon-example"> 155 + <h4>Prozessdokumentation</h4> 156 + <p>Bei künstlerischen Prozessen kann der Kontext genauso wichtig sein wie das Endprodukt.</p> 157 + <div class="fon-code">PROJ_rehearsal-notes_2026-09-03_AB.md</div> 158 + </div> 159 + </div> 160 +</section> 278 278 279 - function num(value){ 280 - var n=parseFloat(value); 281 - return Number.isFinite(n)?n:0; 282 - } 162 +<section class="fon-sec"> 163 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">SCHRITT 3 · MINIMALSTANDARD DOKUMENTIEREN</div> 164 + <h3>Ein kurzer Standard reicht, wenn er konsequent verwendet wird</h3> 165 + <p>Lege die Regeln an einer zentralen, für alle zugänglichen Stelle ab – etwa in einer README-Datei oder in der Projektdokumentation.</p> 166 + <div class="fon-table-wrap"> 167 + <table class="fon-table"> 168 + <thead><tr><th>Element</th><th>Was festlegen?</th><th>Beispiel</th></tr></thead> 169 + <tbody> 170 + <tr><td><strong>Ordnerstruktur</strong></td><td>Welche Hauptordner gibt es und wofür werden sie verwendet?</td><td>01_Admin · 02_Working · 03_Source · 04_Master · 05_Output</td></tr> 171 + <tr><td><strong>Dateinamen</strong></td><td>Welche Bestandteile sind erforderlich und in welcher Reihenfolge?</td><td>Projekt_Inhalt_Datum_Version</td></tr> 172 + <tr><td><strong>Datum</strong></td><td>Welches Format wird verwendet?</td><td>YYYY-MM-DD</td></tr> 173 + <tr><td><strong>Version</strong></td><td>Wie werden Arbeitsstände nummeriert?</td><td>v01, v02, v03</td></tr> 174 + <tr><td><strong>Status</strong></td><td>Welche wenigen Statusbegriffe werden verwendet?</td><td>DRAFT · REVIEW · APPROVED · PUBLISHED</td></tr> 175 + <tr><td><strong>Master</strong></td><td>Wie wird die maßgebliche Version gekennzeichnet?</td><td>MASTER oder dokumentierter Master-Ordner</td></tr> 176 + <tr><td><strong>Verantwortung</strong></td><td>Wer pflegt die Konvention und entscheidet bei Ausnahmen?</td><td>Projektteam / definierte Rolle</td></tr> 177 + <tr><td><strong>Änderungen</strong></td><td>Wann wird die Struktur überprüft?</td><td>Projektstart, Meilenstein, Teamwechsel, Übergabe</td></tr> 178 + </tbody> 179 + </table> 180 + </div> 181 +</section> 283 283 284 - function norm(value){ 285 - return String(value||"") 286 - .replace(/\s+/g," ") 287 - .trim() 288 - .toUpperCase(); 289 - } 183 +<section class="fon-sec"> 184 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">STOPP & PRÜFEN</div> 185 + <h3>Typische Warnsignale bei Datei- und Ordnerorganisation</h3> 186 + <div class="fon-grid"> 187 + <div class="fon-warn"><strong>Mehrere Dateien heißen „final“.</strong><br>Es ist nicht eindeutig, welche Version tatsächlich freigegeben, publiziert oder als Master vorgesehen ist.</div> 188 + <div class="fon-warn"><strong>Ordner sind nach Personen statt nach Projektfunktion benannt.</strong><br>Bei Rollenwechsel oder Übergabe wird die Struktur unverständlich.</div> 189 + <div class="fon-warn"><strong>Dateinamen enthalten keine unterscheidenden Informationen.</strong><br>Inhalt, Datum, Version oder Status sind nur durch Öffnen der Datei erkennbar.</div> 190 + <div class="fon-warn"><strong>Jede Person verwendet eigene Regeln.</strong><br>Die gemeinsame Ablage verliert ihre Funktion als Projektstruktur.</div> 191 + <div class="fon-warn"><strong>Masterdateien und Exporte liegen ungekennzeichnet nebeneinander.</strong><br>Es ist unklar, welche Datei weiterbearbeitet oder langfristig erhalten werden soll.</div> 192 + <div class="fon-warn"><strong>Die Konvention existiert nur im Kopf einer Person.</strong><br>Ohne kurze Dokumentation kann sie bei Teamwechsel, Urlaub oder Projektende nicht zuverlässig fortgeführt werden.</div> 193 + </div> 194 +</section> 290 290 291 - function visible(el){ 292 - if(!el||el.nodeType!==1)return false; 196 +<section class="fon-sec"> 197 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">SERVICES & UNTERSTÜTZUNG</div> 198 + <h3>Wer bei Datei- und Dokumentationspraxis unterstützen kann</h3> 199 + <div class="fon-service-grid"> 200 + <div class="fon-service"> 201 + <strong>Projektteam</strong> 202 + <span>Verantwortet die gemeinsame Arbeitskonvention und entscheidet, welche Struktur im konkreten Projekt praktikabel ist.</span> 203 + </div> 204 + <div class="fon-service"> 205 + <strong>Universitätsbibliothek / Forschungsdatenmanagement</strong> 206 + <span>Berät zu Forschungsdaten-, Dokumentations- und Datenmanagementpraxis, wenn Dateien Teil des Forschungsdaten- oder DMP-Kontexts sind.</span> 207 + </div> 208 + <div class="fon-service"> 209 + <strong>IT</strong> 210 + <span>Unterstützt bei der technischen Umsetzung, wenn Speicherorte, Zugriffsmodelle oder Werkzeuge betroffen sind.</span> 211 + </div> 212 + <div class="fon-service"> 213 + <strong>Support Kunst und Forschung (SKF)</strong> 214 + <span>Verknüpft Datei- und Dokumentationsanforderungen in geförderten Projekten mit Antrag, Deliverables oder Datenmanagementplan.</span> 215 + </div> 216 + </div> 217 +</section> 293 293 294 - var style=getComputedStyle(el); 295 - var rect=el.getBoundingClientRect(); 219 +<section class="fon-sec"> 220 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">VERWANDTE THEMEN</div> 221 + <h3>Datei- und Ordnerorganisation hängt eng mit diesen Entscheidungen zusammen</h3> 222 + <div class="fon-linkgrid"> 223 + <a class="fon-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Identify%20Your%20Data%20%26%20Research%20Outputs/">Daten & Forschungsoutputs bestimmen</a> 224 + <a class="fon-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Plan%20Your%20Data%20Management/">Datenmanagement planen</a> 225 + <a class="fon-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Storage%2C%20Backup%20%26%20Security/">Speicherung, Backup & Sicherheit</a> 226 + <a class="fon-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Organise%20Files%20%26%20Folders/">Dateien & Ordner organisieren</a> 227 + <a class="fon-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Manage%20Versions%20%26%20Master%20Files/">Versionen & Masterdateien verwalten</a> 228 + <a class="fon-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Document%20Metadata%20%26%20Provenance/">Prozesse, Metadaten & Provenienz dokumentieren</a> 229 + </div> 230 +</section> 296 296 297 - return ( 298 - style.display!=="none"&& 299 - style.visibility!=="hidden"&& 300 - rect.width>20&& 301 - rect.height>4 302 - ); 303 - } 232 +<!-- ARSN_TRAINING_WORKSHOPS_V2_START --> 233 +<section class="arsn-training-workshops" data-arsn-training-workshops="v2" style="margin:27px 0 22px 0;"> 234 + <div style="padding:16px 18px;background:#eef8fa;border:1px solid #cfe8ef;border-left:5px solid #21b6d7;border-radius:9px;"> 235 + <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#3f6871;margin-bottom:5px;">SCHULUNGEN & WORKSHOPS</div> 236 + <h3 style="font-size:20px;line-height:1.3;margin:0 0 7px;color:#35312d;text-align:left;">Schulungen, Workshops & Sprechstunden</h3> 237 + <p style="margin:0 0 10px;color:#5e5953;line-height:1.55;">Passende Angebote zu diesem Thema werden hier künftig automatisch aus dem zentralen Kalender angezeigt.</p> 238 + <span data-arsn-coming-soon="true" style="display:inline-block;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">IN VORBEREITUNG</span> 239 + </div> 240 +</section> 241 +<!-- ARSN_TRAINING_WORKSHOPS_V2_END --> 304 304 305 - function saveStyle(el,map,property){ 306 - if(map.has(el))return; 243 +<section class="fon-sec"> 244 + <div class="fon-eye" style="color:#8a4d36;margin-bottom:4px;">PRAKTISCHE RESSOURCEN</div> 245 + <h3>Info-Blätter, Anleitungen und Vorlagen</h3> 246 + <div class="fon-resource-grid"> 247 + <div class="fon-resource"><strong>Info-Blätter</strong><span class="fon-badge">IN VORBEREITUNG</span><div style="color:#625d56;line-height:1.45;">Kurze Orientierung zu Ordnerstruktur, Dateibenennung und grundlegender Versionierung.</div></div> 248 + <div class="fon-resource"><strong>Anleitungen</strong><span class="fon-badge">IN VORBEREITUNG</span><div style="color:#625d56;line-height:1.45;">Schritt-für-Schritt-Beispiele für Projektstruktur, Namenskonventionen und Masterdateien.</div></div> 249 + <div class="fon-resource"><strong>Checklisten & Vorlagen</strong><span class="fon-badge">IN VORBEREITUNG</span><div style="color:#625d56;line-height:1.45;">README-Vorlage, Namensschema und Checkliste für Projektübergabe.</div></div> 250 + </div> 251 +</section> 307 307 308 - map.set(el,{ 309 - value:el.style.getPropertyValue(property), 310 - priority:el.style.getPropertyPriority(property) 311 - }); 312 - } 253 +<div class="fon-info" style="margin-bottom:14px;"> 254 + <strong>Brauchst du Hilfe beim passenden Minimalstandard?</strong> 255 + Beginne mit einer kurzen gemeinsamen Regel für Ordner, Dateinamen, Versionen und Masterdateien. 256 + Bei Forschungsdaten- oder DMP-Anforderungen kann die Universitätsbibliothek / Forschungsdatenmanagement beraten; 257 + bei geförderten Projekten kann SKF die Anforderungen mit dem Projektweg verbinden. 258 +</div> 313 313 314 - function restoreStyle(el,map,property){ 315 - var original=map.get(el); 260 +<details style="margin-top:24px;padding-top:10px;border-top:1px solid #e3ded6;"> 261 + <summary style="cursor:pointer;color:#6a655e;font-size:13px;">Suchbegriffe & verwandte Themen</summary> 262 + <div style="margin-top:9px;color:#5c5650;font-size:12px;line-height:1.7;"> 263 + Dateiorganisation · Dateibenennung · Ordnerstruktur · Dateistruktur · Namenskonvention · Dateiname · Dateinamen · Versionierung · Versionsnummer · Masterdatei · Arbeitsdatei · Freigabe · final · README · Projektordner · Projektdateien · Forschungsdaten · Dokumentation · Provenienz · Übergabe · Archivierung · Dateiformat · Dateiverwaltung 264 + </div> 265 +</details> 316 316 317 - if(original&&original.value){ 318 - el.style.setProperty( 319 - property, 320 - original.value, 321 - original.priority||"" 322 - ); 323 - }else{ 324 - el.style.removeProperty(property); 325 - } 326 - } 327 - 328 - function resetRuntime(){ 329 - managedHeight.forEach(function(el){ 330 - restoreStyle( 331 - el, 332 - originalHeight, 333 - "min-height" 334 - ); 335 - el.removeAttribute( 336 - "data-sn-master-equal-height" 337 - ); 338 - }); 339 - 340 - managedMargin.forEach(function(el){ 341 - restoreStyle( 342 - el, 343 - originalMargin, 344 - "margin-top" 345 - ); 346 - el.removeAttribute( 347 - "data-sn-master-first-row" 348 - ); 349 - }); 350 - 351 - managedHeight.clear(); 352 - managedMargin.clear(); 353 - } 354 - 355 - function themeFor(text){ 356 - var value=norm(text); 357 - 358 - for(var i=0;i<THEMES.length;i++){ 359 - for(var j=0;j<THEMES[i].labels.length;j++){ 360 - var label=THEMES[i].labels[j]; 361 - 362 - if( 363 - value===label|| 364 - value.indexOf(label+" ")===0|| 365 - value.indexOf(label+" -")===0|| 366 - value.indexOf(label+" ·")===0 367 - ){ 368 - return THEMES[i]; 369 - } 370 - } 371 - } 372 - 373 - return null; 374 - } 375 - 376 - /* ======================================================= 377 - BORDERLESS FILLED RED/ORANGE CTA BUTTONS 378 - ======================================================= */ 379 - 380 - function colourDistance(a,b){ 381 - return Math.sqrt( 382 - Math.pow(a[0]-b[0],2)+ 383 - Math.pow(a[1]-b[1],2)+ 384 - Math.pow(a[2]-b[2],2) 385 - ); 386 - } 387 - 388 - function makeFilledRedOrangeCTAsBorderless(){ 389 - var RED_ORANGE=[233,75,19]; 390 - 391 - Array.from( 392 - root.querySelectorAll( 393 - 'a,button,[role="button"],input[type="submit"],input[type="button"]' 394 - ) 395 - ).forEach(function(el){ 396 - if(!visible(el))return; 397 - 398 - var style=getComputedStyle(el); 399 - var rgb=parseRGB(style.backgroundColor); 400 - 401 - if(!rgb)return; 402 - 403 - if( 404 - colourDistance( 405 - rgb, 406 - RED_ORANGE 407 - )>55 408 - ){ 409 - return; 410 - } 411 - 412 - var rect=el.getBoundingClientRect(); 413 - 414 - if( 415 - rect.width<80|| 416 - rect.height<24 417 - ){ 418 - return; 419 - } 420 - 421 - el.style.setProperty( 422 - "border", 423 - "none", 424 - "important" 425 - ); 426 - 427 - el.style.setProperty( 428 - "border-left", 429 - "none", 430 - "important" 431 - ); 432 - 433 - el.style.setProperty( 434 - "border-top", 435 - "none", 436 - "important" 437 - ); 438 - 439 - el.style.setProperty( 440 - "border-right", 441 - "none", 442 - "important" 443 - ); 444 - 445 - el.style.setProperty( 446 - "border-bottom", 447 - "none", 448 - "important" 449 - ); 450 - 451 - el.style.setProperty( 452 - "box-shadow", 453 - "none", 454 - "important" 455 - ); 456 - }); 457 - } 458 - 459 - /* ======================================================= 460 - FULL-WIDTH THREE-LINE AREA LABELS 461 - ======================================================= */ 462 - 463 - function compactText(value){ 464 - return String(value||"") 465 - .replace(/\s+/g," ") 466 - .trim(); 467 - } 468 - 469 - function makeThreeLineAreaLabels(){ 470 - Array.from( 471 - root.querySelectorAll( 472 - ".arsn-area-label" 473 - ) 474 - ).forEach(function(label){ 475 - if( 476 - label.getAttribute( 477 - "data-sn-three-line" 478 - )==="1" 479 - ){ 480 - return; 481 - } 482 - 483 - var number= 484 - label.querySelector( 485 - ":scope > .arsn-area-number" 486 - ); 487 - 488 - var action= 489 - label.querySelector( 490 - ":scope > .arsn-area-action" 491 - ); 492 - 493 - if( 494 - !number|| 495 - !action 496 - ){ 497 - return; 498 - } 499 - 500 - var clone= 501 - label.cloneNode(true); 502 - 503 - var cloneNumber= 504 - clone.querySelector( 505 - ":scope > .arsn-area-number" 506 - ); 507 - 508 - var cloneAction= 509 - clone.querySelector( 510 - ":scope > .arsn-area-action" 511 - ); 512 - 513 - if(cloneNumber){ 514 - cloneNumber.remove(); 515 - } 516 - 517 - if(cloneAction){ 518 - cloneAction.remove(); 519 - } 520 - 521 - var titleText= 522 - compactText( 523 - clone.textContent 524 - ); 525 - 526 - if(!titleText){ 527 - return; 528 - } 529 - 530 - var numberNode= 531 - number.cloneNode(true); 532 - 533 - var actionNode= 534 - action.cloneNode(true); 535 - 536 - var titleNode= 537 - document.createElement( 538 - "span" 539 - ); 540 - 541 - titleNode.className= 542 - "sn-area-label-title"; 543 - 544 - titleNode.textContent= 545 - titleText; 546 - 547 - while(label.firstChild){ 548 - label.removeChild( 549 - label.firstChild 550 - ); 551 - } 552 - 553 - label.appendChild( 554 - numberNode 555 - ); 556 - 557 - label.appendChild( 558 - titleNode 559 - ); 560 - 561 - label.appendChild( 562 - actionNode 563 - ); 564 - 565 - label.setAttribute( 566 - "data-sn-three-line", 567 - "1" 568 - ); 569 - 570 - var head= 571 - label.closest( 572 - ".arsn-area-head" 573 - ); 574 - 575 - if(head){ 576 - head.style.setProperty( 577 - "width", 578 - "100%", 579 - "important" 580 - ); 581 - 582 - head.style.setProperty( 583 - "max-width", 584 - "100%", 585 - "important" 586 - ); 587 - 588 - head.style.setProperty( 589 - "box-sizing", 590 - "border-box", 591 - "important" 592 - ); 593 - } 594 - }); 595 - } 596 - 597 - /* ======================================================= 598 - PLACEHOLDER BADGE 599 - ======================================================= */ 600 - 601 - function applyPlaceholderBadge(){ 602 - if(!PLACEHOLDER)return; 603 - 604 - if( 605 - document.querySelector( 606 - ".sn-coming-soon-badge" 607 - ) 608 - ){ 609 - return; 610 - } 611 - 612 - var title= 613 - document.querySelector( 614 - "#document-title" 615 - )|| 616 - document.querySelector( 617 - "h1" 618 - ); 619 - 620 - if(!title)return; 621 - 622 - var badge= 623 - document.createElement( 624 - "span" 625 - ); 626 - 627 - badge.className= 628 - "sn-coming-soon-badge"; 629 - 630 - badge.textContent= 631 - PLACEHOLDER_LABEL; 632 - 633 - badge.setAttribute( 634 - "aria-label", 635 - PLACEHOLDER_LABEL 636 - ); 637 - 638 - title.appendChild( 639 - badge 640 - ); 641 - } 642 - 643 - /* ======================================================= 644 - DETAIL PAGE OWN-ACCENT PROPAGATION 645 - ======================================================= */ 646 - 647 - function parseRGB(value){ 648 - var match=String(value||"").match( 649 - /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i 650 - ); 651 - 652 - if(!match)return null; 653 - 654 - return [ 655 - Number(match[1]), 656 - Number(match[2]), 657 - Number(match[3]) 658 - ]; 659 - } 660 - 661 - function distance(a,b){ 662 - return Math.sqrt( 663 - Math.pow(a[0]-b[0],2)+ 664 - Math.pow(a[1]-b[1],2)+ 665 - Math.pow(a[2]-b[2],2) 666 - ); 667 - } 668 - 669 - function paletteMatch(cssColor){ 670 - var rgb=parseRGB(cssColor); 671 - 672 - if(!rgb)return null; 673 - 674 - var palette=[ 675 - {hex:"#21b6d7",rgb:[33,182,215]}, 676 - {hex:"#e94b13",rgb:[233,75,19]}, 677 - {hex:"#f0aa00",rgb:[240,170,0]}, 678 - {hex:"#38b76a",rgb:[56,183,106]} 679 - ]; 680 - 681 - var best=null; 682 - var bestDistance=Infinity; 683 - 684 - palette.forEach(function(item){ 685 - var d=distance(rgb,item.rgb); 686 - 687 - if(d<bestDistance){ 688 - best=item; 689 - bestDistance=d; 690 - } 691 - }); 692 - 693 - return bestDistance<=30 694 - ?best 695 - :null; 696 - } 697 - 698 - function propagateDetailAccents(){ 699 - if(PAGE_KIND!=="detail")return; 700 - 701 - Array.from( 702 - root.querySelectorAll( 703 - ".arsn-call,.dmp-call,.ido-call,.pp-call,"+ 704 - ".arsn-source,.dmp-source,.ido-source,.pp-source" 705 - ) 706 - ).forEach(function(el){ 707 - if(!visible(el))return; 708 - 709 - var style=getComputedStyle(el); 710 - 711 - if( 712 - num(style.borderTopWidth)>=2 713 - ){ 714 - var match= 715 - paletteMatch( 716 - style.borderTopColor 717 - ); 718 - 719 - if(match){ 720 - el.style.setProperty( 721 - "border-left", 722 - "4px solid "+match.hex, 723 - "important" 724 - ); 725 - } 726 - } 727 - }); 728 - 729 - // Warning families: explicit safety override. 730 - Array.from( 731 - root.querySelectorAll( 732 - ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+ 733 - ".warn,.warning,.warningmessage,.errormessage" 734 - ) 735 - ).forEach(function(el){ 736 - if(!visible(el))return; 737 - 738 - el.style.setProperty( 739 - "border-left", 740 - "4px solid #e94b13", 741 - "important" 742 - ); 743 - }); 744 - 745 - // Info families: explicit orientation override. 746 - Array.from( 747 - root.querySelectorAll( 748 - ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage" 749 - ) 750 - ).forEach(function(el){ 751 - if(!visible(el))return; 752 - 753 - el.style.setProperty( 754 - "border-left", 755 - "4px solid #21b6d7", 756 - "important" 757 - ); 758 - }); 759 - } 760 - 761 - /* ======================================================= 762 - OVERVIEW SEMANTIC THEME PALETTE 763 - ======================================================= */ 764 - 765 - function smallestThemeHeaders(){ 766 - return Array.from( 767 - root.querySelectorAll( 768 - "div,span,p,strong,h3,h4,h5,h6" 769 - ) 770 - ).filter(function(el){ 771 - if(!visible(el))return false; 772 - if(!themeFor(el.textContent))return false; 773 - 774 - return !Array.from( 775 - el.children||[] 776 - ).some(function(child){ 777 - return !!themeFor( 778 - child.textContent 779 - ); 780 - }); 781 - }); 782 - } 783 - 784 - function findOverviewCard(header){ 785 - var node=header.parentElement; 786 - var candidates=[]; 787 - 788 - while(node&&node!==root){ 789 - var rect=node.getBoundingClientRect(); 790 - var style=getComputedStyle(node); 791 - 792 - var border= 793 - num(style.borderTopWidth)+ 794 - num(style.borderRightWidth)+ 795 - num(style.borderBottomWidth)+ 796 - num(style.borderLeftWidth); 797 - 798 - if( 799 - rect.width>=220&& 800 - rect.width<=800&& 801 - rect.height>=120&& 802 - border>=1 803 - ){ 804 - candidates.push(node); 805 - } 806 - 807 - node=node.parentElement; 808 - } 809 - 810 - if(!candidates.length)return null; 811 - 812 - candidates.sort(function(a,b){ 813 - return ( 814 - b.getBoundingClientRect().height- 815 - a.getBoundingClientRect().height 816 - ); 817 - }); 818 - 819 - return candidates[0]; 820 - } 821 - 822 - function rowCandidates(link,card){ 823 - var result=[]; 824 - var cardRect= 825 - card.getBoundingClientRect(); 826 - 827 - var node=link; 828 - 829 - while(node&&node!==card){ 830 - if(visible(node)){ 831 - var rect= 832 - node.getBoundingClientRect(); 833 - 834 - if( 835 - rect.height<=105&& 836 - rect.width>= 837 - cardRect.width*.50&& 838 - rect.width<= 839 - cardRect.width*1.03 840 - ){ 841 - result.push(node); 842 - } 843 - } 844 - 845 - node=node.parentElement; 846 - } 847 - 848 - return result; 849 - } 850 - 851 - function chooseOuterRow( 852 - candidates, 853 - link 854 - ){ 855 - if(!candidates.length){ 856 - return link; 857 - } 858 - 859 - var bordered= 860 - candidates.filter(function(el){ 861 - return ( 862 - num( 863 - getComputedStyle(el) 864 - .borderLeftWidth 865 - )>=1 866 - ); 867 - }); 868 - 869 - var pool= 870 - bordered.length 871 - ?bordered 872 - :candidates; 873 - 874 - pool.sort(function(a,b){ 875 - var ar= 876 - a.getBoundingClientRect(); 877 - 878 - var br= 879 - b.getBoundingClientRect(); 880 - 881 - return ( 882 - ar.left-br.left|| 883 - br.width-ar.width 884 - ); 885 - }); 886 - 887 - return pool[0]||link; 888 - } 889 - 890 - function applyOverviewPalette(){ 891 - if(PAGE_KIND!=="overview"){ 892 - return []; 893 - } 894 - 895 - var headers= 896 - smallestThemeHeaders() 897 - .map(function(el){ 898 - return { 899 - el:el, 900 - theme: 901 - themeFor( 902 - el.textContent 903 - ), 904 - card: 905 - findOverviewCard( 906 - el 907 - ) 908 - }; 909 - }) 910 - .filter(function(row){ 911 - return !!row.card; 912 - }); 913 - 914 - var unique=[]; 915 - var seenHeaders=new Set(); 916 - 917 - headers.forEach(function(row){ 918 - var key= 919 - row.theme.name+ 920 - "|"+ 921 - Math.round( 922 - row.card 923 - .getBoundingClientRect() 924 - .left 925 - )+ 926 - "|"+ 927 - Math.round( 928 - row.el 929 - .getBoundingClientRect() 930 - .top 931 - ); 932 - 933 - if(!seenHeaders.has(key)){ 934 - seenHeaders.add(key); 935 - unique.push(row); 936 - } 937 - }); 938 - 939 - unique.forEach(function(row){ 940 - var headerRect= 941 - row.el 942 - .getBoundingClientRect(); 943 - 944 - row.el.style.setProperty( 945 - "background", 946 - row.theme.bg, 947 - "important" 948 - ); 949 - 950 - row.el.style.setProperty( 951 - "color", 952 - row.theme.text, 953 - "important" 954 - ); 955 - 956 - row.el.style.setProperty( 957 - "text-align", 958 - "left", 959 - "important" 960 - ); 961 - 962 - row.el.style.setProperty( 963 - "word-spacing", 964 - "normal", 965 - "important" 966 - ); 967 - 968 - var later= 969 - unique 970 - .filter(function(other){ 971 - return ( 972 - other.card===row.card&& 973 - other.el 974 - .getBoundingClientRect() 975 - .top> 976 - headerRect.top+2 977 - ); 978 - }) 979 - .sort(function(a,b){ 980 - return ( 981 - a.el 982 - .getBoundingClientRect() 983 - .top- 984 - b.el 985 - .getBoundingClientRect() 986 - .top 987 - ); 988 - }); 989 - 990 - var stopTop= 991 - later.length 992 - ?later[0].el 993 - .getBoundingClientRect() 994 - .top 995 - :Infinity; 996 - 997 - Array.from( 998 - row.card.querySelectorAll("a") 999 - ).forEach(function(link){ 1000 - if(!visible(link))return; 1001 - 1002 - var rect= 1003 - link.getBoundingClientRect(); 1004 - 1005 - if( 1006 - rect.top<= 1007 - headerRect.bottom-2|| 1008 - rect.top>= 1009 - stopTop-2 1010 - ){ 1011 - return; 1012 - } 1013 - 1014 - var candidates= 1015 - rowCandidates( 1016 - link, 1017 - row.card 1018 - ); 1019 - 1020 - var target= 1021 - chooseOuterRow( 1022 - candidates, 1023 - link 1024 - ); 1025 - 1026 - candidates.forEach(function(el){ 1027 - el.style.setProperty( 1028 - "border-left", 1029 - "0 solid transparent", 1030 - "important" 1031 - ); 1032 - }); 1033 - 1034 - target.style.setProperty( 1035 - "border-left", 1036 - "3px solid "+ 1037 - row.theme.accent, 1038 - "important" 1039 - ); 1040 - 1041 - target.style.setProperty( 1042 - "box-sizing", 1043 - "border-box", 1044 - "important" 1045 - ); 1046 - }); 1047 - }); 1048 - 1049 - return unique; 1050 - } 1051 - 1052 - /* ======================================================= 1053 - OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW 1054 - ======================================================= */ 1055 - 1056 - function alignOverviewCards(headers){ 1057 - if( 1058 - PAGE_KIND!=="overview"|| 1059 - window.innerWidth<=MOBILE_MAX 1060 - ){ 1061 - return; 1062 - } 1063 - 1064 - var cards=[]; 1065 - var seen=new Set(); 1066 - 1067 - headers.forEach(function(row){ 1068 - if(!seen.has(row.card)){ 1069 - seen.add(row.card); 1070 - cards.push(row.card); 1071 - } 1072 - }); 1073 - 1074 - if(cards.length<2){ 1075 - return; 1076 - } 1077 - 1078 - // Group cards by actual top position. 1079 - var groups=[]; 1080 - 1081 - cards.forEach(function(card){ 1082 - var top= 1083 - card.getBoundingClientRect().top; 1084 - 1085 - var group=null; 1086 - 1087 - for(var i=0;i<groups.length;i++){ 1088 - if( 1089 - Math.abs( 1090 - groups[i].top-top 1091 - )<=ROW_TOLERANCE 1092 - ){ 1093 - group=groups[i]; 1094 - break; 1095 - } 1096 - } 1097 - 1098 - if(!group){ 1099 - group={ 1100 - top:top, 1101 - cards:[] 1102 - }; 1103 - groups.push(group); 1104 - } 1105 - 1106 - group.cards.push(card); 1107 - }); 1108 - 1109 - groups.forEach(function(group){ 1110 - if(group.cards.length<2){ 1111 - return; 1112 - } 1113 - 1114 - var firstHeaders= 1115 - group.cards.map(function(card){ 1116 - var candidates= 1117 - headers 1118 - .filter(function(row){ 1119 - return row.card===card; 1120 - }) 1121 - .sort(function(a,b){ 1122 - return ( 1123 - a.el 1124 - .getBoundingClientRect() 1125 - .top- 1126 - b.el 1127 - .getBoundingClientRect() 1128 - .top 1129 - ); 1130 - }); 1131 - 1132 - return candidates.length 1133 - ?candidates[0] 1134 - :null; 1135 - }); 1136 - 1137 - if( 1138 - !firstHeaders.some(function(row){ 1139 - return !row; 1140 - }) 1141 - ){ 1142 - var targetTop= 1143 - Math.max.apply( 1144 - Math, 1145 - firstHeaders.map(function(row){ 1146 - return ( 1147 - row.el 1148 - .getBoundingClientRect() 1149 - .top- 1150 - row.card 1151 - .getBoundingClientRect() 1152 - .top 1153 - ); 1154 - }) 1155 - ); 1156 - 1157 - firstHeaders.forEach(function(row){ 1158 - var relativeTop= 1159 - row.el 1160 - .getBoundingClientRect() 1161 - .top- 1162 - row.card 1163 - .getBoundingClientRect() 1164 - .top; 1165 - 1166 - var delta= 1167 - targetTop-relativeTop; 1168 - 1169 - if(delta>1){ 1170 - saveStyle( 1171 - row.el, 1172 - originalMargin, 1173 - "margin-top" 1174 - ); 1175 - 1176 - var current= 1177 - num( 1178 - getComputedStyle( 1179 - row.el 1180 - ).marginTop 1181 - ); 1182 - 1183 - row.el.style.setProperty( 1184 - "margin-top", 1185 - ( 1186 - current+delta 1187 - )+"px" 1188 - ); 1189 - 1190 - row.el.setAttribute( 1191 - "data-sn-master-first-row", 1192 - "1" 1193 - ); 1194 - 1195 - managedMargin.add( 1196 - row.el 1197 - ); 1198 - } 1199 - }); 1200 - } 1201 - 1202 - var maxHeight=0; 1203 - 1204 - group.cards.forEach(function(card){ 1205 - maxHeight= 1206 - Math.max( 1207 - maxHeight, 1208 - card 1209 - .getBoundingClientRect() 1210 - .height 1211 - ); 1212 - }); 1213 - 1214 - maxHeight= 1215 - Math.ceil(maxHeight); 1216 - 1217 - group.cards.forEach(function(card){ 1218 - saveStyle( 1219 - card, 1220 - originalHeight, 1221 - "min-height" 1222 - ); 1223 - 1224 - card.style.setProperty( 1225 - "min-height", 1226 - maxHeight+"px" 1227 - ); 1228 - 1229 - card.setAttribute( 1230 - "data-sn-master-equal-height", 1231 - "1" 1232 - ); 1233 - 1234 - managedHeight.add( 1235 - card 1236 - ); 1237 - }); 1238 - }); 1239 - } 1240 - 1241 - /* ======================================================= 1242 - DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY 1243 - ======================================================= */ 1244 - 1245 - function equaliseDetailGrids(){ 1246 - if( 1247 - PAGE_KIND!=="detail"|| 1248 - window.innerWidth<=MOBILE_MAX 1249 - ){ 1250 - return; 1251 - } 1252 - 1253 - var selectors=[ 1254 - ".arsn-grid", 1255 - ".arsn-grid-2", 1256 - ".arsn-grid-3", 1257 - ".dmp-grid", 1258 - ".ido-grid", 1259 - ".pp-grid" 1260 - ]; 1261 - 1262 - selectors.forEach(function(selector){ 1263 - Array.from( 1264 - root.querySelectorAll(selector) 1265 - ).forEach(function(grid){ 1266 - var children= 1267 - Array.from( 1268 - grid.children||[] 1269 - ).filter(visible); 1270 - 1271 - if(children.length<2){ 1272 - return; 1273 - } 1274 - 1275 - var groups=[]; 1276 - 1277 - children.forEach(function(child){ 1278 - var top= 1279 - child 1280 - .getBoundingClientRect() 1281 - .top; 1282 - 1283 - var group=null; 1284 - 1285 - for(var i=0;i<groups.length;i++){ 1286 - if( 1287 - Math.abs( 1288 - groups[i].top-top 1289 - )<=ROW_TOLERANCE 1290 - ){ 1291 - group=groups[i]; 1292 - break; 1293 - } 1294 - } 1295 - 1296 - if(!group){ 1297 - group={ 1298 - top:top, 1299 - items:[] 1300 - }; 1301 - groups.push(group); 1302 - } 1303 - 1304 - group.items.push(child); 1305 - }); 1306 - 1307 - groups.forEach(function(group){ 1308 - if(group.items.length<2){ 1309 - return; 1310 - } 1311 - 1312 - var maxHeight=0; 1313 - 1314 - group.items.forEach(function(item){ 1315 - maxHeight= 1316 - Math.max( 1317 - maxHeight, 1318 - item 1319 - .getBoundingClientRect() 1320 - .height 1321 - ); 1322 - }); 1323 - 1324 - maxHeight= 1325 - Math.ceil(maxHeight); 1326 - 1327 - group.items.forEach(function(item){ 1328 - saveStyle( 1329 - item, 1330 - originalHeight, 1331 - "min-height" 1332 - ); 1333 - 1334 - item.style.setProperty( 1335 - "min-height", 1336 - maxHeight+"px" 1337 - ); 1338 - 1339 - item.setAttribute( 1340 - "data-sn-master-equal-height", 1341 - "1" 1342 - ); 1343 - 1344 - managedHeight.add(item); 1345 - }); 1346 - }); 1347 - }); 1348 - }); 1349 - } 1350 - 1351 - /* ======================================================= 1352 - RUN / RESPONSIVE SCHEDULING 1353 - ======================================================= */ 1354 - 1355 - function run(){ 1356 - if(running)return; 1357 - 1358 - running=true; 1359 - 1360 - try{ 1361 - resetRuntime(); 1362 - applyPlaceholderBadge(); 1363 - propagateDetailAccents(); 1364 - 1365 - var headers= 1366 - applyOverviewPalette(); 1367 - 1368 - makeThreeLineAreaLabels(); 1369 - makeFilledRedOrangeCTAsBorderless(); 1370 - 1371 - if( 1372 - window.innerWidth> 1373 - MOBILE_MAX 1374 - ){ 1375 - alignOverviewCards( 1376 - headers 1377 - ); 1378 - 1379 - equaliseDetailGrids(); 1380 - } 1381 - }finally{ 1382 - running=false; 1383 - } 1384 - } 1385 - 1386 - function onResize(){ 1387 - if(resizeTimer){ 1388 - clearTimeout( 1389 - resizeTimer 1390 - ); 1391 - } 1392 - 1393 - resizeTimer= 1394 - setTimeout( 1395 - function(){ 1396 - resizeTimer=0; 1397 - run(); 1398 - }, 1399 - RESIZE_DEBOUNCE 1400 - ); 1401 - } 1402 - 1403 - async function waitForReady(){ 1404 - if( 1405 - document.readyState!=="complete" 1406 - ){ 1407 - await new Promise(function(resolve){ 1408 - window.addEventListener( 1409 - "load", 1410 - resolve, 1411 - {once:true} 1412 - ); 1413 - }); 1414 - } 1415 - 1416 - if( 1417 - document.fonts&& 1418 - document.fonts.ready 1419 - ){ 1420 - try{ 1421 - await document.fonts.ready; 1422 - }catch(error){} 1423 - } 1424 - 1425 - var images= 1426 - Array.from( 1427 - root.querySelectorAll("img") 1428 - ); 1429 - 1430 - await Promise.all( 1431 - images.map(function(img){ 1432 - if(img.complete){ 1433 - return Promise.resolve(); 1434 - } 1435 - 1436 - return new Promise(function(resolve){ 1437 - var done=function(){ 1438 - resolve(); 1439 - }; 1440 - 1441 - img.addEventListener( 1442 - "load", 1443 - done, 1444 - {once:true} 1445 - ); 1446 - 1447 - img.addEventListener( 1448 - "error", 1449 - done, 1450 - {once:true} 1451 - ); 1452 - }); 1453 - }) 1454 - ); 1455 - 1456 - run(); 1457 - } 1458 - 1459 - window.addEventListener( 1460 - "resize", 1461 - onResize, 1462 - {passive:true} 1463 - ); 1464 - 1465 - waitForReady(); 1466 -})(); 1467 -</script> 1468 - 1469 -<!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END --> 267 +</div> 1470 1470 {{/html}} 1471 1471