Initial commit: Memind H5 portal with MindSpace, Plaza, and agent jobs.

Track application source and tests; exclude local env, user workspaces, and runtime data via .gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
John
2026-06-15 15:04:43 -07:00
commit 2e14873f2d
272 changed files with 64133 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
const URL_PATTERN =
/https?:\/\/[^\s<>"')\]]+\/(?:MindSpace|temp)\/([a-z0-9._-]+)\/([^\s<>"')\]]+\.html)/gi;
export type MessageSaveKind = 'page' | 'article';
export type MessageSaveActions = {
kind: MessageSaveKind;
previewUrl: string | null;
links: Array<{ publicUrl: string; filename: string }>;
};
function decodeSegment(segment: string) {
try {
return decodeURIComponent(segment);
} catch {
return segment;
}
}
export function extractStaticPageLinks(content: string, username?: string) {
const links: Array<{ publicUrl: string; filename: string }> = [];
const seen = new Set<string>();
for (const match of content.matchAll(URL_PATTERN)) {
const owner = decodeSegment(match[1]).toLowerCase();
const filename = decodeSegment(match[2]).split('/').pop() ?? match[2];
if (username && owner !== username.trim().toLowerCase()) continue;
if (seen.has(match[0])) continue;
seen.add(match[0]);
links.push({ publicUrl: match[0], filename });
}
return links;
}
export function getMessageSaveActions(content: string, username?: string): MessageSaveActions {
const links = extractStaticPageLinks(content, username);
return {
kind: links.length > 0 ? 'page' : 'article',
previewUrl: links[0]?.publicUrl ?? null,
links,
};
}