p:colon

Publishをインストールして使ってみる

Publishのインストール


% brew install publish

Publishの初期設定

Packageの作成


% makedir <Package名>
% cd  <Package名>
% publish new

Package.swiftをXcodeで開く

Sources/<Package名>/main.swiftを編集する

struct <Package名>: Website {
    enum SectionID: String, WebsiteSectionID {
        case posts
    }

    struct ItemMetadata: WebsiteItemMetadata {
        // Add any site-specific metadata that you want to use here.
    }

    var url = URL(string: "<サイトのURL>")!
    var name = "<サイト名>"
    var description = "<サイト詳細>"
    var language: Language { .japanese }
    var imagePath: Path? { nil }
}

try <Package名>().publish(using: [
    .addMarkdownFiles(),
    .generateHTML(withTheme: .picolon),
    .copyResources(),
    .sortItems(by: \.date, order: .descending),
    .generateRSSFeed(including: [.posts]),
    .generateSiteMap(),
])

サイトの確認

コマンド実行


% publish run

Publishing <サイト名> (6 steps)
[1/6] Copy 'Resources' files
[2/6] Add Markdown files from 'Content' folder
[3/6] Sort items
[4/6] Generate HTML
[5/6] Generate RSS feed
[6/6] Generate site map
✅ Successfully published <サイト名>
🌍 Starting web server at http://localhost:8000

生成されたファイルの確認

Outputフォルダ内に生成され、ローカルホストで確認できる。
http://localhost:8000

Github Pagesへのデプロイ

Sources/<Package名>/main.swiftに追記する

try <Package名>().publish(using: [
    …
    // 追記
    .deploy(using: .gitHub("<user>/<repository>", branch: "main", useSSH: true))
])

コマンド実行


% publish deploy

[1/1] Deploy using Git (git@github.com:<user>/<repository>.git)
✅ Successfully published <サイト名>
Tagged with: