.config/dotnet-tools.json
+8
-1
diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 23d3744..c508dbf 100644
@@ -8,6 +8,13 @@
"csharpier"
],
"rollForward": false
},
"microsoft.web.librarymanager.cli": {
"version": "3.0.71",
"commands": [
"libman"
],
"rollForward": false
}
}
}
}
\ No newline at end of file
.containerfile
+5
-1
diff --git a/.containerfile b/.containerfile
index f0a4164..52fd1eb 100644
@@ -6,6 +6,9 @@ RUN apt-get update && apt-get install -y build-essential curl
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y
ENV PATH="/root/.cargo/bin:${PATH}"
COPY ./.config/ ./.config/
RUN dotnet tool restore
COPY ./GitBrowser.SyntaxHighlighter/GitBrowser.SyntaxHighlighter.csproj ./GitBrowser.SyntaxHighlighter/
COPY ./GitBrowser.SyntaxHighlighter/packages.lock.json ./GitBrowser.SyntaxHighlighter/
COPY ./GitBrowser.SyntaxHighlighter/Cargo.toml ./GitBrowser.SyntaxHighlighter/
@@ -14,8 +17,9 @@ RUN mkdir ./GitBrowser.SyntaxHighlighter/src && touch ./GitBrowser.SyntaxHighlig
RUN cargo build --release --locked --manifest-path ./GitBrowser.SyntaxHighlighter/Cargo.toml
COPY ./GitBrowser.slnx ./global.json ./Directory.Packages.props ./Directory.Build.props ./.gitignore ./.editorconfig ./
COPY ./GitBrowser/GitBrowser.csproj ./GitBrowser/packages.lock.json ./GitBrowser/
COPY ./GitBrowser/GitBrowser.csproj ./GitBrowser/packages.lock.json ./GitBrowser/libman.json ./GitBrowser/
RUN cd ./GitBrowser && dotnet libman restore && cd ..
RUN dotnet restore --locked-mode
COPY ./GitBrowser.SyntaxHighlighter ./GitBrowser.SyntaxHighlighter
GitBrowser/Components/App.razor
+2
-2
diff --git a/GitBrowser/Components/App.razor b/GitBrowser/Components/App.razor
index 27a233f..95ddd16 100644
@@ -12,8 +12,8 @@
<script type="importmap">
{
"imports": {
"three": "/js/vendor/three.module.js",
"three/addons/": "/js/vendor/"
"three": "/js/vendor/three/build/three.module.min.js",
"three/examples/": "/js/vendor/three/examples/jsm/"
}
}
</script>
GitBrowser/GitBrowser.csproj
+0
-1
diff --git a/GitBrowser/GitBrowser.csproj b/GitBrowser/GitBrowser.csproj
index 13b4be3..a3506b8 100644
@@ -14,5 +14,4 @@
<ItemGroup>
<ProjectReference Include="..\GitBrowser.SyntaxHighlighter\GitBrowser.SyntaxHighlighter.csproj" />
</ItemGroup>
<Import Project="GitBrowser.targets" />
</Project>
GitBrowser/GitBrowser.targets
+0
-64
diff --git a/GitBrowser/GitBrowser.targets b/GitBrowser/GitBrowser.targets
deleted file mode 100644
index 9905042..0000000
@@ -1,64 +0,0 @@
<Project>
<!-- Download Three.js to source wwwroot directory -->
<Target Name="DownloadThreeJs" BeforeTargets="Build">
<PropertyGroup>
<ThreeJsVersion>0.170.0</ThreeJsVersion>
<VendorDir>$(MSBuildProjectDirectory)\wwwroot\js\vendor</VendorDir>
<ThreeJsFile>$(VendorDir)\three.module.js</ThreeJsFile>
<GLTFLoaderFile>$(VendorDir)\loaders\GLTFLoader.js</GLTFLoaderFile>
<BufferGeometryUtilsFile>$(VendorDir)\utils\BufferGeometryUtils.js</BufferGeometryUtilsFile>
<ThreeJsUrl>https://cdn.jsdelivr.net/npm/three@$(ThreeJsVersion)/build/three.module.js</ThreeJsUrl>
<GLTFLoaderUrl>https://cdn.jsdelivr.net/npm/three@$(ThreeJsVersion)/examples/jsm/loaders/GLTFLoader.js</GLTFLoaderUrl>
<BufferGeometryUtilsUrl>https://cdn.jsdelivr.net/npm/three@$(ThreeJsVersion)/examples/jsm/utils/BufferGeometryUtils.js</BufferGeometryUtilsUrl>
</PropertyGroup>
<!-- Download Three.js core library -->
<Message
Text="Downloading three.module.js to $(VendorDir)..."
Importance="high"
Condition="!Exists('$(ThreeJsFile)')"
/>
<DownloadFile
SourceUrl="$(ThreeJsUrl)"
DestinationFolder="$(VendorDir)"
DestinationFileName="three.module.js"
Condition="!Exists('$(ThreeJsFile)')"
/>
<!-- Download GLTFLoader -->
<Message
Text="Downloading GLTFLoader.js to $(VendorDir)\loader..."
Importance="high"
Condition="!Exists('$(GLTFLoaderFile)')"
/>
<DownloadFile
SourceUrl="$(GLTFLoaderUrl)"
DestinationFolder="$(VendorDir)\loaders"
DestinationFileName="GLTFLoader.js"
Condition="!Exists('$(GLTFLoaderFile)')"
/>
<!-- Download BufferGeometryUtils -->
<Message
Text="Downloading BufferGeometryUtils.js to $(VendorDir)\utils..."
Importance="high"
Condition="!Exists('$(BufferGeometryUtilsFile)')"
/>
<DownloadFile
SourceUrl="$(BufferGeometryUtilsUrl)"
DestinationFolder="$(VendorDir)\utils"
DestinationFileName="BufferGeometryUtils.js"
Condition="!Exists('$(BufferGeometryUtilsFile)')"
/>
<!-- Verify all files exist, fail build if any are missing -->
<Error
Text="Failed to download three.module.js from $(ThreeJsUrl)."
Condition="!Exists('$(ThreeJsFile)')"
/>
<Error
Text="Failed to download GLTFLoader.js from $(GLTFLoaderUrl)."
Condition="!Exists('$(GLTFLoaderFile)')"
/>
<Error
Text="Failed to download BufferGeometryUtils.js from $(BufferGeometryUtilsUrl)."
Condition="!Exists('$(BufferGeometryUtilsFile)')"
/>
</Target>
</Project>
GitBrowser/libman.json
+16
-0
diff --git a/GitBrowser/libman.json b/GitBrowser/libman.json
new file mode 100644
index 0000000..2979159
@@ -0,0 +1,16 @@
{
"version": "3.0",
"defaultProvider": "jsdelivr",
"libraries": [
{
"library": "three@0.181.2",
"destination": "wwwroot/js/vendor/three",
"files": [
"build/three.module.min.js",
"build/three.core.min.js",
"examples/jsm/loaders/GLTFLoader.js",
"examples/jsm/utils/BufferGeometryUtils.js"
]
}
]
}
GitBrowser/wwwroot/cardboard-box.svg
+0
-14
diff --git a/GitBrowser/wwwroot/cardboard-box.svg b/GitBrowser/wwwroot/cardboard-box.svg
deleted file mode 100644
index 0e2c1a7..0000000
@@ -1,14 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
<!-- Box outline - isometric 3/4 view -->
<!-- Left face -->
<path d="M2 5 L2 12 L8 14 L8 7 Z" fill="none"/>
<!-- Right face -->
<path d="M8 7 L8 14 L14 12 L14 5 Z" fill="none"/>
<!-- Top face -->
<path d="M2 5 L8 3 L14 5 L8 7 Z" fill="none"/>
<!-- Top flap detail (cardboard box characteristic) -->
<path d="M5 4 L5 6.5"/>
<path d="M11 4 L11 6.5"/>
<!-- Center seam on top -->
<path d="M8 3 L8 7"/>
</svg>
GitBrowser/wwwroot/js/logo3d.js
+1
-1
diff --git a/GitBrowser/wwwroot/js/logo3d.js b/GitBrowser/wwwroot/js/logo3d.js
index ec345c1..87db2e0 100644
@@ -2,7 +2,7 @@
// Singleton pattern - models loaded once, reused across Blazor navigation
import * as THREE from "three";
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
import { GLTFLoader } from "three/examples/loaders/GLTFLoader.js";
// === SINGLETON STATE ===
const state = {