Multipaging: A short guide

There are ways to have a multipage content

Native multipaging

  • Problem: You don’t want streamlit_book multipaging, but streamlit’s native multipaging.

  • Solution: Just pust your files on pages/ and import streamlit_book on the files where you need them. You can mix streamlit_book and streamlit’s native multipaging.



Single page

  • Problem: You have one page to show, but you want to use the activities/questions provided on streamlit_book.

  • Solution: Just import the library streamlit_book without the setup and call the required functions.

import streamlit as st
import streamlit_book as stb

st.set_page_config()

# No need to initialize the streamlit_book library
stb.true_or_false("Are you a robot?", False)


Chapter: A single document with multiple connected pages

  • Problem: You want cute multipages, but you only need previous/next buttons.

  • Solution: Use method set_chapter_config` to set the path and other chapter configurations.

import streamlit as st
import streamlit_book as stb

# Set wide display
st.set_page_config()

# Set multipage
stb.set_chapter_config(path="pages/", save_answers=True)

Using the function set_chapter_config:

  • Will setup the page navigation text/icons for a unique chapter.

  • Will sort the python and markdown files of the given path on lexigraphic order.

  • Will read and render the files into streamlit, allowing a enriched markdown/python of the implemented activities.

See the function set_chapter_config required and optional parameters on the Multipaging Documentation.



Book: Having several chapters

Requires a sidebar menu (like this demo), where each topic required a previous/next buttons.

Use stb.set_book_config` to set the path and the configuration for the book.

import streamlit as st
import streamlit_book as stb

# Streamlit webpage properties
st.set_page_config()

# Streamit book properties
stb.set_book_config(menu_title="streamlit_book",
                    menu_icon="lightbulb",
                    options=[
                            "What's new on v0.7.0?",
                            "Core Features",
                            ],
                    paths=[
                          "pages/00_whats_new.py", # single file
                          "pages/01 Multitest", # a folder
                          ],
                    icons=[
                          "code",
                          "robot",
                          ],
                    save_answers=True,
                    )

Using the function set_book_config:

  • Will setup a sidebar menu with each of the chapter.

  • Each chapter is build with pagination for the provided file/folder.

The capability to render several chapters was added in version 0.7.0, and makes a direct use of an awesome library to add a sidebar menu called (streamlit_option_menu). Kudos to the creator. It delivers a professional look, and allows to add icons by name makes it a lot more user-friendly.

See the function set_book_config required and optional parameters on the Multipaging Documentation.