接上一篇, 用 lynx 做浏览器太过简陋了!
何不用node.js搭建一个小型的web服务器,反正有现成的模块可用,几行代码的事
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 var imageDir='/home/peter/myblog1/source/images/' ; var cssDir='/home/peter/nodehttp/' ; var http = require ('http' );var url=require ('url' );var path=require ('path' );var fs = require ('fs' );var buff='' ;process.stdin .on ('data' ,data => { buff=data; }); server = http.createServer (function (request,response ){ pathName = url.parse (request.url ).pathname ; dirName=path.dirname (pathName); baseName=path.basename (pathName); extName=path.extname (pathName); if ((dirName==='/' ) && (baseName==='' )){ response.writeHead (200 ,{'Content-Type' :'text/html;charset=UTF-8' }); response.end (buff); } else if ((dirName==='/images' )&&((extName==='.jpg' )||(extName==='.png' )||(extName==='.webp' ))){ fs.readFile (imageDir+baseName,function (err,data ){ if (err){ response.writeHead (404 ); response.end (); } else { response.writeHead (200 ,{'Content-Type' :'image/' +extName.substring (1 )}); response.end (data); } }); } else if ((dirName==='/' )&&(extName==='.css' )){ fs.readFile (cssDir+baseName,function (err,data ){ if (err){ response.writeHead (404 ); response.end (); } else { response.writeHead (200 ,{'Content-Type' :'text/css' }); response.end (data); } }); } else { response.writeHead (404 ); response.end (); } }); server.listen (8888 ); console .log ('Listening at loacalhost:8888' );
然后使用命令
1 pandoc aa.md -f markdown -t html --standalone --css markdown.css|node ~/nodehttp/nodehttp.js
浏览器打开: http://localhost:8888 就可看到结果
使用环境为windows & wsl, css参照网上的实例,代码段还有点问题。