UNIORG هو محلل دقيق في وضع ORG متوافق مع النظام الإيكولوجي الموحد.
أريد أن أنشر دماغي من ملاحظات Org-mode. لم يوفر أي من المحلات التي حاولتها دقة كافية.
يسعى Uniorg إلى تحليل الدقة بدلاً من السرعة أو سهولة كتابة المحلل.
يتبع uniorg org بناء جملة و ORG element API. إنه يستمد بشكل كبير من org-element.el ، مما يعني أن uniorg ترى ملفات org بنفس الطريقة التي يفعل بها وضع org. الرمز مليء بالمرجع ، لكن هذا هو بالضبط كيفية توزيع ملفات Org-mode.
على الرغم من ذلك ، هناك بعض الانحرافات المتعمدة عن وضع ORG الذي يجعل Uniorg أكثر متعة أو أسهل في العمل معها.
Uniorg نجحت في التحليل معظم بناء الجملة ORG. ومع ذلك ، هناك بعض الأماكن التي لم أنتهي منها بعد:
يجب أن تعمل بقية بناء الجملة بشكل جيد تمامًا كما هو الحال في EMACs (بما في ذلك تعشيش القائمة المعقدة ، والروابط ، والأدراج ، وإدخالات الساعة ، واللاتكس ، إلخ). إذا كنت ترغب في المساعدة في العناصر أعلاه ، grep parser.ts for TODO: .
يحتوي هذا المستودع على الحزم التالية:
uniorg - تعريفات TypeScript لشجرة Syntax Uniorguniorg-parse -parse org-mode files to uniorg myntax treesuniorg-stringify -stringify uniorg treex tree to org-mode stringuniorg-rehype تحويل أشجار بناء الجملة Uniorg إلى Rehypeuniorg-extract-keywords تخزين الكلمات الرئيسية لضعف Org إلى Vfileuniorg-attach تحويل attachment: روابط إلى file: الروابطuniorg-slug أضف مرساة إلى عناوين باستخدام خوارزمية جيثبorgast-util-to-string الأداة المساعدة للحصول على محتوى نص عادي للعقدةorgast-util-visit-ids فائدة لزيارة جميع العقد ORG مع IDSيتوافق UNIORG مع النظام البيئي الموحد ، بحيث يمكنك الاستفادة من العديد من الإضافات الموجودة.
على سبيل المثال ، إليك كيفية تحويل وضع ORG إلى HTML.
import { unified } from 'unified' ;
import parse from 'uniorg-parse' ;
import uniorg2rehype from 'uniorg-rehype' ;
import stringify from 'rehype-stringify' ;
const processor = unified ( ) . use ( parse ) . use ( uniorg2rehype ) . use ( stringify ) ;
processor
. process ( `* org-mode examplen your text goes here` )
. then ( ( file ) => console . log ( file . value ) ) ;يجب أن تعمل الإضافات الخاصة بميزة بناء جملة الكود (Rehype-Highlight و @mapbox/rehype-prism) و katex torm (rehype-katex ، rehype-mathjax) خارج الصندوق:
import { unified } from 'unified' ;
import parse from 'uniorg-parse' ;
import uniorg2rehype from 'uniorg-rehype' ;
import highlight from 'rehype-highlight' ;
import katex from 'rehype-katex' ;
import stringify from 'rehype-stringify' ;
const processor = unified ( )
. use ( parse )
. use ( uniorg2rehype )
. use ( highlight )
. use ( katex )
. use ( stringify ) ;
processor
. process (
`* org-mode example
When $a ne 0$, there are two solutions to (ax^2 + bx + c = 0) and they are
$$x = {-b pm sqrt{b^2-4ac} over 2a}.$$
#+begin_src js
console.log('uniorg is cool!');
#+end_src
`
)
. then ( ( file ) => console . log ( file . value ) ) ;GNU General Public License v3.0 أو أحدث