commit b27b4da3f2fb5c8d5e7f172b368ab0416df08169 Author: Janis Hutz Date: Fri Apr 3 15:36:12 2026 +0200 Finish migrate to new repo diff --git a/.gitea/workflows/build-push-beta.yml b/.gitea/workflows/build-push-beta.yml new file mode 100644 index 0000000..f44f32b --- /dev/null +++ b/.gitea/workflows/build-push-beta.yml @@ -0,0 +1,26 @@ +on: + - push + - workflow_dispatch +name: Build and upload website update +jobs: + build-upload: + name: build-and-upload + runs-on: ubuntu-latest + steps: + - name: Pull repo + uses: actions/checkout@v6 + with: + ref: main + - name: Run node build + uses: actions/node-action@main + with: + script: 'build.js' + - name: Push changes to webserver + uses: actions/ftp-deploy@v4.3.6 + with: + server: ${{ vars.FTP_URL }} + username: ${{ vars.FTP_USERNAME }} + password: ${{ secrets.FTP_PASSWORD }} + local-dir: dist/ + dry-run: true + server-dir: domains/beta.janishutz.com/public_html/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..16acd49 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +dist +package-lock.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..d44eaa0 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +
+ +

janishutz.com

+
+ +This is the source code for my personal website. Check it out [here](https://janishutz.com). + +As any custom website is, this one is also written entirely in HTML, CSS and JavaScript and now doesn't even use any external libraries (apart from my own) + +# Building +cd to the site directory and run `node build.js` diff --git a/assets/apple-touch-icon.png b/assets/apple-touch-icon.png new file mode 100644 index 0000000..63b588f Binary files /dev/null and b/assets/apple-touch-icon.png differ diff --git a/assets/favicon-96x96.png b/assets/favicon-96x96.png new file mode 100644 index 0000000..1b71373 Binary files /dev/null and b/assets/favicon-96x96.png differ diff --git a/assets/favicon.ico b/assets/favicon.ico new file mode 100644 index 0000000..91a6156 Binary files /dev/null and b/assets/favicon.ico differ diff --git a/assets/favicon.svg b/assets/favicon.svg new file mode 100644 index 0000000..3c83771 --- /dev/null +++ b/assets/favicon.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/assets/home/conductorcalc-mobile.jpg b/assets/home/conductorcalc-mobile.jpg new file mode 100644 index 0000000..e6613b9 Binary files /dev/null and b/assets/home/conductorcalc-mobile.jpg differ diff --git a/assets/home/conductorcalc-mobile.xcf b/assets/home/conductorcalc-mobile.xcf new file mode 100644 index 0000000..c210a45 Binary files /dev/null and b/assets/home/conductorcalc-mobile.xcf differ diff --git a/assets/home/conductorcalc.jpg b/assets/home/conductorcalc.jpg new file mode 100644 index 0000000..98ef353 Binary files /dev/null and b/assets/home/conductorcalc.jpg differ diff --git a/assets/home/foss-mobile.jpg b/assets/home/foss-mobile.jpg new file mode 100644 index 0000000..1891ac6 Binary files /dev/null and b/assets/home/foss-mobile.jpg differ diff --git a/assets/home/foss.jpg b/assets/home/foss.jpg new file mode 100644 index 0000000..1891ac6 Binary files /dev/null and b/assets/home/foss.jpg differ diff --git a/assets/home/foss.xcf b/assets/home/foss.xcf new file mode 100644 index 0000000..5b571ce Binary files /dev/null and b/assets/home/foss.xcf differ diff --git a/assets/home/home-mobile.jpg b/assets/home/home-mobile.jpg new file mode 100644 index 0000000..c50a11f Binary files /dev/null and b/assets/home/home-mobile.jpg differ diff --git a/assets/home/home-mobile.xcf b/assets/home/home-mobile.xcf new file mode 100644 index 0000000..fa9ae6d Binary files /dev/null and b/assets/home/home-mobile.xcf differ diff --git a/assets/home/home.jpg b/assets/home/home.jpg new file mode 100644 index 0000000..04dcd19 Binary files /dev/null and b/assets/home/home.jpg differ diff --git a/assets/home/home.xcf b/assets/home/home.xcf new file mode 100644 index 0000000..4cbec9c Binary files /dev/null and b/assets/home/home.xcf differ diff --git a/assets/home/musicplayer-mobile.jpg b/assets/home/musicplayer-mobile.jpg new file mode 100644 index 0000000..35a69ea Binary files /dev/null and b/assets/home/musicplayer-mobile.jpg differ diff --git a/assets/home/musicplayer-mobile.xcf b/assets/home/musicplayer-mobile.xcf new file mode 100644 index 0000000..a4c6326 Binary files /dev/null and b/assets/home/musicplayer-mobile.xcf differ diff --git a/assets/home/musicplayer.jpg b/assets/home/musicplayer.jpg new file mode 100644 index 0000000..f98041b Binary files /dev/null and b/assets/home/musicplayer.jpg differ diff --git a/assets/links-qr.png b/assets/links-qr.png new file mode 100644 index 0000000..87a7a94 Binary files /dev/null and b/assets/links-qr.png differ diff --git a/assets/musicplayer/main.jpg b/assets/musicplayer/main.jpg new file mode 100644 index 0000000..8c5b40c Binary files /dev/null and b/assets/musicplayer/main.jpg differ diff --git a/assets/projects/conductorcalc-title.jpg b/assets/projects/conductorcalc-title.jpg new file mode 100644 index 0000000..98ef353 Binary files /dev/null and b/assets/projects/conductorcalc-title.jpg differ diff --git a/assets/projects/musicplayer-title.jpg b/assets/projects/musicplayer-title.jpg new file mode 100644 index 0000000..f98041b Binary files /dev/null and b/assets/projects/musicplayer-title.jpg differ diff --git a/assets/projects/qrscanner-title.jpg b/assets/projects/qrscanner-title.jpg new file mode 100644 index 0000000..8e5be4e Binary files /dev/null and b/assets/projects/qrscanner-title.jpg differ diff --git a/assets/projects/storagemanager-title.jpg b/assets/projects/storagemanager-title.jpg new file mode 100644 index 0000000..56dff86 Binary files /dev/null and b/assets/projects/storagemanager-title.jpg differ diff --git a/build.js b/build.js new file mode 100644 index 0000000..b2e5643 --- /dev/null +++ b/build.js @@ -0,0 +1,101 @@ +const fs = require( 'fs' ); + +const navMenu = '' + fs.readFileSync( './src/nav.html' ); +const footer = '' + fs.readFileSync( './src/footer.html' ); + +/** + * Recursively find all HTML files in a directory + * @param {string} dir The directory to search. Either absolute or relative path + * @param {string} extension The file extension to look for + * @returns {string[]} returns a list of html files with their full path + */ +const treeWalker = ( dir, extension ) => { + const ls = fs.readdirSync( dir ); + const fileList = []; + + for ( let file in ls ) { + if ( !ls[ file ].includes( '.' ) ) { + const newFiles = treeWalker( dir + '/' + ls[ file ], extension ); + + for ( let file in newFiles ) { + fileList.push( newFiles[ file ] ); + } + } else if ( ls[ file ].includes( extension ) ) { + fileList.push( dir + '/' + ls[ file ] ); + } + } + + return fileList; +}; + + +const addNavAndFooterToFile = file => { + const f = '' + fs.readFileSync( file ); + const footerIndex = f.indexOf( '