第一次 写完整的博客 希望各位大佬 多多帮助
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
一个简单的表格是这么创建的:
#!/usr/bin/env node
import {Daili} from "../util/daili";
/** 服务端 核心代码如下 客户端 要有一个say
* Module dependencies.
*/
var app = require('../app.ts');
var debug = require('debug')('untitled:server');
// var http = require('http');
const http = require("http").createServer(app);
const io = require("socket.io")(http);
// import {Daili} from "../util/daili.ts"
let num =new Daili()
io.on("connection", socket => { // 客户端链接成功
socket.on("监听频道", msg => { // 监听的频道必须和客户端监听的频道相同,等待消息
io.emit("监听频道", "发送的信息"); // 向所有客户端发送信息
});
socket.on('chat message', (msg) => {
num.addNum()
socket.emit("allNum",num.allNum)
console.log('message: ' + msg);
socket.emit("chat message","我是服务端")
socket.broadcast.emit("msg",{data:"hello,everyone,我加入進來了"});
// io.to(`${socketId}`).emit('hey', 'I just met you');
io.to(`${socket.id}`).emit('hey', 'I just met you');
});
socket.on("disconnect", (msg) => { // 客户端断开链接
console.log('退出了一位用戶');
num.jianjian()
socket.emit("allNum",num.allNum)
});
});
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}