Disabled unfinished projects and tools, Removed unused section, Improved readability, publish first public version
Update Dockerfile, app.py, and 38 more files...
This commit is contained in:
@@ -1,198 +1,234 @@
|
||||
{% extends "projects/_project.jinja" %}
|
||||
|
||||
{% block project_content %}
|
||||
{{ render_h2(l10n("intro.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.p1", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("intro.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("intro.p1", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("features.title", project_id, user_lang)) }}
|
||||
{{ render_list_ul([
|
||||
l10n("features.1", project_id, user_lang),
|
||||
l10n("features.2", project_id, user_lang),
|
||||
[
|
||||
l10n("features.2.1", project_id, user_lang),
|
||||
l10n("features.2.2", project_id, user_lang),
|
||||
l10n("features.2.3", project_id, user_lang),
|
||||
],
|
||||
l10n("features.3", project_id, user_lang),
|
||||
[
|
||||
l10n("features.3.1", project_id, user_lang),
|
||||
l10n("features.3.2", project_id, user_lang),
|
||||
],
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("features.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_list_ul([
|
||||
l10n("features.1", project_id, user_lang),
|
||||
l10n("features.2", project_id, user_lang),
|
||||
[
|
||||
l10n("features.2.1", project_id, user_lang),
|
||||
l10n("features.2.2", project_id, user_lang),
|
||||
l10n("features.2.3", project_id, user_lang),
|
||||
],
|
||||
l10n("features.3", project_id, user_lang),
|
||||
[
|
||||
l10n("features.3.1", project_id, user_lang),
|
||||
l10n("features.3.2", project_id, user_lang),
|
||||
],
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("limitations.title", project_id, user_lang)) }}
|
||||
{{ render_list_ul([
|
||||
l10n("limitations.1", project_id, user_lang),
|
||||
[
|
||||
l10n("limitations.2.1", project_id, user_lang),
|
||||
l10n("limitations.2.2", project_id, user_lang),
|
||||
],
|
||||
l10n("limitations.2", project_id, user_lang),
|
||||
[
|
||||
l10n("limitations.2.1", project_id, user_lang),
|
||||
l10n("limitations.2.2", project_id, user_lang),
|
||||
],
|
||||
l10n("limitations.3", project_id, user_lang),
|
||||
[
|
||||
l10n("limitations.3.1", project_id, user_lang),
|
||||
],
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("limitations.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_list_ul([
|
||||
l10n("limitations.1", project_id, user_lang),
|
||||
[
|
||||
l10n("limitations.2.1", project_id, user_lang),
|
||||
l10n("limitations.2.2", project_id, user_lang),
|
||||
],
|
||||
l10n("limitations.2", project_id, user_lang),
|
||||
[
|
||||
l10n("limitations.2.1", project_id, user_lang),
|
||||
l10n("limitations.2.2", project_id, user_lang),
|
||||
],
|
||||
l10n("limitations.3", project_id, user_lang),
|
||||
[
|
||||
l10n("limitations.3.1", project_id, user_lang),
|
||||
],
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("doc.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("doc.p1", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("doc.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("doc.p1", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("usage.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("usage.p1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("usage.p2", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"import board",
|
||||
"import time",
|
||||
"",
|
||||
"import ebyte_e32",
|
||||
"",
|
||||
"PIN_M0 = board.IO13",
|
||||
"PIN_M1 = board.IO12",
|
||||
"PIN_RXD = board.IO11 # Pin marked as RX on the module",
|
||||
"PIN_TXD = board.IO10 # Pin marked as TX on the module",
|
||||
"PIN_AUX = board.IO9",
|
||||
"",
|
||||
"e32 = ebyte_e32.E32Device(PIN_M0, PIN_M1, PIN_AUX, PIN_TXD, PIN_RXD, address=0xBEEF, channel=4)",
|
||||
"",
|
||||
"# Switching to fixed transmission mode.",
|
||||
"e32.tx_mode = ebyte_e32.TransmissionMode.TRANSMISSION_FIXED",
|
||||
"",
|
||||
"# Switching to mode 0. (Normal mode)",
|
||||
"e32.mode = ebyte_e32.Modes.MODE_NORMAL",
|
||||
"",
|
||||
"# Message content:",
|
||||
"# * Receiver's address: 0x1337 (b'\\13\\x37')",
|
||||
"# * Receiver's channel: 4 (b'\\x04')",
|
||||
"# * Message: b'Hello World !'",
|
||||
"message = b'\\x13\\x37\\x04Hello World !'",
|
||||
"",
|
||||
"# Sending message with helper method",
|
||||
"e32.send(message)",
|
||||
"",
|
||||
"# The message may be truncated at specific lengths depending on the frequencies used.",
|
||||
"# Please check the documentation for more information !"
|
||||
], "python")
|
||||
}}
|
||||
<section>
|
||||
{{ render_h2(l10n("usage.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("usage.p1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("usage.p2", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"import board",
|
||||
"import time",
|
||||
"",
|
||||
"import ebyte_e32",
|
||||
"",
|
||||
"PIN_M0 = board.IO13",
|
||||
"PIN_M1 = board.IO12",
|
||||
"PIN_RXD = board.IO11 # Pin marked as RX on the module",
|
||||
"PIN_TXD = board.IO10 # Pin marked as TX on the module",
|
||||
"PIN_AUX = board.IO9",
|
||||
"",
|
||||
"e32 = ebyte_e32.E32Device(PIN_M0, PIN_M1, PIN_AUX, PIN_TXD, PIN_RXD, address=0xBEEF, channel=4)",
|
||||
"",
|
||||
"# Switching to fixed transmission mode.",
|
||||
"e32.tx_mode = ebyte_e32.TransmissionMode.TRANSMISSION_FIXED",
|
||||
"",
|
||||
"# Switching to mode 0. (Normal mode)",
|
||||
"e32.mode = ebyte_e32.Modes.MODE_NORMAL",
|
||||
"",
|
||||
"# Message content:",
|
||||
"# * Receiver's address: 0x1337 (b'\\13\\x37')",
|
||||
"# * Receiver's channel: 4 (b'\\x04')",
|
||||
"# * Message: b'Hello World !'",
|
||||
"message = b'\\x13\\x37\\x04Hello World !'",
|
||||
"",
|
||||
"# Sending message with helper method",
|
||||
"e32.send(message)",
|
||||
"",
|
||||
"# The message may be truncated at specific lengths depending on the frequencies used.",
|
||||
"# Please check the documentation for more information !"
|
||||
], "python")
|
||||
}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("demo.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("demo.p1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("demo.p3", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("demo.p4", project_id, user_lang)) }}
|
||||
{{ render_splide([
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/circuitpython-ebyte-e32/demo-01.jpg") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/circuitpython-ebyte-e32/demo-02.jpg") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/circuitpython-ebyte-e32/demo-03.jpg") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/circuitpython-ebyte-e32/demo-04.jpg") + '">',
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("demo.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("demo.p1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("demo.p3", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("demo.p4", project_id, user_lang)) }}
|
||||
{{ render_splide([
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/circuitpython-ebyte-e32/demo-01.jpg") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/circuitpython-ebyte-e32/demo-02.jpg") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/circuitpython-ebyte-e32/demo-03.jpg") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/circuitpython-ebyte-e32/demo-04.jpg") + '">',
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("downloads.title", project_id, user_lang)) }}
|
||||
<table class="table-stylish table-p-xs table-v-center border r-l">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ l10n("version", "commons", user_lang) }}</th>
|
||||
<th><span class="code">.py</span></th>
|
||||
<th><span class="code">.min.py</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>v0.8.0</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.8.0/nibblepoker-circuitpython-e32-driver_v0.8.0_py.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>10.42 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None, "btn-primary")
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.8.0/nibblepoker-circuitpython-e32-driver_v0.8.0_py-min.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>4.79 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None, "btn-primary")
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>v0.7.0</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.7.0/nibblepoker-circuitpython-e32-driver_v0.7.0_py.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>10.51 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.7.0/nibblepoker-circuitpython-e32-driver_v0.7.0_py-min.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>4.79 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>v0.6.0</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.6.0/nibblepoker-circuitpython-e32-driver_0.6.0_py.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>10.39 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.6.0/nibblepoker-circuitpython-e32-driver_0.6.0_py-min.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>4.62 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>v0.4.0</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.4.0/nibblepoker-circuitpython-e32-driver_0.4.0_py.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>19.96 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.4.0/nibblepoker-circuitpython-e32-driver_0.4.0_py-min.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>4.18 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<section>
|
||||
{{ render_h2(l10n("downloads.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
<table class="table-stylish table-p-xs table-v-center border r-l">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ l10n("version", "commons", user_lang) }}</th>
|
||||
<th><span class="code">.py</span></th>
|
||||
<th><span class="code">.min.py</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>v0.8.0</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.8.0/nibblepoker-circuitpython-e32-driver_v0.8.0_py.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>10.42 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None, "btn-primary")
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.8.0/nibblepoker-circuitpython-e32-driver_v0.8.0_py-min.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>4.79 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None, "btn-primary")
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>v0.7.0</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.7.0/nibblepoker-circuitpython-e32-driver_v0.7.0_py.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>10.51 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.7.0/nibblepoker-circuitpython-e32-driver_v0.7.0_py-min.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>4.79 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>v0.6.0</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.6.0/nibblepoker-circuitpython-e32-driver_0.6.0_py.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>10.39 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.6.0/nibblepoker-circuitpython-e32-driver_0.6.0_py-min.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>4.62 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>v0.4.0</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.4.0/nibblepoker-circuitpython-e32-driver_0.4.0_py.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>19.96 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://files.nibblepoker.com/downloads/CircuitPython-Ebyte-E32/0.4.0/nibblepoker-circuitpython-e32-driver_0.4.0_py-min.zip" class="a-hidden">
|
||||
{{ render_button(
|
||||
"<span class=\"text-monospace\"><i class=\"fad fa-file-archive mr-xs\"></i>4.18 KiB<i class=\"fas fa-download ml-xs\"></i>",
|
||||
False, None)
|
||||
}}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("license.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(
|
||||
"<a href=\"https://github.com/aziascreations/CircuitPython-Ebyte-E32/blob/master/LICENSE\">" +
|
||||
l10n("license.mit.single", "commons", user_lang)) +
|
||||
"</a>"
|
||||
}}
|
||||
<section>
|
||||
{{ render_h2(l10n("license.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(
|
||||
"<a href=\"https://github.com/aziascreations/CircuitPython-Ebyte-E32/blob/master/LICENSE\">" +
|
||||
l10n("license.mit.single", "commons", user_lang)) +
|
||||
"</a>"
|
||||
}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("links.title", project_id, user_lang)) }}
|
||||
{{ render_list_ul([
|
||||
"<a href=\"https://github.com/aziascreations/CircuitPython-Ebyte-E32\">" +
|
||||
l10n("github", "commons", user_lang) + "</a>",
|
||||
<section>
|
||||
{{ render_h2(l10n("links.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_list_ul([
|
||||
"<a href=\"https://github.com/aziascreations/CircuitPython-Ebyte-E32\">" +
|
||||
l10n("github", "commons", user_lang) + "</a>",
|
||||
|
||||
"<a href=\"https://aziascreations.github.io/CircuitPython-Ebyte-E32/\">" +
|
||||
l10n("doc.online", "commons", user_lang) + "</a>",
|
||||
]) }}
|
||||
"<a href=\"https://aziascreations.github.io/CircuitPython-Ebyte-E32/\">" +
|
||||
l10n("doc.online", "commons", user_lang) + "</a>",
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
|
@@ -1,137 +1,181 @@
|
||||
{% extends "projects/_project.jinja" %}
|
||||
|
||||
{% block project_content %}
|
||||
{{ render_h2(l10n("intro.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.2", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("intro.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("intro.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.2", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("preamble.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("preamble.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("preamble.2", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("preamble.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("preamble.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("preamble.2", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("setup.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.2", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("setup.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("setup.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.2", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h3(l10n("setup.camera.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.camera.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.camera.2", project_id, user_lang)) }}
|
||||
{{ render_h4(l10n("commons.example", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"nvr_stack:",
|
||||
" cctv_recorder_cam1:",
|
||||
" container_name: cctv-recorder-cam1",
|
||||
" build:",
|
||||
" context: .",
|
||||
" dockerfile: Dockerfile_recorder",
|
||||
" environment:",
|
||||
" - TZ=Europe/Brussels",
|
||||
" - \"NP_CCTV_URL=rtsp://user:password@address:554/sub-path\"",
|
||||
" volumes:",
|
||||
" - ./recordings/cam1:/data",
|
||||
" restart: unless-stopped",
|
||||
], "yaml")
|
||||
}}
|
||||
{{ render_paragraph(l10n("setup.camera.3", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h3(l10n("setup.camera.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("setup.camera.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.camera.2", project_id, user_lang)) }}
|
||||
{{ render_h4(l10n("commons.example", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"nvr_stack:",
|
||||
" cctv_recorder_cam1:",
|
||||
" container_name: cctv-recorder-cam1",
|
||||
" build:",
|
||||
" context: .",
|
||||
" dockerfile: Dockerfile_recorder",
|
||||
" environment:",
|
||||
" - TZ=Europe/Brussels",
|
||||
" - \"NP_CCTV_URL=rtsp://user:password@address:554/sub-path\"",
|
||||
" volumes:",
|
||||
" - ./recordings/cam1:/data",
|
||||
" restart: unless-stopped",
|
||||
], "yaml")
|
||||
}}
|
||||
{{ render_paragraph(l10n("setup.camera.3", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h3(l10n("setup.cleaner.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.cleaner.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.cleaner.2", project_id, user_lang)) }}
|
||||
{{ render_h4(l10n("commons.example", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"nvr_stack:",
|
||||
" cctv_cleaner:",
|
||||
" container_name: cctv-cleaner",
|
||||
" build:",
|
||||
" context: .",
|
||||
" dockerfile: Dockerfile_cleaner",
|
||||
" environment:",
|
||||
" - TZ=Europe/Brussels",
|
||||
" - \"NP_MAX_FILE_AGE_HOURS=72\"",
|
||||
" volumes:",
|
||||
" - ./recordings:/data",
|
||||
" - ./cleaner.py:/app/app.py:ro",
|
||||
" restart: unless-stopped",
|
||||
], "yaml")
|
||||
}}
|
||||
<section>
|
||||
{{ render_h3(l10n("setup.cleaner.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("setup.cleaner.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.cleaner.2", project_id, user_lang)) }}
|
||||
{{ render_h4(l10n("commons.example", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"nvr_stack:",
|
||||
" cctv_cleaner:",
|
||||
" container_name: cctv-cleaner",
|
||||
" build:",
|
||||
" context: .",
|
||||
" dockerfile: Dockerfile_cleaner",
|
||||
" environment:",
|
||||
" - TZ=Europe/Brussels",
|
||||
" - \"NP_MAX_FILE_AGE_HOURS=72\"",
|
||||
" volumes:",
|
||||
" - ./recordings:/data",
|
||||
" - ./cleaner.py:/app/app.py:ro",
|
||||
" restart: unless-stopped",
|
||||
], "yaml")
|
||||
}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h3(l10n("setup.web.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.web.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.web.2", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.web.3", project_id, user_lang)) }}
|
||||
{{ render_h4(l10n("commons.web.vars.title", project_id, user_lang)) }}
|
||||
{{ render_h4(l10n("commons.example", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"nvr_stack:",
|
||||
" cctv_web:",
|
||||
" container_name: cctv-web",
|
||||
" image: php:apache",
|
||||
" ports:",
|
||||
" - 26880:80",
|
||||
" environment:",
|
||||
" - TZ=Europe/Brussels",
|
||||
" - \"NP_CAM_cam1=Camera #1\"",
|
||||
" - \"NP_CAM_cam2=Camera #2\"",
|
||||
" - \"NP_TITLE=NibblePoker's Mini CCTV NVR\"",
|
||||
" - \"NP_FOOTER=Made by <i>BOZET Herwin</i>\"",
|
||||
" volumes:",
|
||||
" - ./htdocs:/var/www/html # Cannot be \":ro\" since the recordings are mounted into it.",
|
||||
" - ./apache2.conf:/etc/apache2/apache2.conf:ro",
|
||||
" - ./recordings:/var/www/html/data:ro",
|
||||
" restart: unless-stopped",
|
||||
], "yaml")
|
||||
}}
|
||||
<section>
|
||||
{{ render_h3(l10n("setup.web.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("setup.web.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.web.2", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("setup.web.3", project_id, user_lang)) }}
|
||||
{{ render_h4(l10n("commons.web.vars.title", project_id, user_lang)) }}
|
||||
{{ render_h4(l10n("commons.example", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"nvr_stack:",
|
||||
" cctv_web:",
|
||||
" container_name: cctv-web",
|
||||
" image: php:apache",
|
||||
" ports:",
|
||||
" - 26880:80",
|
||||
" environment:",
|
||||
" - TZ=Europe/Brussels",
|
||||
" - \"NP_CAM_cam1=Camera #1\"",
|
||||
" - \"NP_CAM_cam2=Camera #2\"",
|
||||
" - \"NP_TITLE=NibblePoker's Mini CCTV NVR\"",
|
||||
" - \"NP_FOOTER=Made by <i>BOZET Herwin</i>\"",
|
||||
" volumes:",
|
||||
" - ./htdocs:/var/www/html # Cannot be \":ro\" since the recordings are mounted into it.",
|
||||
" - ./apache2.conf:/etc/apache2/apache2.conf:ro",
|
||||
" - ./recordings:/var/www/html/data:ro",
|
||||
" restart: unless-stopped",
|
||||
], "yaml")
|
||||
}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("startup.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("startup.1", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"docker-compose up --build -d",
|
||||
], "bash")
|
||||
}}
|
||||
<section>
|
||||
{{ render_h2(l10n("startup.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("startup.1", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"docker-compose up --build -d",
|
||||
], "bash")
|
||||
}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("screenshots.title", project_id, user_lang)) }}
|
||||
{{ render_splide([
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/" + project_id + "/home.png") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/" + project_id + "/cam.png") + '">',
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("screenshots.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_splide([
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/" + project_id + "/home.png") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/" + project_id + "/cam.png") + '">',
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("statistics.title", project_id, user_lang)) }}
|
||||
{{ render_list_ul([
|
||||
l10n("statistics.1", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.1.1", project_id, user_lang),
|
||||
],
|
||||
l10n("statistics.2", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.2.1", project_id, user_lang),
|
||||
l10n("statistics.2.2", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.2.2.1", project_id, user_lang),
|
||||
],
|
||||
],
|
||||
l10n("statistics.3", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.3.1", project_id, user_lang),
|
||||
l10n("statistics.3.2", project_id, user_lang),
|
||||
l10n("statistics.3.3", project_id, user_lang),
|
||||
],
|
||||
l10n("statistics.4", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.4.1", project_id, user_lang),
|
||||
l10n("statistics.4.2", project_id, user_lang),
|
||||
],
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("statistics.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_list_ul([
|
||||
l10n("statistics.1", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.1.1", project_id, user_lang),
|
||||
],
|
||||
l10n("statistics.2", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.2.1", project_id, user_lang),
|
||||
l10n("statistics.2.2", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.2.2.1", project_id, user_lang),
|
||||
],
|
||||
],
|
||||
l10n("statistics.3", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.3.1", project_id, user_lang),
|
||||
l10n("statistics.3.2", project_id, user_lang),
|
||||
l10n("statistics.3.3", project_id, user_lang),
|
||||
],
|
||||
l10n("statistics.4", project_id, user_lang),
|
||||
[
|
||||
l10n("statistics.4.1", project_id, user_lang),
|
||||
l10n("statistics.4.2", project_id, user_lang),
|
||||
],
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("license.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("license.1", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("license.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("license.1", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("links.title", project_id, user_lang)) }}
|
||||
{{ render_list_ul([
|
||||
"<a href=\"https://github.com/aziascreations/Docker-Mini-CCTV-NVR\">" +
|
||||
l10n("github", "commons", user_lang) + "</a>",
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("links.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_list_ul([
|
||||
"<a href=\"https://github.com/aziascreations/Docker-Mini-CCTV-NVR\">" +
|
||||
l10n("github", "commons", user_lang) + "</a>",
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
@@ -1,169 +1,209 @@
|
||||
{% extends "projects/_project.jinja" %}
|
||||
|
||||
{% block project_content %}
|
||||
{{ render_h2(l10n("intro.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.p1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.p2", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.p3", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("intro.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("intro.p1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.p2", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("intro.p3", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("requirements.title", project_id, user_lang)) }}
|
||||
{{ render_list_ul([
|
||||
l10n("requirements.1", project_id, user_lang),
|
||||
[
|
||||
l10n("requirements.2", project_id, user_lang),
|
||||
],
|
||||
l10n("requirements.3", project_id, user_lang),
|
||||
[
|
||||
l10n("requirements.4", project_id, user_lang),
|
||||
],
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("requirements.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_list_ul([
|
||||
l10n("requirements.1", project_id, user_lang),
|
||||
[
|
||||
l10n("requirements.2", project_id, user_lang),
|
||||
],
|
||||
l10n("requirements.3", project_id, user_lang),
|
||||
[
|
||||
l10n("requirements.4", project_id, user_lang),
|
||||
],
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("improvements.title", project_id, user_lang)) }}
|
||||
{{ render_list_ul([
|
||||
l10n("improvements.1", project_id, user_lang),
|
||||
l10n("improvements.2", project_id, user_lang),
|
||||
l10n("improvements.3", project_id, user_lang),
|
||||
l10n("improvements.4", project_id, user_lang),
|
||||
l10n("improvements.5", project_id, user_lang),
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("improvements.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_list_ul([
|
||||
l10n("improvements.1", project_id, user_lang),
|
||||
l10n("improvements.2", project_id, user_lang),
|
||||
l10n("improvements.3", project_id, user_lang),
|
||||
l10n("improvements.4", project_id, user_lang),
|
||||
l10n("improvements.5", project_id, user_lang),
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("screenshots.title", project_id, user_lang)) }}
|
||||
{{ render_splide([
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/lscom/screen-cli-stylish-2x-xBR.png") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/lscom/screen-cli-csv-2x-xBR.png") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/lscom/screen-cli-full-2x-xBR.png") + '">',
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("screenshots.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_splide([
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/lscom/screen-cli-stylish-2x-xBR.png") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/lscom/screen-cli-csv-2x-xBR.png") + '">',
|
||||
'<img src="' + url_for("static", filename="/resources/NibblePoker/images/content/lscom/screen-cli-full-2x-xBR.png") + '">',
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("usage.title", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
"lscom.exe [-a|--show-all] [-d|--show-device] [-D <str>|--divider <str>] [-f|--show-friendly]",
|
||||
" [-h|--help] [-H|--short-help] [-n|--show-name-raw] [-P|--no-pretty] [-s|--sort]",
|
||||
" [-S|--sort-reverse] [-t|--tab-padding] [-v|--version] [-V|--version-only]",
|
||||
"",
|
||||
"Launch arguments:",
|
||||
" -a, --show-all Display the complete port's name (Equal to '-dfn')",
|
||||
" -d, --show-device Displays the port's device name",
|
||||
" -D <str>, --divider <str> Uses the given string or char as a separator (Can be empty string !)",
|
||||
" -f, --show-friendly Displays the port's friendly name",
|
||||
" -h, --help Display this help text",
|
||||
" -H, --short-help Display the short help text",
|
||||
" -n, --show-name-raw Displays the port's raw name (See remarks section)",
|
||||
" -P, --no-pretty Disables the pretty printing format (Equal to -D \" \")",
|
||||
" -s, --sort Sorts the port based on their raw names in an ascending order",
|
||||
" -S, --sort-reverse Sorts the port based on their raw names in a descending order",
|
||||
" -t, --tab-padding Use tabs for padding between the types of names (Overrides '-D')",
|
||||
" -v, --version Shows the utility's version number and other info",
|
||||
" -V, --version-only Shows the utility's version number only (Overrides '-v')"
|
||||
], None)
|
||||
}}
|
||||
<section>
|
||||
{{ render_h2(l10n("usage.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{
|
||||
render_code_block([
|
||||
"lscom.exe [-a|--show-all] [-d|--show-device] [-D <str>|--divider <str>] [-f|--show-friendly]",
|
||||
" [-h|--help] [-H|--short-help] [-n|--show-name-raw] [-P|--no-pretty] [-s|--sort]",
|
||||
" [-S|--sort-reverse] [-t|--tab-padding] [-v|--version] [-V|--version-only]",
|
||||
"",
|
||||
"Launch arguments:",
|
||||
" -a, --show-all Display the complete port's name (Equal to '-dfn')",
|
||||
" -d, --show-device Displays the port's device name",
|
||||
" -D <str>, --divider <str> Uses the given string or char as a separator (Can be empty string !)",
|
||||
" -f, --show-friendly Displays the port's friendly name",
|
||||
" -h, --help Display this help text",
|
||||
" -H, --short-help Display the short help text",
|
||||
" -n, --show-name-raw Displays the port's raw name (See remarks section)",
|
||||
" -P, --no-pretty Disables the pretty printing format (Equal to -D \" \")",
|
||||
" -s, --sort Sorts the port based on their raw names in an ascending order",
|
||||
" -S, --sort-reverse Sorts the port based on their raw names in a descending order",
|
||||
" -t, --tab-padding Use tabs for padding between the types of names (Overrides '-D')",
|
||||
" -v, --version Shows the utility's version number and other info",
|
||||
" -V, --version-only Shows the utility's version number only (Overrides '-v')"
|
||||
], None)
|
||||
}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("formatting.title", project_id, user_lang)) }}
|
||||
{{
|
||||
render_code_block([
|
||||
" *┬> No launch arguments:",
|
||||
" └──> ${Raw name} => COM1",
|
||||
" *┬> '-d' or '-f'",
|
||||
" ├──> ${Device name} => \\Device\\Serial1",
|
||||
" └──> ${Friendly name} => Communications Port",
|
||||
" *┬> '-d' and '-f'",
|
||||
" └──> ${Friendly name} [${Device name}] => Communications Port [\\Device\\Serial1]",
|
||||
" *┬> '-n' and '-d'",
|
||||
" └──> ${Raw name} [$DeviceName] => COM1 [\\Device\\Serial1]",
|
||||
" *┬> '-n' and '-f'",
|
||||
" └──> ${Raw name} - ${Friendly name} => COM1 - Communications Port",
|
||||
" *┬> '-ndf' or '-a'",
|
||||
" └──> ${Raw name} - ${Friendly name} [${Device name}] => COM1 - Communications Port [\\Device\\Serial1]",
|
||||
" *┬> '-ndfp' or '-ap'",
|
||||
" └──> ${Raw name} ${Friendly name} ${Device name} => COM1 Communications Port \\Device\\Serial1",
|
||||
" *┬> '-ndfD \";\"' or '-aD \";\"'",
|
||||
" └──> ${Raw name};${Friendly name};${Device name} => COM1;Communications Port;\\Device\\Serial1"
|
||||
], None)
|
||||
}}
|
||||
<section>
|
||||
{{ render_h2(l10n("formatting.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{
|
||||
render_code_block([
|
||||
" *┬> No launch arguments:",
|
||||
" └──> ${Raw name} => COM1",
|
||||
" *┬> '-d' or '-f'",
|
||||
" ├──> ${Device name} => \\Device\\Serial1",
|
||||
" └──> ${Friendly name} => Communications Port",
|
||||
" *┬> '-d' and '-f'",
|
||||
" └──> ${Friendly name} [${Device name}] => Communications Port [\\Device\\Serial1]",
|
||||
" *┬> '-n' and '-d'",
|
||||
" └──> ${Raw name} [$DeviceName] => COM1 [\\Device\\Serial1]",
|
||||
" *┬> '-n' and '-f'",
|
||||
" └──> ${Raw name} - ${Friendly name} => COM1 - Communications Port",
|
||||
" *┬> '-ndf' or '-a'",
|
||||
" └──> ${Raw name} - ${Friendly name} [${Device name}] => COM1 - Communications Port [\\Device\\Serial1]",
|
||||
" *┬> '-ndfp' or '-ap'",
|
||||
" └──> ${Raw name} ${Friendly name} ${Device name} => COM1 Communications Port \\Device\\Serial1",
|
||||
" *┬> '-ndfD \";\"' or '-aD \";\"'",
|
||||
" └──> ${Raw name};${Friendly name};${Device name} => COM1;Communications Port;\\Device\\Serial1"
|
||||
], None)
|
||||
}}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("packages.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.single.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.single.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.self.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.self.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.msi.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.msi.1", project_id, user_lang)) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("packages.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_paragraph(l10n("packages.single.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.single.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.self.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.self.1", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.msi.title", project_id, user_lang)) }}
|
||||
{{ render_paragraph(l10n("packages.msi.1", project_id, user_lang)) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("version.current", "commons", user_lang)) }}
|
||||
<table class="table-stylish table-p-s border r-l">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ l10n("cpu.architecture", "commons", user_lang) }}</th>
|
||||
<th>{{ l10n("requirements", "commons", user_lang) }}</th>
|
||||
<th>{{ l10n("download.multiple", "commons", user_lang) }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ l10n("cpu.any", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">{{ l10n("cpu.x64", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ l10n("none.fs", "commons", user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">{{ l10n("cpu.x86", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ l10n("none.fs", "commons", user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">{{ l10n("cpu.arm64", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ l10n("none.fs", "commons", user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">{{ l10n("cpu.arm32", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ l10n("none.fs", "commons", user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<section>
|
||||
{{ render_h2(l10n("version.current", "commons", user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
<table class="table-stylish table-p-s border r-l">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ l10n("cpu.architecture", "commons", user_lang) }}</th>
|
||||
<th>{{ l10n("requirements", "commons", user_lang) }}</th>
|
||||
<th>{{ l10n("download.multiple", "commons", user_lang) }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ l10n("cpu.any", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">{{ l10n("cpu.x64", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ l10n("none.fs", "commons", user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">{{ l10n("cpu.x86", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ l10n("none.fs", "commons", user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">{{ l10n("cpu.arm64", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ l10n("none.fs", "commons", user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td rowspan="2">{{ l10n("cpu.arm32", "commons", user_lang) }}</td>
|
||||
<td>{{ l10n("requirements.text.dotnet", project_id, user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ l10n("none.fs", "commons", user_lang) }}</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("source.code", "commons", user_lang)) }}
|
||||
<table class="table-stylish table-p-s border r-l">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ l10n("version", "commons", user_lang) }}</th>
|
||||
<th>{{ l10n("download.multiple", "commons", user_lang) }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>v3.0.0</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<section>
|
||||
{{ render_h2(l10n("source.code", "commons", user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
<table class="table-stylish table-p-s border r-l">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ l10n("version", "commons", user_lang) }}</th>
|
||||
<th>{{ l10n("download.multiple", "commons", user_lang) }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>v3.0.0</td>
|
||||
<td>...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{{ render_h2(l10n("links.title", project_id, user_lang)) }}
|
||||
{{ render_list_ul([
|
||||
"<a href='https://github.com/aziascreations/DotNet-ListComPort'>" +
|
||||
l10n("github", "commons", user_lang) +
|
||||
"</a>",
|
||||
]) }}
|
||||
<section>
|
||||
{{ render_h2(l10n("links.title", project_id, user_lang)) }}
|
||||
<div class="content-spacer">
|
||||
{{ render_list_ul([
|
||||
"<a href='https://github.com/aziascreations/DotNet-ListComPort'>" +
|
||||
l10n("github", "commons", user_lang) +
|
||||
"</a>",
|
||||
]) }}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{% endblock %}
|
||||
|
Reference in New Issue
Block a user