Dive into secure and efficient coding practices with our curated list of the top 10 examples showcasing 'json2md' in functional components in JavaScript. Our advanced machine learning engine meticulously scans each line of code, cross-referencing millions of open source libraries to ensure your implementation is not just functional, but also robust and secure. Elevate your React applications to new heights by mastering the art of handling side effects, API calls, and asynchronous operations with confidence and precision.
const path = require('path')
const semverDiff = require('semver-diff')
const semver = require('semver')
const fs = require('fs-extra')
const json2md = require('json2md')
const vueDocgen = require('vue-docgen-api')
// Add convert for markdown anchor
json2md.converters.anchor = (anchor, json) => {
if (!anchor.text) {
return "";
}
return `[${anchor.text}](${anchor.source})`;
};
/**
* convert .vue file into JSON object then convert to markdown file
* @param {String} file -- file path of raw Vue component file
* @param {Object} info -- packag.json
*/
function docsBuild(file, info) {
console.log(`Processing file: ${file}\n`)
const vueObj = vueDocgen.parse(file)
const path = require('path')
const semverDiff = require('semver-diff')
const semver = require('semver')
const fs = require('fs-extra')
const json2md = require('json2md')
const vueDocgen = require('vue-docgen-api')
const glob = require('glob')
// Add convert for markdown anchor
json2md.converters.anchor = (anchor, json) => {
if (!anchor.text)
return "";
return `[${anchor.text}](${anchor.source})`;
};
// pull in *.vue files from directory
glob('src/+(components|compositions)/**/*.vue', {ignore: ['**/node_modules/**', '**/examples/**', '**/demos/**']}, (compErr, files) => {
if(compErr)
throw new Error(`Error while trying to find single file Vue components:\n${compErr}`)
// convert *.vue files into JSON objects then convert to *.md files
files.forEach((file) => {
console.log(`Processing file: ${file}\n`)
const vueObj = vueDocgen.parse(file)
it("Custom types", () => {
const customConverter: json2md.ConverterCallback = (input, json2md) => {
return `Hello ${input} world!`;
};
json2md.converters.customConverter = customConverter;
json2md([
{
customConverter: EXAMPLE_STRING
}
]);
});
it("Use converter", () => {
const blockquote: string = json2md.converters.blockquote(EXAMPLE_STRING, json2md);
const img: string = json2md.converters.img({
title: EXAMPLE_STRING,
source: EXAMPLE_STRING
}, json2md);
});
];
toc.push({name: '分类', level: 2});
debug('categories=%O', categories);
handleCategories(rootCategories, 3, structure);
toc.push({name: '反馈问题或建议', level: 2});
toc.push({name: '版权声明', level: 2});
structure.push(
{md: absPath('_docs/issue.md')},
{md: absPath('_docs/license.md')}
);
const content = await json2md.async(structure);
const file = absPath('README.md');
await writeFile(file, content);
console.log('writeFile: %s', file);
}
const readFile = util.promisify(FS.readFile);
const readdir = util.promisify(FS.readdir);
const writeFile = util.promisify(FS.writeFile);
const categories = {};
const toc = [];
json2md.converters.ul = async (array) => {
return `- ${array.join('\n- ')}`;
};
json2md.converters.md = async (filepath) => {
return await readFile(filepath, {encoding: 'utf8'});
};
json2md.converters.toc = (contents) => {
const indent = 4;
const ul = '-';
const space = ' '.repeat(indent);
const usedHeaders = {};
const headers = [];
contents.forEach((c) => {
const {name, level} = c;
let anchor = name.trim().toLowerCase().replace(/\s+/g, '-').replace(/\-+$/, '');
const usedHeader = usedHeaders[anchor];
if (usedHeader) {
usedHeaders[anchor] = usedHeader + 1;
anchor = `${anchor}-${usedHeader}`;
} else {
usedHeaders[anchor] = 1;
}
.replace(/\s/g, '')
.replace(/^(.)/, ($1) => $1.toUpperCase());
const getStat = util.promisify(FS.stat);
const readFile = util.promisify(FS.readFile);
const readdir = util.promisify(FS.readdir);
const writeFile = util.promisify(FS.writeFile);
const categories = {};
const toc = [];
json2md.converters.ul = async (array) => {
return `- ${array.join('\n- ')}`;
};
json2md.converters.md = async (filepath) => {
return await readFile(filepath, {encoding: 'utf8'});
};
json2md.converters.toc = (contents) => {
const indent = 4;
const ul = '-';
const space = ' '.repeat(indent);
const usedHeaders = {};
const headers = [];
contents.forEach((c) => {
const {name, level} = c;
let anchor = name.trim().toLowerCase().replace(/\s+/g, '-').replace(/\-+$/, '');
const usedHeader = usedHeaders[anchor];
if (usedHeader) {
usedHeaders[anchor] = usedHeader + 1;
const absPath = (...paths) => Path.resolve(__dirname, ...paths);
const relativePath = (path) => Path.relative(__dirname, path);
const toCamelCase = (str) => str
.replace(/\s(.)/g, ($1) => $1.toUpperCase())
.replace(/\s/g, '')
.replace(/^(.)/, ($1) => $1.toUpperCase());
const getStat = util.promisify(FS.stat);
const readFile = util.promisify(FS.readFile);
const readdir = util.promisify(FS.readdir);
const writeFile = util.promisify(FS.writeFile);
const categories = {};
const toc = [];
json2md.converters.ul = async (array) => {
return `- ${array.join('\n- ')}`;
};
json2md.converters.md = async (filepath) => {
return await readFile(filepath, {encoding: 'utf8'});
};
json2md.converters.toc = (contents) => {
const indent = 4;
const ul = '-';
const space = ' '.repeat(indent);
const usedHeaders = {};
const headers = [];
contents.forEach((c) => {
const {name, level} = c;
}
const headings = schemaNames(schemas)
const toc = [
{
ul: headings.map(tocHeading),
},
]
let list = (title as any[]).concat(toc).concat(fragments)
if (formats) {
list = list.concat(documentCustomFormats(formats)).concat(titleLink)
}
return json2md(list)
}