mirror of
https://github.com/Theodor-Springmann-Stiftung/musenalm.git
synced 2025-10-29 09:15:33 +00:00
Pages now work
Default Pages Created & Updated Fields for every collection
This commit is contained in:
19
app/pb.go
19
app/pb.go
@@ -134,23 +134,26 @@ func (app *App) Serve() error {
|
|||||||
return err
|
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
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
app.PB.OnServe().BindFunc(func(e *core.ServeEvent) error {
|
app.PB.OnServe().BindFunc(func(e *core.ServeEvent) error {
|
||||||
e.Router.GET("/assets/{path...}", apis.Static(views.StaticFS, true))
|
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 {
|
for _, page := range app.Pages {
|
||||||
page.Setup(e.Router, e.App, engine)
|
page.Setup(e.Router, e.App, engine)
|
||||||
}
|
}
|
||||||
|
|
||||||
return e.Next()
|
return e.Next()
|
||||||
})
|
})
|
||||||
return app.PB.Start()
|
return app.PB.Start()
|
||||||
|
|||||||
@@ -424,6 +424,8 @@ const (
|
|||||||
ITEMS_TABLE = "items"
|
ITEMS_TABLE = "items"
|
||||||
|
|
||||||
ID_FIELD = "id"
|
ID_FIELD = "id"
|
||||||
|
CREATED_FIELD = "created"
|
||||||
|
UPDATED_FIELD = "updated"
|
||||||
ANNOTATION_FIELD = "annotation"
|
ANNOTATION_FIELD = "annotation"
|
||||||
|
|
||||||
MUSENALMID_FIELD = "musenalm_id"
|
MUSENALMID_FIELD = "musenalm_id"
|
||||||
|
|||||||
@@ -7,6 +7,11 @@ func SetBasicPublicRules(collection *core.Collection) {
|
|||||||
collection.ListRule = PUBLIC_LIST_RULE
|
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) {
|
func SetMusenalmIDField(fieldlist *core.FieldsList) {
|
||||||
fieldlist.Add(&core.TextField{Name: MUSENALMID_FIELD, Max: 64, Required: false})
|
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.SelectField{Name: RELATION_TYPE_FIELD, Required: true, Values: relations, MaxSelect: 1},
|
||||||
&core.BoolField{Name: RELATION_CONJECTURE_FIELD, Required: false},
|
&core.BoolField{Name: RELATION_CONJECTURE_FIELD, Required: false},
|
||||||
&core.BoolField{Name: RELATION_UNCERTAIN_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)
|
SetNotesAndAnnotationsField(&fields)
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ func placesFields() core.FieldsList {
|
|||||||
&core.URLField{Name: dbmodels.URI_FIELD, Required: false, OnlyDomains: []string{"geonames.org"}},
|
&core.URLField{Name: dbmodels.URI_FIELD, Required: false, OnlyDomains: []string{"geonames.org"}},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dbmodels.SetCreatedUpdatedFields(&fields)
|
||||||
dbmodels.SetMusenalmIDField(&fields)
|
dbmodels.SetMusenalmIDField(&fields)
|
||||||
dbmodels.SetEditorStateField(&fields)
|
dbmodels.SetEditorStateField(&fields)
|
||||||
dbmodels.SetNotesAndAnnotationsField(&fields)
|
dbmodels.SetNotesAndAnnotationsField(&fields)
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ func agentsFields() core.FieldsList {
|
|||||||
&core.TextField{Name: dbmodels.REFERENCES_FIELD, Required: false},
|
&core.TextField{Name: dbmodels.REFERENCES_FIELD, Required: false},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dbmodels.SetCreatedUpdatedFields(&fields)
|
||||||
dbmodels.SetMusenalmIDField(&fields)
|
dbmodels.SetMusenalmIDField(&fields)
|
||||||
dbmodels.SetEditorStateField(&fields)
|
dbmodels.SetEditorStateField(&fields)
|
||||||
dbmodels.SetNotesAndAnnotationsField(&fields)
|
dbmodels.SetNotesAndAnnotationsField(&fields)
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ func seriesFields() core.FieldsList {
|
|||||||
&core.TextField{Name: dbmodels.SERIES_FREQUENCY_FIELD, Required: false},
|
&core.TextField{Name: dbmodels.SERIES_FREQUENCY_FIELD, Required: false},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dbmodels.SetCreatedUpdatedFields(&fields)
|
||||||
dbmodels.SetMusenalmIDField(&fields)
|
dbmodels.SetMusenalmIDField(&fields)
|
||||||
dbmodels.SetEditorStateField(&fields)
|
dbmodels.SetEditorStateField(&fields)
|
||||||
dbmodels.SetNotesAndAnnotationsField(&fields)
|
dbmodels.SetNotesAndAnnotationsField(&fields)
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ func entriesFields(app core.App) *core.FieldsList {
|
|||||||
&core.JSONField{Name: dbmodels.MUSENALM_DEPRECATED_FIELD, Required: false},
|
&core.JSONField{Name: dbmodels.MUSENALM_DEPRECATED_FIELD, Required: false},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dbmodels.SetCreatedUpdatedFields(&fields)
|
||||||
dbmodels.SetMusenalmIDField(&fields)
|
dbmodels.SetMusenalmIDField(&fields)
|
||||||
dbmodels.SetEditorStateField(&fields)
|
dbmodels.SetEditorStateField(&fields)
|
||||||
dbmodels.SetNotesAndAnnotationsField(&fields)
|
dbmodels.SetNotesAndAnnotationsField(&fields)
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ func itemsFields(app core.App) core.FieldsList {
|
|||||||
&core.URLField{Name: dbmodels.URI_FIELD, Required: false, Presentable: false},
|
&core.URLField{Name: dbmodels.URI_FIELD, Required: false, Presentable: false},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dbmodels.SetCreatedUpdatedFields(&fields)
|
||||||
dbmodels.SetNotesAndAnnotationsField(&fields)
|
dbmodels.SetNotesAndAnnotationsField(&fields)
|
||||||
dbmodels.SetEditorStateField(&fields)
|
dbmodels.SetEditorStateField(&fields)
|
||||||
|
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ func partialsFields(app core.App) *core.FieldsList {
|
|||||||
)
|
)
|
||||||
|
|
||||||
dbmodels.SetMusenalmIDField(&fields)
|
dbmodels.SetMusenalmIDField(&fields)
|
||||||
|
dbmodels.SetCreatedUpdatedFields(&fields)
|
||||||
dbmodels.SetEditorStateField(&fields)
|
dbmodels.SetEditorStateField(&fields)
|
||||||
dbmodels.SetNotesAndAnnotationsField(&fields)
|
dbmodels.SetNotesAndAnnotationsField(&fields)
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,12 @@ import (
|
|||||||
"github.com/Theodor-Springmann-Stiftung/musenalm/helpers"
|
"github.com/Theodor-Springmann-Stiftung/musenalm/helpers"
|
||||||
_ "github.com/Theodor-Springmann-Stiftung/musenalm/migrations"
|
_ "github.com/Theodor-Springmann-Stiftung/musenalm/migrations"
|
||||||
_ "github.com/Theodor-Springmann-Stiftung/musenalm/pages"
|
_ "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_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/Theodor-Springmann-Stiftung/musenalm/pages/migrations_reihen"
|
||||||
"github.com/pocketbase/pocketbase/plugins/migratecmd"
|
"github.com/pocketbase/pocketbase/plugins/migratecmd"
|
||||||
)
|
)
|
||||||
|
|||||||
33
pagemodels/abk.go
Normal file
33
pagemodels/abk.go
Normal file
@@ -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)
|
||||||
|
}
|
||||||
85
pagemodels/default.go
Normal file
85
pagemodels/default.go
Normal file
@@ -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
|
||||||
|
}
|
||||||
@@ -9,7 +9,7 @@ func BasePageCollection(pagename string) *core.Collection {
|
|||||||
c := core.NewBaseCollection(GeneratePageTableName(pagename))
|
c := core.NewBaseCollection(GeneratePageTableName(pagename))
|
||||||
c.ListRule = dbmodels.PUBLIC_LIST_RULE
|
c.ListRule = dbmodels.PUBLIC_LIST_RULE
|
||||||
c.ViewRule = dbmodels.PUBLIC_VIEW_RULE
|
c.ViewRule = dbmodels.PUBLIC_VIEW_RULE
|
||||||
c.Fields = StandardPageFields()
|
c.Fields = append(c.Fields, StandardPageFields()...)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,6 +19,8 @@ func StandardPageFields() core.FieldsList {
|
|||||||
EditorField(F_DESCRIPTION),
|
EditorField(F_DESCRIPTION),
|
||||||
TextField(F_TAGS),
|
TextField(F_TAGS),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ret = append(ret, CreatedUpdatedFields()...)
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,3 +65,10 @@ func RequiredImageField(name string, multiselect bool) *core.FileField {
|
|||||||
Thumbs: []string{"0x300", "0x500", "0x1000", "300x0", "500x0", "1000x0"},
|
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},
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,7 +5,17 @@ const (
|
|||||||
T_INDEX_BILDER = "bilder"
|
T_INDEX_BILDER = "bilder"
|
||||||
T_INDEX_TEXTE = "texte"
|
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_TITLE = "Titel"
|
||||||
F_DESCRIPTION = "Beschreibung"
|
F_DESCRIPTION = "Beschreibung"
|
||||||
|
|||||||
40
pages/migrations_danksagungen/1739446527_danksagungen.go
Normal file
40
pages/migrations_danksagungen/1739446527_danksagungen.go
Normal file
@@ -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
|
||||||
|
}
|
||||||
@@ -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 = `<div>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>Für viele geleistete Hilfen danken wir:</p>
|
||||||
|
<p>Frau <strong>Susanne Koppel</strong><br>Antiquariat Susanne Koppel<br>Parkallee 4<br>20144 Hamburg<br><a href="http://www.antiquariat-koppel.de" target="_blank" rel="noreferrer noopener">www.antiquariat-koppel.de</a><br><a href="mailto:info@antiquariat-koppel.de">info@antiquariat-koppel.de</a></p>
|
||||||
|
<p>Herrn <strong>Thomas Rezek</strong><br>Antiquariat Thomas Rezek<br>Amalienstraße 63<br>80799 München<br><a href="http://www.a-rezek.de" target="_blank" rel="noreferrer noopener">www.a-rezek.de</a><br><a href="mailto:arezek@web.de">arezek@web.de</a></p>
|
||||||
|
<p>Herrn <strong>Günther Trauzettel-Loibl</strong><br>Antiquariat Trauzettel<br>Haumühle 8<br>52223 Stolberg<br><a href="http://www.antiquariat-trauzettel.de" target="_blank" rel="noreferrer noopener">www.antiquariat-trauzettel.de</a><br><a href="mailto:antiquariat.trauzettel@t-online.de">antiquariat.trauzettel@t-online.de</a></p>
|
||||||
|
<p>Herrn <strong>Uwe Turszynski</strong><br>Antiquariat Turszynski<br>Herzogstraße 66<br>80803 München<br><a href="http://www.turszynski.de" target="_blank" rel="noreferrer noopener">www.turszynski.de</a><br><a href="mailto:antiquariat@turszynski.de">antiquariat@turszynski.de</a></p>
|
||||||
|
<p>Herrn <strong>Dieter Zipprich</strong><br>Antiquariat Zipprich<br>Karolinenstraße 18<br>96049 Bamberg<br><a href="mailto:antiquariat.zipprich@freenet.de">antiquariat.zipprich@freenet.de</a></p>
|
||||||
|
<p>Frau Mag. <strong>Rita Robosch</strong><br>Matthaeus Truppe Buchhandlung & Antiquariat<br>Stubenberggasse 7<br>A-8010 Graz<br>Austria<br><a href="mailto:truppe@aon.at">truppe@aon.at</a></p>
|
||||||
|
</div>`
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
m.Register(func(app core.App) error {
|
||||||
|
collection, err := app.FindCollectionByNameOrId(
|
||||||
|
pagemodels.GeneratePageTableName(pagemodels.P_DANK_NAME))
|
||||||
|
if err != nil {
|
||||||
|
app.Logger().Error("Could not find Table Danksagungen! You need to execute table migrations first!")
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
record := pagemodels.NewDefaultPage(core.NewRecord(collection))
|
||||||
|
record.SetTitle("Danksagungen")
|
||||||
|
record.SetText(TEXT)
|
||||||
|
|
||||||
|
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_DANK_NAME))
|
||||||
|
|
||||||
|
if err == nil && coll != nil {
|
||||||
|
app.DB().NewQuery("DELETE FROM " + coll.TableName()).Execute()
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
65
pages/migrations_dokumentation/1739446527_dokumentation.go
Normal file
65
pages/migrations_dokumentation/1739446527_dokumentation.go
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
package migrations_dokumentation
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
|
||||||
|
abk := abkCollection()
|
||||||
|
if err := app.Save(abk); err != nil {
|
||||||
|
app.Logger().Error("Failed to save collection:", "error", err, "collection", abk)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}, func(app core.App) error {
|
||||||
|
collection, err := app.FindCollectionByNameOrId(
|
||||||
|
pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME))
|
||||||
|
if err == nil && collection != nil {
|
||||||
|
if err := app.Delete(collection); err != nil {
|
||||||
|
app.Logger().Error("Failed to delete collection:", "error", err, "collection", collection)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
collection_abk, err2 := app.FindCollectionByNameOrId(
|
||||||
|
pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME, pagemodels.T_ABK_NAME))
|
||||||
|
if err == nil && collection_abk != nil {
|
||||||
|
if err := app.Delete(collection_abk); err != nil {
|
||||||
|
app.Logger().Error("Failed to delete collection:", "error", err, "collection", collection_abk)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return errors.Join(err, err2)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func pageCollection() *core.Collection {
|
||||||
|
c := pagemodels.BasePageCollection(pagemodels.P_DOK_NAME)
|
||||||
|
c.Fields = append(c.Fields, reihen_fields...)
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
|
||||||
|
func abkCollection() *core.Collection {
|
||||||
|
c := core.NewBaseCollection(pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME, pagemodels.T_ABK_NAME))
|
||||||
|
c.Fields = core.NewFieldsList(
|
||||||
|
pagemodels.RequiredTextField(pagemodels.F_ABK),
|
||||||
|
pagemodels.RequiredTextField(pagemodels.F_BEDEUTUNG),
|
||||||
|
)
|
||||||
|
dbmodels.SetBasicPublicRules(c)
|
||||||
|
return c
|
||||||
|
}
|
||||||
@@ -0,0 +1,575 @@
|
|||||||
|
package migrations_dokumentation
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
||||||
|
"github.com/pocketbase/pocketbase/core"
|
||||||
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
|
)
|
||||||
|
|
||||||
|
const START = `<h3>Sortierung der Reihentitel</h3>
|
||||||
|
<p>Wir sortieren die Reihentitel nach dem Kopf der Nominalphrase, den wir zu diesem Zweck ggf. an den Anfang stellen und mit Kommas abtrennen.</p>
|
||||||
|
<p>Somit wird:</p>
|
||||||
|
<p><em>Wiener Musenalmach</em></p>
|
||||||
|
<p>bei uns geführt unter:</p>
|
||||||
|
<p><em>Musenalmanach, Wiener</em>.</p>
|
||||||
|
<p>Ebenso findet sich:</p>
|
||||||
|
<p><em>Des Churbayerischen Hohen Ritterordens S. Georgii Wappenkalender </em></p>
|
||||||
|
<p>Unter ‚W‘ einsortiert als:</p>
|
||||||
|
<p><em>Wappenkalender, Des Churbayerischen Hohen Ritterordens S. Georgii </em></p>
|
||||||
|
<p>Aus diesem Grund empfehlen wir, nicht per ("…") nach genauen Zeichenketten zu suchen.</p>
|
||||||
|
<p>Bei manchen Almanachen geben wir zur leichteren Findbarkeit den autoptischen Titel und verweisen von dort auf den systematischen. Etwa:</p>
|
||||||
|
<p><em>Baltisches Album, s. u. Album, Baltisches</em></p>
|
||||||
|
<h3>Umschläge</h3>
|
||||||
|
<p>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.</p>
|
||||||
|
<p> </p>
|
||||||
|
<h3>Die Zeilen ‚Struktur‘ und ‚Nachweis‘</h3>
|
||||||
|
<p>Die Zeile ‚Struktur‘ am Einzelband dient dazu, den Aufbau und die Ausstattung eines Almanachs auf einen Blick zu erfassen.</p>
|
||||||
|
<p>Eine Erläuterung der in dieser Zeile verwendeten Abkürzungen findet sich unten.</p>
|
||||||
|
<p>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 <a href="/redaktion/literatur">Literaturverzeichnis</a>.</p>
|
||||||
|
<h3>Sammlungen</h3>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>So enthält bspw. das <em>Taschenbuch der Liebe und Freundschaft</em> gewidmet von 1805 neun unter der Überschrift <em>Gedichte</em> zusammengefasste Gedichte von Hölderlin. Der Jahrgang 1822 der <em>Minerva</em> enthält unter dem Titel <em>Gallerie zu Göthe’s Werken</em> eine Sammlung von sieben Gedichten und sieben Illustrationen.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<h3>s. a., s. u., Titelauflage</h3>
|
||||||
|
<p>‚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 <em>Almanach historique de la Revolution Françoise</em> auf die deutsche Übersetzung des Almanachs hingewiesen: „s. a. die übersetzte Ausgabe: <em>Taschenbuch der Franken, enthaltend die Geschichte der französischen Revolution, von Hrn. Rabaut de St. Etienne</em> […].“</p>
|
||||||
|
<p style="text-align: left;">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:</p>
|
||||||
|
<p style="text-align: center;">Blumenlese, Heßische Poetische<br>s. u. Musenalmanach, Hessischer</p>
|
||||||
|
<p>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 <em>Almanach für die Geschichte der Menschheit 1796</em>. Zu diesem Almanach ist vermerkt, dass unter dem Titel <em>Darstellung aus der Geschichte der Menschheit</em> eine „Titelauflage ohne Nachtitel, Vorwort und Kalendarium“ erschien.</p>
|
||||||
|
<p> </p>
|
||||||
|
<h3><strong>Abkürzungen</strong></h3>
|
||||||
|
<p> </p>
|
||||||
|
<table style="width: 96.2254%;" border="1" cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Titel</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Titel des Almanachs ohne Änderungen, Auslassungen oder Kürzungen. Schreibweise: wie im Almanach</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Reihentitel</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>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.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Herausgeber</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Name des Herausgebers, wie im Almanach zu finden</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Realname</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Der gedeutete Name in überlieferter Schreibweise</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Ort</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Verlagsort(e) wie im Almanach angegeben.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Jahr</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Jahr, auf das sich der Almanach im Titel bezieht.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>AlmanachNr</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Eindeutige Referenznummer des Almanachs</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Struktur</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Reihenfolge der tatsächlich in diesem Band vorliegenden Inhaltsobjekte, wobei diese nur nach ihrer Kategorie, nicht nach den Details, aufgelistet werden.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Norm</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Reihenfolge der tatsächlichen oder vermutlich beabsichtigten Inhaltsobjekte; Aufbau des Almanachs</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Anmerkungen</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Anmerkungen zum Band bzw. zum Beitrag</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Autor</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Der angezeigte Name des Autors (auch Pseudonyme und Kürzel oder »unbezeichnet«), wie im Almanach zu finden</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Realname</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Der gedeutete Name in überlieferter Schreibweise</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Titel</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Titel des Objekts</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Incipit</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Textanfang (ca zwei Zeilen)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Objekt</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Um was handelt es sich? Z. B. Gedicht, Text, Prosabeitrag. Vgl. dazu auch die Tabelle Objekte unten</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Abbildung</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Ja/Nein für Foto des Objekts vorhanden/nicht vorhanden.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Paginierung</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>römische/arabische Paginierung</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Seite</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Seitennummer nach arabischer oder römischer Paginierung</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Objektzähler</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Unabhängig von Art oder vorhandener Paginierung wird jedem Inhalt seine relative Position zugewiesen.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="width: 37.11%;" valign="top" width="170">
|
||||||
|
<p>Inhaltsnummer</p>
|
||||||
|
</td>
|
||||||
|
<td style="width: 62.8597%;" valign="top" width="434">
|
||||||
|
<p>Eindeutige Datensatznummer</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<p> </p>
|
||||||
|
<h3>Abkürzungen in der Zeile ‚Struktur‘</h3>
|
||||||
|
<p> </p>
|
||||||
|
<table border="1" cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Anm.</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Anmerkung</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>ar, ar1, ar2</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>arabische Paginierung (ggf mehrere)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>B; BB</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Blatt; Blätter</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>C</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Corrigenda</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Diagr</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Diagramm</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>G; GG</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Graphik; Graphiken</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>UG r, v</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Umschlaggraphik recto, verso</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>TG r, v</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Titelgraphik, Titelportrait etc</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>gA</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>graphische Anleitung</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>gTzA</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>graphische Tanzanleitung</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>G-Verz</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Verzeichnis der Kupfer u. ä.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Hrsg</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Herausgeber</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>I-Verz</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Inhaltsverzeichnis</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Kal</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Kalendarium</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Kr</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Karte</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>MusB; MusBB</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Musikbeigabe; Musikbeigaben</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>röm, röm1, röm2</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>römische Paginierung (ggf. mehrere)</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>S; SS</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Seite; Seiten</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Sp</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Spiegel</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>T</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Titel</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>gT</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>graphischer Titel</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>vT</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Vortitel</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>nT</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Nachtitel</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>zT</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Zwischentitel</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Tab</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Tabelle</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>VB</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Vorsatzblatt</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Vf</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Verfasser</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>VrlgM</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Verlagsmitteilung</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Vrwrt</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Vorwort</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>#</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Hinweis auf weitere Informationen in der Anmerkung.</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>§§</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Hinweis auf Mängel im Almanach (Beschädigungen, fehlende Graphiken od. Beiträge, unvollständige Sammlungen etc) in der Anmerkung</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>+++</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>Inhalte aus mehreren Almanachen interpoliert</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td valign="top">
|
||||||
|
<p>$</p>
|
||||||
|
</td>
|
||||||
|
<td valign="top">
|
||||||
|
<p>vermutlich</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>`
|
||||||
|
|
||||||
|
const ABK_PATH = "data/abkuerzungen.txt"
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
m.Register(func(app core.App) error {
|
||||||
|
collection, err := app.FindCollectionByNameOrId(
|
||||||
|
pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME))
|
||||||
|
if err != nil {
|
||||||
|
app.Logger().Error("Could not find Table Dokumentation! You need to execute table migrations first!")
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
record := pagemodels.NewDefaultPage(core.NewRecord(collection))
|
||||||
|
record.SetTitle("Dokumentation")
|
||||||
|
record.SetText(START)
|
||||||
|
|
||||||
|
if err := app.Save(record); err != nil {
|
||||||
|
app.Logger().Error("Failed to save record", "error", err, "record", record)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
abk, err := seed_abkuerzungen(app)
|
||||||
|
if err != nil {
|
||||||
|
app.Logger().Error("Failed to seed abkuerzungen", "error", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, a := range abk {
|
||||||
|
if err := app.Save(a); err != nil {
|
||||||
|
app.Logger().Error("Failed to save abk", "error", err, "abk", a)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}, func(app core.App) error {
|
||||||
|
coll, err := app.FindCollectionByNameOrId(
|
||||||
|
pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME))
|
||||||
|
|
||||||
|
if err == nil && coll != nil {
|
||||||
|
app.DB().NewQuery("DELETE FROM " + coll.TableName()).Execute()
|
||||||
|
}
|
||||||
|
|
||||||
|
coll_abk, err2 := app.FindCollectionByNameOrId(
|
||||||
|
pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME, pagemodels.T_ABK_NAME))
|
||||||
|
|
||||||
|
if err == nil && coll_abk != nil {
|
||||||
|
app.DB().NewQuery("DELETE FROM " + coll_abk.TableName()).Execute()
|
||||||
|
}
|
||||||
|
|
||||||
|
return errors.Join(err, err2)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func seed_abkuerzungen(app core.App) ([]*pagemodels.Abk, error) {
|
||||||
|
collection, err := app.FindCollectionByNameOrId(pagemodels.GeneratePageTableName(pagemodels.P_DOK_NAME, pagemodels.T_ABK_NAME))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := os.Stat(ABK_PATH); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
file, err := os.Open(ABK_PATH)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer file.Close()
|
||||||
|
|
||||||
|
scanner := bufio.NewScanner(file)
|
||||||
|
abk := make(map[string]string)
|
||||||
|
|
||||||
|
for scanner.Scan() {
|
||||||
|
line := scanner.Text()
|
||||||
|
split := strings.Split(line, ":")
|
||||||
|
if len(split) <= 1 {
|
||||||
|
fmt.Println("Abkürzung nicht definiert: " + line)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
besch := strings.Join(split[1:], ":")
|
||||||
|
abk[split[0]] = strings.TrimSpace(besch)
|
||||||
|
}
|
||||||
|
|
||||||
|
ret := make([]*pagemodels.Abk, 0, len(abk))
|
||||||
|
for a, b := range abk {
|
||||||
|
r := pagemodels.NewAbk(core.NewRecord(collection))
|
||||||
|
r.SetAbk(a)
|
||||||
|
r.SetBedeutung(b)
|
||||||
|
ret = append(ret, r)
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret, nil
|
||||||
|
}
|
||||||
40
pages/migrations_einfuehrung/1739446527_einfuehrung.go
Normal file
40
pages/migrations_einfuehrung/1739446527_einfuehrung.go
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
package migrations_einfuehrung
|
||||||
|
|
||||||
|
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_EINFUEHRUNG_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_EINFUEHRUNG_NAME)
|
||||||
|
c.Fields = append(c.Fields, reihen_fields...)
|
||||||
|
dbmodels.SetBasicPublicRules(c)
|
||||||
|
return c
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
package migrations_einfuehrung
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
||||||
|
"github.com/pocketbase/pocketbase/core"
|
||||||
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
|
)
|
||||||
|
|
||||||
|
const START = `<h2 class="wp-block-heading">Vorbemerkung</h2>
|
||||||
|
<p>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:</p>
|
||||||
|
<ul>
|
||||||
|
<li>Reihen- und Einzeltitel des Druckwerks sowie Strukturdarstellung des autopsierten Einzelbandes.</li>
|
||||||
|
<li>Namen der Herausgeber und Verfasser, gegebenfalls zusätzlich Schreibvarianten oder Pseudonyme.</li>
|
||||||
|
<li>Literarische Beiträge mit Titel und Incipit.</li>
|
||||||
|
<li>Nichtliterarische Beiträge (Illustrationen, Musikbeilagen und andere Zutaten) werden als Vollbild gegeben.</li>
|
||||||
|
</ul>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>Das Vorhaben wird von der <a href="https://musenalm.de/kontakt.html">THEODOR SPRINGMANN STIFTUNG</a> 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.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>Das Inhaltsverzeichnis der deutschen Almanache wird erarbeitet von Wolfgang Binnig und Martin Sietzen und herausgegeben von Adrian Braunbehrens.</p>
|
||||||
|
<h1 class="wp-block-heading">Einleitung in das Inhaltsverzeichnis deutscher Almanache</h1>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>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 <em>Geschichte der deutschen Taschenbücher und Almanache aus der klassisch-romantischen Zeit</em> 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.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>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.</p>
|
||||||
|
<p>Adrian Braunbehrens</p>`
|
||||||
|
|
||||||
|
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
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -56,11 +56,14 @@ func bilderCollection() *core.Collection {
|
|||||||
pagemodels.RequiredImageField(pagemodels.F_PREVIEW, false),
|
pagemodels.RequiredImageField(pagemodels.F_PREVIEW, false),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
dbmodels.SetBasicPublicRules(c)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
func texteCollection() *core.Collection {
|
func texteCollection() *core.Collection {
|
||||||
c := pagemodels.BasePageCollection(pagemodels.P_INDEX_NAME)
|
c := pagemodels.BasePageCollection(pagemodels.P_INDEX_NAME)
|
||||||
c.Fields = append(c.Fields, texte_fields...)
|
c.Fields = append(c.Fields, texte_fields...)
|
||||||
|
c.Fields = append(c.Fields, pagemodels.CreatedUpdatedFields()...)
|
||||||
|
dbmodels.SetBasicPublicRules(c)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|||||||
38
pages/migrations_kontakt/1739446527_kontakt.go
Normal file
38
pages/migrations_kontakt/1739446527_kontakt.go
Normal file
@@ -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
|
||||||
|
}
|
||||||
39
pages/migrations_kontakt/1739446703_insert_data_kontakt.go
Normal file
39
pages/migrations_kontakt/1739446703_insert_data_kontakt.go
Normal file
@@ -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 = `<p>Martin Sietzen und Dr. Jakob Brüssermann<br>Theodor-Springmann-Stiftung<br>Hirschgasse 2 <br><br>69120 Heidelberg<br><a href="mailto:info@musenalm.de">info@musenalm.de</a></p>`
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
m.Register(func(app core.App) error {
|
||||||
|
collection, err := app.FindCollectionByNameOrId(
|
||||||
|
pagemodels.GeneratePageTableName(pagemodels.P_KONTAKT_NAME))
|
||||||
|
if err != nil {
|
||||||
|
app.Logger().Error("Could not find Table Reihen! You need to execute table migrations first!")
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
record := pagemodels.NewDefaultPage(core.NewRecord(collection))
|
||||||
|
record.SetTitle("Kontakt")
|
||||||
|
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_KONTAKT_NAME))
|
||||||
|
|
||||||
|
if err == nil && coll != nil {
|
||||||
|
app.DB().NewQuery("DELETE FROM " + coll.TableName()).Execute()
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
40
pages/migrations_literatur/1739446527_literatur.go
Normal file
40
pages/migrations_literatur/1739446527_literatur.go
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
package migrations_literatur
|
||||||
|
|
||||||
|
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_LIT_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_LIT_NAME)
|
||||||
|
c.Fields = append(c.Fields, reihen_fields...)
|
||||||
|
dbmodels.SetBasicPublicRules(c)
|
||||||
|
return c
|
||||||
|
}
|
||||||
139
pages/migrations_literatur/1739446703_insert_data_literatur.go
Normal file
139
pages/migrations_literatur/1739446703_insert_data_literatur.go
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
package migrations_literatur
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
||||||
|
"github.com/pocketbase/pocketbase/core"
|
||||||
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
|
)
|
||||||
|
|
||||||
|
const START = `<h2>Ausstellungs- und Bibliothekskataloge</h2>
|
||||||
|
<p><span style="font-variant: small-caps;">Baumgärtel</span>, Ehrfried (Hg.): <em>Die Almanache, Kalender und Taschenbücher (1750–1860) der Landesbibliothek Coburg.</em> Wiesbaden 1970.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Bernhardt</span>, Ursula; <span style="font-variant: small-caps;">Reuter-Rautenberg</span>, <span style="text-decoration: none;">Anneliese (Hgg.): </span><em>Bild und Buch. Rheinblüthen, Moosrosen und Vergißmeinnicht: Taschenbücher für Frauenzimmer von Bildung</em>. Eine Studioausstellung in Zusammenarbeit mit der Badischen Landesbiliothek. Staatliche Kunsthalle Karlsruhe 1995.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Braunbehrens</span>, Adrian et al. (Hgg.): <em>Kalender im Wandel der Zeiten. Eine Ausstellung der Badischen Landesbibliothek zur Erinnerung an die Kalenderreform durch Papst Gregor XIII. im Jahr 1582.</em> Ausstellungskatalog, Bad. Landesbibliothek 1982.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Drescher</span>, Georg (Hg.): <em>O sehet her! die allerliebsten Dingerchen. Friedrich Rückert und der Almanach</em>. 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Fallbacher</span>, Karl-Heinz (Hg.): <em>Taschenbücher im 19. Jahrhundert</em>. Ausstellung im Schiller-Nationalmuseum Marbach zwischen November 1992 und Februar 1993. Dt. Schillergesellschaft, Marbach am Neckar 1992.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Marwinski</span>, Felicitas (Hg.): <em>Almanache, Taschenbücher, Taschenkalender.</em> Weimar 1967. Katalog der Sammlung der Thüringischen Landesbibliothek Weimar mit 816 Nummern, 8 Abbildungen.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Mix</span>, York-Gothart (Hg.): <em>Kalender? Ey, wie viel Kalender! Literarische Almanache zwischen Rokoko und Klassizismus</em>. 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Patzer</span>, Franz (Hg.): <em>Wiener Kalender, Almanache und Taschenbücher aus fünf Jahrhunderten (1495–1977)</em> Wechselausstellung der Wiener Stadt- u. Landesbibliothek, Rathaus, Dezember 1976–Jänner 1977. Wiener Stadt- u. Landesbibliothek. Wien 1976.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Schieth</span>, 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.</p>
|
||||||
|
<p> </p>
|
||||||
|
<h2>Sekundärliteratur</h2>
|
||||||
|
<p><span style="font-variant: small-caps;">Ananieva</span>, Anna; <span style="font-variant: small-caps;">Böck</span>, Dorothea; <span style="font-variant: small-caps;">Pompe</span>, Hedwig (Hgg.): <em>Geselliges Vergnügen. Kulturelle Praktiken von Unterhaltung im langen 19. Jahrhundert</em>. Bielefeld 2011.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Anderle</span>, Martin: <em>Wiener Lyrik im 18. Jahrhundert. Die Gedichte des »Wiener Musenalmanachs 1777-1796«</em>. Stuttgart 1996.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Benjamin</span>, Walter: <em>Was die Deutschen lasen, während ihre Klassiker schrieben</em> [Hörstück]. Ges. Werke hrsg. von Rolf Tiedeman u. Hermann Schweppenhäuser. Bd IV/1; Frankfurt/Main 1972, S. 641.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Boehn</span>, Max von: ‚Der Almanach‘. in: Das Antiquariat 7 (1951), S. 3.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Bunzel</span>, Wolfgang: ‚Almanache und Taschenbücher‘. in: FISCHER, Ernst; HAEFS, Wilhelm; MIX, York-Gothart (Hgg.): <em>Von Almanach bis Zeitung. Ein Handbuch der Medien in Deutschland 1700-1800</em>. München 1999, S. 24-35.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Bunzel</span>, Wolfgang: <em>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).</em> Weimar 1997.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Casser</span>, Paul: <em>Die westfälischen Musenalmanache und poetischen Taschenbücher: ein Beitrag zur Geschichte Westfalens in der ersten Hälfte des 19. Jahrhunderts</em>. Diss., Münster 1928. Mikrofiche-Ausg.: Egelsbach 1992.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Dickenberger</span>, Udo (Hg.): <em>Der Tod und die Dichter. Scherzgedichte in den Musenalmanachen um 1800. Eine Sammlung von 220 Spottgrabinschriften</em> Hildesheim 1991.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Engelsing</span>, 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Fischer</span>, Bernhard: <em>Der Verleger Johann Friedrich Cotta. Chronologische Verlagsbibliographie 1787-1814. Aus den Quellen bearbeitet</em>. 3 Bde., München 2003.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Fischer</span>, 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Fischer</span>, Ernst; <span style="font-variant: small-caps;">Haefs</span>, Wilhelm; <span style="font-variant: small-caps;">Mix</span>, York-Gothart: ‚Einleitung: Aufklärung, Öffentlichkeit und Medienkultur in Deutschland im 18. Jahrhundert‘ in: <span style="font-variant: small-caps;">Fischer</span>, Ernst; <span style="font-variant: small-caps;">Haefs</span>, Wilhelm; <span style="font-variant: small-caps;">Mix</span>, York-Gothart (Hgg.): <em>Von Almanach bis Zeitung. Ein Handbuch der Medien in Deutschland 1700-1800</em>. München 1999, S. 9-23.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Friedländer</span>, Max: <em>Gedichte von Goethe in Compositionen seiner Zeitgenossen</em>. Weimar 1896. Reprint Hildesheim 1975.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Fritsch</span>, Thomas Freiherr von: <em>Die Gothaischen Taschenbücher, Hofkalender und Almanach</em>. Limburg an der Lahn 1968.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Fürst</span>, Rainer: <em>»Für edle Weiber und Mädchen.« Wilhelmine Müller geb. Maisch, Verfasserin und Förderin der Almanachliteratur um 1800. Ein Beitrag zur Verlagsgeschichte</em>. Heidelberg 1995.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Gladt</span>, Karl: Almanache und Taschenbücher aus Wien. Wien 1971</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Gleissner</span>, Stephanie; <span style="font-variant: small-caps;">Husic</span>, Mirela; <span style="font-variant: small-caps;">Kaminski</span>, Nicola; <span style="font-variant: small-caps;">Mergenthaler</span>, Volker: <em>Optische Auftritte. Marktszenen in der medialen Konkurrenz von Journal-, Almanachs- und Bücherliteratur</em>. Hannover 2019 [= Journalliteratur, 2].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Goldschmidt</span>, Arthur: <em>Goethe im Almanach</em>. Leipzig 1932.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Grantzow</span>, Hans: <em>Geschichte des Göttinger und des Vossischen Musenalmanachs</em> [Kap. 1-4]. Diss., Berlin 1909.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Haefs</span>, 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Haefs</span>, Wilhelm; <span style="font-variant: small-caps;">Mix</span>, 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Haferkorn</span>, 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Hay</span>, Gerhard: <em>Die Beiträger des Voss'schen Musenalmanaches. Ein Verzeichnis</em>. Hildesheim 1975.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Herzog</span>, Rudolph: <em>Die schlesischen Musenalmanache von 1773-1823</em>. Breslau 1912.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Klussmann</span>, Paul Gerhard; <span style="font-variant: small-caps;">Mix</span>, York-Gothart (Hgg.): <em>Literarische Leitmedien. Almanach und Taschenbuch im kulturwissenschaftlichen Kontext</em>. Wiesbaden 1998<em> </em></p>
|
||||||
|
<p><span style="font-variant: small-caps;">Kossmann</span>, E. F.: <em>Der deutsche Musenalmanach 1833-1839</em>. Haag 1909.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Lanckaronska</span>, Maria; <span style="font-variant: small-caps;">Rümann</span>, Arthur<em>: Geschichte der deutschen Taschenbücher und Almanache aus der klassisch-romantischen Zeit</em>. München 1957. Neudruck Osnabrück 1985.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Lieres</span>, Vita von: ‚Kalender und Almanache‘. in: Zeitschrift für Bücherfreunde 18 (1926), S. 101-114.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Ludin</span>, Alfred: <em>Der schweizerische Musenalmanach »Alpenrosen« und seine Vorgänger (1780-1830)</em>. Diss. Zürich 1902.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Lüsebrink</span>, Hans-Jürgen; Mix, York-Gothart u. a. (Hg.): <em>Französische Almanachkultur im deutschen Sprachraum (1700-1815). Gattungsstrukturen, komparatistische Aspekte, Diskursformen</em>. Göttingen 2013 [= Deutschland und Frankreich im wissenschaftlichen Dialog, 3].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Mix</span>, York-Gothart<em>: Alamanach- und Taschenbuchkultur des 18. und 19. Jahrhunderts</em>. Wiesbaden 1996. [= Wolfenbütteler Forschungen, Bd. 69]</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Mix</span>, York-Gothart: <em>Die deutschen Musenalmanache des 18. Jahrhunderts</em>. München 1987.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Mix</span>, 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Obenaus</span>, Sibylle: ‚Die deutschen allgemeinen kritischen Zeitschriften in der ersten Hälfte des 19. Jahrhunderts‘. in: AGB 14 (1974), S. 2-122.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Peperkorn</span>, Günter: <em>Dieses ephemerische Werckchen: Georg Christoph Lichtenberg und der Göttinger Taschen Calender</em>. Göttingen [Städt. Museum] 1992.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Pissin</span>, Raimund: <em>Almanache der Romantik</em>. Berlin-Zehlendorf 1910.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Pfeiffer</span>, Emil: ‚Bibliographie der Schillerschen Musenalmanache 1796-1800‘. in: Jahresbericht des Schwäbischer Schillerverein. Marbach 1916, S. 35-48</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Pfister</span>, Karl: <em>Das Prinzip der Gedichtanordnung in Schillers Musenalmanachen 1796/1800</em>. Diss., Bern 1937.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Prüsener</span>, Marlies: ‚Lesegesellschaften im 18. Jahrhundert‘. in: AGB 13 (1973), S. 371-594.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Prutz</span>, Robert: <em>Der Göttinger Dichterbund. Zur Geschichte der deutschen Literatur</em>. Leipzig 1841.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Prutz</span>, Robert: <em>Neue Schriften. Zur deutschen Literatur- und Kulturgeschichte</em>. 2 Bde.; Halle 1847. bes.: Bd. I. S. 105-165: ‚Die Musenalmanache und Taschenbücher in Deutschland‘.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Raabe</span>, Paul: ‚Zeitschriften und Almanache‘. in: <span style="font-variant: small-caps;">Hauswedel</span>, Ernst und <span style="font-variant: small-caps;">Vogt</span>, Christian (Hgg.): <em>Buchkunst und Literatur in Deutschland 1750 bis 1850</em>. Hamburg 1977, Bd. 1. S. 145-195 [mit ausführlichem Abbildungsteil in Bd. 2. S. 108-140].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Redlich</span>, Carl Christian: <em>Versuch eines Chiffernlexikons zu den Göttinger, Voßischen, Schillerschen und Schlegel-Tieckschen Musenalmanachen</em>. Hamburg 1875.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Rommel</span>, Otto: ‚Der Wiener Musenalmanach‘. in: Euphorion 6. Ergänzungsheft,1906.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Schröder</span>, Rolf: ‚Zur Struktur des »Taschenbuchs« im Biedermeier‘. in: Germanisch-Romanische Monatsschrift 41 (1960), S. 442-448.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Schwerdtfeger</span>, Walter: <em>Die litteraturhistorische Bedeutung der Schillerschen Musenalmanache 1796-1800</em>. Leipzig 1899.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Seyffert</span>, Wolfgang: <em>Schillers Musenalmanache</em>. Berlin 1913.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Skreb</span>, Zdenko: <em>Das Epigramm in deutschen Musenalmanachen und Taschenbüchern um 1800</em>. Wien, 1977 [= Österreichische Akademie der Wissenschaften, Philosophisch-historische Klasse, Sitzungsberichte, 331].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Skreb</span>, Zdenko: <em>Gattungsdominanz im deutschsprachigen literarischen Taschenbuch oder vom Sieg der Erzählprosa</em>, Wien 1986 [= Österreichische Akademie der Wissenschaften, Philosophisch-historische Klasse, Sitzungsberichte, 471].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Steig</span>, Reinhold: ‚Ueber den Göttingischen Musen-Almanach für das Jahr 1803‘. in: Euphorion 2 (1895), S. 312-323</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Stolpe</span>, Heinz: <em>Zeitschriften und Almanache der deutschen Klassik</em>. Weimar 1959.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Willnat</span>, Elisabeth: ‚Johann Christian Dieterich. Ein Verlagsbuchhändler und Drucker in der Zeit der Aufklärung‘. in: AGB 39 (1993), S. 1-254.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Wittmann</span>, Reinhard: ‚Der Verleger Johann Friedrich Weygand in Briefen des Göttinger Hains‘. in: AGB 10 (1970), S. 319-343.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Zuber</span>, Margarete: ‚Die deutschen Musenalmanache und schöngeistigen Taschenbücher des Biedermeier 1815- 1848‘. in: AGB 1 (1958), S. 398-489.</p>
|
||||||
|
<p> </p>
|
||||||
|
<h2>Graphik, Einband etc.</h2>
|
||||||
|
<p><span style="font-variant: small-caps;">Barge</span>, Hermann: <em>Geschichte der Buchdruckerkunst</em>. Leipzig 1940.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Bauer</span>, Jens-Heiner: <em>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</em>. Hannover 1982.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Dorn</span>, Wilhelm: <em>Meil-Bibliographie. Verzeichnis der von dem Radierer Johann Wilhelm Meil illustrierten Bücher und Almanache.</em> Berlin 1928.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Focke</span>, Rudolf [Hg.]: <em>Chodowiecki und Lichtenberg.</em> <em>Daniel Chodowiecki’s Monatskupfer zum »Göttinger Taschen Calender« nach Georg Christoph Lichtenberg's Erklärungen (1778-1783), mit einer kunst- und litterargeschichtlichen Einleitung</em>. Leipzig 1901.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Forster-Hahn</span>, Franziska: <em>Johann Heinrich Ramberg als Karikaturist und Satiriker</em>. Diss. Univ. Bonn 1963. [o. O.] [o. J.] [= Sonderdruck aus Hann. Geschichtsblättern, NF 17 (1963)].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Haldenwang</span>, Hasso von: <em>Christian Haldenwang, Kupferstecher (1770-1831)</em>. Diss. Johann-Wolfgang-Goethe-Univ. Frankfurt am Main 1995, Frankfurt am Main 1997 [= Frankfurter Fundamente der Kunstgeschichte, 14].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Hauswedell</span>, Ernst L.; VOIGT, Christian (Hgg.): <em>Buchkunst und Literatur in Deutschland 1750 bis 1850</em>. 2 Bde., Hamburg 1977.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Hogarth</span>, William; <span style="font-variant: small-caps;">Lichtenberg</span>, Georg Christoph: <em>Sammlung Hogarthscher Kupfer-Stiche</em>. Neue wohlfeile Ausg., Göttingen [o. J.].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Ko</span><span style="font-variant: small-caps;">š</span><span style="font-variant: small-caps;">enina</span>, Alexander (Hg.): <em>Literatur — Bilder. Johann Heinrich Ramberg als Buchillustrator der Goethezeit</em>. Hannover 2013.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Lanckaronska</span>, Maria; <span style="font-variant: small-caps;">Oehler</span>, Richard: <em>Die Buchillustration dex XVIII. Jahrhunderts in Deutschland, Österreich und der Schweiz</em>. 3 Bde., Leipzig 1932-1934.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Rodenberg</span>, J.: ‚Geschichte der Illustration von 1800 bis heute‘. in: <span style="font-variant: small-caps;">Leih</span>, G. (Hg.): <em>Handbuch der Bibliothekswissenschaft</em>. 2. Aufl. Stuttgart 1950, Bd. 1.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Rhein</span>, Adolf: ‚Die frühen Verlagseinbände. Eine technische Entwicklung 1735-1850‘. in: Gutenberg-Jahrbuch, Mainz 1962, S. 519-532.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Rümann</span>, Arthur: <em>Das illustrierte Buch des XIX. Jahrhunderts in England, Frankreich und Deutschland 1790-1860</em>. Nachdruck der Ausgabe des Insel Verlages 1930, Osnabrück 1975.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Rümann</span>, Arthur: <em>Die illustrierten deutschen Bücher des 18. Jahrhunderts</em>. Stuttgart 1927.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Rümann</span>, Arthur: <em>Die illustrierten deutschen Bücher des 19. Jahrhunderts</em>. Stuttgart 1926.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Rümann</span>, Arthur: <em>Das deutsche illustrierte Buch des XVIII. Jahrhunderts</em>. Straßburg 1931 [= Studien zur deutschen Kunstgeschichte, Heft 282].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Schumacher</span>, Doris: <em>Kupfer und Poesie. Die Illustrationskunst um 1800 im Spiegel der zeitgenössischen deutschen Kritik</em>. Köln 2000 [= Pictura et Poesis, 13].</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Shesgrenn</span>, Sean (Hg.): <em>Engravings by Hogarth. 101 Prints</em>. New York 1973.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Stubbe</span>, Wolf: ‚Illustrationen und Illustratoren‘. in: <span style="font-variant: small-caps;">Hauswedell</span>, Ernst; <span style="font-variant: small-caps;">Voigt</span>, Christian (Hgg.): <em>Buchkunst und Literatur in Deutschland 1750 bis 1850</em>. Bd. 1., Hamburg 1977, S. 58-144 [mit ausführlichem Abbildungsteil Bd. 2. S. 49-106]</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Stuttmann</span>, Ferdinand: <em>Johann Heinrich Ramberg</em>. München 1929.</p>
|
||||||
|
<p> </p>
|
||||||
|
<h2>Bibliographien und Nachschlagewerke (mit Siglen)</h2>
|
||||||
|
<p><em>Allgemeine Deutsche Biographie.</em> Hg. v. der Historischen Commission bei der Königlichen Akademie der Wissenschaften. 55 Bde., Leipzig 1875-1910. Sigle: ADB.</p>
|
||||||
|
<p><em>Brockhaus’ Conversations-Lexikon. Allgemeine deutsche Real-Encyklopädie.</em> 13. vollst. umgearb. Aufl., Leipzig 1883-1888. Sigle: Brockh 13.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Gorzny</span>, Willy: <em>Deutscher Biographischer Index</em>. 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.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Eymer</span>, Wilfried: <em>Eymers Pseudonymen Lexikon. Realnamen und Pseudonyme in der deutschen Literatur</em>. Bonn 1997. Sigle: E.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Goldschmidt</span>, Arthur: <em>Goethe im Almanach</em>. Leipzig 1932. Sigle: G.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Grand-Carteret</span>, John: <em>Les Almanachs Français. Bibliographie – Iconographie 1600-1895</em>. Paris 1896. Sigle: G-C.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Goedeke</span>, Karl et al.: <em>Grundriß zur Geschichte der deutschen Dichtung</em>. 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</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Hayn</span> Hugo;<span style="font-variant: small-caps;">Gotendorf</span>, Alfred N. (Hgg.): <em>Bibliotheca Germanorum Erotica & Curiosa. Verzeichnis der gesamten deutschen erotischen Literatur mit Einschluß der Übersetzungen, nebst Beifügung der Originale</em>. 9 Bde., Unveränd. Nachdr. d. 3. ungemein verm. Aufl. Hanau [o. J.], Hanau 1968. Sigle: H.-G.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Hirschberg</span>, Leopold: <em>Der Taschengoedeke. Bibliographie deutscher Erstausgaben</em>. München 1970. Sigle: Goed (H).</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Holzmann</span>, Michael; BOHATTA, Hanns: Deutsches Pseudonymen-Lexikon. Aus den Quellen bearbeitet von Michael Holzmann und Hanns Bohatta. Hildesheim 1970. Sigle: H/B.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Köhring</span>, Hans (Hg.): <em>Bibliographie der Almanache, Kalender und Taschenbücher für die Zeit von ca. 1750-1860</em>. Hamburg 1929. Neudruck Bad Karlshafen 1987. Sigle: K.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Lanckaronska</span>, Maria; <span style="font-variant: small-caps;">Rümann</span>, Arthur: <em>Geschichte der deutschen Taschenbücher und Almanache aus der klassisch-romantischen Zeit</em>. München 1957. Neudruck Osnabrück 1985. Sigle: L/R.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Redlich</span>, Carl Christian: <em>Versuch eines Chiffernlexikons zu den Göttinger, Voßischen, Schillerschen und Schlegel-Tieckschen Musenalmanachen</em>. Hamburg 1875. Sigle: Re.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Rümann</span>, Arthur: <em>Die illustrierten deutschen Bücher des 18. Jahrhunderts</em>. Stuttgart 1927. Sigle: Rü.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Thieme</span>, Ulrich; <span style="font-variant: small-caps;">Becker</span>, Felix [Hg.]: <em>Allgemeines Lexikon der bildenden Künstler von der Antike bis zur Gegenwart</em>. 37 Bde., Leipzig 1907-1950. Neudruck Leipzig 1999. Sigle: T/B.</p>
|
||||||
|
<p><span style="font-variant: small-caps;">Ziegler</span>, Konrad; <span style="font-variant: small-caps;">Sontheimer</span>, Walther (Hgg.): <em>Der kleine Pauly. Lexikon der Antike</em>. 5 Bde., München 1979. Sigle: P.</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
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package migrations_reihen
|
package migrations_reihen
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/Theodor-Springmann-Stiftung/musenalm/dbmodels"
|
||||||
"github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
"github.com/Theodor-Springmann-Stiftung/musenalm/pagemodels"
|
||||||
"github.com/pocketbase/pocketbase/core"
|
"github.com/pocketbase/pocketbase/core"
|
||||||
m "github.com/pocketbase/pocketbase/migrations"
|
m "github.com/pocketbase/pocketbase/migrations"
|
||||||
@@ -35,5 +36,6 @@ func init() {
|
|||||||
func pageCollection() *core.Collection {
|
func pageCollection() *core.Collection {
|
||||||
c := pagemodels.BasePageCollection(pagemodels.P_REIHEN_NAME)
|
c := pagemodels.BasePageCollection(pagemodels.P_REIHEN_NAME)
|
||||||
c.Fields = append(c.Fields, reihen_fields...)
|
c.Fields = append(c.Fields, reihen_fields...)
|
||||||
|
dbmodels.SetBasicPublicRules(c)
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,10 @@ import (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
RegisterStaticPage("/datenschutz/")
|
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) {
|
func RegisterStaticPage(url string) {
|
||||||
@@ -17,3 +21,14 @@ func RegisterStaticPage(url string) {
|
|||||||
Template: url,
|
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,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
0
views/routes/edition/danksagungen/body.gohtml
Normal file
0
views/routes/edition/danksagungen/body.gohtml
Normal file
0
views/routes/edition/danksagungen/head.gohtml
Normal file
0
views/routes/edition/danksagungen/head.gohtml
Normal file
0
views/routes/edition/dokumentation/body.gohtml
Normal file
0
views/routes/edition/dokumentation/body.gohtml
Normal file
0
views/routes/edition/dokumentation/head.gohtml
Normal file
0
views/routes/edition/dokumentation/head.gohtml
Normal file
0
views/routes/edition/einfuehrung/body.gohtml
Normal file
0
views/routes/edition/einfuehrung/body.gohtml
Normal file
0
views/routes/edition/einfuehrung/head.gohtml
Normal file
0
views/routes/edition/einfuehrung/head.gohtml
Normal file
1
views/routes/edition/kontakt/body.gohtml
Normal file
1
views/routes/edition/kontakt/body.gohtml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Hello from Kontakt!
|
||||||
0
views/routes/edition/kontakt/head.gohtml
Normal file
0
views/routes/edition/kontakt/head.gohtml
Normal file
0
views/routes/edition/literatur/body.gohtml
Normal file
0
views/routes/edition/literatur/body.gohtml
Normal file
0
views/routes/edition/literatur/head.gohtml
Normal file
0
views/routes/edition/literatur/head.gohtml
Normal file
Reference in New Issue
Block a user