diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 16:34:57 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 16:34:57 +0000 |
commit | f732e8bd807156080cf869c9ecf563a925f5cd31 (patch) | |
tree | 44401b5b79d028d08a721443a563e9b35b401d8c | |
parent | bc5a1963516435bf82d8cbbd2238e250d0abe15a (diff) |
automatic import of python-django-pagedown
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-pagedown.spec | 434 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 436 insertions, 0 deletions
@@ -0,0 +1 @@ +/django-pagedown-2.2.1.tar.gz diff --git a/python-django-pagedown.spec b/python-django-pagedown.spec new file mode 100644 index 0000000..1c02f85 --- /dev/null +++ b/python-django-pagedown.spec @@ -0,0 +1,434 @@ +%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. + +## 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 +<html> + <head> + {{ form.media }} + </head> + <body> + <form ...> + {{ form }} + </form> + </body> +</html> +``` +## 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 %} +<p>{{ entry.body|markdown }}</p> +``` +## 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): + +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. + +## 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 +<html> + <head> + {{ form.media }} + </head> + <body> + <form ...> + {{ form }} + </form> + </body> +</html> +``` +## 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 %} +<p>{{ entry.body|markdown }}</p> +``` +## 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): + +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. + +## 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 +<html> + <head> + {{ form.media }} + </head> + <body> + <form ...> + {{ form }} + </form> + </body> +</html> +``` +## 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 %} +<p>{{ entry.body|markdown }}</p> +``` +## 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): + +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 <Python_Bot@openeuler.org> - 2.2.1-1 +- Package Spec generated @@ -0,0 +1 @@ +6e30653cc78e9e4a6bae37089dd7f0eb django-pagedown-2.2.1.tar.gz |