http://docs.ckan.org/en/2.9/theming/templates.html
CKAN 網頁由 Jinja2 template 產生。以下練習將修改 layout 及預設內容。
CKAN theme 就是 CKAN plugin,內含自訂的 templates、靜態檔案。
建立: ckanext-example_theme
- 啟用 CKAN Virtual Environment
. /usr/lib/ckan/default/bin/activate
- 切換到 /usr/lib/ckan/default/src 執行 ckan generate extension
Extension's name [must begin 'ckanext-']: ckanext-example_theme
ckanext-example_theme
├── ckanext│ ├── example_theme│ │ ├── assets│ │ │ └── webassets.yml│ │ ├── fanstatic│ │ ├── i18n│ │ ├── __init__.py│ │ ├── plugin.py│ │ ├── public│ │ ├── templates│ │ └── tests│ │ ├── __init__.py│ │ └── test_plugin.py│ └── __init__.py├── dev-requirements.txt├── LICENSE├── MANIFEST.in├── README.md├── requirements.txt├── setup.cfg├── setup.py└── test.ini
修改 plugin.py
所有 CKAN plugin 都需繼承自 plugins.SingletonPlugin。修改 ckanext-example_theme/ckanext/example_theme/plugin.py 如下:
import ckan.plugins as plugins
class ExampleThemePlugin(plugins.SingletonPlugin):
'''An example theme plugin.
'''
pass
修改並執行 setup.py
修改 ckanext-example_theme/setup.py 的
entry_points
entry_points='''[ckan.plugins]example_theme=ckanext.example_theme.plugin:ExampleThemePlugin''',
切換到 ckanext-example_theme 目錄,執行:
cd ckanext-example_theme
python setup.py develop
python setup.py develop
修改 /etc/ckan/default/ckan.ini 並重啟 CKAN
extension plugins 必須加到 CKAN 設定檔的 ckan.plugins 中,CKAN 才會呼叫。ckan.plugins = stats text_view 略... example_theme
重啟 CKAN
- 進入Python Virtual Environment:
. /usr/lib/ckan/default/bin/activate - 重啟 CKAN 服務:
(production版) sudo supervisorctl restart ckan-uwsgi:*
(develop版) ckan -c /etc/ckan/default/ckan.ini run
測試
重新載入 http://[CKAN web site]/
沒錯就是對了。
沒有留言:
張貼留言