@ -0,0 +1 @@ |
|||||||
|
venv |
||||||
@ -0,0 +1,159 @@ |
|||||||
|
import os |
||||||
|
import subprocess |
||||||
|
from flask import Flask , send_from_directory , request , jsonify |
||||||
|
from flask_flatpages import FlatPages |
||||||
|
from flask import render_template |
||||||
|
import os |
||||||
|
|
||||||
|
FLATPAGES_EXTENSION = '.md' |
||||||
|
FLATPAGES_AUTO_RELOAD = True |
||||||
|
|
||||||
|
app = Flask(__name__) |
||||||
|
app.config['APPLICATION_ROOT'] = '/tdtdt' |
||||||
|
BASE_DIR = os.path.abspath(os.path.dirname(__file__)) |
||||||
|
FLATPAGES_MARKDOWN_EXTENSIONS = ['extra'] |
||||||
|
FLATPAGES_EXTENSION_CONFIGS = { |
||||||
|
'codehilite': { |
||||||
|
'linenums': 'True' |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
app.config.from_object(__name__) |
||||||
|
pages = FlatPages(app) |
||||||
|
application = app |
||||||
|
pages.get('foo') |
||||||
|
|
||||||
|
def Liste_cat(): |
||||||
|
articles = (p for p in pages if 'published' in p.meta) |
||||||
|
catList = [] |
||||||
|
for a in articles: |
||||||
|
catList.append(a.meta['cat']) |
||||||
|
catList = list(dict.fromkeys(catList)) |
||||||
|
return catList |
||||||
|
|
||||||
|
def imagelist(articlename): |
||||||
|
dir_path = os.path.dirname(os.path.realpath(articlename))+'/pages/' |
||||||
|
gallery_path = os.path.join(dir_path, articlename) |
||||||
|
if os.path.exists(gallery_path): |
||||||
|
images = [f for f in os.listdir(gallery_path) if f.endswith('.jpg') or f.endswith('.jpeg') or f.endswith('.png') or f.endswith('.gif')] |
||||||
|
return gallery_path ,images |
||||||
|
else: |
||||||
|
return None, None |
||||||
|
|
||||||
|
|
||||||
|
# this is chatgpt quick fix no love ! |
||||||
|
def is_time(value): |
||||||
|
try: |
||||||
|
datetime.strptime(value, '%H:%M:%S') # Adjust the format as needed |
||||||
|
return True |
||||||
|
except ValueError: |
||||||
|
return False |
||||||
|
|
||||||
|
|
||||||
|
@app.route('/') |
||||||
|
def index(): |
||||||
|
# Articles are pages with a publication date |
||||||
|
articles = (p for p in pages if 'published' in p.meta) |
||||||
|
latest = sorted(articles, reverse=True, |
||||||
|
key=lambda p: p.meta['published']) |
||||||
|
catList = Liste_cat() |
||||||
|
return render_template('index.html', articles=latest , catList=catList ) |
||||||
|
|
||||||
|
@app.route('/<path:path>') |
||||||
|
def page(path): |
||||||
|
page = pages.get_or_404(path) |
||||||
|
catList = Liste_cat() |
||||||
|
g_path, imgs = imagelist(path) |
||||||
|
# print(list(page.meta.values())) |
||||||
|
if imgs: |
||||||
|
return render_template('single.html', page=page ,catList=catList , g_path=g_path, imgs = imgs) |
||||||
|
else : |
||||||
|
return render_template('single.html', page=page ,catList=catList) |
||||||
|
|
||||||
|
@app.route('/info') |
||||||
|
def info(): |
||||||
|
page = pages.get_or_404('info') |
||||||
|
catList = Liste_cat() |
||||||
|
return render_template('staticpage.html', page=page , catList=catList) |
||||||
|
|
||||||
|
@app.route('/cat/<catname>') |
||||||
|
def catPage(catname): |
||||||
|
articles = (p for p in pages if 'published' in p.meta and 'cat' in p.meta and p.meta['cat']==catname ) |
||||||
|
latest = sorted(articles, reverse=True, |
||||||
|
key=lambda p: p.meta['published']) |
||||||
|
catList = Liste_cat() |
||||||
|
return render_template('index.html', articles=latest , catList=catList ) |
||||||
|
|
||||||
|
@app.route('/author/<authorname>') |
||||||
|
def authorPage(authorname): |
||||||
|
articles = (p for p in pages if 'published' in p.meta and 'author' in p.meta and p.meta['author']==authorname ) |
||||||
|
latest = sorted(articles, reverse=True, |
||||||
|
key=lambda p: p.meta['published']) |
||||||
|
catList = Liste_cat() |
||||||
|
return render_template('index.html', articles=latest , catList=catList ) |
||||||
|
|
||||||
|
|
||||||
|
@app.route('/pages/<path:path>') |
||||||
|
def serve_pages(path): |
||||||
|
return send_from_directory('pages', path) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/search', methods=['POST']) |
||||||
|
def search(): |
||||||
|
query = request.form['query'] |
||||||
|
print(query) |
||||||
|
catList = Liste_cat() |
||||||
|
# articles = (p for p in pages if 'published' in p.meta and query.lower() in metastr= lambda m : [item.lower() for item in list(p.meta.values())]) |
||||||
|
articles = (p for p in pages if 'published' in p.meta and any(isinstance(value,str) and query.lower() in value.lower() for value in p.meta.values())) |
||||||
|
return render_template('index.html', articles=articles ,catList=catList) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/webhook', methods=['POST']) |
||||||
|
def webhook(): |
||||||
|
if request.method == 'POST': |
||||||
|
repo_path = "http://192.168.178.21:3000/zvevqx/tdtdt.git" # Replace with the actual path |
||||||
|
subprocess.run(['git', 'pull', repo_path]) |
||||||
|
return "Webhook received!" |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# # Verify the secret (if you used one in Gitea) |
||||||
|
# secret = "salut" # Replace with your actual secret |
||||||
|
# if secret: |
||||||
|
# if 'X-Gitea-Signature' not in request.headers: |
||||||
|
# return "Unauthorized", 401 |
||||||
|
# received_signature = request.headers['X-Gitea-Signature'] |
||||||
|
# expected_signature = f"sha256={compute_signature(request.data, secret)}" |
||||||
|
# if received_signature != expected_signature: |
||||||
|
# return "Unauthorized", 401 |
||||||
|
# |
||||||
|
# # Perform Git pull to update the website's code |
||||||
|
# # repo_path = "/path/to/your/website/repo" # Replace with the actual path |
||||||
|
# # subprocess.run(['git', 'pull'], cwd=repo_path) |
||||||
|
# # Restart the Flask app |
||||||
|
# #restart_flask_app() |
||||||
|
# print("YOLOLYOYLOOLLYYYOOOLLOO il y a un push") |
||||||
|
# return "Webhook received and processed successfully", 200 |
||||||
|
|
||||||
|
def compute_signature(data, secret): |
||||||
|
import hmac |
||||||
|
import hashlib |
||||||
|
return hmac.new(secret.encode('utf-8'), data, hashlib.sha256).hexdigest() |
||||||
|
|
||||||
|
def restart_flask_app(): |
||||||
|
# Customize this function to restart your Flask app (e.g., using gunicorn, systemd, etc.) |
||||||
|
# Example: subprocess.run(['systemctl', 'restart', 'your-flask-app.service']) |
||||||
|
pass |
||||||
|
|
||||||
|
|
||||||
|
@app.errorhandler(404) |
||||||
|
def page_not_found(e): |
||||||
|
# note that we set the 404 status explicitly |
||||||
|
return "NOPE NOTHING HERE plz leave now 🛸" |
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
app.run(host='0.0.0.0') |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
#!/usr/bin/env python3 |
||||||
|
from app import app |
||||||
|
|
||||||
|
def application(environ, start_response): |
||||||
|
return app(environ, start_response) |
||||||
|
|
||||||
|
if __name__ == "__main__": |
||||||
|
app.run() |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,38 @@ |
|||||||
|
title : article type |
||||||
|
author: zvevqx |
||||||
|
published: 2021-11-22 |
||||||
|
cat: linux |
||||||
|
desc: ws |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# mon titre |
||||||
|
|
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
Her father remarried while at Burma and Kuntala returned to Odisha with her Mother. She settled in Khurdha with her mother after returning from Burma. In spite of total lack of women's education her mother's perseverance allowed her to receive a good education. She studied from Ravenshaw Girls High School and continued her education in Orissa Medical School, Cuttack (Now Srirama Chandra Bhanja Medical College and Hospital). She earned her L.M.P (Licentiate Medical Practitioners) degree in 1921 with a gold medal. She was fluent in Odia, Hindi, Bengali, English and Burmese.[5] Her father remarried while at Burma and Kuntala returned to Odisha with her Mother. She settled in Khurdha with her mother after returning from Burma. In spite of total lack of women's education her mother's perseverance allowed her to receive a good education. She studied from Ravenshaw Girls High School and continued her education in Orissa Medical School, Cuttack (Now Srirama Chandra Bhanja Medical College and Hospital). She earned her L.M.P (Licentiate Medical Practitioners) degree in 1921 with a gold medal. She was fluent in Odia, Hindi, Bengali, English and Burmese.[5] Her father remarried while at Burma and Kuntala returned to Odisha with her Mother. She settled in Khurdha with her mother after returning from Burma. In spite of total lack of women's education her mother's perseverance allowed her to receive a good education. She studied from Ravenshaw Girls High School and continued her education in Orissa Medical School, Cuttack (Now Srirama Chandra Bhanja Medical College and Hospital). She earned her L.M.P (Licentiate Medical Practitioners) degree in 1921 with a gold medal. She was fluent in Odia, Hindi, Bengali, English and Burmese.[5] Her father remarried while at Burma and Kuntala returned to Odisha with her Mother. She settled in Khurdha with her mother after returning from Burma. In spite of total lack of women's education her mother's perseverance allowed her to receive a good education. She studied from Ravenshaw Girls High School and continued her education in Orissa Medical School, Cuttack (Now Srirama Chandra Bhanja Medical College and Hospital). She earned her L.M.P |
||||||
|
|
||||||
|
some code ( add 1 **tab** before every line ) |
||||||
|
|
||||||
|
def Liste_cat(): |
||||||
|
articles = (p for p in pages if 'published' in p.meta) |
||||||
|
catList = [] |
||||||
|
for a in articles: |
||||||
|
catList.append(a.meta['cat']) |
||||||
|
catList = list(dict.fromkeys(catList)) |
||||||
|
return catList |
||||||
|
|
||||||
|
|
||||||
|
[un lien](https://google.com) |
||||||
|
|
||||||
|
- lest |
||||||
|
- tewt |
||||||
|
- trie |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
yyEach of these objects is associated to a path: the slash-separated (whatever the OS) name of the file it was loaded from, relative to the pages root, and excluding the extension. For example, for an app in |
||||||
@ -0,0 +1,38 @@ |
|||||||
|
title : Bash and terminal command |
||||||
|
author: zvevqx |
||||||
|
published: 2025-11-22 |
||||||
|
cat: linux |
||||||
|
desc: ws |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
👾 MOST OF THIS PAGE IS DIRECT OUTPUT OF CHATGPT 3.5 |
||||||
|
|
||||||
|
# Basic Bash Commands for Navigating a File System |
||||||
|
|
||||||
|
Here are some of the basic Bash commands you can use to navigate a file system: |
||||||
|
|
||||||
|
1. `pwd`: Displays the current working directory. |
||||||
|
2. `cd`: Changes the current working directory. |
||||||
|
* `cd <directory-name>`: Changes to the specified directory. |
||||||
|
* `cd ..`: Changes to the parent directory. |
||||||
|
* `cd /`: Changes to the root directory. |
||||||
|
* `cd ~`: Changes to the home directory. |
||||||
|
3. `ls`: Lists the contents of the current directory. |
||||||
|
* `ls <directory-name>`: Lists the contents of the specified directory. |
||||||
|
* `ls -l`: Lists the contents of the current directory in long format. |
||||||
|
* `ls -a`: Lists all contents of the current directory, including hidden files. |
||||||
|
4. `mkdir`: Creates a new directory. |
||||||
|
* `mkdir <directory-name>`: Creates a new directory with the specified name. |
||||||
|
5. `touch`: Creates a new file. |
||||||
|
* `touch <file-name>`: Creates a new file with the specified name. |
||||||
|
6. `cp`: Copies a file or directory. |
||||||
|
* `cp <source> <destination>`: Copies the file or directory from the source to the destination. |
||||||
|
7. `mv`: Moves a file or directory. |
||||||
|
* `mv <source> <destination>`: Moves the file or directory from the source to the destination. |
||||||
|
8. `rm`: Deletes a file or directory. |
||||||
|
* `rm <file-name>`: Deletes the specified file. |
||||||
|
* `rm -r <directory-name>`: Deletes the specified directory and its contents. |
||||||
|
|
||||||
|
These are just a few of the basic Bash commands you can use to navigate a file system. As you become more familiar with these commands, you can start to use more advanced commands to perform more complex tasks. |
||||||
|
|
||||||
@ -0,0 +1,88 @@ |
|||||||
|
title : Cheatsheet all |
||||||
|
author: zvevqx |
||||||
|
published: 2025-11-22 |
||||||
|
cat: linux |
||||||
|
desc: ws |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
👾 MOST OF THIS PAGE IS DIRECT OUTPUT OF CHATGPT 3.5 |
||||||
|
|
||||||
|
# Cheatsheet |
||||||
|
|
||||||
|
## Bash Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `cd [dir]` | change directory | |
||||||
|
| `ls` | list directory contents | |
||||||
|
| `pwd` | print working directory | |
||||||
|
| `mkdir [dir]` | create a new directory | |
||||||
|
| `rm [file]` | remove a file | |
||||||
|
| `rm -r [dir]` | remove a directory and its contents | |
||||||
|
| `cp [source] [destination]` | copy a file or directory | |
||||||
|
| `mv [source] [destination]` | move or rename a file or directory | |
||||||
|
| `cat [file]` | display the contents of a file | |
||||||
|
| `grep [pattern] [file]` | search for a pattern in a file | |
||||||
|
|
||||||
|
## Git Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `git init` | initialize a new Git repository | |
||||||
|
| `git add [file]` | add a file to the staging area | |
||||||
|
| `git commit -m "[message]"` | commit changes with a message | |
||||||
|
| `git status` | show the status of the repository | |
||||||
|
| `git log` | show the commit history | |
||||||
|
| `git push` | push changes to a remote repository | |
||||||
|
| `git pull` | pull changes from a remote repository | |
||||||
|
|
||||||
|
## SSH Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `ssh [user]@[host]` | connect to a remote host via SSH | |
||||||
|
| `scp [file] [user]@[host]:[destination]` | copy a file to a remote host | |
||||||
|
| `ssh-keygen` | generate an SSH key pair | |
||||||
|
| `ssh-copy-id [user]@[host]` | copy your SSH public key to a remote host | |
||||||
|
|
||||||
|
## Python Commands and Tools |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `python` | start the Python interpreter | |
||||||
|
| `pip install [package]` | install a Python package | |
||||||
|
| `venv` | create and manage Python virtual environments | |
||||||
|
|
||||||
|
### Python Virtual Environments |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `python3 -m venv [venv-name]` | create a new virtual environment | |
||||||
|
| `source [venv-name]/bin/activate` | activate the virtual environment | |
||||||
|
| `deactivate` | deactivate the virtual environment | |
||||||
|
|
||||||
|
## FFmpeg Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `ffmpeg -i [input] [output]` | convert a video or audio file | |
||||||
|
| `ffmpeg -i [input] -ss [time] -t [duration] [output]` | trim a video or audio file | |
||||||
|
| `ffmpeg -i [input] -vn -acodec [codec] [output]` | extract audio from a video file | |
||||||
|
| `ffmpeg -f concat -safe 0 -i [list.txt] -c copy [output]` | concatenate multiple video or audio files | |
||||||
|
|
||||||
|
## ImageMagick Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `convert [input] [output]` | convert an image format | |
||||||
|
| `mogrify -resize [size] [input]` | resize an image | |
||||||
|
| `montage [input1] [input2] -geometry [geometry] [output]` | create a montage of images | |
||||||
|
|
||||||
|
## Arduino Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `arduino-cli board list` | list available boards | |
||||||
|
| `arduino-cli compile --fqbn [board] [sketch]` | compile a sketch | |
||||||
|
| `arduino-cli upload -p [port] --fqbn [board |
||||||
@ -0,0 +1,79 @@ |
|||||||
|
title : cli image/video tools ( ffmpeg / imagemagick ) |
||||||
|
author: zvevqx |
||||||
|
published: 2025-11-22 |
||||||
|
cat: tools |
||||||
|
desc: ws |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
👾 MOST OF THIS PAGE IS DIRECT OUTPUT OF CHATGPT 3.5 |
||||||
|
|
||||||
|
# Multimedia Cheat Sheet - Advanced Commands |
||||||
|
|
||||||
|
Here are some advanced commands for two powerful multimedia tools: FFmpeg and ImageMagick. |
||||||
|
|
||||||
|
## FFmpeg Cheat Sheet |
||||||
|
|
||||||
|
FFmpeg is a powerful tool for manipulating video and audio files. |
||||||
|
|
||||||
|
### Basic Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `ffmpeg -i input.mp4 output.avi` | Convert MP4 file to AVI | |
||||||
|
| `ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 output.mp4` | Trim a video from 10 seconds to 15 seconds | |
||||||
|
| `ffmpeg -i input.mp4 -vn output.mp3` | Extract audio from a video file | |
||||||
|
| `ffmpeg -i input.mp4 -vf "scale=640:360" output.mp4` | Resize a video to 640x360 pixels | |
||||||
|
|
||||||
|
### Advanced Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `ffmpeg -i input.mp4 -filter_complex "[0:v]split[v1][v2];[v1]scale=640:360[v1out];[v2]scale=1280:720[v2out]" -map "[v1out]" -map "[v2out]" -preset ultrafast -c:v libx264 -c:a copy output.mp4` | Split a video into two different resolutions (640x360 and 1280x720) | |
||||||
|
| `ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" output.mp4` | Add a watermark to a video | |
||||||
|
| `ffmpeg -i input.mp4 -af "pan=stereo|c0=c1|c1=c0" output.mp4` | Convert mono audio to stereo | |
||||||
|
| `ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset veryslow -c:a copy -movflags +faststart output.mp4` | Encode a video with a CRF value of 23 and a very slow preset, and enable fast start for streaming | |
||||||
|
|
||||||
|
## ImageMagick Cheat Sheet |
||||||
|
|
||||||
|
ImageMagick is a powerful tool for manipulating images. |
||||||
|
|
||||||
|
### Basic Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `convert input.jpg output.png` | Convert a JPEG file to PNG | |
||||||
|
| `convert input.png -resize 50% output.png` | Resize a PNG file to 50% of its original size | |
||||||
|
| `convert input.png -rotate 45 output.png` | Rotate a PNG file by 45 degrees | |
||||||
|
| `convert input.png -crop 100x100+10+10 output.png` | Crop a 100x100 pixel region of a PNG file, starting from the point (10,10) | |
||||||
|
|
||||||
|
### Advanced Commands |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| `convert input.png -morphology Convolve Sobel:1 output.png` | Apply a Sobel edge detection filter to a PNG file | |
||||||
|
| `convert input.png -colorspace Gray -negate output.png` | Convert a PNG file to grayscale and invert its colors | |
||||||
|
| `convert input.png -threshold 50% output.png` | Apply a binary threshold to a PNG file | |
||||||
|
| `convert input1.png input2.png -compose Difference -composite -normalize output.png` | Compute the absolute difference between two PNG files | |
||||||
|
|
||||||
|
### Batch Processing with Mogrify |
||||||
|
|
||||||
|
ImageMagick's `mogrify` command allows you to process multiple images in a directory at once. Here are some useful commands: |
||||||
|
|
||||||
|
| Command | Description | |
||||||
|
| --- | --- | |
||||||
|
| mogrify -resize 50% *.jpg | Resize all JPEG files in the current directory to 50% of their original size | |
||||||
|
| mogrify -format png *.jpg | Convert all JPEG files in the current directory to PNG | |
||||||
|
| mogrify -rotate 90 *.png | Rotate all PNG files in the current directory by 90 degrees | |
||||||
|
| mogrify -strip *.jpg | Remove EXIF data from all JPEG files in the current directory | |
||||||
|
|
||||||
|
Note that mogrify modifies the original files in place, so be sure to make a backup of your files before using this command |
||||||
|
|
||||||
|
| Command | Description| |
||||||
|
| --- | --- | |
||||||
|
| mogrify -resize 50% *.jpg | Resize all JPEG files in the current directory to 50% of their original size | |
||||||
|
| mogrify -format png *.jpg | Convert all JPEG files in the current directory to PNG | |
||||||
|
| mogrify -rotate 90 *.png | Rotate all PNG files in the current directory by 90 degrees | |
||||||
|
| mogrify -strip *.jpg | Remove EXIF data from all JPEG files in the current directory | |
||||||
|
|
||||||
|
**Note that mogrify modifies the original files in place, so be sure to make a backup of your files before using this command**. |
||||||
@ -0,0 +1,48 @@ |
|||||||
|
title : git and github basic |
||||||
|
author: zvevqx |
||||||
|
published: 2025-11-22 |
||||||
|
cat: linux |
||||||
|
desc: ws |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
👾 MOST OF THIS PAGE IS DIRECT OUTPUT OF CHATGPT 3.5 |
||||||
|
|
||||||
|
# Git and GitHub Basics |
||||||
|
|
||||||
|
## What is Git? |
||||||
|
Git is a free and open-source version control system that helps you keep track of changes made to your code over time. |
||||||
|
|
||||||
|
## What is GitHub? |
||||||
|
GitHub is a web-based platform that provides hosting for Git repositories. It also offers many collaboration features such as pull requests, code reviews, and issue tracking. |
||||||
|
|
||||||
|
## Getting Started |
||||||
|
To get started with Git and GitHub, follow these steps: |
||||||
|
|
||||||
|
1. Install Git on your computer. |
||||||
|
2. Create a GitHub account. |
||||||
|
3. Open your terminal or command prompt. |
||||||
|
4. Navigate to the directory where you want to create your project. |
||||||
|
5. Initialize a new Git repository using the command `git init`. |
||||||
|
|
||||||
|
## Basic Git Commands |
||||||
|
Here are some of the basic Git commands you will need to use: |
||||||
|
|
||||||
|
- `git status` - shows the status of your Git repository |
||||||
|
- `git add .` - adds all changes to the staging area |
||||||
|
- `git commit -m "commit message"` - commits changes to the local repository with a message |
||||||
|
- `git push` - pushes changes to the remote repository |
||||||
|
|
||||||
|
## Basic GitHub Commands |
||||||
|
Here are some of the basic GitHub commands you will need to use: |
||||||
|
|
||||||
|
- `git clone <repository url>` - clones a repository to your local machine |
||||||
|
- `git pull` - pulls changes from the remote repository to your local machine |
||||||
|
- `git branch` - shows a list of branches in the repository |
||||||
|
- `git checkout <branch name>` - switches to the specified branch |
||||||
|
- `git merge <branch name>` - merges the specified branch with the current branch |
||||||
|
- `git push <remote> <branch>` - pushes changes to a specific remote branch |
||||||
|
|
||||||
|
## Conclusion |
||||||
|
These are just the basics of Git and GitHub, but they should be enough to get you started with version control and collaborating with others on code. As you continue to use these tools, you will learn more advanced commands and techniques. |
||||||
|
|
||||||
@ -0,0 +1,17 @@ |
|||||||
|
title: info |
||||||
|
author: julien |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
# contact |
||||||
|
|
||||||
|
0460 96 28 21 |
||||||
|
email@domain.com |
||||||
|
|
||||||
|
rue du sceptre 23 |
||||||
|
1050 ixelles |
||||||
|
|
||||||
|
=== |
||||||
|
|
||||||
|
# CV |
||||||
|
|
||||||
@ -0,0 +1,678 @@ |
|||||||
|
--- |
||||||
|
title: RESSOURCES |
||||||
|
author: zvevqx |
||||||
|
published: 2023-11-22 |
||||||
|
cat: various |
||||||
|
desc: ws |
||||||
|
... |
||||||
|
|
||||||
|
|
||||||
|
## coding |
||||||
|
|
||||||
|
### learning |
||||||
|
|
||||||
|
|
||||||
|
**** |
||||||
|
|
||||||
|
**Dive into python** |
||||||
|
|
||||||
|
- reference historique |
||||||
|
- tres complet |
||||||
|
- disponible en plusieurs langue |
||||||
|
|
||||||
|
[https://diveintopython3.net/](https://diveintopython3.net/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**lear X in Y minutes** |
||||||
|
|
||||||
|
- touts les languages sous forme d'une page *help* |
||||||
|
- bon moyen de comprendre |
||||||
|
- support aide memoire |
||||||
|
|
||||||
|
[https://learnxinyminutes.com/](https://learnxinyminutes.com/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**CodingBat** |
||||||
|
|
||||||
|
- `python` et `java` |
||||||
|
- suites d'exercices corrige |
||||||
|
- console python integre au site |
||||||
|
|
||||||
|
[https://codingbat.com/python](https://codingbat.com/python) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**CodeCademy** |
||||||
|
|
||||||
|
- formation a `python2` gratuite |
||||||
|
- multiple parcours d'apprentissage |
||||||
|
|
||||||
|
<mark> Service payant apres une periode de test et suivant les formations </mark> |
||||||
|
|
||||||
|
[https://www.codecademy.com/learn/learn-python](https://www.codecademy.com/learn/learn-python) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### language |
||||||
|
|
||||||
|
|
||||||
|
** |
||||||
|
**Arduino** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
- easy to learn |
||||||
|
- grande communautee |
||||||
|
- enormement de ressources et aide en ligne |
||||||
|
|
||||||
|
programation `hardware` sur des cartes de developpement du mm nom |
||||||
|
|
||||||
|
**** |
||||||
|
|
||||||
|
[https://www.arduino.cc/en/Guide/ArduinoUno](https://www.arduino.cc/en/Guide/ArduinoUno) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** |
||||||
|
**processing** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
> Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. |
||||||
|
|
||||||
|
- base sur Java |
||||||
|
- beaucoup de librairie et d'integration possible (ex : `arduino` via `firmata`) |
||||||
|
- enormement de ressources et aide en ligne |
||||||
|
|
||||||
|
[https://processing.org/](https://processing.org/) |
||||||
|
[getting started](https://processing.org/tutorials/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** |
||||||
|
**PureData** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
- programation visuel / nodal |
||||||
|
- grande communautee |
||||||
|
- traiment image / video |
||||||
|
- creation musicale |
||||||
|
|
||||||
|
pendant `open-source` de `max-msp` |
||||||
|
|
||||||
|
[https://puredata.info/](https://puredata.info/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### IDE |
||||||
|
|
||||||
|
#### python |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** |
||||||
|
**Thonny** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
- `I.D.E` pour debutant |
||||||
|
- multi OS ( `linux`, `osx`, `win`) |
||||||
|
- interface graphique pour `pip` |
||||||
|
|
||||||
|
[https://thonny.org/](https://thonny.org/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** |
||||||
|
**idle** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
- ide pour et par `python` |
||||||
|
- console `python` |
||||||
|
|
||||||
|
[https://docs.python.org/3/library/idle.html](https://docs.python.org/3/library/idle.html) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** |
||||||
|
**programiz Online compiler** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
- ide pour et par `python` |
||||||
|
- console `python` |
||||||
|
|
||||||
|
[https://docs.python.org/3/library/idle.html](https://docs.python.org/3/library/idle.html) |
||||||
|
|
||||||
|
|
||||||
|
## software ressource |
||||||
|
|
||||||
|
### 2D drawing / plan / edition |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **INKSCAPE** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* : free / opensource |
||||||
|
*os* : linux / osx / win |
||||||
|
|
||||||
|
*use* vector graphic design software - illustrator like |
||||||
|
|
||||||
|
> |
||||||
|
- illustration / logo / plan for cnc and laser cut |
||||||
|
- could be use as gcode generator with **plugin** |
||||||
|
- lots of avialable plugin (box / gear / puzzle creation ) |
||||||
|
- import `.ai` from illustrator |
||||||
|
|
||||||
|
[inkscape web site ](https://inkscape.org/en/) |
||||||
|
[getting started ](https://inkscape.org/en/learn/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **libreCad** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / opensource |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use*: Cad drawing / techinical - autocad like |
||||||
|
|
||||||
|
> |
||||||
|
- create multiple `DXF` version to export |
||||||
|
|
||||||
|
[libreCad web site ](https://librecad.org/) |
||||||
|
[getting started ](https://wiki.librecad.org/index.php?title=Main_Page) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **Qcad** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* opensource / not Free (*free version avialable*) |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use* Cad drawing / technical drawing ) - autocad like |
||||||
|
|
||||||
|
> |
||||||
|
- import / export `dwg` |
||||||
|
- isometric tools |
||||||
|
- active developpement and plugin |
||||||
|
- `CAM` plugin for Gcode generation |
||||||
|
|
||||||
|
[Qcad web site ](https://www.qcad.org/en/) |
||||||
|
[getting started ](https://www.qcad.org/doc/qcad/latest/reference/en/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **Gimp** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / opensource |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use* image manipulation / pixel drawing - photoshop like |
||||||
|
|
||||||
|
> |
||||||
|
- layer and mask |
||||||
|
- actively devellope |
||||||
|
|
||||||
|
[gimp web site ](https://www.gimp.org/) |
||||||
|
[getting started ](https://www.gimp.org/tutorials/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **krita** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / opensource |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use*: Dessin / annimation / illustration |
||||||
|
|
||||||
|
> |
||||||
|
- gestion de palette graphique |
||||||
|
- systeme d'animation frame par frame |
||||||
|
|
||||||
|
[libreCad web site ](https://krita.org/en/) |
||||||
|
[getting started ](https://wiki.librecad.org/index.php?title=Main_Page) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **Scibus** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / opensource |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use* print and book making / edition sofware - inDesign like |
||||||
|
|
||||||
|
> |
||||||
|
- prepress tool |
||||||
|
- gabarit |
||||||
|
|
||||||
|
[scribus website ](https://www.scribus.net/) |
||||||
|
[getting started ](https://wiki.scribus.net/canvas/Help:TOC) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 3d software |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **Blender** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / opensource |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use* 3d Modeling / animation / image creation. |
||||||
|
|
||||||
|
> |
||||||
|
- light and powerfull |
||||||
|
- lots of ressources online |
||||||
|
- news 3d printing pannel |
||||||
|
- all include (modeling texturing rendrering ) |
||||||
|
- can bu use to generate 3d gcode with `blenderCam` <mark>only' on specific blender version</mark> |
||||||
|
|
||||||
|
[blender website ](https://www.blender.org/) |
||||||
|
[getting started ](https://www.blender.org/support/tutorials/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **OpenScad** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / opensource |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use* 3d Modeling / part creation / |
||||||
|
|
||||||
|
<mark>code generated drawing</mark> |
||||||
|
|
||||||
|
> |
||||||
|
- light and powerfull |
||||||
|
- parametric solid modeling |
||||||
|
|
||||||
|
[openscad website ](http://www.openscad.org/) |
||||||
|
[getting started ](http://www.openscad.org/documentation.html) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **FreeCad** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / opensource |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use* 3d drawing / parametric design / part creation |
||||||
|
|
||||||
|
> |
||||||
|
- 2d / 3d software included |
||||||
|
- parametric solid modeling |
||||||
|
- new `path` workbench for Gcode creation (cnc) |
||||||
|
|
||||||
|
[freecad website ](https://www.freecadweb.org/) |
||||||
|
[getting started ](https://www.freecadweb.org/wiki/Getting_started) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **fusion360 autodesk** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* mountly plan / close source / *student free version* |
||||||
|
*os* ~~linux~~ / osx / win |
||||||
|
|
||||||
|
no plan for a `linux` version. |
||||||
|
|
||||||
|
*use* 3d Modeling / part creation / parametric |
||||||
|
|
||||||
|
> |
||||||
|
- powerfull |
||||||
|
- parametric solid modeling |
||||||
|
- widely used |
||||||
|
- `CAM` module include |
||||||
|
|
||||||
|
[autodesk Fusion360 website ](https://www.autodesk.com/products/fusion-360/students-teachers-educators) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **tinkerCad** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / plan |
||||||
|
*os* Web Browser based |
||||||
|
|
||||||
|
*use* 3d Modeling / part creation / |
||||||
|
|
||||||
|
> |
||||||
|
- online / no installation require |
||||||
|
- parametric solid modeling |
||||||
|
|
||||||
|
[tinkercad web site ](https://www.tinkercad.com/) |
||||||
|
[getting started ](https://www.tinkercad.com/learn/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### CAM / machine control |
||||||
|
|
||||||
|
#### CNC / Laser |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **LaserWeb4** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / opensource |
||||||
|
*os* linux / osx / win |
||||||
|
|
||||||
|
*use* Cnc / laser gcode creation & machine control (GBRL 1.1f min) |
||||||
|
|
||||||
|
> |
||||||
|
- light and powerfull |
||||||
|
- All include |
||||||
|
- easy to use |
||||||
|
- control both *CNC* and *Laser* (`GRBL` based) |
||||||
|
|
||||||
|
[laserWeb4 gitHub page ](https://github.com/LaserWeb/LaserWeb4) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**MakerCAM** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free |
||||||
|
*os* webBrowser app |
||||||
|
|
||||||
|
*use* CNC 2.5D gcode generator |
||||||
|
|
||||||
|
<mark>need FLASH to operate</mark> |
||||||
|
|
||||||
|
> |
||||||
|
- simple and easy to use |
||||||
|
- may cause problem in mm due to too much decimal. can be fix with python script [truncate](https://github.com/jhessig/metric-gcode-truncator) |
||||||
|
|
||||||
|
[makercam website ](http://makercam.com) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **Bcnc** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / openSource |
||||||
|
*os* linux / osx / windows |
||||||
|
|
||||||
|
*use* CNC 2.5D gcode generator |
||||||
|
|
||||||
|
base on `python` |
||||||
|
|
||||||
|
> |
||||||
|
- lot of feature (bed leveling /gcode editor / gcode generator / various tools ) |
||||||
|
- grbl Based machine (`1.1f` min) |
||||||
|
|
||||||
|
[Bcnc gitHub Page ](https://github.com/vlachoudis/bCNC) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#### 3D print |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **Cura** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / openSource |
||||||
|
*os* linux / osx / windows |
||||||
|
|
||||||
|
*use* Generate 3d printer gcode file and control |
||||||
|
|
||||||
|
> |
||||||
|
- lots of predefine printer parametre |
||||||
|
- lots of users |
||||||
|
|
||||||
|
[ultimaker Cura website ](https://ultimaker.com/en/products/ultimaker-cura-software) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **Slic3r** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / openSource |
||||||
|
*os* linux / osx / windows |
||||||
|
|
||||||
|
*use* Generate 3d printer gcode file and control |
||||||
|
|
||||||
|
> |
||||||
|
- offert full control on parameter |
||||||
|
- lots of users and documentation |
||||||
|
- really good new feature in the prusa edition |
||||||
|
|
||||||
|
<mark>the new version is now from Prusa research</mark> |
||||||
|
|
||||||
|
[Slic3r Official website ](http://slic3r.org) |
||||||
|
[Slic3r Prusa edition website ](https://www.prusa3d.com/slic3r-prusa-edition/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
** **Octoprint** |
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
*licence* free / openSource |
||||||
|
*os* linux / osx / windows |
||||||
|
|
||||||
|
*use* Print server for 3d printer / printer control / gcode creation from server (cura 1.5 || slicer ) |
||||||
|
|
||||||
|
> |
||||||
|
- full printer monitoring |
||||||
|
- pugin to add functionality |
||||||
|
- run on a `raspberryPi` and doest require a laptop or sd cad to operate machine (all can be done via local network) |
||||||
|
|
||||||
|
[octoprint website](https://octoprint.org/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## objet ressource and download |
||||||
|
|
||||||
|
### 3dprint / cnc / laser files |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**thingiverse** |
||||||
|
|
||||||
|
- 3d files (stl) objet and part |
||||||
|
- laser and cnc objet and part |
||||||
|
- some parametric model (*openScad*) |
||||||
|
|
||||||
|
[thingiverse](https://www.thingiverse.com/) |
||||||
|
|
||||||
|
**youimagine** |
||||||
|
|
||||||
|
- 3d files (stl) objet and part |
||||||
|
- laser and cnc objet and part |
||||||
|
|
||||||
|
[youimagine](https://www.youmagine.com/) |
||||||
|
|
||||||
|
**myminifactory** |
||||||
|
|
||||||
|
- 3d files ready to print |
||||||
|
|
||||||
|
[myminifactory](https://www.myminifactory.com/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Tutorial / howto |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**instructable** |
||||||
|
|
||||||
|
- all the tutorial you can think of |
||||||
|
- arduino |
||||||
|
- diy |
||||||
|
- robot ... |
||||||
|
|
||||||
|
[instructable ](https://www.instructables.com/) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### VARIOUS ONLINE RESSOURCES |
||||||
|
|
||||||
|
`Posted by u/morphfiend` |
||||||
|
|
||||||
|
#### Fusion360 |
||||||
|
|
||||||
|
- Lars Christensen - [https://www.youtube.com/user/cadcamstuff/playlists](https://www.youtube.com/user/cadcamstuff/playlists) |
||||||
|
- Start with the basics - [https://www.youtube.com/playlist?list=PLmA_xUT-8UlLmTvSAketheHaNQWxNA5yT](https://www.youtube.com/playlist?list=PLmA_xUT-8UlLmTvSAketheHaNQWxNA5yT) |
||||||
|
- Quick Tips & Best practices - [https://www.youtube.com/playlist?list=PLmA_xUT-8UlIh4hHJDCEDLPi3wQiMrPRY](https://www.youtube.com/playlist?list=PLmA_xUT-8UlIh4hHJDCEDLPi3wQiMrPRY) |
||||||
|
- Fusion 360 in 90 minutes - [https://academy.autodesk.com/course/129267/introduction-cad-learn-fusion-360-90-minutes](https://academy.autodesk.com/course/129267/introduction-cad-learn-fusion-360-90-minutes) |
||||||
|
- Autodesk Academy - [https://academy.autodesk.com/software/fusion-360](https://academy.autodesk.com/software/fusion-360) |
||||||
|
- Fusion 360 Parameters - [http://help.autodesk.com/view/fusion360/ENU/?guid=GUID-76272551-3275-46C4-AE4D-10D58B408C20](http://help.autodesk.com/view/fusion360/ENU/?guid=GUID-76272551-3275-46C4-AE4D-10D58B408C20) |
||||||
|
|
||||||
|
#### OnShape |
||||||
|
|
||||||
|
- OnShape Tutorials - [https://www.onshape.com/videos/topic/tutorials](https://www.onshape.com/videos/topic/tutorials) |
||||||
|
- OnShape Tech Tips - [https://www.onshape.com/videos/topic/tech-tips](https://www.onshape.com/videos/topic/tech-tips) |
||||||
|
- CADSessions - [https://www.youtube.com/channel/UCVkrWFAz_F9mYhs3Q1V7ahA/video](https://www.youtube.com/channel/UCVkrWFAz_F9mYhs3Q1V7ahA/video) |
||||||
|
|
||||||
|
#### OpenSCAD |
||||||
|
|
||||||
|
- Cheat sheet - [http://www.openscad.org/documentation.html](http://www.openscad.org/documentation.html) |
||||||
|
- Paul Randall (does OpenSCAD and freecad) - [https://www.youtube.com/channel/UCnxMaGMCrWAQgwF61ISRpGw/](https://www.youtube.com/channel/UCnxMaGMCrWAQgwF61ISRpGw/) |
||||||
|
- OpenSCAD beginners tutorial - [http://edutechwiki.unige.ch/en/OpenScad_beginners_tutorial](http://edutechwiki.unige.ch/en/OpenScad_beginners_tutorial) |
||||||
|
|
||||||
|
#### Rhino 3D |
||||||
|
|
||||||
|
- Basics - [http://www.rhino3d.com/getting-started](http://www.rhino3d.com/getting-started) |
||||||
|
- Preparing for 3D Printing - [https://wiki.mcneel.com/rhino/3dprinting](https://wiki.mcneel.com/rhino/3dprinting) |
||||||
|
- Prepare your model for 3D Printing with Rhinoceros - [https://www.sculpteo.com/en/tutorial/prepare-your-model-3d-printing-rhinoceros/](https://www.sculpteo.com/en/tutorial/prepare-your-model-3d-printing-rhinoceros/) |
||||||
|
- Advanced Rhino and Grasshopper recorded college classes - [https://www.youtube.com/user/nsenske/playlists](https://www.youtube.com/user/nsenske/playlists) |
||||||
|
|
||||||
|
#### FreeCAD |
||||||
|
|
||||||
|
- FreeCAD tutorials - [https://www.freecadweb.org/wiki/Category:Tutorials](https://www.freecadweb.org/wiki/Category:Tutorials) |
||||||
|
- cad1919 (It is in a different language but uses graphics to help )- [https://www.youtube.com/user/cad1919/playlists](https://www.youtube.com/user/cad1919/playlists) |
||||||
|
- Invent Box Tutorials - [https://www.youtube.com/playlist?list=PL2935W76vRNFvUGefQr3q9P9eezJZyj-u](https://www.youtube.com/playlist?list=PL2935W76vRNFvUGefQr3q9P9eezJZyj-u) |
||||||
|
|
||||||
|
### 3D Modeling |
||||||
|
|
||||||
|
#### Blender 2.7 |
||||||
|
|
||||||
|
- BlenderGuru - [https://www.blenderguru.com](https://www.blenderguru.com) |
||||||
|
- Blendtuts - [https://www.blendtuts.com/tutorials/](https://www.blendtuts.com/tutorials/) |
||||||
|
- CGCookies Blender Basics - [https://cgcookie.com/course/blender-basics](https://cgcookie.com/course/blender-basics) |
||||||
|
- GameDevTV Complete Blender Course(Paid)- [https://www.udemy.com/blendertutorial/](https://www.udemy.com/blendertutorial/) |
||||||
|
- Blender Tutorial - [https://www.blender.org/support/tutorials/](https://www.blender.org/support/tutorials/) |
||||||
|
- Blender Fundamentals - [https://www.youtube.com/playlist?list=PLa1F2ddGya_8V90Kd5eC5PeBjySbXWGK1](https://www.youtube.com/playlist?list=PLa1F2ddGya_8V90Kd5eC5PeBjySbXWGK1) |
||||||
|
|
||||||
|
#### Blender 2.8 |
||||||
|
|
||||||
|
- YanSculpts - [https://www.youtube.com/playlist?list=PLvPwLecDlWRD_VK_2INC1VQ18dZdpDwLi](https://www.youtube.com/playlist?list=PLvPwLecDlWRD_VK_2INC1VQ18dZdpDwLi) |
||||||
|
- BlenderGuru 2.8 - [https://www.youtube.com/playlist?list=PLjEaoINr3zgH1JI7FtPX_Q9OGFhP-HCUV](https://www.youtube.com/playlist?list=PLjEaoINr3zgH1JI7FtPX_Q9OGFhP-HCUV) |
||||||
|
- CG Masters (Paid) - [https://cgmasters.net/training-courses/hard-surface-modeling-in-blender/](https://cgmasters.net/training-courses/hard-surface-modeling-in-blender/) |
||||||
|
|
||||||
|
#### 3ds Max |
||||||
|
|
||||||
|
- TopHATTwaffle - [https://www.youtube.com/playlist?list=PL-454Fe3dQH1WKJEL96bzelfn_2pxYjgf](https://www.youtube.com/playlist?list=PL-454Fe3dQH1WKJEL96bzelfn_2pxYjgf) |
||||||
|
- Autodesk 3ds max learning channel - [https://www.youtube.com/user/3dsMaxHowTos/playlists](https://www.youtube.com/user/3dsMaxHowTos/playlists) |
||||||
|
- Autodesk getting started in 3ds Max - [https://area.autodesk.com/tutorials/series/getting-started-in-3ds-max-2018/](https://area.autodesk.com/tutorials/series/getting-started-in-3ds-max-2018/) |
||||||
|
- Edge3Dcgi - [https://youtu.be/Q_Ks3QdmfvA](https://youtu.be/Q_Ks3QdmfvA) |
||||||
|
- Arrimus 3d - [https://www.youtube.com/playlist?list=PLxt9ZAGPLIpeB8TcHrpzxvEI4Ve3SfZBC](https://www.youtube.com/playlist?list=PLxt9ZAGPLIpeB8TcHrpzxvEI4Ve3SfZBC) |
||||||
|
|
||||||
|
#### 3D Sculpting |
||||||
|
Blender Sculpting |
||||||
|
|
||||||
|
- Grant Abbitt - [https://youtu.be/L3XtAFUWNuk](https://youtu.be/L3XtAFUWNuk) |
||||||
|
- YanSculpts - [https://youtu.be/N4D6F7mhi4I](https://youtu.be/N4D6F7mhi4I) |
||||||
|
|
||||||
|
#### Sculptrius |
||||||
|
|
||||||
|
- pixologic (near the bottome of the page) - [http://pixologic.com/sculptris/](http://pixologic.com/sculptris/) |
||||||
|
- Mr.Brooks - [https://vimeo.com/61128359](https://vimeo.com/61128359) |
||||||
|
- Sculptris cheat sheet - [http://members.casema.nl/jw.v.dronkelaar/sculptris_cheat_sheet.pdf](http://members.casema.nl/jw.v.dronkelaar/sculptris_cheat_sheet.pdf) |
||||||
|
|
||||||
|
#### 3DCoat |
||||||
|
|
||||||
|
- alienminefield - [https://www.youtube.com/playlist?list=PL17Z03Lf1lyKZsHLvg27ZP0kzVR_mvLpX](https://www.youtube.com/playlist?list=PL17Z03Lf1lyKZsHLvg27ZP0kzVR_mvLpX) |
||||||
|
- 3dcoat learn - [https://3dcoat.com/learn/](https://3dcoat.com/learn/) |
||||||
|
- gamedev the pipline - [https://youtu.be/_Mw3yv3hk38](https://youtu.be/_Mw3yv3hk38) |
||||||
|
- Pluralsight (Paid) - [https://www.pluralsight.com/courses/3d-coat-getting-started-2487](https://www.pluralsight.com/courses/3d-coat-getting-started-2487) |
||||||
|
|
||||||
|
#### zBrush |
||||||
|
|
||||||
|
- ZClassroom - [https://pixologic.com/zclassroom/](https://pixologic.com/zclassroom/) |
||||||
|
- Zbrushtuts - [http://zbrushtuts.com/](http://zbrushtuts.com/) |
||||||
|
- Zbrush for beginners - [https://www.youtube.com/watch?v=PO--0h8XHiw](https://www.youtube.com/watch?v=PO--0h8XHiw) |
||||||
|
- Edge-CGI 3D tutorials - [https://www.youtube.com/user/Edge3Dcgi/playlists](https://www.youtube.com/user/Edge3Dcgi/playlists) |
||||||
|
- Twitch for Pixologic - [https://www.twitch.tv/pixologic](https://www.twitch.tv/pixologic) |
||||||
|
- flippednormals - [https://youtu.be/_yKGfcp2z3k](https://youtu.be/_yKGfcp2z3k) |
||||||
|
|
||||||
|
#### Covers multiple pieces of software |
||||||
|
|
||||||
|
- Gnomon workshop (Paid) - [https://www.thegnomonworkshop.com/](https://www.thegnomonworkshop.com/) |
||||||
|
|
||||||
|
#### Special caseMeshmixer |
||||||
|
|
||||||
|
- Maker's Muse - [https://youtu.be/C9VDKb3W4qA](https://youtu.be/C9VDKb3W4qA) |
||||||
|
- Teaching Tech - [https://youtu.be/3GGnwDCFfv0](https://youtu.be/3GGnwDCFfv0) |
||||||
|
- Sculpteo - [https://youtu.be/WwIM4Fp2SgA](https://youtu.be/WwIM4Fp2SgA) |
||||||
|
|
||||||
|
|
||||||
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 1022 KiB |
|
After Width: | Height: | Size: 157 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 491 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 313 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 90 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 576 KiB |
|
After Width: | Height: | Size: 155 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 318 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 185 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 167 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 206 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 368 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 80 KiB |
@ -0,0 +1,83 @@ |
|||||||
|
title : Raspberry pi headless setup 2023 |
||||||
|
author: zvevqx |
||||||
|
published: 2023-09-23 |
||||||
|
cat: linux |
||||||
|
desc: base commands to setup a rasbperrypi headless as rasbian 2023 |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
main source |
||||||
|
[https://www.raspberrypi.com/news/raspberry-pi-bullseye-update-april-2022/](https://www.raspberrypi.com/news/raspberry-pi-bullseye-update-april-2022/) |
||||||
|
|
||||||
|
|
||||||
|
# Flashing the SD card |
||||||
|
|
||||||
|
## the cli way on linux |
||||||
|
|
||||||
|
*you will need:* |
||||||
|
|
||||||
|
- sdcard (8go min) |
||||||
|
- sdcard reader |
||||||
|
|
||||||
|
*findind your sd card on the system* |
||||||
|
|
||||||
|
|
||||||
|
use the `lsblk` command to get the path to your sd card |
||||||
|
|
||||||
|
|
||||||
|
on Unix system (`linux`,`osx`) it sould look like : `/dev/sdX` |
||||||
|
if not sure execute `lsblk` with and without the sdcard inserted and compare |
||||||
|
|
||||||
|
### download os |
||||||
|
download the proper version from Raspberry pi website [link to website](https://www.raspberrypi.com/software/operating-systems/) |
||||||
|
|
||||||
|
### burn it to the sd card with the `dd` command |
||||||
|
🚨 this operation need `sudo` privileges ... be carefull |
||||||
|
|
||||||
|
`sudo dd if=PATH/TO/YOUR/IMAGEFILE.img of=PATH/TO/YOUR/SDCARD status=progress oflag=sync` |
||||||
|
|
||||||
|
and wait |
||||||
|
|
||||||
|
***done🤞*** |
||||||
|
|
||||||
|
## The Gui way |
||||||
|
|
||||||
|
download and install `rpi-imager` software on your computer and follow allong |
||||||
|
|
||||||
|
for linux |
||||||
|
`sudo apt install rpi-imager` |
||||||
|
|
||||||
|
link [https://www.raspberrypi.com/software/](https://www.raspberrypi.com/software/) |
||||||
|
|
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
# Enable `ssh` |
||||||
|
|
||||||
|
create an ampty file on the `bootfs` partition of the sd card |
||||||
|
|
||||||
|
cli |
||||||
|
` touch /PATH/TO/THE/PARTITION/ssh` |
||||||
|
|
||||||
|
--- |
||||||
|
|
||||||
|
# Create user and password |
||||||
|
|
||||||
|
Use `OpenSSL` to encrypt a password: |
||||||
|
`echo 'raspi_users_password' | openssl passwd -6 -stdin` |
||||||
|
|
||||||
|
Create a file named `userconf` in the root directory of the SD card’s boot partition |
||||||
|
|
||||||
|
` touch /PATH/TO/THE/PARTITION/userconf` |
||||||
|
|
||||||
|
Add a line of text to the new file in the following format: `username:encrypted_password` |
||||||
|
where username is the username you want to use to log in to the Rpi, and encrypted_password is the string generated with OpenSSL. |
||||||
|
|
||||||
|
example |
||||||
|
`julien:we342swe4422e@343w44@4453@3456` |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,28 @@ |
|||||||
|
title : shopping website |
||||||
|
author: zvevqx |
||||||
|
published: 2025-11-22 |
||||||
|
cat: Hardware |
||||||
|
desc: short list of online store |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
# electronic and motion |
||||||
|
## electronic stuff and components |
||||||
|
|
||||||
|
- [https://www.kiwi-electronics.com/en/home](https://www.kiwi-electronics.com/en/home) <key>NL</key> |
||||||
|
- [https://www.reichelt.com/fr/fr/](https://www.reichelt.com/fr/fr/) <key>de</key> |
||||||
|
- [https://shop.mchobby.be/en/](https://shop.mchobby.be/en/) <key>be</key> |
||||||
|
- [https://boutique.semageek.com/en/](https://boutique.semageek.com/en/) <key>fr</key> |
||||||
|
|
||||||
|
|
||||||
|
## motor motion and mecanics |
||||||
|
|
||||||
|
- [https://www.robotdigg.com](https://www.robotdigg.com) <key>cn</key> |
||||||
|
- [https://ratrig.com](https://ratrig.com) <key>es</key> |
||||||
|
|
||||||
|
## 3d printing |
||||||
|
|
||||||
|
- [https://reprapworld.com/](https://reprapworld.com/)<key>dk</key> |
||||||
|
- [https://fepshop.com/](https://fepshop.com/)<key>nl</key> |
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,91 @@ |
|||||||
|
title : software |
||||||
|
author: zvevqx |
||||||
|
published: 2021-11-22 |
||||||
|
cat: linux |
||||||
|
desc: ws |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
## wip list of software to look at |
||||||
|
|
||||||
|
|
||||||
|
## cli tools |
||||||
|
|
||||||
|
**potrace**: |
||||||
|
vectorisation tool ( like vetorisation dynamique in `illustrator` ) |
||||||
|
[potrace website](http://potrace.sourceforge.net/) |
||||||
|
|
||||||
|
**imagemagick**: |
||||||
|
swiss army knife image modification ( batch ... ) |
||||||
|
[imagemagick website](https://imagemagick.org/index.php) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## WM / DE |
||||||
|
|
||||||
|
**i3vm**: |
||||||
|
light window manager full option see also i3gap |
||||||
|
|
||||||
|
**dwm**: |
||||||
|
[suckless.org](suckless.org) ultralight wm |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## File manager |
||||||
|
|
||||||
|
### command line |
||||||
|
|
||||||
|
**nnn**: |
||||||
|
ultra light file manager [nnn github](https://github.com/jarun/nnn) |
||||||
|
**ranger**: |
||||||
|
python light file manager |
||||||
|
|
||||||
|
**mc**: |
||||||
|
midnight commander cli |
||||||
|
|
||||||
|
### gui |
||||||
|
|
||||||
|
**pcmanfm**: |
||||||
|
light and fast fm |
||||||
|
|
||||||
|
**krusader**: |
||||||
|
Mc like fm |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Web browser |
||||||
|
|
||||||
|
### cli |
||||||
|
|
||||||
|
**lynkx**: |
||||||
|
cli web browser |
||||||
|
|
||||||
|
### gui |
||||||
|
|
||||||
|
**surf**:webkit based simple webbroser by [suckless.org](suckless.org) |
||||||
|
|
||||||
|
**quteBrowser**: |
||||||
|
keyboard driven web browser [website](https://qutebrowser.org) |
||||||
|
|
||||||
|
## images viewers |
||||||
|
|
||||||
|
**sxiv**: |
||||||
|
simple X images viewer |
||||||
|
|
||||||
|
**Feh**: |
||||||
|
light image viewer |
||||||
|
|
||||||
|
**zathura**: |
||||||
|
light pdf / eps / gs viewer |
||||||
|
|
||||||
|
## various tools |
||||||
|
|
||||||
|
**SCIM**: |
||||||
|
Vim based Speadsheet editor |
||||||
|
|
||||||
|
**Entr**: |
||||||
|
pipe automatisation for almost everything |
||||||
|
|
||||||
|
**Calcurse**: |
||||||
|
calc and todo list in cli with vim binding |
||||||
@ -0,0 +1,38 @@ |
|||||||
|
title : galerie test |
||||||
|
author: zvevqx |
||||||
|
published: 2021-11-22 |
||||||
|
cat: template |
||||||
|
desc: ws |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# fail |
||||||
|
|
||||||
|
|
||||||
|
 |
||||||
|
|
||||||
|
Her father remarried while at Burma and Kuntala returned to Odisha with her Mother. She settled in Khurdha with her mother after returning from Burma. In spite of total lack of women's education her mother's perseverance allowed her to receive a good education. She studied from Ravenshaw Girls High School and continued her education in Orissa Medical School, Cuttack (Now Srirama Chandra Bhanja Medical College and Hospital). She earned her L.M.P (Licentiate Medical Practitioners) degree in 1921 with a gold medal. She was fluent in Odia, Hindi, Bengali, English and Burmese.[5] Her father remarried while at Burma and Kuntala returned to Odisha with her Mother. She settled in Khurdha with her mother after returning from Burma. In spite of total lack of women's education her mother's perseverance allowed her to receive a good education. She studied from Ravenshaw Girls High School and continued her education in Orissa Medical School, Cuttack (Now Srirama Chandra Bhanja Medical College and Hospital). She earned her L.M.P (Licentiate Medical Practitioners) degree in 1921 with a gold medal. She was fluent in Odia, Hindi, Bengali, English and Burmese.[5] Her father remarried while at Burma and Kuntala returned to Odisha with her Mother. She settled in Khurdha with her mother after returning from Burma. In spite of total lack of women's education her mother's perseverance allowed her to receive a good education. She studied from Ravenshaw Girls High School and continued her education in Orissa Medical School, Cuttack (Now Srirama Chandra Bhanja Medical College and Hospital). She earned her L.M.P (Licentiate Medical Practitioners) degree in 1921 with a gold medal. She was fluent in Odia, Hindi, Bengali, English and Burmese.[5] Her father remarried while at Burma and Kuntala returned to Odisha with her Mother. She settled in Khurdha with her mother after returning from Burma. In spite of total lack of women's education her mother's perseverance allowed her to receive a good education. She studied from Ravenshaw Girls High School and continued her education in Orissa Medical School, Cuttack (Now Srirama Chandra Bhanja Medical College and Hospital). She earned her L.M.P |
||||||
|
|
||||||
|
some code ( add 1 **tab** before every line ) |
||||||
|
|
||||||
|
def Liste_cat(): |
||||||
|
articles = (p for p in pages if 'published' in p.meta) |
||||||
|
catList = [] |
||||||
|
for a in articles: |
||||||
|
catList.append(a.meta['cat']) |
||||||
|
catList = list(dict.fromkeys(catList)) |
||||||
|
return catList |
||||||
|
|
||||||
|
|
||||||
|
[un lien](https://google.com) |
||||||
|
|
||||||
|
- lest |
||||||
|
- tewt |
||||||
|
- trie |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
yyEach of these objects is associated to a path: the slash-separated (whatever the OS) name of the file it was loaded from, relative to the pages root, and excluding the extension. For example, for an app in |
||||||
|
After Width: | Height: | Size: 534 KiB |
|
After Width: | Height: | Size: 266 KiB |
|
After Width: | Height: | Size: 76 KiB |
@ -0,0 +1,20 @@ |
|||||||
|
title : Various cli onliner tools |
||||||
|
author: zvevqx |
||||||
|
published: 2025-11-22 |
||||||
|
cat: linux |
||||||
|
desc: differents one line ( or more ) command to do differents stuff |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
|
||||||
|
# various utility |
||||||
|
|
||||||
|
## cd / dvd rip |
||||||
|
|
||||||
|
### cd audio tools |
||||||
|
|
||||||
|
*cdparanoia* |
||||||
|
|
||||||
|
`cdda2wav -vall cddb=-1 speed=4 -paranoia paraopts=proof -J -B -D /dev/sr0` |
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,107 @@ |
|||||||
|
title : VIM basics |
||||||
|
author: zvevqx |
||||||
|
published: 2025-11-22 |
||||||
|
cat: linux |
||||||
|
desc: ws |
||||||
|
|
||||||
|
... |
||||||
|
|
||||||
|
|
||||||
|
👾 MOST OF THIS PAGE IS DIRECT OUTPUT OF CHATGPT 3.5 |
||||||
|
|
||||||
|
# Vim Editor |
||||||
|
|
||||||
|
Vim is a powerful and popular text editor that runs in the command-line interface. It is known for its efficient and customizable editing features that allow users to edit text with speed and precision. |
||||||
|
|
||||||
|
# Main Vim Operations |
||||||
|
|
||||||
|
|
||||||
|
| Operation | Shortcut | Description | |
||||||
|
|-------------------------|---------------------------|----------------------------------------------------| |
||||||
|
| **Navigation** | | | |
||||||
|
| Move left | `h` | Move the cursor left. | |
||||||
|
| Move down | `j` | Move the cursor down. | |
||||||
|
| Move up | `k` | Move the cursor up. | |
||||||
|
| Move right | `l` | Move the cursor right. | |
||||||
|
| Move forward one word | `w` | Move forward one word. | |
||||||
|
| Move backward one word | `b` | Move backward one word. | |
||||||
|
| Move to end of line | `$` | Move to the end of the current line. | |
||||||
|
| Move to beginning | `0` | Move to the beginning of the current line. | |
||||||
|
| Move to end of file | `G` | Move to the end of the file. | |
||||||
|
| Move to beginning of file | `gg` | Move to the beginning of the file. | |
||||||
|
| Move to specific line | `<line_number>G` | Move to a specific line number. | |
||||||
|
| Move to matching bracket| `%` | Move to the matching parenthesis, bracket, or brace.| |
||||||
|
| Move to paragraph start | `{` | Move to the beginning of the current paragraph. | |
||||||
|
| Move to paragraph end | `}` | Move to the end of the current paragraph. | |
||||||
|
| Move half a page up | `Ctrl+u` | Move half a page up. | |
||||||
|
| Move half a page down | `Ctrl+d` | Move half a page down. | |
||||||
|
| **Editing** | | | |
||||||
|
| Insert before cursor | `i` | Insert text before the cursor. | |
||||||
|
| Insert at line start | `I` | Insert text at the beginning of the current line. | |
||||||
|
| Append after cursor | `a` | Append text after the cursor. | |
||||||
|
| Append at line end | `A` | Append text at the end of the current line. | |
||||||
|
| Open line below cursor | `o` | Open a new line below the current line and enter insert mode. | |
||||||
|
| Open line above cursor | `O` | Open a new line above the current line and enter insert mode. | |
||||||
|
| Delete character | `x` | Delete the character under the cursor. | |
||||||
|
| Delete current line | `dd` | Delete the current line. | |
||||||
|
| Yank (copy) current line| `yy` | Yank (copy) the current line. | |
||||||
|
| Paste after cursor | `p` | Paste the yanked text after the cursor. | |
||||||
|
| Paste before cursor | `P` | Paste the yanked text before the cursor. | |
||||||
|
| Undo | `u` | Undo the last change. | |
||||||
|
| Redo | `Ctrl+r` | Redo the last change. | |
||||||
|
| **Search and Replace** | | | |
||||||
|
| Search forward | `/search_term` | Search forward for "search_term." | |
||||||
|
| Search backward | `?search_term` | Search backward for "search_term." | |
||||||
|
| Move to next search result | `n` | Move to the next search result. | |
||||||
|
| Move to previous search result | `N` | Move to the previous search result. | |
||||||
|
| Replace on current line | `:s/search_term/replacement`| Replace "search_term" with "replacement" on the current line. | |
||||||
|
| Global replace | `:%s/search_term/replacement/g` | Replace "search_term" with "replacement" globally in the file. | |
||||||
|
| Turn off search highlighting | `:noh` | Turn off search result highlighting. | |
||||||
|
| **Saving and Quitting** | | | |
||||||
|
| Save | `:w` | Save the current file. | |
||||||
|
| Save as | `:w filename` | Save the current file as "filename." | |
||||||
|
| Quit | `:q` | Quit Vim. | |
||||||
|
| Quit without saving | `:q!` | Quit Vim without saving changes. | |
||||||
|
| Save and quit | `:wq` | Save changes and quit Vim. | |
||||||
|
| **Visual Mode** | | | |
||||||
|
| Enter visual mode | `v` | Enter visual mode to select text. | |
||||||
|
| Enter visual line mode | `V` | Enter visual line mode to select lines. | |
||||||
|
| Enter visual block mode | `Ctrl+v` | Enter visual block mode to select rectangular blocks of text. | |
||||||
|
|
||||||
|
|
||||||
|
## some more advance mouvments |
||||||
|
|
||||||
|
# Page and Line Movement Shortcuts in Vim |
||||||
|
|
||||||
|
Vim provides a rich set of keyboard shortcuts for efficient page and line movement within a text document. Below is a table of these shortcuts: |
||||||
|
|
||||||
|
| Shortcut | Description | |
||||||
|
|------------------------|---------------------------------------------------| |
||||||
|
| **Page Movement** | | |
||||||
|
| Page down | `Ctrl+f` or `Space` | |
||||||
|
| Page up | `Ctrl+b` or `Ctrl+u` | |
||||||
|
| Half a page down | `Ctrl+d` | |
||||||
|
| Half a page up | `Ctrl+u` | |
||||||
|
| Go to next page | `Ctrl+d` or `Ctrl+f` | |
||||||
|
| Go to previous page | `Ctrl+u` or `Ctrl+b` | |
||||||
|
| **Line Movement** | | |
||||||
|
| Move to beginning of line | `0` or `^` | |
||||||
|
| Move to end of line | `$` | |
||||||
|
| Move to next line | `j` or `↓` | |
||||||
|
| Move to previous line | `k` or `↑` | |
||||||
|
| Move down by `n` lines | `n` + `j` or `n` + `↓` | |
||||||
|
| Move up by `n` lines | `n` + `k` or `n` + `↑` | |
||||||
|
| Move to specific line | `:<line_number>` or `G` + `g` + `:<line_number>` | |
||||||
|
| **Scrolling** | | |
||||||
|
| Scroll the screen up | `Ctrl+y` | |
||||||
|
| Scroll the screen down | `Ctrl+e` | |
||||||
|
| Center the screen | `Ctrl+l` | |
||||||
|
| Move to the top | `H` | |
||||||
|
| Move to the middle | `M` | |
||||||
|
| Move to the bottom | `L` | |
||||||
|
| **Jumping** | | |
||||||
|
| Jump to beginning of file | `gg` | |
||||||
|
| Jump to end of file | `G` | |
||||||
|
| Jump to line in the middle | `M` + `G` | |
||||||
|
| Jump to last edit | `'` + `.` | |
||||||
|
|
||||||
@ -0,0 +1,11 @@ |
|||||||
|
blinker==1.6.2 |
||||||
|
click==8.1.7 |
||||||
|
Flask==2.3.3 |
||||||
|
Flask-FlatPages==0.8.1 |
||||||
|
itsdangerous==2.1.2 |
||||||
|
Jinja2==3.1.2 |
||||||
|
Markdown==3.4.4 |
||||||
|
MarkupSafe==2.1.3 |
||||||
|
PyYAML==6.0.1 |
||||||
|
six==1.16.0 |
||||||
|
Werkzeug==2.3.7 |
||||||
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 260 KiB |
@ -0,0 +1,33 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="fr"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"> |
||||||
|
<title>to do this - do that </title> |
||||||
|
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
|
||||||
|
{% include 'menu.html' %} |
||||||
|
|
||||||
|
<div id="articles"> |
||||||
|
<ul> |
||||||
|
|
||||||
|
{% for article in articles %} |
||||||
|
<li> |
||||||
|
<a href="{{ url_for('index', _external=False) }}{{ article.path }}"> |
||||||
|
<h2 class="{{article.cat}}">{{article.title}}</h2> |
||||||
|
</a> |
||||||
|
<span class="categorie"><a href="{{ url_for('index', _external=False) }}cat/{{article.cat}}">{{article.cat}}</a></span> |
||||||
|
<span class="author"><a href="{{ url_for('index', _external=False) }}author/{{article.author}}">{{ article.author }}</a></span> |
||||||
|
<span class="date">{{ article.published }}</span> |
||||||
|
</li> |
||||||
|
{% endfor %} |
||||||
|
|
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
|
||||||
|
<script src="index.js"></script> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,21 @@ |
|||||||
|
$(document).ready(function(){ |
||||||
|
wimg = $(".img_container").width(); |
||||||
|
console.log(wimg); |
||||||
|
$(".img_container").css("height",wimg); |
||||||
|
|
||||||
|
$(window).resize(function(){ |
||||||
|
wimg = $(".img_container").width(); |
||||||
|
console.log(wimg); |
||||||
|
$(".img_container").css("height",wimg); |
||||||
|
}) |
||||||
|
|
||||||
|
|
||||||
|
$('#gal .img_container img').click(function(){ |
||||||
|
// $(" #gal .img_container").removeClass("fullImg");
|
||||||
|
$(this).parent().toggleClass("fullImg"); |
||||||
|
}); |
||||||
|
|
||||||
|
}) |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,52 @@ |
|||||||
|
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,800;1,400&display=swap'); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
body{ |
||||||
|
font-family: 'Open Sans', sans-serif; |
||||||
|
} |
||||||
|
a { |
||||||
|
text-decoration : none ; |
||||||
|
color : #000; |
||||||
|
} |
||||||
|
|
||||||
|
#works { |
||||||
|
display : grid ; |
||||||
|
grid-template-columns: 1fr 1fr 1fr 1fr 1fr; |
||||||
|
//column-gap: 10px; |
||||||
|
//row-gap : 10px; |
||||||
|
} |
||||||
|
|
||||||
|
.work{ |
||||||
|
position:relative; |
||||||
|
overflow:hidden; |
||||||
|
} |
||||||
|
|
||||||
|
#works .work .wimg { |
||||||
|
height : 250px; |
||||||
|
overflow:hidden; |
||||||
|
display:grid; |
||||||
|
} |
||||||
|
|
||||||
|
#works .work .wimg img { |
||||||
|
width : 130%; |
||||||
|
place-self: center; |
||||||
|
} |
||||||
|
|
||||||
|
.wdesc { |
||||||
|
background:rgba(255,255,255,0.5); |
||||||
|
border-radius: 10px; |
||||||
|
position: absolute; |
||||||
|
left : -100%; |
||||||
|
padding :10px; |
||||||
|
bottom:20px; |
||||||
|
transition : all 0.3s linear ; |
||||||
|
opacity : 0 ; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
.work:hover .wdesc { |
||||||
|
left:10px; |
||||||
|
opacity : 1 ; |
||||||
|
} |
||||||
|
|
||||||
@ -0,0 +1,345 @@ |
|||||||
|
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,800;1,400&display=swap'); |
||||||
|
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css"); |
||||||
|
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;500;600&display=swap'); |
||||||
|
|
||||||
|
*{ |
||||||
|
font-family:'Fira Code'; |
||||||
|
} |
||||||
|
|
||||||
|
body{ |
||||||
|
margin:0; |
||||||
|
padding:0; |
||||||
|
font-size : 10px; |
||||||
|
font-family:'Fira Code'; |
||||||
|
} |
||||||
|
|
||||||
|
#menu { |
||||||
|
display: grid; |
||||||
|
grid-template-columns: 8fr 2fr; |
||||||
|
} |
||||||
|
@media (max-width: 1080px) { |
||||||
|
#menu { |
||||||
|
grid-template-columns: 1fr; |
||||||
|
margin-bottom:40px |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
#menu ul { |
||||||
|
list-style: none; |
||||||
|
margin:0; |
||||||
|
padding:10px 20px; |
||||||
|
} |
||||||
|
|
||||||
|
#menu ul li { |
||||||
|
display:inline-block; |
||||||
|
margin-right:20px; |
||||||
|
} |
||||||
|
|
||||||
|
#menu ul li:first-of-type { |
||||||
|
font-size:2em; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#menu ul li a{ |
||||||
|
color: #000000; |
||||||
|
text-decoration : none; |
||||||
|
font-size : 2em; |
||||||
|
} |
||||||
|
|
||||||
|
#menu div form{ |
||||||
|
display: grid; |
||||||
|
grid-template-columns: 8fr 2fr; |
||||||
|
padding: 10px; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
#menu div form input{ |
||||||
|
/* border:1px solid; */ |
||||||
|
border-radius: 10px; |
||||||
|
font-size: 2em; |
||||||
|
text-align: center; |
||||||
|
color: #000; |
||||||
|
box-shadow: -1px -1px 1px -3px rgba(0,0,0,0.77) inset , |
||||||
|
1px 1px 1px -3px rgba(250,250,250,0.87) inset ; |
||||||
|
background: #fefefe; |
||||||
|
text-transform: uppercase; |
||||||
|
} |
||||||
|
|
||||||
|
#menu div form input:focus-visible{ |
||||||
|
outline: 1px solid #ddd; |
||||||
|
box-shadow: 5px 5px 5px -2px rgba(0,0,0,0.47) inset , |
||||||
|
-5px -5px 5px -3px rgba(250,250,250,0.87) inset; |
||||||
|
|
||||||
|
\ |
||||||
|
background: #fafafa; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#menu div form button{ |
||||||
|
margin-left:10px; |
||||||
|
border-radius:10px; |
||||||
|
font-size:3em; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
#menu div form { |
||||||
|
height: 100%; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
a:hover{ |
||||||
|
color:#95a5a6 !important; |
||||||
|
} |
||||||
|
|
||||||
|
#articles ul { |
||||||
|
list-style:none; |
||||||
|
padding:0 0 0 0px; |
||||||
|
} |
||||||
|
|
||||||
|
#articles ul li{ |
||||||
|
font-size:1.5em; |
||||||
|
padding:10px 0; |
||||||
|
padding-left:20px; |
||||||
|
border-bottom: 1px solid #000000; |
||||||
|
} |
||||||
|
|
||||||
|
#articles ul li h2{ |
||||||
|
display: inline-block; |
||||||
|
margin:0; |
||||||
|
font-size:1.5em; |
||||||
|
padding-left:50px; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ul li h2{ |
||||||
|
position:relative; |
||||||
|
} |
||||||
|
ul li h2:before{ |
||||||
|
position:absolute; |
||||||
|
text-align:center; |
||||||
|
left:-20px; |
||||||
|
top:0; |
||||||
|
width:50px; |
||||||
|
display:block; |
||||||
|
font-size:1.3em; |
||||||
|
line-height:1em; |
||||||
|
} |
||||||
|
|
||||||
|
.robot:before{ |
||||||
|
content:"🤖"; |
||||||
|
} |
||||||
|
|
||||||
|
.various:before{ |
||||||
|
content:"💾"; |
||||||
|
} |
||||||
|
.internet:before{ |
||||||
|
content:"🛰"; |
||||||
|
} |
||||||
|
|
||||||
|
.linux:before{ |
||||||
|
content:"🐧"; |
||||||
|
} |
||||||
|
|
||||||
|
#articles ul li a { |
||||||
|
color : #000000; |
||||||
|
text-decoration:none; |
||||||
|
} |
||||||
|
#articles ul li a:hover { |
||||||
|
color : #0000ff; |
||||||
|
} |
||||||
|
#articles h2{ |
||||||
|
padding-right:20px; |
||||||
|
} |
||||||
|
#articles ul li span { |
||||||
|
outline: 1px solid #000; |
||||||
|
padding: 2px 10px; |
||||||
|
border-radius:3px; |
||||||
|
margin-left:10px; |
||||||
|
} |
||||||
|
|
||||||
|
#content-wrapper{ |
||||||
|
width:90%; |
||||||
|
margin:auto ; |
||||||
|
font-size:1.5em!important; |
||||||
|
} |
||||||
|
|
||||||
|
#content-wrapper p{ |
||||||
|
text-align:left; |
||||||
|
margin-left:10px |
||||||
|
} |
||||||
|
|
||||||
|
#content-wrapper pre{ |
||||||
|
// font-size:2em; |
||||||
|
color:#2c3e50; |
||||||
|
background:#ecf0f1; |
||||||
|
border-radius:3px; |
||||||
|
padding:8px; |
||||||
|
outline:3px #2c3e50 solid ; |
||||||
|
overflow-x : auto ; |
||||||
|
} |
||||||
|
|
||||||
|
#content-wrapper code{ |
||||||
|
color:#2c3e50; |
||||||
|
overflow-x : auto ; |
||||||
|
font-family:monospace; |
||||||
|
} |
||||||
|
|
||||||
|
#content-wrapper h1{ |
||||||
|
font-size : 2.5em; |
||||||
|
margin: 20px 0 0 -10px ; |
||||||
|
} |
||||||
|
|
||||||
|
#metad{ |
||||||
|
margin: 5px 0 30px 0; |
||||||
|
} |
||||||
|
|
||||||
|
#metad span { |
||||||
|
font-size : 1em; |
||||||
|
} |
||||||
|
|
||||||
|
#metad span:after{ |
||||||
|
content:" / "; |
||||||
|
margin: 0 0px 0 0px; |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
#metad .cat { |
||||||
|
font-weight: bolder; |
||||||
|
} |
||||||
|
|
||||||
|
#metad .author { |
||||||
|
font-style: italic; |
||||||
|
} |
||||||
|
|
||||||
|
#metad .date { |
||||||
|
} |
||||||
|
|
||||||
|
table { |
||||||
|
border-collapse: collapse; |
||||||
|
width: 100%; |
||||||
|
margin-bottom: 20px; |
||||||
|
} |
||||||
|
|
||||||
|
th, td { |
||||||
|
text-align: left; |
||||||
|
padding: 8px; |
||||||
|
border: 1px solid #ddd; |
||||||
|
} |
||||||
|
|
||||||
|
tr:nth-child(even) { |
||||||
|
background-color: #f2f2f2; |
||||||
|
} |
||||||
|
|
||||||
|
th { |
||||||
|
background-color: #000; |
||||||
|
color: white; |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
width:100%; |
||||||
|
height:auto; |
||||||
|
max-width: 1080px; |
||||||
|
text-align: center; |
||||||
|
display: block; |
||||||
|
margin: auto; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//p img{ |
||||||
|
// width:150px; |
||||||
|
// height:auto; |
||||||
|
// float:left; |
||||||
|
// margin: 20px; |
||||||
|
// |
||||||
|
//} |
||||||
|
|
||||||
|
p strong img{ |
||||||
|
width:250px; |
||||||
|
} |
||||||
|
p em img{ |
||||||
|
width:150px; |
||||||
|
float:right; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
p{ |
||||||
|
line-height:1.2em; |
||||||
|
margin-top:1.5em; |
||||||
|
margin-bottom:1.5em; |
||||||
|
text-align:justify; |
||||||
|
// font-size:2em; |
||||||
|
} |
||||||
|
|
||||||
|
#gal { |
||||||
|
display : grid ; |
||||||
|
grid-template-columns: 1fr 1fr 1fr ; |
||||||
|
column-gap: 10px; |
||||||
|
row-gap: 10px; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
.img_container { |
||||||
|
position: relative; |
||||||
|
overflow: hidden; |
||||||
|
height: 120px; |
||||||
|
display: grid; |
||||||
|
align-content: center; |
||||||
|
align-items: center; |
||||||
|
justify-items: center; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
align-content: space-around; |
||||||
|
} |
||||||
|
|
||||||
|
.img_container img{ |
||||||
|
width:200%; |
||||||
|
} |
||||||
|
|
||||||
|
.fullImg{ |
||||||
|
grid-column: span 3; |
||||||
|
height: auto!important; |
||||||
|
} |
||||||
|
|
||||||
|
.fullImg img{ |
||||||
|
width:100%; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
key{ |
||||||
|
padding:1px 6px; |
||||||
|
border:1px solid lightgrey; |
||||||
|
border-radius: 5px; |
||||||
|
box-shadow: 1px 1px 0px 1px rgb(120# 20# 20) , |
||||||
|
-1px -1px 0px 1px rgb(220 ## 20## 20); |
||||||
|
|
||||||
|
background: #efefef; |
||||||
|
background: rgb(185# 85# 85); |
||||||
|
background: radial-gradient( rgba(200## 00# 90# ) 1%, rgba(225## 25## 25# ) 100%, rgba(185# 85# 85# ) 100%) |
||||||
|
; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
@media (max-width: 600px) { |
||||||
|
|
||||||
|
#articles ul li span { |
||||||
|
display:none; |
||||||
|
} |
||||||
|
#menu ul li:first-of-type { |
||||||
|
outline: none; |
||||||
|
width:100%; |
||||||
|
} |
||||||
|
#menu ul li { |
||||||
|
outline: 1px solid #000; |
||||||
|
padding: 2px 10px; |
||||||
|
border-radius:3px; |
||||||
|
margin-left:4px; |
||||||
|
margin-bottom: 5px; |
||||||
|
margin-right:0; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
After Width: | Height: | Size: 534 KiB |
|
After Width: | Height: | Size: 266 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 260 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 388 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 27 KiB |
@ -0,0 +1,33 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="fr"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"> |
||||||
|
<title>to do this - do that </title> |
||||||
|
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
|
||||||
|
{% include 'menu.html' %} |
||||||
|
|
||||||
|
<div id="articles"> |
||||||
|
<ul> |
||||||
|
|
||||||
|
{% for article in articles %} |
||||||
|
<li> |
||||||
|
<a href="{{ url_for('index', _external=False) }}{{ article.path }}"> |
||||||
|
<h2 class="{{article.cat}}">{{article.title}}</h2> |
||||||
|
</a> |
||||||
|
<span class="categorie"><a href="{{ url_for('index', _external=False) }}cat/{{article.cat}}">{{article.cat}}</a></span> |
||||||
|
<span class="author"><a href="{{ url_for('index', _external=False) }}author/{{article.author}}">{{ article.author }}</a></span> |
||||||
|
<span class="date">{{ article.published }}</span> |
||||||
|
</li> |
||||||
|
{% endfor %} |
||||||
|
|
||||||
|
</ul> |
||||||
|
</div> |
||||||
|
|
||||||
|
<script src="index.js"></script> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
<div id="menu"> |
||||||
|
<nav> |
||||||
|
<ul> |
||||||
|
<li><a href="{{ url_for('index', _external=False) }}">[[🧠]]</a></li> |
||||||
|
{% for cat in catList : %} |
||||||
|
<li><a href="{{ url_for('index', _external=False) }}cat/{{cat}}">{{cat}}</a></li> |
||||||
|
{% endfor %} |
||||||
|
<li><a href="{{ url_for('index', _external=False) }}info">info</a></li> |
||||||
|
</ul> |
||||||
|
</nav> |
||||||
|
<div id="search-box"> |
||||||
|
<form action="/search" method="POST"> |
||||||
|
<input type="text" name="query" placeholder="Enter search query"> |
||||||
|
<button type="submit">~~></button> |
||||||
|
</form> |
||||||
|
</div> |
||||||
|
</div> |
||||||
@ -0,0 +1,37 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="fr"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"> |
||||||
|
<title>tdtdt: {{page.title}} </title> |
||||||
|
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
|
||||||
|
{% include 'menu.html' %} |
||||||
|
|
||||||
|
<div id="content-wrapper"> |
||||||
|
<h1>{{ page.title }}</h1> |
||||||
|
<div id="metad"> |
||||||
|
<span class="cat">{{ page.cat }}</span> |
||||||
|
<span class="author">{{ page.author }}</span> |
||||||
|
<span class="date">{{ page.published }}</span> |
||||||
|
</div> |
||||||
|
<div id="content"> |
||||||
|
{{ page }} |
||||||
|
</div> |
||||||
|
<div id="gal"> |
||||||
|
{% for img in imgs : %} |
||||||
|
<div class = "img_container"> |
||||||
|
{% set img_url = page.path + '/' + img %} |
||||||
|
<img src="pages/{{page.path}}/{{img}}"/> |
||||||
|
</div> |
||||||
|
{% endfor %} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script> |
||||||
|
<script src="{{url_for('static', filename='main.js')}}"></script> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,24 @@ |
|||||||
|
<!DOCTYPE html> |
||||||
|
<html lang="fr"> |
||||||
|
<head> |
||||||
|
<meta charset="UTF-8"> |
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge"> |
||||||
|
<title>log website</title> |
||||||
|
<link rel="stylesheet" type="text/css" href="{{url_for('static', filename='style.css')}}"> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
|
||||||
|
{% include 'menu.html' %} |
||||||
|
|
||||||
|
<div id="content-wrapper"> |
||||||
|
<h1>{{ page.title }}</h1> |
||||||
|
<div id="content"> |
||||||
|
PAGE PAS SINGLE |
||||||
|
{{ page }} |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<script src="index.js"></script> |
||||||
|
</body> |
||||||
|
</html> |
||||||
@ -0,0 +1,20 @@ |
|||||||
|
[uwsgi] |
||||||
|
module = app:app |
||||||
|
master = true |
||||||
|
#callable = app |
||||||
|
#plugins = python3 |
||||||
|
wsgi-file = /home/zvevqx/app/tdtdt/app.py |
||||||
|
home = /home/zvevqx/app/tdtdt |
||||||
|
mount = /tdtdt=app.py |
||||||
|
manage-script-name = true |
||||||
|
|
||||||
|
virtualenv = /home/zvevqx/app/tdtdt/venv |
||||||
|
|
||||||
|
socket = /tmp/tdtdt.sock |
||||||
|
chmod-socket = 666 |
||||||
|
env = DEBUG=False |
||||||
|
env = SCRIPT_NAME=/tdtdt |
||||||
|
|
||||||
|
die-on-term = true |
||||||
|
vaccuum = true |
||||||
|
|
||||||