2015-12-11 50 views
1

我對模式實驗室很新,但我覺得如果這不是一個功能,它應該是。模式實驗室模板

本質上,我想在一個真實網站之後爲模式實驗室建模。在大多數(或許多)真實網站中,通常使用模板引擎。對於我使用過的任何主流技術(rails,django,ASP.Net或帶有句柄的節點)來說,都是如此,來管理視圖層。在這個例子中,我將使用句柄,因爲它最接近地反映了Pattern Lab鬍鬚語法。

一個模板引擎的大國正在建設一個基地佈局,其中可能包括<html><head><meta><body>{{> header }},並{{> footer }}。然後,你有動態內容塊如{{{ body }}}{{ title }}

Pattern Lab在使用_data.json,特定於頁面的json或參數來處理動態{{ title }}變量時做得非常好。但是,爲了使整個body的內容動態化,你必須將所有內容寫入json文件,或者通過pattern parameters傳遞它。但是這會限制你的內容,因爲你不能將其他的partials作爲參數傳遞或者將它們存儲在json中。

另一種選擇可能是例如創建一堆pseudo patterns

<div class="main-container"> 
{{> organisms-header }} 
    <div class="page-content"> 
     {{# first }} 
      {{> organisms-first-page }} 
     {{/ first }} 
     {{# second }} 
      {{> organisms-second-page }} 
     {{/ second }} 
     {{# third }} 
      {{> organisms-third-page }} 
     {{/ third }} 
    </div> 
{{> organisms-footer }} 
</div> 

但你不得不窩,你想用的每一頁。

希望這有助於並有意義。希望我只是想念一些超級明目張膽的東西:)

回答

4

Brian - 模式實驗室節點的維護人員在這裏。我會盡我所能爲模式實驗室發言,但我最徹底的熟悉在node version

模式實驗室利用模板語言是,建立分層模式,利用它打算支持的原子設計原則。 然而,Pattern Lab並不是一個完整的模板引擎,它具有您提到的動態身體注入,ala Jekyll或ASP.NET。

您對peudo-patterns的評估不完全或至少不一定像您所做的那樣複雜。如果仔細觀察該文檔,您會看到單個.json文件變體是創建相同模板或頁面的單獨實例的東西。

所以不是

{{# first }} 
     {{> organisms-first-page }} 
    {{/ first }} 
    {{# second }} 
     {{> organisms-second-page }} 
    {{/ second }} 
    {{# third }} 
     {{> organisms-third-page }} 
    {{/ third }} 

你可以做

 {{> organisms-page }} 

,然後在日期爲各個頁面動態切換。但是,再次,這是真正的設計和開發,而不是生產配置,除非你設計了一些東西以你喜歡的方式提供這些結果。想象一下,如果像https://github.com/pattern-lab/patternlab-node/blob/master/source/_patterns/04-pages/01-blog.json這樣的文件是實際的博客文章,並且有類似的名稱爲123-blog-post-name.json的任何同級博客帖子,其中的數據會換成the blog template。希望解釋有點...

最後需要說明的 我提出了我如何使用模式實驗室設計,建造和維護這裏生產傑基爾網站:http://www.brianmuenzenmeyer.com/using-patternlab-to-design-build-and-maintain-a-website/。它成功地將Pattern Lab的設計/模塊化優勢與Jekyll/Github Pages的執行結合在一起。

祕密醬汁利用模式出口(在文章中詳細說明)與jeykll包括。這裏是我的layout file的摘錄:

<body> 

{% include organisms-header.html %} 

<main role="main"> 
    {{ content }} 
</main> 

<footer> 
    {% include organisms-footer.html %} 
</footer> 
... 
</body> 

所以,不完美,但我相信我可以說,圖案實驗室並不意味着對生產基地的經營佈局平臺,布拉德和戴夫說,它的動態內容交付的工作原理是將.json文件替換爲分層模板+部分集。

+1

URL該條不再與結尾的斜線的作品,但文章仍然可以在這裏找到:http://www.brianmuenzenmeyer.com/using-patternlab-to-design-build-and-maintain-a-website – Pascal

4

這與Mustache相比,它更像是Pattern Lab。 PHP和Node版本分別僅針對每種語言使用Mustache庫。不幸的是,在official spec中沒有佈局的概念。模式參數在Mustache本身之外實現。

由於PHP和節點版本變得更加模塊化,我認爲我們將看到的佈局來圖案實驗室從支持原生地模板語言。例如,Pattern Lab的PHP版本現在有Twig edition。它使用「擴展」作爲佈局的一種工作方式。對不起,我沒有足夠的代表發佈鏈接到示例。

因此,在某種意義上它是是未來一個功能,但它不是正由格局實驗室團隊直接實現。 FWIW,我認爲以這種方式實現的佈局與支持Pattern Lab的原則是一致的,但是開發人員需要弄清楚他們最希望如何使用該工具。

+0

感謝您將一些想法太戴夫 –

+0

注意Mustache.php和至少一個JS實現鬍鬚(hogan.js)現在都支持模板繼承也是如此。 – bobthecow