Misar IO Docs

Swift SDK

Install and use the MisarBlog Swift SDK

Installation

Add the package in Xcode or Package.swift:

// Package.swift
dependencies: [
    .package(url: "https://github.com/Misar-AI/misarblog-swift.git", from: "0.1.0"),
],
targets: [
    .target(dependencies: [.product(name: "MisarBlog", package: "misarblog-swift")]),
]

Embed URL

import MisarBlog

let client = MisarBlog()

// Single article
let url = client.embedURL(username: "gulshan", slug: "my-article", theme: "dark")
// → URL("https://misar.blog/gulshan/my-article/embed?theme=dark")

// Profile embed
let url = client.embedURL(username: "gulshan")
// → URL("https://misar.blog/gulshan/embed")

Token refresh

import MisarBlog

let client = MisarBlog()

Task {
    let result = try await client.refreshToken(token: "your-current-token")
    print(result.token)
    print(result.expiresAt) // Int64 Unix timestamp
}

Custom base URL:

let result = try await client.refreshToken(token: "your-current-token", baseURL: "https://your-instance.example.com")

API reference

embedURL(username: String, slug: String? = nil, theme: String = "auto") -> URL

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | username | String | — | MisarBlog username | | slug | String? | nil | Article slug — nil for profile embed | | theme | String | "auto" | "auto" | "light" | "dark" |

refreshToken(token: String, baseURL: String = "https://misar.blog") async throws -> TokenResult

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | token | String | — | Current token | | baseURL | String | "https://misar.blog" | Override base URL |

TokenResult is a Codable struct: token: String, expiresAt: Int64. Throws URLError on network or response errors.