166 lines
5.0 KiB
PHP
166 lines
5.0 KiB
PHP
<?php
|
|
require("lib/Parsedown.php");
|
|
require("lib/Spyc.php");
|
|
|
|
$mdRoot = "markdown/".$_GET['kyu']."terKyu";
|
|
|
|
$Parsedown = new Parsedown();
|
|
|
|
//! loading a markdownfile with yaml-header
|
|
//! returns an assocative array('yaml'=>array(..), 'mdText'=>string)
|
|
function loadMarkdownFile($fileName){
|
|
$fileText = file_get_contents($fileName);
|
|
|
|
$fileParts = preg_split('/[\n]*[-]{3}[\n]/', $fileText, 3);
|
|
|
|
return array(
|
|
'yaml' => Spyc::YAMLLoadString($fileParts[1])
|
|
, 'mdText' => preg_replace("/^#(.*)$/m", "", $fileParts[2])
|
|
);
|
|
}
|
|
|
|
/// @brief Gibt die URL der gerade aufgerufenen Seite zurück
|
|
function getCurPagesUrl(){
|
|
$pageURL = 'http';
|
|
if ($_SERVER["HTTPS"] == "on"){
|
|
$pageURL .= "s";
|
|
}
|
|
$pageURL .= "://";
|
|
if($_SERVER["SERVER_PORT"] != "80"){
|
|
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
|
|
}
|
|
else{
|
|
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
|
|
}
|
|
return $pageURL;
|
|
}
|
|
|
|
function htmlCardCode($article, $Parsedown){
|
|
if(
|
|
empty($article['yaml'])
|
|
|| empty($article['mdText'])
|
|
) return "";
|
|
return
|
|
"<div class=\"col s12 m6\">"
|
|
."<div class=\"card blue-grey darken-1\">"
|
|
."<div class=\"card-image\">"
|
|
."<video "
|
|
."style=\"max-width:100%;height: auto;\""
|
|
." class=\"materialboxed\""
|
|
." src=\"".$article['yaml']['video']['url']."\""
|
|
." width=\"".$article['yaml']['video']['width']."\""
|
|
." height=\"".$article['yaml']['video']['height']."\""
|
|
." controls"
|
|
."></video>"
|
|
."<span class=\"card-title\">".$article['yaml']['title']."</span>"
|
|
."</div>"
|
|
."<div class=\"card-content white-text\">".$Parsedown->text($article['mdText'])."</div>"
|
|
."</div>"
|
|
."</div>";
|
|
}
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Gürtelprüfungsordnung</title>
|
|
|
|
<!-- Compiled and minified CSS -->
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@materializecss/materialize@1.1.0-alpha/dist/css/materialize.min.css">
|
|
<!-- Compiled and minified JavaScript -->
|
|
<script src="https://cdn.jsdelivr.net/npm/@materializecss/materialize@1.1.0-alpha/dist/js/materialize.min.js"></script>
|
|
<!--- AutoInit -->
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
var elems = document.querySelectorAll('.materialboxed');
|
|
var instances = M.Materialbox.init(elems, {
|
|
// specify options here
|
|
});
|
|
});
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
var elems = document.querySelectorAll('.sidenav');
|
|
var instances = M.Sidenav.init(elems, {
|
|
// specify options here
|
|
});
|
|
});
|
|
</script>
|
|
|
|
<!--Let browser know website is optimized for mobile-->
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<style>
|
|
ul:not(.browser-default) > li{
|
|
list-style-type: circle;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<ul id="slide-out" class="sidenav">
|
|
<li><a href="kyu.php?kyu=7">7. Kyu - gelb</a></li>
|
|
</ul>
|
|
<a href="#" data-target="slide-out" class="sidenav-trigger"><i class="material-icons">menu</i></a>
|
|
|
|
<div class="row">
|
|
<?php
|
|
$kyuMetadata = Spyc::YAMLLoad( $mdRoot."/meta.yaml" );
|
|
echo("<h1>".$kyuMetadata['title']."</h1>");
|
|
$dirIterator = new DirectoryIterator( $mdRoot );
|
|
foreach ( $dirIterator as $path ) {
|
|
if(!$path->isDir()) continue;
|
|
if( $path->isDot()) continue;
|
|
|
|
$sectionMetadata = Spyc::YAMLLoad( $mdRoot."/".$path->__toString()."/meta.yaml" );
|
|
echo("<h2>".$sectionMetadata['title']."</h2>");
|
|
$fileIterator = new DirectoryIterator($mdRoot."/".$path->__toString());
|
|
|
|
foreach($fileIterator as $filePath){
|
|
if(!$filePath->isFile()) continue;
|
|
$article = loadMarkdownFile(
|
|
$mdRoot."/".$path->__toString()."/".$filePath->__toString()
|
|
);
|
|
echo( htmlCardCode($article, $Parsedown) );
|
|
}
|
|
};
|
|
?>
|
|
</div>
|
|
|
|
<footer class="page-footer">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col l6 s12">
|
|
<h5 class="white-text">Footer Content</h5>
|
|
<p class="grey-text text-lighten-4">You can use rows and columns here to organize your footer content.</p>
|
|
</div>
|
|
<div class="col l4 offset-l2 s12">
|
|
<h5 class="white-text">Links</h5>
|
|
<ul>
|
|
<li>
|
|
<a
|
|
title="Seite auf HTML 5 Konformität prüfen"
|
|
href="http://validator.w3.org/check?uri=<?php echo(urlencode(getCurPagesUrl()));?>"
|
|
rel="nofollow"
|
|
>Valid <img
|
|
src="/ressourcen/graphiken/icons/HTML5_1Color_Black.svg"
|
|
alt="HTML 5"
|
|
title="HTML 5 Logo"
|
|
style="height:1em;display:inline;vertical-align:middle;">
|
|
</a>
|
|
</li>
|
|
<li><a class="grey-text text-lighten-3" href="#!">Link 2</a></li>
|
|
<li><a class="grey-text text-lighten-3" href="#!">Link 3</a></li>
|
|
<li><a class="grey-text text-lighten-3" href="#!">Link 4</a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="footer-copyright">
|
|
<div class="container">
|
|
© 2014 Copyright Text
|
|
<a class="grey-text text-lighten-4 right" href="#!">More Links</a>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</body>
|
|
</html>
|