Pipelines and helpers used in ecoAPM's static sites
- .NET SDK
dotnet add {project} package ecoAPM.StatiqPipelines
This package currently contains one pipeline and two modules.
This pipeline copies files from the node_modules
directory to a set location in your output.
var files = new [] {
"bootstrap/dist/css/bootstrap.min.css",
"jquery/dist/jquery.min.js"
};
bootstrapper.AddPipeline("NPM", new CopyFromNPM(files, "assets");
The copied files can then be referenced from markup:
<link src="/assets/bootstrap.min.css"/>
<script src="/assets/jquery.min.js"></script>
A dictionary can be used to specify the output path for a given input. An empty string value flattens output with the input filename, as above.
var files = new Dictionary<string, string> {
{ "bootstrap/dist/css/bootstrap.min.css", "" },
{ "jquery/dist/jquery.min.js", "" },
{ "@fontsource/noto-sans/*", "fonts" }
};
bootstrapper.AddPipeline("NPM", new CopyFromNPM(files);
Note that the output path is optional and defaults to lib
.
<link src="/lib/bootstrap.min.css"/>
<script src="/lib/jquery.min.js"></script>
<link src="/lib/fonts/latin-300.css"/>
This module can be added to your Content pipeline to improve the output URL format.
So, input/category/page.md => http://localhost/directory/file
instead of the default output/category/page.html
bootstrapper.ModifyPipeline("Content", p => p.ProcessModules.Add(new NiceURL()));
This module simply runs npm
/yarn
install as part of the build pipeline.
bootstrapper.ModifyPipeline("Content", p => p.InputModules.Add(new NodeRestore()));
Please be sure to read and follow ecoAPM's Contribution Guidelines when submitting issues or pull requests.