+[ "$include_tools" ] && return 0
+include_tools="$0"
+
+# Copyright 2022 - 2023 Paul Hänsch
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
+# IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+. "${_EXEC}/cgilite/storage.sh"
+
+md(){
+ local parser
+
+ if [ "$#" = 0 ]; then
+ md "${_EXEC}"/parsers/*
+ elif [ "$#" = 1 ]; then
+ "$1"
+ else
+ parser="$1"
+ shift 1
+ "$parser" |md "$@"
+ fi
+}
+
+mdfile(){
+ # Check if page exists, if possible fall
+ # back to default page from installation
+ local page="$(PATH "$1")"
+ page="${page%/}"
+
+ # Regular processing, keep in sync with tools.sh
+ if [ -f "$_DATA/pages/$page/:$LANGUAGE/#page.md" ]; then
+ printf %s\\n "$_DATA/pages/$page/:$LANGUAGE/#page.md"
+ elif [ -f "$_DATA/pages/$page/#page.md" ]; then
+ printf %s\\n "$_DATA/pages/$page/#page.md"
+ elif [ -f "$_EXEC/pages/$page/:$LANGUAGE/#page.md" ]; then
+ printf %s\\n "$_EXEC/pages/$page/:$LANGUAGE/#page.md"
+ elif [ -f "$_EXEC/pages/$page/#page.md" ]; then
+ printf %s\\n "$_EXEC/pages/$page/#page.md"
+ else
+ return 1
+ fi 2>&-
+ # ^^ suppress error messages produced
+ # by printf when stdout was closed
+
+ return 0
+}
+