Skip to content

Documentation for how to build, update and use the LoopFollow app

License

Notifications You must be signed in to change notification settings

loopandlearn/loopfollowdocs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Repository for Loop Follow documentation (under development)

Install

  • Clone this project
  • Install Python 3 For help getting Python installed, see "Properly Installing Python".
  • Install a Python Virtual Environment.
    In this example, I use venv, but use whichever you prefer.
    cd loopfollowdocs # where you cloned the loopfollowdocs repository
    
    # Creates a virtual environment using Python 3 in the venv folder
    python3 -m venv venv 
    
    # Activate the virtual environment
    # IMPORTANT: Run the next line **each time** you start a new shell window/tab
    source venv/bin/activate
  • Install the dependencies (that is the project's required Python packages)
    cd loopfollowdocs # where you cloned the loopfollowdocs repository
    
    python -m pip install -r dev-requirements.txt
    python -m pip install -r requirements.txt

Run

Preview Changes

Once installed, you can preview the doc locally as you make changes:

  • Run the mkdocs serve command locally in a separate terminal window and keep it running:
    cd loopfollowdocs # where you cloned the loopfollowdocs repository
    source bin/venv/activate # Do this once when opening a shell or if the shell prompt no longer displays `(venv)`
    
    mkdocs serve
    By default, this runs a local web server that hosts the documentation at http://127.0.0.1:8000/ .
  • Preview the site in your Web browser.
    Most changes will update automatically as you edit.
    Configuration and navigation changes will require restarting mkdocs serve.

Build the Website Locally

cd loopfollowdocs # where you cloned the loopfollowdocs repository
source venv/bin/activate # Do this once when opening a shell or if the shell prompt no longer displays `(venv)`

mkdocs build

This does not generate the website's PDF version.

Build the PDF

To export the website as a PDF:

cd loopfollowdocs # where you cloned the loopfollowdocs repository
source venv/bin/activate # Do this once when opening a shell or if the shell prompt no longer displays `(venv)`

MKDOCS_EXPORTER_PDF=true  mkdocs build

The PDF file is generated insite/loopfollowdocs.pdf.

Find Unused Files

To find unused (orphaned) files in the project:

CHECK_UNUSED_FILES=true mkdocs build -s

Note

We use the mkdocs-unused-files plugin.

Find Broken Links

To list broken links, we use mkdocs-htmlproofer-plugin:

CHECK_BROKEN_LINKS=true mkdocs build --quiet

Contribute

You can contribute to the LoopFollow documentation by correcting typos or suggesting new content.

Using the Terminal

cd loopfollowdocs # where you cloned the loopfollowdocs repository

# Activate the Python virtual environment 
#  (if the shell prompt does not display `(venv)`)
source venv/bin/activate

# Declare the official remote loopfollowdocs GitHub repository 
# The remote repository name convention is:
# - origin denotes your copy of the `loopfollowdocs` repository on GitHub
# - upstream denotes the official `loopfollowdocs` repository on GitHub
# You already created `origin` before.
# `upstream` does not exist yet, we now need to create it.
#
# These are shortcuts for the remote repositories 
#   short name => long name (URL)
# We use the short name not to memorize and type the long name (see line below) each time we need to interact with it.
#
git remote add upstream https://github.com/loopandlearn/loopfollowdocs.git

# Fetch the changes from the remote repositories
git fetch origin
git fetch upstream

# Jump on the `dev` branch
# `dev` contains the source code for the site ready to be deployed)
git switch dev

# Bring recent changes for the `dev` branch back from the official loopfollowdocs repository (`upstream`)
git merge upstream/dev

# Example: We want to add a FAQ page in the `docs/resources/` folder

# Create (`-c`) and jump on a new feature branch where to add the FAQ page
#
git switch -c add_FAQ_page

# Create then edit the new FAQ file (`faq.md`)
MY_FAVORITE_EDITOR_HERE docs/resources/faq.md

# Edit, preview, repeat...
# until you are satisfied with the changes.

# ➑️ 🏬: Add the FAQ page to the warehouse
git add docs/resources/faq.md

# 🏬 ➑️ 🚚: Move all the changes from the warehouse into your **local** repository 
git commit -am "Add FAQ page"

# 🚚 ➑️ ⛅️: Push your feature branch `doc/add_FAQ_page` to your remote repository
git push -u origin add_FAQ_page
  • Now open the official loopfollowdocs repository in your Web browser https://github.com/loopandlearn/loopfollowdocs/pulls
  • Click the pull-requests tab
    This page displays a box saying you can create a Pull-Request for your branch.
  • Click the button to do so, then follow the instructions.

Add a Package

Note

In this section, the terms Python package and dependency refer to the same thing.

  • Create a feature branch (aka. topic branch)
    git switch dev
    git switch -c feature/add_dependency_XXX
  • Add the pinned version of the new package to the requirements.in file
      MY_FAVORITE_EDITOR_HERE requirements.in
      
      # Add the pinned version of the package to `requirements.in
      XXX_PACKAGE_NAME_HERE==XXX_PACKAGE_VERSION_HERE
    For example, to add the mkdocs-exporter package version 6.1.1, I added the following line to the requirements.in file:
    mkdocs-exporter==6.1.1
    
  • Generate requirements.txt
      cd loopfollowdocs
      
      # IMPORTANT: The project's virtual environment MUST be activated first
      source venv/bin/activate
      
      # Remove the already installed packages in case you need to start from a blank slate
      # python -m pip freeze --exclude-editable | xargs python -m pip uninstall -y
      
      # Install the development packages
      # (among which `pip-tools` that contains `pip-compile`)
      pip install -r dev-requirements.txt
      
      # Install the direct dependencies (listed in `requirements.in`
      # This also installs the indirect dependencies these packages depend upon.
      pip install -r requirements.in
      
      # Add code/doc using this package and test until it is ready.
      
      # Generate the `requirements.txt` file from `requirements.in`
      pip-compile
      
      # Commit the changes (where XXX denotes the package name)
      git add requirements.in requirements.txt
      git commit -m "βž• Add dependency: XXX"
      
      # Push your feature branch to your `origin` repository
      git push -u origin feature/add_dependency_XXX
  • Create a Pull Request with your changes:
    • Open your clone repository of loopfollowdocs on GitHub (https://github.com/YOUR_USERNAME/loopfollowdocs)
      • Click the Pull Requests tab
      • Click "Compare & pull request"Β in the yellow banner next to your branch name

FAQs

Note

Please add!

Add a Chapter

Using the # sign shows a chapter on the menu/index. The number of #'s determines the level.

Example:

# README

## Tips & Tricks

### Add a Chapter

### Link to Another File

Tip

If you want to avoid a chapter ending up in the menu/index, use bold text by:

  • either surrounding the text with 2-star signs **
  • or adding <b> before the text and </b> after the text (without spaces).
Input Result
**bold text** bold text
<b>bold text</b> bold text

Add a Link to Another File

When linking to another Markdown file (ending with .md) in another directory, the link must start with ../.

In the below example, assuming you are editing docs/install/index.md, to add a link pointing to docs/configuration/new-user-setup.md with the text new user setup:

Now on to the [new user setup](../configuration/new-user-setup.md)

Do not forget the .md suffix.

docs                    <== ../ 
β”œβ”€β”€ install             <== ./ denotes the current folder (docs/install/)
β”‚ └── index.md          <== You are here (the current file)
β”‚   
β”œβ”€β”€ configuration       <== ../configuration
β”‚ └── new-user-setup.md <== ../configuration/new-user-setup.md

Update the Glossary

LoopFollow's glossary is a dictionary for the acronyms and technical terms used in the documentation. It explains them in simple terms. It is kind of a personal translator for all the diabetes jargon you will find there.

The glossary is composed of a source file and a generated Markdown page.
The website uses the Markdown page of the glossary.

Updating the glossary is a 3-step manual process:

  1. Modify the glossary source file (includes/glossary.txt ) to add/update/remove entries.
  2. Generate the glossary Markdown page (docs/faqs/glossary.md) using this handy shell script:
    ./make-glossary.sh
    ---
    title: Generate the Glossary Page
    ---
    flowchart LR
      subgraph Glossary Source
        text_glossary[/ includes/glossary.txt /]
      end
      subgraph Run Shell Script
        generator{ ./make-glossary.sh }
      end
      subgraph Glossary Page
        markdown_glossary[/ docs/faqs/glossary.md /]
      end
    
      text_glossary --> generator --> markdown_glossary
    
    Loading
  3. Commit the changed files (glossary source file and generated page):
    git add includes/glossary.txt docs/faqs/glossary.md
    git commit -m "Update Glossary: ..."

Note

Remember to commit these 2 files.

Tip

Separate the Title and Body with an Empty Line

  • Adding a blank line (4 spaces indented) between the title and the body of the text makes a visual distinction for the reader. This is not required.
  • When present in the body text, empty lines must also use a 4-space indentation.

Note

Mkdocs (the site generation engine) does not provide admonitions but mkdocs-material (the theme) does via the pymdownx Markdown extension.

About

Documentation for how to build, update and use the LoopFollow app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published