mirror of
https://github.com/Cacti/documentation.git
synced 2026-10-29 08:07:40 +09:00
111 lines
3.2 KiB
Bash
Executable File
111 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# +-------------------------------------------------------------------------+
|
|
# | Copyright (C) 2004-2018 The Cacti Group |
|
|
# | |
|
|
# | This program is free software; you can redistribute it and/or |
|
|
# | modify it under the terms of the GNU General Public License |
|
|
# | as published by the Free Software Foundation; either version 2 |
|
|
# | of the License, or (at your option) any later version. |
|
|
# | |
|
|
# | This program is distributed in the hope that it will be useful, |
|
|
# | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
# | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
# | GNU General Public License for more details. |
|
|
# +-------------------------------------------------------------------------+
|
|
# | http://www.cacti.net/ |
|
|
# +-------------------------------------------------------------------------+
|
|
#
|
|
# Helper script to build HTML documentation from markdown source
|
|
|
|
# define script variables
|
|
UTILS="pandoc"
|
|
ODIR="html"
|
|
|
|
# check if for required utilities
|
|
ERROR=""
|
|
for UTIL in ${UTILS}
|
|
do
|
|
which ${UTIL} 1>/dev/null 2>&1
|
|
if [ ${?} -gt 0 ]
|
|
then
|
|
ERROR="${ERROR} - ${UTIL}\n"
|
|
fi
|
|
done
|
|
|
|
if [ -n "${ERROR}" ]
|
|
then
|
|
echo "ERROR: Required utilities not found"
|
|
echo
|
|
echo "Please install the following utilities:"
|
|
echo "${ERROR}"
|
|
exit 1
|
|
fi
|
|
|
|
# make sure pandoc has lua support
|
|
pandoc --help | grep 'lua-filter' 1>/dev/null 2>&1
|
|
if [ ${?} -gt 0 ]
|
|
then
|
|
echo "ERROR: Required LUA Filter support not found in Pandoc utility"
|
|
echo " Make sure you have version 2.3.1 or higher installed"
|
|
exit 1
|
|
fi
|
|
|
|
# determine base path of the repository
|
|
BASE_PATH="$( cd "$(dirname "$0")" ; pwd -P | sed 's/\/bin//')"
|
|
|
|
# create output directory if needed
|
|
if [ ! -d ${BASE_PATH}/${ODIR}/images ]
|
|
then
|
|
mkdir -p ${BASE_PATH}/${ODIR}/images
|
|
if [ ${?} -gt 0 ]
|
|
then
|
|
echo "ERROR: Unable to create output directory: ${ODIR}"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# copy image resources
|
|
echo "Copying images..."
|
|
cp -r ${BASE_PATH}/images/* ${BASE_PATH}/${ODIR}/images/
|
|
if [ ${?} -gt 0 ]
|
|
then
|
|
echo "ERROR: Failed to copy images"
|
|
exit 1
|
|
fi
|
|
|
|
# copy css resourse
|
|
echo "Copying css..."
|
|
cp -r ${BASE_PATH}/resources/css/* ${BASE_PATH}/${ODIR}/
|
|
if [ ${?} -gt 0 ]
|
|
then
|
|
echo "ERROR: Failed to copy images"
|
|
exit 1
|
|
fi
|
|
|
|
# process markdown files into html
|
|
echo "Converting files..."
|
|
for FILE in `find ${BASE_PATH} -name "*.md"`
|
|
do
|
|
IFILE=${FILE//$BASE_PATH\/}
|
|
OFILE=${ODIR}/${IFILE//.md/.html}
|
|
TITLE=$(grep "^# " $FILE | head -1 | sed 's/# //')
|
|
|
|
# handle special case for table of contents
|
|
if [ "${IFILE}" = "README.md" ]
|
|
then
|
|
OFILE="${ODIR}/Table-of-Contents.html"
|
|
fi
|
|
echo " '${IFILE}' => '${OFILE}'"
|
|
|
|
pandoc --from=gfm --to=html5 ${IFILE} \
|
|
--standalone \
|
|
--output=${BASE_PATH}/${OFILE} \
|
|
--lua-filter=${BASE_PATH}/resources/build/pandoc_links_to_html.lua \
|
|
--css=Cacti-Github.css \
|
|
--metadata=pagetitle:"$TITLE" \
|
|
-T "Cacti"
|
|
done
|
|
|
|
# done
|
|
exit 0
|