diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 010ac69..721e20a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,6 +46,16 @@ package-oni-haml: paths: - oni-haml/dist/ +package-oni-html: + stage: pre-package-multifile + before_script: + - rm -rf oni-elisp/dist + script: + - cask --path oni-html package + artifacts: + paths: + - oni-html/dist/ + test-oni-alert: stage: test script: make test-oni-alert @@ -94,6 +104,7 @@ package: - package-oni-css - package-oni-elisp - package-oni-haml + - package-oni-html before_script: - rm -rf bin/ - mkdir bin/ diff --git a/GNUmakefile b/GNUmakefile index ce985ac..82bb3f6 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -3,7 +3,7 @@ FILES := $(wildcard *.el) PACKAGE_TARGETS := $(addprefix package-,$(FILES)) package: $(PACKAGE_TARGETS) package-oni-conf package-oni-css package-oni-elisp \ - package-oni-haml + package-oni-haml package-oni-html package-%: % emacs --batch \ @@ -35,6 +35,12 @@ package-oni-haml: --funcall package-initialize \ --eval "(package-upload-file (car (sort (file-expand-wildcards \"oni-haml/dist/*.tar\") #'string>)))" +package-oni-html: + emacs --batch \ + --load oni-package.el \ + --funcall package-initialize \ + --eval "(package-upload-file (car (sort (file-expand-wildcards \"oni-html/dist/*.tar\") #'string>)))" + install-%: emacs --batch \ --load oni-package.el \ @@ -75,6 +81,14 @@ install-oni-haml: $(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \ --eval "(package-install-file (car (sort (file-expand-wildcards \"oni-haml/dist/*.tar\") #'string>)))" +install-oni-html: + emacs --batch \ + --load oni-package.el \ + --fluncall package-initialize \ + --eval '(package-refresh-contents)' \ + $(foreach DEP,$(DEPS),--eval "(package-install-file \"$(DEP).el\")") \ + --eval "(package-install-file (car (sort (file-expand-wildcards \"oni-html/dist/*.tar\") #'string>)))" + test-%: install-% emacs --batch \ --load oni-package.el \ diff --git a/oni-html/Cask b/oni-html/Cask new file mode 100644 index 0000000..e6e2ebf --- /dev/null +++ b/oni-html/Cask @@ -0,0 +1,10 @@ +(source gnu) +(source melpa) + +(package-file "./oni-html.el") + +(depends-on "oni-yasnippet" :git "../" :files ("oni-yasnippet.el")) + +(files + "*.el" + ("snippets" "./snippets/*")) diff --git a/oni-html.el b/oni-html/oni-html.el similarity index 58% rename from oni-html.el rename to oni-html/oni-html.el index 417d40e..ba77ffa 100644 --- a/oni-html.el +++ b/oni-html/oni-html.el @@ -4,7 +4,8 @@ ;; Author: Tom Willemse ;; Keywords: local -;; Version: 20190306232557 +;; Version: 20190827231602 +;; Package-Requires: (oni-yasnippet) ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -25,8 +26,32 @@ ;;; Code: +(require 'yasnippet) + +(defconst oni-html-root + (file-name-directory + (or load-file-name + (buffer-file-name))) + "The directory where ‘oni-html’ was loaded from.") + +(defconst oni-html-snippets-dir + (expand-file-name "snippets" oni-html-root) + "The directory where ‘oni-html’ stores its snippets.") + +;;;###autoload +(defun oni-html-snippets-initialize () + "Initialize the snippets for ‘oni-html’." + (when (boundp 'yas-snippet-dirs) + (add-to-list 'yas-snippet-dirs oni-html-snippets-dir t)) + (yas-load-directory oni-html-snippets-dir)) + (add-hook 'html-mode-hook 'electric-pair-local-mode) +;;;###autoload +(with-eval-after-load 'sgml-mode + (with-eval-after-load 'yasnippet + (oni-html-snippets-initialize))) + ;;;###autoload(with-eval-after-load 'sgml-mode (require 'oni-html)) (provide 'oni-html) diff --git a/oni-html/snippets/html-mode/block b/oni-html/snippets/html-mode/block new file mode 100644 index 0000000..6510011 --- /dev/null +++ b/oni-html/snippets/html-mode/block @@ -0,0 +1,7 @@ +# -*- mode: snippet; require-final-newline: nil -*- +# name: block +# key: block +# -- +{% block $1 %} + $0 +{% endblock %} \ No newline at end of file diff --git a/oni-html/snippets/html-mode/for b/oni-html/snippets/html-mode/for new file mode 100644 index 0000000..01d9c44 --- /dev/null +++ b/oni-html/snippets/html-mode/for @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: for +# key: for +# condition: pony-tpl-minor-mode +# -- +{% for $1 in $2 %} + $0 +{% endfor %} \ No newline at end of file diff --git a/oni-html/snippets/html-mode/generic-block b/oni-html/snippets/html-mode/generic-block new file mode 100644 index 0000000..82d40c7 --- /dev/null +++ b/oni-html/snippets/html-mode/generic-block @@ -0,0 +1,8 @@ +# -*- mode: snippet -*- +# name: Template Block +# key: % +# condition: pony-tpl-minor-mode +# -- +{% $1 %} + $0 +{% end$1 %} \ No newline at end of file diff --git a/oni-html/snippets/html-mode/script b/oni-html/snippets/html-mode/script new file mode 100644 index 0000000..e50dbf5 --- /dev/null +++ b/oni-html/snippets/html-mode/script @@ -0,0 +1,5 @@ +# -*- mode: snippet -*- +# name: script +# key: script +# -- + \ No newline at end of file diff --git a/oni-html/snippets/html-mode/trans-with-cap b/oni-html/snippets/html-mode/trans-with-cap new file mode 100644 index 0000000..4f20a33 --- /dev/null +++ b/oni-html/snippets/html-mode/trans-with-cap @@ -0,0 +1,6 @@ +# -*- mode: snippet -*- +# name: trans with cap +# key: trans +# condition: pony-tpl-minor-mode +# -- +{% trans "$1"|capfirst %} \ No newline at end of file