Stata有没有语法高亮?

时间:2013-07-29 04:16:40

标签: stata syntaxhighlighter

我有一段Stata代码,我想在我的网站上发布。

代码如下所示:

/* creating temporary files*/
forval i = 1964/2012 {
use mar`i', clear
unab allvars: _all
local masterlist "income race age grdatn edlev grdhi hisp spneth recnum state cntyfp cbsa hhtype hhid numper"
local keeplist: list allvars & masterlist
keep `keeplist'
save temporaryMar`i'
}
capture erase stateLevel`yearStart'-`yearEnd'.dta
/* end of temporary files establishment */


/*  *** INCOME ADJUSTMENTS ***
**  variable name "incomeStandard". making sure that 
**  income does not contain any coded values. ................ etc

为了将其转换为好看的HTML并将其发布到我的网站上,我需要写下以下内容:

<div class="geshifilter">
<pre class="java geshifilter-java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Integers <span style="color: #009900;">{</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">(</span><span style="color: #003399;">String</span><span style="color: #009900;">[</span><span style="color: #009900;">]</span> arguments<span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
    <span style="color: #000066; font-weight: bold;">int</span> c<span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//declaring a variable</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">/* Using for loop to repeat instruction execution */</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">(</span>c <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> c <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">;</span> c<span style="color: #339933;">++</span><span style="color: #009900;">)</span> <span style="color: #009900;">{</span>
      <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">(</span>c<span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">}</span>
  <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span></pre></div>

这样做太麻烦了。有没有更简单的方法?像语法荧光笔?

2 个答案:

答案 0 :(得分:2)

从SSC安装的Stata log2html至少有一个荧光笔。给定一个do.file,你可以这样做

 . ssc inst log2html 
 . log using mydo.smcl
 . type mydo.do
 . log close 
 . log2html mydo.smcl 

你有一个HTML文件。您需要编辑一些行,并且样式选择可能不适合。系统的变化将是一个体面的文本编辑器或脚本语言的问题。使用ssc的安装只需要完成一次。

顺便说一句,对于其他读者,如果不是你自己,行

 . capture erase stateLevel`yearStart'-`yearEnd'.dta
如果没有事先定义同一.do文件中使用的本地宏,那么

就毫无意义。

答案 1 :(得分:0)

是的,而且我写了! : - )

这是一个名为Statax JavaScript 引擎,只需添加一行代码并将Stata代码放在中,您就可以轻松地在任何网站或博客上实现它标记sh.stata类。

您可以在我的网站上阅读详细信息:http://www.haghish.com/statax/statax.php

这是怎么回事:

  • 在网页标题中添加以下脚本<script type="text/javascript" src='http://haghish.com/statax/Statax.js'></script>
  • 就是这样!

现在您只需将Stata代码放在pre tag中即可。但是,您还应该指定类,<pre class="sh_stata">。就这样。从现在开始直到</pre>标记的任何Stata代码都会突出显示与Stata do-file编辑器一样好。您可以在我的网站上找到更多示例,也可以学习如何自定义它并使用任何语法高亮主题,这些都是通过应用Stata主题制作的。

我还为它写了一个名为Statax的软件包,它可以在ssc ssc install statax上找到。它基本上使用相同的JavaScript引擎。但是,它允许您将.do和.ado文件转换为HTML并自动应用语法高亮显示,只是为了让生活更轻松......