├── .gitignore ├── LICENSE ├── README.md ├── conf ├── app.conf ├── lang │ ├── en-us.ini │ └── zh-cn.ini ├── nav.ini └── video │ ├── en-us.ini │ └── zh-cn.ini ├── controllers ├── base.go ├── blog.go ├── doc.go ├── index.go ├── main.go └── video.go ├── main.go ├── models ├── i18n.go ├── init.go ├── nav.go └── video.go ├── routers └── router.go ├── static ├── css │ ├── bootstrap-4.0-flex.css │ ├── bootstrap-4.0.css │ ├── bootstrap.min.css │ ├── styles │ │ ├── agate.css │ │ ├── androidstudio.css │ │ ├── arduino-light.css │ │ ├── arta.css │ │ ├── ascetic.css │ │ ├── atelier-cave-dark.css │ │ ├── atelier-cave-light.css │ │ ├── atelier-dune-dark.css │ │ ├── atelier-dune-light.css │ │ ├── atelier-estuary-dark.css │ │ ├── atelier-estuary-light.css │ │ ├── atelier-forest-dark.css │ │ ├── atelier-forest-light.css │ │ ├── atelier-heath-dark.css │ │ ├── atelier-heath-light.css │ │ ├── atelier-lakeside-dark.css │ │ ├── atelier-lakeside-light.css │ │ ├── atelier-plateau-dark.css │ │ ├── atelier-plateau-light.css │ │ ├── atelier-savanna-dark.css │ │ ├── atelier-savanna-light.css │ │ ├── atelier-seaside-dark.css │ │ ├── atelier-seaside-light.css │ │ ├── atelier-sulphurpool-dark.css │ │ ├── atelier-sulphurpool-light.css │ │ ├── brown-paper.css │ │ ├── brown-papersq.png │ │ ├── codepen-embed.css │ │ ├── color-brewer.css │ │ ├── dark.css │ │ ├── darkula.css │ │ ├── default.css │ │ ├── docco.css │ │ ├── dracula.css │ │ ├── far.css │ │ ├── foundation.css │ │ ├── github-gist.css │ │ ├── github.css │ │ ├── googlecode.css │ │ ├── grayscale.css │ │ ├── gruvbox-dark.css │ │ ├── gruvbox-light.css │ │ ├── hopscotch.css │ │ ├── hybrid.css │ │ ├── idea.css │ │ ├── ir-black.css │ │ ├── kimbie.dark.css │ │ ├── kimbie.light.css │ │ ├── magula.css │ │ ├── mono-blue.css │ │ ├── monokai-sublime.css │ │ ├── monokai.css │ │ ├── obsidian.css │ │ ├── paraiso-dark.css │ │ ├── paraiso-light.css │ │ ├── pojoaque.css │ │ ├── pojoaque.jpg │ │ ├── qtcreator_dark.css │ │ ├── qtcreator_light.css │ │ ├── railscasts.css │ │ ├── rainbow.css │ │ ├── school-book.css │ │ ├── school-book.png │ │ ├── solarized-dark.css │ │ ├── solarized-light.css │ │ ├── sunburst.css │ │ ├── tomorrow-night-blue.css │ │ ├── tomorrow-night-bright.css │ │ ├── tomorrow-night-eighties.css │ │ ├── tomorrow-night.css │ │ ├── tomorrow.css │ │ ├── vs.css │ │ ├── xcode.css │ │ └── zenburn.css │ └── website.css ├── img │ ├── alipay.png │ ├── beego.png │ ├── beego_logo.png │ ├── beego_purple.png │ ├── brands │ │ ├── 17173.png │ │ ├── 360.png │ │ ├── ardanstudios.png │ │ ├── bmob.png │ │ ├── huawei.png │ │ ├── jd.png │ │ ├── lianzong.png │ │ ├── meituan.png │ │ ├── oupeng.png │ │ ├── snda.png │ │ ├── taobao.png │ │ ├── tencent.png │ │ ├── tudou.png │ │ ├── weibo.png │ │ ├── weico.png │ │ ├── wepiao.png │ │ ├── youdao.png │ │ └── zalora.png │ ├── community │ │ ├── IRC.png │ │ ├── github.png │ │ ├── google-groups.png │ │ ├── stackoverflow.png │ │ └── twitter.png │ ├── feature │ │ ├── f-icon-01.png │ │ ├── f-icon-02.png │ │ ├── f-icon-03.png │ │ ├── f-icon-04.png │ │ └── f-placeholder.png │ └── products │ │ ├── sellgood │ │ └── thumb.jpg │ │ ├── teamkey │ │ └── thumb.png │ │ └── webcron │ │ └── thumb.png └── js │ ├── bootstrap.min.js │ ├── highlight.pack.js │ ├── jquery-2.1.4.min.js │ ├── jquery-2.2.0.min.js │ ├── jquery.cookie.js │ ├── main.js │ └── tether.min.js ├── tests └── default_test.go └── views ├── about.html ├── blog.html ├── community.html ├── docs.html ├── donate.html ├── en-US ├── about.html ├── community.html ├── donate.html ├── footer.html ├── index_feature.html ├── quickstart.html └── team.html ├── footer.html ├── head.html ├── header.html ├── index.html ├── layout.html ├── products.html ├── quickstart.html ├── team.html ├── video.html └── zh-CN ├── about.html ├── community.html ├── donate.html ├── footer.html ├── index_feature.html ├── quickstart.html └── team.html /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | .vscode 8 | _obj 9 | _test 10 | _cache 11 | beedoc 12 | beeblog 13 | 14 | # Architecture specific extensions/prefixes 15 | *.[568vq] 16 | [568vq].out 17 | 18 | *.cgo1.go 19 | *.cgo2.c 20 | _cgo_defun.c 21 | _cgo_gotypes.go 22 | _cgo_export.* 23 | 24 | _testmain.go 25 | 26 | *.exe 27 | *.exe~ 28 | *.zip 29 | *.test 30 | *.prof 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # website 2 | beego website 3 | 4 | 5 | ### Setup 6 | 7 | 1. Get source code: 8 | 9 | ``` 10 | go get github.com/beego/website 11 | ``` 12 | 13 | 2. Get `beedoc` and `beeblog` to build contents: 14 | 15 | ``` 16 | cd $GOPATH/src/github.com/beego/website 17 | git clone https://github.com/beego/beedoc 18 | git clone https://github.com/beego/beeblog 19 | ``` 20 | 21 | 3. Compile: 22 | 23 | ``` 24 | go build main.go 25 | ``` 26 | 27 | run `website` and visit `http://localhost:8082` 28 | -------------------------------------------------------------------------------- /conf/app.conf: -------------------------------------------------------------------------------- 1 | appname = website 2 | httpport = 8082 3 | runmode = dev 4 | 5 | cache_flag = false 6 | cache_dir = "_cache" 7 | -------------------------------------------------------------------------------- /conf/lang/en-us.ini: -------------------------------------------------------------------------------- 1 | [nav] 2 | 2 = "Home" 3 | 3 = "Getting Started" 4 | 4 = "Community" 5 | 5 = "Documentation" 6 | 6 = "Video" 7 | 7 = "Products" 8 | 8 = "Blog" 9 | 10 | 11 | [doc-nav] 12 | 13 | 1 = "Overview" 14 | 1-1 = "Contribution" 15 | 1-2 = "Release Notes" 16 | 17 | 2 = "Install & Upgrade" 18 | 2-1 = "Bee Tool" 19 | 20 | 3 = "Quick Start" 21 | 3-1 = "New Project" 22 | 3-2 = "Routing" 23 | 3-3 = "Controller" 24 | 3-4 = "Model" 25 | 3-5 = "View" 26 | 3-6 = "Static Files" 27 | 28 | 4 = "MVC" 29 | 30 | 4-1 = "Controllers" 31 | 4-1-1 = "Configration" 32 | 4-1-2 = "Routing" 33 | 4-1-3 = "Functions" 34 | 4-1-4 = "XSRF" 35 | 4-1-5 = "Request Params" 36 | 4-1-6 = "Session" 37 | 4-1-7 = "Filter" 38 | 4-1-8 = "Flash" 39 | 4-1-9 = "URL Building" 40 | 4-1-10 = "Response Formats" 41 | 4-1-11 = "Validation" 42 | 4-1-12 = "Handling Error" 43 | 4-1-13 = "Logging" 44 | 45 | 4-2 = "Models" 46 | 4-2-1 = "Overview" 47 | 4-2-2 = "ORM" 48 | 4-2-3 = "CURD" 49 | 4-2-4 = "Advanced Queries" 50 | 4-2-5 = "Raw SQL" 51 | 4-2-6 = "Query Builder" 52 | 4-2-7 = "Transaction" 53 | 4-2-8 = "Model Definition" 54 | 4-2-9 = "Command Line Tool" 55 | 4-2-10 = "Test Cases" 56 | 4-2-11 = "Custom Fields" 57 | 4-2-12 = "FAQ" 58 | 59 | 4-3 = "Views" 60 | 4-3-1 = "Tutorial" 61 | 4-3-2 = "Rendering" 62 | 4-3-3 = "Template Functions" 63 | 4-3-4 = "Static Files" 64 | 4-3-5 = "Pagination" 65 | 66 | 5 = "Modules" 67 | 5-1 = "Session" 68 | 5-2 = "Cache" 69 | 5-3 = "Logs" 70 | 5-4 = "Httplib" 71 | 5-5 = "Context" 72 | 5-6 = "Toolbox" 73 | 5-7 = "Config" 74 | 5-8 = "I18n" 75 | 76 | 6 = "Advanced" 77 | 6-1 = "Monitor" 78 | 6-2 = "Swagger" 79 | 80 | 7 = "Deployment" 81 | 7-1 = "Stand Alone" 82 | 7-2 = "Supervisor" 83 | 7-3 = "Nginx" 84 | 7-4 = "Apache" 85 | 86 | 8 = "Middleware" 87 | 88 | 9 = "Examples" 89 | 9-1 = "Chat Room" 90 | 9-2 = "Shorten URL" 91 | 9-3 = "Todo List" 92 | 93 | 10 = "FAQ" 94 | 95 | -------------------------------------------------------------------------------- /conf/lang/zh-cn.ini: -------------------------------------------------------------------------------- 1 | [nav] 2 | 2 = "首页" 3 | 3 = "入门" 4 | 4 = "社区" 5 | 5 = "文档" 6 | 6 = "视频" 7 | 7 = "产品" 8 | 8 = "博客" 9 | 10 | 11 | [doc-nav] 12 | 13 | 1 = "概述" 14 | 1-1 = "如何贡献" 15 | 1-2 = "发布日志" 16 | 17 | 2 = "安装与更新" 18 | 2-1 = "Bee 工具" 19 | 20 | 3 = "快速入门" 21 | 3-1 = "新建项目" 22 | 3-2 = "添加路由" 23 | 3-3 = "控制器执行流程" 24 | 3-4 = "模型逻辑" 25 | 3-5 = "编写视图" 26 | 3-6 = "处理静态文件" 27 | 28 | 4 = "MVC" 29 | 30 | 4-1 = "Controller 设计" 31 | 4-1-1 = "参数配置" 32 | 4-1-2 = "路由规则" 33 | 4-1-3 = "控制器函数" 34 | 4-1-4 = "XSRF" 35 | 4-1-5 = "请求数据" 36 | 4-1-6 = "Session" 37 | 4-1-7 = "过滤器" 38 | 4-1-8 = "Flash" 39 | 4-1-9 = "构建URL" 40 | 4-1-10 = "多格式输出" 41 | 4-1-11 = "表单验证" 42 | 4-1-12 = "错误处理" 43 | 4-1-13 = "日志" 44 | 45 | 4-2 = "Models 使用" 46 | 4-2-1 = "概述" 47 | 4-2-2 = "ORM" 48 | 4-2-3 = "CURD" 49 | 4-2-4 = "高级查询" 50 | 4-2-5 = "原生SQL" 51 | 4-2-6 = "构造查询" 52 | 4-2-7 = "事务" 53 | 4-2-8 = "Model 定义" 54 | 4-2-9 = "命令工具" 55 | 4-2-10 = "测试用例" 56 | 4-2-11 = "自定义字段" 57 | 4-2-12 = "FAQ" 58 | 59 | 4-3 = "Views 编写" 60 | 4-3-1 = "模板语法" 61 | 4-3-2 = "渲染过程" 62 | 4-3-3 = "模板函数" 63 | 4-3-4 = "处理静态文件" 64 | 4-3-5 = "分页工具" 65 | 66 | 5 = "Modules 模块设计" 67 | 5-1 = "Session" 68 | 5-2 = "Cache" 69 | 5-3 = "Logs" 70 | 5-4 = "Httplib" 71 | 5-5 = "Context" 72 | 5-6 = "Toolbox" 73 | 5-7 = "Config" 74 | 5-8 = "I18n" 75 | 76 | 6 = "高级使用" 77 | 6-1 = "程序监控" 78 | 6-2 = "Swagger 自动化文档" 79 | 80 | 7 = "部署" 81 | 7-1 = "直接部署" 82 | 7-2 = "Supervisor" 83 | 7-3 = "Nginx" 84 | 7-4 = "Apache" 85 | 86 | 8 = "第三方库" 87 | 88 | 9 = "应用范例" 89 | 9-1 = "聊天室" 90 | 9-2 = "短链接服务" 91 | 9-3 = "Todo 列表" 92 | 93 | 10 = "FAQ" 94 | 95 | -------------------------------------------------------------------------------- /conf/nav.ini: -------------------------------------------------------------------------------- 1 | [lang] 2 | zh-CN = 简体中文 3 | en-US = English 4 | 5 | [nav] 6 | 2 = / 7 | 3 = /quickstart 8 | 4 = /community 9 | 5 = /docs/intro/Introduction 10 | 6 = /video 11 | 7 = /products 12 | 8 = /blog 13 | 14 | 15 | [doc-nav] 16 | 17 | 1 = /docs/intro/Introduction 18 | 1-1 = /docs/intro/contributing.md 19 | 1-2 = /docs/intro/releases.md 20 | 21 | 2 = /docs/install 22 | 2-1 = /docs/install/bee.md 23 | 24 | 3 = /docs/quickstart 25 | 3-1 = /docs/quickstart/new.md 26 | 3-2 = /docs/quickstart/router.md 27 | 3-3 = /docs/quickstart/controller.md 28 | 3-4 = /docs/quickstart/model.md 29 | 3-5 = /docs/quickstart/view.md 30 | 3-6 = /docs/quickstart/static.md 31 | 32 | 4 = /docs/mvc 33 | 34 | 4-1 = # 35 | 4-1-1 = /docs/mvc/controller/config.md 36 | 4-1-2 = /docs/mvc/controller/router.md 37 | 4-1-3 = /docs/mvc/controller/controller.md 38 | 4-1-4 = /docs/mvc/controller/xsrf.md 39 | 4-1-5 = /docs/mvc/controller/params.md 40 | 4-1-6 = /docs/mvc/controller/session.md 41 | 4-1-7 = /docs/mvc/controller/filter.md 42 | 4-1-8 = /docs/mvc/controller/flash.md 43 | 4-1-9 = /docs/mvc/controller/urlbuilding.md 44 | 4-1-10 = /docs/mvc/controller/jsonxml.md 45 | 4-1-11 = /docs/mvc/controller/validation.md 46 | 4-1-12 = /docs/mvc/controller/errors.md 47 | 4-1-13 = /docs/mvc/controller/logs.md 48 | 49 | 4-2 = # 50 | 4-2-1 = /docs/mvc/model/overview.md 51 | 4-2-2 = /docs/mvc/model/orm.md 52 | 4-2-3 = /docs/mvc/model/object.md 53 | 4-2-4 = /docs/mvc/model/query.md 54 | 4-2-5 = /docs/mvc/model/rawsql.md 55 | 4-2-6 = /docs/mvc/model/querybuilder.md 56 | 4-2-7 = /docs/mvc/model/transaction.md 57 | 4-2-8 = /docs/mvc/model/models.md 58 | 4-2-9 = /docs/mvc/model/cmd.md 59 | 4-2-10 = /docs/mvc/model/test.md 60 | 4-2-11 = /docs/mvc/model/custom_fields.md 61 | 4-2-12 = /docs/mvc/model/faq.md 62 | 63 | 4-3 = # 64 | 4-3-1 = /docs/mvc/view/tutorial.md 65 | 4-3-2 = /docs/mvc/view/view.md 66 | 4-3-3 = /docs/mvc/view/template.md 67 | 4-3-4 = /docs/mvc/view/static.md 68 | 4-3-5 = /docs/mvc/view/page.md 69 | 70 | 5 = /docs/modules 71 | 5-1 = /docs/modules/session.md 72 | 5-2 = /docs/modules/cache.md 73 | 5-3 = /docs/modules/logs.md 74 | 5-4 = /docs/modules/httplib.md 75 | 5-5 = /docs/modules/context.md 76 | 5-6 = /docs/modules/toolbox.md 77 | 5-7 = /docs/modules/config.md 78 | 5-8 = /docs/modules/i18n.md 79 | 80 | 6 = /docs/advantage/ 81 | 6-1 = /docs/advantage/monitor.md 82 | 6-2 = /docs/advantage/docs.md 83 | 84 | 7 = /docs/deploy 85 | 7-1 = /docs/deploy/beego.md 86 | 7-2 = /docs/deploy/supervisor.md 87 | 7-3 = /docs/deploy/nginx.md 88 | 7-4 = /docs/deploy/apache.md 89 | 90 | 8 = /docs/contributed/ 91 | 92 | 9 = /docs/examples 93 | 9-1 = /docs/examples/chat.md 94 | 9-2 = /docs/examples/shorturl.md 95 | 9-3 = /docs/examples/todo.md 96 | 97 | 10 = /docs/faq 98 | 99 | -------------------------------------------------------------------------------- /conf/video/en-us.ini: -------------------------------------------------------------------------------- 1 | description = "https://github.com/beego/tutorial" 2 | 3 | [video-1] 4 | index = "1" 5 | title = "Beego Framework Tutorials - 1 - Introduction to Beego" 6 | slide_title = "Introduction to beego" 7 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/1/why_beego.slide#1" 8 | youtube = "https://www.youtube.com/embed/zvXDgfoUKFY" 9 | youku = "" 10 | tudou = "" 11 | download = "" 12 | 13 | [video-2] 14 | index = "2" 15 | title = "Beego Framework Tutorials - 2 - Router (part 1 of 3)" 16 | slide_title = "Router Processor function/method" 17 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/2/router.part1.slide" 18 | youtube = "https://www.youtube.com/embed/LvAFH-oLvqY" 19 | youku = "" 20 | tudou = "" 21 | download = "" 22 | 23 | [video-3] 24 | index = "3" 25 | title = "Beego Framework Tutorials - 2 - Router URI Patterns (part 2 of 3)" 26 | slide_title = "Router RUI Patterns" 27 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/2/router.part2.slide" 28 | youtube = "https://www.youtube.com/embed/81kxo6FcoOw" 29 | youku = "" 30 | tudou = "" 31 | download = "" 32 | 33 | [video-4] 34 | index = "4" 35 | title = "Beego Framework Tutorials - 2 - Router Namespace (part 3 of 3)" 36 | slide_title = "Router Namespace" 37 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/2/router.part3.slide" 38 | youtube = "https://www.youtube.com/embed/W9tBcTcXGeo" 39 | youku = "" 40 | tudou = "" 41 | download = "" 42 | 43 | [video-5] 44 | index = "5" 45 | title = "Beego Framework Tutorials - 3 - Configuration Parameters" 46 | slide_title = "Configuration Parameters" 47 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/3/params.slide" 48 | youtube = "https://www.youtube.com/embed/F3tieL1lX1I" 49 | youku = "" 50 | tudou = "" 51 | download = "" 52 | 53 | [video-6] 54 | index = "6" 55 | title = "Beego Framework Tutorials - 4 - Create a Web API Application in One Minute in Beego" 56 | slide_title = "Building Web API with Auto Generated API Document Support" 57 | slide = "http://beego.me/blog/beego_api" 58 | youtube = "https://www.youtube.com/embed/w7RziV_Sn-g" 59 | youku = "" 60 | tudou = "" 61 | download = "" 62 | 63 | -------------------------------------------------------------------------------- /conf/video/zh-cn.ini: -------------------------------------------------------------------------------- 1 | description = "https://github.com/beego/tutorial" 2 | 3 | [video-1] 4 | index = "1" 5 | title = "Beego Framework Tutorials - 1 - Introduction to Beego" 6 | slide_title = "Introduction to beego" 7 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/1/why_beego.slide#1" 8 | youtube = "https://youtu.be/zvXDgfoUKFY" 9 | youku = "" 10 | tudou = "" 11 | download = "" 12 | 13 | [video-2] 14 | index = "2" 15 | title = "Beego Framework Tutorials - 2 - Router (part 1 of 3)" 16 | slide_title = "Router Processor function/method" 17 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/2/router.part1.slide" 18 | youtube = "https://youtu.be/LvAFH-oLvqY" 19 | youku = "" 20 | tudou = "" 21 | download = "" 22 | 23 | [video-3] 24 | index = "3" 25 | title = "Beego Framework Tutorials - 2 - Router URI Patterns (part 2 of 3)" 26 | slide_title = "Router RUI Patterns" 27 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/2/router.part2.slide" 28 | youtube = "https://youtu.be/81kxo6FcoOw" 29 | youku = "" 30 | tudou = "" 31 | download = "" 32 | 33 | [video-4] 34 | index = "4" 35 | title = "Beego Framework Tutorials - 2 - Router Namespace (part 3 of 3)" 36 | slide_title = "Router Namespace" 37 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/2/router.part3.slide" 38 | youtube = "https://youtu.be/W9tBcTcXGeo" 39 | youku = "" 40 | tudou = "" 41 | download = "" 42 | 43 | [video-5] 44 | index = "5" 45 | title = "Beego Framework Tutorials - 3 - Configuration Parameters" 46 | slide_title = "Configuration Parameters" 47 | slide = "http://go-talks.appspot.com/github.com/beego/tutorial/en/3/params.slide" 48 | youtube = "https://youtu.be/F3tieL1lX1I" 49 | youku = "" 50 | tudou = "" 51 | download = "" 52 | 53 | [video-6] 54 | index = "6" 55 | title = "Beego Framework Tutorials - 4 - Create a Web API Application in One Minute in Beego" 56 | slide_title = "Building Web API with Auto Generated API Document Support" 57 | slide = "http://beego.me/blog/beego_api" 58 | youtube = "https://youtu.be/w7RziV_Sn-g" 59 | youku = "" 60 | tudou = "" 61 | download = "" 62 | 63 | -------------------------------------------------------------------------------- /controllers/base.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "io/ioutil" 5 | "net/http" 6 | "os" 7 | "path" 8 | "strings" 9 | 10 | "github.com/astaxie/beego" 11 | "github.com/beego/website/models" 12 | ) 13 | 14 | type BaseController struct { 15 | beego.Controller 16 | Lang string 17 | 18 | // static file cache support 19 | cacheFile string 20 | cacheEnable bool 21 | cacheBody []byte 22 | } 23 | 24 | func (bc *BaseController) Prepare() { 25 | if bc.Lang = bc.Ctx.GetCookie("lang"); bc.Lang == "" { 26 | bc.Lang = "en-US" 27 | } 28 | bc.Data["Lang"] = bc.Lang 29 | bc.Data["I18n"] = models.I18ns[strings.ToLower(bc.Lang)] 30 | 31 | bc.cacheFile = path.Join(beego.AppConfig.DefaultString("cache_dir", "_cache"), bc.Lang, bc.Ctx.Input.URL()) 32 | if !strings.HasSuffix(bc.cacheFile, ".html") { 33 | bc.cacheFile += ".html" 34 | } 35 | if fi, _ := os.Stat(bc.cacheFile); fi != nil && !fi.IsDir() { 36 | http.ServeFile(bc.Ctx.ResponseWriter, bc.Ctx.Request, bc.cacheFile) 37 | bc.StopRun() 38 | } 39 | 40 | bc.Layout = "layout.html" 41 | bc.setProperTemplateFile() 42 | 43 | bc.Data["Title"] = "Beego Website" 44 | bc.Data["HomeNav"] = models.HomeNav 45 | bc.Data["DocNav"] = models.DocNav 46 | bc.Data["Type"] = "page" 47 | } 48 | 49 | func (bc *BaseController) setProperTemplateFile() { 50 | p := bc.Ctx.Request.URL.Path 51 | paths := strings.Split(p, "/") 52 | if len(paths) >= 2 { 53 | bc.TplName = paths[1] 54 | } 55 | if bc.TplName == "" { 56 | bc.TplName = "index.html" 57 | } 58 | if !strings.HasSuffix(bc.TplName, ".html") { 59 | bc.TplName += ".html" 60 | } 61 | } 62 | 63 | func (bc *BaseController) Render() error { 64 | if renderBytes, _ := bc.RenderBytes(); len(renderBytes) > 0 { 65 | bc.cacheBody = renderBytes 66 | bc.cacheEnable = beego.AppConfig.DefaultBool("cache_flag", false) 67 | } 68 | return bc.Controller.Render() 69 | } 70 | 71 | func (bc *BaseController) Finish() { 72 | if bc.cacheEnable { 73 | os.MkdirAll(path.Dir(bc.cacheFile), os.ModePerm) 74 | ioutil.WriteFile(bc.cacheFile, bc.cacheBody, os.ModePerm) // todo : error handle 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /controllers/blog.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "html/template" 5 | "io/ioutil" 6 | "net/http" 7 | "path/filepath" 8 | "strings" 9 | ) 10 | 11 | type BlogController struct { 12 | BaseController 13 | 14 | blogFile string 15 | } 16 | 17 | func (bc *BlogController) Prepare() { 18 | bc.BaseController.Prepare() 19 | bc.Data["Type"] = "blog" 20 | 21 | // get correct file in beeblog directory 22 | p := bc.Ctx.Request.URL.Path 23 | p = strings.TrimRight(p, "/") 24 | if p == "/blog" { 25 | p = filepath.Join("beeblog", bc.Lang, "blog.md") 26 | } else { 27 | p = strings.Replace(p, "/blog", "beeblog/"+bc.Lang, -1) 28 | } 29 | if filepath.Ext(p) == "" { 30 | p += ".md" 31 | } 32 | bc.blogFile = p 33 | 34 | // serve static file 35 | if filepath.Ext(p) != ".md" { 36 | http.ServeFile(bc.Ctx.ResponseWriter, bc.Ctx.Request, p) 37 | bc.StopRun() 38 | } 39 | 40 | // render blog doc file 41 | if err := bc.renderBlog(); err != nil { 42 | bc.CustomAbort(503, err.Error()) 43 | return 44 | } 45 | } 46 | 47 | func (bc *BlogController) renderBlog() error { 48 | bytes, err := ioutil.ReadFile(bc.blogFile) 49 | if err != nil { 50 | return err 51 | } 52 | bc.Data["BlogFile"] = bc.blogFile 53 | bc.Data["BlogContent"] = template.HTML(markdown(bytes)) 54 | return nil 55 | } 56 | 57 | func (bc *BlogController) Get() {} 58 | -------------------------------------------------------------------------------- /controllers/doc.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "bytes" 5 | "html/template" 6 | "io/ioutil" 7 | "net/http" 8 | "path/filepath" 9 | "strings" 10 | 11 | "github.com/russross/blackfriday" 12 | ) 13 | 14 | type DocController struct { 15 | BaseController 16 | 17 | docFile string 18 | } 19 | 20 | func (dc *DocController) Prepare() { 21 | dc.BaseController.Prepare() 22 | dc.Data["Type"] = "doc" 23 | 24 | // get correct file in doc directory 25 | p := dc.Ctx.Request.URL.Path 26 | p = strings.Replace(p, "/docs", "beedoc/"+dc.Lang, -1) 27 | p = strings.TrimRight(p, "/") 28 | if filepath.Ext(p) == "" { 29 | p += ".md" 30 | } 31 | dc.docFile = p 32 | 33 | // serve static file 34 | if filepath.Ext(p) != ".md" { 35 | http.ServeFile(dc.Ctx.ResponseWriter, dc.Ctx.Request, p) 36 | dc.StopRun() 37 | } 38 | 39 | // render md doc file 40 | if err := dc.renderDoc(); err != nil { 41 | dc.CustomAbort(503, err.Error()) 42 | return 43 | } 44 | 45 | } 46 | 47 | func (dc *DocController) renderDoc() error { 48 | bytes, err := ioutil.ReadFile(dc.docFile) 49 | if err != nil { 50 | return err 51 | } 52 | dc.Data["DocFile"] = dc.docFile 53 | dc.Data["DocContent"] = template.HTML(markdown(bytes)) 54 | return nil 55 | } 56 | 57 | func (dc *DocController) Get() {} 58 | 59 | var ( 60 | tab = []byte("\t") 61 | spaces = []byte(" ") 62 | ) 63 | 64 | type markdownRender struct { 65 | blackfriday.Renderer 66 | } 67 | 68 | // BlockCode overrides code block 69 | func (mr *markdownRender) BlockCode(out *bytes.Buffer, text []byte, lang string) { 70 | var tmp bytes.Buffer 71 | mr.Renderer.BlockCode(&tmp, text, strings.ToLower(lang)) 72 | out.Write(bytes.Replace(tmp.Bytes(), tab, spaces, -1)) 73 | } 74 | 75 | func markdown(raw []byte) []byte { 76 | htmlFlags := 0 | 77 | blackfriday.HTML_USE_XHTML | 78 | blackfriday.HTML_USE_SMARTYPANTS | 79 | blackfriday.HTML_SMARTYPANTS_FRACTIONS | 80 | blackfriday.HTML_SMARTYPANTS_LATEX_DASHES 81 | 82 | renderer := &markdownRender{ 83 | Renderer: blackfriday.HtmlRenderer(htmlFlags, "", ""), 84 | } 85 | 86 | extensions := 0 | 87 | blackfriday.EXTENSION_NO_INTRA_EMPHASIS | 88 | blackfriday.EXTENSION_TABLES | 89 | blackfriday.EXTENSION_FENCED_CODE | 90 | blackfriday.EXTENSION_AUTOLINK | 91 | blackfriday.EXTENSION_STRIKETHROUGH | 92 | blackfriday.EXTENSION_AUTO_HEADER_IDS | 93 | blackfriday.EXTENSION_HEADER_IDS 94 | 95 | return blackfriday.Markdown(raw, renderer, extensions) 96 | } 97 | -------------------------------------------------------------------------------- /controllers/index.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | type IndexController struct { 4 | BaseController 5 | } 6 | 7 | func (ic *IndexController) Get() { 8 | ic.Data["Title"] = "beego website" 9 | ic.Data["Type"] = "index" 10 | } 11 | -------------------------------------------------------------------------------- /controllers/main.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | type MainController struct { 4 | BaseController 5 | } 6 | 7 | func (mc *MainController) Get() { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /controllers/video.go: -------------------------------------------------------------------------------- 1 | package controllers 2 | 3 | import ( 4 | "strings" 5 | 6 | "github.com/beego/website/models" 7 | ) 8 | 9 | type VideoController struct { 10 | BaseController 11 | } 12 | 13 | func (vc *VideoController) Get() { 14 | vc.Data["Type"] = "video" 15 | vc.Data["Video"] = models.Videos[strings.ToLower(vc.Lang)] 16 | } 17 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/astaxie/beego" 5 | "github.com/beego/website/models" 6 | "github.com/beego/website/routers" 7 | ) 8 | 9 | func main() { 10 | models.Init() 11 | routers.Init() 12 | beego.Run() 13 | } 14 | -------------------------------------------------------------------------------- /models/i18n.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/astaxie/beego" 7 | "github.com/astaxie/beego/config" 8 | ) 9 | 10 | var ( 11 | Langs map[string]string 12 | I18ns = make(map[string]*I18n) 13 | ) 14 | 15 | // ReadI18n read i18n data 16 | func ReadI18n(langMap map[string]string) { 17 | for lang := range langMap { 18 | file := "conf/lang/" + lang + ".ini" 19 | beego.Info("Model.Read.[" + file + "]") 20 | i18n, err := NewI18n(lang, file) 21 | if err != nil { 22 | panic(err) 23 | } 24 | I18ns[lang] = i18n 25 | } 26 | Langs = langMap 27 | } 28 | 29 | // I18n object 30 | type I18n struct { 31 | Lang string // language string 32 | cfg config.Configer 33 | } 34 | 35 | // Tr converts string 36 | func (i *I18n) Tr(str string) string { 37 | return i.cfg.DefaultString(str, str) 38 | } 39 | 40 | // Trf converts string with arguments 41 | func (i *I18n) Trf(str string, values ...interface{}) string { 42 | return fmt.Sprintf(i.Tr(str), values...) 43 | } 44 | 45 | // NewI18n reads ini file 46 | func NewI18n(lang string, file string) (*I18n, error) { 47 | iniFile, err := config.NewConfig("ini", file) 48 | if err != nil { 49 | return nil, err 50 | } 51 | return &I18n{ 52 | Lang: lang, 53 | cfg: iniFile, 54 | }, nil 55 | } 56 | -------------------------------------------------------------------------------- /models/init.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "github.com/astaxie/beego" 5 | "github.com/astaxie/beego/config" 6 | ) 7 | 8 | // Init init models 9 | func Init() { 10 | iniFile, err := config.NewConfig("ini", "conf/nav.ini") 11 | if err != nil { 12 | panic(err) 13 | } 14 | beego.Info("Model.Read.[conf/nav.ini]") 15 | ReadNav(iniFile) 16 | 17 | langMap, _ := iniFile.GetSection("lang") 18 | ReadI18n(langMap) 19 | ReadVideo(langMap) 20 | } 21 | -------------------------------------------------------------------------------- /models/nav.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "sort" 5 | "strconv" 6 | "strings" 7 | 8 | "github.com/astaxie/beego/config" 9 | ) 10 | 11 | var ( 12 | // HomeNav is navigation for all pages 13 | HomeNav NavGroup 14 | // DocNav is navigation for documentation pages 15 | DocNav NavGroup 16 | ) 17 | 18 | // ReadNav read navigation data 19 | func ReadNav(iniFile config.Configer) { 20 | homeNav, _ := iniFile.GetSection("nav") 21 | docNav, _ := iniFile.GetSection("doc-nav") 22 | HomeNav = loadNav(homeNav, "nav") 23 | DocNav = loadNav(docNav, "doc-nav") 24 | } 25 | 26 | type ( 27 | // Nav is item of navigation 28 | Nav struct { 29 | Order int 30 | Key string 31 | URL string 32 | Children []*Nav 33 | i18nPrefix string 34 | } 35 | // NavGroup is group as navigation 36 | NavGroup []*Nav 37 | ) 38 | 39 | func newNav(key, url, i18n string) *Nav { 40 | keyData := strings.Split(key, "-") 41 | order, _ := strconv.Atoi(keyData[len(keyData)-1]) 42 | return &Nav{ 43 | Order: order, 44 | Key: key, 45 | URL: url, 46 | i18nPrefix: i18n, 47 | } 48 | } 49 | 50 | // I18n return the i18n key of this navigation item 51 | func (n *Nav) I18n() string { 52 | return n.i18nPrefix + "::" + n.Key // in beego ini config, it support getting key in section by "section::key" 53 | } 54 | 55 | // IsURL return whether the link is in url, or just separator 56 | func (n *Nav) IsURL() bool { 57 | return n.URL != "#" 58 | } 59 | 60 | // Find find navigation in group by key string 61 | func (ng NavGroup) Find(key string) *Nav { 62 | for _, n := range ng { 63 | if n.Key == key { 64 | return n 65 | } 66 | } 67 | return nil 68 | } 69 | 70 | func loadNav(m map[string]string, i18nPrefix string) NavGroup { 71 | var navData NavGroup 72 | for k, v := range m { 73 | navData = append(navData, newNav(k, v, i18nPrefix)) 74 | } 75 | 76 | sort.Sort(keyLengthNavSlice(navData)) 77 | 78 | var ( 79 | parentKey string 80 | topIdx int 81 | ) 82 | for i, n := range navData { 83 | idx := strings.LastIndex(n.Key, "-") 84 | if idx <= 0 { 85 | topIdx = i 86 | break 87 | } 88 | parentKey = n.Key[:idx] 89 | nav := navData.Find(parentKey) 90 | if nav == nil { 91 | continue 92 | } 93 | nav.Children = append(nav.Children, n) 94 | } 95 | navData = navData[topIdx:] 96 | sortNav(orderNavSlice(navData)) 97 | return NavGroup(navData) 98 | } 99 | 100 | type keyLengthNavSlice []*Nav 101 | 102 | func (k keyLengthNavSlice) Len() int { return len(k) } 103 | func (k keyLengthNavSlice) Less(i, j int) bool { return len(k[i].Key) > len(k[j].Key) } 104 | func (k keyLengthNavSlice) Swap(i, j int) { k[i], k[j] = k[j], k[i] } 105 | 106 | type orderNavSlice []*Nav 107 | 108 | func (o orderNavSlice) Len() int { return len(o) } 109 | func (o orderNavSlice) Less(i, j int) bool { return o[i].Order < o[j].Order } 110 | func (o orderNavSlice) Swap(i, j int) { o[i], o[j] = o[j], o[i] } 111 | 112 | func sortNav(s orderNavSlice) { 113 | sort.Sort(s) 114 | for _, n := range s { 115 | if len(n.Children) > 0 { 116 | sort.Sort(orderNavSlice(n.Children)) 117 | } 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /models/video.go: -------------------------------------------------------------------------------- 1 | package models 2 | 3 | import ( 4 | "fmt" 5 | "github.com/astaxie/beego" 6 | "github.com/astaxie/beego/config" 7 | ) 8 | 9 | var ( 10 | Videos = make(map[string]*Video) 11 | ) 12 | 13 | type Video struct { 14 | Desc string 15 | List []map[string]string 16 | } 17 | 18 | func ReadVideo(langMap map[string]string) { 19 | for lang := range langMap { 20 | file := "conf/video/" + lang + ".ini" 21 | video, err := NewVideo(file) 22 | if err != nil { 23 | panic(err) 24 | } 25 | Videos[lang] = video 26 | } 27 | } 28 | 29 | func NewVideo(file string) (*Video, error) { 30 | iniFile, err := config.NewConfig("ini", file) 31 | if err != nil { 32 | return nil, err 33 | } 34 | v := new(Video) 35 | v.Desc = iniFile.String("description") 36 | 37 | var ( 38 | idx = 1 39 | section string 40 | videoMap map[string]string 41 | ) 42 | for { 43 | section = fmt.Sprintf("video-%d", idx) 44 | videoMap, _ = iniFile.GetSection(section) 45 | if len(videoMap) == 0 { 46 | break 47 | } 48 | 49 | v.List = append(v.List, videoMap) 50 | 51 | idx++ 52 | videoMap = nil 53 | } 54 | 55 | beego.Info("Model.Read.[" + file + "]") 56 | return v, nil 57 | } 58 | -------------------------------------------------------------------------------- /routers/router.go: -------------------------------------------------------------------------------- 1 | package routers 2 | 3 | import ( 4 | "github.com/astaxie/beego" 5 | "github.com/beego/website/controllers" 6 | ) 7 | 8 | func Init() { 9 | beego.Router("/", new(controllers.IndexController)) 10 | beego.Router("/*", new(controllers.MainController)) 11 | beego.Router("/docs", new(controllers.DocController)) 12 | beego.Router("/docs/*", new(controllers.DocController)) 13 | beego.Router("/blog", new(controllers.BlogController)) 14 | beego.Router("/blog/*", new(controllers.BlogController)) 15 | beego.Router("/video", new(controllers.VideoController)) 16 | } 17 | -------------------------------------------------------------------------------- /static/css/styles/agate.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Agate by Taufik Nurrohman 3 | * ---------------------------------------------------- 4 | * 5 | * #ade5fc 6 | * #a2fca2 7 | * #c6b4f0 8 | * #d36363 9 | * #fcc28c 10 | * #fc9b9b 11 | * #ffa 12 | * #fff 13 | * #333 14 | * #62c8f3 15 | * #888 16 | * 17 | */ 18 | 19 | .hljs { 20 | display: block; 21 | overflow-x: auto; 22 | padding: 0.5em; 23 | background: #333; 24 | color: white; 25 | } 26 | 27 | .hljs-name, 28 | .hljs-strong { 29 | font-weight: bold; 30 | } 31 | 32 | .hljs-code, 33 | .hljs-emphasis { 34 | font-style: italic; 35 | } 36 | 37 | .hljs-tag { 38 | color: #62c8f3; 39 | } 40 | 41 | .hljs-variable, 42 | .hljs-template-variable, 43 | .hljs-selector-id, 44 | .hljs-selector-class { 45 | color: #ade5fc; 46 | } 47 | 48 | .hljs-string, 49 | .hljs-bullet { 50 | color: #a2fca2; 51 | } 52 | 53 | .hljs-type, 54 | .hljs-title, 55 | .hljs-section, 56 | .hljs-attribute, 57 | .hljs-quote, 58 | .hljs-built_in, 59 | .hljs-builtin-name { 60 | color: #ffa; 61 | } 62 | 63 | .hljs-number, 64 | .hljs-symbol, 65 | .hljs-bullet { 66 | color: #d36363; 67 | } 68 | 69 | .hljs-keyword, 70 | .hljs-selector-tag, 71 | .hljs-literal { 72 | color: #fcc28c; 73 | } 74 | 75 | .hljs-comment, 76 | .hljs-deletion, 77 | .hljs-code { 78 | color: #888; 79 | } 80 | 81 | .hljs-regexp, 82 | .hljs-link { 83 | color: #c6b4f0; 84 | } 85 | 86 | .hljs-meta { 87 | color: #fc9b9b; 88 | } 89 | 90 | .hljs-deletion { 91 | background-color: #fc9b9b; 92 | color: #333; 93 | } 94 | 95 | .hljs-addition { 96 | background-color: #a2fca2; 97 | color: #333; 98 | } 99 | 100 | .hljs a { 101 | color: inherit; 102 | } 103 | 104 | .hljs a:focus, 105 | .hljs a:hover { 106 | color: inherit; 107 | text-decoration: underline; 108 | } 109 | -------------------------------------------------------------------------------- /static/css/styles/androidstudio.css: -------------------------------------------------------------------------------- 1 | /* 2 | Date: 24 Fev 2015 3 | Author: Pedro Oliveira 4 | */ 5 | 6 | .hljs { 7 | color: #a9b7c6; 8 | background: #282b2e; 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | } 13 | 14 | .hljs-number, 15 | .hljs-literal, 16 | .hljs-symbol, 17 | .hljs-bullet { 18 | color: #6897BB; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-deletion { 24 | color: #cc7832; 25 | } 26 | 27 | .hljs-variable, 28 | .hljs-template-variable, 29 | .hljs-link { 30 | color: #629755; 31 | } 32 | 33 | .hljs-comment, 34 | .hljs-quote { 35 | color: #808080; 36 | } 37 | 38 | .hljs-meta { 39 | color: #bbb529; 40 | } 41 | 42 | .hljs-string, 43 | .hljs-attribute, 44 | .hljs-addition { 45 | color: #6A8759; 46 | } 47 | 48 | .hljs-section, 49 | .hljs-title, 50 | .hljs-type { 51 | color: #ffc66d; 52 | } 53 | 54 | .hljs-name, 55 | .hljs-selector-id, 56 | .hljs-selector-class { 57 | color: #e8bf6a; 58 | } 59 | 60 | .hljs-emphasis { 61 | font-style: italic; 62 | } 63 | 64 | .hljs-strong { 65 | font-weight: bold; 66 | } 67 | -------------------------------------------------------------------------------- /static/css/styles/arduino-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Arduino® Light Theme - Stefania Mellai 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #FFFFFF; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #434f54; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-attribute, 21 | .hljs-selector-tag, 22 | .hljs-doctag, 23 | .hljs-name { 24 | color: #00979D; 25 | } 26 | 27 | .hljs-built_in, 28 | .hljs-literal, 29 | .hljs-bullet, 30 | .hljs-code, 31 | .hljs-addition { 32 | color: #D35400; 33 | } 34 | 35 | .hljs-regexp, 36 | .hljs-symbol, 37 | .hljs-variable, 38 | .hljs-template-variable, 39 | .hljs-link, 40 | .hljs-selector-attr, 41 | .hljs-selector-pseudo { 42 | color: #00979D; 43 | } 44 | 45 | .hljs-type, 46 | .hljs-string, 47 | .hljs-selector-id, 48 | .hljs-selector-class, 49 | .hljs-quote, 50 | .hljs-template-tag, 51 | .hljs-deletion { 52 | color: #005C5F; 53 | } 54 | 55 | .hljs-title, 56 | .hljs-section { 57 | color: #880000; 58 | font-weight: bold; 59 | } 60 | 61 | .hljs-comment { 62 | color: rgba(149,165,166,.8); 63 | } 64 | 65 | .hljs-meta-keyword { 66 | color: #728E00; 67 | } 68 | 69 | .hljs-meta { 70 | color: #728E00; 71 | color: #434f54; 72 | } 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | 82 | .hljs-function { 83 | color: #728E00; 84 | } 85 | 86 | .hljs-number { 87 | color: #8A7B52; 88 | } 89 | -------------------------------------------------------------------------------- /static/css/styles/arta.css: -------------------------------------------------------------------------------- 1 | /* 2 | Date: 17.V.2011 3 | Author: pumbur 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: #222; 11 | } 12 | 13 | .hljs, 14 | .hljs-subst { 15 | color: #aaa; 16 | } 17 | 18 | .hljs-section { 19 | color: #fff; 20 | } 21 | 22 | .hljs-comment, 23 | .hljs-quote, 24 | .hljs-meta { 25 | color: #444; 26 | } 27 | 28 | .hljs-string, 29 | .hljs-symbol, 30 | .hljs-bullet, 31 | .hljs-regexp { 32 | color: #ffcc33; 33 | } 34 | 35 | .hljs-number, 36 | .hljs-addition { 37 | color: #00cc66; 38 | } 39 | 40 | .hljs-built_in, 41 | .hljs-builtin-name, 42 | .hljs-literal, 43 | .hljs-type, 44 | .hljs-template-variable, 45 | .hljs-attribute, 46 | .hljs-link { 47 | color: #32aaee; 48 | } 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-name, 53 | .hljs-selector-id, 54 | .hljs-selector-class { 55 | color: #6644aa; 56 | } 57 | 58 | .hljs-title, 59 | .hljs-variable, 60 | .hljs-deletion, 61 | .hljs-template-tag { 62 | color: #bb1166; 63 | } 64 | 65 | .hljs-section, 66 | .hljs-doctag, 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | 71 | .hljs-emphasis { 72 | font-style: italic; 73 | } 74 | -------------------------------------------------------------------------------- /static/css/styles/ascetic.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: white; 12 | color: black; 13 | } 14 | 15 | .hljs-string, 16 | .hljs-variable, 17 | .hljs-template-variable, 18 | .hljs-symbol, 19 | .hljs-bullet, 20 | .hljs-section, 21 | .hljs-addition, 22 | .hljs-attribute, 23 | .hljs-link { 24 | color: #888; 25 | } 26 | 27 | .hljs-comment, 28 | .hljs-quote, 29 | .hljs-meta, 30 | .hljs-deletion { 31 | color: #ccc; 32 | } 33 | 34 | .hljs-keyword, 35 | .hljs-selector-tag, 36 | .hljs-section, 37 | .hljs-name, 38 | .hljs-type, 39 | .hljs-strong { 40 | font-weight: bold; 41 | } 42 | 43 | .hljs-emphasis { 44 | font-style: italic; 45 | } 46 | -------------------------------------------------------------------------------- /static/css/styles/atelier-cave-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Cave Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #7e7887; 9 | } 10 | 11 | /* Atelier-Cave Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-regexp, 16 | .hljs-link, 17 | .hljs-tag, 18 | .hljs-name, 19 | .hljs-selector-id, 20 | .hljs-selector-class { 21 | color: #be4678; 22 | } 23 | 24 | /* Atelier-Cave Orange */ 25 | .hljs-number, 26 | .hljs-meta, 27 | .hljs-built_in, 28 | .hljs-builtin-name, 29 | .hljs-literal, 30 | .hljs-type, 31 | .hljs-params { 32 | color: #aa573c; 33 | } 34 | 35 | /* Atelier-Cave Green */ 36 | .hljs-string, 37 | .hljs-symbol, 38 | .hljs-bullet { 39 | color: #2a9292; 40 | } 41 | 42 | /* Atelier-Cave Blue */ 43 | .hljs-title, 44 | .hljs-section { 45 | color: #576ddb; 46 | } 47 | 48 | /* Atelier-Cave Purple */ 49 | .hljs-keyword, 50 | .hljs-selector-tag { 51 | color: #955ae7; 52 | } 53 | 54 | .hljs-deletion, 55 | .hljs-addition { 56 | color: #19171c; 57 | display: inline-block; 58 | width: 100%; 59 | } 60 | 61 | .hljs-deletion { 62 | background-color: #be4678; 63 | } 64 | 65 | .hljs-addition { 66 | background-color: #2a9292; 67 | } 68 | 69 | .hljs { 70 | display: block; 71 | overflow-x: auto; 72 | background: #19171c; 73 | color: #8b8792; 74 | padding: 0.5em; 75 | } 76 | 77 | .hljs-emphasis { 78 | font-style: italic; 79 | } 80 | 81 | .hljs-strong { 82 | font-weight: bold; 83 | } 84 | -------------------------------------------------------------------------------- /static/css/styles/atelier-cave-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Cave Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #655f6d; 9 | } 10 | 11 | /* Atelier-Cave Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-name, 21 | .hljs-selector-id, 22 | .hljs-selector-class { 23 | color: #be4678; 24 | } 25 | 26 | /* Atelier-Cave Orange */ 27 | .hljs-number, 28 | .hljs-meta, 29 | .hljs-built_in, 30 | .hljs-builtin-name, 31 | .hljs-literal, 32 | .hljs-type, 33 | .hljs-params { 34 | color: #aa573c; 35 | } 36 | 37 | /* Atelier-Cave Green */ 38 | .hljs-string, 39 | .hljs-symbol, 40 | .hljs-bullet { 41 | color: #2a9292; 42 | } 43 | 44 | /* Atelier-Cave Blue */ 45 | .hljs-title, 46 | .hljs-section { 47 | color: #576ddb; 48 | } 49 | 50 | /* Atelier-Cave Purple */ 51 | .hljs-keyword, 52 | .hljs-selector-tag { 53 | color: #955ae7; 54 | } 55 | 56 | .hljs-deletion, 57 | .hljs-addition { 58 | color: #19171c; 59 | display: inline-block; 60 | width: 100%; 61 | } 62 | 63 | .hljs-deletion { 64 | background-color: #be4678; 65 | } 66 | 67 | .hljs-addition { 68 | background-color: #2a9292; 69 | } 70 | 71 | .hljs { 72 | display: block; 73 | overflow-x: auto; 74 | background: #efecf4; 75 | color: #585260; 76 | padding: 0.5em; 77 | } 78 | 79 | .hljs-emphasis { 80 | font-style: italic; 81 | } 82 | 83 | .hljs-strong { 84 | font-weight: bold; 85 | } 86 | -------------------------------------------------------------------------------- /static/css/styles/atelier-dune-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Dune Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Dune Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #999580; 9 | } 10 | 11 | /* Atelier-Dune Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #d73737; 23 | } 24 | 25 | /* Atelier-Dune Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #b65611; 34 | } 35 | 36 | /* Atelier-Dune Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #60ac39; 41 | } 42 | 43 | /* Atelier-Dune Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #6684e1; 47 | } 48 | 49 | /* Atelier-Dune Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #b854d4; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #20201d; 59 | color: #a6a28c; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-dune-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Dune Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Dune Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #7d7a68; 9 | } 10 | 11 | /* Atelier-Dune Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #d73737; 23 | } 24 | 25 | /* Atelier-Dune Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #b65611; 34 | } 35 | 36 | /* Atelier-Dune Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #60ac39; 41 | } 42 | 43 | /* Atelier-Dune Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #6684e1; 47 | } 48 | 49 | /* Atelier-Dune Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #b854d4; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #fefbec; 59 | color: #6e6b5e; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-estuary-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Estuary Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Estuary Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #878573; 9 | } 10 | 11 | /* Atelier-Estuary Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ba6236; 23 | } 24 | 25 | /* Atelier-Estuary Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #ae7313; 34 | } 35 | 36 | /* Atelier-Estuary Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #7d9726; 41 | } 42 | 43 | /* Atelier-Estuary Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #36a166; 47 | } 48 | 49 | /* Atelier-Estuary Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #5f9182; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #22221b; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #ba6236; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #7d9726; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #22221b; 74 | color: #929181; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /static/css/styles/atelier-estuary-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Estuary Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/estuary) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Estuary Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #6c6b5a; 9 | } 10 | 11 | /* Atelier-Estuary Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ba6236; 23 | } 24 | 25 | /* Atelier-Estuary Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #ae7313; 34 | } 35 | 36 | /* Atelier-Estuary Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #7d9726; 41 | } 42 | 43 | /* Atelier-Estuary Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #36a166; 47 | } 48 | 49 | /* Atelier-Estuary Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #5f9182; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #22221b; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #ba6236; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #7d9726; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #f4f3ec; 74 | color: #5f5e4e; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /static/css/styles/atelier-forest-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Forest Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Forest Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #9c9491; 9 | } 10 | 11 | /* Atelier-Forest Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #f22c40; 23 | } 24 | 25 | /* Atelier-Forest Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #df5320; 34 | } 35 | 36 | /* Atelier-Forest Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #7b9726; 41 | } 42 | 43 | /* Atelier-Forest Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #407ee7; 47 | } 48 | 49 | /* Atelier-Forest Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6666ea; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #1b1918; 59 | color: #a8a19f; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-forest-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Forest Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Forest Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #766e6b; 9 | } 10 | 11 | /* Atelier-Forest Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #f22c40; 23 | } 24 | 25 | /* Atelier-Forest Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #df5320; 34 | } 35 | 36 | /* Atelier-Forest Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #7b9726; 41 | } 42 | 43 | /* Atelier-Forest Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #407ee7; 47 | } 48 | 49 | /* Atelier-Forest Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6666ea; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #f1efee; 59 | color: #68615e; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-heath-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Heath Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Heath Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #9e8f9e; 9 | } 10 | 11 | /* Atelier-Heath Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ca402b; 23 | } 24 | 25 | /* Atelier-Heath Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #a65926; 34 | } 35 | 36 | /* Atelier-Heath Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #918b3b; 41 | } 42 | 43 | /* Atelier-Heath Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #516aec; 47 | } 48 | 49 | /* Atelier-Heath Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #7b59c0; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #1b181b; 59 | color: #ab9bab; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-heath-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Heath Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Heath Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #776977; 9 | } 10 | 11 | /* Atelier-Heath Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ca402b; 23 | } 24 | 25 | /* Atelier-Heath Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #a65926; 34 | } 35 | 36 | /* Atelier-Heath Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #918b3b; 41 | } 42 | 43 | /* Atelier-Heath Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #516aec; 47 | } 48 | 49 | /* Atelier-Heath Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #7b59c0; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #f7f3f7; 59 | color: #695d69; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-lakeside-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Lakeside Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Lakeside Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #7195a8; 9 | } 10 | 11 | /* Atelier-Lakeside Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #d22d72; 23 | } 24 | 25 | /* Atelier-Lakeside Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #935c25; 34 | } 35 | 36 | /* Atelier-Lakeside Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #568c3b; 41 | } 42 | 43 | /* Atelier-Lakeside Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #257fad; 47 | } 48 | 49 | /* Atelier-Lakeside Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6b6bb8; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #161b1d; 59 | color: #7ea2b4; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-lakeside-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Lakeside Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Lakeside Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #5a7b8c; 9 | } 10 | 11 | /* Atelier-Lakeside Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #d22d72; 23 | } 24 | 25 | /* Atelier-Lakeside Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #935c25; 34 | } 35 | 36 | /* Atelier-Lakeside Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #568c3b; 41 | } 42 | 43 | /* Atelier-Lakeside Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #257fad; 47 | } 48 | 49 | /* Atelier-Lakeside Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6b6bb8; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #ebf8ff; 59 | color: #516d7b; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-plateau-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Plateau Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Plateau Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #7e7777; 9 | } 10 | 11 | /* Atelier-Plateau Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ca4949; 23 | } 24 | 25 | /* Atelier-Plateau Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #b45a3c; 34 | } 35 | 36 | /* Atelier-Plateau Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #4b8b8b; 41 | } 42 | 43 | /* Atelier-Plateau Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #7272ca; 47 | } 48 | 49 | /* Atelier-Plateau Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #8464c4; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #1b1818; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #ca4949; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #4b8b8b; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #1b1818; 74 | color: #8a8585; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /static/css/styles/atelier-plateau-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Plateau Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/plateau) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Plateau Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #655d5d; 9 | } 10 | 11 | /* Atelier-Plateau Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #ca4949; 23 | } 24 | 25 | /* Atelier-Plateau Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #b45a3c; 34 | } 35 | 36 | /* Atelier-Plateau Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #4b8b8b; 41 | } 42 | 43 | /* Atelier-Plateau Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #7272ca; 47 | } 48 | 49 | /* Atelier-Plateau Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #8464c4; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #1b1818; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #ca4949; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #4b8b8b; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #f4ecec; 74 | color: #585050; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /static/css/styles/atelier-savanna-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Savanna Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Savanna Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #78877d; 9 | } 10 | 11 | /* Atelier-Savanna Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #b16139; 23 | } 24 | 25 | /* Atelier-Savanna Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #9f713c; 34 | } 35 | 36 | /* Atelier-Savanna Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #489963; 41 | } 42 | 43 | /* Atelier-Savanna Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #478c90; 47 | } 48 | 49 | /* Atelier-Savanna Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #55859b; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #171c19; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #b16139; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #489963; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #171c19; 74 | color: #87928a; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /static/css/styles/atelier-savanna-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Savanna Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/savanna) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Savanna Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #5f6d64; 9 | } 10 | 11 | /* Atelier-Savanna Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #b16139; 23 | } 24 | 25 | /* Atelier-Savanna Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #9f713c; 34 | } 35 | 36 | /* Atelier-Savanna Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #489963; 41 | } 42 | 43 | /* Atelier-Savanna Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #478c90; 47 | } 48 | 49 | /* Atelier-Savanna Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #55859b; 53 | } 54 | 55 | .hljs-deletion, 56 | .hljs-addition { 57 | color: #171c19; 58 | display: inline-block; 59 | width: 100%; 60 | } 61 | 62 | .hljs-deletion { 63 | background-color: #b16139; 64 | } 65 | 66 | .hljs-addition { 67 | background-color: #489963; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | overflow-x: auto; 73 | background: #ecf4ee; 74 | color: #526057; 75 | padding: 0.5em; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /static/css/styles/atelier-seaside-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Seaside Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Seaside Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #809980; 9 | } 10 | 11 | /* Atelier-Seaside Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #e6193c; 23 | } 24 | 25 | /* Atelier-Seaside Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #87711d; 34 | } 35 | 36 | /* Atelier-Seaside Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #29a329; 41 | } 42 | 43 | /* Atelier-Seaside Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #3d62f5; 47 | } 48 | 49 | /* Atelier-Seaside Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #ad2bee; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #131513; 59 | color: #8ca68c; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-seaside-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Seaside Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Seaside Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #687d68; 9 | } 10 | 11 | /* Atelier-Seaside Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #e6193c; 23 | } 24 | 25 | /* Atelier-Seaside Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #87711d; 34 | } 35 | 36 | /* Atelier-Seaside Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #29a329; 41 | } 42 | 43 | /* Atelier-Seaside Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #3d62f5; 47 | } 48 | 49 | /* Atelier-Seaside Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #ad2bee; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #f4fbf4; 59 | color: #5e6e5e; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-sulphurpool-dark.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Sulphurpool Dark - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Sulphurpool Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #898ea4; 9 | } 10 | 11 | /* Atelier-Sulphurpool Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #c94922; 23 | } 24 | 25 | /* Atelier-Sulphurpool Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #c76b29; 34 | } 35 | 36 | /* Atelier-Sulphurpool Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #ac9739; 41 | } 42 | 43 | /* Atelier-Sulphurpool Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #3d8fd1; 47 | } 48 | 49 | /* Atelier-Sulphurpool Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6679cc; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #202746; 59 | color: #979db4; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/atelier-sulphurpool-light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Sulphurpool Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/sulphurpool) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Sulphurpool Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #6b7394; 9 | } 10 | 11 | /* Atelier-Sulphurpool Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-attribute, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-regexp, 18 | .hljs-link, 19 | .hljs-name, 20 | .hljs-selector-id, 21 | .hljs-selector-class { 22 | color: #c94922; 23 | } 24 | 25 | /* Atelier-Sulphurpool Orange */ 26 | .hljs-number, 27 | .hljs-meta, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params { 33 | color: #c76b29; 34 | } 35 | 36 | /* Atelier-Sulphurpool Green */ 37 | .hljs-string, 38 | .hljs-symbol, 39 | .hljs-bullet { 40 | color: #ac9739; 41 | } 42 | 43 | /* Atelier-Sulphurpool Blue */ 44 | .hljs-title, 45 | .hljs-section { 46 | color: #3d8fd1; 47 | } 48 | 49 | /* Atelier-Sulphurpool Purple */ 50 | .hljs-keyword, 51 | .hljs-selector-tag { 52 | color: #6679cc; 53 | } 54 | 55 | .hljs { 56 | display: block; 57 | overflow-x: auto; 58 | background: #f5f7ff; 59 | color: #5e6687; 60 | padding: 0.5em; 61 | } 62 | 63 | .hljs-emphasis { 64 | font-style: italic; 65 | } 66 | 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | -------------------------------------------------------------------------------- /static/css/styles/brown-paper.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Brown Paper style from goldblog.com.ua (c) Zaripov Yura 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background:#b7a68e url(./brown-papersq.png); 12 | } 13 | 14 | .hljs-keyword, 15 | .hljs-selector-tag, 16 | .hljs-literal { 17 | color:#005599; 18 | font-weight:bold; 19 | } 20 | 21 | .hljs, 22 | .hljs-subst { 23 | color: #363c69; 24 | } 25 | 26 | .hljs-string, 27 | .hljs-title, 28 | .hljs-section, 29 | .hljs-type, 30 | .hljs-attribute, 31 | .hljs-symbol, 32 | .hljs-bullet, 33 | .hljs-built_in, 34 | .hljs-addition, 35 | .hljs-variable, 36 | .hljs-template-tag, 37 | .hljs-template-variable, 38 | .hljs-link, 39 | .hljs-name { 40 | color: #2c009f; 41 | } 42 | 43 | .hljs-comment, 44 | .hljs-quote, 45 | .hljs-meta, 46 | .hljs-deletion { 47 | color: #802022; 48 | } 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-literal, 53 | .hljs-doctag, 54 | .hljs-title, 55 | .hljs-section, 56 | .hljs-type, 57 | .hljs-name, 58 | .hljs-strong { 59 | font-weight: bold; 60 | } 61 | 62 | .hljs-emphasis { 63 | font-style: italic; 64 | } 65 | -------------------------------------------------------------------------------- /static/css/styles/brown-papersq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/css/styles/brown-papersq.png -------------------------------------------------------------------------------- /static/css/styles/codepen-embed.css: -------------------------------------------------------------------------------- 1 | /* 2 | codepen.io Embed Theme 3 | Author: Justin Perry 4 | Original theme - https://github.com/chriskempson/tomorrow-theme 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #222; 12 | color: #fff; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #777; 18 | } 19 | 20 | .hljs-variable, 21 | .hljs-template-variable, 22 | .hljs-tag, 23 | .hljs-regexp, 24 | .hljs-meta, 25 | .hljs-number, 26 | .hljs-built_in, 27 | .hljs-builtin-name, 28 | .hljs-literal, 29 | .hljs-params, 30 | .hljs-symbol, 31 | .hljs-bullet, 32 | .hljs-link, 33 | .hljs-deletion { 34 | color: #ab875d; 35 | } 36 | 37 | .hljs-section, 38 | .hljs-title, 39 | .hljs-name, 40 | .hljs-selector-id, 41 | .hljs-selector-class, 42 | .hljs-type, 43 | .hljs-attribute { 44 | color: #9b869b; 45 | } 46 | 47 | .hljs-string, 48 | .hljs-keyword, 49 | .hljs-selector-tag, 50 | .hljs-addition { 51 | color: #8f9c6c; 52 | } 53 | 54 | .hljs-emphasis { 55 | font-style: italic; 56 | } 57 | 58 | .hljs-strong { 59 | font-weight: bold; 60 | } 61 | -------------------------------------------------------------------------------- /static/css/styles/color-brewer.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Colorbrewer theme 4 | Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock 5 | Ported by Fabrício Tavares de Oliveira 6 | 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | background: #fff; 14 | } 15 | 16 | .hljs, 17 | .hljs-subst { 18 | color: #000; 19 | } 20 | 21 | .hljs-string, 22 | .hljs-meta, 23 | .hljs-symbol, 24 | .hljs-template-tag, 25 | .hljs-template-variable, 26 | .hljs-addition { 27 | color: #756bb1; 28 | } 29 | 30 | .hljs-comment, 31 | .hljs-quote { 32 | color: #636363; 33 | } 34 | 35 | .hljs-number, 36 | .hljs-regexp, 37 | .hljs-literal, 38 | .hljs-bullet, 39 | .hljs-link { 40 | color: #31a354; 41 | } 42 | 43 | .hljs-deletion, 44 | .hljs-variable { 45 | color: #88f; 46 | } 47 | 48 | 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-title, 53 | .hljs-section, 54 | .hljs-built_in, 55 | .hljs-doctag, 56 | .hljs-type, 57 | .hljs-tag, 58 | .hljs-name, 59 | .hljs-selector-id, 60 | .hljs-selector-class, 61 | .hljs-strong { 62 | color: #3182bd; 63 | } 64 | 65 | .hljs-emphasis { 66 | font-style: italic; 67 | } 68 | 69 | .hljs-attribute { 70 | color: #e6550d; 71 | } 72 | -------------------------------------------------------------------------------- /static/css/styles/dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dark style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #444; 12 | } 13 | 14 | .hljs-keyword, 15 | .hljs-selector-tag, 16 | .hljs-literal, 17 | .hljs-section, 18 | .hljs-link { 19 | color: white; 20 | } 21 | 22 | .hljs, 23 | .hljs-subst { 24 | color: #ddd; 25 | } 26 | 27 | .hljs-string, 28 | .hljs-title, 29 | .hljs-name, 30 | .hljs-type, 31 | .hljs-attribute, 32 | .hljs-symbol, 33 | .hljs-bullet, 34 | .hljs-built_in, 35 | .hljs-addition, 36 | .hljs-variable, 37 | .hljs-template-tag, 38 | .hljs-template-variable { 39 | color: #d88; 40 | } 41 | 42 | .hljs-comment, 43 | .hljs-quote, 44 | .hljs-deletion, 45 | .hljs-meta { 46 | color: #777; 47 | } 48 | 49 | .hljs-keyword, 50 | .hljs-selector-tag, 51 | .hljs-literal, 52 | .hljs-title, 53 | .hljs-section, 54 | .hljs-doctag, 55 | .hljs-type, 56 | .hljs-name, 57 | .hljs-strong { 58 | font-weight: bold; 59 | } 60 | 61 | .hljs-emphasis { 62 | font-style: italic; 63 | } 64 | -------------------------------------------------------------------------------- /static/css/styles/darkula.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Darkula color scheme from the JetBrains family of IDEs 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #2b2b2b; 13 | } 14 | 15 | .hljs { 16 | color: #bababa; 17 | } 18 | 19 | .hljs-strong, 20 | .hljs-emphasis { 21 | color: #a8a8a2; 22 | } 23 | 24 | .hljs-bullet, 25 | .hljs-quote, 26 | .hljs-link, 27 | .hljs-number, 28 | .hljs-regexp, 29 | .hljs-literal { 30 | color: #6896ba; 31 | } 32 | 33 | .hljs-code, 34 | .hljs-selector-class { 35 | color: #a6e22e; 36 | } 37 | 38 | .hljs-emphasis { 39 | font-style: italic; 40 | } 41 | 42 | .hljs-keyword, 43 | .hljs-selector-tag, 44 | .hljs-section, 45 | .hljs-attribute, 46 | .hljs-name, 47 | .hljs-variable { 48 | color: #cb7832; 49 | } 50 | 51 | .hljs-params { 52 | color: #b9b9b9; 53 | } 54 | 55 | .hljs-string, 56 | .hljs-subst, 57 | .hljs-type, 58 | .hljs-built_in, 59 | .hljs-builtin-name, 60 | .hljs-symbol, 61 | .hljs-selector-id, 62 | .hljs-selector-attr, 63 | .hljs-selector-pseudo, 64 | .hljs-template-tag, 65 | .hljs-template-variable, 66 | .hljs-addition { 67 | color: #e0c46c; 68 | } 69 | 70 | .hljs-comment, 71 | .hljs-deletion, 72 | .hljs-meta { 73 | color: #7f7f7f; 74 | } 75 | -------------------------------------------------------------------------------- /static/css/styles/default.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original highlight.js style (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #F0F0F0; 12 | } 13 | 14 | 15 | /* Base color: saturation 0; */ 16 | 17 | .hljs, 18 | .hljs-subst { 19 | color: #444; 20 | } 21 | 22 | .hljs-comment { 23 | color: #888888; 24 | } 25 | 26 | .hljs-keyword, 27 | .hljs-attribute, 28 | .hljs-selector-tag, 29 | .hljs-meta-keyword, 30 | .hljs-doctag, 31 | .hljs-name { 32 | font-weight: bold; 33 | } 34 | 35 | 36 | /* User color: hue: 0 */ 37 | 38 | .hljs-type, 39 | .hljs-string, 40 | .hljs-number, 41 | .hljs-selector-id, 42 | .hljs-selector-class, 43 | .hljs-quote, 44 | .hljs-template-tag, 45 | .hljs-deletion { 46 | color: #880000; 47 | } 48 | 49 | .hljs-title, 50 | .hljs-section { 51 | color: #880000; 52 | font-weight: bold; 53 | } 54 | 55 | .hljs-regexp, 56 | .hljs-symbol, 57 | .hljs-variable, 58 | .hljs-template-variable, 59 | .hljs-link, 60 | .hljs-selector-attr, 61 | .hljs-selector-pseudo { 62 | color: #BC6060; 63 | } 64 | 65 | 66 | /* Language color: hue: 90; */ 67 | 68 | .hljs-literal { 69 | color: #78A960; 70 | } 71 | 72 | .hljs-built_in, 73 | .hljs-bullet, 74 | .hljs-code, 75 | .hljs-addition { 76 | color: #397300; 77 | } 78 | 79 | 80 | /* Meta color: hue: 200 */ 81 | 82 | .hljs-meta { 83 | color: #1f7199; 84 | } 85 | 86 | .hljs-meta-string { 87 | color: #4d99bf; 88 | } 89 | 90 | 91 | /* Misc effects */ 92 | 93 | .hljs-emphasis { 94 | font-style: italic; 95 | } 96 | 97 | .hljs-strong { 98 | font-weight: bold; 99 | } 100 | -------------------------------------------------------------------------------- /static/css/styles/docco.css: -------------------------------------------------------------------------------- 1 | /* 2 | Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine (@thingsinjars) 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | color: #000; 10 | background: #f8f8ff; 11 | } 12 | 13 | .hljs-comment, 14 | .hljs-quote { 15 | color: #408080; 16 | font-style: italic; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-selector-tag, 21 | .hljs-literal, 22 | .hljs-subst { 23 | color: #954121; 24 | } 25 | 26 | .hljs-number { 27 | color: #40a070; 28 | } 29 | 30 | .hljs-string, 31 | .hljs-doctag { 32 | color: #219161; 33 | } 34 | 35 | .hljs-selector-id, 36 | .hljs-selector-class, 37 | .hljs-section, 38 | .hljs-type { 39 | color: #19469d; 40 | } 41 | 42 | .hljs-params { 43 | color: #00f; 44 | } 45 | 46 | .hljs-title { 47 | color: #458; 48 | font-weight: bold; 49 | } 50 | 51 | .hljs-tag, 52 | .hljs-name, 53 | .hljs-attribute { 54 | color: #000080; 55 | font-weight: normal; 56 | } 57 | 58 | .hljs-variable, 59 | .hljs-template-variable { 60 | color: #008080; 61 | } 62 | 63 | .hljs-regexp, 64 | .hljs-link { 65 | color: #b68; 66 | } 67 | 68 | .hljs-symbol, 69 | .hljs-bullet { 70 | color: #990073; 71 | } 72 | 73 | .hljs-built_in, 74 | .hljs-builtin-name { 75 | color: #0086b3; 76 | } 77 | 78 | .hljs-meta { 79 | color: #999; 80 | font-weight: bold; 81 | } 82 | 83 | .hljs-deletion { 84 | background: #fdd; 85 | } 86 | 87 | .hljs-addition { 88 | background: #dfd; 89 | } 90 | 91 | .hljs-emphasis { 92 | font-style: italic; 93 | } 94 | 95 | .hljs-strong { 96 | font-weight: bold; 97 | } 98 | -------------------------------------------------------------------------------- /static/css/styles/dracula.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dracula Theme v1.2.0 4 | 5 | https://github.com/zenorocha/dracula-theme 6 | 7 | Copyright 2015, All rights reserved 8 | 9 | Code licensed under the MIT license 10 | http://zenorocha.mit-license.org 11 | 12 | @author Éverton Ribeiro 13 | @author Zeno Rocha 14 | 15 | */ 16 | 17 | .hljs { 18 | display: block; 19 | overflow-x: auto; 20 | padding: 0.5em; 21 | background: #282a36; 22 | } 23 | 24 | .hljs-keyword, 25 | .hljs-selector-tag, 26 | .hljs-literal, 27 | .hljs-section, 28 | .hljs-link { 29 | color: #8be9fd; 30 | } 31 | 32 | .hljs-function .hljs-keyword { 33 | color: #ff79c6; 34 | } 35 | 36 | .hljs, 37 | .hljs-subst { 38 | color: #f8f8f2; 39 | } 40 | 41 | .hljs-string, 42 | .hljs-title, 43 | .hljs-name, 44 | .hljs-type, 45 | .hljs-attribute, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition, 49 | .hljs-variable, 50 | .hljs-template-tag, 51 | .hljs-template-variable { 52 | color: #f1fa8c; 53 | } 54 | 55 | .hljs-comment, 56 | .hljs-quote, 57 | .hljs-deletion, 58 | .hljs-meta { 59 | color: #6272a4; 60 | } 61 | 62 | .hljs-keyword, 63 | .hljs-selector-tag, 64 | .hljs-literal, 65 | .hljs-title, 66 | .hljs-section, 67 | .hljs-doctag, 68 | .hljs-type, 69 | .hljs-name, 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | -------------------------------------------------------------------------------- /static/css/styles/far.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | FAR Style (c) MajestiC 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #000080; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #0ff; 17 | } 18 | 19 | .hljs-string, 20 | .hljs-attribute, 21 | .hljs-symbol, 22 | .hljs-bullet, 23 | .hljs-built_in, 24 | .hljs-builtin-name, 25 | .hljs-template-tag, 26 | .hljs-template-variable, 27 | .hljs-addition { 28 | color: #ff0; 29 | } 30 | 31 | .hljs-keyword, 32 | .hljs-selector-tag, 33 | .hljs-section, 34 | .hljs-type, 35 | .hljs-name, 36 | .hljs-selector-id, 37 | .hljs-selector-class, 38 | .hljs-variable { 39 | color: #fff; 40 | } 41 | 42 | .hljs-comment, 43 | .hljs-quote, 44 | .hljs-doctag, 45 | .hljs-deletion { 46 | color: #888; 47 | } 48 | 49 | .hljs-number, 50 | .hljs-regexp, 51 | .hljs-literal, 52 | .hljs-link { 53 | color: #0f0; 54 | } 55 | 56 | .hljs-meta { 57 | color: #008080; 58 | } 59 | 60 | .hljs-keyword, 61 | .hljs-selector-tag, 62 | .hljs-title, 63 | .hljs-section, 64 | .hljs-name, 65 | .hljs-strong { 66 | font-weight: bold; 67 | } 68 | 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | -------------------------------------------------------------------------------- /static/css/styles/foundation.css: -------------------------------------------------------------------------------- 1 | /* 2 | Description: Foundation 4 docs style for highlight.js 3 | Author: Dan Allen 4 | Website: http://foundation.zurb.com/docs/ 5 | Version: 1.0 6 | Date: 2013-04-02 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | background: #eee; color: black; 14 | } 15 | 16 | .hljs-link, 17 | .hljs-emphasis, 18 | .hljs-attribute, 19 | .hljs-addition { 20 | color: #070; 21 | } 22 | 23 | .hljs-emphasis { 24 | font-style: italic; 25 | } 26 | 27 | .hljs-strong, 28 | .hljs-string, 29 | .hljs-deletion { 30 | color: #d14; 31 | } 32 | 33 | .hljs-strong { 34 | font-weight: bold; 35 | } 36 | 37 | .hljs-quote, 38 | .hljs-comment { 39 | color: #998; 40 | font-style: italic; 41 | } 42 | 43 | .hljs-section, 44 | .hljs-title { 45 | color: #900; 46 | } 47 | 48 | .hljs-class .hljs-title, 49 | .hljs-type { 50 | color: #458; 51 | } 52 | 53 | .hljs-variable, 54 | .hljs-template-variable { 55 | color: #336699; 56 | } 57 | 58 | .hljs-bullet { 59 | color: #997700; 60 | } 61 | 62 | .hljs-meta { 63 | color: #3344bb; 64 | } 65 | 66 | .hljs-code, 67 | .hljs-number, 68 | .hljs-literal, 69 | .hljs-keyword, 70 | .hljs-selector-tag { 71 | color: #099; 72 | } 73 | 74 | .hljs-regexp { 75 | background-color: #fff0ff; 76 | color: #880088; 77 | } 78 | 79 | .hljs-symbol { 80 | color: #990073; 81 | } 82 | 83 | .hljs-tag, 84 | .hljs-name, 85 | .hljs-selector-id, 86 | .hljs-selector-class { 87 | color: #007700; 88 | } 89 | -------------------------------------------------------------------------------- /static/css/styles/github-gist.css: -------------------------------------------------------------------------------- 1 | /** 2 | * GitHub Gist Theme 3 | * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | background: white; 9 | padding: 0.5em; 10 | color: #333333; 11 | overflow-x: auto; 12 | } 13 | 14 | .hljs-comment, 15 | .hljs-meta { 16 | color: #969896; 17 | } 18 | 19 | .hljs-string, 20 | .hljs-variable, 21 | .hljs-template-variable, 22 | .hljs-strong, 23 | .hljs-emphasis, 24 | .hljs-quote { 25 | color: #df5000; 26 | } 27 | 28 | .hljs-keyword, 29 | .hljs-selector-tag, 30 | .hljs-type { 31 | color: #a71d5d; 32 | } 33 | 34 | .hljs-literal, 35 | .hljs-symbol, 36 | .hljs-bullet, 37 | .hljs-attribute { 38 | color: #0086b3; 39 | } 40 | 41 | .hljs-section, 42 | .hljs-name { 43 | color: #63a35c; 44 | } 45 | 46 | .hljs-tag { 47 | color: #333333; 48 | } 49 | 50 | .hljs-title, 51 | .hljs-attr, 52 | .hljs-selector-id, 53 | .hljs-selector-class, 54 | .hljs-selector-attr, 55 | .hljs-selector-pseudo { 56 | color: #795da3; 57 | } 58 | 59 | .hljs-addition { 60 | color: #55a532; 61 | background-color: #eaffea; 62 | } 63 | 64 | .hljs-deletion { 65 | color: #bd2c00; 66 | background-color: #ffecec; 67 | } 68 | 69 | .hljs-link { 70 | text-decoration: underline; 71 | } 72 | -------------------------------------------------------------------------------- /static/css/styles/github.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | github.com style (c) Vasily Polovnyov 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | color: #333; 12 | background: #f8f8f8; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #998; 18 | font-style: italic; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-subst { 24 | color: #333; 25 | font-weight: bold; 26 | } 27 | 28 | .hljs-number, 29 | .hljs-literal, 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-tag .hljs-attr { 33 | color: #008080; 34 | } 35 | 36 | .hljs-string, 37 | .hljs-doctag { 38 | color: #d14; 39 | } 40 | 41 | .hljs-title, 42 | .hljs-section, 43 | .hljs-selector-id { 44 | color: #900; 45 | font-weight: bold; 46 | } 47 | 48 | .hljs-subst { 49 | font-weight: normal; 50 | } 51 | 52 | .hljs-type, 53 | .hljs-class .hljs-title { 54 | color: #458; 55 | font-weight: bold; 56 | } 57 | 58 | .hljs-tag, 59 | .hljs-name, 60 | .hljs-attribute { 61 | color: #000080; 62 | font-weight: normal; 63 | } 64 | 65 | .hljs-regexp, 66 | .hljs-link { 67 | color: #009926; 68 | } 69 | 70 | .hljs-symbol, 71 | .hljs-bullet { 72 | color: #990073; 73 | } 74 | 75 | .hljs-built_in, 76 | .hljs-builtin-name { 77 | color: #0086b3; 78 | } 79 | 80 | .hljs-meta { 81 | color: #999; 82 | font-weight: bold; 83 | } 84 | 85 | .hljs-deletion { 86 | background: #fdd; 87 | } 88 | 89 | .hljs-addition { 90 | background: #dfd; 91 | } 92 | 93 | .hljs-emphasis { 94 | font-style: italic; 95 | } 96 | 97 | .hljs-strong { 98 | font-weight: bold; 99 | } 100 | -------------------------------------------------------------------------------- /static/css/styles/googlecode.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Google Code style (c) Aahan Krish 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: white; 12 | color: black; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #800; 18 | } 19 | 20 | .hljs-keyword, 21 | .hljs-selector-tag, 22 | .hljs-section, 23 | .hljs-title, 24 | .hljs-name { 25 | color: #008; 26 | } 27 | 28 | .hljs-variable, 29 | .hljs-template-variable { 30 | color: #660; 31 | } 32 | 33 | .hljs-string, 34 | .hljs-selector-attr, 35 | .hljs-selector-pseudo, 36 | .hljs-regexp { 37 | color: #080; 38 | } 39 | 40 | .hljs-literal, 41 | .hljs-symbol, 42 | .hljs-bullet, 43 | .hljs-meta, 44 | .hljs-number, 45 | .hljs-link { 46 | color: #066; 47 | } 48 | 49 | .hljs-title, 50 | .hljs-doctag, 51 | .hljs-type, 52 | .hljs-attr, 53 | .hljs-built_in, 54 | .hljs-builtin-name, 55 | .hljs-params { 56 | color: #606; 57 | } 58 | 59 | .hljs-attribute, 60 | .hljs-subst { 61 | color: #000; 62 | } 63 | 64 | .hljs-formula { 65 | background-color: #eee; 66 | font-style: italic; 67 | } 68 | 69 | .hljs-selector-id, 70 | .hljs-selector-class { 71 | color: #9B703F 72 | } 73 | 74 | .hljs-addition { 75 | background-color: #baeeba; 76 | } 77 | 78 | .hljs-deletion { 79 | background-color: #ffc8bd; 80 | } 81 | 82 | .hljs-doctag, 83 | .hljs-strong { 84 | font-weight: bold; 85 | } 86 | 87 | .hljs-emphasis { 88 | font-style: italic; 89 | } 90 | -------------------------------------------------------------------------------- /static/css/styles/grayscale.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | grayscale style (c) MY Sun 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | color: #333; 12 | background: #fff; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #777; 18 | font-style: italic; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-subst { 24 | color: #333; 25 | font-weight: bold; 26 | } 27 | 28 | .hljs-number, 29 | .hljs-literal { 30 | color: #777; 31 | } 32 | 33 | .hljs-string, 34 | .hljs-doctag, 35 | .hljs-formula { 36 | color: #333; 37 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAJ0lEQVQIW2O8e/fufwYGBgZBQUEQxcCIIfDu3Tuwivfv30NUoAsAALHpFMMLqZlPAAAAAElFTkSuQmCC) repeat; 38 | } 39 | 40 | .hljs-title, 41 | .hljs-section, 42 | .hljs-selector-id { 43 | color: #000; 44 | font-weight: bold; 45 | } 46 | 47 | .hljs-subst { 48 | font-weight: normal; 49 | } 50 | 51 | .hljs-class .hljs-title, 52 | .hljs-type, 53 | .hljs-name { 54 | color: #333; 55 | font-weight: bold; 56 | } 57 | 58 | .hljs-tag { 59 | color: #333; 60 | } 61 | 62 | .hljs-regexp { 63 | color: #333; 64 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAAPUlEQVQYV2NkQAN37979r6yszIgujiIAU4RNMVwhuiQ6H6wQl3XI4oy4FMHcCJPHcDS6J2A2EqUQpJhohQDexSef15DBCwAAAABJRU5ErkJggg==) repeat; 65 | } 66 | 67 | .hljs-symbol, 68 | .hljs-bullet, 69 | .hljs-link { 70 | color: #000; 71 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAKElEQVQIW2NkQAO7d+/+z4gsBhJwdXVlhAvCBECKwIIwAbhKZBUwBQA6hBpm5efZsgAAAABJRU5ErkJggg==) repeat; 72 | } 73 | 74 | .hljs-built_in, 75 | .hljs-builtin-name { 76 | color: #000; 77 | text-decoration: underline; 78 | } 79 | 80 | .hljs-meta { 81 | color: #999; 82 | font-weight: bold; 83 | } 84 | 85 | .hljs-deletion { 86 | color: #fff; 87 | background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAADCAYAAABS3WWCAAAAE0lEQVQIW2MMDQ39zzhz5kwIAQAyxweWgUHd1AAAAABJRU5ErkJggg==) repeat; 88 | } 89 | 90 | .hljs-addition { 91 | color: #000; 92 | background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAALUlEQVQYV2N89+7dfwYk8P79ewZBQUFkIQZGOiu6e/cuiptQHAPl0NtNxAQBAM97Oejj3Dg7AAAAAElFTkSuQmCC) repeat; 93 | } 94 | 95 | .hljs-emphasis { 96 | font-style: italic; 97 | } 98 | 99 | .hljs-strong { 100 | font-weight: bold; 101 | } 102 | -------------------------------------------------------------------------------- /static/css/styles/gruvbox-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #282828; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #ebdbb2; 17 | } 18 | 19 | /* Gruvbox Red */ 20 | .hljs-deletion, 21 | .hljs-formula, 22 | .hljs-keyword, 23 | .hljs-link, 24 | .hljs-selector-tag { 25 | color: #fb4934; 26 | } 27 | 28 | /* Gruvbox Blue */ 29 | .hljs-built_in, 30 | .hljs-emphasis, 31 | .hljs-name, 32 | .hljs-quote, 33 | .hljs-strong, 34 | .hljs-title, 35 | .hljs-variable { 36 | color: #83a598; 37 | } 38 | 39 | /* Gruvbox Yellow */ 40 | .hljs-attr, 41 | .hljs-params, 42 | .hljs-template-tag, 43 | .hljs-type { 44 | color: #fabd2f; 45 | } 46 | 47 | /* Gruvbox Purple */ 48 | .hljs-builtin-name, 49 | .hljs-doctag, 50 | .hljs-literal, 51 | .hljs-number { 52 | color: #8f3f71; 53 | } 54 | 55 | /* Gruvbox Orange */ 56 | .hljs-code, 57 | .hljs-meta, 58 | .hljs-regexp, 59 | .hljs-selector-id, 60 | .hljs-template-variable { 61 | color: #fe8019; 62 | } 63 | 64 | /* Gruvbox Green */ 65 | .hljs-addition, 66 | .hljs-meta-string, 67 | .hljs-section, 68 | .hljs-selector-attr, 69 | .hljs-selector-class, 70 | .hljs-string, 71 | .hljs-symbol { 72 | color: #b8bb26; 73 | } 74 | 75 | /* Gruvbox Aqua */ 76 | .hljs-attribute, 77 | .hljs-bullet, 78 | .hljs-class, 79 | .hljs-function, 80 | .hljs-function .hljs-keyword, 81 | .hljs-meta-keyword, 82 | .hljs-selector-pseudo, 83 | .hljs-tag { 84 | color: #8ec07c; 85 | } 86 | 87 | /* Gruvbox Gray */ 88 | .hljs-comment { 89 | color: #928374; 90 | } 91 | 92 | /* Gruvbox Purple */ 93 | .hljs-link_label, 94 | .hljs-literal, 95 | .hljs-number { 96 | color: #d3869b; 97 | } 98 | 99 | .hljs-comment, 100 | .hljs-emphasis { 101 | font-style: italic; 102 | } 103 | 104 | .hljs-section, 105 | .hljs-strong, 106 | .hljs-tag { 107 | font-weight: bold; 108 | } 109 | -------------------------------------------------------------------------------- /static/css/styles/gruvbox-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/morhetz/gruvbox) 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #fbf1c7; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #3c3836; 17 | } 18 | 19 | /* Gruvbox Red */ 20 | .hljs-deletion, 21 | .hljs-formula, 22 | .hljs-keyword, 23 | .hljs-link, 24 | .hljs-selector-tag { 25 | color: #9d0006; 26 | } 27 | 28 | /* Gruvbox Blue */ 29 | .hljs-built_in, 30 | .hljs-emphasis, 31 | .hljs-name, 32 | .hljs-quote, 33 | .hljs-strong, 34 | .hljs-title, 35 | .hljs-variable { 36 | color: #076678; 37 | } 38 | 39 | /* Gruvbox Yellow */ 40 | .hljs-attr, 41 | .hljs-params, 42 | .hljs-template-tag, 43 | .hljs-type { 44 | color: #b57614; 45 | } 46 | 47 | /* Gruvbox Purple */ 48 | .hljs-builtin-name, 49 | .hljs-doctag, 50 | .hljs-literal, 51 | .hljs-number { 52 | color: #8f3f71; 53 | } 54 | 55 | /* Gruvbox Orange */ 56 | .hljs-code, 57 | .hljs-meta, 58 | .hljs-regexp, 59 | .hljs-selector-id, 60 | .hljs-template-variable { 61 | color: #af3a03; 62 | } 63 | 64 | /* Gruvbox Green */ 65 | .hljs-addition, 66 | .hljs-meta-string, 67 | .hljs-section, 68 | .hljs-selector-attr, 69 | .hljs-selector-class, 70 | .hljs-string, 71 | .hljs-symbol { 72 | color: #79740e; 73 | } 74 | 75 | /* Gruvbox Aqua */ 76 | .hljs-attribute, 77 | .hljs-bullet, 78 | .hljs-class, 79 | .hljs-function, 80 | .hljs-function .hljs-keyword, 81 | .hljs-meta-keyword, 82 | .hljs-selector-pseudo, 83 | .hljs-tag { 84 | color: #427b58; 85 | } 86 | 87 | /* Gruvbox Gray */ 88 | .hljs-comment { 89 | color: #928374; 90 | } 91 | 92 | /* Gruvbox Purple */ 93 | .hljs-link_label, 94 | .hljs-literal, 95 | .hljs-number { 96 | color: #8f3f71; 97 | } 98 | 99 | .hljs-comment, 100 | .hljs-emphasis { 101 | font-style: italic; 102 | } 103 | 104 | .hljs-section, 105 | .hljs-strong, 106 | .hljs-tag { 107 | font-weight: bold; 108 | } 109 | -------------------------------------------------------------------------------- /static/css/styles/hopscotch.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Hopscotch 3 | * by Jan T. Sott 4 | * https://github.com/idleberg/Hopscotch 5 | * 6 | * This work is licensed under the Creative Commons CC0 1.0 Universal License 7 | */ 8 | 9 | /* Comment */ 10 | .hljs-comment, 11 | .hljs-quote { 12 | color: #989498; 13 | } 14 | 15 | /* Red */ 16 | .hljs-variable, 17 | .hljs-template-variable, 18 | .hljs-attribute, 19 | .hljs-tag, 20 | .hljs-name, 21 | .hljs-selector-id, 22 | .hljs-selector-class, 23 | .hljs-regexp, 24 | .hljs-link, 25 | .hljs-deletion { 26 | color: #dd464c; 27 | } 28 | 29 | /* Orange */ 30 | .hljs-number, 31 | .hljs-built_in, 32 | .hljs-builtin-name, 33 | .hljs-literal, 34 | .hljs-type, 35 | .hljs-params { 36 | color: #fd8b19; 37 | } 38 | 39 | /* Yellow */ 40 | .hljs-class .hljs-title { 41 | color: #fdcc59; 42 | } 43 | 44 | /* Green */ 45 | .hljs-string, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition { 49 | color: #8fc13e; 50 | } 51 | 52 | /* Aqua */ 53 | .hljs-meta { 54 | color: #149b93; 55 | } 56 | 57 | /* Blue */ 58 | .hljs-function, 59 | .hljs-section, 60 | .hljs-title { 61 | color: #1290bf; 62 | } 63 | 64 | /* Purple */ 65 | .hljs-keyword, 66 | .hljs-selector-tag { 67 | color: #c85e7c; 68 | } 69 | 70 | .hljs { 71 | display: block; 72 | background: #322931; 73 | color: #b9b5b8; 74 | padding: 0.5em; 75 | } 76 | 77 | .hljs-emphasis { 78 | font-style: italic; 79 | } 80 | 81 | .hljs-strong { 82 | font-weight: bold; 83 | } 84 | -------------------------------------------------------------------------------- /static/css/styles/hybrid.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid) 4 | 5 | */ 6 | 7 | /*background color*/ 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #1d1f21; 13 | } 14 | 15 | /*selection color*/ 16 | .hljs::selection, 17 | .hljs span::selection { 18 | background: #373b41; 19 | } 20 | 21 | .hljs::-moz-selection, 22 | .hljs span::-moz-selection { 23 | background: #373b41; 24 | } 25 | 26 | /*foreground color*/ 27 | .hljs { 28 | color: #c5c8c6; 29 | } 30 | 31 | /*color: fg_yellow*/ 32 | .hljs-title, 33 | .hljs-name { 34 | color: #f0c674; 35 | } 36 | 37 | /*color: fg_comment*/ 38 | .hljs-comment, 39 | .hljs-meta, 40 | .hljs-meta .hljs-keyword { 41 | color: #707880; 42 | } 43 | 44 | /*color: fg_red*/ 45 | .hljs-number, 46 | .hljs-symbol, 47 | .hljs-literal, 48 | .hljs-deletion, 49 | .hljs-link { 50 | color: #cc6666 51 | } 52 | 53 | /*color: fg_green*/ 54 | .hljs-string, 55 | .hljs-doctag, 56 | .hljs-addition, 57 | .hljs-regexp, 58 | .hljs-selector-attr, 59 | .hljs-selector-pseudo { 60 | color: #b5bd68; 61 | } 62 | 63 | /*color: fg_purple*/ 64 | .hljs-attribute, 65 | .hljs-code, 66 | .hljs-selector-id { 67 | color: #b294bb; 68 | } 69 | 70 | /*color: fg_blue*/ 71 | .hljs-keyword, 72 | .hljs-selector-tag, 73 | .hljs-bullet, 74 | .hljs-tag { 75 | color: #81a2be; 76 | } 77 | 78 | /*color: fg_aqua*/ 79 | .hljs-subst, 80 | .hljs-variable, 81 | .hljs-template-tag, 82 | .hljs-template-variable { 83 | color: #8abeb7; 84 | } 85 | 86 | /*color: fg_orange*/ 87 | .hljs-type, 88 | .hljs-built_in, 89 | .hljs-builtin-name, 90 | .hljs-quote, 91 | .hljs-section, 92 | .hljs-selector-class { 93 | color: #de935f; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | -------------------------------------------------------------------------------- /static/css/styles/idea.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Intellij Idea-like styling (c) Vasily Polovnyov 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | color: #000; 12 | background: #fff; 13 | } 14 | 15 | .hljs-subst, 16 | .hljs-title { 17 | font-weight: normal; 18 | color: #000; 19 | } 20 | 21 | .hljs-comment, 22 | .hljs-quote { 23 | color: #808080; 24 | font-style: italic; 25 | } 26 | 27 | .hljs-meta { 28 | color: #808000; 29 | } 30 | 31 | .hljs-tag { 32 | background: #efefef; 33 | } 34 | 35 | .hljs-section, 36 | .hljs-name, 37 | .hljs-literal, 38 | .hljs-keyword, 39 | .hljs-selector-tag, 40 | .hljs-type, 41 | .hljs-selector-id, 42 | .hljs-selector-class { 43 | font-weight: bold; 44 | color: #000080; 45 | } 46 | 47 | .hljs-attribute, 48 | .hljs-number, 49 | .hljs-regexp, 50 | .hljs-link { 51 | font-weight: bold; 52 | color: #0000ff; 53 | } 54 | 55 | .hljs-number, 56 | .hljs-regexp, 57 | .hljs-link { 58 | font-weight: normal; 59 | } 60 | 61 | .hljs-string { 62 | color: #008000; 63 | font-weight: bold; 64 | } 65 | 66 | .hljs-symbol, 67 | .hljs-bullet, 68 | .hljs-formula { 69 | color: #000; 70 | background: #d0eded; 71 | font-style: italic; 72 | } 73 | 74 | .hljs-doctag { 75 | text-decoration: underline; 76 | } 77 | 78 | .hljs-variable, 79 | .hljs-template-variable { 80 | color: #660e7a; 81 | } 82 | 83 | .hljs-addition { 84 | background: #baeeba; 85 | } 86 | 87 | .hljs-deletion { 88 | background: #ffc8bd; 89 | } 90 | 91 | .hljs-emphasis { 92 | font-style: italic; 93 | } 94 | 95 | .hljs-strong { 96 | font-weight: bold; 97 | } 98 | -------------------------------------------------------------------------------- /static/css/styles/ir-black.css: -------------------------------------------------------------------------------- 1 | /* 2 | IR_Black style (c) Vasily Mikhailitchenko 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #000; 10 | color: #f8f8f8; 11 | } 12 | 13 | .hljs-comment, 14 | .hljs-quote, 15 | .hljs-meta { 16 | color: #7c7c7c; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-selector-tag, 21 | .hljs-tag, 22 | .hljs-name { 23 | color: #96cbfe; 24 | } 25 | 26 | .hljs-attribute, 27 | .hljs-selector-id { 28 | color: #ffffb6; 29 | } 30 | 31 | .hljs-string, 32 | .hljs-selector-attr, 33 | .hljs-selector-pseudo, 34 | .hljs-addition { 35 | color: #a8ff60; 36 | } 37 | 38 | .hljs-subst { 39 | color: #daefa3; 40 | } 41 | 42 | .hljs-regexp, 43 | .hljs-link { 44 | color: #e9c062; 45 | } 46 | 47 | .hljs-title, 48 | .hljs-section, 49 | .hljs-type, 50 | .hljs-doctag { 51 | color: #ffffb6; 52 | } 53 | 54 | .hljs-symbol, 55 | .hljs-bullet, 56 | .hljs-variable, 57 | .hljs-template-variable, 58 | .hljs-literal { 59 | color: #c6c5fe; 60 | } 61 | 62 | .hljs-number, 63 | .hljs-deletion { 64 | color:#ff73fd; 65 | } 66 | 67 | .hljs-emphasis { 68 | font-style: italic; 69 | } 70 | 71 | .hljs-strong { 72 | font-weight: bold; 73 | } 74 | -------------------------------------------------------------------------------- /static/css/styles/kimbie.dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | Name: Kimbie (dark) 3 | Author: Jan T. Sott 4 | License: Creative Commons Attribution-ShareAlike 4.0 Unported License 5 | URL: https://github.com/idleberg/Kimbie-highlight.js 6 | */ 7 | 8 | /* Kimbie Comment */ 9 | .hljs-comment, 10 | .hljs-quote { 11 | color: #d6baad; 12 | } 13 | 14 | /* Kimbie Red */ 15 | .hljs-variable, 16 | .hljs-template-variable, 17 | .hljs-tag, 18 | .hljs-name, 19 | .hljs-selector-id, 20 | .hljs-selector-class, 21 | .hljs-regexp, 22 | .hljs-meta { 23 | color: #dc3958; 24 | } 25 | 26 | /* Kimbie Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion, 34 | .hljs-link { 35 | color: #f79a32; 36 | } 37 | 38 | /* Kimbie Yellow */ 39 | .hljs-title, 40 | .hljs-section, 41 | .hljs-attribute { 42 | color: #f06431; 43 | } 44 | 45 | /* Kimbie Green */ 46 | .hljs-string, 47 | .hljs-symbol, 48 | .hljs-bullet, 49 | .hljs-addition { 50 | color: #889b4a; 51 | } 52 | 53 | /* Kimbie Purple */ 54 | .hljs-keyword, 55 | .hljs-selector-tag, 56 | .hljs-function { 57 | color: #98676a; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: #221a0f; 64 | color: #d3af86; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /static/css/styles/kimbie.light.css: -------------------------------------------------------------------------------- 1 | /* 2 | Name: Kimbie (light) 3 | Author: Jan T. Sott 4 | License: Creative Commons Attribution-ShareAlike 4.0 Unported License 5 | URL: https://github.com/idleberg/Kimbie-highlight.js 6 | */ 7 | 8 | /* Kimbie Comment */ 9 | .hljs-comment, 10 | .hljs-quote { 11 | color: #a57a4c; 12 | } 13 | 14 | /* Kimbie Red */ 15 | .hljs-variable, 16 | .hljs-template-variable, 17 | .hljs-tag, 18 | .hljs-name, 19 | .hljs-selector-id, 20 | .hljs-selector-class, 21 | .hljs-regexp, 22 | .hljs-meta { 23 | color: #dc3958; 24 | } 25 | 26 | /* Kimbie Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion, 34 | .hljs-link { 35 | color: #f79a32; 36 | } 37 | 38 | /* Kimbie Yellow */ 39 | .hljs-title, 40 | .hljs-section, 41 | .hljs-attribute { 42 | color: #f06431; 43 | } 44 | 45 | /* Kimbie Green */ 46 | .hljs-string, 47 | .hljs-symbol, 48 | .hljs-bullet, 49 | .hljs-addition { 50 | color: #889b4a; 51 | } 52 | 53 | /* Kimbie Purple */ 54 | .hljs-keyword, 55 | .hljs-selector-tag, 56 | .hljs-function { 57 | color: #98676a; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: #fbebd4; 64 | color: #84613d; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /static/css/styles/magula.css: -------------------------------------------------------------------------------- 1 | /* 2 | Description: Magula style for highligh.js 3 | Author: Ruslan Keba 4 | Website: http://rukeba.com/ 5 | Version: 1.0 6 | Date: 2009-01-03 7 | Music: Aphex Twin / Xtal 8 | */ 9 | 10 | .hljs { 11 | display: block; 12 | overflow-x: auto; 13 | padding: 0.5em; 14 | background-color: #f4f4f4; 15 | } 16 | 17 | .hljs, 18 | .hljs-subst { 19 | color: black; 20 | } 21 | 22 | .hljs-string, 23 | .hljs-title, 24 | .hljs-symbol, 25 | .hljs-bullet, 26 | .hljs-attribute, 27 | .hljs-addition, 28 | .hljs-variable, 29 | .hljs-template-tag, 30 | .hljs-template-variable { 31 | color: #050; 32 | } 33 | 34 | .hljs-comment, 35 | .hljs-quote { 36 | color: #777; 37 | } 38 | 39 | .hljs-number, 40 | .hljs-regexp, 41 | .hljs-literal, 42 | .hljs-type, 43 | .hljs-link { 44 | color: #800; 45 | } 46 | 47 | .hljs-deletion, 48 | .hljs-meta { 49 | color: #00e; 50 | } 51 | 52 | .hljs-keyword, 53 | .hljs-selector-tag, 54 | .hljs-doctag, 55 | .hljs-title, 56 | .hljs-section, 57 | .hljs-built_in, 58 | .hljs-tag, 59 | .hljs-name { 60 | font-weight: bold; 61 | color: navy; 62 | } 63 | 64 | .hljs-emphasis { 65 | font-style: italic; 66 | } 67 | 68 | .hljs-strong { 69 | font-weight: bold; 70 | } 71 | -------------------------------------------------------------------------------- /static/css/styles/mono-blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | Five-color theme from a single blue hue. 3 | */ 4 | .hljs { 5 | display: block; 6 | overflow-x: auto; 7 | padding: 0.5em; 8 | background: #eaeef3; 9 | } 10 | 11 | .hljs { 12 | color: #00193a; 13 | } 14 | 15 | .hljs-keyword, 16 | .hljs-selector-tag, 17 | .hljs-title, 18 | .hljs-section, 19 | .hljs-doctag, 20 | .hljs-name, 21 | .hljs-strong { 22 | font-weight: bold; 23 | } 24 | 25 | .hljs-comment { 26 | color: #738191; 27 | } 28 | 29 | .hljs-string, 30 | .hljs-title, 31 | .hljs-section, 32 | .hljs-built_in, 33 | .hljs-literal, 34 | .hljs-type, 35 | .hljs-addition, 36 | .hljs-tag, 37 | .hljs-quote, 38 | .hljs-name, 39 | .hljs-selector-id, 40 | .hljs-selector-class { 41 | color: #0048ab; 42 | } 43 | 44 | .hljs-meta, 45 | .hljs-subst, 46 | .hljs-symbol, 47 | .hljs-regexp, 48 | .hljs-attribute, 49 | .hljs-deletion, 50 | .hljs-variable, 51 | .hljs-template-variable, 52 | .hljs-link, 53 | .hljs-bullet { 54 | color: #4c81c9; 55 | } 56 | 57 | .hljs-emphasis { 58 | font-style: italic; 59 | } 60 | -------------------------------------------------------------------------------- /static/css/styles/monokai-sublime.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-license.org/ 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #23241f; 12 | } 13 | 14 | .hljs, 15 | .hljs-tag, 16 | .hljs-subst { 17 | color: #f8f8f2; 18 | } 19 | 20 | .hljs-strong, 21 | .hljs-emphasis { 22 | color: #a8a8a2; 23 | } 24 | 25 | .hljs-bullet, 26 | .hljs-quote, 27 | .hljs-number, 28 | .hljs-regexp, 29 | .hljs-literal, 30 | .hljs-link { 31 | color: #ae81ff; 32 | } 33 | 34 | .hljs-code, 35 | .hljs-title, 36 | .hljs-section, 37 | .hljs-selector-class { 38 | color: #a6e22e; 39 | } 40 | 41 | .hljs-strong { 42 | font-weight: bold; 43 | } 44 | 45 | .hljs-emphasis { 46 | font-style: italic; 47 | } 48 | 49 | .hljs-keyword, 50 | .hljs-selector-tag, 51 | .hljs-name, 52 | .hljs-attr { 53 | color: #f92672; 54 | } 55 | 56 | .hljs-symbol, 57 | .hljs-attribute { 58 | color: #66d9ef; 59 | } 60 | 61 | .hljs-params, 62 | .hljs-class .hljs-title { 63 | color: #f8f8f2; 64 | } 65 | 66 | .hljs-string, 67 | .hljs-type, 68 | .hljs-built_in, 69 | .hljs-builtin-name, 70 | .hljs-selector-id, 71 | .hljs-selector-attr, 72 | .hljs-selector-pseudo, 73 | .hljs-addition, 74 | .hljs-variable, 75 | .hljs-template-variable { 76 | color: #e6db74; 77 | } 78 | 79 | .hljs-comment, 80 | .hljs-deletion, 81 | .hljs-meta { 82 | color: #75715e; 83 | } 84 | -------------------------------------------------------------------------------- /static/css/styles/monokai.css: -------------------------------------------------------------------------------- 1 | /* 2 | Monokai style - ported by Luigi Maselli - http://grigio.org 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #272822; color: #ddd; 10 | } 11 | 12 | .hljs-tag, 13 | .hljs-keyword, 14 | .hljs-selector-tag, 15 | .hljs-literal, 16 | .hljs-strong, 17 | .hljs-name { 18 | color: #f92672; 19 | } 20 | 21 | .hljs-code { 22 | color: #66d9ef; 23 | } 24 | 25 | .hljs-class .hljs-title { 26 | color: white; 27 | } 28 | 29 | .hljs-attribute, 30 | .hljs-symbol, 31 | .hljs-regexp, 32 | .hljs-link { 33 | color: #bf79db; 34 | } 35 | 36 | .hljs-string, 37 | .hljs-bullet, 38 | .hljs-subst, 39 | .hljs-title, 40 | .hljs-section, 41 | .hljs-emphasis, 42 | .hljs-type, 43 | .hljs-built_in, 44 | .hljs-builtin-name, 45 | .hljs-selector-attr, 46 | .hljs-selector-pseudo, 47 | .hljs-addition, 48 | .hljs-variable, 49 | .hljs-template-tag, 50 | .hljs-template-variable { 51 | color: #a6e22e; 52 | } 53 | 54 | .hljs-comment, 55 | .hljs-quote, 56 | .hljs-deletion, 57 | .hljs-meta { 58 | color: #75715e; 59 | } 60 | 61 | .hljs-keyword, 62 | .hljs-selector-tag, 63 | .hljs-literal, 64 | .hljs-doctag, 65 | .hljs-title, 66 | .hljs-section, 67 | .hljs-type, 68 | .hljs-selector-id { 69 | font-weight: bold; 70 | } 71 | -------------------------------------------------------------------------------- /static/css/styles/obsidian.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Obsidian style 3 | * ported by Alexander Marenin (http://github.com/ioncreature) 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: #282b2e; 11 | } 12 | 13 | .hljs-keyword, 14 | .hljs-selector-tag, 15 | .hljs-literal, 16 | .hljs-selector-id { 17 | color: #93c763; 18 | } 19 | 20 | .hljs-number { 21 | color: #ffcd22; 22 | } 23 | 24 | .hljs { 25 | color: #e0e2e4; 26 | } 27 | 28 | .hljs-attribute { 29 | color: #668bb0; 30 | } 31 | 32 | .hljs-code, 33 | .hljs-class .hljs-title, 34 | .hljs-section { 35 | color: white; 36 | } 37 | 38 | .hljs-regexp, 39 | .hljs-link { 40 | color: #d39745; 41 | } 42 | 43 | .hljs-meta { 44 | color: #557182; 45 | } 46 | 47 | .hljs-tag, 48 | .hljs-name, 49 | .hljs-bullet, 50 | .hljs-subst, 51 | .hljs-emphasis, 52 | .hljs-type, 53 | .hljs-built_in, 54 | .hljs-selector-attr, 55 | .hljs-selector-pseudo, 56 | .hljs-addition, 57 | .hljs-variable, 58 | .hljs-template-tag, 59 | .hljs-template-variable { 60 | color: #8cbbad; 61 | } 62 | 63 | .hljs-string, 64 | .hljs-symbol { 65 | color: #ec7600; 66 | } 67 | 68 | .hljs-comment, 69 | .hljs-quote, 70 | .hljs-deletion { 71 | color: #818e96; 72 | } 73 | 74 | .hljs-selector-class { 75 | color: #A082BD 76 | } 77 | 78 | .hljs-keyword, 79 | .hljs-selector-tag, 80 | .hljs-literal, 81 | .hljs-doctag, 82 | .hljs-title, 83 | .hljs-section, 84 | .hljs-type, 85 | .hljs-name, 86 | .hljs-strong { 87 | font-weight: bold; 88 | } 89 | -------------------------------------------------------------------------------- /static/css/styles/paraiso-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | Paraíso (dark) 3 | Created by Jan T. Sott (http://github.com/idleberg) 4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 5 | */ 6 | 7 | /* Paraíso Comment */ 8 | .hljs-comment, 9 | .hljs-quote { 10 | color: #8d8687; 11 | } 12 | 13 | /* Paraíso Red */ 14 | .hljs-variable, 15 | .hljs-template-variable, 16 | .hljs-tag, 17 | .hljs-name, 18 | .hljs-selector-id, 19 | .hljs-selector-class, 20 | .hljs-regexp, 21 | .hljs-link, 22 | .hljs-meta { 23 | color: #ef6155; 24 | } 25 | 26 | /* Paraíso Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion { 34 | color: #f99b15; 35 | } 36 | 37 | /* Paraíso Yellow */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-attribute { 41 | color: #fec418; 42 | } 43 | 44 | /* Paraíso Green */ 45 | .hljs-string, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition { 49 | color: #48b685; 50 | } 51 | 52 | /* Paraíso Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #815ba4; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: #2f1e2e; 62 | color: #a39e9b; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /static/css/styles/paraiso-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | Paraíso (light) 3 | Created by Jan T. Sott (http://github.com/idleberg) 4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 5 | */ 6 | 7 | /* Paraíso Comment */ 8 | .hljs-comment, 9 | .hljs-quote { 10 | color: #776e71; 11 | } 12 | 13 | /* Paraíso Red */ 14 | .hljs-variable, 15 | .hljs-template-variable, 16 | .hljs-tag, 17 | .hljs-name, 18 | .hljs-selector-id, 19 | .hljs-selector-class, 20 | .hljs-regexp, 21 | .hljs-link, 22 | .hljs-meta { 23 | color: #ef6155; 24 | } 25 | 26 | /* Paraíso Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion { 34 | color: #f99b15; 35 | } 36 | 37 | /* Paraíso Yellow */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-attribute { 41 | color: #fec418; 42 | } 43 | 44 | /* Paraíso Green */ 45 | .hljs-string, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition { 49 | color: #48b685; 50 | } 51 | 52 | /* Paraíso Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #815ba4; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: #e7e9db; 62 | color: #4f424c; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /static/css/styles/pojoaque.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Pojoaque Style by Jason Tate 4 | http://web-cms-designs.com/ftopict-10-pojoaque-style-for-highlight-js-code-highlighter.html 5 | Based on Solarized Style from http://ethanschoonover.com/solarized 6 | 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | color: #dccf8f; 14 | background: url(./pojoaque.jpg) repeat scroll left top #181914; 15 | } 16 | 17 | .hljs-comment, 18 | .hljs-quote { 19 | color: #586e75; 20 | font-style: italic; 21 | } 22 | 23 | .hljs-keyword, 24 | .hljs-selector-tag, 25 | .hljs-literal, 26 | .hljs-addition { 27 | color: #b64926; 28 | } 29 | 30 | .hljs-number, 31 | .hljs-string, 32 | .hljs-doctag, 33 | .hljs-regexp { 34 | color: #468966; 35 | } 36 | 37 | .hljs-title, 38 | .hljs-section, 39 | .hljs-built_in, 40 | .hljs-name { 41 | color: #ffb03b; 42 | } 43 | 44 | .hljs-variable, 45 | .hljs-template-variable, 46 | .hljs-class .hljs-title, 47 | .hljs-type, 48 | .hljs-tag { 49 | color: #b58900; 50 | } 51 | 52 | .hljs-attribute { 53 | color: #b89859; 54 | } 55 | 56 | .hljs-symbol, 57 | .hljs-bullet, 58 | .hljs-link, 59 | .hljs-subst, 60 | .hljs-meta { 61 | color: #cb4b16; 62 | } 63 | 64 | .hljs-deletion { 65 | color: #dc322f; 66 | } 67 | 68 | .hljs-selector-id, 69 | .hljs-selector-class { 70 | color: #d3a60c; 71 | } 72 | 73 | .hljs-formula { 74 | background: #073642; 75 | } 76 | 77 | .hljs-emphasis { 78 | font-style: italic; 79 | } 80 | 81 | .hljs-strong { 82 | font-weight: bold; 83 | } 84 | -------------------------------------------------------------------------------- /static/css/styles/pojoaque.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/css/styles/pojoaque.jpg -------------------------------------------------------------------------------- /static/css/styles/qtcreator_dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Qt Creator dark color scheme 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #000000; 13 | } 14 | 15 | .hljs, 16 | .hljs-subst, 17 | .hljs-tag, 18 | .hljs-title { 19 | color: #aaaaaa; 20 | } 21 | 22 | .hljs-strong, 23 | .hljs-emphasis { 24 | color: #a8a8a2; 25 | } 26 | 27 | .hljs-bullet, 28 | .hljs-quote, 29 | .hljs-number, 30 | .hljs-regexp, 31 | .hljs-literal { 32 | color: #ff55ff; 33 | } 34 | 35 | .hljs-code 36 | .hljs-selector-class { 37 | color: #aaaaff; 38 | } 39 | 40 | .hljs-emphasis, 41 | .hljs-stronge, 42 | .hljs-type { 43 | font-style: italic; 44 | } 45 | 46 | .hljs-keyword, 47 | .hljs-selector-tag, 48 | .hljs-function, 49 | .hljs-section, 50 | .hljs-symbol, 51 | .hljs-name { 52 | color: #ffff55; 53 | } 54 | 55 | .hljs-attribute { 56 | color: #ff5555; 57 | } 58 | 59 | .hljs-variable, 60 | .hljs-params, 61 | .hljs-class .hljs-title { 62 | color: #8888ff; 63 | } 64 | 65 | .hljs-string, 66 | .hljs-selector-id, 67 | .hljs-selector-attr, 68 | .hljs-selector-pseudo, 69 | .hljs-type, 70 | .hljs-built_in, 71 | .hljs-builtin-name, 72 | .hljs-template-tag, 73 | .hljs-template-variable, 74 | .hljs-addition, 75 | .hljs-link { 76 | color: #ff55ff; 77 | } 78 | 79 | .hljs-comment, 80 | .hljs-meta, 81 | .hljs-deletion { 82 | color: #55ffff; 83 | } 84 | -------------------------------------------------------------------------------- /static/css/styles/qtcreator_light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Qt Creator light color scheme 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #ffffff; 13 | } 14 | 15 | .hljs, 16 | .hljs-subst, 17 | .hljs-tag, 18 | .hljs-title { 19 | color: #000000; 20 | } 21 | 22 | .hljs-strong, 23 | .hljs-emphasis { 24 | color: #000000; 25 | } 26 | 27 | .hljs-bullet, 28 | .hljs-quote, 29 | .hljs-number, 30 | .hljs-regexp, 31 | .hljs-literal { 32 | color: #000080; 33 | } 34 | 35 | .hljs-code 36 | .hljs-selector-class { 37 | color: #800080; 38 | } 39 | 40 | .hljs-emphasis, 41 | .hljs-stronge, 42 | .hljs-type { 43 | font-style: italic; 44 | } 45 | 46 | .hljs-keyword, 47 | .hljs-selector-tag, 48 | .hljs-function, 49 | .hljs-section, 50 | .hljs-symbol, 51 | .hljs-name { 52 | color: #808000; 53 | } 54 | 55 | .hljs-attribute { 56 | color: #800000; 57 | } 58 | 59 | .hljs-variable, 60 | .hljs-params, 61 | .hljs-class .hljs-title { 62 | color: #0055AF; 63 | } 64 | 65 | .hljs-string, 66 | .hljs-selector-id, 67 | .hljs-selector-attr, 68 | .hljs-selector-pseudo, 69 | .hljs-type, 70 | .hljs-built_in, 71 | .hljs-builtin-name, 72 | .hljs-template-tag, 73 | .hljs-template-variable, 74 | .hljs-addition, 75 | .hljs-link { 76 | color: #008000; 77 | } 78 | 79 | .hljs-comment, 80 | .hljs-meta, 81 | .hljs-deletion { 82 | color: #008000; 83 | } 84 | -------------------------------------------------------------------------------- /static/css/styles/railscasts.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Railscasts-like style (c) Visoft, Inc. (Damien White) 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #232323; 12 | color: #e6e1dc; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #bc9458; 18 | font-style: italic; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag { 23 | color: #c26230; 24 | } 25 | 26 | .hljs-string, 27 | .hljs-number, 28 | .hljs-regexp, 29 | .hljs-variable, 30 | .hljs-template-variable { 31 | color: #a5c261; 32 | } 33 | 34 | .hljs-subst { 35 | color: #519f50; 36 | } 37 | 38 | .hljs-tag, 39 | .hljs-name { 40 | color: #e8bf6a; 41 | } 42 | 43 | .hljs-type { 44 | color: #da4939; 45 | } 46 | 47 | 48 | .hljs-symbol, 49 | .hljs-bullet, 50 | .hljs-built_in, 51 | .hljs-builtin-name, 52 | .hljs-attr, 53 | .hljs-link { 54 | color: #6d9cbe; 55 | } 56 | 57 | .hljs-params { 58 | color: #d0d0ff; 59 | } 60 | 61 | .hljs-attribute { 62 | color: #cda869; 63 | } 64 | 65 | .hljs-meta { 66 | color: #9b859d; 67 | } 68 | 69 | .hljs-title, 70 | .hljs-section { 71 | color: #ffc66d; 72 | } 73 | 74 | .hljs-addition { 75 | background-color: #144212; 76 | color: #e6e1dc; 77 | display: inline-block; 78 | width: 100%; 79 | } 80 | 81 | .hljs-deletion { 82 | background-color: #600; 83 | color: #e6e1dc; 84 | display: inline-block; 85 | width: 100%; 86 | } 87 | 88 | .hljs-selector-class { 89 | color: #9b703f; 90 | } 91 | 92 | .hljs-selector-id { 93 | color: #8b98ab; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | 104 | .hljs-link { 105 | text-decoration: underline; 106 | } 107 | -------------------------------------------------------------------------------- /static/css/styles/rainbow.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Style with support for rainbow parens 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #474949; 12 | color: #d1d9e1; 13 | } 14 | 15 | 16 | .hljs-comment, 17 | .hljs-quote { 18 | color: #969896; 19 | font-style: italic; 20 | } 21 | 22 | .hljs-keyword, 23 | .hljs-selector-tag, 24 | .hljs-literal, 25 | .hljs-type, 26 | .hljs-addition { 27 | color: #cc99cc; 28 | } 29 | 30 | .hljs-number, 31 | .hljs-selector-attr, 32 | .hljs-selector-pseudo { 33 | color: #f99157; 34 | } 35 | 36 | .hljs-string, 37 | .hljs-doctag, 38 | .hljs-regexp { 39 | color: #8abeb7; 40 | } 41 | 42 | .hljs-title, 43 | .hljs-name, 44 | .hljs-section, 45 | .hljs-built_in { 46 | color: #b5bd68; 47 | } 48 | 49 | .hljs-variable, 50 | .hljs-template-variable, 51 | .hljs-selector-id, 52 | .hljs-class .hljs-title { 53 | color: #ffcc66; 54 | } 55 | 56 | .hljs-section, 57 | .hljs-name, 58 | .hljs-strong { 59 | font-weight: bold; 60 | } 61 | 62 | .hljs-symbol, 63 | .hljs-bullet, 64 | .hljs-subst, 65 | .hljs-meta, 66 | .hljs-link { 67 | color: #f99157; 68 | } 69 | 70 | .hljs-deletion { 71 | color: #dc322f; 72 | } 73 | 74 | .hljs-formula { 75 | background: #eee8d5; 76 | } 77 | 78 | .hljs-attr, 79 | .hljs-attribute { 80 | color: #81a2be; 81 | } 82 | 83 | .hljs-emphasis { 84 | font-style: italic; 85 | } 86 | -------------------------------------------------------------------------------- /static/css/styles/school-book.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | School Book style from goldblog.com.ua (c) Zaripov Yura 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 15px 0.5em 0.5em 30px; 11 | font-size: 11px; 12 | line-height:16px; 13 | } 14 | 15 | pre{ 16 | background:#f6f6ae url(./school-book.png); 17 | border-top: solid 2px #d2e8b9; 18 | border-bottom: solid 1px #d2e8b9; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-literal { 24 | color:#005599; 25 | font-weight:bold; 26 | } 27 | 28 | .hljs, 29 | .hljs-subst { 30 | color: #3e5915; 31 | } 32 | 33 | .hljs-string, 34 | .hljs-title, 35 | .hljs-section, 36 | .hljs-type, 37 | .hljs-symbol, 38 | .hljs-bullet, 39 | .hljs-attribute, 40 | .hljs-built_in, 41 | .hljs-builtin-name, 42 | .hljs-addition, 43 | .hljs-variable, 44 | .hljs-template-tag, 45 | .hljs-template-variable, 46 | .hljs-link { 47 | color: #2c009f; 48 | } 49 | 50 | .hljs-comment, 51 | .hljs-quote, 52 | .hljs-deletion, 53 | .hljs-meta { 54 | color: #e60415; 55 | } 56 | 57 | .hljs-keyword, 58 | .hljs-selector-tag, 59 | .hljs-literal, 60 | .hljs-doctag, 61 | .hljs-title, 62 | .hljs-section, 63 | .hljs-type, 64 | .hljs-name, 65 | .hljs-selector-id, 66 | .hljs-strong { 67 | font-weight: bold; 68 | } 69 | 70 | .hljs-emphasis { 71 | font-style: italic; 72 | } 73 | -------------------------------------------------------------------------------- /static/css/styles/school-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/css/styles/school-book.png -------------------------------------------------------------------------------- /static/css/styles/solarized-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #002b36; 12 | color: #839496; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #586e75; 18 | } 19 | 20 | /* Solarized Green */ 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-addition { 24 | color: #859900; 25 | } 26 | 27 | /* Solarized Cyan */ 28 | .hljs-number, 29 | .hljs-string, 30 | .hljs-meta .hljs-meta-string, 31 | .hljs-literal, 32 | .hljs-doctag, 33 | .hljs-regexp { 34 | color: #2aa198; 35 | } 36 | 37 | /* Solarized Blue */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-name, 41 | .hljs-selector-id, 42 | .hljs-selector-class { 43 | color: #268bd2; 44 | } 45 | 46 | /* Solarized Yellow */ 47 | .hljs-attribute, 48 | .hljs-attr, 49 | .hljs-variable, 50 | .hljs-template-variable, 51 | .hljs-class .hljs-title, 52 | .hljs-type { 53 | color: #b58900; 54 | } 55 | 56 | /* Solarized Orange */ 57 | .hljs-symbol, 58 | .hljs-bullet, 59 | .hljs-subst, 60 | .hljs-meta, 61 | .hljs-meta .hljs-keyword, 62 | .hljs-selector-attr, 63 | .hljs-selector-pseudo, 64 | .hljs-link { 65 | color: #cb4b16; 66 | } 67 | 68 | /* Solarized Red */ 69 | .hljs-built_in, 70 | .hljs-deletion { 71 | color: #dc322f; 72 | } 73 | 74 | .hljs-formula { 75 | background: #073642; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /static/css/styles/solarized-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #fdf6e3; 12 | color: #657b83; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #93a1a1; 18 | } 19 | 20 | /* Solarized Green */ 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-addition { 24 | color: #859900; 25 | } 26 | 27 | /* Solarized Cyan */ 28 | .hljs-number, 29 | .hljs-string, 30 | .hljs-meta .hljs-meta-string, 31 | .hljs-literal, 32 | .hljs-doctag, 33 | .hljs-regexp { 34 | color: #2aa198; 35 | } 36 | 37 | /* Solarized Blue */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-name, 41 | .hljs-selector-id, 42 | .hljs-selector-class { 43 | color: #268bd2; 44 | } 45 | 46 | /* Solarized Yellow */ 47 | .hljs-attribute, 48 | .hljs-attr, 49 | .hljs-variable, 50 | .hljs-template-variable, 51 | .hljs-class .hljs-title, 52 | .hljs-type { 53 | color: #b58900; 54 | } 55 | 56 | /* Solarized Orange */ 57 | .hljs-symbol, 58 | .hljs-bullet, 59 | .hljs-subst, 60 | .hljs-meta, 61 | .hljs-meta .hljs-keyword, 62 | .hljs-selector-attr, 63 | .hljs-selector-pseudo, 64 | .hljs-link { 65 | color: #cb4b16; 66 | } 67 | 68 | /* Solarized Red */ 69 | .hljs-built_in, 70 | .hljs-deletion { 71 | color: #dc322f; 72 | } 73 | 74 | .hljs-formula { 75 | background: #eee8d5; 76 | } 77 | 78 | .hljs-emphasis { 79 | font-style: italic; 80 | } 81 | 82 | .hljs-strong { 83 | font-weight: bold; 84 | } 85 | -------------------------------------------------------------------------------- /static/css/styles/sunburst.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Sunburst-like style (c) Vasily Polovnyov 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #000; 12 | color: #f8f8f8; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #aeaeae; 18 | font-style: italic; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-type { 24 | color: #e28964; 25 | } 26 | 27 | .hljs-string { 28 | color: #65b042; 29 | } 30 | 31 | .hljs-subst { 32 | color: #daefa3; 33 | } 34 | 35 | .hljs-regexp, 36 | .hljs-link { 37 | color: #e9c062; 38 | } 39 | 40 | .hljs-title, 41 | .hljs-section, 42 | .hljs-tag, 43 | .hljs-name { 44 | color: #89bdff; 45 | } 46 | 47 | .hljs-class .hljs-title, 48 | .hljs-doctag { 49 | text-decoration: underline; 50 | } 51 | 52 | .hljs-symbol, 53 | .hljs-bullet, 54 | .hljs-number { 55 | color: #3387cc; 56 | } 57 | 58 | .hljs-params, 59 | .hljs-variable, 60 | .hljs-template-variable { 61 | color: #3e87e3; 62 | } 63 | 64 | .hljs-attribute { 65 | color: #cda869; 66 | } 67 | 68 | .hljs-meta { 69 | color: #8996a8; 70 | } 71 | 72 | .hljs-formula { 73 | background-color: #0e2231; 74 | color: #f8f8f8; 75 | font-style: italic; 76 | } 77 | 78 | .hljs-addition { 79 | background-color: #253b22; 80 | color: #f8f8f8; 81 | } 82 | 83 | .hljs-deletion { 84 | background-color: #420e09; 85 | color: #f8f8f8; 86 | } 87 | 88 | .hljs-selector-class { 89 | color: #9b703f; 90 | } 91 | 92 | .hljs-selector-id { 93 | color: #8b98ab; 94 | } 95 | 96 | .hljs-emphasis { 97 | font-style: italic; 98 | } 99 | 100 | .hljs-strong { 101 | font-weight: bold; 102 | } 103 | -------------------------------------------------------------------------------- /static/css/styles/tomorrow-night-blue.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Blue Theme */ 2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 5 | 6 | /* Tomorrow Comment */ 7 | .hljs-comment, 8 | .hljs-quote { 9 | color: #7285b7; 10 | } 11 | 12 | /* Tomorrow Red */ 13 | .hljs-variable, 14 | .hljs-template-variable, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-selector-id, 18 | .hljs-selector-class, 19 | .hljs-regexp, 20 | .hljs-deletion { 21 | color: #ff9da4; 22 | } 23 | 24 | /* Tomorrow Orange */ 25 | .hljs-number, 26 | .hljs-built_in, 27 | .hljs-builtin-name, 28 | .hljs-literal, 29 | .hljs-type, 30 | .hljs-params, 31 | .hljs-meta, 32 | .hljs-link { 33 | color: #ffc58f; 34 | } 35 | 36 | /* Tomorrow Yellow */ 37 | .hljs-attribute { 38 | color: #ffeead; 39 | } 40 | 41 | /* Tomorrow Green */ 42 | .hljs-string, 43 | .hljs-symbol, 44 | .hljs-bullet, 45 | .hljs-addition { 46 | color: #d1f1a9; 47 | } 48 | 49 | /* Tomorrow Blue */ 50 | .hljs-title, 51 | .hljs-section { 52 | color: #bbdaff; 53 | } 54 | 55 | /* Tomorrow Purple */ 56 | .hljs-keyword, 57 | .hljs-selector-tag { 58 | color: #ebbbff; 59 | } 60 | 61 | .hljs { 62 | display: block; 63 | overflow-x: auto; 64 | background: #002451; 65 | color: white; 66 | padding: 0.5em; 67 | } 68 | 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | 73 | .hljs-strong { 74 | font-weight: bold; 75 | } 76 | -------------------------------------------------------------------------------- /static/css/styles/tomorrow-night-bright.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Bright Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 4 | 5 | /* Tomorrow Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #969896; 9 | } 10 | 11 | /* Tomorrow Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-tag, 15 | .hljs-name, 16 | .hljs-selector-id, 17 | .hljs-selector-class, 18 | .hljs-regexp, 19 | .hljs-deletion { 20 | color: #d54e53; 21 | } 22 | 23 | /* Tomorrow Orange */ 24 | .hljs-number, 25 | .hljs-built_in, 26 | .hljs-builtin-name, 27 | .hljs-literal, 28 | .hljs-type, 29 | .hljs-params, 30 | .hljs-meta, 31 | .hljs-link { 32 | color: #e78c45; 33 | } 34 | 35 | /* Tomorrow Yellow */ 36 | .hljs-attribute { 37 | color: #e7c547; 38 | } 39 | 40 | /* Tomorrow Green */ 41 | .hljs-string, 42 | .hljs-symbol, 43 | .hljs-bullet, 44 | .hljs-addition { 45 | color: #b9ca4a; 46 | } 47 | 48 | /* Tomorrow Blue */ 49 | .hljs-title, 50 | .hljs-section { 51 | color: #7aa6da; 52 | } 53 | 54 | /* Tomorrow Purple */ 55 | .hljs-keyword, 56 | .hljs-selector-tag { 57 | color: #c397d8; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: black; 64 | color: #eaeaea; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /static/css/styles/tomorrow-night-eighties.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Eighties Theme */ 2 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 3 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 4 | 5 | /* Tomorrow Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #999999; 9 | } 10 | 11 | /* Tomorrow Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-tag, 15 | .hljs-name, 16 | .hljs-selector-id, 17 | .hljs-selector-class, 18 | .hljs-regexp, 19 | .hljs-deletion { 20 | color: #f2777a; 21 | } 22 | 23 | /* Tomorrow Orange */ 24 | .hljs-number, 25 | .hljs-built_in, 26 | .hljs-builtin-name, 27 | .hljs-literal, 28 | .hljs-type, 29 | .hljs-params, 30 | .hljs-meta, 31 | .hljs-link { 32 | color: #f99157; 33 | } 34 | 35 | /* Tomorrow Yellow */ 36 | .hljs-attribute { 37 | color: #ffcc66; 38 | } 39 | 40 | /* Tomorrow Green */ 41 | .hljs-string, 42 | .hljs-symbol, 43 | .hljs-bullet, 44 | .hljs-addition { 45 | color: #99cc99; 46 | } 47 | 48 | /* Tomorrow Blue */ 49 | .hljs-title, 50 | .hljs-section { 51 | color: #6699cc; 52 | } 53 | 54 | /* Tomorrow Purple */ 55 | .hljs-keyword, 56 | .hljs-selector-tag { 57 | color: #cc99cc; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: #2d2d2d; 64 | color: #cccccc; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /static/css/styles/tomorrow-night.css: -------------------------------------------------------------------------------- 1 | /* Tomorrow Night Theme */ 2 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 3 | /* Original theme - https://github.com/chriskempson/tomorrow-theme */ 4 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 5 | 6 | /* Tomorrow Comment */ 7 | .hljs-comment, 8 | .hljs-quote { 9 | color: #969896; 10 | } 11 | 12 | /* Tomorrow Red */ 13 | .hljs-variable, 14 | .hljs-template-variable, 15 | .hljs-tag, 16 | .hljs-name, 17 | .hljs-selector-id, 18 | .hljs-selector-class, 19 | .hljs-regexp, 20 | .hljs-deletion { 21 | color: #cc6666; 22 | } 23 | 24 | /* Tomorrow Orange */ 25 | .hljs-number, 26 | .hljs-built_in, 27 | .hljs-builtin-name, 28 | .hljs-literal, 29 | .hljs-type, 30 | .hljs-params, 31 | .hljs-meta, 32 | .hljs-link { 33 | color: #de935f; 34 | } 35 | 36 | /* Tomorrow Yellow */ 37 | .hljs-attribute { 38 | color: #f0c674; 39 | } 40 | 41 | /* Tomorrow Green */ 42 | .hljs-string, 43 | .hljs-symbol, 44 | .hljs-bullet, 45 | .hljs-addition { 46 | color: #b5bd68; 47 | } 48 | 49 | /* Tomorrow Blue */ 50 | .hljs-title, 51 | .hljs-section { 52 | color: #81a2be; 53 | } 54 | 55 | /* Tomorrow Purple */ 56 | .hljs-keyword, 57 | .hljs-selector-tag { 58 | color: #b294bb; 59 | } 60 | 61 | .hljs { 62 | display: block; 63 | overflow-x: auto; 64 | background: #1d1f21; 65 | color: #c5c8c6; 66 | padding: 0.5em; 67 | } 68 | 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | 73 | .hljs-strong { 74 | font-weight: bold; 75 | } 76 | -------------------------------------------------------------------------------- /static/css/styles/tomorrow.css: -------------------------------------------------------------------------------- 1 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 2 | 3 | /* Tomorrow Comment */ 4 | .hljs-comment, 5 | .hljs-quote { 6 | color: #8e908c; 7 | } 8 | 9 | /* Tomorrow Red */ 10 | .hljs-variable, 11 | .hljs-template-variable, 12 | .hljs-tag, 13 | .hljs-name, 14 | .hljs-selector-id, 15 | .hljs-selector-class, 16 | .hljs-regexp, 17 | .hljs-deletion { 18 | color: #c82829; 19 | } 20 | 21 | /* Tomorrow Orange */ 22 | .hljs-number, 23 | .hljs-built_in, 24 | .hljs-builtin-name, 25 | .hljs-literal, 26 | .hljs-type, 27 | .hljs-params, 28 | .hljs-meta, 29 | .hljs-link { 30 | color: #f5871f; 31 | } 32 | 33 | /* Tomorrow Yellow */ 34 | .hljs-attribute { 35 | color: #eab700; 36 | } 37 | 38 | /* Tomorrow Green */ 39 | .hljs-string, 40 | .hljs-symbol, 41 | .hljs-bullet, 42 | .hljs-addition { 43 | color: #718c00; 44 | } 45 | 46 | /* Tomorrow Blue */ 47 | .hljs-title, 48 | .hljs-section { 49 | color: #4271ae; 50 | } 51 | 52 | /* Tomorrow Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #8959a8; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: white; 62 | color: #4d4d4c; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /static/css/styles/vs.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Visual Studio-like style based on original C# coloring by Jason Diamond 4 | 5 | */ 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: white; 11 | color: black; 12 | } 13 | 14 | .hljs-comment, 15 | .hljs-quote, 16 | .hljs-variable { 17 | color: #008000; 18 | } 19 | 20 | .hljs-keyword, 21 | .hljs-selector-tag, 22 | .hljs-built_in, 23 | .hljs-name, 24 | .hljs-tag { 25 | color: #00f; 26 | } 27 | 28 | .hljs-string, 29 | .hljs-title, 30 | .hljs-section, 31 | .hljs-attribute, 32 | .hljs-literal, 33 | .hljs-template-tag, 34 | .hljs-template-variable, 35 | .hljs-type, 36 | .hljs-addition { 37 | color: #a31515; 38 | } 39 | 40 | .hljs-deletion, 41 | .hljs-selector-attr, 42 | .hljs-selector-pseudo, 43 | .hljs-meta { 44 | color: #2b91af; 45 | } 46 | 47 | .hljs-doctag { 48 | color: #808080; 49 | } 50 | 51 | .hljs-attr { 52 | color: #f00; 53 | } 54 | 55 | .hljs-symbol, 56 | .hljs-bullet, 57 | .hljs-link { 58 | color: #00b0e8; 59 | } 60 | 61 | 62 | .hljs-emphasis { 63 | font-style: italic; 64 | } 65 | 66 | .hljs-strong { 67 | font-weight: bold; 68 | } 69 | -------------------------------------------------------------------------------- /static/css/styles/xcode.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | XCode style (c) Angel Garcia 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #fff; 12 | color: black; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #006a00; 18 | } 19 | 20 | .hljs-keyword, 21 | .hljs-selector-tag, 22 | .hljs-literal { 23 | color: #aa0d91; 24 | } 25 | 26 | .hljs-name { 27 | color: #008; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable { 32 | color: #660; 33 | } 34 | 35 | .hljs-string { 36 | color: #c41a16; 37 | } 38 | 39 | .hljs-regexp, 40 | .hljs-link { 41 | color: #080; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-tag, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-number, 49 | .hljs-meta { 50 | color: #1c00cf; 51 | } 52 | 53 | .hljs-section, 54 | .hljs-class .hljs-title, 55 | .hljs-type, 56 | .hljs-attr, 57 | .hljs-built_in, 58 | .hljs-builtin-name, 59 | .hljs-params { 60 | color: #5c2699; 61 | } 62 | 63 | .hljs-attribute, 64 | .hljs-subst { 65 | color: #000; 66 | } 67 | 68 | .hljs-formula { 69 | background-color: #eee; 70 | font-style: italic; 71 | } 72 | 73 | .hljs-addition { 74 | background-color: #baeeba; 75 | } 76 | 77 | .hljs-deletion { 78 | background-color: #ffc8bd; 79 | } 80 | 81 | .hljs-selector-id, 82 | .hljs-selector-class { 83 | color: #9b703f; 84 | } 85 | 86 | .hljs-doctag, 87 | .hljs-strong { 88 | font-weight: bold; 89 | } 90 | 91 | .hljs-emphasis { 92 | font-style: italic; 93 | } 94 | -------------------------------------------------------------------------------- /static/css/styles/zenburn.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | } 15 | 16 | .hljs-keyword, 17 | .hljs-selector-tag, 18 | .hljs-tag { 19 | color: #e3ceab; 20 | } 21 | 22 | .hljs-template-tag { 23 | color: #dcdcdc; 24 | } 25 | 26 | .hljs-number { 27 | color: #8cd0d3; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-attribute { 33 | color: #efdcbc; 34 | } 35 | 36 | .hljs-literal { 37 | color: #efefaf; 38 | } 39 | 40 | .hljs-subst { 41 | color: #8f8f8f; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-name, 46 | .hljs-selector-id, 47 | .hljs-selector-class, 48 | .hljs-section, 49 | .hljs-type { 50 | color: #efef8f; 51 | } 52 | 53 | .hljs-symbol, 54 | .hljs-bullet, 55 | .hljs-link { 56 | color: #dca3a3; 57 | } 58 | 59 | .hljs-deletion, 60 | .hljs-string, 61 | .hljs-built_in, 62 | .hljs-builtin-name { 63 | color: #cc9393; 64 | } 65 | 66 | .hljs-addition, 67 | .hljs-comment, 68 | .hljs-quote, 69 | .hljs-meta { 70 | color: #7f9f7f; 71 | } 72 | 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | -------------------------------------------------------------------------------- /static/img/alipay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/alipay.png -------------------------------------------------------------------------------- /static/img/beego.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/beego.png -------------------------------------------------------------------------------- /static/img/beego_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/beego_logo.png -------------------------------------------------------------------------------- /static/img/beego_purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/beego_purple.png -------------------------------------------------------------------------------- /static/img/brands/17173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/17173.png -------------------------------------------------------------------------------- /static/img/brands/360.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/360.png -------------------------------------------------------------------------------- /static/img/brands/ardanstudios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/ardanstudios.png -------------------------------------------------------------------------------- /static/img/brands/bmob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/bmob.png -------------------------------------------------------------------------------- /static/img/brands/huawei.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/huawei.png -------------------------------------------------------------------------------- /static/img/brands/jd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/jd.png -------------------------------------------------------------------------------- /static/img/brands/lianzong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/lianzong.png -------------------------------------------------------------------------------- /static/img/brands/meituan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/meituan.png -------------------------------------------------------------------------------- /static/img/brands/oupeng.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/oupeng.png -------------------------------------------------------------------------------- /static/img/brands/snda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/snda.png -------------------------------------------------------------------------------- /static/img/brands/taobao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/taobao.png -------------------------------------------------------------------------------- /static/img/brands/tencent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/tencent.png -------------------------------------------------------------------------------- /static/img/brands/tudou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/tudou.png -------------------------------------------------------------------------------- /static/img/brands/weibo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/weibo.png -------------------------------------------------------------------------------- /static/img/brands/weico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/weico.png -------------------------------------------------------------------------------- /static/img/brands/wepiao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/wepiao.png -------------------------------------------------------------------------------- /static/img/brands/youdao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/youdao.png -------------------------------------------------------------------------------- /static/img/brands/zalora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/brands/zalora.png -------------------------------------------------------------------------------- /static/img/community/IRC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/community/IRC.png -------------------------------------------------------------------------------- /static/img/community/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/community/github.png -------------------------------------------------------------------------------- /static/img/community/google-groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/community/google-groups.png -------------------------------------------------------------------------------- /static/img/community/stackoverflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/community/stackoverflow.png -------------------------------------------------------------------------------- /static/img/community/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/community/twitter.png -------------------------------------------------------------------------------- /static/img/feature/f-icon-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/feature/f-icon-01.png -------------------------------------------------------------------------------- /static/img/feature/f-icon-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/feature/f-icon-02.png -------------------------------------------------------------------------------- /static/img/feature/f-icon-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/feature/f-icon-03.png -------------------------------------------------------------------------------- /static/img/feature/f-icon-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/feature/f-icon-04.png -------------------------------------------------------------------------------- /static/img/feature/f-placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/feature/f-placeholder.png -------------------------------------------------------------------------------- /static/img/products/sellgood/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/products/sellgood/thumb.jpg -------------------------------------------------------------------------------- /static/img/products/teamkey/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/products/teamkey/thumb.png -------------------------------------------------------------------------------- /static/img/products/webcron/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/beego/website/3ff8be43a04c5637cffb890fe7db887a5ce94fc6/static/img/products/webcron/thumb.png -------------------------------------------------------------------------------- /static/js/jquery.cookie.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery Cookie Plugin v1.4.1 3 | * https://github.com/carhartl/jquery-cookie 4 | * 5 | * Copyright 2006, 2014 Klaus Hartl 6 | * Released under the MIT license 7 | */ 8 | (function (factory) { 9 | if (typeof define === 'function' && define.amd) { 10 | // AMD (Register as an anonymous module) 11 | define(['jquery'], factory); 12 | } else if (typeof exports === 'object') { 13 | // Node/CommonJS 14 | module.exports = factory(require('jquery')); 15 | } else { 16 | // Browser globals 17 | factory(jQuery); 18 | } 19 | }(function ($) { 20 | 21 | var pluses = /\+/g; 22 | 23 | function encode(s) { 24 | return config.raw ? s : encodeURIComponent(s); 25 | } 26 | 27 | function decode(s) { 28 | return config.raw ? s : decodeURIComponent(s); 29 | } 30 | 31 | function stringifyCookieValue(value) { 32 | return encode(config.json ? JSON.stringify(value) : String(value)); 33 | } 34 | 35 | function parseCookieValue(s) { 36 | if (s.indexOf('"') === 0) { 37 | // This is a quoted cookie as according to RFC2068, unescape... 38 | s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); 39 | } 40 | 41 | try { 42 | // Replace server-side written pluses with spaces. 43 | // If we can't decode the cookie, ignore it, it's unusable. 44 | // If we can't parse the cookie, ignore it, it's unusable. 45 | s = decodeURIComponent(s.replace(pluses, ' ')); 46 | return config.json ? JSON.parse(s) : s; 47 | } catch(e) {} 48 | } 49 | 50 | function read(s, converter) { 51 | var value = config.raw ? s : parseCookieValue(s); 52 | return $.isFunction(converter) ? converter(value) : value; 53 | } 54 | 55 | var config = $.cookie = function (key, value, options) { 56 | 57 | // Write 58 | 59 | if (arguments.length > 1 && !$.isFunction(value)) { 60 | options = $.extend({}, config.defaults, options); 61 | 62 | if (typeof options.expires === 'number') { 63 | var days = options.expires, t = options.expires = new Date(); 64 | t.setMilliseconds(t.getMilliseconds() + days * 864e+5); 65 | } 66 | 67 | return (document.cookie = [ 68 | encode(key), '=', stringifyCookieValue(value), 69 | options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE 70 | options.path ? '; path=' + options.path : '', 71 | options.domain ? '; domain=' + options.domain : '', 72 | options.secure ? '; secure' : '' 73 | ].join('')); 74 | } 75 | 76 | // Read 77 | 78 | var result = key ? undefined : {}, 79 | // To prevent the for loop in the first place assign an empty array 80 | // in case there are no cookies at all. Also prevents odd result when 81 | // calling $.cookie(). 82 | cookies = document.cookie ? document.cookie.split('; ') : [], 83 | i = 0, 84 | l = cookies.length; 85 | 86 | for (; i < l; i++) { 87 | var parts = cookies[i].split('='), 88 | name = decode(parts.shift()), 89 | cookie = parts.join('='); 90 | 91 | if (key === name) { 92 | // If second argument (value) is a function it's a converter... 93 | result = read(cookie, value); 94 | break; 95 | } 96 | 97 | // Prevent storing a cookie that we couldn't decode. 98 | if (!key && (cookie = read(cookie)) !== undefined) { 99 | result[name] = cookie; 100 | } 101 | } 102 | 103 | return result; 104 | }; 105 | 106 | config.defaults = {}; 107 | 108 | $.removeCookie = function (key, options) { 109 | // Must not alter options, thus extending a fresh object... 110 | $.cookie(key, '', $.extend({}, options, { expires: -1 })); 111 | return !$.cookie(key); 112 | }; 113 | 114 | })); 115 | -------------------------------------------------------------------------------- /static/js/main.js: -------------------------------------------------------------------------------- 1 | (function($){ 2 | $(document).on('click', '.lang-changed', function(){ 3 | var $e = $(this); 4 | var lang = $e.data('lang'); 5 | var v = $.cookie('JsStorage'); 6 | $.cookie('lang', lang, {path: '/', expires: 365}); 7 | window.location.reload(); 8 | }); 9 | })(jQuery); 10 | -------------------------------------------------------------------------------- /tests/default_test.go: -------------------------------------------------------------------------------- 1 | package test 2 | 3 | import ( 4 | _ "github.com/beego/website/routers" 5 | "net/http" 6 | "net/http/httptest" 7 | "path/filepath" 8 | "runtime" 9 | "testing" 10 | 11 | "github.com/astaxie/beego" 12 | . "github.com/smartystreets/goconvey/convey" 13 | ) 14 | 15 | func init() { 16 | _, file, _, _ := runtime.Caller(1) 17 | apppath, _ := filepath.Abs(filepath.Dir(filepath.Join(file, ".."+string(filepath.Separator)))) 18 | beego.TestBeegoInit(apppath) 19 | } 20 | 21 | // TestMain is a sample to run an endpoint test 22 | func TestMain(t *testing.T) { 23 | r, _ := http.NewRequest("GET", "/", nil) 24 | w := httptest.NewRecorder() 25 | beego.BeeApp.Handlers.ServeHTTP(w, r) 26 | 27 | beego.Trace("testing", "TestMain", "Code[%d]\n%s", w.Code, w.Body.String()) 28 | 29 | Convey("Subject: Test Station Endpoint\n", t, func() { 30 | Convey("Status Code Should Be 200", func() { 31 | So(w.Code, ShouldEqual, 200) 32 | }) 33 | Convey("The Result Should Not Be Empty", func() { 34 | So(w.Body.Len(), ShouldBeGreaterThan, 0) 35 | }) 36 | }) 37 | } 38 | -------------------------------------------------------------------------------- /views/about.html: -------------------------------------------------------------------------------- 1 | {{template "header" .}} 2 | 3 |
4 |
5 |
6 | {{if eq .Lang "en-US"}} 7 | {{template "en-US/about.html"}} 8 | {{end}} 9 | {{if eq .Lang "zh-CN"}} 10 | {{template "zh-CN/about.html"}} 11 | {{end}} 12 |
13 |
14 |
15 | 16 | {{template "footer" .}} 17 | -------------------------------------------------------------------------------- /views/blog.html: -------------------------------------------------------------------------------- 1 | {{template "header" .}} 2 | 3 |
4 |
5 |
6 | {{ .BlogContent }} 7 |
8 |
9 |
10 | 11 | {{template "footer" .}} 12 | -------------------------------------------------------------------------------- /views/community.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | {{if eq .Lang "en-US"}} 5 | {{template "en-US/community.html"}} 6 | {{end}} 7 | {{if eq .Lang "zh-CN"}} 8 | {{template "zh-CN/community.html"}} 9 | {{end}} 10 |
11 |
12 |
13 | -------------------------------------------------------------------------------- /views/docs.html: -------------------------------------------------------------------------------- 1 | {{template "header" .}} 2 |
3 | 44 | 45 |
46 |
47 |
48 | {{.DocContent}} 49 |
50 |
51 |
52 | 53 |
54 | 55 | {{template "footer" .}} 56 | -------------------------------------------------------------------------------- /views/donate.html: -------------------------------------------------------------------------------- 1 | {{template "header" .}} 2 | 3 |
4 |
5 |
6 | {{if eq .Lang "en-US"}} 7 | {{template "en-US/donate.html"}} 8 | {{end}} 9 | {{if eq .Lang "zh-CN"}} 10 | {{template "zh-CN/donate.html"}} 11 | {{end}} 12 |
13 |
14 |
15 | 16 | {{template "footer" .}} 17 | -------------------------------------------------------------------------------- /views/en-US/about.html: -------------------------------------------------------------------------------- 1 |

This manual documents aspects of Beego app framework.

2 | 3 |

New to Beego?

4 | 5 |

Read about the Quick Start.

6 | 7 |

Can’t find what you’re looking for?

8 | 9 |

Search our mailing list (beego-framework@googlegroups.com).

10 | 11 |

Need help?

12 | 13 |

Send an email to the beego-framework@googlegroups.com.

14 | 15 |

Find a bug?

16 | 17 |

Open an issue on github.

18 | 19 |

Want to be a contributor?

20 | 21 |

Fork the documentation project, edit and pull request.

22 | 23 |

Source code of this website?

24 | 25 |

Please visit Beego Web.

26 | -------------------------------------------------------------------------------- /views/en-US/community.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 |

About the community 6 |
7 | 8 | Join the developers who are helping to lead the beego revolution! Joining our community is a great way to interact with other talented developers and devops professionals, increase awareness of the work that you are doing, improve your skills, or give back. 9 | 10 |

11 | 12 |

Get in touch 13 |
14 | 15 | There are several ways to get in touch: 16 | 17 |

18 | 19 |
20 |
21 | 38 | 39 | 40 | 41 |

More options:

42 |
    43 |
  • Sina Weibo: @asta谢
  • 44 |
  • Beego developer QQ Group: 258969317(Be sure that you contributed before you ask to join)
  • 45 |
46 | 47 |

Share

48 |

49 | Sharing what you have built with beego is a great way to help people understand the value of beego. If you have a great story to tell we'll be happy to help you spread the word. 50 |

51 |
    52 |
  • Tell your story at a company tech talk, tweet (#beego, @beego) present at your local user group, or submit a talk proposal to a conference or event about how you are using beego.
  • 53 |
  • If you are using beego, in production, become a public reference.
  • 54 |
  • Write a tutorial.
  • 55 |
56 | 57 |

Contribute

58 |

59 | An Open Source project like beego couldn’t exist without contributions from the developer community. Until now, there are over 35 contributors and nearly 410 forks on the project. 60 |

61 |
    62 |
  • Take a look at our issues list and consider submitting a patch
  • 63 |
  • Review our roadmap on GitHub and provide feedback
  • 64 |
  • Consider contributing.
  • 65 |
66 |

67 | We run the documentation as an open source project. The sources are available from the main beedoc repository on Github, and we encourage you to make improvements, whether big or small, make a pull request. 68 |

69 | 70 |

What people have already built using beego

71 |

72 | Beego is a powerful framework for many different use cases. Here are some great early use cases for beego, as described by members of our community. 73 |

74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 |
Use CasesExamplesLinks
Documentation serverGo Walker - a web server that generates Go projects API documentation with source code on the fly.http://gowalker.org
API services360 search API service for Youdao, tens of millions requests level.
Bmob mobile cloud API service, more than 50 million requests every day.
Weico 3 backend API service.
BlogsSudo China - multiple users blog systemhttp://sudochina.com
CommunitiesVery Hour - social networkhttp://veryhour.com
Enterprise websitesI Beautyshttp://ibeautys.com/
Interlahttp://interla.net
132 | Add your use case 133 | 134 |
135 |
136 | 137 |
138 | 139 |
140 | -------------------------------------------------------------------------------- /views/en-US/donate.html: -------------------------------------------------------------------------------- 1 |

2 | 3 |

Beego framework dedicates to providing a fast way to develop web applications and advocating for Go language. Your supports are highly appreciated and it means a lot to us.

4 |

Our Beego core team has been working a lot and improving Beego for more than a year. We dedicated a lot to provide everyone a better framework. If you feel Beego is helpful for you and want to kindly support it, we appreciate that. ^_^

5 |
6 |

7 | 8 |

9 | Donate by Paypal: 10 |

11 |

12 | 13 | 14 | 15 | 24 |
support Beego
25 | 26 | 27 | 28 |
29 |

30 |

31 | 32 |

Your donation will be used as:

33 | 34 |
    35 |
  • Supports the development of Beego
  • 36 |
  • Supports maintaining the communities
  • 37 |
  • Upgrade to better server
  • 38 |
  • Award the outstanding contributors
  • 39 |
  • Holds community activities and lectures
  • 40 |
41 | 42 |

Donation Lists (descending by donating time)

43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 |
Donated atDonatorAmountComments
2014-Jan-24Bernard Lim$20.00
2013-Dec-23William Kennedy$100.00
70 | -------------------------------------------------------------------------------- /views/en-US/footer.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
Github
5 | 9 |
10 |
11 | 17 |
18 |
19 |
20 | 23 | 26 |
27 | 31 |
32 |
33 |
-------------------------------------------------------------------------------- /views/en-US/index_feature.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |

Easy to Learn & Use

5 |

6 | With common MVC architecture, you can learn quickly by other MVC experience , as same and well organized directory structure , same behaviors of models and controllers. 7 |

8 |
9 |

10 | The Bee tool can generate sample project as foundation to start your development, and rebuild and restart working program to display affected changes. 11 |

12 |
13 |
14 |

go get github.com/beego/bee

15 |

bee new website

16 |

cd website

17 |

bee run

18 |
19 | 22 |
23 |
24 |
25 |
26 |
27 |

Modular

28 |

29 | To meet requirements for web application, Beego provides simple modules to work on different perspects on web project. 30 |

31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 |
FeatureDescription
AgnosticFull support for many popular testing, templating, mocking, and database libraries.
GeneratorsCreate Padrino applications, models, controllers, admin.
MountableUnlike other ruby frameworks, principally designed for mounting multiple apps.
RoutingFull url named routes, named params, respond_to support, before/after filter support.
HelpersDifferent helpers for generating tags, forms, links, images, and more.
MailerFast and simple support for delivering emails.
CachingSimple route and fragment caching to easily speed up your web requests.
AdminBuilt-in admin interface (akin to Django) with authentication.
LoggingProvides a unified logger that can interact with your ORM or any library of your choice.
ReloadingAutomatically reloads server code during development.
LocalizationFull support for I18n localization.
86 | 89 |
90 |
91 |
92 |
93 |
94 |

Smart Monitor

95 |

96 | Beego provides admin toolbox to monitor web application. It's able to monitor your QPS, memory and CPU usages, and goroutine status. It provides you the fully control of your online apps. 97 |

98 | 101 |
102 |
-------------------------------------------------------------------------------- /views/en-US/quickstart.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |
5 |
6 | 7 |

Getting started

8 | 9 |

Installation

10 | 11 |

Beego contains sample applications to help you learn and use the Beego app framework.

12 | 13 |

You will need a functioning Go 1.1 installation for this to work.

14 | 15 |

You will need to install Beego and the Bee dev tool:

16 |
$ go get github.com/astaxie/beego
 17 |     $ go get github.com/beego/bee
 18 |     
19 | 20 |

For convenience, you should add $GOPATH/bin to your$PATH environment variable.

21 | 22 |

Want to quickly see how it works? Then just set things up like this:

23 |
$ cd $GOPATH/src
 24 |     $ bee new hello
 25 |     $ cd hello
 26 |     $ bee run
 27 |     
28 | 29 |

Windows users:

30 |
> cd %GOPATH%/src
 31 |     > bee new hello
 32 |     > cd hello
 33 |     > bee run hello
 34 |     
35 | 36 |

These commands help you:

37 | 38 |
    39 |
  1. Install Beego into your $GOPATH.
  2. 40 |
  3. Install the Bee tool in your computer.
  4. 41 |
  5. Create a new application called hello.
  6. 42 |
  7. Start hot compile.
  8. 43 |
44 | 45 |

Once it’s running, open a browser to http://localhost:8080/.

46 | 47 |

Simple example

48 | 49 |

The following example prints Hello world to your browser, it shows how easy it is to build a web application with beego.

50 |
package main
 51 | 
 52 |     import (
 53 |         "github.com/astaxie/beego"
 54 |     )
 55 | 
 56 |     type MainController struct {
 57 |         beego.Controller
 58 |     }
 59 | 
 60 |     func (this *MainController) Get() {
 61 |         this.Ctx.WriteString("hello world")
 62 |     }
 63 | 
 64 |     func main() {
 65 |         beego.Router("/", &MainController{})
 66 |         beego.Run()
 67 |     }
 68 |     
69 | 70 |

Save file as hello.go, build and run it:

71 |
$ go build -o hello hello.go
 72 |     $ ./hello
 73 |     
74 | 75 |

Open http://127.0.0.1:8080 in your browser and you will see hello world.

76 | 77 |

What is happening in the scenes of the above example?

78 | 79 |
    80 |
  1. We import package github.com/astaxie/beego. As we know, Go initializes packages and runs init() in every package (more details), 81 | so Beego initializes the BeeApp application at this time.
  2. 82 |
  3. Define the controller. We define a struct called MainController with a anonymous field beego.Controller, so the MainController has all methods that beego.Controller has.
  4. 83 |
  5. Define some RESTful methods. Due to the anonymous field above, MainController already has Get, Post, Delete, Put and other methods, these methods will be called when user sends a corresponding 84 | request (e.g. the Post method is called to handle requests using POST. Therefore, after we overloaded the Get method in MainController, all GET requests will use that method in MainController instead of in beego.Controller.
  6. 85 |
  7. Define the main function. All applications in Go use main as their entry point like C does.
  8. 86 |
  9. Register routers. This tells Beego which controller is responsible for specific requests. Here we register MainController for /, so all requests to / will be handed by MainController. Be aware 87 | that the first argument is the path and the second one is pointer to the controller you want to register.
  10. 88 |
  11. Run the application on port 8080 as default, press Ctrl+c to exit.
  12. 89 |
90 | 91 |

Following are shortcut .bat files for Windows users:

92 | 93 |

Create files step1.install-bee.bat and step2.new-beego-app.bat under %GOPATH%/src.

94 | 95 |

step1.install-bee.bat:

96 |
set GOPATH=%~dp0..
 97 |     go build github.com\beego\bee
 98 |     copy bee.exe %GOPATH%\bin\bee.exe
 99 |     del bee.exe
100 |     pause
101 |     
102 | 103 |

step2.new-beego-app.bat:

104 |
@echo Set value of APP same as your app folder
105 |     set APP=coscms.com
106 |     set GOPATH=%~dp0..
107 |     set BEE=%GOPATH%\bin\bee
108 |     %BEE% new %APP%
109 |     cd %APP%
110 |     echo %BEE% run %APP%.exe > run.bat
111 |     echo pause >> run.bat
112 |     start run.bat
113 |     pause
114 |     start http://127.0.0.1:8080
115 |     
116 | 117 |

Click those two file in order will quick start your Beego tour. And just run run.bat in the future.

118 | 119 | 120 |
121 |
122 |
123 | 124 |
125 | -------------------------------------------------------------------------------- /views/en-US/team.html: -------------------------------------------------------------------------------- 1 | 2 |

AstaXie

3 | 4 | 8 | 9 |

Slene

10 | 11 |
    12 |
  • Team role: primarily responsible for ORM, maintainer of Beego samples and official site.
  • 13 |
  • Social network: Sina Weibo GitHub Twitter
  • 14 |
15 | 16 |

ClownFish

17 | 18 |
    19 |
  • Team role: primarily responsible for Beego admin management system.
  • 20 |
  • Social network: GitHub
  • 21 |
22 | 23 |

Lei Cao

24 | 25 |
    26 |
  • Team role: Main maintainer for the English Docs and resources.
  • 27 |
  • Social network: GitHub
  • 28 |
29 | -------------------------------------------------------------------------------- /views/footer.html: -------------------------------------------------------------------------------- 1 |
2 | {{if eq .Lang "zh-CN"}} 3 | {{template "zh-CN/footer.html" .}} 4 | {{end}} 5 | {{if eq .Lang "en-US"}} 6 | {{template "en-US/footer.html" .}} 7 | {{end}} 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /views/head.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | {{.Title}} 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /views/header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/index.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |

4 | beego-logo 5 |

6 |

BeeGo make it fun and easy to code more advanced web applications while still adhering to the MVC concepts!

7 | 15 |
16 | {{if eq .Lang "zh-CN"}} 17 | Latest Stable v1.10.0 18 | 19 | {{end}} 20 | {{if eq .Lang "en-US"}} 21 | Latest Stable v1.10.0 22 | 23 | {{end}} 24 |
25 |
26 |
27 | {{if eq .Lang "zh-CN"}} 28 | {{template "zh-CN/index_feature.html"}} 29 | {{end}} 30 | {{if eq .Lang "en-US"}} 31 | {{template "en-US/index_feature.html"}} 32 | {{end}} 33 |
34 |
35 |
36 |
37 | {{if eq .Lang "zh-CN"}} 38 |

我们的知名顾客

39 | {{end}} 40 | {{if eq .Lang "en-US"}} 41 |

Our Well-known Customers

42 | {{end}} 43 |
44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |
63 |
64 |
65 |
66 | -------------------------------------------------------------------------------- /views/layout.html: -------------------------------------------------------------------------------- 1 | {{template "head.html" .}} 2 | 3 | {{template "header.html" .}} 4 |
5 | {{.LayoutContent}} 6 |
7 | {{template "footer.html" .}} 8 | 9 | 10 | -------------------------------------------------------------------------------- /views/products.html: -------------------------------------------------------------------------------- 1 | {{template "header" .}} 2 |
3 | 4 |
5 | {{if eq .Lang "zh-CN"}} 6 |

使用 Beego 的产品 7 |
8 | 9 | 通过 GitHub 提交案例 ,如果使用GitHub有任何问题,你可以直接发送产品信息到邮箱 xiemengjun@gmail.com 10 | 11 |

12 | {{end}} 13 | {{if eq .Lang "en-US"}} 14 |

Which products use beego 15 |
16 | 17 | Submit your product in GitHub. If you have any problem when use GitHub. You can direct send product info to mailbox: xiemengjun@gmail.com 18 | 19 |

20 | {{end}} 21 | 22 |
23 |
24 |
25 |
26 | Webcron 27 |
28 |
29 |
定时任务管理
30 | 31 |
32 | 38 |
39 |
40 |
41 |
42 |
43 | Teamkey 44 |
45 |
46 |
Password manager for IT teams
47 | 48 |
49 | 55 |
56 |
57 |
58 |
59 |
60 | 好卖进销存 61 |
62 |
63 |
个体经营者的进销存统计系统
64 | 65 |
66 | 72 |
73 |
74 |
75 |
76 | 77 |
78 | 79 | {{template "footer" .}} 80 | -------------------------------------------------------------------------------- /views/quickstart.html: -------------------------------------------------------------------------------- 1 |
2 | {{if eq .Lang "en-US"}} {{template "en-US/quickstart.html"}} {{end}} 3 | {{if eq .Lang "zh-CN"}} {{template "zh-CN/quickstart.html"}} {{end}} 4 |
-------------------------------------------------------------------------------- /views/team.html: -------------------------------------------------------------------------------- 1 | {{template "header" .}} 2 | 3 |
4 |
5 |
6 | {{if eq .Lang "en-US"}} 7 | {{template "en-US/team.html"}} 8 | {{end}} 9 | {{if eq .Lang "zh-CN"}} 10 | {{template "zh-CN/team.html"}} 11 | {{end}} 12 |
13 |
14 |
15 | 16 | {{template "footer" .}} 17 | -------------------------------------------------------------------------------- /views/video.html: -------------------------------------------------------------------------------- 1 |
2 |

Beego Trainning Video

3 |
    4 | {{range .Video.List}} 5 |
  • 6 |
    {{.index}} - {{.title}}
    7 |

    8 |
  • 9 | {{end}} 10 |
11 |

video slide save in {{.Video.Desc}}

12 |
-------------------------------------------------------------------------------- /views/zh-CN/about.html: -------------------------------------------------------------------------------- 1 |

本网站文档页面详细描述了 beego 应用框架的各个方面。

2 | 3 |

新手指导

4 | 5 |

如果您是首次了解 beego,我们建议您先阅读 快速入门

6 | 7 |

其它资源

8 | 9 |

如果您无法找到相关问题的满意答案,可以在 邮件列表 (beego-framework@googlegroups.com) 中搜索。

10 | 11 |

寻求帮助

12 | 13 |

如果您遇到无法解决的问题,可以发送邮件到 beego-framework@googlegroups.com 提问。

14 | 15 |

问题提交

16 | 17 |

如果您在使用过程中发现 beego 有潜在的问题,请通过 Github 上的问题列表提交。

18 | 19 |

完善文档

20 | 21 |

您可以通过派生 文档项目、编辑,然后提交合并请求。

22 | 23 |

网站源码

24 | 25 |

请移步 Beego Web

26 | -------------------------------------------------------------------------------- /views/zh-CN/community.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 |

关于开发者社区 6 |
7 | 8 | 与众多开发者们一起帮助和领导 beego 的革命吧!参与社区开发是与技术牛人交流与学习的最佳方式,不仅可以贡献和展示您的代码,还能增强您的合作意识,提升技术水平。 9 | 10 |

11 | 12 |

参与社区讨论 13 |
14 | 15 | 您可以通过以下方式参与社区讨论: 16 | 17 |

18 | 19 |
20 |
21 | 38 | 39 | 40 | 41 |

更多选择:

42 |
    43 |
  • Sina Weibo: @asta谢
  • 44 |
  • beego 开发者 QQ 群:258969317(验证需填入您的 Github 地址以确保您为 beego 贡献过代码)
  • 45 |
46 | 47 |

分享开发经验

48 |

49 | 分享您已经使用基于 beego 完成的惊人作品能够很好的帮助他人理解 beego 的价值。如果您有意愿分享 beego 的开发故事,我们将乐意为您广而告之。 50 |

51 |
    52 |
  • 公司内的技术分享,可以通过微博(#beego, @beego)来通知我们,或者也可以将您的建议或相关会议告知我们,让我们知道您是如何使用 beego 的。
  • 53 |
  • 如果您正在构建基于 beego 的实际应用,我们将非常乐意地为您传播。
  • 54 |
  • 您也可以写一个有关 beego 的开发教程。
  • 55 |
56 | 57 |

贡献社区代码

58 |

59 | 一个开源的项目是无法离开开发者社区成员的积极贡献的,到目前为止,已经有超过 35 位贡献者以及 400 多的项目派生。 60 |

61 |
    62 |
  • 如果您需要提交问题请通过 问题列表 来完成。
  • 63 |
  • 您可在 GitHub 上查看我们的发展路线,并给予反馈。
  • 64 |
  • 贡献代码,您值得考虑。
  • 65 |
66 |

67 | 我们将 API 文档 也作为一个开源项目来处理,您可以在 Github 的 项目仓库 中找到相关源码。我们鼓励您参与完善 Beego 的文档,不论改动大小,都欢迎您的补充与提交! 68 |

69 | 70 |

beego 开发实例展示

71 |

72 | Beego 是一个适于多种开发目标的强大的应用框架,这里有一份公开项目的清单,用于展示这些应用程序将 beego 用作何种开发。 73 |

74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 |
开发目标项目实例链接
Go API 文档服务器Go 步行者 - 一个用于在线生成并浏览 Go 项目 API 文档及源码 的 Web 服务器。http://gowalker.org
API 服务360 向有道提供的搜索 API 服务,千万级请求流量。
Bmob 移动云的 API 服务,每天的请求量超过 5000 万。
Weibo 3 后端 API 服务。
博客网站速动中国 - 多用户博客分享网站http://sudochina.com
社区论坛非常时刻 - 社交分享社区http://veryhour.com
股票应用数据查询http://sj.n8n8.cn/
127 | 增加您的开发案例 128 | 129 |
130 |
131 | 132 |
133 | 134 |
135 | -------------------------------------------------------------------------------- /views/zh-CN/donate.html: -------------------------------------------------------------------------------- 1 |

2 | 3 | beego 应用框架一直致力于为大家提供一个快速开发应用的途径,同时推广发展国内的 Go 发展,您的帮助是对我们最大的鼓励和支持!
4 | 我们团队这一年多来一直在坚持不懈的努力改进,并会一直坚持开源免费为大家提供最好的 Go 框架而努力,会持续不断的增加新功能,提供用户在开发中遇到的各类解决方案,如果您觉得我们的成果对你有帮助,那么我们乐意接收来自各路豪杰的捐助^_^。 5 |
6 |

7 | 8 |

9 | 支付宝扫描捐赠 10 |

11 | 12 |

13 | Paypal捐赠 14 |

15 |

16 | 17 | 18 | 19 | 25 |
support beego
26 | 27 | 28 | 29 |
30 |

31 |

32 | 33 |

您的捐赠将被用于:

34 | 35 |
    36 |
  • 持续和深入的开发
  • 37 |
  • 维护社区的运行稳定
  • 38 |
  • 租用更好的带宽
  • 39 |
  • 奖励团队的杰出贡献者
  • 40 |
  • 社区活动或讲座
  • 41 |
42 | 43 |

捐赠列表(按照捐赠时间倒序)

44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 |
捐赠时间捐赠人金额附言
2014.01.16 13:49韩永柏¥10.24开始golang,非常感谢(@hyongbai)
2014.01.15 23:17郭帅¥100.00beego很强大,希望能越做越好!
2014.01.11 13:28李文施¥888.88砖头, 矿渣。
2014.01.11 13:23李文施¥888.88砖头, 矿渣。
2014.01.09 20:50徐缓¥30.00从你们的书和项目中受益匪浅,穷学生一个,微薄之力仅仅表感谢
2014.01.02 10:50覃礼钧¥50.00我正在用Beego开发个人自媒体网站。
2013.12.28 01:15孙宏建¥30.00支持国人对开源的贡献
2013.12.23 17:14李喜¥38.00支持开源
2013.12.23 17:12蒋惟堃¥30.00支持beego
2013.12.23 17:10陈明达¥88.88希望beego越来越棒
2013.12.21 11:30黄诤¥88.88BEEGO宏图大业
2013.12.20 12:01杨恒飞¥99.99开源受益者,贡献一份力量
2013.12.18 21:55宋光义¥100.00beego很好,向你学习
2013.12.18 21:12黄甜¥20.00感谢你的框架
2013.12.12 19:47周思达¥19.80[你懂的]
2013.12.12 18:04董建农¥10.00必须支持
2013.12.12 16:20俞翔¥18.88beeeeeegoooooo
2013.12.12 16:14孙彦欣¥50.00雪虎
2013.12.12 16:10邵天宇¥88.88好吧,再来一个!!我要比方总多!
2013.12.12 16:05邵天宇¥18.81买杯咖啡犒劳下吧!
2013.12.12 16:04付光荣¥10.00支持beego
2013.12.12 15:54常焱¥58.58to beego
2013.12.12 15:44谢敬民¥28.00
2013.12.12 15:42钱文君¥10.00屌丝一枚,暂时捐的寒碜
2013.12.12 15:37李文涛¥100.00加油!Beego!
2013.12.12 15:34周明岐¥10.00为了加vip群
2013.12.09 00:28董泽润¥200.00谢大加油go-in-action
2013.12.06 16:43廖君¥3.00谢谢您的go web编程
2013.12.01 21:14李保银¥20.00支持Go实战开发,不成敬意
2013.11.21 11:16周维¥20.00支持谢大
2013.11.12 17:56熊书宜¥9.99hello,beego!
2013.11.10 20:21曾锦和¥10.00还没赚到钱,聊表心意
2013.11.08 21:10余征¥10.00准备使用beego了,希望它能如愿,支持谢大
2013.11.06 13:42童中波¥5.00come baby
2013.11.03 11:38方云麟¥10.00虽然最近很穷,但是还是捐一捐,图个吉利。
2013.10.31 09:49汪大平¥10.00能不能加入你们开发组啊
2013.10.27 21:30李代红¥9.90支持beego
2013.10.18 09:55蔺保忠¥118.00严重支持谢老大
2013.10.03 21:20李文施¥88.88砖工:学生狗,钱不多,支持下beego,支持下谢大。
2013.09.30 14:59高步双¥11.00必须支持谢大!!!
2013.09.30 12:07刘冬瑞¥10.00加油
2013.09.30 11:54方圆¥100.00谢总管好
2013.09.30 11:38张首华¥10.00支持
2013.09.30 10:22张德福¥20.00郑州–救赎-迟镇凯
2013.09.24 17:52赵海斌¥10.00支持谢大!
2013.09.24 15:30刘孝园¥10.00谢谢谢大大的努力
2013.09.24 15:29薛以祥¥8.88支持谢大。
2013.09.24 15:25张晔¥8.88hello world
2013.09.24 15:15傅冬¥20.33傅小黑,捐赠
2013.09.24 15:10林建造¥10.50golang导师
2013.09.24 15:06肖建亮¥6.66六六大顺吧
2013.09.24 15:02高栋¥8.88hello world & beego
2013.09.24 15:01方云麟¥10.00不许踢我
428 | -------------------------------------------------------------------------------- /views/zh-CN/footer.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /views/zh-CN/index_feature.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 简单化 4 | 5 |

简单化

6 | 7 |

8 | RESTful 支持、MVC 模型,可以使用 bee 工具快速地开发应用,包括监控代码修改进行热编译、自动化测试代码以及自动化打包部署。 9 |

10 |
11 |
12 |
13 | 简单化图示 14 |
15 |
16 |
17 |
18 |
19 |
20 | 智能化图示 21 |
22 |
23 |
24 | 智能化 25 | 26 |

智能化

27 | 28 |

29 | 支持智能路由、智能监控,可以监控 QPS、内存消耗、CPU 使用,以及 goroutine 的运行状况,让您的线上应用尽在掌握。 30 |

31 |
32 |
33 |
34 |
35 | 模块化 36 | 37 |

模块化

38 | 39 |

40 | beego 内置了强大的模块,包括 Session、缓存操作、日志记录、配置解析、性能监控、上下文操作、ORM 模块、请求模拟等强大的模块,足以支撑你任何的应用。 41 |

42 |
43 |
44 |
45 | 模块化图示 46 |
47 |
48 |
49 |
50 |
51 |
52 | 高性能图示 53 |
54 |
55 |
56 | 高性能 57 | 58 |

高性能

59 | 60 |

61 | beego 采用了 Go 原生的 http 包来处理请求,goroutine 的并发效率足以应付大流量的 Web 应用和 API 应用,目前已经应用于大量高并发的产品中。 62 |

63 |
64 |
-------------------------------------------------------------------------------- /views/zh-CN/quickstart.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 |
5 |
6 | 7 |

快速开始

8 | 9 |

安装

10 | 11 |

beego 包含一些示例应用程序以帮您学习并使用 beego 应用框架。

12 | 13 |

您需要安装 Go 1.1+ 以确保所有功能的正常使用。

14 | 15 |

你需要安装 Beego 和 Bee 开发工具:

16 |
$ go get github.com/astaxie/beego
 17 |     $ go get github.com/beego/bee
 18 |     
19 | 20 |

为了更加方便的操作,请将 $GOPATH/bin 加入到你的 $PATH 变量中。

21 | 22 |

想要快速建立一个应用来检测安装?

23 |
$ cd $GOPATH/src
 24 |     $ bee new hello
 25 |     $ cd hello
 26 |     $ bee run
 27 |     
28 | 29 |

Windows 平台下输入:

30 |
> cd %GOPATH%/src
 31 |     > bee new hello
 32 |     > cd hello
 33 |     > bee run hello
 34 |     
35 | 36 |

这些指令帮助您:

37 | 38 |
    39 |
  1. 安装 beego 到您的 $GOPATH 中。
  2. 40 |
  3. 在您的计算机上安装 Bee 工具。
  4. 41 |
  5. 创建一个名为 hello 的应用程序。
  6. 42 |
  7. 启动热编译。
  8. 43 |
44 | 45 |

一旦程序开始运行,您就可以在浏览器中打开 (http://localhost:8080/)进行访问。

46 | 47 |

简单示例

48 | 49 |

下面这个示例程序将会在浏览器中打印 Hello world ,以此说明使用 beego 构建 Web 应用程序是多么的简单!

50 |
package main
 51 | 
 52 |     import (
 53 |         "github.com/astaxie/beego"
 54 |     )
 55 | 
 56 |     type MainController struct {
 57 |         beego.Controller
 58 |     }
 59 | 
 60 |     func (this *MainController) Get() {
 61 |         this.Ctx.WriteString("hello world")
 62 |     }
 63 | 
 64 |     func main() {
 65 |         beego.Router("/", &MainController{})
 66 |         beego.Run()
 67 |     }
 68 |     
69 | 70 |

把上面的代码保存为 hello.go,然后通过命令行进行编译并执行:

71 |
$ go build -o hello hello.go
 72 |     $ ./hello
 73 |     
74 | 75 |

这个时候你可以打开你的浏览器,通过这个地址浏览 http://127.0.0.1:8080 返回 hello world

76 | 77 |

那么上面的代码到底做了些什么呢?

78 | 79 |
    80 |
  1. 首先我们导入了包 github.com/astaxie/beego。我们知道 Go 语言里面被导入的包会按照深度优先的顺序去执行导入包的初始化(变量和 init 函数,more details),beego 包中会初始化一个 BeeApp 的应用和一些参数。 81 |
  2. 82 |
  3. 定义 Controller,这里我们定义了一个 struct 为 MainController,充分利用了 Go 语言的组合的概念,匿名包含了 beego.Controller,这样我们的 MainController 就拥有了 beego.Controller 的所有方法。 83 |
  4. 84 |
  5. 定义 RESTful 方法,通过匿名组合之后,其实目前的 MainController 已经拥有了 Get, Post, Delete, Put 等方法,这些方法是分别用来对应用户请求的 Method 函数,如果用户发起的是 POST 请求,那么就执行 Post 函数。所以这里我们定义了 MainControllerGet 方法用来重写继承的 Get 函数,这样当用户发起 GET 请求的时候就会执行该函数。 85 |
  6. 86 |
  7. 定义 main 函数,所有的 Go 应用程序和 C 语言一样都是 main 函数作为入口,所以我们这里定义了我们应用的入口。
  8. 87 |
  9. Router 注册路由,路由就是告诉 beego,当用户来请求的时候,该如何去调用相应的 Controller,这里我们注册了请求 / 的时候,请求到 MainController 。这里我们需要知道,Router 函数的两个参数函数,第一个是路径,第二个是 Controller 的指针。 88 |
  10. 89 |
  11. Run 应用,最后一步就是把在步骤 1 中初始化的 BeeApp 开启起来,其实就是内部监听了 8080 端口:Go 默认情况会监听你本机所有的 IP 上面的 8080 端口。 停止服务的话,请按 Ctrl+c
  12. 90 |
91 | 92 |

下面为 windows 下的快捷操作批处理文件:

93 | 94 |

%GOPATH%/src 目录下分别创建文件 step1.install-bee.batstep2.new-beego-app.bat

95 | 96 |

step1.install-bee.bat文件内容

97 |
set GOPATH=%~dp0..
 98 |     go build github.com\beego\bee
 99 |     copy bee.exe %GOPATH%\bin\bee.exe
100 |     del bee.exe
101 |     pause
102 |     
103 | 104 |

step2.new-beego-app.bat:

105 |
@echo 设置 App 的值为您的应用文件夹名称
106 |     set APP=coscms.com
107 |     set GOPATH=%~dp0..
108 |     set BEE=%GOPATH%\bin\bee
109 |     %BEE% new %APP%
110 |     cd %APP%
111 |     echo %BEE% run %APP%.exe > run.bat
112 |     echo pause >> run.bat
113 |     start run.bat
114 |     pause
115 |     start http://127.0.0.1:8080
116 |     
117 | 118 |

依次点击上面创建的两个文件即可快速开启 beego 之旅。 以后只需要到您的应用目录下点击 run.bat 即可。

119 | 120 | 121 |
122 |
123 |
124 | 125 |
126 | -------------------------------------------------------------------------------- /views/zh-CN/team.html: -------------------------------------------------------------------------------- 1 | 2 |

Asta谢

3 | 4 | 8 | 9 |

Slene

10 | 11 |
    12 |
  • 团队角色:ORM 开发者,兼职 beego 示例及官网开发
  • 13 |
  • 社交网络:新浪微博 GitHub Twitter
  • 14 |
15 | 16 |

ClownFish

17 | 18 |
    19 |
  • 团队角色:beego 后台管理系统开发者
  • 20 |
  • 社交网络:GitHub
  • 21 |
22 | 23 |

Lei Cao

24 | 25 |
    26 |
  • 团队角色:维护英文文档和资源
  • 27 |
  • 社交网络:GitHub
  • 28 |
29 | --------------------------------------------------------------------------------