namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tutorial (Re: toward 2.0 release)



藤原  誠 Makoto Fujiwara <makoto@xxxxx> wrote:

>s>   * 今月末までに日本語のマニュアルを書く
>s>     - リファレンスマニュアル風に簡潔にまとめます
>s>       導入方法は藤原さんのチュートリアルに期待 :-)
>
>今月末というのはあと四日位 ? 28 29 30 31。だったら 
>http://www.ki.nu/software/namazu/
>を化粧直しして...(でもいいですか)

あ、マニュアルは僕が書きます。「導入方法は藤原さんのチュート
リアルに期待」と書いたのは、マニュアルには導入方法は最低限し
か書かない、という意味です。

というわけで、藤原さんには

>s>   * 2月中旬頃までにチュートリアルを用意する
>s>     - 藤原さん、お願いできます?
>
>ちょっとその頃忙しくなるかも知れないのですが、出来るだけ
>やります。

チュートリアルをお願いします。


>これは上と同じことのようで違うみたい。(どう違うのでしょう)

  マニュアル:     高林が担当
  チュートリアル: 藤原さんが担当

です。一通り書き終えたら、他の人に読んでもらって、手直しを入
れてもらうつもりです。(せっかくの CVSですし)


>とりあえず 
>http://www.ki.nu/software/namazu/tutorial.shtml
>に書いてあるような書き出しでいいのでしょうか。
>僕はどうも小出しにして別の譜に link を張ってしまうの
>が好みなのですが、それはそれで面倒なこともあるのですよね。

マニュアルは印刷して読みたい、という人は少なくない思うので僕
は目次をつけて 1つのファイルにまとめています。

参考までに <h2><a name="foo">foo</a></h2> といった見出しから
目次を生成するスクリプトをメイル末尾に添付しておきます。僕が
日頃、使っているものです。


>それと、
>・http://openlab.ring.or.jp/namazu/
>  の下に用意するように考えた方がいい
>  のか、
>・cvs/namazu/doc の下に置くことを優先した方がいい
>  のか教えて下さい。

後者です。


>それと、「です、ます」ですよね。

はい。

ちなみに、僕の HTML文書の好みは HTML 4.01 Strict DTD + CSS1、
html element は小文字、anchorも小文字、2語以上から形成される 
anchorは foo_bar_baz ではなく foo-bar-baz と表記する、です。

<http://openlab.ring.gr.jp/namazu/> は基本的にこの規則で統一
しています。窮屈かもしれないけど、できれば cvs/namazu/doc も
この規則で統一した方がいいかな、と思っています。

参考までに html element を大文字から小文字に変換するスクリプ
トをメイル末尾に添付しておきます。

-- Satoru Takabayashi

#!/usr/bin/perl -w
use NKF;

$_ = join '', <>;
$_ = nkf("-e", $_);

my $n = 0;
while (1) {
    if (s/^\s*<h([2-6])[^>]*><a name="([^"]*)">([^<>]*)<\/a><\/h\1>//ism) {
	$level   = $1;
	$anchor  = $2;
	$heading = $3;
    } elsif (s/^\s*<h([2-6].*?) id="([^"]*)">([^<>]*)<\/h\1>//ism) {
	$level   = $1;
	$anchor  = $2;
	$heading = $3;
    } else {
	last;
    };
    if ($level > $n) {
	print "  " x ($level - 2);
	print "<ul>\n";
    } elsif ($level < $n) {
	for ($i = $level; $i < $n; $i++) {
	    print "  " x ($n - $i);
	    print "</ul>\n";
	}
    }
    $n = $level;
    print "  " x ($n - 2);
    print "<li><a href=\"#$anchor\">$heading</a>\n";
}
for ($i =  1; $i < $n; $i++) {
    print "  " x ($n - $i -1);
    print "</ul>\n";
}


#! /usr/bin/perl -w
use strict;

my $content = join '', <>;
$content =~ s/(<\/?)([A-Z]\w*)((?:\s+[A-Z]\w*(?:\s*=\s*(?:(["']).*?\4|[\w-.]+))?)*)(\s*>)/
             $1 . lc($2) . lc_attr($3) . $5/gsixe;
print $content;

sub lc_attr($) {
    my ($attrs) = @_;
    $attrs =~ s/\n/ /g;
    $attrs =~ s!(\s+)([A-Z]\w*)((?:\s*=\s*(?:(["']).*?\4|[\w-.]+)))?!
                $1 . lc($2) . $3!gies;
    return $attrs;
}