diff --git a/HaWeb/Controllers/BriefeContoller.cs b/HaWeb/Controllers/BriefeContoller.cs new file mode 100644 index 0000000..758b888 --- /dev/null +++ b/HaWeb/Controllers/BriefeContoller.cs @@ -0,0 +1,20 @@ +using System.Diagnostics; +using Microsoft.AspNetCore.Mvc; +using HaWeb.Models; + +namespace HaWeb.Controllers; + +public class Briefecontroller : Controller +{ + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); + } + + [Route("Briefe")] + [Route("Briefe/{id?}")] + public IActionResult Index(int? id) { + return View(); + } +} \ No newline at end of file diff --git a/HaWeb/Controllers/EditionController.cs b/HaWeb/Controllers/EditionController.cs index b3a2488..005b462 100644 --- a/HaWeb/Controllers/EditionController.cs +++ b/HaWeb/Controllers/EditionController.cs @@ -5,7 +5,6 @@ using HaWeb.Models; namespace HaWeb.Controllers; [Route("Edition/[action]")] -[Route("Edition/[action]/Index")] public class EditionController : Controller { [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] @@ -37,4 +36,9 @@ public class EditionController : Controller { return View(); } + + public IActionResult Datenschutzerklaerung() + { + return View(); + } } \ No newline at end of file diff --git a/HaWeb/Controllers/HomeController.cs b/HaWeb/Controllers/HomeController.cs new file mode 100644 index 0000000..3161953 --- /dev/null +++ b/HaWeb/Controllers/HomeController.cs @@ -0,0 +1,21 @@ +using System.Diagnostics; +using Microsoft.AspNetCore.Mvc; +using HaWeb.Models; + +namespace HaWeb.Controllers; + +public class HomeController : Controller +{ + + [Route("")] + public IActionResult Index() + { + return Redirect("/Suche"); + } + + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); + } +} diff --git a/HaWeb/Controllers/LegacyConroller.cs b/HaWeb/Controllers/LegacyConroller.cs new file mode 100644 index 0000000..0129478 --- /dev/null +++ b/HaWeb/Controllers/LegacyConroller.cs @@ -0,0 +1,33 @@ +// Handles 304 redirects to links of the old page, so permalinks stay active.\ +using System.Diagnostics; +using Microsoft.AspNetCore.Mvc; +using HaWeb.Models; + +namespace HaWeb.Controllers; + + +public class LegacyContoller : Controller +{ + [Route("Supplementa/")] + [Route("Supplementa/Register")] + [Route("Supplementa/Register/{id?}")] + public IActionResult SupplementaRegister(string? id) { + if (id != null) + return RedirectPermanent("/Register/Register/" + id); + return RedirectPermanent("/Register/Register"); + } + + [Route("Supplementa/Bibelstellen")] + public IActionResult SupplementaBibelstellen(string? id) { + if (id != null) + return RedirectPermanent("/Register/Bibelstellen/" + id); + return RedirectPermanent("/Register/Bibelstellen"); + } + + [Route("Supplementa/Forschung")] + public IActionResult SupplementaForschung(string? id) { + if (id != null) + return RedirectPermanent("/Register/Forschung/" + id); + return RedirectPermanent("/Register/Forschung"); + } +} \ No newline at end of file diff --git a/HaWeb/Controllers/RegisterController.cs b/HaWeb/Controllers/RegisterController.cs new file mode 100644 index 0000000..3dc8ad1 --- /dev/null +++ b/HaWeb/Controllers/RegisterController.cs @@ -0,0 +1,29 @@ +using System.Diagnostics; +using Microsoft.AspNetCore.Mvc; +using HaWeb.Models; + +namespace HaWeb.Controllers; + +[Route("Register/[action]/{id?}")] +public class RegisterController : Controller +{ + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); + } + public IActionResult Register(string? id) + { + return View("Index"); + } + + public IActionResult Bibelstellen(string? id) + { + return View("Index"); + } + + public IActionResult Forschung(string? id) + { + return View("Index"); + } +} \ No newline at end of file diff --git a/HaWeb/Controllers/SearchController.cs b/HaWeb/Controllers/SucheController.cs similarity index 77% rename from HaWeb/Controllers/SearchController.cs rename to HaWeb/Controllers/SucheController.cs index 0f8903a..5438fff 100644 --- a/HaWeb/Controllers/SearchController.cs +++ b/HaWeb/Controllers/SucheController.cs @@ -4,12 +4,10 @@ using HaWeb.Models; namespace HaWeb.Controllers; -public class SearchController : Controller +public class SucheController : Controller { - [Route("")] - [Route("Home")] - [Route("Home/Index")] + [Route("Suche")] public IActionResult Index() { return View(); diff --git a/HaWeb/Helpers/LinkHelper.cs b/HaWeb/Helpers/LinkHelper.cs deleted file mode 100644 index d0aca03..0000000 --- a/HaWeb/Helpers/LinkHelper.cs +++ /dev/null @@ -1,31 +0,0 @@ - -// Finds the correct link adress to any Page, Letter, or Comment, and sets Links as active if neccessary -using Microsoft.AspNetCore.Razor.TagHelpers; -using System.Threading.Tasks; - -namespace AuthoringTagHelpers.TagHelpers -{ - public class MenuLinkHelper : TagHelper - { - public override void Process(TagHelperContext context, TagHelperOutput output) - { - output.TagName = "a"; // Replaces with tag - } - } - - public class LetterLinkHelper : TagHelper - { - public override void Process(TagHelperContext context, TagHelperOutput output) - { - output.TagName = "a"; // Replaces with tag - } - } - - public class CommentLinkHelper : TagHelper - { - public override void Process(TagHelperContext context, TagHelperOutput output) - { - output.TagName = "a"; // Replaces with tag - } - } -} \ No newline at end of file diff --git a/HaWeb/Views/Briefe/Index.cshtml b/HaWeb/Views/Briefe/Index.cshtml new file mode 100644 index 0000000..e69de29 diff --git a/HaWeb/Views/Edition/Datenschutzerklaerung.cshtml b/HaWeb/Views/Edition/Datenschutzerklaerung.cshtml new file mode 100644 index 0000000..e69de29 diff --git a/HaWeb/Views/Edition/Kontakt.cshtml b/HaWeb/Views/Edition/Kontakt.cshtml index ad5818c..47c69bf 100644 --- a/HaWeb/Views/Edition/Kontakt.cshtml +++ b/HaWeb/Views/Edition/Kontakt.cshtml @@ -1,6 +1,41 @@ @{ ViewData["Title"] = "Kontakt"; - ViewData["SEODescription"] = "Johann Georg Hamann: Kommentierte Briefausgabe, Hg. v. Leonard Keidel und Janina Reibold. Durchsuchbare Online-Ausgabe der Briefe von und an Johann Georg Hamann."; + ViewData["SEODescription"] = "Johann Georg Hamann: Kommentierte Briefausgabe. Durchsuchbare Online-Ausgabe der Briefe von und an Johann Georg Hamann. Kontakt."; } -Hello! \ No newline at end of file +
+

Kontakt

+ + + + + + +
Theodor Springmann Stiftung
+ Dr. Janina Reibold
+ Hirschgasse 2
+ 69120 Heidelberg
+ Telefon: 06221 7259277
+ E-Mail: post@hamann-ausgabe
Germanistisches Seminar der Universität Heidelberg
+ Dr. Janina Reibold
+ Hauptstraße 207–209
+ 69117 Heidelberg
+ Telefon: 06221 543254
+ www.gs.uni-heidelberg.de/personen/reibold.html
+ + +

Anmeldung zur regelmäßigen Mitteilung über den Stand der kommentierten Hamann-Ausgabe

+

Wenn Sie über den Verlauf des Projekts informiert werden möchten, melden Sie sich bitte mit einer E-Mail an post@hamann-ausgabe.de zu unserem Newsletter an. Sie erhalten dann Mitteilung über die Termine der online-Veröffentlichung der Briefe und des Kommentars sowie Hinweise zum Erscheinen der kommentierten Werkbände im Meiner Verlag.

+ +

Ihre Mitarbeit am Online-Kommentar

+

Die Online-Publikation der Briefe und des Stellenkommentars ermöglicht eine ständige Revision desselben. Wir möchten Sie einladen, mit Ergänzungen, Korrekturen, Vorschlägen zu dessen Verbesserung beizutragen. Senden Sie uns diese bitte an post@hamann-ausgabe.de. Nach unserer Prüfung fügen wir diese in den Online-Kommentar ein (auf Wunsch auch mit Namensnennung des Beiträgers).

+ + + +

Zitierempfehlung

+ Johann Georg Hamann: Kommentierte Briefausgabe. Hg. von Leonard Keidel und Janina Reibold, auf Grundlage der Vorarbeiten Arthur Henkels, unter Mitarbeit von Gregor Babelotzky, Konrad Bucher, Christian Großmann, Carl Friedrich Haak, Luca Klopfer, Johannes Knüchel, Isabel Langkabel und Simon Martens (Heidelberg 2020 ff.). URL: www.hamann-ausgabe.de [= HKB]

+
+ + + + \ No newline at end of file diff --git a/HaWeb/Views/Register/Index.cshtml b/HaWeb/Views/Register/Index.cshtml new file mode 100644 index 0000000..de1f645 --- /dev/null +++ b/HaWeb/Views/Register/Index.cshtml @@ -0,0 +1 @@ +Hello from Register! \ No newline at end of file diff --git a/HaWeb/Views/Shared/_Footer.cshtml b/HaWeb/Views/Shared/_Footer.cshtml new file mode 100644 index 0000000..b100380 --- /dev/null +++ b/HaWeb/Views/Shared/_Footer.cshtml @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/HaWeb/Views/Shared/_Layout.cshtml b/HaWeb/Views/Shared/_Layout.cshtml index eb4b6a4..3ba2be7 100644 --- a/HaWeb/Views/Shared/_Layout.cshtml +++ b/HaWeb/Views/Shared/_Layout.cshtml @@ -18,17 +18,17 @@ - + @await Html.PartialAsync("/Views/Shared/_Menu.cshtml") -
-
- @RenderBody() -
-
+
+ @RenderBody() +
@await RenderSectionAsync("Scripts", required: false) + + @await Html.PartialAsync("/Views/Shared/_Footer.cshtml") diff --git a/HaWeb/Views/Shared/_Menu.cshtml b/HaWeb/Views/Shared/_Menu.cshtml index b123474..852c05b 100644 --- a/HaWeb/Views/Shared/_Menu.cshtml +++ b/HaWeb/Views/Shared/_Menu.cshtml @@ -1,3 +1,6 @@ +@{ + var showCredits = ViewData["showCredits"] == "true" ? true : false; +}
+ @if(showCredits) + { + + }
diff --git a/HaWeb/Views/Search/Index.cshtml b/HaWeb/Views/Suche/Index.cshtml similarity index 85% rename from HaWeb/Views/Search/Index.cshtml rename to HaWeb/Views/Suche/Index.cshtml index 4600879..2d30e46 100644 --- a/HaWeb/Views/Search/Index.cshtml +++ b/HaWeb/Views/Suche/Index.cshtml @@ -1,4 +1,5 @@ @{ ViewData["Title"] = "Briefauswahl & Suche"; ViewData["SEODescription"] = "Johann Georg Hamann: Kommentierte Briefausgabe, Hg. v. Leonard Keidel und Janina Reibold. Durchsuchbare Online-Ausgabe der Briefe von und an Johann Georg Hamann."; + ViewData["showCredits"] = "true"; } \ No newline at end of file diff --git a/HaWeb/Views/_ViewImports.cshtml b/HaWeb/Views/_ViewImports.cshtml index 2a0df67..b308778 100644 --- a/HaWeb/Views/_ViewImports.cshtml +++ b/HaWeb/Views/_ViewImports.cshtml @@ -1,5 +1,3 @@ @using HaWeb @using HaWeb.Models -@using AuthoringTagHelpers @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers -@addTagHelper *, AuthoringTagHelpers \ No newline at end of file diff --git a/HaWeb/wwwroot/css/output.css b/HaWeb/wwwroot/css/output.css index da6b3b3..6d7df0a 100644 --- a/HaWeb/wwwroot/css/output.css +++ b/HaWeb/wwwroot/css/output.css @@ -475,7 +475,7 @@ body { line-height: 1.5rem; } -@media (min-width: 1190px) { +@media (min-width: 1440px) { body { font-size: 1.125rem; line-height: 1.75rem; @@ -515,7 +515,7 @@ body { } .ha-topnav a { - margin-right: 1.25rem; + margin-right: 1.5rem; display: none; --tw-text-opacity: 1; color: rgb(55 65 81 / var(--tw-text-opacity)); @@ -534,10 +534,14 @@ body { @media (min-width: 1680px) { .ha-topnav a { - margin-right: 1.5rem; + margin-right: 1.75rem; } } +.ha-topnav a:last-child { + margin-right: 0px; +} + .ha-topnav-dropdown { display: none; } @@ -559,7 +563,7 @@ body { margin-right: 1.5rem; display: none; min-width: 130px; - border-bottom-width: 2px; + border-bottom-width: 1px; --tw-border-opacity: 1; border-color: rgb(156 163 175 / var(--tw-border-opacity)); --tw-bg-opacity: 1; @@ -594,25 +598,135 @@ body { background-color: rgb(243 244 246 / var(--tw-bg-opacity)); } -/* TODO INLINE .ha-container { - @apply max-w-[1280px] - } - +.ha-footer { + margin-left: auto; + margin-right: auto; + margin-top: 1rem; + height: 100%; + width: 100%; + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity)); + padding: 0.5rem; + text-align: right; + font-family: Libertine, serif; + font-size: 1.125rem; + line-height: 1.75rem; +} + +@media (min-width: 1024px) { + .ha-footer { + padding: 1rem; + } +} + +@media (min-width: 1190px) { + .ha-footer { + max-width: 1190px; + padding: 2rem; + } +} + +.ha-footer a { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; + -webkit-text-decoration-style: dotted; + text-decoration-style: dotted; +} + +.ha-footer a:hover { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; + -webkit-text-decoration-style: solid; + text-decoration-style: solid; +} + +/* TODO INLINE + .ha-maincolumn { @apply bg-slate-50 mx-auto p-2 md:p-4 desktop:px-16 desktop:py-12 xl:pr-80 text-lg font-serif - } - - p { - @apply my-3 - } - - h1 { - @apply font-bold text-xl 2xl:font-normal 2xl:text-4xl - } - - h2 { - @apply text-lg 2xl:text-2xl - } */ + } */ + +.ha-static { + width: 100%; + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity)); + padding-top: 3rem; + padding-bottom: 3rem; + padding-left: 4rem; + padding-right: 4rem; + font-family: Libertine, serif; + -webkit-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; +} + +@media (min-width: 1024px) { + .ha-static { + padding-right: 20rem; + } +} + +.ha-static h1 { + margin-bottom: 1rem; + font-size: 1.25rem; + line-height: 1.75rem; + font-weight: 700; +} + +@media (min-width: 1680px) { + .ha-static h1 { + font-size: 2.25rem; + line-height: 2.5rem; + font-weight: 400; + } +} + +.ha-static h2 { + margin-bottom: 0.75rem; + margin-top: 1rem; + font-size: 1.125rem; + line-height: 1.75rem; +} + +@media (min-width: 1680px) { + .ha-static h2 { + font-size: 1.5rem; + line-height: 2rem; + } +} + +.ha-static h3 { + margin-bottom: 0.75rem; + margin-top: 1rem; + font-style: italic; + --tw-text-opacity: 1; + color: rgb(216 0 0 / var(--tw-text-opacity)); +} + +.ha-static table { + margin-top: 0.75rem; + margin-bottom: 0.75rem; + width: 100%; +} + +.ha-static p { + margin-top: 0.75rem; + margin-bottom: 0.75rem; +} + +.ha-static a { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; + -webkit-text-decoration-style: dotted; + text-decoration-style: dotted; +} + +.ha-static a:hover { + -webkit-text-decoration-line: underline; + text-decoration-line: underline; + -webkit-text-decoration-style: solid; + text-decoration-style: solid; +} /* Classes from .NET */ @@ -742,6 +856,10 @@ body { } } +.pointer-events-none { + pointer-events: none; +} + .static { position: static; } @@ -764,6 +882,10 @@ body { margin-right: 0.5rem; } +.\!mr-0 { + margin-right: 0px !important; +} + .inline-block { display: inline-block; } @@ -772,10 +894,18 @@ body { display: flex; } +.table { + display: table; +} + .hidden { display: none; } +.h-full { + height: 100%; +} + .h-8 { height: 2rem; } @@ -816,6 +946,18 @@ body { flex-wrap: wrap; } +.overflow-hidden { + overflow: hidden; +} + +.text-ellipsis { + text-overflow: ellipsis; +} + +.whitespace-nowrap { + white-space: nowrap; +} + .border { border-width: 1px; } @@ -998,6 +1140,11 @@ body { font-style: normal; } +* { + -webkit-text-decoration-skip-ink: all; + text-decoration-skip-ink: all; +} + body { background-image:url('../img/subtlenet2.png'); background-repeat:repeat; @@ -1007,6 +1154,12 @@ body { list-style-type:circle; } */ +.hyphenate { + -webkit-hyphens: auto; + -ms-hyphens: auto; + hyphens: auto; +} + .ha-menu-arrowsymbol::after { display: inline-block; margin-left: 0.2em; @@ -1060,6 +1213,10 @@ body { } @media (min-width: 1190px) { + .desktop\:block { + display: block; + } + .desktop\:hidden { display: none; } diff --git a/HaWeb/wwwroot/css/site.css b/HaWeb/wwwroot/css/site.css index ce269a6..1517b29 100644 --- a/HaWeb/wwwroot/css/site.css +++ b/HaWeb/wwwroot/css/site.css @@ -81,7 +81,7 @@ @layer components { body { - @apply text-base desktop:text-lg w-full h-full + @apply text-base xl:text-lg w-full h-full } .ha-topnav { @@ -89,7 +89,11 @@ } .ha-topnav a { - @apply hidden text-gray-700 hover:text-gray-900 desktop:inline-block mr-5 2xl:mr-6 + @apply hidden text-gray-700 hover:text-gray-900 desktop:inline-block mr-6 2xl:mr-7 + } + + .ha-topnav a:last-child { + @apply mr-0 } .ha-topnav-dropdown { @@ -101,7 +105,7 @@ } .ha-topnav-dropdown .ha-topnav-dropdown-content { - @apply hidden mr-6 pt-1 right-0 desktop:absolute bg-slate-50 min-w-[130px] shadow-md border-gray-400 border-b-2 z-50 + @apply hidden mr-6 pt-1 right-0 desktop:absolute bg-slate-50 min-w-[130px] shadow-md border-gray-400 border-b z-50 } .ha-topnav-dropdown .ha-topnav-dropdown-content a { @@ -114,27 +118,56 @@ .ha-topnav-dropdown .ha-topnav-dropdown-content a:hover { @apply bg-gray-100 - } + } + + .ha-footer { + @apply bg-slate-50 w-full h-full desktop:max-w-screen-desktop mx-auto mt-4 p-2 md:p-4 desktop:p-8 text-lg font-serif text-right + } + + .ha-footer a { + @apply underline decoration-dotted + } + + .ha-footer a:hover { + @apply underline decoration-solid + } + + /* TODO INLINE - /* TODO INLINE .ha-container { - @apply max-w-[1280px] - } - .ha-maincolumn { @apply bg-slate-50 mx-auto p-2 md:p-4 desktop:px-16 desktop:py-12 xl:pr-80 text-lg font-serif - } - - p { + } */ + + .ha-static { + @apply w-full bg-slate-50 py-12 px-16 hyphenate md:pr-80 font-serif + } + .ha-static h1 { + @apply font-bold text-xl 2xl:font-normal 2xl:text-4xl mb-4 + } + + .ha-static h2 { + @apply my-3 mt-4 text-lg 2xl:text-2xl + } + + .ha-static h3 { + @apply my-3 mt-4 text-hamannHighlight italic + } + + .ha-static table { + @apply my-3 w-full + } + + .ha-static p { @apply my-3 } - h1 { - @apply font-bold text-xl 2xl:font-normal 2xl:text-4xl + .ha-static a { + @apply underline decoration-dotted } - h2 { - @apply text-lg 2xl:text-2xl - } */ + .ha-static a:hover { + @apply underline decoration-solid + } /* Classes from .NET */ @@ -175,6 +208,11 @@ .ha-topnav.ha-topnav-collapsed .ha-topnav-dropdown .ha-topnav-dropdown-content a { @apply py-1 desktop:py-2 } + +} + +* { + text-decoration-skip-ink: all; } body { @@ -186,6 +224,10 @@ body { list-style-type:circle; } */ +.hyphenate { + hyphens: auto; +} + .ha-menu-arrowsymbol::after { display: inline-block; margin-left: 0.2em;