質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

Q&A

解決済

1回答

1491閲覧

Ruby Slim + Gulp + Json

kiddman4

総合スコア17

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Slim

SlimはPHPアプリケーションを開発するための軽量なマイクロフレームワークです。

gulp

gulpは、Node.jsをベースとしたタスク自動化ツールの一つ。ストリームでファイルを処理することが特徴です。CSSプリプロセッサの使用時のコンパイルや、CSS・JavaScriptファイルの圧縮・結合などを自動的に行うことができます。

0グッド

0クリップ

投稿2017/06/30 01:49

Ruby Slim
http://slim-lang.com/


ruby slim+gulp+jsonを組み合わせて、自動的にslimファイルを生成を行いたいと考えております。
下記ファイルでgulpでjsonデータを渡しているのですが、エラー表示があり、生成されません。
エラーは文字コードですが、そちらも合わせて解決していただけますでしょうか?
また、gulp-slimによるjsonデータの引き渡し方をご教授ください。

エラー

Error: Slim error in file (.../template.slim):
command.rb:62:in `block in set_opts': incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)

template.slim

slim

1- # coding: utf-8 2- data = jsonData; 3doctype html 4html[lang="ja"] 5 head 6 meta[charset="UTF-8"] 7 | <meta name="description" content=" 8 = data.description 9 | "> 10 title 11 = data.title 12 body 13 | タイトルは 14 = data.title 15 | ディスクリプションは 16 = data.description

json File

json

1{ 2 "pages": [ 3 { 4 "id": "hoge1", 5 "name": "ページ名", 6 "content": [ 7 { 8 "title": "ポラーノの広場1", 9 "text": "あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。 " 10 } 11 ] 12 }, 13 { 14 "id": "hoge2", 15 "name": "ページ名", 16 "content": [ 17 { 18 "title": "ポラーノの広場2", 19 "text": "あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。 " 20 } 21 ] 22 }, 23 { 24 "id": "hoge3", 25 "name": "ページ名", 26 "content": [ 27 { 28 "title": "ポラーノの広場3", 29 "text": "あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。 " 30 } 31 ] 32 } 33 ] 34}

gulp file

gulp

1gulp.task('create',function(){ 2 3 var json_file = './config.json'; 4 var json = JSON.parse(fs.readFileSync(json_file,"utf-8")); 5 var pages = json.pages; 6 7 for (var i = 0; i < pages.length; i++) { 8 gulp.src("./template.slim") 9 .pipe(slim({ 10 data: pages, 11 options: "encoding='utf-8'" 12 })) 13 .pipe(rename(pages[i].id+".slim")) 14 .pipe(convertEncoding({to: "utf-8"})) 15 .pipe(gulp.dest("./slim/")); 16 } 17});

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

下記で解決しました。

リンク内容

Use this syntax to operate an object's properties:
u['name'] not u.name

slimファイル

doctype html html[lang="ja"] head title body ul - for u in users li = u['name']

投稿2017/06/30 13:34

kiddman4

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問