0

CSS 構文と基本原則は、スタイルだけでなく、非常に役立つと思います。XML のルールのように、CSS のようなルールで動作する PARSE エンジンはありますか?


たとえば、xml スタイルでページを定義するフレームワークのようなもの (はい、別のもの) を作成できます (単なる例、非常にばかげているか、2 つ複雑かもしれません)。

<page id="index" url="/" controller="staticpage" />
<page id="about" url="/" controller="staticpage" action="about" />
<page id="post" url="/post/(\d+)" type="regex" controller="post" class="">
     <param id="1" name="post_id" />
</page>
<page id="post_comment" url="/comment/(\d+)" type="regex" controller="post" action="comment" class="authneeded">
     <param id="1" name="post_id" />
</page>
<page id="post_write" url="/write" type="regex" controller="staticpage" action="write" class="authneeded" />

次に、そのための「CSS」を記述します。

* {
     layout: "layout.html"; // default layout
}
*[action=''] {
     action: "index"; // default action
}
#post_write {
     layout: "adminlayout.html";
}
.authneeded {
     redirect: "/";
}
.authneeded:loggedin {  // pseudoclass which is set only if the user logged in. 
                        // (maybe POSTS:loggedin .authneeded to apply only one
                        // pseudoclass)

     redirect: false;   // no, we don't need to redirect then the user logged in
}

構成するのは面白い方法ではありませんか? さらに良いことに、管理スクリプトを作成できます (jquery に触発されました;)

./admin #about addClass authneeded 
./admin "#post PARAM" attr id param_post

では、CSS のようなルールで動作するエンジンはありますか?

4

3 に答える 3

0

正確にはCSSではありませんが、XMLについて言及しているので、さまざまな方法でXMLを変換するために使用できるXSLTが常にあります。たとえば、単純なXMLファイルなどからHTMLリストを作成できます。

于 2009-12-01T19:21:29.470 に答える
0

CSSセレクターを使用してHTMLマークアップを生成するMac用のHTML/CSSエディターのデモを見てきました。プログラムの名前は覚えていませんが、HTMLを書くための非常にエレガントで効率的な方法のようです。

それがどのように機能するかを理解するために、エディターでこれを記述するとします。

ul#navigation li a.active

そして、いくつかの魔法のシ​​ョートカットキー(または単にEnter)を押して、これに変換します:

<ul id="navigation">
    <li><a class="active"></a></li>
</ul>

私には、これはCSSの論理的な使用法のように思えます。あなたが説明したように、メタデータにそれを使用することは、それを分離させたい場合に役立つかもしれません。

ただし、あなたの例では、この2つは非常に密接に関連しています。paramまた、XMLでデフォルト値と条件を設定することは、(タグと同じように)理にかなっています。

于 2009-12-01T20:37:53.363 に答える
-1

もう済んでいると言えるでしょうか。以下は、grails と django の URL マッピングです。これは CSS ではありませんが、CSS にはアクションではなくスタイルが含まれているはずであり、構文はそれほど違いはありません。

grails では、UrlMapping.groovy は次のようになります。

class UrlMappings {
    static mappings = {
      "/$controller/$action?/$id?"{
        constraints {
       // apply constraints here
      }
    }
    "/"(controller:"static")
    "500"(view:'/error')
    "/product/" (controller:"myController", action:"show")
    "/old/**" (view:"/index")
    "/uploads/$requestedFile**" (controller:"processFile")
  }
}

パイソンでは:

urlpatterns = patterns('',
    # Example:
    (r'^$', direct_to_template, {'template': 'pages/front.html' }),
    (r'^about/',direct_to_template, {'template': 'pages/about.html' }),
    (r'^demo/',direct_to_template, {'template':'pages/demo.html'}),
    (r'^accounts/', include('apps.accounts.urls')),
    (r'^forms/', include('apps.forms.urls')),
    (r'^admin/doc/', include('django.contrib.admindocs.urls')),
    (r'^admin/(.*)', admin.site.root),
    {'document_root': settings.MEDIA_ROOT}),
)

私の個人的な好みは、あなたが提示したスクリプトにたまたま似ている Grails です。grails では、ほとんどの URL/アクションがコントローラーによって自動生成されるため、構成は必要ありませんが、世界が完全ではない場合に備えてあります;)。

于 2009-12-01T19:28:19.640 に答える