离线使用Google Material Icons

本文最后更新于(2023-2-23 09:32:17),链接可能失效,内容可能难以复现。请注意甄别。
引用:https://stackoverflow.com/questions/37270835/how-to-host-material-icons-offline
1. 前往https://github.com/google/material-design-icons/releases下载最新的Releases包。 2. 解压后,将font文件夹整个上传到你的站点根目录。 3. 添加网站对字体格式的支持,在.htaccess文件里加入以下代码:
<FilesMatch ".(eot|ttf|otf|woff|woff2)">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
4. 创建一个css文件,来定义字体,(最新版本里只有ttf和otf两种格式):

文件结构

@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(iconfont/MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
url(iconfont/MaterialIcons-Regular.woff2) format('woff2'),
url(iconfont/MaterialIcons-Regular.woff) format('woff'),
url(iconfont/MaterialIcons-Regular.ttf) format('truetype');
}

.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;

/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;

/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;

/* Support for IE. */
font-feature-settings: 'liga';
}
5. 最后在HTML里调用图标 <span class="material-icons">face</span> 显示效果:
face

Willin Kan的反垃圾评论代码

本文最后更新于(2023-3-5 10:10:14),链接可能失效,内容可能难以复现。请注意甄别。
//Willin Kan的反垃圾评论代码
class anti_spam {
function anti_spam() {
if ( !current_user_can('level_0') ) {
add_action('template_redirect', array($this, 'w_tb'), 1);
add_action('init', array($this, 'gate'), 1);
add_action('preprocess_comment', array($this, 'sink'), 1);
}
}
function w_tb() {
if ( is_singular() ) {
ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",
"textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );
}
}
function gate() {
if ( !empty($_POST['w']) && empty($_POST['comment']) ) {
$_POST['comment'] = $_POST['w'];
} else {
$request = $_SERVER['REQUEST_URI'];
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隐瞒';
$IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过D理)' : $_SERVER["REMOTE_ADDR"];
$way = isset($_POST['w']) ? '手动操作' : '未经评论表格';
$spamcom = isset($_POST['comment']) ? $_POST['comment'] : null;
$_POST['spam_confirmed'] = "请求: ". $request. "\n来路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 记录成功 --";
}
}
function sink( $comment ) {
if ( !empty($_POST['spam_confirmed']) ) {
if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;
//方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可.
die();
//方法二: 标记为 spam, 留在资料库检查是否误判.
//add_filter('pre_comment_approved', create_function('', 'return "spam";'));
//$comment['comment_content'] = "[ 判断这是 Spam! ]\n". $_POST['spam_confirmed'];
}
return $comment;
}
}
$anti_spam = new anti_spam();

(php)25.WordPress访问统计

本文最后更新于(2023-3-5 19:41:03),链接可能失效,内容可能难以复现。请注意甄别。
© Sunplace,2023 根据网上的灵感自己做了一个,省得伸手。 实现功能:
  • 真实的独立访客统计(UV)
  • 刷新页面不增加
  • 用户登录不增加(目前用户为网站管理员)is_user_logged_in()
  • 直接访问不增加(直接在浏览器输入本站地址)$_SERVER['HTTP_REFERER']==''()
数据库建表(建表语句):
# 举例用表,有wordpress数据库前缀"wp_"
# wp_addsettings结构有些复杂,如果只需要一个表来保存UV的值可以更简单
# 我的数据表另有其用
CREATE TABLE `wp_addsettings` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`opname` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`opval` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

# 插入初始值
INSERT INTO `wp_addsettings` VALUES (1, 'uniquevisitor', '0');
页面代码(PHP),在模板的footer.php中加入:
<?php
//将一个数字从低到高每隔三位加一个逗号
function numformat($num){
$num=strrev($num);
$num=chunk_split($num,3,',');
$num=strrev($num);
$num=ltrim($num,',');
return $num;
}

//使用session来记录访问数
session_start();
if(!is_user_logged_in()&&$_SERVER['HTTP_REFERER']!=''&&!isset($_SESSION['uv'])){
$_SESSION['uv']= 0;
$uv++;
$wpdb->update($wpdb->prefix.'addsettings',array('opval'=>$uv),array('opname'=>'uniquevisitor'));
}
echo '访客数(UV):'.numformat($uv);
?>

Markdown CSS测试

本文最后更新于(2023-3-9 11:33:34),链接可能失效,内容可能难以复现。请注意甄别。
[MD]
内容引用 https://dillinger.io/ 本站调用 github-markdown-css,highlight.js,katex 由 Visual Studio Code 创作

Dillinger

1. The Last Markdown Editor, Ever

Build Status Dillinger is a cloud-enabled, mobile-ready, offline-storage compatible, AngularJS-powered HTML5 Markdown editor.
  • Type some Markdown on the left
  • See HTML in the right
  • ✨Magic ✨

2. Features

  • Import a HTML file and watch it magically convert to Markdown
  • Drag and drop images (requires your Dropbox account be linked)
  • Import and save files from GitHub, Dropbox, Google Drive and One Drive
  • Drag and drop markdown and HTML files into Dillinger
  • Export documents as Markdown, HTML and PDF
Markdown is a lightweight markup language based on the formatting conventions that people naturally use in email. As John Gruber writes on the Markdown site
The overriding design goal for Markdown’s formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions.
This text you see here is *actually- written in Markdown! To get a feel for Markdown’s syntax, type some text into the left window and watch the results in the right.

3. Tech

Dillinger uses a number of open source projects to work properly: And of course Dillinger itself is open source with a public repository on GitHub.

4. Installation

Dillinger requires Node.js v10+ to run. Install the dependencies and devDependencies and start the server.1
cd dillinger
npm i
node app
For production environments…
npm install --production
NODE_ENV=production node app

5. Plugins

Dillinger is currently extended with the following plugins. Instructions on how to use them in your own application are linked below.
Plugin README
Dropbox plugins/dropbox/README.md
GitHub plugins/github/README.md
Google Drive plugins/googledrive/README.md
OneDrive plugins/onedrive/README.md
Medium plugins/medium/README.md
Google Analytics plugins/googleanalytics/README.md

6. Development

Want to contribute? Great! Dillinger uses Gulp + Webpack for fast developing. Make a change in your file and instantaneously see your updates! Open your favorite Terminal and run these commands. First Tab:
node app
Second Tab:
gulp  watch
(optional) Third:
karma test

6.1. Building for source

For production release:
gulp build --prod
Generating pre-built zip archives for distribution:
gulp build dist --prod

7. Docker

Dillinger is very easy to install and deploy in a Docker container. By default, the Docker will expose port 8080, so change this within the Dockerfile if necessary. When ready, simply use the Dockerfile to build the image.
cd dillinger
docker build -t <youruser>/dillinger:${package.json.version} .
This will create the dillinger image and pull in the necessary dependencies. Be sure to swap out ${package.json.version} with the actual version of Dillinger. Once done, run the Docker image and map the port to whatever you wish on your host. In this example, we simply map port 8000 of the host to port 8080 of the Docker (or whatever port was exposed in the Dockerfile):
docker run -d -p 8000:8080 --restart=always --cap-add=SYS_ADMIN --name=dillinger <youruser>/dillinger:${package.json.version}
Note: --capt-add=SYS-ADMIN is required for PDF rendering.
Verify the deployment by navigating to your server address in your preferred browser.
127.0.0.1:8000

8. License

MIT Free Software, Hell Yeah!

公式2

贝塞尔曲线公式:
$$J_\alpha(x) = \sum_{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} {\left({ \frac{x}{2} }\right)}^{2m + \alpha}$$

Jα(x)=m=0(1)mm!Γ(m+α+1)(x2)2m+αJ_\alpha(x) = \sum_{m=0}^\infty \frac{(-1)^m}{m! \Gamma (m + \alpha + 1)} {\left({ \frac{x}{2} }\right)}^{2m + \alpha}

脚注

  1. 高亮代码需要引入Hightlight.js。↩︎
  2. 公式支持需要引入Katex的CSS样式文件。↩︎