mirror of
https://github.com/rjNemo/vf-site
synced 2026-06-12 12:06:39 +00:00
code refactor
This commit is contained in:
parent
e89d204dd0
commit
0d4a7b43ec
15 changed files with 69 additions and 32 deletions
4
Makefile
4
Makefile
|
|
@ -1,6 +1,6 @@
|
||||||
build:
|
build:
|
||||||
pipenv run python main.py
|
@pipenv run python -m lib.main
|
||||||
|
|
||||||
|
|
||||||
run: build
|
run: build
|
||||||
cd dist && pipenv run python -m http.server
|
@cd dist && pipenv run python -m http.server
|
||||||
|
|
|
||||||
1
Pipfile
1
Pipfile
|
|
@ -5,6 +5,7 @@ name = "pypi"
|
||||||
|
|
||||||
[packages]
|
[packages]
|
||||||
jinja2 = "*"
|
jinja2 = "*"
|
||||||
|
loguru = "*"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
black = {extras = ["d"], version = "*"}
|
black = {extras = ["d"], version = "*"}
|
||||||
|
|
|
||||||
10
Pipfile.lock
generated
10
Pipfile.lock
generated
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "38d153c877b45a305481c3020014557d5caaabdaf51551f5be73963080006fcd"
|
"sha256": "b822c04b3fa63fe6c790438fd4e4506758278651094042a9bf6422eb1d11584e"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
|
@ -24,6 +24,14 @@
|
||||||
"index": "pypi",
|
"index": "pypi",
|
||||||
"version": "==3.1.2"
|
"version": "==3.1.2"
|
||||||
},
|
},
|
||||||
|
"loguru": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:1612053ced6ae84d7959dd7d5e431a0532642237ec21f7fd83ac73fe539e03e1",
|
||||||
|
"sha256:b93aa30099fa6860d4727f1b81f8718e965bb96253fa190fab2077aaad6d15d3"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==0.7.0"
|
||||||
|
},
|
||||||
"markupsafe": {
|
"markupsafe": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed",
|
"sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed",
|
||||||
|
|
|
||||||
10
README.md
10
README.md
|
|
@ -7,8 +7,8 @@
|
||||||
- [X] Create a base template for the header and footer
|
- [X] Create a base template for the header and footer
|
||||||
- [X] Build index page
|
- [X] Build index page
|
||||||
- [X] Build room pages
|
- [X] Build room pages
|
||||||
- [x] T2
|
- [x] T2
|
||||||
- [x] T3
|
- [x] T3
|
||||||
- [X] Build contact pages
|
- [X] Build contact pages
|
||||||
- [X] Use netlify form for the contact form
|
- [X] Use netlify form for the contact form
|
||||||
- [ ] Deploy to VillaFleurie's domain
|
- [ ] Deploy to VillaFleurie's domain
|
||||||
|
|
@ -18,8 +18,14 @@
|
||||||
- [ ] Automate the file search
|
- [ ] Automate the file search
|
||||||
- [ ] Extract data out of the template
|
- [ ] Extract data out of the template
|
||||||
- [ ] Create a template for the rooms
|
- [ ] Create a template for the rooms
|
||||||
|
- [ ] Build script before commit
|
||||||
|
|
||||||
## Excluded
|
## Excluded
|
||||||
|
|
||||||
* The article page
|
* The article page
|
||||||
* The language switcher
|
* The language switcher
|
||||||
|
|
||||||
|
## Built with
|
||||||
|
|
||||||
|
- [Jinja](https://jinja.palletsprojects.com/en/3.1.x/) - fast, expressive, extensible templating
|
||||||
|
engine
|
||||||
8
config.json
Normal file
8
config.json
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"templates": [
|
||||||
|
"index.html",
|
||||||
|
"t2-corail.html",
|
||||||
|
"t3-azur.html",
|
||||||
|
"contact.html"
|
||||||
|
]
|
||||||
|
}
|
||||||
2
dist/contact.html
vendored
2
dist/contact.html
vendored
|
|
@ -33,7 +33,7 @@
|
||||||
<link href="../css/styles.css" rel="stylesheet">
|
<link href="../css/styles.css" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Favicon -->
|
<!-- Favicon -->
|
||||||
<link rel="icon" href="../images/favicon.png">
|
<link rel="icon" href="../images/logo.png">
|
||||||
</head>
|
</head>
|
||||||
<body data-spy="scroll" data-target=".fixed-top">
|
<body data-spy="scroll" data-target=".fixed-top">
|
||||||
|
|
||||||
|
|
|
||||||
2
dist/index.html
vendored
2
dist/index.html
vendored
|
|
@ -33,7 +33,7 @@
|
||||||
<link href="../css/styles.css" rel="stylesheet">
|
<link href="../css/styles.css" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Favicon -->
|
<!-- Favicon -->
|
||||||
<link rel="icon" href="../images/favicon.png">
|
<link rel="icon" href="../images/logo.png">
|
||||||
</head>
|
</head>
|
||||||
<body data-spy="scroll" data-target=".fixed-top">
|
<body data-spy="scroll" data-target=".fixed-top">
|
||||||
|
|
||||||
|
|
|
||||||
2
dist/t2-corail.html
vendored
2
dist/t2-corail.html
vendored
|
|
@ -33,7 +33,7 @@
|
||||||
<link href="../css/styles.css" rel="stylesheet">
|
<link href="../css/styles.css" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Favicon -->
|
<!-- Favicon -->
|
||||||
<link rel="icon" href="../images/favicon.png">
|
<link rel="icon" href="../images/logo.png">
|
||||||
</head>
|
</head>
|
||||||
<body data-spy="scroll" data-target=".fixed-top">
|
<body data-spy="scroll" data-target=".fixed-top">
|
||||||
|
|
||||||
|
|
|
||||||
2
dist/t3-azur.html
vendored
2
dist/t3-azur.html
vendored
|
|
@ -33,7 +33,7 @@
|
||||||
<link href="../css/styles.css" rel="stylesheet">
|
<link href="../css/styles.css" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Favicon -->
|
<!-- Favicon -->
|
||||||
<link rel="icon" href="../images/favicon.png">
|
<link rel="icon" href="../images/logo.png">
|
||||||
</head>
|
</head>
|
||||||
<body data-spy="scroll" data-target=".fixed-top">
|
<body data-spy="scroll" data-target=".fixed-top">
|
||||||
|
|
||||||
|
|
|
||||||
0
lib/__init__.py
Normal file
0
lib/__init__.py
Normal file
7
lib/config.py
Normal file
7
lib/config.py
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
def load_templates():
|
||||||
|
with open("config.json", "r") as f:
|
||||||
|
res = json.loads(f.read())
|
||||||
|
return res["templates"]
|
||||||
10
lib/engine.py
Normal file
10
lib/engine.py
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
from jinja2 import Environment, FileSystemLoader, select_autoescape
|
||||||
|
|
||||||
|
engine = Environment(
|
||||||
|
loader=FileSystemLoader("templates"),
|
||||||
|
autoescape=select_autoescape(),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def render(template: str) -> str:
|
||||||
|
return engine.get_template(template).render()
|
||||||
19
lib/main.py
Normal file
19
lib/main.py
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
from os import path
|
||||||
|
|
||||||
|
from loguru import logger
|
||||||
|
|
||||||
|
from lib.config import load_templates
|
||||||
|
from lib.engine import render
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
logger.info("🏁 Start building site")
|
||||||
|
for template in load_templates():
|
||||||
|
logger.info(f"📃Render '{template}'")
|
||||||
|
with open(path.join("dist", template), "w") as f:
|
||||||
|
f.write(render(template))
|
||||||
|
logger.info("🎉 Done…")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
22
main.py
22
main.py
|
|
@ -1,22 +0,0 @@
|
||||||
from os import path
|
|
||||||
|
|
||||||
from jinja2 import Environment, FileSystemLoader, select_autoescape
|
|
||||||
|
|
||||||
engine = Environment(
|
|
||||||
loader=FileSystemLoader("templates"),
|
|
||||||
autoescape=select_autoescape(),
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def render(template: str) -> str:
|
|
||||||
return engine.get_template(template).render()
|
|
||||||
|
|
||||||
|
|
||||||
# TODO: from a config
|
|
||||||
templates = ["index.html", "t2-corail.html", "t3-azur.html", "contact.html"]
|
|
||||||
|
|
||||||
|
|
||||||
for template in templates:
|
|
||||||
print(f"render '{template}'")
|
|
||||||
with open(path.join("dist", template), "w") as f:
|
|
||||||
f.write(render(template))
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
<link href="../css/styles.css" rel="stylesheet">
|
<link href="../css/styles.css" rel="stylesheet">
|
||||||
|
|
||||||
<!-- Favicon -->
|
<!-- Favicon -->
|
||||||
<link rel="icon" href="../images/favicon.png">
|
<link rel="icon" href="../images/logo.png">
|
||||||
</head>
|
</head>
|
||||||
<body data-spy="scroll" data-target=".fixed-top">
|
<body data-spy="scroll" data-target=".fixed-top">
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue