X-Git-Url: https://zdv2.bktei.com/gitweb/BK-2020-03.git/blobdiff_plain/a80b26ffc2346c0b863477786a36b1542ed0f392..8aa3848018f7831ce879688d776a160d54f300b2:/user/mw_wc2sp.sh?ds=sidebyside diff --git a/user/mw_wc2sp.sh b/user/mw_wc2sp.sh index 4973f24..467df7a 100755 --- a/user/mw_wc2sp.sh +++ b/user/mw_wc2sp.sh @@ -4,15 +4,15 @@ # Input: arg1 path input wikicode file # Output: files wikicode file tree # Depends: Bash 5.1.16, GNU Coreutils 8.32 -# Version: 0.1.0 +# Version: 0.4.0 re_sp='^()$'; # subpage marker pattern d_out=./wikicode/; # default output dir f_spl="subpage_list.txt"; # subpage title list -p_spl="${d_out}/${f_spl}"; +p_spl="${d_out}/subpages/${f_spl}"; 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_splv="${d_out}/subpages/${f_splv}"; +f_splwc="subpages.wc"; # subpage list wikicode p_splwc="${d_out}/${f_splwc}"; yell() { echo "$0: $*" >&2; } # print script path and all args to stderr @@ -189,18 +189,18 @@ assemble_subpage_ftree() { yell "STATUS:Running assemble_subpage_ftree()."; # debug - spc_path="${d_out}/presubpage.content"; # default destination for content before subpage detected + spc_path="${d_out}/subpages/presubpage.content"; # default destination for content before subpage detected ## Process input line-by-line while read -r line; do - #declare -p line re_sp; # debug + # declare -p line re_sp; # debug ### Check for subpage marker if [[ "$line" =~ $re_sp ]]; then #### Identify new subpage path sp_path="$(echo "$line" | sed -E -e "s/${re_sp}/\2/" -e 's/[ ]*$//'; )"; # declare -p sp_path; # debug #### Update subpage content file path - spc_path="${d_out}/${sp_path}.content"; + spc_path="${d_out}/subpages/${sp_path}.content"; spc_dir="$(dirname "$spc_path"; )"; #declare -p spc_path spc_dir; # debug #### Prepare file destination @@ -234,8 +234,28 @@ print_wc_footer() { printf -- "\n==References==\n\n" printf -- "\n==Footnotes==\n\n"; printf -- "\n==Comments==\n\n"; + printf -- "\n\n"; printf -- "\n"; }; # print wikicode footer +print_wc_nav() { + # Desc: Print navigation wikilinks + # Input: var lprev + # var lnext + # var link_prev + # var link_next + # Output stdout + + # Print navigation link wikicode + if [[ -z "$lprev" ]]; then + printf "\n[[%s|Next]], [[../|Up]]\n" "$link_next"; + elif [[ -n "$lnext" ]]; then + printf "\n[[%s|Next]], [[%s|Previous]], [[../|Up]]\n" "$link_next" "$link_prev"; + elif [[ -z "$lnext" ]]; then + printf "\n[[%s|Previous]], [[../|Up]]\n" "$link_prev"; + else + yell "FATAL:Here be dragons."; + fi; +}; # print wikicode navigation links create_output_wikicode() { # Desc: Use subpage list and subpage content files to create # output subpage wikicode. @@ -283,7 +303,7 @@ create_output_wikicode() { # Check subpage content files f_spc="${lines_spl[i-1]}.content"; - p_spc="${d_out}/${f_spc}"; + p_spc="${d_out}/subpages/${f_spc}"; declare -p f_spc p_spc; ## Exit if subpage content file missing if [[ "$i" -gt 0 ]] && [[ ! -f "$p_spc" ]]; then @@ -291,7 +311,7 @@ create_output_wikicode() { # Prepare output subpage wikicode files f_spwc="${lines_splv[i-1]}.wc"; - p_spwc="${d_out}/${f_spwc}"; # use validated subpage name + p_spwc="${d_out}/subpages/${f_spwc}"; # use validated subpage name declare -p f_spwc p_spwc; # debug if [[ "$i" -gt 0 ]]; then must touch "$p_spwc"; @@ -335,19 +355,10 @@ create_output_wikicode() { link_next+="$(prune_path_rootside "$lnext" "$fork_level_next")"; link_prev+="$(prune_path_rootside "$lprev" "$fork_level_prev")"; - # Print navigation link wikicode - if [[ -z "$lprev" ]]; then - printf "[[%s|Next]], [[../|Up]]\n" "$link_next" >> "$p_spwc"; - elif [[ -n "$lnext" ]]; then - printf "[[%s|Next]], [[%s|Previous]], [[../|Up]]\n" "$link_next" "$link_prev" >> "$p_spwc"; - elif [[ -z "$lnext" ]]; then - printf "[[%s|Previous]], [[../|Up]]\n" "$link_prev" >> "$p_spwc"; - else - yell "FATAL:Here be dragons."; - fi; - # Print subpage content + print_wc_nav >> "$p_spwc"; print_wc_content >> "$p_spwc"; + print_wc_nav >> "$p_spwc"; print_wc_footer >> "$p_spwc"; declare -p i lprev lcurr lnext lprev_hier lcurr_hier lnext_hier; # debug