Astro 7 નું Rust-આધારિત Sätteri markdown engine માં પરિવર્તન display-math બ્લોક્સને સાદા કોડમાં બદલી રહ્યું છે, heading anchors ને દૂર કરી રહ્યું છે અને custom markdown વિકલ્પોને નકારી રહ્યું છે – જે અપગ્રેડ કરનાર કોઈપણ વ્યક્તિ માટે મુશ્કેલીનું કારણ બની શકે છે જેમને હવે તેમની સાઇટ પર તૂટેલા સમીકરણો દેખાય છે.

જો તમે LaTeX-style math, automatic heading links અથવા bespoke markdown plugins પર આધાર રાખતા હોવ, તો આ અપગ્રેડ તમારા કન્ટેન્ટને વાંચવા અયોગ્ય અને નેવિગેશનને બિનઉપયોગી બનાવી શકે છે, તેથી તેને ઝડપથી ઠીક કરવું આવશ્યક છે.

અપગ્રેડને કારણે સમસ્યાઓ કેમ સર્જાઈ

Astro હવે તેના મુખ્ય Markdown પ્રોસેસર તરીકે Sätteri ચલાવે છે. Sätteri પ્લગિન્સ લાગુ થવાનો ક્રમ બદલે છે: તે તમે કન્ફિગર કરેલા HTML-AST (HAST) પ્લગિન્સ પહેલા syntax highlighting ચલાવે છે. આ ફેરફારનો અર્થ એ છે કે ત્રણ સામાન્ય પેટર્ન કામ કરવાનું બંધ કરી દે છે:

  • Display math$$ … $$ દ્વારા delimited બ્લોક્સને સામાન્ય કોડ તરીકે ગણવામાં આવે છે કારણ કે હાઇલાઇટર પહેલા ચાલે છે.
  • Heading anchors – જે પ્લગિન્સ slugs (URL-friendly IDs) જનરેટ કરે છે અને પછી તે headings ને autolink કરે છે, તેઓ હવે IDs જોઈ શકતા નથી, તેથી લિંક્સ ક્યારેય બનાવવામાં આવતી નથી.
  • Custom options – તમે સીધા Sätteri પ્રોસેસરમાં જે પણ વધારાના સેટિંગ્સ આપ્યા હોય તેને અવગણવામાં આવે છે; Astro ફક્ત ત્રણ પૂર્વ-નિર્ધારિત ફિલ્ડ્સ જ આગળ મોકલે છે.

ચોક્કસ ઉપાયો

1. HTML-AST ને બદલે markdown-AST (MDAST) પર math રેન્ડર કરો

Astro ના markdown પાઇપલાઇનમાં બે પ્લગિન સ્લોટ્સ છે:

  • mdastPlugins – HTML બનતા પહેલા પાર્સ કરેલા markdown ટ્રી પર ચાલે છે.
  • hastPlugins – કન્વર્ઝન પછી HTML ટ્રી પર ચાલે છે.

કારણ કે હાઇલાઇટર hastPlugins પહેલા ચાલે છે, તેથી math કોડ બ્લોકમાં બદલાઈ જાય છે. તમારા math પ્લગિનને mdastPlugins માં ખસેડો.

export default {
  markdown: {
    mdastPlugins: [
      // put remark-math (or your custom math handler) here
    ],
    // leave hastPlugins for things that truly need HTML nodes
  }
}

સ્ટાન્ડર્ડ સેટઅપમાં slug જનરેટર અને ત્યારબાદ autolink પ્લગિન ઇન્સ્ટોલ કરવામાં આવે છે. Astro માં, ઇન-બિલ્ટ heading-ID પ્લગિન તમારી યાદીની પછી ચાલે છે, જેના કારણે autolink પ્લગિન માટે જોડવા માટે કંઈ જ રહેતું નથી. યાદીમાં પહેલા slug પ્લગિન રાખો, અને પછી autolink પ્લગિન રાખો.

export default {
  markdown: {
    mdastPlugins: [
      satteriSlug(),            // must be first
      satteriAutolinkHeadings() // runs after slug, sees IDs
    ]
  }
}

હવે દરેક heading ને ID મળશે અને autolink પ્લગિન તેને યોગ્ય anchor સાથે લપેટી (wrap) શકશે.

3. વધારાનું કોન્ફિગરેશન Astro markdown ઓબ્જેક્ટના ટોપ લેવલ પર રાખો

Astro ફક્ત ત્રણ ચોક્કસ ફિલ્ડ્સ Sätteri પ્રોસેસરને આગળ મોકલે છે. તમે પ્રોસેસરની અંદર જે કંઈ પણ નેસ્ટ કરો છો (દાખલા તરીકે shikiConfig ઓબ્જેક્ટ) તે નીકળી જાય છે. તે વધારાના સેટિંગ્સને markdown કોન્ફિગરેશનના ટોપ લેવલ પર ખસેડો.

export default {
  markdown: {
    shikiConfig: { theme: 'nord' }, // top-level, will be respected
    // other Astro-accepted fields …
    mdastPlugins: [/* … */],
    hastPlugins: [/* … */]
  }
}

સામાન્ય remark પ્લગિન્સ માટે ઝડપી રિપ્લેસમેન્ટ ગાઇડ

Old remark plugin New Astro feature flag
remark-gfm features.gfm
remark-frontmatter features.frontmatter
remark-math features.math
remark-directive features.directive
remark-smartypants features.smartPunctuation
remark-wiki-link features.wikilinks

તમારા Astro કોન્ફિગરમાં પ્લગિનના નામ બદલીને તેના અનુરૂપ features.* ફ્લેગનો ઉપયોગ કરો.

પ્લગિન્સને Sätteri માં પોર્ટ કરતી વખતે શ્રેષ્ઠ પદ્ધતિઓ