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

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

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

RedPen は技術文書に対する簡単なチェックを行うツールです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

wercker

werckerは、GithubやBitbucket等を使用する時に使われるCIサービスのひとつです。 特徴として、CI の設定をシンプルにしようとしているところがです。

Q&A

解決済

1回答

282閲覧

【初投稿】Javascriptで自作したvalidatorをwerckerで動かしているRedPenに実装したい→自動化したい

bluemountain

総合スコア7

RedPen

RedPen は技術文書に対する簡単なチェックを行うツールです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

wercker

werckerは、GithubやBitbucket等を使用する時に使われるCIサービスのひとつです。 特徴として、CI の設定をシンプルにしようとしているところがです。

0グッド

1クリップ

投稿2017/12/07 08:41

編集2017/12/08 05:38

###前提・実現したいこと
Wercker CIで文書添削システムRedPenでの文書添削を自動化しようと考えています。
RedPenには添削のルールを既存のvalidatorを多種組み合わせてカスタマイズできるのですが、validatorをjavascriptで自作し、自身で新しい添削ルールを追加出来ます。(ローカルでは実装・機能している)

具体的には、redpenの設定ファイル(redpen-conf.xml)に validator = "Javascript" で自作のjsファイルが機能するみたいなのですが、上手くいかないです。

###使っているツール
・docker
・github
・redpen(xmlファイルと.jsファイル)
・wercker

###redpen-conf.xml

<redpen-conf lang="ja" type="zenkaku2"> <validators> <validator name="JavaScript" > <property name="script-path" value="./js" /> </validator> </validators> </redpen-conf>

###jsファイル

function validateSentence(sentence) { // アルファベットを半角で表記するルール var terms = [ { 'expected':'[a-zA-Z]', 'pattern':['[a-zA-Z]'] } ]; var regex = new RegExp( terms[0]['pattern'], 'g'); // 形態素解析するかどうか if ( sentence.content.match(regex) ) { addError('全角のアルファベットが含まれています。半角に修正してください', sentence); } }

###wercker.yml

# This references a standard debian container from the # Docker Hub https://registry.hub.docker.com/_/debian/ # Read more about containers on our dev center # http://devcenter.wercker.com/docs/containers/index.html box: ユーザーネーム/ディレクトリ名 # You can also use services such as databases. Read more on our dev center: # http://devcenter.wercker.com/docs/services/index.html # services: # - postgres # http://devcenter.wercker.com/docs/services/postgresql.html # - mongodb # http://devcenter.wercker.com/docs/services/mongodb.html # This is the build pipeline. Pipelines are the core of wercker # Read more about pipelines on our dev center # http://devcenter.wercker.com/docs/pipelines/index.html build: # Steps make up the actions in your pipeline # Read more about steps on our dev center: # http://devcenter.wercker.com/docs/steps/index.html steps: - script: name: check code: | redpen -c ./redpen-conf.xml -f latex draft.tex

###補足情報
redpen-conf.xmlのvalidator = "Javascript"で自作のjsファイルを呼ぶみたいです。
少し言うと、script-pathをどのように使えばいいのか理解していないのも現状ですが・・・(汗)

werckerの最後の行 redpen -c ./redpen-conf.xml -f latex draft.texで添削に使う設定ファイルと、draft.texを読み取るよう記述します。

###最後に
ローカルでは自作のjsファイルが機能しているのですが、サーバーだと上手くいきません。主にxmlファイルとwercker.ymlの最後の行を変更しては繰り返しをしています。

werckerに詳しい方、物知りな方の回答・ご協力よろしくおねがいしますm(_ _)m

###追記
[2017-12-07 17:32:01.023][WARN ] cc.redpen.validator.JavaScriptValidator - JavaScript validators directory is missing: cc.redpen.RedPenException: /.js is not under working directory (/pipeline/source), base (.), $REDPEN_HOME (/usr/local).とwerckerが吐き出すようになりました。

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーメッセージ見る限りでは問題は

  1. そのjavascriptのファイルはなんという名前なのか、xml側と同じ?
  2. そのjavascriptのファイルはどこに配置されるのか、not under working directory (/pipeline/source)って言われとるぞ
  3. もしかしてxml側の指定、./が邪魔?

横着しないで公式Document見てきました(最初からそうするべきだった)

RedPen 1.10 Documentation#Enabling JavaScriptValidator

によれば、

JavaScriptValidator will load all files with .js suffix from $REDPEN_HOME/js directory.

とあるので、設定ファイルは

xml

1<validator name="JavaScript" />

だけにして、肝心のJavaScriptファイルはjsというdirectoryに入れれば良さそうです。

xml

1 <property name="script-path" value="/path/to/your/validator/directory-a" />

$REDPEN_HOME/jsではないところにファイルを置きたい場合のみ書けばいいようです。

投稿2017/12/08 04:22

編集2017/12/08 12:50
yumetodo

総合スコア5850

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

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

bluemountain

2017/12/08 05:29

1.javascriptのファイル名は、とりあえず”test01""test02"~"test13"まであるものと思ってくださいm(_ _)m 2.今はxmlもjsもymlも同じ場所に配置しています。確認します。 3.,,, [2017-12-08 05:26:52.621][INFO ] cc.redpen.validator.JavaScriptValidator - JavaScript validators directory: js ,,, と吐くようになりました。
bluemountain

2017/12/11 15:43

ありがとうございました。実はローカルでもREDPEN_HOME/jsにjsファイルを保存していたのですが、ciでも全く同じ方法でできちゃったので驚きです!感謝です!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問