[#28402] crypt — Kenji Noda <zaq94465a@...>

野田です

58 messages 2001/03/01
[#28404] Re: crypt — gotoken@... (GOTO Kentaro) 2001/03/01

In message "[ruby-list:28402] crypt"

[#28410] Re: crypt — "Akinori MUSHA" <knu@...> 2001/03/02

At Fri, 2 Mar 2001 04:34:52 +0900,

[#28413] Re: crypt — "丹生 光則 Nibu,Mitsunori." <nibu@...> 2001/03/02

newです.

[#28419] Re: crypt — matz@... (Yukihiro Matsumoto) 2001/03/02

まつもと ゆきひろです

[#28421] Re: crypt — gotoken@... (GOTO Kentaro) 2001/03/02

ごとけんです

[#28424] Re: crypt — "丹生 光則 Nibu,Mitsunori." <nibu@...> 2001/03/02

newです.

[#28435] ruby 1.6.3? — akira yamada / やまだあきら <akira@...>

24 messages 2001/03/02
[#28440] Re: ruby 1.6.3? — matz@... (Yukihiro Matsumoto) 2001/03/02

まつもと ゆきひろです

[#28572] Re: ruby 1.6.3? — akira yamada / やまだあきら <akira@...> 2001/03/07

[#28621] Re: ruby 1.6.3? — akira yamada / やまだあきら <akira@...> 2001/03/09

[#28624] Re: ruby 1.6.3? — matz@... (Yukihiro Matsumoto) 2001/03/09

まつもと ゆきひろです

[#28821] Re: ruby 1.6.3? — akira yamada / やまだあきら <akira@...> 2001/03/17

[#28823] Re: ruby 1.6.3? — matz@... (Yukihiro Matsumoto) 2001/03/17

まつもと ゆきひろです

[#28829] Re: ruby 1.6.3? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/03/18

もりきゅうです。

[#28831] Re: ruby 1.6.3? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/03/18

もりきゅうです。

[#28454] Ruby 初心者は! — 有瀬 和徳 <crush@...>

Kazunori Aruse

17 messages 2001/03/03

[#28485] ruby/tk TkEntry#selection_present bug? — Noritsugu Nakamura <nnakamur@...>

22 messages 2001/03/04
[#28492] Re: ruby/tk TkEntry#selection_present bug? — Koji Arai <JCA02266@...> 2001/03/04

新井です。

[#28559] Re: ruby/tk TkEntry#selection_present bug? — nagai@... 2001/03/06

永井@知能.九工大です.

[#28562] Re: ruby/tk TkEntry#selection_present bug? — Noritsugu Nakamura <nnakamur@...> 2001/03/06

[#28615] Re: ruby/tk TkEntry#selection_present bug? — nagai@... 2001/03/09

永井@知能.九工大です.

[#28530] テキストファイルを固定文字数で切って、行番号をつけるプログラム — Keisuke Minami <keisuke@...>

こんばんは。三並です。

10 messages 2001/03/05

[#28599] 1.6 のダウンロードマニュアルが圧縮されていない? — Keisuke Minami <keisuke@...>

こんばんは。三並です。

71 messages 2001/03/08
[#28601] Re: 1.6 のダウンロードマニュアルが圧縮されていない? — rubikitch <rubikitch@...> 2001/03/08

From: Keisuke Minami <keisuke@rccn.com>

[#28602] Re: 1.6 のダウンロードマニュアルが圧縮されていない? — SHIBATA Hiroshi <h-sbt@...9.so-net.ne.jp> 2001/03/08

 SHIBATA Hiroshiです。

[#28603] Re: 1.6 のダウンロードマニュアルが圧縮されていない? — gotoken@... (GOTO Kentaro) 2001/03/08

In message "[ruby-list:28602] Re: 1.6 のダウンロードマニュアルが圧縮されていない?"

[#28606] Ruby 1.6.2 リファレンスマニュアル — rubikitch <rubikitch@...> 2001/03/08

From: Keisuke Minami <keisuke@rccn.com>

[#28617] Re: Ruby 1.6.2 リファレンスマニュアル — "丹生 光則 Nibu,Mitsunori." <nibu@...> 2001/03/09

newです.

[#28618] Re: Ruby 1.6.2 リファレンスマニュアル — rubikitch <rubikitch@...> 2001/03/09

From: "丹生 光則 Nibu,Mitsunori." <nibu@tec.osaka.jip.co.jp>

[#28622] Re: Ruby 1.6.2 リファレンスマニュアル — "丹生 光則 Nibu,Mitsunori." <nibu@...> 2001/03/09

newです.

[#28644] Re: Ruby 1.6.2 リファレンスマニュアル — Daisuke Aoki <dai@...> 2001/03/09

青木@横浜です。

[#28672] Re: Ruby 1.6.2 リファレンスマニュアル — rubikitch <rubikitch@...> 2001/03/10

From: Daisuke Aoki <dai@sweetparty.ne.jp>

[#28705] Re: Ruby 1.6.2 リファレンスマニュアル — Daisuke Aoki <dai@...> 2001/03/12

青木@横浜です。

[#28697] Re: Ruby 1.6.2 リファレンスマニュアル — Daisuke Aoki <dai@...> 2001/03/12

青木@横浜です。

[#28773] [Q] ChibiXML のサンプルみたいなもの — eda@...

えだです。

14 messages 2001/03/15
[#28782] Re: [Q] ChibiXML のサンプルみたいなもの — TAKAHASHI Masayoshi <maki@...> 2001/03/16

高橋征義です。

[#28852] Re: [ruby-ext:01642] Re: o_dbm — keiju@... (石塚圭樹)

けいじゅ@日本ラショナルソフトウェアです.

17 messages 2001/03/19
[#29368] Re: [ruby-ext:01642] Re: o_dbm — akira yamada / やまだあきら <akira@...> 2001/04/21

[#29431] Re: [ruby-ext:01642] Re: o_dbm — keiju@... (石塚圭樹) 2001/04/26

けいじゅ@日本ラショナルソフトウェアです.

[#29468] Re: [ruby-ext:01642] Re: o_dbm — akira yamada / やまだあきら <akira@...> 2001/05/01

[#28911] media watch 2001.03.22 — akira yamada / やまだあきら <akira@...>

27 messages 2001/03/22
[#28955] Re: media watch 2001.03.22 — Keisuke Minami <keisuke@...> 2001/03/24

こんばんは。三並です。

[#28974] Re: media watch 2001.03.22 — akira yamada / やまだあきら <akira@...> 2001/03/26

[#28993] Re: media watch 2001.03.22 — Noritsugu Nakamura <nnakamur@...> 2001/03/27

[#29023] 配列に要素を挿入 — Kenji Noda <zaq94465a@...>

野田と申します

15 messages 2001/03/30

[#29037] forwardable-1.0 release — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

25 messages 2001/03/30
[#29038] Re: forwardable-1.0 release — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2001/03/30

Toshです。

[#29042] Re: forwardable-1.0 release — matz@... (Yukihiro Matsumoto) 2001/03/31

まつもと ゆきひろです

[#29047] Re: forwardable-1.0 release — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2001/03/31

Toshです。

[#29057] Re: forwardable-1.0 release — keiju@... (石塚圭樹) 2001/04/02

けいじゅ@日本ラショナルソフトウェアです.

[#29060] Re: forwardable-1.0 release — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2001/04/02

Toshです。

[ruby-list:28960] rdtool で出力ファイルを分割する

From: Kenta MURATA <muraken2@...>
Date: 2001-03-25 19:33:10 UTC
List: ruby-list #28960
むらけんです.  TO が ML ぢゃなくて Tosh さんになってた...
Tosh さん2重になってしまってすみません.


興味本意なんですが, rdtool-0.6.7 に出力ファイルを分割するため
の改造をやってみました.  改造方法自体汚ないものなんですが, あ
と一歩の所でうまく分割できずにいます.  僕の改造では,
--split=LEVEL というオプションを追加して, LEVEL の数値に対応す
る HeadLine でファイルを分割します.  例えば LEVEL=2 では,

= HEAD1-1

# ここで分割
== HEAD2-1

=== HEAD3-1

=== HEAD3-2

# ここで分割
== HEAD2-2

=== HEAD3-3

# ここで分割
= HEAD1-2

という具合です.  できてそうなんですが, footnote の参照が上手く
いってません.

diff の結果を添付しましたので, どなたか試して感想などお聞かせ
ください.

-- 
Kenta MURATA <muraken2@nifty.com> "http://village.infoweb.ne.jp/~muraken/"

diff -uNr rdtool-0.6.7.orig/rd/rd2html-lib.rb rdtool-0.6.7/rd/rd2html-lib.rb
--- rdtool-0.6.7.orig/rd/rd2html-lib.rb	Sun Jan 28 04:39:03 2001
+++ rdtool-0.6.7/rd/rd2html-lib.rb	Sun Mar 25 17:27:40 2001
@@ -27,6 +27,9 @@
     attr(:use_old_anchor, true)
     # output external Label file.
     attr(:output_rbl, true)
+    # file splitting level of '='
+    attr(:split_level, true)
+    attr(:count_files)
 
     def initialize
       @css = nil
@@ -42,6 +45,10 @@
       #      @use_old_anchor = nil
       @use_old_anchor = true # MUST -> nil
       @output_rbl = nil
+      @split_level = 0
+      @count_files = 1
+      @now_file_no = 0
+      @label_hash = {}
       super
     end
     
@@ -52,11 +59,25 @@
       tmp
     end
 
-    def apply_to_DocumentElement(element, content)
-      content = content.join("")
-      index = make_index()
-      foottext = make_foottext()
-      title = @title || @filename || ARGF.filename || "Untitled"
+    def navi
+      ret = %Q[]
+      if @count_files > 1
+	prevfile = 'prev'
+	if @now_file_no > 1
+	  prevfile = "#{filename}-#{@now_file_no - 1}.html"
+	  prevfile = %Q[<a href="#{prevfile}">prev</a>]
+	end
+	nextfile = 'next'
+	if @now_file_no < @count_files
+	  nextfile = "#{filename}-#{@now_file_no + 1}.html"
+	  nextfile = %Q[<a href="#{nextfile}">next</a>]
+	end
+	ret << %Q[<div id="navi">#{prevfile}&nbsp;&nbsp;&nbsp;&nbsp;#{nextfile}</a></div>]
+      end
+      ret
+    end
+
+    def file_header(title)
       ret = %Q[]
       if @charset
 	ret << %Q[<?xml version="1.0" encoding="#{@charset}" ?>\n]
@@ -87,18 +108,50 @@
       @html_link_rev.each do |rev, href|
 	ret << %Q[<link rev="#{rev}" href="#{href}" />\n]
       end
+      ret << %Q[</head>\n<body>\n#{navi}\n<hr />\n]
+      ret
+    end
+
+    def file_footer
+      ret = %Q[\n<hr />\n#{navi}\n</body>\n</head>\n]
+    end
+
+    def apply_to_DocumentElement(element, content)
+      content = content.join("")
+      index = make_index()
+      foottext = make_foottext()
+      ret = %Q[]
+      @now_file_no = 1
+      ret << file_header(@title || @filename || ARGF.filename || "Untitled")
+      @now_file_no = 0
 
-      ret << %Q[</head>\n]
 #      ret << %Q[<BODY>\n#{content}#{index}#{foottext}\n</BODY>\n</HTML>]
-      ret << %Q[<body>\n#{content}#{foottext}\n</body>\n</html>\n]
+#      ret << %Q[<body>\n#{content}#{foottext}\n</body>\n</html>\n]
+      ret << %Q[#{content}#{foottext}]
+      ret << file_footer
       ret
     end
+
+    def apply_to_Comment(element, content)
+      process_instruction ($') if content =~ /^@@/
+    end
     
     def apply_to_Headline(element, title)
+      ret = %Q[]
+      if element.level <= @split_level
+	if @now_file_no > 0
+	  ret << file_footer
+	  ret << %Q[\C-l\C-l]
+	end
+	@now_file_no += 1
+	if @now_file_no > 0
+	  ret << file_header(@title || @filename || ARGF.filename || "Untitled")
+	end
+      end
       anchor = refer(element)
       label = hyphen_escape(element.label)
-      %Q[<h#{element.level}><a name="#{anchor}" id="#{anchor}">#{title}</a>] +
-      %Q[</h#{element.level}><!-- RDLabel: "#{label}" -->\n]
+      ret << %Q[<h#{element.level}><a name="#{anchor}" id="#{anchor}">#{title}</a>] +
+	%Q[</h#{element.level}><!-- RDLabel: "#{label}" -->\n]
     end
 
     # RDVisitor#apply_to_Include 
@@ -229,8 +282,12 @@
     def apply_to_RefToElement(element, content)
       content = content.join("")
       if anchor = refer(element)
+	filename = ''
+	if @label_hash[anchor] && @label_hash[anchor] != @now_file_no
+	  filename = "#{@filename}-#{@label_hash[anchor]}.html"
+	end
 	content = content.sub(/^function#/, "")
-	%Q[<a href="\##{anchor}">#{content}</a>]
+	%Q[<a href="#{filename}\##{anchor}">#{content}</a>]
       else
 	# warning?
 	label = hyphen_escape(element.to_label)
@@ -279,12 +336,30 @@
       meta_char_escape(element)
     end
 
+    def prepare_level(tree)
+      if @filename && @split_level
+	@count_files = 0
+	tree.each { |elem|
+	  if elem.type == Headline
+	    @count_files += 1 if elem.level <= @split_level
+	  end
+	  if (elem.type == Headline) \
+	    || (elem.type == DescListItem) \
+	    || (elem.type == MethodListItem)
+	    @label_hash[refer(elem)] = @count_files
+	  end
+	}
+      end
+      p @label_hash
+    end
+
     def prepare_labels(tree, prefix = "label:")
       if @use_old_anchor
 	super
       else
 	prepare_labels_with_url_escape(tree, prefix)
       end
+      prepare_level(tree)
     end
     private :prepare_labels
       
@@ -429,6 +504,16 @@
       end
     end
     private :make_foottext
+
+    def process_instruction (inst)
+      case inst
+      when /^tableofcontents/
+	# toc
+      when /^tocdepth=/
+	@tocdepth = $'.to_i
+      end
+    end
+    private :process_instruction
     
   end # RD2HTMLVisitor
 end # RD
diff -uNr rdtool-0.6.7.orig/rd/rdblockparser.ry rdtool-0.6.7/rd/rdblockparser.ry
--- rdtool-0.6.7.orig/rd/rdblockparser.ry	Tue Jan 30 02:30:56 2001
+++ rdtool-0.6.7/rd/rdblockparser.ry	Sun Mar 25 16:19:09 2001
@@ -24,7 +24,7 @@
           | lists 
           | headline      { result = val }
           | include       { result = val }
-          | WHITELINE     { result = [] }
+          | WHITELINE     { if val[1] == '(:COMMENT)'; result = val; else result = []; end }
           | SUBTREE       { result = val[0].blocks }
           ;
 
diff -uNr rdtool-0.6.7.orig/rd/rdfmt.rb rdtool-0.6.7/rd/rdfmt.rb
--- rdtool-0.6.7.orig/rd/rdfmt.rb	Fri Jun  9 23:09:54 2000
+++ rdtool-0.6.7/rd/rdfmt.rb	Sun Mar 25 13:34:08 2001
@@ -7,6 +7,7 @@
 following classes are defined in rdfmt.rb.
 *RDElement
   *BlockElement
+    *Comment
     *TextBlock
     *Verbatim
     *Headline
@@ -151,6 +152,17 @@
 =end
   
   class BlockElement < RDElement
+  end
+
+  class Comment < BlockElement
+    attr(:content, true)
+    def initialize(content)
+      @content = content         # Comment String
+    end
+    
+    def accept(visitor)
+      visitor.visit_Comment(self)
+    end
   end
 
   class Headline < BlockElement
diff -uNr rdtool-0.6.7.orig/rd/rdvisitor.rb rdtool-0.6.7/rd/rdvisitor.rb
--- rdtool-0.6.7.orig/rd/rdvisitor.rb	Sun Jan 14 14:43:43 2001
+++ rdtool-0.6.7/rd/rdvisitor.rb	Sun Mar 25 14:02:11 2001
@@ -67,6 +67,10 @@
       end
       apply_to_DocumentElement(element, blocks)
     end
+
+    def visit_Comment(element)
+      apply_to_Comment(element, element.content)
+    end
   
     def visit_Headline(element)
       title = []
diff -uNr rdtool-0.6.7.orig/rd2 rdtool-0.6.7/rd2
--- rdtool-0.6.7.orig/rd2	Tue Jan 30 02:36:16 2001
+++ rdtool-0.6.7/rd2	Sun Mar 25 16:32:12 2001
@@ -56,6 +56,7 @@
 output_index = nil
 out_code = nil
 from_rdo = nil
+split_level = nil
 
 # user option
 $DEFAULT_FORMAT_LIB = "rd/rd2html-lib"
@@ -122,7 +123,13 @@
       include_path.push(RD::RDTree::TMP_DIR)
     end
   end
-  
+
+  q.on("--split=LEVEL",
+       /[1-4]/,
+       "output file is splited at LEVEL of '='") do |i|
+    split_level = i.to_i
+  end
+
   q.on("--from-rdo",
        "load from *.rdo instead of *.rd") do
     from_rdo = true
@@ -157,6 +164,15 @@
   $Visitor = $Visitor_Class.new
 end
 
+# set split level
+begin
+  $Visitor.split_level = split_level
+rescue
+  STDERR.print("Error: specified library is not support to split file\n")
+  STDERR.print(ARGV.options.to_s)
+  exit(1)
+end if split_level && output_file
+
 # make tree (but not parsed yet)
 if from_rdo
   rdos = []
@@ -203,7 +219,7 @@
 
 # file base name setup
 $Visitor.filename = output_file if output_file
-
+$Visitor.split_level = split_level if split_level
 # character encoding
 if out_code
   begin
@@ -217,13 +233,27 @@
 
 # character encoding convert
 out = Kconv.kconv(out, Kconv::NAME2CONST[out_code], Kconv::AUTO) if out_code
+out_list = []
+if split_level
+  out_list = out.split "\C-l\C-l"
+else
+  out_list = [out]
+end
 
 if output_file
-  filename = output_file + "." + $Visitor.type::OUTPUT_SUFFIX
-  file = open(filename, "w")
-  file.print(out)
-  file.close
-  STDERR.print("#{$0}: output to #{filename}...\n")
+  i = 1
+  while i <= $Visitor.count_files
+    filename = output_file
+    if split_level
+      filename += "-#{i}"
+    end
+    filename += "." + $Visitor.type::OUTPUT_SUFFIX
+    file = open(filename, "w")
+    file.print(out_list[i-1])
+    file.close
+    STDERR.print("#{$0}: output to #{filename}...\n")
+    i += 1
+  end
 else
   print(out)
 end

In This Thread

Prev Next