<?php
//php 不同系统的换行
//不同系统之间换行的实现是不一样的
//linux 与unix中用 \n
//MAC 用 \r
//window 为了体现与linux不同 则是 \r\n
//所以在不同平台上 实现方法就不一样
//php 有三种方法来解决
//1、使用str_replace 来替换换行
$str = str_replace(array("\r\n", "\r", "\n"), "", $str);
//2、使用正则替换
$str = preg_replace('//s*/', '', $str);
//3、使用php定义好的变量 (建议使用)
$str = str_replace(PHP_EOL, '', $str);
?>
Markdown image 替换为 html标签
使用Typora可以实现公式的预览,图片自动上传到服务器,但图片是markdown语法,这里实现从Markdown 转化为 Html的 img标签
public static function imageReplace($content)
{
$pattern = ['/!\[img\]\((.*)\)/U','/<p>\s*<\/p>/U'];
$replacement = ['<img src="\\1" \/>',''];
return preg_replace($pattern, $replacement, $content);
}
打赏插件tctip使用方法
tctip是什么
tctip是一个js插件,作用是在web网页右侧生成一个打赏浮动窗
官方文档:https://github.com/greedying/tctip
插件效果
效果演示:http://greedying.com/tctip/
效果截图

教程请见
https://www.cnblogs.com/an-shiguang/p/14382903.htmlTypora收费?Mark Text拯救你
免费开源的Mark Text
Mark Text是完全免费且开源的软件,其功能和使用几乎和Typora一样!
因此,如果你喜欢Typora,那么你也一定不会讨厌Mark Text!
官方网址:https://marktext.app/实现键盘相关操作
想要实现在写作时作用Enter来提交,作用Ctrl+S保存
document.onkeydown=keyDownSearch;
function keyDownSearch(e) {
// 兼容FF和IE和Opera
var theEvent = e || window.event;
var code = theEvent.keyCode || theEvent.which || theEvent.charCode;
if (code == 13) {
$("#todo-btn").trigger('click');
return false;
}
return true;
}
解决动态ajax/pjax加载mathjax不生效问题
<!DOCTYPE html>
<html>
<head>
<title>MathJax TeX Test Page</title>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
</script>
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
</head>
<body>
When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
</body>
</html>
只要引入mathjax的js地址,配置config,就能自动识别文章中的数学公式写法。显示效果如下:

正常情况下使用,是可以实现显示数学公式的,但是如果你的页面使用了动态加载,即ajax或pjax的情况下,mathjax就不能顺利的渲染出数学公式了。
咳咳,解决动态适配的事情也不是一次两次了,添加事件可以用jquery的on方法委托。在动态调用后执行可以在$.ajax的success方法后执行相关业务逻辑。 pjax则在complete或end后执行相关业务逻辑代码。这里我拿pjax做演示,代码类似下面:
$(document).pjax('a[target!=_top]', '#page', {
fragment: '#page',
timeout: 8000,
}).on('pjax:send', function () {
do something
}).on('pjax:complete', function () {
$.getScript("//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML", function() {
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
});
});
想法是在pjax加载complete之后加载mathjax的js依赖,在配置config,因为之前正常使用也是这样的。但是很遗憾,还是没有正常显示。
后来锲而不舍的找到了MathJax.Hub.Typeset()这个方法,结合Queue方法就能实现(不要问我为啥是中文文档,谷歌翻译了解下)
....
.on('pjax:complete', function () {
$.getScript("//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML", function() {
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});
// entry-content是文章页的内容div的class
var math = document.getElementsByClassName("entry-content")[0];
MathJax.Hub.Queue(["Typeset",MathJax.Hub,math]);
});
});
Katex使用记录
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.css" integrity="sha384-R4558gYOUz8mP9YWpZJjofhk+zx0AS11p36HnD2ZKj/6JR5z27gSSULCNHIRReVs" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/katex.min.js" integrity="sha384-z1fJDqw8ZApjGO3/unPWUPsIymfsJmyrDVWC8Tv/a1HeOtGmkwNd/7xUS0Xcnvsx" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.1/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
renderMathInElement(document.getElementById('test'), {
// customised options
// • auto-render specific keys, e.g.:
delimiters: [
{left: '$$', right: '$$', display: true},
{left: '$', right: '$', display: false},
{left: '\\(', right: '\\)', display: false},
{left: '\\[', right: '\\]', display: true}
],
// • rendering keys, e.g.:
throwOnError : false
});
});
</script>
以上代码可以实现公式的渲染,但不能在Ajax加载时渲染,在使用Ajax加载时去除DOMContentLoaded监听即可
Bookeditor
一个开源的Markdown在线写书编辑器
码云地址:https://gitee.com/beibq/bookeditor
github地址:https://github.com/chaijunit/bookeditor
Bookeditor依赖的开源项目
示例
SSL证书布署
- 状态file文件待验证请创建fileauth.txt添加到如下指定位置,完成后:立即验证域名文件位置文件名文件内容/.well-known/pki-validation/fileauth.txt *******************fileauth.txt内容************************
- 文件核查http://blog.yuekegu.com/.well-known/pki-validation/fileauth.txt
- 证书类型TrustAsia TLS RSA CA(1年)
- 通用名称blog.yuekegu.com
- 提交时间2021/09/29 06:34:21
基于 PHP 和 word2vec 的简单分类器
基于 PHP 和 word2vec 的简单分类器,用于文章、新闻等内容自动分类,项目包含样本训练、识别代码,
分词组件用的是 PhpAnalysis,简单灵活。欢迎大家一起优化并完善。
项目地址: