九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

人类是在偷懒中进步的,用一个windows批处理解决4个脚本到html的转换+更多

 

人类是在偷懒中进步的,用一个windows批处理解决一切

write by 九天雁翎(JTianLing) -- www.jtianling.com

相当的郁闷啊,本来写了很多东西了,一步一步分析我是怎么偷懒的。。。结果因为误点了firefox的一个按钮,什么东西都没有了,血的教训啊,我再也不在线写东西了。

首先,鉴于没有现成的很好的方法来为我的lua,python,bash脚本色彩鲜艳一点,并且缩进也很符合要求,我本来是想在ubuntu下面用一个脚本来通过vim2html实现所有我想要的功能,结果发现vim在控制台下生成的东西颜色都不太好。毕竟那里是颜色深的低为主的世界。(别说gvim,我没有装X11,更没有在编译vim的时候加上GUI选项)。

于是只好放到windows中来做了,就昨天的效果,虽然操作麻烦了点,其实效果还是很不错的:)

既然学了那么多脚本技术,批处理更是不再话下了吧,虽然没有系统学过,搞了几篇教程就上了。

解决一次转换4个文件的方法很简单,脚本如下:

set CPP=cpp/dsaa%1.cpp
set LUA=lua/dsaa%1.lua
set PY=py/dsaa%1.py
set SH=sh/dsaa%1.sh
rem 
没有用start是为了保证一个一个执行
gvim -c ":syntax on|:colo
default|:TOhtml"
 -c ":w|:qa" %CPP%
gvim -c ":syntax on|:colo
default|:TOhtml"
 -c ":w|:qa" %LUA%
gvim -c ":syntax on|:colo
default|:TOhtml"
 -c ":w|:qa" %PY%
gvim -c ":syntax on|:colo
default|:TOhtml"
 -c ":w|:qa" %SH%

 

目的是达到了,但是。。。。我还是需要一个一个粘贴复制到文章中。。。我还是懒的做啊。。。。生成一个文件多好啊,直接将所有生成的文件重定向输出到一个文件中就得了(还好bat也有重定向)

set OB=dsaa%1.html

echo CPP: >>
%OB%
echo LUA: >>
%OB% 
echo PYTHON: >>
%OB% 
echo BASH: >>
%OB% 

 

作为一个懒的出奇的人。。。。我还是不满意,每个代码中间没有说明文字啊。。。到时候这样肯定不行,还得手工添加?我才懒的做呢。。。。于是新的偷懒方式诞生了,每个代码段前加上标题说明啊。直接加上文字,可以实现,没有问题,效果不好。(我是有追求的懒人)

首先这竟然是分段的说明,起码也算个小标题,需要写大点吧。没错,既然是html文件,嵌入html格式的东西指定大小就得了啊,说起来简单实现起来难。因为echo没有办法支持带<的东西,用了””号是没有问题,但是又污染了生成的文件。最后通过很扭曲的方式完成了。看了完整的脚本后你就知道了:

 

1 set CPP=cpp/dsaa%1.cpp
 2 set LUA=lua/dsaa%1.lua
 3 set PY=py/dsaa%1.py
 4 set SH=sh/dsaa%1.sh
 5 set OB=dsaa%1.html
 6 rem 
以下的两个变量我本来想要减少输入的,但是竟然不好用,用了""界定就影响html,不用windows不准
 7 rem 
直接在echo后面输入也不行,于是用同名的相同内容的文件代替了
 8 set HEAD="<html>
<br><br><br><font size="
+3">"
 9 set TAIL="<font><br><br>
</html>"

10
11 rem 
没有用start是为了保证一个一个执行
12 gvim -c ":syntax
on|:colo default|:TOhtml"
 -c ":w|:qa" %CPP%
13 gvim -c ":syntax
on|:colo default|:TOhtml"
 -c ":w|:qa" %LUA%
14 gvim -c ":syntax
on|:colo default|:TOhtml"
 -c ":w|:qa" %PY%
15 gvim -c ":syntax
on|:colo default|:TOhtml"
 -c ":w|:qa" %SH%
16
17 rem 
所有部分的头
18 type head
>>%OB%
19 type allhead
>%OB%
20 type tail >> %OB% 
21
22 rem cpp
部分
23 type head
>>%OB%
24 echo CPP: >> %OB%
25 type tail >> %OB% 
26 type %CPP%.html >>
%OB%
27
28 rem lua
部分
29 type head >> %OB%
30 echo LUA: >> %OB% 
31 type tail >> %OB% 
32 type %LUA%.html >>
%OB%
33
34 rem python
部分
35 type head >> %OB%
36 echo PYTHON: >> %OB% 
37 type tail >> %OB% 
38 type %PY%.html >>
%OB%
39
40 rem bash
部分
41 type head >> %OB%
42 echo BASH: >> %OB% 
43 type tail >> %OB% 
44 type %SH%.html >>
%OB%

 

 

最后,以前可能需要多次用gvim打开文件,并且改变颜色(因为我默认的是desert,是黑色背景的,不改不行,我也不希望平时就用default),然后输入:TOhtml转换,然后保存退出,然后开始下一个。。。。。。全部转换完后再一个一个复制到文章中。。。。

 

现在仅仅需要在控制台输入dsaa xxx,然后一次复制到文章的末尾就全部搞定了:)呵呵,懒人的办法啊。。。。想起以前某人说过:人类是在偷懒中进步的。。。深有体会,但是偷懒不是懒得睡觉,而且去想偷懒的好办法。。。做一个新时代的有追求的懂得偷懒的好青年:)

 

效果也贴一下,除了cpp文件,就是昨天的文章各个代码,效果不错吧:)呵呵

 

 

write by 九天雁翎(JTianLing)
-- www.jtianling.com

以下为实现部分:

CPP:

 1
#ifndef
__JT_MATRIX_H__

 2 #define
__JT_MATRIX_H__

 3
 4
 5 class CJTMatrix
 6 {
 7 public:
 8     CJTMatrix();
 9     CJTMatric(CJTMatrix
*
10     ~CJTMatrix();
11
12     Transpose();
13
14 };
15
16
17
18
19
20
21
22
23
24
25
26 #endif

LUA:

 1
function f(x)
 2     if (x == 0)
 3     then
 4         return 0;
 5     else
 6         return 2 *
f(x -1) + x * x;
 7     end
 8 end
 9
10 -- Test code
11 print(f(1))
12 print(f(2))
13 print(f(3))
14 print(f(4))
15     

PYTHON:

 1
def
 f(x):
 2     'a easy recursive funtion'
 3     if x == 0:
 4         return 0
 5     else:
 6         return 2 * f(x -1) + x * x
 7
 8
 9 # test code
10 print f(1)
11 print f(2)
12 print f(3)
13 print f(4)
14

BASH:

 1
#!/bin/bash
 2
 3 function f
 4 {
 5     local number="$1"
 6     if [ $number = 0 ]
 7     then
 8         ret=0
 9     else
10         let "decrnum = number - 1"
11         f
$decrnum
12         let "ret = $? * 2 + $1 * $1"
13     fi
14
15     return $ret
16 }
17
18 for i in 1 2 3 4
19 do
20     f i
21     echo $?
22 done
23

分类:  未分类 
标签:  HTML 

Posted By 九天雁翎 at 九天雁翎的博客 on 2008年11月12日

前一篇: 一天一个C Run-Time Library 函数 (9) atexit 后一篇: 一天一个C Run-Time Library 函数 (10) atol,atof,atoi, ltoa , itoa,