Compare commits
9 Commits
0.0.4
...
feature/py
| Author | SHA1 | Date | |
|---|---|---|---|
|
1c70581783
|
|||
|
6309b0bffa
|
|||
|
348a288fa3
|
|||
|
2418f99cc5
|
|||
|
d4b7226871
|
|||
|
5f4684d0cd
|
|||
|
54dd3042f8
|
|||
|
8eaba16410
|
|||
|
c921e6cc95
|
@ -1,4 +1,4 @@
|
|||||||
FROM ghcr.io/getzola/zola:v0.17.1 AS zola
|
FROM ghcr.io/getzola/zola:v0.21.0 AS zola
|
||||||
|
|
||||||
COPY . /project
|
COPY . /project
|
||||||
WORKDIR /project
|
WORKDIR /project
|
||||||
|
|||||||
10
config.toml
10
config.toml
@ -1,9 +1,9 @@
|
|||||||
# The URL the site will be built for
|
# The URL the site will be built for
|
||||||
title = "s3rius"
|
title = "s3rius blog"
|
||||||
base_url = "https://s3rius.blog"
|
base_url = "https://s3rius.blog"
|
||||||
theme = "hermit_zola"
|
theme = "hermit_zola"
|
||||||
compile_sass = true
|
compile_sass = true
|
||||||
minify_html = true
|
minify_html = false
|
||||||
|
|
||||||
build_search_index = true
|
build_search_index = true
|
||||||
generate_sitemap = true
|
generate_sitemap = true
|
||||||
@ -16,6 +16,7 @@ render_emojis = true
|
|||||||
smart_punctuation = true
|
smart_punctuation = true
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
|
preview_image = "preview.png"
|
||||||
home_subtitle = "Notes on writing unmaintainable software"
|
home_subtitle = "Notes on writing unmaintainable software"
|
||||||
|
|
||||||
footer_copyright = ' · <a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC BY-NC 4.0</a>'
|
footer_copyright = ' · <a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC BY-NC 4.0</a>'
|
||||||
@ -32,11 +33,6 @@ hermit_social = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
[extra.highlightjs]
|
|
||||||
enable = true
|
|
||||||
clipboard = true
|
|
||||||
theme = "https://unpkg.com/nord-highlightjs@0.1.0/dist/nord.css"
|
|
||||||
|
|
||||||
[extra.author]
|
[extra.author]
|
||||||
name = "Pavel Kirilin"
|
name = "Pavel Kirilin"
|
||||||
email = "s3rius@le-memese.com"
|
email = "s3rius@le-memese.com"
|
||||||
|
|||||||
@ -2,8 +2,6 @@
|
|||||||
title = "About Me"
|
title = "About Me"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# Who Am I?
|
|
||||||
|
|
||||||
My name is Pavel Kirilin, and my nickname is [@s3rius](https://github.com/s3rius). I am a backend developer with diverse experience. Currently, I hold the position of CTO at [Intree](https://www.intree.com/).
|
My name is Pavel Kirilin, and my nickname is [@s3rius](https://github.com/s3rius). I am a backend developer with diverse experience. Currently, I hold the position of CTO at [Intree](https://www.intree.com/).
|
||||||
|
|
||||||
In my free time, I enjoy experimenting with various technologies and building new projects. You can find some of my work on [GitHub](https://github.com/s3rius) or on my self-hosted Gitea instance at [gitea.le-memese.com](https://gitea.le-memese.com/s3rius).
|
In my free time, I enjoy experimenting with various technologies and building new projects. You can find some of my work on [GitHub](https://github.com/s3rius) or on my self-hosted Gitea instance at [gitea.le-memese.com](https://gitea.le-memese.com/s3rius).
|
||||||
|
|||||||
@ -2,6 +2,9 @@
|
|||||||
title = "Intro to kubernetes"
|
title = "Intro to kubernetes"
|
||||||
weight = 0
|
weight = 0
|
||||||
date = "2025-07-22"
|
date = "2025-07-22"
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
preview_image = "posts/kube-intro/preview.png"
|
||||||
+++
|
+++
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
BIN
content/posts/kube-intro/preview.png
Normal file
BIN
content/posts/kube-intro/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 110 KiB |
65
content/posts/python-speedup/code/.clang-format
Normal file
65
content/posts/python-speedup/code/.clang-format
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
---
|
||||||
|
Language: Cpp
|
||||||
|
BasedOnStyle: LLVM
|
||||||
|
|
||||||
|
AccessModifierOffset: -2
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
AlignConsecutiveMacros: true
|
||||||
|
AlignConsecutiveAssignments: true
|
||||||
|
AlignEscapedNewlines: Right
|
||||||
|
AlignOperands: false
|
||||||
|
AlignTrailingComments: true
|
||||||
|
AllowAllArgumentsOnNextLine: true
|
||||||
|
AllowAllConstructorInitializersOnNextLine: true
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: true
|
||||||
|
AllowShortBlocksOnASingleLine: true
|
||||||
|
AllowShortCaseLabelsOnASingleLine: true
|
||||||
|
AllowShortFunctionsOnASingleLine: Empty
|
||||||
|
AllowShortIfStatementsOnASingleLine: Never
|
||||||
|
AllowShortLambdasOnASingleLine: All
|
||||||
|
AllowShortLoopsOnASingleLine: false
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: None
|
||||||
|
AlwaysBreakAfterReturnType: None
|
||||||
|
AlwaysBreakBeforeMultilineStrings: false
|
||||||
|
AlwaysBreakTemplateDeclarations: Yes
|
||||||
|
BreakBeforeBraces: Attach
|
||||||
|
BreakBeforeTernaryOperators: false
|
||||||
|
BreakConstructorInitializers: AfterColon
|
||||||
|
ColumnLimit: 180
|
||||||
|
CompactNamespaces: false
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
FixNamespaceComments: false
|
||||||
|
IncludeBlocks: Preserve
|
||||||
|
IndentCaseLabels: true
|
||||||
|
IndentWidth: 4
|
||||||
|
PointerAlignment: Left
|
||||||
|
ReflowComments: false
|
||||||
|
SortIncludes: false
|
||||||
|
SortUsingDeclarations: false
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpaceAfterLogicalNot: false
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
SpaceBeforeCtorInitializerColon: true
|
||||||
|
SpaceBeforeInheritanceColon: true
|
||||||
|
SpaceBeforeParens: ControlStatements
|
||||||
|
SpaceBeforeRangeBasedForLoopColon: true
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 1
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInContainerLiterals: false
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
Standard: Auto
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Never
|
||||||
|
|
||||||
|
AllowShortEnumsOnASingleLine: false
|
||||||
|
|
||||||
|
BraceWrapping:
|
||||||
|
AfterEnum: false
|
||||||
|
|
||||||
|
AlignConsecutiveDeclarations: AcrossEmptyLines
|
||||||
|
|
||||||
|
NamespaceIndentation: All
|
||||||
25
content/posts/python-speedup/code/.gitignore
vendored
Normal file
25
content/posts/python-speedup/code/.gitignore
vendored
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Created by https://gitignore.org
|
||||||
|
# CMake.gitignore
|
||||||
|
*.log
|
||||||
|
.cache/
|
||||||
|
*.so
|
||||||
|
|
||||||
|
CMakeLists.txt.user
|
||||||
|
CMakeCache.txt
|
||||||
|
CMakeFiles
|
||||||
|
CMakeScripts
|
||||||
|
Testing
|
||||||
|
Makefile
|
||||||
|
cmake_install.cmake
|
||||||
|
install_manifest.txt
|
||||||
|
compile_commands.json
|
||||||
|
CTestTestfile.cmake
|
||||||
|
_deps
|
||||||
|
CMakeUserPresets.json
|
||||||
|
|
||||||
|
# CLion
|
||||||
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||||
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
|
#cmake-build-*
|
||||||
34
content/posts/python-speedup/code/CMakeLists.txt
Normal file
34
content/posts/python-speedup/code/CMakeLists.txt
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.30)
|
||||||
|
|
||||||
|
project(
|
||||||
|
pyspeed
|
||||||
|
VERSION 0.1.0
|
||||||
|
DESCRIPTION "C++ extension for Python speedup"
|
||||||
|
LANGUAGES CXX
|
||||||
|
)
|
||||||
|
|
||||||
|
file(GLOB_RECURSE SRCFILES "src/*.cpp")
|
||||||
|
|
||||||
|
set(CMAKE_EXPORT_COMPILE_COMMANDS true)
|
||||||
|
set(CMAKE_EXECUTABLE_ENABLE_EXPORTS TRUE)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 23)
|
||||||
|
add_compile_options(
|
||||||
|
-Wall
|
||||||
|
-Wextra
|
||||||
|
-Wpedantic
|
||||||
|
-Wno-unused-parameter
|
||||||
|
-Wno-unused-value
|
||||||
|
-Wno-missing-field-initializers
|
||||||
|
-Wno-gnu-zero-variadic-macro-arguments
|
||||||
|
-Wno-narrowing
|
||||||
|
-Wno-pointer-arith
|
||||||
|
-Wno-clobbered
|
||||||
|
-fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=
|
||||||
|
)
|
||||||
|
|
||||||
|
find_package(PkgConfig REQUIRED)
|
||||||
|
pkg_check_modules(python REQUIRED IMPORTED_TARGET python3)
|
||||||
|
|
||||||
|
add_library(speedup SHARED src/speedup.cpp)
|
||||||
|
target_link_libraries(speedup PkgConfig::python)
|
||||||
60
content/posts/python-speedup/code/src/speedup.cpp
Normal file
60
content/posts/python-speedup/code/src/speedup.cpp
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#include <Python.h>
|
||||||
|
#include <print>
|
||||||
|
|
||||||
|
int test = 0;
|
||||||
|
|
||||||
|
PyObject* my_stat_counter(PyObject* self, PyObject* args) {
|
||||||
|
size_t to_add;
|
||||||
|
if (!PyArg_ParseTuple(args, "k", &to_add)) {
|
||||||
|
return (PyObject*)NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PyObject* state = Py_None;
|
||||||
|
auto mod_shit = (size_t*)PyModule_GetState(self);
|
||||||
|
if (mod_shit == NULL) {
|
||||||
|
std::println("heheheh fuck you");
|
||||||
|
return (PyObject*)NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
*mod_shit += to_add;
|
||||||
|
|
||||||
|
return PyLong_FromSize_t(*mod_shit);
|
||||||
|
}
|
||||||
|
|
||||||
|
static PyMethodDef MyStatMethods[] = {
|
||||||
|
{
|
||||||
|
"my_stat_counter",
|
||||||
|
my_stat_counter,
|
||||||
|
METH_VARARGS,
|
||||||
|
"Python interface for speedup",
|
||||||
|
},
|
||||||
|
{NULL, NULL, 0, NULL},
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef Py_mod_exec
|
||||||
|
static struct PyModuleDef_Slot mod_slots[] = {
|
||||||
|
{Py_mod_multiple_interpreters, Py_MOD_PER_INTERPRETER_GIL_SUPPORTED},
|
||||||
|
{Py_mod_gil, Py_MOD_GIL_NOT_USED},
|
||||||
|
{0, NULL},
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static struct PyModuleDef mod_def = {
|
||||||
|
PyModuleDef_HEAD_INIT, /* m_base */
|
||||||
|
"speedup", /* m_name */
|
||||||
|
"Python interface for speedup module", /* m_doc */
|
||||||
|
sizeof(size_t), /* m_size */
|
||||||
|
MyStatMethods, /* m_methods */
|
||||||
|
#ifdef Py_mod_exec
|
||||||
|
mod_slots, /* m_slots */
|
||||||
|
#else
|
||||||
|
NULL,
|
||||||
|
#endif
|
||||||
|
NULL, /* m_traverse */
|
||||||
|
NULL, /* m_clear */
|
||||||
|
NULL, /* m_free */
|
||||||
|
};
|
||||||
|
|
||||||
|
PyMODINIT_FUNC PyInit_libspeedup(void) {
|
||||||
|
return PyModuleDef_Init(&mod_def);
|
||||||
|
}
|
||||||
35
content/posts/python-speedup/code/test.py
Normal file
35
content/posts/python-speedup/code/test.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
from concurrent import interpreters
|
||||||
|
from libspeedup import my_stat_counter
|
||||||
|
|
||||||
|
|
||||||
|
def calc():
|
||||||
|
my_stat_counter(2)
|
||||||
|
my_stat_counter(2)
|
||||||
|
a = my_stat_counter(2)
|
||||||
|
print(a)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
my_stat_counter(1)
|
||||||
|
my_stat_counter(1)
|
||||||
|
int1 = interpreters.create()
|
||||||
|
int2 = interpreters.create()
|
||||||
|
int3 = interpreters.create()
|
||||||
|
|
||||||
|
t1 = int1.call_in_thread(calc)
|
||||||
|
t2 = int2.call_in_thread(calc)
|
||||||
|
t3 = int3.call_in_thread(calc)
|
||||||
|
|
||||||
|
t1.join()
|
||||||
|
t2.join()
|
||||||
|
t3.join()
|
||||||
|
|
||||||
|
int1.close()
|
||||||
|
int2.close()
|
||||||
|
int3.close()
|
||||||
|
|
||||||
|
print(my_stat_counter(1))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
17
content/posts/python-speedup/index.md
Normal file
17
content/posts/python-speedup/index.md
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
+++
|
||||||
|
title = "Python speedup with rust"
|
||||||
|
weight = 1
|
||||||
|
date = "2025-09-02"
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
preview_image = "posts/kube-intro/preview.png"
|
||||||
|
+++
|
||||||
|
|
||||||
|
<!--  -->
|
||||||
|
|
||||||
|
## Why care
|
||||||
|
|
||||||
|
It's no secret that python is slow. Because it's interpreted language.
|
||||||
|
But there is a solution for that problem.
|
||||||
|
|
||||||
|
Python has ABI for loading modules built with C.
|
||||||
BIN
static/preview.png
Normal file
BIN
static/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
@ -42,7 +42,7 @@ pre tt {
|
|||||||
|
|
||||||
pre {
|
pre {
|
||||||
max-height: 40em;
|
max-height: 40em;
|
||||||
padding: 0.7em 1.1em;
|
padding: 0em;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: scroll;
|
overflow-x: scroll;
|
||||||
@ -67,7 +67,8 @@ pre {
|
|||||||
}
|
}
|
||||||
|
|
||||||
code {
|
code {
|
||||||
padding: 0;
|
display: block;
|
||||||
|
padding: 0.7em;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
table {
|
table {
|
||||||
@ -81,7 +82,7 @@ pre {
|
|||||||
}
|
}
|
||||||
|
|
||||||
code[data-name] {
|
code[data-name] {
|
||||||
display: block;
|
position: relative;
|
||||||
padding-top: 2em !important;
|
padding-top: 2em !important;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
@ -90,10 +91,10 @@ pre {
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
padding-left: 1em;
|
padding-left: 0.7em;
|
||||||
padding-top: 0.7em;
|
padding-top: 0.2em;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: $midnightblue;
|
background-color: $highlight-grey;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
color: $text;
|
color: $text;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,50 @@
|
|||||||
rel="shortcut icon"
|
rel="shortcut icon"
|
||||||
href="{{get_url(path="favicon.ico")}}"
|
href="{{get_url(path="favicon.ico")}}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!-- Open Graph -->
|
||||||
|
<meta property="og:type" content="{% if page and page.relative_path is starting_with("posts") %}article{% else %}website{% endif %}" />
|
||||||
|
<meta property="og:site_name" content="{{config.title}}" />
|
||||||
|
{% if page.title %}
|
||||||
|
<meta property="og:title" content="{{page.title}}" />
|
||||||
|
<meta name="twitter:title" content="{{page.title}}" />
|
||||||
|
{% else %}
|
||||||
|
<meta property="og:title" content="{{config.title}}" />
|
||||||
|
<meta name="twitter:title" content="{{config.title}}" />
|
||||||
|
{% endif %}
|
||||||
|
{% if page.description %}
|
||||||
|
<meta property="og:description" content="{{page.description}}" />
|
||||||
|
<meta name="twitter:description" content="{{page.description}}" />
|
||||||
|
{% else %}
|
||||||
|
<meta property="og:description" content="{{config.extra.home_subtitle}}" />
|
||||||
|
<meta name="twitter:description" content="{{config.extra.home_subtitle}}" />
|
||||||
|
{% endif %}
|
||||||
|
{% if page.relative_url %}
|
||||||
|
<meta property="og:url" content="{{get_url(path=page.relative_url)}}" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
{% if page.extra and page.extra.preview_image %}
|
||||||
|
{% set meta = get_image_metadata(path=page.extra.preview_image) %}
|
||||||
|
<meta property="og:image" content="{{get_url(path=page.extra.preview_image)}}" />
|
||||||
|
<meta property="og:image:width" content="{{meta.width}}" />
|
||||||
|
<meta property="og:image:height" content="{{meta.height}}" />
|
||||||
|
|
||||||
|
<meta name="twitter:image" content="{{get_url(path=page.extra.preview_image)}}" />
|
||||||
|
<meta name="twitter:image:width" content="{{meta.width}}" />
|
||||||
|
<meta name="twitter:image:height" content="{{meta.height}}" />
|
||||||
|
{% else %}
|
||||||
|
{% set meta = get_image_metadata(path=config.extra.preview_image) %}
|
||||||
|
<meta property="og:image" content="{{get_url(path=config.extra.preview_image)}}" />
|
||||||
|
<meta property="og:image:width" content="{{meta.width}}" />
|
||||||
|
<meta property="og:image:height" content="{{meta.height}}" />
|
||||||
|
|
||||||
|
<meta name="twitter:image" content="{{get_url(path=config.extra.preview_image)}}" />
|
||||||
|
<meta name="twitter:image:width" content="{{meta.width}}" />
|
||||||
|
<meta name="twitter:image:height" content="{{meta.height}}" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Twitter/X -->
|
||||||
<link rel="stylesheet" href="{{get_url(path="style.css")}}"/>
|
<link rel="stylesheet" href="{{get_url(path="style.css")}}"/>
|
||||||
{% if page.title %}
|
{% if page.title %}
|
||||||
<title>{{page.title}}</title>
|
<title>{{page.title}}</title>
|
||||||
@ -77,33 +121,6 @@
|
|||||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"
|
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.11.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"
|
||||||
onload="renderMathInElement(document.body, { delimiters: [ {left: '$$', right: '$$', display: true}, {left: '$', right: '$', display: false}, {left: '\\[', right: '\\]', display: true}, {left: '\\(', right: '\\)', display: false}]});"></script>
|
onload="renderMathInElement(document.body, { delimiters: [ {left: '$$', right: '$$', display: true}, {left: '$', right: '$', display: false}, {left: '\\[', right: '\\]', display: true}, {left: '\\(', right: '\\)', display: false}]});"></script>
|
||||||
|
|
||||||
{% if config.extra.highlightjs.enable %}
|
|
||||||
<link href="https://unpkg.com/highlightjs-badge/highlightjs/styles/{{config.extra.highlightjs.theme}}.css" rel="stylesheet">
|
|
||||||
<!-- https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@10.1.1/build/styles/ for min version -->
|
|
||||||
<script src="https://unpkg.com/highlightjs-badge/highlightjs/highlight.pack.js"></script>
|
|
||||||
<script src="https://unpkg.com/highlightjs-badge/highlightjs-badge.min.js"></script>
|
|
||||||
<script>
|
|
||||||
var pres = document.querySelectorAll("pre>code");
|
|
||||||
for (var i = 0; i < pres.length; i++) {
|
|
||||||
hljs.highlightBlock(pres[i]);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
{% if config.extra.highlightjs.clipboard %}
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js"></script>
|
|
||||||
<script>
|
|
||||||
var options = {
|
|
||||||
copyIconClass: "gg-clipboard",
|
|
||||||
checkIconClass: "gg-check"
|
|
||||||
};
|
|
||||||
window.highlightJsBadge(options);
|
|
||||||
</script>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if not config.extra.highlightjs.enable %}
|
|
||||||
<script src="{{get_url(path="js/copy.js")}}"></script>
|
|
||||||
{% endif %}
|
|
||||||
<script src="{{get_url(path="js/main.js")}}"></script>
|
<script src="{{get_url(path="js/main.js")}}"></script>
|
||||||
|
|
||||||
{% block js_footer %}
|
{% block js_footer %}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ ingress:
|
|||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: cert-issuer
|
cert-manager.io/cluster-issuer: cert-issuer
|
||||||
external-dns.alpha.kubernetes.io/hostname: s3rius.blog
|
external-dns.alpha.kubernetes.io/hostname: s3rius.blog
|
||||||
|
external-dns.alpha.kubernetes.io/cloudflare-proxied: "false"
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- s3rius.blog
|
- s3rius.blog
|
||||||
|
|||||||
Reference in New Issue
Block a user