我想创建一个扩展来预览 GTFS 数据——尽管我的问题更多是关于如何创建一个扩展来预览数据。
查看我找到的文档和代码。
以及现有预览扩展的这些示例:
是否有一个绝对最小扩展的示例来进行预览或关于我将如何为 GTFS 进行此操作的提示(什么是我工作的最佳示例)?
我建议你看看文本预览扩展。它相当小,涵盖了所有重要部分,例如如何让 CKAN 知道扩展可以预览文件、如何加载模板、如何加载 javascript 和 css 以及如何使用资源代理(这是为了绕过同源政策)。
CKAN 中插件的当前版本使用了一项功能,该功能允许定义扩展可以预览文件的合理程度,这在旧 CKAN 中不可用。
在 CKAN 的稳定版本 2.0 中有一个json 预览扩展,它比 text-preview 略小,并且也支持旧的 CKAN。
一个最小的预览插件看起来像(没有模板):
import ckan.plugins as p
class Preview(p.SingletonPlugin):
p.implements(p.IResourcePreview, inherit=True)
def can_preview(self, data_dict):
format = data_dict['resource']['format']
return format.lower() == 'gtfs'
def preview_template(self, context, data_dict):
return 'preview.html'