3 คะแนน โดย GN⁺ 2024-12-02 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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 ความคิดเห็น

 
GN⁺ 2024-12-02
ความคิดเห็นบน Hacker News
  • ผมเป็นผู้พัฒนา ดีใจที่ชอบ markwhen กัน ผมทำโปรเจกต์นี้มาหลายปีแล้ว และตอนแรกได้รับแรงบันดาลใจจากไทม์ไลน์ชีวิตของ cheeaun ที่มีคนพูดถึงในคอมเมนต์อื่น
    ตอนนี้มีให้ใช้ในรูปแบบส่วนขยาย VS Code, ปลั๊กอิน Obsidian, เครื่องมือ CLI และเว็บเอดิเตอร์ของ Meridiem
    ล่าสุดผมทำ Dial ซึ่งเป็นฟอร์กของ bolt.new ของ Stackblitz และสามารถแก้ไข visualization เดิมของ markwhen (ไทม์ไลน์·ปฏิทิน) หรือสร้างเองได้ในเบราว์เซอร์ เพิ่งเปิดตัวเมื่อวานเลยยังหยาบอยู่ แต่มีแผนจะขยายไปอีกมาก
    อีกอย่างคือเพิ่มให้แนบ คุณสมบัติของอีเวนต์ ในรูปแบบ key: value กับแต่ละรายการได้ และต่อไปตั้งใจให้ใส่ metadata อย่างผู้เข้าร่วม, Google Calendar ID ได้ โดยคำนึงถึงการทำงานร่วมกับ iCal
    remark.ing ยังไม่สมบูรณ์มากนัก แต่เป็นไซต์บล็อกรวม ๆ คล้าย Twitter/Bluesky/Mastodon โดยถ้าใช้ markwhen แต่ละรายการจะกลายเป็นโพสต์ ถ้าใส่วันที่ในอนาคตก็จะเป็นการตั้งเวลาโพสต์ และสามารถเก็บทั้งบล็อกไว้ในไฟล์เดียวได้

    • เมื่อเร็ว ๆ นี้ผมใช้ Markwhen ทำ แผนภูมิแกนต์แบบอินเทอร์แอ็กทีฟ สำหรับข้อเสนอความร่วมมือ และออกมาดีมาก สุดท้ายก็ได้งานนั้นมา
      ตอนพัฒนาทำด้วยปลั๊กอิน Obsidian ส่วนตอนเผยแพร่ใช้ HTML แบบสแตติก
    • ยินดีด้วยกับการเปิดตัว ผมกำลังทำเครื่องมือที่เหมือนกันเป๊ะอยู่ แต่คุณปล่อยออกมาก่อนแล้ว และดูยากที่จะสู้กับ ฟังก์ชันการทำงานและความสมบูรณ์ ระดับนี้
    • ดูดีมาก แต่หา วิธีสมัคร ค่อนข้างยาก
      อีกอย่าง ในแอปเดสก์ท็อปผมยังหาวิธีล็อกอินไม่เจอด้วย
    • Remark.ing ดูดีจริง ๆ ผมเคยคิดว่าจะทำอะไรคล้าย Memos สำหรับใช้ส่วนตัว โดยใช้ไฟล์ Markdown แทนฐานข้อมูลเชิงสัมพันธ์ และอันนี้ค่อนข้างใกล้กับสิ่งที่ตามหาอยู่
      อยากรู้ว่ามีแผนจะเปิดเป็นโอเพนซอร์สไหม หาใน 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 events

    • เป็นโปรเจกต์ที่ยอดเยี่ยม สงสัยว่ามีใครทำ visualization รูปแบบ life in weeks แบบ https://waitbutwhy.com/2014/05/life-weeks.html แทนไทม์ไลน์แนวนอนแบบเส้นตรงบ้างไหม
  • Mermaid ก็รองรับไทม์ไลน์ ถ้าเป็นเวอร์ชันใหม่พอ: https://mermaid.js.org/syntax/timeline.html
    Mermaid สามารถใส่ไว้ใน code block เพื่อใช้กับ GitLab/GitHub และตัวแก้ไข Markdown หลายตัวได้

    • แผนภูมิในลิงก์ดูไม่เหมือนแผนภูมิประเภทเดียวกัน มันบอกว่าอะไรเกิดหลังอะไร แต่ดูเหมือนจะขาดข้อมูลว่าแต่ละงาน ใช้เวลานานเท่าไร
    • ผมทำแบบนี้ด้วย Mermaid มาหลายปีแล้ว แต่ markwhen ให้ความรู้สึกว่าง่ายกว่าทันที
  • เจ๋งดี ผมเป็นนักพัฒนาที่ทำระบบ สมุดปูมเรืออิเล็กทรอนิกส์กึ่งอัตโนมัติ สำหรับเรือใบ: 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...

    • อันนี้ไม่เพียงแต่ชื่อก็ต่างกันอยู่แล้ว แต่ตอนนั้นจริง ๆ แล้วเป็น ความพยายามที่จะรับเอา Markdown มาใช้ ด้วยซ้ำ ไม่ได้ใกล้เคียงกับโปรเจกต์นี้เลย
    • ไลเซนส์อยู่ที่นี่: http://daringfireball.net/projects/downloads/Markdown_1.0.1....
      ผมไม่คิดว่าเคยเห็น Gruber พูดถึง “สิทธิ์เครื่องหมายการค้า” ประเด็นหลักดูเหมือนจะอยู่ที่การเอาชื่อโปรเจกต์ของเขาไปใช้อย่างไม่ถูกจริยธรรม คล้ายกับมีคนเอาชื่อโปรเจกต์โอเพนซอร์สไปใช้ให้ดูเหมือนเป็นของทางการ อาจไม่ใช่การละเมิดเครื่องหมายการค้า แต่ก็ไม่ใช่เรื่องดีหรือมีจริยธรรม
    • ลองหา เครื่องหมายการค้า ของ “Markdown” แล้ว แต่ไม่เจอ แสดงเครื่องหมายการค้านั้นให้ดูได้ไหม?
    • Joel พยายามใช้ มาตรฐาน IETF แบบทางลัดสำหรับสิ่งที่ตัวเองไม่ได้ประดิษฐ์ขึ้น
      พอใช้คำว่า “standard” ไม่ได้ ก็คิดทันทีว่า “จะทำต่อไปโดยยัง technically ทำตามได้อย่างไร” แล้วเลือกคำที่ใกล้กับ Standard ที่สุด เพื่อสื่อเป็นนัยว่าแทบจะเป็นฉบับชี้ขาด
      ถ้าเป็นผมคงโกรธในสถานการณ์นั้น ถ้าตั้งชื่อว่า ‘Atwood Flavoured Markdown’ ก็คงไม่มีปัญหา แต่ Joel อยากเป็นเจ้าของนิยามของ Markdown
      เหมือนเป็นการที่ซีอีโอบริษัทเทคโนโลยีมารวมตัวกันแล้วตัดสินใจเอาไอเดียของคนอื่นไปโดยไม่แม้แต่ถามว่าโอเคไหม และจริง ๆ แล้วเป้าหมายก็คือการกีดกัน John ออกจากโปรเจกต์นั่นเอง
      จะทำแบบนั้นก็ได้ แต่จะใช้ชื่อที่คนคนนั้นสร้างต่อไปด้วยไม่ได้
    • John Gruber ยังโกรธมากกับการที่คำว่า Markdown ไม่ได้ขึ้นต้นด้วยตัวพิมพ์ใหญ่ ตลอดทั้งสเปกด้วย
  • นี่เป็นการทำ Org mode ของ Emacs ขึ้นมาใหม่อีกแล้วสินะ ทำได้ดีนะ
    ดูยอดเยี่ยม แต่พูดตรง ๆ Markdown เป็นภาษา markup สำหรับเอกสาร ส่วน Org mode แม้ขอบเขตภายนอกจะดูคล้ายกัน แต่จริง ๆ แล้วใกล้เคียงกับฟอร์แมตสำหรับจัดเก็บและแลกเปลี่ยนข้อมูลมากกว่า ผมคิดว่าการสร้างความสามารถด้านการจัดการข้อมูลและการ query ที่สะสมอยู่รอบ ๆ Org mode ขึ้นใหม่ใน Markdown คงทำได้ยาก

    • เห็นด้วย อันนี้ทำได้ง่ายใน Org ถ้า Org เป็นที่นิยมกว่านี้ โซลูชันแบบนี้คงหายไปมาก หรือกลายเป็นแค่โปรเจกต์เล็ก ๆ ที่อ่าน properties ของ Org เท่านั้น
      แก่นสำคัญน่าจะอยู่ที่การรองรับ editor ที่ใช้ง่ายอย่าง VS Code หรืออาจถึงขั้นมี editor เฉพาะที่ดียิ่งขึ้น
    • ตัวอย่างเช่น https://github.com/legalnonsense/elgantt/, https://github.com/elsatch/org-timeline-viewer, https://orgmode.org/worg/org-tutorials/org-taskjuggler.html
      ผู้ใช้ Org-mode กับเครื่องมือแบบนี้ดูเหมือนจะตามกันเหมือนผีเสื้อกลางคืนกับไฟ ตัว Org-mode เองก็เป็นแพ็กเกจซอฟต์แวร์ที่ค่อนข้างเฉพาะกลุ่มอยู่แล้ว แต่จำนวนแพ็กเกจที่เขียนต่อยอดบนมันทำให้ประหลาดใจเสมอ
    • ผมอยากชอบ Org mode มาก ๆ แต่ก็ทำไม่ได้ ไวยากรณ์ รู้สึกขัด ๆ เกินไป Markdown แค่เพิ่มสัญลักษณ์ไม่กี่ตัว แต่ Org mode ในบางแง่ให้ความรู้สึกเหมือนเขียน LaTeX
      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-...

    • นั่นเป็นผลิตภัณฑ์ของผมเอง ขอบคุณที่พูดถึง
    • ถ้าจะยืมมาก็ขอเว้น latency ไว้ละกัน ผมลองบน M2 Macbook Air รุ่นปี 2022 ด้วย Firefox กับ Safari แล้วตอบสนองช้า