74 lines
1.5 KiB
Fish
Executable File
74 lines
1.5 KiB
Fish
Executable File
#!/usr/bin/env fish
|
|
# Generate bilingual.dj from source.dj + target.dj
|
|
# Article-specific: 如何做好临终关怀
|
|
# Structure: title (L1), blank (L2), subtitle date (L3), blank (L4), author (L5), blank (L6), TOC L7-12, blank L13, body L14+
|
|
|
|
set dir (realpath (dirname (status filename)))
|
|
set src "$dir/source.dj"
|
|
set tgt "$dir/target.dj"
|
|
set out "$dir/bilingual.dj"
|
|
|
|
if not test -f $src; or not test -f $tgt
|
|
echo "Missing source.dj or target.dj in $dir" >&2
|
|
exit 1
|
|
end
|
|
|
|
python3 -c "
|
|
import sys
|
|
src_path, tgt_path, out_path = sys.argv[1:]
|
|
|
|
with open(src_path) as f:
|
|
src_lines = f.read().splitlines()
|
|
with open(tgt_path) as f:
|
|
tgt_lines = f.read().splitlines()
|
|
|
|
# Title: L1 (idx 0)
|
|
# Date subtitle: L3 (idx 2)
|
|
# Author: L5 (idx 4)
|
|
# TOC: L7-12 (idx 6-11)
|
|
# Body: L14+ (idx 13+)
|
|
|
|
src_toc = src_lines[6:12]
|
|
tgt_toc = tgt_lines[6:12]
|
|
src_body = src_lines[13:]
|
|
tgt_body = tgt_lines[13:]
|
|
|
|
out = []
|
|
|
|
# Title pair
|
|
out.append(src_lines[0])
|
|
out.append(tgt_lines[0])
|
|
out.append('')
|
|
|
|
# Date subtitle pair
|
|
out.append(src_lines[2])
|
|
out.append(tgt_lines[2])
|
|
out.append('')
|
|
|
|
# Author pair
|
|
out.append(src_lines[4])
|
|
out.append(tgt_lines[4])
|
|
out.append('')
|
|
|
|
# TOC blocks
|
|
for line in src_toc:
|
|
out.append(line)
|
|
out.append('')
|
|
for line in tgt_toc:
|
|
out.append(line)
|
|
out.append('')
|
|
|
|
# Body interleaved
|
|
for s, t in zip(src_body, tgt_body):
|
|
if s == '' and t == '':
|
|
continue
|
|
out.append(s)
|
|
out.append(t)
|
|
out.append('')
|
|
|
|
with open(out_path, 'w') as f:
|
|
f.write(chr(10).join(out))
|
|
" $src $tgt $out
|
|
|
|
echo $out
|