Estoy tratando de obtener datos de varios archivos .md sin procesar del repositorio de Guthub. Actualmente solo puedo buscar uno, pero necesito llegar a todos.
Tengo un repositorio de github y estoy buscando obtener datos del archivo .md sin procesar, lo cual no es un problema. El problema es que el repositorio tiene un montón de carpetas y cada carpeta tiene su propio archivo .md. Necesito hacer algún tipo de mapa a través de todas las carpetas y buscar todos los archivos .md.
Digamos que tengo un repositorio de github con las siguientes carpetas:
folder1 -> text1.md folder2 -> text2.md folder3 -> text3.mdActualmente puedo obtener solo un md sin procesar usando el siguiente método
let fetchData = () => { axios.get("https://raw.githubusercontent.com/user-name/repo-name/master/folder1/text1.md").then(response => { console.log(response) }).catch(error => { console.log(error) }) }Mi objetivo es obtener todo el texto1, texto2, texto3.md para poder mapearlos y mostrarlos en la tabla.
Según sus comentarios, diría que su mejor opción es crear un trabajador de nodo que pueda ejecutar semanalmente (o durante las implementaciones) que rastrearía las carpetas de formularios de información (nombre de archivo y contenido) a las que le dice que se la pasa, y luego guarda esa información de alguna manera puedes consumir más tarde de gatsby (supongo que la forma ideal sería ponerlo en gatsby GraphQL).
Esta es una idea vaga de cómo podría ser ese trabajador, con la información demasiado limitada que tengo:
let repoBaseUrl = 'https://raw.githubusercontent.com/user-name/repo-name/master/'; let folders = [ 'folder1', 'folder2', 'folder3' ]; let fetchFileName = async (folder) => { // Your function to get the filename return filename; } let fetchFileContent = async (folder, filename) => { try { const response = await axios.get(`${repoBaseUrl}${folder}${filename}`); return response.data; } catch(error) { // do something with the error } } let fetchFolderContent = async () => { const data = {}; folders.forEach(async (folder) => { const filename = await fetchFileName(folder); const content = await fetchFileContent(folder, filename); data[folder] = { filename, content, } }); return data; } let main = async () => { const data = await fetchFolderContent(); // Process your data // IE: save it GraphQL so you can consume it from Gatsbt } main();