1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
/*
This source file is part of the Swift.org open source project
Copyright (c) 2024 Apple Inc. and the Swift project authors
Licensed under Apache License v2.0 with Runtime Library Exception
See https://swift.org/LICENSE.txt for license information
See https://swift.org/CONTRIBUTORS.txt for Swift project authors
*/
import Foundation
import SwiftDocC
/// Specifies the different template kinds available for
/// initializing the documentation catalog.
public enum CatalogTemplateKind: String {
/// A template designed for authoring article-only reference documentation, consisting of a catalog that contains only one markdown file.
case articleOnly
/// A template designed for authoring tutorials, consisting of a catalog that contains a table of contents and a chapter.
case tutorial
}
/// Content of the different templates
extension CatalogTemplateKind {
/// Content of the 'articleOnly' template
static func articleOnlyTemplateFiles(_ title: String) -> [String: String] {
[
"\(title).md": """
# \(title)
<!--- Metadata configuration to make appear this documentation page as a top-level page -->
@Metadata {
@TechnologyRoot
}
Add a single sentence or sentence fragment, which DocC uses as the page’s abstract or summary.
## Overview
Add one or more paragraphs that introduce your content overview.
"""
]
}
/// Content of the 'tutorial' template
static var tutorialTopLevelFilename: String { "table-of-contents.tutorial" }
static func tutorialTemplateFiles(_ title: String) -> [String: String] {
[
tutorialTopLevelFilename: """
@Tutorials(name: "\(title)") {
@Intro(title: "Tutorial Introduction") {
Add one or more paragraphs that introduce your tutorial.
}
@Chapter(name: "Chapter Name") {
@Image(source: "add-your-chapter-image-filename-here.jpg", alt: "Add an accessible description for your image here.")
@TutorialReference(tutorial: "doc:page-01")
}
}
""",
"Chapter01/page-01.tutorial": """
@Tutorial() {
@Intro(title: "Tutorial Page Title") {
Add one paragraph that introduce your tutorial.
}
@Section(title: "Section Name") {
@ContentAndMedia {
Add text that introduces the tasks that the reader needs to follow.
@Image(source: "add-your-section-image-filename-here.jpg", alt: "Add an accessible description for your image here.")
}
@Steps {
@Step {
This is a step with code.
@Code(name: "", file: "")
}
@Step {
This is a step with an image.
@Image(source: "", alt: "")
}
}
}
}
"""
]
}
}
|