
من میخواهم یک افزونه برای کروم بنویسم بنام KPY که از manifes...
Prompt
من میخواهم یک افزونه برای کروم بنویسم بنام KPY که از manifest V3 استفاده میکند آیکون های افزونه را خودت تولید کن و فقط همین KPY را در آن بگذار تمام فولدرها را نیز خودت تولید کن یا اسکریپت powershell به من بده که اجرا کنم و تمام فولدرها و فایلها تولید شوند که بعدا محتوای انها را کامل میکنیم کار افزونه به شرح زیر است این افزونه روی تمام صفحات فعال است و اگر کاربر بخواهد مرحله به مرحله فرمولهای ریاضی را به mathml تبدیل میکند تمام المنتهایی در html را که دارای حروف فارسی یا عربی یا اردو هستند بصورت rtl lang=fa تبدیل میکند و تمام سایر عناصر که حروف فارسی ندارند بخصوص الگوریتمها کدها فرمولهای ریاضی را به صورت ltr lang=en تبدیل میکند و بعلاوه عناصر رنگی مشخصی به المنتها یا بلوکهای html اضافه میکند فرمولهای ریاضی با روشهای مختلفی در وب و html نمایش داده میشوند مانند mathjax(html-css), katex(html-css), latex, ascimath, asciimath, ... من میخواهم تمام فرمولهای ریاضی با هر روش و ابزار نهایتا به mathml core-mathml تبدیل شود قبل از شروع هرچیزی لازم است تاکید کنم که MathJax (v3) بسیار قدرتمند است و دو کار را بخوبی انجام میدهد یکی تبدیل latex به html-css که بیشتر به mathjax(html-css) معروف است و شبیه katex است و دیگری تبدیل latex به core-mathml که به Mathjax(mathml) معروف است و شبیه temml و texzilla است. در مورد این افزونه ما چندان نگران سرعت و سرعت بارگذاری نیستیم از این جهت mathjax و حجیم بودن آن مانع استفاده نیست بلکه ما میخواهیم کار درستی انجام بشود اتفاقا mathjax 2.6 mathjax 2.7 mathjax 3+ mathjax4+ هرکدام قابلیت ارائه mathml و استفاده از فونت اختصاصی خود را دارند و مانع بکارگیری انها نمیشود بلکه برعکس ممکن است کار تبدیل latex به core-mathml را ساده تر کند بعلاوه mathjax تقریبا در تمام نسخه اخیر 2.6 تا 4.1 قابلیت mathml دارد شما در مستندات mathjax دقیقتر مطالعه کنید موضوع روشن میشود پس اگر mathjax به تبدیل latex in websites html's .... به mathml کمک میکند خیلی کار خوبی است بعلاوه من میخواهم حتما قابلیت تبدیل latex به mathml با استفاده از mathjax(MathML) در task6 فعال باشد چون قابلیتهای mathjax(mathml) در تبدیل latex به mathml خیلی خوب و قوی است ------------------- حتما توجه کردی که ما mathjax, katex را قبلا مسدود و بلاک کردیم چون mathjax دارای دو عملکرد است اول Mathjax(html-css) و دوم mathjax(Mathml) آیا این مسدود شدن جلوی کار mathjax در تولید Mathml را نمیگیرد؟ ----------------------- تمام js ccs های مربوط به mathjax katex temml Mathjax (Core-MathML) temml Mathjax (Core-MathML) docxj odt mathjax2 mathjax3 mathjax4 در فولدر افزونه موجود است. تمام فولدرهای katex mathjax2 mathjax3 mathjax4 temml Mathjax (Core-MathML) و docx wasm-pandoc odt docxj ... در فولدر KPY باشد هیچ فولدری بنام libs نخواهیم داشت من تجربه کردم که بهتر است از معماری یا ساختار زیر برای توسعه افزونه استفاده کنم که یک افزونه اصلی باشد و وظایف یا ماژولها را بصورت مرحله به مرحله بسازیم و پیش برویم که خطاها و باگها انتشار پیدا نکنند و بدرستی بتوانیم تشخیص بدهیم که منشآء مشکل کجاست و آن را رفع کنیم تا بتوانیم یک افزونه کامل و جامع و بدون نقص و باگ بدست آوریم کارهایی که این افزونه میکند مرحله به مرحله به صورت زیر است با دقت و پیمایش و parse کامل صفحه وب html گزارش میکند که متن ریاضی mathml یا mathjax-mathml یا core-mathml یا Latex یا $Latex$ یا [(Latex)] است و همچنین بررسی میکند که اجرای RTL/LTR روی تمام المنتها یا بلوکهای html اعمال شده است یا خیر. بعلاوه افزونه اصلی KPY فقط ماژولها یا وظیفه های دیگر را صدا خواهد زد یا لود خواهد کرد 1-یک کلید برای بررسی موتور رندر فرمولهای ریاضی دارد که بررسی میکند که موتور پردازش فرمولهای ریاضی چیست و حالتهای زیر را تشخیص میدهد 1-1 katex html-css 1-2 mathjax html-css 1-3 mathjax mathml 1-4 mathml by temml 1-5 mathml by Mathjax (Core-MathML) 1-6 latex raw syntax with display math $$...$$ and inline $...$ delimiters 1-7 latex raw syntax with display math \$$...\$$ and inline \$...\$ delimiters 1-8 latex raw syntax with display math \$\$...\$\$ and inline \$...\$ delimiters 1-9 latex raw syntax with display math \\$\\$...\\$\\$ and inline \\$...\\$ delimiters 1-10 latex raw with display math \[...\] and inline \(...\) delimiters 1-11 latex raw with display math \\[...\\] and inline \\(...\\) delimiters 1-12 latex raw without any delimiters which is usual when we block loading katex???.???.js 1-13 other mathml or other latex render engines وقتی این حالتها را تشخیص داد به کاربر اعلام میکند که math formula equation renderer چیست فایل js مربوط به این وظیفه را در فولدر task1 بگذار 2- سپس یک دکمه یا باتن دارد که (html-css)mathjax را block/unblock میکند و از بارگذاری mathjax???.???.js و mathjax???.???.css جلوگیری میکند و اعلام میکند که mathjax blocked یا در صورت unblock کردن اعلام میکند که mathjax UnBlocked فایل js مربوط به این وظیفه را در فولدر task2 بگذار قصد ما از بلاک و مسدود کردن mathjax(html-css) استخراج کدهای اصلی latex و سپس تبدیل آنها به core-mathml است، شاید راه دیگری هم برای استخراج کدهای خام و اصای latex از کدهای mathjax(html-css) باشد که تو باید تحقیق کنی 3- یک دکمه دارد که katex را غیر فعال میکند و از بارگذاری katex???.???.js و katex???.???.css جلوگیری میکند و اعلام میکند که Katex blocked یا در صورت unblock کردن اعلام میکند که katex UnBlocked فایل js مربوط به این وظیفه را در فولدر task3 بگذار قصد ما از بلاک و مسدود کردن Katex استخراج کدهای اصلی latex و سپس تبدیل آنها به core-mathml است، شاید راه دیگری هم برای استخراج کدهای خام و اصای latex از کدهای katex باشد که تو باید تحقیق کنی 4- یک دکمه دارد که حالتهای 1-7و 1-8و 1-9و 1-10و 1-11 و 1-12 را شناسایی کرده 1-7 latex raw syntax with display math \$$...\$$ and inline \$...\$ delimiters 1-8 latex raw syntax with display math \$\$...\$\$ and inline \$...\$ delimiters 1-9 latex raw syntax with display math \\$\\$...\\$\\$ and inline \\$...\\$ delimiters 1-10 latex raw with display math \[...\] and inline \(...\) delimiters 1-11 latex raw with display math \\[...\\] and inline \\(...\\) delimiters 1-12 latex raw without delimiters و همه اینها را به حالت 1-5 latex raw syntax with display math $$...$$ and inline $...$ delimiters تبدیل میکند گاهی فرمولهای ریاضی latex بصورت \begin{aligned} ..... \end{aligned} , \begin{equation} ......\end{equation} , \begin{multline*} ....... \end{multline*} , \begin{align*} .......\end{align*} , \begin{gather*} ...... \end{gather*} دلیل این تبدیل این است که هنگامیکه ما میخواهیم از temml یا Mathjax(Core-MathML) فرمولهای latex را به mathml تبدیل کنیم حالت $...$ و $$...$$ بهتر شناسایی و تبدیل میشود فایل js مربوط به این وظیفه را در فولدر task4 بگذار 5- یک دکمه دارد که صفحه را پس از غیرفعال سازی هریک از اینها یا اعمال هریک از اینها مجددا بارگذاری و لود میکند تا فرمولهای ریاضی با latex raw syntax with $$...$$ and $...$ نمایش داده شوند و اعلام میکند که تمام فرمولهای ریاضی بصورت latex with $ delimiters تبدیل شده است ماژول یا وظیفه که کارش تبدیل حالتهای Latex بدون دلیمیترز و Latex با دلییمترزهای \(...\) \[...\] و Latex با دلیمیمترزهای \$...\$ , \$$...\$$ به حالت استاندارد Latex با $...$ و $$...$$ است تمام فایلهای مربوط به این ماژول یا وظیفه داخل فولدرش خودش خواهد بود (فولدر task5) که تداخلی بین وظیفه ها یا ماژولها باهم پیش نیاید و برای کتابخانه ها و پکیجهای خارجی مانند temml Mathjax (Core-MathML) docxj odt mathjax2 mathjax3 mathjax4 فقط از فولدرهای موجود در فولدر افزونه اصلی استفاده خواهد کرد فایل js مربوط به این وظیفه را در فولدر task5 بگذار 6- سپس یک دکمه دارد که Mathjax(Core-MathML) را روی تمام فرمولهای ریاضی با latex raw syntax with $$...$$ and $...$ اعمال میکند تا تمام فرمولها به mathml تبدیل شوند و یک کپی از اصل فرمولهای ریاضی با latex raw syntax with $$...$$ and $...$ بصورت Invisible or comment or hidden نگه میدارد همچنین در نوشتن فرمولهای درخط inline mathml از mrow استفاده میکند که بدرستی در داخل سطر نمایش داده شوند یک دکمه دارد که Mathjax (Core-MathML) را روی تمام فرمولهای ریاضی با latex raw syntax with $$...$$ and $...$ اعمال میکند تا تمام فرمولها به mathml تبدیل شوند و یک کپی از اصل فرمولهای ریاضی با latex raw syntax with $$...$$ and $...$ بصورت Invisible or comment or hidden نگه میدارد ماژول یا وظیفه که کارش تبدیل Latex به MathML است با استفاده از پکیج Mathjax(Core-MathML) تمام فایلهای مربوط به این ماژول یا وظیفه داخل فولدر خودش (فولدر task6) خواهد بود که تداخلی بین وظیفه ها یا ماژولها باهم پیش نیاید و برای کتابخانه ها و پکیجهای خارجی مانند temml Mathjax(Core-MathML) docxj odt mathjax2 mathjax3 mathjax4 فقط از فولدرهای موجود در فولدر افزونه اصلی استفاده خواهد کرد فایل js مربوط به این وظیفه را در فولدر task6 بگذار 7- یک دکمه دارد که temml را روی تمام فرمولهای ریاضی با latex raw syntax with $$...$$ and $...$ اعمال میکند تا تمام فرمولها به mathml تبدیل شوند و یک کپی از اصل فرمولهای ریاضی با latex raw syntax with $$...$$ and $...$ بصورت Invisible or comment or hidden نگه میدارد همچنین در نوشتن فرمولهای درخط inline mathml از mrow استفاده میکند که بدرستی در داخل سطر نمایش داده شوند ماژول یا وظیفه که کارش تبدیل Latex به MathML است با استفاده از پکیج TeMML تمام فایلهای مربوط به این ماژول یا وظیفه داخل فولدر خودش (فولدر task7) خواهد بود که تداخلی بین افزونه های فرعی باهم پیش نیاید و برای کتابخانه ها و پکیجهای خارجی مانند temml Mathjax (Core-MathML) docxj odt mathjax2 mathjax3 mathjax4 فقط از فولدرهای موجود در فولدر افزونه اصلی استفاده خواهد کرد فایل js مربوط به این وظیفه را در فولدر task7 بگذار 8-افزونه همچنین بررسی میکند که متن صفحه وبسایت یا html دارای کدامیک از مشخصات rtl یا ltr است و سپس یک لیست از تمام المنتها یا بلوکهای html به کاربر نشان میدهد و تمام حروف چینی و ژاپنی و کره ای و بنگالی و هندی را حذف میکند. سپس یک دکمه باتن دارد که در تمام المنهای html مانند title head h1 h2 h3 h4 h5 h6 body p div span ui td tr li که دارای متن یا حروف و نوشته فارسی یا عربی هستند خاصیت dir="rtl" lang="fa" اعمال و اضافه میکند تا تمام صفحه کاملا بصورت متن فارسی یا عربی یا اردو از سمت راست به چپ right-to-left باشد همچنین در تمام المنتها یا بلوکهای html که دارای متن ریاضی یا فرمولها و معادلات ریاضی یا latex/mathml یا code-box یا verbatim یا algorithm یا pesudocode هستند خاصیت dir="ltr" lang="en" اضافه میکند تا این قسمتها طبیعتا به جهت چپ به راست left-to-right باقی بمانند فایل js مربوط به این وظیفه را در فولدر task8 بگذار 9- ماژول یا وظیفه که کارش اعمال تم رنگی روی المنتها و بلوکهای html است تمام فایلهای مربوط به این ماژول یا وظیفه داخل فولدر خودش (فولدر task9) خواهد بود که تداخلی بین افزونه های فرعی باهم پیش نیاید و برای کتابخانه ها و پکیجهای خارجی مانند temml Mathjax (Core-MathML) docxj odt mathjax2 mathjax3 mathjax4 فقط از فولدرهای موجود در فولدر افزونه اصلی استفاده خواهد کرد این افزونه یک دکمه باتن برای تخصیص رنگ به شرح زیر دارد برای رنگ بکگراند برای فرمولهای ریاضی latex/mathml رنگ آبی کمرنگ آسمانی میگذارد برای تمام h1 h2 h3 h4 h5 h6 رتگ بکگراند فیروزه ای میگذارد برای تمام کدباکسها و الگوریتمها و verbatim pesudocode code codebox بکگراند خاکستری کمرنگ میگذارد فایل js مربوط به این وظیفه را در فولدر task9 بگذار 10- ماژول یا وظیفه که کارش تبدیل html صفحه وب به docx است تمام فایلهای مربوط به این ماژول یا وظیفه داخل فولدر خودش (فولدر task10) خواهد بود که تداخلی بین افزونه های فرعی باهم پیش نیاید و برای کتابخانه ها و پکیجهای خارجی مانند temml Mathjax (Core-MathML) docxj odt mathjax2 mathjax3 mathjax4 فقط از فولدرهای موجود در فولدر افزونه اصلی استفاده خواهد کرد. فایل js مربوط به این وظیفه را در فولدر task10 بگذار 11- ماژول یا وظیفه که کارش تبدیل html صفحه وب به odt است تمام فایلهای مربوط به این ماژول یا وظیفه داخل فولدر خودش (فولدر task11) خواهد بود که تداخلی بین افزونه های فرعی باهم پیش نیاید و برای کتابخانه ها و پکیجهای خارجی مانند temml Mathjax (Core-MathML) docxj odt mathjax2 mathjax3 mathjax4 فقط از فولدرهای موجود در فولدر افزونه اصلی استفاده خواهد کرد فایل js مربوط به این وظیفه را در فولدر task11 بگذار 12- ماژول یا وظیفه که کارش ذخیره و دانلود دقیق و کامل صفحه وب html است تمام فایلهای مربوط به این ماژول یا وظیفه داخل فولدر خودش (فولدر task12) خواهد بود که تداخلی بین افزونه های فرعی باهم پیش نیاید و برای کتابخانه ها و پکیجهای خارجی مانند temml Mathjax (Core-MathML) docxj odt mathjax2 mathjax3 mathjax4 فقط از فولدرهای موجود در فولدر افزونه اصلی استفاده خواهد کرد الگوی اصلی ما در این task12 استفاده از روش افزونه singlefile chrome extension است که صفحات وب را با دقت و بصورت کامل و بصورت standalone ذخیره و دانلود میکند فایل js مربوط به این وظیفه را در فولدر task12 بگذار تو تمام موارد را از اول تا آخر مرحله به مرحله بنویس و به من بگو در کدام فولدر بگذارم لیست درختی تمام فولدرها و زیرفولدرها و فایلهای آنها را به من بگو و یک اسکریپت powershell به من بده که تمام آن ها را بسازد و بعدا من تمام آنهار با کدهایی که تو میدهی پر میکنم از ابتدا همه فولدرها و وظایف را خالی میگذاریم و مرحله به مرحله پیش میرویم برای روشن شدن موضوع متن گفتگوی خودم با chatbot ai's را در دو لینک عمومی برای تو میفرستم و دو فایل هم برای تو میفرستم که آنها را بخوانی و بدانی قبلا چه راههایی رفته ایم و چه مشکلاتی بوده است https://chat.deepseek.com/share/axzywfpcal6dpqpa8j https://chat.z.ai/s/850a796b-8d87-433b-a880-bf3a404d3125 https://chat.deepseek.com/share/3sfh4bz1h2hr5z6aet https://chat.qwen.ai/s/21028215-4e1a-463f-bdcf-888083780cfa?fev=0.2.60 https://chat.z.ai/s/f53b7979-0187-4ee3-82c9-8edc002f0575
A system prompt was added to support web rendering