🛼

開発日記-2024-07-21 / Rubyのスクレイピング関連の調査

公開日2年以上前2024-07-21
MarkdownRaw Content

RubyのURI must be ascii only

URI.parse では URI must be ascii only エラーが出てしまう。なので、Addressable::URI.parse を使う。

Ruby 2.1 と 2.2 における、URI#parseの挙動の違い - Qiita

mechanize

mechanizeで "\xE3" from ASCII-8BIT to UTF-8 のような文字コード関連のエラーが起きた場合。

agent.page.body.encode(Encoding::Windows_31J, Encoding::UTF_8, undef: :replace)
mechanizeでgetしたhtmlが化けているっぽいんです - なんでや。。 GitHub - sparklemotion/mechanize: Mechanize is a ruby library that makes automated web interaction easy.

devcontainerのzshを簡単にカスタマイズする方法を調べている

ローカル環境をpreztoでカスタマイズしているので、devcontainerのzshも同じようにカスタマイズするためにスクリプトを作って使い回しているのだが、もっとスマートな方法はないのか調べている。

https://medium.com/@jamiekt/vscode-devcontainer-with-zsh-oh-my-zsh-and-agnoster-theme-8adf884ad9f6

Connect-goとVSCode Dev Containerを用いた快適なgRPC開発環境構築

NextUIのScroll Shadowとtocbotのバグ

NextUIのScroll Shadowとtocbotを合わせて使っているのだが、目次の項目が長くなると最下部までスクロールしても下部のScroll Shadowの影が消えない。

  • 目次部分の高さを半分くらいにすると正常に消えるようになる
  • ブラウザの開発者ツールで目次にDOMを追加・削除すると正常に消えるようになる
  • tocbotを使わずに同じような高さの要素を静的に出力させてみると正常に消えるようになる

結局解決策はわからないので進捗だけメモしておくことにした。

tocbotの使い方を間違っていた

tocbotの親のdivに overflow-y: scroll; をつけていると、コンテンツ側のスクロールにtocbot側が追従しなかった。

下記のように修正することで、コンテンツ側のスクロールに合わせて目次側もスクロールするようになった。

<div class="tocbot-container">
  <div class="tocbot"></div>
</div>
.tocbot-container {
  overflow-y: scroll; 
}
.tocbot {
  overflow-y: scroll; 
}

shikiのdiffの書き方は言語のコメントアウトの違いによって変わる

CSSの場合
.tocbot-container {
  overflow-y: scroll; /* [!code --] */
}
.tocbot {
  overflow-y: scroll; /* [!code ++] */
}
TypeScriptの場合
const hello = 'world'; // [!code --]
const hello = 'new world'; // [!code ++]

すごい。