分享 on 资深网民孙先生https://www.sunpeiwen.com/categories/%E5%88%86%E4%BA%AB/Recent content in 分享 on 资深网民孙先生Hugozh-cnSat, 24 Aug 2024 00:00:00 +0000通过取子集的方式压缩霞鹜文楷字体https://www.sunpeiwen.com/posts/yasuoziti/Sat, 24 Aug 2024 00:00:00 +0000https://www.sunpeiwen.com/posts/yasuoziti/使用python 这里使用到的是Python 的库:fonttools 使用最新版 Python 的 pip 命令安装即可在 Shell 中使用: pip install fonttools 常用汉字大约有3500字 中文常用字库项目https://github.com/DavidSheh/CommonChineseCharacter 取子集 使用以下命令即可对字体文件取子集 fonttools subset "$input_file" --text-file="$text_file" --output-file="$output_file" 其中 $input_file:输入的字体文件。 $text_file:定义保留字符的纯文本文件路径。 $output_file:输出的字体文件路径。 取完子集完成之后字体从11M压缩到1.7M左右 压缩 安装模块brotli pip install brotli 使用命令 fonttools ttLib.woff2 compress "$input_file" -o "$output_file" 其中 $input_file:输入的字体文件。 $output_file:输出的字体文件路径。 再次压缩为 woff2 字体格式 大约840kbStack - 一个新的typecho主题https://www.sunpeiwen.com/posts/stack/Thu, 11 Jul 2024 13:46:56 +0800https://www.sunpeiwen.com/posts/stack/前言 本主题 从Hugo主题Stack移植而来. 原项目 https://github.com/CaiJimmy/hugo-theme-stack 使用 站点 LOGO 地址 为左侧边栏头像 站点 Favicon 地址 Favicon 归档页面地址 创建归档页面后,在此填入 链接页面地址 使用links插件 创建链接页面后,在此填入 关于页面地址 创建关于页面后,在此填入 自定义菜单 <li > <a href='/' > <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-home" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z"/><polyline points="5 12 3 12 12 3 21 12 19 12" /><path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" /><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" /></svg> <span>首页</span> </a> </li> 按照此格式填入使用mastodon为自己的博客新建说说页面https://www.sunpeiwen.com/posts/mastodon-html/Fri, 31 May 2024 06:59:00 +0000https://www.sunpeiwen.com/posts/mastodon-html/项目 https://gitlab.com/idotj/mastodon-embed-feed-timeline GoToSocial与mastodon适用 实现步骤 新建页面把以下代码复制粘贴,更改其中的实例地址和user id即可 设置 如何设置 获取user_id的方法 右键点击自己的头像,新标签页打开 获得头像地址为 https://im.loliko.cn/accounts/avatars/111/363/033/003/475/492/original/f726dbce158df8b9.jpg 从avatars/之后/original之前的一串数字111/363/033/003/475/492/去掉所有的/得到**111363033003475492**即是 user_id \ 参数 // 默认: “ https://mastodon.social ” instanceUrl: “实例地址”, // 可选模式: ’local’, ‘profile’, ‘hashtag’ 默认为’local’ timelineType: “local”, // 你的用户ID,默认为空 userId: “”, // 你在实例中的用户名以@开头 // 如果你没有选择 ‘profile’ 作为时间轴,则留空,默认留空 profileName: “”, // 标签名称 (不包含#符号) 如果不选择 hashtag 模式则留空,默认为空 hashtagName: “”, // 可选风格样式: “light”, “dark” or “auto” 默认为: “auto” defaultTheme: “auto”, // 请求的帖子数量,默认: “20” maxNbPostFetch: “20”, // 在时间轴显示最大的帖子数量,默认 : “20” maxNbPostShow: “20”,Moments:一个仿微信朋友圈项目https://www.sunpeiwen.com/posts/moments_as_wechat_friends/Mon, 06 May 2024 19:42:55 +0800https://www.sunpeiwen.com/posts/moments_as_wechat_friends/项目简介 本项目是由mblog的作者最新开发的仿微信朋友圈的微博,基于NEXTJS+SQLITE3. 目前正在快速迭代更新中.. 支持匿名评论/点赞 支持引入网易云音乐,b站视频,插入链接等 支持自定义头图,个人头像,网站标题等 支持上传图片到S3兼容的云存储,支持本地存储 适配手机 支持暗黑模式 数据库采用sqlite,可随时备份 支持引入豆瓣读书/豆瓣电影,样式来源于这里 项目地址 https://github.com/kingwrcy/moments 预览 预览 部署步骤 建议使用Docker Compose方式部署 mkdir /home/moments cd /home/moments nano docker-compose.yaml 复制以下内容粘贴 version: '3' services: moments: image: kingwrcy/moments:latest ports: - "3000:3000" volumes: - ./data:/app/data - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - ./config.properties:/app/data/config.properties:ro 然后 nano config.properties 把以下内容复制粘贴 # 站点url包括http/https NUXT_PUBLIC_SITE_URL= #是否启用评论 NUXT_PUBLIC_MOMENTS_COMMENT_ENABLE=true #是否显示评论 NUXT_PUBLIC_MOMENTS_SHOW_COMMENT=true #评论最大字数 NUXT_PUBLIC_MOMENTS_COMMENT_MAX_LENGTH=120 #评论的显示顺序,desc:倒序,asc:顺序 NUXT_PUBLIC_MOMENTS_COMMENT_ORDER_BY=desc #是否显示引入豆瓣读书/视频按钮 NUXT_PUBLIC_MOMENTS_TOOLBAR_ENABLE_DOUBAN=true #是否显示引入网易云音乐按钮 NUXT_PUBLIC_MOMENTS_TOOLBAR_ENABLE_MUSIC163=true #是否显示引入youtube,b站,在线视频按钮 NUXT_PUBLIC_MOMENTS_TOOLBAR_ENABLE_VIDEO=true #单条发言最大行数,最大10行 NUXT_PUBLIC_MOMENTS_MAX_LINE=4 #recaptchaV3代码中使用此网站密钥 NUXT_PUBLIC_GOOGLE_RECAPTCHA_SITE_KEY= #分页大小 NUXT_PUBLIC_PAGE_SIZE=10 #private #recaptchaV3通信密钥 NUXT_GOOGLE_RECAPTCHA_SECRET_KEY= #是否启用评论通知 NUXT_PUBLIC_NOTIFY_BY_EMAIL_ENABLE=false #管理员邮箱 NUXT_NOTIFY_MAIL= #邮局服务器地址 NUXT_MAIL_HOST= #邮局服务器端口465端口一般是加密的,587端口一般是不加密的 NUXT_MAIL_PORT=587 #邮局安全连接true/false NUXT_MAIL_SECURE=false #邮箱用户名 NUXT_MAIL_NAME= #邮箱密码 NUXT_MAIL_PASSWORD= #邮箱发件人 NUXT_MAIL_FROM= #邮箱发件人名称 NUXT_MAIL_FROM_NAME= #是否启用阿里云文本审核(只针对评论) NUXT_PUBLIC_ALIYUN_TEXT_JUDGE_ENABLE=false #阿里云AccessKey ID NUXT_ALIYUN_ACCESS_KEY_ID= #阿里云AccessKey Secret NUXT_ALIYUN_ACCESS_KEY_SECRET= 根据注释内容修改参数解决Typecho博客全球通用头像Gravatar不显示方法https://www.sunpeiwen.com/posts/typecho-gravatar-proxy/Tue, 12 Dec 2023 04:49:39 +0000https://www.sunpeiwen.com/posts/typecho-gravatar-proxy/替换头像源 使用国内cdn加速 在config中任意位置加入以下 define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.v2ex.com/avatar/'); https://cdn.v2ex.com/avatar/可更改为其他CDN头像源 当然也可以通过vercel反向代理建立自己的镜像头像地址巨械师X99M+RX5600XT黑苹果OC0.9.5引导https://www.sunpeiwen.com/posts/hackintosh-oc-bootloader-for-x99m/Tue, 05 Sep 2023 13:42:00 +0000https://www.sunpeiwen.com/posts/hackintosh-oc-bootloader-for-x99m/配置 巨械师X99M E5 2680 V4 三星DDR4 64G ECC内存 梵想1TB SSD 蓝宝石RX5600XT 6G 机箱 鱼巢S5 电源 长城700W金牌 网卡 BCM94360CS2 截图 下载地址 https://pan.sunpeiwen.com/%E9%98%BF%E9%87%8C%E4%BA%91%E7%9B%98/%E9%BB%91%E8%8B%B9%E6%9E%9C/X99%20%E5%B7%A8%E6%A2%B0%E5%B8%88/EFI.zip精粤h97i gaming+e3 1231 v3+rx560黑苹果引导https://www.sunpeiwen.com/posts/jingyue-h97i-gaming-hackintosh/Tue, 05 Sep 2023 10:32:00 +0000https://www.sunpeiwen.com/posts/jingyue-h97i-gaming-hackintosh/配置 主板 精粤h97i gaming cpu e3 1231 v3 内存16g ddr3 显卡 rx560 硬盘 480ssd 网卡bcm943224 截图 硬件参数.png bios设置 禁止csm 禁止cfg lock 打开 above 4g 引导下载 EFI.zip在fly.io部署Gotosocial-一个 ActivityPub 联邦社交网络程序.https://www.sunpeiwen.com/posts/deploy-gotosocial-an-activitypub-federated-social-networking-program/Thu, 17 Aug 2023 03:21:00 +0000https://www.sunpeiwen.com/posts/deploy-gotosocial-an-activitypub-federated-social-networking-program/关于Gotosocial GoToSocial 是一个十分轻量(轻量到甚至没有用户界面,需要使用第三方程序登录、兼容 Mastodon 应用进行使用)的 ActivityPub 联邦社交网络程序,自建 GoToSocial 可以避免您的信息因为所在实例倒闭、不可抗力等原因化为乌有。 准备 注册 Fly.io 账号,并绑卡(避免滥用); 注册 Cloudflare 并启用 R2,启用 R2 需要绑卡。新建一个储存桶并创建一个 API 令牌。 安装 flyctl Linux curl -L https://fly.io/install.sh | sh macOS curl -L https://fly.io/install.sh | sh Windows,需要开启 RemoteSigned: 管理员运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned powershell -Command "iwr https://fly.io/install.ps1 -useb | iex" 登录 flyctl auth login # 若登录失败使用 # flyctl auth login -i # 输入账号密码进行登录 创建APP YOURAPPNAME更改为自己希望设置的名称 flyctl launch --name YOURAPPNAME --image=superseriousbusiness/gotosocial:latest --region hkg --no-deploy 创建储存卷 flyctl volumes create social_data --region hkg --size 1 编辑配置 编辑根目录下的 fly.在fly.io部署Memos并自动备份数据库https://www.sunpeiwen.com/posts/deploying-memos-on-fly_io-and-automating-database-backups/Tue, 15 Aug 2023 02:02:00 +0000https://www.sunpeiwen.com/posts/deploying-memos-on-fly_io-and-automating-database-backups/参考项目 https://github.com/hu3rror/memos-on-fly 准备工作 1.注册FLY.IO 用以部署memos 2.注册B2C https://www.backblaze.com/cloud-storage 用以同步备份memos数据库 新建BUCKET,并获取<keyId>和<applicationKey> 安装flyctl Install flyctl 以WINDOWS为例 pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex" 其他系统请参照官方 新建APP 初始化 flyctl launch 按照提示选择会生成一个FLY.TOML文件 编辑FLY.TOML 添加以下内容 [build] image = "ghcr.io/hu3rror/memos-litestream:latest" #如果不需要备份数据库则可以选择官方的docker镜像ghcr.io/usememos/memos:latest #使用官方镜像可以删掉env的部分 [env] # Details see: https://litestream.io/guides/backblaze/ LITESTREAM_REPLICA_BUCKET = "B2C桶名称" # change to your litestream bucket name LITESTREAM_REPLICA_ENDPOINT = "s3.us-east-005.backblazeb2.com" # change to your litestream endpoint url LITESTREAM_REPLICA_PATH = "memos_prod.db" # keep the default or change to whatever path you want [[mounts]] source = "memos_data" destination = "/var/opt/memos" [http_service] internal_port = 5230 force_https = true auto_stop_machines = false auto_start_machines = true min_machines_running = 0 添加1g存储空间 flyctl volumes create memos_data --region hkg --size 1 添加密钥 将B2存储的密钥添加到fly的密钥存储中, 使用官方镜像可以忽略此步骤在fly.io部署artalk评论系统https://www.sunpeiwen.com/posts/on-fly_io-deploy-artalk/Tue, 15 Aug 2023 01:37:00 +0000https://www.sunpeiwen.com/posts/on-fly_io-deploy-artalk/众所周知Fly.io是一个免费的SAAS平台 提供三个内存为256MB,总3G硬盘空间. 为防止滥用,需要绑定信用卡. Free allowances Resources included for free on all plans: Up to 3 shared-cpu-1x 256mb VMs† 3GB persistent volume storage (total) 160GB outbound data transfer 准备 安装官方的命令行工具flyctl 初始化 flyctl launch 根据提示创建一个app 创建一个1G的硬盘 1G的硬盘用来储存评论数据绰绰有余了 flyctl volumes create artalk_data --region hkg --size 1 编辑FLY.TOML #根据自动生成的FLY.TOML文件修改 app = "atim" primary_region = "hkg" [build] image = "artalk/artalk-go" [http_service] internal_port = 23366 force_https = true auto_stop_machines = true auto_start_machines = true min_machines_running = 0 processes = ["app"] [[mounts]] source = "artalk_data" destination = "/data" [experimental] vm = true 在 fly.istoreos科学上网插件https://www.sunpeiwen.com/posts/istoreos_ssr_ss_vless_vmess/Thu, 13 Jul 2023 03:30:00 +0000https://www.sunpeiwen.com/posts/istoreos_ssr_ss_vless_vmess/OpenWRT应该也可以用 可以支持SSR SS VLESS VMESS等 SSR-Plus_x86_update.zip为Memos增加twikoo评论https://www.sunpeiwen.com/posts/memos-twikoo/Sat, 17 Jun 2023 06:42:00 +0000https://www.sunpeiwen.com/posts/memos-twikoo/食用方法 适用于最新版本的memos 0.13 在Memos设置中加入以下 自定义样式 #twikoo{padding: 1rem;background-color: rgb(63,63,70);margin: 1rem 0;border-radius: .5rem;color: #fff !important;} .twicon{position: absolute;right: 1rem;} .btns-container.space-x-2{margin-right:1.5rem;} .action-button-container{color: #e5e7eb;} .action-button-container a{display:none !important;} 自定义脚本 //添加 twikoo 评论 v2023.06.10 适用于最新版本的memos var twikooENV = 'https://twikoo.loliko.cn/' function addTwikooJS() { var memosTwikoo = document.createElement("script"); memosTwikoo.src = `https://cdn.staticfile.org/twikoo/1.6.16/twikoo.all.min.js`; var tws = document.getElementsByTagName("script")[0]; tws.parentNode.insertBefore(memosTwikoo, tws); }; function addComIcon(){ var memoTwIcons = document.querySelectorAll('.time-text') || ''; if(memoTwIcons){ for(var i=0;i < memoTwIcons.length;i++){ //if(memoTwIcon[i].hasChildNodes == false){ memoTwIcons[i].insertAdjacentHTML('afterbegin', '<div class="twicon"><svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.群晖docker出现注册表无法访问的解决办法https://www.sunpeiwen.com/posts/solution-for-synology-docker-registry-access-issue/Tue, 06 Jun 2023 01:25:00 +0000https://www.sunpeiwen.com/posts/solution-for-synology-docker-registry-access-issue/问题出现 群晖docker升级到DSM7.2之后出现了新的问题,原本可以正常访问的群晖镜像仓库竟然无法访问了. 原本启用注册表镜像URL就可以解决这个问题 如今也无法使用这个解决方案了 经过排查发现原来是因为docker仓库的域名被墙了. 解决办法 使用魔法. 准备工作 搭建一个代理服务,使用海外或者港台地区VPS 开启群晖SSH 微信截图_20230606091022.png 使用SSH登录 ssh 用户名@群晖IP登录 例如 ssh admin@192.168.31.100 输入密码,回车 sudo -i 输入密码,回车 docker run -d \ --restart=always \ --privileged \ --network=host \ --name v2raya \ -v /volume2/docker/v2raya:/etc/v2raya \ #此处/volume2/docker/v2raya为群晖目录改成自己的实际存放目录 mzz2017/v2raya 使用docker部署v2ray 部署成功就可以在docker的管理界面看到这个容器了. 使用IP+端口2017登录web管理界面 示例 192.168.31.100:2017 sock代理端口为20170 http代理端口为20171 使用v2raya 进入web管理界面点击创建 填写代理资料 创建.png 填写完毕点击这里测试一下是否连通 photo_2023-06-06_09-22-32.jpg 微信截图_20230606092047.png 设置.png 设置完成后点击左上角的运行 群晖设置 打开控制面板-网络 群晖代理.png 保存即可宝塔面板数据库有时候自动停止用计划任务来解决的办法https://www.sunpeiwen.com/posts/bt-panel-database-automatically-task/Tue, 23 May 2023 06:59:00 +0000https://www.sunpeiwen.com/posts/bt-panel-database-automatically-task/创建计划任务,每分钟执行一次 脚本如下 pgrep -x mysqld &> /dev/null if [ $? -ne 0 ];then /etc/init.d/mysqld start fi 检测数据库状态并自动启动解除typecho的最大字数限制https://www.sunpeiwen.com/posts/unlimit-maximum-word-count-for-typecho/Tue, 09 May 2023 06:36:00 +0000https://www.sunpeiwen.com/posts/unlimit-maximum-word-count-for-typecho/把contens表里的text字段类型设置为longtext 执行SQL alter table typecho_contents modify text LONGTEXT精粤X99M-PLUS-D3+rx580黑苹果opencore0.9.0引导https://www.sunpeiwen.com/posts/jingyue-x99m-plus-d3-hackintosh/Fri, 28 Apr 2023 03:56:00 +0000https://www.sunpeiwen.com/posts/jingyue-x99m-plus-d3-hackintosh/配置 CPU : E5 2673 V3 主板 : JINGYUE X99M-PLUS-D3 内存 : 三星 32G X4 硬盘 :梵想 1TB 网卡 : bcm94360CD BIOS 设置 关闭or禁用: CSM CFG Lock Secure Boot 引导下载 https://github.com/i886/JGINYUE-X99M-PLUS-D3-Hackintosh国内注册ChatGPT的方法https://www.sunpeiwen.com/posts/regediter_chatgpt_china/Mon, 03 Apr 2023 03:28:00 +0000https://www.sunpeiwen.com/posts/regediter_chatgpt_china/国内注册ChatGPT的方法 ChatGPT 是由 OpenAI 开发的一个人工智能聊天机器人程序,于 2022 年 11 月推出,基于 GPT-3.5 架构的大型语言模型并通过强化学习进行训练,在这款软件中用户们可以与 AI 人工智能进行多种的对话工作,目前,有部分地区(例如中国大陆、香港)无法使用此项服务 ChatGPT技术开发商OpenAI斥巨资买下AI.com域名,现在访问 AI.com 直接跳转到ChatGPT官网。 ChatGPT功能 ChatGPT 在搜索和写作上非常强大。 ChatGPT 可以根据用户提供的信息,给出合理而有效的搜索结果, ChatGPT 写的短篇小说, ChatGPT 写的信件,内容通畅,用词准确。 ChatGPT 撰写专业的电子邮件回复 ChatGPT 为营销活动产生新的内容创意 ChatGPT 解决任何编码问题或为获取代码 国内用户注册ChatGPT的方法 国内用户想要注册 ChatGPT,首先需要有一个网络环境,例如美国;然后,需要一个可以接收短信验证码的手机号码,之后就可以打开 ChatGPT 的网站注册 ,邮件验证,电话号码验证等等。 如果出现如下的界面,则证明你的网络所在地区无法注册访问ChatGPT。 注意:如果无法搞定上述必要条件的话,可以尝试 搭建一个梯子 x-ui:支持多协议多用户的 xray 面板 注册 OpenAI 账号 1、点击打开 https://chat.openai.com/auth/login 页面中的 Sign up 进行相应的账号注册(注意网络环境不能是香港,澳门等地区,不然会提示不能在当前国家服务)。 注册 2、在新的页面可选择注册 ChatGPT 账号的方式,可以使用邮箱(国内邮箱也可以,建议使用国外邮箱),,或者有谷歌账号的邮箱,或者用 Microsoft Account 注册也可以。 选择创建ChatGPT账号的方式 使用邮箱注册ChatGPT时,输入邮箱地址,点击Continue,之后输入密码,进入下一步骤。 使用邮箱注册ChatGPT 使用 Microsoft Account 注册ChatGPT时,可以使用Microsoft账号登录,如果有Github账号的话,可点击登录选项,然后选择使用Github账号 注册。 使用Microsoft-Account注册ChatGPT 使用 Google 账号注册ChatGPT时,输入Google账号地址及密码,然后进入下一步骤。Git在windows下区分大小写https://www.sunpeiwen.com/posts/windows-git/Tue, 21 Mar 2023 11:03:00 +0000https://www.sunpeiwen.com/posts/windows-git/在.deploy_git目录下运行 git config core.ignorecase false 可解决github pages 下CNAME被改为小写导致绑定域名失效的情况centos7安装后没有网络https://www.sunpeiwen.com/posts/linuxcentos7_installed_no_network/Tue, 29 Nov 2022 01:56:00 +0000https://www.sunpeiwen.com/posts/linuxcentos7_installed_no_network/以root账号登陆 用ip addr命令查看网络参数。 打开eth0网卡的配置文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0 把NOBOOT参数no,修改为yes 重启网络或者重启服务器都可macOS一键安装homebrew国内镜像https://www.sunpeiwen.com/posts/macos_install_homebrew_in_china/Fri, 29 Jul 2022 07:33:00 +0000https://www.sunpeiwen.com/posts/macos_install_homebrew_in_china/ 国内镜像的一键安装脚本 官方给出的一键安装由于墙的原因可能无法安装成功。 所以找到了一个国内镜像的一键安装脚本 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"Xcode 编译applealc出现签名错误的解决方法https://www.sunpeiwen.com/posts/solution-to-signature-error-in-xcode-compiling-applealc/Mon, 01 Nov 2021 02:08:00 +0000https://www.sunpeiwen.com/posts/solution-to-signature-error-in-xcode-compiling-applealc/##报错如下 In subcomponent: /Users/admin/Library/Developer/Xcode/DerivedData/AppleALC-fqueikknxpxowubueomyyxuwlnmg/Build/Products/Debug/AppleALC.kext/Contents/PlugIns/PinConfigs.kext/Contents/Info.plist.md5 Command CodeSign failed with a nonzero exit code ##解决方法 在Other Code Signing Flags添加参数–deep让Typecho文章内的超链接在新窗口打开https://www.sunpeiwen.com/posts/typecho-target_blank/Sat, 27 May 2017 12:13:00 +0000https://www.sunpeiwen.com/posts/typecho-target_blank/Markdown支持两种形式的链接语法:行内式和参考式两种形式。 而我们打开所生产的超链接,默认是在本窗口打开的,为了有更好的阅读体验,我们往往希望在新窗口。 要想让Typecho的文章中链接加上“_blank”,也有很多种方法,比如通过jQuery在网页搜索<a>标签,为其添加新窗口属性。 下面这种方式是直接修改Typecho程序源码,来实现: 在\var\CommonMark\HtmlRenderer.php 搜索 case CommonMark_Element_InlineElement::TYPE_LINK: $attrs['href'] = $this->escape($inline->getAttribute('destination'), true); if ($title = $inline->getAttribute('title')) { $attrs['title'] = $this->escape($title, true); } return $this->inTags('a', $attrs, $this->renderInlines($inline->getAttribute('label'))); 在return前加上下面这段代码: $attrs['target'] = '_blank'; // 给链接增加_blank属性