0.0.3 • Published 3 years ago

jqpug v0.0.3

Weekly downloads
6
License
MIT
Repository
github
Last release
3 years ago

JQpug

これは何?

pug形式でstringを渡すと、その通りにjQueryオブジェクトにして返します。

※完全サポートじゃないです!

使うための準備

HTMLに普通に読み込む場合。 当然ですが、jQueryが必要です。

<script src="./jquery.min.js"></script>
<script src="../dist/jqpug.min.js"></script>

npmでもはいります。

npm install --save-dev jquery @type/jquery jqpug

簡単なサンプル

一行のpugにだけ対応しています。

// jQueryのみで書いた場合
jQuery("#target").append(
    jQuery("<span>").addClass("some_class").attr("title", "サンプル").text("こんいちわ")
);

// pugっぽいので書いたとき
jQuery("#target").append(
    jqpug("span.some_class(title=サンプル) こんにちわ")
);

短く書けますね!

他のサンプル

連続で作成する例

jqpug("section", [
    jqpug("h4 Hello World!", jqpug("span.badge 4")),
    jqpug("p 吾輩はねこである"),
]);

上記のように書くと下記のようなものができます。

<section>
    <h4>Hello World!
        <span class="badge">4</span>
    </h4>
    <p>吾輩はねこである</p>
</section>

イベントなどをつける例

jqpug("section", [
    jqpug("h4 Click Smple"),
    jqpug("a", {
        attr: {
            href: "http://google.co.jqpug",
            target: "_blank",
        },
        text: "jump to google site!",
    }),
    jqpug("button", {
        attr: {
            type: "button",
        },
        text: "click then console.log('hoge')",
        click: () => {
            console.log("hoge");
        },
    }),
]);

上記のように書くと下記のようなものができます。 button要素にはイベントがつきます。

<section>
    <h4>Click Smple</h4>
    <a href="http://google.co.jqpug" target="_blank">jump to google site!</a>
    <button type="button">click then console.log('hoge')</button>
</section>

仕様

const $obj = jqpug(pugString: string, options: string | number | JQuery | Array<JQuery> | JQpugOptions);

pugString: string

現在のバージョンではワンライナーのPugの書き方のみに対応しています。 (いつかはヒアドキュメントに対応するかもしれません)

options: string | number | JQuery | Array\<JQuery> | JQpugOptions

string | number

第二要素にstring、もしくはnumberを設定した場合は生成したjQuery要素に対してテキストとして設定されます。pugのストリングに含めることでも同じことができます。

var hoge1 = jqpug("p", "こんにちは"); // <p>こんにちは</p>
var hoge2 = jqpug("p こんにちは"); // <p>こんにちは</p>

var moge1 = jqpug("p", 100); // <p>100</p>
var moge2 = jqpug("p 100"); // <p>100</p>

JQuery | Array\<JQuery>

第二要素にjQueryオブジェクト、もしくはjQueryオブジェクト配列を設定した場合は生成したjQuery要素に対して小要素として追加します。

JQpugOptions(オブジェクト型)

作成したjQueryオブジェクトに対して色々設定します。

sample

var $obj = jqpug("div", {
    class: "panel panel-default",
    attr: {
        title: "panelです",
    },
    css: {
        border: "1px",
    },
    text: "こんにちわ",
    content: [
        jqpug("div.panel-title パネルのタイトルです"),
        jqpug("div.panel-body パネルのボディです"),
    ],
    click: ($self) => {
        console.log($self);
    },
});

説明

KEYVALUEの型説明
classstring/string[]jQueryオブジェクトにclass属性を追加します。pugでも表現できますが、こちらで設定することもできます。
attr{key: string]: string/number}jQueryオブジェクトに属性を追加します。jQueryのattrメソッドで設定します。
css{key: string]: string/number}jQueryオブジェクトにCSSを追加します。jQueryのcssメソッドで設定します。
textstringjQueryオブジェクトにinnerTextを追加します。jQueryのtextメソッドで追加されます。pugでも表現できますが、こちらで設定することもできます。
htmlstringjQueryオブジェクトにinnerHtmlとして設定します。jQueryのhtmlメソッドで追加されます。
contentjQuery/jQuery[]jQueryオブジェクトに子要素として追加します。jQueryのappendメソッドで追加されます。
click($self: jQuery) => voidjQueryオブジェクトにclickイベントを設定します。設定する第一引数はクリックされたjQueryオブジェクトを渡します。バブリングはキャンセルしてます。

以上です 🍺

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago