hexojs / hexo

A fast, simple & powerful blog framework, powered by Node.js.
https://hexo.io
MIT License
39.28k stars 4.83k forks source link

创建自定义页面 #5368

Closed everfu closed 7 months ago

everfu commented 10 months ago

Check List

Expected behavior

他应该在is_page()函数执行时返回true

Actual behavior

实际返回false

How to reproduce?

// generate categories Page
hexo.extend.generator.register('categories', function(locals) {
  if(!this.theme.config.page.categories)return
  const lang = hexo.theme.i18n.get(this.config.language || 'zh-CN')
  return {
    path: 'categories/index.html',
    layout: ['page'],
    data: {
      title: lang["page.category"],
      type: 'categories',
      comment: false
    }
  };
});

Is the problem still there under Safe mode?

结果依然

Your Node.js & npm version

v18.17.0
10.2.0

Your Hexo and Plugin version

hexo-site@0.0.0 /Users/sco/Desktop/project/web/Private/untitled
├── hexo-generator-archive@2.0.0
├── hexo-generator-category@2.0.0
├── hexo-generator-index@3.0.0
├── hexo-generator-tag@2.0.0
├── hexo-renderer-ejs@2.0.0
├── hexo-renderer-marked@6.1.1
├── hexo-renderer-pug@3.0.0
├── hexo-renderer-stylus@3.0.0
├── hexo-server@3.0.0
├── hexo-theme-landscape@1.0.0
└── hexo@7.0.0

Your package.json

{
  "name": "hexo-site",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "build": "hexo generate",
    "clean": "hexo clean",
    "deploy": "hexo deploy",
    "server": "hexo server"
  },
  "hexo": {
    "version": "7.0.0"
  },
  "dependencies": {
    "hexo": "^7.0.0",
    "hexo-generator-archive": "^2.0.0",
    "hexo-generator-category": "^2.0.0",
    "hexo-generator-index": "^3.0.0",
    "hexo-generator-tag": "^2.0.0",
    "hexo-renderer-ejs": "^2.0.0",
    "hexo-renderer-marked": "^6.1.1",
    "hexo-renderer-pug": "^3.0.0",
    "hexo-renderer-stylus": "^3.0.0",
    "hexo-server": "^3.0.0",
    "hexo-theme-landscape": "^1.0.0"
  }
}

Your site's _config.yml (Optional)

No response

Others

我使用了layout=page但最返回的结果却并不是page,我需要什么方式去实现?

ocoke commented 10 months ago

I think the pages file should be outside of the _posts folder.