Merge branch 'master' of git.07112025.xyz:0qln/itc.webengineering
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -35,4 +35,8 @@ build/
|
|||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
### Mac OS ###
|
### Mac OS ###
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
### nix / direnv
|
||||||
|
.direnv
|
||||||
|
result
|
||||||
|
|||||||
4
docs/.gitignore
vendored
Normal file
4
docs/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
out
|
||||||
|
latexout
|
||||||
|
latex.out
|
||||||
|
direnv
|
||||||
2
docs/uebungen/.latexmkrc
Normal file
2
docs/uebungen/.latexmkrc
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
$out_dir = "out";
|
||||||
|
$pdf_mode = 4; # lualatex
|
||||||
Binary file not shown.
20
docs/uebungen/uebung-5.tex
Normal file
20
docs/uebungen/uebung-5.tex
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
\documentclass{uebung}
|
||||||
|
|
||||||
|
\author{Linus Nagel}
|
||||||
|
\chapter{5}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\maketitle
|
||||||
|
|
||||||
|
\begin{exercises}
|
||||||
|
\item Worum handelt es sich bei Facelets und welche Vorteile bietet die Verwendung von Facelets?
|
||||||
|
\item Wie können Templates mit Facelets erstellt bzw. verwendet werden?
|
||||||
|
\item Worum handelt es sich bei PrimeFaces?
|
||||||
|
\item Welcher Namespace wird für die Verwendung von PrimeFaces benutzt?
|
||||||
|
\item Wie kann per Ajax auf die Eingabe eines Tastenklicks reagiert werden?
|
||||||
|
\item Zählen Sie vier PrimeFaces-Komponenten auf und geben deren Funktion an.
|
||||||
|
\item Erstellen Sie eine JSF-Seite, die eine Klappliste anzeigt in der einer der Werte „Farben“, „Zahlen“ oder „Buchstaben“ ausgewählt werden kann. Darunter befindet sich eine Klappliste die zunächst nur den Inhalt „---“ hat. Nach einer Auswahl in der ersten Klappliste soll ein AJAX-Request generiert werden, der den Inhalt der zweiten Klappliste setzt (denken Sie sich zu den in Klappliste 1 auswählbaren Werten passende Werte aus).
|
||||||
|
\end{exercises}
|
||||||
|
|
||||||
|
\end{document}
|
||||||
142
docs/uebungen/uebung.cls
Normal file
142
docs/uebungen/uebung.cls
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesClass{uebung}[Sem3 Web Engineering Exercise Sheet Class]
|
||||||
|
|
||||||
|
% Base class with options
|
||||||
|
\LoadClass[11pt,a4paper]{article}
|
||||||
|
|
||||||
|
% Required packages
|
||||||
|
\RequirePackage[german]{babel}
|
||||||
|
\RequirePackage{geometry}
|
||||||
|
\RequirePackage{fancyhdr}
|
||||||
|
\RequirePackage{titlesec}
|
||||||
|
\RequirePackage{enumitem}
|
||||||
|
\RequirePackage{listings}
|
||||||
|
\RequirePackage{xcolor}
|
||||||
|
\RequirePackage{graphicx}
|
||||||
|
\RequirePackage{amsmath}
|
||||||
|
\RequirePackage{hyperref}
|
||||||
|
|
||||||
|
% Define chapter counter for exercise sheets
|
||||||
|
\newcounter{chapter}
|
||||||
|
\renewcommand{\thechapter}{\arabic{chapter}}
|
||||||
|
|
||||||
|
% Page geometry
|
||||||
|
\geometry{a4paper, left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm}
|
||||||
|
|
||||||
|
% Colors for code listings
|
||||||
|
\definecolor{codegreen}{rgb}{0,0.6,0}
|
||||||
|
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
|
||||||
|
\definecolor{codepurple}{rgb}{0.58,0,0.82}
|
||||||
|
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
|
||||||
|
|
||||||
|
% Code listing style
|
||||||
|
\lstdefinestyle{mystyle}{
|
||||||
|
backgroundcolor=\color{backcolour},
|
||||||
|
commentstyle=\color{codegreen},
|
||||||
|
keywordstyle=\color{magenta},
|
||||||
|
numberstyle=\tiny\color{codegray},
|
||||||
|
stringstyle=\color{codepurple},
|
||||||
|
basicstyle=\ttfamily\footnotesize,
|
||||||
|
breakatwhitespace=false,
|
||||||
|
breaklines=true,
|
||||||
|
captionpos=b,
|
||||||
|
keepspaces=true,
|
||||||
|
numbers=left,
|
||||||
|
numbersep=5pt,
|
||||||
|
showspaces=false,
|
||||||
|
showstringspaces=false,
|
||||||
|
showtabs=false,
|
||||||
|
tabsize=2,
|
||||||
|
frame=single,
|
||||||
|
framesep=5pt
|
||||||
|
}
|
||||||
|
|
||||||
|
\lstset{style=mystyle}
|
||||||
|
|
||||||
|
% Header and footer setup
|
||||||
|
\pagestyle{fancy}
|
||||||
|
\fancyhf{}
|
||||||
|
\fancyhead[L]{\textbf{Übung Web-Engineering}}
|
||||||
|
\fancyhead[R]{\textbf{Aufgabenblatt zu Kapitel \thechapter}}
|
||||||
|
\fancyfoot[C]{\thepage}
|
||||||
|
|
||||||
|
% Title format
|
||||||
|
\renewcommand{\maketitle}{
|
||||||
|
\begin{center}
|
||||||
|
\LARGE\textbf{Übung Web-Engineering}\\
|
||||||
|
\Large\textbf{Aufgabenblatt zu Kapitel \thechapter}
|
||||||
|
\vspace{1cm}
|
||||||
|
|
||||||
|
\large\textbf{Aufgaben – \@author}
|
||||||
|
\end{center}
|
||||||
|
\vspace{0.5cm}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Section formatting
|
||||||
|
\titleformat{\section}
|
||||||
|
{\large\bfseries}
|
||||||
|
{}
|
||||||
|
{0em}
|
||||||
|
{}
|
||||||
|
[\titlerule]
|
||||||
|
|
||||||
|
% Exercise item formatting
|
||||||
|
\newlist{exercises}{enumerate}{1}
|
||||||
|
\setlist[exercises]{
|
||||||
|
label=\arabic*),
|
||||||
|
leftmargin=*,
|
||||||
|
itemsep=1em,
|
||||||
|
before=\vspace{1.0cm}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Java code environment
|
||||||
|
\lstnewenvironment{javaCode}[1][]
|
||||||
|
{\lstset{style=mystyle, language=Java, #1}}
|
||||||
|
{}
|
||||||
|
|
||||||
|
% JSP/HTML code environment
|
||||||
|
\lstnewenvironment{htmlCode}[1][]
|
||||||
|
{\lstset{style=mystyle, language=HTML, #1}}
|
||||||
|
{}
|
||||||
|
|
||||||
|
% XML code environment
|
||||||
|
\lstnewenvironment{xmlCode}[1][]
|
||||||
|
{\lstset{style=mystyle, language=XML, #1}}
|
||||||
|
{}
|
||||||
|
|
||||||
|
% Subsection for code examples
|
||||||
|
\newcommand{\codeexample}[1]{
|
||||||
|
\vspace{0.5em}
|
||||||
|
\noindent\textbf{Beispiel:}
|
||||||
|
\vspace{0.3em}
|
||||||
|
#1
|
||||||
|
}
|
||||||
|
|
||||||
|
% Environment for multi-page content
|
||||||
|
\newenvironment{multipagecontent}
|
||||||
|
{\par\vspace{1em}}
|
||||||
|
{\par\vspace{1em}}
|
||||||
|
|
||||||
|
% Command for page breaks with continuation marker
|
||||||
|
\newcommand{\continuepage}{
|
||||||
|
\vfill
|
||||||
|
\centerline{\textit{Fortsetzung auf nächster Seite...}}
|
||||||
|
\newpage
|
||||||
|
\centerline{\textit{Fortsetzung von vorheriger Seite...}}
|
||||||
|
\vspace{1em}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Hyperref setup
|
||||||
|
\hypersetup{
|
||||||
|
colorlinks=true,
|
||||||
|
linkcolor=blue,
|
||||||
|
filecolor=magenta,
|
||||||
|
urlcolor=cyan,
|
||||||
|
pdftitle={Web Engineering Übungen},
|
||||||
|
pdfauthor={Linus Nagel}
|
||||||
|
}
|
||||||
|
|
||||||
|
% Chapter command for exercise sheets
|
||||||
|
\newcommand{\chapter}[1]{\setcounter{chapter}{#1}}
|
||||||
|
|
||||||
|
\endinput
|
||||||
88
flake.nix
88
flake.nix
@@ -18,17 +18,86 @@
|
|||||||
system,
|
system,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with pkgs.lib; {
|
with pkgs.lib; let
|
||||||
# packages.default = with pkgs; mkDerivation {
|
latexPackages = with pkgs; [
|
||||||
|
latexrun
|
||||||
|
(texlive.withPackages
|
||||||
|
(ps:
|
||||||
|
with ps; [
|
||||||
|
amsmath
|
||||||
|
biber
|
||||||
|
biblatex
|
||||||
|
changepage
|
||||||
|
csquotes
|
||||||
|
enumitem
|
||||||
|
fontaxes
|
||||||
|
latexmk
|
||||||
|
listings
|
||||||
|
minted
|
||||||
|
newtx
|
||||||
|
newtxsf
|
||||||
|
newtxtt
|
||||||
|
scheme-medium
|
||||||
|
textpos
|
||||||
|
times
|
||||||
|
titlesec
|
||||||
|
transparent
|
||||||
|
upquote
|
||||||
|
]))
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
# Per-system attributes can be defined here. The self' and inputs'
|
||||||
|
# module parameters provide easy access to attributes of the same
|
||||||
|
# system.
|
||||||
|
packages = with pkgs; let
|
||||||
|
fmtNum = strings.fixedWidthNumber 2;
|
||||||
|
fmtReleaseName = sem: author: chap: "${fmtNum sem} - ${fmtNum chap} - ${author.lastName}, ${author.firstName}.pdf";
|
||||||
|
fmtRelease = fmtReleaseName 3 {
|
||||||
|
firstName = "Linus";
|
||||||
|
lastName = "Nagel";
|
||||||
|
};
|
||||||
|
mkUebungPdf = n: args:
|
||||||
|
stdenvNoCC.mkDerivation rec {
|
||||||
|
name = fmtRelease n;
|
||||||
|
version = "1.0.0";
|
||||||
|
src = ./.;
|
||||||
|
buildInputs = latexPackages;
|
||||||
|
buildPhase =
|
||||||
|
# sh
|
||||||
|
''
|
||||||
|
cd docs/uebungen
|
||||||
|
|
||||||
|
latexmk \
|
||||||
|
-pdf \
|
||||||
|
-l -dir-report -file-line-error -verbose \
|
||||||
|
-interaction=nonstopmode \
|
||||||
|
"uebung-${toString n}.tex"
|
||||||
|
'';
|
||||||
|
installPhase =
|
||||||
|
# sh
|
||||||
|
''
|
||||||
|
mkdir -p $out/share $out/log $out/artifacts
|
||||||
|
cp out/uebung-${toString n}.pdf "$out/share/${name}"
|
||||||
|
cp out/*.log $out/log/
|
||||||
|
cp out/* $out/artifacts
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
// args;
|
||||||
|
in {
|
||||||
|
"uebung-5" = mkUebungPdf 5 {};
|
||||||
|
};
|
||||||
|
|
||||||
# };
|
|
||||||
devShells.default = with pkgs;
|
devShells.default = with pkgs;
|
||||||
mkShell {
|
mkShell {
|
||||||
packages = [
|
nativeBuildInputs = [];
|
||||||
openjdk
|
packages =
|
||||||
jetty
|
[
|
||||||
ant
|
mermaid-cli
|
||||||
];
|
openjdk
|
||||||
|
jetty
|
||||||
|
ant
|
||||||
|
]
|
||||||
|
++ latexPackages;
|
||||||
|
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
echo "Usage Example:"
|
echo "Usage Example:"
|
||||||
@@ -37,6 +106,9 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
flake = {
|
flake = {
|
||||||
|
# The usual flake attributes can be defined here, including system-
|
||||||
|
# agnostic ones like nixosModule and system-enumerating ones, although
|
||||||
|
# those are more easily expressed in perSystem.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user