Skip to content

Releases: RieTamura/Post-To-Bluesky

0.6.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 08:36

🔐 Security / セキュリティ

⚠️ Requires Obsidian 1.11.5 or later / Obsidian 1.11.5 以降が必要です

EN

  • The Bluesky app password is now stored in the Obsidian keychain instead of in plaintext. Until v0.5.1 it was saved as-is in the plugin's data.json inside your vault, so anyone who could read the vault — a synced folder, a backup, a public Git repository — could read the password. The plugin now keeps only a secret ID in its settings, and the password itself lives in Obsidian's keychain (Settings → Keychain), which is encrypted at rest by your operating system.
  • Upgrading migrates your existing password automatically. On first load the plaintext password is moved into the keychain under the ID bluesky-app-password and removed from data.json; a notice tells you when this has happened. Nothing to do by hand. Note that backups and Git history created before the migration still contain the plaintext — delete them if that matters to you.
  • What this does not protect against. The keychain is shared by all plugins, and any plugin can list secret IDs and read their values, so this guards against vault sync/sharing/disk leaks rather than against a malicious plugin. On Linux, encryption requires kwallet, kwallet5, kwallet6 or gnome-libsecret.
  • The keychain does not sync between devices. Enter the app password once per device. If a device has the secret ID but not the secret, posting explains exactly that instead of showing a generic login error.
  • Obsidian 1.11.5 or later is now required (minAppVersion raised from 1.8.7). 1.11.4 introduced the keychain API but did not yet encrypt it on disk, so 1.11.5 is the lowest version that actually protects the password.

JP

  • Bluesky のアプリパスワードを、平文ではなく Obsidian のキーチェーンに保存するようになりました。 v0.5.1 までは vault 内のプラグインの data.json にそのまま書かれていたため、同期先・バックアップ・公開 Git リポジトリなど vault を読める場所からパスワードが読めてしまう状態でした。今後、設定に残るのはシークレットIDだけで、パスワード本体は OS の暗号化機構で保護される Obsidian のキーチェーン(設定 → キーチェーン)に入ります。
  • 更新すると、既存のパスワードは自動で移行されます。 初回起動時に平文のパスワードが bluesky-app-password というIDでキーチェーンへ移され、data.json からは削除されます(完了時に通知が出ます)。手作業は不要です。ただし移行前に作られたバックアップや Git 履歴には平文が残っているため、気になる場合は削除してください。
  • これで防げないこと。 キーチェーンはすべてのプラグインで共有され、どのプラグインからもシークレットIDの列挙と値の読み出しができます。守れるのは vault の同期・共有・ディスクからの漏洩であって、悪意あるプラグインからではありません。Linux では暗号化に kwallet / kwallet5 / kwallet6 / gnome-libsecret のいずれかが必要です。
  • キーチェーンは端末間で同期されません。 アプリパスワードは端末ごとに1回入力してください。シークレットIDだけがあって中身が無い端末では、汎用のログインエラーではなく、その状況が分かる文言を表示します。
  • 動作要件が Obsidian 1.11.5 以降になりました(minAppVersion を 1.8.7 から引き上げ)。キーチェーンAPI自体は 1.11.4 で追加されましたが、ディスク上の暗号化は 1.11.5 からなので、パスワードが実際に保護される最低バージョンに合わせています。

Full documentation: 日本語 README | English README

0.5.1

Choose a tag to compare

@github-actions github-actions released this 09 Aug 06:29

📱 Mobile / モバイル

EN

  • Fixed: images could not be attached on mobile once the composer had focus. On iOS the layout viewport does not shrink when the software keyboard appears, so the modal stayed laid out at full screen height and its footer — the image button, the emoji button and the character counter — ended up behind the keyboard. A textarea only offers a return key, so there was no way to dismiss the keyboard and reach them.
  • The composer no longer raises the keyboard when it opens. Tap the text area to start typing. The image button and the character counter are visible from the moment the composer appears.
  • Added a dismiss keyboard button to the header, shown while the text area has focus. Pressing it brings back the image button, the emoji button and the character counter that were hidden behind the keyboard.
  • Desktop behaviour is unchanged: the composer still focuses the text area on open, and the new button is not created.

JP

  • モバイルで本文にフォーカスすると画像を添付できなくなる不具合を修正しました。 iOSではソフトキーボードが表示されてもレイアウトビューポートが縮まないため、モーダルが画面全体の高さのまま配置され、フッターの画像ボタン・絵文字ボタン・文字数カウンターがキーボードの裏に隠れていました。textareaには改行キーしかなく、キーボードを閉じてそれらに触る手段がありませんでした。
  • 作成画面を開いた時点ではキーボードを表示しません。 本文をタップすると表示されます。開いた直後から画像ボタンと文字数カウンターが見える状態になります。
  • 本文の入力中は、ヘッダーに「キーボードを閉じる」ボタンが表示されます。 これを押すと、キーボードの裏に隠れていた画像ボタン・絵文字ボタン・文字数カウンターを操作できます。
  • デスクトップの動作は変わりません。従来どおり開いた時点で本文にフォーカスし、このボタンは作成されません。

Full documentation: 日本語 README | English README

0.5.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 02:33

✍️ Markdown / Markdown記法

EN

  • Added an opt-in setting, "Convert Markdown before posting" (default: off). Write a post the normal Obsidian way and the markers no longer end up in the post.
  • [display text](URL) is posted as a real link. The long URL no longer eats into the 300-character limit.
  • Markers that Bluesky cannot represent are stripped: bold, italic, headings, quotes, strikethrough, highlight, inline code and code blocks. - bullet becomes ・bullet, and [[note|display name]] keeps only the display name.
  • The character counter counts the converted text, so the number shown always matches what actually gets posted. The draft list badge follows the same rule.
  • With [display text](URL), the link card is built from that URL even though the URL is no longer visible in the post text.
  • snake_case and 2*3*4 are left alone — markers inside a word are not treated as syntax.
  • History and draft notes keep the Markdown as you typed it, not the converted plain text.
  • Default is off so that updating the plugin never silently changes how your posts read.

JP

  • 「Markdown記法を変換して投稿」 設定を追加しました(既定: オフ)。Obsidianで普段どおり書いた投稿文から、記号のゴミが残らなくなります。
  • [表示テキスト](URL) が本物のリンクとして投稿されます。 長いURLが300字の枠を圧迫しません。
  • Blueskyで表現できない記号を取り除きます(太字・斜体・見出し・引用・取り消し線・ハイライト・コード・コードブロック)。- 箇条書き は ・箇条書き になり、[[ノート名|表示名]] は表示名だけが残ります。
  • 文字カウンターが変換後の文字数を数えます。 表示される数字と実際に投稿される文字数が食い違いません。下書き一覧のバッジも同じ基準です。
  • [表示テキスト](URL) を書いた場合、本文からURLが消えてもリンクカードはそのURLから作られます。
  • snake_case や 2*3*4 は変換されません。 単語の内側にある記号は記法として扱いません。
  • 履歴ノート・下書きノートには入力したままのMarkdownが残ります(変換後の平文ではありません)。
  • 既定をオフにしているのは、更新しただけで投稿の見え方が勝手に変わらないようにするためです。

💾 Drafts / 下書き

EN

  • Closing the composer with unsent content now asks whether to keep it as a draft note (default: on). Choose "Save draft", "Discard" or "Keep editing".
  • Esc and clicking outside count as "Keep editing", so unfinished text is never thrown away silently. "Keep editing" reopens the composer with the text and the attached images intact.
  • When the composer was opened from a draft note, that note is updated instead of creating a second copy. Its frontmatter is left untouched.
  • Attached images are kept as well; images chosen from the device are imported into the vault.
  • Added a setting for the folder new draft notes are created in (default: Bluesky Drafts, created automatically if missing).

JP

  • 書きかけのまま作成画面を閉じると、下書きノートに残すか確認します(既定: オン)。「下書きを作成」「破棄」「編集に戻る」の3択です。
  • Esc や外側クリックは「編集に戻る」扱いなので、書きかけが黙って捨てられることはありません。「編集に戻る」は本文と添付画像を引き継いで作成画面を開き直します。
  • 下書きノートから開いていた場合は、新しいノートを作らずそのノートを更新します。 frontmatter は変更しません。
  • 添付していた画像も一緒に残ります(端末から選んだ画像はvaultへ取り込まれます)。
  • 新規に作る下書きノートの保存先フォルダを設定できます(既定: Bluesky Drafts、存在しなければ自動作成)。

📝 Docs / ドキュメント

EN

  • Documented how Markdown actually looks on Bluesky: only links and bullets leave a visible result. A post record carries plain text plus link/mention/tag facets only, and the spec has no facet for decoration — so bold turning into plain text is the intended result, not a failed conversion.
  • Corrected the stale note claiming images cannot be attached on mobile (supported since v0.4.0).

JP

  • BlueskyでのMarkdown記法の見え方を明記しました。見た目に結果が残るのはリンクと箇条書きだけです。投稿レコードが持てるのはプレーンテキストと facet(リンク・メンション・ハッシュタグ)のみで、装飾用の facet が規格として存在しないため、太字が平文になるのは変換の失敗ではなく仕様どおりの結果です。
  • モバイルでは画像を添付できないという古い記述を修正しました(v0.4.0で対応済みです)。

⚠️ Known limitations / 既知の制限

EN

  • Bluesky posts have no bold, italic or headings. The conversion can only turn link syntax into a link and strip what cannot be represented.
  • @handle is not turned into a mention yet.
  • Embeds other than images, such as ![[another note]], are posted verbatim while the conversion is off.

JP

  • Blueskyの投稿に太字・斜体・見出しはありません。 変換でできるのは「リンク記法をリンクに変える」「表現できない記号を取り除く」までです。
  • @ハンドル はまだメンションになりません。
  • ![[別のノート]] のような画像以外の埋め込みは、変換をオフにしていると記法のまま投稿されます。

Full documentation: 日本語 README | English README

0.4.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 03:06

🖼️ Images / 画像

EN

  • Image attachment now works on mobile. It was desktop-only until now.
  • Attached images are recorded in draft and history notes. Previously they were posted to Bluesky but nothing was left in the note.
  • Added choosing images from the vault as an attachment source. The image button now opens a menu with "Choose from vault" and "Choose from device".
  • Images embedded in a draft note (![[photo.png]]) are now attached to the post. Previously the embed syntax was posted verbatim as text, spending characters without attaching the image (bug fix).
  • Added a setting to import device images into the vault (default: on). The location follows Obsidian's own attachment folder setting — the plugin does not add a folder setting of its own.
  • The draft list now shows how many images a draft will carry over.
  • Images over Bluesky's blob size limit (~1 MB) are compressed automatically, so a large PNG from the vault no longer fails to upload.

JP

  • モバイルでも画像を添付できるようになりました。 これまではデスクトップのみでした。
  • 添付した画像が下書きノート・履歴ノートに記録されるようになりました。 これまでは投稿されるだけでノートには何も残りませんでした。
  • 添付元として vault内の画像から選ぶ 経路を追加しました。画像ボタンを押すと「vault内の画像から選ぶ」「端末から選ぶ」を選択するメニューが出ます。
  • 下書きノートに埋め込んだ画像(![[写真.png]])が添付されるようになりました。 これまでは埋め込み記法がそのまま本文として投稿され、画像は付かないのに文字数だけ消費していました(不具合修正)。
  • 端末から選んだ画像をvaultに取り込む設定を追加しました(既定: オン)。保存先はObsidian本体の「添付ファイルの保存先」設定に従います。
  • 下書き一覧に、添付される画像の枚数を表示するようにしました。
  • Blueskyの画像容量上限(約1MB)を超える画像を、自動で圧縮してから送るようにしました。vault内の大きなPNGをそのまま添付してもアップロードに失敗しません。

⚠️ Known limitations / 既知の制限

EN

  • Up to 4 images per post (Bluesky limit)
  • Video attachment is not supported
  • Animated GIFs are posted as a still first frame (they are re-encoded before upload)
  • SVG cannot be attached
  • Images cannot be added by drag & drop or paste; use the button or the "Add image" command

JP

  • 画像添付は最大4枚(Bluesky側仕様)
  • 動画の添付には対応していません
  • アニメーションGIFは1コマ目の静止画として投稿されます
  • SVGは添付できません
  • ドラッグ&ドロップ・貼り付けでの追加はできません(ボタンまたは「Add image」コマンドから選択します)

Full documentation: 日本語 README | English README

0.3.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 10:22

日本語

ノートの紐づけ機能を追加

下書きノート・履歴ノートの frontmatter に、指定したノートへのリンクを自動で追加します。紐づけ先のバックリンク欄に投稿が集まるので、デイリーノートやMOCから当日の投稿をたどれるようになります。

---
posted_at: 2026-07-27T17:50:42
url: https://bsky.app/profile/xxx.bsky.social/post/3kabc...
related: "[[01_data/2026/07/2026-07-27]]"   # 自動で追加される
---
  • 紐づけ先は下書き用・履歴用で別々に指定できます。空欄にすればその側は紐づけません
  • vault内ノートのサジェスト付き入力欄で選択できます
  • プロパティ名は設定で変更できます(既定: related)
  • 紐づけ先ノート自体は書き換えません。リンクは投稿側のノートにだけ書かれます
  • 既に同じプロパティに値が入っている場合は上書きせず、既存の値を残したまま追加します。同じリンクが既にあるときは何もしないので、再投稿しても重複しません

日付変数に対応

紐づけ先の欄には日付変数を書けます。書式は Obsidian のデイリーノート/テンプレートのコアプラグインと同じ記法です。

01_data/{{date:YYYY/MM/YYYY-MM-DD}}   →   related: "[[01_data/2026/07/2026-07-27]]"
変数 展開結果
{{date}} 2026-07-27(既定書式 YYYY-MM-DD)
{{date:YYYY/MM}} 2026/07
{{time:HHmm}} 1750(既定書式は HH:mm。パスに使う場合は HHmm を推奨)

1つの設定に複数の変数を書けます。展開の基準は投稿日時(posted_at と同じ時刻)です。

紐づけ先のノートが存在しない場合の挙動は書き方によって変わります。変数入りなら未作成リンクとして書くので、その日のデイリーノートを後から作れば自動で繋がります。固定パスが実在しない場合はリンクを付けず通知のみ表示するので、紐づけ先をリネームした場合やパスの打ち間違いに気づけます。いずれの場合も投稿自体は成功として扱われます。

設定項目を3件追加

  • 紐づけプロパティ名(既定: related)
  • 下書きノートの紐づけ先(既定: 空欄=紐づけなし)
  • 履歴ノートの紐づけ先(既定: 空欄=紐づけなし)

English

Added note linking

A link to a note of your choice is added automatically to the frontmatter of draft and history notes. Posts then gather in the target note's backlinks, so you can browse a day's posts from a daily note or an MOC.

---
posted_at: 2026-07-27T17:50:42
url: https://bsky.app/profile/xxx.bsky.social/post/3kabc...
related: "[[01_data/2026/07/2026-07-27]]"   # added automatically
---
  • Draft notes and history notes have separate targets. Leave one empty to disable it
  • Both are picked through an input with vault note suggestions
  • The property name is configurable (default: related)
  • The target note itself is never modified — the link is only written to the posting note
  • If the property already holds a value it is not overwritten; the new link is appended alongside the existing values. A link that is already there is left alone, so re-posting never creates duplicates

Date variables

Link targets accept date variables, using the same syntax as the Daily notes and Templates core plugins.

01_data/{{date:YYYY/MM/YYYY-MM-DD}}   →   related: "[[01_data/2026/07/2026-07-27]]"
Variable Expands to
{{date}} 2026-07-27 (default format YYYY-MM-DD)
{{date:YYYY/MM}} 2026/07
{{time:HHmm}} 1750 (default format is HH:mm; prefer HHmm inside a path)

A single setting can contain several variables, and they expand against the posting time (the same instant as posted_at).

Behaviour when the target note does not exist depends on how it is written. A target with variables is written as an unresolved link, so creating that daily note later connects it automatically. A fixed path that does not resolve adds no link and shows a notice instead, so a renamed target or a typo does not go unnoticed. Either way the post itself is still treated as successful.

3 new settings

  • Link property name (default: related)
  • Draft note link target (default: empty — no link)
  • History note link target (default: empty — no link)

Full changelog: 日本語 README | English README

0.2.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 01:20

Post to Bluesky from notes, with post history, images & emoji.
ObsidianからBlueskyへ投稿できるプラグインです。下書きノート・投稿履歴・Images・Emoji対応。

✨ New features / 新機能

📱 Mobile support / モバイル対応

  • Works on the Obsidian app for iOS and Android (isDesktopOnly: false). Only the image attachment UI is hidden on mobile — every text posting feature works.
  • iOS / Android のObsidianアプリでも投稿できるようになりました。モバイルでは画像添付UIのみ非表示で、テキスト投稿の全機能が動作します。

📄 Post from draft notes / 下書きノートから投稿

  • Notes with type: bluesky-draft in their frontmatter appear in a draft list, with a character-count badge (red past 300). Run Post from draft notes or use the ribbon icon.
  • On success the note itself is marked as posted: bluesky_posted (a checkbox), posted_at and url are added, and the draft value is removed so it drops out of the list.
  • frontmatter に type: bluesky-draft を書いたノートが下書き一覧に表示されます(文字数バッジ付き・300字超は赤色)。コマンド「Post from draft notes」またはリボンアイコンから開けます。
  • 投稿に成功すると、そのノートに bluesky_posted(チェックボックス)・posted_at・url が付き、下書き判定値が取り除かれて一覧から消えます。

📋 Automatic post history notes / 投稿履歴ノートの自動作成

  • Off by default. When enabled, each post from the composer creates a note with the body, timestamp, post URL and tags. Hashtags in the body are moved into frontmatter tags.
  • The destination folder is chosen from a folder-suggest input, and is created automatically if it does not exist.
  • 既定はオフ。有効にすると、投稿モーダルからの投稿ごとに本文・日時・投稿URL・タグを持つノートが作られます。本文中のハッシュタグは frontmatter の tags に移されます。
  • 保存先はフォルダサジェスト付きの入力欄で選択でき、存在しないフォルダは自動作成されます。

⚙️ Four new settings / 設定項目を4件追加

  • Draft property name / 下書きプロパティ名(既定: type)
  • Draft property value / 下書き判定値(既定: bluesky-draft)
  • Save post history / 投稿履歴を保存(既定: オフ)
  • History note folder / 履歴ノートの保存先(既定: Bluesky Posts)

🐛 Fixes / 修正

  • Link previews were not refreshed while typing / 本文入力時にリンクプレビューが更新されない不具合
  • Posts containing a link with a thumbnail failed to send / サムネイル付きリンクを含む投稿が失敗する不具合
  • Re-login on expired auth, rate-limit retry and detailed API error messages were never reached / 認証切れの再ログイン・レート制限時の再試行・APIエラーの詳細表示が機能していない不具合
  • An incomplete URL typed into the body stopped the composer from picking up any further input / 入力途中の不完全なURLを含む本文で、それ以降の入力が反映されなくなる不具合

📦 Install / インストール

Available from Settings → Community plugins → Browse, or install manually by placing main.js, manifest.json and styles.css in <your-vault>/.obsidian/plugins/post-to-bluesky/.

設定 → コミュニティプラグイン → 閲覧 からインストールできます。手動の場合は main.js・manifest.json・styles.css を <vault>/.obsidian/plugins/post-to-bluesky/ に配置してください。

Requires Obsidian 1.8.7 or later. / Obsidian 1.8.7 以上が必要です。

📖 Documentation / ドキュメント

日本語 README | English README

Full changelog: 0.1.6...0.2.0

0.1.6

Choose a tag to compare

@github-actions github-actions released this 25 Jul 09:16

What's Changed

Maintenance release addressing all warnings from the official plugin review scans. No functional changes to posting features.

  • Plugin settings now appear in Obsidian's settings search on Obsidian 1.13+ (adopted the declarative settings API, with fallback for older versions)
  • Timer functions now use window.setTimeout/window.clearTimeout per plugin guidelines
  • Replaced custom DOM helpers and any types flagged by the review
  • Removed !important from styles
  • Updated dev dependencies (eslint 10, latest Obsidian typings); zero npm audit findings
  • Release assets now include build provenance attestation
  • minAppVersion is now 1.8.7

Full Changelog: 0.1.5...0.1.6

v0.1.5

Choose a tag to compare

@RieTamura RieTamura released this 09 Mar 07:13

What's Changed

  • fix: register modal hotkeys to modal scope so they work while typing in the text area (Submit post, Cancel post, Add image, Toggle emoji picker)

Full Changelog: 0.1.4...0.1.5

0.1.4

Choose a tag to compare

@RieTamura RieTamura released this 09 Mar 06:46

What's Changed

  • fix: use callback instead of checkCallback so all hotkey commands appear in Obsidian hotkey settings (Submit post, Cancel post, Add image, Toggle emoji picker)

Full Changelog: 0.1.3...0.1.4

v0.1.3

Choose a tag to compare

@RieTamura RieTamura released this 09 Mar 06:24
9a15d8d

What's Changed

  • fix: use callback instead of checkCallback so hotkey commands appear … by @RieTamura in #9

Full Changelog: 0.1.2...0.1.3