_(){ printf %s\\n "$*"; }
[ "${LANGUAGE}" -a -r "${_EXEC}/l10n/${LANGUAGE}.sh" ] && . "${_EXEC}/l10n/${LANGUAGE}.sh"
-show_form=true show_hits='' action='' query=''
+show_form=true show_hits='' action='' query='' show_query='' hlevel='3' alt=''
set -- "$@" --
while [ $# -gt 0 ]; do case $1 in
--no-form|--noform)
show_form=''; shift 1;;
--hits|--results)
+ [ ! "$show_query" ] && show_query=true
show_hits='true'; shift 1;;
+ --query|--show-query)
+ show_query=true; shift 1;;
+ --no-query)
+ show_query=false; shift 1;;
--action)
action="$(HTML "$2")"; shift 2;;
--action=*|action=*)
- action="$(HTML "${2#*=}")"; shift 1;;
+ action="$(HTML "${1#*=}")"; shift 1;;
+ --h1|--h2|--h3|--h4|--h5|--h6)
+ hlevel="${1#--h}"; shift 1;;
+ --alt)
+ alt="$2"; shift 2;;
--) shift 1; break;;
*) set -- "$@" "$1"; shift 1;;
esac; done
[ $# -gt 0 ] && query="$*" || query="$(GET q)"
+[ ! "$show_query" ] && show_query=false
searchteaser() {
local file="$1" words db3_data
}
}
-if [ ! "$action" -a "$LANGUAGE_DEFAULT" ]; then
+if [ ! "$action" -a "$LANGUAGE" != "$LANGUAGE_DEFAULT" ]; then
action="./:${LANGUAGE}/[search]"
elif [ ! "$action" ]; then
action="./[search]"
cat <<-EOF
<form class="macro search" method="GET" action="${action}">
<input type="search" placeholder="$(_ Search)" name="q"
- value="$([ "$show_hits" = true ] && printf %s\\n "$query" |HTML)"
+ value="$([ "$show_query" = true ] && printf %s\\n "$query" |HTML)"
><button type="submit" class="search">$(_ Search)</button>
</form>
EOF
')
EOF
- printf '<ul class="macro search hits">'
for w in ${words}; do
[ ! -f "$I/$w" ] && continue
has_tag "$page" $ntags && continue
printf '%s %s\n' "$doc" "$(searchteaser "$(mdfile "$page")" $words)"
done \
- | while read -r p t; do
- path="$(UNSTRING "$p")" pfrag="${path%/}" title=''
- while [ "$pfrag" ]; do
- title="$(page_title "$pfrag")/$title"
- pfrag="${pfrag%/*}"
- done
- printf '<li><a href="%s">%s</a><p>%s</p></li>' \
- "$(URL "$path")" "$(HTML "/$title")" "$(UNSTRING "$t" |HTML)"
- done
- printf '</ul>'
+ | { while read -r p t; do
+ [ ! "$path" ] && printf '<ul class="macro search hits">'
+ path="$(UNSTRING "$p")" title="$(page_title "$path")"
+ path="$(HTML "$path")"
+ printf '<li><h%i><a href="%s">%s</a></h%i><p class="path">%s</p><p class="teaser">%s</p></li>' \
+ "${hlevel}" "$path" "$(HTML "$title")" "${hlevel}" \
+ "$path" "$(UNSTRING "$t" |HTML)"
+ done
+ [ "$path" ] && printf '</ul>'
+ [ ! "$path" -a "$alt" -a "$query" ] \
+ && printf '<p class="macro search hits">%s</p>' "$(HTML "$alt")"
+ }
fi