- commit
- f72178b8d6dddbf70d5d64ae60502c45d41444d3
- parent
- 410d036d24f7167e63b1534b0225b0a7c8c5b78e
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-04-04 19:35
automatically set img size see https://web.dev/articles/optimize-cls
Diffstat
| M | Makefile | 6 | +++--- |
| A | filters/img-size.lua | 17 | +++++++++++++++++ |
2 files changed, 20 insertions, 3 deletions
diff --git a/Makefile b/Makefile
@@ -4,7 +4,7 @@ PAGES_MD := $(shell find _content -name 'index.md' | sed 's/^_content/build/') 4 4 PAGES_FEED := $(shell find _content -name 'index.md' | sed 's/md$$/html/') 5 5 STATIC := $(shell find static -type f | sed 's/^/build\//') 6 6 IMG := $(shell find _content -regex '.*\.\(png\|gif\|jpg\)$$' | sed 's/^_content/build/')7 -1 PANDOC_ARGS = -f markdown-smart --wrap=none-1 7 PANDOC_ARGS = -f markdown-smart --wrap=none --lua-filter filters/*.lua 8 8 9 9 .PHONY: all 10 10 all: build/index.html $(PAGES) $(PAGES_MD) build/feed.xml build/feed-archive.xml build/feed.json build/feed-archive.json $(STATIC) build/static/style.css $(IMG) @@ -13,7 +13,7 @@ all: build/index.html $(PAGES) $(PAGES_MD) build/feed.xml build/feed-archive.xml 13 13 push: all 14 14 rsync --delete -vrlc build/ ce9e:/var/www/blog 15 1516 -1 build/%.html: build/%.md _templates/base.html-1 16 build/%.html: build/%.md _templates/base.html filters/*.lua 17 17 pandoc $(PANDOC_ARGS) --template _templates/base.html $< -o $@ 18 18 @sed -i 's/<tr class="header">/<tr>/g' $@ 19 19 @@ -25,7 +25,7 @@ build/index.md: _content/posts/*/index.md posts.sh 25 25 @mkdir -p $$(dirname $@) 26 26 ./posts.sh > $@ 27 2728 -1 _content/%.html: _content/%.md-1 28 _content/%.html: _content/%.md filters/*.lua 29 29 pandoc $(PANDOC_ARGS) $< -o $@ 30 30 @sed -i 's/<tr class="header">/<tr>/g' $@ 31 31
diff --git a/filters/img-size.lua b/filters/img-size.lua
@@ -0,0 +1,17 @@
-1 1 function resolve(path)
-1 2 if (not(pandoc.path.is_relative(path))) then
-1 3 return path
-1 4 end
-1 5 local input_path = PANDOC_STATE.input_files[1]
-1 6 local dir_path = pandoc.path.directory(input_path)
-1 7 return pandoc.path.join({dir_path, path})
-1 8 end
-1 9
-1 10 function Image(img)
-1 11 local path = resolve(img.src)
-1 12 local size = pandoc.pipe('xargs', {'identify', '-format', '%wx%h'}, path)
-1 13 local width, height = size:match("(%d+)x(%d+)")
-1 14 img.attributes.width = width
-1 15 img.attributes.height = height
-1 16 return img
-1 17 end