Public
Like
moiPosterImproved
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data β all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v14View latest version
A tool to create and manage moi.md files for your Val Town vals and projects.
- View all your vals and projects
- Edit and preview moi.md files with a built-in markdown editor
- Batch process multiple vals or projects at once
- Filter by privacy settings (public, private, unlisted)
- Automatically generate moi.md content based on val or project metadata
The project has the following components:
- backend/ - Server-side code
- index.ts - Main API routes using Hono
- moiProcessor.ts - Logic for batch processing moi.md files
- frontend/ - Client-side code
- components/ - React components
- App.tsx - Main application component
- Editor.tsx - Markdown editor component
- ItemList.tsx - Component for displaying vals or projects
- MarkdownPreview.tsx - Markdown preview component
- index.tsx - Frontend entry point
- components/ - React components
- shared/ - Shared code
- types.ts - TypeScript type definitions
- generators.ts - Functions to generate moi.md content
Visit the live endpoint to use the application.
GET /api/vals- Get all vals (supports privacy filter)GET /api/projects- Get all projects (supports privacy filter)GET /api/vals/:valId/moi- Get moi.md for a valGET /api/projects/:projectId/moi- Get moi.md for a projectPOST /api/vals/:valId/moi- Create/update moi.md for a valPOST /api/projects/:projectId/moi- Create/update moi.md for a projectPOST /api/vals/batch- Batch process moi.md for valsPOST /api/projects/batch- Batch process moi.md for projects
The moiProcessor.ts file can be used directly as a script val:
import moiProcessor from "https://esm.town/v/dcm31/moiPosterImproved/backend/moiProcessor.ts";
// Process all vals
const results = await moiProcessor('vals', {
filter: 'public', // 'all', 'public', 'private', or 'unlisted'
overwrite: false // Whether to overwrite existing moi.md files
});
console.log(results);
The generated moi.md files follow this format:
---
title: "Project Name"
description: "Project description"
url: "https://val.town/..."
author: "username"
tags: ["val-town", "project"]
---
# Project Name
Project description
## Installation
...
## Structure
...
## Features
...
## Usage Examples
...
## License
MIT
---
Last updated: YYYY-MM-DD
MIT