mirror of
https://github.com/Matir/skel.git
synced 2026-05-25 21:19:09 -07:00
Add some completions for jekyll.
This commit is contained in:
52
dotfiles/zsh_custom/plugins/jekyll/_jekyll
Normal file
52
dotfiles/zsh_custom/plugins/jekyll/_jekyll
Normal file
@@ -0,0 +1,52 @@
|
||||
#compdef jekyll
|
||||
|
||||
_jekyll() {
|
||||
local curcontext="${curcontext}" state line file
|
||||
typeset -A opt_args
|
||||
|
||||
local -a _subcommands
|
||||
_subcommands=('docs:list documentation'
|
||||
'import:import posts'
|
||||
'serve:run server'
|
||||
'help:get help'
|
||||
'doctor:deprecation warnings'
|
||||
'build:compile site'
|
||||
'new:create new site'
|
||||
'clean:clean output'
|
||||
'draft:create new draft'
|
||||
'post:create new post'
|
||||
'publish:publish draft'
|
||||
'edit:edit post')
|
||||
|
||||
_arguments -C \
|
||||
"(source)"{-s,--source}"[source]:source dir:_files -/" \
|
||||
"(dest)"{-d,--destination}"[dest]:dest dir:_files -/" \
|
||||
"--safe[safe mode]" \
|
||||
"(plugins)"{-p,--plugins}"[plugins]:plugins dir:_files -/" \
|
||||
"--layouts[layouts]:layouts dir:_files -/" \
|
||||
"--profile[generate liquid profile]" \
|
||||
"(help)"{-h,--help}"[help]" \
|
||||
"(version)"{-v,--version}"[version]" \
|
||||
"(trace)"{-t,--trace}"[trace]" \
|
||||
"1:command:->command" \
|
||||
"*: :->args"
|
||||
|
||||
case $state in
|
||||
command)
|
||||
_describe -t commands "jekyll subcommand" _subcommands
|
||||
;;
|
||||
args)
|
||||
case "$line[1]" in
|
||||
edit)
|
||||
# TODO: Fix to get --source argument
|
||||
local -a postpaths
|
||||
postpaths=("${JEKYLL_DIR}/_posts" "${JEKYLL_DIR}/_drafts")
|
||||
_files -W postpaths
|
||||
;;
|
||||
publish)
|
||||
# TODO: Fix to get --source argument
|
||||
_files -W ${JEKYLL_DIR}/_drafts
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
@@ -15,6 +15,14 @@ function _jekyll_find_post {
|
||||
printf "${1}"
|
||||
return 0
|
||||
fi
|
||||
if [ -f "${JEKYLL_DIR}/_posts/${1}" ] ; then
|
||||
printf "${JEKYLL_DIR}/_posts/${1}"
|
||||
return 0
|
||||
fi
|
||||
if [ -f "${JEKYLL_DIR}/_drafts/${1}" ] ; then
|
||||
printf "${JEKYLL_DIR}/_drafts/${1}"
|
||||
return 0
|
||||
fi
|
||||
fname=${2:-${1}}
|
||||
files=(${JEKYLL_DIR}/_posts/*${fname}* ${JEKYLL_DIR}/_drafts/*${fname}*)
|
||||
if [ ${#files} -eq "0" ] ; then
|
||||
|
||||
Reference in New Issue
Block a user