Open lovelyJason opened 1 year ago
并且, 我通过api的形式注入样式,他是生效的
hexo.extend.filter.register('theme_inject', function(injects) {
console.log(injects)
injects.first.push('source/_data/xxx.styl');
});
怎么关闭了,是什么原因导致的呢,分享一下解决办法
怎么关闭了,是什么原因导致的呢,分享一下解决办法
目前也没发现是什么原因导致的。关闭是因为我觉得在主题资源目录下新建css或者styl文件这种做法不太规范,应该在外部新建样式文件比较好维护
怎么关闭了,是什么原因导致的呢,分享一下解决办法
而且怎么说呢。我觉得在配置文件中injects[point]这种做法它不太好以及木有应用场景啊,这种设计是不是有点缺陷?首先来说,这个路径就是个问题,在主题资源文件夹下的自定义样式,在injects[point]中是以主题资源文件夹的css作为参照目录的,比如我写的iconfont.css,就会去theme/volantis/source/css中去寻找。
那么如果说我的自定义样式文件在blog/source/_css/a.css或者blog/source/css/css,下划线开头的会被忽略掉, 这个路径怎么写?写不了的。这两种路径下的injects[point]都无法定义,因为找不到路径,因为比如源码中的theme/volantis/css/style.style这个里面就定义了这个, 不能从外层导入,这是个相对路径吧(其实也是可以的,需要逐步往上找父目录,后文有介绍)。
#safearea{
display: block
}
@import '_defines/*'
// Project
@import '_style'
// Custom Files
for $injects_style in hexo-config('injects.style')
@import $injects_style;
通过api注入injects.first.push('source/_data/xxx.styl')
就没这个问题了,因为插件是写在blog/scripts下,那么我就能基于这个博客路径去寻找样式文件路径, 而配置项的injects[point]问题就在这里,它只能定义相对路径?
body { color: red; }
我尝试去修改theme/source/css/style.styl#safearea{
display: block
}
@import '_defines/*'
// Project
@import '_style'
// my code ,this is effect. css or styl
@import '../../../../source/css/a.styl'
// Custom Files
for $injects_style in hexo-config('injects.style')
@import $injects_style;
神奇的事情发生了,这个样式是生效的。
如果是styl
injects:
style: [../../../../source/css/a.styl]
重启数次都看不到追加的样式
但是换成css
injects:
style: [../../../../source/css/a.css]
神奇的事情发生了,嘿,您猜怎么着, 它生效啊!!!
但是不知道为什么, 要yarn clean然后再yarn server重启好几次才能生效
接下来,我们再把以上的style换成first
injects:
first: [../../../../source/css/a.css]
clean, 重启n次都木有效果,页面上没有追加的样式, 但是,如果css换成styl
injects:
first: [../../../../source/css/a.styl]
这个时候有效果
injects:
first: [a.css]
这个时候,样式按照本issue预期的结果,没有生效
把css换成styl试试
injects:
first: [a.styl]
我重启了服务好多次,发现样式追加成功
还是有点麻烦的,我发现自己都被绕进去了出不来 通过配置主题配置文件的injcts[point],这里暂时讨论的是不带下划线_的样式表所在目录
而且要重启好几次服务才行不知道为什么
而且,有一点我不明白的是,styl中引入css按道理也是可以的,styl也支持css的语法,只是如果styl中引入css这么写,显得有点不伦不类罢了
哈哈,感谢您的解答,之前我也是在想,这应该是路径导致的,然而,由于手上电脑没有配置环境,加上您又关闭了此问题,我想应该是有相关解决方法。
是的,非常不错的想法。
styl 里渲染 css 时,会自动忽略 "_style" 的 style 文件夹,需要使用 @import '_style'
进行引入才能渲染,而 config 配置文件直接引入 '_style/style.css' 竟然也是会忽略,这一点提醒了我,后续处理相关 css ,需要特别注意,感谢提醒!
哈哈,竟然能看到实时修改,总结的很棒!
不要使用 injects 这个配置 使用 blog/source/_volantis/ 文件夹 来自定义修改
https://github.com/volantis-x/community/tree/main/source/_volantis
VolantisVolantis5 Development API for Volantis 样式文件说明/source/css/Readme.md 全局变量volantis我们提供了全局变量 volantis 和一些全局函数等主题开发调用接口。 源码参考:layout/_partial/scripts/global.ejs VolantisApp我们提供了全局变量 VolantisApp 和
GitHubVolantis Community 社区主页 https://volantis.js.org. Contribute to volantis-x/community development by creating an account on GitHub.
不要使用 injects 这个配置 使用 blog/source/_volantis/ 文件夹 来自定义修改
https://github.com/volantis-x/community/tree/main/source/_volantis
Volantis开发文档 Volantis5 Development API for Volantis 样式文件说明/source/css/Readme.md 全局变量volantis我们提供了全局变量 volantis 和一些全局函数等主题开发调用接口。 源码参考:layout/_partial/scripts/global.ejs VolantisApp我们提供了全局变量 VolantisApp 和
GitHubcommunity/source/_volantis at main · volantis-x/communityVolantis Community 社区主页 https://volantis.js.org. Contribute to volantis-x/community development by creating an account on GitHub.
没错,我现在是这么干的
VolantisVolantis5 Development API for Volantis 样式文件说明/source/css/Readme.md 全局变量volantis我们提供了全局变量 volantis 和一些全局函数等主题开发调用接口。 源码参考:layout/_partial/scripts/global.ejs VolantisApp我们提供了全局变量 VolantisApp 和
GitHubVolantis Community 社区主页 https://volantis.js.org. Contribute to volantis-x/community development by creating an account on GitHub.
VolantisVolantis 是一个功能丰富、高度模块化的 Hexo 博客主题。得益于其强大的模块化特性,您可以轻松搭建一个极简风格的博客,也可以仿照官网搭建一个多人协作的、包含文档模块的大体量综合型博客。
检查清单
复现地址
No response
复现步骤
我想引入一个css文件,比如文件的路径为:主题theme/source/css/iconfont.css, 就是一些字体图标,内容为
我想在first.styl中注入, 因此配置文件_config.volantis.yml里配置了
first.styl的源码:
按道理来说,自定义的样式上应该是会被追加到尾部的吧
然后我重启后看到的页面上是没有这个css的, 我去主题源码中的FirstCSS这个help函数中查看,看看first.styl编译后的代码是什么
然后我尝试将配置项中的first改为style
这个时候样式是生效的,查看网站上的/css/style.css样式表是有追加内容进去的
我看volantis文档上的注入点是这样的
唯一不同是first样式是内嵌样式, 为什么会有这种情况出现
配置文件
_config.volantis.yml
环境信息
node.js & npm
``` v18.12.0 8.19.2 ```
package.json
``` ├── hexo-deployer-git@2.1.0 ├── hexo-generator-archive@1.0.0 ├── hexo-generator-category@1.0.0 ├── hexo-generator-feed@2.2.0 ├── hexo-generator-index@1.0.0 ├── hexo-generator-json-content@4.2.3 ├── hexo-generator-search@2.4.0 ├── hexo-generator-tag@1.0.0 ├── hexo-renderer-ejs@1.0.0 ├── hexo-renderer-marked@2.0.0 ├── hexo-renderer-stylus@1.1.0 ├── hexo-server@1.0.0 └── hexo@5.4.0 ```