والقصد من ذلك هو أن تكون متساهلاً للغاية في قبول التصحيحات. للحصول على امتيازات الالتزام، ما عليك سوى إرسال طلب السحب الأول أو طرح سؤال على Arc Language Forum .
قم أولاً بتثبيت Racket (الإصدار 7.7 أو الأحدث)، ثم قم بتشغيل:
$ raco pkg install sha
$ git clone http://github.com/arclanguage/anarki
$ cd anarki
يمكنك بدء الرد التفاعلي باستخدام:
$ ./arc.sh
أو ابدأ الأخبار (والرد) بـ:
$ cd apps/news
$ ./run-news
إذا كنت جديدًا على Arc أو Lisp بشكل عام، فإن نقطة البداية الجيدة هي البرنامج التعليمي .
إذا واجهت مشكلة، تحقق
(help)
في ملف repl يأتي Anarki مزودًا بتطبيق News ، وهو تطبيق بأسلوب Hacker News .
لتشغيل الأخبار ، اختر أولاً اسم المستخدم (المسؤول)،
$ cd anarki/apps/news
$ mkdir www
$ echo __username__ > www/admins
يمكن أن يكون لديك عدة مدراء. قم بإضافتها جميعًا إلى www/admins
، مفصولة بمسافة بيضاء.
تحذير : إذا كنت تقوم بالفعل بتشغيل موقع أخبار ، فقد يؤدي الترحيل إلى هذا التفرع إلى إتلاف بيانات موقعك. تفضل بالتحدث إلينا أولاً، وتأكد من عمل نسخة احتياطية قبل الترحيل.
الآن قم بإحضار الخادم
$ ./run-news
سيكون هناك توقف مؤقت أثناء تحميل الخادم لبعض الرسائل، ثم سترى المطالبة arc>
.
انتقل إلى http://localhost:8080. انقر على تسجيل الدخول ، وقم بإنشاء حساب باسم المستخدم الخاص بك. يجب عليك الآن تسجيل الدخول كمسؤول.
(لا تقلق بشأن user break
أو error writing
الرسائل.)
لتخصيص الأخبار ، قم بتغيير المتغيرات الموجودة أعلى apps/news/news.arc
. لتغيير المنفذ الذي يعمل عليه الخادم الخاص بك، قم بتعديل apps/news/run-news.arc
.
أي تغييرات تفاعلية يتم إجراؤها على المطالبة سوف تنعكس فورًا على الخادم، دون الحاجة إلى إعادة تشغيله. وبالتالي، إذا أجريت أي تغييرات على apps/news/news.arc
، فيمكنك تحميلها عن طريق كتابة (load "apps/news/news.arc")
في الملف repl. إذا قمت بإيقاف الخادم أو توقفه لسبب ما، فستتوفر الأوامر التي تم إدخالها مسبقًا في سجل الأوامر (على الأقل إذا كان Readline مثبتًا لديك).
قد ترغب في تقديم الأخبار بشكل آمن عبر HTTPS . يمكن العثور على مثال لتكوين تشغيل Nginx باستخدام SSL كوكيل عكسي للأخبار في anarki/extras/news.nginx.conf
.
لإرسال رسائل إعادة تعيين كلمة المرور، يجب عليك إعداد حساب بريد إلكتروني لإرسال هذه الرسائل منه،
$ echo "[email protected]" > www/app-email ; email
$ echo "smtp.example.com" >> www/app-email ; smtp server
$ echo "[email protected]" >> www/app-email ; user
$ echo "1234" >> www/app-email ; password
لدى Anarki اختبارات آلية شاملة.
# start in the anarki directory
$ ./arc.sh
arc> (load "tests.arc")
من الواضح أن Anarki غير مقيد بالحفاظ على التوافق مع الإصدارات الأولية، وقد تتأرجح حالة التوافق بشكل كبير من الالتزام إلى الالتزام اعتمادًا على من يهتم. لرؤية قائمة بالميزات المختلفة، اكتب (incompatibilities)
في ملف repl. إذا قمت بإجراء تغيير غير متوافق، يرجى تحديث هذه القائمة.
نرحب بأي شخص لإجراء تغييرات على Anarki، ولكن يرجى التأكد من استمرار اجتياز الاختبارات. نظرًا لأننا نعتمد على أداة الاختبار Unit-test.arc، فيرجى أيضًا إجراء اختباراتها قبل إجراء أي تغييرات:
$ ./arc.sh (يتطلب 'lib/unit-test.arc/unit-test.arc) (تحميل "unit-test.arc/tests.arc") (اختبار وخطأ عند الفشل)
يمكن تقييم تعبيرات المضرب باستخدام بناء الجملة ($ ...)
. على سبيل المثال، يحصل (($ crypto-random-bytes) 16)
على وظيفة crypto-random-bytes
من Racket ويقوم باستدعاء لها.
إذا كنت تكتب الكثير من أكواد Racket وتريد فقط استخدام Anarki لجزء من مشروع أكبر، فيمكنك raco pkg install anarki
واستخدام Anarki لكتابة وحدات Racket :
#lang anarki
(:provide function-for-use-in-racket)
(= racket-import ($.dynamic-require ...))
(load "relative/path.arc")
(def utility-for-use-in-racket (x)
(* x (racket-import x))
لاحظ أن Anarki لا يحتوي على نطاقات وحدة خاصة؛ قسم (:provide ...)
موجود فقط لتسهيل require
مكتبة مبنية على Anarki من Racket .
يواجه Anarki بعض المشكلات في تمرير وسيطات الكلمات الرئيسية إلى وظائف Racket ، ولكن يمكن استخدام keyword-apply
لـ Racket لذلك.