A TypeScript library for parsing and stringifying TaskMark-v1 formatted tasks. TaskMark-v1 is a strict Markdown syntax for describing structured tasks enriched with semantic metadata, hierarchical tags, and focus emojis.
- ✅ Full TaskMark-v1 compliance - Implements the complete TaskMark-v1 specification
- ✅ TypeScript - Fully typed with comprehensive type definitions
- ✅ Parse & Stringify - Convert between TaskMark strings and structured Task objects
- ✅ Utility Functions - Helper functions for modifying task strings without full parsing
- ✅ Internationalization - Support for custom tags and scenario prefixes
- ✅ Validation - Built-in validation using Zod schemas
- ✅ ESM and CJS - Supports both module systems
npm install taskmarkimport{parse}from'taskmark';consttaskString='- [ ] 🎯 Write report #Tasks/Main_Mission 🌡️ high ⏱️ 90m 📅 2025-01-20';consttask=parse(taskString);console.log(task);// {// content: "Write report",// type: "main_mission",// focuses: ["critical"],// energy: "high",// duration: "90m",// dueAt: "2025-01-20",// ...// }import{stringify}from'taskmark';consttask={state: 'incomplete',content: 'Write report',type: 'main_mission',tags: ['Tasks/Main_Mission'],focuses: ['critical'],energy: 'high',duration: '90m',dueAt: '2025-01-20',priority: 'normal',};consttaskString=stringify(task);// Returns: "- [ ] 🎯 Write report #Tasks/Main_Mission 🌡️ high ⏱️ 90m 📅 2025-01-20"import{markAsCompleted,setDueDate,addFocus}from'taskmark';lettask='- [ ] Buy groceries #Tasks/Quick';// Mark as completed (adds completion date automatically)task=markAsCompleted(task);// Returns: "- [x] Buy groceries #Tasks/Quick ✅ 2025-01-15"// Set due datetask=setDueDate(task,'2025-01-20');// Returns: "- [x] Buy groceries #Tasks/Quick ✅ 2025-01-15 📅 2025-01-20"// Add focus emojitask=addFocus(task,'critical');// Returns: "- [x] 🎯 Buy groceries #Tasks/Quick ✅ 2025-01-15 📅 2025-01-20"TaskMark-v1 tasks follow this structure:
- [<state>] <focuses> <content> <tags> <energy> <duration> <dates> <priority> <dependencies>
- [ ] 🎯🔥 Implement authentication #Tasks/Main_Mission #Scenarios/Work/Programming 🧠 🌡️ high ⏱️ 90m 🔺 ➕ 2025-01-10 ⏳ 2025-01-11 📅 2025-01-12 🆔 auth01 ⛔ task02
This task includes:
- State:
[ ](incomplete) - Focuses: 🎯 (critical), 🔥 (hyper-focus), 🧠 (hard cognitive)
- Type:
#Tasks/Main_Mission - Scenarios:
#Scenarios/Work/Programming - Energy: 🌡️ high
- Duration: ⏱️ 90m
- Priority: 🔺 (maximum)
- Dates: Created (➕), Scheduled (⏳), Due (📅)
- ID: 🆔 auth01
- Dependencies: ⛔ task02
- Getting Started - Detailed guide with examples
- API Reference - Complete API documentation
- TaskMark-v1 Specification - Full specification document
- Contributing - How to contribute to the project
npm installnpm run build# Run tests once
npm test# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage# Check for linting errors
npm run lint
# Fix linting errors
npm run lint:fix
# Format code
npm run formatnpm run typecheckThe documentation is built with Docsify and published to GitHub Pages.
# Serve documentation locally
npm run docs:serveVisit the documentation at: https://aitorllj93.github.io/taskmark/
MIT