blogs on zfl
Project description
zfl-blogs
目次
詳細
zfl-blogs
インストール
$ pip install --upgrade pip
$ pip --version
pip 21.3.1
$ pip install zfl-blogs
設定
settings.pyの編集
INSTALLED_APPS = [
...
'django.forms',
'django_cleanup', # ファイルを自動的に削除するサードパーティ
'markdownx', # Django用に構築されたMarkdownエディタ
'blogs', # zfl-blogsアプリ
]
# マークダウンプレビューで必要な定義
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
...
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')], # プロジェクト直下でのtemplatesディレクトリを有効にする
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
...
'blogs.context.common', # context.pyのcommon関数をテンプレートで使えるようにする
],
# カスタムテンプレートタグ
'libraries': {
'mark': 'blogs.templatetags.mark',
}
},
},
]
...
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MARKDOWNX_IMAGE_MAX_SIZE = {'size': (800, 500), 'quality': 100}
MARKDOWNX_UPLOAD_MAX_SIZE = 1000 * 1024 # 最大1MBまで可能
MARKDOWNX_UPLOAD_CONTENT_TYPES = ['image/jpeg', 'image/png', 'image/gif']
MARKDOWNX_MARKDOWN_EXTENSIONS = [
'extra', # Markdownの拡張機能
'admonition', # 訓戒・忠告
'sane_lists', # 正常なリスト
'toc', # 目次
'nl2br', # 改行
]
MARKDOWNX_MARKDOWN_EXTENSION_CONFIGS = {
'toc': {
'title': '目次',
'permalink': True
}
}
urls.pyの編集
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('markdownx/', include("markdownx.urls")),
path('blogs/', include("blogs.urls")),
]
# 開発環境での設定
if settings.DEBUG == True:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
settings.pyのFORM_RENDERERでdjango.forms.renderers.TemplatesSettingに設定しているので、プロジェクト直下にtemplatesディレクトリを作成し、blogsアプリのtemplatesディレクトリからmarkdownxディレクトリをコピーしてきます。
そうすることで、記事を書く際のマークダウンプレビューを横並びにすることができます。
プロジェクト直下に「templates」ディレクトリを作成します。
$ mkdir templates
zfl-blogsパッケージ内にある「markdownx/widget.html」をプロジェクト直下の「templates」ディレクトリにコピーします。
以下のようにして目的のディレクトリの在り処を確認できます。
$ python3 -c "import blogs; print(blogs.__path__[0])"
.../lib/python3.6/site-packages/blogs
linuxコマンドの「xargs」を使って一行でコピーしてしまいます。
$ python3 -c "import blogs; print(blogs.__path__[0]+'/templates/markdownx')" | xargs -I % -t cp -r % templates/.
cp -r /../lib/python3.6/site-packages/blogs/templates/markdownx templates.
プロジェクト直下のディレクトリを確認
$ls templates
markdownx
プロジェクト直下のtemplatesディレクトリ内にある「base.html」をエクステンドしているので、「base.html」には「title」・「blogs-style」のブロックタグを設定します。
デザインはCSSフレームワークのBootstrap5.3.0を使用しています。
<html lang="ja" prefix="og: http://ogp.me/ns#">
<head>
<!-- Webサイトタイトル -->
<title>{% block title %}Blog{% endblock title %}</title>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<!-- Bootstrap ICON -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
<!-- OginalApp Style -->
{% block blogs-style %}{% endblock blogs-style %}
</head>
<body>
{% block content %}
{% endblock %}
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script>
</body>
</html>
実行
データベースの作成
$ python3 manage.py migrate
スーパーユーザーの作成
$ python3 manage.py createsuperuser
起動
$ python3 manage.py runserver
その他
markdownxで保存された画像は自動的に削除されないので、file_cleanupコマンドを実行して手動削除する必要があります。
$ python3 manage.py file_cleanup
License
zfl-blogs is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zfl_blogs-2.2.3.tar.gz.
File metadata
- Download URL: zfl_blogs-2.2.3.tar.gz
- Upload date:
- Size: 2.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
514ba1017b9567883a7aa910455c2942953453c9ea5e2b4354bd00c2e8101ecb
|
|
| MD5 |
a6fb25a516fba39c255f9c913e65cc70
|
|
| BLAKE2b-256 |
8bde227ccfc31fe16177badd5c60b2c44b79a9848fc5955757d8783965061703
|
File details
Details for the file zfl_blogs-2.2.3-py3-none-any.whl.
File metadata
- Download URL: zfl_blogs-2.2.3-py3-none-any.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e018ddbab4ae9a0befc21ff5605daa60e2dc19602184135c87b3a25ab77f63a
|
|
| MD5 |
86a080c8ca6be0e7cdafc273fa29cee2
|
|
| BLAKE2b-256 |
dfde3b12644e556542fc8b511e70f7e0fe3e56f7b69f41693062047b22d8a5a0
|