調べると、意外とないんですよね日本語markdown to pdf。popularなのはMS Visual Studio Codeの拡張機能Markdown PDF使うものですけど、たったそれだけのためにVisual Studio Code入れたかぁないですし。 nodeのmarkdown-pdfやmd-to-pdfとかサクッと出来そうだったんですけど、古いのか、どうしようもないエラーが出ます。
12345678910111213141516171819202122
docker run --rm -it -v $PWD:/work -w /work -e https_proxy=http://192.168.120.1:3128 node:alpine sh
# npm i -g markdown-pdf# markdown-pdf some.mdnode:events:497
throw er; // Unhandled 'error' event
^
Error: spawn /usr/local/lib/node_modules/markdown-pdf/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs ENOENT
:
# npm i -g md-to-pdf# md-to-pdf some.md(node:29)[DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created) Puppeteer old Headless deprecation warning:
:
â generating PDF from some.md
â TROUBLESHOOTING: https://pptr.dev/troubleshooting
ListrError: Something went wrong
at /usr/local/lib/node_modules/md-to-pdf/node_modules/listr/index.js:102:18
:
エラー 400: invalid_request The out-of-band (OOB) flow has been blocked in order to keep users secure. Follow the Out-of-Band (OOB) flow migration guide linked in the developer docs below to migrate your app to an alternative method.
そうすると、http://localhost:8080/?state=.... へ回されて止まるので、C-aで別screenを開いて、そこでw3m 'http://localhost:8080/?state=...'とすると、The authentication flow has completed. You may close this window.と言われます。徐に元のscreenに戻るとcredential objectができているので、credential.refresh_tokenとすると、漸くREFRESH_TOKENを得られます。1時間有効なACCESS_TOKENはcredentail.tokenで得られます。
としたら、gradle-1.8.jarを取りに行って404 not found食らって動きません。 このgrainって古いしもう更新止まってるし、先見の明なかったなぁということなんですが、もうちょっと本気で原因究明です。 https://services.gradle.org/distributions/ はあるのになぜ404? と思ったら、http://...で取りに行ってました。gradlewのgradleが古すぎる? grainwのどこで止まってるか、debug print入れて割り出すと、./gradlew gendepsでした。これをversion 6.8.1のgradleで手動でやってみる(gradle gendeps)と、build.gradleのline: 78で止まります。なんで?と思って調べると、「Cannot add task 'wrapper' as a task with that name already exists.」が出たにあった通り、でした。
ansible_python_interpreter: /usr/bin/python3はpython binaryを探す順序があって、/usr/bin/pythonを先に見つけてしまい、version 2を使ってしまうのを防ぐため。Macだと/usr/bin/pythonがpython2で、python3は/usr/bin/python3なので。ここのversionが合わないと、The error was: No module named 'requests'"と言われて何が悪いのかさっぱりだった。基本的にはpip3 install dockerが足りなかったのだが、その他に、このようにansibleが自分で見つけて使っているpythonのversionと自分がcommand lineで使っていてpip installしたpythonのversionがずれていると、このように言われる、ことがわかった。その他にもinventoryで指定することもcommand line optionで指定することも出来る。command line optionで-e ansible_python_interpreter=/usr/bin/python3とするのが最も柔軟だが、これはplaybooks中の値を全て上書きするので、やはり注意が必要だった。pythonってversionややこしくて...