diff --git a/.air.conf b/.air.conf new file mode 100644 index 00000000..c29c615d --- /dev/null +++ b/.air.conf @@ -0,0 +1,39 @@ +# Config file for [Air](https://github.com/cosmtrek/air) in TOML format + +# Working directory +# . or absolute path, please note that the directories following must be under root +root = "." +# Optional! If `watch_dir` is empty, use `root`. +watch_dir = "" +tmp_dir = "tmp" + +[build] +# Just plain old shell command. You could use `make` as well. +cmd = "make build" +# Binary file yields from `cmd`. +bin = "bin/studygolang" +# Customize binary. +# full_bin = "APP_ENV=dev APP_USER=air ./tmp/main" +# This log file places in your tmp_dir. +log = "air_errors.log" +# Watch these filename extensions. +include_ext = ["go", "tpl", "tmpl", "html"] +# Ignore these filename extensions or directories. +exclude_dir = ["log", "tmp", "vendor", "node_modules", "template", "static", "docs", "bin", "sitemap", "data", "config", "pid", "docker"] +# There's no necessary to trigger build each time file changes if it's too frequency. +delay = 1000 # ms + +[log] +# Show log time +time = false + +[color] +# Customize each part's color. If no color found, use the raw app log. +main = "magenta" +watcher = "cyan" +build = "yellow" +runner = "green" + +[misc] +# Delete tmp directory on exit +clean_on_exit = true diff --git a/.dockerignore b/.dockerignore index 3ec512c1..00551b03 100644 --- a/.dockerignore +++ b/.dockerignore @@ -10,3 +10,4 @@ assets *.o *.a *.so +docker diff --git a/.gitignore b/.gitignore index 2753d569..9ff98dc3 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ assets node_modules +.vscode + # Architecture specific extensions/prefixes *.[568vq] [568vq].out @@ -48,4 +50,8 @@ welcome.png .DS_Store /env.ini ssl -bin \ No newline at end of file +bin +tmp +docker + +*.code-workspace diff --git a/Dockerfile b/Dockerfile index c3769dae..32dc8d8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,10 @@ -# Start from golang v1.12 base image -FROM golang:1.12 +# Start from golang v1.17 base image +FROM golang:1.17 WORKDIR /app/studygolang -COPY . /app/studygolang +COPY . /app/studygolang/ -RUN make build +RUN make -CMD ["bin/studygolang"] \ No newline at end of file +ENTRYPOINT ["bin/studygolang", "-embed_crawler", "-embed_indexing"] diff --git a/README.md b/README.md index c03b4a03..049d4984 100644 --- a/README.md +++ b/README.md @@ -1,132 +1,59 @@ -studygolang -=========== +# studygolang + [](https://travis-ci.org/studygolang/studygolang) [Go语言中文网 - Golang中文社区](https://studygolang.com "Go语言中文网 - Golang中文社区") 源码 网站上线时间:2013-03-15 14:38:09 -~~收到不少人反馈,网站访问不了,初步判断,上海电信和广东电信遇到比较多,如果您访问不了,请通过 https://golang.top 访问~~ -> 增加了一台阿里云服务器,问题已解决。如果还有问题,请联系我们:polaris@studygolang.com。 - -目前在线运行的是 Master。欢迎有兴趣的 gopher 们参与进来,一起构建一个完善的 Go 语言中文网,Go 语言爱好者的学习家园,参与方式请参考:https://studygolang.com/topics/4092 - -# 本地搭建一个 Go语言中文网 # - -## 步骤一 - -首先你都需要下载代码,因为代码中有很多静态资源。可以[点击这里下载](https://github.com/studygolang/studygolang/archive/master.zip) 或 `git clone https://github.com/studygolang/studygolang` 下载。 - -## 步骤二 - -### 方式一:二进制安装(不推荐,可能不是最新的) +目前在线运行的分支是 Master。欢迎有兴趣的 gopher 们参与进来,一起构建一个完善的 Go 语言中文网,Go 语言爱好者的学习家园,参与方式请参考:https://studygolang.com/topics/4092 -1、下载预编译好的二进制文件(将下载的文件放入源码的bin目录下,自己创建好bin目录) +## 本地搭建一个 Go语言中文网 -
操作系统 | -架构 | -下载链接 | -MD5SUM | -
---|---|---|---|
Linux | -amd64 | -下载地址 | -2f24752d2b382b218c50b8f64fb3ad2e | -
OS X | -amd64 | -下载地址 | -2adab465eceab2ff89d23c21ffaafcaf | -
Windows | -amd64 | -下载地址 | -9d261afb56c3989fe67238fe8a09abf8 | -
Windows | -386 | -下载地址 | -1723fbc4f2c841e1f45b303df8a0dc0f | -
This is a p
+ * @before $.metadata.setType("class") + * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" + * @desc Reads metadata from the class attribute + * + * @exampleThis is a p
+ * @before $.metadata.setType("attr", "data") + * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" + * @desc Reads metadata from a "data" attribute + * + * @exampleThis is a p
+ * @before $.metadata.setType("elem", "script") + * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" + * @desc Reads metadata from a nested script element + * + * @param String type The encoding type + * @param String name The name of the attribute to be used to get metadata (optional) + * @cat Plugins/Metadata + * @descr Sets the type of encoding to be used when loading metadata for the first time + * @type undefined + * @see metadata() + */ + +(function($) { + +$.extend({ + metadata : { + defaults : { + type: 'class', + name: 'metadata', + cre: /({.*})/, + single: 'metadata' + }, + setType: function( type, name ){ + this.defaults.type = type; + this.defaults.name = name; + }, + get: function( elem, opts ){ + var settings = $.extend({},this.defaults,opts); + // check for empty string in single property + if ( !settings.single.length ) settings.single = 'metadata'; + + var data = $.data(elem, settings.single); + // returned cached data if it already exists + if ( data ) return data; + + data = "{}"; + + if ( settings.type == "class" ) { + var m = settings.cre.exec( elem.className ); + if ( m ) + data = m[1]; + } else if ( settings.type == "elem" ) { + if( !elem.getElementsByTagName ) + return undefined; + var e = elem.getElementsByTagName(settings.name); + if ( e.length ) + data = $.trim(e[0].innerHTML); + } else if ( elem.getAttribute != undefined ) { + var attr = elem.getAttribute( settings.name ); + if ( attr ) + data = attr; + } + + if ( data.indexOf( '{' ) <0 ) + data = "{" + data + "}"; + + data = eval("(" + data + ")"); + + $.data( elem, settings.single, data ); + return data; + } + } +}); + +/** + * Returns the metadata object for the first member of the jQuery object. + * + * @name metadata + * @descr Returns element's metadata object + * @param Object opts An object contianing settings to override the defaults + * @type jQuery + * @cat Plugins/Metadata + */ +$.fn.metadata = function( opts ){ + return $.metadata.get( this[0], opts ); +}; + })(jQuery); // Simplified Chinese jQuery.timeago.settings.strings = { @@ -851,3 +852,5 @@ if (md5('hello') != '5d41402abc4b2a76b9719d911017c592') { }); }; })(jQuery); + +var QRCode;!function(){function a(a){this.mode=c.MODE_8BIT_BYTE,this.data=a,this.parsedData=[];for(var b=[],d=0,e=this.data.length;e>d;d++){var f=this.data.charCodeAt(d);f>65536?(b[0]=240|(1835008&f)>>>18,b[1]=128|(258048&f)>>>12,b[2]=128|(4032&f)>>>6,b[3]=128|63&f):f>2048?(b[0]=224|(61440&f)>>>12,b[1]=128|(4032&f)>>>6,b[2]=128|63&f):f>128?(b[0]=192|(1984&f)>>>6,b[1]=128|63&f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function b(a,b){this.typeNumber=a,this.errorCorrectLevel=b,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function i(a,b){if(void 0==a.length)throw new Error(a.length+"/"+b);for(var c=0;c');g.push(" |
欢迎订阅下面的Feed,您可以及时跟踪我的更新:
-入群交流(和以上内容无关):Go中文网 QQ 交流群:729884609 或加微信入微信群:274768166 备注:入群;关注公众号:Go语言中文网
- 为你的系统下载了相应的安装包后,请按照 安装说明 进行安装。 + 为你的系统下载了相应的安装包后,请按照 安装说明 进行安装。
- 如果你选择从源码构建,请参考 从源码进行安装。 + 如果你选择从源码构建,请参考 从源码进行安装。
- 查看 发布历史 了解更多关于 Go 各版本的发布说明。 + 查看 发布历史 了解更多关于 Go 各版本的发布说明。
go env -w GOPROXY=https://goproxy.cn,direct
+ go env -w GOPROXY=https://goproxy.io,direct
+ 该分类暂时没有任何资源
{{end}} @@ -80,8 +91,18 @@作者设置付费用户才能查看,加入Go中文网创建的知识星球自动成为付费用户(加入后星球私信告知网站用户名)。
+或者给我们转账成为付费用户,有效期一年,限时优惠:229元/年,节省 30 元
+如果您确定已经注册了,可以登录,在 个人资料设置 中再次发送激活邮件
+如果您确定已经注册了,可以登录,然后在 个人资料设置 中再次发送激活邮件
+ {{end}} + + {{if or .error .me}} +
{{include "common/comment-page.html" .}}