%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
% Funktioniert nicht \usepackage[automark]{scrpage2}%
\usepackage[automark]{scrlayer-scrpage}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

% Single quotes
\usepackage{upquote,textcomp}

%Kopfzeile
\ihead{SvelteKit}
\chead{}
\ohead{http://kohnlehome.de/js/sveltekit-codeberg-pages.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Single Quotes
\newcommand\upquote[1]{\textquotesingle#1\textquotesingle}

% Überschrift 
\begin{center}
  \LARGE % Schriftgröße
  \bfseries % Fettdruck
  \sffamily % Serifenlose Schrift
  Deploy SvelteKit-Projekt auf Codeberg-Pages
\end{center}


\section*{Beispielprojekt}
\begin{itemize}
  \item Repository-URL: https://codeberg.org/meisterk/REPONAME
  \item git-Branch: pages
  \item Pages-URL: https://meisterk.codeberg.page/REPONAME/
\end{itemize}

\section*{Adapter installieren}
\begin{verbatim} 
npm i -D @sveltejs/adapter-static
\end{verbatim}

\section*{svelte.config.js (REPONAME anpassen)}
\begin{verbatim} 
import adapter from '@sveltejs/adapter-static';
export default {
  kit: {
    adapter: adapter({
      ages: 'build',
      assets: 'build',
      fallback: undefined,
      precompress: false,
      strict: true,
      fallback: 'index.html' // may differ from host to host
    }),
    paths: {
      base: process.env.NODE_ENV === 'production' ? '/REPONAME' : '',
    }
  }
};
\end{verbatim}


\section*{src/routes/+layout.js}
\begin{verbatim} 
export const ssr = false;
export const prerender = false;
\end{verbatim}


\section*{Links in Komponenenten (Komponente.svelte)}
\begin{verbatim} 
<script>
  import { base } from '$app/paths';
</script> 

<nav>
  <a href="{base}/">Home</a>
  <a href="{base}/about">About</a>
</nav>
\end{verbatim}

\section*{Public Repository auf Codeberg erstellen}
\begin{verbatim} 
REPONAME
\end{verbatim}


\section*{Linux: deploy.sh (REPONAME anpassen)}
\begin{verbatim} 
#!/usr/bin/env sh

# Bei Fehler sofort abbrechen
set -e

# build-Verzeichnis komplett löschen
rm -rf build

# build (build-Verzeichnis erstellen)
npm run build

# komplett neues Repository in build
# mit Branch 'pages' erstellen
cd build
git init
git checkout -B pages
git add -A
git commit -m 'deploy'

# aktuelle Version hochladen
# alte Version wird gelöscht
git push --force -u 'https://codeberg.org/meisterk/REPONAME.git' pages

# wieder in altes Verzeichnis springen
cd -  
\end{verbatim}



\section*{Windows: deploy.cmd}
\begin{verbatim} 
REM build-Verzeichnis komplett löschen
rd /s /q "build"

REM  build
call npm run build

REM komplett neues Repository in build
REM mit Branch 'pages' erstellen
cd build
git init
git checkout -B pages
git add -A
git commit -m 'deploy'

REM aktuelle Version hochladen
REM alte Version wird gelöscht
git push --force -u https://codeberg.org/meisterk/REPONAME.git pages

REM wieder zurückspringen
cd ..  
\end{verbatim}



\end{document}
