X-Git-Url: https://zdv2.bktei.com/gitweb/BK-2020-03.git/blobdiff_plain/fea1bafcec18f9858dccbca7326fe60ca5f88816..a80b26ffc2346c0b863477786a36b1542ed0f392:/user/mw_wc2sp.sh?ds=inline
diff --git a/user/mw_wc2sp.sh b/user/mw_wc2sp.sh
index 421adb7..4973f24 100755
--- a/user/mw_wc2sp.sh
+++ b/user/mw_wc2sp.sh
@@ -4,14 +4,16 @@
# Input: arg1 path input wikicode file
# Output: files wikicode file tree
# Depends: Bash 5.1.16, GNU Coreutils 8.32
-# Version: 0.0.1
+# Version: 0.1.0
re_sp='^()$'; # subpage marker pattern
d_out=./wikicode/; # default output dir
-f_spl="subpage_list.txt";
+f_spl="subpage_list.txt"; # subpage title list
p_spl="${d_out}/${f_spl}";
-f_splv="subpage_list_validated.txt";
+f_splv="subpage_list_validated.txt"; # subpage title list (validated)
p_splv="${d_out}/${f_splv}";
+f_splwc="subpage_list.wc"; # subpage list wikicode
+p_splwc="${d_out}/${f_splwc}";
yell() { echo "$0: $*" >&2; } # print script path and all args to stderr
die() { yell "$*"; exit 111; } # same as yell() but non-zero exit status
@@ -220,6 +222,20 @@ assemble_subpage_ftree() {
yell "STATUS:Finished assemble_subpage_ftree()."; # debug
}; # process input wikicode into subpage content files and subpage list
+print_wc_content() {
+ # Input: var p_spc path subpage content
+ # Output: stdout
+ printf -- "\n----\n";
+ cat "$p_spc";
+ printf -- "\n----\n";
+}; # print wikicode content
+print_wc_footer() {
+ # Output: stdout
+ printf -- "\n==References==\n\n"
+ printf -- "\n==Footnotes==\n\n";
+ printf -- "\n==Comments==\n\n";
+ printf -- "\n";
+}; # print wikicode footer
create_output_wikicode() {
# Desc: Use subpage list and subpage content files to create
# output subpage wikicode.
@@ -252,6 +268,10 @@ create_output_wikicode() {
die "FATAL:Different line counts for subpage lists:$(declare -p lc_spl lc_splv;)";
fi;
declare -p lc_spl lc_splv; # debug
+
+ # Initialize subpage list wikicode file
+ must touch "$p_splwc";
+ printf "==Stats==\n\n==Subpages==\n" >> "$p_splwc";
# Read content files according to subpage list file
# Note: $i corresponds to ânextâ line ($lnext). Therefore, use
@@ -273,7 +293,11 @@ create_output_wikicode() {
f_spwc="${lines_splv[i-1]}.wc";
p_spwc="${d_out}/${f_spwc}"; # use validated subpage name
declare -p f_spwc p_spwc; # debug
- if [[ "$i" -gt 0 ]]; then must touch "$p_spwc"; fi;
+ if [[ "$i" -gt 0 ]]; then
+ must touch "$p_spwc";
+ ## Append subpage list wikicode file
+ printf "* [[/%s]]\n" "${lines_splv[i-1]}" >> "$p_splwc";
+ fi;
# Advance input lines
lprev="$lcurr";
@@ -323,13 +347,8 @@ create_output_wikicode() {
fi;
# Print subpage content
- printf -- "\n----\n" >> "$p_spwc";
- cat "$p_spc" >> "$p_spwc";
- printf -- "\n----\n" >> "$p_spwc";
- printf -- "\n==References==\n\n" >> "$p_spwc";
- printf -- "\n==Footnotes==\n\n" >> "$p_spwc";
- printf -- "\n==Comments==\n\n" >> "$p_spwc";
- printf -- "\n"; >> "$p_spwc";
+ print_wc_content >> "$p_spwc";
+ print_wc_footer >> "$p_spwc";
declare -p i lprev lcurr lnext lprev_hier lcurr_hier lnext_hier; # debug
declare -p fork_level_next fork_level_prev relups_next relups_prev; # debug
@@ -337,6 +356,9 @@ create_output_wikicode() {
printf "====================\n" # debug
done;
+ # Add footer to subpage list wikicode file
+ print_wc_footer >> "$p_splwc";
+
yell "STATUS:Finished create_output_wikicode()."; # debug
}; # generate output subpage wikicode
main() {