mirror of
https://github.com/Matir/skel.git
synced 2026-05-26 13:35:42 -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}"
|
printf "${1}"
|
||||||
return 0
|
return 0
|
||||||
fi
|
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}}
|
fname=${2:-${1}}
|
||||||
files=(${JEKYLL_DIR}/_posts/*${fname}* ${JEKYLL_DIR}/_drafts/*${fname}*)
|
files=(${JEKYLL_DIR}/_posts/*${fname}* ${JEKYLL_DIR}/_drafts/*${fname}*)
|
||||||
if [ ${#files} -eq "0" ] ; then
|
if [ ${#files} -eq "0" ] ; then
|
||||||
|
|||||||
Reference in New Issue
Block a user