diff --git a/app/pb.go b/app/pb.go index 05c274a..17c2122 100644 --- a/app/pb.go +++ b/app/pb.go @@ -134,23 +134,26 @@ func (app *App) Serve() error { return err } - for _, page := range pages { - err := page.Up(e.App) - if err != nil { - page.Down(e.App) - continue - } - app.Pages = append(app.Pages, page) - } return nil }) app.PB.OnServe().BindFunc(func(e *core.ServeEvent) error { e.Router.GET("/assets/{path...}", apis.Static(views.StaticFS, true)) + // INFO: we put this here, to make sure all migrations are done + for _, page := range pages { + err := page.Up(e.App) + if err != nil { + app.PB.Logger().Error("Failed to up page %q: %v", "error", err) + page.Down(e.App) + continue + } + app.Pages = append(app.Pages, page) + } for _, page := range app.Pages { page.Setup(e.Router, e.App, engine) } + return e.Next() }) return app.PB.Start() diff --git a/dbmodels/dbdata.go b/dbmodels/dbdata.go index 48c8fec..0067406 100644 --- a/dbmodels/dbdata.go +++ b/dbmodels/dbdata.go @@ -424,6 +424,8 @@ const ( ITEMS_TABLE = "items" ID_FIELD = "id" + CREATED_FIELD = "created" + UPDATED_FIELD = "updated" ANNOTATION_FIELD = "annotation" MUSENALMID_FIELD = "musenalm_id" diff --git a/dbmodels/functions.go b/dbmodels/functions.go index 66e225e..09ad1cf 100644 --- a/dbmodels/functions.go +++ b/dbmodels/functions.go @@ -7,6 +7,11 @@ func SetBasicPublicRules(collection *core.Collection) { collection.ListRule = PUBLIC_LIST_RULE } +func SetCreatedUpdatedFields(fieldlist *core.FieldsList) { + fieldlist.Add(&core.AutodateField{Name: CREATED_FIELD, OnCreate: true}) + fieldlist.Add(&core.AutodateField{Name: UPDATED_FIELD, OnCreate: true, OnUpdate: true}) +} + func SetMusenalmIDField(fieldlist *core.FieldsList) { fieldlist.Add(&core.TextField{Name: MUSENALMID_FIELD, Max: 64, Required: false}) } @@ -70,6 +75,8 @@ func BasicRelationCollection(app core.App, sourcetablename, targettablename stri &core.SelectField{Name: RELATION_TYPE_FIELD, Required: true, Values: relations, MaxSelect: 1}, &core.BoolField{Name: RELATION_CONJECTURE_FIELD, Required: false}, &core.BoolField{Name: RELATION_UNCERTAIN_FIELD, Required: false}, + &core.AutodateField{Name: CREATED_FIELD, OnCreate: true}, + &core.AutodateField{Name: UPDATED_FIELD, OnCreate: true, OnUpdate: true}, ) SetNotesAndAnnotationsField(&fields) diff --git a/migrations/1738936553_places.go b/migrations/1738936553_places.go index c41eb01..febfa52 100644 --- a/migrations/1738936553_places.go +++ b/migrations/1738936553_places.go @@ -37,6 +37,7 @@ func placesFields() core.FieldsList { &core.URLField{Name: dbmodels.URI_FIELD, Required: false, OnlyDomains: []string{"geonames.org"}}, ) + dbmodels.SetCreatedUpdatedFields(&fields) dbmodels.SetMusenalmIDField(&fields) dbmodels.SetEditorStateField(&fields) dbmodels.SetNotesAndAnnotationsField(&fields) diff --git a/migrations/1738936568_agents.go b/migrations/1738936568_agents.go index 0ceb280..cc95fbd 100644 --- a/migrations/1738936568_agents.go +++ b/migrations/1738936568_agents.go @@ -41,6 +41,7 @@ func agentsFields() core.FieldsList { &core.TextField{Name: dbmodels.REFERENCES_FIELD, Required: false}, ) + dbmodels.SetCreatedUpdatedFields(&fields) dbmodels.SetMusenalmIDField(&fields) dbmodels.SetEditorStateField(&fields) dbmodels.SetNotesAndAnnotationsField(&fields) diff --git a/migrations/1738936584_series.go b/migrations/1738936584_series.go index bbae900..2c8090b 100644 --- a/migrations/1738936584_series.go +++ b/migrations/1738936584_series.go @@ -37,6 +37,7 @@ func seriesFields() core.FieldsList { &core.TextField{Name: dbmodels.SERIES_FREQUENCY_FIELD, Required: false}, ) + dbmodels.SetCreatedUpdatedFields(&fields) dbmodels.SetMusenalmIDField(&fields) dbmodels.SetEditorStateField(&fields) dbmodels.SetNotesAndAnnotationsField(&fields) diff --git a/migrations/1738936647_entries.go b/migrations/1738936647_entries.go index 6364033..7113a98 100644 --- a/migrations/1738936647_entries.go +++ b/migrations/1738936647_entries.go @@ -106,6 +106,7 @@ func entriesFields(app core.App) *core.FieldsList { &core.JSONField{Name: dbmodels.MUSENALM_DEPRECATED_FIELD, Required: false}, ) + dbmodels.SetCreatedUpdatedFields(&fields) dbmodels.SetMusenalmIDField(&fields) dbmodels.SetEditorStateField(&fields) dbmodels.SetNotesAndAnnotationsField(&fields) diff --git a/migrations/1738936648_items.go b/migrations/1738936648_items.go index 86facbf..5eda61d 100644 --- a/migrations/1738936648_items.go +++ b/migrations/1738936648_items.go @@ -59,6 +59,7 @@ func itemsFields(app core.App) core.FieldsList { &core.URLField{Name: dbmodels.URI_FIELD, Required: false, Presentable: false}, ) + dbmodels.SetCreatedUpdatedFields(&fields) dbmodels.SetNotesAndAnnotationsField(&fields) dbmodels.SetEditorStateField(&fields) diff --git a/migrations/1738942133_contents.go b/migrations/1738942133_contents.go index 2e256a5..ffdf8ec 100644 --- a/migrations/1738942133_contents.go +++ b/migrations/1738942133_contents.go @@ -115,6 +115,7 @@ func partialsFields(app core.App) *core.FieldsList { ) dbmodels.SetMusenalmIDField(&fields) + dbmodels.SetCreatedUpdatedFields(&fields) dbmodels.SetEditorStateField(&fields) dbmodels.SetNotesAndAnnotationsField(&fields) diff --git a/musenalm.go b/musenalm.go index dc1dcef..659c99c 100644 --- a/musenalm.go +++ b/musenalm.go @@ -8,7 +8,12 @@ import ( "github.com/Theodor-Springmann-Stiftung/musenalm/helpers" _ "github.com/Theodor-Springmann-Stiftung/musenalm/migrations" _ "github.com/Theodor-Springmann-Stiftung/musenalm/pages" + _ "github.com/Theodor-Springmann-Stiftung/musenalm/pages/migrations_danksagungen" + _ "github.com/Theodor-Springmann-Stiftung/musenalm/pages/migrations_dokumentation" + _ "github.com/Theodor-Springmann-Stiftung/musenalm/pages/migrations_einfuehrung" _ "github.com/Theodor-Springmann-Stiftung/musenalm/pages/migrations_index" + _ "github.com/Theodor-Springmann-Stiftung/musenalm/pages/migrations_kontakt" + _ "github.com/Theodor-Springmann-Stiftung/musenalm/pages/migrations_literatur" _ "github.com/Theodor-Springmann-Stiftung/musenalm/pages/migrations_reihen" "github.com/pocketbase/pocketbase/plugins/migratecmd" ) diff --git a/pagemodels/abk.go b/pagemodels/abk.go new file mode 100644 index 0000000..93a8d08 --- /dev/null +++ b/pagemodels/abk.go @@ -0,0 +1,33 @@ +package pagemodels + +import "github.com/pocketbase/pocketbase/core" + +type Abk struct { + core.BaseRecordProxy +} + +func (a *Abk) TableName() string { + return GeneratePageTableName(P_DOK_NAME, T_ABK_NAME) +} + +func NewAbk(record *core.Record) *Abk { + i := &Abk{} + i.SetProxyRecord(record) + return i +} + +func (a *Abk) Abk() string { + return a.GetString(F_ABK) +} + +func (a *Abk) SetAbk(abk string) { + a.Set(F_ABK, abk) +} + +func (a *Abk) Bedeutung() string { + return a.GetString(F_BEDEUTUNG) +} + +func (a *Abk) SetBedeutung(bedeutung string) { + a.Set(F_BEDEUTUNG, bedeutung) +} diff --git a/pagemodels/default.go b/pagemodels/default.go new file mode 100644 index 0000000..b3a3892 --- /dev/null +++ b/pagemodels/default.go @@ -0,0 +1,85 @@ +package pagemodels + +import ( + "net/http" + "strings" + + "github.com/Theodor-Springmann-Stiftung/musenalm/templating" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +type DefaultPage struct { + core.BaseRecordProxy + Page + URL string +} + +func NewDefaultPage(record *core.Record) *DefaultPage { + i := &DefaultPage{} + i.SetProxyRecord(record) + return i +} + +func (r *DefaultPage) Title() string { + return r.GetString(F_TITLE) +} + +func (r *DefaultPage) SetTitle(titel string) { + r.Set(F_TITLE, titel) +} + +func (r *DefaultPage) Description() string { + return r.GetString(F_DESCRIPTION) +} + +func (r *DefaultPage) SetDescription(beschreibung string) { + r.Set(F_DESCRIPTION, beschreibung) +} + +func (r *DefaultPage) Keywords() string { + return r.GetString(F_TAGS) +} + +func (r *DefaultPage) SetKeywords(keywords string) { + r.Set(F_TAGS, keywords) +} + +func (r *DefaultPage) Text() string { + return r.GetString(F_TEXT) +} + +func (r *DefaultPage) SetText(text string) { + r.Set(F_TEXT, text) +} + +func (r *DefaultPage) Up(app core.App) error { + record := &core.Record{} + err := app.RecordQuery(GeneratePageTableName(r.Name)). + OrderBy("created"). + One(record) + if err != nil { + return err + } + + r.SetProxyRecord(record) + return nil +} + +func (p *DefaultPage) Setup(router *router.Router[*core.RequestEvent], app core.App, engine *templating.Engine) error { + router.GET(p.URL, func(e *core.RequestEvent) error { + data := make(map[string]interface{}) + data["title"] = p.Title() + data["description"] = p.Description() + data["keywords"] = p.Keywords() + data["text"] = p.Text() + + var builder strings.Builder + err := engine.Render(&builder, p.Template, data, p.Layout) + if err != nil { + return e.HTML(http.StatusInternalServerError, err.Error()) + } + return e.HTML(http.StatusOK, builder.String()) + }) + return nil +} diff --git a/pagemodels/functions.go b/pagemodels/functions.go index 0eba0e0..caa9aa5 100644 --- a/pagemodels/functions.go +++ b/pagemodels/functions.go @@ -9,7 +9,7 @@ func BasePageCollection(pagename string) *core.Collection { c := core.NewBaseCollection(GeneratePageTableName(pagename)) c.ListRule = dbmodels.PUBLIC_LIST_RULE c.ViewRule = dbmodels.PUBLIC_VIEW_RULE - c.Fields = StandardPageFields() + c.Fields = append(c.Fields, StandardPageFields()...) return c } @@ -19,6 +19,8 @@ func StandardPageFields() core.FieldsList { EditorField(F_DESCRIPTION), TextField(F_TAGS), ) + + ret = append(ret, CreatedUpdatedFields()...) return ret } @@ -63,3 +65,10 @@ func RequiredImageField(name string, multiselect bool) *core.FileField { Thumbs: []string{"0x300", "0x500", "0x1000", "300x0", "500x0", "1000x0"}, } } + +func CreatedUpdatedFields() core.FieldsList { + return core.NewFieldsList( + &core.AutodateField{Name: dbmodels.CREATED_FIELD, OnCreate: true}, + &core.AutodateField{Name: dbmodels.UPDATED_FIELD, OnCreate: true, OnUpdate: true}, + ) +} diff --git a/pagemodels/pagedata.go b/pagemodels/pagedata.go index 679729f..c18c222 100644 --- a/pagemodels/pagedata.go +++ b/pagemodels/pagedata.go @@ -5,7 +5,17 @@ const ( T_INDEX_BILDER = "bilder" T_INDEX_TEXTE = "texte" - P_REIHEN_NAME = "reihen" + P_REIHEN_NAME = "reihen" + P_DANK_NAME = "danksagungen" + P_KONTAKT_NAME = "kontakt" + P_LIT_NAME = "literatur" + P_EINFUEHRUNG_NAME = "einfuehrung" + + P_DOK_NAME = "dokumentation" + T_ABK_NAME = "abkuerzungen" + + F_ABK = "Abkuerzung" + F_BEDEUTUNG = "Bedeutung" F_TITLE = "Titel" F_DESCRIPTION = "Beschreibung" diff --git a/pages/migrations_danksagungen/1739446527_danksagungen.go b/pages/migrations_danksagungen/1739446527_danksagungen.go new file mode 100644 index 0000000..b606b37 --- /dev/null +++ b/pages/migrations_danksagungen/1739446527_danksagungen.go @@ -0,0 +1,40 @@ +package migrations_danksagungen + +import ( + "github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels" + "github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels" + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +var reihen_fields = core.NewFieldsList( + pagemodels.EditorField(pagemodels.F_TEXT), +) + +func init() { + m.Register(func(app core.App) error { + collection := pageCollection() + if err := app.Save(collection); err != nil { + app.Logger().Error("Failed to save collection:", "error", err, "collection", collection) + return err + } + return nil + }, func(app core.App) error { + collection, err := app.FindCollectionByNameOrId( + pagemodels.GeneratePageTableName(pagemodels.P_DANK_NAME)) + if err == nil && collection != nil { + if err := app.Delete(collection); err != nil { + app.Logger().Error("Failed to delete collection:", "error", err, "collection", collection) + return err + } + } + return nil + }) +} + +func pageCollection() *core.Collection { + c := pagemodels.BasePageCollection(pagemodels.P_DANK_NAME) + c.Fields = append(c.Fields, reihen_fields...) + dbmodels.SetBasicPublicRules(c) + return c +} diff --git a/pages/migrations_danksagungen/1739446703_insert_data_danksagungen.go b/pages/migrations_danksagungen/1739446703_insert_data_danksagungen.go new file mode 100644 index 0000000..2da9dfa --- /dev/null +++ b/pages/migrations_danksagungen/1739446703_insert_data_danksagungen.go @@ -0,0 +1,48 @@ +package migrations_danksagungen + +import ( + "github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels" + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +const TEXT = `
Der bibliographische Auftrieb auf die Musenalm bedarf der Unterstützung durch ihre Nutzer und insbesondere durch die Besitzer seltener und wenig bekannter, kaum auffindbarer Almanache und Taschenbücher des gewählten Zeitraumes von etwa 1750 bis 1870. Sie helfen uns durch Hinweise, Leihgaben auf kurze Frist, sowie durch Benennung von Fehlern und Unstimmigkeiten, die uns unterlaufen mögen, sich aber auch aus Eigen- und Abarten untersuchter Exemplare herleiten können.
+Für viele geleistete Hilfen danken wir:
+Frau Susanne Koppel
Antiquariat Susanne Koppel
Parkallee 4
20144 Hamburg
www.antiquariat-koppel.de
info@antiquariat-koppel.de
Herrn Thomas Rezek
Antiquariat Thomas Rezek
Amalienstraße 63
80799 München
www.a-rezek.de
arezek@web.de
Herrn Günther Trauzettel-Loibl
Antiquariat Trauzettel
Haumühle 8
52223 Stolberg
www.antiquariat-trauzettel.de
antiquariat.trauzettel@t-online.de
Herrn Uwe Turszynski
Antiquariat Turszynski
Herzogstraße 66
80803 München
www.turszynski.de
antiquariat@turszynski.de
Herrn Dieter Zipprich
Antiquariat Zipprich
Karolinenstraße 18
96049 Bamberg
antiquariat.zipprich@freenet.de
Frau Mag. Rita Robosch
Matthaeus Truppe Buchhandlung & Antiquariat
Stubenberggasse 7
A-8010 Graz
Austria
truppe@aon.at
Wir sortieren die Reihentitel nach dem Kopf der Nominalphrase, den wir zu diesem Zweck ggf. an den Anfang stellen und mit Kommas abtrennen.
+Somit wird:
+Wiener Musenalmach
+bei uns geführt unter:
+Musenalmanach, Wiener.
+Ebenso findet sich:
+Des Churbayerischen Hohen Ritterordens S. Georgii Wappenkalender
+Unter ‚W‘ einsortiert als:
+Wappenkalender, Des Churbayerischen Hohen Ritterordens S. Georgii
+Aus diesem Grund empfehlen wir, nicht per ("…") nach genauen Zeichenketten zu suchen.
+Bei manchen Almanachen geben wir zur leichteren Findbarkeit den autoptischen Titel und verweisen von dort auf den systematischen. Etwa:
+Baltisches Album, s. u. Album, Baltisches
+Alle künstlerisch gestalteten Umschläge sind mit einem Bild erfasst. Nicht erfasst sind Verlagsbroschuren und unauffällige Privateinbände. Auf Nachfrage fertigen wir von allen Umschlägen Scans an.
++
Die Zeile ‚Struktur‘ am Einzelband dient dazu, den Aufbau und die Ausstattung eines Almanachs auf einen Blick zu erfassen.
+Eine Erläuterung der in dieser Zeile verwendeten Abkürzungen findet sich unten.
+In der Zeile ‚Nachweis‘ geben wir an, wo der Almanach in den einschlägigen Nachschlagewerken belegt ist. Die Auflösung der Siglen, die wir hierbei verwenden findet sich im Literaturverzeichnis.
+Häufig finden sich in Almanachen verschiedene Objekte desselben Typs durch eine gemeinsame Überschrift zusammengefasst. In diesem Fall sprechen wir von einer Sammlung. Dies kann alle Arten von Objekten betreffen: Es gibt Sammlungen von Gedichten, Prosastücken, Graphiken oder Musikbeilagen.
+So enthält bspw. das Taschenbuch der Liebe und Freundschaft gewidmet von 1805 neun unter der Überschrift Gedichte zusammengefasste Gedichte von Hölderlin. Der Jahrgang 1822 der Minerva enthält unter dem Titel Gallerie zu Göthe’s Werken eine Sammlung von sieben Gedichten und sieben Illustrationen.
+Jede Sammlung ist von uns mit einer Anmerkung versehen, die Auskunft gibt, welche Objekte zu ihr gehören. Umgekehrt ist an den betreffenden Objekten jeweils die Zugehörigkeit zu der Sammlung vermerkt.
+‚s.a.‘ weist in den Anmerkungen zu Reihentiteln darauf hin, dass ein Almanach noch unter einem anderen Titel erschienen ist. So wird etwa in den Anmerkungen zum Almanach historique de la Revolution Françoise auf die deutsche Übersetzung des Almanachs hingewiesen: „s. a. die übersetzte Ausgabe: Taschenbuch der Franken, enthaltend die Geschichte der französischen Revolution, von Hrn. Rabaut de St. Etienne […].“
+Bisweilen liegen uns inhaltsgleiche Almanache unter verschiedenen Titeln vor. Wir legen uns dann auf einen für die Sortierung maßgeblichen Titel fest und stützen uns bei dieser Entscheidung auf die relevanten Nachschlagewerke, die im Literaturverzeichnis aufgelistet sind. Mithilfe von ‚s. u.‘ verweisen wir von den alternativen auf den maßgeblichen Titel. Etwa:
+Blumenlese, Heßische Poetische
s. u. Musenalmanach, Hessischer
Dass ein Almanach unter abweichenden Titeln erscheint, kann verschiedene Gründe haben, die von uns nicht immer rekonstruierbar sind. Ein Sonderfall dieses Sachverhalts ist die sog. Titelauflage: Ein Almanach wird (nahezu) inhaltsgleich unter einem anderen Titel ein zweites Mal publiziert. Hierauf weisen wir in den Anmerkungen zur Reihe und zu dem betreffenden Jahrgang eigens hin. So etwa bei dem Almanach für die Geschichte der Menschheit 1796. Zu diesem Almanach ist vermerkt, dass unter dem Titel Darstellung aus der Geschichte der Menschheit eine „Titelauflage ohne Nachtitel, Vorwort und Kalendarium“ erschien.
++
+
|
+ Titel + |
+
+ Titel des Almanachs ohne Änderungen, Auslassungen oder Kürzungen. Schreibweise: wie im Almanach + |
+
|
+ Reihentitel + |
+
+ Der Reihentitel wird pragmatisch vergeben, er dient dazu, zusammengehörige Bände trotz Änderungen des Titels etc. unter einem einheitlichen Namen zu erfassen. Der Reihentitel, auch Kurztitel genannt, dient als Suchtitel. + |
+
|
+ Herausgeber + |
+
+ Name des Herausgebers, wie im Almanach zu finden + |
+
|
+ Realname + |
+
+ Der gedeutete Name in überlieferter Schreibweise + |
+
|
+ Ort + |
+
+ Verlagsort(e) wie im Almanach angegeben. + |
+
|
+ Jahr + |
+
+ Jahr, auf das sich der Almanach im Titel bezieht. + |
+
|
+ AlmanachNr + |
+
+ Eindeutige Referenznummer des Almanachs + |
+
|
+ Struktur + |
+
+ Reihenfolge der tatsächlich in diesem Band vorliegenden Inhaltsobjekte, wobei diese nur nach ihrer Kategorie, nicht nach den Details, aufgelistet werden. + |
+
|
+ Norm + |
+
+ Reihenfolge der tatsächlichen oder vermutlich beabsichtigten Inhaltsobjekte; Aufbau des Almanachs + |
+
|
+ Anmerkungen + |
+
+ Anmerkungen zum Band bzw. zum Beitrag + |
+
|
+ Autor + |
+
+ Der angezeigte Name des Autors (auch Pseudonyme und Kürzel oder »unbezeichnet«), wie im Almanach zu finden + |
+
|
+ Realname + |
+
+ Der gedeutete Name in überlieferter Schreibweise + |
+
|
+ Titel + |
+
+ Titel des Objekts + |
+
|
+ Incipit + |
+
+ Textanfang (ca zwei Zeilen) + |
+
|
+ Objekt + |
+
+ Um was handelt es sich? Z. B. Gedicht, Text, Prosabeitrag. Vgl. dazu auch die Tabelle Objekte unten + |
+
|
+ Abbildung + |
+
+ Ja/Nein für Foto des Objekts vorhanden/nicht vorhanden. + |
+
|
+ Paginierung + |
+
+ römische/arabische Paginierung + |
+
|
+ Seite + |
+
+ Seitennummer nach arabischer oder römischer Paginierung + |
+
|
+ Objektzähler + |
+
+ Unabhängig von Art oder vorhandener Paginierung wird jedem Inhalt seine relative Position zugewiesen. + |
+
|
+ Inhaltsnummer + |
+
+ Eindeutige Datensatznummer + |
+
+
+
|
+ Anm. + |
+
+ Anmerkung + |
+
|
+ ar, ar1, ar2 + |
+
+ arabische Paginierung (ggf mehrere) + |
+
|
+ B; BB + |
+
+ Blatt; Blätter + |
+
|
+ C + |
+
+ Corrigenda + |
+
|
+ Diagr + |
+
+ Diagramm + |
+
|
+ G; GG + |
+
+ Graphik; Graphiken + |
+
|
+ UG r, v + |
+
+ Umschlaggraphik recto, verso + |
+
|
+ TG r, v + |
+
+ Titelgraphik, Titelportrait etc + |
+
|
+ gA + |
+
+ graphische Anleitung + |
+
|
+ gTzA + |
+
+ graphische Tanzanleitung + |
+
|
+ G-Verz + |
+
+ Verzeichnis der Kupfer u. ä. + |
+
|
+ Hrsg + |
+
+ Herausgeber + |
+
|
+ I-Verz + |
+
+ Inhaltsverzeichnis + |
+
|
+ Kal + |
+
+ Kalendarium + |
+
|
+ Kr + |
+
+ Karte + |
+
|
+ MusB; MusBB + |
+
+ Musikbeigabe; Musikbeigaben + |
+
|
+ röm, röm1, röm2 + |
+
+ römische Paginierung (ggf. mehrere) + |
+
|
+ S; SS + |
+
+ Seite; Seiten + |
+
|
+ Sp + |
+
+ Spiegel + |
+
|
+ T + |
+
+ Titel + |
+
|
+ gT + |
+
+ graphischer Titel + |
+
|
+ vT + |
+
+ Vortitel + |
+
|
+ nT + |
+
+ Nachtitel + |
+
|
+ zT + |
+
+ Zwischentitel + |
+
|
+ Tab + |
+
+ Tabelle + |
+
|
+ VB + |
+
+ Vorsatzblatt + |
+
|
+ Vf + |
+
+ Verfasser + |
+
|
+ VrlgM + |
+
+ Verlagsmitteilung + |
+
|
+ Vrwrt + |
+
+ Vorwort + |
+
|
+ # + |
+
+ Hinweis auf weitere Informationen in der Anmerkung. + |
+
|
+ §§ + |
+
+ Hinweis auf Mängel im Almanach (Beschädigungen, fehlende Graphiken od. Beiträge, unvollständige Sammlungen etc) in der Anmerkung + |
+
|
+ +++ + |
+
+ Inhalte aus mehreren Almanachen interpoliert + |
+
|
+ $ + |
+
+ vermutlich + |
+
Dies ist eine Bibliographie der deutschen Almanache und Taschenbücher, die neben der Erfassung der Reihen und ihrer Jahrgänge die Inhalte selbst erkennbar macht. In der Regel werden folgende Merkmale erfaßt und sind in verschiedenen Suchabfragen und Listen abrufbar:
+Erfaßt werden in erster Linie die literarischen Taschenbücher, die von 1770 bis etwa 1870 erschienen sind. Angesichts der raschen modischen Entwicklung des Almanachwesens, das sich schnell auf viele und auch entlegene Themengebiete ausdehnte, ist eine klare Abgrenzung der literarischen zu anders ausgerichteten Erscheinungen schwierig und wird von uns nicht angestrebt. Vielmehr sind wir bemüht, das ganze Spektrum des Almanachwesens sichtbar zu machen, und wir nehmen ebenfalls, wenn auch zunächst nur ausgewählt und nicht vollzählig, unliterarische Taschenbuchreihen auf, die wir zumeist allerdings nicht in inhaltlicher Aufgliederung, sondern nur unter dem Titel bibliographieren, unter Beifügung einer kurzen allgemeinen Beschreibung. Graphische Darstellungen in solchen Reihen sollen jedoch ebenfalls bildlich aufgenommen werden, sofern sie nicht als vergleichsweise unbedeutend erscheinen.
+Ausgegegrenzt bleiben die eigentlichen Land- und Volkskalender, die vorwiegend im Quart-Format, im Verlauf des 19. Jahrhunderts zunehmend aber auch im Oktav-Format erschienen sind.
+Das Vorhaben wird von der THEODOR SPRINGMANN STIFTUNG betrieben und greift zunächst auf deren umfangreichen Sammlungsbestand zurück, im weiteren Verlauf werden wir auf die Einbeziehung anderer Bibliotheken nicht verzichten können; vielfach wird es auch nötig sein, Mängel und Fehlstellen einzelner vorhandener Stücke zu ergänzen.
+Wir bitten um Anregungen und Korrekturen. Auch Hilfen durch methodische bibliographische Aufnahmen sind hochwillkommen und tragen zur Verkürzung des langwierigen Verfahrens bei. Hierzu können entsprechende Formulare bei uns angefordert werden.
+Das Inhaltsverzeichnis der deutschen Almanache wird erarbeitet von Wolfgang Binnig und Martin Sietzen und herausgegeben von Adrian Braunbehrens.
+Seit Kalender geschrieben und gedruckt wurden, finden wir sie verquickt mit anderen Momenten der Jahreszeitlichkeit. Hierzu zählen astronomische und astrologische Angaben, die Nennung guter und böser Tage, praktische Regeln zu den Jahreszeiten und ihrer Witterung und nicht zuletzt Texte zu musischem und geselligem Zeitvertreib. Dies führte zur Ausbildung besonderer Typen, die einzelne dieser Momente ausführlicher vorstellten. Zu den eigenartigsten und reizvollsten zählen die poetischen Musenalmanache und literarisch unterhaltenden Taschenbücher. Ihre Epoche begann in Deutschland – französischen Vorbildern folgend – um 1770 und endete gegen 1848. Sie wurden zur wohl hübschesten und zugleich langlebigsten Modeerscheinung auf dem deutschen Buchmarkt.
+In Paris erschien 1765 der ALMANACH DES MUSES OU CHOIX DE POÉSIES FUGITIVES, eine Blütenlese neuerer Dichtung, dessen Reihe sich in jährlicher Ausgabe bis ins 19. Jahrhundert fortsetzte. Er fand alsbald auch in Deutschland Beachtung und zum Jahr 1770 erschien, herausgegeben von Heinrich Christian Boie und verlegt von J. C. Dieterich der GÖTTINGER MUSENALMANACH. Klopstock zählte neben vielen anderen zu seinen Beiträgern. Der 1772 gegründete Göttinger Dichterbund fand in ihm ein Organ. Johann Heinrich Voss übernahm 1774 für kurze Zeit die Redaktion, begann indes 1776 in Hamburg mit einem eigenen Musenalmanach, der nun – in recht ähnlichem Erscheinungsbild – neben dem Göttinger bestand. Von diesen Keimzellen aus entwickelte sich in Deutschland ein literarisches Almanach- und Taschenbuchwesen, das in viefältiger Unterschiedenheit eine kaum übersehbare, nach Tausenden zu zählende, oft kurzlebige, teils auch in langen Jahresreihen sich fortsetzende Fülle hervorbrachte. Die Epoche des literarischen Taschenbuches war zugleich eine Hochzeit dichterischer Entfaltung in Deutschland, in den Höhen neuer Findung ebenso wie in den Senken der Trivialität; und es war eine Periode umfassender sozialer Veränderungen. Das Taschenbuch als gesellschaftliche Modeerscheinung und seine Wandlungen stehen in engem Bezug zu diesen Entwicklungen.- Eine umfassende Geschichte des Taschenbuches unter ausführlicher Berücksichtigung dieser Bezüge ist noch nicht geschrieben worden.
+Die Mannigfaltigkeit des periodischen Taschenbuches zeigt so viele Facetten, daß es schwer hält, eine beständige Gattung auszumachen. Beschreiben lassen sich wiederkehrende Einzelmerkmale, die in unterschiedlicher Häufung, kaum aber in ihrer Gesamtheit beim jeweiligen Exemplar vorkommen. Unsicher ist schon die Verwendung der Ausdrücke ALMANACH und TASCHENBUCH oder auch KALENDER; sie überschneiden sich großenteils, ohne sich ganz zu decken. Es könnte sich empfehlen, im Taschenbuch den Oberbegriff zu sehen, wenn nicht heutzutage unter dem Taschenbuch eine ganz andere Produktform des Buches bezeichnet wäre.
+Das Wort ALMANACH (arabischen Ursprungs) ist eine Bezeichnung für Kalender, und mit dem Kalender hat das hier dargestellte Taschenbuch die angelegte Jährlichkeit gemein, auch wenn so manche Erscheinung über den ersten Jahrgang nicht hinauskommt. Oftmals, aber keineswegs immer und immer seltener werdend, ist ein Kalender dem Textteil vorgebunden. Regional erhobene Kalender-Stempelsteuern konnten hier prohibitiv wirken. Einige besonders erfolgreiche Almanache erfuhren noch Jahre nach dem Erstdruck Folgeauflagen, in denen dann der überflüssig gewordene Kalender, nicht jedoch die ursprüngliche Jahresdatierung, entfallen konnte. – Seiner Entwicklungsgeschichte nach ist das Taschenbuch durchaus vom Kalender herzuleiten, aber es emanzipiert sich gleichsam von diesem und läßt seine Herkunft vergessen. Was bleibt ist die Taschenhandlichkeit des Formates: Sedez oder Duodez, seltener Octav (aber auch hierzu in der Spätzeit die seltene Ausnahme des Großoctav). Und es scheint, daß die Almanache, Kalendern gleich, meist keinen Ruheplatz in den Bücherschränken gefunden haben, sondern zur Hand genommen und vernutzt wurden; die bis heute erhalten gebliebenen Exemplare sind nicht selten ramponiert, zum Schaden für den zierlich gestalteten Einband.
+Welche Art von Texten füllte die Almanache und Taschenbücher? Anfangs war es Lyrik, sehr bald aber, als die Mode grassierte: quodlibet, alles was beliebt; unterhalten sollte es, in Spaß oder Ernst. Nur selten mischt Belehrendes sich ein, im Unterschied zum größer formatierten aber sehr viel schmaleren Land- oder Volkskalender. Sieht man in das Register der vorzüglichen Geschichte der deutschen Taschenbücher und Almanache aus der klassisch-romantischen Zeit von LANCKORONSKA und RÜMANN, so findet man schon in den Titeln die Hinweise auf jede nur denkbare Art von Adressaten und zugehörigen Inhalten: Wanderer, Reiter, Bienenfreunde, Künstler, Scheidekünstler und Apotheker, Liebende, Tollhäusler, Ketzer, Ärzte und Nichtärzte, Charadenfreunde, Kaufleute, Lottospieler u.v.a.m.. Vor allem aber wird die Weiblichkeit angesprochen, seien es Frauenzimmer oder Damen, Dienstmädchen, das Schöne Geschlecht, Kammerjungfern, Grabennymphen, Edle Weiber und Mädchen. Selbst wenn es der Titel nicht verrät, ist öfter an die Leserin gedacht als an den Herrn, sie hatte wohl mehr gesellige Muße, und sie war der gemeinte Empfänger des hübschen kleinen Geschenks. Denn zum Schenken war er bestimmt und dazu fügte sich der Erscheinungstermin zur Michaelismesse, rechtzeitig zu Weihnachten und Neujahr.
+Schwerpunkt der bibliographischen Erfassung und inhaltlichen Erschließung sind zunächst die literarischen Almanache – ungeachtet ihres Niveaus. Sie sind Versammlungsort nicht nur der Großen, sondern vorzüglich derjenigen Dichter und Prosaisten, deren Schriften heute – zu Recht oder zu Unrecht– vergessen sind, die aber aus manchen Gründen gelegentlich doch in den Blick des Interesses rücken. Das Verzeichnis soll sie, die bislang nur unter Schwierigkeiten aufzufinden waren, zugänglich machen. Besonders wichtig, weil eine Wahrnehmungslücke füllend, erschien uns daneben die Registrierung der Zeichner und Stecher, deren Graphiken wir als Vollbild wiedergeben wollen. Daß gerade in diesem Bereich die vorliegenden Exemplare oft unvollständig sind, führt gelegentlich zu Fehlstellen in unserer Darstellung (die aber auf Dauer geschlossen werden); es unterstreicht zugleich die Notwendigkeit des gesetzten Ziels. Indes werden nicht nur die Vorlagen Mängel aufweisen, auch in der Bearbeitung werden unvermeidbar Fehler entstehen. Wir bitten aufmerksame Benutzer, uns hierüber zu informieren und dadurch zur Besserung zu verhelfen.
+Auf längere Sicht sollen alle periodisch angelegten Almanache und Taschenbücher des 18. und 19. Jahrhunderts aufgenommen werden, um das gesamte Spektrum dieser Publikationsart sichtbar zu machen. Im nicht-literarischen Bereich werden wir uns jedoch zumeist beschränken auf die bibliographische Registrierung und eine kurze Beschreibung der Einzelbände und wir werden hierbei auf die ausführliche Inhaltsübersicht verzichten und uns mit der Wiedergabe eines Inhaltsverzeichnisses begnügen.
+Grundsätzlich ist Voraussetzung unserer bibliographischen Erfassung die Autopsie des Einzelemplares. Dies schützt indes nicht immer vor Verwirrung: Variante Doppeldrucke (etwa bei unbezeichnetet Folgeauflagen oder nach Zensureingriffen), fehlende Blätter und andere Fehlerquellen sind nicht in jedem Fall wahrnehmbar. Auf alles auffällig Sonderliche wird anmerkend hingewiesen. Um uns möglicher Vollständigkeit anzunähern, behalten wir uns vor, im Einzelfall auch ohne Autopsie nach bibliographischen Vorgaben aufzunehmen; wir werden dies jedoch immer unter Nennung der Quelle ausdrücklich anmerken.
+Adrian Braunbehrens
` + +func init() { + m.Register(func(app core.App) error { + collection, err := app.FindCollectionByNameOrId( + pagemodels.GeneratePageTableName(pagemodels.P_EINFUEHRUNG_NAME)) + if err != nil { + app.Logger().Error("Could not find Table Einführung! You need to execute table migrations first!") + return err + } + + record := pagemodels.NewDefaultPage(core.NewRecord(collection)) + record.SetTitle("Einführung") + record.SetText(START) + + if err := app.Save(record); err != nil { + app.Logger().Error("Failed to save record", "error", err, "record", record) + return err + } + + return nil + }, func(app core.App) error { + coll, err := app.FindCollectionByNameOrId( + pagemodels.GeneratePageTableName(pagemodels.P_EINFUEHRUNG_NAME)) + + if err == nil && coll != nil { + app.DB().NewQuery("DELETE FROM " + coll.TableName()).Execute() + } + return nil + }) +} diff --git a/pages/migrations_index/1739220544_index.go b/pages/migrations_index/1739220544_index.go index 5f6fea5..ec6784b 100644 --- a/pages/migrations_index/1739220544_index.go +++ b/pages/migrations_index/1739220544_index.go @@ -56,11 +56,14 @@ func bilderCollection() *core.Collection { pagemodels.RequiredImageField(pagemodels.F_PREVIEW, false), ) + dbmodels.SetBasicPublicRules(c) return c } func texteCollection() *core.Collection { c := pagemodels.BasePageCollection(pagemodels.P_INDEX_NAME) c.Fields = append(c.Fields, texte_fields...) + c.Fields = append(c.Fields, pagemodels.CreatedUpdatedFields()...) + dbmodels.SetBasicPublicRules(c) return c } diff --git a/pages/migrations_kontakt/1739446527_kontakt.go b/pages/migrations_kontakt/1739446527_kontakt.go new file mode 100644 index 0000000..f674937 --- /dev/null +++ b/pages/migrations_kontakt/1739446527_kontakt.go @@ -0,0 +1,38 @@ +package migrations_kontakt + +import ( + "github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels" + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +var reihen_fields = core.NewFieldsList( + pagemodels.EditorField(pagemodels.F_TEXT), +) + +func init() { + m.Register(func(app core.App) error { + collection := pageCollection() + if err := app.Save(collection); err != nil { + app.Logger().Error("Failed to save collection:", "error", err, "collection", collection) + return err + } + return nil + }, func(app core.App) error { + collection, err := app.FindCollectionByNameOrId( + pagemodels.GeneratePageTableName(pagemodels.P_KONTAKT_NAME)) + if err == nil && collection != nil { + if err := app.Delete(collection); err != nil { + app.Logger().Error("Failed to delete collection:", "error", err, "collection", collection) + return err + } + } + return nil + }) +} + +func pageCollection() *core.Collection { + c := pagemodels.BasePageCollection(pagemodels.P_KONTAKT_NAME) + c.Fields = append(c.Fields, reihen_fields...) + return c +} diff --git a/pages/migrations_kontakt/1739446703_insert_data_kontakt.go b/pages/migrations_kontakt/1739446703_insert_data_kontakt.go new file mode 100644 index 0000000..04628a7 --- /dev/null +++ b/pages/migrations_kontakt/1739446703_insert_data_kontakt.go @@ -0,0 +1,39 @@ +package migrations_kontakt + +import ( + "github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels" + "github.com/pocketbase/pocketbase/core" + m "github.com/pocketbase/pocketbase/migrations" +) + +const START = `Martin Sietzen und Dr. Jakob Brüssermann
Theodor-Springmann-Stiftung
Hirschgasse 2
69120 Heidelberg
info@musenalm.de
Baumgärtel, Ehrfried (Hg.): Die Almanache, Kalender und Taschenbücher (1750–1860) der Landesbibliothek Coburg. Wiesbaden 1970.
+Bernhardt, Ursula; Reuter-Rautenberg, Anneliese (Hgg.): Bild und Buch. Rheinblüthen, Moosrosen und Vergißmeinnicht: Taschenbücher für Frauenzimmer von Bildung. Eine Studioausstellung in Zusammenarbeit mit der Badischen Landesbiliothek. Staatliche Kunsthalle Karlsruhe 1995.
+Braunbehrens, Adrian et al. (Hgg.): Kalender im Wandel der Zeiten. Eine Ausstellung der Badischen Landesbibliothek zur Erinnerung an die Kalenderreform durch Papst Gregor XIII. im Jahr 1582. Ausstellungskatalog, Bad. Landesbibliothek 1982.
+Drescher, Georg (Hg.): O sehet her! die allerliebsten Dingerchen. Friedrich Rückert und der Almanach. Eine Ausstellung der Bibliothek Otto Schäfer, des Stadtarchivs Schweinfurt, der Städtischen Sammlungen Schweinfurt und der Rückert-Gesellschaft e.V. Würzburg 2000.
+Fallbacher, Karl-Heinz (Hg.): Taschenbücher im 19. Jahrhundert. Ausstellung im Schiller-Nationalmuseum Marbach zwischen November 1992 und Februar 1993. Dt. Schillergesellschaft, Marbach am Neckar 1992.
+Marwinski, Felicitas (Hg.): Almanache, Taschenbücher, Taschenkalender. Weimar 1967. Katalog der Sammlung der Thüringischen Landesbibliothek Weimar mit 816 Nummern, 8 Abbildungen.
+Mix, York-Gothart (Hg.): Kalender? Ey, wie viel Kalender! Literarische Almanache zwischen Rokoko und Klassizismus. Ausstellung im Zeughaus der Herzog August Bibliothek in Wolfenbüttel vom 15. Juni bis 5. November 1986. Ausstellungskataloge der Herzog August Bibliothek Nr. 50. Wolfenbüttel 1986.
+Patzer, Franz (Hg.): Wiener Kalender, Almanache und Taschenbücher aus fünf Jahrhunderten (1495–1977) Wechselausstellung der Wiener Stadt- u. Landesbibliothek, Rathaus, Dezember 1976–Jänner 1977. Wiener Stadt- u. Landesbibliothek. Wien 1976.
+Schieth, Lydia (Hg.): Fürs schöne Geschlecht. Frauenalmanache zwischen 1800 und 1850. Ausstellung der Universität Bamberg in Zusammenarbeit mit der Staatsbibliothek Bamberg 12. November 1992 – 27. Februar 1993. Bamberg o. J.
++
Ananieva, Anna; Böck, Dorothea; Pompe, Hedwig (Hgg.): Geselliges Vergnügen. Kulturelle Praktiken von Unterhaltung im langen 19. Jahrhundert. Bielefeld 2011.
+Anderle, Martin: Wiener Lyrik im 18. Jahrhundert. Die Gedichte des »Wiener Musenalmanachs 1777-1796«. Stuttgart 1996.
+Benjamin, Walter: Was die Deutschen lasen, während ihre Klassiker schrieben [Hörstück]. Ges. Werke hrsg. von Rolf Tiedeman u. Hermann Schweppenhäuser. Bd IV/1; Frankfurt/Main 1972, S. 641.
+Boehn, Max von: ‚Der Almanach‘. in: Das Antiquariat 7 (1951), S. 3.
+Bunzel, Wolfgang: ‚Almanache und Taschenbücher‘. in: FISCHER, Ernst; HAEFS, Wilhelm; MIX, York-Gothart (Hgg.): Von Almanach bis Zeitung. Ein Handbuch der Medien in Deutschland 1700-1800. München 1999, S. 24-35.
+Bunzel, Wolfgang: Poetik und Publikation. Goethes Veröffentlichungen in Musenalmanachen und literarischen Taschenbüchern. Mit einer Bibliographie der Erst- und autorisierten Folgedrucke literarischer Texte Goethes im Almanach (1773-1832). Weimar 1997.
+Casser, Paul: Die westfälischen Musenalmanache und poetischen Taschenbücher: ein Beitrag zur Geschichte Westfalens in der ersten Hälfte des 19. Jahrhunderts. Diss., Münster 1928. Mikrofiche-Ausg.: Egelsbach 1992.
+Dickenberger, Udo (Hg.): Der Tod und die Dichter. Scherzgedichte in den Musenalmanachen um 1800. Eine Sammlung von 220 Spottgrabinschriften Hildesheim 1991.
+Engelsing, Rolf: ‚Die Perioden der Lesergeschichte in der Neuzeit. Das statistische Ausmaß und die soziokulturelle Bedeutung der Lektüre‘. in: AGB 10 (1970), S. 946-1002.
+Fischer, Bernhard: Der Verleger Johann Friedrich Cotta. Chronologische Verlagsbibliographie 1787-1814. Aus den Quellen bearbeitet. 3 Bde., München 2003.
+Fischer, Bernhard: ‚Cottas »Morgenblatt für gebildete Stände« in der Zeit von 1807 bis 1823 und die Mitarbeit Therese Hubers‘. in: AGB 43 (1995), S. 203-239.
+Fischer, Ernst; Haefs, Wilhelm; Mix, York-Gothart: ‚Einleitung: Aufklärung, Öffentlichkeit und Medienkultur in Deutschland im 18. Jahrhundert‘ in: Fischer, Ernst; Haefs, Wilhelm; Mix, York-Gothart (Hgg.): Von Almanach bis Zeitung. Ein Handbuch der Medien in Deutschland 1700-1800. München 1999, S. 9-23.
+Friedländer, Max: Gedichte von Goethe in Compositionen seiner Zeitgenossen. Weimar 1896. Reprint Hildesheim 1975.
+Fritsch, Thomas Freiherr von: Die Gothaischen Taschenbücher, Hofkalender und Almanach. Limburg an der Lahn 1968.
+Fürst, Rainer: »Für edle Weiber und Mädchen.« Wilhelmine Müller geb. Maisch, Verfasserin und Förderin der Almanachliteratur um 1800. Ein Beitrag zur Verlagsgeschichte. Heidelberg 1995.
+Gladt, Karl: Almanache und Taschenbücher aus Wien. Wien 1971
+Gleissner, Stephanie; Husic, Mirela; Kaminski, Nicola; Mergenthaler, Volker: Optische Auftritte. Marktszenen in der medialen Konkurrenz von Journal-, Almanachs- und Bücherliteratur. Hannover 2019 [= Journalliteratur, 2].
+Goldschmidt, Arthur: Goethe im Almanach. Leipzig 1932.
+Grantzow, Hans: Geschichte des Göttinger und des Vossischen Musenalmanachs [Kap. 1-4]. Diss., Berlin 1909.
+Haefs, Wilhelm: ‚Ein Kalender für die »mitleidigen Schwestern der Venus«? Die Literarisierung der Prostitution im Wiener »Taschenbuch für Grabennymphen auf das Jahr 1787«‘. in: Jahrbuch der Rückert- Gesellschaft e. V. 15 (2003), S. 101-110.
+Haefs, Wilhelm; Mix, York-Gothart: ‚Der Musenhort in der Provinz. Literarische Almanache in den Kronländern der österreichischen Monarchie im ausgehenden 18. und beginnenden 19. Jahrhundert‘. in: AGB 27 (1986), S. 171-194.
+Haferkorn, Hans Jürgen: ‚Der freie Schriftsteller. Eine literatur-soziologische Studie über seine Entstehung und Lage in Deutschland zwischen 1750 und 1800‘. in: AGB 5 (1964), S. 523-713.
+Hay, Gerhard: Die Beiträger des Voss'schen Musenalmanaches. Ein Verzeichnis. Hildesheim 1975.
+Herzog, Rudolph: Die schlesischen Musenalmanache von 1773-1823. Breslau 1912.
+Klussmann, Paul Gerhard; Mix, York-Gothart (Hgg.): Literarische Leitmedien. Almanach und Taschenbuch im kulturwissenschaftlichen Kontext. Wiesbaden 1998
+Kossmann, E. F.: Der deutsche Musenalmanach 1833-1839. Haag 1909.
+Lanckaronska, Maria; Rümann, Arthur: Geschichte der deutschen Taschenbücher und Almanache aus der klassisch-romantischen Zeit. München 1957. Neudruck Osnabrück 1985.
+Lieres, Vita von: ‚Kalender und Almanache‘. in: Zeitschrift für Bücherfreunde 18 (1926), S. 101-114.
+Ludin, Alfred: Der schweizerische Musenalmanach »Alpenrosen« und seine Vorgänger (1780-1830). Diss. Zürich 1902.
+Lüsebrink, Hans-Jürgen; Mix, York-Gothart u. a. (Hg.): Französische Almanachkultur im deutschen Sprachraum (1700-1815). Gattungsstrukturen, komparatistische Aspekte, Diskursformen. Göttingen 2013 [= Deutschland und Frankreich im wissenschaftlichen Dialog, 3].
+Mix, York-Gothart: Alamanach- und Taschenbuchkultur des 18. und 19. Jahrhunderts. Wiesbaden 1996. [= Wolfenbütteler Forschungen, Bd. 69]
+Mix, York-Gothart: Die deutschen Musenalmanache des 18. Jahrhunderts. München 1987.
+Mix, York-Gothart: ‚Geselligkeitskultur, Gattungskonvention und Publikumsinteresse. Zur Intention und Funktion von C. M. Wielands und J. W. v. Goethes »Taschenbuch auf das Jahr 1804« und O. J. Bierbaums »Modernem Musen-Almanach«‘. in: Jahrbuch des Wiener Goethe-Vereins 97/98 (1993), S. 35-45.
+Obenaus, Sibylle: ‚Die deutschen allgemeinen kritischen Zeitschriften in der ersten Hälfte des 19. Jahrhunderts‘. in: AGB 14 (1974), S. 2-122.
+Peperkorn, Günter: Dieses ephemerische Werckchen: Georg Christoph Lichtenberg und der Göttinger Taschen Calender. Göttingen [Städt. Museum] 1992.
+Pissin, Raimund: Almanache der Romantik. Berlin-Zehlendorf 1910.
+Pfeiffer, Emil: ‚Bibliographie der Schillerschen Musenalmanache 1796-1800‘. in: Jahresbericht des Schwäbischer Schillerverein. Marbach 1916, S. 35-48
+Pfister, Karl: Das Prinzip der Gedichtanordnung in Schillers Musenalmanachen 1796/1800. Diss., Bern 1937.
+Prüsener, Marlies: ‚Lesegesellschaften im 18. Jahrhundert‘. in: AGB 13 (1973), S. 371-594.
+Prutz, Robert: Der Göttinger Dichterbund. Zur Geschichte der deutschen Literatur. Leipzig 1841.
+Prutz, Robert: Neue Schriften. Zur deutschen Literatur- und Kulturgeschichte. 2 Bde.; Halle 1847. bes.: Bd. I. S. 105-165: ‚Die Musenalmanache und Taschenbücher in Deutschland‘.
+Raabe, Paul: ‚Zeitschriften und Almanache‘. in: Hauswedel, Ernst und Vogt, Christian (Hgg.): Buchkunst und Literatur in Deutschland 1750 bis 1850. Hamburg 1977, Bd. 1. S. 145-195 [mit ausführlichem Abbildungsteil in Bd. 2. S. 108-140].
+Redlich, Carl Christian: Versuch eines Chiffernlexikons zu den Göttinger, Voßischen, Schillerschen und Schlegel-Tieckschen Musenalmanachen. Hamburg 1875.
+Rommel, Otto: ‚Der Wiener Musenalmanach‘. in: Euphorion 6. Ergänzungsheft,1906.
+Schröder, Rolf: ‚Zur Struktur des »Taschenbuchs« im Biedermeier‘. in: Germanisch-Romanische Monatsschrift 41 (1960), S. 442-448.
+Schwerdtfeger, Walter: Die litteraturhistorische Bedeutung der Schillerschen Musenalmanache 1796-1800. Leipzig 1899.
+Seyffert, Wolfgang: Schillers Musenalmanache. Berlin 1913.
+Skreb, Zdenko: Das Epigramm in deutschen Musenalmanachen und Taschenbüchern um 1800. Wien, 1977 [= Österreichische Akademie der Wissenschaften, Philosophisch-historische Klasse, Sitzungsberichte, 331].
+Skreb, Zdenko: Gattungsdominanz im deutschsprachigen literarischen Taschenbuch oder vom Sieg der Erzählprosa, Wien 1986 [= Österreichische Akademie der Wissenschaften, Philosophisch-historische Klasse, Sitzungsberichte, 471].
+Steig, Reinhold: ‚Ueber den Göttingischen Musen-Almanach für das Jahr 1803‘. in: Euphorion 2 (1895), S. 312-323
+Stolpe, Heinz: Zeitschriften und Almanache der deutschen Klassik. Weimar 1959.
+Willnat, Elisabeth: ‚Johann Christian Dieterich. Ein Verlagsbuchhändler und Drucker in der Zeit der Aufklärung‘. in: AGB 39 (1993), S. 1-254.
+Wittmann, Reinhard: ‚Der Verleger Johann Friedrich Weygand in Briefen des Göttinger Hains‘. in: AGB 10 (1970), S. 319-343.
+Zuber, Margarete: ‚Die deutschen Musenalmanache und schöngeistigen Taschenbücher des Biedermeier 1815- 1848‘. in: AGB 1 (1958), S. 398-489.
++
Barge, Hermann: Geschichte der Buchdruckerkunst. Leipzig 1940.
+Bauer, Jens-Heiner: Daniel Nikolaus Chodowiecki. Das druckgraphische Werk. Die Sammlung Wilhelm Burggraf zu Dohna-Schlobitten. Ein Bildband mit 2340 Abbildungen in Ergänzung zum Werkverzeichnis von Wilhelm Engelmann. Hannover 1982.
+Dorn, Wilhelm: Meil-Bibliographie. Verzeichnis der von dem Radierer Johann Wilhelm Meil illustrierten Bücher und Almanache. Berlin 1928.
+Focke, Rudolf [Hg.]: Chodowiecki und Lichtenberg. Daniel Chodowiecki’s Monatskupfer zum »Göttinger Taschen Calender« nach Georg Christoph Lichtenberg's Erklärungen (1778-1783), mit einer kunst- und litterargeschichtlichen Einleitung. Leipzig 1901.
+Forster-Hahn, Franziska: Johann Heinrich Ramberg als Karikaturist und Satiriker. Diss. Univ. Bonn 1963. [o. O.] [o. J.] [= Sonderdruck aus Hann. Geschichtsblättern, NF 17 (1963)].
+Haldenwang, Hasso von: Christian Haldenwang, Kupferstecher (1770-1831). Diss. Johann-Wolfgang-Goethe-Univ. Frankfurt am Main 1995, Frankfurt am Main 1997 [= Frankfurter Fundamente der Kunstgeschichte, 14].
+Hauswedell, Ernst L.; VOIGT, Christian (Hgg.): Buchkunst und Literatur in Deutschland 1750 bis 1850. 2 Bde., Hamburg 1977.
+Hogarth, William; Lichtenberg, Georg Christoph: Sammlung Hogarthscher Kupfer-Stiche. Neue wohlfeile Ausg., Göttingen [o. J.].
+Košenina, Alexander (Hg.): Literatur — Bilder. Johann Heinrich Ramberg als Buchillustrator der Goethezeit. Hannover 2013.
+Lanckaronska, Maria; Oehler, Richard: Die Buchillustration dex XVIII. Jahrhunderts in Deutschland, Österreich und der Schweiz. 3 Bde., Leipzig 1932-1934.
+Rodenberg, J.: ‚Geschichte der Illustration von 1800 bis heute‘. in: Leih, G. (Hg.): Handbuch der Bibliothekswissenschaft. 2. Aufl. Stuttgart 1950, Bd. 1.
+Rhein, Adolf: ‚Die frühen Verlagseinbände. Eine technische Entwicklung 1735-1850‘. in: Gutenberg-Jahrbuch, Mainz 1962, S. 519-532.
+Rümann, Arthur: Das illustrierte Buch des XIX. Jahrhunderts in England, Frankreich und Deutschland 1790-1860. Nachdruck der Ausgabe des Insel Verlages 1930, Osnabrück 1975.
+Rümann, Arthur: Die illustrierten deutschen Bücher des 18. Jahrhunderts. Stuttgart 1927.
+Rümann, Arthur: Die illustrierten deutschen Bücher des 19. Jahrhunderts. Stuttgart 1926.
+Rümann, Arthur: Das deutsche illustrierte Buch des XVIII. Jahrhunderts. Straßburg 1931 [= Studien zur deutschen Kunstgeschichte, Heft 282].
+Schumacher, Doris: Kupfer und Poesie. Die Illustrationskunst um 1800 im Spiegel der zeitgenössischen deutschen Kritik. Köln 2000 [= Pictura et Poesis, 13].
+Shesgrenn, Sean (Hg.): Engravings by Hogarth. 101 Prints. New York 1973.
+Stubbe, Wolf: ‚Illustrationen und Illustratoren‘. in: Hauswedell, Ernst; Voigt, Christian (Hgg.): Buchkunst und Literatur in Deutschland 1750 bis 1850. Bd. 1., Hamburg 1977, S. 58-144 [mit ausführlichem Abbildungsteil Bd. 2. S. 49-106]
+Stuttmann, Ferdinand: Johann Heinrich Ramberg. München 1929.
++
Allgemeine Deutsche Biographie. Hg. v. der Historischen Commission bei der Königlichen Akademie der Wissenschaften. 55 Bde., Leipzig 1875-1910. Sigle: ADB.
+Brockhaus’ Conversations-Lexikon. Allgemeine deutsche Real-Encyklopädie. 13. vollst. umgearb. Aufl., Leipzig 1883-1888. Sigle: Brockh 13.
+Gorzny, Willy: Deutscher Biographischer Index. Bearb. v. Hans-Albrecht Koch, Uta Koch und Angelika Koller, 4 Bde., München 1986 [Register zu: GORZNY, Willy (Hg.) Deutsches Biographisches Archiv. München 1985]. Sigle: DBI.
+Eymer, Wilfried: Eymers Pseudonymen Lexikon. Realnamen und Pseudonyme in der deutschen Literatur. Bonn 1997. Sigle: E.
+Goldschmidt, Arthur: Goethe im Almanach. Leipzig 1932. Sigle: G.
+Grand-Carteret, John: Les Almanachs Français. Bibliographie – Iconographie 1600-1895. Paris 1896. Sigle: G-C.
+Goedeke, Karl et al.: Grundriß zur Geschichte der deutschen Dichtung. 13 Bde., 2. Aufl, Dresden 1884 ff.; (Bd. IV/1-4 in der dritten neubearbeiteten Aufl., Dresden 1896-1913. Neudruck Berlin 1955; Bd. IV/5 in der ersten Aufl. Düsseldorf 1957-1960; außerdem die „Neue Folge“, N. F. Bd. I, Berlin 1955ff.). Sigle: Goed
+Hayn Hugo;Gotendorf, Alfred N. (Hgg.): Bibliotheca Germanorum Erotica & Curiosa. Verzeichnis der gesamten deutschen erotischen Literatur mit Einschluß der Übersetzungen, nebst Beifügung der Originale. 9 Bde., Unveränd. Nachdr. d. 3. ungemein verm. Aufl. Hanau [o. J.], Hanau 1968. Sigle: H.-G.
+Hirschberg, Leopold: Der Taschengoedeke. Bibliographie deutscher Erstausgaben. München 1970. Sigle: Goed (H).
+Holzmann, Michael; BOHATTA, Hanns: Deutsches Pseudonymen-Lexikon. Aus den Quellen bearbeitet von Michael Holzmann und Hanns Bohatta. Hildesheim 1970. Sigle: H/B.
+Köhring, Hans (Hg.): Bibliographie der Almanache, Kalender und Taschenbücher für die Zeit von ca. 1750-1860. Hamburg 1929. Neudruck Bad Karlshafen 1987. Sigle: K.
+Lanckaronska, Maria; Rümann, Arthur: Geschichte der deutschen Taschenbücher und Almanache aus der klassisch-romantischen Zeit. München 1957. Neudruck Osnabrück 1985. Sigle: L/R.
+Redlich, Carl Christian: Versuch eines Chiffernlexikons zu den Göttinger, Voßischen, Schillerschen und Schlegel-Tieckschen Musenalmanachen. Hamburg 1875. Sigle: Re.
+Rümann, Arthur: Die illustrierten deutschen Bücher des 18. Jahrhunderts. Stuttgart 1927. Sigle: Rü.
+Thieme, Ulrich; Becker, Felix [Hg.]: Allgemeines Lexikon der bildenden Künstler von der Antike bis zur Gegenwart. 37 Bde., Leipzig 1907-1950. Neudruck Leipzig 1999. Sigle: T/B.
+Ziegler, Konrad; Sontheimer, Walther (Hgg.): Der kleine Pauly. Lexikon der Antike. 5 Bde., München 1979. Sigle: P.
` + +func init() { + m.Register(func(app core.App) error { + collection, err := app.FindCollectionByNameOrId( + pagemodels.GeneratePageTableName(pagemodels.P_LIT_NAME)) + if err != nil { + app.Logger().Error("Could not find Table Literatur! You need to execute table migrations first!") + return err + } + + record := pagemodels.NewDefaultPage(core.NewRecord(collection)) + record.SetTitle("Literatur") + record.SetText(START) + + return app.Save(record) + }, func(app core.App) error { + coll, err := app.FindCollectionByNameOrId( + pagemodels.GeneratePageTableName(pagemodels.P_LIT_NAME)) + + if err == nil && coll != nil { + app.DB().NewQuery("DELETE FROM " + coll.TableName()).Execute() + } + return nil + }) +} diff --git a/pages/migrations_reihen/1739446527_reihen.go b/pages/migrations_reihen/1739446527_reihen.go index ae8e40b..eb4fba9 100644 --- a/pages/migrations_reihen/1739446527_reihen.go +++ b/pages/migrations_reihen/1739446527_reihen.go @@ -1,6 +1,7 @@ package migrations_reihen import ( + "github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels" "github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels" "github.com/pocketbase/pocketbase/core" m "github.com/pocketbase/pocketbase/migrations" @@ -35,5 +36,6 @@ func init() { func pageCollection() *core.Collection { c := pagemodels.BasePageCollection(pagemodels.P_REIHEN_NAME) c.Fields = append(c.Fields, reihen_fields...) + dbmodels.SetBasicPublicRules(c) return c } diff --git a/pages/static.go b/pages/static.go index 86585b0..b6f39fb 100644 --- a/pages/static.go +++ b/pages/static.go @@ -8,6 +8,10 @@ import ( func init() { RegisterStaticPage("/datenschutz/") + RegisterDefaultPage("/edition/kontakt/", pagemodels.P_KONTAKT_NAME) + RegisterDefaultPage("/edition/danksagungen/", pagemodels.P_DANK_NAME) + RegisterDefaultPage("/edition/literatur/", pagemodels.P_LIT_NAME) + RegisterDefaultPage("/edition/einfuehrung/", pagemodels.P_EINFUEHRUNG_NAME) } func RegisterStaticPage(url string) { @@ -17,3 +21,14 @@ func RegisterStaticPage(url string) { Template: url, }) } + +func RegisterDefaultPage(url string, name string) { + app.Register(&pagemodels.DefaultPage{ + Page: pagemodels.Page{ + Name: name, + Layout: templating.DEFAULT_LAYOUT_NAME, + Template: url, + }, + URL: url, + }) +} diff --git a/views/routes/edition/danksagungen/body.gohtml b/views/routes/edition/danksagungen/body.gohtml new file mode 100644 index 0000000..e69de29 diff --git a/views/routes/edition/danksagungen/head.gohtml b/views/routes/edition/danksagungen/head.gohtml new file mode 100644 index 0000000..e69de29 diff --git a/views/routes/edition/dokumentation/body.gohtml b/views/routes/edition/dokumentation/body.gohtml new file mode 100644 index 0000000..e69de29 diff --git a/views/routes/edition/dokumentation/head.gohtml b/views/routes/edition/dokumentation/head.gohtml new file mode 100644 index 0000000..e69de29 diff --git a/views/routes/edition/einfuehrung/body.gohtml b/views/routes/edition/einfuehrung/body.gohtml new file mode 100644 index 0000000..e69de29 diff --git a/views/routes/edition/einfuehrung/head.gohtml b/views/routes/edition/einfuehrung/head.gohtml new file mode 100644 index 0000000..e69de29 diff --git a/views/routes/edition/kontakt/body.gohtml b/views/routes/edition/kontakt/body.gohtml new file mode 100644 index 0000000..4be30ec --- /dev/null +++ b/views/routes/edition/kontakt/body.gohtml @@ -0,0 +1 @@ +Hello from Kontakt! diff --git a/views/routes/edition/kontakt/head.gohtml b/views/routes/edition/kontakt/head.gohtml new file mode 100644 index 0000000..e69de29 diff --git a/views/routes/edition/literatur/body.gohtml b/views/routes/edition/literatur/body.gohtml new file mode 100644 index 0000000..e69de29 diff --git a/views/routes/edition/literatur/head.gohtml b/views/routes/edition/literatur/head.gohtml new file mode 100644 index 0000000..e69de29