目前使用的Mirages主题已经很漂亮了,但是考虑到我个人需求比较刁钻,因此对其文件进行了修改。本文将记述当前对于Mirages主题文件的一些修改,以便后续升级之后手动维护和排除差错之用。
文章置顶
Mirages主题内置了对sticky的支持,但是鉴于旧的sticky插件在启用时直接丢出异常,因此才用了无插件的方式来完成需求。目前仅需要对index.php
进行修改,在主题作者信息下面加入如下如下代码(在作者信息前加入代码会导致后台无法读取主题信息):
/** 文章置顶 */
$sticky = '422'; //置顶的文章id,多个用|隔开
if($sticky){
$sticky_cids = explode('|',$sticky); //分割文本
$sticky_html = "<span style='color:red'>[置顶] </span>"; //置顶标题的 html
$db = Typecho_Db::get();
$pageSize = $this->options->pageSize;
$select1 = $this->select()->where('type = ?', 'post');
$select2 = $this->select()->where('type = ? && status = ? && created < ?', 'post','publish',time());
//清空原有文章的列队
$this->row = [];
$this->stack = [];
$this->length = 0;
$order = '';
foreach($sticky_cids as $i => $cid) {
if($i == 0) $select1->where('cid = ?', $cid);
else $select1->orWhere('cid = ?', $cid);
$order .= " when $cid then $i";
$select2->where('table.contents.cid != ?', $cid); //避免重复
}
if ($order) $select1->order(null,"(case cid$order end)"); //置顶文章的顺序 按 $sticky 中 文章ID顺序
if ($this->_currentPage == 1) foreach($db->fetchAll($select1) as $sticky_post){ //首页第一页才显示
$sticky_post['sticky'] = $sticky_html;
$this->push($sticky_post); //压入列队
}
$uid = $this->user->uid; //登录时,显示用户各自的私密文章
if($uid) $select2->orWhere('authorId = ? && status = ?',$uid,'private');
$sticky_posts = $db->fetchAll($select2->order('table.contents.created', Typecho_Db::SORT_DESC)->page($this->_currentPage, $this->parameter->pageSize));
foreach($sticky_posts as $sticky_post) $this->push($sticky_post); //压入列队
$this->setTotal($this->getTotal()-count($sticky_cids)); //置顶文章不计算在所有文章内
}
代码由小さな手は编写。对文件的修改日期:2018年4月24日。
文章编辑页加入备忘
目前Mirages支持卡片式文章列表自动选取文章图片,但是普通的文章在显示文章详情页面时必须要手动设定文章主图。因此我在typecho的文章编辑,即./admin/write-post.php
文件。
在<div id="tab-advance" class="tab-content">
下加入如下代码:
<section class="typecho-post-option">
<label for="token-input-tags" class="typecho-label"><?php _e('主图链接'); ?></label>
<p>https://statics.skyblond.info/pictures/random.php</p>
</section>
<section class="typecho-post-option">
<label for="token-input-tags" class="typecho-label"><?php _e('图片阴影'); ?></label>
<p>在图片链接的尾部追加 #shadow </p>
</section>
Mirages默认字体大小修改
在主题设置里自定义CSS样式:
@media screen and (min-width: 768px) {
html{
font-size: 19px;
}
}
</style>
作者给出放大是115%,但是我觉得就算是124,网页都走样了,还是没法恢复到以前熟悉的字体大小。这个实在是有点遗憾。诸君今后看到的网页字体可能会有变化,我会尝试不同的显示屏看不同的效果来找到一个相对中庸的放大值。
感谢林海草原提供的解决方法,现在是20px 19px,虽然字体大小和整页缩放124%差不多,但是在细节上会发现网站并不太走样,在行间距那里没有线性缩放,就很舒服。
全站黑白色遮罩
同样在主题设置中设定CSS样式。愿京阿尼早日渡过难关。
html{
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
}
页脚显示站点运行时间
修改主题文件夹下./component/footer.php
,第63起的代码块修改后如下示(注意保留原作者的版权信息):
<?php
$copyright = 'Copyright © '. date('Y') .' <a href="'. Mirages::$options->siteUrl .'">'. Mirages::$options->title .'</a>'; if (!Device::isPhone()) {$theme = "";}$theme = (Device::isPhone() ? '': 'Powered by <a href="http://typecho.org" target="_blank">Typecho</a> • ') . 'Theme <a href="https://get233.com/archives/mirages-intro.html" target="_blank">Mirages</a>';
$runtime = '本站已经奋力挣扎了'.floor((time() - 1502694727)/86400).'天';
if (Utils::hasValue(Mirages::$options->beian)) {
$beiAn = "<a href=\"http://beian.miit.gov.cn\" target='_blank'> ".Mirages::$options->beian . "</a>";
$copyright = "<p>{$copyright}</p><p>{$beiAn} • {$theme}</p><p>{$runtime}</p>";
} else {
$copyright = "<p>{$copyright} • {$theme}</p><p>{$runtime}</p>";
}
?>
摘要线广告
请移步此页
【私人备忘】对于Mirages主题的一些修改 由 天空 Blond 采用 知识共享 署名 - 非商业性使用 - 相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 https://skyblond.info/about.html 处获得。
这排版看得是真的舒服啊!(顺便膜拜一下大佬)⌇●﹏●⌇
妈耶……就我更喜欢小字体的嘛orz
就是不大不小刚刚好的那种
贼适合文艺站子|´・ω・)ノ
我觉得字体小了太费眼睛,这个主题的默认字体在1080p的祖传屏幕上还要凑近看,在带鱼屏上简直就要钻进屏幕里了,我的眼睛实在是遭不住啊qwq
其实就是不大不小刚刚好的那种因为我没用带鱼屏就没什么感觉orz
个人更喜欢Whisper这款Typecho主题的说~
因为觉得那款板子很简约,配色也很清新
比较适合日式小清新的站子啦
※最近看多了日本小清新的素材站随便bb的哈
查了一下那个主题,确实很简约,而且粉色系我爱了,不过Typecho换主题还是挺麻烦的,主要还是好多功能Typecho都不提供,全依赖主题,emmmm,好纠结啊
好诶,尝试改改看
越来越完善啊
博主您好,我想改变字体大小,但是没找到主题设置的css代码在哪里改,可以指点一下吗?感谢@(大拇指)
我是在主题设置里修改的。不过这个还是依主题而异,我用的主题提供了自定义html头的功能,我是把css放在那里的。
咱俩用的是同一个主题@(太开心)。是把html{font-size: 19px;}放在自定义扩展的头部那里是吗?没反应#(害羞)
我在原文中把全部的贴上来了,你看一眼
好嘞~~真好 感谢博主@(太开心)
是typecho的吧?单栏挺好看的。
对
不错的主题 ! 虽然自己从来都是用 Hexo…@(滑稽)
@(滑稽)
用媒体查询改一下移动端的字体大小8
不然太大了,有些不协调#(高兴)
能不能发一下yoduplayer插件,我看看我哪里修改错了?
备忘:主题本身的内容渲染(即`post.php`中的``)会给标题设置锚点,如果替换掉的话会导致目录无法正常工作。因此`回复可见`功能涉及到修改上述代码,致使目录无法正常工作,已经从修改清单中移除并已将源文件恢复原状。
如一定要使用,请考虑使用主题提供的内容生成器,对该生成器产生的文章html代码进行隐藏可见的操作。
你可以把字体调成以px为单位的数字,比如我的博客是18px,看起来还是很舒服的。
太感谢了,因为对php和网页这块不太了解,所以怕麻烦就只认准了主题作者给的。按照您给的18px调了下,感觉还是小2333所以现在是20px,个人的话喜欢大字,这样阅读起来不用太费劲吧。
我手残了,我的是19px,哈哈哈。但是我用css控制手机和平板电脑端,也就是1110px下字号为21px,这样手机看着也舒服。没有基础不怕,我也没有基础,但是时间长了我居然自己会扒主题了。
扒主题我也差不多,基本上知道想要微调哪里怎么改,但是具体的重构或者整合到别的程序里之类的我就鸡肋了2333
大字体莫名觉得好舒服!
嗯,大字体看着痛快
现在手机上看你的站字体贼大,有点老年机的感觉哈哈。不过确实字体大一点眼睛不受罪。
嗯,我比较喜欢字大一点的