chore: better folder structure

This commit is contained in:
Winston Smith 2023-12-05 09:16:30 +01:00
parent c0facbd8a9
commit e66a4f0834
No known key found for this signature in database
GPG Key ID: DFD784DB2A6F7A07
5 changed files with 17 additions and 6 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
.env
!jekyll/descriptions/blog_description
jekyll/**

View File

@ -3,6 +3,7 @@ FROM ruby:3.2.2
RUN useradd -ms /bin/bash --uid 1000 jekyll
RUN mkdir -p -m 0755 /app/jekyll
RUN mkdir -p -m 0755 /opt/jekyll
COPY ./entrypoint.sh /opt/jekyll
VOLUME $PWD/data:/opt/jekyll
RUN chmod +x /opt/jekyll/ && \
chown -R 1000:1000 /opt/jekyll && \

View File

@ -9,13 +9,15 @@ Counting on my modest shell scripting skills, I managed to give life to an abomi
## How to use it ?
- Edit `./data/.env` to fit your needs.
- Create `./data/<blog_name>_description.txt`, with the wanted website description.
- Edit `./data/.env` to fit your needs. A sample is provided.
- Create `./jekyll/descriptions/<blog_name>_description.txt`, with the wanted website description.
**Be carefull to remove whitespaces at line start**. It will not properly indented when put in the `_config.yml`, fudging up the description format.
Some sed hackity-hack are done but I can't assure you that it will be easy on your eyes afterwards...
- Build the image via the provided `docker-compose.yml` file.
- Run the service.
Jekyll is started by default in "production mode", a.k.a. it will just build static files. If you want your files to be served by jekyll for testing needs, just change `JEKYLL_ENV` to anything other that `production`.
Jekyll is started by default in "production mode", a.k.a. it will just build static files from `./jekyll/$BLOG_NAME/` content and put in `./jekyll/$BLOG_NAME/_site` which you would serve via your prefered reverse-proxy.
If you want your files to be served by jekyll (for testing needs, enjoying the glorious live-reload feature), just change `JEKYLL_ENV` to anything other that `production`.
Variables in .env and the site description are updated at container restart.
**Keep in mind that changing your site name (with `BLOG_NAME` var) will fudge up all reference files (site description, site path etc.).**
@ -23,3 +25,10 @@ Variables in .env and the site description are updated at container restart.
This software is provided as-is and is the offspring of a humble sysadmin mind, constantly learning new things.
It will be improved the time beeing.
## TO-DO
- Properly configure the live-reload port feature.
- More robust code
- More easier to use
- templates

View File

@ -46,10 +46,10 @@ update_config() {
update_description() {
initial_description=$(sed -n '/^description/,/^baseurl/p' ${SITE_PATH}/_config.yml | sed '/^description/d' |
sed '/^baseurl: ""/d' | sed 's/^[[:space:]]*//' | sed '/^description:/,/^baseurl:/ { /^description:/n; /^baseurl:/! { /^$/d; } }')
current_description=$(sed 's/^[[:space:]]*//' /opt/jekyll/${BLOG_NAME}_description.txt)
[[ "$initial_description" != "$current_description" && ! -z $current_description ]] && {
current_description=$(sed 's/^[[:space:]]*//' /app/jekyll/descriptions/${BLOG_NAME}_description.txt)
[[ "$initial_doptescription" != "$current_description" && ! -z $current_description ]] && {
echo "Config change detected on site description: updating _config.yml"
sed -i "/^description/,/^baseurl:/!b;//!d;/^description/r /opt/jekyll/${BLOG_NAME}_description.txt" ${SITE_PATH}/_config.yml
sed -i "/^description/,/^baseurl:/!b;//!d;/^description/r /app/jekyll/descriptions/${BLOG_NAME}_description.txt" ${SITE_PATH}/_config.yml
sed -i '/^description:/,/^baseurl:/ { /^description:/n; /^baseurl:/! s/^[^[:space:]]/ &/; }' ${SITE_PATH}/_config.yml
} || {
echo "No change or empty variable for site $BLOG_NAME description, continuing..."