一直使用marked库解析Markdown,现在想给它增加TOC功能 使用marked解析markdown文本是很简单的,如:marked(markdownText)就可以得到解析后的html内容 初始化marked 引入库 var marked = require('marked'); 重写renderer.heading tocObj后面再介绍,返回的...
登录后自动跳转到登录前的页面
这个需求很常见,我们浏览自己写的博客文章的时候发现有些错误,此时想修改一下,所以必须得先登录才行。点击登录按钮后跳转到登录页面,登录成功后自动跳转到之前文章所在页面。 实现方法就是在登录页面通过document.referrer获取进入到此页面前的地址,然后将地址写入到隐...
Markdown在线预览
Markdown在线预览上线了,拖动文件或者点击上传markdown文件就可以预览了。 服务器不保存文件副本,只是将上传的文件内容转换为html格式显示在网页上。 点击地址访问:[3inns.cn/mdviewer](http://3inns.cn/mdviewer) ![Markdown viewer](http://images.ningto.com/...
mongodb部署分片集群
目标 在3台CentOS 6服务器上部署mongodb分片集群,其中副本集(replica set)部署在不同的服务器上,每个服务器有一个配置(config)副本集,两个分片(sharding)副本集,以及一个mongos服务。所以3台服务器总共需要部署12个...
protobuf反射
C++本身是不支持反射的,但protobuf可以,下面介绍反射的两种主要用途。 通过proto对象的名字来创建一个对象 google::protobuf::Message ProtoHelp::createMessage(const std::string &typeName) { google::protobuf::Message message = nullptr; const google...
10个React小模式
在过去的几年,我经手过很多大大小小的React项目,在这个过程中,我不断的重复重复,逐渐的形成了一些模式,在这里分享给大家。 如果你是刚开始接触React,能看到这篇文章,只能说你很幸运 :)。 如果你没有接触过React,你可以跳过(3,6,8,10)节。 1.数据向下和向上传递 ...
如何优雅的编写JavaScript代码
几乎每个大一点公司都有一个“运行时间长,维护的工程师换了一批又一批”的项目,如果参与到这样的项目中来,大部分人只有一个感觉——『climb the shit mountain』。 所以我们经常会说谁谁谁写的代码就像排泄物一样,为了避免成为别人嘴里的谁谁谁,所以我写的代码一般不注明作者...
模拟QThreadPool实现
std::thread::hardware_concurrency() 返回硬件线程上下文的数量,通常是CPU内核数量 template <class T> numeric_limits 根据当前平台,获取指定类型的信息 > std::numeric_limits<int>::min() 获取int最小值 > std::numeric_limits<unsigned long>::max() 获...
std::move和右值引用
右值引用允许编程人员去避免不必要的内存拷贝,从而提高性能。 我们知道如果一个类A的成员变量中有指针,那么就要考虑深拷贝和浅拷贝了,深拷贝通常要实现下面几个函数: 构造函数 拷贝构造 赋值操作符 这样做是没问题的,但是会带来一个问题,会造成一些没必要的拷...
Qt只启动一个实例
要想实现这个需求,就涉及到进程间通信了,怎样让当前启动的程序知道在它之前有没有程序在运行。 其实实现方法还是蛮多的,简单介绍几种: 两个进程读写同一个文件 创建一个有名字的事件CreateEvent 共享内存 下面是第三种方案的实现代码: ifndef RUNGUARD_H d...
Qt重要特性
Qt基本特性 Qt是一个跨平台的C++开发框架,它包含了功能丰富的C++类库以及集成开发工具。 事件循环,事件过滤 Qt是事件驱动的,程序每个动作都是由某个事件所触发。QApplication::exec()会调用QEventLoop进入事件循环,此时程序会进入等待状态,等待处理各种事件。 ...
Qt简单截屏
鼠标左键按下拉取截取范围,中间确认截图,右键取消截图。 ifndef GRABWIDGET_H define GRABWIDGET_H include <QWidget> include <QMouseEvent> class GrabWidget : public QWidget { Q_OBJECT public: explicit GrabWidget(QWidget parent = 0);...
mongodb 常用操作
连接mongodb mongo 默认连接到本地端口27017 mongo --host 123.57.244.111 --port 27017 连接远程数据库 插入数据 插入一条数据: db.test.insert({title: "1111111111111111111"}) 循环插入数据: for (var i = 0; i < 100; i++) { ...
Qt解决:warning : Z-order assignment
Qt中调整UI布局的时候,很容易出现如下警告: warning : Z-order assignment: '' is not a valid widget. warning : Z-order assignment: 'verticalSpacer' is not a valid widget. 虽然编译后运行看起来没什么问题,但是对于有轻微代码洁癖的人肯定是忍受不了的,...
WTL VS2013安装
WTL下载地址:[https://sourceforge.net/projects/wtl/](https://sourceforge.net/projects/wtl/) 解压后双击运行WTL91_5321_Final\AppWiz\Setup.js,如果不能运行需要打开注册表HKEY_CLASSES_ROOT/.js将右边数据改为JSFile重新启动下就可以运行了。如果还是不行,打开cm...
react native 配置方面的问题汇总
unable to load script from assets index.android.bundle (in project directory) mkdir android/app/src/main/assets react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.an...
CSRF 攻击的应对之道
CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而,对于大多...
nodejs下载图片保存到本地
我们经常在使用别人图片url的时候发现图片显示不了,很可能对方做防盗链处理。在浏览器端有这个限制但是在后端就没有这个问题了。所以我们可以通过图片的url在服务端将这个图片下载下来保存在服务器上,然后客户端去访问我们自己的服务器,为了保证最小的改动,最好是保持原来...
fetch跨域post,后端express
使用fetch中的post方法进行跨域请求,前提是后端是我们自己写的,比如用的框架是express。首先在express中设置支持跨域,然后使用fetch的时候注意参数的填写。这里我们向后端post json数据。 fetch post写法如下 export function postData(url, json) { return fetc...
js库支持CommonJs和浏览器的标准写法
现在github上的很多开源js库都同时支持CommonJs和浏览器,简单的介绍一下写法。 如有两个库A.js和B.js,B.js引用了A.js,如果我们要使用B.js库,那应该怎么写呢? A.js源码 (function(global, factory) { / CommonJS / if (typeof require === 'function' && ...