* Release 0.5.0-rc.0 http-api-bindings@0.5.0-rc.0 llama-cpp-bindings@0.5.0-rc.0 tabby@0.5.0-rc.0 tabby-common@0.5.0-rc.0 tabby-download@0.5.0-rc.0 tabby-inference@0.5.0-rc.0 tabby-scheduler@0.5.0-rc.0 Generated by cargo-workspaces * fix: docker branch tag should only generate when not empty * Release 0.5.0-rc.1 http-api-bindings@0.5.0-rc.1 llama-cpp-bindings@0.5.0-rc.1 tabby@0.5.0-rc.1 tabby-common@0.5.0-rc.1 tabby-download@0.5.0-rc.1 tabby-inference@0.5.0-rc.1 tabby-scheduler@0.5.0-rc.1 Generated by cargo-workspaces * fix: handlebar syntax in meta action * Release 0.5.0-rc.2 http-api-bindings@0.5.0-rc.2 llama-cpp-bindings@0.5.0-rc.2 tabby@0.5.0-rc.2 tabby-common@0.5.0-rc.2 tabby-download@0.5.0-rc.2 tabby-inference@0.5.0-rc.2 tabby-scheduler@0.5.0-rc.2 Generated by cargo-workspaces * fix: handlebar syntax in meta action * Release 0.5.0-rc.3 http-api-bindings@0.5.0-rc.3 llama-cpp-bindings@0.5.0-rc.3 tabby@0.5.0-rc.3 tabby-common@0.5.0-rc.3 tabby-download@0.5.0-rc.3 tabby-inference@0.5.0-rc.3 tabby-scheduler@0.5.0-rc.3 Generated by cargo-workspaces * docs: update change log and docs * fix: collect_snippet should handle NotReady error * Release 0.5.0-rc.4 http-api-bindings@0.5.0-rc.4 llama-cpp-bindings@0.5.0-rc.4 tabby@0.5.0-rc.4 tabby-common@0.5.0-rc.4 tabby-download@0.5.0-rc.4 tabby-inference@0.5.0-rc.4 tabby-scheduler@0.5.0-rc.4 Generated by cargo-workspaces * Release 0.5.0 http-api-bindings@0.5.0 llama-cpp-bindings@0.5.0 tabby@0.5.0 tabby-common@0.5.0 tabby-download@0.5.0 tabby-inference@0.5.0 tabby-scheduler@0.5.0 Generated by cargo-workspaces |
||
|---|---|---|
| .. | ||
| index.mdx | ||
| readme.tsx | ||
readme.tsx
import React, { useState, useEffect } from "react";
import { marked } from "marked";
const GitHubReadme: React.FC<{
src?: string;
}> = ({
src,
}) => {
if (!src) {
console.error(
"react-github-readme-md: You must provide either a src or username and repo"
);
return null;
}
const [readmeContent, setReadmeContent] = useState<string>("");
useEffect(() => {
// Function to fetch the README content from GitHub
const fetchReadme = async () => {
try {
let readmeUrl = "";
if (src) {
// Allow passing a URL directly as a prop
readmeUrl = src;
}
if (!readmeUrl) {
throw new Error("Failed to fetch README path");
}
const response = await fetch(readmeUrl);
if (!response.ok) {
throw new Error("Failed to fetch README");
}
const data = await response.text();
if (data) {
setReadmeContent(data.split("\n").splice(1).join("\n"));
}
} catch (error) {
console.error("react-github-readme-md: ", error);
}
};
fetchReadme();
}, []);
if (!readmeContent) {
return null;
}
// Parse the markdown content into HTML
try {
const ghContent = marked.parse(readmeContent);
return (
<div>
<div
dangerouslySetInnerHTML={{
__html: ghContent,
}}
/>
</div>
);
} catch (error) {
console.error("react-github-readme-md: ", error);
return null;
}
};
export default GitHubReadme;