本体
珍しくerubyで書いた。
取りあえずviewはできるようになった。
メールでの追加で書き込みできるようになったのでまずはよしとするか。
あと、wikinameでの参照は同一のタイトルを持つもののリストを出すようにし、
実際のページへはUUIDでアクセスするようにした。
#!/usr/bin/eruby -C"EUC-JP" <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja-JP"> <head> <meta http-equiv="content-type" content="text/html; charset=EUC-JP"> <link rel='stylesheet' type='text/css' href='/stylesheets/mxwiki.css'> <title>MX</title> </head> <body> <% require 'parser/parser.rb' basedir="../../mx/" me="http://binran4/~n9d/cgi-bin/mx/indexrb.cgi" parser=Wikip.new.variableset("#{me}?wikiname=") %> <%= cgi=CGI.new if cgi.has_key?('id') [[cgi['id'],open("#{basedir}#{cgi['id']}/subject.txt").read,open("#{basedir}#{cgi['id']}/content.txt").read]] else if cgi.has_key?('wikiname') Dir.glob("#{basedir}/*/subject.txt").select{|i|open(i){|f|f.read==cgi['wikiname']}}.map{|i|i.sub(/subject/,'content')} else Dir.glob("#{basedir}*/content.txt").sort_by{|i|File.mtime(i)}.last(10) end.reverse.map{|i|[File.basename(i.sub(/\/content\.txt/,'')),open(i.sub(/content/,'subject')){|f|f.read},open(i){|f|(1..20).map{f.gets}.join}]} end.map{|i| begin "<div class=\"page\"><h1 class=\"title\"><a href=\"#{me}?id=#{i[0]}\">#{i[1]}</a></h1>\n<p>#{parser.variableset.evalute(i[2])}</p></div>\n" rescue ParseError k=0 "<h1>パーサエラー#{i[1]}<h1><pre>#{$!}</pre><br><pre>#{i[2].map{|j|"#{k+=1}:#{CGI::escapeHTML(j)}"}.join}</pre>" end }.join %>