Dynamic Razor Pages content in Docify
Pseudo-dynamic content (resolved during the compilation time) can be used when writing layouts and includes. In this case, the files use the Razor Pages syntax and usually named as *.cshtml files, although this is not a requirement.
Razor Pages are resolved using the Razor Light engine.
Such a page can access the data model to read the information about current site, page, metadata etc.
The following snippet will generate the url node and create page's url with title.
<a href="@Model.Page.Data["title"]">@Model.Page.FullUrl</a>
Data model is defined in the Base.Context.dll
Model Site - Access to the current site Configuration - configuration (dictionary) of the current site BaseUrl - base url of the site MainPage - root page of the site Page - current page Url - relative url of the current page FullUrl - full url of the current page (including base url) Data - Metadata of the current page (dictionary) SubPages - Direct children of this page Assets - Direct assets of this page Data - current metadata of the include
In order to enable IntelliSense, install Xarial.Docify.Base.Context package and specify the model as follows.
@page @using Xarial.Docify.Base.Context @model IContextModel <ul> @foreach (var childPage in Model.Page.SubPages) { <li>@childPage.Url</li> } </ul>
The above code will generate an unordered list of urls of all children pages of the current page.