Skip to main content
Блогқа оралу
obsidianmiroautomationtoolsopen-source

Тақталарымды Miro-дан Obsidian-ға шығарамын

Miro-дағы Export түймесі саған PNG не PDF береді — бұл деректің фотосуреті, деректің өзі емес. Егер тақталарың жылдар бойы жиналған load-bearing ойлау карталары болса, олардың орны Obsidian-да: editable, searchable, жергілікті vault ішінде. Тақталарды Miro-дан REST API арқылы қалай шығарып, Excalidraw / Obsidian Canvas-қа түрлендіргенім — позицияларды, түстерді, қаріптерді, curved connectors-ты, mindmap nodes-ты сақтай отырып — ал сабақ Miro-дан әлдеқайда кең: кез келген SaaS-ты алғаш ашпай тұрып exit plan-мен қарсы алу керек.

Жарияланды 2026 ж. 30 маусым6 мин оқу

Браузерде тұратын кез келген құрал сені өз UI-ының кепіліне айналдырады. Әсіресе оған уақытыңды, карталарыңды, boards-ыңды құйғаннан кейін — сосын өзіңнің map of thinking деген нәрсең біреудің серверінде, олардың бетін ашпай көрінбейтін форматта жатқанын кенет түсінесің.

Менде бірнеше Miro тақтасы бар, олар әлдеқашан load-bearing болып кеткен — жылдар бойы жиналған рефлексиялар, жоспарлар, ойлау карталары. Export түймесі саған PNG не PDF береді. Бұл — дерек емес, деректің фотосуреті.

Неге оларды сыртқа шығару керек

Vendor lock-in — теориялық мәселе емес. Ол нақты: өз деректеріңді API арқылы жүктеп алу үшін Expert tier-ге upgrade жасауың керек. Яғни, өзіңдікі болып тұрған нәрсені қайтарып алуға рұқсат үшін ақы төлейсің.

Мен әлдеқашан Obsidian-first принципімен өмір сүремін: маңызды нәрсенің бәрі жергілікті vault ішінде, git-ке салуға, grep жасауға және он жылдан кейін де оқуға болатын plain files түрінде жатады. Осындай форматқа экспорт бермейтін құрал — тәуелділік үзуге келмейтін дәрежеге жетпей тұрып кетуің керек құрал.

Неге Export сені құтқармайды

Miro-дағы Export түймесі саған PNG не PDF береді. Бұл — raster, құрылымы жоғалған. Box ішіндегі мәтінді өзгерте алмайсың. Shape-ті сүйреп жылжыта алмайсың. Жазуды grep жасай алмайсың. Бұл — тақтаның қазасы туралы хабарлама, тақтаның өзі емес.

Obsidian-да vault ішінде тұратын екі балама бар: Excalidraw plugin және нативті Canvas. Екеуі де — JSON. Екеуі де — editable. Екеуі де — searchable. Екеуі де жазбаларыңның қасында vault ішінде жатады, ал мәтінді тікелей Obsidian ішінен grep жасай аласың.

'Export to Obsidian' түймесі жоқ кезде оларды қалай шығарасың

UI-дағы Export саған керегін бермесе — API-ге кіресің. Miro-да REST API бар: ол тақтадағы әрбір shape-тің JSON сипаттамасын қайтарады. Excalidraw мен Obsidian Canvas — екеуі де open-format JSON. Олардың арасында — mapping.

Мен екі Python скрипт жаздым. miro_to_excalidraw.py және miro_to_canvas.py. Standard library only — нөл deps. Оларды token мен board ID-мен іске қосасың, файл аласың, оны vault-қа тастайсың.

Түрлендіруден кейін не сақталды

Мақсат тек shapes-ті көшіріп әкелу емес еді — тақта Miro-дағыдай оқылатындай етіп визуалды сақтап қалу еді.

  • Позициялар мен өлшемдер — әрбір shape-тің координаттары 1:1
  • Түстер fill opacity-мен (40% сары түс 40% сары болып қала береді)
  • Borders — түс, ені, стилі (solid / dashed)
  • Қаріптер мен alignment — monospace monospace болып қалады, center center болып қалады
  • Connectors — көрсеткілер Miro бекіткен нүктелердің дәл өзінде тұрады
  • Curved connectors — түзу сызықтардың орнына bow доғалары
  • Images файлдың ішіне ендірілген (сыртқы URL емес)
  • Mindmap nodes — мәтін experimental Mindmap API арқылы шығарылған
  • Z-ordering — overlap шатаспайды

Қай жерде қолайсыз болды

Miro API-де бірнеше олқылық бар, оларды reverse engineering арқылы айналып өтуге тура келді.

  • Curved connectors — Miro control points-ты API арқылы ашпайды. Сондықтан дәл түпнұсқа қисықтың орнына мен bow синтездеймін — екі endpoint арасындағы тұрақты радиусты доға. Визуалды жағынан жақын, mathematically identical емес.
  • Z-index — Miro API z өрісін мүлде қайтармайды. Қай shape үстінде, қайсысы астында тұруы керек? Эвристика: ауданы үлкенірек = артқа тереңірек. Бұл жұмыс істейді, өйткені нақты тақталарда үлкен контейнерлер әдетте ұсақ элементтердің астында отырады.
  • Mindmap — mindmap nodes мәтіні кәдімгі items API арқылы қолжетімсіз. Experimental Mindmap endpoint-ке бөлек call керек. Filled nodes boxes-қа айналады, unfilled — plain text-ке.

Excalidraw vs Canvas — қалай таңдау керек

Егер сен drawings стилінде ойласаң — sketchy lines, hand-drawn feel, freeform композициялар — Excalidraw таңда. Excalidraw plugin файлды whiteboards-та көрген дәл сол эстетикалық стильде рендерлейді.

Егер тақталарың негізінен көрсеткілермен жалғанған, мәтіні бар тіктөртбұрыштар болса және сен Obsidian-да second brain ретінде өмір сүрсең — Canvas таңда. Canvas нативті, бір басқанда ашылады және vault-тың backlinks пен tags-ымен тұтасып тұр.

Кейбір тақталарды Excalidraw-ға (visual style маңызды болғанда), басқаларын Canvas-қа (жылдамдық пен нативті feel маңызды болғанда) түрлендіремін. Repo екі форматты да қолдайды — іске қосу кезінде таңдайсың.

Қорытынды

Python 3, standard library only. pip install жоқ, virtualenv жоқ, node_modules жоқ. python3 miro_to_excalidraw.py 'BOARD_ID' 'output.excalidraw' — сосын файл сенің қолыңда.

Repo: github.com/oleksiimazurenko/miro-to-obsidian. MIT лицензиясы. PR-лар құпталады — әсіресе мен әлі кездестірмеген edge case-тер үшін.

Сабақ Miro-дан әлдеқайда кең

SaaS lock-in — есірткі. Алғашқы айлар тегін. Алты айдан кейін — әдет. Бір жылдан кейін деректерің тек олардың UI-ы оқи алатын форматта тұрады. Екі жылдан кейін — өзіңдікі болып тұрған нәрсені қазып алу үшін Expert tier-ге ақы төлейсің.

Қорытынды «SaaS-ты қолданба» емес. Қорытынды мынау: load-bearing болуға жол берген әрбір құралға оны алғаш ашпай тұрып exit plan керек. «Керек болғанда бұл жерден қалай шығамын» деген сұрақ «UI қаншалықты жайлы» дегенмен бірдей салмақты. Plain-text экспорты немесе ашық API-і жоқ құрал — екі жылдан кейін төлейтін жасырын баға белгісі бар құрал.

Obsidian-first Obsidian мінсіз болғандықтан емес. Ал plain markdown файлдары Obsidian-ның өзінен ұзақ өмір сүретін формат болғандықтан. Дәл солай, жалаң Excalidraw JSON файлы plugin-нің өзінен ұзақ өмір сүреді. Дәл солай, бұл Python скрипті Miro-дан ұзақ өмір сүреді.