هذه طريقة لعرض ملفات .grist
(جداول بيانات Grist) والتفاعل معها على مواقع الويب العادية، دون الحاجة إلى دعم خلفي خاص. الفكرة هنا هي أنه سيكون أمرًا رائعًا لإعداد التقارير إذا تمكنا من وضع جداول بيانات على موقع ويب كما نفعل مع ملفات PDF، مع خيارات تنسيق وتنقل رائعة وبدون الكثير من الضجة.
إذا كان بإمكانك تشغيل واجهة خلفية خاصة، فإن Grist-core هي الطريقة الأكثر اختبارًا في المعركة لاستضافة جداول بيانات Grist. ولأغراض عديدة، قد يكون تضمين Grist مناسبًا، حيث تقوم بتضمين جدول بيانات Grist من تثبيت Grist خارجي (مثل الخدمة المستضافة التي تقدمها Grist Labs). ولكن إذا لم تتمكن من استضافة بياناتك خارجيًا، ولا تريد تحمل العبء التشغيلي المتمثل في دعم تثبيت Grist الخاص بك، grist-static
يمنحك طريقة لعرض جداول بيانات Grist بسهولة على مواقع الويب العادية. مثل ملف PDF، سيتمكن الأشخاص من عرض جدول البيانات والتنقل فيه والبحث فيه. وسيكون بإمكانهم، بشكل أفضل من ملف PDF، تغيير التحديدات وتجربة تغيير الأرقام لمعرفة ما سيحدث. كل مشاهد لديه نسخته الخاصة، ولن يتمكن الآخرون من رؤية تغييراتهم أو تخزينها. سيكون هذا أيضًا طريقة قابلة للتطوير لعرض مستند Grist لملايين المستخدمين المتزامنين.
يعرض https://gristlabs.github.io/grist-static بعض الأمثلة على مستندات Grist المستضافة على صفحات GitHub:
في هذه الأيام، يمكن وضع ملفات PDF على موقع ويب، ويمكنك الارتباط بها مع توقع أن المتصفحات ستعرضها بشكل جيد. لا تتمتع المتصفحات بدعم أصلي لـ Grist [حتى الآن :-)] ولكن يمكنك إنشاء صفحة مجمعة صغيرة مثل هذا:
<!doctype html >
< html >
< head >
< meta charset =" utf8 " >
< script src =" https://grist-static.com/latest.js " > </ script >
</ head >
< body >
< script >
bootstrapGrist ( {
initialFile : 'investment-research.grist' ,
name : 'Investment Research' ,
} ) ;
</ script >
</ body >
</ html >
.grist
على الخادم الخاص بك بجانب ملف .html
هذا، وحفظه في الخيارات في bootstrapGrist
.initialData: 'path/to/data.csv'
لاستيراد ملف CSV إلى جدول جديد. في هذه الحالة، يكون initialFile
اختياريًا.initialContent
. يمكنك استخدامه لتمرير محتوى ملف CSV.elementId: 'element-id
لفتح Grist داخل عنصر في صفحتك.singlePage: true
لتخطيط صفحة واحدة أقل ازدحامًا. يستطيع Grist التعامل مع البيانات بتنسيقات متعددة، بما في ذلك ملف CSV. نظرًا لأن ملف CSV هو تنسيق شائع، ويظل التفاعل معه عبر الإنترنت عملاً روتينيًا، فقد قمنا بتجميع grist-static
في أداة مساعدة مبسطة بتنسيق csv-viewer.js
خصيصًا للعرض والفرز والتصفية وأي نسخ/لصق من ملف CSV، مباشرة في صفحة ويب.
ما عليك سوى إضافة العارض في منطقة head
لصفحة الويب:
< head >
< script src =" https://grist-static.com/csv-viewer.js " > </ script >
</ head >
ثم يمكنك إنشاء زر لفتح ملف CSV من عنوان URL:
< button data-grist-csv-open =" transactions.csv " > View CSV </ button >
يمكن أن يكون ملف CSV ملفًا، أو عنوان URL لبيانات CSV التي ينشئها موقعك للمستخدم ديناميكيًا.
إذا كنت تعمل باستخدام الروابط بدلاً من الأزرار، فإن نفس الطريقة تعمل:
< a data-grist-csv-open =" transactions.csv " href =" # " > View CSV </ a >
يمكنك بالطبع تصميم الأزرار والروابط كما يحلو لك.
يمكن أيضًا استخدام عارض CSV كمكون ويب يسمى csv-viewer
:
< html >
< head >
< script src =" https://grist-static.com/csv-viewer.js " > </ script >
</ head >
< body >
< csv-viewer initial-data =" path/to/data.csv " style =" height: 500px; border: 1px solid green " >
</ csv-viewer >
</ body >
</ html >
يقبل المكون في الواقع نفس مجموعة الخيارات مثل وظيفة bootstrapGrist
، لذا يمكنك تكوينه لإظهار إما ملف CSV أو (على الرغم من اسمه) مستند Grist من اختيارك. القائمة الكاملة للخيارات المتاحة:
initial-file
: مستند Grist الأولي المراد تحميله.initial-data
: ملف CSV للاستيراد.initial-content
: محتوى ملف CSV المراد استيراده.name
: اسم مستند Grist المراد استخدامه.single-page
: سمة منطقية تعرض المستند، في حالة وجوده، في تخطيط صفحة واحدة أقل ازدحامًا.loader
: سمة منطقية تعرض، في حالة وجودها، قرص التحميل أثناء تحميل المستند. لقد رأينا أنه باستخدام csv-viewer.js
، يمكن تحويل أي عنصر إلى رابط يفتح نافذة منبثقة تحتوي على ملف CSV. كل ما عليك فعله هو إضافة سمة data-grist-csv-open
إليها.
هناك خيارات أخرى متاحة.
data-grist-doc-open
فتح مستند Grist بدلاً من ملف CSV (على الرغم من اسم الأداة المساعدة).data-single-page
على true
لتخطيط صفحة واحدة، أو false
لتخطيط متعدد الصفحات.data-name
لتجاوز اسم المستند الافتراضي الموضح في التخطيط متعدد الصفحات.data-loader
لإظهار قرص التحميل أثناء تحميل المستند. يتم تمكين هذا افتراضيًا، قم بتمرير data-loader="false"
لتعطيله. هناك أيضًا بعض فئات الأزرار المحددة مسبقًا، على وجه التحديد grist
و grist-large
، التي توفر التصميم الافتراضي لـ Grist.
للتحكم بشكل أفضل، توجد وظيفة previewInGrist
عامة بنفس واجهة برمجة التطبيقات مثل bootstrapGrist
، ولكن بدلاً من العرض بشكل مضمن، فإنها تفتح معاينة في نافذة منبثقة. قد يكون هذا مفيدًا لأي محتوى أو ملفات تم إنشاؤها ديناميكيًا والتي لا تكون متاحة في وقت تحميل الصفحة.
تقوم جداول بيانات Grist افتراضيًا بتخزين الكثير من المحفوظات في ملف .grist
. يمكنك تقليم هذا السجل عن طريق إنشاء grist-core
ثم القيام بما يلي في دليل grist-core
:
yarn run cli history prune PATH/TO/YOUR/doc.grist
آسف هذا أمر محرج.
git submodule update --init
make requirements
make build
make serve
# now visit http://localhost:3030/page/
يضع التسلسل أعلاه الكثير من الروابط في دليل page
، لتوفير الراحة أثناء التطوير. لتجميع الملفات للتحميل، استخدم بدلاً من ذلك:
make package
# everything you need is in dist/
استخدمت جميع أمثلة HTML حتى الآن https://grist-static.com/
، وهو مجال تديره شركة Grist Labs والذي يخدم فقط الملفات الثابتة. يسجل هذا النطاق حركة المرور لقياس الاستخدام، لكنه لا يقوم بتعيين ملفات تعريف الارتباط أو تتبعها. يمكنك نسخ جميع الملفات المطلوبة إلى موقع الويب الخاص بك أو CDN للحفاظ على خصوصية حركة المرور الخاصة بك تمامًا.
يمكنك الحصول على الملفات المطلوبة عن طريق:
npm pack grist-static
لجلب أحدث tarball من سجل NPM. Tarballs (ملفات .tgz
) هي تنسيق أرشيف شائع، مع توفر العديد من الأدوات المجانية لتفريغها. مهما وصلت إلى هناك، في النهاية سيكون لديك دليل dist/
يحتوي على csv-viewer.js
و latest.js
.js والعديد من الملفات الأخرى التي تشكل Grist. ضع تلك المواد في المكان الذي تريده، وقم بتحديث عناوين URL الخاصة بك بشكل مناسب.
يعكس jsdelivr
CDN تلقائيًا الحزم الموضوعة على NPM، لذلك دعونا نستخدمها كمثال. يمكننا استبدال:
< script src =" https://grist-static.com/csv-viewer.js " > </ script >
مع:
< script src =" https://cdn.jsdelivr.net/npm/grist-static@latest/dist/csv-viewer.js " > </ script >
بالطبع، سيؤدي هذا التغيير تحديدًا إلى نقل معلومات الاستخدام إلى jsdelivr.net
بدلاً من grist-static.com
، لكنك فهمت الفكرة. ما عليك سوى استخدام نفس النمط في المكان الذي تختاره لوضع الملفات.
قد يكون من الجيد استمرار تغييرات المستخدم في متصفحهم - قد يكون OPFS خيارًا جيدًا لذلك، بمجرد حصوله على دعم واسع للمتصفح. خطوات أخرى:
grist-core
.