يجب أن يعمل Markdown أيضًا، ولكن أعتقد أن استخدام <strong> يمكن أن يتجاوز المزيد من الحالات الشاذة. ضع في اعتبارك أن خلط HTML و Markdown له بعض المشاكل أيضًا… إليك حل Markdown بسيط:
**multiline\
\
text**
أنا فضولي، من أي إصدار من phpBB تقوم بالاستيراد؟ تحويل BBCode إلى Markdown أفضل بكثير للإصدار 3.2 مقارنة بالإصدارات السابقة. من الناحية المثالية، لا يجب أن ترى [b] في المشاركات المستوردة بعد الآن.
لقد فكرت في ذلك في البداية، ولكن… أنا أكره الأمور المتعلقة بالكمبيوتر
لا أعرف phpBB جيدًا ولم أرغب في التعامل مع أي خطأ قد يحدث أثناء التحديث من إصدار قديم جدًا.
نظرًا لأن برنامج نصي لترحيل Discourse متوافق مع phpBB 3.0، فقد اخترت عدم ترقية phpBB…
ربما تم تجنب بعض مشاكل bbcode التي واجهتها مع ترقية phpBB. أشياء مثل القوائم المتداخلة، [b] مع أسطر جديدة، إلخ…
ولكن بما أنني بدأت العمل على الاستيراد في ديسمبر، فقد اقتربت من الحصول على استيراد يعمل بشكل جيد (من الناحية المثالية، سيكون المنتدى الجديد عبر الإنترنت ربما في غضون أسبوعين…) ولست متأكدًا من أنني أرغب في تجربة ترقية phpBB الآن، خاصة إذا كان عليّ مراجعة جميع إصلاحات الاستيراد المخصصة التي قمت بها لمعرفة ما إذا كان مستورد phpBB 3.2 يتعامل مع هذه الأشياء بشكل أفضل . سيكون ذلك مستهلكًا للوقت.
ومع ذلك… يمكنني تجربة الأشياء في عطلة نهاية الأسبوع هذه ~~~~ بعد الظهر إذا كنت أشعر بالملل بما فيه الكفاية!
تعديل: لقد حاولت؛ الانتقال إلى خادم جديد ثم الترقية إلى pbpBB 3.2 يمثل مشكلة. مشاكل HTTPS. مشاكل التخزين المؤقت. مشاكل أخرى. إجراءات ملتوية ومحبطة. ينصح الدليل الرسمي باستخدام أدوات تتطلب إصدار PHP قديمًا (مرحبًا، PHP 5، وقت طويل لم أره…). على ما يبدو، أنا أحيانًا أشعر بالملل ولكن لست مجنونًا - ليس بما يكفي للقيام بهذا النوع من الأشياء على الأقل.
غيرهارد! أنت مضلل! الترقية إلى 3.2 ليست خدمة كبيرة!
ولكن كفى حديثًا عن phpBB نفسه… وامدح الترقية بنقرة واحدة من Discourse.
أحاول ترحيل مستخدمي ووردبريس إلى ديسكورس. تمكنت من اتباع التعليمات للاتصال بقاعدة بيانات ووردبريس الخاصة بنا واستيراد المستخدمين في حاوية دوكر. أردت التأكد من عدم إرسال أي رسائل بريد إلكتروني أثناء أو بعد الترحيل لأننا نستخدم إضافة ووردبريس SSO.
لقد قمت بوضع بادئة للبريد الإلكتروني بـ “import_” حتى لا يتلقوا أي رسائل في حال كانت هناك مهام خلفية ترسل تأكيد البريد الإلكتروني بعد اكتمال الترحيل.
أرى أن هناك عمود last_emailed_at تم تعيينه بعد الترحيل:
أعلم أنه تم تعيينه بواسطة opts[:last_emailed_at] = opts.fetch(:last_emailed_at, Time.now) في ImportScripts::Base::create_user()
هل هناك وظيفة مشابهة لـ admin.email_tokens.update_all(confirmed: true) المستخدمة في ImportScripts::Base::create_admin حيث يتم تأكيد البريد الإلكتروني؟
لا أرى أي سجل يوضح إرسال رسائل البريد الإلكتروني. هل تم إرسال رسائل بريد إلكتروني بالفعل؟ هل سيحاول ديسكورس إرسال رسائل بريد إلكتروني بعد تغيير البريد الإلكتروني إلى عناوين صالحة؟
هذا خارج الموضوع، بما أن هذا الموضوع يتعلق بترحيل phpBB3…
أوصي باستخدام نطاق .invalid إذا كنت تريد التأكد من أن بعض المستخدمين لن يتلقوا أي رسائل بريد إلكتروني أبدًا (على سبيل المثال، foo@mywpimport.invalid). ولكن، إذا كنت تريد فقط تعطيل رسائل البريد الإلكتروني الصادرة حتى تكون جاهزًا، فإن تعيين إعداد الموقع disable_emails على “yes” أو “non-staff” هو خيارك الأفضل!
يتم تعطيل رسائل البريد الإلكتروني الصادرة تلقائيًا أثناء الاستيراد. من المحتمل أن تكون قيم السمة last_emailed_at من Discourse محاولة إرسال بريد إلكتروني، قبل أن تكتشف أنه غير مسموح لها بذلك.
سيحاول Discourse بالتأكيد إرسال رسائل بريد إلكتروني بعد الترحيل.
شكرًا، لقد جربت أولاً سلسلة فارغة لحقل البريد الإلكتروني وقامت الفئة الأساسية ImportScript بإنشاء رسائل بريد إلكتروني وهمية بنطاق غير صالح. لديهم أيضًا السمة last_emailed_at مضبوطة.
إذًا ما تقوله هو بمجرد أن أقوم بتصحيح البريد الإلكتروني من قاعدة البيانات، ستحاول Discourse إرسال البريد الإلكتروني؟ لكن تسجيل الدخول العادي المصادق عليه بواسطة WordPress لا يتطلب تأكيد البريد الإلكتروني. لا توجد طريقة لتجاوز ذلك باستخدام ImportScript؟
أواجه هذه المشكلة في العديد من المشاركات. هل لديك أي فكرة لإصلاح ذلك بشكل شامل؟
مثل العديد من المنتديات القديمة، فإن روابط Imageshack القديمة معطلة منذ فترة طويلة، وإلى الأبد. ولكن بعض الروابط تعرض الآن علم أوكرانيا بدلاً من لا شيء:
كيف ستتعامل مع هذا السلوك؟
أنا منفتح على أي فكرة، ولكن لدى مسؤول المنتدى نسخة ثابتة للمنتدى بأكمله على قرص صلب قديم، حيث تكون معظم الصور القديمة صالحة (تم تنزيلها وتخزينها محليًا). أفكر في أنه في المستقبل قد أتمكن من إنشاء برنامج نصي يستبدل جميع روابط Imageshack “المعطلة” بالصور الصالحة من النسخة الثابتة. يبدو هذا صعبًا للغاية، ولكن لهذا السبب، لست متأكدًا من أنني أريد ببساطة إزالة جميع روابط Imageshack من المنتدى عن طريق استبدالها بسلسلة فارغة أو شيء من هذا القبيل.
هل فاصل الأسطر هو سبب المشكلة؟ هذا ما أتوقعه. ستحتاج إلى إعادة تعيين أكواد BBC هذه لإزالة فاصل الأسطر. Replace a string in all posts يجب أن يكون مفيدًا.
ربما تحويلها إلى تعليقات HTML في الوقت الحالي؟ يمكنك لاحقًا استبدالها بالصور المخزنة.
It was in safe-mode with all theme and plugins disabled, but this code block mentions on the first line: plugins/discourse-chat/lib/guardian_extensions.rb:71:in 'can_rebake?'
Warning:
Failed to handle exception in exception app middleware : ArgumentError : wrong number of arguments (given 0, expected 1)
Do this information help?
I’m doing what I can to try to repair these posts, but I’m starting to believe this has something to do with Discourse itself and not something on my side maybe?
edit: see the automatically linked post below.
Issue resolved:
Now I just have to rebake all my posts.
Another edit:
Could have worked for sure, and will for images that still have their old plain URL, but:
Since all the old Imageshack broken links were replaced by valid images displaying a Ukraine flag by Imageshack itself, they were automatically uploaded to Discourse, changing their URL to a markdown local image link.
Fortunately, all these flags were uploaded to Discourse with identical links ( in my case - excellent Discourse behavior by the way ), which means that they will be very easy to target and remove/replace with something else.
I’m just writing this to inform people that would encounter the same issue as me after a migration.
استخدام GREATEST(..., 0) يصلح الأمر. على الأقل، لا يتعطل.
SELECT o.poll_option_id, o.poll_option_text, o.poll_option_total AS total_votes,
GREATEST(CAST(o.poll_option_total AS SIGNED) - (
SELECT COUNT(DISTINCT v.vote_user_id)
FROM #{@table_prefix}poll_votes v
JOIN #{@table_prefix}users u ON (v.vote_user_id = u.user_id)
JOIN #{@table_prefix}topics t ON (v.topic_id = t.topic_id)
WHERE v.poll_option_id = o.poll_option_id AND v.topic_id = o.topic_id
),0) AS anonymous_votes
FROM #{@table_prefix}poll_options o
WHERE o.topic_id = #{topic_id}
ORDER BY o.poll_option_id
إذا كان يجب عليّ بدء سلسلة محادثات جديدة لهذا، فأنا أعتذر مقدمًا.
لدي منتدى phpBB في مجلد فرعي:
thedomain.com/forum/
أخطط لاستخدام البرنامج النصي للاستيراد للترحيل من phpBB إلى Discourse في نطاق فرعي؛ أي:
forum.thedomain.com
لذلك، يبدو أن كل ما سأحتاج إلى القيام به - للنطاق والروابط الدائمة - هو تعيين ما يلي في settings.yml باستخدام HTTPS على الموقع الجديد:
site_prefix:
# this is needed for rewriting internal links in posts
original: thdomain.com/forum # without http(s)://
new: https://forum.thedomain.com # with http:// or https://
# Enable this, if you want to redirect old forum links to the the new locations.
permalinks:
categories: true # redirects /viewforum.php?f=1 to /c/category-name
topics: true # redirects /viewtopic.php?f=6&t=43 to /t/topic-name/81
posts: true # redirects /viewtopic.php?p=2455#p2455 to /t/topic-name/81/4
# Append a prefix to each type of link, e.g. 'forum' to redirect /forum/viewtopic.php?f=6&t=43 to /t/topic-name/81
# Leave it empty if your forum wasn't installed in a subfolder.
prefix: forum
وبعد ذلك، على الخادم الأصلي، الذي يعمل بنظام Apache، في ملف .htaccess مع تمكين RewriteEngine بالفعل، سأحتاج إلى:
إذا كان الأمر بهذه السهولة حقًا، فهذا البرنامج النصي رائع!
لدي بعض الأسئلة الإضافية:
تم تعيين “المنشورات” على “false” في إعدادات الروابط الدائمة. أعرف أن هناك روابط خارجية لمشاركات محددة، لذا أود أن تكون لها روابط دائمة أيضًا. هل هناك أي سبب لعدم تعيينها على “true”؛ على سبيل المثال، الأداء أو شيء من هذا القبيل؟
هل البادئة “forum” مقبولة بدون علامات اقتباس فردية، أم يجب اقتباسها كما في التعليق؟
لقد واجهت عقبة أثناء التحضير لهذا الاستيراد.
منتدى phpBB الذي أخطط لترحيله يستخدم BBcode مخصصًا ينشئ علامات img HTML للصور المخزنة في مجلدات حسب السنة في دليل خارج phpBB، ولكن ضمن نفس حساب المستخدم على الخادم. يأخذ BBcode التنسيق التالي:
يمثل {NUMBER1} و {NUMBER2} أعدادًا صحيحة لعرض وارتفاع الصورة على التوالي. يمثل {NUMBER3} عددًا صحيحًا لمجلد السنة الذي توجد فيه الصورة، ويمثل {SIMPLETEXT} اسم ملف الصورة. يبدو استبدال HTML لـ BBcode كالتالي:
ما أحتاج إلى معرفته هو كيفية التعامل مع هذا BBcode المخصص مع برنامج الترحيل، سواء لتحويل BBcode المخصص إلى شيء يمكن لـ Discourse استخدامه، أو لمعرفة مكان وضع ملفات الصور في شجرة الملفات للاستيراد.
لقد ألقيت نظرة على Ruby-BBcode-to-MD، والذي يقول إنه “يسمح بتوسيع هذه المجموعة بسهولة بعلامات مخصصة عن طريق تحرير tags.rb”. ألقيت نظرة على tags.rb، ولكن نظرًا لأن هذه هي المرة الأولى التي أنظر فيها إلى كود Ruby، فأنا في حيرة من أمري بشأن كيفية التعامل مع BBcode المخصص الخاص بي نظرًا لأن تنسيقه المفصول بعلامة الأنبوب يختلف عن أي من BBcodes الرسمية التي يتضمنها ملف tags.rb والتي ربما استخدمتها كدليل.
ليس لدي templates/import/phpbb3.template.yml محملًا بعد، لذلك أخمن أن هذا سيضيف جوهرة Ruby BBcode إلى MD؟
لذا لدي أسئلة:
ما هي أفضل طريقة للتعامل مع هذا BBcode المخصص للترحيل؟ هل تحرير ملف tags.rb هو الحل؟ (إذا كان الأمر كذلك، فسأقوم ببعض الأبحاث حول برمجة Ruby وربما التعبيرات العادية بعد ذلك، ولكن أي تلميحات ستكون موضع ترحيب!)
ما هو أفضل مكان لوضع ملفات الصور لهذه المعرض في شجرة ملفات الاستيراد بحيث يتم حفظها في Discourse وتظهر في المشاركات المستوردة؟