投稿

10月, 2025の投稿を表示しています

textareaが自動的に縦に伸び縮みするJavascript

  textareaに入力した文字が増えた時に自動的に縦に伸びるコードはcssだけでは実現できないらしく、Javascriptが必要らしい。その為のコードをGeminiに教わったのだけど、外側にdivの枠があると、そのdivの高さを超えた場合にtextareaのスクロールバーだけでなく、その外側にdivのスクロールバーが現れて、見た目が悪いだけでなく使いにくくなる。そこで、Javascriptでtextareaが overflow:hidden; になるようにする。cssで overflow:hidden;にすると、Javascriptが無効な場合にスクロールバーが現れなくなるのでダメだそうだ。  実験用のコードは次の通り。 <div style="width:300px; height:100%; overflow:auto; border:1px solid;"> <textarea id="autoResizeTextarea" style="resize:none; width:100%; min-height:100px; overflow:auto; "> 123456789012345678901234567890 </textarea> </div> <script> document.addEventListener('DOMContentLoaded', () => {     const textarea = document.getElementById('autoResizeTextarea');     const minHeight = 100; // CSSのmin-heightと合わせる     textarea.style.overflow = 'hidden'; // textareaにスクロールバーが表示されないようにする     function adjustHeight() {         // textareaの文字が減った場合にサイズを縮める         textarea.sty...

マストドンのアーカイブをcsv形式にするコード

  mastodon-japan.netサーバーが閉鎖されるとのことなので、アーカイブをダウンロードした。その中に、outbox.jsonがあった。これはテキストエディタで開くには重すぎる。ただし、Windowsの「メモ帳」なら開ける。このoutbox.jsonから重要なデータを抽出してcsv形式にすることにした。jqというものを利用した。 https://jqlang.org/  このコードについては全く分からないので、Geminiにコードを作成してもらった。  to_csv.jq というファイルと to_csv.bat というファイルを作成して同じディレクトリーに置き、to_csv.bat を実行すると mastodon_data.csv というファイルが同じディレクトリーに作られる。  画像などの添付ファイルについては、アーカイブのzipファイルの media_attachments フォルダーの中のかなり深い階層に収納されていて、その位置は outbox.json に記載されているので、その位置も抽出することにした。投稿のidと日時とactorとコンテンツとinReplyToと画像などの添付ファイルの位置を抽出したのだが、idとactorはURL形式だった。  また、コンテンツに「"」や「,」が含まれている場合が心配だったが、Geminiによると、「ご使用になった jq のフィルタには、CSVの標準ルールに従ってこれらを自動で処理する仕組みが組み込まれていますので、 基本的に列がずれる心配はありません。 」とのことだった。最終行の @csv 演算子 のおかげらしい。 この @csv 演算子 が非常に重要で、以下の標準的なCSVルールに従ってデータを安全にエンコードします。 カンマ ( , ): (Geminiの嘘だと思ったが正しかった。「 データフィールド内にカンマが含まれている場合 」に限らず、コンテンツ全体が""で囲まれているから,のままで大丈夫) データフィールド内にカンマが含まれている場合、そのフィールド全体は 二重引用符 ( " ) で括られます。 例: あ,い,う → "あ,い,う" 二重引用符 ( " ): (Geminiの嘘。コンテンツ内の"は...