Thanks Hraban for your answer, 

Le 28 nov. 2021 à 15:42, Henning Hraban Ramm via ntg-context <ntg-context@ntg.nl> a écrit :

Am 28.11.21 um 19:39 schrieb Fabrice L via ntg-context:
I have an error when I try to insert a block inside a conditional mode (but there is two nested conditional mode.. is this the problem ?).

You can’t nest modes in \startmode ... \stopmode.
I don’t know what are the limitations of \doifmode.

According to the wiki, we cannot nest several \startmode …\stopmode, but there is no limitation with \doifmode.


Maybe it helps to use additional grouping with {}, \bgroup .. \egroup or \start .. \stop.

Following your advice, I tried with several {}, but no luck. 

In my courses notes, I insert some blocks (named «  Complement » in the minimal exemple below) when in « Professor » mode. This works fine, as shown in the first «  \beginComplement … \endComplement  » of my example below.

Maybe you can work with buffers or (ConTeXt) blocks (the latter were recently discussed here, it’s a quite unknown mechanism).

I already use blocks, but following your message, I tried to think differently. One solution would be to define a block for each course. Something like this (a working minimal example, redone in order this would be more easier to understand (I hope!) what I’m trying to do):

% —————————————
\setuppapersize[S5][S5]
\enablemode[Professor]

\defineblock[ComplementTwo]
\defineblock[ComplementThree]

\setupblock[ComplementTwo,ComplementThree][
before={\page[yes]\setuppagenumber[state=stop]\setupheadertexts[]\setupbackgrounds[page][background=color,backgroundcolor=red]},
after={\page[yes]\setuppagenumber[state=start]}]
\starttext

% Let's process the summaries  ;
\beginComplementTwo
Last course, we have seen A.
\endComplementTwo

\beginComplementThree
Last course, we have seen B….
\endComplementThree

\beginComplementThree
Last course, we have seen C….
\endComplementThree
% ---- 

Let's begin course 1. 
This is course 1 : a lot of pages here about A! 
\page[yes]
Let's begin course 2. 
\doifmode{Professor} {
\useblocks[ComplementTwo]
}

This is course 2 : a lot of pages here about B and C! 

\page[yes]
Let's begin course 3. 
\doifmode{Professor} {
\useblocks[ComplementThree]
}

This is course 3 : a lot of pages here about D... ! 

\stoptext

%————————— 

The only inconvenient of this solution if that I have to define 15 blocks (one for each week of the term): ComplementOne, ComplementTwo, .., ComplementFithteen… Another drawback of this is difficult to move one block form one week to another if I change something. Each block here correspond in fact to a summary of the previous course. So I have typically around 10 pages of summary for each course. The challenge is that the content of each course is not exactly the same form one term to another, so I have to move a page to the summary from one course to the other one, like in a given term, if teach about subject C in course 3 :

\beginComplementThree
Last course, we have seen C….
\endComplementThree

, but next term in course 4:

\beginComplementFour
Last course, we have seen C….
\\beginComplementFour

I have to manually change \beginComplementThree … \endComplementThree to \beginComplementFour … \beginComplementFour.

But I will do this if I do not find another solution. 
Thanks again Hraban.
Fabrice. 



Hraban
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________