【问题标题】:markdown in browser via showdown通过摊牌在浏览器中降价
【发布时间】:2016-10-18 09:41:43
【问题描述】:

我想知道是否可以用 Markdown 而不是 html 创建我的新网站。 https://github.com/coreyti/showdown 的 showdown.js 似乎是一个可以做到这一点的插件。

我在想类似的事情

 <html>
 <head>
   <script type="text/javascript" src="/js/showdown-starter.js" />
   <link rel="StyleSheet" href="mystylesheet.css" type="text/css" />
 </head>

 <body>

 # Welcome

 Hello.  Welcome to my website.

 </body>
 </html>

大概是客户端 javascript 会将其转换为浏览器喜欢的 html。

【问题讨论】:

标签: javascript browser markdown showdown


【解决方案1】:

当然可以。

下面是一个例子:

<div id="content">
# Welcome

Hello.  Welcome to my **website**.
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.4.0/showdown.min.js"></script>
<script>
var conv = new showdown.Converter();
var txt = document.getElementById('content').innerHTML;
console.log(txt);
document.getElementById('content').innerHTML = conv.makeHtml(txt);
</script>

【讨论】:

  • 试过这个,是一个很好的解决方案,但也有局限性。在转换代码标签元素方面不太好。下面的php方案最适合转换代码标签元素
  • @krushiovida 你在转换代码元素时遇到了什么问题?
【解决方案2】:

我可能是错的,但您最好在服务器端而不是在客户端进行 markdown 到 html 的转换。这将为未启用 javascript 的用户提供正确的 html,并且可能使搜索引擎机器人更容易跟踪您的链接、引用您的图像等...

如果您使用 Markdown 的 PHP port 来完成这项工作,您的示例将如下所示:

<body>
<?php 
include("Markdown.php");
$text = <<<EOD

# Welcome

Hello.  Welcome to my website.

EOD;
echo Markdown($text);
?>
</body>

【讨论】:

  • 好主意,但我的 1000 个浏览器的计算能力比我的单个服务器强得多。 (也许这无关紧要……需要评估和基准测试)
  • 非常好的观点。你是对的,在大范围内它只适用于一些缓存系统。但不知何故,我仍然认为信任客户来完成这项工作是有问题的。我无法解释为什么。
猜你喜欢
  • 1970-01-01
  • 2019-03-10
  • 2023-03-20
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 2018-09-26
  • 2021-09-26
相关资源
最近更新 更多