精华内容
下载资源
问答
  • MD文件阅读工具及配置

    千次阅读 2020-10-19 16:07:26
    MD文件阅读可以采用:VNote.exe 将VNote.exe设置为md文件默认打开方式可以参考下文方法,原文章链接:https://blog.csdn.net/weixin_39836585/article/details/105442708 步骤一:打开注册表 WIN+R输入regedit打开...

    MD文件阅读可以采用:VNote.exe

    将VNote.exe设置为md文件默认打开方式可以参考下文方法,原文章链接:https://blog.csdn.net/weixin_39836585/article/details/105442708

    步骤一:打开注册表

    WIN+R 输入regedit打开注册表
    在这里插入图片描述

    步骤二:HKEY_CLASSES_ROOT目录下配置注册表

    HKEY_CLASSES_ROOT右键,新建项,命名为.md
    选择新建的.md,在右侧(默认)上双击``编辑字符串,输入数值数据md_auto_file

    在这里插入图片描述
    新建HKEY_CLASSES_ROOT\ md_auto_file\shell\open\command目录
    command的右侧(默认)上双击``编辑字符串,输入数值数据:"D:\MyAppUse\Typora\bin\typora.exe"%1
    注意: 路径用英文双引号包裹后边加%1

    在这里插入图片描述

    步骤三 在HKEY_CURRENT_USER\Software\Classes目录下重复步骤二的操作;

    在这里插入图片描述

    HKEY_CURRENT_USER\Software\Classes右键,新建项,命名为.md
    选择新建的.md,在右侧(默认)上双击``编辑字符串,输入数值数据md_auto_file
    在这里插入图片描述

    在 HKEY_CURRENT_USER\Software\Classes\ 下建立路径md_auto_file\shell\open\command目录

    command的右侧(默认)上双击``编辑字符串,输入数值数据"D:\MyAppUse\Typora\bin\typora.exe"%1

    在这里插入图片描述

    步骤四 重启系统

    配置完成关闭注册表即可用typora打开.md文件了,
    重启系统文件的默认图标即可更新了

    说明

    其他文件的默认打开方式是一样的.

    展开全文
  • 一款纯粹阅读功能的Android安卓手机查看MD(makedown)文件阅读器应用APP,支持直接浏览查看MD(makedown)文件,支持浏览手机文件夹里面的MD文件,简单实用的MD文件阅读APP
  • 前言:最近在写一些新闻资讯详情的页面,header组件、footer组件、目录组件都是固定的,只有新闻的内容是变化...整体思路:把每个新闻资讯页面共有的的部分固定写好作为模板,变化的内容部分写在md文件里面,利用Nod...

    前言:最近在写一些新闻资讯详情的页面,header组件、footer组件、目录组件都是固定的,只有新闻的内容是变化的。为了不去写重复的代码(有句话怎么说来着:战略上偷懒,战术上勤奋,就是这个意思),准备采用md文件渲染为html文件这个思路,如果后续追加新的新闻资讯页面,只需新增对应得md文件即可。

    整体思路:把每个新闻资讯页面共有的的部分固定写好作为模板,变化的内容部分写在md文件里面,利用NodeJS读取md文件,转换成html之后,替换模板中变化的内容。

    相关技术栈:React Next.js NodeJS markdown-it

    其他解决方案:这个问题是很久之前就在摸索的了,试了很多方法。有些可以读可以渲染,但是不是最终想要的,不过还是顺便总结一下。

    1.使用react-markdown处理

    54aef4a3f52ae5ee4a78cd4e10946574.png

    介绍:Renders Markdown as pure React components. —— 将Markdown渲染为纯React组件。

    使用参考:

    思路:这个之前尝试过一次,确实能读取md文件的内容,也能把内容作为组件的属性,但是这样做并不符合我的思路,只是把变化的内容放到了md文件里,再读出来放到了组件属性里面操作。不过可以通过这个方法,传递到高阶组件里面处理。

    2.使用loader处理

    markdown-loader

    React Markdown

    ...

    都是利用webpack在打包的时候去解析md文件,这个我没有采用,因为我的项目是基于Next.js的,配置文件不知道如何去写比较好。

    NodeJS文件处理操作

    fs文件模块

    1.使用fs模块需手动导入

    const fs = require('fs')

    复制代码

    2.查看文件状态

    fs.stat(path[, options], callback) 异步方法

    fs.statSync(path[, options]) 同步方法

    callback的函数里的err,在文件路径出错的时候会打印错误,文件路径不出错则err打印null;

    stats打印当前文件的一些状态。

    birthtime: 文件的创建时间

    mtime: 文件中内容发生变化,文件的修改时间

    给fs.stat()的path传递__filename时可用.isFile()判断当前路径对应的是否是一个文件。

    给fs.stat()的path传递__dirname时可用.isDirectory()判断当前路径对应的是否是一个文件夹。

    fs.stat(filedir, function (eror, stats) {

    if (eror) {

    console.warn('获取文件stats失败')

    } else {

    var isFile = stats.isFile() //是文件

    var isDir = stats.isDirectory() //是文件夹

    if (isFile) {

    //是文件将如何操作

    }

    if (isDir) {

    //是文件夹将如何操作

    }

    }

    }

    复制代码

    3.文件读取与写入

    fs.readFile(path[, options], callback) 异步读取

    fs.readFileSync(path[, options]) 同步读取

    fs.writeFile(file, data[, options], callback) 异步写入

    fs.writeFileSync(file, data[, options]) 同步写入

    path路径模块

    path.join([...paths]):用于拼接路径

    如果参数中没有添加/,那么该方法会自动添加

    如果参数中有..,那么会自动根据前面的参数生成的路径,去到上一级路径

    let str = path.join("/a/b", "c"); // /a/b/c

    let str = path.join("/a/b", "/c"); // /a/b/c (不添加/会自动添加)

    let str = path.join("/a/b", "/c", "../"); // /a/b/c --> /a/b

    let str = path.join("/a/b", "/c", "../../"); // /a/b/c --> /a

    console.log(str);

    复制代码

    path.resolve([...paths]):用于解析路径

    如果后面的参数是绝对路径,那么前面的参数就会被忽略

    let res = path.resolve('/foo/bar', './baz'); // /foo/bar/baz

    let res = path.resolve('/foo/bar', '../baz'); // /foo/baz(上一级)

    let res = path.resolve('/foo/bar', '/baz'); // /baz(绝对路径)

    console.log(res);

    复制代码

    循环文件夹

    1.根据文件路径读取文件,返回文件列表

    2.遍历读取到的文件列表

    3.获取当前文件的绝对路径

    4.根据文件路径获取文件信息,返回一个fs.Stats对象

    5.根据fs.Stats对象判断当前文件是文件还是文件夹

    6.如果是文件夹,就继续遍历该文件夹下面的文件

    let mdPath = path.join(__dirname, '/src/md')

    fileDisplay(mdPath)

    function fileDisplay(mdPath) {

    //根据文件路径读取文件,返回文件列表

    fs.readdir(mdPath, function (err, files) {

    if (err) {

    console.warn(err)

    } else {

    //遍历读取到的文件列表

    files.forEach(function (filename) {

    //获取当前文件的绝对路径

    var filedir = path.join(mdPath, filename)

    //根据文件路径获取文件信息,返回一个fs.Stats对象

    fs.stat(filedir, function (eror, stats) {

    if (eror) {

    console.warn('获取文件stats失败')

    } else {

    var isFile = stats.isFile() //是文件

    var isDir = stats.isDirectory() //是文件夹

    if (isFile) {

    //对文件的相关操作

    }

    if (isDir) {

    fileDisplay(filedir) //递归,如果是文件夹,就继续遍历该文件夹下面的文件

    }

    }

    })

    })

    }

    })

    }

    复制代码

    拷贝文件的几种方式

    readFile & writeFile

    fs.readFile(filedir, 'utf8', (err, data) => {

    if (err) console.log(err)

    else {

    // 读取之后的其他操作

    fs.writeFile(writePath, tplData, 'utf8', (err) => {

    // 写入操作

    })

    }

    })

    复制代码

    createReadStream&createWriteStream

    // 1.生成读取和写入的路径

    let readPath = path.join(__dirname, "test.mp4");

    let writePath = path.join(__dirname, "abc.mp4");

    // 2.创建一个读取流

    let readStream = fs.createReadStream(readPath);

    // 3.创建一个写入流

    let writeStream = fs.createWriteStream(writePath);

    // 4.监听读取流事件

    readStream.on("open", function () {

    console.log("表示数据流和文件建立关系成功");

    });

    readStream.on("error", function () {

    console.log("表示数据流和文件建立关系失败");

    });

    readStream.on("data", function (data) {

    // console.log("表示通过读取流从文件中读取到了数据", data);

    writeStream.write(data);

    });

    readStream.on("close", function () {

    console.log("表示数据流断开了和文件的关系, 并且数据已经读取完毕了");

    writeStream.end();

    });

    // 5.监听写入流的事件

    writeStream.on("open", function () {

    console.log("表示数据流和文件建立关系成功");

    });

    writeStream.on("error", function () {

    console.log("表示数据流和文件建立关系失败");

    });

    writeStream.on("close", function () {

    console.log("表示数据流断开了和文件的关系");

    });

    复制代码

    pipe()读取流的管道方法

    // 1.生成读取和写入的路径

    let readPath = path.join(__dirname, "test.mp4");

    let writePath = path.join(__dirname, "abc.mp4");

    // 2.创建一个读取流

    let readStream = fs.createReadStream(readPath);

    // 3.创建一个写入流

    let writeStream = fs.createWriteStream(writePath);

    // 利用读取流的管道方法来快速的实现文件拷贝

    readStream.pipe(writeStream);

    复制代码

    markdown-it处理文件

    安装

    npm install markdown-it --save

    复制代码

    用法

    //导入

    const md = require('markdown-it')

    //使用

    let result = md.render('# markdown-it rulezz!');

    复制代码

    具体使用

    1.循环读md文件夹下的所有md文件

    2.利用markdown-it处理读到的内容

    3.读取模板页面的内容

    4.处理读取到的文件名称、组件名称转换等(短线转驼峰)

    5.替换模板页面中变化的部分为,处理之后的md内容

    // md文件路径

    let mdPath = path.join(__dirname, '/src/md')

    // 模板路径

    let tplPath = path.join(__dirname, '/src/template.txt')

    // filedir其实是循环读取的,这里仅做参考一下

    let filedir = path.join(mdPath, filename)

    // 读取md文件

    fs.readFile(filedir, 'utf8', (err, data) => {

    if (err) console.log(err)

    else {

    let result = md.render(data)

    // console.log('md文件读取的结果' + result)

    // 读取模板页面

    fs.readFile(tplPath, 'utf-8', (err, tplData) => {

    if (err) console.log(err)

    else {

    // 处理md文件名,去掉前面的路径和文件类型后缀

    let filename = filedir.replace(__dirname, '')

    let startIndex = filename.lastIndexOf('\\')

    let endIndex = filename.indexOf('.')

    filename = filename.substring(startIndex + 1, endIndex)

    // console.log(filename)

    // 处理组件名称首字母大写

    // A-coder-beauty应为ACoderBeauty

    // 模板数据替换

    tplData = tplData

    .replace('', componentName)

    .replace('', result)

    .replace('', componentName)

    let writePath = path.join(

    __dirname,

    '/src/pages',

    filename + '.js'

    )

    // 写入新的文件中

    fs.writeFile(writePath, tplData, 'utf8', (err) => {

    // console.log(err)

    })

    }

    })

    }

    })

    复制代码

    template.txt文件参考

    import React from 'react'

    import { observer } from 'mobx-react'

    // 组件导入

    import Head from '../components/head'

    import Header from '../components/header'

    import Footer from '../components/footer'

    import '../styles/common.less' // 通用样式

    @observer

    class extends React.Component {

    render() {

    return (

    )

    }

    }

    export default

    复制代码

    存在问题

    markdown-it在处理md文件中的图片时,不能正确转义标签,缺少结束符号,在文档中并没有处理此类问题的解决方法,并且应该是渲染机制的关系。

    解决方案一:把源码下载下来,做了些处理,在配置文件中相应的引入了修改后的源码文件。在处理标签的返回结果处增加一个判断,如果是标签,进入上面那个判断即可。

    const md = require('./src/utils/markdown-it')()

    复制代码

    146208b719dbdd2fba73cd005d0496fd.png

    b7791dd89af6ba7024ad196fdba675dd.png

    解决方案二:在引入的时候打开启用在源码中启用 HTML 标签即可,有点尴尬(今天才发现这个可以这么解决)

    76ca83d9d4c1f68083924ec13da275fa.png

    小结

    以上所有文件处理代码都是在配置文件next.config.js里面写的,个人对Next.js的使用停留在基础层面,不过webpack.config.js能做的,写在next.config.js里面一样能行。

    展开全文
  • MD格式的文件阅读和编辑器,可以导出到HTML文件
  • 阅读md文件的工具

    热门讨论 2013-09-04 22:33:37
    md工具
  • md文件打开阅读

    万次阅读 2018-05-27 19:51:32
    官方给出的解释是:这个问题一般多见于win8(*当然现在win10也有,官方文档该更新啦)。错误的表现形式即:不能实时预览Markdown生成的HTML页面。 This issue has been specifically observed in Windows 8. You may...

    MarkdownPad 2 安装和破解

    下载:http://markdownpad.com/ 
    下载下面这个:

    这里写图片描述

    Email address :

    Soar360@live.com
    • 1

    License key:

    GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDHzWdD6xhMNLGVpbP2M5SN6bnxn2kSE8qHqNY5QaaRxmO3YSMHxlv2EYpjdwLcPwfeTG7kUdnhKE0vVy4RidP6Y2wZ0q74f47fzsZo45JE2hfQBFi2O9Jldjp1mW8HUpTtLA2a5/sQytXJUQl/QKO0jUQY4pa5CCx20sV1ClOTZtAGngSOJtIOFXK599sBr5aIEFyH0K7H4BoNMiiDMnxt1rD8Vb/ikJdhGMMQr0R4B+L3nWU97eaVPTRKfWGDE8/eAgKzpGwrQQoDh+nzX1xoVQ8NAuH+s4UcSeQ==
    • 1

    这里写图片描述

    这里写图片描述

    OK 搞定:

    BUT:遇到MarkdownPad 2 在win10下出错:HTML 渲染错误(This view has crashed) 的解决办法

    MarkdownPad 的FAQ文档中给出了解决办法:http://markdownpad.com/faq.html#livepreview-directx

    LivePreview is not working - it displays an error message stating This view has crashed!


    官方给出的解释是:这个问题一般多见于win8(*当然现在win10也有,官方文档该更新啦)。错误的表现形式即:不能实时预览Markdown生成的HTML页面。

    This issue has been specifically observed in Windows 8. You may see an error message as shown here, and no HTML will be rendered when you type in the Markdown Editor pane.


    为了修复这个问题,你需要安装这么一个SDK工具包,点击链接获取。

    To fix this issue, please try installing the Awesomium 1.6.6 SDK.


    如果还没有解决,那就买个新电脑吧!

    哦!不是,让你再装个微软的渲染插件

    If you continue to experience issues, please install Microsoft’s DirectX End-User Runtimes (June 2010).


    展开全文
  • 阅读md文件的工具(從github上下載的電子書就是這種格式),綠色免安裝
  • 推荐两个md(markdown)文件阅读编辑器Cmd Markdown和Typora。-好用-用来打开之前上传的深度学习课程的github笔记md文件,比较好用,还有导出为PDF功能,Typora功能完全免费,很良心。
  • md文档使用.md.txt

    2020-03-31 09:33:37
    最详细的md文档教程,源码提示,一看就会,保证看完使用md编辑器最牛! 希望大家喜欢我的分享!
  • MarkdownPad 2 来阅读.md文件 2下载地址 http://markdownpad.com/ 3 安装完成后 破解网址 http://w3cboy.com/post/2014/10/MarkdownPad%E6%B3%A8%E5%86%8C%E7%A0%81/ 4 点击 有key的 输入 邮箱 和 秘钥 5点ok...
  • fedora17安装retext阅读md文件

    千次阅读 2014-01-11 18:44:51
    由于需要阅读MD文件,于是安装retext,http://sourceforge.net/projects/retext/ ,解压缩后执行./setup install ,出现错误,发现需要python3才能安装,fedora17安装好后自带的python2.7,于是就要重新安装python3...
  • 我有一个关于Haskell中的一些基本转换的问题。 基本上,我有一个书面的输入文件,名为Input.md。这包含一些在我的项目文件中读取的降价文本,...读取Input.md文件并输出.html文件Haskellmodule Main(convertToHTML,...
  • vscode中使用md文件

    千次阅读 2020-09-10 09:56:33
    在vscode中使用md文档,首先先安装两个插件 安装了这两个插件之后,你就可以在vscode中使用md文件,并且乐意进行预览 在md文件中添加图片 就可以查看到自己想要使用的图片了
  • php解析md文件

    2015-02-08 23:34:25
    第一个版本,解析md文件大部分标签,暂时不支持代码关键字高亮,不过基本可用。
  • 查看md文件

    2019-10-05 04:42:38
    使用命令将md文件转为html,在浏览器中演示 通过npm安装i5ting_toc 安装好node之后,可以直接使用npm。Windows+R打开运行框,输入cmd,打开命令窗口。...在md文件所在当前文件夹下,shift+鼠标右...
  • md文档使用

    2020-03-31 09:54:57
    MD稳当的使用欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右...
  • md文件如何打开?

    千次阅读 多人点赞 2020-03-13 21:21:54
    阅读md文件时 常常会手足无措 今天教大家如何打开md文件
  • ubuntu在线安装.md命令阅读工具-Typora,保持有网络,Ubuntu安装.md阅读工具-Typora
  • 一、md文件的存储 因为是vue-cli项目,所以使用的是mavonEditor. github地址:https://github.com/hinesboy/mavonEditor 使用方法: 首先安装: npm install mavon-editor --save 然后在相应的组件里引用: ...
  • 1.安装spark MD5 ...2.vue文件中引入 import SparkMD5 from 'spark-md5' 3.使用 方法一: handlePrepareUpload() { var fileReader = new FileReader(); var dataFile = this.fileList[0]...
  • 1 安装 运行 # or run: # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add... # add Typora's repository ...su
  • md文件的正确打开方式

    万次阅读 2019-06-01 01:16:49
    常常会遇到md格式的文件...直到今天才明白,正确打开md文件是一件多么美妙的事情!!! 可以使用**Notepad++**来打开,该软件在编程方面也很好用,推荐使用,会获得良好的体验。 用记事本打开: 正确打开姿势: ...
  • jupyter notebook 打开md文件

    千次阅读 2019-08-15 10:50:15
    让jupyter notebook 生成md这个大家都会,可是在github当中有很多很好的md文件,如果不能在jupyter notebook当中打开体验,实在是太让人难过了。 在网上搜索了一下,有很多人也有同样的需求,也不是很清楚怎么操作,...
  • chrome查看md文件

    千次阅读 2019-08-06 10:15:04
    网址参考:https://jingyan.baidu.com/article/9158e000e42a56a254122801.html 注意链接中的“允许访问本地文件”:
  • md文件打开方式推荐

    千次阅读 2020-06-03 15:46:32
    MD文件介绍 以下介绍来自于百度: md文件是Markdown语法编写的文件,Markdown是一款轻量级的标记语言,可以使用语法来代替排版,插入公式和图片等都非常的容易,目前很多博客都可以使用该语法去编辑。使用Markdown的...
  • 本人使用.md文档完全为了记录日常的编译和工作中遇到的问题,需要用到的功能大概就是常用的语法,强调,引用,代码,链接等。对于图片的插入需求不高,因此本文主要介绍一些语法特点,最后涉及一点可能用到的其他...
  • md文件的简洁打开方式

    千次阅读 2020-05-14 11:23:10
    md文件其实就是Markdown文件,如果你需要阅读的Markdown文件内容比较少的话,直接用记事本打开就行了,如果你要阅读的md文档比较长,那么记事本打开的阅读体验就非常差,可以下载一款专门的Markdown编辑软件。...
  • 很多MD格式文件我们无法打开,请用这个打开查看读写 ,非常方便的软件值得拥有。
  • Linux笔记MD文件

    2020-04-01 15:50:49
    Linux学习笔记markdown

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,925
精华内容 27,570
关键字:

md文件阅读