github.com/pachyderm/pachyderm@v1.13.4/doc/build.sh (about)

     1  #!/bin/bash
     2  
     3  set -ex
     4  
     5  # Start out in same directory as script, so that relative paths below are all
     6  # correct
     7  cd "$(dirname "${0}")"
     8  
     9  # Delete old site/ dir
    10  if [[ -d site ]]; then
    11    rm -rf site overrides/partials/versions.html
    12  fi
    13  
    14  # Add each version of the docs to the dropdown defined by
    15  # material/overrides/partials/versions.html. This must be built before running 'mkdocs'
    16  # itself
    17  latest_version="$(ls ./docs | grep -Ev 'latest|master|archived' | sort -r -V | head -n 1)"
    18  cat <<EOF >>overrides/partials/versions.html
    19  <div class="mdl-selectfield">
    20      <select class="mdl-selectfield__select" id="version-selector" onchange="
    21          let pathParts = window.location.pathname.split('/');
    22          pathParts[1] = this.value;
    23          window.location.pathname = pathParts.join('/')
    24      ">
    25          <option style="color:white;background-color:#4b2a5c;" value="latest">latest (${latest_version})</option>
    26  EOF
    27  for d in docs/*; do
    28      d=$(basename "${d}")
    29  
    30      # don't rebuild archived dir
    31      if [[ "${d}" == "archived" ]]; then
    32          continue
    33      fi
    34      if [[ "${d}" == "master" ]]; then
    35           continue
    36      fi
    37      cat <<EOF >>overrides/partials/versions.html
    38          <option style="color:white;background-color:#4b2a5c;" value="${d}">${d}</option>"
    39  EOF
    40  done
    41      cat <<EOF >>overrides/partials/versions.html
    42          <option style="color:white;background-color:#4b2a5c;" value="archive">Archive</option>"
    43  EOF
    44  cat <<EOF >>overrides/partials/versions.html
    45      </select>
    46      <!-- set initial value of 'select' to the version of the docs being browsed -->
    47      <script type="text/javascript">
    48        var pathParts = window.location.pathname.split('/');
    49        document.getElementById('version-selector').value = pathParts[1]
    50      </script>
    51  </div>
    52  EOF
    53  
    54  # Rebuild all docs versions
    55  for d in docs/*; do
    56      d=$(basename "${d}")
    57  
    58      # don't rebuild archived dir
    59      if [[ "${d}" == "archived" ]]; then
    60          continue
    61      fi
    62      if [[ "${d}" == "master" ]]; then
    63          continue
    64      fi
    65      out_dir="site/${d}"
    66  
    67      # Check for mkdocs file
    68      mkdocs_file="mkdocs-${d}.yml"
    69      if [[ ! -f "${mkdocs_file}" ]]; then
    70          echo "expected mkdocs config file \"${mkdocs_file}\" for docs version \"${d}\", but the config file wasn't found"
    71          exit 1
    72      fi
    73  
    74      # rebuild site
    75      mkdocs build --config-file "${mkdocs_file}" --site-dir "${out_dir}"
    76  done
    77  
    78  # Finally, copy latest version of the docs into 'latest'
    79  if [[ -z "${latest_version}" ]]; then
    80      echo "No latest version to symlink"
    81      exit 1
    82  fi
    83  cp -Rl "site/${latest_version}" site/latest
    84  
    85  # Add custom 404
    86  ln "site/${latest_version}/404.html" site/404.html
    87  cp -Rl "site/${latest_version}/assets" site/assets
    88