Number: 038, Date: 2024-09-30

2024.09.19 ~ 2024.09.29

🌎 Ignite


🔗 Ignite is a library that helps Swift developers create static websites.

I have been managing my weekly retrospective blog using a similar library called 🔗 Publish.

However, while Publish requires knowledge of HTML and CSS for customizations, Ignite is much more intuitive and simple, using SwiftUI-like syntax, which led me to switch.

Ignite is easy to use. After installing the CLI, you can implement the UI by combining the provided components, referencing the 🔗 Sample Site.

When you build the package, a Build folder is created. By deploying the files inside that folder, a static website is complete.

I created a separate repository to manage the source code, then implemented a GitHub action to transfer the files from the Build folder to my github.io repository.

Ignite provides a component called ContentPreview, but it’s not customizable. I modified the open source to accept a closure for customization, but after a PR review, I was advised to pass it to the modifier and revised the implementation accordingly.

🔐 Managing Multiple GitHub Accounts with Tokens


🔗 GitHub Docs - Managing Multiple Accounts

To manage multiple GitHub accounts on a single device, some additional steps are required when using the HTTPS method.

While using GitHub tokens for each repository can solve the issue by authenticating at the repository level instead of the account level, it results in multiple entries in the keychain and requires authentication for each repository, which can be inconvenient. Using SSH seems to be a better approach.

Managing Multiple Accounts with HTTPS

$ git config --get credential.helper

# Enter
$ git credential-osxkeychain erase
host=github.com
protocol=https

$ git config --global credential.https://github.com.useHttpPath true

Managing Multiple Accounts with SSH

# Generate SSH keys for each account
$ ssh-keygen -t ed25519 -C "your_email@example.com"

# Create SSH config file
$ ~/.ssh/config

#######
Host github-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal

Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
#######

# Use different hostnames for each repository when cloning
git clone git@github-personal:username/repo.git
git clone git@github-work:username/repo.git

🙋🏻‍♂️ Other Notes


  1. After upgrading to macOS Sequoia 15 and Xcode 16, there is an issue where HandyJSON fails to build. There is a branch that fixes this issue, and adding that branch to SwiftPM resolves it.
  2. Code completion in Xcode 16 has been enhanced. To apply the suggested code, click the Tab button.
  3. I received a rejection regarding the Facebook Login SDK. As usual with Facebook, it seems that submitting multiple times is necessary to get a detailed reason for the rejection.