mindmime's picture
Upload folder using huggingface_hub
a03b3ba verified
import Prism from "prismjs";
import "prismjs/components/prism-python";
import { make_slug_processor } from "$lib/utils";
import { error } from "@sveltejs/kit";
import { style_formatted_text } from "$lib/text";
let language = "python";
const COLOR_SETS = [
["from-green-100", "to-green-50"],
["from-yellow-100", "to-yellow-50"],
["from-red-100", "to-red-50"],
["from-blue-100", "to-blue-50"],
["from-pink-100", "to-pink-50"],
["from-purple-100", "to-purple-50"]
];
export async function load({ params, parent }) {
const {
docs,
components,
helpers,
modals,
py_client,
routes,
on_main,
wheel,
pages,
url_version
} = await parent();
let name = params.doc;
let obj;
let mode;
let headers = [];
let method_headers = [];
const get_slug = make_slug_processor();
if (!pages.some((p: string) => p === params.doc)) {
throw error(404);
}
for (const key in docs) {
for (const o in docs[key]) {
if (docs[key][o].name) {
docs[key][o].slug = get_slug(docs[key][o].name);
}
if (docs[key][o].fns && docs[key][o].fns.length) {
docs[key][o].fns.forEach((fn: any) => {
if (fn.name) fn.slug = get_slug(`${docs[key][o].name} ${fn.name}`);
});
}
if (o == name) {
obj = docs[key][o];
mode = key;
if (obj.name == "Interface") {
obj.next_obj = "ChatInterface";
} else if (obj.name == "ChatInterface") {
obj.prev_obj = "Interface";
obj.next_obj = "TabbedInterface";
} else if (obj.name == "TabbedInterface") {
obj.prev_obj = "ChatInterface";
obj.next_obj = "Blocks";
} else if (obj.name == "Blocks") {
obj.prev_obj = "TabbedInterface";
obj.next_obj = "Row";
}
if ("description" in obj) {
headers.push(["Description", "description"]);
obj.description = style_formatted_text(obj.description);
}
if ("demos" in obj) {
obj.demos.forEach((demo: string[]) => {
demo.push(
Prism.highlight(demo[1], Prism.languages[language], "python")
);
});
}
if (obj.example) {
obj.highlighted_example = Prism.highlight(
obj.example,
Prism.languages[language],
"python"
);
headers.push(["Example Usage", "example-usage"]);
}
if (mode === "components") {
headers.push(["Behavior", "behavior"]);
}
if (
(obj.parameters.length > 0 && obj.parameters[0].name != "self") ||
obj.parameters.length > 1
) {
headers.push(["Initialization", "initialization"]);
}
if (mode === "components" && obj.string_shortcuts) {
headers.push(["Shortcuts", "shortcuts"]);
}
if ("demos" in obj) {
headers.push(["Demos", "demos"]);
}
if ("fns" in obj && obj.fns.length > 0) {
if (mode === "components") {
headers.push(["Event Listeners", "event-listeners"]);
} else {
headers.push(["Methods", "methods"]);
for (const fn of obj.fns) {
method_headers.push([fn.name, fn.slug]);
if (fn.example) {
fn.highlighted_example = Prism.highlight(
fn.example,
Prism.languages[language],
"python"
);
}
}
}
for (const fn of obj.fns) {
if ("description" in fn) {
fn.description = style_formatted_text(fn.description);
}
if (fn.parameters.length > 0) {
for (const param of fn.parameters) {
if (param.doc) {
param.doc = style_formatted_text(param.doc);
}
}
}
}
}
if ("tags" in obj) {
if ("preprocessing" in obj.tags) {
obj.tags.preprocessing = style_formatted_text(
obj.tags.preprocessing
);
}
if ("postprocessing" in obj.tags) {
obj.tags.postprocessing = style_formatted_text(
obj.tags.postprocessing
);
}
if ("examples_format" in obj.tags) {
obj.tags.examples_format = style_formatted_text(
obj.tags.examples_format
);
}
if ("events" in obj.tags) {
obj.tags.events = style_formatted_text(obj.tags.events);
}
}
if (obj.parameters.length > 0) {
for (const param of obj.parameters) {
if (param.doc) {
param.doc = style_formatted_text(param.doc);
}
}
}
}
}
}
return {
name,
obj,
mode,
components,
helpers,
modals,
routes,
py_client,
COLOR_SETS,
headers,
method_headers,
on_main,
wheel,
url_version
};
}