在网上搜到Allister Sanchez给 SyntaxHighlighter写了个高亮显示的扩展, js代码如下:
shBrushGo.js
SyntaxHighlighter.brushes.Go = function()
{
// Copyright 2010 Sanchez, Allister Levi
var declaration_type_words = 'struct func interface map chan package import type const var';
var control_words = 'goto break continue if else switch default case for range go select return fallthrough defer';
this.regexList = [
{ regex: SyntaxHighlighter.regexLib.singleLineCComments, css: 'comments' }, // one line comments
{ regex: SyntaxHighlighter.regexLib.multiLineCComments, css: 'comments' }, // multiline comments
{ regex: SyntaxHighlighter.regexLib.doubleQuotedString, css: 'string' }, // strings
{ regex: SyntaxHighlighter.regexLib.singleQuotedString, css: 'string' }, // strings
{ regex: new RegExp(this.getKeywords(declaration_type_words), 'gm'), css: 'color2 bold' },
{ regex: new RegExp(this.getKeywords(control_words), 'gm'), css: 'keyword bold' }
];
};
SyntaxHighlighter.brushes.Go.prototype = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.Go.aliases = ['go', 'golang'];
把这段js代码放到 wp-content/plugins/syntax-highlighter-mt/scripts 目录下, 并修改文件syntax-highlighter-mt/stxhighlightmt.php文件在文中增加:
'xml xhtml xslt html $x/scripts/shBrushXml.js',
'go golang $x/scripts/shBrushGo.js'
修改完后,在的博客里面可以这样使用:
package main
import "fmt"
func main() {
fmt.Printf("yoohoo!")
}
显示效果如下:
package main
import "fmt"
func main() {
fmt.Printf("yoohoo!")
}
参考: http://hackgolang.blogspot.com/2010/05/syntax-highlighting-for-golang.html
Bian Jiang
– EOF–
打算用Go写个抓取网页的工具,就看了一下HTTP包, 简单的写了两个例子.
格式化后的代码参考: https://gist.github.com/801826
update: 由于新版本对log, http.header包做了调整, 更新代码
log.Exit –> log.Fatal
req.Header = map[string]string{} –> req.Header = map[string][]string{}
1. 直接使用http.Get取得信息
package main
import (
"log"
"io/ioutil"
"http"
)
func main() {
res, _, err := http.Get("http://bbs.golang-china.org/")
if err != nil {
log.Fatal(err)
}
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
log.Println(string(body))
}
2. 自己定义HTTP的头信息
package main
import (
"log"
"http"
"net"
"io/ioutil"
)
func main() {
url, err := http.ParseURL("http://bbs.golang-china.org/")
if err != nil {
log.Fatal(err)
}
tcpConn, err := net.Dial("tcp", "", url.Host + ":80")
if err != nil {
log.Fatal(err)
}
clientConn := http.NewClientConn(tcpConn, nil)
var req http.Request
req.URL = url
req.Method = "GET"
req.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Chrome/9.0.570.0 Safari/534.11"
req.Header = map[string][]string{}
req.Header.Add("Connection", "keep-alive")
err = clientConn.Write(&req)
if err != nil {
log.Fatal(err)
}
resp, err := clientConn.Read(&req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
log.Println("Http Response: " + resp.Status)
body, _ := ioutil.ReadAll(resp.Body)
log.Println(string(body))
}

LiteIDE 是Go语言的开发工具,采用QT开发的,支持Linux和Windows。
LiteIDE有插件管理,如果你愿意的话,可以自己给它开发插件。
目前目前版本0.1.8, 支持:
* UTF8文件加载和保存
* 语法高亮
* 项目管理
* 项目编译和运行
* 单文件的编译和运行
* gopromake自动编译工具
* 错误信息提示
GolangIDE is golang developer ide, based for liteide.
Features:
* UTF8 file load and save
* Syntax Highliter
* Project Manager
* Project Build and run
* No project, file build and run
* gopromake auto build tools
* build error can jump to source line
Download:
http://code.google.com/p/golangide/downloads/list
Source:
http://code.google.com/p/liteide/source/checkout
Update logs:
* 0.1.8 go ast view plugin, tool goastview.
* 0.1.6 build on win32/linux64bit; auto env lookup.
* 0.1.5 build error can jump to source line
* 0.1.2 gopromake file parser use goroutines
* 0.1.0 first release
From: https://groups.google.com/group/golang-nuts/browse_thread/thread/76e8670dd00c080a#
Recent Comments