railsgirls-jp / railsgirls.jp

Japanese translation of Rails Girls

Home Page:https://railsgirls.jp/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rakefileの:directory_with_pageタスクの処理を見直す

maimux2x opened this issue · comments

Rakefileでディレクトリ+ファイルを同時に生成するタスク :directory_with_page を実行する際、

  • name= 以下を指定しない
  • name= piyo.html などのファイル名を指定する

とどのディレクトリにも属さないファイルが作成される。

$ bundle exec rake directory_with_page                 
(in /Users/maimux2x/Documents/Source/RailsGirls/railsgirls-jp.github.io/railsgirls.jp)
mkdir -p .
Creating new page: ./new-page.md

現在、公開されているファイルは何らかのディレクトリ配下にて管理されているため、:directory_with_pageタスクの処理を見直したい。

ガイド・ブログ・独自コンテンツを作成するためのタスクはあるため、:directory_with_page は名前の通りディレクトリとファイルを生成するためのものとして修正する方向でひとまず修正してみる。

現状、定義されているrakeタスクは以下のとおりです

> bundle exec rake -T                                                                                                                                                                                                                         (master)
rake blog                 # Begin a new post in ./_posts/blog
rake directory_with_page  # Create a new directory and page
rake guide                # Begin a new guide in ./_pages
rake original_content     # Begin a new original_content in ./_pages-jp
rake preview              # Launch preview environment

現状、以下のように棲み分けされていると思っています

コンテンツの呼び名 説明 追加するrakeタスク
ガイド .comのコンテンツを翻訳したもの https://railsgirls.jp/start rake guide
独自コンテンツ .jp独自のコンテンツ https://railsgirls.jp/getting-started-jp rake original_content
ブログ 参加者の感想など https://railsgirls.jp/2023/11/09/kaigi-on-rails-support-for-alumni/ rake blog

rake preview はローカル環境で動作を確認するのに使うタスクですね
rake directory_with_page は…🤔


imo
3つのコンテンツ以外のコンテンツを追加する場合を想定したタスクだと理解しています
directory_with_page について今の挙動から以下のような意図で作られたのだろうと推測しました

  • name で拡張子を含むパスが指定された場合、指定されたパスにファイルを作る
  • name で拡張子を 含まない パスが指定された場合、 ディレクトリが指定されたものと解釈し、指定されたパスまでディレクトリを作り、そのディレクトリに特定の(デフォルトの)名前でファイルを作る

これを踏まえて「このタスクが必要か」を検討するのが良さそうに思いました
必要な場合、追加で以下のようなことを検討すると良さそうに思いました

  1. 拡張子の有無を考慮しない
    指定されたパスにファイルを作成する
  2. 拡張子の有無を考慮する
    1. 拡張子あり
      指定されたパスにファイルを作成する
    2. 拡張子なし
      1. 指定されたパスにディレクトリだけ作成する
      2. 指定されたパスにディレクトリを作り、特定の名前でファイルを作成する

@urimaro
わかりやすく整理してくださり、ありがとうございます😭✨

私自身の考えは上記にまとめていただいた

拡張子の有無を考慮しない
指定されたパスにファイルを作成する

です。
理由としては

  • 既存のディレクトリ配下にファイルを作成するタスクは既に別タスクとして存在する
  • Eventsのように独立したディレクトリを新規作成してそこに新たなコンテンツをファイルを作成して追加していくことは有り得そう

なためです🤔

以下のように理解しました

  • タスク rake original_content は残す
  • 拡張子の有無は考慮しない

rake original_content name=path/to/file を実行した場合、以下のような結果になるということであっていますか?

  • path/to というディレクトリに file という名前のファイルが生成される

気になることがあるというわけではなく、どんな動きをイメージしているのか知りたかったので質問しました

@urimaro

タスク rake original_content は残す
拡張子の有無は考慮しない

こちらで相違ありません。
ただ、directory_with_page を実行した場合の動作としてはディレクトリの階層は directory/file の一階層の想定でいます。

まとめると以下のように考えています。

■ タスク rake original_content は残す

こちらは現在の実装通り、_pages-jp 配下にファイルを作成するタスク
railsgirls.jp/_pages-jp/about.md のようなパスになる

■ タスク directory_with_page も残す

こちらはdirectory/file の一階層でディレクトリとファイルを新規作成する
railsgirls.jp/events/index.html のようなパスになる
railsgirls.jp/ 以下がタスクによって作成される

また、name に渡す文字列は拡張子は考慮せず、ディレクトリ名となる

==========

上記について認識の相違や気になりがありましたら教えていただけると幸いです🙏

タスク rake original_content は残す

すみません
書き間違えていました:bow:
rake original_content ではなく rake directory_with_page のことでした

■ タスク directory_with_page も残す

こちらはdirectory/file の一階層でディレクトリとファイルを新規作成する
railsgirls.jp/events/index.html のようなパスになる
※railsgirls.jp/ 以下がタスクによって作成される

また、name に渡す文字列は拡張子は考慮せず、ディレクトリ名となる

理解しました
ありがとうございます

@urimaro
ご確認ありがとうございます🙏
上記に記載の要件で修正あげてみます!