Added (first version of) sample Hummingbird app. (#4)
This PR contains the work done to: * Implemented a basic `Hummingbird` application in which to integrate the `HummingbirdDocC` library. * Added the *ArgumentParser* package dependency to the `Package.swift` file; * Added a new *sample* target to the `Package.swift` file; * Added library and documentation tasks to the `Makefile` file. Reviewed-on: #4 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #4.
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
// ===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the Hummingbird DocC Middleware open source project
|
||||
//
|
||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Hummingbird DocC Middleware project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of Hummingbird DocC Middleware project authors
|
||||
//
|
||||
// ===----------------------------------------------------------------------===
|
||||
|
||||
/// An enumeration that represents the essential static files that could be generated by the `DocC` building process.
|
||||
enum AssetFile: String, CaseIterable {
|
||||
/// A file defining all the documentation available, which will be used to redirect to the root of the documentation's root article.
|
||||
case documentation = "documentation.json"
|
||||
/// A file containing the icon in `.ico` format within the documentation generated by the `DocC` building process.
|
||||
case faviconICO = "favicon.ico"
|
||||
/// A file containing the icon in `.svg` format within the documentation generated by the `DocC` building process.
|
||||
case faviconSVG = "favicon.svg"
|
||||
/// A file containing the theme settings within the documentation generated by the `DocC` building process.
|
||||
case themeSettings = "theme-settings.json"
|
||||
}
|
||||
|
||||
// MARK: - Pathable
|
||||
|
||||
extension AssetFile: Pathable {
|
||||
|
||||
// MARK: Computed
|
||||
|
||||
var path: String {
|
||||
switch self {
|
||||
case .documentation: .init(format: .Format.Path.data, rawValue)
|
||||
default: .init(format: .Format.Path.root, rawValue)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
// ===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the Hummingbird DocC Middleware open source project
|
||||
//
|
||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Hummingbird DocC Middleware project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of Hummingbird DocC Middleware project authors
|
||||
//
|
||||
// ===----------------------------------------------------------------------===
|
||||
|
||||
/// An enumeration that represents all possible asset folders that could be generated by the `DocC` building process.
|
||||
enum AssetFolder: String, CaseIterable {
|
||||
/// A folder that contains all CSS style sheets.
|
||||
case css
|
||||
/// A folder that contains all documentation data.
|
||||
case data
|
||||
/// A folder that contains all other resources.
|
||||
case downloads
|
||||
/// A folder that contains all image resources.
|
||||
case images
|
||||
/// A folder that contains all image resources.
|
||||
case img
|
||||
/// A folder that contains all generated `HTML` code.
|
||||
case index
|
||||
/// A folder that contains all generated `Javascript` code.
|
||||
case js
|
||||
/// A folder that contains all video resources.
|
||||
case videos
|
||||
}
|
||||
|
||||
// MARK: - Pathable
|
||||
|
||||
extension AssetFolder: Pathable {
|
||||
|
||||
// MARK: Computed
|
||||
|
||||
var path: String {
|
||||
.init(format: .Format.Path.folder, rawValue)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
// ===----------------------------------------------------------------------===
|
||||
//
|
||||
// This source file is part of the Hummingbird DocC Middleware open source project
|
||||
//
|
||||
// Copyright (c) 2025 Röck+Cöde VoF. and the Hummingbird DocC Middleware project authors
|
||||
// Licensed under the EUPL 1.2 or later.
|
||||
//
|
||||
// See LICENSE for license information
|
||||
// See CONTRIBUTORS for the list of Hummingbird DocC Middleware project authors
|
||||
//
|
||||
// ===----------------------------------------------------------------------===
|
||||
|
||||
/// An enumeration that represents the documentation folders that could be generated by the `DocC` building process.
|
||||
enum DocumentationFolder: String, CaseIterable {
|
||||
/// An article document, which can also be used for (source code generated) technical documentation as well.
|
||||
case article = "documentation"
|
||||
/// A tutorial document.
|
||||
case tutorial = "tutorials"
|
||||
}
|
||||
|
||||
// MARK: - Pathable
|
||||
|
||||
extension DocumentationFolder: Pathable {
|
||||
|
||||
// MARK: Computed
|
||||
|
||||
var path: String {
|
||||
.init(format: .Format.Path.root, rawValue)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user