"Modularity": SugarCube (v2.18)#
In programming terminology, modularity refers to dividing software into different sections related to their purpose or to better organize the whole. In SugarCube, this technique can be used through the
<<include>> macro to print the contents of one passage in another. Parts of a story can often be re-used in this way.
<<include>>, widgets have the advantage of accepting arguments and expressions similar to the way other SugarCube macros can. New widgets must be added through passages with the tag
:: StoryTitle Modularity in SugarCube :: Start <<set $lineOne to "Give us a verse">> <<set $lineTwo to "Drop some knowledge">> <<include "showLineOne">> <<include "showLineTwo">> <<showLine 1>> <<showLine 2>> :: showLineWidget [widget] <<widget 'showLine'>>\ <<nobr>> <<if $args is 1>> $lineOne <<elseif $args is 2>> $lineTwo <</if>> <</nobr>>\ <</widget>> :: showLineOne $lineOne :: showLineTwo $lineTwo