Gauche > Archives > 2014/03/09

2014/03/09 00:54:25 UTCyamasushi
#
ローカルなメモアプリとしてwilikiをwiliki-serverで動かしています。$$imgでローカルなファイル(file:///~~~~)を指定したいのですが、表示されないようです。設定が必要なのでしょうか? やっぱり、無理ですか? ローカルなファイルの指示。
2014/03/09 01:09:21 UTCshiro
#
image-urlsにfile:で始まるパターンを入れてもだめですか。
2014/03/09 01:16:33 UTCyamasushi
#
入れてみたんですが、うまくいかないです。chromeでソースを表示して、そこから飛ぶと飛べるのでよくわからないです。
2014/03/09 01:22:17 UTCyamasushi
#
(define (main args)
  (wiliki-main
   (make <wiliki>
     :db-path "/home/shuji/data/wikidata.dbm"
     :top-page "WiLiKi"
     :title "MyWiliki"
     :description "Shuji's Wiliki Site"
     :style-sheet "wiliki.css"
     :language 'jp
     :charsets '((jp . euc-jp) (en . euc-jp))
     :image-urls '((#/^file:\/\/\/home\/shuji\/Pictures\/.+/ allow)
                   (#/^https:\/\/pbs.twimg.com\/media\/.+/   allow)
                   (#/^http:\/\/upload.wikimedia.org\/.+/    allow) )
     :debug-level 0
     )))
#
[[$$img file:///home/shuji/Pictures/wiliki/test.png]]
[[$$img http://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Faryl_Smith_crop.jpg/100px-Faryl_Smith_crop.jpg]]

[[$$img https://pbs.twimg.com/media/BiOt38sCQAA7767.jpg]]
2014/03/09 01:23:45 UTCshiro
#
あ、imgタグには展開されてるんですね? それってwilikiとは関係なくて、単に http://... で表示してるコンテンツからfile://... が参照できないって話じゃないでしょうか。これが表示できたら外部サーバからローカルファイル盗み放題になってしまうので、ブラウザの機能として出来ないようになってると思います。
#
もしかするとブラウザによっては特定のドメインについてローカルファイル読み出しを許す、みたいなオプションがあるかもしれませんが…
2014/03/09 01:26:15 UTCyamasushi
#
ああ、なるほど。そういうことでしたか。ありがとうございます。しかし、むむむ、どうしたものか・・・・
2014/03/09 01:26:42 UTCshiro
#
wiliki-serverはスタティックコンテンツもserveできるので、http://localhost:port/path で参照したファイルはdocument-rootから探されます。例えばdocument-rootを/home/shujiにしておけば、http://localhost:port/Pictures/foo.jpgとかで参照できませんかね。
2014/03/09 01:37:46 UTCyamasushi
#
えーと、試してみたのですがうまくいかないので、たぶんコマンド指定がまずいのだと思うのですが:
#
cd ~/www/cgi/
wiliki-server -d /home/shuji ~/www/cgi/wiliki.cgi
2014/03/09 01:40:02 UTCshiro
#
どううまくいかないのか教えてください。
2014/03/09 01:41:35 UTCyamasushi
#
not foundという文字が出ます。
2014/03/09 01:43:23 UTCshiro
#
その状態で、http://localhost:3133/path でホームディレクトリの色々なファイルにアクセスしてみてください。
#
あれ、ちょっと待てよ。今手元でやってるんだけど-dの指定が無視されてwiliki-serverのカレントディレクトリからの相対になってるっぽいな。http://localhost:3133/ でディレクトリのリスティングが出ると思うので確認していただけますか。
2014/03/09 01:44:45 UTCyamasushi
#
http://localhost:3133/ ではCGIのフォルダの内容が出ます。
2014/03/09 01:46:04 UTCshiro
#
ああわかったわかった。wiliki-serverでstart-http-serverの使い方間違ってた。ちょっと待ってください。
#
fixをpushしました。git pullして試してみてください。
2014/03/09 01:50:53 UTCyamasushi
#
おおお、動きました。ありがとうございます。
2014/03/09 02:00:21 UTCyamasushi
#
あああ、でもこれだとcssとかもそちらを見てしまうことになるわけですね。むう、うまくいかないものです。
2014/03/09 02:02:27 UTCshiro
#
そうか。(make <wiliki>)でのcssのパスを直すか、もしくは~/www/cgi/から見せたいディレクトリにsymlink張っとくというのはどうでしょう。
2014/03/09 02:10:17 UTCyamasushi
#
なるほど、その手がありました。解決しました。ありがとうございます。
2014/03/09 23:42:19 UTCshiro
#
@hatsugai さんの記事 http://www.principia-m.com/ts/0099/index-jp.html を見てgauche.lazyにinterleaveあったら便利かなと思って作ってみたんだが
#
シーケンスの長さが不揃いの時に(1)最短で切る(2)消尽したシーケンスを除いて続ける(3)足りないところはフィラー値で埋める、どれも使う場面がありそうで決めかねてる。