ScholarViewは、研究執筆に特化したMarkdownエディタと、AT Protocolでの公開・議論をひとつにしたアプリです。
「ただ書く」だけではなく、次の3つを一気通貫で扱います。
- 研究メモ/草稿をローカルワークスペースで編集する
- BibTeX・数式・図表を研究向けの文法で扱う
- 論文として公開し、Bluesky上でインライン議論する
汎用ノートではなく、研究者の執筆フローに寄せた設計が前提です。
- フォルダ/ファイル型ワークスペース(ドラッグ&ドロップで並び替え・フォルダ移動)
- Markdown中心のブロック編集(見出し、数式、画像、引用)
@から citation 候補を出し、本文では[n]形式で参照表示- プロジェクト配下の複数
.bibを自動認識して参考文献を生成 - 参考文献を本文下に自動表示(本文の
[n]からジャンプ可能) .md/.texエクスポート(参考文献付き)sci.peer.articleへの公開と、Bluesky告知投稿- 公開後のDiscussion同期(Bluesky thread + ローカル保存のマージ)
- プロジェクト用フォルダを作る(例:
paper-a/) - 草稿ファイル(
.md/.tex)とreferences.bibを置く - 本文で
@citationKeyを使って引用を挿入する - 保存しながら執筆し、必要なら
.md/.texで出力する - PublishでAT Protocolに公開し、Blueskyで議論する
pnpm install.env.local 例:
NEXT_PUBLIC_SITE_URL=http://127.0.0.1:3000pnpm dev / pnpm build 実行時に public/client-metadata.json が自動生成されます。
本番では NEXT_PUBLIC_SITE_URL を実際の公開URLに設定してください。
dev 実行時にマイグレーションが自動実行されます。
pnpm devsci.peer.article のLexiconは lexicons/sci.peer.article.json にあります。
lex build --importExt="" --indexFile --clear- Vercel静的配信前提(
next.config.tsはoutput: "export") - 認証:
@atproto/oauth-client-browser - ローカル永続化: IndexedDB
/api/*はブラウザ内のfetchブリッジで処理(サーバーRoute Handlerなし)- OAuth client metadataは
public/client-metadata.jsonを静的配信
- 今回のSPA静的化(
@atproto/oauth-client-browserへの移行を含む)実装はspa-static-migrationブランチで実施 mainブランチには段階的に反映する方針- DB機能を使い、
sci.peerLexiconを通じて世界中の論文を検索する機能はarchive/monolith-with-dbブランチにアーカイブ済み - 世界中の論文検索機能を試したい場合は、このリポジトリをローカルに clone して
archive/monolith-with-dbブランチをチェックアウトし、pnpm devで起動して確認してください
- OAuth scope:
atproto blob:*/* repo:sci.peer.article?action=create&action=update&action=delete repo:app.bsky.feed.post?action=create&action=delete repo:app.bsky.feed.like?action=create repo:app.bsky.feed.repost?action=create handleResolverはhttps://bsky.socialを使用- Webhook保護のため、
TAP_ADMIN_PASSWORDはTap側と必ず一致させてください