From 0bb2765a12f480067da3fad39e1686a2853f4f91 Mon Sep 17 00:00:00 2001
From: Christine Kim <125395064+chkim-usgs@users.noreply.github.com>
Date: Wed, 6 Sep 2023 11:28:31 -0700
Subject: [PATCH] Docs workflow (#557)

* Docs workflow (#549)

* Test docs build

* Retry

* Add brackets

* Add conda install doxygen and doxygen command

* Output some logging

* Move doxygen command inside docs dir

* Fix ls typo

* Build docs for all linux

* Add back cd docs

* Test windows

* Try python3.11

* Conditional build docs

* Build docs on 3.11

* Test S3 connection

* Setup Hugo

* Add permissions

* Add condition to build docs when merging

* Add no-sign-request bool

* Replace aws ls with sync

* Try removing no-sign-request for sync

* Add back no-sign-request with existing ale folder in s3

* Try changing aws-region

* Change region back to west-2 and test only ls

* Upload to asc-docs instead of asc-public-docs

* Test selective build and docs upload

* Use sphinx-build cmd

* Revert and upload only html folder

* Full test run

* Set docs push condition to last two steps

* Change branch to main

* Update docs setup

* Update make.bat configs

* Turn off docs build for windows

* OCAP compliance

* Revert file structure

* Just in case windows too

* Fix sphinx doc folder path

* Remove public/.doctrees
---
 .github/workflows/aws_doc_deploy.yml |  49 ++++++++++
 .github/workflows/ci_testing.yml     |  32 ++++++-
 CMakeLists.txt                       |  11 +++
 cmake/FindSphinx.cmake               |  11 +++
 doc_environment.yml                  |  10 ++
 docs/CMakeLists.txt                  |  64 +++++++++++++
 docs/{Doxyfile => Doxyfile.in}       |   6 +-
 docs/Makefile                        |  19 ----
 docs/_templates/layout.html          |  10 ++
 docs/_templates/usgsfooter.html      |  70 ++++++++++++++
 docs/_templates/usgsheader.html      | 136 +++++++++++++++++++++++++++
 docs/conf.py                         |  11 ++-
 docs/make.bat                        |   2 +-
 13 files changed, 400 insertions(+), 31 deletions(-)
 create mode 100644 .github/workflows/aws_doc_deploy.yml
 create mode 100644 cmake/FindSphinx.cmake
 create mode 100644 doc_environment.yml
 create mode 100644 docs/CMakeLists.txt
 rename docs/{Doxyfile => Doxyfile.in} (99%)
 delete mode 100644 docs/Makefile
 create mode 100644 docs/_templates/layout.html
 create mode 100644 docs/_templates/usgsfooter.html
 create mode 100644 docs/_templates/usgsheader.html

diff --git a/.github/workflows/aws_doc_deploy.yml b/.github/workflows/aws_doc_deploy.yml
new file mode 100644
index 0000000..4f59fb1
--- /dev/null
+++ b/.github/workflows/aws_doc_deploy.yml
@@ -0,0 +1,49 @@
+name: aws-doc-deploy
+
+on:
+  workflow_run:
+    workflows: ["Pull-Request-CI"]
+    branches: [main]
+    types: 
+      - completed
+
+jobs:
+  deploy:
+    if: ${{ github.event.workflow_run.conclusion == 'success' }}
+    runs-on: ubuntu-latest
+    defaults:
+      run:
+        shell: bash -el {0}
+    steps:
+      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
+        with:
+          submodules: true
+          fetch-depth: 0
+      - uses: conda-incubator/setup-miniconda@3b0f2504dd76ef23b6d31f291f4913fb60ab5ff3
+        with:
+          miniconda-version: "latest"
+          activate-environment: ale
+          environment-file: doc_environment.yml
+          auto-activate-base: false
+          auto-update-conda: true
+
+      - name: Check doc build environment
+        run: |
+          conda list
+
+      - name: Build Docs
+        run: |
+          cd docs
+          doxygen Doxyfile.in
+          sphinx-build -b html . public
+            
+      - name: Set AWS credentials for upload
+        uses: aws-actions/configure-aws-credentials@0e613a0980cbf65ed5b322eb7a1e075d28913a83
+        with:
+          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
+          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+          aws-region: us-west-2
+      
+      - name: Upload to S3
+        working-directory: docs
+        run: aws s3 sync --delete public s3://asc-docs/ale
diff --git a/.github/workflows/ci_testing.yml b/.github/workflows/ci_testing.yml
index 713e3ef..78ddcc1 100644
--- a/.github/workflows/ci_testing.yml
+++ b/.github/workflows/ci_testing.yml
@@ -44,7 +44,7 @@ jobs:
         run: |
           mkdir -p build
           cd build
-          cmake -DCMAKE_BUILD_TYPE=RELEASE -DCOVERAGE=ON ..
+          cmake -DCMAKE_BUILD_TYPE=RELEASE -DCOVERAGE=ON -DALE_BUILD_DOCS=OFF ..
           cmake --build .
       - name: Test C++ Package
         run: |
@@ -58,6 +58,32 @@ jobs:
           verbose: true
         if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9'
 
+  Build-Docs:
+    runs-on: ubuntu-latest
+    defaults:
+      run:
+        shell: bash -el {0}
+    steps:
+      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
+        with:
+          submodules: true
+          fetch-depth: 0
+      - uses: conda-incubator/setup-miniconda@3b0f2504dd76ef23b6d31f291f4913fb60ab5ff3
+        with:
+          miniconda-version: "latest"
+          activate-environment: ale
+          environment-file: doc_environment.yml
+          auto-activate-base: false
+          auto-update-conda: true
+      - name: Check doc build environment
+        run: |
+          conda list
+      - name: Build Docs
+        run: |
+          cd docs
+          doxygen Doxyfile.in
+          sphinx-build -b html . public
+
   Build-and-Test-Win:
     runs-on: windows-2019
     strategy:
@@ -82,7 +108,7 @@ jobs:
         run: |
           mkdir -p build
           cd build
-          cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON -G "Visual Studio 16 2019" -A x64 -DALE_BUILD_TESTS=OFF ..
+          cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON -G "Visual Studio 16 2019" -A x64 -DALE_BUILD_TESTS=OFF -DALE_BUILD_DOCS=OFF ..
           cmake --build . --target ALL_BUILD --config Release
           ls D:\a\ale\ale\build\Release
       - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce
@@ -90,4 +116,4 @@ jobs:
           name: ale
           path: |
             D:\a\ale\ale\build\Release\ale.dll
-            D:\a\ale\ale\build\Release\ale.lib
\ No newline at end of file
+            D:\a\ale\ale\build\Release\ale.lib
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b7f793b..5255885 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,6 +9,10 @@
 cmake_minimum_required(VERSION 3.15)
 project(ale VERSION 0.9.0 DESCRIPTION "Abstraction Library for Ephemerides ")
 
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+message(STATUS "CMake Module Path: " ${CMAKE_MODULE_PATH})
+
 # include what we need
 include(GNUInstallDirs)
 
@@ -131,3 +135,10 @@ install(TARGETS ale
 install(EXPORT aleTargets
         NAMESPACE ale::
         DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+
+option (ALE_BUILD_DOCS "Build the ALE Docs" ON)
+if(ALE_BUILD_DOCS)
+  add_subdirectory ("docs")
+else()
+  message(STATUS "Skipping Docs")
+endif()
\ No newline at end of file
diff --git a/cmake/FindSphinx.cmake b/cmake/FindSphinx.cmake
new file mode 100644
index 0000000..990f979
--- /dev/null
+++ b/cmake/FindSphinx.cmake
@@ -0,0 +1,11 @@
+#Look for an executable called sphinx-build
+find_program(SPHINX_EXECUTABLE
+             NAMES sphinx-build
+             DOC "Path to sphinx-build executable")
+
+include(FindPackageHandleStandardArgs)
+
+#Handle standard arguments to find_package like REQUIRED and QUIET
+find_package_handle_standard_args(Sphinx
+                                  "Failed to find sphinx-build executable"
+                                  SPHINX_EXECUTABLE)
diff --git a/doc_environment.yml b/doc_environment.yml
new file mode 100644
index 0000000..7d6a0c6
--- /dev/null
+++ b/doc_environment.yml
@@ -0,0 +1,10 @@
+name: ale
+channels:
+  - conda-forge
+  - default
+
+dependencies:
+  - breathe
+  - cmake>=3.12
+  - doxygen
+  - nlohmann_json
\ No newline at end of file
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
new file mode 100644
index 0000000..2accf9f
--- /dev/null
+++ b/docs/CMakeLists.txt
@@ -0,0 +1,64 @@
+message(STATUS "Setting Up Docs")
+
+find_package(Doxygen REQUIRED)
+find_package(Sphinx REQUIRED)
+
+# Find all the public headers
+set(ALE_BUILD_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include/ale")
+file(GLOB_RECURSE ALE_PUBLIC_HEADERS ${ALE_BUILD_INCLUDE_DIR}/*.h)
+
+set(DOXYGEN_INPUT_DIR ${PROJECT_SOURCE_DIR}/ale/include/)
+set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/xml/index.xml)
+set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
+set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
+
+configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY)
+
+message(STATUS "DOXYGEN_INPUT_DIR: " ${DOXYGEN_INPUT_DIR})
+message(STATUS "DOXYGEN_OUTPUT_DIR: " ${DOXYGEN_OUTPUT_DIR})
+message(STATUS "DOXYGEN_INDEX_FILE: " ${DOXYGEN_INDEX_FILE})
+message(STATUS "DOXYFILE_IN: " ${DOXYFILE_IN})
+message(STATUS "DOXYFILE_OUT: " ${DOXYFILE_OUT})
+
+file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR})
+
+add_custom_command(OUTPUT ${DOXYGEN_INDEX_FILE}
+                   DEPENDS ${ALE_PUBLIC_HEADERS}
+                   COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT} 
+                   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+                   MAIN_DEPENDENCY Doxyfile
+                   COMMENT "Generating docs"
+                   VERBATIM)
+
+add_custom_target(Doxygen ALL DEPENDS ${DOXYGEN_INDEX_FILE})
+
+set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR})
+set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/sphinx)
+set(SPHINX_INDEX_FILE ${SPHINX_BUILD}/index.html)
+
+set(SPHINX_RST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/index.rst)
+
+add_custom_command(OUTPUT ${SPHINX_INDEX_FILE}
+                   COMMAND
+                     ${SPHINX_EXECUTABLE} -b html
+                     # Tell Breathe where to find the Doxygen output
+                     -Dbreathe_projects.Ale=${DOXYGEN_OUTPUT_DIR}/xml
+                   ${SPHINX_SOURCE} ${SPHINX_BUILD}
+                   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                   DEPENDS ${ALE_PUBLIC_HEADERS}
+                   # Other docs files you want to track should go here (or in some variable)
+                   ${SPHINX_RST_FILES}
+                   ${CMAKE_CURRENT_SOURCE_DIR}/../README.md # Docs insert the readme, so it's a dep
+                   ${DOXYGEN_INDEX_FILE}
+                   # MAIN_DEPENDENCY ${SPHINX_SOURCE}/conf.py
+                   COMMENT "Generating documentation with Sphinx")
+
+
+# Nice named target so we can run the job easily
+add_custom_target(Sphinx ALL DEPENDS ${SPHINX_INDEX_FILE})
+
+# Add an install target to install the docs
+include(GNUInstallDirs)
+install(DIRECTORY ${SPHINX_BUILD}
+DESTINATION ${CMAKE_INSTALL_DOCDIR})
diff --git a/docs/Doxyfile b/docs/Doxyfile.in
similarity index 99%
rename from docs/Doxyfile
rename to docs/Doxyfile.in
index b8c1458..fb6abac 100644
--- a/docs/Doxyfile
+++ b/docs/Doxyfile.in
@@ -58,7 +58,7 @@ PROJECT_LOGO           =
 # entered, it will be relative to the location where doxygen was started. If
 # left blank the current directory will be used.
 
-OUTPUT_DIRECTORY       =./
+OUTPUT_DIRECTORY       =
 
 # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
 # directories (in 2 levels) under the output directory of each output format and
@@ -791,7 +791,7 @@ WARN_LOGFILE           =
 # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = ../include/ale/ ./ale 
+INPUT                  = ../src/ ../include/ale/
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1944,7 +1944,7 @@ GENERATE_XML           = YES
 # The default directory is: xml.
 # This tag requires that the tag GENERATE_XML is set to YES.
 
-XML_OUTPUT             = doxyxml
+XML_OUTPUT             = xml
 
 # If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
 # listings (including syntax highlighting and cross-referencing information) to
diff --git a/docs/Makefile b/docs/Makefile
deleted file mode 100644
index 69fe55e..0000000
--- a/docs/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# Minimal makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS    =
-SPHINXBUILD   = sphinx-build
-SOURCEDIR     = source
-BUILDDIR      = build
-
-# Put it first so that "make" without argument is like "make help".
-help:
-	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
-
-.PHONY: help Makefile
-
-# Catch-all target: route all unknown targets to Sphinx using the new
-# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
-%: Makefile
-	@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
\ No newline at end of file
diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html
new file mode 100644
index 0000000..b8a5bae
--- /dev/null
+++ b/docs/_templates/layout.html
@@ -0,0 +1,10 @@
+{% extends '!layout.html' %}
+
+{% block header %}
+    {% include "usgsheader.html" %}
+    {{ super() }}
+{% endblock %}
+
+{% block footer %}
+    {% include "usgsfooter.html" %}
+{% endblock %}
diff --git a/docs/_templates/usgsfooter.html b/docs/_templates/usgsfooter.html
new file mode 100644
index 0000000..23996e9
--- /dev/null
+++ b/docs/_templates/usgsfooter.html
@@ -0,0 +1,70 @@
+<footer class="footer">
+    <div class="tmp-container">
+      
+        
+        <div class="footer-doi">
+          
+          <ul class="menu nav">
+            <li class="first leaf menu-links menu-level-1"><a href="https://www.doi.gov/privacy">DOI Privacy Policy</a></li>
+            <li class="leaf menu-links menu-level-1"><a href="https://www.usgs.gov/policies-and-notices">Legal</a></li>
+            <li class="leaf menu-links menu-level-1"><a href="https://www.usgs.gov/accessibility-and-us-geological-survey">Accessibility</a></li>
+            <li class="leaf menu-links menu-level-1"><a href="https://www.usgs.gov/sitemap">Site Map</a></li>
+            <li class="last leaf menu-links menu-level-1"><a href="https://answers.usgs.gov/">Contact USGS</a></li>
+          </ul>
+                
+        </div> 
+        <hr>
+  
+      
+      <div class="footer-doi">
+        <ul class="menu nav">
+          <li class="first leaf menu-links menu-level-1"><a href="https://www.doi.gov/">U.S. Department of the Interior</a></li>
+          <li class="leaf menu-links menu-level-1"><a href="https://www.doioig.gov/">DOI Inspector General</a></li>
+          <li class="leaf menu-links menu-level-1"><a href="https://www.whitehouse.gov/">White House</a></li>
+          <li class="leaf menu-links menu-level-1"><a href="https://www.whitehouse.gov/omb/management/egov/">E-gov</a></li>
+          <li class="leaf menu-links menu-level-1"><a href="https://www.doi.gov/pmb/eeo/no-fear-act">No Fear Act</a></li>
+          <li class="last leaf menu-links menu-level-1"><a href="https://www.usgs.gov/about/organization/science-support/foia">FOIA</a></li>
+        </ul>
+        </div>			
+      
+      
+      <div class="footer-social-links">
+        <ul class="social">
+          <li class="follow">Follow</li>
+          <li class="twitter">
+            <a href="https://twitter.com/usgs" target="_blank">
+              <i class="fa fa-twitter-square"><span class="only">Twitter</span></i>
+            </a>
+          </li>
+          <li class="facebook">
+            <a href="https://facebook.com/usgeologicalsurvey" target="_blank">
+              <i class="fa fa-facebook-square"><span class="only">Facebook</span></i>
+            </a>
+          </li>
+          <li class="github">
+            <a href="https://github.com/usgs" target="_blank">
+              <i class="fa fa-github"><span class="only">GitHub</span></i>
+            </a>
+          </li>
+          <li class="flickr">
+            <a href="https://flickr.com/usgeologicalsurvey" target="_blank">
+              <i class="fa fa-flickr"><span class="only">Flickr</span></i>
+            </a>
+          </li>
+          <li class="youtube">
+            <a href="http://youtube.com/usgs" target="_blank">
+              <i class="fa fa-youtube-play"><span class="only">YouTube</span></i>
+            </a>
+          </li>
+          <li class="instagram">
+            <a href="https://instagram.com/usgs" target="_blank">
+              <i class="fa fa-instagram"><span class="only">Instagram</span></i>
+            </a>
+          </li>
+        </ul>
+      </div>
+      
+    </div>
+        
+  </footer>
+  
\ No newline at end of file
diff --git a/docs/_templates/usgsheader.html b/docs/_templates/usgsheader.html
new file mode 100644
index 0000000..175096a
--- /dev/null
+++ b/docs/_templates/usgsheader.html
@@ -0,0 +1,136 @@
+
+<link href="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/css/common.css" rel="stylesheet" type="text/css" media="screen" />
+<link href="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/css/custom.css" rel="stylesheet" type="text/css" media="screen" />   
+<link href="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/css/uswds.min.css" rel="stylesheet" type="text/css" media="screen" /> 
+
+<script async type="text/javascript" src="https://dap.digitalgov.gov/Universal-Federated-Analytics-Min.js?agency=DOI" id="_fed_an_ua_tag"></script>
+
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>USGSCSM</title>
+  </head>
+  <body>
+    <script type="text/javascript" src="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/js/uswds-init.min.js"></script>
+    <script type="text/javascript" src="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/js/uswds.min.js"></script>
+  </body>
+</html>
+
+
+<section class="usa-banner" aria-label="Official government website">
+    <div class="usa-accordion">
+      <header class="usa-banner__header">
+        <div class="usa-banner__inner">
+          <div class="grid-col-auto">
+            <img
+              class="usa-banner__header-flag"
+              src="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/img/us_flag_small.png"
+              alt="U.S. flag"
+            />
+          </div>
+          <div class="grid-col-fill tablet:grid-col-auto">
+            <p class="usa-banner__header-text">
+              An official website of the United States government
+            </p>
+            <p class="usa-banner__header-action" aria-hidden="true">
+              Here’s how you know
+            </p>
+          </div>
+          <button
+            type="button"
+            class="usa-accordion__button usa-banner__button"
+            aria-expanded="false"
+            aria-controls="gov-banner-default-default"
+          >
+            <span class="usa-banner__button-text">Here’s how you know</span>
+          </button>
+        </div>
+      </header>
+      <div
+        class="usa-banner__content usa-accordion__content"
+        id="gov-banner-default-default"
+      >
+        <div class="grid-row grid-gap-lg">
+          <div class="usa-banner__guidance tablet:grid-col-6">
+            <img
+              class="usa-banner__icon usa-media-block__img"
+              src="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/img/icon-dot-gov.svg"
+              role="img"
+              alt=""
+              aria-hidden="true"
+            />
+            <div class="usa-media-block__body">
+              <p>
+                <strong>Official websites use .gov</strong><br />A
+                <strong>.gov</strong> website belongs to an official government
+                organization in the United States.
+              </p>
+            </div>
+          </div>
+          <div class="usa-banner__guidance tablet:grid-col-6">
+            <img
+              class="usa-banner__icon usa-media-block__img"
+              src="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/img/icon-https.svg"
+              role="img"
+              alt=""
+              aria-hidden="true"
+            />
+            <div class="usa-media-block__body">
+              <p>
+                <strong>Secure .gov websites use HTTPS</strong><br />A
+                <strong>lock</strong> (
+                <span class="icon-lock"
+                  ><svg
+                    xmlns="http://www.w3.org/2000/svg"
+                    width="52"
+                    height="64"
+                    viewBox="0 0 52 64"
+                    class="usa-banner__lock-image"
+                    role="img"
+                    aria-labelledby="banner-lock-title-default banner-lock-description-default"
+                    focusable="false"
+                  >
+                    <title id="banner-lock-title-default">Lock</title>
+                    <desc id="banner-lock-description-default">A locked padlock</desc>
+                    <path
+                      fill="#000000"
+                      fill-rule="evenodd"
+                      d="M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z"
+                    />
+                  </svg> </span
+                >) or <strong>https://</strong> means you’ve safely connected to
+                the .gov website. Share sensitive information only on official,
+                secure websites.
+              </p>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </section>
+
+
+
+
+    <header id="navbar" class="header-nav"  role="banner">
+        <div class="tmp-container">
+            <div class="header-search">
+             <a class="logo-header" href="https://www.usgs.gov/" title="Home">
+                <img class="img"  src="https://asc-public-docs.s3.us-west-2.amazonaws.com/common/uswds/3.6.0/img/logo.png"  alt="Home" />
+              </a>
+              <form action="https://www.usgs.gov/science-explorer-results" method="GET" id="search-box">
+               <div class="fa-wrapper"><label for="se_search" class="only">Search</label>
+                <input id="se_search" type="search" name="es" placeholder="Search">
+                <button class="fa fa-search" type="submit">
+                  <span class="only">Search</span>
+                   </button></div>
+              </form>
+            </div>
+            
+          </div> 
+          
+      </header>
+
diff --git a/docs/conf.py b/docs/conf.py
index 86063ed..33bb37c 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -11,9 +11,9 @@
 # documentation root, use os.path.abspath to make it absolute, like shown here.
 #
 import os
-import sys
+# import sys
 import subprocess
-sys.path.insert(0, os.path.abspath('../ale'))
+# sys.path.insert(0, os.path.abspath('../ale'))
 
 
 # -- Project information -----------------------------------------------------
@@ -55,16 +55,17 @@ html_theme = 'alabaster'
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
+# html_static_path = ['_static']
+
 
 # -- Run Doxygen for C++ API --------------------------------------------------
 
 read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True'
 
 if read_the_docs_build:
-    subprocess.call('doxygen', shell=True)
+    subprocess.call('doxygen Doxyfile', shell=True)
     
 # -- Breathe Configuration ----------------------------------------------------
 
-breathe_projects = { "ALE": "doxyxml/" }
+breathe_projects = { "ALE": "xml/" }
 breathe_default_project = "ALE"
diff --git a/docs/make.bat b/docs/make.bat
index 2119f51..2c0764f 100644
--- a/docs/make.bat
+++ b/docs/make.bat
@@ -8,7 +8,7 @@ if "%SPHINXBUILD%" == "" (
 	set SPHINXBUILD=sphinx-build
 )
 set SOURCEDIR=.
-set BUILDDIR=_build
+set BUILDDIR=build
 
 if "%1" == "" goto help
 
-- 
GitLab