While I would usually try and stick to the conventional commits standard this commit is a big one. This commit Bumps us to 0.0.2 And completely changes how you interact with the program. Now it is easier as you only need to specify the project directory on the commandline (OR be in the directory of the site you want to build) Also introduced is the cssitegen.json file that all projects must use. This means that static information such as the basename, source, and destination are kept with the files. ProjectSettings is used to hopefully make managing a site easier, although future refactoring may join the RuntimeSettings and ProjectSettings into one class. There are some obvious issues with the project in its current state but pending testing with a live domain, it does appear to actually work as intended. (if this is true then the code just needs refactoring and tidying to qualify for a 0.1.0 Release.) Future features planned include - Code to generate pages from data - Template nesting (or a custom template templating language) - Introduction of image conversion to webp (with fallback to RawCpy) - consistency enforcement, to ensure that deleted source files mean deleted destination files.
34 lines
952 B
C#
34 lines
952 B
C#
namespace csSiteGen;
|
|
|
|
|
|
/// <summary>
|
|
/// Class <c>RuntimeSettings</c> Contains all the settings that could be loaded from the commandline.
|
|
/// </summary>
|
|
public class RuntimeSettings {
|
|
public DirectoryInfo InputDirectory {get; private set;}
|
|
public DirectoryInfo OutputDirectory {get; private set;}
|
|
public string? BaseUrl {get; private set;}
|
|
|
|
|
|
public RuntimeSettings(string inputDirectory, string outputDirectory){
|
|
InputDirectory = new DirectoryInfo(inputDirectory);
|
|
OutputDirectory = new DirectoryInfo(outputDirectory);
|
|
|
|
/* NOTE: it is the responisbility of the UI code to check the values passed are good.
|
|
*/
|
|
}
|
|
|
|
|
|
public RuntimeSettings(DirectoryInfo inputDirectory, DirectoryInfo outputDirectory){
|
|
InputDirectory = inputDirectory;
|
|
OutputDirectory = outputDirectory;
|
|
|
|
/* NOTE: it is the responisbility of the UI code to check the values passed are good.
|
|
*/
|
|
}
|
|
|
|
public void setBaseUrl(string? baseurl) {
|
|
BaseUrl = baseurl;
|
|
}
|
|
}
|