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 `![page](page_id)` 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? /** 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? /** Additional images required by the element. These images are specified as: `source_name destination_name width (height)`. */ let images: Set? /** 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 { }