1

我有一段我想在我的网站上发布的 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>

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

4

2 回答 2

2

在您看来,Stata 至少有一个荧光笔,log2html要从 SSC 安装。给定一个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 文件中使用的本地宏,将毫无意义。

于 2013-07-29T07:09:22.837 回答
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 并自动应用语法高亮,只是为了让生活更轻松......

于 2016-02-15T21:14:59.747 回答