Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python.announce > #4358

[Python-announce] JustHTML 1.6.0 released

Path csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail
From Emil Stenström <emil@emilstenstrom.se>
Newsgroups comp.lang.python.announce
Subject [Python-announce] JustHTML 1.6.0 released
Date Sat, 07 Feb 2026 12:05:46 +0100
Lines 12
Approved python-announce-list@python.org
Message-ID <dbd1939e-f18e-446d-8c85-d4237eb6338a@app.fastmail.com> (permalink)
Reply-To python-list@python.org
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding base64
X-Trace news.uni-berlin.de NghOEsSuZjPkBRq4LDd2RweGFCcfMqc6klQwn02PvAIw==
Cancel-Lock sha1:8JxIDEsJPk3NuYIjjW2/nyPNc88= sha256:2lMZxoXCvVaIRV2IqNnuv6Vre6DM0oFsENsOyIOW8JQ=
Delivered-To python-announce-list@x.python.org
Authentication-Results mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=emilstenstrom.se header.i=@emilstenstrom.se header.b=JTXaCVeW; dkim-adsp=pass; dkim-atps=neutral
X-Spam-Status OK 0.046
X-Spam-Evidence '*H*': 0.91; '*S*': 0.01; 'pip': 0.04; 'to:addr :python-announce-list': 0.09; 'import': 0.15; 'url-ip:140/8': 0.15; 'css': 0.16; 'doc': 0.16; 'license:': 0.16; 'received:10.202': 0.16; 'received:10.202.2': 0.16; 'received:internal': 0.16; 'received:messagingengine.com': 0.16; 'url-ip:140.82/16': 0.17; '\xe2\x80\x94': 0.22; 'install': 0.23; 'url:github': 0.23; 'example': 0.37; 'url-ip:185.199.108.153/32': 0.39; 'url-ip:185.199.108/24': 0.39; 'url-ip:185.199/16': 0.39; 'skip:h 10': 0.61; 'from:charset:utf-8': 0.63; 'received:userid': 0.66; 'received:202': 0.69; 'contact:': 0.70; 'skip:f 30': 0.71; 'mit': 0.76; '&lt;p': 0.84; 'skip:j 20': 0.84
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d= emilstenstrom.se; h=cc:content-type:content-type:date:date:from :from:in-reply-to:message-id:mime-version:reply-to:subject :subject:to:to; s=fm2; t=1770462385; x=1770548785; bh=x8XDSmbjLG HeA7Y6m84o9PxcmqZElH4KLnZHJGg93T4=; b=JTXaCVeWwUlz+tJ824j0MYebnw YWfQv4EpDol5pCl2v5/JKyrjvA+/E+0qAMTjozA0bABSYCXxUrrh923Dw/iLzY6N nAJ0SD7OYSZIg5g1wAqAJeK+vltE4Kst69bm+ypWPDEAlZl9XQMfVkk17dQAVtm2 q1n/nXSMNBBCczAwIxWrUkuBktkseyDdUfxzoPcFcOwC6xuP8PeqBtI01A47YCS1 fkr0LQWgReWAzCcNSk4J6iWR/1TJdbT76BqT+MF9mnTXng1o4uBYil7Q/q54VcX1 VGqL+FbQyR7Ox56FMkRS7yuihL45qCgPzrxFGLMLzKa6rMsNzBaNKbi2OKZA==
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1770462385; x= 1770548785; bh=x8XDSmbjLGHeA7Y6m84o9PxcmqZElH4KLnZHJGg93T4=; b=Z 9DMJk4AFd/kN5SfEZVRfy7LMCHmaO38qQScpZD/LJVb0XsHI2zXi1l3QgAP0qdBi Hm8DPs5XXyMag+xQvraafzigj10/bV+4l43OZ+yQA8k8smQ0F0epSS3m8cIkVw6W +80pQHbH6iyql/mjI6/18hzDxu0j2pRA2KRC6fSkYWjKPraauiE7yGJvFxwtPuea rk9WppH6eDRNb8AWyHZRs+tOuvLE4Coz0JmgyblppZpw8RzG7SZRUI2ZeIsPzupd G7EFHiDL+ndzZTw6za/UGnHW9DLUBhGxqWPRyytsDEbIxckW/KV7wUOyEfN8GUks ZOCpzif/kx8W7/ax2V+1Q==
X-ME-Sender <xms:sByHaezZWsQ7HE_s2lrydzEgYaUCitnMxJe31l6yIwzPCDwX0Ul4IA> <xme:sByHaVGll6PHpT1MaHOod-SdmpQP83HQuC1m0k7v2RxCuDe--rdwEK5d4eipG8Fyj GioUbZHaOg5X1Hr6US_S4TkrswRPAvkjXyzbGIFLmMGMBP4Cc5GEg>
X-ME-Proxy-Cause gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdduledtkeekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucgoufhushhpvggtthffohhmrghinhculdegledmnecujf gurhepofggfffhvffkufgtsegrtderreertdejnecuhfhrohhmpefgmhhilhcuufhtvghn shhtrhpnmhcuoegvmhhilhesvghmihhlshhtvghnshhtrhhomhdrshgvqeenucggtffrrg htthgvrhhnpeeuheegueeugfduvdekffefgedvgfefffeggffhkeeuueekhfehgedtleeh hfeffeenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhgihhthhhusgdrihhonecuve hluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepvghmihhlsegv mhhilhhsthgvnhhsthhrohhmrdhsvgdpnhgspghrtghpthhtohepuddpmhhouggvpehsmh htphhouhhtpdhrtghpthhtohepphihthhhohhnqdgrnhhnohhunhgtvgdqlhhishhtsehp hihthhhonhdrohhrgh
X-ME-Proxy <xmx:sByHaYV2ibyob1SJPXKSbK8klq2ss1bTMu4IFsFzU2LpUNNRetSKwg> <xmx:sRyHaTgJPwaKPF2jMsb6UQ72SfnHerkoUyaiu7rOXpfj8bBFTvkvUg> <xmx:sRyHaSCo4dYt-gZzV-Nhu6TAs_OUSwOjtTGb88dSZqMtTT8SGRTr0Q> <xmx:sRyHacfWFmES2kb-H9wkElyemZRlqaT6FZ24MY4f8zwh8Ik3AmZaAg> <xmx:sRyHaeMSN8Q_fzEh9HKMfo36oy1baheGa-LXuqEylraaEND3HAuvaRS6>
Feedback-ID i2491424a:Fastmail
X-Mailer MessagingEngine.com Webmail Interface
X-ThreadId A5E1phrp4aDs
X-MailFrom emil@emilstenstrom.se
X-Mailman-Rule-Hits emergency
X-Mailman-Rule-Misses dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-python-announce-list.python.org-0; header-match-python-announce-list.python.org-1; header-match-python-announce-list.python.org-2; header-match-python-announce-list.python.org-3; header-match-python-announce-list.python.org-4
Message-ID-Hash ZSK6BVFEWURYU5TBSJHXAZBSNDDVW5PY
X-Message-ID-Hash ZSK6BVFEWURYU5TBSJHXAZBSNDDVW5PY
X-Mailman-Approved-At Sat, 07 Feb 2026 07:20:20 -0500
X-Content-Filtered-By Mailman/MimeDel 3.3.11b1
X-Mailman-Version 3.3.11b1
Precedence list
List-Id Announcement-only list for the Python programming language <python-announce-list.python.org>
Archived-At <https://mail.python.org/archives/list/python-announce-list@python.org/message/ZSK6BVFEWURYU5TBSJHXAZBSNDDVW5PY/>
List-Archive <https://mail.python.org/archives/list/python-announce-list@python.org/>
List-Help <mailto:python-announce-list-request@python.org?subject=help>
List-Owner <mailto:python-announce-list-owner@python.org>
List-Post <mailto:python-announce-list@python.org>
List-Subscribe <mailto:python-announce-list-join@python.org>
List-Unsubscribe <mailto:python-announce-list-leave@python.org>
Xref csiph.com comp.lang.python.announce:4358

Show key headers only | View raw


Subject: JustHTML 1.6.0 — pure-Python HTML5 parser (CSS selectors + sanitizer)

Install: pip install justhtml
Repo: https://github.com/EmilStenstrom/justhtml
Docs: https://emilstenstrom.github.io/justhtml/

Example (CSS selectors):
from justhtml import JustHTML
doc = JustHTML("<div><p class='x'>Hi</p><p>Bye</p></div>", fragment=True)
print(doc.query_one("div p.x").to_html(pretty=False))
# <p class="x">Hi</p>

License: MIT
Contact: emil@emilstenstrom.se

<P><A HREF="https://emilstenstrom.github.io/justhtml/">JustHTML 1.6.0</A> - Pure-Python
HTML5 parser with CSS selectors and built-in sanitization. (07-Feb-26)

--
Emil Stenström

Back to comp.lang.python.announce | Previous | Next | Find similar


Thread

[Python-announce] JustHTML 1.6.0 released Emil Stenström <emil@emilstenstrom.se> - 2026-02-07 12:05 +0100

csiph-web