From f78a56cb2c8855164cd8b1b035992353e4bca93b Mon Sep 17 00:00:00 2001 From: lincube Date: Wed, 4 Mar 2026 15:22:52 +0800 Subject: [PATCH] 0.3.5 --- .github/About_action..md | 10 ++-- .github/CODEOWNERS | 18 +++--- .github/FIX_REPORT.md | 20 +++---- .github/MULTIPLATFORM_BUILD.md | 26 ++++----- .github/README.md | 14 ++--- .github/VERSION_SYNC_INFO.md | 8 +-- .github/WORKFLOWS_GUIDE.md | 24 ++++---- .github/workflows/build.yml | 16 +++--- .github/workflows/code-quality.yml | 4 +- .github/workflows/release.yml | 42 +++++++------- LanMontainDesktop/build_output.txt | Bin 498 -> 0 bytes ...untainDesktop.RecommendationBackend.csproj | 0 .../Models/RecommendationDataModels.cs | 4 +- .../Program.cs | 6 +- .../Properties/launchSettings.json | 0 .../README.md | 4 +- .../Services/IRecommendationDataService.cs | 6 +- .../Services/RecommendationDataService.cs | 6 +- .../appsettings.Development.json | 0 .../appsettings.json | 0 ...ntainDesktop.sln => LanMountainDesktop.sln | 6 +- .../.github/workflows/windows-ci.yml | 18 +++--- .../App.axaml | 12 ++-- .../App.axaml.cs | 8 +-- .../Assets/Fonts/MiSans-Bold.ttf | Bin .../Assets/Fonts/MiSans-NOTICE.md | 0 .../Assets/Fonts/MiSans-Regular.ttf | Bin .../Assets/Fonts/MiSans-Semibold.ttf | Bin .../Assets/Weather/ATTRIBUTION.md | 0 .../Assets/Weather/HyperOS3/ATTRIBUTION.md | 0 .../Weather/HyperOS3/Icons/icon_cloudy.webp | Bin .../Weather/HyperOS3/Icons/icon_haze.webp | Bin .../HyperOS3/Icons/icon_moon_clear.webp | Bin .../Icons/icon_partly_cloudy_day.webp | Bin .../Icons/icon_partly_cloudy_night.webp | Bin .../HyperOS3/Icons/icon_rain_heavy.webp | Bin .../HyperOS3/Icons/icon_rain_light.webp | Bin .../Weather/HyperOS3/Icons/icon_sleet.webp | Bin .../Weather/HyperOS3/Icons/icon_snow.webp | Bin .../HyperOS3/Icons/icon_sunny_day.webp | Bin .../Weather/HyperOS3/Icons/icon_thunder.webp | Bin .../Weather/HyperOS3/Icons/icon_windy.webp | Bin .../Weather/HyperOS3/hyper_cross_sky_day.png | Bin .../HyperOS3/hyper_cross_sky_night.png | Bin .../Assets/Weather/HyperOS3/hyper_fog.png | Bin .../Assets/Weather/HyperOS3/hyper_haze.png | Bin .../Weather/HyperOS3/hyper_rain_drop.png | Bin .../Weather/HyperOS3/hyper_sky_back.png | Bin .../Weather/HyperOS3/hyper_sky_bottom.png | Bin .../Weather/HyperOS3/hyper_sky_front.png | Bin .../Weather/HyperOS3/hyper_sky_left.png | Bin .../Weather/HyperOS3/hyper_sky_right.png | Bin .../Assets/Weather/HyperOS3/hyper_sky_top.png | Bin .../Weather/HyperOS3/hyper_snow_flake.png | Bin .../Weather/HyperOS3/hyper_sun_core.png | Bin .../Weather/HyperOS3/hyper_sun_ring.png | Bin .../Assets/Weather/clear_day.jpg | Bin .../Assets/Weather/clear_night.jpg | Bin .../Assets/Weather/clear_sky.jpg | Bin .../Assets/Weather/cloudy_day.jpg | Bin .../Assets/Weather/cloudy_night.jpg | Bin .../Assets/Weather/fog_haze.jpg | Bin .../Assets/Weather/rain.jpg | Bin .../Assets/Weather/rain_heavy.jpg | Bin .../Assets/Weather/rain_light.jpg | Bin .../Assets/Weather/snow.jpg | Bin .../Assets/Weather/snow_soft.jpg | Bin .../Assets/Weather/storm.jpg | Bin .../Assets/Weather/storm_dark.jpg | Bin .../Assets/avalonia-logo.ico | Bin .../Behaviors/PanelIntroAnimationBehavior.cs | 4 +- .../Behaviors/PopupIntroAnimationBehavior.cs | 4 +- .../ComponentSystem/BuiltInComponentIds.cs | 2 +- .../ComponentPlacementRules.cs | 4 +- .../ComponentSystem/ComponentRegistry.cs | 6 +- .../DesktopComponentDefinition.cs | 2 +- .../DesktopComponentResizeMode.cs | 2 +- .../Extensions/IComponentExtensionProvider.cs | 4 +- .../JsonComponentExtensionProvider.cs | 4 +- .../ComponentSystem/README.md | 0 .../Extensions/Components/README.txt | 0 .../LanMountainDesktop.csproj | 0 .../Localization/en-US.json | 4 +- .../Localization/zh-CN.json | 4 +- .../Models/AppSettingsSnapshot.cs | 4 +- .../Models/ClassIslandScheduleModels.cs | 4 +- .../DesktopComponentPlacementSnapshot.cs | 2 +- .../Models/ImportedClassScheduleSnapshot.cs | 2 +- .../Models/MonetPalette.cs | 4 +- .../Models/RecommendationDataModels.cs | 4 +- .../Models/StartMenuAppEntry.cs | 2 +- .../Models/StartMenuFolderNode.cs | 4 +- .../Models/StudyAnalyticsModels.cs | 4 +- .../Models/TaskbarActionId.cs | 2 +- .../Models/TaskbarActionItem.cs | 2 +- .../Models/TaskbarContext.cs | 2 +- .../Models/WeatherDataModels.cs | 4 +- .../PACKAGING.md | 6 +- .../Program.cs | 4 +- .../Services/AppSettingsService.cs | 8 +-- .../ClassIslandScheduleDataService.cs | 4 +- .../Services/GlassEffectService.cs | 6 +- .../Services/HolidayCalendarService.cs | 4 +- .../Services/IAudioRecorderService.cs | 6 +- .../Services/IMusicControlService.cs | 4 +- .../Services/IRecommendationDataService.cs | 6 +- .../Services/IStudyAnalyticsService.cs | 6 +- .../Services/IWeatherDataService.cs | 6 +- .../Services/LocalizationService.cs | 4 +- .../Services/LunarCalendarService.cs | 4 +- .../Services/MonetColorService.cs | 6 +- .../Services/StudyAnalyticsInternals.cs | 6 +- .../Services/StudyAnalyticsService.cs | 6 +- .../Services/ThemeColorSystemService.cs | 6 +- .../Services/TimeZoneService.cs | 4 +- .../Services/UwpManifestIconResolver.cs | 4 +- .../Services/WindowsIconService.cs | 4 +- .../WindowsSmtcMusicControlService.cs | 4 +- .../Services/WindowsStartMenuService.cs | 6 +- .../Services/XiaomiWeatherService.cs | 6 +- .../Styles/GlassModule.axaml | 0 .../Styles/SettingsAnimations.axaml | 4 +- .../Theme/AppThemePalette.cs | 4 +- .../Theme/ColorMath.cs | 4 +- .../Theme/ThemeColorContext.cs | 4 +- .../ViewLocator.cs | 6 +- .../ViewModels/MainWindowViewModel.cs | 2 +- .../ViewModels/ViewModelBase.cs | 2 +- .../Views/Components/AnalogClockWidget.axaml | 4 +- .../Components/AnalogClockWidget.axaml.cs | 6 +- .../Views/Components/BrowserWidget.axaml | 4 +- .../Views/Components/BrowserWidget.axaml.cs | 4 +- .../ClassScheduleSettingsWindow.axaml | 4 +- .../ClassScheduleSettingsWindow.axaml.cs | 10 ++-- .../Components/ClassScheduleWidget.axaml | 4 +- .../Components/ClassScheduleWidget.axaml.cs | 8 +-- .../Views/Components/ClockWidget.axaml | 4 +- .../Views/Components/ClockWidget.axaml.cs | 6 +- .../Views/Components/DailyArtworkWidget.axaml | 2 +- .../Components/DailyArtworkWidget.axaml.cs | 8 +-- .../Views/Components/DailyPoetryWidget.axaml | 2 +- .../Components/DailyPoetryWidget.axaml.cs | 8 +-- .../Views/Components/DateWidget.axaml | 4 +- .../Views/Components/DateWidget.axaml.cs | 4 +- .../Components/DateWidgetSettingsWindow.axaml | 4 +- .../DateWidgetSettingsWindow.axaml.cs | 4 +- .../DesktopComponentRuntimeRegistry.cs | 8 +-- .../Components/ExtendedWeatherWidget.axaml | 2 +- .../Components/ExtendedWeatherWidget.axaml.cs | 6 +- .../Components/HolidayCalendarWidget.axaml | 4 +- .../Components/HolidayCalendarWidget.axaml.cs | 4 +- .../Components/HourlyWeatherWidget.axaml | 2 +- .../Components/HourlyWeatherWidget.axaml.cs | 8 +-- .../Components/HyperOS3WeatherAssetLoader.cs | 4 +- .../Views/Components/HyperOS3WeatherTheme.cs | 52 +++++++++--------- .../Components/IDesktopComponentWidget.cs | 4 +- .../Components/LunarCalendarWidget.axaml | 4 +- .../Components/LunarCalendarWidget.axaml.cs | 6 +- .../Components/MonthCalendarWidget.axaml | 4 +- .../Components/MonthCalendarWidget.axaml.cs | 6 +- .../Components/MultiDayWeatherWidget.axaml | 2 +- .../Components/MultiDayWeatherWidget.axaml.cs | 8 +-- .../Views/Components/MusicControlWidget.axaml | 4 +- .../Components/MusicControlWidget.axaml.cs | 8 +-- .../Views/Components/RecordingWidget.axaml | 4 +- .../Views/Components/RecordingWidget.axaml.cs | 6 +- .../Components/StudyEnvironmentWidget.axaml | 4 +- .../StudyEnvironmentWidget.axaml.cs | 8 +-- ...StudyEnvironmentWidgetSettingsWindow.axaml | 4 +- ...dyEnvironmentWidgetSettingsWindow.axaml.cs | 6 +- .../Components/StudyNoiseCurveChartControl.cs | 6 +- .../Components/StudyNoiseCurveWidget.axaml | 6 +- .../Components/StudyNoiseCurveWidget.axaml.cs | 10 ++-- .../Views/Components/TimerWidget.axaml | 4 +- .../Views/Components/TimerWidget.axaml.cs | 4 +- .../Views/Components/WeatherClockWidget.axaml | 4 +- .../Components/WeatherClockWidget.axaml.cs | 8 +-- .../WeatherTypographyAccessibility.cs | 6 +- .../Views/Components/WeatherWidget.axaml | 2 +- .../Views/Components/WeatherWidget.axaml.cs | 8 +-- .../Views/Components/WhiteboardWidget.axaml | 4 +- .../Components/WhiteboardWidget.axaml.cs | 6 +- .../Views/MainWindow.ComponentSystem.cs | 8 +-- .../Views/MainWindow.DesktopPaging.cs | 8 +-- .../Views/MainWindow.Localization.cs | 6 +- .../Views/MainWindow.Settings.cs | 12 ++-- .../Views/MainWindow.axaml | 10 ++-- .../Views/MainWindow.axaml.backup | 10 ++-- .../Views/MainWindow.axaml.cs | 14 ++--- .../app.manifest | 2 +- LanMountainDesktop/build_output.txt | Bin 0 -> 506 bytes .../installer/LanMountainDesktop.iss | 6 +- .../qodana.yaml | 0 .../scripts/package.ps1 | 8 +-- README.md | 14 ++--- docs/VISUAL_SPEC.md | 2 +- run.md | 10 ++-- scripts/build.sh | 8 +-- 198 files changed, 461 insertions(+), 461 deletions(-) delete mode 100644 LanMontainDesktop/build_output.txt rename LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj => LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj (100%) rename {LanMontainDesktop.RecommendationBackend => LanMountainDesktop.RecommendationBackend}/Models/RecommendationDataModels.cs (94%) rename {LanMontainDesktop.RecommendationBackend => LanMountainDesktop.RecommendationBackend}/Program.cs (96%) rename {LanMontainDesktop.RecommendationBackend => LanMountainDesktop.RecommendationBackend}/Properties/launchSettings.json (100%) rename {LanMontainDesktop.RecommendationBackend => LanMountainDesktop.RecommendationBackend}/README.md (87%) rename {LanMontainDesktop.RecommendationBackend => LanMountainDesktop.RecommendationBackend}/Services/IRecommendationDataService.cs (94%) rename {LanMontainDesktop.RecommendationBackend => LanMountainDesktop.RecommendationBackend}/Services/RecommendationDataService.cs (99%) rename {LanMontainDesktop.RecommendationBackend => LanMountainDesktop.RecommendationBackend}/appsettings.Development.json (100%) rename {LanMontainDesktop.RecommendationBackend => LanMountainDesktop.RecommendationBackend}/appsettings.json (100%) rename LanMontainDesktop.sln => LanMountainDesktop.sln (73%) rename {LanMontainDesktop => LanMountainDesktop}/.github/workflows/windows-ci.yml (91%) rename {LanMontainDesktop => LanMountainDesktop}/App.axaml (83%) rename {LanMontainDesktop => LanMountainDesktop}/App.axaml.cs (92%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Fonts/MiSans-Bold.ttf (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Fonts/MiSans-NOTICE.md (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Fonts/MiSans-Regular.ttf (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Fonts/MiSans-Semibold.ttf (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/ATTRIBUTION.md (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/ATTRIBUTION.md (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_cloudy.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_haze.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_moon_clear.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_partly_cloudy_day.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_partly_cloudy_night.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_rain_heavy.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_rain_light.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_sleet.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_snow.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_sunny_day.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_thunder.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/Icons/icon_windy.webp (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_cross_sky_day.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_cross_sky_night.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_fog.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_haze.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_rain_drop.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_sky_back.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_sky_bottom.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_sky_front.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_sky_left.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_sky_right.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_sky_top.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_snow_flake.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_sun_core.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/HyperOS3/hyper_sun_ring.png (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/clear_day.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/clear_night.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/clear_sky.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/cloudy_day.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/cloudy_night.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/fog_haze.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/rain.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/rain_heavy.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/rain_light.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/snow.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/snow_soft.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/storm.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/Weather/storm_dark.jpg (100%) rename {LanMontainDesktop => LanMountainDesktop}/Assets/avalonia-logo.ico (100%) rename {LanMontainDesktop => LanMountainDesktop}/Behaviors/PanelIntroAnimationBehavior.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Behaviors/PopupIntroAnimationBehavior.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/ComponentSystem/BuiltInComponentIds.cs (96%) rename {LanMontainDesktop => LanMountainDesktop}/ComponentSystem/ComponentPlacementRules.cs (94%) rename {LanMontainDesktop => LanMountainDesktop}/ComponentSystem/ComponentRegistry.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/ComponentSystem/DesktopComponentDefinition.cs (87%) rename {LanMontainDesktop => LanMountainDesktop}/ComponentSystem/DesktopComponentResizeMode.cs (61%) rename {LanMontainDesktop => LanMountainDesktop}/ComponentSystem/Extensions/IComponentExtensionProvider.cs (54%) rename {LanMontainDesktop => LanMountainDesktop}/ComponentSystem/Extensions/JsonComponentExtensionProvider.cs (97%) rename {LanMontainDesktop => LanMountainDesktop}/ComponentSystem/README.md (100%) rename {LanMontainDesktop => LanMountainDesktop}/Extensions/Components/README.txt (100%) rename LanMontainDesktop/LanMontainDesktop.csproj => LanMountainDesktop/LanMountainDesktop.csproj (100%) rename {LanMontainDesktop => LanMountainDesktop}/Localization/en-US.json (99%) rename {LanMontainDesktop => LanMountainDesktop}/Localization/zh-CN.json (99%) rename {LanMontainDesktop => LanMountainDesktop}/Models/AppSettingsSnapshot.cs (96%) rename {LanMontainDesktop => LanMountainDesktop}/Models/ClassIslandScheduleModels.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Models/DesktopComponentPlacementSnapshot.cs (90%) rename {LanMontainDesktop => LanMountainDesktop}/Models/ImportedClassScheduleSnapshot.cs (84%) rename {LanMontainDesktop => LanMountainDesktop}/Models/MonetPalette.cs (65%) rename {LanMontainDesktop => LanMountainDesktop}/Models/RecommendationDataModels.cs (88%) rename {LanMontainDesktop => LanMountainDesktop}/Models/StartMenuAppEntry.cs (86%) rename {LanMontainDesktop => LanMountainDesktop}/Models/StartMenuFolderNode.cs (86%) rename {LanMontainDesktop => LanMountainDesktop}/Models/StudyAnalyticsModels.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Models/TaskbarActionId.cs (79%) rename {LanMontainDesktop => LanMountainDesktop}/Models/TaskbarActionItem.cs (78%) rename {LanMontainDesktop => LanMountainDesktop}/Models/TaskbarContext.cs (80%) rename {LanMontainDesktop => LanMountainDesktop}/Models/WeatherDataModels.cs (96%) rename {LanMontainDesktop => LanMountainDesktop}/PACKAGING.md (91%) rename {LanMontainDesktop => LanMountainDesktop}/Program.cs (93%) rename {LanMontainDesktop => LanMountainDesktop}/Services/AppSettingsService.cs (90%) rename {LanMontainDesktop => LanMountainDesktop}/Services/ClassIslandScheduleDataService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/GlassEffectService.cs (97%) rename {LanMontainDesktop => LanMountainDesktop}/Services/HolidayCalendarService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/IAudioRecorderService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/IMusicControlService.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Services/IRecommendationDataService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/IStudyAnalyticsService.cs (92%) rename {LanMontainDesktop => LanMountainDesktop}/Services/IWeatherDataService.cs (91%) rename {LanMontainDesktop => LanMountainDesktop}/Services/LocalizationService.cs (97%) rename {LanMontainDesktop => LanMountainDesktop}/Services/LunarCalendarService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/MonetColorService.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Services/StudyAnalyticsInternals.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/StudyAnalyticsService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/ThemeColorSystemService.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Services/TimeZoneService.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Services/UwpManifestIconResolver.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/WindowsIconService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/WindowsSmtcMusicControlService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Services/WindowsStartMenuService.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Services/XiaomiWeatherService.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Styles/GlassModule.axaml (100%) rename {LanMontainDesktop => LanMountainDesktop}/Styles/SettingsAnimations.axaml (97%) rename {LanMontainDesktop => LanMountainDesktop}/Theme/AppThemePalette.cs (91%) rename {LanMontainDesktop => LanMountainDesktop}/Theme/ColorMath.cs (97%) rename {LanMontainDesktop => LanMountainDesktop}/Theme/ThemeColorContext.cs (70%) rename {LanMontainDesktop => LanMountainDesktop}/ViewLocator.cs (91%) rename {LanMontainDesktop => LanMountainDesktop}/ViewModels/MainWindowViewModel.cs (77%) rename {LanMontainDesktop => LanMountainDesktop}/ViewModels/ViewModelBase.cs (72%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/AnalogClockWidget.axaml (95%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/AnalogClockWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/BrowserWidget.axaml (95%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/BrowserWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/ClassScheduleSettingsWindow.axaml (94%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/ClassScheduleSettingsWindow.axaml.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/ClassScheduleWidget.axaml (94%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/ClassScheduleWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/ClockWidget.axaml (91%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/ClockWidget.axaml.cs (97%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DailyArtworkWidget.axaml (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DailyArtworkWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DailyPoetryWidget.axaml (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DailyPoetryWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DateWidget.axaml (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DateWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DateWidgetSettingsWindow.axaml (83%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DateWidgetSettingsWindow.axaml.cs (66%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/DesktopComponentRuntimeRegistry.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/ExtendedWeatherWidget.axaml (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/ExtendedWeatherWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/HolidayCalendarWidget.axaml (97%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/HolidayCalendarWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/HourlyWeatherWidget.axaml (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/HourlyWeatherWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/HyperOS3WeatherAssetLoader.cs (92%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/HyperOS3WeatherTheme.cs (88%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/IDesktopComponentWidget.cs (85%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/LunarCalendarWidget.axaml (96%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/LunarCalendarWidget.axaml.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/MonthCalendarWidget.axaml (95%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/MonthCalendarWidget.axaml.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/MultiDayWeatherWidget.axaml (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/MultiDayWeatherWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/MusicControlWidget.axaml (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/MusicControlWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/RecordingWidget.axaml (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/RecordingWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/StudyEnvironmentWidget.axaml (95%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/StudyEnvironmentWidget.axaml.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/StudyEnvironmentWidgetSettingsWindow.axaml (93%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/StudyEnvironmentWidgetSettingsWindow.axaml.cs (96%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/StudyNoiseCurveChartControl.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/StudyNoiseCurveWidget.axaml (96%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/StudyNoiseCurveWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/TimerWidget.axaml (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/TimerWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/WeatherClockWidget.axaml (96%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/WeatherClockWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/WeatherTypographyAccessibility.cs (98%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/WeatherWidget.axaml (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/WeatherWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/WhiteboardWidget.axaml (96%) rename {LanMontainDesktop => LanMountainDesktop}/Views/Components/WhiteboardWidget.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/MainWindow.ComponentSystem.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/MainWindow.DesktopPaging.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/MainWindow.Localization.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/MainWindow.Settings.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/MainWindow.axaml (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/MainWindow.axaml.backup (99%) rename {LanMontainDesktop => LanMountainDesktop}/Views/MainWindow.axaml.cs (99%) rename {LanMontainDesktop => LanMountainDesktop}/app.manifest (91%) create mode 100644 LanMountainDesktop/build_output.txt rename LanMontainDesktop/installer/LanMontainDesktop.iss => LanMountainDesktop/installer/LanMountainDesktop.iss (91%) rename {LanMontainDesktop => LanMountainDesktop}/qodana.yaml (100%) rename {LanMontainDesktop => LanMountainDesktop}/scripts/package.ps1 (97%) diff --git a/.github/About_action..md b/.github/About_action..md index f229fdf..d07c5b3 100644 --- a/.github/About_action..md +++ b/.github/About_action..md @@ -1,6 +1,6 @@ -# LanMontainDesktop GitHub Actions CI/CD +# LanMountainDesktop GitHub Actions CI/CD -参考 ClassIsland 项目最佳实践,为 LanMontainDesktop 配置的 GitHub Actions 工作流。 +参考 ClassIsland 项目最佳实践,为 LanMountainDesktop 配置的 GitHub Actions 工作流。 ## 📋 工作流说明 @@ -98,11 +98,11 @@ git push origin v1.0.0 ```bash # 使用现有脚本 -.\LanMontainDesktop\scripts\package.ps1 -RuntimeIdentifier win-x64 +.\LanMountainDesktop\scripts\package.ps1 -RuntimeIdentifier win-x64 # 或用 dotnet 直接构建 dotnet build -c Release -dotnet publish LanMontainDesktop/LanMontainDesktop.csproj ` +dotnet publish LanMountainDesktop/LanMountainDesktop.csproj ` -c Release -r win-x64 -o ./publish/win-x64 ` --self-contained -p:PublishSingleFile=true ``` @@ -118,7 +118,7 @@ chmod +x scripts/build.sh # 或用 dotnet 直接构建 dotnet build -c Release -dotnet publish LanMontainDesktop/LanMontainDesktop.csproj \ +dotnet publish LanMountainDesktop/LanMountainDesktop.csproj \ -c Release -r linux-x64 -o ./publish/linux-x64 \ --self-contained -p:PublishSingleFile=true ``` diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index dab3551..3252a4d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,18 +1,18 @@ -# CODEOWNERS for LanMontainDesktop +# CODEOWNERS for LanMountainDesktop # Default owners for everything * @ # Desktop UI & Components -/LanMontainDesktop/Views/ @ -/LanMontainDesktop/ViewModels/ @ -/LanMontainDesktop/ComponentSystem/ @ -/LanMontainDesktop/Styles/ @ -/LanMontainDesktop/Controls/ @ +/LanMountainDesktop/Views/ @ +/LanMountainDesktop/ViewModels/ @ +/LanMountainDesktop/ComponentSystem/ @ +/LanMountainDesktop/Styles/ @ +/LanMountainDesktop/Controls/ @ # Backend Services -/LanMontainDesktop/Services/ @ -/LanMontainDesktop.RecommendationBackend/ @ +/LanMountainDesktop/Services/ @ +/LanMountainDesktop.RecommendationBackend/ @ # Documentation /docs/ @ @@ -21,4 +21,4 @@ # Build & CI/CD /.github/ @ /scripts/ @ -/LanMontainDesktop/LanMontainDesktop.csproj @ +/LanMountainDesktop/LanMountainDesktop.csproj @ diff --git a/.github/FIX_REPORT.md b/.github/FIX_REPORT.md index a72cff4..b72c5c1 100644 --- a/.github/FIX_REPORT.md +++ b/.github/FIX_REPORT.md @@ -1,4 +1,4 @@ -# 修复报告:GitHub Actions CI/CD +# 修复报告:GitHub Actions CI/CD ## ✅ 问题已解决 @@ -8,16 +8,16 @@ MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file. ``` -**原因**: 项目中缺少 `LanMontainDesktop.sln` 解决方案文件,但工作流尝试执行 `dotnet restore` 而没有指定项目。 +**原因**: 项目中缺少 `LanMountainDesktop.sln` 解决方案文件,但工作流尝试执行 `dotnet restore` 而没有指定项目。 --- ## 🔧 已采取的修复 ### 1. 创建解决方案文件 -✅ 创建了标准的 `LanMontainDesktop.sln` 文件,包含: -- `LanMontainDesktop/LanMontainDesktop.csproj` -- `LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj` +✅ 创建了标准的 `LanMountainDesktop.sln` 文件,包含: +- `LanMountainDesktop/LanMountainDesktop.csproj` +- `LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj` ### 2. 验证本地构建工作 ✅ 本地测试通过: @@ -39,9 +39,9 @@ The current working directory does not contain a project or solution file. 包含两个项目的标准 Visual Studio 解决方案格式: ``` -LanMontainDesktop.sln -├── LanMontainDesktop (Desktop UI - Avalonia) -└── LanMontainDesktop.RecommendationBackend (Web API - ASP.NET Core) +LanMountainDesktop.sln +├── LanMountainDesktop (Desktop UI - Avalonia) +└── LanMountainDesktop.RecommendationBackend (Web API - ASP.NET Core) ``` --- @@ -52,7 +52,7 @@ LanMontainDesktop.sln ```bash # 1. 添加新创建的解决方案文件 -git add LanMontainDesktop.sln +git add LanMountainDesktop.sln # 2. 提交 git commit -m "Add solution file for multi-project structure" @@ -94,7 +94,7 @@ git push origin v1.0.1 | `.github/workflows/code-quality.yml` | 代码质量检查 | ✅ 可用 | | `.github/workflows/release.yml` | 多平台发布 | ✅ 可用 | | `.github/workflows/issue-management.yml` | Issue自动管理 | ✅ 可用 | -| `LanMontainDesktop.sln` | 解决方案文件 | ✅ 已修复 | +| `LanMountainDesktop.sln` | 解决方案文件 | ✅ 已修复 | --- diff --git a/.github/MULTIPLATFORM_BUILD.md b/.github/MULTIPLATFORM_BUILD.md index 7d68f88..56544df 100644 --- a/.github/MULTIPLATFORM_BUILD.md +++ b/.github/MULTIPLATFORM_BUILD.md @@ -1,10 +1,10 @@ -# Multi-Platform Build Guide +# Multi-Platform Build Guide -This document explains how to build LanMontainDesktop for Windows, Linux, and macOS. +This document explains how to build LanMountainDesktop for Windows, Linux, and macOS. ## Overview -LanMontainDesktop supports self-contained builds for: +LanMountainDesktop supports self-contained builds for: - **Windows**: x64 (64-bit) and x86 (32-bit) - **Linux**: x64 only (AppImage/snap support planned) - **macOS**: x64 (Intel) and arm64 (Apple Silicon M1/M2/M3) @@ -67,19 +67,19 @@ brew install dotnet **Windows (x64):** ```powershell # Using the PowerShell script -.\LanMontainDesktop\scripts\package.ps1 ` +.\LanMountainDesktop\scripts\package.ps1 ` -RuntimeIdentifier win-x64 ` -Version 1.0.0 # Or with dotnet directly -dotnet publish LanMontainDesktop/LanMontainDesktop.csproj ` +dotnet publish LanMountainDesktop/LanMountainDesktop.csproj ` -c Release -r win-x64 -o ./publish/win-x64 ` --self-contained -p:PublishSingleFile=true ``` **Windows (x86):** ```powershell -.\LanMontainDesktop\scripts\package.ps1 ` +.\LanMountainDesktop\scripts\package.ps1 ` -RuntimeIdentifier win-x86 ` -Version 1.0.0 ``` @@ -119,8 +119,8 @@ After building, you'll have a self-contained directory with: ``` publish/[rid]/ -├── LanMontainDesktop.exe (Windows) -├── LanMontainDesktop (Linux/macOS - executable) +├── LanMountainDesktop.exe (Windows) +├── LanMountainDesktop (Linux/macOS - executable) ├── libvlc/ (Windows/macOS only) ├── Localization/ (i18n files) ├── Extensions/ (Component extension manifests) @@ -134,7 +134,7 @@ publish/[rid]/ # Create zip package $rid = "win-x64" $version = "1.0.0" -$dir = "LanMontainDesktop-$version-$rid" +$dir = "LanMountainDesktop-$version-$rid" Copy-Item -Path "./publish/$rid" -Destination $dir -Recurse Compress-Archive -Path $dir -DestinationPath "$dir.zip" ``` @@ -144,7 +144,7 @@ Compress-Archive -Path $dir -DestinationPath "$dir.zip" # Create tar.gz package rid=linux-x64 version=1.0.0 -dir="LanMontainDesktop-$version-$rid" +dir="LanMountainDesktop-$version-$rid" mkdir -p $dir cp -r ./publish/$rid/* $dir/ tar -czf "$dir.tar.gz" $dir @@ -218,16 +218,16 @@ tar -czf "$dir.tar.gz" $dir ```bash # Clean and retry -dotnet clean LanMontainDesktop/LanMontainDesktop.csproj +dotnet clean LanMountainDesktop/LanMountainDesktop.csproj dotnet restore -dotnet publish LanMontainDesktop/LanMontainDesktop.csproj -c Release -r win-x64 --self-contained +dotnet publish LanMountainDesktop/LanMountainDesktop.csproj -c Release -r win-x64 --self-contained ``` ### Linux Build Fails ```bash # Check dependencies are installed -ldd ./publish/linux-x64/LanMontainDesktop | grep "not found" +ldd ./publish/linux-x64/LanMountainDesktop | grep "not found" # Install missing libraries sudo apt-get install -y lib[missing-name] diff --git a/.github/README.md b/.github/README.md index 217509c..ff59934 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,8 +1,8 @@ -# LanMontainDesktop +# LanMountainDesktop > 你的桌面,不止一面。 -`LanMontainDesktop` 是一个基于 Avalonia 的桌面壳层项目,目标不是“做一个启动器”,而是把桌面变成可编排的信息与交互空间。 +`LanMountainDesktop` 是一个基于 Avalonia 的桌面壳层项目,目标不是“做一个启动器”,而是把桌面变成可编排的信息与交互空间。 ## 项目定位 - 以网格化布局组织桌面组件,支持多页桌面与组件自由摆放。 @@ -18,10 +18,10 @@ - 本地化:内置 `zh-CN` 与 `en-US` 资源。 ## 工程结构 -- `LanMontainDesktop/`:桌面端主程序(Avalonia)。 -- `LanMontainDesktop.RecommendationBackend/`:推荐内容后端服务(ASP.NET Core Minimal API)。 +- `LanMountainDesktop/`:桌面端主程序(Avalonia)。 +- `LanMountainDesktop.RecommendationBackend/`:推荐内容后端服务(ASP.NET Core Minimal API)。 - `docs/`:视觉与圆角等规范文档。 -- `LanMontainDesktop/ComponentSystem/`:组件定义、注册、放置规则与扩展入口。 +- `LanMountainDesktop/ComponentSystem/`:组件定义、注册、放置规则与扩展入口。 ## 技术栈 - .NET 10(`net10.0`) @@ -33,11 +33,11 @@ ## 扩展机制(摘要) - 组件系统通过 `ComponentRegistry` 合并内置组件与扩展组件。 - 运行时会扫描 `Extensions/Components/*.json`(相对应用输出目录)加载第三方组件清单。 -- 扩展契约与字段说明见组件系统文档:`LanMontainDesktop/ComponentSystem/README.md`。 +- 扩展契约与字段说明见组件系统文档:`LanMountainDesktop/ComponentSystem/README.md`。 ## 当前状态 - 项目包含桌面端与推荐后端两个子项目,并在同一 solution 中维护。 -- 配置默认写入本地:`%LOCALAPPDATA%\LanMontainDesktop\settings.json`。 +- 配置默认写入本地:`%LOCALAPPDATA%\LanMountainDesktop\settings.json`。 - 当前体验以 Windows 为主要目标平台。 ## 运行说明 diff --git a/.github/VERSION_SYNC_INFO.md b/.github/VERSION_SYNC_INFO.md index 3999773..f584443 100644 --- a/.github/VERSION_SYNC_INFO.md +++ b/.github/VERSION_SYNC_INFO.md @@ -1,4 +1,4 @@ -# 版本号自动同步说明 +# 版本号自动同步说明 ## 📋 概述 @@ -48,15 +48,15 @@ sed -i "s/.*<\/Version>/$VERSION<\/Version>/" file.csproj ### 3. 构建和发布 更新后的版本号被用于: - 程序集版本 (`AssemblyVersion`) -- 包文件名 (`LanMontainDesktop-1.0.1-win-x64.zip`) +- 包文件名 (`LanMountainDesktop-1.0.1-win-x64.zip`) - 应用内显示 (About 页面) - GitHub Release 标题 ## 📍 涉及的文件 自动更新的文件: -1. `LanMontainDesktop/LanMontainDesktop.csproj` -2. `LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj` +1. `LanMountainDesktop/LanMountainDesktop.csproj` +2. `LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj` ## ✅ 使用流程 diff --git a/.github/WORKFLOWS_GUIDE.md b/.github/WORKFLOWS_GUIDE.md index 8a32c0f..e21f82e 100644 --- a/.github/WORKFLOWS_GUIDE.md +++ b/.github/WORKFLOWS_GUIDE.md @@ -1,8 +1,8 @@ -# GitHub CI/CD Workflow Setup Guide +# GitHub CI/CD Workflow Setup Guide ## Overview -This document describes the CI/CD workflows configured for LanMontainDesktop. These workflows are designed to maintain code quality, automate testing, and streamline the release process. +This document describes the CI/CD workflows configured for LanMountainDesktop. These workflows are designed to maintain code quality, automate testing, and streamline the release process. ## Workflows @@ -10,7 +10,7 @@ This document describes the CI/CD workflows configured for LanMontainDesktop. Th **Trigger:** Every push/PR to main branches, or manual dispatch **What it does:** -- Builds both LanMontainDesktop and RecommendationBackend in Debug and Release modes +- Builds both LanMountainDesktop and RecommendationBackend in Debug and Release modes - Runs unit tests (if available) - Uploads build artifacts for inspection - Runs on Windows (windows-latest) @@ -54,7 +54,7 @@ QODANA_ENDPOINT=https://qodana.cloud | macOS | x64, arm64 (Apple Silicon) | .tar.gz | ✅ Full support | **Build Scripts:** -- Windows: Uses PowerShell (`LanMontainDesktop\scripts\package.ps1`) +- Windows: Uses PowerShell (`LanMountainDesktop\scripts\package.ps1`) - Linux/macOS: Uses Bash (`scripts/build.sh`) **Usage:** @@ -109,22 +109,22 @@ To align with CI workflows, set up your local environment: dotnet restore # Build (like CI does) -dotnet build LanMontainDesktop/LanMontainDesktop.csproj -dotnet build LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj +dotnet build LanMountainDesktop/LanMountainDesktop.csproj +dotnet build LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj # Format code locally (required by CI) dotnet format # Run tests -dotnet test LanMontainDesktop/LanMontainDesktop.csproj -dotnet test LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj +dotnet test LanMountainDesktop/LanMountainDesktop.csproj +dotnet test LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj # Alternative: Use local build scripts (Linux/macOS) ./scripts/build.sh --rid linux-x64 --version 1.0.0 ./scripts/build.sh --rid osx-x64 --version 1.0.0 # Or on Windows with the PowerShell script -./LanMontainDesktop/scripts/package.ps1 -RuntimeIdentifier win-x64 -Version 1.0.0 +./LanMountainDesktop/scripts/package.ps1 -RuntimeIdentifier win-x64 -Version 1.0.0 ``` ### Cross-Platform Build Scripts @@ -150,10 +150,10 @@ chmod +x scripts/build.sh **Windows:** ```powershell # Using PowerShell script -.\LanMontainDesktop\scripts\package.ps1 -RuntimeIdentifier win-x64 -Version 1.0.0 +.\LanMountainDesktop\scripts\package.ps1 -RuntimeIdentifier win-x64 -Version 1.0.0 # Or use dotnet directly -dotnet publish LanMontainDesktop/LanMontainDesktop.csproj ` +dotnet publish LanMountainDesktop/LanMountainDesktop.csproj ` -c Release -r win-x64 -o ./publish/win-x64 ` -p:PublishSingleFile=true --self-contained ``` @@ -210,7 +210,7 @@ git push origin v1.0.0 ### Status Badge Add to your README.md: ```markdown -![Build Status](https://github.com/YOUR_ORG/LanMontainDesktop/workflows/Build%20&%20Test/badge.svg) +![Build Status](https://github.com/YOUR_ORG/LanMountainDesktop/workflows/Build%20&%20Test/badge.svg) ``` ### Check Workflow Status diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f346f4..37db630 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,4 +1,4 @@ -name: Build +name: Build on: push: @@ -7,7 +7,7 @@ on: env: DOTNET_VERSION: '10.0.x' - Solution_Name: LanMontainDesktop.sln + Solution_Name: LanMountainDesktop.sln jobs: build-windows: @@ -41,8 +41,8 @@ jobs: with: name: build-windows-${{ matrix.configuration }} path: | - LanMontainDesktop/bin/${{ matrix.configuration }}/ - LanMontainDesktop.RecommendationBackend/bin/${{ matrix.configuration }}/ + LanMountainDesktop/bin/${{ matrix.configuration }}/ + LanMountainDesktop.RecommendationBackend/bin/${{ matrix.configuration }}/ retention-days: 7 build-linux: @@ -80,8 +80,8 @@ jobs: with: name: build-linux path: | - LanMontainDesktop/bin/Release/ - LanMontainDesktop.RecommendationBackend/bin/Release/ + LanMountainDesktop/bin/Release/ + LanMountainDesktop.RecommendationBackend/bin/Release/ retention-days: 7 build-macos: @@ -111,6 +111,6 @@ jobs: with: name: build-macos path: | - LanMontainDesktop/bin/Release/ - LanMontainDesktop.RecommendationBackend/bin/Release/ + LanMountainDesktop/bin/Release/ + LanMountainDesktop.RecommendationBackend/bin/Release/ retention-days: 7 diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index ed193f7..16a69fb 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -1,4 +1,4 @@ -name: Quality Check +name: Quality Check on: pull_request: @@ -8,7 +8,7 @@ on: env: DOTNET_VERSION: '10.0.x' - Solution_Name: LanMontainDesktop.sln + Solution_Name: LanMountainDesktop.sln jobs: analyze: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 82059f9..281e747 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Release +name: Release on: push: @@ -18,7 +18,7 @@ on: env: DOTNET_VERSION: '10.0.x' - Solution_Name: LanMontainDesktop.sln + Solution_Name: LanMountainDesktop.sln jobs: prepare: @@ -65,8 +65,8 @@ jobs: run: | $VERSION = "${{ needs.prepare.outputs.version }}" $csprojFiles = @( - "LanMontainDesktop/LanMontainDesktop.csproj", - "LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj" + "LanMountainDesktop/LanMountainDesktop.csproj", + "LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj" ) foreach ($csprojPath in $csprojFiles) { @@ -85,7 +85,7 @@ jobs: - name: Publish run: | - dotnet publish LanMontainDesktop/LanMontainDesktop.csproj ` + dotnet publish LanMountainDesktop/LanMountainDesktop.csproj ` -c Release ` -o ./publish/windows-${{ matrix.arch }} ` --self-contained ` @@ -99,7 +99,7 @@ jobs: $version = "${{ needs.prepare.outputs.version }}" $arch = "${{ matrix.arch }}" $source = "publish/windows-$arch" - $package = "LanMontainDesktop-$version-win-$arch" + $package = "LanMountainDesktop-$version-win-$arch" New-Item -ItemType Directory -Path "$package" -Force | Out-Null Copy-Item -Path "$source/*" -Destination "$package" -Recurse -Force @@ -112,7 +112,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: release-windows-${{ matrix.arch }} - path: LanMontainDesktop-*.zip + path: LanMountainDesktop-*.zip retention-days: 30 build-linux: @@ -145,11 +145,11 @@ jobs: - name: Update version in .csproj run: | VERSION="${{ needs.prepare.outputs.version }}" - echo "Updating version in LanMontainDesktop.csproj to $VERSION" - sed -i "s/.*<\/Version>/$VERSION<\/Version>/" LanMontainDesktop/LanMontainDesktop.csproj + echo "Updating version in LanMountainDesktop.csproj to $VERSION" + sed -i "s/.*<\/Version>/$VERSION<\/Version>/" LanMountainDesktop/LanMountainDesktop.csproj - echo "Updating version in LanMontainDesktop.RecommendationBackend.csproj to $VERSION" - sed -i "s/.*<\/Version>/$VERSION<\/Version>/" LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj + echo "Updating version in LanMountainDesktop.RecommendationBackend.csproj to $VERSION" + sed -i "s/.*<\/Version>/$VERSION<\/Version>/" LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj - name: Restore run: dotnet restore ${{ env.Solution_Name }} @@ -159,7 +159,7 @@ jobs: - name: Publish run: | - dotnet publish LanMontainDesktop/LanMontainDesktop.csproj \ + dotnet publish LanMountainDesktop/LanMountainDesktop.csproj \ -c Release \ -o ./publish/linux-x64 \ --self-contained \ @@ -171,7 +171,7 @@ jobs: run: | version="${{ needs.prepare.outputs.version }}" source="publish/linux-x64" - package_name="lanmontaindesktop" + package_name="LanMountainDesktop" package_version="${version}" arch="amd64" @@ -195,7 +195,7 @@ jobs: EOF # Set proper permissions - chmod 755 "build-deb/usr/local/bin/LanMontainDesktop" + chmod 755 "build-deb/usr/local/bin/LanMountainDesktop" # Create DEB file dpkg-deb --build "build-deb" "${package_name}_${package_version}_${arch}.deb" @@ -233,11 +233,11 @@ jobs: - name: Update version in .csproj run: | VERSION="${{ needs.prepare.outputs.version }}" - echo "Updating version in LanMontainDesktop.csproj to $VERSION" - sed -i '' "s/.*<\/Version>/$VERSION<\/Version>/" LanMontainDesktop/LanMontainDesktop.csproj + echo "Updating version in LanMountainDesktop.csproj to $VERSION" + sed -i '' "s/.*<\/Version>/$VERSION<\/Version>/" LanMountainDesktop/LanMountainDesktop.csproj - echo "Updating version in LanMontainDesktop.RecommendationBackend.csproj to $VERSION" - sed -i '' "s/.*<\/Version>/$VERSION<\/Version>/" LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj + echo "Updating version in LanMountainDesktop.RecommendationBackend.csproj to $VERSION" + sed -i '' "s/.*<\/Version>/$VERSION<\/Version>/" LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj - name: Restore run: dotnet restore ${{ env.Solution_Name }} @@ -247,7 +247,7 @@ jobs: - name: Publish run: | - dotnet publish LanMontainDesktop/LanMontainDesktop.csproj \ + dotnet publish LanMountainDesktop/LanMountainDesktop.csproj \ -c Release \ -o ./publish/macos-${{ matrix.arch }} \ --self-contained \ @@ -260,7 +260,7 @@ jobs: version="${{ needs.prepare.outputs.version }}" arch="${{ matrix.arch }}" source="publish/macos-$arch" - app_name="LanMontainDesktop" + app_name="LanMountainDesktop" package_name="${app_name}-${version}-macos-${arch}" # Create app bundle structure @@ -277,7 +277,7 @@ jobs: CFBundleExecutable - LanMontainDesktop + LanMountainDesktop CFBundleName LanMountain Desktop CFBundleVersion diff --git a/LanMontainDesktop/build_output.txt b/LanMontainDesktop/build_output.txt deleted file mode 100644 index 939e81a60e11657173b0c5b929e714d1d5ca947a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmezWPk}*!;cles|E#>Vb$cGxm4=qo`iIs;F9R1)odUzw z$!io&OcsdbHPD>0=b>Nzk;&4J%<>LR&P$q@Ej_g^=1B%;)WbB8{w;-T6cGA+7!n!s z7fn*7goe88}7*ZLE8M1-=e1-y`*}4pNK+>7PiXny}6eyF*Py{4F>|h30h9Cw* z1`7rwAhcjG2a37?btN;DGUNi)fy@M{bO)MS!r%cEO#<==+ew_7B(Q5iHl_m2EoDdt znwPtJ9J xApbCWG9nxiG9C}SQrk-)G7$50np08_PZo{%p8?Ws01QVMX##Ym3DC75bpTkvbTj|} diff --git a/LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj b/LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj similarity index 100% rename from LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj rename to LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj diff --git a/LanMontainDesktop.RecommendationBackend/Models/RecommendationDataModels.cs b/LanMountainDesktop.RecommendationBackend/Models/RecommendationDataModels.cs similarity index 94% rename from LanMontainDesktop.RecommendationBackend/Models/RecommendationDataModels.cs rename to LanMountainDesktop.RecommendationBackend/Models/RecommendationDataModels.cs index ae994b7..0597b61 100644 --- a/LanMontainDesktop.RecommendationBackend/Models/RecommendationDataModels.cs +++ b/LanMountainDesktop.RecommendationBackend/Models/RecommendationDataModels.cs @@ -1,7 +1,7 @@ -using System; +using System; using System.Collections.Generic; -namespace LanMontainDesktop.RecommendationBackend.Models; +namespace LanMountainDesktop.RecommendationBackend.Models; public sealed record DailyQuoteSnapshot( string Provider, diff --git a/LanMontainDesktop.RecommendationBackend/Program.cs b/LanMountainDesktop.RecommendationBackend/Program.cs similarity index 96% rename from LanMontainDesktop.RecommendationBackend/Program.cs rename to LanMountainDesktop.RecommendationBackend/Program.cs index decac87..aa55e3a 100644 --- a/LanMontainDesktop.RecommendationBackend/Program.cs +++ b/LanMountainDesktop.RecommendationBackend/Program.cs @@ -1,5 +1,5 @@ -using System; -using LanMontainDesktop.RecommendationBackend.Services; +using System; +using LanMountainDesktop.RecommendationBackend.Services; var builder = WebApplication.CreateBuilder(args); @@ -13,7 +13,7 @@ var app = builder.Build(); app.MapGet("/health", () => Results.Ok(new { - service = "LanMontainDesktop.RecommendationBackend", + service = "LanMountainDesktop.RecommendationBackend", status = "ok", timestamp = DateTimeOffset.UtcNow })); diff --git a/LanMontainDesktop.RecommendationBackend/Properties/launchSettings.json b/LanMountainDesktop.RecommendationBackend/Properties/launchSettings.json similarity index 100% rename from LanMontainDesktop.RecommendationBackend/Properties/launchSettings.json rename to LanMountainDesktop.RecommendationBackend/Properties/launchSettings.json diff --git a/LanMontainDesktop.RecommendationBackend/README.md b/LanMountainDesktop.RecommendationBackend/README.md similarity index 87% rename from LanMontainDesktop.RecommendationBackend/README.md rename to LanMountainDesktop.RecommendationBackend/README.md index cb1da8a..f1df2c3 100644 --- a/LanMontainDesktop.RecommendationBackend/README.md +++ b/LanMountainDesktop.RecommendationBackend/README.md @@ -1,4 +1,4 @@ -# LanMontainDesktop Recommendation Backend +# LanMountainDesktop Recommendation Backend 信息推荐后端,提供统一抓取与聚合接口,当前覆盖: - 每日一言 @@ -10,7 +10,7 @@ ## 启动 ```bash -dotnet run --project LanMontainDesktop.RecommendationBackend/LanMontainDesktop.RecommendationBackend.csproj +dotnet run --project LanMountainDesktop.RecommendationBackend/LanMountainDesktop.RecommendationBackend.csproj ``` 默认监听地址以 `dotnet` 输出为准(通常是 `http://localhost:5xxx` 或 `https://localhost:7xxx`)。 diff --git a/LanMontainDesktop.RecommendationBackend/Services/IRecommendationDataService.cs b/LanMountainDesktop.RecommendationBackend/Services/IRecommendationDataService.cs similarity index 94% rename from LanMontainDesktop.RecommendationBackend/Services/IRecommendationDataService.cs rename to LanMountainDesktop.RecommendationBackend/Services/IRecommendationDataService.cs index 8e1f1c2..cf814d6 100644 --- a/LanMontainDesktop.RecommendationBackend/Services/IRecommendationDataService.cs +++ b/LanMountainDesktop.RecommendationBackend/Services/IRecommendationDataService.cs @@ -1,9 +1,9 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; -using LanMontainDesktop.RecommendationBackend.Models; +using LanMountainDesktop.RecommendationBackend.Models; -namespace LanMontainDesktop.RecommendationBackend.Services; +namespace LanMountainDesktop.RecommendationBackend.Services; public sealed record DailyQuoteQuery( string? Locale = null, diff --git a/LanMontainDesktop.RecommendationBackend/Services/RecommendationDataService.cs b/LanMountainDesktop.RecommendationBackend/Services/RecommendationDataService.cs similarity index 99% rename from LanMontainDesktop.RecommendationBackend/Services/RecommendationDataService.cs rename to LanMountainDesktop.RecommendationBackend/Services/RecommendationDataService.cs index 7a3e9b0..0fc982d 100644 --- a/LanMontainDesktop.RecommendationBackend/Services/RecommendationDataService.cs +++ b/LanMountainDesktop.RecommendationBackend/Services/RecommendationDataService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -8,9 +8,9 @@ using System.Text.Json; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; -using LanMontainDesktop.RecommendationBackend.Models; +using LanMountainDesktop.RecommendationBackend.Models; -namespace LanMontainDesktop.RecommendationBackend.Services; +namespace LanMountainDesktop.RecommendationBackend.Services; public sealed record RecommendationApiOptions { diff --git a/LanMontainDesktop.RecommendationBackend/appsettings.Development.json b/LanMountainDesktop.RecommendationBackend/appsettings.Development.json similarity index 100% rename from LanMontainDesktop.RecommendationBackend/appsettings.Development.json rename to LanMountainDesktop.RecommendationBackend/appsettings.Development.json diff --git a/LanMontainDesktop.RecommendationBackend/appsettings.json b/LanMountainDesktop.RecommendationBackend/appsettings.json similarity index 100% rename from LanMontainDesktop.RecommendationBackend/appsettings.json rename to LanMountainDesktop.RecommendationBackend/appsettings.json diff --git a/LanMontainDesktop.sln b/LanMountainDesktop.sln similarity index 73% rename from LanMontainDesktop.sln rename to LanMountainDesktop.sln index 15a252c..ac0f32a 100644 --- a/LanMontainDesktop.sln +++ b/LanMountainDesktop.sln @@ -1,11 +1,11 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LanMontainDesktop", "LanMontainDesktop\LanMontainDesktop.csproj", "{00000001-0000-0000-0000-000000000001}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LanMountainDesktop", "LanMountainDesktop\LanMountainDesktop.csproj", "{00000001-0000-0000-0000-000000000001}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LanMontainDesktop.RecommendationBackend", "LanMontainDesktop.RecommendationBackend\LanMontainDesktop.RecommendationBackend.csproj", "{00000002-0000-0000-0000-000000000002}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LanMountainDesktop.RecommendationBackend", "LanMountainDesktop.RecommendationBackend\LanMountainDesktop.RecommendationBackend.csproj", "{00000002-0000-0000-0000-000000000002}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/LanMontainDesktop/.github/workflows/windows-ci.yml b/LanMountainDesktop/.github/workflows/windows-ci.yml similarity index 91% rename from LanMontainDesktop/.github/workflows/windows-ci.yml rename to LanMountainDesktop/.github/workflows/windows-ci.yml index 95098d7..886147c 100644 --- a/LanMontainDesktop/.github/workflows/windows-ci.yml +++ b/LanMountainDesktop/.github/workflows/windows-ci.yml @@ -1,4 +1,4 @@ -name: Desktop CI +name: Desktop CI on: push: @@ -20,7 +20,7 @@ concurrency: env: DOTNET_VERSION: "10.0.x" - PROJECT_PATH: "LanMontainDesktop.csproj" + PROJECT_PATH: "LanMountainDesktop.csproj" jobs: validate: @@ -114,17 +114,17 @@ jobs: - name: Windows runner: windows-latest rid: win-x64 - artifact_name: LanMontainDesktop-Setup + artifact_name: LanMountainDesktop-Setup artifact_path: artifacts/installer/*.exe - name: Linux runner: ubuntu-latest rid: linux-x64 - artifact_name: LanMontainDesktop-linux-x64 + artifact_name: LanMountainDesktop-linux-x64 artifact_path: artifacts/packages/*linux-x64*.zip - name: macOS runner: macos-latest rid: osx-x64 - artifact_name: LanMontainDesktop-osx-x64 + artifact_name: LanMountainDesktop-osx-x64 artifact_path: artifacts/packages/*osx-x64*.zip permissions: contents: read @@ -176,7 +176,7 @@ jobs: if: matrix.rid == 'win-x64' uses: actions/upload-artifact@v4 with: - name: LanMontainDesktop-Publish-win-x64-${{ needs.resolve_version.outputs.value }} + name: LanMountainDesktop-Publish-win-x64-${{ needs.resolve_version.outputs.value }} path: artifacts/publish/win-x64/** if-no-files-found: error @@ -193,19 +193,19 @@ jobs: - name: Download Windows Installer Artifact uses: actions/download-artifact@v4 with: - name: LanMontainDesktop-Setup-${{ needs.resolve_version.outputs.value }} + name: LanMountainDesktop-Setup-${{ needs.resolve_version.outputs.value }} path: release-assets/windows - name: Download Linux Package Artifact uses: actions/download-artifact@v4 with: - name: LanMontainDesktop-linux-x64-${{ needs.resolve_version.outputs.value }} + name: LanMountainDesktop-linux-x64-${{ needs.resolve_version.outputs.value }} path: release-assets/linux - name: Download macOS Package Artifact uses: actions/download-artifact@v4 with: - name: LanMontainDesktop-osx-x64-${{ needs.resolve_version.outputs.value }} + name: LanMountainDesktop-osx-x64-${{ needs.resolve_version.outputs.value }} path: release-assets/macos - name: Attach Artifacts diff --git a/LanMontainDesktop/App.axaml b/LanMountainDesktop/App.axaml similarity index 83% rename from LanMontainDesktop/App.axaml rename to LanMountainDesktop/App.axaml index aacd6e5..b8408e9 100644 --- a/LanMontainDesktop/App.axaml +++ b/LanMountainDesktop/App.axaml @@ -1,14 +1,14 @@ - - avares://LanMontainDesktop/Assets/Fonts#MiSans + avares://LanMountainDesktop/Assets/Fonts#MiSans @@ -17,8 +17,8 @@ - - + +