Skip to content

11. Welcome Contributions

James231 edited this page Jun 9, 2020 · 2 revisions

Below are a list of features/changes which are yet to be implemented but would be very welcome. If you make one of these changes please open a PR and wait for it to be reviewed. Other changes not listed here are also welcome.

Change What needs to be done
Template Element Names, allow Upper case. Upper case characters are not currently allowed in Template Element tag names due to out-of-the-box settings/limitations of the HTML Adgility Pack. But this might actually be easy to fix.
Allow Multiple Page Templates. Currently every page in the documentation uses the same Page.html file as a page template. Instead we could allow multiple page templates, and specify which one to use at the start of each input file.
'assets' directory. Provide an 'assets' directory for static assets like .js and .css files. And a way to insert links to these files in pages and templates.
Change @ChildContent; to <ChildContent/> Change the @ChildContent; which gets replaced in Templates to instead use a HTML tag as content will only be inserted alongside HTML tags, not in CSS or JavaScript. Methods Generator.BuildFile and TemplateManager.InjectTemplates need changing.
Change @SubFolder.Recursive; to HTML tag. For the same reason as above. See SpecialTagManager.GetHtmlToReplaceForAllFoldersTag.
Show warnings. The console app could display warnings when things are wrong. E.g. when using a template name which is not entirely lowercase.
Enable use of Command Line Arguments. For example to provide the project directory, or directory for each of the Input, Output and Template folders. Or to switch between different templates.
<MarkdownOnly> and <HtmlOnly> tags. These tags could be added so the content within them only gets added to the final HTML if the page is a Markdown or HTML page respecively. For example, you may use them to apply certain styling only to Markdown files.
Global Varables. Allow tags for <variable name="vname" value="vvalue"/> to be added to the top of page/template files which simply insert the value in that file when you use @Var.vname. For small changes which need to be made regularily (e.g. link prefixes which need to be changed when deploying to a new server).
<ForeachSubFolder> and <ForeachPage> changes. Change these tags to allow additional content in between them which doesn't get repeated. E.g. If in a sidebar SubFolder menu items should be contained in one list (i.e. wrapped in <ul> tags) and SubPages all contained in a different list, this is currently not possible. Might be as simple as changing .ChildNodes to .Depedencies() in the right place.
More Templates It would be nice to have a few more example templates. Especially one with a dark theme. Or maybe adding a dark theme toggle to the default template could work.
Unit Tests A XUnit tests project would be welcome.

If you have other ideas or want clarification you are welcome to contact me and discuss by submitting a form on my website: jam-es.com. Or you can open an issue.

Clone this wiki locally