138 lines
4.0 KiB
Swift
138 lines
4.0 KiB
Swift
import Foundation
|
|
|
|
/**
|
|
The metadata for all site elements.
|
|
*/
|
|
struct GenericMetadata {
|
|
|
|
/**
|
|
A custom id to uniquely identify the element on the site.
|
|
|
|
The id is used for short-hand links to pages, in the form of ``
|
|
for thumbnail previews or `[text](page:page_id)` for simple links.
|
|
|
|
If no custom id is set, then the name of the element folder is used.
|
|
*/
|
|
let customId: String?
|
|
|
|
/**
|
|
The author of the content.
|
|
|
|
If no author is set, then the author from the parent element is used.
|
|
*/
|
|
let author: String?
|
|
|
|
/**
|
|
The (start) date of the element.
|
|
|
|
The date is printed on content pages and may also used for sorting elements,
|
|
depending on the `useManualSorting` property of the parent.
|
|
*/
|
|
let date: String?
|
|
|
|
/**
|
|
The end date of the element.
|
|
|
|
This property can be used to specify a date range for a content page.
|
|
*/
|
|
let endDate: String?
|
|
|
|
/**
|
|
The deployment state of the page.
|
|
|
|
- Note: This property defaults to ``PageState.standard`
|
|
*/
|
|
let state: String?
|
|
|
|
/**
|
|
The sort index of the page for manual sorting.
|
|
|
|
- Note: This property is only used (and must be set) if `useManualSorting` option of the parent is set.
|
|
*/
|
|
let sortIndex: Int?
|
|
|
|
/**
|
|
All files which may occur in content but is stored externally.
|
|
|
|
Missing files which would otherwise produce a warning are ignored when included here.
|
|
- Note: This property defaults to an empty set.
|
|
*/
|
|
let externalFiles: Set<String>?
|
|
|
|
/**
|
|
Specifies additional files which should be copied to the destination when generating the content.
|
|
- Note: This property defaults to an empty set.
|
|
*/
|
|
let requiredFiles: Set<String>?
|
|
|
|
/**
|
|
Additional images required by the element.
|
|
|
|
These images are specified as: `source_name destination_name width (height)`.
|
|
*/
|
|
let images: Set<String>?
|
|
|
|
/**
|
|
The path to the thumbnail file.
|
|
|
|
This property is optional, and defaults to ``Element.defaultThumbnailName``.
|
|
Note: The generator first looks for localized versions of the thumbnail by appending `-[lang]` to the file name,
|
|
e.g. `customThumb-en.jpg`. If no file is found, then the specified file is tried.
|
|
*/
|
|
let thumbnailPath: String?
|
|
|
|
/**
|
|
The style of thumbnail to use when generating overviews.
|
|
|
|
- Note: This property is only relevant for sections.
|
|
- Note: This property is inherited from the parent if not specified.
|
|
*/
|
|
let thumbnailStyle: String?
|
|
|
|
/**
|
|
Sort the child elements by their `sortIndex` property when generating overviews, instead of using the `date`.
|
|
|
|
- Note: This property is only relevant for sections.
|
|
- Note: This property defaults to `false`
|
|
*/
|
|
let useManualSorting: Bool?
|
|
|
|
/**
|
|
The number of items to show when generating overviews of this element.
|
|
- Note: This property is only relevant for sections.
|
|
- Note: This property is inherited from the parent if not specified.
|
|
*/
|
|
let overviewItemCount: Int?
|
|
|
|
/**
|
|
Indicate the header type to be generated automatically.
|
|
|
|
If this option is set to `none`, then custom header code should be present in the page source files
|
|
- Note: If not specified, this property defaults to `left`.
|
|
- Note: Overview pages are always using `center`.
|
|
*/
|
|
let headerType: String?
|
|
|
|
/**
|
|
Indicate that the overview section should contain a `Newest Content` section before the other sections.
|
|
- Note: If not specified, this property defaults to `false`
|
|
*/
|
|
let showMostRecentSection: Bool?
|
|
|
|
/**
|
|
Indicate that the overview section should contain a `Featured Content` section before the other sections.
|
|
The elements are the page ids of the elements contained in the feature.
|
|
- Note: If not specified, this property defaults to `false`
|
|
*/
|
|
let featuredPages: [String]?
|
|
|
|
/**
|
|
The localized metadata for each language.
|
|
*/
|
|
let languages: [LocalizedMetadata]?
|
|
}
|
|
|
|
extension GenericMetadata: Codable {
|
|
|
|
}
|