#!/bin/sh #――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # Name: bookmarks-dl: xbel # Desc: Output format for bookmarks-dl, formatting bookmarks in XBEL format. # Auth: Jaidyn Ann # Date: 2023-09-04 # Reqs: lynx, jq # Lisc: GPLv3 #――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― format_bookmarks() { local json_bookmarks_file="$(mktemp)" cat \ > "$json_bookmarks_file" echo '' echo '' items_count="$(jq -r '. | length' < "$json_bookmarks_file")" item_index="0" while test "$item_index" -lt "$items_count"; do format_bookmark "$json_bookmarks_file" "$item_index" item_index="$(echo "$item_index + 1" | bc)" done echo "" rm "$json_bookmarks_file" } format_bookmark() { local json_file="$1" local json_index="$2" title="$(jq -r ".[$json_index].title" < "$json_file")" # | html_text_deescape | html_escape)" desc="$(jq -r ".[$json_index].desc" < "$json_file")" # | html_text_deescape | html_escape)" added="$(jq -r ".[$json_index].added" < "$json_file")" href="$(jq -r ".[$json_index].href" < "$json_file")" if test -z "$title" -a -n "$desc"; then title="$(echo "$desc" | head --bytes=40)" fi cat < $(if valid_value "$title"; then echo "$title"; fi) $(if valid_value "$desc"; then echo "$desc"; fi) MDR } valid_value() { local value="$1" test -n "$value" -a ! "$value" = "null" }