https://github.com/greenelab/meta-review
Raw File
Tip revision: 2482af490804891c7f00b248c4e7ef7f356a0730 authored by Daniel Himmelstein on 25 May 2020, 14:59:47 UTC
PR #265 to update Rootstock on 2020-05-25
Tip revision: 2482af4
build.sh
set -o errexit

# Set timezone used by Python for setting the manuscript's date
export TZ=Etc/UTC
# Default Python to read/write text files using UTF-8 encoding
export LC_ALL=en_US.UTF-8

# Generate reference information
echo "Retrieving and processing reference metadata"
manubot process \
  --content-directory=content \
  --output-directory=output \
  --template-variables-path=analyses/deep-review-contrib/deep-review-stats.json \
  --cache-directory=ci/cache \
  --log-level=INFO

# pandoc settings
CSL_PATH=https://github.com/citation-style-language/styles/raw/0f332db9384bfbe5f9028d82b2fb4b9570c1325b/dependent/plos-computational-biology.csl
BIBLIOGRAPHY_PATH=output/references.json
INPUT_PATH=output/manuscript.md

# Make output directory
mkdir -p output

# Create HTML output
# http://pandoc.org/MANUAL.html
echo "Exporting HTML manuscript"
pandoc --verbose \
  --from=markdown \
  --to=html5 \
  --filter=pandoc-fignos \
  --filter=pandoc-eqnos \
  --filter=pandoc-tablenos \
  --bibliography=$BIBLIOGRAPHY_PATH \
  --csl=$CSL_PATH \
  --metadata link-citations=true \
  --include-after-body=build/themes/default.html \
  --include-after-body=build/plugins/table-scroll.html \
  --include-after-body=build/plugins/anchors.html \
  --include-after-body=build/plugins/accordion.html \
  --include-after-body=build/plugins/tooltips.html \
  --include-after-body=build/plugins/jump-to-first.html \
  --include-after-body=build/plugins/link-highlight.html \
  --include-after-body=build/plugins/table-of-contents.html \
  --include-after-body=build/plugins/lightbox.html \
  --mathjax \
  --variable math="" \
  --include-after-body=build/plugins/math.html \
  --include-after-body=build/plugins/hypothesis.html \
  --include-after-body=build/plugins/analytics.html \
  --output=output/manuscript.html \
  $INPUT_PATH

# Return null if docker command is missing, otherwise return path to docker
DOCKER_EXISTS="$(command -v docker || true)"

# Create PDF output (unless BUILD_PDF environment variable equals "false")
if [ "$BUILD_PDF" != "false" ] && [ -z "$DOCKER_EXISTS" ]; then
  echo "Exporting PDF manuscript using WeasyPrint"
  if [ -L images ]; then rm images; fi  # if images is a symlink, remove it
  ln -s content/images
  pandoc \
    --from=markdown \
    --to=html5 \
    --pdf-engine=weasyprint \
    --pdf-engine-opt=--presentational-hints \
    --filter=pandoc-fignos \
    --filter=pandoc-eqnos \
    --filter=pandoc-tablenos \
    --bibliography=$BIBLIOGRAPHY_PATH \
    --csl=$CSL_PATH \
    --metadata link-citations=true \
    --webtex=https://latex.codecogs.com/svg.latex? \
    --include-after-body=build/themes/default.html \
    --output=output/manuscript.pdf \
    $INPUT_PATH
  rm images
fi

# Create PDF output (unless BUILD_PDF environment variable equals "false")
if [ "$BUILD_PDF" != "false" ] && [ -n "$DOCKER_EXISTS" ]; then
  echo "Exporting PDF manuscript using Docker + Athena"
  if [ -d output/images ]; then rm -rf output/images; fi  # if images is a directory, remove it
  cp -R -L content/images output/
  docker run \
    --rm \
    --shm-size=1g \
    --volume=`pwd`/output:/converted/ \
    --security-opt=seccomp:unconfined \
    arachnysdocker/athenapdf:2.16.0 \
    athenapdf \
    --delay=2000 \
    manuscript.html manuscript.pdf
  rm -rf output/images
fi

# Create DOCX output (if BUILD_DOCX environment variable equals "true")
if [ "$BUILD_DOCX" = "true" ]; then
  echo "Exporting Word Docx manuscript"
  pandoc --verbose \
    --from=markdown \
    --to=docx \
    --filter=pandoc-fignos \
    --filter=pandoc-eqnos \
    --filter=pandoc-tablenos \
    --bibliography=$BIBLIOGRAPHY_PATH \
    --csl=$CSL_PATH \
    --metadata link-citations=true \
    --reference-doc=build/themes/default.docx \
    --resource-path=.:content \
    --output=output/manuscript.docx \
    $INPUT_PATH
fi

echo "Build complete"
back to top