Skip to content

Conversation

@Tatsu723
Copy link
Contributor

目次を作成しました。

[概要]

  • sidebarはクライアントコンポーネントにしました。
    (サーバーコンポーネントで目次を作る方法も試しましたが、うまくいかず途中で諦めました。)
  • mdcontentの内容はSWR fetcherを用いて取得しました。
  • splitMarkdownについては、クライアントコンポーネントのsidebarには直接呼び出せなそうだったので、クライアント用のsplitmarkdownを作りました。(もしもっと効率的な方法があれば教えてください。)

[展望]

  • 現在いるセクションの目次部分をマーキングしたり、別のセクションにジャンプできるようにすると良さそう。
  • デザインとしての見やすさは改善の余地がありそう。

*今回の作業はあまり慣れていなかった部分を扱ったので、致命的なミスなどがあるかもしれません。どうか入念にご確認お願いします。

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Aug 29, 2025

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
my-code 6899f4e Commit Preview URL

Branch Preview URL
Aug 30 2025, 01:04 PM

@na-trium-144
Copy link
Contributor

na-trium-144 commented Aug 29, 2025

splitMarkdown.tsのほうは、不必要にサーバー専用関数にしてしまった僕が悪いんだけど、(クライアントから呼ぶと思わなかった)
"use server"; を消してasyncを消して返り値をPromiseでなくすればクライアントからも呼べるようになると思います

#で始まる行を見出しという感じで自作しようとすると、Pythonコードのコメントが見出しになってしまうみたいに問題が起きるので
(レベル1の見出しを非表示にしてるから目次には出てきてないけど)

@Tatsu723
Copy link
Contributor Author

pyodide.tsxの修正は、npm run lintで警告がでたため行いました。

@na-trium-144
Copy link
Contributor

na-trium-144 commented Aug 30, 2025

あとレベルに応じてインデントするとか?
レベル2はそのまま、レベル3はmarginLeft:10px、...とか

(本当はレベル2にulを作ってレベル3はその中に入れるのが正しい気もする...? 無理にしなくてもいいけど)

@Tatsu723
Copy link
Contributor Author

level3はlevel2の中にインデントされるようにしました。
(リンクのidについてはネストされてません)

@Tatsu723
Copy link
Contributor Author

marginleftにインデント方法を変えました。

@Tatsu723
Copy link
Contributor Author

念のためlevel4以下にも対処できるやり方にしました。

@Tatsu723 Tatsu723 merged commit 7527879 into main Aug 31, 2025
3 checks passed
@Tatsu723 Tatsu723 deleted the TOC branch August 31, 2025 07:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants