LoginSignup
1
0

More than 5 years have passed since last update.

自分のTIL閲覧ツールを作成しました

Posted at

TIL閲覧ツールを作成しました

初めに

初カキコです。

TILとは

Today I Learning(今日学んだこと)の略。

毎日の少しの学びを記録していく。

動作環境

Windows10 pro

完全なパスを取得するのにこだわりの技術を使用しているのでその部分を他の環境にも対応しないといけない。

コマンドオプション

キャプチャ.PNG

TIL登録

私のTIL構成


PS>tree /f
C:.
  README.md
├─c
  └─compile
          README.md
├─firebase
      README.md
├─powershell
      import_VisualStudio_code.md
├─Rust
  ├─json
        README.md
  ├─std_fs
        README.md
  └─termcolor
          README.md
└─security
    ├─cdb
          README.md
    ├─process_hollowing
          README.md
    └─rp++
            README.md

登録するには以下のコマンドを入力する

PS>mel init
[ o ] Init Complete

今いるディレクトリ下の***.mdで終わるファイルを登録することができる。

登録しているTILを見る

PS>mel list
[ <3 ] Can Use Commands!!

[ 0 ] /compile/README.md
[ 1 ] /firebase/README.md
[ 2 ] /powershell/import_VisualStudio_code.md
[ 3 ] /TIL/README.md
[ 4 ] /json/README.md
[ 5 ] /std_fs/README.md
[ 6 ] /termcolor/README.md
[ 7 ] /cdb/README.md
[ 8 ] /process_hollowing/README.md
[ 9 ] /rp++/README.md

TILを見る

2パターンの使い方がある。

  1. 番号を指定する
    mel listで出力された左側の数値を指定することで出力できる
PS>mel -n 1 # 1番を指定して出力する
# firebase

## Deploy
deployするときの手順メモ

$ npm run build
$ npm run generate
$ firebase deploy

...

},
logout() {
  firebase.auth().signOut()
  .then(() => {
    this.setUser(null)
  }).catch((error) => {
    alert(error)
  })
},
  1. pathを指定する
PS>mel /cdb/README.md
# CDB

## 主要コマンド一覧
'''
? - help view
'''

日々の悩み

詰まったところ。

こんなコードになってしまった。

for entry in WalkDir::new(".").into_iter().filter_map(|e| e.ok()) {
    if entry.file_name().to_string_lossy().ends_with(".md") {
      let path = PathBuf::from(String::from(entry.path().display().to_string()));
      let cwd = canonicalize(&path).unwrap();
      match cwd.into_os_string().into_string() {
        Ok(aa) => {
          // create full path
          let path_vec: Vec<&str> = aa.split("\\").collect();
          let mut index = 0;
          for p in path_vec[3..path_vec.len()].into_iter() {
            jsontree.push_str(&p);
            if index != path_vec.len() - 4 {
              jsontree.push_str("/");
            }
            index += 1;
          }
          jsontree.push_str("&");
        }
        Err(e) => {
          panic!("{:?}", e);
        }
      }
    }
  }

pathBufで所得した値をstringに変換するのにかなり手間取った。

こういった値
C:/path
がほしいところ
"C:/path"
という形になってしまうことがあり、無理やりmatchにかけて結果として取れた値を使用しているのが不格好だ。
この辺りをもっと改善していきたい。

あとaaという変数名はやめた方がいいと思いました。

終わりに

  • もう少しRustっぽく書けるようになりたいと思った。
  • 文章にが多いわね
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0