feat: Adds generate commands that call to pandoc to generate pdf, latex, and html files from a project.
This commit is contained in:
@@ -1,9 +1,12 @@
|
||||
import Foundation
|
||||
|
||||
// NOTE: When adding items, then the 'hpa.toml' resource file needs to be updated.
|
||||
|
||||
/// Represents configurable settings for the command line tool.
|
||||
public struct Configuration: Codable, Equatable, Sendable {
|
||||
public let args: [String]?
|
||||
public let useVaultArgs: Bool
|
||||
public let generate: Generate?
|
||||
public let playbook: Playbook?
|
||||
public let template: Template
|
||||
public let vault: Vault
|
||||
@@ -11,12 +14,14 @@ public struct Configuration: Codable, Equatable, Sendable {
|
||||
public init(
|
||||
args: [String]? = nil,
|
||||
useVaultArgs: Bool = true,
|
||||
generate: Generate? = nil,
|
||||
playbook: Playbook? = nil,
|
||||
template: Template = .init(),
|
||||
vault: Vault = .init()
|
||||
) {
|
||||
self.args = args
|
||||
self.useVaultArgs = useVaultArgs
|
||||
self.generate = generate
|
||||
self.playbook = playbook
|
||||
self.template = template
|
||||
self.vault = vault
|
||||
@@ -32,6 +37,40 @@ public struct Configuration: Codable, Equatable, Sendable {
|
||||
)
|
||||
}
|
||||
|
||||
public struct Generate: Codable, Equatable, Sendable {
|
||||
public let buildDirectory: String?
|
||||
public let files: [String]?
|
||||
public let includeInHeader: [String]?
|
||||
public let outputFileName: String?
|
||||
public let pdfEngine: String?
|
||||
|
||||
public init(
|
||||
buildDirectory: String? = nil,
|
||||
files: [String]? = nil,
|
||||
includeInHeader: [String]? = nil,
|
||||
outputFileName: String? = nil,
|
||||
pdfEngine: String? = nil
|
||||
) {
|
||||
self.buildDirectory = buildDirectory
|
||||
self.files = files
|
||||
self.includeInHeader = includeInHeader
|
||||
self.outputFileName = outputFileName
|
||||
self.pdfEngine = pdfEngine
|
||||
}
|
||||
|
||||
public static let `default` = Self.mock
|
||||
|
||||
public static var mock: Self {
|
||||
.init(
|
||||
buildDirectory: ".build",
|
||||
files: ["Report.md", "Definitions.md"],
|
||||
includeInHeader: ["head.tex", "footer.tex"],
|
||||
outputFileName: "Report",
|
||||
pdfEngine: "xelatex"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
public struct Playbook: Codable, Equatable, Sendable {
|
||||
|
||||
public let directory: String?
|
||||
|
||||
Reference in New Issue
Block a user