ssg: Start on StaticSiteGeneratorClient
This commit is contained in:
parent
e1a622f46e
commit
0f69b7f4b4
|
@ -0,0 +1,81 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using OpenLiveWriter.BlogClient.Providers;
|
||||
using OpenLiveWriter.Extensibility.BlogClient;
|
||||
|
||||
namespace OpenLiveWriter.BlogClient.Clients
|
||||
{
|
||||
[BlogClient("StaticSiteGenerator", "StaticSiteGenerator")]
|
||||
class StaticSiteGeneratorClient : BlogClientBase, IBlogClient
|
||||
{
|
||||
/// <summary>
|
||||
/// Path to site directory
|
||||
/// </summary>
|
||||
private string sitePath;
|
||||
|
||||
/// <summary>
|
||||
/// Name of posts directory, appended to sitePath
|
||||
/// </summary>
|
||||
private string postsPathRel;
|
||||
|
||||
/// <summary>
|
||||
/// Name of pages directory, appended to sitePath
|
||||
/// </summary>
|
||||
private string pagesPathRel;
|
||||
|
||||
/// <summary>
|
||||
/// Path to build command, executed from working directory of sitePath
|
||||
/// </summary>
|
||||
private string buildCmd;
|
||||
|
||||
/// <summary>
|
||||
/// Path to publish command, executed from working directory of sitePath
|
||||
/// </summary>
|
||||
private string publishCmd;
|
||||
|
||||
public BlogClientOptions Options { get; private set; }
|
||||
|
||||
public StaticSiteGeneratorClient(IBlogCredentialsAccessor credentials) : base(credentials)
|
||||
{
|
||||
LoadConfigurationFromCredentials();
|
||||
|
||||
// Set the client options
|
||||
Options = new BlogClientOptions();
|
||||
ConfigureClientOptions(Options);
|
||||
}
|
||||
|
||||
// Authentication is handled by publish script at the moment
|
||||
protected override bool RequiresPassword => false;
|
||||
|
||||
protected void ConfigureClientOptions(BlogClientOptions clientOptions)
|
||||
{
|
||||
// Pages are supported via filesystem
|
||||
clientOptions.SupportsPages = true;
|
||||
|
||||
// The follwoing values would be written into YAML front-matter
|
||||
clientOptions.SupportsCategories = true;
|
||||
clientOptions.SupportsMultipleCategories = true;
|
||||
clientOptions.SupportsNewCategories = true;
|
||||
clientOptions.SupportsCustomDate = true;
|
||||
clientOptions.SupportsFileUpload = true;
|
||||
clientOptions.SupportsSlug = true;
|
||||
clientOptions.SupportsAuthor = true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Load SSG configuration from client credentials
|
||||
/// </summary>
|
||||
private void LoadConfigurationFromCredentials()
|
||||
{
|
||||
sitePath = Credentials.GetCustomValue("sitePath");
|
||||
postsPathRel = Credentials.GetCustomValue("postsPathRel");
|
||||
pagesPathRel = Credentials.GetCustomValue("pagesPathRel");
|
||||
buildCmd = Credentials.GetCustomValue("buildCmd");
|
||||
publishCmd = Credentials.GetCustomValue("publishCmd");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue