59 lines
1.1 KiB
Bash
Executable File
59 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
# Dependency: https://mikefarah.gitbook.io/yq/
|
|
|
|
# Clone from https://github.com/gohugoio/hugoDocs/ and checkout the tag of your
|
|
# hugo version
|
|
# Path to <hugoDocsDir>/content/en/
|
|
hugo_docs_path="$1"
|
|
|
|
cd "$hugo_docs_path"
|
|
|
|
add_tag() {
|
|
local tagname fname
|
|
tagname="$1"
|
|
fname="$2"
|
|
|
|
# Tags file format: https://vimhelp.org/tagsrch.txt.html#ctags
|
|
printf "%s\t%s\t2\n" "$tagname" "$hugo_docs_path/$fname"
|
|
}
|
|
|
|
add_methods() {
|
|
local f title
|
|
|
|
for f in methods/*/*md; do
|
|
if [ "$(basename "$f")" = _index.md ]; then
|
|
continue
|
|
fi
|
|
|
|
title="$(yq --front-matter extract .title "$f")"
|
|
add_tag "$title" "$f"
|
|
|
|
done
|
|
}
|
|
|
|
add_funcs() {
|
|
local f halias
|
|
|
|
for f in functions/*/*md; do
|
|
if [ "$(basename "$f")" = _index.md ]; then
|
|
continue
|
|
fi
|
|
|
|
add_tag "$(basename "${f%.md}")" "$f"
|
|
|
|
halias="$(yq --front-matter extract .params.functions_and_methods.aliases "$f" |
|
|
grep -v -F -e null -e '[]' -e ',')" # Remove invalid/missing/multiple aliases
|
|
|
|
if [ -n "$halias" ]; then
|
|
halias="${halias:1:${#halias}-2}"
|
|
add_tag "$halias" "$f"
|
|
fi
|
|
done
|
|
}
|
|
|
|
add_methods
|
|
add_funcs
|