├── .github ├── FUNDING.yml └── workflows │ ├── docs.yml │ ├── release.yml │ └── test.yml ├── .gitignore ├── .spi.yml ├── .swiftformat ├── .swiftpm └── xcode │ └── package.xcworkspace │ └── contents.xcworkspacedata ├── CLAUDE.md ├── Example ├── .gitignore ├── .swiftpm │ └── xcode │ │ └── package.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── WorkspaceSettings.xcsettings ├── Package.resolved ├── Package.swift ├── README.md ├── Sources │ └── Example │ │ ├── String+Extensions.swift │ │ ├── run.swift │ │ └── templates.swift └── content │ ├── about.md │ ├── apps │ ├── lastfm.md │ ├── lastfm_1.jpg │ ├── lastfm_2.jpg │ ├── tessa.md │ └── tessa.png │ ├── articles │ ├── 2021-01-27-post-with-date-in-filename.md │ ├── another-one.md │ ├── hello-world.md │ ├── invalid-post.md │ ├── more-and-more.md │ ├── second post.md │ ├── third post.md │ └── yet-another-article.md │ ├── index.md │ ├── photos │ ├── cats │ │ ├── 1429692428_1937325974.jpg │ │ ├── 1670105472_kartinkin-net-p-koshka-smoki-oboi-45.jpg │ │ ├── file-20220208-24-10sx1vj.jpg │ │ └── index.md │ ├── dogs │ │ ├── 1637686150_60-sobakovod-club-p-sobaki-zolotistii-retriver-morda-80.jpg │ │ ├── Labrador_Retriever_portrait.jpg │ │ ├── cuteblackdog.jpg │ │ └── index.md │ └── index.md │ ├── static │ ├── prism.css │ └── style.css │ └── test │ ├── index.md │ └── subpage │ └── index.md ├── LICENSE ├── Package.swift ├── README.md ├── Sources ├── Saga │ ├── Atom.swift │ ├── FileContainer.swift │ ├── FileIO.swift │ ├── Item.swift │ ├── ItemWriteMode.swift │ ├── MetadataDecoder.swift │ ├── Path+Extensions.swift │ ├── ProcessingStep.swift │ ├── Reader.swift │ ├── RenderingContexts.swift │ ├── Saga.docc │ │ ├── Architecture.md │ │ ├── GettingStarted.md │ │ ├── Installation.md │ │ └── Saga.md │ ├── Saga.swift │ ├── String+Slugify.swift │ ├── Writer.swift │ └── utils.swift └── SagaCLI │ └── main.swift ├── Tests ├── LinuxMain.swift └── SagaTests │ └── SagaTests.swift ├── generate_docs.sh └── logo.png /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/.github/workflows/docs.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/.gitignore -------------------------------------------------------------------------------- /.spi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/.spi.yml -------------------------------------------------------------------------------- /.swiftformat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/.swiftformat -------------------------------------------------------------------------------- /.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /Example/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | deploy 7 | -------------------------------------------------------------------------------- /Example/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /Example/.swiftpm/xcode/package.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/.swiftpm/xcode/package.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings -------------------------------------------------------------------------------- /Example/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/Package.resolved -------------------------------------------------------------------------------- /Example/Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/Package.swift -------------------------------------------------------------------------------- /Example/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/README.md -------------------------------------------------------------------------------- /Example/Sources/Example/String+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/Sources/Example/String+Extensions.swift -------------------------------------------------------------------------------- /Example/Sources/Example/run.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/Sources/Example/run.swift -------------------------------------------------------------------------------- /Example/Sources/Example/templates.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/Sources/Example/templates.swift -------------------------------------------------------------------------------- /Example/content/about.md: -------------------------------------------------------------------------------- 1 | # About this site 2 | A short text here. 3 | -------------------------------------------------------------------------------- /Example/content/apps/lastfm.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/apps/lastfm.md -------------------------------------------------------------------------------- /Example/content/apps/lastfm_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/apps/lastfm_1.jpg -------------------------------------------------------------------------------- /Example/content/apps/lastfm_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/apps/lastfm_2.jpg -------------------------------------------------------------------------------- /Example/content/apps/tessa.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/apps/tessa.md -------------------------------------------------------------------------------- /Example/content/apps/tessa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/apps/tessa.png -------------------------------------------------------------------------------- /Example/content/articles/2021-01-27-post-with-date-in-filename.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/articles/2021-01-27-post-with-date-in-filename.md -------------------------------------------------------------------------------- /Example/content/articles/another-one.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/articles/another-one.md -------------------------------------------------------------------------------- /Example/content/articles/hello-world.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/articles/hello-world.md -------------------------------------------------------------------------------- /Example/content/articles/invalid-post.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/articles/invalid-post.md -------------------------------------------------------------------------------- /Example/content/articles/more-and-more.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/articles/more-and-more.md -------------------------------------------------------------------------------- /Example/content/articles/second post.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/articles/second post.md -------------------------------------------------------------------------------- /Example/content/articles/third post.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/articles/third post.md -------------------------------------------------------------------------------- /Example/content/articles/yet-another-article.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/articles/yet-another-article.md -------------------------------------------------------------------------------- /Example/content/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/index.md -------------------------------------------------------------------------------- /Example/content/photos/cats/1429692428_1937325974.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/photos/cats/1429692428_1937325974.jpg -------------------------------------------------------------------------------- /Example/content/photos/cats/1670105472_kartinkin-net-p-koshka-smoki-oboi-45.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/photos/cats/1670105472_kartinkin-net-p-koshka-smoki-oboi-45.jpg -------------------------------------------------------------------------------- /Example/content/photos/cats/file-20220208-24-10sx1vj.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/photos/cats/file-20220208-24-10sx1vj.jpg -------------------------------------------------------------------------------- /Example/content/photos/cats/index.md: -------------------------------------------------------------------------------- 1 | # Cats 2 | 3 | Beautiful images of cats. 4 | -------------------------------------------------------------------------------- /Example/content/photos/dogs/1637686150_60-sobakovod-club-p-sobaki-zolotistii-retriver-morda-80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/photos/dogs/1637686150_60-sobakovod-club-p-sobaki-zolotistii-retriver-morda-80.jpg -------------------------------------------------------------------------------- /Example/content/photos/dogs/Labrador_Retriever_portrait.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/photos/dogs/Labrador_Retriever_portrait.jpg -------------------------------------------------------------------------------- /Example/content/photos/dogs/cuteblackdog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/photos/dogs/cuteblackdog.jpg -------------------------------------------------------------------------------- /Example/content/photos/dogs/index.md: -------------------------------------------------------------------------------- 1 | # Dogs 2 | 3 | Beautiful images of doggos. 4 | -------------------------------------------------------------------------------- /Example/content/photos/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/photos/index.md -------------------------------------------------------------------------------- /Example/content/static/prism.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/static/prism.css -------------------------------------------------------------------------------- /Example/content/static/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Example/content/static/style.css -------------------------------------------------------------------------------- /Example/content/test/index.md: -------------------------------------------------------------------------------- 1 | # Index of Test 2 | Yes 3 | -------------------------------------------------------------------------------- /Example/content/test/subpage/index.md: -------------------------------------------------------------------------------- 1 | # Subpage of test 2 | Yeah! 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/LICENSE -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Package.swift -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/README.md -------------------------------------------------------------------------------- /Sources/Saga/Atom.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Atom.swift -------------------------------------------------------------------------------- /Sources/Saga/FileContainer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/FileContainer.swift -------------------------------------------------------------------------------- /Sources/Saga/FileIO.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/FileIO.swift -------------------------------------------------------------------------------- /Sources/Saga/Item.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Item.swift -------------------------------------------------------------------------------- /Sources/Saga/ItemWriteMode.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/ItemWriteMode.swift -------------------------------------------------------------------------------- /Sources/Saga/MetadataDecoder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/MetadataDecoder.swift -------------------------------------------------------------------------------- /Sources/Saga/Path+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Path+Extensions.swift -------------------------------------------------------------------------------- /Sources/Saga/ProcessingStep.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/ProcessingStep.swift -------------------------------------------------------------------------------- /Sources/Saga/Reader.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Reader.swift -------------------------------------------------------------------------------- /Sources/Saga/RenderingContexts.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/RenderingContexts.swift -------------------------------------------------------------------------------- /Sources/Saga/Saga.docc/Architecture.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Saga.docc/Architecture.md -------------------------------------------------------------------------------- /Sources/Saga/Saga.docc/GettingStarted.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Saga.docc/GettingStarted.md -------------------------------------------------------------------------------- /Sources/Saga/Saga.docc/Installation.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Saga.docc/Installation.md -------------------------------------------------------------------------------- /Sources/Saga/Saga.docc/Saga.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Saga.docc/Saga.md -------------------------------------------------------------------------------- /Sources/Saga/Saga.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Saga.swift -------------------------------------------------------------------------------- /Sources/Saga/String+Slugify.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/String+Slugify.swift -------------------------------------------------------------------------------- /Sources/Saga/Writer.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/Writer.swift -------------------------------------------------------------------------------- /Sources/Saga/utils.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/Saga/utils.swift -------------------------------------------------------------------------------- /Sources/SagaCLI/main.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Sources/SagaCLI/main.swift -------------------------------------------------------------------------------- /Tests/LinuxMain.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Tests/LinuxMain.swift -------------------------------------------------------------------------------- /Tests/SagaTests/SagaTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/Tests/SagaTests/SagaTests.swift -------------------------------------------------------------------------------- /generate_docs.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/generate_docs.sh -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loopwerk/Saga/HEAD/logo.png --------------------------------------------------------------------------------