2019-02-25に更新

純粋なPythonでHTMLを記述するライブラリを作ったから使ってほしいだけの記事

TL;DR

Crieitに記事を投稿するのはすさまじく久しぶりな気がしますが…。
おはようございます、こんにちは、今晩は。Frodoです。

さて、今回は自作ライブラリをPyPIに登録したので使ってみてほしいというだけの記事になりますw
どういうライブラリを作ったのかと言いますと、純粋なPythonの構文だけで比較的分かりやすくHTMLを構築するライブラリです。

HTMLのテンプレートライブラリと言えばPythonではJinjaが有名でしょうか。
ですが、JinjaはPythonの文法をほとんど全くフォローしておらず、新しくまったく別な言語を覚えることになってしまいます。
よく使われているWebフレームワークのDjangoのテンプレート言語も似たようなものですね。

そこで、純粋にPythonの言語機能のみを使ってHTMLを構築できないかと作ったのがRattle.pyです。
Rattle.pyには次のような特徴があります。

  1. 小型・軽量であること。Rattle.pyには依存しているライブラリがありません。
  2. 純粋なPythonの文法のみでHTMLが構築できること。HTMLやPythonが分かっていれば覚えることはほとんどありません。
  3. 日本語でサポートが受けられること。開発者が日本人ですから当然です。もちろん、英語でのサポートもあります。

説明してもイメージがわかないと思いますので、実際に使ってみたいと思います。

実際に使ってみる

まずはインストールしましょう。話はそれからです。

$ pip install rattlepy

このように、普通のライブラリと同様pipで簡単に導入できます。
使うのも驚くくらい簡単です。

from rattlepy.templating import (
  html, body, head,
  title, h1, p, div, span, text,
  meta, link)

with html(lang='ja') as elem:
  with head():
    meta(charset='utf-8')
    meta(name='viewport', content='initial-scale=1.0;width=device-width')
    link(href='main.css', rel='stylesheet', type='text/css')
    with title():
      text("Hello, Rattle.py!")
  with body():
    with div(className='container'):
      with h1(): text("Hello, Rattle.py!")
      with p():
        text("Rattle.py is a html templating library.")
        with span(className='emphasized'):
          text("This library can support you to make HTML in pure Python.")

print(elem)

これを実行するとこうなります。

<html lang="ja">
    <head>
        <meta charset="utf-8"/>
        <meta name="viewport" content="initial-scale=1.0;width=device-width"/>
        <link href="main.css" rel="stylesheet" type="text/css"/>
        <title>
            Hello, Rattle.py!
        </title>
    </head>
    <body>
        <div class="container">
            <h1>
                Hello, Rattle.py!
            </h1>
            <p>
                Rattle.py is a html templating library.
                <span class="emphasized">
                    This library can support you to make HTML in pure Python.
                </span>
            </p>
        </div>
    </body>
</html>

このように、非常に簡単にHTMLが記述できるのです。
また、これは純粋なPythonですから、何も考えずにPythonの変数を使ったり関数を呼び出したりできます。
これRattle.pyの特徴です。

興味を持っていただけたら

このライブラリは開発中で、いろいろと未実装の機能が多くあります。
また、使って頂き、フィードバックや意見がいただけると、それがどのようなものであっても励みになります。

GitHubのリポジトリもぜひチェックしてみてください。スターなど頂けたら激しく喜びます。
フィードバックや意見は@BoufrawFrodo2にメンションして送っていただくか、GitHubにissueを立てて頂ければチェックします。
完全に宣伝な記事でしたが、最後までお付き合いありがとうございました!

ツイッターでシェア
みんなに共有、忘れないようにメモ

frodo821

Pythonをこよなく愛するプログラマ。広く浅くアンテナを張っている(つもり)。 出来ることと言えばフロントエンド全般やJava、Kotlinを使ったアプリ開発、PHP/Pythonでバックエンドが少々にC#、Python、Java、Kotlin、Scalaなどを使ったデスクトップ開発くらいのもの。PyPIで自作ライブラリ公開したりもしている。https://pypi.org/project/rattlepy/ https://pypi.org/project/groom/ 好きなフロントエンドフレームワークはReact、バックエンドフレームワークはCodeIgniterとMasonite。自分のサイトもReactを使って構築した。

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント