首页
留言板
关于
壁纸
更多
直播
友链
Search
1
安卓、电脑版v2rayN下载
2,321 阅读
2
Joe — 一款个人类型Typecho主题
403 阅读
3
我的世界自定义表情符号和符号
384 阅读
4
我的世界同一台机器上运行的客户端连接到服务器时
262 阅读
5
Typecho生成HTML静态网页 提高网站打开速度
258 阅读
我的世界
基岩版
Java
服务器
JavaScript插件练习
typecho
插件
主题
源码分享
技术分享
游戏辅助
软件工具
手机软件
电脑软件
闲聊
登录
/
注册
Search
标签搜索
typecho
炫杰
累计撰写
51
篇文章
累计收到
7
条评论
今日撰写
0
篇文章
首页
栏目
我的世界
基岩版
Java
服务器
JavaScript插件练习
typecho
插件
主题
源码分享
技术分享
游戏辅助
软件工具
手机软件
电脑软件
闲聊
页面
留言板
关于
壁纸
直播
友链
用户登录
登录
注册
搜索到
5
篇与
的结果
2024-02-29
Typecho自定义后台编辑器功能
首先看下效果图 {alert type="success"}上面的增加按钮很简单,append一个li标签就可以实现,主要是在于向文本框中插入内容,以及输入键盘按键也能实现插入对应的功能。在网上百度了一番,都是互相抄袭,而且也不封装一下,有bug都没人解决,很无奈自己折腾了一个{/alert}使用方法{alert type="info"}首先在你的主题 functions.php 里增加一个插件函数,这个函数的用途是在编辑文章和编辑页面里面引入自定义JS{/alert}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); });
2024年02月29日
28 阅读
0 评论
0 点赞
2023-02-15
Typecho中的SVG不显示怎么办
Typecho前台页面中的SVG突然之间就不显示了,如果没有改动代码的情况下,很有可能时因为你装插件的时候选择加载外部JQuery库仔细检查一下插件就好了
2023年02月15日
72 阅读
0 评论
0 点赞
2022-09-25
Typecho创建自定义模板
{mtitle title="自定义首页模板"/}在当前主题目录下面建你需要的文件(例如:home.php),然后再文件的开头加上如下代码(需在 @package 后面加上 index)就算是自定义了好了一个首页<?php /** * 自定义首页模板 * * @package index */然后进入后台的『设置』-『文章』页面,选择“站点首页”中的“直接调用【home.php】模板文件”,保存即可{mtitle title="自定义页面模板"/}只需要在当前主题目录下面建你需要的文件,然后再文件的开头加上如下代码(需在 package 后面加上 custom)就算是自定义了好了一个页面,可以自定义多个页面<?php /** * 自定义页面模板 * * @package custom */注:其中 @package custom 是必须的,然后进入 typecho 后台在『创建页面』的【展开高级选项】里就可以看到{mtitle title="自定义分类模板"/}方法一:直接在当前模板目录下建立一个名为 category 的目录,然后在里面放上以你需要单独做模板分类的缩略名为文件名的 php 文件,比如 default.php,这样,在访问缩略名为default的分类时,它会自动调用这个模板。方法二:在模板文件中使用 is 语法判断页面<?php if ($this->is('category', 'default')): ?> //默认分类模板 <?php endif; ?> <?php if ($this->is('category', 'category2')): ?> //分类2模板 <?php endif; ?>{mtitle title="自定义页面列表显示条"/}模板目录下建立一个名为 functions.php的文件 然后里面写一个函数(示例是控制 jobs分类下的文章列表显示条数为 10 条)function themeInit($archive) { if ($archive->is('category', 'jobs')) { $archive->parameter->pageSize = 10; // 自定义条数 } }本函数在版本号为 Revision: 1466 (2010-06-28) 及以后有效
2022年09月25日
135 阅读
0 评论
0 点赞
2022-09-25
Typecho去掉index.php
Typecho去掉index.php
2022年09月25日
92 阅读
0 评论
0 点赞
2022-07-25
Typecho开启Gzip压缩加速网站
Gzip简介GZip压缩,是一种网站速度优化技术,也是一把SEO优化利器,许多网站都采用了这种技术,以达到提升网页打开速度、缩短网页打开时间的目的。网站采用Gzip压缩,还有一个好处,就是让你少了一份流量超标的担心。因为Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,而这个,也正是提升网页打开时间的原因所在。首先看未开启的效果(本主题为例) 从上图可以看到,这个api接口的大小是21kb,请求时间539ms接着开启gzip压缩 很明显的可以看到区别,压缩后只有4.5kb大小,并且时间缩短到了99ms,极大的优化了网站速度 ### 开启方法 打开typecho目录下的 ~index.php~,并在开头添加 ~ob_start('ob_gzhandler');~ 即可。
2022年07月25日
126 阅读
0 评论
0 点赞