🚀 Markdown から WordPress, Qiita, Note, Zenn へ爆速クロス投稿！OASIS v0.7.0 の使い方 🚀

ブログ記事を複数のプラットフォームに同時投稿したい…そんな悩みを解決するのが **OASIS v0.7.0** です！ 🌵✨

OASIS は、Markdown ファイルから WordPress, Qiita, Note, Zenn への投稿を自動化する Python パッケージです。面倒なコピペ作業から解放され、執筆に集中できます。

今回は、バージョンアップでさらにパワーアップした OASIS v0.7.0 の魅力と使い方を、初心者の方にもわかりやすく解説します！

## OASIS v0.7.0 の魅力

OASIS は、単なるクロス投稿ツールではありません。あなたの執筆活動を強力にサポートする、様々な機能が備わっています。

### 爆速クロス投稿で時間短縮！

WordPress, Qiita, Note, Zenn…各プラットフォームに合わせた投稿フォーマット、面倒ですよね？ OASIS を使えば、たった一つの Markdown ファイルから、各プラットフォームに最適化された形式で自動投稿できます。 

#### クロス投稿可能なプラットフォーム

```mermaid
%%{init: {"themeVariables": { "primaryColor": "#ffcccc", "secondaryColor": "#ccffcc", "tertiaryColor": "#ccccff", "mainBkg": "#fff0f0", "nodeBorder": "#ff9999", "clusterBkg": "#fffaf0", "clusterBorder": "#ffe4b5", "lineColor": "#ff9999", "fontFamily": "arial"}}}%%
graph TD
    Markdown --> WordPress
    Markdown --> Qiita
    Markdown --> Note
    Markdown --> Zenn
```

### AI がカテゴリとタグを提案！

記事に合ったカテゴリやタグを考えるのは意外と時間がかかります。OASIS は、AI を活用して、あなたの記事内容に最適なカテゴリとタグを提案してくれます！ 🧠✨

### サムネイル画像も自動アップロード

アイキャッチ画像となるサムネイル画像。記事ごとに探してアップロードするのは手間ですよね。OASIS は、指定フォルダ内の画像を自動でサムネイルとしてアップロードしてくれるので、手間が省けます。

### Mermaid 対応で図表も美しく表現

Mermaid記法で記述したフローチャートやシーケンス図などを、WordPress や Note にも美しく出力できます。視覚的にわかりやすい記事を作成できます。

### OASIS v0.7.0 を使ってみよう

OASIS のインストールから使い方まで、ステップバイステップで解説します。

### インストール

まずは、OASIS をインストールしましょう。Python パッケージなので、pip コマンドで簡単にインストールできます。

```bash
pip install -U oasis-article
```

### 設定

OASIS を使うには、いくつかの設定が必要です。WordPress, Qiita, Note のアカウント情報などを、環境変数に設定します。

#### 設定ファイル (.env) の例

```
# WordPress
AUTH_USER=your_wordpress_username
AUTH_PASS=your_wordpress_password
BASE_URL=https://your_wordpress_site.com

# Qiita
QIITA_TOKEN=your_qiita_api_token

# Note
NOTE_EMAIL=your_note_email
NOTE_PASSWORD=your_note_password
NOTE_USER_ID=your_note_user_id

# Firefox (オプション)
FIREFOX_BINARY_PATH="C:\Program Files\Mozilla Firefox\firefox.exe"
FIREFOX_PROFILE_PATH="C:\Users\your_user_name\AppData\Roaming\Mozilla\Firefox\Profiles\your_profile_name"
```

設定ファイルは `.env` という名前で、プロジェクトフォルダに配置します。 

### 投稿用 Markdown ファイルの準備

投稿したい記事を Markdown 形式で作成します。記事ファイルは、任意のフォルダに配置できます。

#### Markdown ファイルの例

```markdown
    # 記事タイトル

    ## はじめに

    これは、OASIS を使って投稿する記事のサンプルです。

    ## OASIS の使い方

    OASIS を使うと、簡単にクロス投稿ができます。

```

### コマンドラインから投稿

準備が整ったら、コマンドラインから OASIS を実行して投稿します。

#### 投稿コマンド

```bash
oasis /path/to/your/folder --qiita --note --wp --zenn 
```

上記のコマンドは、指定したフォルダにある Markdown ファイルを読み込み、WordPress, Qiita, Note, Zenn に投稿します。`--qiita`, `--note`, `--wp`, `--zenn` は、投稿先のプラットフォームを指定するオプションです。

#### 投稿オプション

| オプション             | 説明                                                               |
|--------------------------|--------------------------------------------------------------------|
| `--qiita`               | Qiita に投稿する                                                     |
| `--note`               | Note に投稿する                                                     |
| `--wp`                 | WordPress に投稿する                                                 |
| `--zenn`               | Zenn に投稿する                                                     |
| `--firefox-headless`     | Firefox をヘッドレスモードで実行する                               |
| `--zenn-output-path` | ZennAPI V2 の出力フォルダを指定する (デフォルトは `C:\Prj\Zenn\articles`) |

#### 投稿例

```bash
# example/article/sample-article フォルダ内の記事を、Qiita, Note, WordPress, Zenn に投稿する
oasis example/article/sample-article --qiita --note --wp --zenn --firefox-headless
```

## ZennAPI V2 の使い方

OASIS v0.7.0 から、Zenn への投稿に ZennAPI V2 が利用できるようになりました。ZennAPI V2 は、Zenn と GitHub の連携を活用して動作します。

### Zenn と GitHub の連携

ZennAPI V2 を使うには、事前に Zenn と GitHub の連携が必要です。Zenn の設定画面から、GitHub アカウントと連携するリポジトリを指定してください。

### 記事ファイルの生成

OASIS は、`--zenn-output-path` オプションで指定したフォルダに、Zenn の記事ファイル (.md) を生成します。生成された記事ファイルを GitHub リポジトリにプッシュすると、Zenn 上で記事が公開されます。

**※自動プッシュ機能は今後対応予定です。**

## まとめ

OASIS v0.7.0 を使うと、Markdown ファイルから WordPress, Qiita, Note, Zenn へのクロス投稿が驚くほど簡単にできます。ぜひ、OASIS を活用して、快適なブログライフをお楽しみください！ 🌵✨

## リポジトリ

https://github.com/Sunwood-ai-labs/OASIS/releases/tag/v0.7.0