Complete code block and link support. All formatting now supported in comment blocks

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
sigonasr2, Sig, Sigo 3 years ago
parent f9389d49f7
commit 5a3bbd231e
  1. 6
      comments/curabitur%20vel%20tempus%20ex.comment
  2. 34
      comments/sigplace1.comment
  3. 16
      out/DIRECTORY_LISTING
  4. 14
      out/articles/DIRECTORY_LISTING
  5. 10
      out/articles/Love Live! Custom Arcade Controller.article
  6. 10
      out/articles/Love Live! Custom Arcade Controller.article.html
  7. 10
      out/articles/curabitur vel tempus ex.article
  8. 10
      out/articles/curabitur vel tempus ex.article.html
  9. 10
      out/articles/sigplace1.article
  10. 10
      out/articles/sigplace1.article.html
  11. 12
      out/articles/test articles/DIRECTORY_LISTING
  12. 10
      out/articles/test articles/test1.article
  13. 10
      out/articles/test articles/test1.article.html
  14. 10
      out/articles/test articles/test2.article
  15. 10
      out/articles/test articles/test2.article.html
  16. 10
      out/articles/test articles/test3.article
  17. 10
      out/articles/test articles/test3.article.html
  18. 10
      out/otherpage.html
  19. 10
      out/reset.css
  20. 10
      out/sig.css
  21. 10
      out/testfile.html
  22. 10
      out/uploadform.html
  23. 10
      ref/COMMENT.html
  24. 225
      sigServer.java

@ -1,3 +1,7 @@
1
3
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
Test%20Tags2022-07-28T18:35:21.171183Z[Etc/UTC];RED
%5E%5EBold%20test%5E%5E
2022-07-28T19:02:38.122403Z[Etc/UTC];GREEN

@ -1,4 +1,4 @@
19
35
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>
@ -37,3 +37,35 @@ sffdsadsavdavdav<br/><br/>Everything%20looks%20good!<br/><br/>I%20am%20happy%20n
feqfeq2022-07-27T20:26:24.402781Z[Etc/UTC];YELLOW
sfdvdsewfagadavasvdas
abdbsa2022-07-27T20:27:07.342320Z[Etc/UTC];YELLOW
%5E%5ETest%20bold%20text%5E%5E
bfdabda2022-07-28T19:07:53.017136Z[Etc/UTC];GREEN
%5E%5Etest%20bold%20tex%5E%5Et
gda2022-07-28T19:11:24.304502Z[Etc/UTC];GREEN
try%20bolding%20t%5E%5Eext%20in%20the%20midd%5E%5Ele%20of%20the%20box.
bdsabdsa2022-07-28T19:16:31.400155Z[Etc/UTC];GREEN
<b>5E%5Ebold%20text</b>5E%5E
testing%20bold2022-07-28T19:23:11.839033Z[Etc/UTC];GREEN
<b>est</b>
test2022-07-28T19:24:58.411339Z[Etc/UTC];GREEN
<b>est%20bolded%20text</b>
test2022-07-28T19:25:29.514450Z[Etc/UTC];GREEN
<b>bold%20text</b>
fdsa2022-07-28T19:25:51.209453Z[Etc/UTC];GREEN
<i>Italics</i>
2022-07-28T19:26:08.219916Z[Etc/UTC];GREEN
<u>underlinea</u>
2022-07-28T19:26:14.074367Z[Etc/UTC];GREEN
~<pre><span class="keyword">test</span> <span class="keyword">a</span> <span class="keyword">code</span> <span class="variable">block</span></pre>~<br/><br/>
2022-07-28T19:47:56.447910Z[Etc/UTC];GREEN
~<pre><span class="keyword">vdsavdsavdsafdsafdsa</span> <span class="variable">fdsavds</span></pre>~
2022-07-28T19:52:23.484146Z[Etc/UTC];GREEN
<a>test%20a%20link</a>
2022-07-28T19:53:09.504476Z[Etc/UTC];GREEN
<a href=test%20a%20link>test%20a%20link</a>
2022-07-28T19:55:42.857935Z[Etc/UTC];GREEN
<a href="http%3A%2F%2Fgoogle.com">http%3A%2F%2Fgoogle.com</a><br/><br/><a href="Link%20with%20spaces">Link%20with%20spaces</a>
2022-07-28T19:56:20.531467Z[Etc/UTC];GREEN
~<pre><span class="keyword">This</span> <span class="keyword">is</span> <span class="keyword">a</span> <span class="keyword">code</span> <span class="variable">block</span></pre>~<br/><br/>~<pre><span class="keyword">This</span> <span class="keyword">is</span> <span class="keyword">another</span> <span class="keyword">code</span> <span class="variable">block</span>!</pre>~
2022-07-28T19:56:50.050699Z[Etc/UTC];GREEN
%F0%9F%98%8A<i>Italicized</i><b>Bolded</b>%20<b><i>Both</i></b>%20<b><i><u>All%20three</u></i></b>
2022-07-28T19:57:21.107759Z[Etc/UTC];GREEN

@ -17,14 +17,14 @@
</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="folderlisting"><a href="/articles" class="icon">&#x1F4C1;</a><a href="/articles">articles</a> 2022-07-28T18:33:07.36118Z gitpod 4096</div>
<div class="filelisting"><a href="/codeBackground" class="icon">&#x1F5CE;</a><a href="/codeBackground">codeBackground</a> 2022-07-28T18:33:07.30118Z gitpod 8812</div>
<div class="folderlisting"><a href="/images" class="icon">&#x1F4C1;</a><a href="/images">images</a> 2022-07-28T18:33:07.35718Z gitpod 58</div>
<div class="filelisting"><a href="/otherpage.html" class="icon">&#x1F5CE;</a><a href="/otherpage.html">otherpage.html</a> 2022-07-28T18:33:07.30118Z gitpod 7116</div>
<div class="filelisting"><a href="/reset.css" class="icon">&#x1F5CE;</a><a href="/reset.css">reset.css</a> 2022-07-28T18:33:07.30518Z gitpod 7259</div>
<div class="filelisting"><a href="/sig.css" class="icon">&#x1F5CE;</a><a href="/sig.css">sig.css</a> 2022-07-28T18:33:07.30918Z gitpod 15463</div>
<div class="filelisting"><a href="/testfile.html" class="icon">&#x1F5CE;</a><a href="/testfile.html">testfile.html</a> 2022-07-28T18:33:07.32118Z gitpod 6977</div>
<div class="filelisting"><a href="/uploadform.html" class="icon">&#x1F5CE;</a><a href="/uploadform.html">uploadform.html</a> 2022-07-28T18:33:07.32118Z gitpod 7061</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-07-28T19:56:08.84481Z gitpod 4096</div>
<div class="filelisting"><a href="/codeBackground" class="icon">&#x1F5CE;</a><a href="/codeBackground">codeBackground</a> 2022-07-28T19:56:08.748811Z gitpod 8822</div>
<div class="folderlisting"><a href="/images" class="icon">&#x1F4C1;</a><a href="/images">images</a> 2022-07-28T19:56:08.84081Z gitpod 58</div>
<div class="filelisting"><a href="/otherpage.html" class="icon">&#x1F5CE;</a><a href="/otherpage.html">otherpage.html</a> 2022-07-28T19:56:08.752811Z gitpod 7126</div>
<div class="filelisting"><a href="/reset.css" class="icon">&#x1F5CE;</a><a href="/reset.css">reset.css</a> 2022-07-28T19:56:08.756811Z gitpod 7269</div>
<div class="filelisting"><a href="/sig.css" class="icon">&#x1F5CE;</a><a href="/sig.css">sig.css</a> 2022-07-28T19:56:08.764811Z gitpod 15473</div>
<div class="filelisting"><a href="/testfile.html" class="icon">&#x1F5CE;</a><a href="/testfile.html">testfile.html</a> 2022-07-28T19:56:08.77681Z gitpod 6987</div>
<div class="filelisting"><a href="/uploadform.html" class="icon">&#x1F5CE;</a><a href="/uploadform.html">uploadform.html</a> 2022-07-28T19:56:08.78081Z gitpod 7071</div>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>

@ -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/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-07-28T18:33:06.88518Z gitpod 6716</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-07-28T18:33:06.90918Z gitpod 6925</div>
<div class="filelisting"><a href="/articles/sigplace1.article" class="icon">&#x1F5CE;</a><a href="/articles/sigplace1.article">sigplace1.article</a> 2022-07-28T18:33:07.29318Z gitpod 87025</div>
<div class="folderlisting"><a href="/articles/test articles" class="icon">&#x1F4C1;</a><a href="/articles/test articles">test articles</a> 2022-07-28T18:33:07.34918Z 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-07-28T18:33:07.32518Z gitpod 7433</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-07-28T18:33:07.33318Z gitpod 7642</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-07-28T18:33:07.34118Z gitpod 87742</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-07-28T19:56:08.204811Z gitpod 6726</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-07-28T19:56:08.236811Z gitpod 6935</div>
<div class="filelisting"><a href="/articles/sigplace1.article" class="icon">&#x1F5CE;</a><a href="/articles/sigplace1.article">sigplace1.article</a> 2022-07-28T19:56:08.740811Z gitpod 87035</div>
<div class="folderlisting"><a href="/articles/test articles" class="icon">&#x1F4C1;</a><a href="/articles/test articles">test articles</a> 2022-07-28T19:56:08.82881Z 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-07-28T19:56:08.78481Z gitpod 7443</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-07-28T19:56:08.80481Z gitpod 7652</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-07-28T19:56:08.81681Z gitpod 87752</div>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>

@ -61,11 +61,11 @@ For over a year since I first got into <u>Love Live! School Idol Festival ~after
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -80,11 +80,11 @@ For over a year since I first got into <u>Love Live! School Idol Festival ~after
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -65,11 +65,11 @@ Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut.
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -84,11 +84,11 @@ Curabitur vel tempus ex. Duis cursus sapien nisl, ut pulvinar dui porttitor ut.
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -540,11 +540,11 @@ Here we demonstrate the love live logo. But wait, it's literally like in the mid
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -559,11 +559,11 @@ Here we demonstrate the love live logo. But wait, it's literally like in the mid
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -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/test1.article" class="icon">&#x1F5CE;</a><a href="/articles/test articles/test1.article">test1.article</a> 2022-07-28T18:33:07.29318Z gitpod 7244</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-07-28T18:33:07.29718Z gitpod 6940</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-07-28T18:33:07.29718Z gitpod 7153</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-07-28T18:33:07.34518Z gitpod 7961</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-07-28T18:33:07.34918Z gitpod 7657</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-07-28T18:33:07.34918Z gitpod 7870</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-07-28T19:56:08.740811Z gitpod 7254</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-07-28T19:56:08.744811Z gitpod 6950</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-07-28T19:56:08.748811Z gitpod 7163</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-07-28T19:56:08.82481Z gitpod 7971</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-07-28T19:56:08.82481Z gitpod 7667</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-07-28T19:56:08.82881Z gitpod 7880</div>
</div> <!--End Content Body-->
<div class="codeForeground" id="codeForeground"></div>

@ -59,11 +59,11 @@
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -78,11 +78,11 @@
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -59,11 +59,11 @@
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -78,11 +78,11 @@
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -59,11 +59,11 @@
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -78,11 +78,11 @@
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -86,11 +86,11 @@ $ARTICLE_PREVIEW curabitur vel tempus ex
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -101,11 +101,11 @@ table {
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -438,11 +438,11 @@ textarea:disabled{
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -85,11 +85,11 @@ SigPlace
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -85,11 +85,11 @@ SigPlace
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -54,11 +54,11 @@
<label for="msg" style="vertical-align:top;display:inline;">Message: </label>
<div>
<div class="toolbar">
<span class="toolbarItem" onclick="insert('^','^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('*','*')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('_','_')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~','~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[',']')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('^^','^^')" title="Bold">&nbsp;<b>B</b>&nbsp;</span>
<span class="toolbarItem" onclick="insert('**','**')" title="Italics">&nbsp;<i>I</i>&nbsp;</span>
<span class="toolbarItem" onclick="insert('__','__')" title="Underline">&nbsp;<u>U</u>&nbsp;</span>
<span class="toolbarItem" onclick="insert('~~','~~')" title="Code">&nbsp;&lt;code&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('[[',']]')" title="Link">&nbsp;&lt;http://&gt;&nbsp;</span>
<span class="toolbarItem" onclick="insert('😊')" title="Smiley Face Emoji">&nbsp;😊&nbsp;</span>
<span class="toolbarItem" onclick="insert('😔')" title="Sad Face Emoji">&nbsp;😔&nbsp;</span>
<span class="toolbarItem" onclick="insert('👍')" title="Thumbs Up Emoji">&nbsp;👍&nbsp;</span>

@ -27,6 +27,20 @@ import java.util.regex.Pattern;
public class sigServer {
ServerSocket socket;
/**
* Writes a span tag with the included class.
* **/
private static String SPAN(String className) {
return "<span class=\""+className+"\">";
}
private static boolean validNumericalConstantCharacters(String storedCodeBlock,int lengthOfConstant, int j) {
return storedCodeBlock.charAt(j)>='0'&&storedCodeBlock.charAt(j)<='9'||lengthOfConstant>0&&storedCodeBlock.charAt(j)=='.'||lengthOfConstant>0&&storedCodeBlock.charAt(j)>='A'&&lengthOfConstant>0&&storedCodeBlock.charAt(j)<='F'||lengthOfConstant>0&&storedCodeBlock.charAt(j)>='a'&&lengthOfConstant>0&&storedCodeBlock.charAt(j)<='f'||lengthOfConstant>0&&storedCodeBlock.charAt(j)=='x'||lengthOfConstant>0&&storedCodeBlock.charAt(j)=='X';
}
private static boolean isAlphanumeric(String storedCodeBlock,int j) {
return storedCodeBlock.charAt(j)>='0'&&storedCodeBlock.charAt(j)<='9'||storedCodeBlock.charAt(j)>='A'&&storedCodeBlock.charAt(j)<='Z'||storedCodeBlock.charAt(j)>='a'&&storedCodeBlock.charAt(j)<='z';
}
sigServer() {
try {
socket = new ServerSocket(sigPlace.PORT);
@ -145,15 +159,211 @@ 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;");
boolean boldBlock=false;
boolean italicBlock=false;
boolean underlineBlock=false;
boolean codeBlock=false;
boolean linkBlock=false;
StringBuilder storedLink=new StringBuilder();
StringBuilder codeBlockMsg = new StringBuilder();
StringBuilder buildMsg = new StringBuilder();
for (int i=0;i<finalMsg.length();i++) {
if (i<finalMsg.length()-1&&finalMsg.charAt(i)=='~'&&finalMsg.charAt(i+1)=='~') {
if (codeBlock) {
codeBlockMsg.append("~~");
String storedCodeBlock="";
String s = URLDecoder.decode(codeBlockMsg.toString(),StandardCharsets.UTF_8.toString());
boolean keyword=false;
boolean inString=false;
boolean inComment=false;
boolean inMultiLineComment=false;
char stringChar=' ';
boolean canBeNumericalConstant=false;
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="";
for (int j=0;j<storedCodeBlock.length();j++) {
if (storedCodeBlock.charAt(j)=='\n'&&inString) {
inString=false;
s+="</span>";
} else
if (storedCodeBlock.charAt(j)=='\n'&&inComment) {
inComment=false;
s+=SPAN("comment")+storedCodeBlock.substring(startPos,j)+"</span>";
startPos=j+1;
}
if (!inComment&&!inMultiLineComment&&(j>0&&storedCodeBlock.charAt(j-1)!='\\'&&(!inString&&(storedCodeBlock.charAt(j)=='"'||storedCodeBlock.charAt(j)=='\'')||inString&&(storedCodeBlock.charAt(j)==stringChar)))) {
inString=!inString;
if (inString) {
stringChar=storedCodeBlock.charAt(j);
s+=SPAN("string")+stringChar;
} else {
s+=stringChar;
s+="</span>";
startPos=j+1;
}
} else
if (!inString) {
if (canBeNumericalConstant&&validNumericalConstantCharacters(storedCodeBlock,lengthOfConstant, j)) {
lengthOfConstant++;
//System.out.println("Length of Constant now "+lengthOfConstant);
}
if (j>0&&storedCodeBlock.charAt(j)=='/'&&storedCodeBlock.charAt(j+1)=='*'||inMultiLineComment) {
if (!inMultiLineComment) {
inMultiLineComment=true;
} else {
if (storedCodeBlock.charAt(j-1)=='*'&&storedCodeBlock.charAt(j)=='/') {
inMultiLineComment=false;
s+=SPAN("comment")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+"</span>";
startPos=j+1;
}
}
//Stops further execution since we're in a comment.
} else
if (j>0&&storedCodeBlock.charAt(j)=='/'&&storedCodeBlock.charAt(j+1)=='/'||inComment) {
if (!inComment) {
inComment=true;
}
//Stops further execution since we're in a comment.
} else
if (canBeNumericalConstant&&lengthOfConstant>0&&!(validNumericalConstantCharacters(storedCodeBlock,lengthOfConstant, j))) {
s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+"</span>"+storedCodeBlock.charAt(j);
//System.out.println("Setting "+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j));
lengthOfConstant=0;
canBeNumericalConstant=false;
startPos=j+1;
} else
if (!canBeNumericalConstant&&storedCodeBlock.charAt(j)=='.') {
//Previous section was a member.
s+=SPAN("class")+storedCodeBlock.substring(startPos,j)+"</span>"+storedCodeBlock.charAt(j);
startPos=j+1;
} else
if (j>3&&storedCodeBlock.substring(j-3,j+1).equals("true")&&!isAlphanumeric(storedCodeBlock,j-4)&&!isAlphanumeric(storedCodeBlock,j+1)) {
s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+"</span>";
startPos=j+1;
} else
if (j>4&&storedCodeBlock.substring(j-4,j+1).equals("false")&&!isAlphanumeric(storedCodeBlock,j-5)&&!isAlphanumeric(storedCodeBlock,j+1)) {
s+=SPAN("number")+storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j)+"</span>";
startPos=j+1;
} else
if (storedCodeBlock.charAt(j)=='(') {
s+=SPAN("function")+storedCodeBlock.substring(startPos,j)+"</span>"+storedCodeBlock.charAt(j);
startPos=j+1;
} else
if (j>0&&isAlphanumeric(storedCodeBlock,j-1) && storedCodeBlock.charAt(j)==' '&&storedCodeBlock.charAt(j-1)!=' ') {
//Previous section was a keyword.
keyword=true;
s+=SPAN("keyword")+storedCodeBlock.substring(startPos,j)+"</span>"+storedCodeBlock.charAt(j);
startPos=j+1;
} else
if (j>0&&isAlphanumeric(storedCodeBlock,j-1) && (storedCodeBlock.charAt(j)==';'||storedCodeBlock.charAt(j)==':')) {
//Previous section was a keyword.
//keyword=true;
s+=SPAN("keyword")+storedCodeBlock.substring(startPos,j)+"</span>"+storedCodeBlock.charAt(j);
startPos=j+1;
} else
if (keyword&&!(storedCodeBlock.charAt(j)=='_'||storedCodeBlock.charAt(j)>='0'&&storedCodeBlock.charAt(j)<='9'||storedCodeBlock.charAt(j)>='A'&&storedCodeBlock.charAt(j)<='Z'||storedCodeBlock.charAt(j)>='a'&&storedCodeBlock.charAt(j)<='z'||storedCodeBlock.charAt(j)==' ')) {
keyword=false;
s+=SPAN("variable")+storedCodeBlock.substring(startPos,j)+"</span>"+storedCodeBlock.charAt(j);
startPos=j+1;
} else
if (!isAlphanumeric(storedCodeBlock,j)){
if (startPos<j) {
s+=storedCodeBlock.substring(startPos,j)+storedCodeBlock.charAt(j);
} else {
s+=storedCodeBlock.charAt(j);
}
startPos=j+1;
}
} else {
s+=storedCodeBlock.charAt(j);
startPos=j+1;
}
if (canBeNumericalConstant&&lengthOfConstant==0&&!(storedCodeBlock.charAt(j)>='0'&&storedCodeBlock.charAt(j)<='9')) {
canBeNumericalConstant=false;
}
if (!canBeNumericalConstant&&!isAlphanumeric(storedCodeBlock,j)) {
canBeNumericalConstant=true;
lengthOfConstant=0;
//System.out.println("Found "+storedCodeBlock.charAt(j)+", can be numeric...");
}
}
for (int j=0;j<s.length();j++) {
if (s.charAt(j)=='\2') {
s=s.substring(0,j)+"&lt;"+s.substring(j+1,s.length());
}
}
s="<pre>"+s;
s+=endText;
buildMsg.append(s);
} else {
codeBlockMsg=codeBlockMsg.delete(0, codeBlockMsg.length());
}
i+=1;
codeBlock=!codeBlock;
} else
if (codeBlock) {
codeBlockMsg.append(finalMsg.charAt(i));continue;
}
if (foundSub("%5E%5E",finalMsg,i)) {
if (boldBlock) {
buildMsg.append("</b>");
} else {
buildMsg.append("<b>");
}
boldBlock=!boldBlock;
i+=5;
continue;
}
if (i<finalMsg.length()-1&&finalMsg.charAt(i)=='*'&&finalMsg.charAt(i+1)=='*') {
if (italicBlock) {
buildMsg.append("</i>");
} else {
buildMsg.append("<i>");
}
italicBlock=!italicBlock;
i+=1;
continue;
}
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;
}
if (foundSub("%5B%5B",finalMsg,i)||foundSub("%5D%5D",finalMsg,i)) {
if (linkBlock) {
buildMsg.append("\">").append(storedLink).append("</a>");
} else {
storedLink.delete(0,storedLink.length());
buildMsg.append("<a href=\"");
}
linkBlock=!linkBlock;
i+=5;
continue;
}
if (linkBlock) {
storedLink.append(finalMsg.charAt(i));
}
buildMsg.append(finalMsg.charAt(i));
}
if (Files.exists(Paths.get(sigPlace.COMMENTSDIR,requestParams.get("article")))) {
List<String> data = Files.readAllLines(Paths.get(sigPlace.COMMENTSDIR,requestParams.get("article")));
data.set(0,Integer.toString(Integer.parseInt(data.get(0))+1));
data.add(finalMsg+"\n"+requestParams.get("name")+ZonedDateTime.now()+";"+requestParams.get("color"));
data.add(buildMsg.toString()+"\n"+requestParams.get("name")+ZonedDateTime.now()+";"+requestParams.get("color"));
Files.write(Paths.get(sigPlace.COMMENTSDIR,requestParams.get("article")), data, StandardOpenOption.TRUNCATE_EXISTING,StandardOpenOption.WRITE);
} else {
List<String> data = new ArrayList<String>();
data.add("1");
data.add(finalMsg+"\n"+requestParams.get("name")+ZonedDateTime.now()+";"+requestParams.get("color"));
data.add(buildMsg.toString()+"\n"+requestParams.get("name")+ZonedDateTime.now()+";"+requestParams.get("color"));
Files.write(Paths.get(sigPlace.COMMENTSDIR,requestParams.get("article")), data, StandardOpenOption.TRUNCATE_EXISTING,StandardOpenOption.WRITE,StandardOpenOption.CREATE_NEW);
}
CreateRequest(client,"200","OK",Paths.get(sigPlace.OUTDIR,"testfile.html"));
@ -192,6 +402,17 @@ public class sigServer {
}
}
private boolean foundSub(String string, String finalMsg, int i) {
if (i+string.length()<=finalMsg.length()) {
for (int j=0;j<string.length();j++) {
if (string.charAt(j)!=finalMsg.charAt(i+j)) {
return false;
}
}
return true;
}
return false;
}
private ZonedDateTime GetLastModifiedDate(Path p) throws IOException {
Instant newTime = Files.getLastModifiedTime(p).toInstant();
newTime = newTime.truncatedTo(ChronoUnit.SECONDS);

Loading…
Cancel
Save