chore: better folder structure
This commit is contained in:
parent
c0facbd8a9
commit
e66a4f0834
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
.env
|
.env
|
||||||
|
!jekyll/descriptions/blog_description
|
||||||
jekyll/**
|
jekyll/**
|
||||||
|
@ -3,6 +3,7 @@ FROM ruby:3.2.2
|
|||||||
RUN useradd -ms /bin/bash --uid 1000 jekyll
|
RUN useradd -ms /bin/bash --uid 1000 jekyll
|
||||||
RUN mkdir -p -m 0755 /app/jekyll
|
RUN mkdir -p -m 0755 /app/jekyll
|
||||||
RUN mkdir -p -m 0755 /opt/jekyll
|
RUN mkdir -p -m 0755 /opt/jekyll
|
||||||
|
COPY ./entrypoint.sh /opt/jekyll
|
||||||
VOLUME $PWD/data:/opt/jekyll
|
VOLUME $PWD/data:/opt/jekyll
|
||||||
RUN chmod +x /opt/jekyll/ && \
|
RUN chmod +x /opt/jekyll/ && \
|
||||||
chown -R 1000:1000 /opt/jekyll && \
|
chown -R 1000:1000 /opt/jekyll && \
|
||||||
|
15
README.md
15
README.md
@ -9,13 +9,15 @@ Counting on my modest shell scripting skills, I managed to give life to an abomi
|
|||||||
|
|
||||||
## How to use it ?
|
## How to use it ?
|
||||||
|
|
||||||
- Edit `./data/.env` to fit your needs.
|
- Edit `./data/.env` to fit your needs. A sample is provided.
|
||||||
- Create `./data/<blog_name>_description.txt`, with the wanted website description.
|
- 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.
|
**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.
|
- Build the image via the provided `docker-compose.yml` file.
|
||||||
- Run the service.
|
- 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.
|
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.).**
|
**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.
|
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.
|
It will be improved the time beeing.
|
||||||
|
|
||||||
|
## TO-DO
|
||||||
|
|
||||||
|
- Properly configure the live-reload port feature.
|
||||||
|
- More robust code
|
||||||
|
- More easier to use
|
||||||
|
- templates
|
||||||
|
@ -46,10 +46,10 @@ update_config() {
|
|||||||
update_description() {
|
update_description() {
|
||||||
initial_description=$(sed -n '/^description/,/^baseurl/p' ${SITE_PATH}/_config.yml | sed '/^description/d' |
|
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; } }')
|
sed '/^baseurl: ""/d' | sed 's/^[[:space:]]*//' | sed '/^description:/,/^baseurl:/ { /^description:/n; /^baseurl:/! { /^$/d; } }')
|
||||||
current_description=$(sed 's/^[[:space:]]*//' /opt/jekyll/${BLOG_NAME}_description.txt)
|
current_description=$(sed 's/^[[:space:]]*//' /app/jekyll/descriptions/${BLOG_NAME}_description.txt)
|
||||||
[[ "$initial_description" != "$current_description" && ! -z $current_description ]] && {
|
[[ "$initial_doptescription" != "$current_description" && ! -z $current_description ]] && {
|
||||||
echo "Config change detected on site description: updating _config.yml"
|
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
|
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..."
|
echo "No change or empty variable for site $BLOG_NAME description, continuing..."
|
Loading…
Reference in New Issue
Block a user