website-doc.sh: learn to export Changelog's definitions
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
parent
c89d17dacb
commit
dd2a70fc68
10
Changelog.md
10
Changelog.md
@ -3,13 +3,21 @@ layout: page
|
||||
title: Changelog of mainline
|
||||
---
|
||||
|
||||
<!--
|
||||
Note to mainainers:
|
||||
* You should not edit this file manually; prefer the ./contrib/release.sh script.
|
||||
* If you really want to do manual edition, keep in mind that it's exported as-is
|
||||
to the website which expect the current structure (title levels, title syntax,
|
||||
sub-sections, front matter, etc).
|
||||
-->
|
||||
|
||||
|
||||
* The following excerpt is only usefull when rendered in the website.
|
||||
{:toc}
|
||||
|
||||
### OfflineIMAP v6.5.7-rc3 (2015- - )
|
||||
|
||||
|
||||
|
||||
### OfflineIMAP v6.5.7-rc2 (2015-01-18)
|
||||
|
||||
#### Notes
|
||||
|
@ -28,7 +28,8 @@ api:
|
||||
$(SPHINXBUILD) -b html -d html/doctrees doc-src html
|
||||
|
||||
websitedoc:
|
||||
./website-doc.sh
|
||||
./website-doc.sh releases
|
||||
./website-doc.sh api
|
||||
|
||||
clean:
|
||||
$(RM) -f $(HTML_TARGETS)
|
||||
|
@ -2,40 +2,91 @@
|
||||
#
|
||||
# vim: expandtab ts=2 :
|
||||
|
||||
ARGS=$*
|
||||
|
||||
SPHINXBUILD=sphinx-build
|
||||
TMPDIR='/tmp/offlineimap-sphinx-doctrees'
|
||||
WEBSITE='../website'
|
||||
DOCBASE="${WEBSITE}/_doc"
|
||||
DESTBASE="${DOCBASE}/versions"
|
||||
VERSIONS_YML="${WEBSITE}/_data/versions.yml"
|
||||
ANNOUNCES_YML="${WEBSITE}/_data/announces.yml"
|
||||
|
||||
version="v$(../offlineimap.py --version)"
|
||||
|
||||
test -d "$DESTBASE" || exit 1
|
||||
dest="${DESTBASE}/${version}"
|
||||
|
||||
#
|
||||
# Build sphinx documentation.
|
||||
# Build the sphinx documentation.
|
||||
#
|
||||
echo "Cleaning target directory: $dest"
|
||||
rm -rf "$dest"
|
||||
$SPHINXBUILD -b html -d "$TMPDIR" doc-src "$dest"
|
||||
function sphinx_doc () {
|
||||
# Build the doc with sphinx.
|
||||
dest="${DESTBASE}/${version}"
|
||||
echo "Cleaning target directory: $dest"
|
||||
rm -rf "$dest"
|
||||
$SPHINXBUILD -b html -d "$TMPDIR" doc-src "$dest"
|
||||
|
||||
# Build the JSON definitions for Jekyll.
|
||||
# This let know the website about the available APIs documentations.
|
||||
echo "Building Jekyll data: $VERSIONS_YML"
|
||||
echo "# DO NOT EDIT MANUALLY: it is generated by a script (website-doc.sh)" > "$VERSIONS_YML"
|
||||
for version in $(ls "$DESTBASE" -1 | sort -nr)
|
||||
do
|
||||
echo "- $version"
|
||||
done >> "$VERSIONS_YML"
|
||||
}
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Dynamically build JSON definitions for Jekyll.
|
||||
# Make Changelog public and save links to them as JSON.
|
||||
#
|
||||
echo "Building Jekyll data: $VERSIONS_YML"
|
||||
for version in $(ls "$DESTBASE" -1 | sort -nr)
|
||||
function releases () {
|
||||
# Copy the Changelogs.
|
||||
for foo in ../Changelog.md ../Changelog.maint.md
|
||||
do
|
||||
cp -afv "$foo" "$DOCBASE"
|
||||
done
|
||||
|
||||
# Build the announces JSON list. Format is JSON:
|
||||
# - {version: '<version>', link: '<link>'}
|
||||
# - ...
|
||||
echo "# DO NOT EDIT MANUALLY: it is generated by a script (website-doc.sh)" > "$ANNOUNCES_YML"
|
||||
grep -E '^### OfflineIMAP' ../Changelog.md | while read title
|
||||
do
|
||||
link="$(echo $title | sed -r -e 's,^### (OfflineIMAP.*)\),\1,' \
|
||||
| tr '[:upper:]' '[:lower:]' \
|
||||
| sed -r -e 's,[\.("],,g' \
|
||||
| sed -r -e 's, ,-,g'
|
||||
)"
|
||||
v="$(echo $title \
|
||||
| sed -r -e 's,^### [a-Z]+ (v[^ ]+).*,\1,'
|
||||
)"
|
||||
echo "- {version: '${v}', link: '$link'}"
|
||||
done | tee -a "$ANNOUNCES_YML"
|
||||
}
|
||||
|
||||
|
||||
|
||||
exit_code=0
|
||||
test "n$ARGS" = 'n' && ARG='usage' # no option passed
|
||||
for arg in $ARGS
|
||||
do
|
||||
echo "- $version"
|
||||
done > "$VERSIONS_YML"
|
||||
|
||||
#
|
||||
# Copy usefull sources of documentation.
|
||||
#
|
||||
|
||||
# Changelogs.
|
||||
for foo in ../Changelog.md ../Changelog.maint.md
|
||||
do
|
||||
cp -afv "$foo" "$DOCBASE"
|
||||
case "n$arg" in
|
||||
"nreleases")
|
||||
releases
|
||||
;;
|
||||
"napi")
|
||||
api
|
||||
;;
|
||||
"nusage")
|
||||
echo "Usage: website-doc.sh <releases|api|usage>"
|
||||
;;
|
||||
*)
|
||||
echo "unkown option $arg"
|
||||
exit_code=$(( $exit_code + 1 ))
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
exit $exit_code
|
||||
|
Loading…
Reference in New Issue
Block a user