Browse Source

Replace a string in the template so that we can add a footer

master
knotteye 8 months ago
parent
commit
88f93a1395
  1. 3
      .gitignore
  2. 12
      Makefile
  3. 2
      README.md
  4. 8
      src/blogtool.cr
  5. 3
      testsite/base.html
  6. 8
      testsite/dist/test.html

3
.gitignore

@ -1,4 +1,5 @@
blogtool
lib
shard.lock
testsite/dist
testsite/dist
.deps

12
Makefile

@ -6,7 +6,7 @@ all: release
.PHONY: clean
clean:
rm -f blogtool
rm -f blogtool .deps
.PHONY: run
run:
@ -16,15 +16,15 @@ release: dependencies
crystal build --release --no-debug src/blogtool.cr
dependencies:
shards install
debug:
[ -e .deps ] || shards install
touch .deps
debug: dependencies
crystal build src/blogtool.cr
test: debug
test:
cd testsite && ../blogtool
install:
install blogtool $(PREFIX)/bin/
mkdir -p /etc/blogtool
install testsite/base.html /etc/blogtool/
install testsite/base.html /etc/blogtool/

2
README.md

@ -27,4 +27,4 @@ dist
|-> about.html
```
You can build blogtool by running `make && sudo make install`. Invoke blogtool by running `blogtool` in the project directory. There are no options. You can copy /etc/blogtool/base.html to the project root and make changes to overwrite the template.
You can build blogtool by running `make && sudo make install`. Invoke blogtool by running `blogtool` in the project directory. There are no options. You can copy /etc/blogtool/base.html to the project root and make changes to overwrite the template, as long as the string "## CONTENT\n" is in the template somewhere, as that will be replaced with the article or about page.

8
src/blogtool.cr

@ -41,16 +41,18 @@ def render_file(filename : String | Path)
end
index = Base
content = ""
Dir.entries("articles").select{ |i| i != "." && i != ".." }.each do |article|
if article[article.size-3, article.size] == ".md"
File.write Path.new("dist", article[0,article.size-3]+".html"), render_file("articles/"+article)
index += "<h3><a href=\"/"+article[0,article.size-3]+".html\"/>"+article[0,article.size-3].gsub("-", " ")+"</a></h3>\n"
content += "<h3><a href=\"/"+article[0,article.size-3]+".html\">"+article[0,article.size-3].gsub("-", " ")+"</a></h3>\n"
else
File.write Path.new("dist", article+".html"), render_file("articles/"+article)
index += "<h3><a href=\"/"+article+".html\"/>"+article.gsub("-", " ")+"</a></h3>\n"
content += "<h3><a href=\"/"+article+".html\">"+article.gsub("-", " ")+"</a></h3>\n"
end
end
File.write Path["dist/index.html"], index+"</body></html>"
index.gsub("## CONTENT\n") { content }
File.write Path["dist/index.html"], index
Dir.entries("assets").select{ |i| i != "." && i != ".." }.each do |asset|
File.copy Path.new("assets", asset), Path.new("dist", "static", asset)

3
testsite/base.html

@ -1,4 +1,7 @@
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>

8
testsite/dist/test.html

@ -1,8 +0,0 @@
<html>
<head>
</head>
<body>
<h2>yeet</h2>
<p><strong>this is</strong> a <em>test</em></p>
<p><a href="http://google.com">weeeooo</a></p>
</body></html>
Loading…
Cancel
Save