2013-02-13 57 views
4

我正在为Web应用程序创建我的降价编辑器。更好的比喻可以是Stack Overflow/RedNotebook,当我们将内容输入到文本框中时,立即格式化的输出会显示在它旁边。如何创建降价编辑器

这样的模型是否有任何示例实现?或者我应该从头开始编写代码,从创建文本框等开始?

任何开放源代码API?

+2

这不是这个问题的适当位置。这种问题更适合[聊天]。参见[关于StackOverflow](http://stackoverflow.com/about)。 – 2013-02-13 02:18:49

+0

https://github.com/evilstreak/markdown-js – jthomas 2013-02-13 02:18:53

+0

请参阅[什么是好的客户端降价编辑器?](http://stackoverflow.com/questions/2357022/what-is-a-good-client-侧面降价编辑器)的选项,包括本网站上使用的编辑器。 – 2013-02-13 02:20:45

回答

3

我有完美的解决方案给你,我只是写了这个。

下载PHP Markdown Extra,并放在同一目录作为这个脚本:当然

<?php 

include_once("markdown.php"); 

if(isset($_GET['mode']) && $_GET['mode'] == 'ajax') 
    die(Markdown($_POST['markdown'])); 

?><html> 
    <head> 
     <style> 
      span  { text-align: left; width: 49% } 
      textarea { height: 100%; width: 100% } 
      #left  { float: left; } 
      #right { float: right; } 
     </style> 
     <script type='text/javascript'> 
      function ajax() 
      { 
       if(window.XMLHttpRequest) 
        var request = new XMLHttpRequest(); 
       else if(window.ActiveXObject) 
        var request = ActiveXObject("Microsoft.XMLHTTP"); 

       request.open("POST", "?mode=ajax", true); 
       request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
       request.send('markdown=' + document.getElementById('markdown').value); 

       request.onreadystatechange = function() 
       { 
        if(request.readyState == 4 && request.status == 200) 
         document.getElementById('right').innerHTML = request.responseText; 
       } 
      } 

      window.onload = function(){ ajax(); } 
     </script> 
    </head> 
    <body> 
     <div> 
      <span id='left'> 
       <textarea id='markdown' onkeyup='ajax();'></textarea> 
      </span> 
      <span id='right'> 
       Loading... 
      </span> 
     </div> 
    </body> 
</html> 

db-ajax

这仅仅是一个简单的概念。它需要一些改进,但它是我想要找的东西的基础。

+0

您应该限制这些AJAX请求......否则会在服务器上创建大量流量......并且不能保证以特定顺序返回请求,因此您可能最终没有预览窗口与用户的输入同步。 – 2013-02-14 02:08:13

+0

@TimMedora正如我所说,这只是一个基础。理想情况下,我会写一个完整的JS解决方案,但这是我刚刚碰到的事情,而且看起来很合适。但我不建议长期发送数千个HTTP请求。 – 2013-02-14 03:34:59

+0

@TimMedora我发布了一个更好的答案。 – 2013-02-15 02:13:37

3

Pagedown是一个更好的答案。

这就是Stack Exchange的编辑器runs off

enter image description here