2013-02-13 98 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