`
haoningabc
  • 浏览: 1478537 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

40行代码完成c代码高亮的移动版(nginx的rewrite)

阅读更多
ios和android没有给力的看代码的工具
有时候想赖床上看代码感觉麻烦

不如自己弄一个最简单的代码高亮,被窝里用手机pad神马的看代码,还能高亮显示

使用chrome吧,
1个html和nginx的一小段配置,实现代码阅读
不用任何代码生成工具,什么转化之类的都不用

nginx/nginx.conf中加入
server {
	autoindex on;
        listen 8080;
        location ~ \.c$ {
	    rewrite ^ http://localhost/code.html?aa=$uri;
        }
    }

1.autoindex on;
是让nginx可以访问目录下的文件的
2.所有.c的文件全都跳转到新的这个链接
3.新的这个链接处理$uri,通过ajax写到html中,用prettify.js解析成高亮的,
注意js要放到最后,在jquery解析之后加载高亮
4.如果java神马的就把.c改成.java,或其他的

html的代码为
nginx/html/code.html
<html>
<head>
<link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
</head>
<body onload='prettyPrint()'>
<script type="text/javascript">
	var url = document.location.href;
	var realurl="";
	if (url.indexOf("=")>0){
	    realurl = url.substring(url.indexOf("=")+1,url.length);
	}
	$.ajax({
	  type: 'GET',
	  url: realurl,
	  success: function(data){
          data=data.replace(/</g,"&lt;").replace(/>/g,"&gt;");
          $("#thiscode").html(data);
      },
      error:function(e){
      	alert("error:"+e);
      },
	  dataType: "string"
	});
</script>
<pre class="prettyprint" id="thiscode">
</pre>
</body>
</html>
<script src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js" type="text/javascript"></script> 

注意要用GET,
POST会导致405,还得处理

搞定

测试
随便
把一个源码目录扔到

nginx/html/下就行了
比如把nginx的src目录扔进来


然后访问
http://localhost:8080/src

点任何一个.c都会跳到http://localhost/code.html?aa=b.c






完整的nginx-1.3.4/conf/nginx.conf为
只加了第10到第16行,注释去掉了
worker_processes  4;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        autoindex on;
        listen 8080;
        location ~ \.c$ {
            rewrite ^ http://106.187.88.34/code.html?aa=$uri;
        }
        location / {
                root   html;
                index  index.html index.htm;
        }
    }
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}




后记:
开始有bug,<>中的东西全被html解析成标签了,显示不了,
中间加了一行,搞定
data=data.replace(/</g,"&lt;").replace(/>/g,"&gt;");
ie显示的时候没有换行
opera打不开
firefox和chrome没问题
其实感觉跟jsp的过滤器也能实现,就是感觉nginx的rewrite好玩
  • 大小: 40.4 KB
  • 大小: 115.8 KB
  • 大小: 116.7 KB
分享到:
评论

相关推荐

    Nginx的Rewrite规则与实例

    ### Nginx的Rewrite规则与实例:深入解析与应用 在现代Web服务器管理与运维领域,Nginx因其高效、稳定以及丰富的功能而备受推崇。其中,Rewrite模块是Nginx的一项重要特性,它允许管理员对HTTP请求进行重写、重定向...

    nginx rewrite常用示例

    ### Nginx Rewrite 常用示例解析 #### 一、从非-www 版本自动重定向到 www 版本 **应用场景:** 当用户访问 `abc.com`(无 www 的版本)时,需要自动重定向到 `http://www.abc.com`。 **配置示例:** ```nginx ...

    nginx设置rewrite规则

    在配置完成后,记得重启Nginx服务使配置生效。在Linux环境下,可以使用`systemctl restart nginx`或者`service nginx restart`命令。 总的来说,配置Nginx的rewrite规则是提升Web应用性能和用户体验的关键步骤,...

    Nginx关于Rewrite执行顺序详解.docx

    在Nginx中,Rewrite模块是实现URL重写的重要工具,它允许我们根据预定义的规则对请求的URL进行转换,从而实现动态URL到静态URL的映射、隐藏真实路径、实现URL路由等目的。这篇文档将深入解析Nginx中Rewrite模块的...

    实例讲解nginx的rewrite规则

    ### 实例讲解Nginx的rewrite规则 #### 正则表达式匹配 在Nginx中,使用`rewrite`指令可以实现对URL的重写,其中涉及到正则表达式的匹配方式有以下几种: 1. **区分大小写的匹配**:使用`~`符号,例如:`rewrite ^/...

    nginx中带问号(?) 带参数的rewrite规则

    在Nginx服务器配置中,`rewrite`指令用于URL重写,这在创建动态到静态页面的重定向、实现URL路由、或者根据特定条件改变URL结构时非常有用。当URL中包含问号(`?`)以及参数时,处理起来可能会有些复杂,因为问号及其...

    NGINX 0.1版代码

    **NGINX 0.1版代码详解** NGINX是一款高性能、轻量级的Web服务器及反向代理服务器,以其高效、稳定和模块化设计而著名。在NGINX的早期版本,如0.1版,其代码结构相对简单,是初学者深入理解其工作原理的良好起点。...

    nginx1.9.2源代码(内含大量注释的版本).zip

    通过阅读和分析 Nginx 1.9.2 的源代码,开发者不仅可以深入了解 Web 服务器的工作原理,还可以学习到如何编写高效的 C 语言代码,以及如何利用操作系统提供的接口实现高并发处理。这对于提升服务器底层开发能力、...

    Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写[文].pdf

    Nginx 中 rewrite 实现二级域名、三级域名、泛域名、路径的重写 Nginx 中的 rewrite 模块是实现 URL 重写和.redirect 的强大工具。下面我们将详细介绍 Nginx 中如何使用 rewrite 实现二级域名、三级域名、泛域名、...

    nginx脚本引擎与rewrite设计原理(二)

    这种设计使得Nginx能够在处理`rewrite`规则时,准确地获取和引用匹配到的子串,从而完成URL的重构。 #### 总结 通过对Nginx脚本引擎中`set`和`rewrite`指令的深入解析,我们可以看出,Nginx的设计充分考虑了灵活性...

    nginx-rewrite彻底解决discz X3多入口问题

    #nginx-rewrite彻底解决discz X3多入口问题 #本规则仅适用于nginx。请大家举一反三,根据自己的实际应用情况进行适当调整。有点繁琐,但是有用。 #本文由丽江热线CTO shwan原创,转载请保留本行信息。应用效果见:...

    Nginx源代码分析

    Nginx源代码分析 Nginx源代码分析是学习使用Nginx源码开发人员的指导丛书,为开发者提供了详细的Nginx源代码分析指导。下面是对Nginx源代码的分析指导。 目录结构 Nginx的源码目录结构层次明确,从自动编译脚本到...

    nginx rewrite规则

    **Nginx Rewrite 规则详解** 在Web服务器领域,Nginx以其高效、轻量级的特性,被广泛用于处理静态内容和反向代理。其中,`rewrite`规则是Nginx的一项重要功能,它允许我们重写URL,实现动态路由、URL美化等目的。与...

    nginx配置location总结及rewrite规则写法

    nginx配置location总结及rewrite规则写法

    nginx脚本引擎与rewrite设计原理(一)

    ### Nginx脚本引擎与Rewrite设计原理深入解析 Nginx作为一款高性能的HTTP服务器及反向代理服务器,其强大的rewrite功能是其亮点之一。本文旨在深度剖析Nginx脚本引擎与rewrite设计原理,尤其聚焦于rewrite配置如何...

    Nginx常用Rewrite伪静态法则

    Nginx常用Rewrite伪静态法则 信赖此刻大部门用Linux VPS的伴侣都在利用这个敏捷传布的Nginx,本日就清算一下最常见的PHP法式的Rewrite(伪静态法则)。 Wordpress: location / { index index.html index.php; if ...

    nginx 源代码 注释版

    2. **配置解析器**:Nginx的配置文件解析是通过`src/core/ngx_conf_file.c`和`src/core/ngx_parse.c`来完成的。这些文件定义了如何读取、解析和应用配置指令。 3. **网络连接处理**:`src/event/ngx_event_...

    nginx arm64版本nginx-linux-arrch64.zip

    - 获取源码:从Nginx官方网站下载最新源代码。 - 预处理:配置编译选项,如模块选择、安装路径等,通常使用`./configure`命令。 - 编译:执行`make`命令进行编译。 - 安装:使用`make install`将编译后的文件...

Global site tag (gtag.js) - Google Analytics