2019-11-11 18:30:46 -08:00
|
|
|
#!/bin/bash
|
|
|
|
# Generate docs.md
|
2022-03-05 12:15:47 -08:00
|
|
|
# requires pydoc-markdown 4.6.1
|
2022-01-26 15:01:42 -08:00
|
|
|
readme_config=$(cat <<'EOF'
|
|
|
|
{
|
|
|
|
"processors": [
|
|
|
|
{
|
|
|
|
"type": "filter"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "pydocmd"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"renderer": {
|
|
|
|
"type": "markdown",
|
|
|
|
"header_level_by_type": {
|
|
|
|
"Module": 1,
|
|
|
|
"Class": 3,
|
|
|
|
"Method": 3,
|
|
|
|
"Function": 3,
|
2022-03-04 13:27:39 -08:00
|
|
|
"Variable": 3
|
2022-01-26 15:01:42 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
)
|
|
|
|
|
2022-01-26 13:03:51 -08:00
|
|
|
toc_config=$(cat <<'EOF'
|
2022-01-26 11:50:25 -08:00
|
|
|
{
|
|
|
|
"processors": [
|
|
|
|
{
|
2022-01-26 15:01:42 -08:00
|
|
|
"type": "filter"
|
2022-01-26 11:50:25 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "pydocmd"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"renderer": {
|
|
|
|
"type": "markdown",
|
2022-01-26 14:16:04 -08:00
|
|
|
"render_toc": true,
|
|
|
|
"header_level_by_type": {
|
|
|
|
"Module": 1,
|
|
|
|
"Class": 3,
|
|
|
|
"Method": 3,
|
|
|
|
"Function": 3,
|
2022-03-04 13:27:39 -08:00
|
|
|
"Variable": 3
|
2022-01-26 14:16:04 -08:00
|
|
|
}
|
2022-01-26 11:50:25 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
)
|
2022-01-25 18:38:26 -08:00
|
|
|
|
2022-01-26 15:01:42 -08:00
|
|
|
parser_config=$(cat <<'EOF'
|
2022-01-26 13:03:51 -08:00
|
|
|
{
|
|
|
|
"processors": [
|
|
|
|
{
|
|
|
|
"type": "filter",
|
2022-01-26 15:01:42 -08:00
|
|
|
"expression": "not name == \"info\" and not name.startswith(\"_\") and default()"
|
2022-01-26 13:03:51 -08:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "pydocmd"
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"renderer": {
|
2022-01-26 14:16:04 -08:00
|
|
|
"type": "markdown",
|
|
|
|
"header_level_by_type": {
|
|
|
|
"Module": 1,
|
|
|
|
"Class": 3,
|
|
|
|
"Method": 3,
|
|
|
|
"Function": 3,
|
2022-03-04 13:27:39 -08:00
|
|
|
"Variable": 3
|
2022-01-26 14:16:04 -08:00
|
|
|
}
|
2022-01-26 13:03:51 -08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
EOF
|
|
|
|
)
|
|
|
|
|
2019-11-11 18:30:46 -08:00
|
|
|
cd jc
|
2022-04-10 17:14:34 -07:00
|
|
|
(
|
|
|
|
echo Building docs for: package
|
|
|
|
pydoc-markdown -m jc "${readme_config}" > ../docs/readme.md; echo "+++ package docs complete"
|
|
|
|
) &
|
2022-01-19 22:20:36 -08:00
|
|
|
|
2022-04-10 17:14:34 -07:00
|
|
|
(
|
|
|
|
echo Building docs for: lib
|
|
|
|
pydoc-markdown -m jc.lib "${toc_config}" > ../docs/lib.md; echo "+++ lib docs complete" &
|
|
|
|
) &
|
2022-01-19 22:20:36 -08:00
|
|
|
|
2022-04-10 17:14:34 -07:00
|
|
|
(
|
|
|
|
echo Building docs for: utils
|
|
|
|
pydoc-markdown -m jc.utils "${toc_config}" > ../docs/utils.md; echo "+++ utils docs complete" &
|
|
|
|
) &
|
2021-04-02 21:50:04 -07:00
|
|
|
|
2022-04-10 17:14:34 -07:00
|
|
|
(
|
|
|
|
echo Building docs for: streaming
|
|
|
|
pydoc-markdown -m jc.streaming "${toc_config}" > ../docs/streaming.md; echo "+++ streaming docs complete" &
|
|
|
|
) &
|
2022-02-07 06:29:17 -08:00
|
|
|
|
2022-04-10 17:14:34 -07:00
|
|
|
(
|
|
|
|
echo Building docs for: universal parser
|
|
|
|
pydoc-markdown -m jc.parsers.universal "${toc_config}" > ../docs/parsers/universal.md; echo "+++ universal parser docs complete" &
|
|
|
|
) &
|
2022-01-20 09:46:24 -08:00
|
|
|
|
2021-04-02 21:50:04 -07:00
|
|
|
# a bit of inception here... jc is being used to help
|
|
|
|
# automate the generation of its own documentation. :)
|
|
|
|
|
2021-04-09 10:26:34 -07:00
|
|
|
# pull jc parser objects into a bash array from jq
|
2022-01-25 18:42:55 -08:00
|
|
|
# filter out any plugin parsers
|
2021-04-09 10:26:34 -07:00
|
|
|
parsers=()
|
|
|
|
while read -r value
|
|
|
|
do
|
2021-04-09 16:36:20 -07:00
|
|
|
parsers+=("$value")
|
2022-01-25 17:07:47 -08:00
|
|
|
done < <(jc -a | jq -c '.parsers[] | select(.plugin != true)')
|
2021-04-02 21:50:04 -07:00
|
|
|
|
2021-04-09 10:26:34 -07:00
|
|
|
for parser in "${parsers[@]}"
|
2022-04-10 16:54:22 -07:00
|
|
|
do (
|
2021-04-09 16:36:20 -07:00
|
|
|
parser_name=$(jq -r '.name' <<< "$parser")
|
|
|
|
compatible=$(jq -r '.compatible | join(", ")' <<< "$parser")
|
|
|
|
version=$(jq -r '.version' <<< "$parser")
|
|
|
|
author=$(jq -r '.author' <<< "$parser")
|
|
|
|
author_email=$(jq -r '.author_email' <<< "$parser")
|
2021-04-09 10:26:34 -07:00
|
|
|
|
|
|
|
echo "Building docs for: ${parser_name}"
|
2021-04-09 10:36:03 -07:00
|
|
|
echo "[Home](https://kellyjonbrazil.github.io/jc/)" > ../docs/parsers/"${parser_name}".md
|
2022-01-26 15:01:42 -08:00
|
|
|
pydoc-markdown -m jc.parsers."${parser_name}" "${parser_config}" >> ../docs/parsers/"${parser_name}".md
|
2022-01-25 19:18:54 -08:00
|
|
|
echo "### Parser Information" >> ../docs/parsers/"${parser_name}".md
|
2021-04-09 10:26:34 -07:00
|
|
|
echo "Compatibility: ${compatible}" >> ../docs/parsers/"${parser_name}".md
|
|
|
|
echo >> ../docs/parsers/"${parser_name}".md
|
|
|
|
echo "Version ${version} by ${author} (${author_email})" >> ../docs/parsers/"${parser_name}".md
|
2022-04-10 16:54:22 -07:00
|
|
|
echo "+++ ${parser_name} docs complete"
|
|
|
|
) &
|
2021-04-02 21:50:04 -07:00
|
|
|
done
|
2022-04-10 16:54:22 -07:00
|
|
|
wait
|
|
|
|
echo "Document Generation Complete"
|