init
This commit is contained in:
commit
21e7d37205
15 changed files with 997 additions and 0 deletions
105
flake.nix
Normal file
105
flake.nix
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
{
|
||||
description = "C-base Website Clone - Pure Nix Web Development";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, flake-utils }:
|
||||
flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
|
||||
# Import our core modules
|
||||
html = import ./src/core/html.nix { inherit pkgs; };
|
||||
css = import ./src/core/css.nix { inherit pkgs; };
|
||||
components = import ./src/core/components.nix { inherit pkgs html css; };
|
||||
content = import ./src/data/content.nix;
|
||||
|
||||
siteData = import ./src/pages/index.nix { inherit components content; };
|
||||
stylesData = import ./src/styles/main.nix;
|
||||
|
||||
# Generate the complete website
|
||||
generateSite = pkgs.writeShellScriptBin "generate-site" ''
|
||||
echo "🚀 Generating C-base clone with Nix..."
|
||||
|
||||
# Create output directory
|
||||
mkdir -p dist
|
||||
|
||||
# Generate HTML directly from Nix evaluation
|
||||
cat > dist/index.html << 'EOF'
|
||||
<!DOCTYPE html>
|
||||
${siteData.html}
|
||||
EOF
|
||||
|
||||
# Generate CSS directly from Nix evaluation
|
||||
cat > dist/styles.css << 'EOF'
|
||||
${stylesData.css}
|
||||
EOF
|
||||
|
||||
# Create session tracking directory
|
||||
mkdir -p ai/sessions
|
||||
|
||||
# Log build session
|
||||
echo "{\"timestamp\": \"$(date -Iseconds)\", \"buildTime\": \"$(date +%s)\", \"status\": \"success\"}" > ai/sessions/build-session-$(date +%Y-%m-%d).json
|
||||
|
||||
echo "✅ Site generated in ./dist/"
|
||||
echo "📁 Files created:"
|
||||
echo " - dist/index.html"
|
||||
echo " - dist/styles.css"
|
||||
'';
|
||||
|
||||
# Development server
|
||||
devServer = pkgs.writeShellScriptBin "dev-server" ''
|
||||
echo "🔧 Starting development server..."
|
||||
|
||||
# Generate site first
|
||||
${generateSite}/bin/generate-site
|
||||
|
||||
# Start simple HTTP server
|
||||
cd dist
|
||||
echo "🌐 Server running at http://localhost:8000"
|
||||
echo "📱 Open your browser and navigate to the URL above"
|
||||
${pkgs.python3}/bin/python -m http.server 8000
|
||||
'';
|
||||
|
||||
in {
|
||||
packages = {
|
||||
default = generateSite;
|
||||
generate = generateSite;
|
||||
dev = devServer;
|
||||
site = pkgs.stdenv.mkDerivation {
|
||||
name = "c-base-site";
|
||||
src = ./.;
|
||||
buildPhase = ''
|
||||
mkdir -p $out
|
||||
echo '<!DOCTYPE html>${siteData.html}' > $out/index.html
|
||||
echo '${stylesData.css}' > $out/styles.css
|
||||
'';
|
||||
installPhase = "true";
|
||||
};
|
||||
};
|
||||
|
||||
devShells.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
nix
|
||||
jq
|
||||
python3
|
||||
nodejs
|
||||
];
|
||||
|
||||
shellHook = ''
|
||||
export PATH="${generateSite}/bin:${devServer}/bin:$PATH"
|
||||
echo "🌟 C-base Nix Web Development Environment"
|
||||
echo "Commands:"
|
||||
echo " generate-site - Generate static site"
|
||||
echo " dev-server - Start development server"
|
||||
echo " nix run .#generate - Generate static site"
|
||||
echo " nix run .#dev - Start development server"
|
||||
echo ""
|
||||
echo "Session tracking enabled in ./ai/ directory"
|
||||
'';
|
||||
};
|
||||
});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue