首页
关于
友联
直播
更多
视频
壁纸
推荐
百度一下
腾讯视频
Search
1
Joe开源目录程序系统
949 阅读
2
Typecho自定义后台编辑器功能
665 阅读
3
Typecho实现评论显示操作系统和评论来源
391 阅读
4
炫酷的烟花绽放源码
308 阅读
5
Joe主题实现自动更新
277 阅读
WEB前端
JavaScript
CSS
Vue
Typecho
小程序
苹果CMS
影视分享
其他
Search
Joe
累计撰写
35
篇文章
累计收到
281
条评论
首页
栏目
WEB前端
JavaScript
CSS
Vue
Typecho
小程序
苹果CMS
影视分享
其他
页面
关于
友联
直播
视频
壁纸
推荐
百度一下
腾讯视频
搜索到
6
篇与
Typecho
的结果
Joe主题帮助文档
2021年02月25日
143 阅读
8 评论
5 点赞
2021-02-25
本文为Joe主题帮助及演示使用,您可以在下方找到您的问题及解决方案{card-default width="100%" label="主题下载"}1、QQ群下载:1989637762、GitHub下载(推荐):https://github.com/HaoOuBa/Joe(帮忙点个star){/card-default}{card-default width="100%" label="主题亮点"}1、增强Typecho的后台编辑器,后台编辑器更加强大(支持插入表情、粘贴上传等)2、响应式布局,并且不依赖任何响应式框架3、内置超强视频功能、包含直播功能、全网影视功能、文章内插入视频功能4、主题SEO极致优化,Lighthouse SEO跑分100分5、主题自定义极强,后台有着丰富的设置6、主题色彩全局公用、小白轻松直接修改整站自定义主题色7、主题内置代码高亮、无需借助任何插件、支持几十种语言8、主题内置丰富的短代码、帮助你更好的编写文章,例如插入音乐等9、主题首发极强画图回复功能,能给你的博客减少跳出率,留着用户访问时间10、文章侧栏、首页列表、TDL轻松修改11、主题自带超强壁纸功能、全网影视功能,为你的博客带来更大的流量12、主题内置sitemap、百度推送、友联、回复可见等,无需依赖任何插件13、主题持续更新,永久免费!14、如果你认可本主题,只求能够动个小手在github上为本主题点个star即可{/card-default}{mtitle}华丽的分割线{/mtitle}文本加粗演示欢迎使用 Joe 主题实现教程: 在需要加粗的文本两侧使用两个星号包裹 例如:欢迎使用 **Joe** 主题文本倾斜演示欢迎使用 Joe 主题实现教程: 在需要倾斜的文本两侧使用一个星号包裹 例如:欢迎使用 *Joe* 主题文本加粗并倾斜演示欢迎使用 Joe 主题实现教程: 在需要倾斜的文本两侧使用三个星号包裹 例如:欢迎使用 ***Joe*** 主题超链接演示https://as.js.cn实现教程: 直接写URL链接 例如:https://as.js.cn插入图片演示主题自带有图片上传功能,并且该功能可随时开启关闭,同时图片也带有灯箱预览功能实现教程: 直接插入图片即可有序列表演示项目列表1项目列表2项目列表3实现教程: 在 . 后面加上空格即可,例如 1. 项目列表1 2. 项目列表2 3. 项目列表3无序列表演示无序列表1无序列表2无序列表3实现教程: 在 - 后面加上空格即可,例如 - 无序列表1 - 无序列表2 - 无序列表3回复可见演示{hide}这里的内容,没有登陆是看不了的,必须回复了才会显示{/hide}实现教程: 后台编辑器有插入此功能的按钮,这里为了防止自动解析成回复可见,加上了@符号,使用时将@符号删除,例如 {@hide}这里的内容,没有登陆是看不了的,必须回复了才会显示{@/hide} 注意:写完后,需要退出登录,或切换其他浏览器回复可见这个功能才会显示。不要问我,为什么我写了这个之后,没有出现回复可见,你自己写的文章自己当然能看见!!!网易云歌单演示{music-list id="5370364292" /}实现教程: 后台编辑器有插入此功能的按钮,这里为了防止自动解析成网易云歌单,加上了@符号,使用时将@符号删除,例如 {@music-list id="5370364292" /}插入网易云单首演示{music id="1808492017" /}实现教程: 后台编辑器有插入此功能的按钮,这里为了防止自动解析成网易云,加上了@符号,使用时将@符号删除,例如 {@music id="1808492017" /}插入本地音乐演示{mp3 src="https://cdn.jsdelivr.net/gh/HaoOuBa/BlogStatic/usr/uploads/2021/02/862477730.mp3" /}实现教程: 后台编辑器有插入此功能的按钮,这里为了防止自动解析成插入音乐,加上了@符号,使用时将@符号删除,例如 {@mp3 src="https://cdn.jsdelivr.net/gh/HaoOuBa/BlogStatic/usr/uploads/2021/02/862477730.mp3" /}还有很多的功能与教程,懒得去写,每天补充写一些。
2021-02-21
Joe5.0.0版本修改透明、主题色等教程
用过本站主题的老用户都知道,在4.7.6版本之前都可以在后台自定义各种色彩,在5.0.0版本后,该设置功能已经去除,去除的原因是为了避免阻塞的问题。在新版本中,所有功能依旧可以自定义自定义教程打开后台,找到外观设置,自定义css选项然后输入框内填入以下内容:--theme 用于主题色--background 用于修改背景,例如修改半透明等当然,还可以修改其他样式,这里只写2个,当个例子
2021年02月21日
274 阅读
1 评论
9 点赞
2021-02-20
Typecho开启Gzip压缩加速网站
Gzip简介GZip压缩,是一种网站速度优化技术,也是一把SEO优化利器,许多网站都采用了这种技术,以达到提升网页打开速度、缩短网页打开时间的目的。网站采用Gzip压缩,还有一个好处,就是让你少了一份流量超标的担心。因为Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,而这个,也正是提升网页打开时间的原因所在。首先看未开启的效果(本主题为例)从上图可以看到,这个api接口的大小是21kb,请求时间539ms接着开启gzip压缩很明显的可以看到区别,压缩后只有4.5kb大小,并且时间缩短到了99ms,极大的优化了网站速度开启方法打开typecho目录下的 index.php,并在开头添加 ob_start('ob_gzhandler'); 即可。
2021年02月20日
135 阅读
0 评论
5 点赞
Joe主题实现自动更新
Joe主题更新到5.0.0版本后,因为属于重构版本,所以很多功能没有加上,需要频繁更新,但是每次更新都需要下载,然后删除老版本,在上传新版本,今天群里有个人分享的自动更新教程写的很好,于是我把补充的详细点原文章链接:https://www.ysni.cn/1225.html{mtitle}下面是教程(宝塔为例){/mtitle}第一步,设置权限将 usr/themes 文件夹的权限设置成 777第二步,下载主题1、打开 shell 窗口 (也称为终端)2、输入 cd /www/wwwroot/网站目录/usr/themes/,并按回车 (注意:需要将网站目录改成你的网站目录)3、上面的那句代码的意思是:进入到博客网站的 themes 这个文件夹里,进入后,会显示下面的样子4、接着输入 git clone https://github.com/HaoOuBa/Joe.git,并按回车,如果成功会从出现下面的样子。(这句话的意思是下载github上的代码)5、如果上面都没问题,说明代码拷贝成功了,会发现Joe主题目录,多了个 .git 的文件夹,如下图所示第三步,设置自动更新主题1、进入宝塔 计划任务 页面2、任务类型选择 Shell 脚本3、任务名称,可以随便写一个,例如我写的是:Joe主题更新4、执行周期,就是多久更新一次,这个可以随便写,例如我设置的是每30分钟检测一次更新5、脚本内容,填写如下,注意需要将网站目录替换成你的#!/bin/sh cd /www/wwwroot/网站目录/usr/themes/Joe git pull完整的设置内容如下第四步,判断是否正常1、上面步骤都完成后,点击这里的 执行2、然后点击 执行 右侧的 日志 按钮,如果内容显示如下,则代表没有任何问题
2021年02月20日
277 阅读
1 评论
8 点赞
Typecho自定义后台编辑器功能
首先看下效果图{message type="info"}上面的增加按钮很简单,append一个li标签就可以实现,主要是在于向文本框中插入内容,以及输入键盘按键也能实现插入对应的功能。在网上百度了一番,都是互相抄袭,而且也不封装一下,有bug都没人解决,很无奈自己折腾了一个{/message}使用方法{message type="warning"}首先在你的主题 functions.php 里增加一个插件函数,这个函数的用途是在编辑文章和编辑页面里面引入自定义JS{/message}Typecho_Plugin::factory('admin/write-post.php')->bottom = array('Editor', 'edit'); Typecho_Plugin::factory('admin/write-page.php')->bottom = array('Editor', 'edit'); class Editor { public static function edit() { echo "<script src='" . Helper::options()->themeUrl . '/typecho/editor/joe.extend.js' . "'></script>"; echo "<script src='" . Helper::options()->themeUrl . '/typecho/editor/joe.editor.js' . "'></script>"; } }下面的 joe.extend.js 没压缩也没加密,下面是 joe.extend.js 源码(function ($) { $.fn.extend({ /* 按键盘实现插入内容 */ shortcuts: function () { this.keydown(function (e) { var _this = $(this); e.stopPropagation(); if (e.altKey) { switch (e.keyCode) { case 67: _this.insertContent('[code]' + _this.selectionRange() + '[/code]'); break; } } }); }, /* 插入内容 */ insertContent: function (myValue, t) { var $t = $(this)[0]; if (document.selection) { this.focus(); var sel = document.selection.createRange(); sel.text = myValue; this.focus(); sel.moveStart('character', -l); var wee = sel.text.length; if (arguments.length == 2) { var l = $t.value.length; sel.moveEnd('character', wee + t); t <= 0 ? sel.moveStart('character', wee - 2 * t - myValue.length) : sel.moveStart('character', wee - t - myValue.length); sel.select(); } } else if ($t.selectionStart || $t.selectionStart == '0') { var startPos = $t.selectionStart; var endPos = $t.selectionEnd; var scrollTop = $t.scrollTop; $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length); this.focus(); $t.selectionStart = startPos + myValue.length; $t.selectionEnd = startPos + myValue.length; $t.scrollTop = scrollTop; if (arguments.length == 2) { $t.setSelectionRange(startPos - t, $t.selectionEnd + t); this.focus(); } } else { this.value += myValue; this.focus(); } }, /* 选择 */ selectionRange: function (start, end) { var str = ''; var thisSrc = this[0]; if (start === undefined) { if (/input|textarea/i.test(thisSrc.tagName) && /firefox/i.test(navigator.userAgent)) str = thisSrc.value.substring(thisSrc.selectionStart, thisSrc.selectionEnd); else if (document.selection) str = document.selection.createRange().text; else str = document.getSelection().toString(); } else { if (!/input|textarea/.test(thisSrc.tagName.toLowerCase())) return false; end === undefined && (end = start); if (thisSrc.setSelectionRange) { thisSrc.setSelectionRange(start, end); this.focus(); } else { var range = thisSrc.createTextRange(); range.move('character', start); range.moveEnd('character', end - start); range.select(); } } if (start === undefined) return str; else return this; } }); })(jQuery);上面的shortcuts方法主要用于实现按下键盘插入内容接着看 joe.edit.js的内容/* 增加自定义功能 */ const items = [ { title: '回复可见', id: 'wmd-hide-button', svg: '<svg t="1612402690962" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15751" width="20" height="20"><path d="M554.666667 438.101333V277.333333h-85.333334v160.768L330.112 357.717333l-42.666667 73.898667L426.666667 512l-139.221334 80.384 42.666667 73.898667L469.333333 585.898667V746.666667h85.333334v-160.768l139.221333 80.384 42.666667-73.898667L597.333333 512l139.221334-80.384-42.666667-73.898667L554.666667 438.101333z" p-id="15752" fill="#9b9b9b"></path></svg>', text: '\n[@hide]这里的内容回复后才能看见[/hide]\n' } ]; items.forEach(_ => { let item = $(`<li class="wmd-button" id="${_.id}" title="${_.title}">${_.svg}</li>`); item.on('click', function () { $('#text').insertContent(_.text); }); $('#wmd-button-row').append(item); });
2021年02月08日
665 阅读
8 评论
20 点赞
2021-02-08
Typecho实现评论显示操作系统和评论来源
{message type="info"}首先打开 functions.php 文件,粘贴下面的代码{/message}// 获取浏览器信息 function getBrowser($agent) { if (preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs)) { $outputer = 'Internet Explore'; } else if (preg_match('/FireFox\/([^\s]+)/i', $agent, $regs)) { $str1 = explode('Firefox/', $regs[0]); $FireFox_vern = explode('.', $str1[1]); $outputer = 'FireFox'; } else if (preg_match('/Maxthon([\d]*)\/([^\s]+)/i', $agent, $regs)) { $str1 = explode('Maxthon/', $agent); $Maxthon_vern = explode('.', $str1[1]); $outputer = 'MicroSoft Edge'; } else if (preg_match('#360([a-zA-Z0-9.]+)#i', $agent, $regs)) { $outputer = '360 Fast Browser'; } else if (preg_match('/Edge([\d]*)\/([^\s]+)/i', $agent, $regs)) { $str1 = explode('Edge/', $regs[0]); $Edge_vern = explode('.', $str1[1]); $outputer = 'MicroSoft Edge'; } else if (preg_match('/UC/i', $agent)) { $str1 = explode('rowser/', $agent); $UCBrowser_vern = explode('.', $str1[1]); $outputer = 'UC Browser'; } else if (preg_match('/QQ/i', $agent, $regs)||preg_match('/QQ Browser\/([^\s]+)/i', $agent, $regs)) { $str1 = explode('rowser/', $agent); $QQ_vern = explode('.', $str1[1]); $outputer = 'QQ Browser'; } else if (preg_match('/UBrowser/i', $agent, $regs)) { $str1 = explode('rowser/', $agent); $UCBrowser_vern = explode('.', $str1[1]); $outputer = 'UC Browser'; } else if (preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs)) { $outputer = 'Opera'; } else if (preg_match('/Chrome([\d]*)\/([^\s]+)/i', $agent, $regs)) { $str1 = explode('Chrome/', $agent); $chrome_vern = explode('.', $str1[1]); $outputer = 'Google Chrome'; } else if (preg_match('/safari\/([^\s]+)/i', $agent, $regs)) { $str1 = explode('Version/', $agent); $safari_vern = explode('.', $str1[1]); $outputer = 'Safari'; } else{ $outputer = 'Google Chrome'; } echo $outputer; } // 获取操作系统信息 function getOs($agent) { $os = false; if (preg_match('/win/i', $agent)) { if (preg_match('/nt 6.0/i', $agent)) { $os = 'Windows Vista · '; } else if (preg_match('/nt 6.1/i', $agent)) { $os = 'Windows 7 · '; } else if (preg_match('/nt 6.2/i', $agent)) { $os = 'Windows 8 · '; } else if(preg_match('/nt 6.3/i', $agent)) { $os = 'Windows 8.1 · '; } else if(preg_match('/nt 5.1/i', $agent)) { $os = 'Windows XP · '; } else if (preg_match('/nt 10.0/i', $agent)) { $os = 'Windows 10 · '; } else{ $os = 'Windows X64 · '; } } else if (preg_match('/android/i', $agent)) { if (preg_match('/android 9/i', $agent)) { $os = 'Android Pie · '; } else if (preg_match('/android 8/i', $agent)) { $os = 'Android Oreo · '; } else { $os = 'Android · '; } } else if (preg_match('/ubuntu/i', $agent)) { $os = 'Ubuntu · '; } else if (preg_match('/linux/i', $agent)) { $os = 'Linux · '; } else if (preg_match('/iPhone/i', $agent)) { $os = 'iPhone · '; } else if (preg_match('/mac/i', $agent)) { $os = 'MacOS · '; }else if (preg_match('/fusion/i', $agent)) { $os = 'Android · '; } else { $os = 'Linux · '; } echo $os; }{message type="warning"} comments.php 中找到合适位置(比如评论作者的后面)添加以下代码{/message}<?php getOs($comments->agent); ?><?php getBrowser($comments->agent); ?>
2021年02月08日
391 阅读
5 评论
12 点赞