Grav
Grav
gravのメモ。もちろん詳細は 本家 からコードから学ぶこと。このページはその結果を簡単にメモしたもの。
===
installation
公式サイト に沿って requirement, installation をやる。
こまごました使い方
- なんでかhomeページがよくエラーになる。その時ここをいじると治った
- format: longはdelimiterを使わずに制限文字数で区切ってsummary化する, shortは記事に打たれたdelimiterの箇所で区切ってsummary化する。
- delimiter: ここで指定した記号を記事の中に書くと、そこ以前をsummaryページに入れてくれる。 format=shortにしておくことが条件
記事を書く手順: admin panelから記事を作成、保存を基本とする。権限についてはここが詳しい。consoleから書くのはよほどvimに頼りたいときに限る。
simplesearchやrandomに引っ掛けるには、taxonomy categoryに**“blog”**を登録する必要がある。デフォルトでついてくれないかなぁ。
画像のサムネイル化: lightboxで実現可能らしいし、プラグインのインストールも可能。
lightbox
を指定して、サムネイルの大きさをresize
で指定。![swagger-ui](/image/swagger-ui.png)
チューニング記録
結構納得いかないエラーばっかり
TOC pluginを有効化したら出たエラー。
- エラー
#0 [internal function]: Whoops\Run->handleError(2, 'array_keys() ex...', '/home/george/gr...', 440, Array) $
- 本家にissue上がってるのに治ってないやん
- 仕方ないから書いてある通り直した。
if (is_array($replacements))
$text = preg_replace(array_keys($replacements), $replacements, $text);
- issue listに「早く提案をmergeして!」とコメントしておいた。
code部分に余計なpaddingが載る
何とかしたい。。
- workaround: F12から’pre’タグのpaddingが32になっていることを突き止める。
- user/themes/antimatter/css-compiled/template.css の line 436 を直す(2remから0remへ):
padding: 0rem;
admin panel から ページ更新できない
- エラー:
Argument 1 passed to Grav\Common\Page\Page::move() must be an instance of Grav\Common\Page\Page, null given, ...
- 対処できず、仕方なく terminal から直接記事を更新していた…
- 参考リンク: この辺 が近いので、見ながら blueprint の勉強から?
- 対処: 分かったよ! 2017/07/08
- この記事もそうだが、 article(root) > productivity > grav-note(これ) という階層の中で、 grav-note を編集したいとき、 Configuration - System (/user/config/system.yaml) のなかで
Hide home route in URLs
がデフォルトでyes
になっているが、このままだと URL がhttps://www.georgeorge.com/blog/productivity/grav-note.html
となる。no
にしてhttps://www.georgeorge.com/blog/article/productivity/grav-note.html
としてあげることで解決した。うーん、引っかかるよねこれ…
- この記事もそうだが、 article(root) > productivity > grav-note(これ) という階層の中で、 grav-note を編集したいとき、 Configuration - System (/user/config/system.yaml) のなかで
Atom + Remote-FTP で ローカルの端末で記事を編集したい!
- 自分を apache groupに所属させる
$ usermod -aG apache <username>
- Gravのルートディレクトリのpermissionを変更 (ownerを変え、groupにwrite permissionを与え、それを維持できるよう各ディレクトリにsetgidを与える)
$ sudo chown -Rv <username>:apache grav-skeleton-blog-site $ sudo chmod -Rc g+w $ find ./ -type d | xargs chmod 2775
- apache に umaskを設定し、apacheが作るfile, dirに group write permissionを与えられるように
# echo "umask 002" >> /etc/sysconfig/httpd # service httpd restart
- Grav自身にpermission設定関係の項目があるので,
user/config/system.yaml
を編集 (image cacheだからそんなに重要じゃないかもだけど)images: cache_perms: '0775'
- Atom をインストール
- Remote-FTPをインストールし, gravのroot dirをsyncするように設定。 詳細はatomのページ参照.
/root/user/pages/
配下を編集したいなら, ローカルの.ftpconfig
の例は以下の通り.
{
"protocol": "sftp",
"host": "hostname_or_ip",
"port": 22,
"user": "your_username",
"remote": "/full/path/to/grav-root/user/pages",
"privatekey": "~/.ssh/your_id_rsa",
"hosthash": "",
"ignorehost": true,
"connTimeout": 10000,
"keepalive": 10000,
"keyboardInteractive": false,
"keyboardInteractiveForPass": false,
}
plugin
GitSync
githubやbitbucketにページをバックアップできるプラグイン。
- 注意! 正しく設定されていないまま使うと、ページ更新のたびに同期処理が完了せず、 admin プラグインからの応答が返ってこない。必ず connection test をパスすることを確認。
- bitbucket は無料で private repository を使えるので、自分は bitbucket を採用。
- tokenを使って認証。パスワードを直接設定するより、権限を絞れる & いざという時に連携を切れる(tokenの削除)
Page Summary
ちゃんとできるよ。 Admin panel > Configuration > Site > Page Summaryにて色々設定可能。
- delimiterの使い方
- Format:
Short
, Delimiter:===
とする。 (Long
は delimiter を無視します) - 記事を書く。 summarとして表示したい文章 の後、必ず空行を入れてから delimiterの
===
を挿入。 更に空行を入れて本文を記述
- Format:
今後やりたいこと
を書いていく。
ページのテンプレート作成
テーマを適用、とかじゃなくて、例えばTOCプラグインは[
TOC]
という文字列を書かないとtable of contents作ってくれないじゃないですか。あれを勝手にmdの冒頭に書いてほしい。みたいな。
TOCをサイドバーに移設したい
Toc pluginのIssueに上がってるけど、developmentブランチでしか対応していない。様子を見たいと思う
見出しのレベルが見た目に分かりづらい。
文字サイズだけじゃ区別つかんぜよ… Antimatter themeの問題。当分様子見。
Antimatter 以外のテーマにお引越し
色々動けばね。今が一番シンプルでいいのはわかっているが…あとページタイプを一斉変換できるようでないと移行はつらい…
formでコメント
メールが飛んでくるように。メアド、メール環境用意しないとねぇ。
コードの扱いが不便
- 空行入るとちぎられて崩れる。
- 行頭スペースが無視されて、インデントが崩れる。
- 1st level のインデント (ruby なら 2文字分のインデントが) が無視される。
class MyClass do puts 'this indent is ignored' [0, 1].each do |i| puts 'this is recognized' end end