ADR 6: Direct processors configuration
Context
There need to be a way to configure folders and top-level pages used by the course. Each course may need slightly different structure of folders and may even use different formats for writing content of pages. Some curses may even need some specific processors to fulfill their specific needs (for example, generating JavaDoc).
At the same time, most of the courses would probably use similar structure. It should not be required to repeat the common configuration in every course, because it makes course configuration unnecessary complex and error-prone. For most of the courses, configuration should be absolutely minimal: name of the course and its deployment ID.
Decision
We decided to make configuration of folder processors part of the configuration file. There are tho configuration options FOLDERS
and ROOT_PROCESSOR
that define processors for all folders and separately for the root of the course. Order of the folder processors also define their order in the course menu.
Standard values for these options should, however, be suitable for most of the courses. This is achieved by including all common folders and other processing options into the configuration and then simply skipping files that do not exist in the course directory. So, for example, default configuration would include folders for lectures, labs and assignments, but if a course does not have lectures
and assignments
directories, they would be ignored.
Status
Superseded by ADR 12: Declarative configuration.
Consequences
The configuration is quite low-level and dependent on the internal architecture of the processing pipeline. In the future some more declarative configuration should be considered. The current configuration format could be leaved for some more complex situations.