mirror of
https://codeberg.org/scip/epuppy.git
synced 2025-12-17 20:41:00 +01:00
initial commit
This commit is contained in:
80
pkg/epub/opf.go
Normal file
80
pkg/epub/opf.go
Normal file
@@ -0,0 +1,80 @@
|
||||
package epub
|
||||
|
||||
//Opf content.opf
|
||||
type Opf struct {
|
||||
Metadata Metadata `xml:"metadata" json:"metadata"`
|
||||
Manifest []Manifest `xml:"manifest>item" json:"manifest"`
|
||||
Spine Spine `xml:"spine" json:"spine"`
|
||||
}
|
||||
|
||||
//Metadata metadata
|
||||
type Metadata struct {
|
||||
Title []string `xml:"title" json:"title"`
|
||||
Language []string `xml:"language" json:"language"`
|
||||
Identifier []Identifier `xml:"identifier" json:"identifier"`
|
||||
Creator []Author `xml:"creator" json:"creator"`
|
||||
Subject []string `xml:"subject" json:"subject"`
|
||||
Description []string `xml:"description" json:"description"`
|
||||
Publisher []string `xml:"publisher" json:"publisher"`
|
||||
Contributor []Author `xml:"contributor" json:"contributor"`
|
||||
Date []Date `xml:"date" json:"date"`
|
||||
Type []string `xml:"type" json:"type"`
|
||||
Format []string `xml:"format" json:"format"`
|
||||
Source []string `xml:"source" json:"source"`
|
||||
Relation []string `xml:"relation" json:"relation"`
|
||||
Coverage []string `xml:"coverage" json:"coverage"`
|
||||
Rights []string `xml:"rights" json:"rights"`
|
||||
Meta []Metafield `xml:"meta" json:"meta"`
|
||||
}
|
||||
|
||||
// Identifier identifier
|
||||
type Identifier struct {
|
||||
Data string `xml:",chardata" json:"data"`
|
||||
ID string `xml:"id,attr" json:"id"`
|
||||
Scheme string `xml:"scheme,attr" json:"scheme"`
|
||||
}
|
||||
|
||||
// Author author
|
||||
type Author struct {
|
||||
Data string `xml:",chardata" json:"author"`
|
||||
FileAs string `xml:"file-as,attr" json:"file_as"`
|
||||
Role string `xml:"role,attr" json:"role"`
|
||||
}
|
||||
|
||||
// Date date
|
||||
type Date struct {
|
||||
Data string `xml:",chardata" json:"data"`
|
||||
Event string `xml:"event,attr" json:"event"`
|
||||
}
|
||||
|
||||
// Metafield metafield
|
||||
type Metafield struct {
|
||||
Name string `xml:"name,attr" json:"name"`
|
||||
Content string `xml:"content,attr" json:"content"`
|
||||
}
|
||||
|
||||
//Manifest manifest
|
||||
type Manifest struct {
|
||||
ID string `xml:"id,attr" json:"id"`
|
||||
Href string `xml:"href,attr" json:"href"`
|
||||
MediaType string `xml:"media-type,attr" json:"type"`
|
||||
Fallback string `xml:"media-fallback,attr" json:"fallback"`
|
||||
Properties string `xml:"properties,attr" json:"properties"`
|
||||
MediaOverlay string `xml:"media-overlay,attr" json:"overlay"`
|
||||
}
|
||||
|
||||
// Spine spine
|
||||
type Spine struct {
|
||||
ID string `xml:"id,attr" json:"id"`
|
||||
Toc string `xml:"toc,attr" json:"toc"`
|
||||
PageProgression string `xml:"page-progression-direction,attr" json:"progression"`
|
||||
Items []SpineItem `xml:"itemref" json:"items"`
|
||||
}
|
||||
|
||||
// SpineItem spine item
|
||||
type SpineItem struct {
|
||||
IDref string `xml:"idref,attr" json:"id_ref"`
|
||||
Linear string `xml:"linear,attr" json:"linear"`
|
||||
ID string `xml:"id,attr" json:"id"`
|
||||
Properties string `xml:"properties,attr" json:"properties"`
|
||||
}
|
||||
Reference in New Issue
Block a user