feat(web): add html2markdown
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Baoshuo Ren 2022-10-15 07:07:45 +08:00
parent 75976d9bcc
commit db1500110a
Signed by: baoshuo
GPG Key ID: 00CB9680AB29F51A
7 changed files with 61 additions and 3 deletions

View File

@ -0,0 +1,44 @@
<?php
requireLib('bootstrap5');
?>
<?php echoUOJPageHeader(UOJLocale::get('html to markdown')) ?>
<h1 class="h2">
<?= UOJLocale::get('html to markdown') ?>
</h1>
<style>
#html, #markdown {
font-family: Cascadia Mono, Ubuntu Mono, Roboto Mono, Jetbrains Mono, Fira Code, Consolas, '思源黑体 Regular', '思源宋体 Light', '宋体', 'Courier New', monospace;
width: 100%;
min-height: 300px;
}
</style>
<div class="card">
<div class="card-body">
<div class="row row-cols-1 row-cols-md-2">
<div class="col">
<h2 class="h4">HTML 源码</h2>
<textarea class="form-control" id="html" placeholder="input html here"></textarea>
</div>
<div class="col">
<h2 class="h4">Markdown 源码</h2>
<textarea readonly class="form-control" id="markdown" placeholder="output markdown here"></textarea>
</div>
</div>
</div>
</div>
<?= HTML::js_src('/js/h2m.js') ?>
<script>
$(document).ready(function() {
$('#html').on('input', function() {
$('#markdown').val(h2m($('#html').val(), { converter: 'Gfm' }));
});
});
</script>
<?php echoUOJPageFooter() ?>

View File

@ -112,8 +112,8 @@
<p>提示:</p> <p>提示:</p>
<ol> <ol>
<li>请勿引用不稳定的外部资源(如来自个人服务器的图片或文档等),以便备份及后期维护;</li> <li>请勿引用不稳定的外部资源(如来自个人服务器的图片或文档等),以便备份及后期维护;</li>
<li>请勿在题面中直接插入大段 HTML 源码,这可能会破坏页面的显示,可以考虑使用 <a href="http://island205.github.io/h2m/">转换工具</a> 转换后再作修正;</li> <li>请勿在题面中直接插入大段 HTML 源码,这可能会破坏页面的显示,可以考虑使用 <a href="/html2markdown">转换工具</a> 转换后再作修正;</li>
<li>图片上传推荐使用 <a href="https://smms.app" target="_blank">SM.MS</a> 图床,以免后续产生外链图片大量失效的情况。</li> <li>图片上传推荐使用 <a href="/image_hosting" target="_blank">S2OJ</a> 图床,以免后续产生外链图片大量失效的情况。</li>
</ol> </ol>
</div> </div>

View File

@ -102,4 +102,5 @@ return [
'offline' => 'Offline', 'offline' => 'Offline',
'apps' => 'Apps', 'apps' => 'Apps',
'image hosting' => 'Image Hosting', 'image hosting' => 'Image Hosting',
'html to markdown' => 'HTML to Markdown',
]; ];

View File

@ -102,4 +102,5 @@ return [
'last active at' => '最后活动于', 'last active at' => '最后活动于',
'apps' => '应用', 'apps' => '应用',
'image hosting' => '图床', 'image hosting' => '图床',
'html to markdown' => 'HTML 转 Markdown',
]; ];

View File

@ -80,9 +80,10 @@ Route::group([
Route::any('/click-zan', '/click_zan.php'); Route::any('/click-zan', '/click_zan.php');
// Image Hosting // Apps
Route::any('/image_hosting', '/image_hosting/index.php'); Route::any('/image_hosting', '/image_hosting/index.php');
Route::get('/image_hosting/{image_name}.png', '/image_hosting/get_image.php'); Route::get('/image_hosting/{image_name}.png', '/image_hosting/get_image.php');
Route::any('/html2markdown', '/html2markdown.php');
} }
); );

View File

@ -116,6 +116,12 @@ mb-4" role="navigation">
<?= UOJLocale::get('image hosting') ?> <?= UOJLocale::get('image hosting') ?>
</a> </a>
</li> </li>
<li>
<a class="dropdown-item" href="<?= HTML::url('/html2markdown') ?>">
<i class="bi bi-markdown"></i>
<?= UOJLocale::get('html to markdown') ?>
</a>
</li>
</ul> </ul>
</li> </li>
<?php endif ?> <?php endif ?>

5
web/js/h2m.js Normal file

File diff suppressed because one or more lines are too long