-
-
+
+
= 3 && substr($article, -3) == ".md") {
- ArticleGenerator::newArticle($articlesdir, $article, $getblog);
+ $articlesdir = "./articles/$blog/"; // generate a variable with the articles directory
+ // TAG VIEW
+ if (isset($gettag)) { // if there's a tag -> tag view
+ $articles = scandir($articlesdir, 1); // save the content of the directory in the articles variable
+ foreach ($articles as $article) { // iterate through all articles
+ $tags = ArticleGenerator::getTags($articlesdir, $article); // get the article tags
+ if (in_array($gettag, $tags)) { // if the article has the requested tag
+ if (strlen($article) >= 3 && substr($article, -3) == ".md") { // check if the file is a article file
+ ArticleGenerator::newArticle($articlesdir, $article, $getblog); // generate the article
}
}
}
- } else if ($getarticle == "") {
- $articles = scandir($articlesdir, 1);
- foreach ($articles as $article) {
- if (strlen($article) >= 3 && substr($article, -3) == ".md") {
- ArticleGenerator::newArticle($articlesdir, $article, $getblog);
+ } elseif ($getarticle == "") { // NORMAL VIEW if there's no article request -> normal view
+ $articles = scandir($articlesdir, 1); // save the content of the directory in the articles variable
+ foreach ($articles as $article) { // iterate through this variable
+ if (strlen($article) >= 3 && substr($article, -3) == ".md") { // check if the file is a article file
+ ArticleGenerator::newArticle($articlesdir, $article, $getblog); // generate the article
}
}
- } else {
- ArticleGenerator::newArticle($articlesdir, $getarticle . ".md", $getblog);
- include './res/php/SocialBar.php';
- include './res/php/Disqus.php';
+ } elseif (isset($getarticle)) { // ARTICLE VIEW
+ ArticleGenerator::newArticle($articlesdir, $getarticle . ".md", $getblog); // generate the requested article
+ include './res/php/Disqus.php'; // include disques
+ } else { // SOMETHING STRANGE: THIS SHOULDN'T HAPPEN
+ echo "Some error occured, please go back.";
}
?>
- setBreaksEnabled(true)
+ ->setBreaksEnabled(true) // with linebreaks
->text($file);
- echo $intro;
+ echo $intro; // PRINTS THE SH****
?>
-
+
-
-
+
-
-
+
-
*/ width: 100%; } /* MAIN */ -.card{ +.card{ /* just a card */ margin-right: auto; margin-left: auto; width: 75%; @@ -130,62 +132,70 @@ body{ max-width: 1160px; } -.card a{ +.card a{ /* and another a styling */ + -moz-hyphens: auto; + -epub-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; + word-wrap: break-word; /* until here: break long links */ +} + +.card a:hover{ /* hovered card links; just here to help you create a own theme*/ } -.card a:hover{ - -} - -.headline{ +.headline{ /* title in a card */ display: block; padding-bottom: 8px; } -.card img{ - max-width: 100%; - max-height: 400px; +.card img{ /* image in a card*/ + max-width: 100%; /* regulate width */ + max-height: 400px; /* regulate height */ + display: block; /* centered */ + margin-left: auto; /* centerd */ + margin-right: auto; /* centred */ } -.date{ +.date{ /* possibility to style the date */ } -.articletext{ +.articletext{ /* posibitlity to style the text */ } -.author{ +.author{ /* styling for the author */ display: block; } -.tag{ +.tag{ /* possibility to style the text */ } /* FAB */ -.fabmenu{ +.fabmenu{ /* surrounds the complete fab menu */ position: fixed; bottom: 20px; - right: 20px; + right: 20px; } -.fab{ +.fab{ /* the main fab (always visible if enabled) */ height: 60px; width: 60px; border-radius: 30px; cursor: pointer; } -.fab-img{ +.fab-img{ /* fab image for the main fab */ width: 28px; padding: 15px; } -.subfab{ +.subfab{ /* a smaller fab in the fab menu */ height: 45px; width: 45px; border-radius: 30px; @@ -195,41 +205,41 @@ body{ display: none; } -.subfab-img{ +.subfab-img{ /* and the image for it */ width: 22px; padding: 12px; } /* FOOTER */ -.footer{ +.footer{ /* possibility for styling the footer */ } -.footer a{ +.footer a{ /* styling of the footer a */ transition: border-bottom-color 150ms ease-in-out 100ms; } -.footer a:hover{ +.footer a:hover{ /* and the hovered one*/ border-bottom-color: #383838; } -@media screen and (min-width: 1440px) { +@media screen and (min-width: 1440px) { /* make it responsive: large devices */ - .nav{ - left: 0px; + .nav{ /* always show navigation bar */ + left: 0; } - .nav-img{ + .nav-img{ /* always hide navigation bar icon*/ display: none; } - .header{ + .header{ /* move header to the right */ left: 300px; } - .main{ + .main{ /* move main content to the right and limit its width */ margin-left: 300px; width: calc(100% - 300px); } @@ -237,10 +247,10 @@ body{ } -@media screen and (max-width: 720px){ +@media screen and (max-width: 720px){ /* make it responsive: small devices */ - .card{ + .card{ /* wider cards */ width: 82%; } -} \ No newline at end of file +} diff --git a/res/js/app.js b/res/js/app.js index 7f2e1dc..dd2a42f 100644 --- a/res/js/app.js +++ b/res/js/app.js @@ -1,4 +1,6 @@ -/* +/* + * Rangitaki Project + * * The MIT License * * Copyright 2015 mmk2410. @@ -22,64 +24,74 @@ * THE SOFTWARE. */ -var main = function () { +var main = function () { // main function; called below - var fabActive = false; - $('.fabmenu').click(function () { - if (!(fabActive)) { - fabFadeIn(); - fabActive = true; - } else { - fabFadeOut(); - fabActive = false; + var fabActive = false; // fab hidden at begin + $('.fabmenu').click( // action on fab click + function () { + if (!(fabActive)) { // if fab is hidden + fabFadeIn(); // fade fab in + fabActive = true; // fab = active + } else { // if fab is shown + fabFadeOut(); // fade fab out + fabActive = false; // fab = hidden + } } - }); + ); - var navOpen = false; - $('.nav-img, .overlay').click(function () { - if (!(navOpen)) { - openNav(); - navOpen = true; - } else { - closeNav(); - navOpen = false; + var navOpen = false; // nav hidden at begin + $('.nav-img, .overlay').click( // action on hamburger click + function () { + if (!(navOpen)) { // if nav is hidden + openNav(); // open the nav drawer + navOpen = true; // nav = open + } else { // if nav is closed + closeNav(); // close the nav drawer + navOpen = false; // nav = closed + } } - }); + ); }; -$(document).ready(main); +$(document).ready(main); // run if document is loaded -function goBack() { +function goBack() { // go back function history.go(-1); } -function fabFadeIn() { - $('.subfab').fadeIn(125); - $('.fab-img').fadeOut(60, function callback() { - $('.fab-img').attr("src", "./res/img/close.svg"); - }); - $('.fab-img').fadeIn(60); +function fabFadeIn() { // fade fab in + $('.subfab').fadeIn(125); // fade subfabs in + $('.fab-img').fadeOut( // fade fab share image out + 60, function callback() { + $('.fab-img').attr("src", "./res/img/close.svg"); // change to fab close image + } + ); + $('.fab-img').fadeIn(60); // fade fab close image in } -function fabFadeOut() { - $('.subfab').fadeOut(125); - $('.fab-img').fadeOut(60, function callback() { - $('.fab-img').attr("src", "./res/img/share.svg"); - }); - $('.fab-img').fadeIn(60); +function fabFadeOut() { // fade fab out + $('.subfab').fadeOut(125); // fade subfabs out + $('.fab-img').fadeOut( // fade fab close image out + 60, function callback() { + $('.fab-img').attr("src", "./res/img/share.svg"); // change to fab share image + } + ); + $('.fab-img').fadeIn(60); // fade fab share image in } -function openNav() { - $('.nav').animate({"left": "0px"}, 125); - $('.overlay').show(); - $('.overlay').animate({"opacity": "0.4"}, 125); +function openNav() { // fade navigation drawer in + $('.nav').animate({"left": "0px"}, 125); // slide in + $('.overlay').show(); // set overlay to show ... + $('.overlay').animate({"opacity": "0.4"}, 125); // ... and fade to a darker transparent color } -function closeNav() { - $('.nav').animate({"left": "-300px"}, 125); - $('.overlay').animate({"opacity": "0.0"}, 125, function () { - $('.overlay').hide(); - }); -} \ No newline at end of file +function closeNav() { // fade navigation drawer out + $('.nav').animate({"left": "-300px"}, 125); // slide out + $('.overlay').animate( + {"opacity": "0.0"}, 125, function () { // fade the overlay to complete transparency + $('.overlay').hide(); // hide it then + } + ); +} diff --git a/res/php/ArticleGenerator.php b/res/php/ArticleGenerator.php index f999756..d5f8847 100644 --- a/res/php/ArticleGenerator.php +++ b/res/php/ArticleGenerator.php @@ -1,6 +1,7 @@ + * Since there is no initialize function, I recommend to use the short access syntay + * + * @category Articles + * @package RangitakiPHP + * @author mmk2410
+ * @license MIT License
+ * @link http://marcel-kapfer.de/rangitaki
*/
-class ArticleGenerator {
+class ArticleGenerator
+{
- function newArticle ($directory, $articlefile, $blog) {
+ /**
+ * A function to create one new article
+ *
+ * @param string $directory The directory where the article files are stored
+ * @param string $articlefile The name of the article file
+ * @param string $blog The name of the current blog
+ */
+ function newArticle($directory, $articlefile, $blog)
+ {
- $article = file_get_contents($directory . $articlefile);
+ $article = file_get_contents($directory . $articlefile); // get the file
echo "";
- if (substr($article, 0, 6) == "%TITLE") {
- $title = substr($article, 8, strpos($article, "\n") - 8);
- if ($blog == "") {
- $link = "./?article=" . substr($articlefile, 0, -3);
- } else {
- $link = "./?blog=$blog&article=" . substr($articlefile, 0, -3);
+ if (substr($article, 0, 6) == "%TITLE") { // if a title is in the first line
+ $title = substr($article, 8, strpos($article, "\n") - 8); // get this title
+ if ($blog == "") { // if one main blog
+ $link = "./?article=" . substr($articlefile, 0, -3); // create link to article
+ } else { // if not on main blog
+ $link = "./?blog=$blog&article=" . substr($articlefile, 0, -3); // create link to article at specific blog
}
- echo "$title";
- $article = substr($article, strpos($article, "\n") + 1);
+ echo "$title"; // print link (as a headline)
+ $article = substr($article, strpos($article, "\n") + 1); // remove title tag from $article (the variable, not the document)
}
- if (substr($article, 0, 5) == "%DATE") {
- $date = substr($article, 7, strpos($article, "\n") - 7);
- echo "$date";
- $article = substr($article, strpos($article, "\n") + 1);
+ if (substr($article, 0, 5) == "%DATE") { // if now a date is in the first line
+ $date = substr($article, 7, strpos($article, "\n") - 7); // get this date
+ echo "$date"; // print the date
+ $article = substr($article, strpos($article, "\n") + 1); // remove this line
}
- if (substr($article, 0, 7) == "%AUTHOR") {
- $author = substr($article, 9, strpos($article, "\n") - 9);
- $article = substr($article, strpos($article, "\n") + 1);
+ if (substr($article, 0, 7) == "%AUTHOR") { // if a author is now in the first line
+ $author = substr($article, 9, strpos($article, "\n") - 9); // get the author
+ $article = substr($article, strpos($article, "\n") + 1); // remove the line
}
- if (substr($article, 0, 5) == "%TAGS") {
- $tags = substr($article, 7, strpos($article, "\n") - 7);
- $tags = explode(", ", $tags);
- $article = substr($article, strpos($article, "\n") + 1);
+ if (substr($article, 0, 5) == "%TAGS") { // if tags are now at the beginning
+ $tags = substr($article, 7, strpos($article, "\n") - 7); // get tags
+ $tags = explode(", ", $tags); // split them into an array
+ $article = substr($article, strpos($article, "\n") + 1); // remove this line
}
- //TODO Code detection
-
echo " " . "\n";
}
- function getTags($directory, $articlefile) {
- $article = file_get_contents($directory . $articlefile);
- if (substr($article, 0, 6) == "%TITLE") {
+ /**
+ * A function to get an articles tags as an array
+ *
+ * @param string $directory The directory where the article files are stored
+ * @param string $articlefile The name of the article file
+ * @return array
+ */
+ function getTags($directory, $articlefile)
+ {
+ $article = file_get_contents($directory . $articlefile); // get the article
+ if (substr($article, 0, 6) == "%TITLE") { // detect and remove the title
$article = substr($article, strpos($article, "\n") + 1);
}
- if (substr($article, 0, 5) == "%DATE") {
+ if (substr($article, 0, 5) == "%DATE") { // detect and remove the title
$article = substr($article, strpos($article, "\n") + 1);
}
- if (substr($article, 0, 7) == "%AUTHOR") {
+ if (substr($article, 0, 7) == "%AUTHOR") { // detect and remove the title
$article = substr($article, strpos($article, "\n") + 1);
}
- if (substr($article, 0, 5) == "%TAGS") {
- $tags = substr($article, 7, strpos($article, "\n") - 7);
- $tags = explode(", ", $tags);
+ if (substr($article, 0, 5) == "%TAGS") { // detect the tags
+ $tags = substr($article, 7, strpos($article, "\n") - 7); // get the tags
+ $tags = explode(", ", $tags); // split them into an array
}
- return $tags;
+ return $tags; // remove that array
}
}
diff --git a/res/php/BlogListGenerator.php b/res/php/BlogListGenerator.php
index a2fa242..4259bf3 100644
--- a/res/php/BlogListGenerator.php
+++ b/res/php/BlogListGenerator.php
@@ -1,6 +1,7 @@
- */
-class BlogListGenerator {
+ /**
+ * The blog list generator class is a collection of functions for generating blog lists
+ * or getting informations about them
+ *
+ * Since there is no initialize function, I recommend to use the short access syntay
+ *
+ * @category Blogs
+ * @package RangitakiPHP
+ * @author mmk2410
+ * @license MIT License
+ * @link http://marcel-kapfer.de/rangitaki
+ */
+class BlogListGenerator
+{
- function listBlog($directory, $blogname, $blogmaintitle) {
- $blog = file_get_contents($directory . $blogname);
- $blog = $blog . "\n";
- if (substr($blog, 0, 6) == "%TITLE") {
- $blog = substr($blog, 8, strpos($blog, "\n") - 8);
- if ($blog == "main") {
- echo "$blogmaintitle";
+ /**
+ * A function to generate a blog nav item
+ *
+ * @param string $directory The directory of the blog file
+ * @param string $blogname The name of the blog file
+ * @param string $blogmaintitle The name of the main blog
+ */
+ function listBlog($directory, $blogname, $blogmaintitle)
+ {
+ $blog = file_get_contents($directory . $blogname); // get content of the blog file
+ $blog = $blog . "\n"; // add a line break as a security measurement
+ if (substr($blog, 0, 6) == "%TITLE") { // check if the first line includes a title
+ $blog = substr($blog, 8, strpos($blog, "\n") - 8); // grab the title
+ if ($blog == "main") { // if on main blog
+ echo "$blogmaintitle"; // create a nav item to the main blog
} else {
- $link = "./?blog=" . substr($blogname, 0, -3);
- echo "$blog";
+ $link = "./?blog=" . substr($blogname, 0, -3); // create a link to the blog
+ echo "$blog"; // create a nav item to the blog
}
}
}
-
- function getName($file){
- $blog = file_get_contents($file);
- $blog = $blog . "\n";
- if(substr($blog, 0, 6) == "%TITLE"){
- $blog = substr($blog, 8, strpos($blog, "\n") - 8);
- return $blog;
+
+ /**
+ * A function to get the name of a blog
+ *
+ * @param string $file The path of the blog file
+ * @return string
+ */
+ function getName($file)
+ {
+ $blog = file_get_contents($file); // get the content of the blog file
+ $blog = $blog . "\n"; // add a line break as a securit measure
+ if(substr($blog, 0, 6) == "%TITLE") { // check if first line includes a title
+ $blog = substr($blog, 8, strpos($blog, "\n") - 8); // grab the title
+ return $blog; // return it
}
}
diff --git a/res/php/Disqus.php b/res/php/Disqus.php
index 880c0f0..c97f89f 100644
--- a/res/php/Disqus.php
+++ b/res/php/Disqus.php
@@ -22,7 +22,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-->
-
+
-
\ No newline at end of file
+
diff --git a/res/php/GoogleAnalytics.php b/res/php/GoogleAnalytics.php
index 62dd919..45cd581 100644
--- a/res/php/GoogleAnalytics.php
+++ b/res/php/GoogleAnalytics.php
@@ -1,5 +1,7 @@
+
-
-
-
+
+
diff --git a/lang/de.php b/lang/de.php
index 9fbafbd..aff3bef 100644
--- a/lang/de.php
+++ b/lang/de.php
@@ -1,7 +1,9 @@
"Blogs auf",
+ "Check out this blog" => "Schau dir diesen Blog an:",
+ "Check out" => "Schau dir das an:"
+];
diff --git a/lang/en.php b/lang/en.php
index cf54f6d..63b62a6 100644
--- a/lang/en.php
+++ b/lang/en.php
@@ -1,7 +1,9 @@
"Blogs on",
+ "Check out this blog" => "Check out this blog:",
+ "Check out" => "Check out:",
+];
diff --git a/media/rangitaki.png b/media/rangitaki.png
new file mode 100644
index 0000000..b25c364
Binary files /dev/null and b/media/rangitaki.png differ
diff --git a/rcc/index.php b/rcc/index.php
index c0c89e1..ea314ef 100644
--- a/rcc/index.php
+++ b/rcc/index.php
@@ -35,11 +35,11 @@ THE SOFTWARE.
File Upload
You have to choose a file!";
} else {
diff --git a/res/css/github-gist.css b/res/css/github-gist.css
index eb66fd1..6175f68 100644
--- a/res/css/github-gist.css
+++ b/res/css/github-gist.css
@@ -10,6 +10,7 @@
color: #333333;
overflow-x: auto;
-webkit-text-size-adjust: none;
+ -ms-text-size-adjust: none;
}
.hljs-comment,
diff --git a/res/css/no-nav.css b/res/css/no-nav.css
index 68af110..e455925 100644
--- a/res/css/no-nav.css
+++ b/res/css/no-nav.css
@@ -1,4 +1,6 @@
/*
+Rangitaki Project
+
The MIT License
Copyright 2015 mmk2410.
@@ -21,32 +23,35 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-/*
+/*
Created on : Jun 18, 2015, 7:07:45 PM
Author : mmk2410
*/
+/*
+ A stylesheet for overriding the default styles if the navigation drawer is disabled
+*/
-.nav{
+.nav{ /* hide the navigation drawer */
display: none;
}
-.nav-img{
+.nav-img{ /* hide the hamburger icon */
display: none;
}
-@media screen and (min-width: 1440px) {
- .header {
- left: 0px;
+@media screen and (min-width: 1440px) { /* large devices */
+ .header { /* full width */
+ left: 0;
}
- .main{
- margin-left: 0px;
+ .main{ /* full width */
+ margin-left: 0;
width: 100%;
}
}
-@media screen and (max-width: 720px){
- .title{
+@media screen and (max-width: 720px){ /* small devices */
+ .title{ /* move the title more to the left */
left: 25px;
}
-}
\ No newline at end of file
+}
diff --git a/res/css/rangitaki.css b/res/css/rangitaki.css
index 317e742..d81b93a 100644
--- a/res/css/rangitaki.css
+++ b/res/css/rangitaki.css
@@ -1,4 +1,6 @@
/*
+Rangitaki Project
+
The MIT License
Copyright 2015 mmk2410.
@@ -21,7 +23,7 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
-/*
+/*
Created on : Jun 14, 2015, 6:13:38 PM
Author : mmk2410
*/
@@ -29,15 +31,15 @@ THE SOFTWARE.
/* BODY */
body{
- margin-top: 94px;
+ margin-top: 94px; /* Set enough space for the header */
}
-.main{
+.main{ /* main content */
height: 100%;
- margin-left: 0px;
+ margin-left: 0;
}
-.overlay {
+.overlay { /* overlay: used for a darker background when the navigation drawer is open */
opacity: 0;
position: fixed;
top: 0;
@@ -46,19 +48,20 @@ body{
width: 100%;
z-index: 30;
height: 100%;
- display: none;
+ display: none; /* because the thing is hidden at the beginning and shown with js */
}
+
/* HEADER */
.header{
- top: 0px;
- right: 0px;
- left: 0px;
+ top: 0;
+ right: 0;
+ left: 0;
width: 100%;
height: 64px;
position: absolute;
}
-.title{
+.title{ /* title in the header */
color: #fff;
font-size: 23px;
text-decoration: none;
@@ -67,20 +70,20 @@ body{
left: 75px;
}
-.title > a{
+.title > a{ /* and a a styling */
text-decoration: none;
color: #fff;
}
-.fadeout{
+.fadeout{ /* a fadeout if the title is to long */
position: absolute;
height: 64px;
- top: 0px;
- right: 0px;
+ top: 0;
+ right: 0;
width: 40px;
}
-.nav-img{
+.nav-img{ /* the hamburger icon */
height: 26px;
padding: 19px;
cursor: pointer;
@@ -88,22 +91,21 @@ body{
/* NAV DRAWER */
-.nav{
+.nav{ /* the main object */
width: 300px;
position: fixed;
height: 100%;
- top: 0px;
+ top: 0;
left: -300px;
padding-top: 64px;
z-index: 40;
}
-.nav-item, .nav-item-static{
+.nav-item, .nav-item-static{ /* a nav-item */
text-decoration: none;
text-indent: 0;
display: inline-block;
height: 48px;
- text-decoration: none;
vertical-align: middle;
width: 284px;
line-height: 48px;
@@ -111,17 +113,17 @@ body{
transition: background-color 125ms ease-in-out 0ms;
}
-.nav-item{
+.nav-item{ /* additional setting for clickable nav items */
cursor: pointer;
}
-.divider{
+.divider{ /* a simple divider with all options. better than */ width: 100%; } /* MAIN */ -.card{ +.card{ /* just a card */ margin-right: auto; margin-left: auto; width: 75%; @@ -130,62 +132,70 @@ body{ max-width: 1160px; } -.card a{ +.card a{ /* and another a styling */ + -moz-hyphens: auto; + -epub-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; + word-wrap: break-word; /* until here: break long links */ +} + +.card a:hover{ /* hovered card links; just here to help you create a own theme*/ } -.card a:hover{ - -} - -.headline{ +.headline{ /* title in a card */ display: block; padding-bottom: 8px; } -.card img{ - max-width: 100%; - max-height: 400px; +.card img{ /* image in a card*/ + max-width: 100%; /* regulate width */ + max-height: 400px; /* regulate height */ + display: block; /* centered */ + margin-left: auto; /* centerd */ + margin-right: auto; /* centred */ } -.date{ +.date{ /* possibility to style the date */ } -.articletext{ +.articletext{ /* posibitlity to style the text */ } -.author{ +.author{ /* styling for the author */ display: block; } -.tag{ +.tag{ /* possibility to style the text */ } /* FAB */ -.fabmenu{ +.fabmenu{ /* surrounds the complete fab menu */ position: fixed; bottom: 20px; - right: 20px; + right: 20px; } -.fab{ +.fab{ /* the main fab (always visible if enabled) */ height: 60px; width: 60px; border-radius: 30px; cursor: pointer; } -.fab-img{ +.fab-img{ /* fab image for the main fab */ width: 28px; padding: 15px; } -.subfab{ +.subfab{ /* a smaller fab in the fab menu */ height: 45px; width: 45px; border-radius: 30px; @@ -195,41 +205,41 @@ body{ display: none; } -.subfab-img{ +.subfab-img{ /* and the image for it */ width: 22px; padding: 12px; } /* FOOTER */ -.footer{ +.footer{ /* possibility for styling the footer */ } -.footer a{ +.footer a{ /* styling of the footer a */ transition: border-bottom-color 150ms ease-in-out 100ms; } -.footer a:hover{ +.footer a:hover{ /* and the hovered one*/ border-bottom-color: #383838; } -@media screen and (min-width: 1440px) { +@media screen and (min-width: 1440px) { /* make it responsive: large devices */ - .nav{ - left: 0px; + .nav{ /* always show navigation bar */ + left: 0; } - .nav-img{ + .nav-img{ /* always hide navigation bar icon*/ display: none; } - .header{ + .header{ /* move header to the right */ left: 300px; } - .main{ + .main{ /* move main content to the right and limit its width */ margin-left: 300px; width: calc(100% - 300px); } @@ -237,10 +247,10 @@ body{ } -@media screen and (max-width: 720px){ +@media screen and (max-width: 720px){ /* make it responsive: small devices */ - .card{ + .card{ /* wider cards */ width: 82%; } -} \ No newline at end of file +} diff --git a/res/js/app.js b/res/js/app.js index 7f2e1dc..dd2a42f 100644 --- a/res/js/app.js +++ b/res/js/app.js @@ -1,4 +1,6 @@ -/* +/* + * Rangitaki Project + * * The MIT License * * Copyright 2015 mmk2410. @@ -22,64 +24,74 @@ * THE SOFTWARE. */ -var main = function () { +var main = function () { // main function; called below - var fabActive = false; - $('.fabmenu').click(function () { - if (!(fabActive)) { - fabFadeIn(); - fabActive = true; - } else { - fabFadeOut(); - fabActive = false; + var fabActive = false; // fab hidden at begin + $('.fabmenu').click( // action on fab click + function () { + if (!(fabActive)) { // if fab is hidden + fabFadeIn(); // fade fab in + fabActive = true; // fab = active + } else { // if fab is shown + fabFadeOut(); // fade fab out + fabActive = false; // fab = hidden + } } - }); + ); - var navOpen = false; - $('.nav-img, .overlay').click(function () { - if (!(navOpen)) { - openNav(); - navOpen = true; - } else { - closeNav(); - navOpen = false; + var navOpen = false; // nav hidden at begin + $('.nav-img, .overlay').click( // action on hamburger click + function () { + if (!(navOpen)) { // if nav is hidden + openNav(); // open the nav drawer + navOpen = true; // nav = open + } else { // if nav is closed + closeNav(); // close the nav drawer + navOpen = false; // nav = closed + } } - }); + ); }; -$(document).ready(main); +$(document).ready(main); // run if document is loaded -function goBack() { +function goBack() { // go back function history.go(-1); } -function fabFadeIn() { - $('.subfab').fadeIn(125); - $('.fab-img').fadeOut(60, function callback() { - $('.fab-img').attr("src", "./res/img/close.svg"); - }); - $('.fab-img').fadeIn(60); +function fabFadeIn() { // fade fab in + $('.subfab').fadeIn(125); // fade subfabs in + $('.fab-img').fadeOut( // fade fab share image out + 60, function callback() { + $('.fab-img').attr("src", "./res/img/close.svg"); // change to fab close image + } + ); + $('.fab-img').fadeIn(60); // fade fab close image in } -function fabFadeOut() { - $('.subfab').fadeOut(125); - $('.fab-img').fadeOut(60, function callback() { - $('.fab-img').attr("src", "./res/img/share.svg"); - }); - $('.fab-img').fadeIn(60); +function fabFadeOut() { // fade fab out + $('.subfab').fadeOut(125); // fade subfabs out + $('.fab-img').fadeOut( // fade fab close image out + 60, function callback() { + $('.fab-img').attr("src", "./res/img/share.svg"); // change to fab share image + } + ); + $('.fab-img').fadeIn(60); // fade fab share image in } -function openNav() { - $('.nav').animate({"left": "0px"}, 125); - $('.overlay').show(); - $('.overlay').animate({"opacity": "0.4"}, 125); +function openNav() { // fade navigation drawer in + $('.nav').animate({"left": "0px"}, 125); // slide in + $('.overlay').show(); // set overlay to show ... + $('.overlay').animate({"opacity": "0.4"}, 125); // ... and fade to a darker transparent color } -function closeNav() { - $('.nav').animate({"left": "-300px"}, 125); - $('.overlay').animate({"opacity": "0.0"}, 125, function () { - $('.overlay').hide(); - }); -} \ No newline at end of file +function closeNav() { // fade navigation drawer out + $('.nav').animate({"left": "-300px"}, 125); // slide out + $('.overlay').animate( + {"opacity": "0.0"}, 125, function () { // fade the overlay to complete transparency + $('.overlay').hide(); // hide it then + } + ); +} diff --git a/res/php/ArticleGenerator.php b/res/php/ArticleGenerator.php index f999756..d5f8847 100644 --- a/res/php/ArticleGenerator.php +++ b/res/php/ArticleGenerator.php @@ -1,6 +1,7 @@ + * Since there is no initialize function, I recommend to use the short access syntay + * + * @category Articles + * @package RangitakiPHP + * @author mmk2410
";
echo Parsedown::instance()
->setBreaksEnabled(true)
- ->text($article);
+ ->text($article); // print now the article text as html
echo "
";
- if ($author != "") {
- echo "$author";
+ if (isset($author)) {
+ echo "$author"; // print the author
}
foreach ($tags as $tag) {
$blogurl = filter_input(INPUT_GET, "blog");
- if ($blogurl == "") {
+ if ($blogurl == "") { // on main blog. no ?blog=
echo "$tag ";
- } else {
+ } else { // not on main blog
echo "$tag ";
}
}
@@ -91,24 +105,32 @@ class ArticleGenerator {
echo "