Skip to main content
طُوّرت هذه الميزة بواسطة ayaka-notes/ayakaleaf-pro. وهي متاحة بدءًا من الإصدار v6.4.0 وما بعده. لا تزال في مرحلة تجريبية (beta). نحتاج إلى ملاحظاتك إذا واجهت أي مشكلة.
تُبقي المزامنة مع Dropbox مشاريع المستخدم متزامنة مع Dropbox الخاص به، كما هو الحال في Overleaf Cloud: بمجرد أن يربط المستخدم حسابه على Dropbox، يظهر كل مشروع من مشاريعه كمجلد في Apps/<your Dropbox app>/، وتُرسَل التغييرات التي تُجرى في Overleaf إلى Dropbox، وتعود التغييرات التي تُجرى في Dropbox إلى Overleaf.

إعداد المزامنة مع Dropbox

يجب عليك تفعيل git-bridge أولًا: فبدونه تُخفي إعدادات الحساب قسم مزامنة المشاريع.
config/overleaf.rc
أنشئ تطبيقًا في Dropbox App Console، بعد تسجيل الدخول بحساب Dropbox الذي سيملك التطبيق:
  1. انقر على 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.
  2. في علامة التبويب Permissions، ضمن Files and folders، حدّد files.metadata.write و files.content.write و files.content.read. يُحدَّد account_info.read و files.metadata.read معها ولا يمكن إلغاء تحديدهما. لا تحدّد أي صلاحيات أخرى.
  3. انقر على Submit في الشريط أسفل علامة التبويب Permissions. بدون Submit لا تُحفظ الصلاحيات، ويرفض Dropbox مزامنة الملفات للمستخدمين الذين يربطون حساباتهم.

Dropbox App Console: الصلاحيات التي يجب تحديدها، محفوظة عبر Submit

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

Dropbox App Console: أدخل عنوان إعادة التوجيه، ثم انقر على Add

  1. في علامة التبويب Settings، ضمن Webhooks، أدخل ${OVERLEAF_SITE_URL}/dropbox/webhook في Webhook URIs، ثم انقر على Add أيضًا. يستدعيه Dropbox فورًا للتحقق منه، لذا يجب أن يكون Overleaf قيد التشغيل مسبقًا بالإعدادات أدناه وأن يكون قابلًا للوصول من الإنترنت (راجع Webhook). تظهر حالته Enabled بمجرد نجاح التحقق.
انسخ App key و App secret (انقر على Show) من علامة التبويب Settings، ثم أضف الإعدادات التالية إلى ملفات متغيرات البيئة الخاصة بـ overleaf. يمكنك إضافة الـ webhook (الخطوة 5) بعد تشغيل Overleaf بهذه الإعدادات.
config/variables.env
  • قبل تكوين عنوان إعادة التوجيه (redirect URI) والـ webhook، تأكد من ضبط OVERLEAF_SITE_URL بشكل صحيح.
  • يثبّت Dropbox صلاحيات الرمز (token) عندما يربط المستخدم حسابه: ولا يؤدي إرسال الصلاحيات إلى تغيير الرموز الموجودة. يجب على المستخدمين الذين ربطوا حساباتهم قبل إرسال الصلاحيات، أو قبل أن تغيّرها، إلغاء ربط حسابهم على Dropbox وربطه مرة أخرى.
  • يكون التطبيق الجديد في حالة Development. إذا كان Development users في علامة التبويب Settings يعرض Only you، فلا يمكن ربط سوى حسابك على Dropbox: انقر على Enable additional users للسماح للمستخدمين الآخرين بربط حساباتهم. بعد ذلك يعرض عدد المستخدمين الذين ربطوا حساباتهم، مثل 1 / 500: يقبل تطبيق Development حتى 500 مستخدم كحد أقصى. لعدد أكبر من المستخدمين، انقر على Apply for production، وسيراجع Dropbox التطبيق.
إذا كنت موجودًا في منطقة ذات وصول مقيّد إلى الشبكة، فقد تحتاج إلى تكوين وكيل (proxy) للوصول إلى Dropbox. اضبط متغير البيئة التالي: 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 إلا بحساب Overleaf واحد.
الإجابة: يُلغي Overleaf ربط حساب Dropbox عندما يرفض Dropbox الرمز الخاص به (على سبيل المثال بعد أن يزيل المستخدم التطبيق في Dropbox)، أو عندما تمتلئ مساحة Dropbox، أو عندما يعلّق Dropbox الحساب. ويمكن للمستخدم ربطه مرة أخرى بمجرد حل المشكلة.
الإجابة: يُرجى إعادة تسمية المشروع في Overleaf بدلًا من ذلك. فبالنسبة إلى Overleaf، تؤدي إعادة تسمية المجلد في Dropbox إلى حذف مجلد المشروع وإنشاء مجلد جديد، لذا يوضع على المشروع القديم علامة “محذوف” ويُنشأ مشروع جديد من الملفات.
آخر تعديل في ١٧ أكتوبر ٢٠٢٦