Add server side and client side form validation for submitting comments. Also fix coding blocks not supporting multi-line code blocks

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2, Sig, Sigo 3 years ago
parent 3e6843d98a
commit 0e6099490a
  1. 4
      comments/Love%20Live!%20Custom%20Arcade%20Controller.comment
  2. 8
      comments/curabitur%20vel%20tempus%20ex.comment
  3. 52
      comments/sigplace1.comment
  4. 20
      out/DIRECTORY_LISTING
  5. 16
      out/articles/DIRECTORY_LISTING
  6. 22
      out/articles/Love Live! Custom Arcade Controller.article.html
  7. 4
      out/articles/curabitur vel tempus ex.article
  8. 26
      out/articles/curabitur vel tempus ex.article.html
  9. 20
      out/articles/sigplace1.article
  10. 42
      out/articles/sigplace1.article.html
  11. 14
      out/articles/test articles/DIRECTORY_LISTING
  12. 2
      out/articles/test articles/test1.article
  13. 24
      out/articles/test articles/test1.article.html
  14. 2
      out/articles/test articles/test2.article
  15. 24
      out/articles/test articles/test2.article.html
  16. 2
      out/articles/test articles/test3.article
  17. 24
      out/articles/test articles/test3.article.html
  18. 42
      out/error.html
  19. 6
      out/images/DIRECTORY_LISTING
  20. 82
      out/otherpage.html
  21. 47
      out/reset.css
  22. 49
      out/sig.css
  23. 42
      out/testfile.html
  24. 42
      out/uploadform.html
  25. 20
      ref/COMMENT.html
  26. 1
      ref/DEFAULT.html
  27. BIN
      sigPlace.class
  28. 2
      sigPlace.java
  29. BIN
      sigServer.class
  30. 26
      sigServer.java

@ -1,5 +1,7 @@
2
3
First!
Sig2022-08-01T15:32:36.648104Z[Etc/UTC];MAGENTA
Second!<br/>
Sig2022-08-01T16:00:26.660317Z[Etc/UTC];RED
No%20more%20caching%2C%20yay!%E2%9D%A4%EF%B8%8F
Cache%20Gone!2022-08-03T18:10:04.363363Z[Etc/UTC];RED

@ -1,4 +1,4 @@
4
7
New%20article%20test%20hype!<br/><br/>First!
New%20article%20comment2022-07-27T20:28:16.622522Z[Etc/UTC];GREEN
%5EI%5E%20*am*_%20now_~%20testing~%20%5Ball%5D%20the%20tags.%F0%9F%98%8A%F0%9F%98%94%F0%9F%91%8D%E2%9D%A4%EF%B8%8F%F0%9F%98%A1
@ -7,3 +7,9 @@ Test%20Tags2022-07-28T18:35:21.171183Z[Etc/UTC];RED
2022-07-28T19:02:38.122403Z[Etc/UTC];GREEN
2022-07-29T15:47:26.100365Z[Etc/UTC];GREEN
Sounds%20good!
Sig2022-08-03T18:06:00.465963Z[Etc/UTC];MAGENTA
no%20cache%20test%3F
test2022-08-03T18:09:36.469541Z[Etc/UTC];CYAN
%F0%9F%91%8D
Sig2022-08-03T18:09:45.125821Z[Etc/UTC];WHITE

@ -1,4 +1,4 @@
57
79
That is a great idea!
username,17May2021 08:29:10;GREEN
That is a great idea! &lt;p>There used to be folks I worked with who would use the same technique, and it worked great!&lt;/p>
@ -71,11 +71,11 @@ fdsa2022-07-28T19:25:51.209453Z[Etc/UTC];GREEN
2022-07-28T19:57:21.107759Z[Etc/UTC];GREEN
%255ETest%255E
2022-07-28T19:58:17.524846Z[Etc/UTC];GREEN
~<pre><span class="keyword">opefully</span> <span class="keyword">this</span> <span class="keyword">code</span> <span class="keyword">block</span> <span class="keyword">has</span> <span class="keyword">no</span> <span class="keyword">extra</span> <span class="class">endings</span>.<span class="variable"></span></~
~<pre><span class="keyword">opefully</span> <span class="keyword">this</span> <span class="keyword">code</span> <span class="keyword">block</span> <span class="keyword">has</span> <span class="keyword">no</span> <span class="keyword">extra</span> <span class="class">endings</span>.<span class="variable"></span></pre>~
2022-07-28T20:07:22.711422Z[Etc/UTC];GREEN
~<pre><span class="keyword">I</span> <span class="keyword">think</span> <span class="keyword">the</span> <span class="keyword">front</span> <span class="keyword">one</span> <span class="keyword">is</span> <span class="keyword">still</span> <span class="variable">there</span></~
~<pre><span class="keyword">I</span> <span class="keyword">think</span> <span class="keyword">the</span> <span class="keyword">front</span> <span class="keyword">one</span> <span class="keyword">is</span> <span class="keyword">still</span> <span class="variable">there</span></pre>~
2022-07-28T20:08:50.191504Z[Etc/UTC];GREEN
<pre><span class="keyword">Code</span> <span class="keyword">block</span> <span class="keyword">now</span> <span class="variable">works</span>!</
<pre><span class="keyword">Code</span> <span class="keyword">block</span> <span class="keyword">now</span> <span class="variable">works</span>!</pre>
2022-07-28T20:13:09.268431Z[Etc/UTC];GREEN
Very%20nice%2C%20thanks%20for%20sharing!
Sig2022-08-01T16:02:59.075004Z[Etc/UTC];GREEN
@ -99,11 +99,11 @@ dfsafdsa2022-08-01T16:08:18.820345Z[Etc/UTC];GREEN
2022-08-01T16:08:24.546240Z[Etc/UTC];GREEN
fdsa
2022-08-01T16:08:28.154518Z[Etc/UTC];GREEN
<pre><span class="keyword">Cool</span> <span class="keyword">stuff</span> <span class="variable">man</span></
<pre><span class="keyword">Cool</span> <span class="keyword">stuff</span> <span class="variable">man</span></pre>
2022-08-01T16:08:43.853845Z[Etc/UTC];GREEN
<b>Bold%20Text</b>
vdsavdsa2022-08-01T16:11:13.185418Z[Etc/UTC];GREEN
<pre>//<span class="keyword">Code</span> <span class="keyword">goes</span> <span class="class">here</span>.<span class="variable"></span></
<pre>//<span class="keyword">Code</span> <span class="keyword">goes</span> <span class="class">here</span>.<span class="variable"></span></pre>
vdsavdsav2022-08-01T16:11:23.726618Z[Etc/UTC];GREEN
<i>Italic%20Text</i>
vdsavdsavdsa2022-08-01T16:11:29.316553Z[Etc/UTC];GREEN
@ -111,5 +111,43 @@ dva<u>avsdv</u>dasv
2022-08-01T16:11:33.383089Z[Etc/UTC];GREEN
<a href="http%3A%2F%2Flink.%F0%9F%98%8Acom">http%3A%2F%2Flink.%F0%9F%98%8Acom</a>
2022-08-01T16:11:42.223754Z[Etc/UTC];GREEN
<pre>//<span class="keyword">Code</span> <span class="variable">go</span>😔<span class="keyword">es</span> <span class="class">here</span>.<span class="variable"></span></
<pre>//<span class="keyword">Code</span> <span class="variable">go</span>😔<span class="keyword">es</span> <span class="class">here</span>.<span class="variable"></span></pre>
2022-08-01T16:11:57.246254Z[Etc/UTC];GREEN
Thanks%20for%20fixing%20all%20of%20this!<br/><pre><span class="keyword">if</span> <span class="function"></span>(<span class="function">bugsAreGone</span>(<span class="variable"></span>)) {&lt;br/> <span class="function">printf</span>(<span class="string">"Everyone's happy now!"</span>);&lt;br/>}</pre>
Sig2022-08-03T18:13:00.406708Z[Etc/UTC];GREEN
<pre>&lt;br/><span class="keyword">Manually</span> <span class="keyword">typing</span> <span class="keyword">in</span> <span class="variable">multi</span>-<span class="keyword">line</span> <span class="keyword">code</span> <span class="string">'t work?&lt;br/></pre>
2022-08-03T18:13:34.424600Z[Etc/UTC];GREEN
<pre>//<span class="keyword">Code</span> <span class="keyword">goes</span> <span class="class">here</span>.<span class="variable"></span></pre>
2022-08-03T18:13:54.283725Z[Etc/UTC];GREEN
<pre><span class="keyword">import</span> <span class="class">java</span>.<span class="class">io</span>.<span class="keyword">IOException</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">charset</span>.<span class="keyword">Charset</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">CopyOption</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">Files</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">Path</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">Paths</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">StandardCopyOption</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">StandardOpenOption</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">AbstractMap</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">ArrayList</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">HashMap</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">Iterator</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">List</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">Map</span>;<span class="variable"></span>&lt;br/><span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="class">regex</span>.<span class="keyword">Pattern</span>;<span class="variable"></span></pre>
2022-08-03T18:21:50.961875Z[Etc/UTC];GREEN
<pre>//<span class="keyword">Code</span> <span class="keyword">goes</span> <span class="class">here</span>.<span class="variable"></span></
2022-08-03T18:32:40.406646Z[Etc/UTC];GREEN
<pre> }\NEWLINE\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> <span class="function">isHTMLFile</span>(<span class="keyword">Path</span> <span class="variable">f</span>) {\NEWLINE\ <span class="keyword">return</span> <span class="class">f</span>.<span class="function">getFileName</span>(<span class="variable"></span>).<span class="function">toString</span>().<span class="function">contains</span>(<span class="string">".html"</span>);\NEWLINE\ }\NEWLINE\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="function">ExportCodeFile</span>(<span class="variable"></span>) {\NEWLINE\ <span class="keyword">try</span> <span class="variable"></span>{\NEWLINE\ <span class="keyword">Path</span> <span class="keyword">file</span> <span class="variable"></span>= <span class="class">Paths</span>.<span class="function">get</span>(<span class="string">"sigServer.java"</span>);\NEWLINE\ List&<span class="keyword">lt</span>;String> <span class="keyword">data</span> <span class="variable"></span>= <span class="class">Files</span>.<span class="function">readAllLines</span>(file);\NEWLINE\ <span class="keyword">int</span> <span class="variable">i</span>=<span class="number">0</span>;\NEWLINE\ <span class="keyword">while</span> <span class="function"></span>(<span class="variable"></span>!<span class="class">data</span>.<span class="function">get</span>(i++).<span class="function">contains</span>(<span class="string">"sigServer()"</span>)&&i&<span class="keyword">lt</span>;<span class="class">data</span>.<span class="function">size</span>());\NEWLINE\ <span class="keyword">if</span> <span class="function"></span>(<span class="variable">i</span>&<span class="keyword">lt</span>;<span class="class">data</span>.<span class="function">size</span>()) {\NEWLINE\ <span class="class">Files</span>.<span class="function">write</span>(<span class="class">Paths</span>.<span class="function">get</span>(OUTDIR,<span class="string">"codeBackground"</span>),<span class="class">data</span>.<span class="function">subList</span>(i, <span class="class">Math</span>.<span class="function">min</span>(i+<span class="number">40</span>,<span class="class">data</span>.<span class="function">size</span>())),<span class="class">Charset</span>.<span class="function">defaultCharset</span>(),<span class="class">StandardOpenOption</span>.CREATE,<span class="class">StandardOpenOption</span>.TRUNCATE_EXISTING,<span class="class">StandardOpenOption</span>.WRITE);\NEWLINE\ }\NEWLINE\ } <span class="keyword">catch</span> <span class="function"></span>(<span class="keyword">IOException</span> <span class="variable">e</span>) {\NEWLINE\ <span class="class">e</span>.<span class="function">printStackTrace</span>();\NEWLINE\ }\NEWLINE\ </
2022-08-03T18:35:46.882477Z[Etc/UTC];GREEN
<pre><span class="keyword">n</span> <span class="class">f</span>.<span class="function">getFileName</span>(<span class="variable"></span>).<span class="function">toString</span>().<span class="function">contains</span>(<span class="string">".article"</span>);\\NEWLINE\\ }\\NEWLINE\\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> <span class="function">isHTMLFile</span>(<span class="keyword">Path</span> <span class="variable">f</span>) {\\NEWLINE\\ <span class="keyword">return</span> <span class="class">f</span>.<span class="function">getFileName</span>(<span class="variable"></span>).<span class="function">toString</span>().<span class="function">contains</span>(<span class="string">".html"</span>);\\NEWLINE\\ }\\NEWLINE\\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="function">ExportCodeFile</span>(<span class="variable"></span>) {\\NEWLINE\\ <span class="keyword">try</span> <span class="variable"></span>{\\NEWLINE\\ <span class="keyword">Path</span> <span class="keyword">file</span> <span class="variable"></span>= <span class="class">Paths</span>.<span class="function">get</span>(<span class="string">"sigServer.java"</span>);\\NEWLINE\\ List&<span class="keyword">lt</span>;String> <span class="keyword">data</span> <span class="variable"></span>= <span class="class">Files</span>.<span class="function">readAllLines</span>(file);\\NEWLINE\\ <span class="keyword">int</span> <span class="variable">i</span>=<span class="number">0</span>;\\NEWLINE\\ <span class="keyword">while</span> <span class="function"></span>(<span class="variable"></span>!<span class="class">data</span>.<span class="function">get</span>(i++).<span class="function">contains</span>(<span class="string">"sigServer()"</span>)&&i&<span class="keyword">lt</span>;<span class="class">data</span>.<span class="function">size</span>());\\NEWLINE\\ <span class="keyword">if</span> <span class="function"></span>(<span class="variable">i</span>&<span class="keyword">lt</span>;<span class="class">data</span>.<span class="function">size</span>()) {\\NEWLINE\\ <span class="class">Files</span>.<span class="function">write</span>(<span class="class">Paths</span>.<span class="function">get</span>(OUTDIR,<span class="string">"codeBackground"</span>),<span class="class">data</span>.<span class="function">subList</span>(i, <span class="class">Math</span>.<span class="function">min</span>(i+<span class="number">40</span>,<span class="class">data</span>.<span class="function">size</span>())),<span class="class">Charset</span>.<span class="function">defaultCharset</span>(),<span class="class">StandardOpenOption</span>.CREATE,<span class="class">StandardOpenOption</span>.TRUNCATE_EXISTING,<span class="class">StandardOpenOption</span>.WRITE);\\NEWLINE\\ }\\NEWLINE\\ } <span class="keyword">catch</span> <span class="function"></span>(<span class="keyword">IOException</span> <span class="variable">e</span>) {\\NEWLINE\\ <span class="class">e</span>.<span class="function">printStackTrace</span>();\\NEWLINE\\ }\\NEWLINE\\ \\NEWLINE\\ }</
2022-08-03T18:37:10.677390Z[Etc/UTC];GREEN
And%20\\NEWLINE\\does%20this\\NEWLINE\\\\NEWLINE\\<b>still%20work%3F</b>
2022-08-03T18:39:39.225735Z[Etc/UTC];GREEN
test%0A%0A1%20%0A<u>%0A2%0A%0A3</u>
2022-08-03T18:40:47.061604Z[Etc/UTC];GREEN
<pre>}\\NEWLINE\\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> <span class="function">isHTMLFile</span>(<span class="keyword">Path</span> <span class="variable">f</span>) {\\NEWLINE\\ <span class="keyword">return</span> <span class="class">f</span>.<span class="function">getFileName</span>(<span class="variable"></span>).<span class="function">toString</span>().<span class="function">contains</span>(<span class="string">".html"</span>);\\NEWLINE\\ }\\NEWLINE\\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="function">ExportCodeFile</span>(<span class="variable"></span>) {\\NEWLINE\\ <span class="keyword">try</span> <span class="variable"></span>{\\NEWLINE\\ <span class="keyword">Path</span> <span class="keyword">file</span> <span class="variable"></span>= <span class="class">Paths</span>.<span class="function">get</span>(<span class="string">"si</pre
2022-08-03T18:40:56.697256Z[Etc/UTC];GREEN
Nice%2C%20looks%20good%20now.%0A%0AHooray!
2022-08-03T18:43:19.328126Z[Etc/UTC];GREEN
<pre>//<span class="keyword">Code</span> <span class="keyword">goes</span> <span class="class">here</span>.<span class="variable"></span></%0A%0ABut%20this%20code%20block%20is%20better%3A%0A%0A<pre> .<span class="function">append</span>(<span class="class">Files</span>.<span class="function">getOwner</span>(f))\\NEWLINE\\ .<span class="function">append</span>(<span class="string">"\t"</span>)\\NEWLINE\\ .<span class="function">append</span>(<span class="class">Files</span>.<span class="function">size</span>(f))\\NEWLINE\\ .<span class="function">append</span>(<span class="string">"&lt;/div>\n"</span>);\\NEWLINE\\ }\\NEWLINE\\ <span class="keyword">for</span> <span class="function"></span>(<span class="keyword">String</span> <span class="keyword">d</span> <span class="variable"></span>: data2) {\\NEWLINE\\ <span class="keyword">for</span> <span class="function"></span>(<span class="keyword">String</span> <span class="keyword">k</span> <span class="variable"></span>: <span class="class">sigPlace</span>.<span class="class">map</span>.<span class="function">keySet</span>()) {\\NEWLINE\\ d=<span class="class">d</span>.<span class="function">replaceAll</span>(<span class="class">Pattern</span>.<span class="function">quote</span>(k),<span class="class">sigPlace</span>.<span class="class">map</span>.<span class="function">get</span>(k));\\NEWLINE\\ }\\NEWLINE\\ <span class="class">sb</span>.<span class="function">append</span>(d).<span class="function">append</span>(<span class="string">"\n"</span>);\\NEWLINE\\ }\\NEWLINE\\ <span class="keyword">Path</span> <span class="keyword">newf</span> <span class="variable"></span>= <span class="class">Files</span>.<span class="function">write</span>(<span class="class">Paths</span>.<span class="function">get</span>(OUTDIR,key,DIRECTORYLISTING_FILENAME),<span class="class">sb</span>.<span class="function">toString</span>().<span class="function">getBytes</span>());\\NEWLINE\\ <span class="class">System</span>.<span class="class">out</span>.<span class="function">println</span>(<span class="string">" Added info for ("</span>+<span class="class">map</span>.<span class="function">size</span>()+<span class="string">") files to "</span>+<span class="class">newf</span>.<span class="function">toAbsolutePath</span>());\\NEWLINE\\ }\\NEWLINE\\ }\\NEWLINE\\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> <span class="function">isArticleFile</span>(<span class="keyword">Path</span> <span class="variable">f</span>) {\\NEWLINE\\ <span class="keyword">return</span> <span class="class">f</span>.<span class="function">getFileName</span>(<span class="variable"></span>).<span class="function">toString</span>().<span class="function">contains</span>(<span class="string">".article"</span>);\\NEWLINE\\ }\\NEWLINE\\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> <span class="function">isHTMLFile</span>(<span class="keyword">Path</span> <span class="variable">f</span>) {\\NEWLINE\\ <span class="keyword">return</span> <span class="class">f</span>.<span class="function">getFileName</span>(<span class="variable"></span>).<span class="function">toString</span>().<span class="function">contains</span>(<span class="string">".html"</span>);\\NEWLINE\\ }\\NEWLINE\\ <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="function">ExportCodeFile</span>(<span class="variable"></span>) {\\NEWLINE\\ <span class="keyword">try</span> <span class="variable"></span>{</
2022-08-03T18:43:38.560701Z[Etc/UTC];GREEN
<pre><span class="keyword">ort</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">AbstractMap</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">ArrayList</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">HashMap</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">Iterator</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">List</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">Map</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="class">regex</span>.<span class="keyword">Pattern</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">public</span> <span class="keyword">class</span> <span class="keyword">sigPlace</span> </pre>
2022-08-03T18:49:58.367173Z[Etc/UTC];GREEN
<pre>//<span class="keyword">Code</span> <span class="keyword">goes</span> </pre>%0A%0ABut%20this%20is%20better%3A%0A%0A<pre> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">Path</span>;\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">Paths</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">StandardCopyOption</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">file</span>.<span class="keyword">StandardOpenOption</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">AbstractMap</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">ArrayList</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.<span class="keyword">HashMap</span>;<span class="variable"></span>\\NEWLINE\\<span class="keyword">import</span> <span class="class">java</span>.<span class="class">util</span>.</pre>
2022-08-03T18:50:34.311757Z[Etc/UTC];GREEN
<b>testomg</b>%0A%0Amultiple%0A%0Alines%20<u>make%20sure</u>%20it%20works%0A%0A%F0%9F%98%8A
2022-08-03T18:50:53.534777Z[Etc/UTC];GREEN
Awesomeness
2022-08-03T18:51:18.626238Z[Etc/UTC];BLUE
HOME%0ABLOG%0AARCADE%0ASTREAM%0A%F0%9F%94%B4%20LIVE%0ACODING%20SERVICES%0ADISCORD%0AGITHUB
2022-08-03T18:55:16.129190Z[Etc/UTC];GREEN
fdsa
2022-08-03T18:55:29.796811Z[Etc/UTC];WHITE
dsavsavdsavdsa%0A%0A%0Aefwqfewqfewq%20%F0%9F%91%8D
2022-08-03T18:57:35.135137Z[Etc/UTC];GREEN

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -17,15 +17,15 @@
</head>
<body>
<div class="contentBody">
<h2>Directory Listing for /</h2><div class="folderlisting"><a href="/.." class="icon">&#x1F4C1;</a><a href="/..">.. </a><a href="/.." class="nounderline">(Previous Directory)</a></div><div class="filelisting"><a href="/reset.css" class="icon">&#x1F5CE;</a><a href="/reset.css">reset.css</a> 2022-08-03T00:19:30.767688917Z niconiconii 1092</div>
<div class="folderlisting"><a href="/articles" class="icon">&#x1F4C1;</a><a href="/articles">articles</a> 2022-08-03T00:19:31.375677425Z niconiconii 4096</div>
<div class="filelisting"><a href="/uploadform.html" class="icon">&#x1F5CE;</a><a href="/uploadform.html">uploadform.html</a> 2022-08-03T00:19:31.255679694Z niconiconii 1705</div>
<div class="filelisting"><a href="/error.html" class="icon">&#x1F5CE;</a><a href="/error.html">error.html</a> 2022-08-03T00:19:31.255679694Z niconiconii 1670</div>
<div class="filelisting"><a href="/sig.css" class="icon">&#x1F5CE;</a><a href="/sig.css">sig.css</a> 2022-08-03T00:19:31.239679996Z niconiconii 10595</div>
<div class="filelisting"><a href="/testfile.html" class="icon">&#x1F5CE;</a><a href="/testfile.html">testfile.html</a> 2022-08-03T00:19:31.259679617Z niconiconii 1625</div>
<div class="filelisting"><a href="/otherpage.html" class="icon">&#x1F5CE;</a><a href="/otherpage.html">otherpage.html</a> 2022-08-03T00:19:31.291679013Z niconiconii 88368</div>
<div class="folderlisting"><a href="/images" class="icon">&#x1F4C1;</a><a href="/images">images</a> 2022-08-03T00:19:31.371677501Z niconiconii 4096</div>
<div class="filelisting"><a href="/codeBackground" class="icon">&#x1F5CE;</a><a href="/codeBackground">codeBackground</a> 2022-08-03T00:19:31.255679694Z niconiconii 2635</div>
<h2>Directory Listing for /</h2><div class="folderlisting"><a href="/.." class="icon">&#x1F4C1;</a><a href="/..">.. </a><a href="/.." class="nounderline">(Previous Directory)</a></div><div class="folderlisting"><a href="/articles" class="icon">&#x1F4C1;</a><a href="/articles">articles</a> 2022-08-03T18:57:16.515175Z gitpod 4096</div>
<div class="filelisting"><a href="/codeBackground" class="icon">&#x1F5CE;</a><a href="/codeBackground">codeBackground</a> 2022-08-03T18:57:16.411175Z gitpod 2635</div>
<div class="filelisting"><a href="/error.html" class="icon">&#x1F5CE;</a><a href="/error.html">error.html</a> 2022-08-03T18:57:16.439175Z gitpod 1674</div>
<div class="folderlisting"><a href="/images" class="icon">&#x1F4C1;</a><a href="/images">images</a> 2022-08-03T18:57:16.507175Z gitpod 77</div>
<div class="filelisting"><a href="/otherpage.html" class="icon">&#x1F5CE;</a><a href="/otherpage.html">otherpage.html</a> 2022-08-03T18:57:16.447175Z gitpod 88372</div>
<div class="filelisting"><a href="/reset.css" class="icon">&#x1F5CE;</a><a href="/reset.css">reset.css</a> 2022-08-03T18:57:16.419175Z gitpod 1092</div>
<div class="filelisting"><a href="/sig.css" class="icon">&#x1F5CE;</a><a href="/sig.css">sig.css</a> 2022-08-03T18:57:16.431175Z gitpod 10595</div>
<div class="filelisting"><a href="/testfile.html" class="icon">&#x1F5CE;</a><a href="/testfile.html">testfile.html</a> 2022-08-03T18:57:16.447175Z gitpod 1629</div>
<div class="filelisting"><a href="/uploadform.html" class="icon">&#x1F5CE;</a><a href="/uploadform.html">uploadform.html</a> 2022-08-03T18:57:16.447175Z gitpod 1709</div>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -17,13 +17,13 @@
</head>
<body>
<div class="contentBody">
<h2>Directory Listing for /articles/</h2><div class="folderlisting"><a href="/articles/.." class="icon">&#x1F4C1;</a><a href="/articles/..">.. </a><a href="/articles/.." class="nounderline">(Previous Directory)</a></div><div class="filelisting"><a href="/articles/sigplace1.article" class="icon">&#x1F5CE;</a><a href="/articles/sigplace1.article">sigplace1.article</a> 2022-08-03T00:19:31.199680752Z niconiconii 80858</div>
<div class="filelisting"><a href="/articles/Love Live! Custom Arcade Controller.article.html" class="icon">&#x1F5CE;</a><a href="/articles/Love Live! Custom Arcade Controller.article.html">Love Live! Custom Arcade Controller.article.html</a> 2022-08-03T00:19:31.363677652Z niconiconii 9150</div>
<div class="filelisting"><a href="/articles/sigplace1.article.html" class="icon">&#x1F5CE;</a><a href="/articles/sigplace1.article.html">sigplace1.article.html</a> 2022-08-03T00:19:31.319678484Z niconiconii 89459</div>
<div class="filelisting"><a href="/articles/curabitur vel tempus ex.article" class="icon">&#x1F5CE;</a><a href="/articles/curabitur vel tempus ex.article">curabitur vel tempus ex.article</a> 2022-08-03T00:19:31.199680752Z niconiconii 730</div>
<div class="folderlisting"><a href="/articles/test articles" class="icon">&#x1F4C1;</a><a href="/articles/test articles">test articles</a> 2022-08-03T00:19:31.351677879Z niconiconii 4096</div>
<div class="filelisting"><a href="/articles/curabitur vel tempus ex.article.html" class="icon">&#x1F5CE;</a><a href="/articles/curabitur vel tempus ex.article.html">curabitur vel tempus ex.article.html</a> 2022-08-03T00:19:31.331678257Z niconiconii 9359</div>
<div class="filelisting"><a href="/articles/Love Live! Custom Arcade Controller.article" class="icon">&#x1F5CE;</a><a href="/articles/Love Live! Custom Arcade Controller.article">Love Live! Custom Arcade Controller.article</a> 2022-08-03T00:19:31.203680677Z niconiconii 497</div>
<h2>Directory Listing for /articles/</h2><div class="folderlisting"><a href="/articles/.." class="icon">&#x1F4C1;</a><a href="/articles/..">.. </a><a href="/articles/.." class="nounderline">(Previous Directory)</a></div><div class="filelisting"><a href="/articles/Love Live! Custom Arcade Controller.article" class="icon">&#x1F5CE;</a><a href="/articles/Love Live! Custom Arcade Controller.article">Love Live! Custom Arcade Controller.article</a> 2022-08-03T18:57:15.947175Z gitpod 497</div>
<div class="filelisting"><a href="/articles/curabitur vel tempus ex.article" class="icon">&#x1F5CE;</a><a href="/articles/curabitur vel tempus ex.article">curabitur vel tempus ex.article</a> 2022-08-03T18:57:15.971175Z gitpod 730</div>
<div class="filelisting"><a href="/articles/sigplace1.article" class="icon">&#x1F5CE;</a><a href="/articles/sigplace1.article">sigplace1.article</a> 2022-08-03T18:57:16.407175Z gitpod 80858</div>
<div class="folderlisting"><a href="/articles/test articles" class="icon">&#x1F4C1;</a><a href="/articles/test articles">test articles</a> 2022-08-03T18:57:16.499175Z gitpod 147</div>
<div class="filelisting"><a href="/articles/Love Live! Custom Arcade Controller.article.html" class="icon">&#x1F5CE;</a><a href="/articles/Love Live! Custom Arcade Controller.article.html">Love Live! Custom Arcade Controller.article.html</a> 2022-08-03T18:57:16.451175Z gitpod 10271</div>
<div class="filelisting"><a href="/articles/curabitur vel tempus ex.article.html" class="icon">&#x1F5CE;</a><a href="/articles/curabitur vel tempus ex.article.html">curabitur vel tempus ex.article.html</a> 2022-08-03T18:57:16.463175Z gitpod 10480</div>
<div class="filelisting"><a href="/articles/sigplace1.article.html" class="icon">&#x1F5CE;</a><a href="/articles/sigplace1.article.html">sigplace1.article.html</a> 2022-08-03T18:57:16.483175Z gitpod 90580</div>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -50,6 +50,20 @@ For over a year since I first got into <u>Love Live! School Idol Festival ~after
document.getElementById("submit").style.borderColor=document.getElementById("msg").style.borderColor=document.getElementById("name").style.borderColor=document.getElementById("col").style.borderColor=document.getElementById("col").options[document.getElementById("col").selectedIndex].text
}
function submit() {
if (document.getElementById("msg").value.length>1000) {
alert("Your message is longer than 1000 characters!");
return;
}
if (document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="GREEN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="RED"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="YELLOW"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="BLUE"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="MAGENTA"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="CYAN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="WHITE") {
alert("You chose an invalid color!");
return;
}
document.getElementById("submit").disabled=
document.getElementById("name").disabled=
document.getElementById("col").disabled=
@ -57,7 +71,7 @@ For over a year since I first got into <u>Love Live! School Idol Festival ~after
fetch("/COMMENTS?submit=true&article=Love Live! Custom Arcade Controller.comment&message="+encodeURIComponent(document.getElementById("msg").value)+"&name="
+encodeURIComponent(document.getElementById("name").value)+"&color="
+encodeURIComponent(document.getElementById("col").options[document.getElementById("col").selectedIndex].text)
).then((data)=>data.text())
, {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
document.getElementById("msg").value=""
document.getElementById("name").value=""
@ -148,7 +162,7 @@ For over a year since I first got into <u>Love Live! School Idol Festival ~after
</div>
<script type="text/javascript">
function fetchComments() {
fetch("/COMMENTS?article=Love Live! Custom Arcade Controller.comment").then((data)=>data.text())
fetch("/COMMENTS?article=Love Live! Custom Arcade Controller.comment", {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
data=data.split("\n");
if (!isNaN(Number(data[0]))) {
@ -156,7 +170,7 @@ For over a year since I first got into <u>Love Live! School Idol Festival ~after
document.getElementById("commentCounter").innerText=data[0]
for (var i=data.length-3;i>=1;i-=2) {
if (data[i].trim().length>0&&data[i+1].trim().length>0) {
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i])+"</div><br>"
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i]).replaceAll("\n","<br/>").replaceAll("\\\\NEWLINE\\\\","\n")+"</div><br>"
data2=data[i+1].split(";");
document.getElementById("msg"+((i+1)/2)).style.borderColor=data2[1]
document.getElementById("comments").innerHTML+="<div class=\"commentInfo\"><sup>- "+decodeURIComponent(data2[0])+"</sup></div></div><br>"

@ -1,9 +1,9 @@
<div class="contentWrapper"><h1>Curabitur vel tempus ex</h1><div class="content" id="content_out/articles/curabitur vel tempus ex.article">
<p class="color5">
<p class="color1">
Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut. Nullam odio purus, tristique non turpis sit amet, malesuada ultricies purus. Mauris ut nulla nisl. Aenean sit amet est egestas justo volutpat consequat. Suspendisse in sagittis augue, et mattis tortor. Nullam viverra metus et nibh fringilla iaculis.
</p>
<br/>
<p class="color5">
<p class="color2">
<pre>
&lt;>&lt;Test><span class="string">"&lt;/test>&lt;/test2>&lt;test3>"</span>
</pre>

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -38,11 +38,11 @@
getLiveStatus()
</script>
<div class="contentWrapper"><h1>Curabitur vel tempus ex</h1><div class="expandedContent" id="content_out/articles/curabitur vel tempus ex.article">
<p class="color5">
<p class="color1">
Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut. Nullam odio purus, tristique non turpis sit amet, malesuada ultricies purus. Mauris ut nulla nisl. Aenean sit amet est egestas justo volutpat consequat. Suspendisse in sagittis augue, et mattis tortor. Nullam viverra metus et nibh fringilla iaculis.
</p>
<br/>
<p class="color5">
<p class="color2">
<pre>
&lt;>&lt;Test><span class="string">"&lt;/test>&lt;/test2>&lt;test3>"</span>
</pre>
@ -54,6 +54,20 @@ Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut.
document.getElementById("submit").style.borderColor=document.getElementById("msg").style.borderColor=document.getElementById("name").style.borderColor=document.getElementById("col").style.borderColor=document.getElementById("col").options[document.getElementById("col").selectedIndex].text
}
function submit() {
if (document.getElementById("msg").value.length>1000) {
alert("Your message is longer than 1000 characters!");
return;
}
if (document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="GREEN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="RED"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="YELLOW"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="BLUE"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="MAGENTA"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="CYAN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="WHITE") {
alert("You chose an invalid color!");
return;
}
document.getElementById("submit").disabled=
document.getElementById("name").disabled=
document.getElementById("col").disabled=
@ -61,7 +75,7 @@ Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut.
fetch("/COMMENTS?submit=true&article=curabitur vel tempus ex.comment&message="+encodeURIComponent(document.getElementById("msg").value)+"&name="
+encodeURIComponent(document.getElementById("name").value)+"&color="
+encodeURIComponent(document.getElementById("col").options[document.getElementById("col").selectedIndex].text)
).then((data)=>data.text())
, {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
document.getElementById("msg").value=""
document.getElementById("name").value=""
@ -152,7 +166,7 @@ Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut.
</div>
<script type="text/javascript">
function fetchComments() {
fetch("/COMMENTS?article=curabitur vel tempus ex.comment").then((data)=>data.text())
fetch("/COMMENTS?article=curabitur vel tempus ex.comment", {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
data=data.split("\n");
if (!isNaN(Number(data[0]))) {
@ -160,7 +174,7 @@ Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut.
document.getElementById("commentCounter").innerText=data[0]
for (var i=data.length-3;i>=1;i-=2) {
if (data[i].trim().length>0&&data[i+1].trim().length>0) {
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i])+"</div><br>"
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i]).replaceAll("\n","<br/>").replaceAll("\\\\NEWLINE\\\\","\n")+"</div><br>"
data2=data[i+1].split(";");
document.getElementById("msg"+((i+1)/2)).style.borderColor=data2[1]
document.getElementById("comments").innerHTML+="<div class=\"commentInfo\"><sup>- "+decodeURIComponent(data2[0])+"</sup></div></div><br>"

@ -1,39 +1,39 @@
<div class="contentWrapper"><h1>Welcome to SigPlace!</h1><div class="content" id="content_out/articles/sigplace1.article">
<p class="color1">
<p class="color2">
This is a SigPlace article! It will contain information that is important (probably) and will be layed out as such.
</p>
<p class="color1">
<p class="color3">
Paragraphs are automatically split up for readability and generated correctly via the parser. There's quite a bit of flexibility with the system and makes it easy to post updates should they be required.
</p>
<p class="color2">
<p class="color3">
A lot of content management systems would do this by having a web interface and submitting content and managing it that way, but by coding my own management system and using the built-in OS' filesystem to handle the work, I save myself a lot of pains and headaches.
</p>
<p class="color2">
<p class="color3">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In feugiat, urna ut sollicitudin luctus, nulla magna faucibus mauris, at semper nisl nisi ut mauris. Vestibulum cursus tortor velit, ut congue ex porta in. Nullam hendrerit risus sit amet neque euismod faucibus. Sed ac diam non lectus euismod pulvinar eu non mauris. Donec accumsan nisl efficitur, sodales lectus et, finibus quam. Sed vel consectetur leo. Cras ut condimentum quam. Aliquam molestie viverra congue. Donec scelerisque nibh ac nulla dictum semper. Aliquam id massa a massa bibendum finibus id ac sapien. Integer vitae ullamcorper enim, non semper massa.
</p>
<br/>
<p class="color3">
<p class="color4">
Proin cursus sodales elit, vitae volutpat mi fermentum a. In vitae magna quis leo cursus accumsan id facilisis purus. Vestibulum accumsan iaculis turpis eu sollicitudin. Sed ultricies felis non elit suscipit interdum. Maecenas sollicitudin turpis justo, vel pretium sapien scelerisque eget. Nullam sagittis finibus risus ut aliquam. Praesent quam orci, dapibus ut ex ac, sodales dapibus nunc.
</p>
<br/>
<p class="color3">
<p class="color4">
Fusce magna risus, iaculis non justo sit amet, semper sodales urna. Morbi eu eros lectus. Integer euismod venenatis eros a hendrerit. Nulla ultricies lectus nec quam condimentum fermentum. Quisque a turpis vitae orci pharetra ullamcorper. Nunc fringilla vitae nunc a aliquam. In aliquam gravida massa. Sed imperdiet dignissim sapien, ullamcorper rutrum lacus convallis ut.
</p>
<br/>
<p class="color3">
<p class="color4">
Nunc tortor sem, dapibus mattis varius id, varius eu leo. Phasellus efficitur nulla a diam faucibus, id facilisis lacus malesuada. Nulla condimentum egestas erat a fermentum. Ut interdum dui id est condimentum, vel fermentum nisi ornare. Sed eu rhoncus magna, sit amet finibus eros. In a nibh tincidunt, suscipit tellus eleifend, faucibus mauris. Vestibulum sagittis nisi et efficitur ullamcorper. Donec sodales efficitur ligula id congue. Etiam egestas tristique interdum. Mauris at massa eget metus pellentesque fermentum nec non lacus. Nulla turpis nunc, feugiat vel euismod ac, maximus id est. Praesent cursus elit ac dolor hendrerit lacinia.
</p>
<br/>
<p class="color4">
<p class="color5">
Vestibulum laoreet lorem consequat, mollis augue finibus, luctus libero. Praesent convallis sed velit vitae molestie. Vestibulum nec fringilla tellus, non dictum nulla. Donec tempor ac diam sit amet porta. Quisque mi ex, vulputate ac tincidunt vel, vestibulum vitae orci. Duis gravida mauris eget mauris pulvinar, lobortis tincidunt neque efficitur. Nunc blandit metus vitae faucibus vulputate. Curabitur rhoncus volutpat lorem, sit amet pulvinar ipsum. Fusce ultricies enim odio, a viverra quam tincidunt quis. Aliquam sollicitudin a sapien id efficitur. Proin at finibus elit, id gravida elit. Nulla facilisi. Ut tincidunt, ligula eu pulvinar dapibus, lorem nisl facilisis tellus, in ornare quam dolor quis libero. Pellentesque ut convallis orci. Donec volutpat nunc velit, tristique convallis purus lacinia sit amet. Maecenas porttitor cursus nisl sed porta.
</p>
<br/>
<div><figure style="text-align:center;width:30%;float:right;"><img src="/images/Love_Live!_Logo.png" style="margin:auto;width:100%;"><figcaption>Hello there! You can see this is the Love Live logo indeed! It is quite smol right now but that's okay. Let's keep on going with the text. If the caption is really long and with commas, they will now be combined,,,,,see how that works? Amazing!</figcaption></figure></div>
<p class="color4">
<p class="color5">
Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.
</p>
<br/>
<p class="color4">
<p class="color6">
<pre>
<span class="keyword">import</span> <span class="class">java</span>.<span class="class">io</span>.<span class="keyword">IOException</span>;<span class="variable"></span>
<span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">charset</span>.<span class="keyword">Charset</span>;<span class="variable"></span>

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -38,41 +38,41 @@
getLiveStatus()
</script>
<div class="contentWrapper"><h1>Welcome to SigPlace!</h1><div class="expandedContent" id="content_out/articles/sigplace1.article">
<p class="color1">
<p class="color2">
This is a SigPlace article! It will contain information that is important (probably) and will be layed out as such.
</p>
<p class="color1">
<p class="color3">
Paragraphs are automatically split up for readability and generated correctly via the parser. There's quite a bit of flexibility with the system and makes it easy to post updates should they be required.
</p>
<p class="color2">
<p class="color3">
A lot of content management systems would do this by having a web interface and submitting content and managing it that way, but by coding my own management system and using the built-in OS' filesystem to handle the work, I save myself a lot of pains and headaches.
</p>
<p class="color2">
<p class="color3">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In feugiat, urna ut sollicitudin luctus, nulla magna faucibus mauris, at semper nisl nisi ut mauris. Vestibulum cursus tortor velit, ut congue ex porta in. Nullam hendrerit risus sit amet neque euismod faucibus. Sed ac diam non lectus euismod pulvinar eu non mauris. Donec accumsan nisl efficitur, sodales lectus et, finibus quam. Sed vel consectetur leo. Cras ut condimentum quam. Aliquam molestie viverra congue. Donec scelerisque nibh ac nulla dictum semper. Aliquam id massa a massa bibendum finibus id ac sapien. Integer vitae ullamcorper enim, non semper massa.
</p>
<br/>
<p class="color3">
<p class="color4">
Proin cursus sodales elit, vitae volutpat mi fermentum a. In vitae magna quis leo cursus accumsan id facilisis purus. Vestibulum accumsan iaculis turpis eu sollicitudin. Sed ultricies felis non elit suscipit interdum. Maecenas sollicitudin turpis justo, vel pretium sapien scelerisque eget. Nullam sagittis finibus risus ut aliquam. Praesent quam orci, dapibus ut ex ac, sodales dapibus nunc.
</p>
<br/>
<p class="color3">
<p class="color4">
Fusce magna risus, iaculis non justo sit amet, semper sodales urna. Morbi eu eros lectus. Integer euismod venenatis eros a hendrerit. Nulla ultricies lectus nec quam condimentum fermentum. Quisque a turpis vitae orci pharetra ullamcorper. Nunc fringilla vitae nunc a aliquam. In aliquam gravida massa. Sed imperdiet dignissim sapien, ullamcorper rutrum lacus convallis ut.
</p>
<br/>
<p class="color3">
<p class="color4">
Nunc tortor sem, dapibus mattis varius id, varius eu leo. Phasellus efficitur nulla a diam faucibus, id facilisis lacus malesuada. Nulla condimentum egestas erat a fermentum. Ut interdum dui id est condimentum, vel fermentum nisi ornare. Sed eu rhoncus magna, sit amet finibus eros. In a nibh tincidunt, suscipit tellus eleifend, faucibus mauris. Vestibulum sagittis nisi et efficitur ullamcorper. Donec sodales efficitur ligula id congue. Etiam egestas tristique interdum. Mauris at massa eget metus pellentesque fermentum nec non lacus. Nulla turpis nunc, feugiat vel euismod ac, maximus id est. Praesent cursus elit ac dolor hendrerit lacinia.
</p>
<br/>
<p class="color4">
<p class="color5">
Vestibulum laoreet lorem consequat, mollis augue finibus, luctus libero. Praesent convallis sed velit vitae molestie. Vestibulum nec fringilla tellus, non dictum nulla. Donec tempor ac diam sit amet porta. Quisque mi ex, vulputate ac tincidunt vel, vestibulum vitae orci. Duis gravida mauris eget mauris pulvinar, lobortis tincidunt neque efficitur. Nunc blandit metus vitae faucibus vulputate. Curabitur rhoncus volutpat lorem, sit amet pulvinar ipsum. Fusce ultricies enim odio, a viverra quam tincidunt quis. Aliquam sollicitudin a sapien id efficitur. Proin at finibus elit, id gravida elit. Nulla facilisi. Ut tincidunt, ligula eu pulvinar dapibus, lorem nisl facilisis tellus, in ornare quam dolor quis libero. Pellentesque ut convallis orci. Donec volutpat nunc velit, tristique convallis purus lacinia sit amet. Maecenas porttitor cursus nisl sed porta.
</p>
<br/>
<div><figure style="text-align:center;width:30%;float:right;"><img src="/images/Love_Live!_Logo.png" style="margin:auto;width:100%;"><figcaption>Hello there! You can see this is the Love Live logo indeed! It is quite smol right now but that's okay. Let's keep on going with the text. If the caption is really long and with commas, they will now be combined,,,,,see how that works? Amazing!</figcaption></figure></div>
<p class="color4">
<p class="color5">
Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.
</p>
<br/>
<p class="color4">
<p class="color6">
<pre>
<span class="keyword">import</span> <span class="class">java</span>.<span class="class">io</span>.<span class="keyword">IOException</span>;<span class="variable"></span>
<span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">charset</span>.<span class="keyword">Charset</span>;<span class="variable"></span>
@ -529,6 +529,20 @@ Here we demonstrate the love live logo. But wait, it's literally like in the mid
document.getElementById("submit").style.borderColor=document.getElementById("msg").style.borderColor=document.getElementById("name").style.borderColor=document.getElementById("col").style.borderColor=document.getElementById("col").options[document.getElementById("col").selectedIndex].text
}
function submit() {
if (document.getElementById("msg").value.length>1000) {
alert("Your message is longer than 1000 characters!");
return;
}
if (document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="GREEN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="RED"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="YELLOW"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="BLUE"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="MAGENTA"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="CYAN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="WHITE") {
alert("You chose an invalid color!");
return;
}
document.getElementById("submit").disabled=
document.getElementById("name").disabled=
document.getElementById("col").disabled=
@ -536,7 +550,7 @@ Here we demonstrate the love live logo. But wait, it's literally like in the mid
fetch("/COMMENTS?submit=true&article=sigplace1.comment&message="+encodeURIComponent(document.getElementById("msg").value)+"&name="
+encodeURIComponent(document.getElementById("name").value)+"&color="
+encodeURIComponent(document.getElementById("col").options[document.getElementById("col").selectedIndex].text)
).then((data)=>data.text())
, {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
document.getElementById("msg").value=""
document.getElementById("name").value=""
@ -627,7 +641,7 @@ Here we demonstrate the love live logo. But wait, it's literally like in the mid
</div>
<script type="text/javascript">
function fetchComments() {
fetch("/COMMENTS?article=sigplace1.comment").then((data)=>data.text())
fetch("/COMMENTS?article=sigplace1.comment", {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
data=data.split("\n");
if (!isNaN(Number(data[0]))) {
@ -635,7 +649,7 @@ Here we demonstrate the love live logo. But wait, it's literally like in the mid
document.getElementById("commentCounter").innerText=data[0]
for (var i=data.length-3;i>=1;i-=2) {
if (data[i].trim().length>0&&data[i+1].trim().length>0) {
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i])+"</div><br>"
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i]).replaceAll("\n","<br/>").replaceAll("\\\\NEWLINE\\\\","\n")+"</div><br>"
data2=data[i+1].split(";");
document.getElementById("msg"+((i+1)/2)).style.borderColor=data2[1]
document.getElementById("comments").innerHTML+="<div class=\"commentInfo\"><sup>- "+decodeURIComponent(data2[0])+"</sup></div></div><br>"

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -17,12 +17,12 @@
</head>
<body>
<div class="contentBody">
<h2>Directory Listing for /articles/test articles/</h2><div class="folderlisting"><a href="/articles/test articles/.." class="icon">&#x1F4C1;</a><a href="/articles/test articles/..">.. </a><a href="/articles/test articles/.." class="nounderline">(Previous Directory)</a></div><div class="filelisting"><a href="/articles/test articles/test3.article" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test3.article">test3.article</a> 2022-08-03T00:19:31.203680677Z niconiconii 994</div>
<div class="filelisting"><a href="/articles/test articles/test2.article" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test2.article">test2.article</a> 2022-08-03T00:19:31.203680677Z niconiconii 781</div>
<div class="filelisting"><a href="/articles/test articles/test2.article.html" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test2.article.html">test2.article.html</a> 2022-08-03T00:19:31.347677955Z niconiconii 9374</div>
<div class="filelisting"><a href="/articles/test articles/test3.article.html" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test3.article.html">test3.article.html</a> 2022-08-03T00:19:31.339678105Z niconiconii 9587</div>
<div class="filelisting"><a href="/articles/test articles/test1.article.html" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test1.article.html">test1.article.html</a> 2022-08-03T00:19:31.351677879Z niconiconii 9678</div>
<div class="filelisting"><a href="/articles/test articles/test1.article" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test1.article">test1.article</a> 2022-08-03T00:19:31.203680677Z niconiconii 1085</div>
<h2>Directory Listing for /articles/test articles/</h2><div class="folderlisting"><a href="/articles/test articles/.." class="icon">&#x1F4C1;</a><a href="/articles/test articles/..">.. </a><a href="/articles/test articles/.." class="nounderline">(Previous Directory)</a></div><div class="filelisting"><a href="/articles/test articles/test1.article" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test1.article">test1.article</a> 2022-08-03T18:57:16.407175Z gitpod 1085</div>
<div class="filelisting"><a href="/articles/test articles/test2.article" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test2.article">test2.article</a> 2022-08-03T18:57:16.407175Z gitpod 781</div>
<div class="filelisting"><a href="/articles/test articles/test3.article" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test3.article">test3.article</a> 2022-08-03T18:57:16.411175Z gitpod 994</div>
<div class="filelisting"><a href="/articles/test articles/test1.article.html" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test1.article.html">test1.article.html</a> 2022-08-03T18:57:16.491175Z gitpod 10799</div>
<div class="filelisting"><a href="/articles/test articles/test2.article.html" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test2.article.html">test2.article.html</a> 2022-08-03T18:57:16.495175Z gitpod 10495</div>
<div class="filelisting"><a href="/articles/test articles/test3.article.html" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test3.article.html">test3.article.html</a> 2022-08-03T18:57:16.499175Z gitpod 10708</div>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>

@ -1,5 +1,5 @@
<div class="contentWrapper"><h1>A Test Title</h1><div class="content" id="content_out/articles/test articles/test1.article">
<p class="color1">
<p class="color6">
In dolor erat, malesuada at elit cursus, convallis imperdiet turpis. Ut aliquet magna tellus, at viverra mauris ullamcorper vehicula. Nam quis urna semper magna ornare elementum sed id mauris. Suspendisse faucibus nunc ante, ac rhoncus nisl tristique sed. Vestibulum pretium odio eget scelerisque vestibulum. Aliquam viverra ex ac vestibulum interdum. Donec ligula nunc, dignissim a purus vitae, fermentum laoreet diam. Quisque nec auctor urna. Vestibulum sit amet ligula ullamcorper, congue ipsum et, accumsan ante. Phasellus fermentum, sapien nec pulvinar blandit, elit purus pretium urna, et dapibus orci urna eu metus. Nunc molestie dictum pharetra. Suspendisse luctus felis et ante tristique, vitae commodo diam porttitor. Aliquam orci eros, placerat ac justo vitae, bibendum efficitur metus. Phasellus eget bibendum mauris.
</p>
</div><div class="datebar"></div><div class="date">2 May 2022 10:16AM</div>%CONDITIONAL_EXPAND%</div>

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -38,7 +38,7 @@
getLiveStatus()
</script>
<div class="contentWrapper"><h1>A Test Title</h1><div class="expandedContent" id="content_out/articles/test articles/test1.article">
<p class="color1">
<p class="color6">
In dolor erat, malesuada at elit cursus, convallis imperdiet turpis. Ut aliquet magna tellus, at viverra mauris ullamcorper vehicula. Nam quis urna semper magna ornare elementum sed id mauris. Suspendisse faucibus nunc ante, ac rhoncus nisl tristique sed. Vestibulum pretium odio eget scelerisque vestibulum. Aliquam viverra ex ac vestibulum interdum. Donec ligula nunc, dignissim a purus vitae, fermentum laoreet diam. Quisque nec auctor urna. Vestibulum sit amet ligula ullamcorper, congue ipsum et, accumsan ante. Phasellus fermentum, sapien nec pulvinar blandit, elit purus pretium urna, et dapibus orci urna eu metus. Nunc molestie dictum pharetra. Suspendisse luctus felis et ante tristique, vitae commodo diam porttitor. Aliquam orci eros, placerat ac justo vitae, bibendum efficitur metus. Phasellus eget bibendum mauris.
</p>
</div><div class="datebar"></div><div class="date">2 May 2022 10:16AM</div></div>
@ -48,6 +48,20 @@
document.getElementById("submit").style.borderColor=document.getElementById("msg").style.borderColor=document.getElementById("name").style.borderColor=document.getElementById("col").style.borderColor=document.getElementById("col").options[document.getElementById("col").selectedIndex].text
}
function submit() {
if (document.getElementById("msg").value.length>1000) {
alert("Your message is longer than 1000 characters!");
return;
}
if (document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="GREEN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="RED"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="YELLOW"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="BLUE"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="MAGENTA"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="CYAN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="WHITE") {
alert("You chose an invalid color!");
return;
}
document.getElementById("submit").disabled=
document.getElementById("name").disabled=
document.getElementById("col").disabled=
@ -55,7 +69,7 @@
fetch("/COMMENTS?submit=true&article=test1.comment&message="+encodeURIComponent(document.getElementById("msg").value)+"&name="
+encodeURIComponent(document.getElementById("name").value)+"&color="
+encodeURIComponent(document.getElementById("col").options[document.getElementById("col").selectedIndex].text)
).then((data)=>data.text())
, {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
document.getElementById("msg").value=""
document.getElementById("name").value=""
@ -146,7 +160,7 @@
</div>
<script type="text/javascript">
function fetchComments() {
fetch("/COMMENTS?article=test1.comment").then((data)=>data.text())
fetch("/COMMENTS?article=test1.comment", {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
data=data.split("\n");
if (!isNaN(Number(data[0]))) {
@ -154,7 +168,7 @@
document.getElementById("commentCounter").innerText=data[0]
for (var i=data.length-3;i>=1;i-=2) {
if (data[i].trim().length>0&&data[i+1].trim().length>0) {
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i])+"</div><br>"
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i]).replaceAll("\n","<br/>").replaceAll("\\\\NEWLINE\\\\","\n")+"</div><br>"
data2=data[i+1].split(";");
document.getElementById("msg"+((i+1)/2)).style.borderColor=data2[1]
document.getElementById("comments").innerHTML+="<div class=\"commentInfo\"><sup>- "+decodeURIComponent(data2[0])+"</sup></div></div><br>"

@ -1,5 +1,5 @@
<div class="contentWrapper"><h1>Another test title</h1><div class="content" id="content_out/articles/test articles/test2.article">
<p class="color6">
<p class="color1">
Sed lobortis nisi id nunc tincidunt volutpat. Mauris cursus felis quis condimentum posuere. Pellentesque vitae dolor et justo suscipit ultrices. Integer dapibus leo id felis varius, ut volutpat massa bibendum. Quisque sed nunc arcu. In sit amet faucibus magna, non venenatis massa. Cras sed placerat risus, id consectetur est. Pellentesque in nunc dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget lorem ac urna posuere accumsan. Quisque sed imperdiet nisi.
</p>
</div><div class="datebar"></div><div class="date">1 May 2022 05:13AM</div>%CONDITIONAL_EXPAND%</div>

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -38,7 +38,7 @@
getLiveStatus()
</script>
<div class="contentWrapper"><h1>Another test title</h1><div class="expandedContent" id="content_out/articles/test articles/test2.article">
<p class="color6">
<p class="color1">
Sed lobortis nisi id nunc tincidunt volutpat. Mauris cursus felis quis condimentum posuere. Pellentesque vitae dolor et justo suscipit ultrices. Integer dapibus leo id felis varius, ut volutpat massa bibendum. Quisque sed nunc arcu. In sit amet faucibus magna, non venenatis massa. Cras sed placerat risus, id consectetur est. Pellentesque in nunc dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget lorem ac urna posuere accumsan. Quisque sed imperdiet nisi.
</p>
</div><div class="datebar"></div><div class="date">1 May 2022 05:13AM</div></div>
@ -48,6 +48,20 @@
document.getElementById("submit").style.borderColor=document.getElementById("msg").style.borderColor=document.getElementById("name").style.borderColor=document.getElementById("col").style.borderColor=document.getElementById("col").options[document.getElementById("col").selectedIndex].text
}
function submit() {
if (document.getElementById("msg").value.length>1000) {
alert("Your message is longer than 1000 characters!");
return;
}
if (document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="GREEN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="RED"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="YELLOW"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="BLUE"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="MAGENTA"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="CYAN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="WHITE") {
alert("You chose an invalid color!");
return;
}
document.getElementById("submit").disabled=
document.getElementById("name").disabled=
document.getElementById("col").disabled=
@ -55,7 +69,7 @@
fetch("/COMMENTS?submit=true&article=test2.comment&message="+encodeURIComponent(document.getElementById("msg").value)+"&name="
+encodeURIComponent(document.getElementById("name").value)+"&color="
+encodeURIComponent(document.getElementById("col").options[document.getElementById("col").selectedIndex].text)
).then((data)=>data.text())
, {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
document.getElementById("msg").value=""
document.getElementById("name").value=""
@ -146,7 +160,7 @@
</div>
<script type="text/javascript">
function fetchComments() {
fetch("/COMMENTS?article=test2.comment").then((data)=>data.text())
fetch("/COMMENTS?article=test2.comment", {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
data=data.split("\n");
if (!isNaN(Number(data[0]))) {
@ -154,7 +168,7 @@
document.getElementById("commentCounter").innerText=data[0]
for (var i=data.length-3;i>=1;i-=2) {
if (data[i].trim().length>0&&data[i+1].trim().length>0) {
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i])+"</div><br>"
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i]).replaceAll("\n","<br/>").replaceAll("\\\\NEWLINE\\\\","\n")+"</div><br>"
data2=data[i+1].split(";");
document.getElementById("msg"+((i+1)/2)).style.borderColor=data2[1]
document.getElementById("comments").innerHTML+="<div class=\"commentInfo\"><sup>- "+decodeURIComponent(data2[0])+"</sup></div></div><br>"

@ -1,5 +1,5 @@
<div class="contentWrapper"><h1>And More</h1><div class="content" id="content_out/articles/test articles/test3.article">
<p class="color6">
<p class="color1">
Curabitur suscipit quam tellus, non rhoncus diam vehicula in. Aliquam ut dapibus tortor. Cras accumsan arcu vel ante maximus ornare. Nam tempus fermentum leo maximus euismod. Donec vehicula pretium est a ultrices. Nunc blandit nibh lorem, nec blandit leo posuere quis. Sed mauris ligula, euismod eu aliquam vel, rhoncus eget magna. Proin eget tortor ut ligula suscipit mattis. Integer rutrum aliquet eleifend. Suspendisse leo libero, placerat nec mi id, sagittis malesuada felis. Quisque euismod ante cursus elit lobortis, eu tempus ligula condimentum. Mauris viverra metus et dignissim efficitur. Ut placerat nunc nunc, eu tempus neque ultrices nec. Suspendisse et magna risus. Phasellus in ullamcorper tortor. Sed lobortis ut mi in blandit.
</p>
</div><div class="datebar"></div><div class="date">30 Apr 2022 6:14PM</div>%CONDITIONAL_EXPAND%</div>

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -38,7 +38,7 @@
getLiveStatus()
</script>
<div class="contentWrapper"><h1>And More</h1><div class="expandedContent" id="content_out/articles/test articles/test3.article">
<p class="color6">
<p class="color1">
Curabitur suscipit quam tellus, non rhoncus diam vehicula in. Aliquam ut dapibus tortor. Cras accumsan arcu vel ante maximus ornare. Nam tempus fermentum leo maximus euismod. Donec vehicula pretium est a ultrices. Nunc blandit nibh lorem, nec blandit leo posuere quis. Sed mauris ligula, euismod eu aliquam vel, rhoncus eget magna. Proin eget tortor ut ligula suscipit mattis. Integer rutrum aliquet eleifend. Suspendisse leo libero, placerat nec mi id, sagittis malesuada felis. Quisque euismod ante cursus elit lobortis, eu tempus ligula condimentum. Mauris viverra metus et dignissim efficitur. Ut placerat nunc nunc, eu tempus neque ultrices nec. Suspendisse et magna risus. Phasellus in ullamcorper tortor. Sed lobortis ut mi in blandit.
</p>
</div><div class="datebar"></div><div class="date">30 Apr 2022 6:14PM</div></div>
@ -48,6 +48,20 @@
document.getElementById("submit").style.borderColor=document.getElementById("msg").style.borderColor=document.getElementById("name").style.borderColor=document.getElementById("col").style.borderColor=document.getElementById("col").options[document.getElementById("col").selectedIndex].text
}
function submit() {
if (document.getElementById("msg").value.length>1000) {
alert("Your message is longer than 1000 characters!");
return;
}
if (document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="GREEN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="RED"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="YELLOW"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="BLUE"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="MAGENTA"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="CYAN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="WHITE") {
alert("You chose an invalid color!");
return;
}
document.getElementById("submit").disabled=
document.getElementById("name").disabled=
document.getElementById("col").disabled=
@ -55,7 +69,7 @@
fetch("/COMMENTS?submit=true&article=test3.comment&message="+encodeURIComponent(document.getElementById("msg").value)+"&name="
+encodeURIComponent(document.getElementById("name").value)+"&color="
+encodeURIComponent(document.getElementById("col").options[document.getElementById("col").selectedIndex].text)
).then((data)=>data.text())
, {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
document.getElementById("msg").value=""
document.getElementById("name").value=""
@ -146,7 +160,7 @@
</div>
<script type="text/javascript">
function fetchComments() {
fetch("/COMMENTS?article=test3.comment").then((data)=>data.text())
fetch("/COMMENTS?article=test3.comment", {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
data=data.split("\n");
if (!isNaN(Number(data[0]))) {
@ -154,7 +168,7 @@
document.getElementById("commentCounter").innerText=data[0]
for (var i=data.length-3;i>=1;i-=2) {
if (data[i].trim().length>0&&data[i+1].trim().length>0) {
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i])+"</div><br>"
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i]).replaceAll("\n","<br/>").replaceAll("\\\\NEWLINE\\\\","\n")+"</div><br>"
data2=data[i+1].split(";");
document.getElementById("msg"+((i+1)/2)).style.borderColor=data2[1]
document.getElementById("comments").innerHTML+="<div class=\"commentInfo\"><sup>- "+decodeURIComponent(data2[0])+"</sup></div></div><br>"

@ -1,27 +1,7 @@
<div class="navbar">
<div class="navbaritem"><a href="/">HOME</a></div>
<div class="navbaritem"><a href="/blog.html">BLOG</a></div>
<div class="navbaritem"><a href="/arcade.html">ARCADE</a></div>
<div class="navbaritem"><a href="/stream.html">STREAM</a></div><div id="liveindicator"></div>
<div class="navbaritem"><a href="/code.html">CODING SERVICES</a></div>
<div class="socials">
<div class="navbaritem">DISCORD</div>
<div class="navbaritem">GITHUB</div>
<div class="navbaritem">TWITCH</div>
<div class="navbaritem">YOUTUBE</div>
<div class="navbaritem">TWITTER</div>
</div>
</div>
<script type="text/javascript">
function getLiveStatus() {
document.getElementById("liveindicator").innerText="🔴 LIVE"
}
getLiveStatus()
</script>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -41,6 +21,26 @@ We're Sorry! Your webpage is in another castle!
===
<br/><br/>
<h2><a href="javascript:history.back()">Go Back</a></h2>
<div class="navbar">
<div class="navbaritem"><a href="/">HOME</a></div>
<div class="navbaritem"><a href="/blog.html">BLOG</a></div>
<div class="navbaritem"><a href="/arcade.html">ARCADE</a></div>
<div class="navbaritem"><a href="/stream.html">STREAM</a></div><div id="liveindicator"></div>
<div class="navbaritem"><a href="/code.html">CODING SERVICES</a></div>
<div class="socials">
<div class="navbaritem">DISCORD</div>
<div class="navbaritem">GITHUB</div>
<div class="navbaritem">TWITCH</div>
<div class="navbaritem">YOUTUBE</div>
<div class="navbaritem">TWITTER</div>
</div>
</div>
<script type="text/javascript">
function getLiveStatus() {
document.getElementById("liveindicator").innerText="🔴 LIVE"
}
getLiveStatus()
</script>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>
<div class="codeBackground" id="codeBackground"></div>

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -17,8 +17,8 @@
</head>
<body>
<div class="contentBody">
<h2>Directory Listing for /images/</h2><div class="folderlisting"><a href="/images/.." class="icon">&#x1F4C1;</a><a href="/images/..">.. </a><a href="/images/.." class="nounderline">(Previous Directory)</a></div><div class="filelisting"><a href="/images/github.webp" class="icon">&#x1F5CE;</a><a href="/images/github.webp">github.webp</a> 2022-08-03T00:17:08.462377Z niconiconii 7270</div>
<div class="filelisting"><a href="/images/Love_Live!_Logo.png" class="icon">&#x1F5CE;</a><a href="/images/Love_Live!_Logo.png">Love_Live!_Logo.png</a> 2022-07-23T18:15:55.635107Z niconiconii 12167</div>
<h2>Directory Listing for /images/</h2><div class="folderlisting"><a href="/images/.." class="icon">&#x1F4C1;</a><a href="/images/..">.. </a><a href="/images/.." class="nounderline">(Previous Directory)</a></div><div class="filelisting"><a href="/images/Love_Live!_Logo.png" class="icon">&#x1F5CE;</a><a href="/images/Love_Live!_Logo.png">Love_Live!_Logo.png</a> 2022-08-01T14:45:39Z gitpod 12167</div>
<div class="filelisting"><a href="/images/github.webp" class="icon">&#x1F5CE;</a><a href="/images/github.webp">github.webp</a> 2022-08-01T14:58:45Z gitpod 7270</div>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>

@ -1,27 +1,7 @@
<div class="navbar">
<div class="navbaritem"><a href="/">HOME</a></div>
<div class="navbaritem"><a href="/blog.html">BLOG</a></div>
<div class="navbaritem"><a href="/arcade.html">ARCADE</a></div>
<div class="navbaritem"><a href="/stream.html">STREAM</a></div><div id="liveindicator"></div>
<div class="navbaritem"><a href="/code.html">CODING SERVICES</a></div>
<div class="socials">
<div class="navbaritem">DISCORD</div>
<div class="navbaritem">GITHUB</div>
<div class="navbaritem">TWITCH</div>
<div class="navbaritem">YOUTUBE</div>
<div class="navbaritem">TWITTER</div>
</div>
</div>
<script type="text/javascript">
function getLiveStatus() {
document.getElementById("liveindicator").innerText="🔴 LIVE"
}
getLiveStatus()
</script>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -47,41 +27,41 @@ This is a different webpage.<hr>
}
</script>
<div class="contentWrapper"><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/sigplace1.article.html"><h1>Welcome to SigPlace!</h1></a><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/sigplace1.article.html">🔗</a><div class="content" id="content_out/articles/sigplace1.article">
<p class="color1">
<p class="color2">
This is a SigPlace article! It will contain information that is important (probably) and will be layed out as such.
</p>
<p class="color1">
<p class="color3">
Paragraphs are automatically split up for readability and generated correctly via the parser. There's quite a bit of flexibility with the system and makes it easy to post updates should they be required.
</p>
<p class="color2">
<p class="color3">
A lot of content management systems would do this by having a web interface and submitting content and managing it that way, but by coding my own management system and using the built-in OS' filesystem to handle the work, I save myself a lot of pains and headaches.
</p>
<p class="color2">
<p class="color3">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. In feugiat, urna ut sollicitudin luctus, nulla magna faucibus mauris, at semper nisl nisi ut mauris. Vestibulum cursus tortor velit, ut congue ex porta in. Nullam hendrerit risus sit amet neque euismod faucibus. Sed ac diam non lectus euismod pulvinar eu non mauris. Donec accumsan nisl efficitur, sodales lectus et, finibus quam. Sed vel consectetur leo. Cras ut condimentum quam. Aliquam molestie viverra congue. Donec scelerisque nibh ac nulla dictum semper. Aliquam id massa a massa bibendum finibus id ac sapien. Integer vitae ullamcorper enim, non semper massa.
</p>
<br/>
<p class="color3">
<p class="color4">
Proin cursus sodales elit, vitae volutpat mi fermentum a. In vitae magna quis leo cursus accumsan id facilisis purus. Vestibulum accumsan iaculis turpis eu sollicitudin. Sed ultricies felis non elit suscipit interdum. Maecenas sollicitudin turpis justo, vel pretium sapien scelerisque eget. Nullam sagittis finibus risus ut aliquam. Praesent quam orci, dapibus ut ex ac, sodales dapibus nunc.
</p>
<br/>
<p class="color3">
<p class="color4">
Fusce magna risus, iaculis non justo sit amet, semper sodales urna. Morbi eu eros lectus. Integer euismod venenatis eros a hendrerit. Nulla ultricies lectus nec quam condimentum fermentum. Quisque a turpis vitae orci pharetra ullamcorper. Nunc fringilla vitae nunc a aliquam. In aliquam gravida massa. Sed imperdiet dignissim sapien, ullamcorper rutrum lacus convallis ut.
</p>
<br/>
<p class="color3">
<p class="color4">
Nunc tortor sem, dapibus mattis varius id, varius eu leo. Phasellus efficitur nulla a diam faucibus, id facilisis lacus malesuada. Nulla condimentum egestas erat a fermentum. Ut interdum dui id est condimentum, vel fermentum nisi ornare. Sed eu rhoncus magna, sit amet finibus eros. In a nibh tincidunt, suscipit tellus eleifend, faucibus mauris. Vestibulum sagittis nisi et efficitur ullamcorper. Donec sodales efficitur ligula id congue. Etiam egestas tristique interdum. Mauris at massa eget metus pellentesque fermentum nec non lacus. Nulla turpis nunc, feugiat vel euismod ac, maximus id est. Praesent cursus elit ac dolor hendrerit lacinia.
</p>
<br/>
<p class="color4">
<p class="color5">
Vestibulum laoreet lorem consequat, mollis augue finibus, luctus libero. Praesent convallis sed velit vitae molestie. Vestibulum nec fringilla tellus, non dictum nulla. Donec tempor ac diam sit amet porta. Quisque mi ex, vulputate ac tincidunt vel, vestibulum vitae orci. Duis gravida mauris eget mauris pulvinar, lobortis tincidunt neque efficitur. Nunc blandit metus vitae faucibus vulputate. Curabitur rhoncus volutpat lorem, sit amet pulvinar ipsum. Fusce ultricies enim odio, a viverra quam tincidunt quis. Aliquam sollicitudin a sapien id efficitur. Proin at finibus elit, id gravida elit. Nulla facilisi. Ut tincidunt, ligula eu pulvinar dapibus, lorem nisl facilisis tellus, in ornare quam dolor quis libero. Pellentesque ut convallis orci. Donec volutpat nunc velit, tristique convallis purus lacinia sit amet. Maecenas porttitor cursus nisl sed porta.
</p>
<br/>
<div><figure style="text-align:center;width:30%;float:right;"><img src="/images/Love_Live!_Logo.png" style="margin:auto;width:100%;"><figcaption>Hello there! You can see this is the Love Live logo indeed! It is quite smol right now but that's okay. Let's keep on going with the text. If the caption is really long and with commas, they will now be combined,,,,,see how that works? Amazing!</figcaption></figure></div>
<p class="color4">
<p class="color5">
Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.Here we demonstrate the love live logo. But wait, it's literally like in the middle wtf is going on.
</p>
<br/>
<p class="color4">
<p class="color6">
<pre>
<span class="keyword">import</span> <span class="class">java</span>.<span class="class">io</span>.<span class="keyword">IOException</span>;<span class="variable"></span>
<span class="keyword">import</span> <span class="class">java</span>.<span class="class">nio</span>.<span class="class">charset</span>.<span class="keyword">Charset</span>;<span class="variable"></span>
@ -531,33 +511,53 @@ Here we demonstrate the love live logo. But wait, it's literally like in the mid
}
</pre>
</p>
</div><div class="datebar"></div><div class="date">3 May 2022 10:25AM</div><div class="unexpanded" id="expand_40" onClick="expand(this,'out/articles/sigplace1.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
</div><div class="datebar"></div><div class="date">3 May 2022 10:25AM</div><div class="unexpanded" id="expand_20" onClick="expand(this,'out/articles/sigplace1.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
<div class="contentWrapper"><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/test articles/test1.article.html"><h1>A Test Title</h1></a><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/test articles/test1.article.html">🔗</a><div class="content" id="content_out/articles/test articles/test1.article">
<p class="color1">
<p class="color6">
In dolor erat, malesuada at elit cursus, convallis imperdiet turpis. Ut aliquet magna tellus, at viverra mauris ullamcorper vehicula. Nam quis urna semper magna ornare elementum sed id mauris. Suspendisse faucibus nunc ante, ac rhoncus nisl tristique sed. Vestibulum pretium odio eget scelerisque vestibulum. Aliquam viverra ex ac vestibulum interdum. Donec ligula nunc, dignissim a purus vitae, fermentum laoreet diam. Quisque nec auctor urna. Vestibulum sit amet ligula ullamcorper, congue ipsum et, accumsan ante. Phasellus fermentum, sapien nec pulvinar blandit, elit purus pretium urna, et dapibus orci urna eu metus. Nunc molestie dictum pharetra. Suspendisse luctus felis et ante tristique, vitae commodo diam porttitor. Aliquam orci eros, placerat ac justo vitae, bibendum efficitur metus. Phasellus eget bibendum mauris.
</p>
</div><div class="datebar"></div><div class="date">2 May 2022 10:16AM</div><div class="unexpanded" id="expand_534" onClick="expand(this,'out/articles/test articles/test1.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
</div><div class="datebar"></div><div class="date">2 May 2022 10:16AM</div><div class="unexpanded" id="expand_514" onClick="expand(this,'out/articles/test articles/test1.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
<div class="contentWrapper"><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/test articles/test2.article.html"><h1>Another test title</h1></a><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/test articles/test2.article.html">🔗</a><div class="content" id="content_out/articles/test articles/test2.article">
<p class="color6">
<p class="color1">
Sed lobortis nisi id nunc tincidunt volutpat. Mauris cursus felis quis condimentum posuere. Pellentesque vitae dolor et justo suscipit ultrices. Integer dapibus leo id felis varius, ut volutpat massa bibendum. Quisque sed nunc arcu. In sit amet faucibus magna, non venenatis massa. Cras sed placerat risus, id consectetur est. Pellentesque in nunc dolor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eget lorem ac urna posuere accumsan. Quisque sed imperdiet nisi.
</p>
</div><div class="datebar"></div><div class="date">1 May 2022 05:13AM</div><div class="unexpanded" id="expand_539" onClick="expand(this,'out/articles/test articles/test2.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
</div><div class="datebar"></div><div class="date">1 May 2022 05:13AM</div><div class="unexpanded" id="expand_519" onClick="expand(this,'out/articles/test articles/test2.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
<div class="contentWrapper"><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/test articles/test3.article.html"><h1>And More</h1></a><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/test articles/test3.article.html">🔗</a><div class="content" id="content_out/articles/test articles/test3.article">
<p class="color6">
<p class="color1">
Curabitur suscipit quam tellus, non rhoncus diam vehicula in. Aliquam ut dapibus tortor. Cras accumsan arcu vel ante maximus ornare. Nam tempus fermentum leo maximus euismod. Donec vehicula pretium est a ultrices. Nunc blandit nibh lorem, nec blandit leo posuere quis. Sed mauris ligula, euismod eu aliquam vel, rhoncus eget magna. Proin eget tortor ut ligula suscipit mattis. Integer rutrum aliquet eleifend. Suspendisse leo libero, placerat nec mi id, sagittis malesuada felis. Quisque euismod ante cursus elit lobortis, eu tempus ligula condimentum. Mauris viverra metus et dignissim efficitur. Ut placerat nunc nunc, eu tempus neque ultrices nec. Suspendisse et magna risus. Phasellus in ullamcorper tortor. Sed lobortis ut mi in blandit.
</p>
</div><div class="datebar"></div><div class="date">30 Apr 2022 6:14PM</div><div class="unexpanded" id="expand_544" onClick="expand(this,'out/articles/test articles/test3.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
</div><div class="datebar"></div><div class="date">30 Apr 2022 6:14PM</div><div class="unexpanded" id="expand_524" onClick="expand(this,'out/articles/test articles/test3.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
<div class="contentWrapper"><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/curabitur vel tempus ex.article.html"><h1>Curabitur vel tempus ex</h1></a><a title="Click to go to the original article and to view comments!" class="reallink" href="articles/curabitur vel tempus ex.article.html">🔗</a><div class="content" id="content_out/articles/curabitur vel tempus ex.article">
<p class="color5">
<p class="color1">
Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut. Nullam odio purus, tristique non turpis sit amet, malesuada ultricies purus. Mauris ut nulla nisl. Aenean sit amet est egestas justo volutpat consequat. Suspendisse in sagittis augue, et mattis tortor. Nullam viverra metus et nibh fringilla iaculis.
</p>
<br/>
<p class="color5">
<p class="color2">
<pre>
&lt;>&lt;Test><span class="string">"&lt;/test>&lt;/test2>&lt;test3>"</span>
</pre>
</p>
</div><div class="datebar"></div><div class="date">29 Apr 2022 7:37PM</div><div class="unexpanded" id="expand_549" onClick="expand(this,'out/articles/curabitur vel tempus ex.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
</div><div class="datebar"></div><div class="date">29 Apr 2022 7:37PM</div><div class="unexpanded" id="expand_529" onClick="expand(this,'out/articles/curabitur vel tempus ex.article')"><br/><br/><br/><br/>&#x2908; Click to expand.</div></div>
<div class="navbar">
<div class="navbaritem"><a href="/">HOME</a></div>
<div class="navbaritem"><a href="/blog.html">BLOG</a></div>
<div class="navbaritem"><a href="/arcade.html">ARCADE</a></div>
<div class="navbaritem"><a href="/stream.html">STREAM</a></div><div id="liveindicator"></div>
<div class="navbaritem"><a href="/code.html">CODING SERVICES</a></div>
<div class="socials">
<div class="navbaritem">DISCORD</div>
<div class="navbaritem">GITHUB</div>
<div class="navbaritem">TWITCH</div>
<div class="navbaritem">YOUTUBE</div>
<div class="navbaritem">TWITTER</div>
</div>
</div>
<script type="text/javascript">
function getLiveStatus() {
document.getElementById("liveindicator").innerText="🔴 LIVE"
}
getLiveStatus()
</script>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>
<div class="codeBackground" id="codeBackground"></div>

@ -0,0 +1,47 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

@ -1,52 +1,3 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
a:link{
color:#D7F;
font-size:0.8em;

@ -1,27 +1,7 @@
<div class="navbar">
<div class="navbaritem"><a href="/">HOME</a></div>
<div class="navbaritem"><a href="/blog.html">BLOG</a></div>
<div class="navbaritem"><a href="/arcade.html">ARCADE</a></div>
<div class="navbaritem"><a href="/stream.html">STREAM</a></div><div id="liveindicator"></div>
<div class="navbaritem"><a href="/code.html">CODING SERVICES</a></div>
<div class="socials">
<div class="navbaritem">DISCORD</div>
<div class="navbaritem">GITHUB</div>
<div class="navbaritem">TWITCH</div>
<div class="navbaritem">YOUTUBE</div>
<div class="navbaritem">TWITTER</div>
</div>
</div>
<script type="text/javascript">
function getLiveStatus() {
document.getElementById("liveindicator").innerText="🔴 LIVE"
}
getLiveStatus()
</script>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -42,6 +22,26 @@ SigPlace
===
<br/><br/>
<a href="otherpage.html">Other Page!</a>
<div class="navbar">
<div class="navbaritem"><a href="/">HOME</a></div>
<div class="navbaritem"><a href="/blog.html">BLOG</a></div>
<div class="navbaritem"><a href="/arcade.html">ARCADE</a></div>
<div class="navbaritem"><a href="/stream.html">STREAM</a></div><div id="liveindicator"></div>
<div class="navbaritem"><a href="/code.html">CODING SERVICES</a></div>
<div class="socials">
<div class="navbaritem">DISCORD</div>
<div class="navbaritem">GITHUB</div>
<div class="navbaritem">TWITCH</div>
<div class="navbaritem">YOUTUBE</div>
<div class="navbaritem">TWITTER</div>
</div>
</div>
<script type="text/javascript">
function getLiveStatus() {
document.getElementById("liveindicator").innerText="🔴 LIVE"
}
getLiveStatus()
</script>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>
<div class="codeBackground" id="codeBackground"></div>

@ -1,27 +1,7 @@
<div class="navbar">
<div class="navbaritem"><a href="/">HOME</a></div>
<div class="navbaritem"><a href="/blog.html">BLOG</a></div>
<div class="navbaritem"><a href="/arcade.html">ARCADE</a></div>
<div class="navbaritem"><a href="/stream.html">STREAM</a></div><div id="liveindicator"></div>
<div class="navbaritem"><a href="/code.html">CODING SERVICES</a></div>
<div class="socials">
<div class="navbaritem">DISCORD</div>
<div class="navbaritem">GITHUB</div>
<div class="navbaritem">TWITCH</div>
<div class="navbaritem">YOUTUBE</div>
<div class="navbaritem">TWITTER</div>
</div>
</div>
<script type="text/javascript">
function getLiveStatus() {
document.getElementById("liveindicator").innerText="🔴 LIVE"
}
getLiveStatus()
</script>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">
@ -42,6 +22,26 @@ SigPlace
<input type="file" name="file1"/>
<input type="submit"/>
</form>
<div class="navbar">
<div class="navbaritem"><a href="/">HOME</a></div>
<div class="navbaritem"><a href="/blog.html">BLOG</a></div>
<div class="navbaritem"><a href="/arcade.html">ARCADE</a></div>
<div class="navbaritem"><a href="/stream.html">STREAM</a></div><div id="liveindicator"></div>
<div class="navbaritem"><a href="/code.html">CODING SERVICES</a></div>
<div class="socials">
<div class="navbaritem">DISCORD</div>
<div class="navbaritem">GITHUB</div>
<div class="navbaritem">TWITCH</div>
<div class="navbaritem">YOUTUBE</div>
<div class="navbaritem">TWITTER</div>
</div>
</div>
<script type="text/javascript">
function getLiveStatus() {
document.getElementById("liveindicator").innerText="🔴 LIVE"
}
getLiveStatus()
</script>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>
<div class="codeBackground" id="codeBackground"></div>

@ -4,6 +4,20 @@
document.getElementById("submit").style.borderColor=document.getElementById("msg").style.borderColor=document.getElementById("name").style.borderColor=document.getElementById("col").style.borderColor=document.getElementById("col").options[document.getElementById("col").selectedIndex].text
}
function submit() {
if (document.getElementById("msg").value.length>1000) {
alert("Your message is longer than 1000 characters!");
return;
}
if (document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="GREEN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="RED"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="YELLOW"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="BLUE"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="MAGENTA"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="CYAN"&&
document.getElementById("col").options[document.getElementById("col").selectedIndex].text!=="WHITE") {
alert("You chose an invalid color!");
return;
}
document.getElementById("submit").disabled=
document.getElementById("name").disabled=
document.getElementById("col").disabled=
@ -11,7 +25,7 @@
fetch("/COMMENTS?submit=true&article=$ARTICLE.comment&message="+encodeURIComponent(document.getElementById("msg").value)+"&name="
+encodeURIComponent(document.getElementById("name").value)+"&color="
+encodeURIComponent(document.getElementById("col").options[document.getElementById("col").selectedIndex].text)
).then((data)=>data.text())
, {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
document.getElementById("msg").value=""
document.getElementById("name").value=""
@ -102,7 +116,7 @@
</div>
<script type="text/javascript">
function fetchComments() {
fetch("/COMMENTS?article=$ARTICLE.comment").then((data)=>data.text())
fetch("/COMMENTS?article=$ARTICLE.comment", {cache: "no-cache"}).then((data)=>data.text())
.then((data)=>{
data=data.split("\n");
if (!isNaN(Number(data[0]))) {
@ -110,7 +124,7 @@
document.getElementById("commentCounter").innerText=data[0]
for (var i=data.length-3;i>=1;i-=2) {
if (data[i].trim().length>0&&data[i+1].trim().length>0) {
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i])+"</div><br>"
document.getElementById("comments").innerHTML+="<div id=\"msg"+((i+1)/2)+"\" class=\"commentDisplayer\"><div class=\"commentData\">"+decodeURIComponent(data[i]).replaceAll("\n","<br/>").replaceAll("\\\\NEWLINE\\\\","\n")+"</div><br>"
data2=data[i+1].split(";");
document.getElementById("msg"+((i+1)/2)).style.borderColor=data2[1]
document.getElementById("comments").innerHTML+="<div class=\"commentInfo\"><sup>- "+decodeURIComponent(data2[0])+"</sup></div></div><br>"

@ -1,6 +1,7 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="/reset.css">
<link rel="stylesheet" type="text/css" href="/sig.css">
<meta charset="UTF-8">
<script type="text/javascript">

Binary file not shown.

@ -149,7 +149,7 @@ public class sigPlace {
List<String> content = Files.readAllLines(f);
if (isHTMLFile(f)) {
content.addAll(0,Files.readAllLines(ops.get("%DEFAULT")));
content.addAll(0,Files.readAllLines(ops.get("%NAVBAR")));
content.addAll(Files.readAllLines(ops.get("%NAVBAR")));
content.addAll(Files.readAllLines(ops.get("%FOOTER")));
}

Binary file not shown.

@ -183,8 +183,15 @@ public class sigServer {
}
if (location.equals("COMMENTS")&&requestParams.containsKey("message")&&requestParams.containsKey("name")&&requestParams.containsKey("color")) {
//System.out.println(requestParams);
String finalMsg = requestParams.get("message").replaceAll(Pattern.quote("%0A"),"<br/>").replaceAll(Pattern.quote("%3C"),"&lt;");
if (finalMsg.length()>0) {
String finalMsg = requestParams.get("message").replaceAll(Pattern.quote("%3C"),"&lt;");
if (finalMsg.length()>0&&finalMsg.length()<=1000&&
(requestParams.get("color").equals("BLUE")||
requestParams.get("color").equals("RED")||
requestParams.get("color").equals("GREEN")||
requestParams.get("color").equals("YELLOW")||
requestParams.get("color").equals("MAGENTA")||
requestParams.get("color").equals("CYAN")||
requestParams.get("color").equals("WHITE"))) {
boolean boldBlock=false;
boolean italicBlock=false;
boolean underlineBlock=false;
@ -198,7 +205,7 @@ public class sigServer {
if (codeBlock) {
codeBlockMsg.append("~~");
String storedCodeBlock="";
String s = URLDecoder.decode(codeBlockMsg.toString(),StandardCharsets.UTF_8.toString());
String s = URLDecoder.decode(codeBlockMsg.toString().replaceAll(Pattern.quote("%0A"),"\\\\\\\\NEWLINE\\\\\\\\"),StandardCharsets.UTF_8.toString());
boolean keyword=false;
boolean inString=false;
boolean inComment=false;
@ -208,7 +215,6 @@ public class sigServer {
int lengthOfConstant=0;
storedCodeBlock+=s.substring(0,s.indexOf("~~"));
storedCodeBlock=storedCodeBlock.replaceAll(Pattern.quote("<"),"\2");
storedCodeBlock+="</pre>";
int startPos=0;
String endText=s.substring(s.indexOf("~~")+"~~".length(),s.length());
s="";
@ -323,7 +329,7 @@ public class sigServer {
s=s.substring(0,j)+"&lt;"+s.substring(j+1,s.length());
}
}
s="<pre>"+s;
s="<pre>"+s+"</pre>";
s+=endText;
buildMsg.append(s);
} else {
@ -380,6 +386,16 @@ public class sigServer {
if (linkBlock) {
storedLink.append(finalMsg.charAt(i));
}
if (i<finalMsg.length()-1&&finalMsg.charAt(i)=='_'&&finalMsg.charAt(i+1)=='_') {
if (underlineBlock) {
buildMsg.append("</u>");
} else {
buildMsg.append("<u>");
}
underlineBlock=!underlineBlock;
i+=1;
continue;
}
buildMsg.append(finalMsg.charAt(i));
}
if (Files.exists(Paths.get(sigPlace.COMMENTSDIR,requestParams.get("article")))) {

Loading…
Cancel
Save