Closed13

記事のバックアップ

hymkorhymkor

ウェブインターフェイスで不満はなかったので、GitHub 連携をせず、ウェブで記事を書いてたけど、履歴管理できないのが不便。すでに公開した記事の markdown をバックアップする方法はないか?

手動でやるならば、

という記事に対して

という URL で markdown ソースを確認できる。が、これはログイン済みのブラウザ経由でしか開けない。ログアウトした状態だとエラーらしきテキストが得られるだけだ。

単品記事ならばこれでよいが、Book がある場合、これは厳しい。

RSS フィードは https://zenn.dev/zetamatta/feed で得られるが、こちらには markdown テキスト、もしくは markdown へのリンクなどは出ていないようだ。

catnosecatnose

GW明けにエクスポート機能を公開します…!ダウンロードしたファイルをそのまま連携したGitHubリポジトリに配置することでスムーズにGitHub連携がはじめられます。

もうしばらくお待ちいただくのが良いかもしれません。

hymkorhymkor

記事:Zennの記事をexportする

この記事では JavaScript を開発者コンソールから実行するという方法をとっている。ただし、HTML として得られた情報を逆変換するということをやっているようで、オリジナル markdown が得られるわけではないようだ。

ただし、この記事に、運営氏から

現在、zenn.devから連携したGitHubリポジトリへコミットする機能の実装を検討しています。

というコメントが出ているので、将来的に公式からの対応も期待はできそうだ。また

ちなみにユーザーご自身の記事であれば、以下のURLを打ち込むことでマークダウンを取得できます。

https://zenn.dev/api/articles/記事のslug/markdown

とのコメントも出ている。/markdown の方だと、/blob.md と違って JSON で出ているので、加工がなくてよい分、拾い上げるのが楽そうである。が、こちらもやはりログアウト状態だと、アクセスできない(扉ページへリダイレクトされる)

hymkorhymkor

chromedp の記事をいろいろ見たが、HTMLページをスクレイピングするのが前提で、HTMLのどの場所の DOM 要素に対して操作を行うというような内容を説明している場合がほとんどだ。

なので、minetype が text/html でない生の JSON , markdown をゲットする場合、どの関数・メソッドを呼び出すべきかが分からない。まぁ、普通、そういう場合は http で直接問い合わせるわなー。だが、それには Googleの OAuth の認証を通らないといけないので、そうもいかんのだ。

OAuth は twitter で一度やったことあるけど、zetamatta/tmt: tmt - Twitter Maintenance Tool)の時は twitter から OAuth のトークンを得て、twitter の API にアクセスするライブラリを使うだけというものだったからなぁ。Google から OAuth のトークンを得て、Zenn の普通の URL にアクセスするとなると難度がぶわっとあがる、ぶわっと。心折れそう

hymkorhymkor

https://github.com/chromedp/chromedp/issues/128#issuecomment-461324273

のソース中にある、

out, err := exec.Command("sh", "-c", "/root/tools/chromium-latest-linux/latest/chrome --headless --no-sandbox --dump-dom http://url_here").Output()

の chrome を C:\Program Files\Google\Chrome\Application\chrome.exe に変えてもダメ。
どうも、使用中の chrome は、--dump-dom オプションをサポートしていないらしい

hymkorhymkor
  1. まじめにログインの経路をとおる

→ zenn.dev のログイン状態が維持できてないのに、なぜ Google のログイン状態は維持されると思った?

  1. サンドボックスなしモードでゆく

→ 「そういうの、実はもしかしてないのでは?」という考えが脳裏をよぎる。そこへ

GW明けにエクスポート機能を公開します…!ダウンロードしたファイルをそのまま連携したGitHubリポジトリに配置することでスムーズにGitHub連携がはじめられます。
https://zenn.dev/zetamatta/scraps/de1f4ab13a37ea#comment-bd15eec82597d1

とのコメント。よし、それ、待とう!

このスクラップは2021/05/01にクローズされました