Rework content commands, add audio player

This commit is contained in:
Christoph Hagen
2024-12-14 16:31:40 +01:00
parent b3b8c9a610
commit be2aab2ea8
52 changed files with 1758 additions and 767 deletions

View File

@ -58,7 +58,6 @@
E25DA5802D01C6AC00AEF16D /* Splash in Frameworks */ = {isa = PBXBuildFile; productRef = E25DA57F2D01C6AC00AEF16D /* Splash */; };
E25DA5832D01C7A400AEF16D /* VideoFileType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA5822D01C7A100AEF16D /* VideoFileType.swift */; };
E25DA5852D01C92700AEF16D /* ShorthandMarkdownKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA5842D01C92600AEF16D /* ShorthandMarkdownKey.swift */; };
E25DA5872D01CA9300AEF16D /* GenerationResultsHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA5862D01CA8D00AEF16D /* GenerationResultsHandler.swift */; };
E25DA5892D01CBD300AEF16D /* Content+Generation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA5882D01CBCE00AEF16D /* Content+Generation.swift */; };
E25DA58B2D020C9500AEF16D /* PageImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA58A2D020C9200AEF16D /* PageImage.swift */; };
E25DA58D2D021BA400AEF16D /* WebsiteImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA58C2D021BA000AEF16D /* WebsiteImage.swift */; };
@ -69,7 +68,7 @@
E25DA5972D023F9F00AEF16D /* ContentPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA5962D023F9900AEF16D /* ContentPage.swift */; };
E25DA5992D02401E00AEF16D /* PageGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA5982D02401A00AEF16D /* PageGenerator.swift */; };
E25DA59B2D024A2B00AEF16D /* DateItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25DA59A2D024A2900AEF16D /* DateItem.swift */; };
E29D31202D0320E70051B7F4 /* HikingStatistics.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D311F2D0320E20051B7F4 /* HikingStatistics.swift */; };
E29D31202D0320E70051B7F4 /* ContentLabels.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D311F2D0320E20051B7F4 /* ContentLabels.swift */; };
E29D31222D0363FD0051B7F4 /* ContentButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31212D0363FA0051B7F4 /* ContentButtons.swift */; };
E29D31242D0366860051B7F4 /* TagList.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31232D0366820051B7F4 /* TagList.swift */; };
E29D31262D0370A80051B7F4 /* VideoOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31252D0370A50051B7F4 /* VideoOption.swift */; };
@ -107,7 +106,7 @@
E29D31712D08234D0051B7F4 /* GenerationDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31702D08234D0051B7F4 /* GenerationDetailView.swift */; };
E29D31792D083DE50051B7F4 /* PageContentResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31782D083DDA0051B7F4 /* PageContentResultsView.swift */; };
E29D317D2D086AB00051B7F4 /* Int+Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D317C2D086AAE0051B7F4 /* Int+Random.swift */; };
E29D317F2D086F4C0051B7F4 /* Icons.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D317E2D086F490051B7F4 /* Icons.swift */; };
E29D317F2D086F4C0051B7F4 /* StatisticsIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D317E2D086F490051B7F4 /* StatisticsIcons.swift */; };
E29D31832D0A43DB0051B7F4 /* RelatedPageLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31822D0A43D60051B7F4 /* RelatedPageLink.swift */; };
E29D31852D0AE8EE0051B7F4 /* RequiredHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31842D0AE8EE0051B7F4 /* RequiredHeaders.swift */; };
E29D31872D0AE9DE0051B7F4 /* AdditionalPageHeaders.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31862D0AE9D40051B7F4 /* AdditionalPageHeaders.swift */; };
@ -119,6 +118,24 @@
E29D31942D0B7D280051B7F4 /* SvgImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31932D0B7D250051B7F4 /* SvgImage.swift */; };
E29D31962D0C186E0051B7F4 /* PathSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31952D0C18690051B7F4 /* PathSettings.swift */; };
E29D31982D0C19340051B7F4 /* PathSettingsFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31972D0C19300051B7F4 /* PathSettingsFile.swift */; };
E29D319B2D0C452B0051B7F4 /* PageIssue.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D319A2D0C452B0051B7F4 /* PageIssue.swift */; };
E29D319D2D0C45B90051B7F4 /* PageIssueView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D319C2D0C45B60051B7F4 /* PageIssueView.swift */; };
E29D319F2D0C46310051B7F4 /* PageIssueChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D319E2D0C46290051B7F4 /* PageIssueChecker.swift */; };
E29D31A12D0C75CA0051B7F4 /* Content+Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31A02D0C75C50051B7F4 /* Content+Validation.swift */; };
E29D31A32D0CC98C0051B7F4 /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31A22D0CC98B0051B7F4 /* Item.swift */; };
E29D31A52D0CD03F0051B7F4 /* FileSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31A42D0CD03A0051B7F4 /* FileSelectionView.swift */; };
E29D31A82D0CDC5D0051B7F4 /* SwiftSoup in Frameworks */ = {isa = PBXBuildFile; productRef = E29D31A72D0CDC5D0051B7F4 /* SwiftSoup */; };
E29D31AA2D0CEE3F0051B7F4 /* AudioPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31A92D0CEE3C0051B7F4 /* AudioPlayer.swift */; };
E29D31AD2D0DA5360051B7F4 /* AudioPlayerIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31AC2D0DA5310051B7F4 /* AudioPlayerIcons.swift */; };
E29D31B12D0DA5510051B7F4 /* ContentIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31B02D0DA5510051B7F4 /* ContentIcon.swift */; };
E29D31B32D0DA6E80051B7F4 /* ButtonIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31B22D0DA6E50051B7F4 /* ButtonIcons.swift */; };
E29D31B52D0DA8490051B7F4 /* PageIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31B42D0DA8490051B7F4 /* PageIcon.swift */; };
E29D31B82D0DAC250051B7F4 /* ButtonCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31B72D0DAC1D0051B7F4 /* ButtonCommand.swift */; };
E29D31BA2D0DB5080051B7F4 /* LabelsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31B92D0DB4EF0051B7F4 /* LabelsCommand.swift */; };
E29D31BC2D0DB5120051B7F4 /* CommandProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31BB2D0DB5110051B7F4 /* CommandProcessor.swift */; };
E29D31BE2D0DB85A0051B7F4 /* AudioPlayerCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31BD2D0DB8560051B7F4 /* AudioPlayerCommand.swift */; };
E29D31C02D0DB9F20051B7F4 /* AudioPlayerContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31BF2D0DB9ED0051B7F4 /* AudioPlayerContent.swift */; };
E29D31C32D0DBEF20051B7F4 /* Song.swift in Sources */ = {isa = PBXBuildFile; fileRef = E29D31C22D0DBEF00051B7F4 /* Song.swift */; };
E2A21C032CB16C290060935B /* Environment+Language.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A21C022CB16C220060935B /* Environment+Language.swift */; };
E2A21C082CB17B870060935B /* TagView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A21C072CB17B810060935B /* TagView.swift */; };
E2A21C0E2CB189DC0060935B /* Color+RGB.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2A21C0D2CB189D70060935B /* Color+RGB.swift */; };
@ -209,7 +226,6 @@
E25DA5792D01C63E00AEF16D /* PageContentGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageContentGenerator.swift; sourceTree = "<group>"; };
E25DA5822D01C7A100AEF16D /* VideoFileType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoFileType.swift; sourceTree = "<group>"; };
E25DA5842D01C92600AEF16D /* ShorthandMarkdownKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShorthandMarkdownKey.swift; sourceTree = "<group>"; };
E25DA5862D01CA8D00AEF16D /* GenerationResultsHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenerationResultsHandler.swift; sourceTree = "<group>"; };
E25DA5882D01CBCE00AEF16D /* Content+Generation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Content+Generation.swift"; sourceTree = "<group>"; };
E25DA58A2D020C9200AEF16D /* PageImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageImage.swift; sourceTree = "<group>"; };
E25DA58C2D021BA000AEF16D /* WebsiteImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebsiteImage.swift; sourceTree = "<group>"; };
@ -220,7 +236,7 @@
E25DA5962D023F9900AEF16D /* ContentPage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentPage.swift; sourceTree = "<group>"; };
E25DA5982D02401A00AEF16D /* PageGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageGenerator.swift; sourceTree = "<group>"; };
E25DA59A2D024A2900AEF16D /* DateItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateItem.swift; sourceTree = "<group>"; };
E29D311F2D0320E20051B7F4 /* HikingStatistics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HikingStatistics.swift; sourceTree = "<group>"; };
E29D311F2D0320E20051B7F4 /* ContentLabels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentLabels.swift; sourceTree = "<group>"; };
E29D31212D0363FA0051B7F4 /* ContentButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentButtons.swift; sourceTree = "<group>"; };
E29D31232D0366820051B7F4 /* TagList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TagList.swift; sourceTree = "<group>"; };
E29D31252D0370A50051B7F4 /* VideoOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoOption.swift; sourceTree = "<group>"; };
@ -258,7 +274,7 @@
E29D31702D08234D0051B7F4 /* GenerationDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GenerationDetailView.swift; sourceTree = "<group>"; };
E29D31782D083DDA0051B7F4 /* PageContentResultsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageContentResultsView.swift; sourceTree = "<group>"; };
E29D317C2D086AAE0051B7F4 /* Int+Random.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+Random.swift"; sourceTree = "<group>"; };
E29D317E2D086F490051B7F4 /* Icons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Icons.swift; sourceTree = "<group>"; };
E29D317E2D086F490051B7F4 /* StatisticsIcons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatisticsIcons.swift; sourceTree = "<group>"; };
E29D31822D0A43D60051B7F4 /* RelatedPageLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelatedPageLink.swift; sourceTree = "<group>"; };
E29D31842D0AE8EE0051B7F4 /* RequiredHeaders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequiredHeaders.swift; sourceTree = "<group>"; };
E29D31862D0AE9D40051B7F4 /* AdditionalPageHeaders.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalPageHeaders.swift; sourceTree = "<group>"; };
@ -270,6 +286,23 @@
E29D31932D0B7D250051B7F4 /* SvgImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SvgImage.swift; sourceTree = "<group>"; };
E29D31952D0C18690051B7F4 /* PathSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PathSettings.swift; sourceTree = "<group>"; };
E29D31972D0C19300051B7F4 /* PathSettingsFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PathSettingsFile.swift; sourceTree = "<group>"; };
E29D319A2D0C452B0051B7F4 /* PageIssue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageIssue.swift; sourceTree = "<group>"; };
E29D319C2D0C45B60051B7F4 /* PageIssueView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageIssueView.swift; sourceTree = "<group>"; };
E29D319E2D0C46290051B7F4 /* PageIssueChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageIssueChecker.swift; sourceTree = "<group>"; };
E29D31A02D0C75C50051B7F4 /* Content+Validation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Content+Validation.swift"; sourceTree = "<group>"; };
E29D31A22D0CC98B0051B7F4 /* Item.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Item.swift; sourceTree = "<group>"; };
E29D31A42D0CD03A0051B7F4 /* FileSelectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSelectionView.swift; sourceTree = "<group>"; };
E29D31A92D0CEE3C0051B7F4 /* AudioPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPlayer.swift; sourceTree = "<group>"; };
E29D31AC2D0DA5310051B7F4 /* AudioPlayerIcons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPlayerIcons.swift; sourceTree = "<group>"; };
E29D31B02D0DA5510051B7F4 /* ContentIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentIcon.swift; sourceTree = "<group>"; };
E29D31B22D0DA6E50051B7F4 /* ButtonIcons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonIcons.swift; sourceTree = "<group>"; };
E29D31B42D0DA8490051B7F4 /* PageIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageIcon.swift; sourceTree = "<group>"; };
E29D31B72D0DAC1D0051B7F4 /* ButtonCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonCommand.swift; sourceTree = "<group>"; };
E29D31B92D0DB4EF0051B7F4 /* LabelsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelsCommand.swift; sourceTree = "<group>"; };
E29D31BB2D0DB5110051B7F4 /* CommandProcessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandProcessor.swift; sourceTree = "<group>"; };
E29D31BD2D0DB8560051B7F4 /* AudioPlayerCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPlayerCommand.swift; sourceTree = "<group>"; };
E29D31BF2D0DB9ED0051B7F4 /* AudioPlayerContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPlayerContent.swift; sourceTree = "<group>"; };
E29D31C22D0DBEF00051B7F4 /* Song.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Song.swift; sourceTree = "<group>"; };
E2A21C022CB16C220060935B /* Environment+Language.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Environment+Language.swift"; sourceTree = "<group>"; };
E2A21C072CB17B810060935B /* TagView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TagView.swift; sourceTree = "<group>"; };
E2A21C0D2CB189D70060935B /* Color+RGB.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+RGB.swift"; sourceTree = "<group>"; };
@ -323,6 +356,7 @@
E25DA52F2CFFC91B00AEF16D /* SDWebImageWebPCoder in Frameworks */,
E24252012C50E0A40029FF16 /* HighlightedTextEditor in Frameworks */,
E25DA5802D01C6AC00AEF16D /* Splash in Frameworks */,
E29D31A82D0CDC5D0051B7F4 /* SwiftSoup in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -370,10 +404,10 @@
E25DA5782D01C56200AEF16D /* Generator */ = {
isa = PBXGroup;
children = (
E29D31B62D0DAC030051B7F4 /* Page Content */,
E29D31912D0B3EF30051B7F4 /* PageCommandExtractor.swift */,
E29D318F2D0B34870051B7F4 /* PageContentAnomaly.swift */,
E29D31842D0AE8EE0051B7F4 /* RequiredHeaders.swift */,
E25DA5862D01CA8D00AEF16D /* GenerationResultsHandler.swift */,
E25DA5222CFF6C2600AEF16D /* ImageGenerator.swift */,
E218502E2CFAF6990090B18B /* LocalizedWebsiteGenerator.swift */,
E25DA5792D01C63E00AEF16D /* PageContentGenerator.swift */,
@ -403,16 +437,17 @@
E29D311E2D0320D90051B7F4 /* ContentElements */ = {
isa = PBXGroup;
children = (
E29D31C12D0DBED70051B7F4 /* AudioPlayer */,
E29D31AB2D0DA52C0051B7F4 /* Icons */,
E29D31932D0B7D250051B7F4 /* SvgImage.swift */,
E29D318A2D0B07E60051B7F4 /* ContentBox.swift */,
E29D31882D0AED1B0051B7F4 /* ModelViewer.swift */,
E29D31862D0AE9D40051B7F4 /* AdditionalPageHeaders.swift */,
E29D31822D0A43D60051B7F4 /* RelatedPageLink.swift */,
E29D317E2D086F490051B7F4 /* Icons.swift */,
E29D31272D0371870051B7F4 /* ContentPageVideo.swift */,
E29D31232D0366820051B7F4 /* TagList.swift */,
E29D31212D0363FA0051B7F4 /* ContentButtons.swift */,
E29D311F2D0320E20051B7F4 /* HikingStatistics.swift */,
E29D311F2D0320E20051B7F4 /* ContentLabels.swift */,
);
path = ContentElements;
sourceTree = "<group>";
@ -432,11 +467,54 @@
E29D318C2D0B2E5E0051B7F4 /* Content */ = {
isa = PBXGroup;
children = (
E29D31992D0C451B0051B7F4 /* Pages */,
E29D318D2D0B2E640051B7F4 /* PageSettingsContentView.swift */,
);
path = Content;
sourceTree = "<group>";
};
E29D31992D0C451B0051B7F4 /* Pages */ = {
isa = PBXGroup;
children = (
E29D319E2D0C46290051B7F4 /* PageIssueChecker.swift */,
E29D319C2D0C45B60051B7F4 /* PageIssueView.swift */,
E29D319A2D0C452B0051B7F4 /* PageIssue.swift */,
);
path = Pages;
sourceTree = "<group>";
};
E29D31AB2D0DA52C0051B7F4 /* Icons */ = {
isa = PBXGroup;
children = (
E29D31B42D0DA8490051B7F4 /* PageIcon.swift */,
E29D31B22D0DA6E50051B7F4 /* ButtonIcons.swift */,
E29D31B02D0DA5510051B7F4 /* ContentIcon.swift */,
E29D31AC2D0DA5310051B7F4 /* AudioPlayerIcons.swift */,
E29D317E2D086F490051B7F4 /* StatisticsIcons.swift */,
);
path = Icons;
sourceTree = "<group>";
};
E29D31B62D0DAC030051B7F4 /* Page Content */ = {
isa = PBXGroup;
children = (
E29D31BD2D0DB8560051B7F4 /* AudioPlayerCommand.swift */,
E29D31BB2D0DB5110051B7F4 /* CommandProcessor.swift */,
E29D31B92D0DB4EF0051B7F4 /* LabelsCommand.swift */,
E29D31B72D0DAC1D0051B7F4 /* ButtonCommand.swift */,
);
path = "Page Content";
sourceTree = "<group>";
};
E29D31C12D0DBED70051B7F4 /* AudioPlayer */ = {
isa = PBXGroup;
children = (
E29D31A92D0CEE3C0051B7F4 /* AudioPlayer.swift */,
E29D31BF2D0DB9ED0051B7F4 /* AudioPlayerContent.swift */,
);
path = AudioPlayer;
sourceTree = "<group>";
};
E2A21C322CB5BCAC0060935B /* Pages */ = {
isa = PBXGroup;
children = (
@ -493,6 +571,7 @@
E29D31682D0702670051B7F4 /* TextFileContentView.swift */,
E29D314A2D04FC940051B7F4 /* FileToAdd.swift */,
E29D314C2D04FCBF0051B7F4 /* FileToAddView.swift */,
E29D31A42D0CD03A0051B7F4 /* FileSelectionView.swift */,
);
path = Files;
sourceTree = "<group>";
@ -523,9 +602,11 @@
E2B85F392C428F020047CD0C /* Model */ = {
isa = PBXGroup;
children = (
E29D31A22D0CC98B0051B7F4 /* Item.swift */,
E25DA5812D01C79800AEF16D /* Types */,
E25DA53B2D0042EA00AEF16D /* Settings */,
E2E06DFA2CA4A6570019C2AF /* Content.swift */,
E29D31A02D0C75C50051B7F4 /* Content+Validation.swift */,
E25DA5882D01CBCE00AEF16D /* Content+Generation.swift */,
E25DA5162CFF00F200AEF16D /* Content+Save.swift */,
E25DA5142CFF00B900AEF16D /* Content+Load.swift */,
@ -538,6 +619,7 @@
E2A37D182CEA36A40000979F /* LocalizedTag.swift */,
E2A9CB7D2C7BCF2A005C89CC /* Page.swift */,
E25A0B882CE4021400F33674 /* LocalizedPage.swift */,
E29D31C22D0DBEF00051B7F4 /* Song.swift */,
);
path = Model;
sourceTree = "<group>";
@ -690,6 +772,7 @@
E25DA52E2CFFC91B00AEF16D /* SDWebImageWebPCoder */,
E25DA57C2D01C67900AEF16D /* Ink */,
E25DA57F2D01C6AC00AEF16D /* Splash */,
E29D31A72D0CDC5D0051B7F4 /* SwiftSoup */,
);
productName = CHDataManagement;
productReference = E2DD04702C276F31003BFF1F /* CHDataManagement.app */;
@ -726,6 +809,7 @@
E25DA52D2CFFC91B00AEF16D /* XCRemoteSwiftPackageReference "SDWebImageWebPCoder" */,
E25DA57B2D01C67900AEF16D /* XCRemoteSwiftPackageReference "ink" */,
E25DA57E2D01C6AC00AEF16D /* XCRemoteSwiftPackageReference "Splash" */,
E29D31A62D0CDC5D0051B7F4 /* XCRemoteSwiftPackageReference "SwiftSoup" */,
);
productRefGroup = E2DD04712C276F31003BFF1F /* Products */;
projectDirPath = "";
@ -761,6 +845,7 @@
E25DA56F2D00F9A100AEF16D /* PostFeedSettingsView.swift in Sources */,
E29D313B2D04464A0051B7F4 /* LocalizedTagDetailView.swift in Sources */,
E2A37D212CEA94EC0000979F /* Sequence+Sorted.swift in Sources */,
E29D31BA2D0DB5080051B7F4 /* LabelsCommand.swift in Sources */,
E29D31692D0702700051B7F4 /* TextFileContentView.swift in Sources */,
E25DA5412D00446C00AEF16D /* PostSettings.swift in Sources */,
E2A37D192CEA36A90000979F /* LocalizedTag.swift in Sources */,
@ -768,11 +853,13 @@
E29D31902D0B34870051B7F4 /* PageContentAnomaly.swift in Sources */,
E29D31872D0AE9DE0051B7F4 /* AdditionalPageHeaders.swift in Sources */,
E25DA5172CFF00F500AEF16D /* Content+Save.swift in Sources */,
E29D31AD2D0DA5360051B7F4 /* AudioPlayerIcons.swift in Sources */,
E25DA5452D00952E00AEF16D /* SettingsSection.swift in Sources */,
E2A21C462CBAE2E60060935B /* FeedEntryContent.swift in Sources */,
E21850252CF38BCE0090B18B /* TextEntrySheet.swift in Sources */,
E2A37D1D2CEA922D0000979F /* LocalizedPost.swift in Sources */,
E21850172CEE55FC0090B18B /* FileType.swift in Sources */,
E29D31B12D0DA5510051B7F4 /* ContentIcon.swift in Sources */,
E29D31612D06D95C0051B7F4 /* ResourceFileType.swift in Sources */,
E2A37D112CE537800000979F /* PageFile.swift in Sources */,
E242520A2C52C9260029FF16 /* ContentLanguage.swift in Sources */,
@ -780,7 +867,7 @@
E2B85F3B2C428F0E0047CD0C /* Post.swift in Sources */,
E29D31852D0AE8EE0051B7F4 /* RequiredHeaders.swift in Sources */,
E25DA51B2CFF08BB00AEF16D /* PostFeedPageNavigation.swift in Sources */,
E29D317F2D086F4C0051B7F4 /* Icons.swift in Sources */,
E29D317F2D086F4C0051B7F4 /* StatisticsIcons.swift in Sources */,
E2A21C082CB17B870060935B /* TagView.swift in Sources */,
E29D313D2D047C1B0051B7F4 /* LocalizedPageContentView.swift in Sources */,
E2A37D2D2CED2EF10000979F /* OptionalTextField.swift in Sources */,
@ -807,6 +894,7 @@
E29D31922D0B3EFC0051B7F4 /* PageCommandExtractor.swift in Sources */,
E29D315B2D06D63E0051B7F4 /* ModelFileType.swift in Sources */,
E29D31302D03A2C50051B7F4 /* DescriptionField.swift in Sources */,
E29D31BE2D0DB85A0051B7F4 /* AudioPlayerCommand.swift in Sources */,
E29D31552D06D2CE0051B7F4 /* TagListView.swift in Sources */,
E29D31982D0C19340051B7F4 /* PathSettingsFile.swift in Sources */,
E2A37D152CE68BEC0000979F /* PostFile.swift in Sources */,
@ -816,6 +904,7 @@
E21850272CF3B42D0090B18B /* PostDetailView.swift in Sources */,
E2A37D172CE73F1A0000979F /* TagFile.swift in Sources */,
E29D318E2D0B2E680051B7F4 /* PageSettingsContentView.swift in Sources */,
E29D31BC2D0DB5120051B7F4 /* CommandProcessor.swift in Sources */,
E29D312C2D039DB80051B7F4 /* PageDetailView.swift in Sources */,
E29D31432D0488960051B7F4 /* MainContentView.swift in Sources */,
E29D31282D0371930051B7F4 /* ContentPageVideo.swift in Sources */,
@ -829,6 +918,7 @@
E21850332CFAFA2F0090B18B /* Settings.swift in Sources */,
E29D31892D0AED1F0051B7F4 /* ModelViewer.swift in Sources */,
E29D31412D04887F0051B7F4 /* SelectedDetailView.swift in Sources */,
E29D31A32D0CC98C0051B7F4 /* Item.swift in Sources */,
E25DA57A2D01C64400AEF16D /* PageContentGenerator.swift in Sources */,
E21850192CEE561C0090B18B /* PageOnDisk.swift in Sources */,
E2A21C202CB28ED20060935B /* MockImage.swift in Sources */,
@ -836,22 +926,29 @@
E25DA5752D018B6100AEF16D /* FileDetailView.swift in Sources */,
E25DA50B2CFD988100AEF16D /* PageTagAssignmentView.swift in Sources */,
E21850352CFAFA5A0090B18B /* SettingsFile.swift in Sources */,
E29D31A12D0C75CA0051B7F4 /* Content+Validation.swift in Sources */,
E29D316D2D07A5050051B7F4 /* PageGenerationResults.swift in Sources */,
E25DA5192CFF035900AEF16D /* Array+Split.swift in Sources */,
E29D31B82D0DAC250051B7F4 /* ButtonCommand.swift in Sources */,
E29D31962D0C186E0051B7F4 /* PathSettings.swift in Sources */,
E2B85F412C4294790047CD0C /* PageHead.swift in Sources */,
E29D316B2D07488B0051B7F4 /* PostListPageGenerator.swift in Sources */,
E218501D2CEE6CB60090B18B /* VerticalCenter.swift in Sources */,
E29D31B32D0DA6E80051B7F4 /* ButtonIcons.swift in Sources */,
E29D319D2D0C45B90051B7F4 /* PageIssueView.swift in Sources */,
E25DA5732D018AA100AEF16D /* FileContentView.swift in Sources */,
E25DA5232CFF6C3700AEF16D /* ImageGenerator.swift in Sources */,
E2A9CB7E2C7BCF2A005C89CC /* Page.swift in Sources */,
E29D31202D0320E70051B7F4 /* HikingStatistics.swift in Sources */,
E29D31202D0320E70051B7F4 /* ContentLabels.swift in Sources */,
E29D314B2D04FC950051B7F4 /* FileToAdd.swift in Sources */,
E2E06DFB2CA4A65E0019C2AF /* Content.swift in Sources */,
E29D31B52D0DA8490051B7F4 /* PageIcon.swift in Sources */,
E25DA51D2CFF135E00AEF16D /* GenericPage.swift in Sources */,
E29D319B2D0C452B0051B7F4 /* PageIssue.swift in Sources */,
E218500B2CEE02FD0090B18B /* Content+Mock.swift in Sources */,
E29D31472D04892E0051B7F4 /* FileListView.swift in Sources */,
E218503D2CFCFD910090B18B /* LocalizedPostFeedSettingsView.swift in Sources */,
E29D31A52D0CD03F0051B7F4 /* FileSelectionView.swift in Sources */,
E2A21C302CB490F90060935B /* HorizontalCenter.swift in Sources */,
E25DA5252CFF73AB00AEF16D /* NSSize+Scaling.swift in Sources */,
E21850372CFCA55F0090B18B /* LocalizedPostSettings.swift in Sources */,
@ -859,11 +956,14 @@
E218501F2CEE6DAC0090B18B /* ImagePickerView.swift in Sources */,
E29D31452D0488CB0051B7F4 /* SelectedContentView.swift in Sources */,
E2A37D1B2CEA45560000979F /* Tag+Mock.swift in Sources */,
E29D319F2D0C46310051B7F4 /* PageIssueChecker.swift in Sources */,
E2A21C482CBAF88B0060935B /* String+Extensions.swift in Sources */,
E29D31322D03B5680051B7F4 /* LocalizedPostDetailView.swift in Sources */,
E29D31712D08234D0051B7F4 /* GenerationDetailView.swift in Sources */,
E2A37D1F2CEA94370000979F /* Optional+Extensions.swift in Sources */,
E29D31C32D0DBEF20051B7F4 /* Song.swift in Sources */,
E29D31532D0618740051B7F4 /* AddPageView.swift in Sources */,
E29D31C02D0DB9F20051B7F4 /* AudioPlayerContent.swift in Sources */,
E25DA5292CFFBFBB00AEF16D /* ImageFileType.swift in Sources */,
E25DA51F2CFF15C400AEF16D /* NavigationBar.swift in Sources */,
E29D31832D0A43DB0051B7F4 /* RelatedPageLink.swift in Sources */,
@ -881,10 +981,10 @@
E25DA5092CFD964E00AEF16D /* TagContentView.swift in Sources */,
E29D31342D03B5D50051B7F4 /* IconButton.swift in Sources */,
E25DA5712D01015400AEF16D /* GenerationContentView.swift in Sources */,
E25DA5872D01CA9300AEF16D /* GenerationResultsHandler.swift in Sources */,
E29D316F2D0822770051B7F4 /* SettingsListView.swift in Sources */,
E2A21C0E2CB189DC0060935B /* Color+RGB.swift in Sources */,
E25DA5852D01C92700AEF16D /* ShorthandMarkdownKey.swift in Sources */,
E29D31AA2D0CEE3F0051B7F4 /* AudioPlayer.swift in Sources */,
E25DA5152CFF00C100AEF16D /* Content+Load.swift in Sources */,
E25DA58F2D02368D00AEF16D /* PageSettings.swift in Sources */,
E25DA50D2CFD9BA200AEF16D /* PostTagAssignmentView.swift in Sources */,
@ -1161,6 +1261,14 @@
minimumVersion = 0.16.0;
};
};
E29D31A62D0CDC5D0051B7F4 /* XCRemoteSwiftPackageReference "SwiftSoup" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/scinfu/SwiftSoup.git";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 2.7.6;
};
};
E2B85F342C426BED0047CD0C /* XCRemoteSwiftPackageReference "SFSafeSymbols" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/SFSafeSymbols/SFSafeSymbols";
@ -1197,6 +1305,11 @@
package = E25DA57E2D01C6AC00AEF16D /* XCRemoteSwiftPackageReference "Splash" */;
productName = Splash;
};
E29D31A72D0CDC5D0051B7F4 /* SwiftSoup */ = {
isa = XCSwiftPackageProductDependency;
package = E29D31A62D0CDC5D0051B7F4 /* XCRemoteSwiftPackageReference "SwiftSoup" */;
productName = SwiftSoup;
};
E2B85F352C426BEE0047CD0C /* SFSafeSymbols */ = {
isa = XCSwiftPackageProductDependency;
package = E2B85F342C426BED0047CD0C /* XCRemoteSwiftPackageReference "SFSafeSymbols" */;