قم بعرض الملفات التمهيدية المحلية قبل إرسالها إلى GitHub.
Grip هو تطبيق خادم سطر أوامر مكتوب بلغة Python ويستخدم واجهة برمجة تطبيقات GitHub markdown لتقديم ملف تمهيدي محلي. تأتي الأنماط والعرض مباشرةً من GitHub، لذا ستعرف بالضبط كيف سيظهر. سوف تنعكس التغييرات التي تجريها على المستند التمهيدي على الفور في المتصفح دون الحاجة إلى تحديث الصفحة.
في بعض الأحيان، تريد فقط رؤية النتيجة التمهيدية الدقيقة قبل الالتزام والدفع إلى GitHub.
خاصة عند القيام بالتطوير المستند إلى التمهيدي.
لتثبيت المقبض، ببساطة:
$ pip install grip
على نظام التشغيل OS X، يمكنك أيضًا التثبيت باستخدام Homebrew:
$ brew install grip
لتقديم التمهيدي للمستودع:
$ cd myrepo
$ grip
* Running on http://localhost:6419/
الآن افتح المتصفح وقم بزيارة http://localhost:6419. أو قم بتشغيله باستخدام -b
وسيفتح لك Grip علامة تبويب متصفح جديدة.
يمكنك أيضًا تحديد منفذ:
$ grip 80
* Running on http://localhost:80/
أو ملف صريح:
$ grip AUTHORS.md
* Running on http://localhost:6419/
بدلًا من ذلك، يمكنك فقط تشغيل grip
وزيارة localhost:6419/AUTHORS.md نظرًا لأن grip يدعم عناوين URL النسبية.
يمكنك الجمع بين الأمثلة السابقة. أو حدد اسم مضيف بدلاً من المنفذ. أو توفير كليهما.
$ grip AUTHORS.md 80
* Running on http://localhost:80/
$ grip CHANGES.md 0.0.0.0
* Running on http://0.0.0.0:6419/
$ grip . 0.0.0.0:80
* Running on http://0.0.0.0:80/
يمكنك أيضًا تجاوز الخادم والتصدير إلى ملف HTML واحد، مع تضمين جميع الأنماط والأصول:
$ grip --export
Exporting to README.html
التحكم في اسم الإخراج باستخدام الوسيطة الثانية:
$ grip README.md --export index.html
Exporting to index.html
إذا كنت تقوم بتصدير مجموعة من الملفات، فيمكنك منع تضمين الأنماط لتوفير المساحة باستخدام --no-inline
:
$ grip README.md --export --no-inline introduction.html
Exporting to introduction.html
يتم أيضًا دعم القراءة والكتابة من stdin و stdout ، مما يسمح لك باستخدام Grip مع البرامج الأخرى:
$ cat README.md | grip -
* Running on http://localhost:6419/
$ grip AUTHORS.md --export - | bcat
$ cat README.md | grip --export - | less
يتيح لك هذا اختبار كيفية ظهور الأشياء بسرعة عن طريق إدخال Markdown مباشرةً في جهازك الطرفي:
$ grip -
Hello **world**!
^D
* Running on http://localhost:6419/
ملحوظة: ^D
يعني Ctrl+D
، الذي يعمل على نظامي التشغيل Linux وOS X. أما على نظام التشغيل Windows، فسيتعين عليك استخدام Ctrl+Z
.
يتم أيضًا دعم العرض كمحتوى مستخدم مثل التعليقات والمشكلات ، مع سياق مستودع اختياري للربط بالمشكلات:
$ grip --user-content --context=joeyespo/grip
* Running on http://localhost:6419/
لمزيد من التفاصيل والخيارات الإضافية، راجع المساعدة:
$ grip -h
تسعى Grip جاهدة لتكون قريبة من GitHub قدر الإمكان. ولتحقيق ذلك، تستخدم grip واجهة برمجة تطبيقات Markdown API الخاصة بـ GitHub بحيث تنعكس التغييرات التي يتم إجراؤها على محرك العرض الخاص بها على الفور دون مطالبتك بترقية القبضة. ومع ذلك، وبسبب هذا قد تصل إلى الحد الأقصى لسعر الساعة الخاص بواجهة برمجة التطبيقات (API). إذا حدث هذا، فإن grip يقدم طريقة للوصول إلى واجهة برمجة التطبيقات (API) باستخدام بيانات الاعتماد الخاصة بك لفتح حد معدل أعلى بكثير.
$ grip --user < your-username > --pass < your-password >
أو استخدم رمز وصول شخصيًا بنطاق فارغ (لاحظ أن الرمز المميز مطلوب إذا تم إعداد حساب GitHub الخاص بك باستخدام المصادقة الثنائية):
$ grip --pass < token >
يمكنك الاستمرار في هذه الخيارات في التكوين المحلي الخاص بك. لأغراض أمنية، يوصى بشدة باستخدام رمز وصول عبر كلمة مرور . (يمكنك أيضًا الحفاظ على أمان كلمة المرور الخاصة بك عن طريق تكوين Grip للحصول على كلمة المرور الخاصة بك من مدير كلمات المرور.)
يوجد أيضًا فرع قيد التنفيذ لتوفير العرض دون اتصال بالإنترنت . بمجرد أن يشبه GitHub بشكل أكثر دقة، سيتم عرضه في واجهة سطر الأوامر، وسيتم استخدامه في النهاية كمحرك احتياطي سلس عندما لا يمكن الوصول إلى واجهة برمجة التطبيقات.
يصل Grip دائمًا إلى GitHub عبر HTTPS، لذلك تتم حماية الملف README وبيانات الاعتماد الخاصة بك.
إليك كيفية استخدام الآخرين من المجتمع لـ Grip.
هل تريد مشاركة الخاصة بك؟ قُل مرحبًاjoeyespo أو أرسل طلب سحب.
$ git clone https://github.com/YOUR_USERNAME/YOUR_REPOSITORY.wiki.git
$ cd YOUR_REPOSITORY.wiki
$ grip
بقلم جوشوا جورنو.
أدخل الدليل:
$ cd YOUR_DIR
$ export GRIPURL= $( pwd )
قم بتضمين جميع الأصول عن طريق تعيين متغير التكوين CACHE_DIRECTORY
:
$ echo " CACHE_DIRECTORY = ' $( pwd ) /assets' " >> ~ /.grip/settings.py
قم بتصدير جميع ملفات Markdown الخاصة بك باستخدام Grip واستبدل مسارات الأصول المطلقة بالمسارات النسبية:
$ for f in * .md ; do grip --export $f --no-inline ; done
$ for f in * .html ; do sed -i ' ' " s? $GRIPURL /??g " $f ; done
يمكنك اختياريًا ضغط مجموعة ملفات HTML إلى docs.tgz
باستخدام:
$ tar -czvf docs.tgz ` ls | grep [ . ]html$ ` assets
هل تبحث عن حل عبر الأنظمة الأساسية؟ إليك نص بايثون مكافئ.
بقلم ماثيو ر. تانوجاجا.
لتخصيص Grip، أنشئ ~/.grip/settings.py
، ثم أضف واحدًا أو أكثر من المتغيرات التالية:
HOST
: المضيف الذي سيتم استخدامه عندما لا يتم توفيره كوسيطة CLI، localhost
افتراضيًاPORT
: المنفذ الذي سيتم استخدامه عندما لا يتم توفيره كوسيطة CLI، 6419
بشكل افتراضيDEBUG
: لتحديد ما إذا كان سيتم استخدام مصحح أخطاء Flask عند حدوث خطأ، يكون False
افتراضيًاDEBUG_GRIP
: يطبع معلومات موسعة عند حدوث خطأ، False
افتراضيًاAPI_URL
: عنوان URL الأساسي لواجهة برمجة تطبيقات github، على سبيل المثال مثيل Github Enterprise. https://api.github.com
بشكل افتراضيCACHE_DIRECTORY
: الدليل، المتعلق بـ ~/.grip
، لوضع الأصول المخزنة مؤقتًا (يتم تشغيل هذا من خلال عامل التصفية التالي: CACHE_DIRECTORY.format(version=__version__)
)، 'cache-{version}'
افتراضيًاAUTOREFRESH
: ما إذا كان سيتم تحديث محتوى الملف التمهيدي تلقائيًا عندما يتغير الملف، True
بشكل افتراضيQUIET
: لا تطبع معلومات موسعة، False
افتراضيًاSTYLE_URLS
: عناوين URL الإضافية التي ستتم إضافتها إلى الصفحة المعروضة، []
افتراضيًاUSERNAME
: اسم المستخدم الذي سيتم استخدامه عندما لا يتم توفيره كوسيطة CLI، None
بشكل افتراضيPASSWORD
: كلمة المرور أو رمز الوصول الشخصي الذي سيتم استخدامه عند عدم توفيره كوسيطة CLI ( يرجى عدم حفظ كلمات المرور الخاصة بك هنا. بدلاً من ذلك، استخدم رمز وصول أو قم بإسقاط هذا الرمز للحصول على كلمة المرور الخاصة بك من مدير كلمات المرور)، None
بشكل افتراضي لاحظ أن هذا ملف بايثون. إذا رأيت 'X' is not defined
، فربما تكون قد تجاهلت بعض علامات الاقتباس. على سبيل المثال:
USERNAME = 'your-username'
PASSWORD = 'your-personal-access-token'
GRIPHOME
: حدد موقع settings.py
البديل، ~/.grip
افتراضيًاGRIPURL
: عنوان URL لخادم Grip، /__/grip
بشكل افتراضي هذا الملف عبارة عن برنامج نصي عادي لـ Python، لذا يمكنك إضافة المزيد من التكوينات المتقدمة.
على سبيل المثال، لقراءة إعداد من البيئة وتوفير قيمة افتراضية عندما لا يتم تعيينه:
PORT = os . environ . get ( 'GRIP_PORT' , 8080 )
يمكنك الوصول إلى واجهة برمجة التطبيقات مباشرة باستخدام Python، واستخدامها في مشاريعك الخاصة:
from grip import serve
serve ( port = 8080 )
* Running on http : // localhost : 8080 /
تشغيل الرئيسي مباشرة:
from grip import main
main ( argv = [ '-b' , '8080' ])
* Running on http : // localhost : 8080 /
أو قم بالوصول إلى تطبيق Flask الأساسي لمزيد من المرونة:
from grip import create_app
grip_app = create_app ( user_content = True )
# Use in your own app
يقوم بتشغيل خادم محلي ويعرض الملف التمهيدي الموجود في path
عند زيارته في المتصفح.
serve ( path = None , host = None , port = None , user_content = False , context = None , username = None , password = None , render_offline = False , render_wide = False , render_inline = False , api_url = None , title = None , autorefresh = True , browser = False , grip_class = None )
path
: اسم الملف المطلوب عرضه، أو الدليل الذي يحتوي على الملف التمهيدي الخاص بك، مع تحديد دليل العمل الحالي بشكل افتراضيhost
: المضيف الذي سيتم الاستماع إليه، افتراضيًا لمتغير تكوين HOSTport
: المنفذ الذي سيتم الاستماع إليه، والذي يتم ضبطه افتراضيًا على متغير تكوين PORTuser_content
: ما إذا كان سيتم عرض مستند كمحتوى مستخدم مثل تعليقات المستخدم أو مشكلاتهcontext
: سياق المشروع الذي سيتم استخدامه عندما يكون user_content
صحيحًا، والذي يأخذ شكل username/project
username
: المستخدم للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتpassword
: كلمة المرور للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتrender_offline
: ما إذا كان سيتم العرض محليًا باستخدام Python-Markdown (ملاحظة: هذا عمل قيد التقدم)render_wide
: تحديد ما إذا كان سيتم عرض صفحة واسعة أم False
خطأ افتراضيًا (ليس لهذا أي تأثير عند استخدامه مع user_content
)render_inline
: ما إذا كان سيتم تضمين الأنماط داخل ملف HTMLapi_url
: عنوان URL أساسي مختلف لواجهة برمجة تطبيقات github، على سبيل المثال، عنوان URL الخاص بمثيل Github Enterprise. الافتراضي هو واجهة برمجة التطبيقات العامة https://api.github.com.title
: عنوان الصفحة، مشتق من path
افتراضيًاautorefresh
: يقوم بتحديث المحتوى المقدم تلقائيًا عندما يتغير الملف التمهيدي، True
افتراضيًاbrowser
: افتح علامة تبويب في المتصفح بعد بدء تشغيل الخادم. False
افتراضيًاgrip_class
: استخدم فئة Grip المخصصة يكتب الملف التمهيدي المحدد إلى ملف HTML مع تضمين الأنماط والأصول.
export ( path = None , user_content = False , context = None , username = None , password = None , render_offline = False , render_wide = False , render_inline = True , out_filename = None , api_url = None , title = None , quiet = None , theme = 'light' , grip_class = None )
path
: اسم الملف المطلوب عرضه، أو الدليل الذي يحتوي على الملف التمهيدي الخاص بك، مع تحديد دليل العمل الحالي بشكل افتراضيuser_content
: ما إذا كان سيتم عرض مستند كمحتوى مستخدم مثل تعليقات المستخدم أو مشكلاتهcontext
: سياق المشروع الذي سيتم استخدامه عندما يكون user_content
صحيحًا، والذي يأخذ شكل username/project
username
: المستخدم للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتpassword
: كلمة المرور للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتrender_offline
: ما إذا كان سيتم العرض محليًا باستخدام Python-Markdown (ملاحظة: هذا عمل قيد التقدم)render_wide
: تحديد ما إذا كان سيتم عرض صفحة واسعة أم False
خطأ افتراضيًا (ليس لهذا أي تأثير عند استخدامه مع user_content
)render_inline
: تحديد ما إذا كان سيتم تضمين الأنماط في ملف HTML (ملاحظة: على عكس وظائف واجهة برمجة التطبيقات الأخرى، يكون هذا الإعداد الافتراضي True
)out_filename
: اسم الملف المراد الكتابة إليه، .html
بشكل افتراضيapi_url
: عنوان URL أساسي مختلف لواجهة برمجة تطبيقات github، على سبيل المثال، عنوان URL الخاص بمثيل Github Enterprise. الافتراضي هو واجهة برمجة التطبيقات العامة https://api.github.com.title
: عنوان الصفحة، مشتق من path
افتراضيًاquiet
: لا تطبع إلى المحطةtheme
: سمة لعرض ملف تخفيض السعر (الوضع الفاتح أو الوضع المظلم). خيارات صالحة ("خفيف"، "داكن"). الافتراضي: "الضوء".grip_class
: استخدم فئة Grip المخصصة ينشئ تطبيق Flask الذي يمكنك استخدامه لعرض ملفات التمهيدي وتقديمها. هذا هو نفس التطبيق الذي يستخدمه serve
export
وتهيئة ذاكرة التخزين المؤقت، باستخدام الأنماط المخزنة مؤقتًا عند توفرها.
create_app ( path = None , user_content = False , context = None , username = None , password = None , render_offline = False , render_wide = False , render_inline = False , api_url = None , title = None , text = None , grip_class = None )
path
: اسم الملف المطلوب عرضه، أو الدليل الذي يحتوي على الملف التمهيدي الخاص بك، مع تحديد دليل العمل الحالي بشكل افتراضيuser_content
: ما إذا كان سيتم عرض مستند كمحتوى مستخدم مثل تعليقات المستخدم أو مشكلاتهcontext
: سياق المشروع الذي سيتم استخدامه عندما يكون user_content
صحيحًا، والذي يأخذ شكل username/project
username
: المستخدم للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتpassword
: كلمة المرور للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتrender_offline
: ما إذا كان سيتم العرض محليًا باستخدام Python-Markdown (ملاحظة: هذا عمل قيد التقدم)render_wide
: تحديد ما إذا كان سيتم عرض صفحة واسعة أم False
خطأ افتراضيًا (ليس لهذا أي تأثير عند استخدامه مع user_content
)render_inline
: ما إذا كان سيتم تضمين الأنماط داخل ملف HTMLapi_url
: عنوان URL أساسي مختلف لواجهة برمجة تطبيقات github، على سبيل المثال، عنوان URL الخاص بمثيل Github Enterprise. الافتراضي هو واجهة برمجة التطبيقات العامة https://api.github.com.title
: عنوان الصفحة، مشتق من path
افتراضيًاtext
: سلسلة أو دفق من نص Markdown لعرضه بدلاً من تحميله من path
(ملاحظة: يمكن استخدام path
لتعيين عنوان الصفحة)grip_class
: استخدم فئة Grip المخصصة يعرض التطبيق الذي تم إنشاؤه بواسطة create_app
ويعيد HTML الذي سيظهر عادةً عند زيارة هذا المسار.
render_app ( app , route = '/' )
app
: تطبيق القارورة لتقديمroute
: المسار الذي سيتم عرضه، '/' بشكل افتراضي يعرض نص تخفيض السعر المحدد دون التخزين المؤقت.
render_content ( text , user_content = False , context = None , username = None , password = None , render_offline = False , api_url = None , title = None )
text
: النص Markdown المطلوب عرضهuser_content
: ما إذا كان سيتم عرض مستند كمحتوى مستخدم مثل تعليقات المستخدم أو مشكلاتهcontext
: سياق المشروع الذي سيتم استخدامه عندما يكون user_content
صحيحًا، والذي يأخذ شكل username/project
username
: المستخدم للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتpassword
: كلمة المرور للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتrender_offline
: ما إذا كان سيتم العرض محليًا باستخدام Python-Markdown (ملاحظة: هذا عمل قيد التقدم)api_url
: عنوان URL أساسي مختلف لواجهة برمجة تطبيقات github، على سبيل المثال، عنوان URL الخاص بمثيل Github Enterprise. يعد هذا مطلوبًا عند عدم استخدام العارض غير المتصل بالإنترنت.title
: عنوان الصفحة، مشتق من path
افتراضيًا يعرض العلامة من المسار أو النص المحدد، دون تخزين مؤقت، ويعيد صفحة HTML تشبه عرض GitHub التمهيدي.
render_page ( path = None , user_content = False , context = None , username = None , password = None , render_offline = False , render_wide = False , render_inline = False , api_url = None , title = None , text = None , quiet = None , theme = 'light' , grip_class = None )
path
: المسار الذي سيتم استخدامه لعنوان الصفحة، مع عرض 'README.md'
في حالة عدم وجودهuser_content
: ما إذا كان سيتم عرض مستند كمحتوى مستخدم مثل تعليقات المستخدم أو مشكلاتهcontext
: سياق المشروع الذي سيتم استخدامه عندما يكون user_content
صحيحًا، والذي يأخذ شكل username/project
username
: المستخدم للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتpassword
: كلمة المرور للمصادقة مع GitHub لتوسيع حد واجهة برمجة التطبيقاتrender_offline
: ما إذا كان سيتم العرض دون الاتصال بالإنترنت باستخدام Python-Markdown (ملاحظة: هذا عمل قيد التقدم)render_wide
: تحديد ما إذا كان سيتم عرض صفحة واسعة أم False
خطأ افتراضيًا (ليس لهذا أي تأثير عند استخدامه مع user_content
)render_inline
: ما إذا كان سيتم تضمين الأنماط داخل ملف HTMLapi_url
: عنوان URL أساسي مختلف لواجهة برمجة تطبيقات github، على سبيل المثال، عنوان URL الخاص بمثيل Github Enterprise. الافتراضي هو واجهة برمجة التطبيقات العامة https://api.github.com.title
: عنوان الصفحة، مشتق من path
افتراضيًاtext
: سلسلة أو دفق من نص Markdown لعرضه بدلاً من تحميله من path
(ملاحظة: يمكن استخدام path
لتعيين عنوان الصفحة)quiet
: لا تطبع إلى المحطةtheme
: سمة لعرض ملف تخفيض السعر (الوضع الفاتح أو الوضع المظلم). خيارات صالحة ("خفيف"، "داكن"). الافتراضي: "الضوء".grip_class
: استخدم فئة Grip المخصصة مسح الأنماط والأصول المخزنة مؤقتًا.
clear_cache ( grip_class = None )
يتم تشغيل Grip باستخدام الوسائط المحددة.
main ( argv = None , force_utf8 = True )
argv
: الوسائط التي سيتم تشغيلها، sys.argv[1:]
افتراضيًاforce_utf8
: يضبط الترميز الافتراضي على utf-8
في مثيل Python الحالي. ليس لهذا أي تأثير على Python 3 حيث يتم التعامل مع Unicode افتراضيًاتطبيق Flask يمكنه تقديم ملف أو دليل يحتوي على ملف README.
Grip ( source = None , auth = None , renderer = None , assets = None , render_wide = None , render_inline = None , title = None , autorefresh = None , quiet = None , theme = 'light' , grip_url = None , static_url_path = None , instance_path = None , ** kwargs )
إرجاع العارض الافتراضي باستخدام التكوين الحالي. يتم استخدام هذا فقط إذا تم تعيين العارض على لا شيء في المُنشئ.
Grip . default_renderer ()
إرجاع مدير الأصول الافتراضي باستخدام التكوين الحالي. يتم استخدام هذا فقط إذا تم تعيين مدير الأصول على لا شيء في المُنشئ.
Grip . default_asset_manager ()
يضيف أنواع محتوى التطبيق/x-font-woff والتطبيق/octet-stream إذا كانت مفقودة. تجاوز لإضافة أنواع محتوى إضافية عند التهيئة.
Grip . add_content_types ()
مسح الأصول التي تم تنزيلها.
Grip . clear_cache ()
يعرض التطبيق ويعيد كود HTML الموحد الذي سيظهر عادةً عند الزيارة في المتصفح.
Grip . render ( route = None )
route
: الطريق إلى العرض، /
افتراضيًا يبدأ الخادم بتقديم ملف README. هذا يستدعي Flask.run داخليًا.
Grip . run ( host = None , port = None , debug = None , use_reloader = None , open_browser = False )
host
: اسم المضيف الذي سيتم الاستماع إليه. اضبط هذا على '0.0.0.0'
ليكون الخادم متاحًا خارجيًا أيضًا، 'localhost'
افتراضيًاport
: منفذ خادم الويب. الافتراضي هو 6419
debug
: إذا تم توفيره، قم بتمكين وضع التصحيح أو تعطيله. راجع Flask.debug.use_reloader
: هل يجب على الخادم إعادة تشغيل عملية بايثون تلقائيًا إذا تم تغيير الوحدات؟ False
بشكل افتراضي ما لم يتم تحديد الإعداد DEBUG_GRIP
.open_browser
: يفتح المتصفح على العنوان عند بدء تشغيل الخادم يتم رفعه عند استدعاء Grip.run
بينما يكون الخادم قيد التشغيل بالفعل.
AlreadyRunningError ()
يتم رفعه عندما لا يمكن العثور على الملف التمهيدي المحدد.
ReadmeNotFoundError ( path = None , message = None )
يدير أصول النمط والخط المقدمة مع صفحات الملف التمهيدي. هذه فئة أساسية مجردة.
ReadmeAssetManager ( cache_path , style_urls = None )
يدير أصول النمط والخط المقدمة مع صفحات الملف التمهيدي. قم بتعيين مسار التخزين المؤقت على لا شيء لتعطيل التخزين المؤقت.
يقرأ محتوى المستند التمهيدي من مسار فرعي لعنوان URL. هذه فئة أساسية مجردة.
ReadmeReader ()
يقرأ الملفات التمهيدية من مسارات URL الفرعية.
DirectoryReader ( path = None , silent = False )
يقرأ محتوى الملف التمهيدي من سلسلة Unicode المتوفرة.
TextReader ( text , display_filename = None )
يقرأ النص التمهيدي من STDIN.
StdinReader ( display_filename = None )
يعرض الملف التمهيدي. هذه فئة أساسية مجردة.
ReadmeRenderer ( user_content = None , context = None )
يعرض المستند التمهيدي المحدد باستخدام GitHub Markdown API.
GitHubRenderer ( user_content = None , context = None , api_url = None , raw = None )
يعرض المستند التمهيدي المحدد محليًا باستخدام لغة Python النقية. ملحوظة: هذه ميزة غير مكتملة حاليًا.
OfflineRenderer ( user_content = None , context = None )
عناوين ملفات Markdown الشائعة على GitHub.
SUPPORTED_TITLES = [ 'README' , 'Home' ]
filename
: ملف UTF-8 للقراءة. الامتدادات المدعومة، كما هو محدد بواسطة GitHub.
SUPPORTED_EXTENSIONS = [ '.md' , '.markdown' ]
يحتوي هذا الثابت على الأسماء التي يبحث عنها Grip عند عدم توفير أي ملف.
DEFAULT_FILENAMES = [ title + ext
for title in SUPPORTED_TITLES
for ext in SUPPORTED_EXTENSIONS ]
يحتوي هذا الثابت على اسم الملف التمهيدي الافتراضي، وهو:
DEFAULT_FILENAME = DEFAULT_FILENAMES [ 0 ] # README.md
يشير هذا الثابت إلى القيمة الافتراضية إذا لم يتم تحديد متغير البيئة GRIPHOME
.
DEFAULT_GRIPHOME = '~/.grip'
عنوان URL الافتراضي لخادم Grip وجميع أصوله:
DEFAULT_GRIPURL = '/__/grip'
القيمة الافتراضية app_url:
DEFAULT_API_URL = 'https://api.github.com'
تثبيت الحزمة ومتطلبات الاختبار:
$ pip install -e .[tests]
إجراء الاختبارات باستخدام pytest:
$ pytest
أو لإعادة تشغيل الاختبارات أثناء إجراء التغييرات، استخدم pytest-watch:
$ ptw
إذا كنت تواجه مشكلة مع Grip، فمن المحتمل أن الافتراض الذي تم وضعه حول واجهة برمجة تطبيقات GitHub قد تم كسره. للتحقق من ذلك، قم بتشغيل:
$ pytest -m assumption
نظرًا لأن الافتراضات الخارجية تعتمد على الاتصال بالإنترنت، فقد ترغب في تخطيها عند التطوير محليًا. قم بتشديد الدورة بشكل أكبر من خلال التوقف عند الفشل الأول باستخدام -x
:
$ pytest -xm " not assumption "
أو مع pytest-watch:
$ ptw -- -xm " not assumption "
إذا كانت علاقاتك العامة تنتظر بعض الوقت، فلا تتردد في مراسلتي على تويتر.
هل تستخدم هذا البرنامج كثيرًا؟ ؟