Skip to main content

Converts text to html. Text muste be in t5html form.

Project description

T5HTML

Converts a text file into HTML.

The text must be formatted according to the rules of a Trivial Text Tree To Trivial HTML (T5HTML) file.



Example

## t5html

## definitions / macros
##
DCT := <!DOCTYPE html>
CHARSET := meta charset=utf-8
VIEWPORT := meta name=viewport
DESC := meta name=description content="A simple HTML5 Template"
AUTHOR := meta name=author content=splendor
OG_PROPERTY := meta property=og:title content=HTML5-Template |
            .. meta property=og:type content=website |
            .. meta property=og.url content=www.example.org |
            .. meta property=og.description content="Example for t5html" |
            .. meta property=og.image content=noneatm
FAVICON := link rel=icon href=/favicon.ico |
        .. link rel=icon href=/favicon.svg type=image/svg+xml |
        .. link rel=apple-touch-icon href=/apple-touch-icon.png
CSS_ := link rel=stylesheet 
JS_  := script src=

## DOCUMENT-TREE
#
!DCT
html > head
      # not more then one multiline macro per line
      CHARSET | DESC | AUTHOR | FAVICON
      OG_PROPERTY
      CSS_ href=css/styles.css?v=23.1
      JS_ js/script.js
   body
      main
         article#example
            h1 > "This is an t5html-example
            p class=p-normal
               " A human readable, strucured file
               .. written in a specific format called the
               .. Trivial Text-Tree To Trivial HTML (ttttthtml or t5html)
               .. format, allows for easy prototyping of web-pages.



# vi: set et sw=3 ts=3 :

translates into:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <meta name="description" content="A simple HTML5 Template"/>
    <meta name="author" content="splendor"/>
    <link rel="icon" href="/favicon.ico"/>
    <link rel="icon" href="/favicon.svg" type="image/svg+xml"/>
    <link rel="apple-touch-icon" href="/apple-touch-icon.png"/>
    <meta property="og:title" content="HTML5-Template"/>
    <meta property="og:type" content="website"/>
    <meta property="og.url" content="www.example.org"/>
    <meta property="og.description" content="Example for t5html"/>
    <meta property="og.image" content="noneatm"/>
    <link rel="stylesheet" href="css/styles.css?v=23.1"/>
    <script src="js/script.js"/>
  </head>
  <body>
    <main>
      <article id="example">
        <h1>
          This is an t5html-example
        </h1>
        <p class="p-normal">
           A human readable, strucured file written in a specific format called the Trivial Text-Tree To Trivial HTML (ttttthtml or t5html) format, allows for easy prototyping of web-pages.
        </p>
      </article>
    </main>
  </body>
</html>

t5html-Syntax

  1. Every line stand on its own as a syntactic element, except ...

  2. .. if a line is the continuation of a previous one, signified by a leading ..

  3. Spaces are important! They delimit words as syntactic elements.

  4. Indentation matters! Every indentation marks a hierarchical step down!

  5. There are six types of lines: blank, verbatim, elements, comments, macros text-nodes.

  6. Every line-type starts with a special symbol, except: blanks, elements and macros (!!, ##, "").

  7. Macros have a macroname followed by an assignment operator := and after a white-space the macro-value.

  8. The first word of an element-line is the element's name.

  9. Indentation are 3 whitespaces! Do not use tabs!

  10. There is a special syntax for id and class attributes: div#id.class !

  11. > means an hierarchical step down, < up and | same hierarchical level if uses in the same line. They substitute indentation if used in the same line, e.g.: div > p > "Paragraph text.

  12. A leading " double-quote marks a text-node.

Feature-Matrix

Feature 23.6.1 23.1b28 Explanation/Example
Line Continuation ('..') + + .. continue previous
Comments ('#') + + # im a comment
Inline Indentation ('><|') + + div > h1 > div > p
untouched literal lines ('!') + + ! <-- html comment -->
first word as element-name + + first word is the tag
id attribute ('tag#id') + + tag#id -> tag id="id"
class attribute ('tag.id') + + tag.cls -> tag class=""
text-nodes (' " ') + + p > "text -> <p>text</p>
Macro Expansion (' := ') + + MACRONAME := expansion
non recursive macro expansion + macroname expanded only once per line
Macro Imports ('@ . from .') + @ filename from ./dir

For Developers

Start with Read.4dev in the doc directory.

Disclaimers

This Read.Me is a link to doc/Read.us! The License is in meta/license.

Additional Examples

## t5html
@@ stdlib.t5i

_SCREEN-500 := "screen AND (max-width:500px)"


!! HTML5
html
   head > UTF8 | AUTHOR_splendor | DESC_"An Example page for the T5HTML-system" 
      title > "Example Three 
      FAVICON
      MEDIA__SCREEN-500 > !! a { background: white }
      CSS_css/main.css
      REFRESH_5
   body
      header
         nav.home > button 
      main
      aside
      footer
      template
         div single-attribute other-attribute
            A_assets/images/home.png > img src=images/home.png

## vi: set et sw=3 ts=3 ai ft=t5html :

will be translated into the following, if the stdlib macros are in $HOME/.local/share/t5html :

<!DOCTPYE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <meta name="author" content="splendor"/>
    <meta name="description" content="An Example page for the T5HTML-system"/>
    <title>
      Example Three
    </title>
    <link rel="icon" href="/favicon.ico"/>
    <link rel="icon" href="/favicon.svg" type="image/svg+xml"/>
    <link rel="apple-touch-icon" href="/apple-touch-icon.png"/>
    <style type="text/css" media="screen AND (max-width:500px)">
       a { background: white }
    </style>
    <link rel="stylesheet" href="css/main.css"/>
    <meta http-equiv="refresh" content="5"/>
  </head>
  <body>
    <header>
      <nav class="home">
        <button/>
      </nav>
    </header>
    <main/>
    <aside/>
    <footer/>
    <template>
      <div single-attribute other-attribute>
        <a href="assets/images/home.png">
          <img src="images/home.png">
        </a>
      </div>
    </template>
  </body>
</html>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

t5html-23.6.2.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

t5html-23.6.2-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file t5html-23.6.2.tar.gz.

File metadata

  • Download URL: t5html-23.6.2.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for t5html-23.6.2.tar.gz
Algorithm Hash digest
SHA256 a5f47119ae69ff33ba0fe3f8775d79c1f7e0ef06aff65a54415d343de46f4bc3
MD5 066dc3da61338bf1205518ae27cec829
BLAKE2b-256 998a776ba187dd80ae0fb6b669061bf4e6c1ac32848375c8b3c408ad3cd8c755

See more details on using hashes here.

File details

Details for the file t5html-23.6.2-py3-none-any.whl.

File metadata

  • Download URL: t5html-23.6.2-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.6

File hashes

Hashes for t5html-23.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 184511235bf0a4238c8aef1aee1f8ddfe70ea6bd9fdc23d8dd9942af630340b3
MD5 3c0a456a541b31af4450ff8c5397e048
BLAKE2b-256 d746c837198ffc20a43a7344c608a6793c76272bb70db5110522c1aa4d488371

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page