طُوّرت هذه الميزة بواسطة ayaka-notes/ayakaleaf-pro. وهي متاحة بدءًا من الإصدار v6.4.0 وما بعده. لا تزال في مرحلة تجريبية (beta). نحتاج إلى ملاحظاتك إذا واجهت أي مشكلة.
Apps/<your Dropbox app>/، وتُرسَل التغييرات التي تُجرى في Overleaf إلى Dropbox، وتعود التغييرات التي تُجرى في Dropbox إلى Overleaf.
إعداد المزامنة مع Dropbox
أنشئ تطبيقًا في Dropbox App Console، بعد تسجيل الدخول بحساب Dropbox الذي سيملك التطبيق:- انقر على Create app، ثم املأ الصفحة:
- 1. Choose an API: اختر Scoped access.
- 2. Choose the type of access you need: اختر App folder، وليس Full Dropbox. لا يزامن Overleaf إلا داخل مجلد التطبيق.
- 3. Name your app: أدخل اسمًا، مثل
Overleaf. يجب أن يكون فريدًا على Dropbox. تظهر مشاريع كل مستخدم فيApps/<name of your app>/في Dropbox الخاص به، وهذا الاسم هوDROPBOX_APP_NAMEأدناه. - انقر على Create app. يُفتح التطبيق على علامة التبويب Settings.
- في علامة التبويب Permissions، ضمن Files and folders، حدّد
files.metadata.writeوfiles.content.writeوfiles.content.read. يُحدَّدaccount_info.readوfiles.metadata.readمعها ولا يمكن إلغاء تحديدهما. لا تحدّد أي صلاحيات أخرى. - انقر على Submit في الشريط أسفل علامة التبويب Permissions. بدون Submit لا تُحفظ الصلاحيات، ويرفض Dropbox مزامنة الملفات للمستخدمين الذين يربطون حساباتهم.

Dropbox App Console: الصلاحيات التي يجب تحديدها، محفوظة عبر Submit
- في علامة التبويب Settings، ضمن OAuth 2، أدخل
${OVERLEAF_SITE_URL}/user/dropbox/oauth/callbackفي Redirect URIs، ثم انقر على Add. لا تكفي كتابة العنوان: فهو لا يُحفظ إلا بعد ظهوره في القائمة فوق الحقل.

Dropbox App Console: أدخل عنوان إعادة التوجيه، ثم انقر على Add
- في علامة التبويب Settings، ضمن Webhooks، أدخل
${OVERLEAF_SITE_URL}/dropbox/webhookفي Webhook URIs، ثم انقر على Add أيضًا. يستدعيه Dropbox فورًا للتحقق منه، لذا يجب أن يكون Overleaf قيد التشغيل مسبقًا بالإعدادات أدناه وأن يكون قابلًا للوصول من الإنترنت (راجع Webhook). تظهر حالته Enabled بمجرد نجاح التحقق.
config/variables.env
DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808. يجب أن يكون وكيلًا أماميًا قياسيًا من نوع HTTP/HTTPS، ويجب ألا يستخدم 127.0.0.1.
Webhook
يُبلغ Dropbox نظام Overleaf بالتغييرات التي تُجرى في Dropbox عبر webhook، لذا تظهر في Overleaf خلال ثوانٍ. يُرسَل الـ webhook إلى عنوان موقعك،${OVERLEAF_SITE_URL}/dropbox/webhook، ولا حاجة إلى منفذ إضافي، لكن يجب أن يتمكن Dropbox من الوصول إليه من الإنترنت. عند إضافته في App Console، يتحقق منه Dropbox فورًا.
بدون webhook، على سبيل المثال على خادم لا يستطيع Dropbox الوصول إليه، تظل التغييرات التي تُجرى في Overleaf تُرسَل إلى Dropbox، لكن التغييرات التي تُجرى في Dropbox لا تعود إلا عندما ينقر المستخدم على sync this project now في نافذة Dropbox في المحرر.
كيف تعمل المزامنة
- الربط: عندما يربط المستخدم حسابه على Dropbox، تُرسَل المشاريع التي يملكها إلى Dropbox. أما المشاريع المشتركة معه فتظهر في Dropbox مع تغييرها التالي.
- من Overleaf إلى Dropbox: تُرسَل الملفات الجديدة وعمليات إعادة التسمية والنقل والحذف وإعادة تسمية المشاريع فورًا. أما التعديلات في المحرر فتُرسَل بمجرد أن يحفظها Overleaf في مساحة التخزين الخاصة به، بعد بضع دقائق من مغادرة الجميع للمشروع. لإرسالها في وقت أبكر، انقر على sync this project now في نافذة Dropbox في المحرر (مرة واحدة كل دقيقة).
- من Dropbox إلى Overleaf: تُطبَّق الملفات الجديدة والمعدّلة والمجلدات الجديدة وعمليات الحذف في مجلد المشروع على المشروع. ويصبح المجلد الجديد في المستوى الأعلى من مجلد التطبيق مشروعًا جديدًا. ويؤدي حذف مجلد مشروع في Dropbox إلى وضع علامة “محذوف” على المشروع في Overleaf.
- التعارضات: عندما يتغيّر ملف في كلا المكانين في الوقت نفسه، يفوز التغيير الأخير. وقد يحتفظ Dropbox بالنسخة الأخرى كـ conflicted copy.
- المتعاونون: يحصل المتعاونون الذين يربطون حساباتهم على Dropbox على المشاريع المشتركة معهم. ويحصل المشاهدون ذوو صلاحية القراءة فقط والمراجعون على المشروع، لكن تغييراتهم في Dropbox لا تُزامَن عائدةً إلى Overleaf.
- الملفات المتجاهلة: تبقى الملفات التي لا يزامنها Overleaf، مثل مخرجات البناء (
.auxو.logو …) أو.DS_Storeأو بيئات Python الافتراضية، في Dropbox فقط.
أسئلة وأجوبة (Q&A)
لماذا لا يستطيع مستخدم ربط حسابه على Dropbox؟
لماذا لا يستطيع مستخدم ربط حسابه على Dropbox؟
- تُطابَق المشاريع مع مجلدات Dropbox حسب الاسم، لذا يُطلب من المستخدم الذي لديه مشروعان بالاسم نفسه إعادة تسمية أحدهما أولًا.
- لا يمكن ربط حساب Dropbox إلا بحساب Overleaf واحد.
لماذا أُلغي ربط حساب Dropbox؟
لماذا أُلغي ربط حساب Dropbox؟
الإجابة: يُلغي Overleaf ربط حساب Dropbox عندما يرفض Dropbox الرمز الخاص به (على سبيل المثال بعد أن يزيل المستخدم التطبيق في Dropbox)، أو عندما تمتلئ مساحة Dropbox، أو عندما يعلّق Dropbox الحساب. ويمكن للمستخدم ربطه مرة أخرى بمجرد حل المشكلة.
هل يمكنني إعادة تسمية مجلد مشروع في Dropbox؟
هل يمكنني إعادة تسمية مجلد مشروع في Dropbox؟
الإجابة: يُرجى إعادة تسمية المشروع في Overleaf بدلًا من ذلك. فبالنسبة إلى Overleaf، تؤدي إعادة تسمية المجلد في Dropbox إلى حذف مجلد المشروع وإنشاء مجلد جديد، لذا يوضع على المشروع القديم علامة “محذوف” ويُنشأ مشروع جديد من الملفات.

