Commit Graph

55 Commits

Author SHA1 Message Date
4a98aba2ec
ci: Actually build release artifact
All checks were successful
Run Build / dotnet (push) Successful in 39s
Build and Generate Release Artifact / build (push) Successful in 52s
2026-01-04 02:37:34 +00:00
6167461ad8
fix(publish) fix typo in publish.yaml
All checks were successful
Run Build / dotnet (push) Successful in 38s
Build and Generate Release Artifact / build (push) Successful in 24s
2026-01-04 02:17:27 +00:00
7b41afd790
chore(version): Bump version to 0.0.4
Some checks failed
Run Build / dotnet (push) Successful in 41s
Build and Generate Release Artifact / build (push) Failing after 17s
2026-01-04 02:13:00 +00:00
ddfae61fdc
ci(gitea): Automate building of linux artifact
Automate the building of the Linux artifact and creation of a release on
new tags
2026-01-04 02:10:51 +00:00
5169aede88
chore(csproj): Cleanup csproj file 2026-01-04 02:04:04 +00:00
700dc715fb
chore(dependencies): Upgrade dependencies
This commit brings the dependencies up to date.

This more importantly brings the stable version of system.commandline
and all the changes needed to make it work properly with the program.

Importantly this changes how validation is done, and how defaults are
passed to commandline. This also allows me to remove the original null
protection as when the argument is not specified commandline defaults to
the current directory.

This has also meant I can remove unnecessary async calls that appear to
have no performance benefits, and remove some null checking that isn't
needed any more.
2026-01-03 04:00:54 +00:00
9fe53b344a
fix(gitea): Working runner config 🤞
All checks were successful
Run Build / dotnet (push) Successful in 36s
2025-12-30 21:51:54 +00:00
4caefdcc38
fix(gitea): NOT A FIX - Just some data gathering
Some checks failed
Run Build / dotnet (push) Failing after 25s
Testing where we are and what we can see when we run dotnet build
2025-12-30 21:48:45 +00:00
1ab300936b
fix(gitea): Fix runner
Some checks failed
Run Build / dotnet (push) Failing after 25s
Remove caching from runner config as no package.lock.json is set up as
of yet. Future re-architecting may make this necessary
2025-12-30 21:46:17 +00:00
888f6862bb
ci(gitea): Add gitea runner
Some checks failed
Run Build / dotnet (push) Failing after 1m46s
May not work, Testing this runner..
2025-12-30 21:42:25 +00:00
2a86a54b1c
chore(dotnet): Update to dotnet10 2025-12-30 21:32:40 +00:00
da24073f14
feat: Add support for removing deleted source files
Detects files removed from the source directory, deletes the file from
destination, removes it from the metadata cache.
2025-03-12 02:31:54 +00:00
264129b1e9
docs(TODO): Update TODO file
Remove old TODO entries
2024-06-28 16:22:36 +01:00
80aee52a61
fix(Logging): Clean up Logging
change the Sitefiles information count to actually use the count and not
the sitefiles list itself.

Change the logging of file extensions in SiteFile from Information to
Debug
2024-06-26 05:42:50 +01:00
0666436a59
feat(Pandoc): Add sitename to metadata if provided
If a sitefile is provided then that data is passed via the commandline
to pandoc, this then adds it to the YAML metadata available to filters
and templates.
2024-06-26 05:39:01 +01:00
ca84cafbdb
fix(Pandoc): Enable raw_attribute in markdown.
Enabling this makes the way I write pages more functional inside of
pandoc.

In future I may add some way of allowing users to provide pandoc
arguments.
2024-06-26 05:28:51 +01:00
5d79026135
fix(ConverterFunctions): Correct logging
Correct the logging to accurately reflect what is happening in the code.
As StringReplace now does more than just BaseUrl replacing
2024-06-26 05:25:11 +01:00
53344de6ea
build: Enable AOT
Add the JSON code generation needed to make my code fully trimmable, and
therefore able to be published with full native AOT compilation.

NOTE: This may not guarantee stable builds as the logging library
serilog is still not fully trimmable, I have made changes to my logging
statements to avoid destructuring, but there is a chance that a
published build could randomly crash.
The only solution is to either wait for serilog to become fully
trimmable, or to remove the logging from AOT builds
2024-06-03 04:04:16 +01:00
af1e340816
feat: Add SiteName replacer
Now the string `%SITENAME%` can be replaced with a value stored in the
`cssitegen.json` file of a project.
2024-06-03 03:22:41 +01:00
34bf088c78
refactor: Merge Project/Runtime Settings
Merge the RuntimeSettings class into ProjectSettings,
Minimising the duplication of stored data
2024-06-03 02:54:38 +01:00
0db8101662
docs(Readme.md): Update Readme
Update the readme to better match the current state of the project.
2024-06-02 18:15:22 +01:00
d868eac72f
UNCONVENTIONAL COMMIT Bump to 0.0.2
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.
2024-05-31 02:03:46 +01:00
8717b1c677
refactor(SiteFile): Remove redundant if statement
remove if statement that returns the result of a boolean test.
2024-03-29 14:10:28 +00:00
585410bf51
chore(repo): Add LICENSE and Readme
Added GPLV3 License file and a basic Readme
2024-03-29 14:07:19 +00:00
4214af680a
Merge branch 'ReStructure' 2024-03-05 16:13:30 +00:00
85331e8701
chore: Bump TargetFramework to 8.0 2024-03-05 15:45:17 +00:00
18ed0534b7
refactor(EVERYTHING): Refactor all the things.
With a little bit of OOP and a monster commit, I too can make a an ssg,
Ka-chow...

Changes:
-  added class to represent SiteFile
-  enabled conversion semi-automatic based on file type.
-  added template to Testing.
-  Removed awful code for dependency search
-  Removed awful code for enumerating directory
-  arguments to a class to allow for easier passing to other
  parts of the code.

TODO:
- 🐞Test and debug with a copy of a live site,
- ✍️ Add handling for Pandoc errors on stderr
- Look into parallelising as much as possible.
2024-01-16 11:00:35 +00:00
Robert Morrison
4ce8672a68
Add Logo
Add the logo in SVG and PNG formats to the repo
2022-07-07 02:00:02 +01:00
Robert Morrison
9aa1f24481
Add Testing/dst
make directory appear in git
2022-06-21 22:49:37 +01:00
Robert Morrison
a04f57fcfc
Update gitignore
Updates the gitignore to preserve the Testing/dst directory but not its
contents. This will make my "testing" easier on other systems

TODO: write some kind of tests.
2022-06-21 22:48:20 +01:00
Robert Morrison
99b18e6a84
Commented out functionality for creating metadata.
This should be done before program exit and as such is currently
in a comment after the main class body.

TODO: add this back in at the appropriate location.
2022-06-21 22:40:31 +01:00
Robert Morrison
8abd5b5990
Add functionality to determine if files are new
This currently relies on the last modified date and a dotfile.
I may change this later to use a hash to detect changes
however this method seems good enough.
2022-06-21 22:39:22 +01:00
Robert Morrison
2657ad16ea
Add functionality to discover convertable files 2022-06-21 22:37:30 +01:00
Robert Morrison
57218b37fd
Placeholder function
TODO: add implementation
2022-06-21 22:36:44 +01:00
Robert Morrison
c3666cdcf1
Make Console logging less messy
This change moves the more verbose debug logging into the logfile
making the console output easier to read

TODO: Write a proper interface
2022-06-21 22:35:58 +01:00
Robert Morrison
0968c20d4d
Add testing directory
This directory provides a place to test the programs functionality.
TODO: Add the dst directory contents to .gitignore to ensure it stays
empty
2022-06-21 22:32:52 +01:00
Robert Morrison
fd38d54a93
Remove useless comment 2022-06-20 03:47:23 +01:00
Robert Morrison
de68526bc3
Make the dependecy test useful by using the result in main 2022-06-20 03:47:03 +01:00
Robert Morrison
c6a00c8c2b
Better comment 2022-06-20 03:46:25 +01:00
Robert Morrison
9e898f4f56
Add some default values to code 2022-06-20 03:46:13 +01:00
Robert Morrison
2dc16d7c2d
Add XML documentation 2022-06-20 03:45:44 +01:00
Robert Morrison
69ef560105
More performance tracking 2022-06-20 03:45:05 +01:00
Robert Morrison
0e7bd12c4f
General Work
This commit is ugly. but probably doesn't break anything
2022-06-20 02:57:40 +01:00
Robert Morrison
2c82979454
Add notice about testing 2022-06-20 02:57:11 +01:00
Robert Morrison
20840f0214
Add more code to main to work on new functionality 2022-06-20 02:56:53 +01:00
Robert Morrison
949217e4f8
Add performance monitoring for file listing function 2022-06-20 02:55:59 +01:00
Robert Morrison
2ddb8aa97e
Comment for potentially bad code 2022-06-20 02:55:25 +01:00
Robert Morrison
ce08055d7e
Use new syntax for cleaner looking code 2022-06-20 02:54:45 +01:00
Robert Morrison
ea69e350aa
Implement GetAllFilesMatching function 2022-06-20 02:54:20 +01:00
Robert Morrison
cad446c282
Add comment to usage function 2022-06-20 02:53:39 +01:00