diff --git a/.github/workflows/test_tutorial.yaml b/.github/workflows/test_tutorial.yaml index 12e1d12..173bbaf 100644 --- a/.github/workflows/test_tutorial.yaml +++ b/.github/workflows/test_tutorial.yaml @@ -1,10 +1,10 @@ -name: Test tutorial +name: Test tutorial and publish website on: - push jobs: - format: + test_tutorial: name: Check tutorial runs-on: ubuntu-latest steps: @@ -24,4 +24,23 @@ jobs: run: | cd scripts papermill 0_Tutorial.ipynb 0_Tutorial_out.ipynb -p epochs 4 - + website: + name: Publish notebooks as website + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: "3.11" + - name: Install dependencies + run: | + pip install sphinx sphinx-book-theme myst-nb + - name: Build website + run: | + cd docs + sphinx-build -n --keep-going -b html ./ ./_build/ + - name: Publish workflow as website + uses: peaceiris/actions-gh-pages@v4 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: docs/_build diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..72d1d33 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,98 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. + +# -- Project information ----------------------------------------------------- + +project = 'njab' +copyright = '2022, Marc Pielies Avelli' +author = 'Marc Pielies Avelli' +version = '2024.05.29' + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.autodoc.typehints', + 'sphinx.ext.viewcode', + 'sphinx.ext.intersphinx', + 'myst_nb', + 'sphinx.ext.napoleon', + # 'sphinx_new_tab_link', +] + +# https://myst-nb.readthedocs.io/en/latest/computation/execute.html +nb_execution_mode = "off" + +myst_enable_extensions = ["dollarmath", "amsmath"] + +# Plolty support through require javascript library +# https://myst-nb.readthedocs.io/en/latest/render/interactive.html#plotly +# html_js_files = ["https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"] + +# https://myst-nb.readthedocs.io/en/latest/configuration.html +# Execution +nb_execution_raise_on_error = True +# Rendering +nb_merge_streams = True + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', 'jupyter_execute','.DS_Store'] + + +# Intersphinx options +intersphinx_mapping = { + "python": ("https://docs.python.org/3", None), + "pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None), + "scikit-learn": ("https://scikit-learn.org/stable/", None), + "matplotlib": ("https://matplotlib.org/stable/", None), +} + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# See: +# https://github.com/executablebooks/MyST-NB/blob/master/docs/conf.py +# html_title = "" +html_theme = "sphinx_book_theme" +# html_logo = "_static/logo-wide.svg" +# html_favicon = "_static/logo-square.svg" +html_theme_options = { + "github_url": "https://github.com/RasmussenLab/CLASTER", + "repository_url": "https://github.com/RasmussenLab/CLASTER", + "repository_branch": "master", + "home_page_in_toc": True, + "path_to_docs": "docs", + "show_navbar_depth": 1, + "use_edit_page_button": True, + "use_repository_button": True, + "use_download_button": True, + "launch_buttons": { + "colab_url": "https://colab.research.google.com" + # "binderhub_url": "https://mybinder.org", + # "notebook_interface": "jupyterlab", + }, + "navigation_with_keys": False, +} + +# 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"] diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..8ec5567 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,14 @@ +Claster +======= +Modeling nascent RNA transcription from chromatin landscape and structure + + +.. include:: ../Readme.md + :parser: myst_parser.sphinx_ + :start-line: 3 + +.. toctree:: + :maxdepth: 2 + :caption: Tutorial: + + nbs/0_Tutorial.ipynb