前端极简黑白重设计,并纳入客户端注册、站点设置与后台相关改动

- storefront 全站改为极简黑白配色:直角、细线分隔、卡片 hover 浅底、深色模式(跟随系统+手动切换)
- 抽出 storefront/partials/card 复用卡片
- 一并提交此前暂存的客户端注册 API、站点设置、后台页面与测试

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
浪子
2026-09-22 08:35:49 +08:00
parent 62cffc6f5f
commit 04a2034975
41 changed files with 3447 additions and 658 deletions
@@ -96,6 +96,52 @@ class VersionPublishServiceTest extends TestCase
app(VersionPublishService::class)->publishFromZip($package, $uploadedFile, []);
}
public function test_manifest_validation_allows_lowercase_theme_slug(): void
{
$package = Package::query()->create([
'type' => 'theme',
'slug' => 'clarity',
'name' => 'Clarity',
'summary' => '',
'description' => '',
'author' => '',
'homepage' => '',
'icon_url' => '',
'license' => '',
'status' => 'draft',
'is_featured' => false,
'sort_order' => 0,
'download_count' => 0,
'latest_version' => '',
]);
$manifest = [
'schema_version' => '1.0',
'type' => 'theme',
'slug' => 'clarity',
'name' => 'Clarity',
'author' => 'Author',
'version' => '1.5.0',
'compatibility' => [
'typecho_min' => '1.2.0',
'php_min' => '8.0',
],
'install' => [
'root_dir' => 'clarity',
'target_dir' => 'usr/themes/clarity',
],
'package' => [
'sha256' => str_repeat('a', 64),
],
];
$method = new \ReflectionMethod(VersionPublishService::class, 'validateManifest');
$method->setAccessible(true);
$method->invoke(app(VersionPublishService::class), $manifest, $package, str_repeat('a', 64));
$this->assertTrue(true);
}
protected function tearDown(): void
{
foreach ($this->temporaryZipPaths as $path) {