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