npm install -g vfmd
vfmd start
vfmd status
vfmd stop
vfmd restart
Daemon should be running beforehand.
You can also use vfmd start --attach
or vfmd restart --attach
not to spawn detached process.
Configure following commands to your editors' LSP Client.
vfmd lsp
# You can also use stdin/stdout for communication.
# vfmd lsp --stdio
if executable("vfmd")
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'vfmd-lsp',
\ 'cmd': {server_info->['vfmd', 'lsp', '--stdio']},
\ 'allowlist': ['text', 'markdown', 'html'],
\ })
endif
npm install vfmd
import unified from "unified";
import markdown from "remark-parse";
import remark2rehype from "remark-rehype";
import html from "rehype-stringify";
import remark2retext from "remark-retext";
import english from "retext-english";
import indefiniteArticle from "retext-indefinite-article";
import vfile from "to-vfile";
import report from "vfile-reporter";
import { reportToDaemon } from "vfmd";
const fname = "path/to/dir/your.md";
const processor = unified()
.use(markdown)
.use(remark2retext, unified().use(english).use(indefiniteArticle))
.use(remark2rehype)
.use(html);
processor.process(vfile.readSync(fname), async (err, file) => {
if (err) throw err;
console.error(report(file));
await reportToDaemon(file);
file.extname = ".html";
vfile.writeSync(file);
});