一个用于展示使用中的数据集的ckan扩展
项目描述
ckanext-showcase
展示并链接到使用中的数据集。在应用程序、网站或可视化中使用的数据集,或在文章、报告或博客文章中介绍的数据集可以在CKAN网站上展示。展示可以包括图片、描述、标签和外部链接。展示可以包含多个数据集,帮助用户发现一起使用的相关数据集。展示可以通过搜索和按标签过滤来发现。
网站系统管理员可以将选定的用户提升为“展示管理员”,以帮助创建、填充和维护展示。
ckanext-showcase旨在成为“相关项目”功能的更强大替代品。
需求
在CKAN 2.7到2.10上进行了测试。
安装
要安装ckanext-showcase
激活您的CKAN虚拟环境,例如
. /usr/lib/ckan/default/bin/activate
将ckanext-showcase Python包安装到您的虚拟环境中
pip install ckanext-showcase
将 showcase 添加到您的 CKAN 配置文件中的 ckan.plugins 设置(默认配置文件位于 /etc/ckan/default/production.ini)。
重启 CKAN。例如,如果您在 Ubuntu 上使用 Apache 部署了 CKAN
sudo service apache2 reload
开发安装
要安装 ckanext-showcase 以进行开发,请激活您的 CKAN 虚拟环境并执行以下操作:
git clone https://github.com/ckan/ckanext-showcase.git cd ckanext-showcase python setup.py develop pip install -r dev-requirements.txt
该扩展包含一个 CKEditor 的自定义构建,允许使用 WYSIWYG 编辑器来编写展示内容。它使用 webpack 构建,且存储库中包含所有必要的文件,以便在需要时编辑和自定义它。
npm install npx webpack --config webpack.config.js
webpack 将使用位于 ckanext/showcase/fanstatic/src/ckeditor.js 的文件作为入口点,创建构建并将其保存到 ckanext/showcase/fanstatic/dist/ckeditor.js。
有关如何从源构建 CKEditor 的更多信息: https://ckeditor.npmjs.net.cn/docs/ckeditor5/latest/builds/guides/integration/advanced-setup.html#scenario-2-building-from-source
API
展示扩展中的所有操作都在 CKAN Action API 中可用。
展示动作
- create a new showcase (sysadmins and showcase admins only) curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_create -H "Authorization:{YOUR-API-KEY}" -d '{"name": "my-new-showcase"}' - delete a showcase (sysadmins and showcase admins only) curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_delete -H "Authorization:{YOUR-API-KEY}" -d '{"name": "my-new-showcase"}' - show a showcase curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_show -d '{"id": "my-new-showcase"}' - list showcases curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_list -d ''
数据集动作
- add a dataset to a showcase (sysadmins and showcase admins only) curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_package_association_create -H "Authorization:{YOUR-API-KEY}" -d '{"showcase_id": "my-showcase", "package_id": "my-package"}' - remove a dataset from a showcase (sysadmins and showcase admins only) curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_package_association_delete -H "Authorization:{YOUR-API-KEY}" -d '{"showcase_id": "my-showcase", "package_id": "my-package"}' - list datasets in a showcase curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_package_list -d '{"showcase_id": "my-showcase"}' - list showcases featuring a given dataset curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_package_showcase_list -d '{"package_id": "my-package"}'
展示管理动作
- add showcase admin (sysadmins only) curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_admin_add -H "Authorization:{YOUR-API-KEY}" -d '{"username": "bert"}' - remove showcase admin (sysadmins only) curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_admin_remove -H "Authorization:{YOUR-API-KEY}" -d '{"username": "bert"}' - list showcase admins (sysadmins only) curl -X POST http://127.0.0.1:5000/api/3/action/ckanext_showcase_admin_list -H "Authorization:{YOUR-API-KEY}" -d ''
UI
展示扩展向用户界面添加以下页面:
主展示索引在以下位置可用: http://127.0.0.1:5000/showcase
要创建新的展示: http://127.0.0.1:5000/showcase/new
要编辑或删除展示: http://127.0.0.1:5000/showcase/edit/{展示名称}
要添加展示管理员: http://127.0.0.1:5000/ckan-admin/showcase_admins
配置
如果您想使用 WYSIWYG 编辑器而不是 Markdown 来编写展示内容
ckanext.showcase.editor = ckeditor
从 Markdown 到 HTML 迁移展示笔记
当使用 CKEditor 作为 WYSIWYG 编辑器时,展示笔记以 HTML 而不是 Markdown 存储起来。要将所有现有笔记从 Markdown 迁移到 HTML,可以使用 `showcase markdown_to_html` 命令。
从 ckanext-showcase 目录
paster showcase markdown-to-html -c {path to production.ini}
运行测试
要运行测试,请执行以下操作:
nosetests --ckan --nologcapture --with-pylons=test.ini
要运行测试并生成覆盖率报告,请确保您在虚拟环境中已安装 coverage(pip install coverage),然后运行:
nosetests --ckan --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.showcase --cover-inclusive --cover-erase --cover-tests
在 PyPI 上注册 ckanext-showcase
ckanext-showcase 应该在 PyPI 上作为 https://pypi.python.org/pypi/ckanext-showcase 提供。如果该链接不可用,则可以通过以下步骤首次在 PyPI 上注册项目:
创建项目的源分布
python setup.py sdist
注册项目
python setup.py register
将源分布上传到 PyPI
python setup.py sdist upload
使用来自 setup.py 文件的版本号在 GitHub 上标记项目的第一个版本。例如,如果 setup.py 中的版本号为 0.0.1,则执行以下操作:
git tag 0.0.1 git push --tags
发布 ckanext-showcase 的新版本
ckanext-showcase 在 PyPI 上作为 https://pypi.python.org/pypi/ckanext-showcase 提供。要向 PyPI 发布新版本,请按照以下步骤操作:
更新 setup.py 文件中的版本号。有关如何选择版本号的说明,请参阅 PEP 440。
创建新版本的源分布
python setup.py sdist
将源分布上传到 PyPI
python setup.py sdist upload
使用来自 setup.py 文件的版本号在 GitHub 上标记项目的新的发布版本。例如,如果 setup.py 中的版本号为 0.0.2,则执行以下操作:
git tag 0.0.2 git push --tags
i18n
参见:“扩展中的字符串国际化”:http://docs.ckan.org/en/latest/extensions/translating-extensions.html
安装 babel
pip install Babel
为您的语言初始化目录
python setup.py init_catalog -l es
编译语言目录(您可以使用-f选项强制pybabel编译标记为模糊的消息)
python setup.py compile_catalog -f -l es
项目详情
ckanext-showcase-1.5.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d4665c8c4bb2c61b4579deb615a0c90b936281ef3a8daeba7f0c2b26d6335175 |
|
MD5 | b51984cc96e66c116643cc3cca9a84ca |
|
BLAKE2b-256 | 410b58df1f961ff4802fb10ef9582bf94837196183c381ee45bc8620f174b598 |