Skip to content

ceprio/bs4tag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This library is based on the sources and definitions of yattag with the fondamental difference that BeautifulSoup is used as the html renderer.

Differences between bs4tag and yattag

* At this time, only SimpleDoc has been converted, Doc class is work in progress.*

  • The SimpleDoc/Doc object contains a BeautifulSoup intance in the soup attribute
  • asis() and ttls() functions added to SimpleDoc

( tutorial for both libraries: yattag.org and BS4)

Limitations

  • No support for custom indentation (indent)
  • stag_end option is not available

Basic example

Nested html tags, no need to close tags, same as yattag.

from bs4tag import Doc

doc, tag, text = Doc().tagtext()

with tag('html'):
    with tag('body', id = 'hello'):
        with tag('h1'):
            text('Hello world!')

print(doc.getvalue())

With BeautifulSoup added functionalities

Insert bs4tag document into a BeautifulSoup instance.

def body_text():
    doc, tag, text = SimpleDoc().tagtext()
    with tag('h1'):
        text('Hello world!')
    return doc.soup


doc, tag, text = SimpleDoc().tagtext()

with tag('html'):
    with tag('body', id='hello'):
        pass

doc.soup.find(id='hello').append(body_text())

print(doc.getvalue())
# <html><body id="hello"><h1>Hello world!</h1></body></html>

Installation

pip3 install bs4tag

This library is compatible with the tutorial on yattag.org

GitHub repo: https://github.com/ceprio/bs4tag Derived from: https://github.com/leforestier/yattag

About

Yattag like html generator but with Beautifulsoup as base document

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages