[Example] Creating an Exercise Plan

This probably took me way longer than it should have but thanks to my learning in the past two weeks, I have now been able to create an overview of back exercises in Logseq and I am able to generate a simple exercise plan.

I thought it might be helpful for others who are completely new at this (like I am) to see how I created this, hence this new post.

Step 1: Create a template for exercises
I created a template for exercises using the following properties:

  • Type
  • Name
  • Sets
  • Reps
  • Weight
  • Difficulty
  • Example

For type, I used the values “exercise-back” and “warm-up” and for difficulty the values “easy” “medium” and “hard”.

Step 2: Create individual exercise blocks
This is how an individual block looks like. Each exercise is a child block. In the parent block I identify the source of the exercise. For me, the exercises I practiced with today are all children blocks under the parent headers physiotherapy/individual exercises.

Step 3: Generate exercise plan using simple queries
I practiced with three different exercise plans:

  1. Overview of only easy back exercises

This was the easiest query to generate. I only had to use the ‘and’ operator to search for all exercises that had the values of being back exercises and have difficulty easy:

{{query (and (property :type exercise-back)(property :difficulty easy))}}

Snapshot of the results:

  1. Overview of both medium and hard back exercises

For this query I used both the ‘and’ and the ‘or’ operators. I used the ‘and’ operator to indicate that all results had to be back exercises. I then used the ‘or’ operator to indicate the difficulty of the exercise.

{{query (and (property :type exercise-back) (or (property :difficulty medium)(property :difficulty hard)))}}

Snapshot of the results:

  1. Overview of hard back exercises and warm up

This one took me ages to figure out. I finally managed with some help from @knowlost who is way more experienced with Boolean logic. The challenge with this query is that the only “warm up” exercise I have currently included has difficulty easy, not hard. Somehow I couldn’t figure out how to have all hard back exercises show up and only the (easy) exercises that has warm-up as a value.
The solution:

{{query (or (property :type warm-up)(and (property :type exercise-back)(property :difficulty hard)))}}

Snapshot of the results:

And that’s it!! For now at least. Spent way longer than my dedicated planned time on this today but it was a lot of fun. Looking forward to seeing more examples from others on here and to learn about advanced queries tomorrow!


Do you have a plan to track progress in the journal?

I would split the exercise from its execution i.e. remove the weight and repetitions properties from the exercise block and move them to the journal:

- [[Workout]]
  - [[Plank]]
    - reps:: 1:00
  - [[Squat]]
    - weight:: 0
      reps:: 15

or similar, I don’t know what would be the best for a proper visualization of progress later.

1 Like

That’s a good point. I hadn’t really thought about tracking progress yet as I’m currently just following reps and weight based on what my physio recommends (I’m recovering from a lower back injury).

It definitely makes sense though to use the journal to track what I do now and any future progress. I also intend to add more exercises that I find online or that others recommend.

I’ve been thinking all day about your note as it came in while I was at work. I was trying to find a way to still keep the physio recommendations but also make sure my system is future proof. I think what I’ll do is:

  • Adjust the name of my current template to “physio exercise”
  • Tag all individual exercises with “exercise” in the parent block so that if I add a new one at a later date in the journal or on a different page I’ll still be able to query them
  • Create a second template for new exercises that excludes weight and reps
  • Start tracking all my workouts in the journal and make notes on weight and reps for new exercises