我该如何创建一个扩展来预览CKAN中的GTFS数据呢



我想创建一个扩展来预览GTFS数据,尽管我的问题更多的是关于如何创建一个用于预览数据的扩展。

查看我找到的文档和代码。

这些现有预览扩展的例子:

  • PDF
  • 文本(包括JSON)
  • GeoJSON

有没有一个绝对最小的扩展示例可以进行预览,或者关于如何为GTFS进行这项工作的提示(什么是我工作的最佳示例)?

我建议您查看一下Text预览扩展。它相当小,涵盖了所有重要的部分,例如如何让CKAN知道扩展可以预览文件,如何加载模板,如何加载javascript和css,以及如何使用资源代理(它可以绕过同源策略)。

CKAN中插件的当前版本使用了一个功能,该功能允许定义扩展名预览文件的合理程度,而旧版CKAN中没有此功能。

CKAN的稳定版本2.0中有一个json预览扩展,它比文本预览稍小,也支持旧的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'

最新更新