Merge branch 'master' of git.07112025.xyz:0qln/itc.webengineering
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -36,3 +36,7 @@ build/
|
||||
|
||||
### Mac OS ###
|
||||
.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,
|
||||
...
|
||||
}:
|
||||
with pkgs.lib; {
|
||||
# packages.default = with pkgs; mkDerivation {
|
||||
with pkgs.lib; let
|
||||
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;
|
||||
mkShell {
|
||||
packages = [
|
||||
openjdk
|
||||
jetty
|
||||
ant
|
||||
];
|
||||
nativeBuildInputs = [];
|
||||
packages =
|
||||
[
|
||||
mermaid-cli
|
||||
openjdk
|
||||
jetty
|
||||
ant
|
||||
]
|
||||
++ latexPackages;
|
||||
|
||||
shellHook = ''
|
||||
echo "Usage Example:"
|
||||
@@ -37,6 +106,9 @@
|
||||
};
|
||||
};
|
||||
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