4 คะแนน โดย GN⁺ 2024-12-27 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • SiYuan คือ ระบบจัดการความรู้ส่วนบุคคลที่ให้ความสำคัญกับความเป็นส่วนตัวเป็นอันดับแรก ซึ่งรองรับการอ้างอิงระดับบล็อกอย่างละเอียดและการแก้ไข Markdown แบบ WYSIWYG
  • ฟีเจอร์หลักประกอบด้วยการอ้างอิงระดับบล็อกและลิงก์สองทาง, การฝัง SQL query, การแก้ไขเอกสารขนาดใหญ่, สูตรคณิตศาสตร์และแผนภูมิ, web clipping, ลิงก์คำอธิบายประกอบ PDF, มุมมองตารางฐานข้อมูล และการทบทวนแบบ spaced repetition ด้วยแฟลชการ์ด
  • มีแอปเดสก์ท็อปและมือถือ, การติดตั้งผ่าน Docker, API, CLI และ community marketplace พร้อมรองรับ การเขียนด้วย AI และแชต Q/A บนพื้นฐาน OpenAI API รวมถึง Tesseract OCR
  • ฟีเจอร์ส่วนใหญ่ใช้งานได้ฟรีแม้เพื่อการพาณิชย์ แต่บางฟีเจอร์เป็น สำหรับสมาชิกแบบชำระเงินเท่านั้น และไม่รองรับการซิงก์ข้อมูลผ่านดิสก์ซิงก์ของบุคคลที่สามเนื่องจากอาจทำให้ข้อมูลเสียหายได้
  • การติดตั้งผ่าน Docker รองรับเฉพาะการใช้งานผ่านเบราว์เซอร์ และไม่รองรับการเชื่อมต่อกับแอปเดสก์ท็อป/มือถือ, การส่งออก PDF/HTML/Word และการนำเข้าไฟล์ Markdown

โมเดลการจัดการความรู้ที่ SiYuan นำเสนอ

  • SiYuan เป็นระบบจัดการความรู้ส่วนบุคคลที่ชูแนวคิด “Refactor your thinking”
  • แนวทางหลักคือ ให้ความสำคัญกับความเป็นส่วนตัวเป็นอันดับแรก และรองรับการอ้างอิง ระดับบล็อก อย่างละเอียดพร้อมการแก้ไข Markdown แบบ WYSIWYG
  • คู่มือผู้ใช้งานออนไลน์มีให้ในภาษา English
  • ฟอรัมสนทนาภาษาอังกฤษเปิดให้ใช้งานที่ SiYuan English Discussion Forum

ฟีเจอร์หลัก

  • ฟีเจอร์ content block ครอบคลุมการอ้างอิงระดับบล็อกและลิงก์สองทาง, คุณสมบัติแบบกำหนดเอง, การฝัง SQL query และโปรโตคอล siyuan://
  • ตัวแก้ไข รองรับการแก้ไขสไตล์บล็อก, Markdown แบบ WYSIWYG, โครงร่างรายการ, การขยายบล็อก และการแก้ไขเอกสารขนาดใหญ่ระดับล้านคำ
  • สามารถใส่สูตรคณิตศาสตร์, แผนภูมิ, flowchart, Gantt chart, timing chart, โน้ตดนตรีห้าเส้น และรูปแบบการแสดงผลอื่น ๆ ลงในเอกสารได้
  • รองรับ web clipping และลิงก์คำอธิบายประกอบ PDF
  • การส่งออกรองรับ Markdown มาตรฐานที่มี block reference, embed และ assets รวมถึง PDF, Word และ HTML
  • มีฟีเจอร์คัดลอกไปยัง WeChat MP, Zhihu และ Yuque
  • ฐานข้อมูลมี Table view
  • รองรับการทบทวนแบบ spaced repetition ด้วยแฟลชการ์ด, การเขียนด้วย AI และแชต Q/A บนพื้นฐาน OpenAI API และ Tesseract OCR
  • มี multi-tab, split screen แบบ drag-and-drop, template snippet และ JavaScript/CSS snippet
  • รองรับแอป Android, iOS, HarmonyOS และการติดตั้งผ่าน Docker
  • มี API และ community marketplace
  • ฟีเจอร์ส่วนใหญ่ใช้งานได้ฟรีแม้เพื่อการพาณิชย์ และบางฟีเจอร์เป็นฟีเจอร์สมาชิกแบบชำระเงินตาม Pricing

สถาปัตยกรรมและระบบนิเวศ

  • ระบบนิเวศของ SiYuan ประกอบด้วยเอนจินตัวแก้ไข, ส่วนขยาย, marketplace, data repository, plugin API, แอปมือถือ และโครงการทบทวนแบบเว้นระยะ
  • lute: เอนจินตัวแก้ไข
  • chrome: ส่วนขยาย Chrome/Edge
  • bazaar: community marketplace
  • dejavu: data repository
  • petal: plugin API
  • android: แอป Android
  • ios: แอป iOS
  • harmony: แอป HarmonyOS
  • riff: การทบทวนแบบ spaced repetition

การติดตั้งและการปรับใช้

  • บนเดสก์ท็อปและมือถือ แนะนำให้ ติดตั้งผ่าน app store ก่อนเพื่อรองรับการอัปเกรดแบบคลิกเดียวในอนาคต
  • แอปมือถือมีให้บน App Store, Google Play, F-Droid
  • แอปเดสก์ท็อปมีให้บน Microsoft Store
  • แพ็กเกจติดตั้งดาวน์โหลดได้จาก B3log และ GitHub Releases
  • รายการใน package manager ใช้ชื่อ siyuan และ siyuan-note

การโฮสต์ด้วย Docker

  • วิธีที่ง่ายที่สุดในการให้บริการ SiYuan บนเซิร์ฟเวอร์คือ การติดตั้งผ่าน Docker
  • ชื่อ Docker image คือ b3log/siyuan และหน้าของ image อยู่ที่ Docker Hub
  • ตั้งแต่ v3.7.0 ต้องส่ง subcommand serve อย่างชัดเจน
    • ตัวอย่าง: docker run b3log/siyuan serve --workspace=...
  • ตัวเลือกการรันหลักมีดังนี้
    • --workspace: ระบุพาธโฟลเดอร์ workspace ที่ mount จากโฮสต์ด้วย -v
    • --accessAuthCode: กำหนดรหัสผ่านหน้าจอล็อก
  • สามารถกำหนด PUID และ PGID ผ่าน environment variable เพื่อปรับผู้ใช้และกลุ่มที่รันภายในคอนเทนเนอร์
    • หากไม่ระบุค่า จะใช้ค่าเริ่มต้นเป็น 1000
    • เป็นการตั้งค่าเพื่อลดปัญหาสิทธิ์ของไดเรกทอรีที่ mount จากโฮสต์
  • พาธ workspace สามารถตั้งผ่าน environment variable SIYUAN_WORKSPACE_PATH ได้เช่นกัน แต่หากมีอาร์กิวเมนต์จาก command line จะยึด command line เป็นหลัก
  • รหัสผ่านหน้าจอล็อกสามารถตั้งผ่าน environment variable SIYUAN_ACCESS_AUTH_CODE ได้เช่นกัน แต่หากมีอาร์กิวเมนต์จาก command line จะยึด command line เป็นหลัก
  • หากตั้ง SIYUAN_ACCESS_AUTH_CODE_BYPASS=true จะปิดการใช้งานรหัสผ่านหน้าจอล็อกได้
  • SIYUAN_LANG ใช้กำหนดภาษาของอินเทอร์เฟซใน Docker และหากไม่ตั้งค่าจะใช้ค่าเริ่มต้นเป็น en
  • หากต้องการซ่อนพอร์ต 6806 สามารถใช้ NGINX reverse proxy ได้ และจำเป็นต้องตั้งค่า WebSocket reverse proxy สำหรับ /ws
  • ข้อควรระวังในการติดตั้งผ่าน Docker
    • หาก mount volume ไม่ถูกต้อง ข้อมูลอาจสูญหายหลังลบคอนเทนเนอร์
    • เนื่องจากอาจเกิดปัญหาการยืนยันตัวตน จึงแนะนำให้ใช้การตั้งค่า reverse proxy แทนการ redirect แบบ URL rewrite
    • หากมีปัญหาเรื่องสิทธิ์ ควรตรวจสอบว่า PUID และ PGID ตรงกับเจ้าของไดเรกทอรีที่ mount จากโฮสต์หรือไม่
  • ข้อจำกัด ของการติดตั้งผ่าน Docker
    • ไม่รองรับการเชื่อมต่อกับแอปเดสก์ท็อปและมือถือ และรองรับเฉพาะการใช้งานผ่านเบราว์เซอร์
    • ไม่รองรับการส่งออกเป็น PDF, HTML, Word
    • ไม่รองรับการนำเข้าไฟล์ Markdown

CLI

  • CLI ในตัวเข้าถึง ข้อมูล workspace ได้โดยตรงโดยไม่ต้องมีเซิร์ฟเวอร์ที่กำลังทำงานอยู่
  • ตัวอย่างการใช้งานแบบรวดเร็วมีดังนี้
    • siyuan notebook list -w ~/SiYuan: แสดงรายการโน้ตบุ๊กทั้งหมด
    • siyuan search "keyword" -w ~/SiYuan -f json: ค้นหาแบบ full-text พร้อมผลลัพธ์เป็น JSON
    • siyuan export md --id <block-id> -w ~/SiYuan: ส่งออกเอกสารเป็น Markdown
  • หมวดคำสั่งครอบคลุม notebooks และ documents, content, metadata, query, reference, import/export, data management, utility, database, server, workspace/system
  • -f json ให้ผลลัพธ์ที่เหมาะกับการใช้งานในสคริปต์ และรูปแบบเริ่มต้นคือ -f table
  • คำสั่งแก้ไขส่วนใหญ่รองรับ --dry-run สำหรับดูตัวอย่างก่อนนำไปใช้จริง
  • ไบนารีของ CLI คือ SiYuan-Kernel ซึ่งอยู่ใต้ <install>/resources/kernel ของพาธติดตั้ง
    • ตัวติดตั้งบน Windows จะเพิ่มลง PATH ให้อัตโนมัติ
    • บน macOS/Linux สามารถสร้าง symbolic link ได้ด้วยตนเอง

การจัดเก็บและการซิงก์ข้อมูล

  • ข้อมูลถูกจัดเก็บในโฟลเดอร์ data ของ workspace
  • หน้าที่ของโฟลเดอร์หลักมีดังนี้
    • assets: เก็บ assets ที่แทรกไว้
    • emojis: เก็บรูปภาพอีโมจิ
    • snippets: เก็บ code snippet
    • storage: เก็บเงื่อนไข query, layout, แฟลชการ์ด เป็นต้น
    • templates: เก็บ template snippet
    • widgets: เก็บ widget
    • plugins: เก็บ plugin
    • public: เก็บข้อมูลสาธารณะ
  • โฟลเดอร์ที่เหลือคือโฟลเดอร์โน้ตบุ๊กที่ผู้ใช้สร้างขึ้น และไฟล์ .sy ภายในโฟลเดอร์โน้ตบุ๊กใช้เก็บข้อมูลเอกสาร
  • รูปแบบข้อมูลเอกสาร .sy คือ JSON
  • ไม่รองรับการซิงก์ข้อมูลผ่านดิสก์ซิงก์ของบุคคลที่สาม เพราะอาจทำให้ข้อมูลเสียหายได้
  • แม้จะไม่รองรับดิสก์ซิงก์ของบุคคลที่สาม แต่รองรับการเชื่อมต่อกับที่เก็บข้อมูลคลาวด์ของบุคคลที่สามผ่านสิทธิ์สมาชิกแบบชำระเงิน
  • สามารถใช้การส่งออกและนำเข้าข้อมูลเป็นทางเลือกสำหรับการซิงก์แบบแมนนวล
    • เดสก์ท็อป: SettingsExportExport Data / Import Data
    • มือถือ: Right columnAboutExport Data / Import Data

โอเพนซอร์สและการอัปเกรด

  • SiYuan เป็น โอเพนซอร์สเต็มรูปแบบ และยินดีรับการมีส่วนร่วม
  • รีโพซิทอรีที่เกี่ยวข้องมีดังนี้
  • ดูแนวทางการพัฒนาได้ที่ Development Guide
  • หากติดตั้งผ่าน app store ให้อัปเดตจาก app store
  • หากติดตั้งผ่านแพ็กเกจเดสก์ท็อป สามารถตั้งค่า SettingsAboutAutomatically download update installation package เพื่อดาวน์โหลดแพ็กเกจติดตั้งล่าสุดอัตโนมัติและรับคำแนะนำในการติดตั้ง
  • หากติดตั้งผ่านแพ็กเกจแบบแมนนวล ให้ดาวน์โหลดแพ็กเกจติดตั้งอีกครั้งแล้วติดตั้ง
  • ตรวจสอบเวอร์ชันใหม่ได้ที่ SettingsAboutCurrent VersionCheck update, Official Download, GitHub Releases

FAQ อื่น ๆ

  • หากไม่พบไอคอนบล็อกในบางบล็อก เช่น paragraph block ภายในรายการ นั่นหมายความว่าไอคอนบล็อกของบล็อกย่อยตัวแรกใต้รายการนั้นถูกซ่อนไว้
    • สามารถวางเคอร์เซอร์บนบล็อกนั้นแล้วกด Ctrl+/ เพื่อเปิดเมนูบล็อกได้
  • หากทำ data repo key หาย และก่อนหน้านี้เคย initial setup อย่างถูกต้องบนหลายอุปกรณ์ คีย์ของทุกอุปกรณ์จะเหมือนกัน และสามารถดึงได้จาก SettingsAboutData repo keyCopy key string
  • หากตั้งค่าคีย์ไม่ถูกต้อง หรือไม่สามารถใช้งานทุกอุปกรณ์ได้ ต้องสำรองข้อมูลด้วยตนเองแล้วรีเซ็ต data repo key
    • ใช้ Export Data หรือคัดลอกโฟลเดอร์ workspace/data/ จากระบบไฟล์โดยตรงเพื่อสำรองข้อมูล
    • เรียกใช้ SettingsAboutData repo keyReset data repo
    • หลังรีเซ็ตคีย์บนอุปกรณ์หนึ่งแล้ว ให้นำเข้าคีย์บนอุปกรณ์อื่น
    • คลาวด์จะใช้ไดเรกทอรีซิงก์ใหม่ และไดเรกทอรีซิงก์เดิมรวมถึง snapshot บนคลาวด์เดิมจะไม่สามารถใช้งานได้อีก
  • ฟีเจอร์ส่วนใหญ่ใช้งานได้ฟรีแม้เพื่อการพาณิชย์
  • สิทธิ์สมาชิกแบบชำระเงินจะใช้งานได้หลังชำระเงินเท่านั้น และรายละเอียดเพิ่มเติมดูได้ที่ Pricing

1 ความคิดเห็น

 
GN⁺ 2024-12-27
ความเห็นจาก Hacker News
  • ดูน่าสนใจดี แต่พอผ่านเส้นทางด้านการจัดการความรู้/การเพิ่มประสิทธิภาพการทำงานมาแล้ว ก็รู้สึกว่าถ้าคุณคุ้นกับคอมพิวเตอร์หรือ Unix อยู่พอสมควร ควรเริ่มจากการพึ่งพา โครงสร้างไดเรกทอรี, ชื่อไฟล์, plain text, รายการ, Markdown ก่อน
    แนวทางแบบ Unix ที่ให้ความสำคัญกับไฟล์มากกว่าแอปนั้นดีกว่า และควรจัดระเบียบด้วยแนวคิดสากลอย่างสถานที่ สิ่งของ ผู้คน เหตุการณ์ ตัวชี้วัด และวิธีใช้ การใช้เครื่องมืออย่างคำสั่ง Unix, make/justfile, (rip)grep, git, fzf ก็ช่วยได้มาก และถ้าพยายามแก้ปัญหานี้ผ่านเว็บ สุดท้ายจะกลายเป็นไปแก้ปัญหาเรื่องเว็บแทนที่จะเป็นการจัดการความรู้พื้นฐาน สมาร์ตโฟน/หน้าจอสัมผัสก็เป็นปัญหาใหญ่เช่นกัน แต่แทนที่จะพยายามแก้เองทั้งหมด ทางที่เป็นจริงกว่าคือทำให้ตัวจัดการไฟล์หรือ fzf บน Termux ใช้งานด้วยการสัมผัสได้ดีพอ อย่างไรก็ตาม ฟีเจอร์ backlink ยังเป็นเรื่องที่กำลังคิดอยู่เสมอ และคงดีถ้ามีเครื่องมือ Unix ที่สแกนการอ้างอิงไฟล์อื่นจากไฟล์ข้อความในลำดับชั้นได้

    • เคยลองใช้ Flatnotes(https://github.com/Dullage/flatnotes) อยู่พักหนึ่ง และชอบการออกแบบของมัน
      มันไม่มีโน้ตบุ๊กหรือโฟลเดอร์ มีแค่ไดเรกทอรีเดียวที่เก็บไฟล์ Markdown พร้อมระบบค้นหา/แท็กที่ใช้ได้ดี คล้ายกับแนวโน้มที่เลิกจัดอีเมลเป็นโครงสร้างลึก ๆ ล่วงหน้า แล้วเปลี่ยนมาเป็น “ทำดัชนีไว้ แล้วค่อยค้นหาเมื่อจำเป็น” มันเพียงพอกับความต้องการ และถึงจะมีบั๊กเล็ก ๆ หรือช่องโหว่อยู่บ้างก็ยังหลบเลี่ยงหรืออยู่กับมันได้ ข้อจำกัดเป็นแรงผลักดันที่ทรงพลังต่อความคิดสร้างสรรค์และการลงมือทำ
    • Obsidian ช่วยให้คุณใช้ชีวิตอยู่กับไฟล์ Markdown บนโครงสร้างไฟล์ซิสเต็มได้ พร้อมมีลิงก์ แท็ก และ topic cloud ให้ด้วย
      ถ้าใช้กฎเกณฑ์ที่สมเหตุสมผล ก็สามารถสร้างเวอร์ชันเว็บด้วย Ghost หรือ Zola และ deploy อัตโนมัติผ่าน CI ได้ มีทั้งแบ็กอัปและการซิงก์ รวมถึงแอปเดสก์ท็อป/มือถือ มี Vim key binding และปลั๊กอิน git ด้วย มันเข้ากับ Unix ได้ดีและปรับตัวเข้ากับรูปแบบการสำรวจ/จัดระเบียบหลายแบบ เป็นระบบที่ดีมากทีเดียว ใช้เครื่องมือมาหลายตัวแล้วก็ยังไม่เจออะไรที่เข้าใกล้ Obsidian
    • ผมก็ผ่านเส้นทางคล้ายกัน และความหงุดหงิดจากการตามหาแอปที่สมบูรณ์แบบแต่สุดท้ายพบว่ามีอะไรขาดไปทุกครั้งนั้นรุนแรงมาก
      ช่วงประมาณ 1 ปีที่ผ่านมาเลยลงหลักปักฐานกับ Markdown ธรรมดาและลำดับชั้นของไดเรกทอรี ไปเลย ใช้ Emacs ซึ่งเป็นตัวแก้ไขที่ชอบในการแก้ไฟล์ และใช้ประโยชน์จาก key binding, การค้นหา และการควบคุมเวอร์ชันที่มีอยู่แล้ว โน้ตถูกอัปขึ้น Forgejo instance ที่โฮสต์เอง จะเป็น GitHub ก็ได้ Forgejo มีเว็บอินเทอร์เฟซในตัวอยู่แล้ว จึงทำให้โน้ตและลิงก์ทำงานได้ดี บนโน้ตบุ๊กก็ตั้งให้ mdbook เฝ้าดูไดเรกทอรีแล้ว build เป็นเว็บไซต์แบบ static ไว้ใช้เวลาไล่อ่านหรือเปิดดูโน้ต เคยหาวิธีเขียนโน้ตบนมือถือด้วย แต่ถ้าเกินไม่กี่บรรทัดก็สุดท้ายหยิบโน้ตบุ๊กมาใช้อยู่ดี บนมือถือเลยแทบใช้เพื่ออ่านอย่างเดียว เอา mdbook เดียวกันไปไว้หลัง VPN เพื่อให้เข้าถึงจากมือถือได้ และถ้าต้องแก้ระหว่างเดินทางก็ใช้เว็บอินเทอร์เฟซของ Forgejo ได้
    • ผมก็มาถึงข้อสรุปเดียวกันแบบเป๊ะ ๆ ยังใช้ Obsidian อยู่มาก แต่ก็สร้าง เครื่องมือจัดการงาน ของตัวเองที่ใช้แค่ไฟล์ plain text กับ fzf: https://codeberg.org/ngp/tsk
      สำหรับผมมันเหมาะมาก แต่การซิงก์และการใช้งานบนมือถือยังน่าเสียดายอยู่ บน Termux มันทำงานได้สวยงาม แต่ถ้ามีวิธีครอบแอปบรรทัดคำสั่งด้วย UI พื้นฐานสำหรับมือถือก็คงดี Tk/Tcl ดูจะใกล้ที่สุด แต่มีตัวเลือกฝั่ง Android เท่านั้น และผมใช้ iOS เป็นหลัก เลยไม่ค่อยเหมาะ ส่วนการซิงก์ก็มีแผนที่ดูเข้าท่า เช่นซิงก์ผ่าน IMAP4 หรือแบบอิง git และ roadmap กับงานของโปรเจกต์นี้ก็ถูกติดตามอยู่ใน repository ของมันเอง จึงถือว่าใช้งานได้จริง
    • ข้างล่างนี้เป็นความคิดที่ยังไม่เสร็จดี แต่ระหว่างเขียนก็รู้ตัวว่าสิ่งที่ผมประดิษฐ์ขึ้นมาสุดท้ายก็คือ text editor นั่นเอง
      เมื่อก่อนเคยมีไอเดียสำหรับแอปโน้ตที่ Unix มาก ๆ และตอนนี้ก็ยังคิดว่ามันน่าจะทำงานได้ดี จะเก็บโน้ตไว้ในฐานข้อมูล SQLite ก็ได้ประโยชน์เรื่องการบีบอัด ประสิทธิภาพ และการแบ็กอัปที่ง่าย หรือจะเก็บเป็นไฟล์ข้อความในไฟล์ซิสเต็มก็ได้ประโยชน์เรื่องการค้นหาง่ายและการพึ่งพาระบบต่ำ ตัว “editor” เองมีหน้าที่แค่สร้างไฟล์ชั่วคราวใหม่แล้วเปิดด้วย $EDITOR ทีหลังก็ค่อยตั้งชื่อ หรือจะใช้วันที่ปัจจุบันเป็นชื่อก็ได้ ถ้าต้องใช้ลิงก์ก็ใช้ตัวแก้ไขที่รู้จักไฟล์ซิสเต็ม ถ้าต้องการ syntax highlighting ก็ใช้ตัวแก้ไขที่มีฟีเจอร์นั้น การซิงก์ก็ใช้ร่วมกับ Syncthing และการค้นหาก็ใช้ fzf
  • ผมใช้สิ่งนี้บนโฮมเซิร์ฟเวอร์มาหลายปีแล้ว
    มันเป็น เครื่องมือคล้าย Obsidian ที่ยังขัดเกลาน้อยกว่าและเอกสารก็ยังไม่มาก ข้อดีคือเป็นโอเพนซอร์ส แต่ผมไม่ค่อยรู้จักบริษัทที่อยู่เบื้องหลังนัก นอกจากรู้ว่าเป็นบริษัทจีนก็หาอะไรเพิ่มเติมไม่ได้มาก ใช้มันเพราะโฮสต์เองได้ มีฟีเจอร์ส่วนใหญ่ของ Obsidian และใช้ผ่านเว็บเบราว์เซอร์ได้จากทุกที่ ซึ่งเป็นฟีเจอร์ใหญ่ที่สุดที่ Obsidian ไม่มี

    • ดูเหมือนจะยืมมาจาก Notion, Obsidian และ RemNote พอสมควร แต่เพราะแอปในสายนี้มีเยอะมากจนยากจะบอกว่าใครทำอะไรก่อน เลยจะเรียกว่าของลอกก็คงไม่ตรงนัก
      ตอนเห็นครั้งแรกไม่ได้รู้สึกว่าแอปหยาบหรือทำมาไม่ดี แถมตอบสนองได้ดีกว่า Notion ชัดเจน และให้ความรู้สึกฝืดน้อยกว่า RemNote เพียงแต่มี tooltip โผล่มาเยอะและเร็วเกินไปจนค่อนข้างรบกวน ดูเหมือนพวกเขาพยายามใส่แฟลชการ์ดแบบ spaced repetition เหมือน RemNote, ฐานข้อมูลแบบ Notion, รวมถึง AI เข้าไป และก็ดูเหมือนจะทำออกมาได้ค่อนข้างดี ตัวเลือกการส่งออกที่หลากหลายซึ่งยังคงเก็บ internal link, รูปภาพ และ code block ไว้ได้ รวมถึง Org-Mode ก็ดีเหมือนกัน ผมชอบที่มันเป็นทางเลือกที่มั่นคงและฟีเจอร์เยอะสำหรับแอปแบบ cloud-first และปิดซอร์ส แต่ด้วยความสามารถด้านเลย์เอาต์ขั้นสูงและฟีเจอร์จำนวนมาก มันอาจจะดูรบกวนและหนักเกินไปสำหรับการใช้งานของผม Tana ก็เป็นโซลูชัน all-in-one คล้ายกันและล้ำกว่า แต่สุดท้ายผมก็มักถูกดึงกลับไปหาแอปที่โฟกัสมากกว่า
    • ถ้าจะ โฮสต์เอง เพื่อซิงก์แบบ local ก็สามารถใช้ปลั๊กอิน git กับ Obsidian เพื่อให้ได้ทั้งการซิงก์และการควบคุมเวอร์ชัน หรือก็คือสิ่งที่ git มีให้อยู่แล้ว
    • Logseq เป็น free open-source software (ไลเซนส์ GNU, ClojureScript) และสำหรับผมมันเกือบสมบูรณ์แบบ แต่ก็ยังเป็นปริศนาอย่างยิ่งว่าทำไมพวกเขาถึงทำเว็บอินเทอร์เฟซที่เสิร์ฟไฟล์จากเว็บเซิร์ฟเวอร์ไม่ได้
      ทั้งที่ในแอป Electron ก็มี HTTP API อยู่แล้ว แต่เว็บเดโมกลับเปิดได้แค่ไฟล์ฝั่งไคลเอนต์ผ่าน file system API เท่านั้น สักวันหนึ่งผมคง fork มันแล้วทำให้ตรงกับที่ตัวเองต้องการ และยังมีความอยากแบบเพี้ยน ๆ ที่จะเปลี่ยนฟอร์แมตการ serialize จาก Markdown เป็น XML เพื่อจะได้ใช้เครื่องมืออื่นมาจัดการกราฟด้วย xpath, xquery, basex
    • ผมก็เคยติดตั้งไว้ในคอมเหมือนกัน แต่ก็อย่างที่ว่า นอกจากรู้ว่าอยู่จีนก็หาไม่เจอว่าใครเป็นคนทำ สุดท้ายเลยตัดสินใจใช้ Obsidian ต่อไป
    • อยากรู้ว่าทำไมถึงไม่ใช้ Obsidian ไปเลย มันมีปัญหาอะไรหรือเปล่า?
  • เห็นเครื่องมือจดโน้ตแบบนี้ออกมาใหม่เรื่อย ๆ อยู่บ่อย ๆ ฉันลงลึกกับ Logseq ไปมากแล้ว และเวอร์ชันฐานข้อมูลใหม่ก็กำลังจะออกเร็ว ๆ นี้
    ถ้าไม่มีเครื่องมือนำเข้า/ส่งออกที่ช่วยย้ายโน้ตระหว่างแอปหลักอย่าง Logseq หรือ Obsidian ได้ เครื่องมือแบบนี้ก็จะถูกใช้แค่โดยผู้ใช้ใหม่ หรือคนที่มีโน้ตน้อยมากจนพอจะหาเวลาย้ายได้เท่านั้น

    • การสร้างแอปจดโน้ตหรือแอปเพิ่มประสิทธิภาพส่วนบุคคลเป็นรูปแบบหนึ่งของ การผัดวันประกันพรุ่ง ที่ดูซับซ้อนแต่พบได้บ่อยในหมู่นักพัฒนา
    • สงสัยว่าข้อดีของเวอร์ชันฐานข้อมูลคืออะไร ฉันชอบที่แบ็กเอนด์เป็นไฟล์ข้อความ
      อาจมีข้อดีด้านประสิทธิภาพหรือการบีบอัด แต่เมื่อคิดถึงปริมาณงานเขียนที่คนคนหนึ่งจะใช้ตลอดชีวิต มันก็ยังไม่ค่อยน่าโน้มน้าวสำหรับฉันตอนนี้
  • ไลเซนส์ดูแปลก ๆ หน่อย การซิงก์แบบ self-hosted ถูกระบุว่าเป็นฟีเจอร์เสียเงิน และในโค้ดก็มีการตรวจสอบไลเซนส์จริง แต่แทนที่จะเป็นผลิตภัณฑ์แบบ open core ทั่วไปที่มีไดเรกทอรี ee/ แยกต่างหากภายใต้ไลเซนส์คนละแบบ กลับมีแม้แต่โค้ดตรวจสอบไลเซนส์ทั้งหมดอยู่ภายใต้ AGPL
    ใน FAQ ก็ยังย้ำว่า “SiYuan is completely open source” ด้วย ถ้าอย่างนั้น ต่อให้ลบการตรวจสอบไลเซนส์ออกด้วยแพตช์ ซึ่งเท่าที่ดูสำหรับฉันน่าจะแก้แค่บรรทัดเดียว ก็ยังถือว่าปฏิบัติตามไลเซนส์ครบถ้วนอยู่ดี แถมยังสามารถแจกจ่ายไบนารีของเวอร์ชันที่แพตช์แล้วได้ด้วย แน่นอนว่ามันค่อนข้างไม่แฟร์ แต่นี่ตั้งใจไว้แบบนั้นหรือ? ขายแค่ ความสะดวกสบาย ของอิมเมจที่ build ไว้ล่วงหน้าหรือเปล่า?

    • บริษัทของเราก็ตั้งใจทำแบบนี้เป๊ะกับทุกอย่างที่ขายใน extension store เช่นกัน ทุกอย่างเป็น LGPL และการตรวจสอบไลเซนส์ก็เลี่ยงได้โดยไม่ต้องออกแรงมาก
      มันทำให้ขายซอฟต์แวร์เสรีได้จริง และถ้าดำเนินการดี ๆ มันก็เวิร์ก
    • คุณจับประเด็นถูกแล้ว สิ่งที่ขายได้มีแค่ ความสะดวกสบาย ของอิมเมจที่ build ไว้ล่วงหน้าเท่านั้น
      แต่ถ้าคุณไม่อยากเสีย $100 เพื่อ build เวอร์ชัน iOS เพราะข้อจำกัดของบัญชีนักพัฒนา Apple การใช้เวอร์ชันทางการก็อาจดีกว่าในทางปฏิบัติจริง ยังมีแพตช์ไม่เป็นทางการที่ค่อนข้างเป็นที่รู้จัก 2 ตัวซึ่งเอาข้อจำกัดแบบเสียเงินออก ตัวหนึ่งคือเวอร์ชันทดลองของนักพัฒนาภายนอกที่ทดสอบฟีเจอร์แล้วส่งกลับ upstream ที่ github.com/siyuan-community/siyuan และอีกตัวคือ github.com/EightDoor/siyuan ที่ลบฟีเจอร์เสียเงินออกเฉย ๆ นอกจากนี้ยังเคยมี PR จากนักพัฒนาในชุมชนที่เสนอให้เพิ่มใบรับรองดิจิทัลเพื่อกันไม่ให้ไบนารีแพ็กเกจไม่เป็นทางการใช้บริการคลาวด์ทางการได้ เพราะ marketplace ของปลั๊กอินใช้ CDN ทางการทำให้ค่า traffic ไม่ได้น้อย แต่ PR นั้นก็ถูกปฏิเสธ
    • จะเรียกมันว่า “ค่อนข้างไม่แฟร์” จริงหรือ? ถ้าไม่อยากให้คนทำแบบนั้น ก็ใช้ ไลเซนส์แบบปิด ไปเลย
  • ขอแนะนำ Trilium Notes ได้อีกตัว ใช้มาหลายปีแล้วพอใจมาก
    ตอนนี้มันอยู่ใน “maintenance mode” แต่สำหรับฉันกลับมองว่าเป็นข้อดี เพราะไม่มีความเสี่ยงที่ฟีเจอร์จะบวมเกินไป สามารถ self-host ได้ เป็นเว็บแอปที่ยอดเยี่ยม มี native client แบบเลือกใช้ และทำงานแบบออฟไลน์ได้ https://github.com/zadam/trilium

    • ฉันก็เป็นแฟน Trilium Notes มาหลายปีเหมือนกัน และตอนนี้ยังมี community fork ที่ยังพัฒนาอย่างกระตือรือร้นเพื่อสานต่องานของเครื่องมือนี้ด้วย
      https://github.com/TriliumNext/Notes
  • self-host มา 3 เดือนแล้วและพอใจมาก ย้ายมาจาก Joplin แม้จะเสียการเข้าถึงแบบออฟไลน์ไป แต่ก็ แสดงออกได้ยืดหยุ่นกว่า และใช้งานเขียนได้ดีกว่ามาก
    ฟีเจอร์อื่น ๆ ของเวอร์ชัน Pro ก็ไม่ได้รู้สึกขาดอะไรเป็นพิเศษ ฉันใช้แค่ Authelia สำหรับการยืนยันตัวตน และไม่ต้องพึ่ง Docker container อื่น ๆ มันใช้รูปแบบไฟล์ของตัวเอง แต่ฉันสำรองข้อมูล volume และสามารถ export ออกเป็น Markdown ธรรมดาแบบแมนนวลได้ เว็บ UI ก็ responsive ดีสำหรับการใช้งานบนมือถือ และสำหรับฉันมันเหมาะกว่าตัวอื่น ๆ

    • ฉันก็เหมือนกัน ฉัน self-host ไว้บนเว็บของ VPS instance ทำให้เข้าถึงได้จากทุกที่ทั่วโลกและจากอุปกรณ์อะไรก็ได้
      แล้วก็ใช้ S3 instance แบบ self-hosted เพื่อซิงก์ทุก installation รวมถึง OSX และ Android/iPhone ด้วย การซิงก์ทำงานได้ดีมาก เมื่อดูจากจำนวนฟีเจอร์แล้ว ฉันรู้สึกว่าโปรแกรมนี้ทำให้ Obsidian หลุดจากการเป็นตัวเปรียบเทียบไปเลย น่าจะพูดได้ว่าเป็นทางเลือกที่ใกล้กับ Notion มากกว่า ตอนนี้ฉันกำลังทำเครื่องมือเสริมแบบ self-hosted เล็ก ๆ สำหรับ Siyuan อยู่ ซึ่งจะช่วยให้ผู้ใช้แชร์โน้ตแบบสาธารณะได้
  • ฉันก็เห็นด้วยกับคำแนะนำที่เห็นที่นี่
    วิธี จัดการความรู้ ของฉันเรียบง่ายมาก ทุกอย่างอยู่ใน git และอยู่ในโครงสร้างไดเรกทอรีขนาดใหญ่ที่ค่อย ๆ เติบโตตามธรรมชาติเมื่อเวลาผ่านไป ฉันมีโน้ตเยอะมาก น่าจะราว 7,000~8,000 ชิ้น การเก็บไว้ใน git ทำให้ฉันมีความยืดหยุ่นที่จะใช้งานในแบบที่ต้องการ บางครั้งก็ใช้ Emacs/Neovim แต่ส่วนใหญ่ใช้ Sublime Text เพราะมี workspace แยกตามโปรเจกต์หรือแนวคิด ส่วนมือถือก็ push ทุกอย่างไปยัง Gitea instance ของตัวเอง ฉันไม่ได้ต้องเข้าถึงโน้ตจากมือถือบ่อยนัก แต่ช่วงหลังเริ่มคิดเรื่องนี้มากขึ้น อยากได้คำแนะนำวิธีอ่านไดเรกทอรีไฟล์ข้อความบน Android

    • ตอนใช้ Android ฉันใช้ Markor สำหรับแก้ไขข้อความ และใช้ Termux สำหรับ git แบบบรรทัดคำสั่ง
      บน iOS ตอนนี้ฉันใช้ Working Copy สำหรับ git commit/push/pull และใช้ Obsidian สำหรับแก้ไขข้อความ อินเทอร์เฟซของ Obsidian สำหรับแก้ Markdown แบบเร็ว ๆ ค่อนข้างถูกใจฉัน เท่าที่รู้ Obsidian ก็มีเวอร์ชัน Android ด้วย แต่ฉันยังไม่เคยใช้ ส่วน Working Copy บน Android มีหรือเปล่าไม่แน่ใจ แต่อาจมีแอป git แบบ GUI ที่คล้ายกันอยู่
  • สิ่งที่น่าเสียดายในแอปแนวนี้รวมถึง Notion คือความสามารถในการสืบทอดพร็อพเพอร์ตีของฐานข้อมูล
    ตัวอย่างเช่น อยากสร้างฐานข้อมูลแม่ที่มีพร็อพเพอร์ตีงานพื้นฐานอย่างชื่อเรื่องและวันครบกำหนด แล้วสร้างฐานข้อมูลลูกที่เพิ่มพร็อพเพอร์ตีตามโปรเจกต์เข้าไป แบบนั้นก็จะทำมุมมองเดียวที่เห็นงานทั้งหมดที่ต้องทำวันนี้ได้ พร้อมกับเพิ่มข้อมูลทั้งหมดที่จำเป็นสำหรับงานแต่ละชิ้นได้ด้วย แปลกดีที่เท่าที่ผมรู้ยังไม่มีใครใส่สิ่งนี้ลงในแอปเลย

    • Tana น่าจะทำสิ่งนี้ได้ด้วยฟีเจอร์ “supertags”
      https://tana.inc/docs/supertags
    • Tana รองรับสิ่งนี้มานานแล้วด้วย super tags และ Logseq ก็รองรับผ่านฟีเจอร์แท็กย่อยใน test build เวอร์ชัน DB
      ส่วนเวอร์ชันดั้งเดิมที่อิง Markdown ผมตอบไม่ได้ แต่โดยรวมเห็นด้วยว่าน่าจะดีถ้ามีฟีเจอร์แบบนี้แพร่หลายมากกว่านี้
    • สิ่งที่คุณกำลังหาดูน่าจะใกล้กับเครื่องมือจัดการโปรเจกต์/งานมากกว่าฐานความรู้
      เครื่องมือที่ซับซ้อนส่วนใหญ่มีประเภทงาน และบางตัวก็ปรับแต่งได้ บางตัวก็ไม่ได้ เช่น Jira น่าจะทำสิ่งที่อธิบายไว้ได้
    • Trilium มีการสืบทอดพร็อพเพอร์ตีและเขียนสคริปต์ได้
      แต่การทำงานพื้นฐานของงานใช้เทมเพลต ไม่ได้ใช้การสืบทอด ดังนั้นต้องเขียนสคริปต์เอง
  • ดูดีนะ แต่เหมือน Obsidian แทบทุกอย่าง ต่างจากฟีเจอร์ของ Obsidianอย่างไร?

    • น่าจะเป็นโอเพนซอร์ส และนั่นก็เป็นข้อดีใหญ่เมื่อเทียบกับ Obsidian
    • รูปแบบไฟล์ไม่ใช่ Markdown แต่เป็นฟอร์แมตเฉพาะที่อิง JSON
    • ฟีเจอร์ซิงก์ของ Obsidian เป็นบริการแบบเสียเงิน แต่โปรเจกต์นี้ตั้งบริการของตัวเองได้
    • Obsidian ไม่ได้จำกัดอยู่แค่ไฟล์ Markdown เหรอ? อันนี้ใช้ฟอร์แมตอื่น เลยเพิ่มความสามารถแบบฐานข้อมูลได้มากกว่า
    • ตัวแก้ไขเป็น WYSIWYG แบบเต็ม จึงไม่ต้องสลับไปเป็น Markdown ดิบเวลาจะแก้อะไร
  • พอเห็นคำว่า “Personal Knowledge Management” แล้วผมคาดหวังอีกแบบ
    ตัวอย่างเช่น ถ้าตอนนี้ผมกำลังศึกษาวิธีเริ่ม IRL streaming ผมก็อยากสร้างหัวข้อชื่อ “IRL Streaming” แล้วใส่ลิงก์วิดีโอ ลิงก์เอกสาร/เอกสารประกอบ/บทสอน/ไกด์/วิธีใช้ และเขียนโน้ตลงไปด้วย สุดท้ายก็จะได้เรียนรู้หัวข้อนั้น และถ้าจำเป็นก็อาจสร้างหัวข้อย่อยอย่าง “SRT and SLS vs RTMP” เพื่อค้นคว้าต่อได้ มีคนบอกว่ามันเหมือน Obsidian เวอร์ชันลอกมา แต่พอไปดูเว็บไซต์ Obsidian มันถูกอธิบายว่าเป็นเครื่องมือช่วยเขียนหนังสือ อันนี้เรียกตัวเองว่า PKM เลยดูเกี่ยวข้องกันอยู่ แต่ก็อาจไม่ใช่สิ่งที่ผมหาอยู่ ผมไม่ต้องการวิธีแบบโฟลเดอร์ที่มีไฟล์ตามที่คอมเมนต์ด้านบนเสนอ ผมอยากได้เว็บแอปที่เข้าถึงได้จากทุกที่ เอาไว้โยนลิงก์ข้อมูลที่จัดตามหัวข้อพร้อมโน้ตเกี่ยวกับมันลงไป พออ่าน README ของ siyuan-note แล้ว ดูเหมือนมันจะทำแบบนี้ได้ คำถามหนึ่งคือ รองรับหลายผู้ใช้ไหม? ผมอยากโฮสต์ให้ชุมชนในละแวกผมใช้