diff --git a/articles/other-projects/2015-07-24-Test-the-link.md b/articles/other-projects/2015-07-24-Test-the-link.md new file mode 100644 index 0000000..ebdd2cf --- /dev/null +++ b/articles/other-projects/2015-07-24-Test-the-link.md @@ -0,0 +1,5 @@ +%TITLE: Test the link +%DATE: 24 July 2015 +%TAGS: developing, testing + +[asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds.com/asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds/asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds](http://asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds.com/asdfadsfsldhfasdklhflnfkhdaskljfasdhfkhaskldhflaskjdhflkadsjhflkahfds) diff --git a/articles/other-projects/2015-07-24-The-Rangitaki-Logo.md b/articles/other-projects/2015-07-24-The-Rangitaki-Logo.md new file mode 100644 index 0000000..abf5193 --- /dev/null +++ b/articles/other-projects/2015-07-24-The-Rangitaki-Logo.md @@ -0,0 +1,7 @@ +%TITLE: The Rangitaki logo +%DATE: 24 July 2015 +%TAGS: design, artwork, logo + +This is the official Rangitaki logo. + +![The Rangitaki logo](media/rangitaki.png) diff --git a/config.php b/config.php index fb9f092..d5ec092 100644 --- a/config.php +++ b/config.php @@ -1,5 +1,5 @@ - <?php echo $blogtitle; ?> + + <?php echo $blogtitle; // Setting the blog article?> - - + + + @@ -63,173 +70,184 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - + - - - + + // Loading additional stylesheet for disabling the drawer?> - - + + + + + + - -
+ skip it + if ($nav_drawer == "yes") { + ?> +
- + + + + -
-
- - +
+
- setBreaksEnabled(true) + ->setBreaksEnabled(true) // with linebreaks ->text($file); - echo $intro; + echo $intro; // PRINTS THE SH**** ?>
= 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."; } ?>
-
- + -
- + -
+ -
+ -
+
Share
@@ -237,10 +255,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. } ?>
- - + + 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 + * @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 "
"; 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 "
" . "\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 @@