Added Markdown support

This commit is contained in:
swagg boi 2023-04-25 11:56:42 -04:00
parent 94988c2d34
commit e86cda1cc5
8 changed files with 1365 additions and 7 deletions

View file

@ -40,7 +40,6 @@ Run the tests locally (against development environment):
### (Lord knows there's TODOs I could be working on...)
1. Support at least some Markdown, specifically the code blocks
1. Implement tripcodes (moving this down in priority due to complexity...)
1. Return a text response instead of HTML if a `.txt` extension [is
requested](https://docs.mojolicious.org/Mojolicious/Plugin/DefaultHelpers#respond_to)

View file

@ -20,3 +20,67 @@
.thread .body, .remark .body {
white-space: pre-wrap;
}
/*
* For the custom Markdown <h1> - <h6>
*/
span.head1 {
display: block;
font-size: 2em;
margin-top: 0.67em;
margin-bottom: 0.67em;
margin-left: 0;
margin-right: 0;
font-weight: bold;
}
span.head2 {
display: block;
font-size: 1.5em;
margin-top: 0.83em;
margin-bottom: 0.83em;
margin-left: 0;
margin-right: 0;
font-weight: bold;
}
span.head3 {
display: block;
font-size: 1.17em;
margin-top: 1em;
margin-bottom: 1em;
margin-left: 0;
margin-right: 0;
font-weight: bold;
}
span.head4 {
display: block;
font-size: 1em;
margin-top: 1.33em;
margin-bottom: 1.33em;
margin-left: 0;
margin-right: 0;
font-weight: bold;
}
span.head5 {
display: block;
font-size: .83em;
margin-top: 1.67em;
margin-bottom: 1.67em;
margin-left: 0;
margin-right: 0;
font-weight: bold;
}
span.head6 {
display: block;
font-size: .67em;
margin-top: 2.33em;
margin-bottom: 2.33em;
margin-left: 0;
margin-right: 0;
font-weight: bold;
}

View file

@ -10,6 +10,7 @@ use Crypt::Passphrase;
use PostText::Model::Thread;
use PostText::Model::Remark;
use PostText::Model::Moderator;
use PostText::Markdown;
sub startup($self) {
$self->plugin('Config');
@ -62,6 +63,10 @@ sub startup($self) {
$c->session->{'is_admin'} || undef
});
$self->helper(markdown => sub ($c, $input_text) {
PostText::Markdown::Markdown($input_text)
});
# Finish configuring some things
$self->secrets($self->config->{'secrets'}) || die $@;

1290
lib/PostText/Markdown.pm Normal file

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,7 @@
<nav class="id">#<%= $remark->{'id'} %></nav>
<h4 class="date"><%= $remark->{'date'} %></h4>
<h5 class="author"><%= $remark->{'author'} %></h5>
<p class="body"><%== $remark->{'body'} %></p>
<div class="body"><%== markdown $remark->{'body'} %></div>
</article>
</div>
<nav>

View file

@ -37,7 +37,7 @@
<h3 class="title"><%= $thread->{'title'} %></h3>
<h4 class="date"><%= $thread->{'date'} %></h4>
<h5 class="author"><%= $thread->{'author'} %></h5>
<p class="body"><%== $thread->{'body'} %></p>
<div class="body"><%== markdown $thread->{'body'} %></div>
</article>
</div>
<% if (my $last_remark_id = $last_remark->{'id'}) { =%>
@ -50,7 +50,7 @@
</nav>
<h4 class="date"><%= $last_remark->{'date'} %></h4>
<h5 class="author"><%= $last_remark->{'author'} %></h5>
<p class="body"><%== $last_remark->{'body'} %></p>
<div class="body"><%== markdown $last_remark->{'body'} %></div>
</article>
</div>
<% } =%>

View file

@ -6,7 +6,7 @@
<h3 class="title"><%= $thread->{'title'} %></h3>
<h4 class="date"><%= $thread->{'date'} %></h4>
<h5 class="author"><%= $thread->{'author'} %></h5>
<p class="body"><%== $thread->{'body'} %></p>
<div class="body"><%== markdown $thread->{'body'} %></div>
</article>
</div>
<nav>
@ -32,7 +32,7 @@
</nav>
<h4 class="date"><%= $remark->{'date'} %></h4>
<h5 class="author"><%= $remark->{'author'} %></h5>
<p class="body"><%== $remark->{'body'} %></p>
<div class="body"><%== markdown $remark->{'body'} %></div>
<nav class="flag">
<%= link_to Flag => flag_remark => {remark_id => $remark->{'id'}} %>
</nav>

View file

@ -15,7 +15,7 @@
</h3>
<h4 class="date"><%= $thread->{'date'} %></h4>
<h5 class="author"><%= $thread->{'author'} %></h5>
<p class="body"><%== truncate_text $thread->{'body'} %></p>
<div class="body"><%== markdown truncate_text $thread->{'body'} %></div>
<nav>
<%= link_to Remark => post_remark => {thread_id => $thread->{'id'}} %>
<%= link_to url_for(single_thread => {thread_id => $thread->{'id'}})