• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

.github/workflows/25-Apr-2025-8280

bench/25-Apr-2025-7247

docs/25-Apr-2025-314213

requirements/25-Apr-2025-9991

src/25-Apr-2025-706577

tests/25-Apr-2025-307214

.editorconfigD25-Apr-2025243 1713

.gitignoreD25-Apr-2025147 1918

.pre-commit-config.yamlD25-Apr-2025715 2726

.readthedocs.yamlD25-Apr-2025131 98

Android.bpD25-Apr-2025530 2320

CHANGES.rstD25-Apr-20251.8 KiB10259

LICENSE.rstD25-Apr-20251.4 KiB2923

MANIFEST.inD25-Apr-2025125 87

README.rstD25-Apr-20251.9 KiB6946

setup.cfgD25-Apr-20251.7 KiB7164

setup.pyD25-Apr-20252.2 KiB8064

tox.iniD25-Apr-2025440 2016

README.rst

1MarkupSafe
2==========
3
4MarkupSafe implements a text object that escapes characters so it is
5safe to use in HTML and XML. Characters that have special meanings are
6replaced so that they display as the actual characters. This mitigates
7injection attacks, meaning untrusted user input can safely be displayed
8on a page.
9
10
11Installing
12----------
13
14Install and update using `pip`_:
15
16.. code-block:: text
17
18    pip install -U MarkupSafe
19
20.. _pip: https://pip.pypa.io/en/stable/quickstart/
21
22
23Examples
24--------
25
26.. code-block:: pycon
27
28    >>> from markupsafe import Markup, escape
29
30    >>> # escape replaces special characters and wraps in Markup
31    >>> escape("<script>alert(document.cookie);</script>")
32    Markup('&lt;script&gt;alert(document.cookie);&lt;/script&gt;')
33
34    >>> # wrap in Markup to mark text "safe" and prevent escaping
35    >>> Markup("<strong>Hello</strong>")
36    Markup('<strong>hello</strong>')
37
38    >>> escape(Markup("<strong>Hello</strong>"))
39    Markup('<strong>hello</strong>')
40
41    >>> # Markup is a str subclass
42    >>> # methods and operators escape their arguments
43    >>> template = Markup("Hello <em>{name}</em>")
44    >>> template.format(name='"World"')
45    Markup('Hello <em>&#34;World&#34;</em>')
46
47
48Donate
49------
50
51The Pallets organization develops and supports MarkupSafe and other
52libraries that use it. In order to grow the community of contributors
53and users, and allow the maintainers to devote more time to the
54projects, `please donate today`_.
55
56.. _please donate today: https://palletsprojects.com/donate
57
58
59Links
60-----
61
62*   Website: https://palletsprojects.com/p/markupsafe/
63*   Documentation: https://markupsafe.palletsprojects.com/
64*   Releases: https://pypi.org/project/MarkupSafe/
65*   Code: https://github.com/pallets/markupsafe
66*   Issue tracker: https://github.com/pallets/markupsafe/issues
67*   Test status: https://dev.azure.com/pallets/markupsafe/_build
68*   Official chat: https://discord.gg/t6rrQZH
69