[ttssh2-commit] [9664] html生成スクリプトにmarkdownからの変換機能を追加

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2022年 1月 3日 (月) 16:21:34 JST


Revision: 9664
          https://osdn.net/projects/ttssh2/scm/svn/commits/9664
Author:   zmatsuo
Date:     2022-01-03 16:21:33 +0900 (Mon, 03 Jan 2022)
Log Message:
-----------
html生成スクリプトにmarkdownからの変換機能を追加

- 2sjis.pl
  - 機能を追加
    - markdown を html に変換
    - zlib license 部分切り出し
    - bom削除
  - require 5.24.0
- copy-zliblicense.pl 削除
  - 2sjis.pl に機能を追加したため
- htmlhelp_index_make.pl
  - use utf8
  - require 5.24.0
  - -o オプションを追加
- doc/makechm.cmake 追加
  - chm(ヘルプ)を作成

Modified Paths:
--------------
    trunk/doc/.gitignore
    trunk/doc/CMakeLists.txt
    trunk/doc/convtext.bat
    trunk/doc/htmlhelp_index_make.pl
    trunk/installer/2sjis.pl

Added Paths:
-----------
    trunk/doc/makechm.cmake

Removed Paths:
-------------
    trunk/installer/copy-zliblicense.pl

-------------- next part --------------
Modified: trunk/doc/.gitignore
===================================================================
--- trunk/doc/.gitignore	2022-01-03 06:53:28 UTC (rev 9663)
+++ trunk/doc/.gitignore	2022-01-03 07:21:33 UTC (rev 9664)
@@ -7,3 +7,6 @@
 *.txt
 *.md
 *.html
+*.hhk
+*.chw
+*.chm

Modified: trunk/doc/CMakeLists.txt
===================================================================
--- trunk/doc/CMakeLists.txt	2022-01-03 06:53:28 UTC (rev 9663)
+++ trunk/doc/CMakeLists.txt	2022-01-03 07:21:33 UTC (rev 9664)
@@ -27,93 +27,30 @@
     )
 
   add_custom_target(
-    teraterm_chm
+    chm
     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/en/teraterm.chm
+    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm
     SOURCES ${SRC_EN}
+    SOURCES ${SRC_JP}
     SOURCES htmlhelp_index_make.pl
-    SOURCES htmlhelp_update_check.pl
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-    COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/teraterm.chm"
     )
 
-  add_custom_target(
-    teratermj_chm
-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm
-    SOURCES htmlhelp_index_make.pl
-    SOURCES htmlhelp_update_check.pl
-    SOURCES ${SRC_JP}
-    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-    COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/teratermj.chm"
-    )
-
   source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SRC_EN})
   source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SRC_JP})
 
   add_custom_command(
     OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/en/teraterm.chm
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/Oniguruma-LICENSE.txt -o en/html/reference/Oniguruma-LICENSE.txt -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/en/RE                 -o en/html/reference/RE.txt      -c utf8   -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/OpenSSL-LICENSE.txt   -o en/html/reference/OpenSSL-LICENSE.txt   -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/PuTTY-LICENSE.txt     -o en/html/reference/PuTTY-LICENSE.txt     -l crlf
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/SFMT-LICENSE.txt      -o en/html/reference/SFMT-LICENSE.txt      -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/cJSON-LICENSE.txt     -o en/html/reference/cJSON-LICENSE.txt     -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/argon2-LICENSE.txt    -o en/html/reference/argon2-LICENSE.txt    -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../cygwin/cygterm/COPYING              -o en/html/reference/CygTerm+-LICENSE.txt  -l unix
-    COMMAND ${PERL} ../installer/copy-zliblicense.pl -i ../libs/doc_help/zlib-LICENSE.txt -o en/html/reference/zlib-LICENSE.txt -l unix
-    COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" en/html/reference/build_with_cmake.md > en/html/reference/build_with_cmake_no_bom.md
-    COMMAND ${PERL} Markdown_1.0.1/Markdown.pl en/html/reference/build_with_cmake_no_bom.md > en/html/reference/build_with_cmake_utf8.html
-    COMMAND ${PERL} ../installer/2sjis.pl -i en/html/reference/build_with_cmake_utf8.html -o en/html/reference/build_with_cmake.html  -c utf8
-    COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" en/html/reference/build_library_with_cmake.md > en/html/reference/build_library_with_cmake_no_bom.md
-    COMMAND ${PERL} Markdown_1.0.1/Markdown.pl en/html/reference/build_library_with_cmake_no_bom.md > en/html/reference/build_library_with_cmake_utf8.html
-    COMMAND ${PERL} ../installer/2sjis.pl -i en/html/reference/build_library_with_cmake_utf8.html -o en/html/reference/build_library_with_cmake.html  -c utf8
-    COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" en/html/reference/keyboard_cfg.md > en/html/reference/keyboard_cfg_no_bom.md
-    COMMAND ${PERL} Markdown_1.0.1/Markdown.pl en/html/reference/keyboard_cfg_no_bom.md > en/html/reference/keyboard_cfg_utf8.html
-    COMMAND ${PERL} ../installer/2sjis.pl -i en/html/reference/keyboard_cfg_utf8.html -o en/html/reference/keyboard_cfg.html  -c utf8
-    COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" en/html/reference/menu_id.md > en/html/reference/menu_id_no_bom.md
-    COMMAND ${PERL} Markdown_1.0.1/Markdown.pl en/html/reference/menu_id_no_bom.md > en/html/reference/menu_id_utf8.html
-    COMMAND ${PERL} ../installer/2sjis.pl -i en/html/reference/menu_id_utf8.html -o en/html/reference/menu_id.html  -c utf8
-    COMMAND ${PERL} htmlhelp_index_make.pl en html > en/Index.hhk
-    COMMAND ${HHC} en/teraterm.hhp || (exit 0)
+    OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm
+    COMMAND ${CMAKE_COMMAND} -P makechm.cmake
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
     COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/teraterm.chm"
     )
 
-  add_custom_command(
-    OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/Oniguruma-LICENSE.txt -o ja/html/reference/Oniguruma-LICENSE.txt -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/ja/RE                 -o ja/html/reference/RE.txt      -c utf8   -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/OpenSSL-LICENSE.txt   -o ja/html/reference/OpenSSL-LICENSE.txt   -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/PuTTY-LICENSE.txt     -o ja/html/reference/PuTTY-LICENSE.txt     -l crlf
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/SFMT-LICENSE.txt      -o ja/html/reference/SFMT-LICENSE.txt      -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/cJSON-LICENSE.txt     -o ja/html/reference/cJSON-LICENSE.txt     -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../libs/doc_help/argon2-LICENSE.txt    -o ja/html/reference/argon2-LICENSE.txt    -l unix
-    COMMAND ${PERL} ../installer/2sjis.pl -i ../cygwin/cygterm/COPYING              -o ja/html/reference/CygTerm+-LICENSE.txt  -l unix
-    COMMAND ${PERL} ../installer/copy-zliblicense.pl -i ../libs/doc_help/zlib-LICENSE.txt -o ja/html/reference/zlib-LICENSE.txt -l unix
-    COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" ja/html/reference/build_with_cmake.md > ja/html/reference/build_with_cmake_no_bom.md
-    COMMAND ${PERL} Markdown_1.0.1/Markdown.pl ja/html/reference/build_with_cmake_no_bom.md > ja/html/reference/build_with_cmake_utf8.html
-    COMMAND ${PERL} ../installer/2sjis.pl -i ja/html/reference/build_with_cmake_utf8.html -o ja/html/reference/build_with_cmake.html  -c utf8
-    COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" ja/html/reference/build_library_with_cmake.md > ja/html/reference/build_library_with_cmake_no_bom.md
-    COMMAND ${PERL} Markdown_1.0.1/Markdown.pl ja/html/reference/build_library_with_cmake_no_bom.md > ja/html/reference/build_library_with_cmake_utf8.html
-    COMMAND ${PERL} ../installer/2sjis.pl -i ja/html/reference/build_library_with_cmake_utf8.html -o ja/html/reference/build_library_with_cmake.html  -c utf8
-    COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" ja/html/reference/keyboard_cfg.md > ja/html/reference/keyboard_cfg_no_bom.md
-    COMMAND ${PERL} Markdown_1.0.1/Markdown.pl ja/html/reference/keyboard_cfg_no_bom.md > ja/html/reference/keyboard_cfg_utf8.html
-    COMMAND ${PERL} ../installer/2sjis.pl -i ja/html/reference/keyboard_cfg_utf8.html -o ja/html/reference/keyboard_cfg.html  -c utf8
-    COMMAND ${PERL} -C0 -pe "s/^\\xef\\xbb\\xbf//" ja/html/reference/menu_id.md > ja/html/reference/menu_id_no_bom.md
-    COMMAND ${PERL} Markdown_1.0.1/Markdown.pl ja/html/reference/menu_id_no_bom.md > ja/html/reference/menu_id_utf8.html
-    COMMAND ${PERL} ../installer/2sjis.pl -i ja/html/reference/menu_id_utf8.html -o ja/html/reference/menu_id.html  -c utf8
-    COMMAND ${PERL} htmlhelp_index_make.pl ja html > ja/Index.hhk
-    COMMAND ${HHC} ja/teraterm.hhp || (exit 0)
-    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-    COMMENT Generate "${CMAKE_CURRENT_BINARY_DIR}/teratermj.chm"
-    )
-
   set_target_properties(
-    teraterm_chm
-    teratermj_chm
+    chm
     PROPERTIES FOLDER doc)
 
-  install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build ${CMAKE_BINARY_DIR} --target teraterm_chm)")
-  install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" --build ${CMAKE_BINARY_DIR} --target teratermj_chm)")
   install(
     FILES
     ${CMAKE_CURRENT_SOURCE_DIR}/ja/teratermj.chm

Modified: trunk/doc/convtext.bat
===================================================================
--- trunk/doc/convtext.bat	2022-01-03 06:53:28 UTC (rev 9663)
+++ trunk/doc/convtext.bat	2022-01-03 07:21:33 UTC (rev 9664)
@@ -1,5 +1,4 @@
 set TOSJIS=perl ..\installer\2sjis.pl
-set ZLIBCP=perl ..\installer\copy-zliblicense.pl
 set REF_E=en\html\reference
 set REF_J=ja\html\reference
 %TOSJIS% -i ..\libs\oniguruma\COPYING   -o %REF_E%\Oniguruma-LICENSE.txt -l unix
@@ -14,18 +13,18 @@
 %TOSJIS% -i ..\libs\SFMT\LICENSE.txt    -o %REF_J%\SFMT-LICENSE.txt      -l unix
 %TOSJIS% -i ..\cygwin\cygterm\COPYING   -o %REF_E%\CygTerm+-LICENSE.txt  -l unix
 %TOSJIS% -i ..\cygwin\cygterm\COPYING   -o %REF_J%\CygTerm+-LICENSE.txt  -l unix
-%ZLIBCP% -i ..\libs\zlib\README         -o %REF_E%\zlib-LICENSE.txt      -l unix
-%ZLIBCP% -i ..\libs\zlib\README         -o %REF_J%\zlib-LICENSE.txt      -l unix
+%TOSJIS% -i ..\libs\zlib\README         -o %REF_E%\zlib-LICENSE.txt      -l unix --zlib_special
+%TOSJIS% -i ..\libs\zlib\README         -o %REF_J%\zlib-LICENSE.txt      -l unix --zlib_special
 %TOSJIS% -i ..\libs\cJSON\LICENSE       -o %REF_E%\cJSON-LICENSE.txt     -l crlf
 %TOSJIS% -i ..\libs\cJSON\LICENSE       -o %REF_J%\cJSON-LICENSE.txt     -l crlf
 %TOSJIS% -i ..\libs\argon2\LICENSE      -o %REF_E%\argon2-LICENSE.txt    -l unix
 %TOSJIS% -i ..\libs\argon2\LICENSE      -o %REF_J%\argon2-LICENSE.txt    -l unix
 
-perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_J%/build_with_cmake.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_J%/build_with_cmake.html -c utf8
-perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_E%/build_with_cmake.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_E%/build_with_cmake.html -c utf8
-perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_J%/build_library_with_cmake.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_J%/build_library_with_cmake.html -c utf8
-perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_E%/build_library_with_cmake.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_E%/build_library_with_cmake.html -c utf8
-perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_J%/keyboard_cfg.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_J%/keyboard_cfg.html -c utf8
-perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_E%/keyboard_cfg.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_E%/keyboard_cfg.html -c utf8
-perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_J%/menu_id.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_J%/menu_id.html -c utf8
-perl -C0 -pe "s/^\xef\xbb\xbf//" %REF_E%/menu_id.md | perl Markdown_1.0.1/Markdown.pl | %TOSJIS% -i - -o %REF_E%/menu_id.html -c utf8
+%TOSJIS% -i %REF_J%/build_with_cmake.md -o %REF_J%/build_with_cmake.html
+%TOSJIS% -i %REF_E%/build_with_cmake.md -o %REF_E%/build_with_cmake.html
+%TOSJIS% -i %REF_J%/build_library_with_cmake.md -o %REF_J%/build_library_with_cmake.html
+%TOSJIS% -i %REF_E%/build_library_with_cmake.md -o %REF_E%/build_library_with_cmake.html
+%TOSJIS% -i %REF_J%/keyboard_cfg.md     -o %REF_J%/keyboard_cfg.html
+%TOSJIS% -i %REF_E%/keyboard_cfg.md     -o %REF_E%/keyboard_cfg.html
+%TOSJIS% -i %REF_J%/menu_id.md          -o %REF_J%/menu_id.html
+%TOSJIS% -i %REF_E%/menu_id.md          -o %REF_E%/menu_id.html

Modified: trunk/doc/htmlhelp_index_make.pl
===================================================================
--- trunk/doc/htmlhelp_index_make.pl	2022-01-03 06:53:28 UTC (rev 9663)
+++ trunk/doc/htmlhelp_index_make.pl	2022-01-03 07:21:33 UTC (rev 9664)
@@ -1,23 +1,44 @@
-#! /usr/bin/perl
-
-#
-# HTML\x83w\x83\x8B\x83v\x82̃C\x83\x93\x83f\x83b\x83N\x83X\x83t\x83@\x83C\x83\x8B\x82𐶐\xAC\x82\xB7\x82\xE9
-#
-# Usage(ActivePerl):
-#  perl htmlhelp_index_make.pl ja html > ja\Index.hhk
-#
-
+#! /usr/bin/perl
+
+#
+# HTMLヘルプのインデックスファイルを生成する
+#
+# Usage(ActivePerl):
+#  perl htmlhelp_index_make.pl ja html > ja\Index.hhk
+#
+
+require 5.24.0;
+use strict;
+use warnings;
+use utf8;
 use Cwd;
- @ dirstack = (); 
-
-do_main($ARGV[0], $ARGV[1]);
-
-exit(0);
-
-sub do_main {
-	my($path, $body) = @_;
-
-	print << 'EOD';
+use Getopt::Long
+
+binmode STDOUT, ":utf8";
+
+my $out = "-";
+my $result = GetOptions(
+	'out|o=s' => \$out);
+
+my $OUT;
+if ($out eq "-") {
+	binmode STDIN, ":crlf:encoding(shiftjis)";
+	$OUT = *STDOUT;
+} else {
+	open ($OUT, '>:crlf:encoding(shiftjis)', $out);
+}
+
+my @dirstack = ();
+
+do_main($ARGV[0], $ARGV[1]);
+
+close $OUT;
+exit(0);
+
+sub do_main {
+	my($path, $body) = @_;
+
+	print $OUT <<'EOD';
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML><HEAD>
 <meta name="GENERATOR" content="TeraTerm Project">
@@ -24,87 +45,85 @@
 <!-- Sitemap 1.0 -->
 </HEAD><BODY>
 <UL>
-EOD
-
-	push @dirstack, getcwd; 
-	chdir $path; 
-	get_file_paths($body);
-	chdir pop @dirstack; 
-
-	print << 'EOD';
+EOD
+
+	push @dirstack, getcwd;
+	chdir $path;
+	get_file_paths($body);
+	chdir pop @dirstack;
+
+	print $OUT <<'EOD';
 </UL>
-</BODY></HTML>
-EOD
-
-}
-
-
+</BODY></HTML>
+EOD
+
+}
+
+
 sub get_file_paths {
 	my ($top_dir)= @_;
 	my @paths=();
 	my @temp = ();
 
-	#-- \x83J\x83\x8C\x83\x93\x83g\x82̈ꗗ\x82\xF0\x8E擾 --#
+	#-- カレントの一覧を取得 --#
 	opendir(DIR, $top_dir);
 	@temp = readdir(DIR);
 	closedir(DIR);
 	foreach my $path (sort @temp) {
-		next if( $path =~ /^\.{1,2}$/ );                # '.' \x82\xC6 '..' \x82̓X\x83L\x83b\x83v
-		next if( $path =~ /^\.svn$/ );                # '.svn' \x82̓X\x83L\x83b\x83v
-		
-		my $full_path = "$top_dir" . '/' . "$path";
-		next if (-B $full_path);     # \x83o\x83C\x83i\x83\x8A\x83t\x83@\x83C\x83\x8B\x82̓X\x83L\x83b\x83v
-		
-#		print "$full_path\r\n";                     # \x95\\x8E\xA6\x82\xBE\x82\xAF\x82Ȃ\xE7\x91S\x82Ă\xF0\x95\\x8E\xA6\x82\xB5\x82Ă\xAD\x82\xEA\x82\xE9-------
-		push(@paths, $full_path);                       # \x83f\x81[\x83^\x82Ƃ\xB5\x82Ď\xE6\x82荞\x82\xF1\x82ł\xE0\x91O\x82̎\xE6\x82荞\x82݂\xAA\x8F\x89\x8A\x{227B0B3}\x82\xEA\x82\xE9
-		if( -d "$top_dir/$path" ){                      #-- \x83f\x83B\x83\x8C\x83N\x83g\x83\x8A\x82̏ꍇ\x82͎\xA9\x95\xAA\x8E\xA9\x90g\x82\xF0\x8CĂяo\x82\xB7
-			&get_file_paths("$full_path");
-			
-		} else {
-			check_html_file($full_path);
-		
+		next if( $path =~ /^\.{1,2}$/ );                # '.' と '..' はスキップ
+		next if( $path =~ /^\.svn$/ );                # '.svn' はスキップ
+
+		my $full_path = "$top_dir" . '/' . "$path";
+
+#		print "$full_path\r\n";                     # 表示だけなら全てを表示してくれる-------
+		push(@paths, $full_path);                       # データとして取り込んでも前の取り込みが初期化される
+		if( -d "$top_dir/$path" ){                      #-- ディレクトリの場合は自分自身を呼び出す
+			&get_file_paths("$full_path");
+
+		} else {
+			check_html_file($full_path);
+
 		}
 	}
 	return \@paths;
 }
-
-sub check_html_file {
-	my($filename) = shift;
-	local(*FP);
-	my($line, $no, $val);
-	
-	if ($filename !~ /.html$/) {
-		return;
-	}
-	
-	open(FP, "<$filename") || return;
-	$no = 1;
-	while ($line = <FP>) {
-#		$line = chomp($line);
-#		print "$line\n";
-		if ($line =~ /<TITLE>(.+)<\/TITLE>/i) {
-#			print "$filename:$no: $1\n";
-#			print "$line\n";
-			$val = $1;
-			$val =~ s/"/"/g;  # \x93\xF1\x8Fd\x88\xF8\x97p\x95\x84\x82\xF0\x83G\x83X\x83P\x81[\x83v\x82\xB7\x82\xE9
-			write_add_index($filename, $val);
-			last;
-		}
-
-		$no++;
-	}
-	close(FP);
-}
-
-sub write_add_index {
-	my($filename, $title) = @_;
-	
-	print << "EOD";
+
+sub check_html_file {
+	my($filename) = shift;
+	local(*FP);
+	my($line, $no, $val);
+
+	if ($filename !~ /.html$/) {
+		return;
+	}
+
+	open(FP, "<:crlf:encoding(sjis)", "$filename") || return;
+	$no = 1;
+	while ($line = <FP>) {
+#		$line = chomp($line);
+#		print "$line\n";
+		if ($line =~ /<TITLE>(.+)<\/TITLE>/i) {
+#			print "$filename:$no: $1\n";
+#			print "$line\n";
+			$val = $1;
+			$val =~ s/"/"/g;  # 二重引用符をエスケープする
+			write_add_index($filename, $val);
+			last;
+		}
+
+		$no++;
+	}
+	close(FP);
+}
+
+sub write_add_index {
+	my($filename, $title) = @_;
+
+	print $OUT <<"EOD";
 <LI><OBJECT type="text/sitemap">
 <param name="Name" value="$title">
 <param name="Local" value="$filename">
-</OBJECT>
-EOD
-
-}
-
+</OBJECT>
+EOD
+
+}

Added: trunk/doc/makechm.cmake
===================================================================
--- trunk/doc/makechm.cmake	                        (rev 0)
+++ trunk/doc/makechm.cmake	2022-01-03 07:21:33 UTC (rev 9664)
@@ -0,0 +1,112 @@
+# cmake -P makechm.cmake
+
+if(CMAKE_HOST_WIN32)
+  find_program(
+    PERL perl.exe
+    HINTS ${CMAKE_CURRENT_LIST_DIR}/../buildtools/perl/perl/bin
+    HINTS c:/Strawberry/perl/bin
+    HINTS c:/Perl64/bin
+    HINTS c:/Perl/bin
+    HINTS c:/cygwin/usr/bin
+    HINTS c:/cygwin64/usr/bin
+    )
+  find_program(
+    HHC hhc.exe
+    HINTS "C:/Program Files (x86)/HTML Help Workshop"
+    HINTS "C:/Program Files/HTML Help Workshop"
+    HINTS "$ENV{ProgramFiles}/HTML Help Workshop"
+#    HINTS "$ENV{ProgramFiles\(x86\)}/HTML Help Workshop"
+    )
+  find_program(
+    CHMCMD chmcmd
+    HINTS ${CMAKE_CURRENT_LIST_DIR}/../buildtools/chmcmd/
+    )
+else(CMAKE_HOST_WIN32)
+  find_program(
+    PERL perl
+    )
+  set(HHC "HHC-NOTFOUND")
+  # "apt-get install fp-utils" to install chmcmd
+  find_program(
+    CHMCMD chmcmd2
+    )
+endif(CMAKE_HOST_WIN32)
+
+message("perl=${PERL}")
+message("hhc=${HHC}")
+message("chmcmd=${CHMCMD}")
+
+
+function(ConvertHTML CMD_OPTION)
+  set(CONV_CMD ${PERL} "../installer/2sjis.pl")
+  set(CONV_CMD_OPTION ${CMD_OPTION})
+  separate_arguments(CONV_CMD_OPTION)
+  set(CMD ${CONV_CMD} ${CONV_CMD_OPTION})
+
+  string(JOIN " " CMD_PRINT ${CMD})
+  #message(STATUS ${CMD_PRINT})
+
+  execute_process(
+    COMMAND ${CMD}
+    RESULT_VARIABLE rv
+    )
+  if(NOT "${rv}" STREQUAL "0")
+    message(${CMD_PRINT})
+    message(FATAL_ERROR "rv=${rv}")
+  endif()
+endfunction()
+
+
+if (NOT("${PERL}" STREQUAL "PERL-NOTFOUND"))
+  set(REF_E "en/html/reference")
+  set(REF_J "ja/html/reference")
+  ConvertHTML("-i ../libs/doc_help/Oniguruma-LICENSE.txt -o ${REF_E}/Oniguruma-LICENSE.txt -l unix")
+  ConvertHTML("-i ../libs/doc_help/Oniguruma-LICENSE.txt -o ${REF_J}/Oniguruma-LICENSE.txt -l unix")
+  ConvertHTML("-i ../libs/doc_help/en/RE                 -o ${REF_E}/RE.txt                -l unix -c utf8")
+  ConvertHTML("-i ../libs/doc_help/ja/RE                 -o ${REF_J}/RE.txt                -l unix -c utf8")
+  ConvertHTML("-i ../libs/doc_help/OpenSSL-LICENSE.txt   -o ${REF_E}/OpenSSL-LICENSE.txt   -l unix")
+  ConvertHTML("-i ../libs/doc_help/OpenSSL-LICENSE.txt   -o ${REF_J}/OpenSSL-LICENSE.txt   -l unix")
+  ConvertHTML("-i ../libs/doc_help/PuTTY-LICENSE.txt     -o ${REF_E}/PuTTY-LICENSE.txt     -l crlf")
+  ConvertHTML("-i ../libs/doc_help/PuTTY-LICENSE.txt     -o ${REF_J}/PuTTY-LICENSE.txt     -l crlf")
+  ConvertHTML("-i ../libs/doc_help/SFMT-LICENSE.txt      -o ${REF_E}/SFMT-LICENSE.txt      -l unix")
+  ConvertHTML("-i ../libs/doc_help/SFMT-LICENSE.txt      -o ${REF_J}/SFMT-LICENSE.txt      -l unix")
+  ConvertHTML("-i ../libs/doc_help/argon2-LICENSE.txt    -o ${REF_E}/argon2-LICENSE.txt    -l unix")
+  ConvertHTML("-i ../libs/doc_help/argon2-LICENSE.txt    -o ${REF_J}/argon2-LICENSE.txt    -l unix")
+  ConvertHTML("-i ../libs/doc_help/zlib-LICENSE.txt      -o ${REF_E}/zlib-LICENSE.txt      -l unix --zlib_special")
+  ConvertHTML("-i ../libs/doc_help/zlib-LICENSE.txt      -o ${REF_J}/zlib-LICENSE.txt      -l unix --zlib_special")
+  ConvertHTML("-i ../libs/doc_help/cJSON-LICENSE.txt     -o ${REF_E}/cJSON-LICENSE.txt     -l unix")
+  ConvertHTML("-i ../libs/doc_help/cJSON-LICENSE.txt     -o ${REF_J}/cJSON-LICENSE.txt     -l unix")
+  ConvertHTML("-i ../cygwin/cygterm/COPYING              -o ${REF_E}/CygTerm+-LICENSE.txt  -l unix")
+  ConvertHTML("-i ../cygwin/cygterm/COPYING              -o ${REF_J}/CygTerm+-LICENSE.txt  -l unix")
+  ConvertHTML("-i ${REF_E}/build_with_cmake.md           -o ${REF_E}/build_with_cmake.html")
+  ConvertHTML("-i ${REF_J}/build_with_cmake.md           -o ${REF_J}/build_with_cmake.html")
+  ConvertHTML("-i ${REF_E}/build_library_with_cmake.md   -o ${REF_E}/build_library_with_cmake.html")
+  ConvertHTML("-i ${REF_J}/build_library_with_cmake.md   -o ${REF_J}/build_library_with_cmake.html")
+  ConvertHTML("-i ${REF_E}/keyboard_cfg.md               -o ${REF_E}/keyboard_cfg.html")
+  ConvertHTML("-i ${REF_J}/keyboard_cfg.md               -o ${REF_J}/keyboard_cfg.html")
+  ConvertHTML("-i ${REF_E}/menu_id.md                    -o ${REF_E}/menu_id.html")
+  ConvertHTML("-i ${REF_J}/menu_id.md                    -o ${REF_J}/menu_id.html")
+
+  execute_process(
+    COMMAND ${PERL} htmlhelp_index_make.pl en html -o en/Index.hhk
+    COMMAND ${PERL} htmlhelp_index_make.pl ja html -o ja/Index.hhk
+    )
+endif()
+
+if(NOT("${HHC}" STREQUAL "HHC-NOTFOUND"))
+  execute_process(
+    COMMAND ${HHC} en/teraterm.hhp
+    )
+  execute_process(
+    COMMAND ${HHC} ja/teraterm.hhp
+    )
+elseif(NOT("${CHMCMD}" STREQUAL "CHMCMD-NOTFOUND"))
+  execute_process(
+    COMMAND ${CHMCMD} teraterm.hhp
+    WORKING_DIRECTORY en
+    )
+  execute_process(
+    COMMAND ${CHMCMD} teraterm.hhp
+    WORKING_DIRECTORY ja
+    )
+endif()

Modified: trunk/installer/2sjis.pl
===================================================================
--- trunk/installer/2sjis.pl	2022-01-03 06:53:28 UTC (rev 9663)
+++ trunk/installer/2sjis.pl	2022-01-03 07:21:33 UTC (rev 9664)
@@ -1,40 +1,103 @@
 #!/usr/bin/perl -w
 
-require 5.8.0;
+require 5.24.0;
 use strict;
+use warnings;
 use Encode;
 use utf8;
 use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat);
 
-my($in, $out, $coding, $lf, $result);
+my $PERL = $^X;
 
+sub MarkdownToHTML {
+	my $buf = $_[0];
+
+	my $cmd = "$PERL Markdown_1.0.1/Markdown.pl";
+#	my $cmd = 'cat';
+
+	my $out_file = "MD_TO_HTML_$$" . "_md";
+	my $in_file = "MD_TO_HTML_$$" . "_html";
+
+	my $OUT;
+	open ($OUT, ">:unix:encoding(utf8)", $out_file) or die("error :$! $out_file");
+	print $OUT $buf;
+	close $OUT;
+
+	my $sys = "$cmd < $out_file > $in_file";
+	my $r = system($sys);
+	if ($r != 0) {
+		print "r=$r\n";
+		exit($r);
+		# Can't spawn "cmd.exe" ... -> check $PATH
+	}
+
+	my $IN;
+	open ($IN, "<:crlf:encoding(utf8)", $in_file) or die("error :$! $in_file");
+	$buf = join "", <$IN>;
+	close $IN;
+
+	unlink $in_file;
+	unlink $out_file;
+
+	$buf;
+}
+
+binmode STDOUT, ":utf8";
+
+my($in, $out, $result);
+
 # default setting
-$coding = "shiftjis";
-$lf = "crlf";
+my $coding = "shiftjis";
+my $lf = "crlf";
+my $type = "text";
+my $zlib_special;
 
-$result = GetOptions('in|i=s'     => \$in,
-                     'out|o=s'    => \$out,
-                     'coding|c=s' => \$coding,
-                     'lf|l=s'     => \$lf);
+$result = GetOptions('in|i=s'       => \$in,
+                     'out|o=s'      => \$out,
+                     'coding|c=s'   => \$coding,
+                     'lf|l=s'       => \$lf,
+                     'type|t=s'     => \$type,
+                     'zlib_special' => \$zlib_special);
 
 if (!(defined($in) && defined($out))) {
-	die "Usage: $0 --in file --out file [ --coding input_encoding ] [ --lf line_format ]\n";
+	die "Usage: $0 --in file --out file [ --coding input_encoding ] [ --lf line_format ] [ --type type ]\n";
 }
 
+if ($in =~/\.md/) {
+	$type = "markdown";
+	$coding = "utf8";
+}
+
 my $IN;
 if ($in eq "-") {
 	binmode STDIN, ":$lf:encoding($coding)";
 	$IN = *STDIN;
 } else {
-	open ($IN,  "<:$lf:encoding($coding)",   $in) or die("error :$! $in");
+	open ($IN,  "<:$lf:encoding($coding)", $in) or die("error :$! $in");
 }
-open (OUT, '>:crlf:encoding(shiftjis)', $out);
-while (<$IN>) {
-	print OUT $_;
+if ($zlib_special) {
+	while (<$IN>) {
+		last if $_ =~ /Copyright notice:/;
+	}
 }
-close OUT;
+my $buf = join "", <$IN>;
+$buf =~ s/\x{FEFF}//g; # remove all bom
 close $IN;
 
+if ($type =~ /markdown/i ) {
+	$buf = &MarkdownToHTML($buf);
+}
+
+my $OUT;
+if ($out eq "-") {
+	binmode STDOUT, ":crlf:encoding(shiftjis)";
+	$OUT = *STDOUT;
+} else {
+	open ($OUT, '>:crlf:encoding(shiftjis)', $out);
+}
+print $OUT $buf;
+close $OUT;
+
 if ($in ne "-") {
 	my(@filestat) = stat $in;
 	utime $filestat[8], $filestat[9], $out;

Deleted: trunk/installer/copy-zliblicense.pl
===================================================================
--- trunk/installer/copy-zliblicense.pl	2022-01-03 06:53:28 UTC (rev 9663)
+++ trunk/installer/copy-zliblicense.pl	2022-01-03 07:21:33 UTC (rev 9664)
@@ -1,37 +0,0 @@
-#!/usr/bin/perl -w
-
-require 5.8.0;
-use strict;
-use Encode;
-use utf8;
-use Getopt::Long qw(:config posix_default no_ignore_case gnu_compat);
-
-my($in, $out, $coding, $lf, $result);
-
-# default setting
-$lf = "crlf";
-
-$result = GetOptions('in|i=s'     => \$in,
-                     'out|o=s'    => \$out,
-                     'lf|l=s'     => \$lf);
-
-if (!(defined($in) && defined($out))) {
-	die "Usage: $0 --in file --out file [ --lf line_format ]\n";
-}
-
-open (IN,  "<:$lf",   $in);
-while (<IN>) {
-	last if $_ =~ /Copyright notice:/;
-}
-
-open (OUT, '>:crlf', $out);
-print OUT $_;
-
-while (<IN>) {
-	print OUT $_;
-}
-close OUT;
-close IN;
-
-my(@filestat) = stat $in;
-utime $filestat[8], $filestat[9], $out;


ttssh2-commit メーリングリストの案内
Back to archive index