Last active
November 16, 2019 05:10
-
-
Save kaho2063/c76fd07d159e34dd9fd9 to your computer and use it in GitHub Desktop.
このsh以下にあるMarkdownファイルのリスト一覧リンクREADME.mdを作るためのシェルスクリプト。フォルダも6階層まで対応。ライセンスはNYSL(http://www.kmonos.net/nysl/ )です。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# README.mdというファイルに単純にechoしているため、既にREADME.mdがあった場合内容が削除される 注意 | |
echo -e "**Index**\n\n" >README.md | |
# フォルダが多くなると飛ぶのが面倒なので、[TOC]追加 | |
# TOCに対応していない場合などは考慮していない | |
echo -e "[TOC]\n\n---" >>README.md | |
# ファイルへのリンク部分を出力する関数 | |
# $1が検索フォルダ指定 | |
function file_echo () { | |
find $1 -maxdepth 1 -type f -name "*.md" | while read FILE ; do | |
local FILE2=`echo "${FILE##*/}" | sed -e "s/\.md//"` | |
echo "- [$FILE2](${FILE})" >>README.md | |
done | |
} | |
# フォルダごとに見出しをつけて改行してファイル部分も出力する再帰呼出し用関数 | |
# $1が検索フォルダ指定、$2が階層指定 | |
function folder_echo () { | |
# `.`から始まるフォルダだけ避ける | |
find $1 -maxdepth 1 -type d | grep -e "[^.].*" | while read DIR ; do | |
if test "$DIR" != "$1" ; then | |
local MD_FILE_LIST=`find $DIR -type f -name "*.md"` | |
if test "$MD_FILE_LIST" == "" ; then | |
continue | |
fi | |
local HEADING="#" | |
if test $2 != 0 ; then | |
# 階層ごとに見出しレベルを下げたかったので、ここで#を追加する | |
# 6階層以下は考慮していない | |
for i in `seq 1 $2` ; do | |
HEADING+="#" | |
done | |
else | |
echo "" >>README.md | |
fi | |
# フォルダごとに見出しをつける | |
echo -e "\n$HEADING ${DIR##*/}" >>README.md | |
local MD_FILE_LIST2=`find $DIR -mindepth 1 -type f -name "*.md"` | |
# 小フォルダ内に*.mdがある場合、再帰呼出し | |
if test "$MD_FILE_LIST2" != "" ; then | |
folder_echo "$DIR" `expr $2 + 1` | |
fi | |
local MD_FILE_LIST3=`find $DIR -maxdepth 1 -type f -name "*.md"` | |
# フォルダ内に*.mdファイルがある場合、ファイル用関数呼び出し | |
if test "$MD_FILE_LIST3" != "" ; then | |
echo "" >>README.md | |
file_echo "$DIR/" | |
fi | |
fi | |
done | |
} | |
folder_echo . 0 | |
# このフォルダ直下にあるファイルへのリンク | |
echo -e "\n# 直下ファイル" >>README.md | |
file_echo . |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment