%global _empty_manifest_terminate_build 0 Name: python-django-pagedown Version: 2.2.1 Release: 1 Summary: A Django app that allows the easy addition of Stack Overflow's 'PageDown' markdown editor to a django form field License: LICENSE.txt URL: https://github.com/timmyomahony/django-pagedown Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c5/7f/2f12e1ac2a50ba7d2a82ca10efd2c127345bb93af68d65b1b9808b257f29/django-pagedown-2.2.1.tar.gz BuildArch: noarch Requires: python3-Django Requires: python3-Pillow %description Add [Stack Overflow's "Pagedown" Markdown editor](https://github.com/StackExchange/pagedown/) to your Django Admin or custom form. ![Screenshot of Django Admin with Pagedown initialised](https://github.com/timmyomahony/django-pagedown/blob/master/screenshot.png?raw=true "A screenshot of Pagedown in Django's admin") ## Requirements Version >= 2.0.0 of `django-pagedown` requires Django 2.1.0 or above (previous versions should support Django all the way back to around 1.1). ## Installation 1. Get the code: `pip install django-pagedown` 2. Add `pagedown.apps.PagedownConfig` to your `INSTALLED_APPS` in `settings.py` 3. [Configure and collect](https://docs.djangoproject.com/en/dev/howto/static-files/#configuring-static-files) the static files: `python manage.py collectstatic` ## Usage The widget can be used both inside the django admin or independendly. ### Inside the Django Admin: If you want to use the pagedown editor in a django admin field, there are numerous possible approaches: - To use it in **all** `TextField`'s in your admin form: ```python from django.contrib import admin from django.db import models from pagedown.widgets import AdminPagedownWidget class AlbumAdmin(admin.ModelAdmin): formfield_overrides = { models.TextField: {'widget': AdminPagedownWidget }, } ``` - To only use it on **particular fields**, first create a form (in `forms.py`): ```python from django import forms from pagedown.widgets import AdminPagedownWidget from music.models import Album class AlbumForm(forms.ModelForm): name = forms.CharField(widget=AdminPagedownWidget()) description = forms.CharField(widget=AdminPagedownWidget()) class Meta: model = Album fields = "__all__" ``` and in your `admin.py`: ```python from django.contrib import admin from forms import FooModelForm from models import FooModel @admin.register(FooModel) class FooModelAdmin(admin.ModelAdmin): form = FooModelForm fields = "__all__" ``` ### Outside the Django Admin: To use the widget outside of the django admin, first create a form similar to the above but using the basic `PagedownWidget`: ```python from django import forms from pagedown.widgets import PagedownWidget from music.models import Album class AlbumForm(forms.ModelForm): name = forms.CharField(widget=PagedownWidget()) description = forms.CharField(widget=PagedownWidget()) class Meta: model = Album fields = ["name", "description"] ``` Then define your urls/views: ```py from django.views.generic import FormView from django.conf.urls import patterns, url from music.forms import AlbumForm urlpatterns = patterns('', url(r'^$', FormView.as_view(template_name="baz.html", form_class=AlbumForm)),) ``` then create the template and load the javascipt and css required to create the editor: ```html
{{ form.media }} ``` ## Customizing the Widget If you want to customize the widget, the easiest way is to simply extend it: ```py from pagedown.widgets import PagedownWidget class MyNewWidget(PagedownWidget): template_name = '/custom/template.html' class Media: css = { 'all': ('custom/stylesheets.css',) } js = ('custom/javascript.js',) ``` ## Rendering Markdown `contrib.markdown` was [deprecated in Django 1.5](https://code.djangoproject.com/ticket/18054) meaning you can no longer use the `markdown` filter in your template by default. [@wkcd has a good example](https://github.com/timmyomahony/django-pagedown/issues/18#issuecomment-37535535) of how to overcome by installing `django-markdown-deux`: ```py {% extends 'base.html' %} {% load markdown_deux_tags %}{{ entry.body|markdown }}
``` ## Image Uploads You can enable image uploads, allowing your users to upload new images to the server and have them automatically inserted into the Pagedown widget (instead of just adding image URLs): ![Screenshot of Django Admin with image upload enabled](https://github.com/timmyomahony/django-pagedown/blob/develop/image-upload.png?raw=true "Screenshot of Django Admin with image upload enabled") To do so: 1. Make sure you have set a `MEDIA_URL` and `MEDIA_ROOT` so that uploads will be propertly saved 2. Add `PAGEDOWN_IMAGE_UPLOAD_ENABLED=True` to your settings 3. Include the pagedown paths in your `urls.py` so that the upload endpoint is available ```py # ... urlpatterns = [ path('', include('pagedown.urls')), # ... ] ``` This will add the URL `/pagedown/image-upload/` endpoint to your project. You can [see the default view that handles the upload here](https://github.com/timmyomahony/django-pagedown/blob/develop/pagedown/views.py) The following options are available via your settings to tweak how the image upload works: - `PAGEDOWN_IMAGE_UPLOAD_PATH` can be used to change the path within your media root (default is `pagedown-uploads`) - `PAGEDOWN_IMAGE_UPLOAD_EXTENSIONS` can be used to limit the extensions allowed for upload (default is `jpg`, `jpeg`, `png`, `webp`) - `PAGEDOWN_IMAGE_UPLOAD_UNIQUE` can be used to ensure all uploads are stored in a uniquely named subfolder, e.g. `f748e009-c3cb-40f3-abf2-d103ab0ad259/my-file.png` (default is `False`) Check out the `pagedown_init.js` script to [see how the upload is being performed on the client side](https://github.com/timmyomahony/django-pagedown/blob/develop/pagedown/static/pagedown_init.js). ## Example You can see a fully-fledged example of the widget in [`django-pagedown-example`](https://github.com/timmyomahony/django-pagedown-example) %package -n python3-django-pagedown Summary: A Django app that allows the easy addition of Stack Overflow's 'PageDown' markdown editor to a django form field Provides: python-django-pagedown BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-django-pagedown Add [Stack Overflow's "Pagedown" Markdown editor](https://github.com/StackExchange/pagedown/) to your Django Admin or custom form. ![Screenshot of Django Admin with Pagedown initialised](https://github.com/timmyomahony/django-pagedown/blob/master/screenshot.png?raw=true "A screenshot of Pagedown in Django's admin") ## Requirements Version >= 2.0.0 of `django-pagedown` requires Django 2.1.0 or above (previous versions should support Django all the way back to around 1.1). ## Installation 1. Get the code: `pip install django-pagedown` 2. Add `pagedown.apps.PagedownConfig` to your `INSTALLED_APPS` in `settings.py` 3. [Configure and collect](https://docs.djangoproject.com/en/dev/howto/static-files/#configuring-static-files) the static files: `python manage.py collectstatic` ## Usage The widget can be used both inside the django admin or independendly. ### Inside the Django Admin: If you want to use the pagedown editor in a django admin field, there are numerous possible approaches: - To use it in **all** `TextField`'s in your admin form: ```python from django.contrib import admin from django.db import models from pagedown.widgets import AdminPagedownWidget class AlbumAdmin(admin.ModelAdmin): formfield_overrides = { models.TextField: {'widget': AdminPagedownWidget }, } ``` - To only use it on **particular fields**, first create a form (in `forms.py`): ```python from django import forms from pagedown.widgets import AdminPagedownWidget from music.models import Album class AlbumForm(forms.ModelForm): name = forms.CharField(widget=AdminPagedownWidget()) description = forms.CharField(widget=AdminPagedownWidget()) class Meta: model = Album fields = "__all__" ``` and in your `admin.py`: ```python from django.contrib import admin from forms import FooModelForm from models import FooModel @admin.register(FooModel) class FooModelAdmin(admin.ModelAdmin): form = FooModelForm fields = "__all__" ``` ### Outside the Django Admin: To use the widget outside of the django admin, first create a form similar to the above but using the basic `PagedownWidget`: ```python from django import forms from pagedown.widgets import PagedownWidget from music.models import Album class AlbumForm(forms.ModelForm): name = forms.CharField(widget=PagedownWidget()) description = forms.CharField(widget=PagedownWidget()) class Meta: model = Album fields = ["name", "description"] ``` Then define your urls/views: ```py from django.views.generic import FormView from django.conf.urls import patterns, url from music.forms import AlbumForm urlpatterns = patterns('', url(r'^$', FormView.as_view(template_name="baz.html", form_class=AlbumForm)),) ``` then create the template and load the javascipt and css required to create the editor: ```html {{ form.media }} ``` ## Customizing the Widget If you want to customize the widget, the easiest way is to simply extend it: ```py from pagedown.widgets import PagedownWidget class MyNewWidget(PagedownWidget): template_name = '/custom/template.html' class Media: css = { 'all': ('custom/stylesheets.css',) } js = ('custom/javascript.js',) ``` ## Rendering Markdown `contrib.markdown` was [deprecated in Django 1.5](https://code.djangoproject.com/ticket/18054) meaning you can no longer use the `markdown` filter in your template by default. [@wkcd has a good example](https://github.com/timmyomahony/django-pagedown/issues/18#issuecomment-37535535) of how to overcome by installing `django-markdown-deux`: ```py {% extends 'base.html' %} {% load markdown_deux_tags %}{{ entry.body|markdown }}
``` ## Image Uploads You can enable image uploads, allowing your users to upload new images to the server and have them automatically inserted into the Pagedown widget (instead of just adding image URLs): ![Screenshot of Django Admin with image upload enabled](https://github.com/timmyomahony/django-pagedown/blob/develop/image-upload.png?raw=true "Screenshot of Django Admin with image upload enabled") To do so: 1. Make sure you have set a `MEDIA_URL` and `MEDIA_ROOT` so that uploads will be propertly saved 2. Add `PAGEDOWN_IMAGE_UPLOAD_ENABLED=True` to your settings 3. Include the pagedown paths in your `urls.py` so that the upload endpoint is available ```py # ... urlpatterns = [ path('', include('pagedown.urls')), # ... ] ``` This will add the URL `/pagedown/image-upload/` endpoint to your project. You can [see the default view that handles the upload here](https://github.com/timmyomahony/django-pagedown/blob/develop/pagedown/views.py) The following options are available via your settings to tweak how the image upload works: - `PAGEDOWN_IMAGE_UPLOAD_PATH` can be used to change the path within your media root (default is `pagedown-uploads`) - `PAGEDOWN_IMAGE_UPLOAD_EXTENSIONS` can be used to limit the extensions allowed for upload (default is `jpg`, `jpeg`, `png`, `webp`) - `PAGEDOWN_IMAGE_UPLOAD_UNIQUE` can be used to ensure all uploads are stored in a uniquely named subfolder, e.g. `f748e009-c3cb-40f3-abf2-d103ab0ad259/my-file.png` (default is `False`) Check out the `pagedown_init.js` script to [see how the upload is being performed on the client side](https://github.com/timmyomahony/django-pagedown/blob/develop/pagedown/static/pagedown_init.js). ## Example You can see a fully-fledged example of the widget in [`django-pagedown-example`](https://github.com/timmyomahony/django-pagedown-example) %package help Summary: Development documents and examples for django-pagedown Provides: python3-django-pagedown-doc %description help Add [Stack Overflow's "Pagedown" Markdown editor](https://github.com/StackExchange/pagedown/) to your Django Admin or custom form. ![Screenshot of Django Admin with Pagedown initialised](https://github.com/timmyomahony/django-pagedown/blob/master/screenshot.png?raw=true "A screenshot of Pagedown in Django's admin") ## Requirements Version >= 2.0.0 of `django-pagedown` requires Django 2.1.0 or above (previous versions should support Django all the way back to around 1.1). ## Installation 1. Get the code: `pip install django-pagedown` 2. Add `pagedown.apps.PagedownConfig` to your `INSTALLED_APPS` in `settings.py` 3. [Configure and collect](https://docs.djangoproject.com/en/dev/howto/static-files/#configuring-static-files) the static files: `python manage.py collectstatic` ## Usage The widget can be used both inside the django admin or independendly. ### Inside the Django Admin: If you want to use the pagedown editor in a django admin field, there are numerous possible approaches: - To use it in **all** `TextField`'s in your admin form: ```python from django.contrib import admin from django.db import models from pagedown.widgets import AdminPagedownWidget class AlbumAdmin(admin.ModelAdmin): formfield_overrides = { models.TextField: {'widget': AdminPagedownWidget }, } ``` - To only use it on **particular fields**, first create a form (in `forms.py`): ```python from django import forms from pagedown.widgets import AdminPagedownWidget from music.models import Album class AlbumForm(forms.ModelForm): name = forms.CharField(widget=AdminPagedownWidget()) description = forms.CharField(widget=AdminPagedownWidget()) class Meta: model = Album fields = "__all__" ``` and in your `admin.py`: ```python from django.contrib import admin from forms import FooModelForm from models import FooModel @admin.register(FooModel) class FooModelAdmin(admin.ModelAdmin): form = FooModelForm fields = "__all__" ``` ### Outside the Django Admin: To use the widget outside of the django admin, first create a form similar to the above but using the basic `PagedownWidget`: ```python from django import forms from pagedown.widgets import PagedownWidget from music.models import Album class AlbumForm(forms.ModelForm): name = forms.CharField(widget=PagedownWidget()) description = forms.CharField(widget=PagedownWidget()) class Meta: model = Album fields = ["name", "description"] ``` Then define your urls/views: ```py from django.views.generic import FormView from django.conf.urls import patterns, url from music.forms import AlbumForm urlpatterns = patterns('', url(r'^$', FormView.as_view(template_name="baz.html", form_class=AlbumForm)),) ``` then create the template and load the javascipt and css required to create the editor: ```html {{ form.media }} ``` ## Customizing the Widget If you want to customize the widget, the easiest way is to simply extend it: ```py from pagedown.widgets import PagedownWidget class MyNewWidget(PagedownWidget): template_name = '/custom/template.html' class Media: css = { 'all': ('custom/stylesheets.css',) } js = ('custom/javascript.js',) ``` ## Rendering Markdown `contrib.markdown` was [deprecated in Django 1.5](https://code.djangoproject.com/ticket/18054) meaning you can no longer use the `markdown` filter in your template by default. [@wkcd has a good example](https://github.com/timmyomahony/django-pagedown/issues/18#issuecomment-37535535) of how to overcome by installing `django-markdown-deux`: ```py {% extends 'base.html' %} {% load markdown_deux_tags %}{{ entry.body|markdown }}
``` ## Image Uploads You can enable image uploads, allowing your users to upload new images to the server and have them automatically inserted into the Pagedown widget (instead of just adding image URLs): ![Screenshot of Django Admin with image upload enabled](https://github.com/timmyomahony/django-pagedown/blob/develop/image-upload.png?raw=true "Screenshot of Django Admin with image upload enabled") To do so: 1. Make sure you have set a `MEDIA_URL` and `MEDIA_ROOT` so that uploads will be propertly saved 2. Add `PAGEDOWN_IMAGE_UPLOAD_ENABLED=True` to your settings 3. Include the pagedown paths in your `urls.py` so that the upload endpoint is available ```py # ... urlpatterns = [ path('', include('pagedown.urls')), # ... ] ``` This will add the URL `/pagedown/image-upload/` endpoint to your project. You can [see the default view that handles the upload here](https://github.com/timmyomahony/django-pagedown/blob/develop/pagedown/views.py) The following options are available via your settings to tweak how the image upload works: - `PAGEDOWN_IMAGE_UPLOAD_PATH` can be used to change the path within your media root (default is `pagedown-uploads`) - `PAGEDOWN_IMAGE_UPLOAD_EXTENSIONS` can be used to limit the extensions allowed for upload (default is `jpg`, `jpeg`, `png`, `webp`) - `PAGEDOWN_IMAGE_UPLOAD_UNIQUE` can be used to ensure all uploads are stored in a uniquely named subfolder, e.g. `f748e009-c3cb-40f3-abf2-d103ab0ad259/my-file.png` (default is `False`) Check out the `pagedown_init.js` script to [see how the upload is being performed on the client side](https://github.com/timmyomahony/django-pagedown/blob/develop/pagedown/static/pagedown_init.js). ## Example You can see a fully-fledged example of the widget in [`django-pagedown-example`](https://github.com/timmyomahony/django-pagedown-example) %prep %autosetup -n django-pagedown-2.2.1 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-django-pagedown -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Apr 11 2023 Python_Bot