HN เปิดตัว: Markwhen, Markdown สำหรับไทม์ไลน์
(markwhen.com)- Markwhen เป็นภาษาคล้าย Markdown สำหรับบันทึกล็อก กำหนดการ โน้ต งานที่ต้องทำ ซึ่งเกิดขึ้นตามเวลา ในรูปแบบข้อความล้วน และดูได้เหมือนไทม์ไลน์หรือปฏิทิน
- ไวยากรณ์รองรับทั้ง วันที่เดี่ยวและช่วงวันที่ รวมถึงรูปแบบวันที่หลายแบบ กลุ่ม แท็ก เช็กลิสต์ ลิงก์ เขตเวลา กำหนดการซ้ำ frontmatter และพร็อพเพอร์ตี
- อินพุตเดียวกันสามารถดูได้เป็น JSON, Timeline, Calendar และ Oneview ทำให้สลับไปมาระหว่างบันทึกที่มนุษย์อ่านได้กับข้อมูลที่เครื่องประมวลผลได้
- เอาต์พุต JSON มีทรีของอีเวนต์ ช่วงวันที่แบบ ISO แท็ก ข้อความเสริม เวอร์ชันพาร์เซอร์
1.0.1ฯลฯ ทำให้ตรวจสอบผลการพาร์สได้โดยตรง - Meridiem ที่มาพร้อมกันเป็นตัวแก้ไข Markwhen/Markdown ที่มีการแก้ไขร่วมกัน คำสั่งกำหนดเอง snippet การแสดงผลเชิงภาพ การเติมข้อความอัตโนมัติ และการไฮไลต์อีเวนต์
บันทึกอิงเวลาที่ Markwhen จัดการ
- Markwhen เป็น ภาษาเจอร์นัลคล้าย Markdown สำหรับเขียนรายการที่อิงเวลาในรูปแบบข้อความล้วน
- รองรับรูปแบบอย่างล็อก แผนภูมิแกนต์ บล็อก ฟีด โน้ต เจอร์นัล ไดอารี งานที่ต้องทำ ไทม์ไลน์ และปฏิทิน
-
ไวยากรณ์อินพุต
- การระบุวันที่: สามารถใช้วันที่เดี่ยว ช่วงวันที่ และรูปแบบวันที่หลายแบบ เช่น
2025-04-09: Single date,2025-01-22 / 2026-10-24: Date range,Dec 1 2025 - กลุ่ม: ใช้
group Part oneและendGroupเพื่อจัดกลุ่มรายการอย่าง Christmas Eve, Christmas - แท็ก: ติดแท็กอย่าง
#holiday,#haloweenให้กับอีเวนต์ - เช็กลิสต์: เขียนงานที่ต้องทำรายปีในรูปแบบ
- [x],- [] - ลิงก์: สามารถใส่ลิงก์ Google, DuckDuckGo, Bing ในรายการเช็กลิสต์ได้
- เขตเวลา: ระบุ
timezone: America/New_Yorkแล้วเขียนเวลาอย่าง2025-01-01 12:00 - กำหนดการซ้ำ: ใช้นิพจน์อย่าง
every year for 10 years,every 60 minutes x12 - frontmatter และพร็อพเพอร์ตี: รวมค่าต่าง ๆ เช่น
title,description,leader,attendees
- การระบุวันที่: สามารถใช้วันที่เดี่ยว ช่วงวันที่ และรูปแบบวันที่หลายแบบ เช่น
-
เอาต์พุตและผลการพาร์ส
- แท็บเอาต์พุตประกอบด้วย JSON, Timeline, Calendar และ Oneview
- ตัวอย่าง JSON มี
firstLine,properties,textRanges,dateRangeIso,tags,supplemental,matchedListItemsฯลฯ ของอีเวนต์ - ในตัวอย่าง JSON
parser.versionแสดงเป็น1.0.1และยังมีข้อความเตือนที่แนะนำให้ระบุเฮดเดอร์timezoneเมื่อไม่ได้กำหนดเขตเวลา
ตัวแก้ไขและทรัพยากรที่เกี่ยวข้อง
- Meridiem เป็น ตัวแก้ไข สำหรับ Markwhen และ Markdown
- รองรับการแก้ไขร่วมกัน คำสั่งกำหนดเอง snippet การแสดงผลเชิงภาพแบบกำหนดเอง การเติมข้อความอัตโนมัติ การไฮไลต์อีเวนต์ ฯลฯ
- ลิงก์ดาวน์โหลดแสดงเป็น
Download v1.0.12 2026-07-01
- Remark.ing เป็นวิธี扱แต่ละรายการที่เขียนด้วย Markwhen เป็น remark แบบคล้าย tweet
- มีตัวอย่าง
meridiem.markwhen.com/bella/recipes.rawและremark.ing/bella/recipes - มีลิงก์ให้เข้าสู่ระบบด้วย Meridiem เพื่อเริ่มต้นใช้งาน
- มีตัวอย่าง
- มีทรัพยากรสำหรับการพัฒนาและการใช้งานให้ด้วย
- ใน GitHub repository มีรายการ landing site, ตัวติดตาม issue ทั่วไป, Obsidian Plugin, Markwhen CLI, Timeline, Parser, VS Code Extension, View client library, Calendar, C2, Resume
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ผมเป็นผู้พัฒนา ดีใจที่ชอบ markwhen กัน ผมทำโปรเจกต์นี้มาหลายปีแล้ว และตอนแรกได้รับแรงบันดาลใจจากไทม์ไลน์ชีวิตของ cheeaun ที่มีคนพูดถึงในคอมเมนต์อื่น
ตอนนี้มีให้ใช้ในรูปแบบส่วนขยาย VS Code, ปลั๊กอิน Obsidian, เครื่องมือ CLI และเว็บเอดิเตอร์ของ Meridiem
ล่าสุดผมทำ Dial ซึ่งเป็นฟอร์กของ bolt.new ของ Stackblitz และสามารถแก้ไข visualization เดิมของ markwhen (ไทม์ไลน์·ปฏิทิน) หรือสร้างเองได้ในเบราว์เซอร์ เพิ่งเปิดตัวเมื่อวานเลยยังหยาบอยู่ แต่มีแผนจะขยายไปอีกมาก
อีกอย่างคือเพิ่มให้แนบ คุณสมบัติของอีเวนต์ ในรูปแบบ
key: valueกับแต่ละรายการได้ และต่อไปตั้งใจให้ใส่ metadata อย่างผู้เข้าร่วม, Google Calendar ID ได้ โดยคำนึงถึงการทำงานร่วมกับ iCalremark.ing ยังไม่สมบูรณ์มากนัก แต่เป็นไซต์บล็อกรวม ๆ คล้าย Twitter/Bluesky/Mastodon โดยถ้าใช้ markwhen แต่ละรายการจะกลายเป็นโพสต์ ถ้าใส่วันที่ในอนาคตก็จะเป็นการตั้งเวลาโพสต์ และสามารถเก็บทั้งบล็อกไว้ในไฟล์เดียวได้
ตอนพัฒนาทำด้วยปลั๊กอิน Obsidian ส่วนตอนเผยแพร่ใช้ HTML แบบสแตติก
อีกอย่าง ในแอปเดสก์ท็อปผมยังหาวิธีล็อกอินไม่เจอด้วย
อยากรู้ว่ามีแผนจะเปิดเป็นโอเพนซอร์สไหม หาใน GitHub แล้วไม่เจอ
เห็นโปรเจกต์นี้แล้วนึกถึงโปรเจกต์ของ cheeaun เป็นรูปแบบแบบข้อความเรียบง่ายที่ทำให้สร้าง ไทม์ไลน์แบบภาพ ได้ โดยมีจุดประสงค์เพื่อจัดวางเหตุการณ์ในชีวิตให้มองเห็นเป็นภาพ
https://github.com/cheeaun/life
ไฟล์ตัวอย่างใน repository เป็นประมาณนี้:
@USERNAME's life,24/02/1955 Born,~1968 Summer job,03/1976 Built a computer,01/04/1976 Started a company,04/1976-2011 Whole bunch of interesting eventsMermaid ก็รองรับไทม์ไลน์ ถ้าเป็นเวอร์ชันใหม่พอ: https://mermaid.js.org/syntax/timeline.html
Mermaid สามารถใส่ไว้ใน code block เพื่อใช้กับ GitLab/GitHub และตัวแก้ไข Markdown หลายตัวได้
เจ๋งดี ผมเป็นนักพัฒนาที่ทำระบบ สมุดปูมเรืออิเล็กทรอนิกส์กึ่งอัตโนมัติ สำหรับเรือใบ: https://bergie.iki.fi/blog/electronic-logbook/
ตอนนี้ใช้ YAML เพราะต้องการรูปแบบไฟล์ที่ทั้งคนและเครื่องอ่านได้พอเหมาะ Markwhen ก็อาจเข้ากันได้ดี อย่างน้อยก็น่าพิจารณาเป็นรูปแบบสำหรับ export
แต่รายการของผมมีคุณสมบัติเยอะ เช่น ความเร็วลม พิกัดเรือ ค่าบารอมิเตอร์ สมุดปูมเรือแบบดั้งเดิมเขียนเป็นตารางเพื่อบันทึกสิ่งเหล่านี้ ดังนั้นถ้าใช้ Markwhen อาจดูรกพอสมควร
ตัวอย่างสมุดปูมเรือหนึ่งวันในรูปแบบปัจจุบันอยู่ที่นี่: https://github.com/meri-imperiumi/log/blob/main/_data/logboo...
ข้อมูลแบบนี้ยังนำไปใช้วิเคราะห์อย่างสถานะของถังบำบัดน้ำเสีย หรือระยะทางเดินเรือแยกตามลูกเรือด้วย
ต้องระวังหน่อย Gruber มีสิทธิ์เครื่องหมายการค้าต่อคำว่า “Markdown” และดูเหมือนจะไม่ค่อยชอบที่คนอื่นใช้ชื่อนั้น
https://blog.codinghorror.com/standard-markdown-is-now-commo...
ผมไม่คิดว่าเคยเห็น Gruber พูดถึง “สิทธิ์เครื่องหมายการค้า” ประเด็นหลักดูเหมือนจะอยู่ที่การเอาชื่อโปรเจกต์ของเขาไปใช้อย่างไม่ถูกจริยธรรม คล้ายกับมีคนเอาชื่อโปรเจกต์โอเพนซอร์สไปใช้ให้ดูเหมือนเป็นของทางการ อาจไม่ใช่การละเมิดเครื่องหมายการค้า แต่ก็ไม่ใช่เรื่องดีหรือมีจริยธรรม
พอใช้คำว่า “standard” ไม่ได้ ก็คิดทันทีว่า “จะทำต่อไปโดยยัง technically ทำตามได้อย่างไร” แล้วเลือกคำที่ใกล้กับ Standard ที่สุด เพื่อสื่อเป็นนัยว่าแทบจะเป็นฉบับชี้ขาด
ถ้าเป็นผมคงโกรธในสถานการณ์นั้น ถ้าตั้งชื่อว่า ‘Atwood Flavoured Markdown’ ก็คงไม่มีปัญหา แต่ Joel อยากเป็นเจ้าของนิยามของ Markdown
เหมือนเป็นการที่ซีอีโอบริษัทเทคโนโลยีมารวมตัวกันแล้วตัดสินใจเอาไอเดียของคนอื่นไปโดยไม่แม้แต่ถามว่าโอเคไหม และจริง ๆ แล้วเป้าหมายก็คือการกีดกัน John ออกจากโปรเจกต์นั่นเอง
จะทำแบบนั้นก็ได้ แต่จะใช้ชื่อที่คนคนนั้นสร้างต่อไปด้วยไม่ได้
นี่เป็นการทำ Org mode ของ Emacs ขึ้นมาใหม่อีกแล้วสินะ ทำได้ดีนะ
ดูยอดเยี่ยม แต่พูดตรง ๆ Markdown เป็นภาษา markup สำหรับเอกสาร ส่วน Org mode แม้ขอบเขตภายนอกจะดูคล้ายกัน แต่จริง ๆ แล้วใกล้เคียงกับฟอร์แมตสำหรับจัดเก็บและแลกเปลี่ยนข้อมูลมากกว่า ผมคิดว่าการสร้างความสามารถด้านการจัดการข้อมูลและการ query ที่สะสมอยู่รอบ ๆ Org mode ขึ้นใหม่ใน Markdown คงทำได้ยาก
แก่นสำคัญน่าจะอยู่ที่การรองรับ editor ที่ใช้ง่ายอย่าง VS Code หรืออาจถึงขั้นมี editor เฉพาะที่ดียิ่งขึ้น
ผู้ใช้ Org-mode กับเครื่องมือแบบนี้ดูเหมือนจะตามกันเหมือนผีเสื้อกลางคืนกับไฟ ตัว Org-mode เองก็เป็นแพ็กเกจซอฟต์แวร์ที่ค่อนข้างเฉพาะกลุ่มอยู่แล้ว แต่จำนวนแพ็กเกจที่เขียนต่อยอดบนมันทำให้ประหลาดใจเสมอ
MediaWiki ก็คล้ายกัน ผมชอบระบบวิกิ แต่ WikiText แย่มาก
สงสัยว่าอันนี้ใช้กับ ไทม์ไลน์แฟนตาซี ได้ไหม
ผมอยากสร้างไทม์ไลน์ประมาณ
title: History of the World,0: Foo Calendar's civilization founding.,124: Invention of the Foo Calendar,220: Founding of Bar,1310: Invention of GlooblyGock,5621: Demon invasion.ลองเองแล้วดูเหมือนไม่เหมาะกับการใช้งานแบบนี้
ฝากคอมเมนต์ไว้เพราะถ้าคอมเมนต์ว่างคงดูแปลก ๆ จริง ๆ ก็ไม่ได้มีอะไรจะพูดมาก แต่ดูดีมาก และหวังว่าสักวันจะมีข้ออ้างให้ได้ใช้
ฝากไว้สำหรับคนที่ไม่รู้เหมือนผมว่า อันนี้ใช้เป็น ปลั๊กอิน Obsidian ได้ด้วย: https://obsidian.md/plugins?search=markw
พอจะยืมองค์ประกอบด้านความสวยงามบางอย่างจากที่นี่ได้ไหม? https://www.chronoflotimeline.com/timeline/shared/3118/Home-...