feat: 3.6
Signed-off-by: Darren <git@darrennathanael.com>
This commit is contained in:
parent
e35bf2d170
commit
48b33477b1
63
docs/api.md
63
docs/api.md
|
@ -28,8 +28,7 @@ Accept: */*
|
|||
}
|
||||
```
|
||||
|
||||
**Form Parameters**
|
||||
|
||||
### Form Parameters
|
||||
|
||||
- **content** – (required) The UTF-8 encoded string you want to paste.
|
||||
- **lexer** – (optional) The lexer string key used for highlighting. See the `CODE_FORMATTER` property in [Settings](https://docs.dpaste.org/settings/) for a full list of choices. Default: `_code`.
|
||||
|
@ -46,5 +45,63 @@ Accept: */*
|
|||
}
|
||||
|
||||
|
||||
- expires – (optional) A keyword to indicate the lifetime of a snippet in seconds. The values are predefined by the server. Calling this with an invalid value returns a HTTP 400 BadRequest together with a list of valid values. Default: 2592000. In the default configuration valid values are:
|
||||
- `onetime` — The snippet will be deleted after the first view.
|
||||
- `never` — The snippet will never expire.
|
||||
- `3600` — The snippet will expire after one hour.
|
||||
- `604800` — The snippet will expire after one week.
|
||||
- `2592000` — The snippet will expire after one month.
|
||||
|
||||
<!-- !TODO: add more example -->
|
||||
- filename - (optional) A filename which we use to determine a lexer, if `lexer` is not set. In case we can’t determine a file, the lexer will fallback to `plain` code (no highlighting). A given `lexer` will overwrite any filename! Example:
|
||||
|
||||
{
|
||||
"url": "https://dpaste.org/xsWd",
|
||||
"lexer": "",
|
||||
"filename": "python",
|
||||
"content": "The text body of the snippet."
|
||||
}
|
||||
|
||||
This will create a `python` highlighted snippet. However in this example:
|
||||
|
||||
{
|
||||
"url": "https://dpaste.org/xsWd",
|
||||
"lexer": "php",
|
||||
"filename": "python",
|
||||
"content": "The text body of the snippet."
|
||||
}
|
||||
|
||||
Since the lexer is set too, It will create a `php` highlighted snippet.
|
||||
|
||||
### Status Codes
|
||||
- [**200 OK**](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/200) – No Error.
|
||||
- [**400 Bad Request**](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) – One of the above form options was invalid, the response will contain a meaningful error message.
|
||||
|
||||
## Third party API integration
|
||||
**subdpaste**
|
||||
|
||||
- a Sublime Editor plugin: [https://github.com/bartTC/SubDpaste](https://github.com/bartTC/SubDpaste)
|
||||
|
||||
**Marmalade**
|
||||
|
||||
- an Emacs plugin: [http://marmalade-repo.org/packages/dpaste_de](http://marmalade-repo.org/packages/dpaste_de)
|
||||
|
||||
**atom-dpaste**
|
||||
|
||||
- for the Atom editor: [https://atom.io/packages/atom-dpaste](https://atom.io/packages/atom-dpaste)
|
||||
|
||||
**dpaste-magic**
|
||||
|
||||
- an iPython extension: [https://pypi.org/project/dpaste-magic/](https://pypi.org/project/dpaste-magic/)
|
||||
|
||||
You can also paste your file content to the API via curl, directly from the command line:
|
||||
|
||||
|
||||
```bash
|
||||
$ alias dpaste="curl -F 'format=url' -F 'content=<-' https://dpaste.org/api/"
|
||||
$ cat foo.txt | dpaste
|
||||
https://dpaste.org/ke2pB
|
||||
```
|
||||
|
||||
!!! hint "Note"
|
||||
|
||||
If you wrote or know a third party dpaste plugin or extension, please open an Issue on Github and I will added here.
|
|
@ -0,0 +1,250 @@
|
|||
Changelog
|
||||
=========
|
||||
|
||||
3.7 (master)
|
||||
------------
|
||||
TBD
|
||||
|
||||
|
||||
3.6 (2022-03-27)
|
||||
------------
|
||||
|
||||
- Added support for Python 3.9.
|
||||
- Added support for Python 3.10.
|
||||
- Removed cache headers for all views except 404. Due to that snippets can be
|
||||
deleted, it's not trivial to have them removed from upstream caches.
|
||||
- Bump pygments version to 2.11.
|
||||
- update dependency psycopg2-binary to v2.9.3
|
||||
- Addresses bug in cleanup_snippets script [#191](https://github.com/DarrenOfficial/dpaste/issues/191)
|
||||
- Removed docs, since it's moved to [docs.dpaste.org](https://docs.dpaste.org), [darrenofficial/dpaste-docs](https://github.com/darrenofficial/dpaste-docs) and will be updated there.
|
||||
|
||||
|
||||
3.5 (2020-01-08)
|
||||
----------------
|
||||
|
||||
- Mobile view improvements.
|
||||
- Upgraded django-csp dependency to v3.6 that ships with Django 3.0 support.
|
||||
|
||||
3.4 (2019-12-08)
|
||||
----------------
|
||||
|
||||
- Dropped support for Python 3.4.
|
||||
- Dropped support for Python 3.5.
|
||||
- Dropped support for Django 1.11. ⚠️
|
||||
- Dropped support for Django 2.0. ⚠️
|
||||
- Dropped support for Django 2.1. ⚠️
|
||||
- Added support for Python 3.8.
|
||||
- Added support for Django 3.0.
|
||||
- Snippets which are expired are now deleted as soon as they are requested
|
||||
by a client. It's not necessary to purge them minutely with the
|
||||
``cleanup_snipppet`` managemenent command. It's still encouraged to have the
|
||||
management command setup, just run it daily, so snippets which expired but
|
||||
never got fetched by a client are deleted properly.
|
||||
- All pages have sane Expire or Max-Age header.
|
||||
- Onetime snippets which were never viewed a second time are now deleted if
|
||||
they reach the default expire date.
|
||||
- New AppConfig setting ``APPLICATION_NAME`` that can be used to replace the
|
||||
term "dpaste" throughout the UI.
|
||||
- New AppConfig setting ``EXTRA_HEAD_HTML`` and similars that can be used to
|
||||
add custom HTML to each template, to easily override the stock UI of dpaste.
|
||||
- New "Slim" view that displays the highlighted snippet without header,
|
||||
options etc, and can be iframed.
|
||||
- Forced line-break for superlongwordsthatwouldexceedthecanvas.
|
||||
- Local development is no longer centered around ``pipenv``, instead it's using
|
||||
docker-compose or the classic virtualenv based setups.
|
||||
- Error pages are now correctly translated.
|
||||
- Testsuite and Tox uses pytest instead of a homebrewed testrunner.
|
||||
|
||||
3.3.1 (2019-08-04):
|
||||
-------------------
|
||||
|
||||
- Exclude the local settings file from the pypi release.
|
||||
|
||||
3.3 (2019-07-12)
|
||||
----------------
|
||||
|
||||
- The compiled static files (CSS, JS) are now shipped with the Pypi package since
|
||||
its not possible to compile them after installation with pip.
|
||||
|
||||
3.2 (2019-06-24)
|
||||
----------------
|
||||
|
||||
- "Edit Snippet" panel is now hidden by default to remove visual noise.
|
||||
- Linux/Unix browsers now use Ctrl+Enter as a shortcut to submit the form.
|
||||
- Added a dedicated "Copy Snippet" button to copy the content to the clipboard.
|
||||
- Added "View Raw" option to optionally render the 'raw' snippet content with a
|
||||
template rather served as plain text. This was added to hinder abuse.
|
||||
- Added "Json" to the list of lexers.
|
||||
- Added 'JSX/React" to the list of lexers.
|
||||
|
||||
3.1 (2019-05-16)
|
||||
----------------
|
||||
|
||||
- Django 2.1 support and tests.
|
||||
- Django 2.2 support and tests.
|
||||
- General code cleanup by running the entire codebase through black_.
|
||||
- Right-to-left support for text snippets.
|
||||
- dart-sass is now used for SASS compilation.
|
||||
- Updated lexer list.
|
||||
- "View Raw" feature can be disabled in app config to hinder abuse.
|
||||
|
||||
.. _black: https://github.com/ambv/black
|
||||
|
||||
3.0 (2018-06-22)
|
||||
----------------
|
||||
|
||||
Huge release. Full cleanup and update of the entire codebase. Details:
|
||||
|
||||
- Requires Python 3.4 and up.
|
||||
- Dropped support for Django 1.8 to 1.10 due to it's general end of support.
|
||||
The project will likely work well but it's no longer specifically tested.
|
||||
- All views are now class based and use the latest generic based views sugar.
|
||||
- Django 1.11 based templates, forms, views, models, etc.
|
||||
- Added pipenv support for local development.
|
||||
- Added AppConfig support to set and maintain settings.
|
||||
- Added "Rendered Text" lexer with support for rST and Markdown.
|
||||
- Added Content Security Policy features, with django-csp (this is mainly
|
||||
required for the "rendered" text feature).
|
||||
- Removed jQuery dependency, all Javascript is native.
|
||||
- Removed Bootstrap dependency.
|
||||
- Removed 'Maximum History' limit setting.
|
||||
- Removed translations.
|
||||
- Removed "Suspicious" middleware which was never been used, documented,
|
||||
and also not functional for a while.
|
||||
- Fixed issues around leading whitespace in lines.
|
||||
- Fixed CMD+Enter form submission shortcut in Firefox.
|
||||
|
||||
2.14 (no public release)
|
||||
------------------------
|
||||
|
||||
- Django 1.11 compatibility. But not Django 2.0 yet.
|
||||
- Removed "Suspicious" middleware which was never been used, documented,
|
||||
and also not functional for a while.
|
||||
|
||||
2.13 (2017-01-20)
|
||||
-----------------
|
||||
|
||||
- (Backwards incompatible) Removal of django-mptt and therefor the removal of a
|
||||
tree based snippet list, due to performance reasons with large snippet counts.
|
||||
Snippets still have a 'parent' relation if it's an answer of another snippet,
|
||||
however this is no longer a Nested Set. The UI is simplified too and the user
|
||||
can now only compare an answer to it's parent snippet. I believe this is the
|
||||
major use case anyway.
|
||||
- (Backwards incompatible) Removal of the "Gist" button feature.
|
||||
- Fixed broken 404 view handler in Django 1.9+.
|
||||
- Python 3.6 and Django 1.10 compatibility and tests.
|
||||
|
||||
2.12 (2016-09-06)
|
||||
-----------------
|
||||
|
||||
- Fixed "Content Type" problem with Django 1.10.
|
||||
- Development requirements now use a different version scheme to be
|
||||
compatible with older `pip` versions.
|
||||
|
||||
2.11 (2016-09-04)
|
||||
-----------------
|
||||
|
||||
- Django 1.10 Support
|
||||
- R Lexer is enabled by default
|
||||
- Minor fixes and improvements.
|
||||
|
||||
2.10 (2016-03-23)
|
||||
-----------------
|
||||
|
||||
- Dropped Django 1.4 and 1.7 support!
|
||||
- Full Django 1.8 support
|
||||
- Full Django 1.9 support
|
||||
- C++ Lexer is enabled by default
|
||||
- (Backwards incompatible) All API calls must pass the data within a POST
|
||||
request. It can't mix POST and GET arguments anymore. This was weird behavior
|
||||
anyway and is likely no issue for any paste plugin out there.
|
||||
|
||||
2.9 (2015-08-12)
|
||||
----------------
|
||||
|
||||
- Full Django 1.7 support
|
||||
- Full Django 1.8 support
|
||||
- New Django migrations, with fallback to South migrations if South is
|
||||
installed. If you want to switch from South to native Django migrations,
|
||||
and have an existing databsae, fake the initial migrations:
|
||||
`manage.py migrate --fake-initial`
|
||||
- Added full i18n support and several languages
|
||||
- More settings can be overrridden, like the jQuery URL, site name and wether
|
||||
you want to enable Gthub Gist.
|
||||
- Ships a middleware that blocks anonymous proxies and TOR nodes. Not enabled
|
||||
by default.
|
||||
|
||||
2.8 (2014-08-02)
|
||||
----------------
|
||||
|
||||
- The API create view has a new argument 'filename' which is used to determine
|
||||
the lexer out of a given filename.
|
||||
- Fixed a XSS bug where HTML tags were not properly escaped with the simple
|
||||
``code`` lexer.
|
||||
|
||||
2.7 (2014-06-08)
|
||||
----------------
|
||||
|
||||
- "never" as an expiration choice is enable by default! This creates snippets
|
||||
in the database which are never purged.
|
||||
- The API create call now supports to set the exiration time.
|
||||
- Some simple Bootstrap 3 support.
|
||||
- Gist fixes on Python 3.
|
||||
|
||||
2.6 (2014-04-12)
|
||||
----------------
|
||||
|
||||
- Fix for the rare case of duplicate slug (secret id) generation.
|
||||
- A new 'code' lexer renders source code with no highlighting.
|
||||
- Whitespace fixes with tab indention and word wrap mode.
|
||||
- Installation docs.
|
||||
|
||||
|
||||
2.5 (2014-01-21)
|
||||
----------------
|
||||
|
||||
- IRC lexer is now in the default lexer list.
|
||||
- One-Time snippet support. Snippets get automatically deleted after the
|
||||
another user looks at it.
|
||||
- Toggle wordwrap for code snippets.
|
||||
- General UI and readability improvements.
|
||||
|
||||
2.4 (2014-01-11)
|
||||
----------------
|
||||
|
||||
- API accepts the format or lexer via GET too. You can call an API url like
|
||||
``example.com/api/?format=json`` and have the body in POST only.
|
||||
- Added an option to keep snippets forever.
|
||||
- ABAP lexer is now in the default lexer list.
|
||||
|
||||
2.3 (2014-01-07)
|
||||
----------------
|
||||
|
||||
- API Documentation.
|
||||
- Full test coverage.
|
||||
- Removed Twitter button from homepage.
|
||||
- Slug generation is less predictable.
|
||||
|
||||
2.2 (2013-12-18)
|
||||
----------------
|
||||
|
||||
- Added documentation_
|
||||
- Added support for CSRF middleware.
|
||||
- Windows users can submit the form using Ctrl+Enter.
|
||||
- The raw view now sends the X-Content-Type-Options=nosniff header.
|
||||
- Various constants can now be overridden by settings.
|
||||
- Support for `python setup.py test` to run the tox suite.
|
||||
|
||||
.. _documentation: http://dpaste.readthedocs.org/en/latest/
|
||||
|
||||
2.1 (2013-12-14)
|
||||
----------------
|
||||
|
||||
- Changes and fixes along the package management.
|
||||
|
||||
2.0 (2013-11-29)
|
||||
----------------
|
||||
|
||||
- A huge cleanup and nearly total rewrite.
|
||||
- dpaste now includes a Django project which is used on www.dpaste.de
|
||||
as well as hooks to get it integrated into existing projcts.
|
|
@ -3,11 +3,11 @@ There are various ways to install and deploy dpaste. See the guides below:
|
|||
|
||||
## dpaste with Docker
|
||||
---
|
||||
dpaste Docker images are available to pull from the [Docker Hub.](https://hub.docker.com/r/barttc/dpaste)
|
||||
dpaste Docker images are available to pull from the [Docker Hub.](https://hub.docker.com/r/DarrenOfficial/dpaste)
|
||||
|
||||
Quickstart to run a dpaste container image:
|
||||
```bash
|
||||
$ docker run --rm -p 8000:8000 barttc/dpaste:latest
|
||||
$ docker run --rm -p 8000:8000 DarrenOfficial/dpaste:latest
|
||||
```
|
||||
|
||||
The dpaste image serves the project using uWSGi and is ready for production-like environments. However it’s encouraged to use an external database to store the data. See the example below for all available options, specifically `DATABASE_URL`:
|
||||
|
@ -19,7 +19,7 @@ $ docker run --rm -p 12345:12345 \
|
|||
-e DEBUG=True \
|
||||
-e SECRET_KEY=super-secure-key \
|
||||
-e PORT=12345 \
|
||||
barttc/dpaste:latest
|
||||
DarrenOfficial/dpaste:latest
|
||||
```
|
||||
|
||||
## Integration into an existing Django project
|
||||
|
|
56
mkdocs.yml
56
mkdocs.yml
|
@ -4,52 +4,53 @@ site_url: https://docs.dpaste.org
|
|||
site_description: >-
|
||||
dpaste is a pastebin application written in Python using the Django framework.
|
||||
You can find a live installation on dpaste.org.
|
||||
repo_url: 'https://github.com/bartTC/dpaste'
|
||||
repo_url: 'https://github.com/DarrenOfficial/dpaste'
|
||||
edit_uri: 'https://github.com/DarrenOfficial/dpaste-docs/edit/main/docs'
|
||||
theme:
|
||||
palette:
|
||||
- scheme: slate
|
||||
primary: 'black'
|
||||
accent: 'green'
|
||||
toggle:
|
||||
icon: material/weather-night
|
||||
name: Switch to light mode
|
||||
- scheme: default
|
||||
primary: 'teal'
|
||||
accent: 'green'
|
||||
toggle:
|
||||
icon: material/weather-sunny
|
||||
name: Switch to dark mode
|
||||
include_search_page: false
|
||||
search_index_only: true
|
||||
name: material
|
||||
palette:
|
||||
- media: "(prefers-color-scheme: dark)"
|
||||
scheme: slate
|
||||
primary: indigo
|
||||
accent: red
|
||||
toggle:
|
||||
icon: material/lightbulb
|
||||
name: Switch to light mode
|
||||
- media: "(prefers-color-scheme: light)"
|
||||
scheme: default
|
||||
primary: cyan
|
||||
accent: red
|
||||
toggle:
|
||||
icon: material/lightbulb-outline
|
||||
name: Switch to dark mode
|
||||
font:
|
||||
text: 'Ubuntu'
|
||||
code: 'Source Code Pro'
|
||||
text: "Red Hat Text"
|
||||
code: "Roboto Mono"
|
||||
favicon:
|
||||
'https://darrennathanael.com/favicon.png'
|
||||
features:
|
||||
- navigation.tabs
|
||||
# - navigation.tabs.sticky
|
||||
- tabs
|
||||
- instantsite
|
||||
- navigation.tracking
|
||||
- navigation.expand
|
||||
# - header.autohide
|
||||
- content.code.annotate
|
||||
- navigation.indexes
|
||||
- navigation.instant
|
||||
# - navigation.sections
|
||||
- navigation.sections
|
||||
- navigation.top
|
||||
- navigation.tabs
|
||||
- search.highlight
|
||||
- search.suggest
|
||||
- toc.integrate
|
||||
markdown_extensions:
|
||||
- meta
|
||||
- admonition
|
||||
- pymdownx.details
|
||||
- pymdownx.superfences
|
||||
- pymdownx.tabbed
|
||||
- pymdownx.keys
|
||||
- attr_list
|
||||
- footnotes
|
||||
- pymdownx.betterem:
|
||||
smart_enable: all
|
||||
nav:
|
||||
|
@ -59,13 +60,18 @@ nav:
|
|||
- Management Commands: management_commands.md
|
||||
- Settings: settings.md
|
||||
- API: api.md
|
||||
- ChangeLog: changelog.md
|
||||
extra:
|
||||
social:
|
||||
- icon: 'fontawesome/brands/twitter'
|
||||
link: 'https://twitter.com/darrenuselinux'
|
||||
- icon: 'fontawesome/brands/github-alt'
|
||||
link: 'https://github.com/darrenofficial'
|
||||
- icon: 'fontawesome/brands/discourse'
|
||||
link: 'https://forum.darrennathanael.com'
|
||||
- icon: 'fontawesome/brands/discord'
|
||||
link: 'https://discord.darrennathanael.com'
|
||||
- icon: 'fontawesome/brands/docker'
|
||||
link: 'https://hub.docker.com/r/darrenofficial/dpaste'
|
||||
generator: true
|
||||
copyright: '© 2013-2021, Martin Mahner; © 2022, Darren Nathanael'
|
||||
copyright: >-
|
||||
© 2009 BartTC
|
||||
© 2022 Darren Nathanael
|
Loading…
Reference in New Issue