arrdem أوقف grimoire ويعيد التوجيه إلى مستندات clojure. الآن ينتج cider-grimoire
ما يلي:
قضيت بضع دقائق في البحث في clojuredocs لمعرفة ما إذا كان هناك API ولا أعتقد أنه يوجد. سنحتاج إما إلى التبديل إلى clojuredocs أو إزالة هذه الميزة.
أتمنى أن أراها تتحرك نحو مستندات Clojure. @ cursive-ID يفعل هذا وهو _very_ بقعة. أنا أستمتع حقًا بالمحرر الداخلي وسأفتقد ثمار عمل
يبدو أن هناك بعض واجهة برمجة التطبيقات نظرًا لوجود عميل قديم لها - https://github.com/dakrone/clojuredocs-client/blob/master/src/cd_client/core.clj لست متأكدًا مما إذا كان ذلك لا يزال يعمل ، لكنني أعتقد أنه قد يكون كذلك فكرة جيدة لإنشاء بعض البرامج الوسيطة للتعامل مع ClojureDocs إذا قررنا دعمها. سيسمح لنا هذا أيضًا بعرض أمثلة في المستندات ، إلخ.
لا أعتقد أن هناك واجهة برمجة تطبيقات ، ولكن يوجد أرشيف متاح على: https://clojuredocs.org/clojuredocs-export.json. أنا فقط أطالب المستخدم عند بدء التشغيل بتنزيل ذلك ، ثم التحقق من وجوده عند عرض المستند. أعتقد أن الأرشيف يتم تحديثه يوميًا.
شكرا @ مخطوطة- ID! كنت أتساءل كيف فعلت ذلك. التنفيذ الخاص بك _very_ بسيط ومريح.
تمت إضافة تعليق إلى طلب موجود لواجهة برمجة تطبيقات لمعرفة نوع الأذونات الممنوحة / المطلوبة لهذه البيانات. يبدو أن حجمه حوالي 3 ميغا بايت ، لذا ربما يمكن فقط رميها في ملف edn وتوزيعها مع orchard أو cider-nrepl؟
@ dpsutton أوافق. هذا ما فعلناه مقابل see-also.edn
في Orchard - إنه مجرد تصدير من clojuredocs نقوم بتحديثه من وقت لآخر. نحتاج فقط إلى إضافة عدد قليل من الخطوط / جعل المهام لتبسيط هذه الصادرات.
راجع أيضًا https://github.com/clojure-emacs/orchard/issues/60 الذي يربط بكيفية استخلاصنا see-also.edn
من ClojureDocs في الماضي.
/ يلوح لي بحزن
bbatsov أختبر استخدام clojuredocs-export.json في vim-iceed.
https://github.com/l Liquidz/iced-nrepl/blob/feature/clojuredocs/src/iced/nrepl/document.clj
في تطبيقي ، أحاول تلقي json-path
وتخزين بيانات JSON مؤقتًا لأنه يبدو أنه يتغير كثيرًا على عكس see-also.edn
.
يمكنني المساهمة بهذه الرموز في البستان أو عصير التفاح. ما رأيك في هذا التنفيذ؟
l Liquidz يبدو التنفيذ معقولًا بالنسبة لي ، إنه أمر مخيب للآمال بعض الشيء أنه لا يوجد تصدير EDN والآن نحتاج إلى جهة خارجية لتحليل JSON. هذا يعني أنه يتعين علينا القيام بذلك في cider-nrepl
، وليس orchard
، حيث يجب أن يظل Orchard مجانيًا (خارج Clojure / ClojureScript).
على أي حال ، أعتقد أن هذا جيد بما يكفي في الوقت الحالي. شكرا لتقدم للمساعدة!
@ bbatsov شكرا!
أنا أؤكد بشأن تصدير تنسيق EDN إلى clojuredocs.
إذا لم تكن هناك خطة لتصدير البيانات بتنسيق EDN ، فسوف أقوم بإنشاء PR إلى مستودع cider-nrepl
.
عظيم!
إذا لم تكن هناك خطة لتصدير البيانات بتنسيق EDN ، فسوف أقوم بإنشاء علاقات عامة لمستودع cider-nrepl.
بالمناسبة ، كنت أفكر في أننا قد نجعل هذا يحدث بأنفسنا أيضًا ، لأن كل ما نحتاجه هو بعض خدمات الويب التافهة التي يتم نشرها في Heroku (أو أيًا كان) والتي تقوم فقط بسحب تصدير json يوميًا وتحويله إلى EDN. ومع ذلك ، آمل أن تتمكن zk من مساعدتنا في تصدير بعض EDN مباشرة من المصدر.
تضمين التغريدة
بالمناسبة ، كنت أفكر في أننا قد نجعل هذا يحدث بأنفسنا أيضًا ، لأن كل ما نحتاجه هو بعض خدمات الويب التافهة التي يتم نشرها في Heroku (أو أيًا كان) والتي تقوم فقط بسحب تصدير json يوميًا وتحويله إلى EDN.
ماذا عن استخدام Netlify؟
لقد قمت بعمل مشروع بسيط كاختبار لتحويل ملف EDN إلى Netlify يوميًا.
schedule
في CircleCIتضمين التغريدة هذا بالضبط ما كان يدور في خلدي.
الآن يمكنك إضافة الوظيفة مباشرة إلى Orchard وسيحتوي cider-nrepl على غلاف تفكير حوله.
l Liquidz لقد بدأت أخيرًا العمل على هذا ، ولاحظت أنه يمكن تعديل التصدير قليلاً ليكون أكثر ملاءمة - فهو يحتفظ بسجلات لجميع التعديلات التي أجراها الجميع وأعتقد أننا نحتاج فقط إلى تجاهل هذه المعلومات ووضع أشياء مثل :see-alsos
و :notes
و :examples
كمفاتيح المستوى الأعلى لكل رمز مرتبط بالمتجه. يمكننا الاحتفاظ بالتصدير خامًا وجعل البستان يقوم بتدليك البيانات ، لكن يبدو لي أنه يمكننا فقط تنظيف التصدير مباشرةً (سيؤدي ذلك أيضًا إلى جعل تنزيله أصغر كثيرًا).
bbatsov لست متأكدًا من الهيكل الذي تتوقعه.
هل يمكن أن تخبرني بمثال ملموس؟
تضمين التغريدة
هنا ، على سبيل المثال ، أسقط جميع معلومات المؤلف حول كيفية إنشاء / تحرير شيء ما:
:vars [{:ns "clojure.core", :name "def", :type "var", :see-alsos [{:created-at 1289040035000, :author {:login "boxie", :account-source "clojuredocs", :avatar-url "https://www.gravatar.com/avatar/bfc366066e3c1beee98f3a6666728169?r=PG&default=identicon"}, :to-var {:ns "clojure.core", :name "defn", :library-url "https://github.com/clojure/clojure"}, :_id "542692eaf6e94c6970521b15"} {:created-at 1289040039000, :author {:login "boxie", :account-source "clojuredocs", :avatar-url "https://www.gravatar.com/avatar/bfc366066e3c1beee98f3a6666728169?r=PG&default=identicon"}, :to-var {:ns "clojure.core", :name "fn", :library-url "https://github.com/clojure/clojure"}, :_id "542692eaf6e94c6970521b16"} {:created-at 1289040051000, :author {:login "boxie", :account-source "clojuredocs", :avatar-url "https://www.gravatar.com/avatar/bfc366066e3c1beee98f3a6666728169?r=PG&default=identicon"},
هذا النوع من البيانات مهم لـ ClojureDocs نفسه ، لكنه ليس مهمًا عندما تريد فقط إظهار بعض البيانات في محرر. كما قلت - إنها ليست مشكلة كبيرة بالنسبة لي أن أقوم بتعديل معالجة البيانات في Orchard ، لكنني متأكد بشكل معقول من أننا لن نحتاج أبدًا إلى هذا النوع من البيانات ، لذا قد يكون من الأفضل جعل التصدير أكثر إحكاما. سيكون شيئًا كهذا مثاليًا في الأساس:
{:var {:ns ... :name ... :type ... :see-alsos [just a list of vars] :notes [just a list of notes] :examples just a list of examples}
هل معنى هذا الاسم؟
@ bbatsov شكرا!
يبدو جيدا بالنسبة لي أيضا.
سأحاول وضع عينة من البيانات على https://clojuredocs-edn.netlify.com/
bbatsov قمت بنشر النسخة المدمجة هنا.
https://clojuredocs-edn.netlify.com/export.compact.edn
ماذا عن هذه البيانات النموذجية؟
تضمين التغريدة هذا بالضبط ما كان يدور في خلدي! أعتقد أنه يمكننا تحديث orchard / cider-nrepl لاستخدام هذه البيانات بدلاً من ذلك.
bbatsov بدأت أفهم الكود cider-clojuredocs
ولاحظت شيئًا في البيانات التي تحصل عليها من orchard / cider-nrepl.
هذا هو ناتج ديكت عند البحث عن الرمز def
:
(dict "status" ("done") "doc" "Creates and interns a global var with the name
of symbol in the current namespace (*ns*) or locates such a var if
it already exists. If init is supplied, it is evaluated, and the
root binding of the var is set to the resulting value. If init is
not supplied, the root binding of the var is unaffected." "forms-str" "(def symbol doc-string? init?)" "id" "56" "name" "def" "see-also" ("clojure.core/defn" "clojure.core/fn" "clojure.core/defmacro" "clojure.core/defmulti" "clojure.core/defonce" "clojure.core/ns-unmap") "session" "e7babf3b-fe95-49dc-999d-8565bbf9ab72" "special-form" "true" "url" "https://clojure.org/special_forms#def")
يفتقد المفتاح ns
الذي يتوقعه الرمز من أجل تقديم الطلب من خلال browse-url
. أعتقد أن الإصلاح لهذه المواقف سيكون أفضل في أصل هذه البيانات. هل يمكنك توجيه بعض الاتجاهات لمزيد من التصحيح؟
أفترض أن هذا ببساطة ليس جزءًا من تصدير ClojureDocs لسبب ما ، والذي يبدو غريبًا بعض الشيء ، لكن لن يكون من الصعب تعديل ما نحصل عليه منه.
تضمين التغريدة
"شكل خاص" "صحيح"
يبدو أن بيانات تصدير ClojureDocs لا تحتوي على مفتاح ns
للنماذج الخاصة.
https://clojure.org/reference/special_forms
حسنًا ، أعتقد أنه يمكننا اعتبار عدم وجود ns
مثل clojure.core
ذلك الوقت. أو قم بتعديل البيانات أكثر قليلاً في خدمة المصدر.
هذا الافتراض جيد بما يكفي ، لكنني أعتقد أنه سيكون من الجيد تعديل أداة تصدير البيانات لتضمين مساحة الاسم clojure.core
وترك التطبيق الحالي على cider-clojuredocs
دون تغيير.
من السهل تعديل المصدر :)
https://github.com/l Liquidz/clojuredocs-export-edn
تضمين التغريدة
أوه ، لقد أسأت الفهم! آسف!
إنه info
op لا يُرجع مفتاح ns
لنموذج خاص.
هذا هو إخراج dict عند البحث عن رمز def:
أعتقد أن هذا رد من info
op.
لذلك يجب علينا تعديل info
op أو اعتبار عدم وجود ns
كـ clojure.core
.
نعم ، يجب علينا.
يمكنني العمل عليها الخميس. نحن نرعى حدث Clojure South هنا في البرازيل وأنا مشغول جدًا بتنظيم كل الأشياء التي سنحضرها إلى الحدث. آمل أن أراك هناك batsov
wandersoncferreira بالمثل!
l Liquidz ملاحظة صغيرة واحدة حول التصدير - سيكون من الرائع حقًا أن تطبع إصدارات التصدير بشكل جيد ، لذلك يسهل على البشر التنقل فيها. ناهيك عن أن Emacs يتعامل مع طوابير طويلة جدًا سيئة للغاية. :د
bbatsov موافق! لقد أصلحت ملف تصدير EDN.
https://clojuredocs-edn.netlify.com/export.compact.edn
يتم ترك نسخة غير مطبوعة بشكل جيد هنا .
عظيم! شكرا جزيلا! 🙇
التعليق الأكثر فائدة
bbatsov موافق! لقد أصلحت ملف تصدير EDN.
https://clojuredocs-edn.netlify.com/export.compact.edn
يتم ترك نسخة غير مطبوعة بشكل جيد هنا .