Blume पर माइग्रेट करें
किसी Mintlify, Docusaurus, GitBook, MkDocs, ReadMe या किसी अन्य डॉक्स साइट को एक ही कमांड से Blume पर ले जाएँ। यह कमांड माइग्रेशन का काम Codex या Claude Code को सौंप देती है।
किसी डॉक्स साइट को Blume के स्वाभाविक ढंग में ले जाने के लिए कुछ ऐसे निर्णय लेने पड़ते हैं जो कोई codemod नहीं ले सकता। जैसे, कौन-सा घोषित नेविगेशन फ़ोल्डर बनेगा, कौन-से कंपोनेंट directives बनेंगे और किसका Blume में कोई समकक्ष नहीं है। इसलिए blume migrate यह काम एक कोडिंग एजेंट को सौंप देता है। एजेंट Blume की माइग्रेशन प्लेबुक के आधार पर काम करता है और आप हर बदलाव की समीक्षा करते हैं।
एक कमांड से माइग्रेट करें
जिस डॉक्स प्रोजेक्ट को आप माइग्रेट कर रहे हैं, उसके रूट से यह कमांड चलाएँ:
npx blume migrate fumadocs --codexpnpm dlx blume migrate fumadocs --codexyarn dlx blume migrate fumadocs --codexbunx blume migrate fumadocs --codexnubx blume migrate fumadocs --codexaube dlx blume migrate fumadocs --codexfumadocs की जगह अपने फ़्रेमवर्क का नाम लिखें। Claude Code का उपयोग करने के लिए --codex की जगह --claude लिखें। pnpm 12 में pnpm dlx के बाद --allow-build=esbuild जोड़ें, क्योंकि pnpm 12 स्वीकृति के बिना esbuild की install स्क्रिप्ट नहीं चलाता। एजेंट आपके टर्मिनल में इंटरैक्टिव रूप से खुलता है, इसलिए हर बदलाव उसके अपने अनुमति-प्रवाह से होकर गुज़रता है। एजेंट मौजूदा फ़ाइलों में ही बदलाव करता है। इसलिए साफ़ working tree से शुरुआत करें और पूरे माइग्रेशन की समीक्षा एक ही diff के रूप में करें।
स्रोत
आप जिस फ़्रेमवर्क से माइग्रेट कर रहे हैं, उसका नाम दें। नाम न देने पर Blume प्रोजेक्ट की अपनी फ़ाइलों से उसका पता लगा लेता है। अगर आपका बताया गया फ़्रेमवर्क प्रोजेक्ट से मेल नहीं खाता, तो Blume चेतावनी देता है, लेकिन आपके बताए गए फ़्रेमवर्क के साथ ही आगे बढ़ता है:
| स्रोत | किससे पहचाना जाता है | गाइड |
|---|---|---|
mintlify |
docs.json या mint.json |
Mintlify से माइग्रेट करें |
fumadocs |
source.config.ts, या package.json में fumadocs-core, fumadocs-ui या fumadocs-mdx |
Fumadocs से माइग्रेट करें |
docusaurus |
docusaurus.config.* |
Docusaurus से माइग्रेट करें |
starlight |
package.json में @astrojs/starlight |
Starlight से माइग्रेट करें |
nextra |
package.json में nextra |
Nextra से माइग्रेट करें |
vitepress |
रूट में या docs/ में .vitepress/config.ts (या .mts, .js, .mjs), या package.json में vitepress |
VitePress से माइग्रेट करें |
vuepress |
रूट में या docs/ में .vuepress/config.ts (या .js, .mjs, .yml, .toml), vuepress.config.*, या package.json में vuepress (या vuepress-vite, vuepress-webpack) |
VuePress से माइग्रेट करें |
docus |
package.json में docus (Docus 3 और उसके बाद के संस्करण) या @nuxt-themes/docus (Docus 1); वर्कस्पेस में कमांड को डॉक्स पैकेज से चलाएँ |
Docus से माइग्रेट करें |
mkdocs |
mkdocs.yml, mkdocs.yaml, zensical.toml, properdocs.yml या properdocs.yaml |
MkDocs Material से माइग्रेट करें |
mdbook |
रूट में या docs/ या book/ में book.toml |
mdBook से माइग्रेट करें |
fern |
fern/docs.yml |
Fern से माइग्रेट करें |
gitbook |
.gitbook.yaml, .gitbook.yml या gitbook-docs.yaml, या package.json में honkit या gitbook-cli; केवल SUMMARY.md से कभी नहीं |
GitBook से माइग्रेट करें |
redocly |
sidebars.yaml, या package.json में @redocly/realm या Realm परिवार का कोई अन्य पैकेज; केवल redocly.yaml से कभी नहीं |
Redocly से माइग्रेट करें |
readme |
docs/, reference/, recipes/ या custom_pages/ में _order.yaml; rdme से अपलोड करने वाली रिपॉज़िटरी के लिए स्रोत का नाम देना ज़रूरी है |
ReadMe से माइग्रेट करें |
docsify |
package.json में docsify-cli या docsify; बिना package.json वाली साइट के लिए स्रोत का नाम देना ज़रूरी है |
Docsify से माइग्रेट करें |
jekyll |
रूट में या docs/ में _config.yml; इसकी जाँच Blume द्वारा पहचाने जाने वाले बाकी सभी स्रोतों के बाद की जाती है |
Just the Docs से माइग्रेट करें |
github-wiki |
कभी पहचाना नहीं जाता: विकी में कोई कॉन्फ़िग फ़ाइल नहीं होती, इसलिए स्रोत का नाम दें | GitHub विकी से माइग्रेट करें |
पहचान उसी फ़ोल्डर में की जाती है जिसमें आप कमांड चलाते हैं। प्लेबुक में हर स्रोत के लिए अलग मैपिंग संदर्भ है। कई स्रोतों के लिए एक codemod भी है, जिसे एजेंट यांत्रिक बदलावों के लिए सबसे पहले चलाता है, ताकि वह अपना पूरा ध्यान निर्णय वाले मामलों पर लगा सके। किसी दूसरे टूल से बनी साइट भी माइग्रेट हो सकती है। इसके लिए कमांड को बिना स्रोत के चलाएँ। एजेंट पहले रिपॉज़िटरी की सूची तैयार करेगा, फिर प्लेबुक के सामान्य नियमों के आधार पर काम करेगा।
एजेंट क्या करता है
एजेंट स्रोत के कॉन्फ़िग से लेकर सफल बिल्ड तक प्लेबुक के वर्कफ़्लो का पालन करता है:
blume.config.tsलिखता है। इसमें केवल वही मैप होता है जो आपका स्रोत घोषित करता है, और बाकी सब Blume के डिफ़ॉल्ट पर छोड़ दिया जाता है।- कंटेंट को फ़ाइलसिस्टम नेविगेशन के अनुसार फिर से व्यवस्थित करता है। हर फ़ोल्डर की क्रम तय करने वाली फ़ाइलों (Fumadocs
meta.json, Nextra_meta) कोmeta.tsमें बदलता है। - पेजों को फिर से लिखता है: फ़्रंटमैटर को Blume के स्कीमा में, callout कंपोनेंट को directives में और आइकन को Lucide में बदलता है। snippets को सीधे पेज में शामिल करता है।
- हर बदले हुए URL के लिए एक रीडायरेक्ट जोड़ता है, ताकि कोई लिंक न टूटे। Docsify के
#/URL कभी सर्वर तक नहीं पहुँचते, इसलिए उनके लिए एजेंट एक छोटी स्क्रिप्ट जोड़ता है जो हर URL को उसके नए पेज पर भेज देती है। GitHub विकी के URL github.com पर ही रहते हैं, जो रीडायरेक्ट नहीं कर सकता। इसलिए एजेंट हर पेज को उसके नए रूट से मैप करता है और ऐसे लिंक स्टब तैयार करता है जिन्हें आप पुरानी विकी पर पुश कर सकते हैं। - आपकी
package.jsonस्क्रिप्ट्स कोblume devऔरblume buildपर सेट करता है। पुराने फ़्रेमवर्क की डिपेंडेंसियों की जगहblumeजोड़ता है। blume buildऔरblume validateको तब तक चलाता है जब तक दोनों सफल न हो जाएँ।
अंत में एजेंट एक सारांश देता है। इसमें बताया जाता है कि क्या माइग्रेट हुआ, क्या हटाया गया और क्या केवल लगभग समकक्ष रूप में बदला गया। उदाहरण के लिए, फ़ुटर लिंक या नेवबार बटन, जिनका Blume में कोई समकक्ष नहीं है। इससे आप हर मामले में आगे का निर्णय ले सकते हैं।
अन्य एजेंट
--codex या --claude के बिना कमांड कुछ भी नहीं बदलती। यह केवल पहचाना गया स्रोत बताती है और प्लेबुक का पाथ प्रिंट करके बाहर निकल जाती है। यह प्लेबुक पैकेज में शामिल blume-migrate स्किल है। किसी दूसरे एजेंट को उस SKILL.md की ओर निर्देशित करें। या फिर कमांड द्वारा प्रिंट की गई इस कमांड से स्किल को उस जगह इंस्टॉल करें जहाँ आपका एजेंट स्किल्स खोजता है:
npx skills add haydenbleasel/blume --skill blume-migrate
पहले तुलना करें
तुलना पेज Blume की तुलना हर फ़्रेमवर्क से करते हैं। वे यह भी बताते हैं कि उस फ़्रेमवर्क से माइग्रेशन में क्या ज्यों-का-त्यों आता है और क्या फिर से लिखा जाता है।