diff s4-funcs.sh @ 489:075897fee2c0

minitbl() includes mini-ul translation
author HIROSE Yuuji <yuuji@gentei.org>
date Mon, 28 May 2018 10:39:32 +0900
parents 44b4a45e2617
children e4b929e40fa8
line wrap: on
line diff
--- a/s4-funcs.sh	Thu Feb 15 12:24:39 2018 +0859
+++ b/s4-funcs.sh	Mon May 28 10:39:32 2018 +0900
@@ -518,7 +518,37 @@
 	  x; s|^|</table>|; x;		# Preppend /table to the next line
 	}
 	x;				# Back to the newest line
-	p;				# Print rest'
+	p;				# Print rest' | miniul
+}
+miniul() {
+  sed -e '
+	/^\* / {;			# 行頭 "* "
+	 x; s,^,<ul>,; x;		# 1週目: ホールドスペース先頭に <ul> を
+	:top
+	 s/\n//;
+	 s/^  *//;			# 2周目以降: 行頭空白削除
+	 s,\* ,,;			# まず行頭の "* " を消しておく
+	 H;				# 置き換え結果をホールドスペースに追加
+	 s/.*//;			# パターンスペースは消しておく
+	 # ↓最終行なら残ったホールドスペース処理のため :cont へ
+	 $ b cont
+	 N;				# 次の行を読む
+	 s/\n//;			# 空白始まりは継続行
+	 /^ /b top
+	 x; s/\n/<li>/; s,$,</li>,;	# 継続行でなければ <li></li> で囲む
+	 p; s/.*//;
+	 x;				# 次も "* " ならループを抜けない
+	 /^\* /b top
+	 s,^,</ul>,;			# 次が一般行なら箇条書終わり
+	}
+
+	:cont
+	x;				# 行頭| 以外の行:
+	/./ {;				# ホールドスペースに文字列があれば
+	  s/^\n/<li>/; s,$,</li></ul>,;	# 箇条書を書き切って終わり
+	  H; x
+	}
+	x'
 }
 acclog() (
   # $1=table, $2=rowid

yatex.org