たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 5130
目次
これ作るのに大変だったこと
Vuetifyが<code>に色つける。
CSS
Processmdくんが時系列順に並べてくれない
ページネーション
<v-card>が遅い?→いつの間にか直った?
記事一覧を再読み込みした後記事を開くと404
sw.jsがよくわからんけどバージョン管理対象外になっててホーム画面に追加が消えてた
Hexoと違ってリアルタイムで記事の内容が反映されない
マークダウンに書いたURLがリンクにならない
しれっとNetlifyにお引越ししたりした。
実は静的サイト書き出しできてなかった
(本当かわからんけど)開発時(localhost)の時は別のタブで開けない?
特に大変じゃなかったこと
PWA
ダークモード
端末がダークモードかどうか
おわりに
TypeScript(nuxt/content)化に伴いこの記事は古くなり、ここに書いてある内容も(ほぼ)関係なくなっています
Hexoってすごいんだなって。
なお完成はいつになるかわかりません。いつ出来上がるんだこれ?
完成までに思ったことを書いていくと思う。
あとドメインが欲しい。買ったこと無いけどどうなんですかね?
書く。
<code>
に色つける。Vuetifyくんが勝手に色を付けてくれます。が、なんかいまいちなので頑張ってCSS書いて直したいんですが、
Vuetifyくんが許してくれません。?
しかたないので!important
で黙らせました。
assets/css/styles.css
ついでにhighlight.js
のCSS、vs2015.css
を入れてコードにシンタックスハイライトをつけようとしたんですけど、これもうまく動かなかったのでvs2015.css
に!important
付けて対応しました。
CSSよくわがんね。
これは記事一覧のタイトルをマウスオーバーするとジワーッと色が変わるCSSです。
これはおま環境かもしれないけど、時系列順に並んでくれません。
流石に時系列順にならないのはきついので、JavaScriptで時系列に並び替えるコードを書きました。sort関数あったし。
KotlinのsortBy{}
とは使い方が違っててちょっと迷った。
あとprocessmdくん、/posts/jsonに消した記事が残ってるんですがそれは、、
追記(2020/06/27):もしかしたらこれ書く必要ないと思う(_id.vue
ファイルは必要だと思う)
詳細→ Nuxt.jsを2.13に上げた時の話
次のページ、前のページを付けることを、ページネーションって言うそうですよ。
これ付けないと記事が増えたときのスクロールがとんでもないことになる。
記事一覧はこんな感じに静的に出してほしいので(postsに置くとタイトル被りそうなのでpageフォルダがある。)
特に需要はなさそうですが一応必要なページ数に合わせてposts/page
の配列を返す関数置いときますね。
これ動かすにはpostsフォルダ
にpageフォルダ
を作って中に、_id.vue
を置いておく必要があります。
これでposts/page/1
などが生成されるようになります(多分)
この記事書いてる途中でなんでこれ動いてんのかよくわからなくなったのは内緒←やっぱり生成できてなかったので直しました。(2020/06/03)
<v-card>
が遅い?→いつの間にか直った?何故か知りませんが、VuetiryのCardコンポーネントがおそい。というかページ遷移がこいつのせいで遅くなる。
せっかくの静的サイトで遅いのは辛いので直したい。(しかも記事一覧に戻った時にワンテンポ遅れるとか見てられない)
で、なぜか<v-card>
を<v-sheet>
に置き換えることで解決しました。
なんで?
なんかしらんけどF5するとURLの後ろに/
が入ります。
最後に/
が入っていないのが前提で作っているので、最後に入ると ../
(一個前に戻る) がおかしな場所を指すようになります。
---追記---
別に../
使わなくても良いことに気付いたのでこの問題は解決しました。
to='/posts/first'
みたいな感じで別に戻る必要ありませんでした。
---追記おわり---
というかこれは私の作り方(ファイル構成)が悪いですね、なんで戻ったりしないといけないんだ。
今回はnuxt.config.js
を開き、URLの最後に/
を入れる設定を付けました。おかげて修正が必要になりましたが。
sw.js
がよくわからんけどバージョン管理対象外になっててホーム画面に追加が消えてたGitHubのリポジトリ開いて/docs
開いたら見事にServiceWorkerだけ抜けてました。なんで?
Hexoって書いてる途中でも、リロードすれば記事の内容が更新されてどんな感じに見れてるか確認できるんですけど、processmdくんデフォルトだとできないっぽい?
processmd
見る感じ、ファイルの中身を監視する--watch
オプションが存在するのでそれ使えばよさそうです、
それで適当にpackage.json
のscripts
の中に実行とprocessmdの監視オプション付きを同時に実行する様に書いたんですけど、
nuxt起動から先に進みません!そりゃnuxtもファイルを監視してるからそこで止まりますよね。
それでどうすれば同時に(並列に)起動できるかって話ですが、npm-run-all
ってのを使えば並列実行ができそうです。
ただ、これ使っても更新できるのは記事の中身だけで記事一覧(summary.json)は更新できないっぽいです。(nuxt起動時にsummary.jsonが空っぽだぞって怒られる。どうやら一度消えるらしい?)
でも記事の中身がリアルタイムで反映されるようになったので満足です。VSCode半分にしなくて済むし。
参考程度のpackage.json
のscript
npm run all
を実行すると
--stdout
オプションは外してあるので、記事一覧は更新されない。--parallel
のあとに指定したスクリプトが並列で実行され、その前に書いてあるスクリプトは直列で実行されます。
ちなみにprocessmdくんがJSONファイルを書き換えるとnuxtのファイル変更監視に引っかかるので自動で更新されるようになります。すげえ
たまにundefinedになるけどしゃーない
processmdくんのオプションに--markdownOptions.linkify
をくっつけて実行すればいいです。
GitHubPagesより良いのかはしらんけどお試しで引っ越してみた。これ勝手にメアド公開したりしないよな?
Netlify へデプロイするには?ってのが有るのでそれに沿ってやればできると思います。
じゃあなんで大変だったことに書いてんだよって話ですが、っぱコケるんですね。
あーJSだからしゃーないのかなーなんて思ってとりあえず検索すると、Chromeのバージョン的に対応していない
とか出てきたのでワンちゃんNode.jsくんのバージョンがおかしいのではないかと考えました。
NetlifyにNode.jsのバージョンを指定する方法ですが、検索したらありました。 参考元
.nvmrc
というファイルを置いて、中にNode.jsのバージョンを書くだけで解決しました。
v12.14.1
これだけ。これで成功しました。
ちなみサイト作成時のステップ3で、ビルドコマンドにnpm run generate
、ディレクトリをdocs(GitHubPagesの名残)
すれば、コミット+プッシュ時に勝手にnpm run genreate
して公開してくれます。らく
これは別に記事に書いた→ Nuxtの静的サイトジェネレートはモードをuniversalにしよう
読みたくない方向け→nuxt.config.js
のmode:
をuniversal
にすればHTMLに書き出してくれます。
spa
だとHTMLのbody見てもscriptタグが何個か有るだけで、内容はJS実行されるまで表示されませんでした。
universal
ならHTMLに書き出してくれるのでJS切っても見れます。
記事を別のタブで開くと永遠に読み込んでたりするんだけどもしかして別のタブで開くことできない?
PWAってめんどいんですよ。アイコン画像を用意するのがね!!!。
192x192だったり512x512だったりいっぱい要求してくるんですけど、
@nuxt/pwa
は指定がない場合、static/icon.png
を使ってくれるので、512x512のpngを置いておくだけで終わりました。PWA RTA行けそう(は?)
一応nuxt.config.js
のmanifest
置いておきますね。
Vuetifyなら
で終わります。Vuetifyすげー
ダークモード切り替えスイッチの例置いときますね。
三項演算子使うの初めてかもしれない(まずKotlinにはないし)
ところで$←これなに?
以下のJSでダークモードかどうかを監視して、Vuetifyのモードを変更するようにできます。
参考:StackOverflow
StackOverflow先生の回答ではe.matches
にdarkかlight
が入ってるっぽいんですが、私のChromeくんではtrueかfalse
でした。先生の回答ちょっと古かったのかな。
まあダークモードなんてあんま使わないんですけどね(は?)
学校始まるわ。早起きつっら
あと画像貼る方法確立してない。imgur使うか?