1
1
#! /bin/bash
2
2
export lang=ja_jp.utf-8
3
3
4
- convMode=${1} # 1でtxt→html、2でhtml→txt、それ以外は今の所はエラー
5
- tgtFile=${2} # 引数で指定されたファイルを対象とする
4
+ tgtFile=${1} # 引数で指定されたファイルを対象とする
5
+ tgtFile_AfterCD=' ../' ${tgtFile} # 一時ディレクトリの内側から参照するとき用
6
+ convMode=${2} # '-t2h'でtxt→html、'-h2t'でhtml→txt、それ以外は今の所はエラー
6
7
chrset=$( file -i ${tgtFile} )
7
8
8
- if [ ! -e ${2} ]; then
9
+ tmpDirName=$( mktemp -u ltlbgtmpDir_XXXXX) # 作業用ディレクトリを作成し
10
+ mkdir ${tmpDirName} # その中で作業する。
11
+ cd ${tmpDirName} # 最後にディレクトリごと削除する。
12
+
13
+ if [ ! -e ${tgtFile_AfterCD} ]; then
9
14
echo " 💩 そんなファイルいないです"
10
15
exit 1
11
16
fi
12
17
13
18
if [ " ${chrset##* charset=} " = " unknown-8bit" ]; then
14
- iconv -f SHIFT_JIS -t UTF-8 ${tgtFile } > tmp1_ltlbgtmp
15
- cat tmp1_ltlbgtmp > ${tgtFile }
19
+ iconv -f SHIFT_JIS -t UTF-8 ${tgtFile_AfterCD } > tmp1_ltlbgtmp
20
+ cat tmp1_ltlbgtmp > ${tgtFile_AfterCD }
16
21
fi
17
22
18
- if [ " ${1 } " = " 1 " ] ; then
23
+ if [ " ${convMode } " = ' -H ' ] ; then
19
24
20
25
# # txt→html ############################################################################################
21
26
22
- destFile=${tgtFile / " .txt" / " _tagged.html" } # 出力ファイルの指定する
27
+ destFile=${tgtFile_AfterCD / " .txt" / " _tagged.html" } # 出力ファイルの指定する
23
28
touch ${destFile} # 出力先ファイルを生成
24
29
25
30
# #警告表示####################################################################
@@ -28,71 +33,71 @@ if [ "${1}" = "1" ] ; then
28
33
# おそらく変換処理は成功しない。
29
34
# #############################################################################
30
35
# # ルビ指定の基底文字に圏点の同時指定
31
- cat ${tgtFile } \
36
+ cat ${tgtFile_AfterCD } \
32
37
| grep -E -o -n ' (\{《《[^》]+》》|[^\}]+\})|(《《{[^|]+|[^\}]+}》》)' \
33
38
> warn_ltlbgtmp
34
39
if [ -s warn_ltlbgtmp ] ; then
35
40
cat warn_ltlbgtmp
36
41
echo ' 🤔 ↑でルビと圏点が同時に設定されています。不適切な指定です。変換結果は保証されません。'
37
42
fi
38
43
# # 縦中横指定の一部に太字指定
39
- cat ${tgtFile } \
44
+ cat ${tgtFile_AfterCD } \
40
45
| grep -E -o -n ' (\^[^\*]+\*\*10\*\*[^\^]?\^)|(\^[^\*]?\*\*10\*\*[^\^]+\^)' \
41
46
> warn_ltlbgtmp
42
47
if [ -s warn_ltlbgtmp ] ; then
43
48
cat warn_ltlbgtmp
44
49
echo ' 🤔 ↑で縦中横の一部にだけ太字が指定されています。この変換は非対応です。変換結果は保証されません。'
45
50
fi
46
51
# 4文字以上の縦中横
47
- cat ${tgtFile } \
52
+ cat ${tgtFile_AfterCD } \
48
53
| grep -E -o -n ' \^[a-zA-Z0-9]{4,}\^' \
49
54
> warn_ltlbgtmp
50
55
if [ -s warn_ltlbgtmp ] ; then
51
56
cat warn_ltlbgtmp
52
57
echo ' 🤔 ↑で4桁以上の縦中横が指定されています。この変換は非対応です。変換は実施しますが結果は保証されません。'
53
58
fi
54
59
# 縦中横指定の一部にのみ圏点指定
55
- cat ${tgtFile } \
60
+ cat ${tgtFile_AfterCD } \
56
61
| grep -E -o -n ' (\^[a-zA-Z0-9]?《《[a-zA-Z0-9]+》》[a-zA-Z0-9]+\^)|\^[a-zA-Z0-9]+《《[a-zA-Z0-9]+》》[a-zA-Z0-9]?\^' \
57
62
> warn_ltlbgtmp
58
63
if [ -s warn_ltlbgtmp ] ; then
59
64
cat warn_ltlbgtmp
60
65
echo ' 🤔 ↑で縦中横の一部に圏点が指定されています。不適切な指定です。変換は実施しますが結果は保証されません。'
61
66
fi
62
67
# ルビ指定全体に回転指定
63
- cat ${tgtFile } \
68
+ cat ${tgtFile_AfterCD } \
64
69
| grep -E -o -n ' \[\^\{[^|]+|[^\}]+\}\^\]' \
65
70
> warn_ltlbgtmp
66
71
if [ -s warn_ltlbgtmp ] ; then
67
72
cat warn_ltlbgtmp
68
73
echo ' 🤔 ↑でルビ指定の全体に回転が指定されています。不適切な指定です。変換は実施しますが結果は保証されません。'
69
74
fi
70
75
# 強制合字の一部を太字指定
71
- cat ${tgtFile } \
76
+ cat ${tgtFile_AfterCD } \
72
77
| grep -E -o -n ' \[l\[\*\*.\*\*.\]r\]' \
73
78
> warn_ltlbgtmp
74
79
if [ -s warn_ltlbgtmp ] ; then
75
80
cat warn_ltlbgtmp
76
81
echo ' 🤔 ↑で合字生成指定の一部にのみ太字が指定されています。不適切な指定です。変換は実施しますが結果は保証されません。'
77
82
fi
78
83
# 強制合字の一部に回転指定
79
- cat ${tgtFile } \
84
+ cat ${tgtFile_AfterCD } \
80
85
| grep -E -o -n ' (\[l\[.\^.\^\]r\])|(\^\[l\[[^]]{2}\]r\]\^)' \
81
86
> warn_ltlbgtmp
82
87
if [ -s warn_ltlbgtmp ] ; then
83
88
cat warn_ltlbgtmp
84
89
echo ' 🤔 ↑で合字生成と回転が同時に指定されています。この変換は非対応です。変換は実施しますが結果は保証されません。'
85
90
fi
86
91
# アへ濁点に回転指定
87
- cat ${tgtFile } \
92
+ cat ${tgtFile_AfterCD } \
88
93
| grep -E -o -n ' \[\^.゛\^\]' \
89
94
> warn_ltlbgtmp
90
95
if [ -s warn_ltlbgtmp ] ; then
91
96
cat warn_ltlbgtmp
92
97
echo ' 🤔 ↑で濁点合字と回転が同時に指定されています。この変換は非対応です。変換は実施しますが結果は保証されません。'
93
98
fi
94
99
# ルビ文字に特殊指定
95
- cat ${tgtFile } \
100
+ cat ${tgtFile_AfterCD } \
96
101
| grep -E -o -n ' (\{[^|]+|[^\*]?\*\*[^\*]+\*\*[^\*]?\})|({[^|]+|[^}]?\[\^[^\}]+\^\][^|]?})|({[^|]+|[^}]?《《[^}]+》》[^}]?\})|({[^|]+|{[^|]+|[^\}]+\}\})|({[^|]+|[^\}]?\[l\[[^]]{2}\]r\][^\}]?\})' \
97
102
> warn_ltlbgtmp
98
103
if [ -s warn_ltlbgtmp ] ; then
@@ -114,7 +119,7 @@ if [ "${1}" = "1" ] ; then
114
119
# # 最後に復旧する。
115
120
# # ――を―へ変換
116
121
# # 改行コードをlfに統一
117
- cat ${tgtFile } \
122
+ cat ${tgtFile_AfterCD } \
118
123
| sed -e ' s/\&/&amp/g' \
119
124
| sed -e ' s/\&/&amp/g' \
120
125
| sed -e ' s/\//&#047/g' \
@@ -703,14 +708,14 @@ if [ "${1}" = "1" ] ; then
703
708
704
709
echo " ✨ " ${destFile} " を出力しました[html化]"
705
710
706
- elif [ " ${1 } " = " 2 " ] ; then
711
+ elif [ " ${convMode } " = ' -T ' ] ; then
707
712
# # html→txt ############################################################################################
708
713
709
- destFile=${tgtFile / " .html" / " _removed.txt" } # 出力ファイルの指定する
714
+ destFile=${tgtFile_AfterCD / " .html" / " _removed.txt" } # 出力ファイルの指定する
710
715
touch ${destFile} # 出力先ファイルを生成
711
716
712
717
# # littlebugXX.cssの読み込みを除去する
713
- cat ${tgtFile } \
718
+ cat ${tgtFile_AfterCD } \
714
719
| sed -z ' s/<link rel=\"stylesheet\" href=\".\+littlebug.\+css\">//' \
715
720
| sed -z ' s/<link rel=\"preconnect\" href=\"https:\/\/fonts\.googleapis\.com\">\n//' \
716
721
| sed -z ' s/<link rel=\"preconnect\" href=\"https:\/\/fonts\.gstatic\.com\" crossorigin>\n//' \
@@ -983,15 +988,16 @@ elif [ "${1}" = "2" ] ; then
983
988
echo " ✨ " ${destFile} " を出力しました[txtもどし]"
984
989
985
990
else
986
- echo " 💩 引数1は1 (txt→html)か2 (html→txt)で指定してください"
991
+ echo " 💩 引数2は-H (txt→html)か-T (html→txt)で指定してください"
987
992
exit 1
988
993
fi
989
994
990
995
# #########################################################################################
991
996
# ファイルが上書きできないため使用している中間ファイルのゴミ掃除。なんとかならんか…
992
997
# #########################################################################################
993
- pth=$( pwd)
994
- rmstrBase=' rm -rf ' ${pth} ' /'
995
- eval $rmstrBase ' *_ltlbgtmp'
996
- eval $rmstrBase ' tmp.sh'
998
+ cd ../
999
+
1000
+ if [ ! " ${tmpDirName} " = ' ' ]; then
1001
+ rm -rf ${tmpDirName}
1002
+ fi
997
1003
exit 0
0 commit comments