diff options
-rwxr-xr-x | bollux | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/bollux b/bollux index d58aac3..5ccd2ba 100755 --- a/bollux +++ b/bollux | |||
@@ -126,8 +126,8 @@ bollux_config() { | |||
126 | : "${BOLLUX_DATADIR:=${XDG_DATA_DIR:-$HOME/.local/share}/bollux}" | 126 | : "${BOLLUX_DATADIR:=${XDG_DATA_DIR:-$HOME/.local/share}/bollux}" |
127 | : "${BOLLUX_DOWNDIR:=.}" # where to save downloads | 127 | : "${BOLLUX_DOWNDIR:=.}" # where to save downloads |
128 | : "${BOLLUX_LESSKEY:=$BOLLUX_DATADIR/lesskey}" # where to store binds | 128 | : "${BOLLUX_LESSKEY:=$BOLLUX_DATADIR/lesskey}" # where to store binds |
129 | : "${BOLLUX_PAGESRC:=$BOLLUX_DATADIR/pagesrc}" # where to save the source | 129 | : "${BOLLUX_PAGESRC:=$BOLLUX_DATADIR/pagesrc}" # where to save source |
130 | BOLLUX_HISTFILE="$BOLLUX_DATADIR/history" # where to save the history | 130 | BOLLUX_HISTFILE="$BOLLUX_DATADIR/history" # where to save history |
131 | ## typesetting | 131 | ## typesetting |
132 | : "${T_MARGIN:=4}" # left and right margin | 132 | : "${T_MARGIN:=4}" # left and right margin |
133 | : "${T_WIDTH:=0}" # width of the viewport -- 0 = get term width | 133 | : "${T_WIDTH:=0}" # width of the viewport -- 0 = get term width |
@@ -199,7 +199,9 @@ blastoff() { # blastoff [-u] URL | |||
199 | if declare -Fp "${url[1]}_response" >/dev/null 2>&1; then | 199 | if declare -Fp "${url[1]}_response" >/dev/null 2>&1; then |
200 | run "${url[1]}_response" "$url" | 200 | run "${url[1]}_response" "$url" |
201 | else | 201 | else |
202 | log d "No response handler for '${url[1]}', passing thru" | 202 | log d \ |
203 | "No response handler for '${url[1]}';" \ | ||
204 | " passing thru" | ||
203 | passthru | 205 | passthru |
204 | fi | 206 | fi |
205 | } | 207 | } |
@@ -674,10 +676,14 @@ display() { # display METADATA [TITLE] | |||
674 | mklesskey "$BOLLUX_LESSKEY" && less_cmd+=(-k "$BOLLUX_LESSKEY") | 676 | mklesskey "$BOLLUX_LESSKEY" && less_cmd+=(-k "$BOLLUX_LESSKEY") |
675 | local helpline="o:open, g/G:goto, [:back, ]:forward, r:refresh" | 677 | local helpline="o:open, g/G:goto, [:back, ]:forward, r:refresh" |
676 | less_cmd+=( | 678 | less_cmd+=( |
677 | -Pm"$(less_prompt_escape "$BOLLUX_URL") - bollux$" # 'status'line | 679 | # 'status'line |
678 | -P="$(less_prompt_escape "$helpline")$" # helpline | 680 | -Pm"$(less_prompt_escape "$BOLLUX_URL") - bollux$" |
679 | -m # start with statusline | 681 | # helpline |
680 | +k # float content to the top | 682 | -P="$(less_prompt_escape "$helpline")$" |
683 | # start with statusline | ||
684 | -m | ||
685 | # float content to the top | ||
686 | +k | ||
681 | ) | 687 | ) |
682 | 688 | ||
683 | local typeset | 689 | local typeset |
@@ -806,8 +812,10 @@ gemini_link() { | |||
806 | fold_line -n -B "\e[${C_LINK_TITLE}m" -A "${C_RESET}" \ | 812 | fold_line -n -B "\e[${C_LINK_TITLE}m" -A "${C_RESET}" \ |
807 | -l "$((${#ln} + 3))" -m "${T_MARGIN}" \ | 813 | -l "$((${#ln} + 3))" -m "${T_MARGIN}" \ |
808 | "$WIDTH" "$(trim_string "$t")" | 814 | "$WIDTH" "$(trim_string "$t")" |
809 | fold_line -B " \e[${C_LINK_URL}m" -A "${C_RESET}" \ | 815 | fold_line -B " \e[${C_LINK_URL}m" \ |
810 | -l "$((${#ln} + 3 + ${#t}))" -m "$((T_MARGIN + ${#ln} + 2))" \ | 816 | -A "${C_RESET}" \ |
817 | -l "$((${#ln} + 3 + ${#t}))" \ | ||
818 | -m "$((T_MARGIN + ${#ln} + 2))" \ | ||
811 | "$WIDTH" "$a" | 819 | "$WIDTH" "$a" |
812 | else | 820 | else |
813 | gemini_pre "$1" | 821 | gemini_pre "$1" |
@@ -879,7 +887,13 @@ gemini_pre() { | |||
879 | 887 | ||
880 | # wrap lines on words to WIDTH | 888 | # wrap lines on words to WIDTH |
881 | fold_line() { | 889 | fold_line() { |
882 | # fold_line [-n] [-m MARGIN] [-f MARGIN] [-l LENGTH] [-B BEFORE] [-A AFTER] WIDTH TEXT | 890 | # fold_line [-n] |
891 | # [-m MARGIN] | ||
892 | # [-f MARGIN] | ||
893 | # [-l LENGTH] | ||
894 | # [-B BEFORE] | ||
895 | # [-A AFTER] | ||
896 | # WIDTH TEXT | ||
883 | local newline=true | 897 | local newline=true |
884 | local -i margin_all=0 margin_first=0 width ll=0 wl=0 wn=0 | 898 | local -i margin_all=0 margin_first=0 width ll=0 wl=0 wn=0 |
885 | local before="" after="" | 899 | local before="" after="" |
@@ -995,8 +1009,10 @@ select_url() { # select_url FILE | |||
995 | # extract the links from a text/gemini file | 1009 | # extract the links from a text/gemini file |
996 | extract_links() { | 1010 | extract_links() { |
997 | local url alt | 1011 | local url alt |
1012 | local re="^=>[[:space:]]*([^[:space:]]+)([[:space:]]+(.*))?$" | ||
998 | while read -r; do | 1013 | while read -r; do |
999 | if [[ "$REPLY" =~ ^=\>[[:space:]]*([^[:space:]]+)([[:space:]]+(.*))?$ ]]; then | 1014 | log d $re |
1015 | if [[ $REPLY =~ $re ]]; then | ||
1000 | url="${BASH_REMATCH[1]}" | 1016 | url="${BASH_REMATCH[1]}" |
1001 | alt="${BASH_REMATCH[3]}" | 1017 | alt="${BASH_REMATCH[3]}" |
1002 | 1018 | ||