2424// The left sidebar is a list of folders with an index.tinyw file at the root/docs/ folder.
2525
2626// USER-DEFINED Variables
27- $ wiki_name = "Tiny-wiki " ;
28- $ wiki_description = "A comprehensive folder-structure-based wiki engine for simple documentation. " ;
27+ // if resources/wikiconf.ini exists
28+ if (file_exists ("resources/wikiconf.ini " )) {
29+ $ wiki_config = parse_ini_file ("resources/wikiconf.ini " );
30+ $ wiki_name = $ wiki_config ['wiki_name ' ];
31+ $ wiki_description = $ wiki_config ['wiki_description ' ];
32+ $ wiki_color = $ wiki_config ['wiki_color ' ];
33+ $ wiki_default_theme = $ wiki_config ['wiki_default_theme ' ];
34+ $ wiki_favicon = $ wiki_config ['wiki_favicon ' ];
35+ }
2936
3037// Don't change anything below unless you know what you're doing.
3138
4047 $ page = "" ;
4148}
4249
43- // .TinyW parser at bin/tinywparse.php
50+ /* Include Parsers */
4451include "bin/tinywparse.php " ;
45-
46- // Parsedown
4752include "bin/Parsedown.php " ;
4853
49- // set up html page
54+ /* --- Page Setup --- */
5055
51- echo '<!DOCTYPE html> ' ;
52- echo '<html> ' ;
53- echo '<head> ' ;
56+ ?>
57+ <!DOCTYPE html>
58+ <html>
59+ <head>
60+ <?php
5461echo '<title> ' . $ wiki_name . '</title> ' ;
55- echo '<meta charset="utf-8"> ' ;
56- echo '<meta name="viewport" content="width=device-width, initial-scale=1"> ' ;
57- echo '<link rel="stylesheet" href="resources\style.css"> ' ;
58- echo '<link rel="stylesheet" href="js\styles\atom-one-dark.min.css"> ' ;
59- echo '<script src="js\highlight.min.js"></script> ' ;
60- echo '<script>hljs.highlightAll();</script> ' ;
61- echo '</head> ' ;
62- echo '<body> ' ;
63- echo '<div class="sidebar"> ' ;
64- echo '<!--wiki name div--> ' ;
65- echo '<div class="sidebar-wiki-name"> ' ;
66- echo '<p> ' . $ wiki_name . '</p> ' ;
67- echo '</div> ' ;
68- echo '<!--wiki auto-generated buttons div--> ' ;
69- echo '<div class="sidebar-list"> ' ;
70- echo '<input type="text" class="sidebar-search" id="search-input" placeholder="Search"> ' ;
62+ if ($ wiki_favicon != "" ) {
63+ echo '<link rel="shortcut icon" href="resources \\' . $ wiki_favicon . '"> ' ;
64+ }
65+ ?>
66+ <meta charset="utf-8">
67+ <meta name="viewport" content="width=device-width, initial-scale=1">
68+ <link rel="stylesheet" href="resources\style.css">
69+ <link rel="stylesheet" href="js\styles\atom-one-dark.min.css">
70+ <script src="js\highlight.min.js"></script>
71+ <script>hljs.highlightAll();</script>
72+ </head>
73+ <body>
74+ <div class="sidebar" name="second-color">
75+ <!--wiki name div-->
76+ <div class="sidebar-wiki-name" name="second-color">
77+ <?php
78+ echo '<p><a href="?p=home"> ' . $ wiki_name . '</a></p> ' ;?>
79+ </div>
80+ <!--wiki auto-generated buttons div-->
81+ <div class="sidebar-list">
82+ <input type="text" class="sidebar-search" id="search-input" placeholder="Search">
83+ <?php
7184// for each folder in root/docs/
7285$ folders = scandir ("docs " );
7386foreach ($ folders as $ folder ) {
7487 if ($ folder != ". " && $ folder != ".. " ) {
88+ $ config = parse_ini_file ("docs/ " . $ folder . "/config.ini " );
7589 // if folder's name is "Home"
76- if ($ folder == "Home " )
90+ if ($ folder == "Home " )
91+ {
92+ $ folder_n = $ config ["page_name " ];
7793 continue ;
94+ }
7895 // if folder has config.ini, set $folder to value after "page_name =" in config.ini
7996 if (file_exists ("docs/ " . $ folder . "/config.ini " )) {
80- $ config = parse_ini_file ("docs/ " . $ folder . "/config.ini " );
8197 $ folder_n = $ config ["page_name " ];
82-
8398 }
8499 echo '<a href="?p= ' . $ folder . '"> ' . $ folder_n . '</a> ' ;
85100 }
86- }
87- echo '</div> ' ;
88- echo '</div> ' ;
89- echo '<div class="content"> ' ;
90- echo '<div class="content-topbar"> ' ;
91- echo '<div class="content-current-page"> ' ;
101+ }?>
102+ </div>
103+ </div>
104+ <div class="content">
105+ <div class="content-topbar">
106+ <div class="content-current-page">
107+ <?php
92108// link to current page and page title
93- echo '<h1><a href= ' .$ current_link .'> ' .$ folder_n .'</a></h1> ' ;
94- echo '</div> ' ;
95- echo '</div> ' ;
96- echo '<div class="content-container"> ' ;
109+ echo '<h1><a href= ' .$ current_link .'> ' .$ folder_n .'</a></h1> ' ;?>
110+ </div>
111+ </div>
112+ <div class="content-container">
113+ <?php
97114// if $page is empty, echo the docs/Home/index.md or index.tinyw file
98115if ($ page == "" ) {
99116 if (file_exists ("docs/Home/index.md " )) {
121138 tinyw_parse ($ file );
122139 }
123140}
124- // else parse docs/page/index.md / index.tinyw, and echo it if it exists,
125- // otherwise page not found
126-
127- echo '</div> ' ;
128- echo '</div> ' ;
129- echo '<script> ' ;
130- echo 'var sidebar_list = document.getElementsByClassName("sidebar-list")[0]; ' ;
131- echo 'var sidebar_list_a = sidebar_list.getElementsByTagName("a"); ' ;
132- echo 'for (var i = 0; i < sidebar_list_a.length; i++) { ' ;
133- echo 'if (i % 2 == 1) { ' ;
134- echo 'sidebar_list_a[i].style.backgroundColor = "#0b0c0c"; ' ;
135- echo '} ' ;
136- echo '} ' ;
137- echo '// search bar, hides non-matching links ' ;
138- echo 'var sidebar_search = document.getElementById("search-input"); ' ;
139- echo 'sidebar_search.addEventListener("keyup", function(event) { ' ;
140- echo 'var search_input = event.target.value; ' ;
141- echo 'var sidebar_list_a = sidebar_list.getElementsByTagName("a"); ' ;
142- echo 'for (var i = 0; i < sidebar_list_a.length; i++) { ' ;
143- echo 'if (sidebar_list_a[i].innerHTML.toLowerCase().indexOf(search_input.toLowerCase()) == -1) { ' ;
144- echo 'sidebar_list_a[i].style.display = "none"; ' ;
145- echo '} else { ' ;
146- echo 'sidebar_list_a[i].style.display = "block"; ' ;
147- echo '} ' ;
148- echo '} ' ;
149- echo '}); ' ;
150- echo '</script> ' ;
151- echo '</body> ' ;
152- echo '</html> ' ;
153-
154- // end php
155- ?>
141+ ?>
142+ </div>
143+ </div>
144+ <script>
145+ var sidebar_list = document.getElementsByClassName("sidebar-list")[0];
146+ var sidebar_list_a = sidebar_list.getElementsByTagName("a");
147+ for (var i = 0; i < sidebar_list_a.length; i++) {
148+ if (i % 2 == 1) {
149+ sidebar_list_a[i].style.backgroundColor = "#0b0c0c";
150+ }
151+ }
152+ // search bar, hides non-matching links';
153+ var sidebar_search = document.getElementById("search-input");
154+ sidebar_search.addEventListener("keyup", function(event) {
155+ var search_input = event.target.value;
156+ var sidebar_list_a = sidebar_list.getElementsByTagName("a");
157+ for (var i = 0; i < sidebar_list_a.length; i++) {
158+ if (sidebar_list_a[i].innerHTML.toLowerCase().indexOf(search_input.toLowerCase()) == -1) {
159+ sidebar_list_a[i].style.display = "none";
160+ }
161+ else {
162+ sidebar_list_a[i].style.display = "block";
163+ }
164+ }
165+ }
166+ );
167+ // Make elements with id="second-color" have the second color
168+ // get elements by name
169+ var second_colors = document.getElementsByName("second-color");
170+ for (var i = 0; i < second_colors.length; i++) {
171+ second_colors[i].style.background = "<?php echo $ wiki_color ; ?> ";
172+ }
173+ </script>
174+ </body>
175+ </html>
0 commit comments