can upload images

This commit is contained in:
2025-01-24 12:03:16 -07:00
parent a60008c6d7
commit f0c147cd6a
5 changed files with 36 additions and 18 deletions

View File

@@ -29,6 +29,7 @@ export const canvasAssignmentService = {
) {
console.log(`Creating assignment: ${localAssignment.name}`);
const url = `${canvasApi}/courses/${canvasCourseId}/assignments`;
const content = markdownToHTMLSafe(localAssignment.description, settings);
const body = {
assignment: {
name: localAssignment.name,
@@ -38,7 +39,7 @@ export const canvasAssignmentService = {
allowed_extensions: localAssignment.allowedFileUploadExtensions.map(
(e) => e.toString()
),
description: markdownToHTMLSafe(localAssignment.description, settings),
description: content,
due_at: getDateFromString(localAssignment.dueAt)?.toISOString(),
lock_at:
localAssignment.lockAt &&

View File

@@ -1,13 +1,15 @@
"use client";
import { marked } from "marked";
import DOMPurify from "isomorphic-dompurify";
import DOMPurify from "isomorphic-dompurify";
import { LocalCourseSettings } from "@/models/local/localCourseSettings";
import markedKatex from "marked-katex-extension";
marked.use(markedKatex({
throwOnError: false,
output: "mathml"
}));
marked.use(
markedKatex({
throwOnError: false,
output: "mathml",
})
);
export function extractImageSources(htmlString: string) {
const srcUrls = [];
@@ -46,7 +48,8 @@ export function markdownToHTMLSafe(
markdownString: string,
settings: LocalCourseSettings
) {
return markdownToHtmlNoImages(markdownString);
const html = markdownToHtmlNoImages(markdownString);
return convertImagesToCanvasImages(html, settings);
}
export function markdownToHtmlNoImages(markdownString: string) {

View File

@@ -7,6 +7,8 @@ import {
uploadToCanvasPart2,
} from "@/services/canvas/files/canvasFileService";
const fileStorageLocation = process.env.FILE_STORAGE_LOCATION ?? "/app/public";
export const canvasFileRouter = router({
getCanvasFileUrl: publicProcedure
.input(
@@ -16,15 +18,17 @@ export const canvasFileRouter = router({
})
)
.mutation(async ({ input: { sourceUrl, canvasCourseId } }) => {
const localTempFile = await downloadUrlToTempDirectory(sourceUrl);
console.log("local temp file", localTempFile);
const localFile = sourceUrl.startsWith("/")
? fileStorageLocation + sourceUrl
: await downloadUrlToTempDirectory(sourceUrl);
console.log("local temp file", localFile);
const { upload_url, upload_params } = await uploadToCanvasPart1(
localTempFile,
localFile,
canvasCourseId
);
console.log("part 1 done", upload_url, upload_params);
const canvasUrl = await uploadToCanvasPart2({
pathToUpload: localTempFile,
pathToUpload: localFile,
upload_url,
upload_params,
});