A generator used to generate page for Hexo from your exists Github project file.
$ npm install hexo-generator-github --save
hexo-generator-github can be used as helper/generator/console plugin. hexo server
and hexo generate
will call the generator of this plugin; A console command is provided to run this generator.
$ hexo github [-r --replace]
If -r
or --replace
option assigned, the generator will call github api and replace the existing github contents cache.
github:
debug: true # enable debug to log github api request/response
user: Jamling # your github user name
timeout: 60000 # set the github api request timeout
token: your_token # enable Authorization for github api request, the api request limit will grow up from 60 to 5000
cache_dir: gh_cache # the response of github api will store under the directory.
repos: # request following repositories, otherwise, all repositories (limit 100) of user will be requested.
- SmartIM4Eclipse
- SmartIM4IntelliJ
- hexo-theme-nova
- hexo-generator-i18n
- hexo-generator-github
- hexo-generator-index2
- hexo-filter-highlight
- Android-ORM
- eclipse-explorer
- QuickAF
navs: # project page left default nav menu, you can config for each project in ${blog}/_data/projects.yml
overview: index.html
index: index.html
start: start.html
release: release.html
download: download.html
userguide: userguide.html
change: change.html
- debug: Whether print debug info
- cache_dir: Github response cache dir, you can run
hexo github -r
to remove all cache or remove files in cache manually to refresh cache again - user: Github user name
- repos: Result repositories, return all(limit 100) repositories of user if undefined in _config.yml
- token: See to generate token to grown up github api request limitation
A gh
front-matter is nessary in your page to generate github response.
- gh.user the github user, default is github.user in _config.yml, see gh_opts
- gh.repo the github repo, default is fetched from url, see gh_opts
- gh.type
- get_repos get repositories from github, see gh_repos
- get_contents get markdown file under repository, see gh_contents
- get_releases get releases under repository, see gh_releases
Return full page.gh. If no user assigned in page gh front-matter, the user will set from hexo.config.github.user If no repo assigned in page gh front-matter, the repo will set from page.path Sample:
- page.path = p/Android-ORM/ => gh.repo = Android-ORM
- page.path = en/p/Android-ORM/ => gh.repo = Android-ORM (The hexo.config.language must contains en in _config.yml)
Return array of github user's repos
Option | Description | Default |
---|---|---|
user |
Github user | config.github.user |
Return github (markdown file) contents of repository
{% set page.content = gh_contents() %}
So the page content will be replaced of content of github.
Option | Description | Default |
---|---|---|
user |
Github user | config.github.user |
repo |
Github repo | page.gh.repo |
path |
Github content path | README |
ref |
Github reference | master |
Return array of github repo releases
Option | Description | Default |
---|---|---|
user |
Github user | config.github.user |
repo |
Github repo | page.gh.repo |
Return edit link string of github contents
{{ gh_edit_link() }}
Return project content navigator tree
$('#project_tree').treeview({
enableLinks: true,
color: '#428bca',
expandIcon: 'icon nova-arrow-right2',
collapseIcon: 'icon nova-arrow-down2',
//levels: 3,
//node-icon: '',
//selectedColor: '#ff0000',
onNodeSelected: function(event, data) {
if (data.state.selected){
return;
}
},
data: {{ gh_aside_nav({parent_color:'#337ab7'}) }}
});
Option | Description | Default |
---|---|---|
user |
Github user | config.github.user |
repo |
Github repo | page.gh.repo |
path |
Github content path | README |
ref |
Github reference | master |
- Github Developer: see more properties of github response.
- hexo-theme-nova: the nova theme used this plugin to generate project pages.
MIT