30 Commits
Author SHA1 Message Date
marc ca5721e8a6 cv
CodeQL / Analyze (javascript) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
Docker / build-and-push (push) Canceled after 0s
Docker / deploy (push) Canceled after 0s
Pylint / build (push) Canceled after 0s
2024-03-25 17:56:37 +01:00
marc fbc1baa5e2 silence system checks for urls w002 2023-11-08 18:35:04 +01:00
marc 1d03de2913 back to slash 2023-11-08 18:33:41 +01:00
marc b44b2fbfef update black 2023-11-08 18:30:05 +01:00
marc c7509ed82d .python-version 2023-11-08 18:26:47 +01:00
marc 34eece39b5 pyenv version of python 2023-11-08 18:26:18 +01:00
marc b648e4bae8 test with CSRF_TRUSTED_ORIGINS 2023-11-08 18:16:34 +01:00
marc 85787e4bf3 https everywhere 2023-11-08 18:11:45 +01:00
marc 2f1f96a687 marcpartensky.com also 2023-11-08 18:07:51 +01:00
marc cf8d7ec529 no json backport necessary anymore 2023-11-08 17:59:02 +01:00
marc 2ad402103a fix url-slash warning 2023-11-08 17:57:19 +01:00
marc d5959263c2 fix default_auto_field warning 2023-11-08 17:54:18 +01:00
marc aafd276b58 http and https 2023-11-08 17:51:15 +01:00
marc beb75a8c67 manage error in layout 2023-11-08 17:47:18 +01:00
marc 9768bd55ff try to make it fail on purpose 2023-11-08 17:38:27 +01:00
marc c5db013aa1 forgot service 2023-11-08 17:24:20 +01:00
marc d5106fa602 docker compose my bad 2023-11-08 17:20:34 +01:00
marc c65ac9d321 its a key 2023-11-08 17:10:12 +01:00
marc 9af5deb792 needs 2023-11-08 17:05:32 +01:00
marc fce14edfae need build and push 2023-11-08 17:04:40 +01:00
marc c308682719 test automatic deployment 2023-11-08 17:03:22 +01:00
marc c39e26416d default layout = mixu radar 2023-11-08 16:48:14 +01:00
marc 051257f51b nodejs 2023-11-08 16:42:04 +01:00
marc 5d00bc5beb add node for fuck sake 2023-11-08 16:41:21 +01:00
marc 1cfe85607c no games 2023-11-08 15:53:17 +01:00
marc 991e1fca02 clean header without demo and blog 2023-11-08 15:50:26 +01:00
marc 23b97f7510 website is a better name 2023-11-08 15:43:26 +01:00
marc 8f918a6a79 little fix 2023-11-08 15:41:13 +01:00
marc 3523da3a70 new cnh 2023-11-06 10:51:06 +01:00
marc 76e0def34a 3.9 (#30)
* 3.9

* crispy-bootstrap4

* 3.9 that works

* 3.9 in dockerfile
2023-11-06 10:29:28 +01:00
18 changed files with 315 additions and 151 deletions
+18 -1
View File
@@ -15,7 +15,7 @@ env:
IMAGE_NAME: website
jobs:
build:
build-and-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
@@ -49,3 +49,20 @@ jobs:
context: .
push: true
tags: marcpartensky/website:v${{ github.run_number }}.${{ steps.tag.outputs.tag }}
deploy:
runs-on: ubuntu-latest
needs:
- build-and-push
steps:
- name: executing remote ssh commands using password
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }}
script: |
cd ~/git/docker/services
docker compose -f website.yml pull
docker compose -f website.yml up -d
+1
View File
@@ -0,0 +1 @@
3.9
+2 -2
View File
@@ -29,12 +29,12 @@ ENV SECRET_KEY=whatever
LABEL maintainer="marc.partensky@gmail.com"
LABEL image="https://hub.docker.com/r/marcpartensky/website"
LABEL source="https://github.com/marcpartensky/website"
LABEL link="https://marcpartensky.com"
LABEL website="https://marcpartensky.com"
# Install curl and stuff for pillow
RUN apk update
RUN apk add --update --virtual .tmp libffi-dev build-base linux-headers
RUN apk add python3 curl jpeg-dev zlib-dev py3-pip
RUN apk add python3 curl jpeg-dev zlib-dev py3-pip nodejs
RUN apk add shadow
# Setup home user website
Generated
+19 -19
View File
@@ -127,29 +127,29 @@ visualize = ["Twisted (>=16.1.1)", "graphviz (>0.5.1)"]
[[package]]
name = "black"
version = "23.10.1"
version = "23.11.0"
description = "The uncompromising code formatter."
optional = false
python-versions = ">=3.8"
files = [
{file = "black-23.10.1-cp310-cp310-macosx_10_16_arm64.whl", hash = "sha256:ec3f8e6234c4e46ff9e16d9ae96f4ef69fa328bb4ad08198c8cee45bb1f08c69"},
{file = "black-23.10.1-cp310-cp310-macosx_10_16_x86_64.whl", hash = "sha256:1b917a2aa020ca600483a7b340c165970b26e9029067f019e3755b56e8dd5916"},
{file = "black-23.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c74de4c77b849e6359c6f01987e94873c707098322b91490d24296f66d067dc"},
{file = "black-23.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:7b4d10b0f016616a0d93d24a448100adf1699712fb7a4efd0e2c32bbb219b173"},
{file = "black-23.10.1-cp311-cp311-macosx_10_16_arm64.whl", hash = "sha256:b15b75fc53a2fbcac8a87d3e20f69874d161beef13954747e053bca7a1ce53a0"},
{file = "black-23.10.1-cp311-cp311-macosx_10_16_x86_64.whl", hash = "sha256:e293e4c2f4a992b980032bbd62df07c1bcff82d6964d6c9496f2cd726e246ace"},
{file = "black-23.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d56124b7a61d092cb52cce34182a5280e160e6aff3137172a68c2c2c4b76bcb"},
{file = "black-23.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:3f157a8945a7b2d424da3335f7ace89c14a3b0625e6593d21139c2d8214d55ce"},
{file = "black-23.10.1-cp38-cp38-macosx_10_16_arm64.whl", hash = "sha256:cfcce6f0a384d0da692119f2d72d79ed07c7159879d0bb1bb32d2e443382bf3a"},
{file = "black-23.10.1-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:33d40f5b06be80c1bbce17b173cda17994fbad096ce60eb22054da021bf933d1"},
{file = "black-23.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:840015166dbdfbc47992871325799fd2dc0dcf9395e401ada6d88fe11498abad"},
{file = "black-23.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:037e9b4664cafda5f025a1728c50a9e9aedb99a759c89f760bd83730e76ba884"},
{file = "black-23.10.1-cp39-cp39-macosx_10_16_arm64.whl", hash = "sha256:7cb5936e686e782fddb1c73f8aa6f459e1ad38a6a7b0e54b403f1f05a1507ee9"},
{file = "black-23.10.1-cp39-cp39-macosx_10_16_x86_64.whl", hash = "sha256:7670242e90dc129c539e9ca17665e39a146a761e681805c54fbd86015c7c84f7"},
{file = "black-23.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ed45ac9a613fb52dad3b61c8dea2ec9510bf3108d4db88422bacc7d1ba1243d"},
{file = "black-23.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:6d23d7822140e3fef190734216cefb262521789367fbdc0b3f22af6744058982"},
{file = "black-23.10.1-py3-none-any.whl", hash = "sha256:d431e6739f727bb2e0495df64a6c7a5310758e87505f5f8cde9ff6c0f2d7e4fe"},
{file = "black-23.10.1.tar.gz", hash = "sha256:1f8ce316753428ff68749c65a5f7844631aa18c8679dfd3ca9dc1a289979c258"},
{file = "black-23.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dbea0bb8575c6b6303cc65017b46351dc5953eea5c0a59d7b7e3a2d2f433a911"},
{file = "black-23.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:412f56bab20ac85927f3a959230331de5614aecda1ede14b373083f62ec24e6f"},
{file = "black-23.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d136ef5b418c81660ad847efe0e55c58c8208b77a57a28a503a5f345ccf01394"},
{file = "black-23.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:6c1cac07e64433f646a9a838cdc00c9768b3c362805afc3fce341af0e6a9ae9f"},
{file = "black-23.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cf57719e581cfd48c4efe28543fea3d139c6b6f1238b3f0102a9c73992cbb479"},
{file = "black-23.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:698c1e0d5c43354ec5d6f4d914d0d553a9ada56c85415700b81dc90125aac244"},
{file = "black-23.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:760415ccc20f9e8747084169110ef75d545f3b0932ee21368f63ac0fee86b221"},
{file = "black-23.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:58e5f4d08a205b11800332920e285bd25e1a75c54953e05502052738fe16b3b5"},
{file = "black-23.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:45aa1d4675964946e53ab81aeec7a37613c1cb71647b5394779e6efb79d6d187"},
{file = "black-23.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c44b7211a3a0570cc097e81135faa5f261264f4dfaa22bd5ee2875a4e773bd6"},
{file = "black-23.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a9acad1451632021ee0d146c8765782a0c3846e0e0ea46659d7c4f89d9b212b"},
{file = "black-23.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:fc7f6a44d52747e65a02558e1d807c82df1d66ffa80a601862040a43ec2e3142"},
{file = "black-23.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f622b6822f02bfaf2a5cd31fdb7cd86fcf33dab6ced5185c35f5db98260b055"},
{file = "black-23.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:250d7e60f323fcfc8ea6c800d5eba12f7967400eb6c2d21ae85ad31c204fb1f4"},
{file = "black-23.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5133f5507007ba08d8b7b263c7aa0f931af5ba88a29beacc4b2dc23fcefe9c06"},
{file = "black-23.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:421f3e44aa67138ab1b9bfbc22ee3780b22fa5b291e4db8ab7eee95200726b07"},
{file = "black-23.11.0-py3-none-any.whl", hash = "sha256:54caaa703227c6e0c87b76326d0862184729a69b73d3b7305b6288e1d830067e"},
{file = "black-23.11.0.tar.gz", hash = "sha256:4c68855825ff432d197229846f971bc4d6666ce90492e5b02013bcaca4d9ab05"},
]
[package.dependencies]
@@ -47,12 +47,12 @@
<div id="app">
<div>403</div>
<div>403 Error this layout is not recognized choose one of those layouts.</div>
<div class="txt">
Theme Forbidden: authorized themes<span class="blink">_</span>
<!-- Theme Forbidden: authorized themes<span class="blink">_</span> -->
<ul>
{% for layout in layouts %}
<li>{{layout}}</li>
<a href=/article/{{article.title}}/{{layout}}><li>{{layout}}</li></a>
{% endfor %}
</ul>
</div>
@@ -0,0 +1,194 @@
{% load static %}<!DOCTYPE html>
<html>
<head>
<title>Cnh_formation</title>
<link href="{% static 'home/assets/img/white-orchid.svg' %}" rel="icon">
<link href="{% static 'home/assets/img/black-orchid.svg' %}" rel="apple-touch-icon">
<link href="{% static 'article/assets/css/main.css' %}" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="{% static 'article/mixu-radar/css/style.css' %}" />
<link rel="stylesheet" href="{% static 'article/mixu-radar/css/pilcrow.css' %}" />
<link type="text/css" rel="stylesheet" href="{% static 'article/mixu-radar/css/hljs-github.min.css' %}"/>
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<script src="https://cdn.jsdelivr.net/npm/node-plantuml@0.9.0/index.min.js"></script>
</head>
<body>
<div style="clear: both;">
<div style="float: left">
{{ view_count }}
<span class="iconify" data-icon="carbon:view" data-inline="false"></span>
{{ like_count }}
<span class="iconify" data-icon="fluent-thumb-like-16-regular" data-inline="false"></span>
{{ dislike_count }}
<span class="iconify" data-icon="fluent:thumb-dislike-24-regular"data-inline="false"></span>
<script src="https://code.iconify.design/1/1.0.7/iconify.min.js"></script>
</div>
<div style="float: right">
<small style="text-align: right">{{ created }}</small>
{% if update_count > 0 %}
<small> V{{ update_count }}</small>
{% endif %}
</div>
</div>
<div id="toc">
<div id="toc-inner">
<a class="back" class="container" href="{% url 'article' %}"><p>Back to articles</p></a><div class="fade_rule"></div><ul class="nav nav-list">
<li class="sidebar-header-1"><a href="#l&#x27;éloquence-les-clés-du-succès">L&#x27;éloquence les clés du succès</a></li>
<li class="sidebar-header-2"><a href="#dates">Dates</a></li>
<li class="sidebar-header-2"><a href="#structurer-son-discours">Structurer son discours</a></li>
<li class="sidebar-header-2"><a href="#10-règles">10 règles</a></li>
<li class="sidebar-header-2"><a href="#oral---être-chauve-c&#x27;est-le-futur">Oral - Être chauve c&#x27;est le futur</a></li>
<li class="sidebar-header-1"><a href="#kpi">Kpi</a></li>
<li class="sidebar-header-2"><a href="#kpi-en-entreprises">Kpi en entreprises</a></li>
<li class="sidebar-header-3"><a href="#performance-business---satisfaction-client">Performance business - Satisfaction client</a></li>
<li class="sidebar-header-3"><a href="#performance-financière-et-opérationnel---cash">Performance financière et opérationnel - Cash</a></li>
<li class="sidebar-header-3"><a href="#motivation-et-engagement-des-troupes---satisfaction-staff">Motivation et engagement des troupes - Satisfaction staff</a></li>
<li class="sidebar-header-2"><a href="#description-du-sujet">Description du sujet</a></li>
<li class="sidebar-header-3"><a href="#exemples">Exemples</a></li>
<li class="sidebar-header-2"><a href="#la-méthode-des-5-pourquoi">La méthode des 5 pourquoi</a></li>
<li class="sidebar-header-2"><a href="#swot">SWOT</a></li>
<li class="sidebar-header-2"><a href="#le-diagramme-d&#x27;ishikawa">Le diagramme d&#x27;Ishikawa</a></li>
<li class="sidebar-header-2"><a href="#la-méthode-qqoqcp">La méthode QQOQCP</a></li>
<li class="sidebar-header-2"><a href="#pour-résumer">Pour résumer</a></li>
</ul>
</div>
</div>
<div id="wrapper">
<div id="header">
</div>
<div class="clear"></div>
<div id="main">
<div id="content" class="post"><h1 id="léloquence-les-clés-du-succès"><a class="header-link" href="#léloquence-les-clés-du-succès"></a>L&#39;éloquence les clés du succès</h1>
<h2 id="dates"><a class="header-link" href="#dates"></a>Dates</h2>
<p>Cicéron - 63 av jc
Martin Luther King - 1963</p>
<p>Ethos - 55% : Gestes, intonation
Pathos - 40% :<br>Logos - 5% :</p>
<h2 id="structurer-son-discours"><a class="header-link" href="#structurer-son-discours"></a>Structurer son discours</h2>
<ul class="list">
<li>Introduction</li>
<li>Contexte</li>
<li>Argumentation</li>
<li>Conclusion</li>
</ul>
<h2 id="10-règles"><a class="header-link" href="#10-règles"></a>10 règles</h2>
<ul class="list">
<li>Écrire son discours</li>
<li>Enregistrer son discours pour l&#39;écouter</li>
<li>S&#39;adapter à son audience</li>
<li>Connaître son discours</li>
<li>Gérer son rythme</li>
<li>Pieds au sol tu ancreras</li>
<li>Sourire</li>
<li>Faire des gestes</li>
<li>Supprimer les tics</li>
<li>Prendre du plaisir</li>
</ul>
<h2 id="oral---être-chauve-cest-le-futur"><a class="header-link" href="#oral---être-chauve-cest-le-futur"></a>Oral - Être chauve c&#39;est le futur</h2>
<p>Dans un monde ou le capillaire est capital, unissons-nous pour changer les choses!
et rejoignez-nous dans la chauveté.
Pourquoi être chauve en 2021? En 2021 dans un monde ou le réchauffement climatique est
une problématique majeure et où préserver l&#39;environnement est primordiale. Dans un monde
ou devons faire face, au défi, de la discrimination, devenir chauve c&#39;est supprimer
les discriminations de coiffure.
Dans un monde où tous va de plus en plus vite, être chauve c&#39;est garder du temps pour soi.</p>
<p>Pour conclure, être chauve est la clé du succès.</p>
<ul class="list">
<li>réchauffement climatique</li>
<li>économiser le champoin écologique</li>
<li>gain de temps</li>
<li>gain d&#39;argent</li>
<li>c&#39;est la solution contre le réchauffement climatique</li>
<li>c&#39;est pour se réunir pour avoir un point en commun</li>
</ul>
<h1 id="kpi"><a class="header-link" href="#kpi"></a>Kpi</h1>
<p>Comment mieux piolter sa stratégie grâce aux KPI en période de crise</p>
<h2 id="kpi-en-entreprises"><a class="header-link" href="#kpi-en-entreprises"></a>Kpi en entreprises</h2>
<h3 id="performance-business---satisfaction-client"><a class="header-link" href="#performance-business---satisfaction-client"></a>Performance business - Satisfaction client</h3>
<ul class="list">
<li>CA</li>
<li>Nobre d&#39;études</li>
<li>Délais</li>
<li>Taux de transformation</li>
<li>Satisfaction client</li>
<li>KPI sur la sous / co-traitance</li>
</ul>
<h3 id="performance-financière-et-opérationnel---cash"><a class="header-link" href="#performance-financière-et-opérationnel---cash"></a>Performance financière et opérationnel - Cash</h3>
<ul class="list">
<li>Taux marge</li>
<li>Rentabilité globale</li>
<li>Cash / trésorerie</li>
<li>Conformité</li>
<li>Délais sur les retours clients (factures, trésorerie)</li>
</ul>
<h3 id="motivation-et-engagement-des-troupes---satisfaction-staff"><a class="header-link" href="#motivation-et-engagement-des-troupes---satisfaction-staff"></a>Motivation et engagement des troupes - Satisfaction staff</h3>
<ul class="list">
<li>Satisfaction consultant</li>
<li>Satisfaction du staff</li>
<li>Turnovers VS rétention</li>
</ul>
<h2 id="description-du-sujet"><a class="header-link" href="#description-du-sujet"></a>Description du sujet</h2>
<p>Comment mieux piloter sa stratégie grâce aux KPI en <strong>période de crise</strong></p>
<h3 id="exemples"><a class="header-link" href="#exemples"></a>Exemples</h3>
<ul class="list">
<li>Départ du président ou du trésorier</li>
<li>Client fidèle qui dépose le bilan</li>
<li>Perte du soutien de l&#39;école</li>
<li>La moitié de l&#39;effectif qui part</li>
</ul>
<h2 id="la-méthode-des-5-pourquoi"><a class="header-link" href="#la-méthode-des-5-pourquoi"></a>La méthode des 5 pourquoi</h2>
<p>Outil de résolution de probleme qui permet d&#39;identifier les cause profondes d&#39;un dysfonctionnement au sein de la structure.
En se posant successivement 5 questions commençant par <strong>Pourquoi</strong>
KPI : CA en baisse -&gt; Moins de clients - Nouveau concurrent</p>
<h2 id="swot"><a class="header-link" href="#swot"></a>SWOT</h2>
<ul class="list">
<li>Strengths</li>
<li>Weaknesses</li>
<li>Opportunities</li>
<li>Threats</li>
</ul>
<h2 id="le-diagramme-dishikawa"><a class="header-link" href="#le-diagramme-dishikawa"></a>Le diagramme d&#39;Ishikawa</h2>
<ul class="list">
<li>Pointer l&#39;effet</li>
<li>Repérer les causes sur lesquelles votre JE peut agir</li>
<li>Dresser les causes</li>
<li>Hiérarchiser les causes</li>
</ul>
<h2 id="la-méthode-qqoqcp"><a class="header-link" href="#la-méthode-qqoqcp"></a>La méthode QQOQCP</h2>
<ul class="list">
<li>Qui ?</li>
<li>Quoi ?</li>
<li>Où ?</li>
<li>Quand ?</li>
<li>Comment ?</li>
<li>Pourquoi ?</li>
</ul>
<h2 id="pour-résumer"><a class="header-link" href="#pour-résumer"></a>Pour résumer</h2>
<ul class="list">
<li>La méthode des 5 pourquoi</li>
<li>La matrice SWOT</li>
<li>The Ecosystem Canva</li>
<li>Le diagramme d&#39;Ishikawa</li>
<li>La méthode QQOQCP</li>
</ul>
</div>
</div>
<div class="clear">
</div>
<div id="footer">
</div>
</div>
<script src="{% static 'home/assets/vendor/jquery/jquery.min.js' %}"></script>
<script src="{% static 'home/assets/vendor/waypoints/jquery.waypoints.min.js' %}"></script>
<script src="{% static 'article/assets/js/main.js' %}"></script>
</body>
<a href="#" class="back-to-top" style="display: inline; position:fixed; right:15px; bottom:15px; z-index:99999;"> <i style="display: flex; align-items: center; justify-content: center; font-size: 24px; width: 40px; height: 40px; border-radius: 4px; background: #7cc576; color: #fff; transition: all 0.4s;" class="icofont-simple-up"></i></a>
</html>
@@ -1,69 +0,0 @@
{% load static %}<!DOCTYPE html>
<html>
<head>
<title>Test-markdown</title>
<link href="{% static 'home/assets/img/white-orchid.svg' %}" rel="icon">
<link href="{% static 'home/assets/img/black-orchid.svg' %}" rel="apple-touch-icon">
<link href="{% static 'article/assets/css/main.css' %}" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="{% static 'article/mixu-radar/css/style.css' %}" />
<link rel="stylesheet" href="{% static 'article/mixu-radar/css/pilcrow.css' %}" />
<link type="text/css" rel="stylesheet" href="{% static 'article/mixu-radar/css/hljs-github.min.css' %}"/>
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<script src="https://cdn.jsdelivr.net/npm/node-plantuml@0.9.0/index.min.js"></script>
</head>
<body>
<div style="clear: both;">
<div style="float: left">
{{ view_count }}
<span class="iconify" data-icon="carbon:view" data-inline="false"></span>
{{ like_count }}
<span class="iconify" data-icon="fluent-thumb-like-16-regular" data-inline="false"></span>
{{ dislike_count }}
<span class="iconify" data-icon="fluent:thumb-dislike-24-regular"data-inline="false"></span>
<script src="https://code.iconify.design/1/1.0.7/iconify.min.js"></script>
</div>
<div style="float: right">
<small style="text-align: right">{{ created }}</small>
{% if update_count > 0 %}
<small> V{{ update_count }}</small>
{% endif %}
</div>
</div>
<div id="toc">
<div id="toc-inner">
<a class="back" class="container" href="{% url 'article' %}"><p>Back to articles</p></a><div class="fade_rule"></div><ul class="nav nav-list">
<li class="sidebar-header-1"><a href="#this-is-a-test-of-markdown">This is a test of markdown</a></li>
</ul>
</div>
</div>
<div id="wrapper">
<div id="header">
</div>
<div class="clear"></div>
<div id="main">
<div id="content" class="post"><p>#!/usr/bin/env ./upload.py</p>
<h1 id="this-is-a-test-of-markdown"><a class="header-link" href="#this-is-a-test-of-markdown"></a>This is a test of markdown</h1>
<p>Hope you like this test of markdown.
This is the first file send by using shebang script.</p>
</div>
</div>
<div class="clear">
</div>
<div id="footer">
</div>
</div>
<script src="{% static 'home/assets/vendor/jquery/jquery.min.js' %}"></script>
<script src="{% static 'home/assets/vendor/waypoints/jquery.waypoints.min.js' %}"></script>
<script src="{% static 'article/assets/js/main.js' %}"></script>
</body>
<a href="#" class="back-to-top" style="display: inline; position:fixed; right:15px; bottom:15px; z-index:99999;"> <i style="display: flex; align-items: center; justify-content: center; font-size: 24px; width: 40px; height: 40px; border-radius: 4px; background: #7cc576; color: #fff; transition: all 0.4s;" class="icofont-simple-up"></i></a>
</html>
+4 -2
View File
@@ -16,6 +16,8 @@ from django.views.decorators.csrf import csrf_exempt
from home.context import home, hydrate
from rich import print
DEFAULT_LAYOUT="mixu-radar"
def get_article_context(request):
"""Create the context of the article view."""
@@ -129,7 +131,7 @@ def read(request, title: str):
raise Http404("This article was not found.")
print("GET:", request.GET)
layout = request.GET.get("layout") or article.layout or "marc"
layout = request.GET.get("layout") or article.layout or DEFAULT_LAYOUT
layouts = os.listdir("./node_modules/markdown-styles/layouts")
article.read = datetime.datetime.now()
@@ -138,7 +140,7 @@ def read(request, title: str):
if layout not in layouts:
print(layout, "not in ", layouts)
return render(request, "article/403.html", dict(layouts=layouts))
return render(request, "article/nolayout.html", dict(article=article, layouts=layouts))
if title.endswith(".md"):
return HttpResponse(article.content, content_type="text/markdown")
+11 -1
View File
@@ -8,6 +8,7 @@ https://docs.djangoproject.com/en/2.1/ref/settings/
"""
import os
import sys
from urllib.parse import urlparse
# import dj_database_url
@@ -36,7 +37,6 @@ HEROKU_SERVER = os.environ.get("HEROKU_SERVER")
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print("BASE_DIR:", BASE_DIR)
# Allowing cors
CORS_ORIGIN_ALLOW_ALL = False
@@ -56,6 +56,13 @@ SECRET_KEY = os.environ.get("SECRET_KEY")
ALLOWED_HOSTS = [
"localhost",
"marcpartensky.com",
# "http://marcpartensky.com",
# "https://marcpartensky.com",
]
CSRF_TRUSTED_ORIGINS = [
"http://marcpartensky.com",
"https://marcpartensky.com",
]
# Application definition
@@ -505,4 +512,7 @@ Q_CLUSTER = {
},
}
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
SILENCED_SYSTEM_CHECKS = ["urls.W002"]
PANDOC_API_URL = os.environ.get("PANDOC_API_URL") or "https://pandoc.marcpartensky.com"
Binary file not shown.
Binary file not shown.
+12 -12
View File
@@ -41,23 +41,23 @@
<li class="nav-item">
<a class="nav-link" href="{% url 'about' %}">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'blog-home' %}">Blog</a>
</li>
<!-- <li class="nav-item"> -->
<!-- <a class="nav-link" href="{% url 'blog-home' %}">Blog</a> -->
<!-- </li> -->
<!-- <li class="nav-item"> -->
<!-- <a class="nav-link" href="% url 'planning' %">Planning</a> -->
<!-- </li> -->
<li class="nav-item">
<a class="nav-link" href="{% url 'first-site' %}">First Site</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'game' %}">Games</a>
</li>
<!-- <li class="nav-item"> -->
<!-- <a class="nav-link" href="{% url 'game' %}">Games</a> -->
<!-- </li> -->
<li class="nav-item">
<a class="nav-link" href="{% url 'touch-typing' %}">Touch Typing</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'cv' %}">CV</a>
<a class="nav-link" href="{% url 'cv' %}">Resume</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@@ -111,13 +111,13 @@
</br>
<div class="container" style="text-align: center">
<a target="_blank" href="https://www.facebook.com/marc.partensky/" class="fa fa-facebook"></a>
<a target="_blank" href="https://facebook.com/marc.partensky/" class="fa fa-facebook"></a>
<a target="_blank" href="https://github.com/marcpartensky/" class="fa fa-github"></a>
<a target="_blank" href="https://www.linkedin.com/in/marc-partensky/" class="fa fa-linkedin"></a>
<a target="_blank" href="https://linkedin.com/in/marc-partensky/" class="fa fa-linkedin"></a>
<a target="_blank" href="https://twitter.com/MarcPartensky/" class="fa fa-twitter"></a>
<a target="_blank" href="https://www.reddit.com/user/Marc-Partensky/" class="fa fa-reddit"></a>
<a target="_blank" href="https://www.youtube.com/channel/UCGC4Tnr_j87F2sq-s6vWFGA" class="fa fa-youtube"></a>
<a target="_blank" href="https://www.instagram.com/marcpartensky/" class="fa fa-instagram"></a>
<a target="_blank" href="https://reddit.com/user/Marc-Partensky/" class="fa fa-reddit"></a>
<a target="_blank" href="https://youtube.com/channel/UCGC4Tnr_j87F2sq-s6vWFGA" class="fa fa-youtube"></a>
<a target="_blank" href="https://instagram.com/marcpartensky/" class="fa fa-instagram"></a>
</div>
<footer id="basefooter" class="mainfooter" role="contentinfo">
+1 -1
View File
@@ -158,7 +158,7 @@
<div width="100%" data-aos="fade-up">
<div class="count-box">
<img width="100%" src="http://ghchart.rshah.org/marcpartensky" alt="Marc Partensky's Github chart" />
<img width="100%" src="https://ghchart.rshah.org/marcpartensky" alt="Marc Partensky's Github chart" />
</div>
</div>
<!---->
-1
View File
@@ -1,4 +1,3 @@
import os
import subprocess
from django.shortcuts import render
+11 -1
View File
@@ -6,10 +6,20 @@ if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_project.settings")
try:
from django.core.management import execute_from_command_line
from django.db import utils
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
try:
execute_from_command_line(sys.argv)
except utils.OperationalError as e:
# Log the error or perform necessary actions
print(f"OperationalError occurred: {e}")
# Optionally, you can choose to exit the application or raise an exception to halt the execution
# raise e # This will re-raise the exception and halt the application
import sys
sys.exit(1) # This will exit the application with an error code
+37 -37
View File
@@ -13,49 +13,49 @@
<li class="drop-down"><a href="/">Explore</a>
<ul>
{% if not user.is_authenticated %}
<li><a href="{% url 'login' %}">Login</a></li>
<li><a href="{% url 'register' %}">Register</a></li>
{% else %}
<li><a href="{% url 'logout' %}">Logout</a></li>
{% endif %}
<li class="drop-down"><a href="{% url 'demo' %}">Demos</a>
<ul>
{% for demo in demos %}
<li><a href="/demo/{{ demo }}">{{ demo }}</a></li>
{% empty %}
<li>No demo loaded.</li>
{% endfor %}
</ul>
</li>
{% if not user.is_authenticated %}
<li><a href="{% url 'login' %}">Login</a></li>
<li><a href="{% url 'register' %}">Register</a></li>
{% else %}
<li><a href="{% url 'logout' %}">Logout</a></li>
{% endif %}
<!-- <li class="drop-down"><a href="{% url 'demo' %}">Demos</a> -->
<!-- <ul> -->
<!-- {% for demo in demos %} -->
<!-- <li><a href="/demo/{{ demo }}">{{ demo }}</a></li> -->
<!-- {% empty %} -->
<!-- <li>No demo loaded.</li> -->
<!-- {% endfor %} -->
<!-- </ul> -->
<!-- </li> -->
<li class="drop-down"><a href="{% url 'article' %}">Articles</a>
<ul>
{% for article in articles %}
<li><a href="/article/{{ article }}">{{ article }}</a></li>
{% empty %}
<li>No article loaded.</li>
{% endfor %}
{% for article in articles %}
<li><a href="/article/{{ article }}">{{ article }}</a></li>
{% empty %}
<li>No article loaded.</li>
{% endfor %}
</ul>
</li>
</li>
<li><a href="{% url 'touch-typing' %}">Touch typing</a></li>
<!-- <li><a href="% url 'planning' %">Planning</a></li> -->
<li><a href="{% url 'first-site' %}">First site</a></li>
<li class="drop-down"><a href="{% url 'game' %}">Games</a>
<ul>
{% for game in games %}
<li><a href="/game/{{ game }}">{{ game }}</a></li>
{% empty %}
<li>No game loaded.</li>
{% endfor %}
</ul>
</li>
<li><a href="{% url 'blog-home' %}">Blog</a></li>
<li class="drop-down"><a href="{% url 'cv' %}">Curriculum Vitae</a>
<ul>
<li><a href="/cv/1p">1 page version</a></li>
<li><a href="/cv/2p">2 pages version</a></li>
</ul>
</li>
<!-- <li class="drop-down"><a href="{% url 'game' %}">Games</a> -->
<!-- <ul> -->
<!-- {% for game in games %} -->
<!-- <li><a href="/game/{{ game }}">{{ game }}</a></li> -->
<!-- {% empty %} -->
<!-- <li>No game loaded.</li> -->
<!-- {% endfor %} -->
<!-- </ul> -->
<!-- </li> -->
<!-- <li><a href="{% url 'blog-home' %}">Blog</a></li> -->
<!-- <li class="drop-down"><a href="{% url 'cv' %}">Resume</a> -->
<!-- <ul> -->
<!-- <li><a href="/cv/1p">1 page version</a></li> -->
<!-- <li><a href="/cv/2p">2 pages version</a></li> -->
<!-- </ul> -->
<!-- </li> -->
<!-- <li class="drop-down"><a href="#">Projects</a> -->
<!-- <ul> -->
<!-- <li><a href="#">Not</a></li> -->
+1 -1
View File
@@ -1,6 +1,6 @@
{% extends "layout/home.html" %}
{% block content %}
<link href='http://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
<style>
body {
+1 -1
View File
@@ -1,7 +1,7 @@
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django_jsonfield_backport.models import JSONField
from django.db.models import JSONField
# from . import article
from article.models import ArticleLayout