Contributing to the IntelliJ Platform SDK
本文档描述了我们对开源IntelliJ Platform SDK文档和示例代码的贡献指南. 在开始向SDK提供内容之前,请仔细阅读本页以及行为准则和许可证文档. 有关为IntelliJ平台本身做出贡献的信息,请访问贡献IntelliJ平台.
在创作SDK内容和提交Pull请求之前,请先了解一些有用的信息.
- 虚拟列表项
设置文档构建环境
该站点通过Jekyll运行,这是一个流行的静态站点生成器,用Ruby编写.它可以在本地托管,以确保任何更改都是正确的.设置完成后,运行网站就像调用“rake preview”一样简单.
或者,该站点也可以托管在Docker容器中.在Mac和Windows上,这意味着该站点托管在虚拟机中. Docker维护这个容器,根据Dockerfile
中的指令构建它.构建映像时会自动安装所有依赖项(Ruby等),从而减少了手动配置步骤. Docker镜像也用于构建已发布网站,因此它是一个已知的工作环境.
使用Docker开发文档
请按照以下步骤使用Docker:
- 首先,使用Docker Toolbox安装Docker.
- 在Windows和Mac上,启动Docker主机虚拟机(启动“Docker Quickstart终端”或运行“Kitematic”.有关更多信息,请参阅[docker.com]上的入门指南(https://www.docker.com) 细节).
- 将
intellij-sdk-docs
repo克隆到本地机器,并初始化sdkdocs-template
子模块. - 将当前目录更改为git仓库的父目录.
- 运行
docker build -t intellij-sdk-docs .
从当前文件夹构建docker镜像,并为其指定标签intellij-sdk-docs
. - 请注意,这必须从设置了各种
DOCKER_ *
环境变量的命令提示符运行,例如Docker Quickstart Terminal. - 运行
docker run -p 4000:4000 -v $ PWD:/usr/src/app intellij-sdk-docs
. 该命令将: - 启动名为
intellij-sdk-docs
的docker容器. - 将Docker容器中的端口4000转发到docker客户端上的端口4000.
*运行Dockerfile的`CMD`指令中的命令来执行: *`rake bootstrap`,确保安装所有先决条件, *`rake preview`,它构建网站并开始托管它. *最后,您可以访问[http://localhost:4000/intellij/sdk/docs/](http://localhost:4000/intellij/sdk/docs/)或使用IP访问新创建的站点docker客户端虚拟机的地址(请参阅上面的注释).
在本地开发文档
要构建文档站点,您需要:
-
Ruby 2 - Jekyll是一个Ruby应用程序.
-
Ruby 2 DevKit(适用于Windows) - 需要编译一些Jekyll的依赖项,并且需要安装DevKit.
*gem install bundler
- 该站点使用Bundler来管理repo中的gem依赖项,而不是全局安装到本地操作系统.
运行此命令以全局安装Bundler工具集.
苹果系统
macOS已经安装了Ruby. 所需的唯一步骤是:
*gem install bundler
Windows
*安装Ruby 2和Ruby 2 DevKit(其中一个宝石需要构建本机组件)
*安装DevKit后,请确保编辑config.yml
文件以指向Ruby安装
如果您使用Chocolatey(Windows的包管理器),则此安装更容易:
choco install ruby
choco install ruby2.devkit
- 安装DevKit后,请确保编辑
config.yml
文件以指向Ruby安装. - 默认情况下,这是
C:\tools\DevKit\config.yml
- 添加行
- C:\tools\ruby21
(包括前导减号)
- 安装DevKit后,请确保编辑
引导文档构建环境
- 确保已安装Bundler -
gem install bundler
. - 在Windows上,确保已在当前命令提示符下运行
devkitvars.bat
文件(例如c:\tools\DevKit\devkitvars.bat
). - 克隆文档站点.
- 初始化并更新
sdkdocs-template
子模块 -git submodule init
和git submodule update
rake bootstrap
- 这使用Bundler下载所有必需的宝石.rake preview
- 这将构建网站,并将其托管在本地网络服务器中.
构建和预览网站
要构建和测试网站,请运行rake preview
.这将使用提供的配置构建站点并托管它.托管站点的URL显示在屏幕上,取决于_config.yml
中定义的baseurl
字段.
Documentation Repository Submodules
sdkdocs-template
目录实际上是一个Git子模块,它包含一个私有webhelp-template
存储库的子模块.
sdkdocs-template
存储库包含构建脚本以及允许站点运行的编译和缩小的JS和CSS.
私有的webhelp-template
存储库包含构建JS和CSS的代码.
它目前是封闭源,但计划是在某些时候使它成为开源,在这种情况下,很可能会合并两个存储库.
克隆后,需要初始化和更新子模块:
git submodule init
git submodule update
初始化创建一个.gitmodules
文件,在sdkdocs-template
文件夹中注册一个子模块并检出文件.
请注意,当repo作为子模块添加时,它不会获得.git
文件夹,而是获取指向.git
文件夹的实际位置的.git
文件.
子模块可以使用常规git命令更新,例如git pull
.
它可以使用git checkout
切换到不同的分支,并且需要使用git命令将当前检出的修订版本的任何更改提交回主存储库.
子模块最初是在特定版本中克隆的,而不是branch.update的一部分
如果对子模块进行了更改,则应在分支上创建克隆,并发送Pull请求. 可以进行更改并提交,托管存储库需要提交指向子模块当前版本的指针.
如果sdkdocs-template
有任何问题,请提出问题.
创建IntelliJ Platform SDK内容
欢迎提供对IntelliJ Platform SDK的内容贡献.
请从GitHub下载或克隆开源SDK项目,进行添加或更改,并提交拉取请求.
在创建或更改内容之前,请参阅以下指南:
-
SDK代码示例指南. 本文档中描述了代码示例组织,项目设置和命名约定的约定. 始终通过构建和测试SDK代码示例来测试代码更改.