一聚教程网:一个值得你收藏的教程网站

热门教程

centos中nginx配置markdown 编辑器例子

时间:2022-06-30 21:29:34 编辑:袖梨 来源:一聚教程网

先说一下实现的原理,当然此文章主要讲了我的实现,当然还有其他的实现方式,原理都是差不多的。
首先,我们需要安装kramdown解释器,这个很好理解吧,和php一样,他的特点标签能够实现渲染肯定需要解释器来解析,这里kramdown解释器的官网为http://kramdown.gettalong.org/installation.html,这是安装界面,根据自己的系统安装即可,不过他需要安装ruby依赖。然后我通过nginx的url转发,将.md的文档转发给一个php文件来处理,这个php文件,就调用kramdown解释器来解析对应文档即可。
原理很简单吧,看下具体实现步骤吧,

1、安装kramdown解释器

 代码如下 复制代码

sudo aptitude install ruby rubygems
sudo gem install kramdown

安装完,(ruby可以直接yum安装),可以写一个md的测试文件,使用kramdown命令试一下。
2、制作kramdown解析程序
这里我用的是php,当然也可以用其他语言,只要可以调用linux的system命令即可,当然php安装有的时候会屏蔽这些敏感函数,注意要释放一下。
文件发一下

 代码如下 复制代码
   $file = @$_GET['file'];
   if(!is_file($file))
   header("HTTP/1.0 404 Not Found");
   header("Content-type: text/html; charset=utf-8");
   date_default_timezone_set('Asia/Shanghai');
   $filename = strrchr($file,'/');
   $filename = ltrim($filename,'/');
   $odir = rtrim($file,$filename);
?>

<?php echo $filename;?>






   

   

     
       
                    $dir = opendir($odir);
            while (($f = readdir($dir)) !== false){
                if('.' !=$f && '..' != $f){
                $href = $f;
                $type = 'File';
                if(is_dir($odir.$f)){
                    $href = $f.'/index.md';//目录的话默认访问里面的index.md
                    $type = 'Dir';
                }
                $time = date('Y-m-d H:i:s',filemtime($odir.$f));
        ?>
           
             
             
             
             
           
                            }
            }
            ?>
       
     

             

               
             

               
               
               

             

               
             

   

       

          

           

             

                 
             

           

           

               

                                   echo system('/usr/bin/kramdown  '.$file);
                ?>
               

           

          

       

   


实现了一些简单的文件遍历和样式,这个可以随意制作,我是用的github的样式

3、nginx配置url重写

当然这里就根据自己的喜好了,当然也可以制作soket服务,不过php毕竟做服务的话不太好,还有配合shell监控,所以不如直接使用url重写了

 代码如下 复制代码

location ~ ^(.+\.md)(.*) {
          rewrite .* /md.php?file=$document_root$fastcgi_script_name last;
}

4、另外

最后在nginx的web服务加上个默认页

index index.html index.htm index.php index.md default.html default.htm default.php;

这样就可以默认访问index.md文件了
这样就实现了自己网站的markdown文件解析了,以后可以写md文档了

热门栏目