Compare commits

..

2 commits

Author SHA1 Message Date
aaacc84d1a
forgeo-ci: pull submodules recursively
All checks were successful
/ preview (pull_request) Successful in 35s
2024-09-10 09:57:41 -04:00
e3ee06c23e
Add wiki submodule
All checks were successful
/ preview (pull_request) Successful in 35s
2024-09-10 09:55:52 -04:00
92 changed files with 1017 additions and 1311 deletions

View file

@ -11,11 +11,12 @@ jobs:
- name: Environment setup - name: Environment setup
run: | run: |
apk add git nodejs jq coreutils curl tree gawk grep apk add git nodejs jq coreutils curl tree gawk grep
- name: Pages repo pull - name: Public repo pull
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
ref: pages token: ${{ secrets.PAGES_TOKEN }}
ref: public
- name: Render website - name: Render website
run: | run: |
export GITHUB_PR_NAME=$(grep -l ${{ github.sha }} previews/*/git_sha.txt | awk -F '/' '{print $2}') export GITHUB_PR_NAME=$(grep -l ${{ github.sha }} previews/*/git_sha.txt | awk -F '/' '{print $2}')

View file

@ -0,0 +1,27 @@
on:
push:
branches:
- 'public'
jobs:
deploy:
runs-on: x86_64
container: alpine:latest
env:
GIT_SSH_COMMAND: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
steps:
- name: Environment setup
run: |
apk add git nodejs openssh-client-common openssh-client-default
- name: Start ssh-agent
uses: actions/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.PAGES_PRIVKEY }}
- name: Repo pull
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Website upload
run: |
git remote set-url origin ${{ vars.PAGES_TARGET }}
git push -f

View file

@ -11,27 +11,29 @@ jobs:
steps: steps:
- name: Environment setup - name: Environment setup
run: | run: |
apk add git ikiwiki po4a perl-yaml-tiny tree nodejs imagemagick-perlmagick imagemagick imagemagick-jpeg findutils bash imagemagick-webp apk add git ikiwiki po4a perl-yaml-tiny tree nodejs
- name: Repo pull - name: Repo pull
uses: actions/checkout@v4 uses: https://github.com/actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
- name: Pages repo pull submodules: recursive
uses: actions/checkout@v4 token: ${{ secrets.PAGES_TOKEN }}
- name: Public repo pull
uses: https://github.com/actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
ref: pages ref: public
path: public path: public
token: ${{ secrets.PAGES_TOKEN }}
- name: Render website - name: Render website
run: ikiwiki --setup ikiwiki.setup run: ikiwiki --setup ikiwiki.setup
- name: Website upload - name: Website upload
run: | run: |
cp .pages-domains public/.domains rm -Rf public/.forgejo
cp .pages-redirect public/_redirects mkdir -p public/.forgejo/workflows
cp .forgejo/workflows/deploy.yaml public/.forgejo/workflows/.
git log -1 --pretty=%B > commit.txt git log -1 --pretty=%B > commit.txt
cd public cd public
find -name 'index.html' -type 'l' -delete
find -name 'index.fr.html' -exec bash -c 'ln -s "${0/.*\/}" "${0/.fr/}"' {} \;
date > generated.txt date > generated.txt
# Note: the following account information will not work on GHES # Note: the following account information will not work on GHES
git config user.name "forgejo-actions[bot]" git config user.name "forgejo-actions[bot]"

View file

@ -10,18 +10,21 @@ jobs:
steps: steps:
- name: Environment setup - name: Environment setup
run: | run: |
apk add git ikiwiki po4a perl-yaml-tiny tree nodejs jq coreutils curl imagemagick-perlmagick imagemagick imagemagick-jpeg findutils bash imagemagick-webp apk add git ikiwiki po4a perl-yaml-tiny tree nodejs jq coreutils curl
echo "GITHUB_PR_NAME=$(curl -Ls ${{ github.server_url }}/api/v1/repos/${{ github.repository }}/pulls/${{ github.ref_name }} -H 'accept: application/json' -H 'Authorization: token ${{ secrets.FORGEJO_TOKEN }}' | jq .title | tr ' ' '-' | tr -d ':' | tr -d '"' | tr '[:upper:]' '[:lower:]' | tr '/' '-' | tr -d ',')" >> $GITHUB_ENV echo "GITHUB_PR_NAME=$(curl -Ls ${{ github.server_url }}/api/v1/repos/${{ github.repository }}/pulls/${{ github.ref_name }} | jq .title | tr ' ' '-' | tr -d ':' | tr -d '"' | tr '[:upper:]' '[:lower:]' | tr '/' '-')" >> $GITHUB_ENV
- name: Repo pull - name: Repo pull
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 1 fetch-depth: 1
submodules: recursive
token: ${{ secrets.PAGES_TOKEN }}
- name: Public repo pull - name: Public repo pull
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
ref: pages ref: public
path: public path: public
token: ${{ secrets.PAGES_TOKEN }}
- name: Render website - name: Render website
run: | run: |
rm -rf public/previews/$GITHUB_PR_NAME || true rm -rf public/previews/$GITHUB_PR_NAME || true
@ -30,11 +33,11 @@ jobs:
ikiwiki --setup ikiwiki.setup ikiwiki --setup ikiwiki.setup
cd public/previews cd public/previews
tree -d -H '.' -L 1 --noreport --charset utf-8 -T "Versions" -o index.html tree -d -H '.' -L 1 --noreport --charset utf-8 -T "Versions" -o index.html
cd $GITHUB_PR_NAME
find -name 'index.html' -type 'l' -delete
find -name 'index.fr.html' -exec bash -c 'ln -s "${0/.*\/}" "${0/.fr/}"' {} \;
- name: Website upload - name: Website upload
run: | run: |
rm -Rf public/.forgejo
mkdir -p public/.forgejo/workflows
cp .forgejo/workflows/deploy.yaml public/.forgejo/workflows/.
git log -1 --pretty=%B > commit.txt git log -1 --pretty=%B > commit.txt
cd public cd public
date > previews/$GITHUB_PR_NAME/generated.txt date > previews/$GITHUB_PR_NAME/generated.txt

4
.gitignore vendored
View file

@ -1,3 +1,3 @@
.ikiwiki content/.ikiwiki
public/ public/
tools/http-server/ http-server/

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "content/wiki"]
path = content/wiki
url = https://forge.ilot.io/ilot/wiki

View file

@ -1 +0,0 @@
www.ilot.io

View file

View file

@ -1,11 +1,54 @@
/* Color palette */ /* Color palette */
:root { :root {
--bs-light-rgb: 248, 248, 248; /* Purple */
--dark-purple: #3a2354;
--medium-purple: #56347c; /* logo */
--light-purple: #9f73d2;
--background-purple: #f3edf9;
/* Green */
--darker-green: #014d00;
--dark-green: #3b833a;
--medium-dark-green: #53b351;
--medium-light-green: #73d171; /* buttons */
--background-green: #a8ffa0;
/* Gray */
--dark-gray: #393a35;
--medium-dark-gray: #58595b;
--medium-light-gray: #b5b7b9;
--light-gray: #dadbdc;
--background-gray: #f0f1f2;
/* Misc */
--yellow: #ffd500;
--light-yellow: #ffec8c;
--background-yellow: #fffff0;
--red: #ef1f31;
/* Shadows */
--banner-button-shadow: 1px 1px 1px black, 2px 2px 5px var(--dark-gray), inset 1px 1px 1px var(--background-green);
--green-button-shadow: 1px 1px 1px var(--medium-dark-gray), 2px 2px 5px var(--light-gray), inset 1px 1px 1px var(--background-green);
--gray-button-shadow: 1px 1px 1px black, 2px 2px 5px var(--dark-gray), inset 1px 1px 1px var(--background-gray);
} }
a {
--bs-link-color: #337ab7; /* Sticky footer styles
-------------------------------------------------- */
html {
position: relative;
min-height: 100%;
}
body {
/* Margin bottom by footer height */
margin-bottom: 60px;
}
.footer {
position: absolute;
width: 100%;
padding-bottom: 15px;
background-color: #f5f5f5;
} }
@ -13,14 +56,22 @@ a {
-------------------------------------------------- */ -------------------------------------------------- */
/* Not required for template or sticky footer method. */ /* Not required for template or sticky footer method. */
main > .container { body > .container {
padding: 60px 15px 15px; padding: 60px 15px 15px;
} }
.container .text-muted {
margin: 20px 0;
}
.pagedate { .pagedate {
font-size: 14px; font-size: 14px;
} }
.footer > .container {
padding-right: 15px;
padding-left: 15px;
}
textarea { textarea {
width: 100%; width: 100%;
} }
@ -40,6 +91,33 @@ code {
font-size: 80%; font-size: 80%;
} }
/* comments fixup */
.comment {
border: none;
padding: 1em;
margin: 1em;
background: #f3f3f3;
}
.mastodon-comment {
display: flex;
}
/* mastodon posts have a span to hide the scheme and post id, use it */
.mastodon-comment-content span.invisible {
display: none;
}
.mastodon-comment .avatar img {
margin-right: 1rem;
}
.mastodon-comment span.disabled {
display: none;
}
.mastodon-comment .author {
display: flex;
justify-content: space-between;
}
.mastodon-comment .author time {
font-size: small;
}
.actions ul { .actions ul {
margin: inherit; margin: inherit;
padding: inherit; padding: inherit;
@ -47,22 +125,30 @@ code {
/* list-style-type: none; */ /* list-style-type: none; */
} }
a {
text-decoration: none;
}
/* limit main content to ~90 chars per line */ /* limit main content to ~90 chars per line */
/* update: practical typography recommends 2-3 alphabets */ /* update: practical typography recommends 2-3 alphabets */
#content { #content {
max-width: 35em; /* this is 2.5 alphabets with Charter */ max-width: 35em; /* this is 2.5 alphabets with Charter */
margin-top: 15px
} }
/* limit header as well otherwise logo is out of whack without sidebar */ /* limit header as well otherwise logo is out of whack without sidebar */
.fixed-top .container-fluid { .navbar-fixed-top .container {
max-width: 55em; max-width: 55em;
} }
.navbar .selflink {
display: block;
padding: 15px 15px;
}
.navbar .in {
padding-top: 9px;
}
.navbar .collapsing {
padding-top: 9px;
}
/* some hacking at typefaces to get some fresh zest in here /* some hacking at typefaces to get some fresh zest in here
* fallbacks from: * fallbacks from:
* https://en.wikipedia.org/wiki/List_of_typefaces_included_with_Microsoft_Windows * https://en.wikipedia.org/wiki/List_of_typefaces_included_with_Microsoft_Windows
@ -129,12 +215,12 @@ blockquote {
/* enlarge body point size for charter for larger displays */ /* enlarge body point size for charter for larger displays */
@media (min-device-width: 750px) { @media (min-device-width: 750px) {
body { body {
font-size: 18px; font-size: 20px;
line-height: 1.3; /* default in FF is ~1.48, try seems a bit to sparse */ line-height: 1.3; /* default in FF is ~1.48, try seems a bit to sparse */
} }
/* to match the other bootstrap workaround, below */ /* to match the other bootstrap workaround, below */
blockquote { blockquote {
font-size: 18px; font-size: 20px;
} }
/* UI elements should be a little less intrusive */ /* UI elements should be a little less intrusive */
.navbar, .footer { .navbar, .footer {
@ -361,20 +447,35 @@ header h1::before {
/* Language switchers */ /* Language switchers */
.language-switcher { .language-switcher {
font-size: 14px; display: block;
background: #f8f8f8; background: #f8f8f8;
color: #333; color: #333;
border-color: #ccc; border-color: #ccc;
margin-bottom: -4px;
margin-left: -3px;
margin-top: 9px;
} }
.language-switcher:hover { .language-switcher:hover {
background: #e6e6e6; background: #e6e6e6;
color: #333;
border-color: #ccc;
} }
/* Sign-in buttons */ /* Sign-in buttons */
.sign-in {
background: #f8f8f8;
color: #333;
border-color: #ccc;
margin-top: 9px;
margin-left: 12px;
}
.sign-in:hover { .sign-in:hover {
background: #e6e6e6; background: #e6e6e6;
color: #333;
border-color: #ccc;
} }
/* Footer */ /* Footer */
@ -440,57 +541,3 @@ header h1::before {
border-color: #ccc; border-color: #ccc;
} }
/* NavBar */
/* Navbar variables */
.navbar {
--bs-navbar-padding-y: 0;
--bs-navbar-padding-x: 0;
}
.nav-link {
--bs-nav-link-padding-y: 5px;
--bs-nav-link-padding-x: 15px;
}
.dropdown-menu li a {
font-size: 14px;
display: block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: #333;
border-color: #ccc;
white-space: nowrap;
}
.dropdown-menu li a:hover {
background: #e6e6e6;
}
/* Usually is set automatically by bootstrap, but do it manually to let ikiwiki handle links */
.nav-link li a, .nav-link .selflink {
display: block;
padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);
font-size: var(--bs-nav-link-font-size);
font-weight: var(--bs-nav-link-font-weight);
color: var(--bs-nav-link-color);
text-decoration: none;
transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out;
}
.nav-link .selflink {
color: #393a35;
}
.nav-link li a:hover, .nav-link .selflink:hover {
color: #393a35;
}
.navbar-brand {
height: 50px;
padding: 15px 0;
}

6
basewiki/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

7
basewiki/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

BIN
basewiki/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

View file

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 106 KiB

View file

@ -1,11 +1,10 @@
<script>
async function checkDuplicate() { async function checkDuplicate() {
var url='https://forge.ilot.io/api/v1/repos/ilot/registration/issues'; var url='https://lab.ilot.io/api/v4/projects/99/issues';
var email = document.getElementById("email").value; var email = document.getElementById("email").value;
const response = await fetch(url, { const response = await fetch(url, {
headers: { headers: {
'authorization': 'token b8d8617bb6049c0e47b7bba5cd0931799f54609c', 'PRIVATE-TOKEN': 'glpat-RaoZSW_3XMhkGr19k6Wv',
'Content-Type': 'application/json', 'Content-Type': 'application/json',
}, },
}) })
@ -21,28 +20,34 @@
} }
async function createIssue() { async function createIssue() {
var url = 'https://forge.ilot.io/api/v1/repos/ilot/registration/issues'; var baseurl = 'https://lab.ilot.io/api/v4/projects/99/issues?&labels=Request';
var emptyfield = document.getElementById("emptyfield").value;
var mathspamtrap = document.getElementById("math-spam-trap").value; var mathspamtrap = document.getElementById("math-spam-trap").value;
var agreetoterms = document.getElementById("agree-to-terms").checked; var agreetoterms = document.getElementById("agree-to-terms").checked;
var email = document.getElementById("email").value; var email = document.getElementById("email").value;
if(!agreetoterms) { if(!agreetoterms) {
alert("Registration requires agreement of Code of Conduct."); alert("Registration requires agreement of Code of Conduct");
return false; return false;
} }
if(!email) { if(!email) {
alert("Email cannot be empty."); alert("Email cannot be empty");
return false;
}
if(emptyfield) {
alert("Empty field should be empty");
return false; return false;
} }
if(mathspamtrap != "9") { if(mathspamtrap != "9") {
alert("Wrong math answer."); alert("Wrong math answer");
return false; return false;
} }
if(await checkDuplicate(email) === true) { if(await checkDuplicate(email) === true) {
alert("This email address has already requested an account."); alert("This email address has already requested an account");
return false; return false;
} }
@ -50,28 +55,31 @@
var name = name.replace (/^/,'Name: '); var name = name.replace (/^/,'Name: ');
var aboutme = document.getElementById("about-me").value; var aboutme = document.getElementById("about-me").value;
var aboutme = aboutme.replace (/^/,'About me: '); var aboutme = aboutme.replace (/^/,'About me: ');
var aboutme = aboutme.replace(/\r?\n/g, "%0A%0A");
var howfound = document.getElementById("how-found").value; var howfound = document.getElementById("how-found").value;
var howfound = howfound.replace (/^/,'How I found ilot: '); var howfound = howfound.replace (/^/,'How I found ilot: ');
var ocuser = document.getElementById("oc-user").value; var howfound = howfound.replace(/\r?\n/g, "%0A%0A");
var ocuser = ocuser.replace (/^/,'OpenCollective Profile: '); // add back on oc is setup
var description = name + "\n\n" + aboutme + "\n\n" + howfound + "\n\n" + ocuser; // var ocuser = document.getElementById("oc-user").value;
// var ocuser = ocuser.replace (/^/,'OpenCollective Profile: ');
// var description = name + "%0A%0A" + aboutme + "%0A%0A" + howfound + "%0A%0A" + ocuser;
var description = name + "%0A%0A" + aboutme + "%0A%0A" + howfound;
var url = baseurl.concat("&title=", email, "&description=", description);
console.log('Description:', description); console.log('Description:', description);
fetch(url, { fetch(url, {
method: 'POST', method: 'POST',
headers: { headers: {
'authorization': 'token b8d8617bb6049c0e47b7bba5cd0931799f54609c', 'PRIVATE-TOKEN': 'glpat-RaoZSW_3XMhkGr19k6Wv',
'Content-Type': 'application/json', 'Content-Type': 'application/json',
}, },
body: JSON.stringify({ title: email, body: description }),
}) })
.then(response => response.json()) .then(response => response.json())
.then(result => { .then(result => {
console.log('Success:', result); console.log('Success:', result);
alert("Request submitted. A working group member will process your registration shortly. If you receive no contact within seven days of registration, please send an email to support@ilot.io."); alert("Request submitted. A working group member will process your registration shortly. If you receive no contact within seven days of registration, please send an email to support@ilot.io");
}) })
.catch(error => { .catch(error => {
console.error('Error:', error) console.error('Error:', error)
}); });
} }
</script>

4
basewiki/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,37 @@
# Traduction de ikiwiki
# Copyright (C) 2009 Debian French l10n team <debian-l10n-french@lists.debian.org>
# This file is distributed under the same license as the PACKAGE Ikiwiki.
#
msgid ""
msgstr ""
"Project-Id-Version: Ikiwiki\n"
"POT-Creation-Date: 2009-08-15 18:30-0300\n"
"PO-Revision-Date: 2009-08-23 09:32+0200\n"
"Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: Plain text
#, no-wrap
msgid "[[!if test=\"enabled(meta)\" then=\"\"\"\n"
msgstr "[[!if test=\"enabled(meta)\" then=\"\"\"\n"
#. type: Plain text
#, no-wrap
msgid "[[!meta title=\"RecentChanges\"]]\n"
msgstr "[[!meta title=\"RecentChanges\"]]\n"
#. type: Plain text
msgid "Recent changes to this wiki:"
msgstr "Dernières modifications :"
#. type: Plain text
#, no-wrap
msgid ""
"[[!inline pages=\"internal(recentchanges/change_*) and !*/Discussion\" \n"
"template=recentchanges show=0]]\n"
msgstr ""
"[[!inline pages=\"internal(recentchanges/change_*) and !*/Discussion\" \n"
"template=recentchanges show=0]]\n"

View file

@ -0,0 +1,7 @@
[[!if test="enabled(meta)" then="""
[[!meta title="RecentChanges"]]
"""]]
Recent changes to this wiki:
[[!inline pages="internal(recentchanges/change_*) and !*/Discussion"
template=recentchanges show=0]]

266
basewiki/shortcuts.fr.po Normal file
View file

@ -0,0 +1,266 @@
# Traduction de ikiwiki
# Copyright (C) 2009 Debian French l10n team <debian-l10n-french@lists.debian.org>
# This file is distributed under the same license as the PACKAGE Ikiwiki.
#
msgid ""
msgstr ""
"Project-Id-Version: ikiwiki\n"
"POT-Creation-Date: 2010-03-14 22:09+0000\n"
"PO-Revision-Date: 2010-07-16 10:39+0200\n"
"Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: Plain text
#, no-wrap
msgid ""
"[[!if test=\"enabled(shortcut)\"\n"
" then=\"This wiki has shortcuts **enabled**.\"\n"
" else=\"This wiki has shortcuts **disabled**.\"]]\n"
msgstr ""
"[[!if test=\"enabled(shortcut)\"\n"
" then=\"Les raccourcis sont **activés** dans ce wiki.\"\n"
" else=\"Les raccourcis sont **désactivés** dans ce wiki.\"]]\n"
#. type: Plain text
msgid "Some examples of using shortcuts include:"
msgstr "Voici quelques exemples de raccourcis :"
#. type: Plain text
#, no-wrap
msgid ""
"\t\\[[!google foo]]\n"
"\t\\[[!wikipedia War_of_1812]]\n"
"\t\\[[!debbug 12345]]\n"
"\tCheck the \\[[!cia ikiwiki desc=\"CIA page for %s\"]].\n"
msgstr ""
"\t\\[[!google foo]]\n"
"\t\\[[!wikipedia War_of_1812]]\n"
"\t\\[[!debbug 12345]]\n"
"\tConsultez la \\[[!cia ikiwiki desc=\"page du projet CIA pour %s\"]].\n"
#. type: Plain text
msgid "This page controls what shortcut links the wiki supports."
msgstr "Cette page définit les raccourcis connus par ce wiki."
#. type: Bullet: '* '
msgid "[[!shortcut name=google url=\"http://www.google.com/search?q=%s\"]]"
msgstr "[[!shortcut name=google url=\"http://www.google.com/search?q=%s\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=archive url=\"http://web.archive.org/*/%S\"]]"
msgstr "[[!shortcut name=archive url=\"http://web.archive.org/*/%S\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=gmap url=\"http://maps.google.com/maps?q=%s\"]]"
msgstr "[[!shortcut name=gmap url=\"http://maps.google.com/maps?q=%s\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=gmsg url=\"http://groups.google.com/groups?selm=%s\"]]"
msgstr ""
"[[!shortcut name=gmsg url=\"http://groups.google.com/groups?selm=%s\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=wikipedia url=\"http://en.wikipedia.org/wiki/%s\"]]"
msgstr "[[!shortcut name=wikipedia url=\"http://en.wikipedia.org/wiki/%s\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=wikitravel url=\"http://wikitravel.org/en/%s\"]]"
msgstr "[[!shortcut name=wikitravel url=\"http://wikitravel.org/en/%s\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=wiktionary url=\"http://en.wiktionary.org/wiki/%s\"]]"
msgstr "[[!shortcut name=wiktionary url=\"http://en.wiktionary.org/wiki/%s\"]]"
#. type: Bullet: '* '
#| msgid ""
#| "[[!shortcut name=debbug url=\"http://bugs.debian.org/%s\" desc=\"bug #%s"
#| "\"]]"
msgid ""
"[[!shortcut name=debbug url=\"http://bugs.debian.org/%S\" desc=\"Debian bug #"
"%s\"]]"
msgstr "[[!shortcut name=debbug url=\"http://bugs.debian.org/%S\" desc=\"bug #%s\"]]"
#. type: Bullet: '* '
msgid ""
"[[!shortcut name=deblist url=\"http://lists.debian.org/debian-%s\" desc="
"\"debian-%s@lists.debian.org\"]]"
msgstr ""
"[[!shortcut name=deblist url=\"http://lists.debian.org/debian-%s\" desc="
"\"debian-%s@lists.debian.org\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=debpkg url=\"http://packages.debian.org/%s\"]]"
msgstr "[[!shortcut name=debpkg url=\"http://packages.debian.org/%s\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=debpkgsid url=\"http://packages.debian.org/sid/%s\"]]"
msgstr "[[!shortcut name=debpkgsid url=\"http://packages.debian.org/sid/%s\"]]"
#. type: Bullet: '* '
msgid "[[!shortcut name=debpts url=\"http://packages.qa.debian.org/%s\"]]"
msgstr "[[!shortcut name=debpts url=\"http://packages.qa.debian.org/%s\"]]"
#. type: Bullet: '* '
msgid ""
"[[!shortcut name=debmsg url=\"http://lists.debian.org/msgid-search/%s\"]]"
msgstr ""
"[[!shortcut name=debmsg url=\"http://lists.debian.org/msgid-search/%s\"]]"
#. type: Bullet: '* '
msgid ""
"[[!shortcut name=debrt url=\"https://rt.debian.org/Ticket/Display.html?id=%s"
"\"]]"
msgstr ""
"[[!shortcut name=debrt url=\"https://rt.debian.org/Ticket/Display.html?id=%s"
"\"]]"
#. type: Plain text
#, no-wrap
#| msgid ""
#| "* [[!shortcut name=debss url=\"http://snapshot.debian.net/package/%s\"]]\n"
#| " * Usage: `\\[[!debss package]]`, `\\[[!debss package#version]]`, or `\\[[!debss package/version]]`. See http://snapshot.debian.net for details.\n"
#| "* [[!shortcut name=debwiki url=\"http://wiki.debian.org/%s\"]]\n"
#| "* [[!shortcut name=fdobug url=\"https://bugs.freedesktop.org/show_bug.cgi?id=%s\" desc=\"freedesktop.org bug #%s\"]]\n"
#| "* [[!shortcut name=fdolist url=\"http://lists.freedesktop.org/mailman/listinfo/%s\" desc=\"%s@lists.freedesktop.org\"]]\n"
#| "* [[!shortcut name=gnomebug url=\"http://bugzilla.gnome.org/show_bug.cgi?id=%s\" desc=\"GNOME bug #%s\"]]\n"
#| "* [[!shortcut name=linuxbug url=\"http://bugzilla.kernel.org/show_bug.cgi?id=%s\" desc=\"Linux bug #%s\"]]\n"
#| "* [[!shortcut name=mozbug url=\"https://bugzilla.mozilla.org/show_bug.cgi?id=%s\" desc=\"Mozilla bug #%s\"]]\n"
#| "* [[!shortcut name=gnulist url=\"http://lists.gnu.org/mailman/listinfo/%s\" desc=\"%s@gnu.org\"]]\n"
#| "* [[!shortcut name=marcmsg url=\"http://marc.info/?i=%s\"]]\n"
#| "* [[!shortcut name=marclist url=\"http://marc.info/?l=%s\"]]\n"
#| "* [[!shortcut name=gmane url=\"http://dir.gmane.org/gmane.%s\" desc=\"gmane.%s\"]]\n"
#| "* [[!shortcut name=gmanemsg url=\"http://mid.gmane.org/%s\"]]\n"
#| "* [[!shortcut name=cpan url=\"http://search.cpan.org/search?mode=dist&query=%s\"]]\n"
#| "* [[!shortcut name=ctan url=\"http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s\"]]\n"
#| "* [[!shortcut name=hoogle url=\"http://haskell.org/hoogle/?q=%s\"]]\n"
#| "* [[!shortcut name=iki url=\"http://ikiwiki.info/%S/\"]]\n"
#| "* [[!shortcut name=ljuser url=\"http://%s.livejournal.com/\"]]\n"
#| "* [[!shortcut name=rfc url=\"http://www.ietf.org/rfc/rfc%s.txt\" desc=\"RFC %s\"]]\n"
#| "* [[!shortcut name=c2 url=\"http://c2.com/cgi/wiki?%s\"]]\n"
#| "* [[!shortcut name=meatballwiki url=\"http://www.usemod.com/cgi-bin/mb.pl?%s\"]]\n"
#| "* [[!shortcut name=emacswiki url=\"http://www.emacswiki.org/cgi-bin/wiki/%s\"]]\n"
#| "* [[!shortcut name=haskellwiki url=\"http://haskell.org/haskellwiki/%s\"]]\n"
#| "* [[!shortcut name=dict url=\"http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s\"]]\n"
#| "* [[!shortcut name=imdb url=\"http://imdb.com/find?q=%s\"]]\n"
#| "* [[!shortcut name=gpg url=\"http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s\"]]\n"
#| "* [[!shortcut name=perldoc url=\"http://perldoc.perl.org/search.html?q=%s\"]]\n"
#| "* [[!shortcut name=whois url=\"http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain\"]]\n"
#| "* [[!shortcut name=cve url=\"http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s\"]]\n"
#| "* [[!shortcut name=cia url=\"http://cia.vc/stats/project/%s\"]]\n"
#| "* [[!shortcut name=ciauser url=\"http://cia.vc/stats/user/%s\"]]\n"
#| "* [[!shortcut name=flickr url=\"http://www.flickr.com/photos/%s\"]]\n"
#| "* [[!shortcut name=man url=\"http://linux.die.net/man/%s\"]]\n"
#| "* [[!shortcut name=ohloh url=\"http://www.ohloh.net/projects/%s\"]]\n"
msgid ""
"* [[!shortcut name=debss url=\"http://snapshot.debian.net/package/%s\"]]\n"
" * Usage: `\\[[!debss package]]`, `\\[[!debss package#version]]`, or `\\[[!debss package/version]]`. See http://snapshot.debian.net for details.\n"
"* [[!shortcut name=debwiki url=\"http://wiki.debian.org/%s\"]]\n"
"* [[!shortcut name=fdobug url=\"https://bugs.freedesktop.org/show_bug.cgi?id=%s\" desc=\"freedesktop.org bug #%s\"]]\n"
"* [[!shortcut name=fdolist url=\"http://lists.freedesktop.org/mailman/listinfo/%s\" desc=\"%s@lists.freedesktop.org\"]]\n"
"* [[!shortcut name=gnomebug url=\"http://bugzilla.gnome.org/show_bug.cgi?id=%s\" desc=\"GNOME bug #%s\"]]\n"
"* [[!shortcut name=linuxbug url=\"http://bugzilla.kernel.org/show_bug.cgi?id=%s\" desc=\"Linux bug #%s\"]]\n"
"* [[!shortcut name=mozbug url=\"https://bugzilla.mozilla.org/show_bug.cgi?id=%s\" desc=\"Mozilla bug #%s\"]]\n"
"* [[!shortcut name=gnulist url=\"http://lists.gnu.org/mailman/listinfo/%s\" desc=\"%s@gnu.org\"]]\n"
"* [[!shortcut name=marcmsg url=\"http://marc.info/?i=%s\"]]\n"
"* [[!shortcut name=marclist url=\"http://marc.info/?l=%s\"]]\n"
"* [[!shortcut name=gmane url=\"http://dir.gmane.org/gmane.%s\" desc=\"gmane.%s\"]]\n"
"* [[!shortcut name=gmanemsg url=\"http://mid.gmane.org/%s\"]]\n"
"* [[!shortcut name=cpan url=\"http://search.cpan.org/search?mode=dist&query=%s\"]]\n"
"* [[!shortcut name=ctan url=\"http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s\"]]\n"
"* [[!shortcut name=hoogle url=\"http://haskell.org/hoogle/?q=%s\"]]\n"
"* [[!shortcut name=iki url=\"http://ikiwiki.info/%S/\"]]\n"
"* [[!shortcut name=ljuser url=\"http://%s.livejournal.com/\"]]\n"
"* [[!shortcut name=rfc url=\"http://www.ietf.org/rfc/rfc%s.txt\" desc=\"RFC %s\"]]\n"
"* [[!shortcut name=c2 url=\"http://c2.com/cgi/wiki?%s\"]]\n"
"* [[!shortcut name=meatballwiki url=\"http://www.usemod.com/cgi-bin/mb.pl?%s\"]]\n"
"* [[!shortcut name=emacswiki url=\"http://www.emacswiki.org/cgi-bin/wiki/%s\"]]\n"
"* [[!shortcut name=haskellwiki url=\"http://haskell.org/haskellwiki/%s\"]]\n"
"* [[!shortcut name=dict url=\"http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s\"]]\n"
"* [[!shortcut name=imdb url=\"http://imdb.com/find?q=%s\"]]\n"
"* [[!shortcut name=gpg url=\"http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s\"]]\n"
"* [[!shortcut name=perldoc url=\"http://perldoc.perl.org/search.html?q=%s\"]]\n"
"* [[!shortcut name=whois url=\"http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain\"]]\n"
"* [[!shortcut name=cve url=\"http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s\"]]\n"
"* [[!shortcut name=cia url=\"http://cia.vc/stats/project/%s\"]]\n"
"* [[!shortcut name=ciauser url=\"http://cia.vc/stats/user/%s\"]]\n"
"* [[!shortcut name=flickr url=\"http://www.flickr.com/photos/%s\"]]\n"
"* [[!shortcut name=man url=\"http://linux.die.net/man/%s\"]]\n"
"* [[!shortcut name=ohloh url=\"http://www.ohloh.net/projects/%s\"]]\n"
"* [[!shortcut name=cpanrt url=\"https://rt.cpan.org/Ticket/Display.html?id=%s\" desc=\"CPAN RT#%s\"]]\n"
"* [[!shortcut name=novellbug url=\"https://bugzilla.novell.com/show_bug.cgi?id=%s\" desc=\"bug %s\"]]\n"
msgstr ""
"* [[!shortcut name=debss url=\"http://snapshot.debian.net/package/%s\"]]\n"
" * Usage : `\\[[!debss package]]`, `\\[[!debss package#version]]`, ou `\\[[!debss package/version]]`. Consultez http://snapshot.debian.net pour d'autres précisions.\n"
"* [[!shortcut name=debwiki url=\"http://wiki.debian.org/%s\"]]\n"
"* [[!shortcut name=fdobug url=\"https://bugs.freedesktop.org/show_bug.cgi?id=%s\" desc=\"freedesktop.org bug #%s\"]]\n"
"* [[!shortcut name=fdolist url=\"http://lists.freedesktop.org/mailman/listinfo/%s\" desc=\"%s@lists.freedesktop.org\"]]\n"
"* [[!shortcut name=gnomebug url=\"http://bugzilla.gnome.org/show_bug.cgi?id=%s\" desc=\"GNOME bug #%s\"]]\n"
"* [[!shortcut name=linuxbug url=\"http://bugzilla.kernel.org/show_bug.cgi?id=%s\" desc=\\\"Linux bug #%s\"]]\n"
"* [[!shortcut name=mozbug url=\"https://bugzilla.mozilla.org/show_bug.cgi?id=%s\" desc=\"Mozilla bug #%s\"]]\n"
"* [[!shortcut name=gnulist url=\"http://lists.gnu.org/mailman/listinfo/%s\" desc=\"%s@gnu.org\"]]\n"
"* [[!shortcut name=marcmsg url=\"http://marc.info/?i=%s\"]]\n"
"* [[!shortcut name=marclist url=\"http://marc.info/?l=%s\"]]\n"
"* [[!shortcut name=gmane url=\"http://dir.gmane.org/gmane.%s\" desc=\"gmane.%s\"]]\n"
"* [[!shortcut name=gmanemsg url=\"http://mid.gmane.org/%s\"]]\n"
"* [[!shortcut name=cpan url=\"http://search.cpan.org/search?mode=dist&query=%s\"]]\n"
"* [[!shortcut name=ctan url=\"http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s\"]]\n"
"* [[!shortcut name=hoogle url=\"http://haskell.org/hoogle/?q=%s\"]]\n"
"* [[!shortcut name=iki url=\"http://ikiwiki.info/%S/\"]]\n"
"* [[!shortcut name=ljuser url=\"http://%s.livejournal.com/\"]]\n"
"* [[!shortcut name=rfc url=\"http://www.ietf.org/rfc/rfc%s.txt\" desc=\"RFC %s\"]]\n"
"* [[!shortcut name=c2 url=\"http://c2.com/cgi/wiki?%s\"]]\n"
"* [[!shortcut name=meatballwiki url=\"http://www.usemod.com/cgi-bin/mb.pl?%s\"]]\n"
"* [[!shortcut name=emacswiki url=\"http://www.emacswiki.org/cgi-bin/wiki/%s\"]]\n"
"* [[!shortcut name=haskellwiki url=\"http://haskell.org/haskellwiki/%s\"]]\n"
"* [[!shortcut name=dict url=\"http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s\"]]\n"
"* [[!shortcut name=imdb url=\"http://imdb.com/find?q=%s\"]]\n"
"* [[!shortcut name=gpg url=\"http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s\"]]\n"
"* [[!shortcut name=perldoc url=\"http://perldoc.perl.org/search.html?q=%s\"]]\n"
"* [[!shortcut name=whois url=\"http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain\"]]\n"
"* [[!shortcut name=cve url=\"http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s\"]]\n"
"* [[!shortcut name=cia url=\"http://cia.vc/stats/project/%s\"]]\n"
"* [[!shortcut name=ciauser url=\"http://cia.vc/stats/user/%s\"]]\n"
"* [[!shortcut name=flickr url=\"http://www.flickr.com/photos/%s\"]]\n"
"* [[!shortcut name=man url=\"http://linux.die.net/man/%s\"]]\n"
"* [[!shortcut name=ohloh url=\"http://www.ohloh.net/projects/%s\"]]\n"
"* [[!shortcut name=cpanrt url=\"https://rt.cpan.org/Ticket/Display.html?id=%s\" desc=\"CPAN RT#%s\"]]\n"
"* [[!shortcut name=novellbug url=\"https://bugzilla.novell.com/show_bug.cgi?id=%s\" desc=\"bug %s\"]]\n"
#. type: Plain text
msgid ""
"To add a new shortcut, use the `shortcut` [[ikiwiki/directive]]. In the url, "
"\"%s\" is replaced with the text passed to the named shortcut, after [[!"
"wikipedia url_encoding]] it, and '%S' is replaced with the raw, non-encoded "
"text. The optional `desc` parameter controls the description of the link."
msgstr ""
"Pour ajouter un raccourci, utilisez la [[ikiwiki/directive]] `shortcut`. "
"Dans l'URL, \"%s\" est remplacé par le texte passé au raccourci, après "
"l'avoir codé [[!\"wikipedia url_encoding]], et le \"%S\" est remplacé par le "
"texte brut, non codé. La paramètre facultatif `desc` contrôle la description "
"du lien."
#. type: Plain text
msgid ""
"Remember that the `name` you give the shortcut will become a new [[ikiwiki/"
"directive]]. Avoid using a `name` that conflicts with an existing "
"directive. These directives also accept a `desc` parameter that will "
"override the one provided at definition time."
msgstr ""
"N'oubliez pas que le paramètre `name` donné au raccourci devient une "
"nouvelle [[ikiwiki/directive]]. Évitez de donner un nom qui entre en conflit "
"avec une directive existante. Ces directives acceptent aussi un paramètre "
"`desc` qui primera celui fourni au moment de la définition du raccourci."
#. type: Plain text
msgid ""
"If you come up with a shortcut that you think others might find useful, "
"consider contributing it to the [shortcuts page on the ikiwiki wiki](http://"
"ikiwiki.info/shortcuts/), so that future versions of ikiwiki will include "
"your shortcut in the standard underlay."
msgstr ""
"Si vous trouvez un raccourci qui vous paraît utile, proposez-le sur la [page "
"des raccourcis du wiki d'ikiwiki](http://ikiwiki.info/shortcuts/). Ainsi les "
"futures versions d'ikiwiki incluront automatiquement ce raccourci."

88
basewiki/shortcuts.mdwn Normal file
View file

@ -0,0 +1,88 @@
[[!if test="enabled(shortcut)"
then="This wiki has shortcuts **enabled**."
else="This wiki has shortcuts **disabled**."]]
Some examples of using shortcuts include:
\[[!google foo]]
\[[!wikipedia War_of_1812]]
\[[!debbug 12345]]
Check the \[[!google ikiwiki desc="google search for %s"]].
This page controls what shortcut links the wiki supports.
* [[!shortcut name=google url="https://encrypted.google.com/search?q=%s"]]
* [[!shortcut name=archive url="http://web.archive.org/*/%S"]]
* [[!shortcut name=gmap url="https://maps.google.com/maps?q=%s"]]
* [[!shortcut name=gmsg url="https://groups.google.com/groups?selm=%s"]]
* [[!shortcut name=wikipedia url="https://en.wikipedia.org/wiki/%W"]]
* [[!shortcut name=wikitravel url="https://wikitravel.org/en/%s"]]
* [[!shortcut name=wiktionary url="https://en.wiktionary.org/wiki/%s"]]
* [[!shortcut name=debbug url="http://bugs.debian.org/%S" desc="Debian bug #%s"]]
* [[!shortcut name=deblist url="https://lists.debian.org/debian-%s" desc="debian-%s@lists.debian.org"]]
* [[!shortcut name=debpkg url="http://packages.debian.org/%s"]]
* [[!shortcut name=debpkgsid url="http://packages.debian.org/sid/%s"]]
* [[!shortcut name=debpts url="http://packages.qa.debian.org/%s"]]
* [[!shortcut name=debmsg url="https://lists.debian.org/msgid-search/%s"]]
* [[!shortcut name=debrt url="https://rt.debian.org/Ticket/Display.html?id=%s"]]
* [[!shortcut name=debss url="http://snapshot.debian.org/package/%s/"]]
* Usage: `\[[!debss package]]` or `\[[!debss package/version]]`. See <http://snapshot.debian.org/> for details.
* [[!shortcut name=debwiki url="https://wiki.debian.org/%S"]]
* [[!shortcut name=debcve url="https://security-tracker.debian.org/tracker/%S"]]
* also supports Debian bug numbers, packages and whatever the [security tracker](https://security-tracker.debian.org/tracker/) supports.
* [[!shortcut name=fdobug url="https://bugs.freedesktop.org/show_bug.cgi?id=%s" desc="freedesktop.org bug #%s"]]
* [[!shortcut name=fdolist url="http://lists.freedesktop.org/mailman/listinfo/%s" desc="%s@lists.freedesktop.org"]]
* [[!shortcut name=gnomebug url="https://bugzilla.gnome.org/show_bug.cgi?id=%s" desc="GNOME bug #%s"]]
* [[!shortcut name=linuxbug url="https://bugzilla.kernel.org/show_bug.cgi?id=%s" desc="Linux bug #%s"]]
* [[!shortcut name=mozbug url="https://bugzilla.mozilla.org/show_bug.cgi?id=%s" desc="Mozilla bug #%s"]]
* [[!shortcut name=gnulist url="https://lists.gnu.org/mailman/listinfo/%s" desc="%s@gnu.org"]]
* [[!shortcut name=marcmsg url="http://marc.info/?i=%s"]]
* [[!shortcut name=marclist url="http://marc.info/?l=%s"]]
* [[!shortcut name=gmane url="http://dir.gmane.org/gmane.%s" desc="gmane.%s"]]
* [[!shortcut name=gmanemsg url="http://mid.gmane.org/%s"]]
* [[!shortcut name=cpan url="http://search.cpan.org/search?mode=dist&query=%s"]]
* [[!shortcut name=ctan url="http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s"]]
* [[!shortcut name=hoogle url="http://haskell.org/hoogle/?q=%s"]]
* [[!shortcut name=iki url="http://ikiwiki.info/%S/"]]
* [[!shortcut name=ljuser url="http://%s.livejournal.com/"]]
* [[!shortcut name=rfc url="https://www.ietf.org/rfc/rfc%s.txt" desc="RFC %s"]]
* [[!shortcut name=c2 url="http://wiki.c2.com/?%s"]]
* [[!shortcut name=meatballwiki url="http://www.usemod.com/cgi-bin/mb.pl?%s"]]
* [[!shortcut name=emacswiki url="http://www.emacswiki.org/cgi-bin/wiki/%s"]]
* [[!shortcut name=haskellwiki url="http://haskell.org/haskellwiki/%s"]]
* [[!shortcut name=dict url="http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s"]]
* [[!shortcut name=imdb url="http://imdb.com/find?q=%s"]]
* [[!shortcut name=gpg url="http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s"]]
* [[!shortcut name=perldoc url="http://perldoc.perl.org/search.html?q=%s"]]
* [[!shortcut name=whois url="http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain"]]
* [[!shortcut name=cve url="https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s"]]
* [[!shortcut name=flickr url="https://secure.flickr.com/photos/%s"]]
* [[!shortcut name=man url="http://manpages.debian.org/%s"]]
* [[!shortcut name=ohloh url="https://www.ohloh.net/p/%s"]]
* [[!shortcut name=cpanrt url="https://rt.cpan.org/Ticket/Display.html?id=%s" desc="CPAN RT#%s"]]
* [[!shortcut name=novellbug url="https://bugzilla.novell.com/show_bug.cgi?id=%s" desc="bug %s"]]
* [[!shortcut name=ubupkg url="http://packages.ubuntu.com/%s"]]
* [[!shortcut name=mozillazinekb url="http://kb.mozillazine.org/%s"]]
* [[!shortcut name=freebsdwiki url="http://wiki.freebsd.org/%s"]]
* [[!shortcut name=hackage url="http://hackage.haskell.org/package/%s"]]
* [[!shortcut name=pkgsrc url="http://pkgsrc.se/%S"]]
* [[!shortcut name=doi url="http://dx.doi.org/%s" desc="doi:%s"]]
* [[!shortcut name=arxiv url="http://arxiv.org/abs/%s" desc="arXiv:%s"]]
To add a new shortcut, use the `shortcut`
[[ikiwiki/directive]]. In the url, "%s" is replaced with the
text passed to the named shortcut, after [[!wikipedia url_encoding]]
it, and '%S' is replaced with the raw, non-encoded text.
Additionally, `%W` is replaced with the text encoded just right for
Wikipedia. The optional `desc` parameter controls the description of
the link.
Remember that the `name` you give the shortcut will become a new
[[ikiwiki/directive]]. Avoid using a `name` that conflicts
with an existing directive. These directives also accept a `desc`
parameter that will override the one provided at definition time.
If you come up with a shortcut that you think others might find useful,
consider contributing it to the [shortcuts page on the ikiwiki
wiki](http://ikiwiki.info/shortcuts/), so that future versions of
ikiwiki will include your shortcut in the standard underlay.

View file

Before

Width:  |  Height:  |  Size: 293 B

After

Width:  |  Height:  |  Size: 293 B

View file

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View file

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

View file

Before

Width:  |  Height:  |  Size: 696 B

After

Width:  |  Height:  |  Size: 696 B

View file

Before

Width:  |  Height:  |  Size: 921 B

After

Width:  |  Height:  |  Size: 921 B

View file

Before

Width:  |  Height:  |  Size: 921 B

After

Width:  |  Height:  |  Size: 921 B

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

BIN
content/footer.fr.mo Normal file

Binary file not shown.

View file

@ -7,19 +7,19 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ilot.io\n" "Project-Id-Version: ilot.io\n"
"POT-Creation-Date: 2025-03-13 17:50-0400\n" "POT-Creation-Date: 2024-09-08 12:45-0400\n"
"PO-Revision-Date: 2025-04-03 18:43-0400\n" "PO-Revision-Date: 2024-09-08 12:46-0400\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: dev@ayakael.net\n" "Language-Team: dev@ayakael.net\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n" "X-Generator: Poedit 3.4.3\n"
#. type: Content of: <p><div><div><div><h5> #. type: Content of: <p><div><div><div><h5>
msgid "Support" msgid "Support"
msgstr "Soutien" msgstr "Soutient"
#. type: Content of: <p><div><div><div><ul><li> #. type: Content of: <p><div><div><div><ul><li>
msgid "[[FAQs|https://support.ilot.io/en/hc/706927618]]" msgid "[[FAQs|https://support.ilot.io/en/hc/706927618]]"
@ -31,7 +31,7 @@ msgstr "[[Problèmes connus|https://forge.ilot.io/ilot/-/projects/3]]"
#. type: Content of: <p><div><div><div><ul><li> #. type: Content of: <p><div><div><div><ul><li>
msgid "[[Support ticket|https://support.ilot.io/help/706927618]]" msgid "[[Support ticket|https://support.ilot.io/help/706927618]]"
msgstr "[[Soutien technique|https://support.ilot.io/help/706927618]]" msgstr "[[Soutient technique|https://support.ilot.io/help/706927618]]"
#. type: Content of: <p><div><div><div><h5> #. type: Content of: <p><div><div><div><h5>
msgid "Contribute" msgid "Contribute"
@ -41,10 +41,6 @@ msgstr "Contribuer"
msgid "[[Become a member|join]]" msgid "[[Become a member|join]]"
msgstr "[[Devenir membre|join]]" msgstr "[[Devenir membre|join]]"
#. type: Content of: <p><div><div><div><ul><li><li>
msgid "[[Donate|https://opencollective.com/ilot]]"
msgstr "[[Faire un don|https://opencollective.com/ilot]]"
#. type: Content of: <p><div><div><div><ul><li><li> #. type: Content of: <p><div><div><div><ul><li><li>
msgid "[[Git Forge|https://forge.ilot.io/ilot/-/projects]]" msgid "[[Git Forge|https://forge.ilot.io/ilot/-/projects]]"
msgstr "[[Forge Git|https://forge.ilot.io/ilot/-/projects]]" msgstr "[[Forge Git|https://forge.ilot.io/ilot/-/projects]]"
@ -77,18 +73,10 @@ msgstr "Nouvelles"
msgid "Subscribe to our [[newsletter|https://notif.ilot.io/archive]]" msgid "Subscribe to our [[newsletter|https://notif.ilot.io/archive]]"
msgstr "S'abonner à notre [[liste de diffusion|https://notif.ilot.io/archive]]" msgstr "S'abonner à notre [[liste de diffusion|https://notif.ilot.io/archive]]"
#. type: Content of: <p><div><div><div><form><script>
msgid ""
"document.addEventListener('keydown', function (event) { if (event.keyCode "
"=== 13 && event.target.nodeName === 'INPUT') { var form = event.target.form; "
"var index = Array.prototype.indexOf.call(form, event.target); form."
"elements[index + 1].focus(); event.preventDefault(); } });"
msgstr ""
#. type: Content of: <p><div><div><div><form> #. type: Content of: <p><div><div><div><form>
msgid "" msgid ""
"<input type=\"hidden\" name=\"nonce\" /> <input id=\"39425\" type=\"hidden\" " "<input type=\"hidden\" name=\"nonce\" /> <input id=\"9c490\" type=\"hidden\" "
"name=\"l\" value=\"39425113-44b5-46f7-9897-91151467b05f\" />" "name=\"l\" value=\"9c490957-b50b-4162-898d-92259e350cd6\" />"
msgstr "" msgstr ""
#. type: Content of: <p><div><div><div><form><div> #. type: Content of: <p><div><div><div><form><div>
@ -101,33 +89,11 @@ msgstr ""
#. type: Content of: <p><div><div><div><form> #. type: Content of: <p><div><div><div><form>
msgid "" msgid ""
"<button aria-label=\"Subscribe\" class=\"btn\" type=\"button\" data-bs-" "<button aria-label=\"Subscribe\" class=\"btn\" type=\"submit\">Subscribe</"
"toggle=\"modal\" data-bs-target=\"#hcaptchamodal\">Subscribe</button>" "button>"
msgstr "" msgstr ""
"<button aria-label=\"Subscribe\" class=\"btn\" type=\"button\" data-bs-" "<button aria-label=\"Subscribe\" class=\"btn\" type=\"submit\">S'abonner</"
"toggle=\"modal\" data-bs-target=\"#hcaptchamodal\">S'abonner</button>" "button>"
#. type: Content of: <p><div><div><div><form><div><div><div><div><h5>
msgid "Are you a robot?"
msgstr "Êtes-vous un robot?"
#. type: Content of: <p><div><div><div><form><div><div><div><div>
msgid ""
"<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-"
"label=\"Close\"></button>"
msgstr ""
"<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-"
"label=\"Fermer\"></button>"
#. type: Content of: <p><div><div><div><form><div><div><div><div>
msgid ""
"<button type=\"button\" class=\"btn btn-secondary\" data-bs-"
"dismiss=\"modal\">Close</button> <button aria-label=\"Subscribe\" "
"class=\"btn\" type=\"submit\">Subscribe</button>"
msgstr ""
"<button type=\"button\" class=\"btn btn-secondary\" data-bs-"
"dismiss=\"modal\">Fermer</button> <button aria-label=\"Subscribe\" "
"class=\"btn\" type=\"submit\">S'abonner</button>"
#, fuzzy #, fuzzy
#~| msgid "[[Wiki|https://wiki.ilot.io]]" #~| msgid "[[Wiki|https://wiki.ilot.io]]"

47
content/footer.html Normal file
View file

@ -0,0 +1,47 @@
<p class="text-muted">
<div class="container">
<div class="row">
<div class="col-sm-3">
<h5>Support</h5>
<ul>
<li>[[FAQs|https://support.ilot.io/en/hc/706927618]]</li>
<li>[[Known issues|https://forge.ilot.io/ilot/-/projects/3]]</li>
<li>[[Support ticket|https://support.ilot.io/help/706927618]]</li>
</ul>
</div>
<div class="col-sm-3">
<h5>Contribute</h5>
<ul>
<li>[[Become a member|join]]
<li>[[Git Forge|https://forge.ilot.io/ilot/-/projects]]</li>
<li>[[Wiki|https://wiki.ilot.io]]</li>
</ul>
</div>
<div class="col-sm-3">
<h5>About us</h5>
<ul>
<li>[[Code of conduct|meta/code-of-conduct]]</li>
<li>[[Licenses|meta/license]]</li>
<li>[[Network Status|https://status.ilot.io/status/ilot]]</li>
</div>
<div class="col-sm-3 listmonk-form">
<h5>News</h5>
<p>Subscribe to our [[newsletter|https://notif.ilot.io/archive]]</p>
<form method="post" action="https://notif.ilot.io/subscription/form" class="listmonk-form">
<input type="hidden" name="nonce" />
<input id="9c490" type="hidden" name="l" value="9c490957-b50b-4162-898d-92259e350cd6" />
<div class="t">
<input aria-label="Email" class="btn" type="email" name="email" required placeholder="E-mail" />
</div>
<button aria-label="Subscribe" class="btn" type="submit">Subscribe</button>
</form>
</div>
</div>
</div>
</p>

View file

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-03-13 17:50-0400\n" "POT-Creation-Date: 2024-09-08 12:45-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -40,10 +40,6 @@ msgstr ""
msgid "[[Become a member|join]]" msgid "[[Become a member|join]]"
msgstr "" msgstr ""
#. type: Content of: <p><div><div><div><ul><li><li>
msgid "[[Donate|https://opencollective.com/ilot]]"
msgstr ""
#. type: Content of: <p><div><div><div><ul><li><li> #. type: Content of: <p><div><div><div><ul><li><li>
msgid "[[Git Forge|https://forge.ilot.io/ilot/-/projects]]" msgid "[[Git Forge|https://forge.ilot.io/ilot/-/projects]]"
msgstr "" msgstr ""
@ -76,18 +72,10 @@ msgstr ""
msgid "Subscribe to our [[newsletter|https://notif.ilot.io/archive]]" msgid "Subscribe to our [[newsletter|https://notif.ilot.io/archive]]"
msgstr "" msgstr ""
#. type: Content of: <p><div><div><div><form><script>
msgid ""
"document.addEventListener('keydown', function (event) { if (event.keyCode "
"=== 13 && event.target.nodeName === 'INPUT') { var form = event.target.form; "
"var index = Array.prototype.indexOf.call(form, event.target); "
"form.elements[index + 1].focus(); event.preventDefault(); } });"
msgstr ""
#. type: Content of: <p><div><div><div><form> #. type: Content of: <p><div><div><div><form>
msgid "" msgid ""
"<input type=\"hidden\" name=\"nonce\" /> <input id=\"981a0\" type=\"hidden\" " "<input type=\"hidden\" name=\"nonce\" /> <input id=\"9c490\" type=\"hidden\" "
"name=\"l\" value=\"981a06b2-c76b-41d0-be19-f6092c4e91cd\" />" "name=\"l\" value=\"9c490957-b50b-4162-898d-92259e350cd6\" />"
msgstr "" msgstr ""
#. type: Content of: <p><div><div><div><form><div> #. type: Content of: <p><div><div><div><form><div>
@ -98,24 +86,6 @@ msgstr ""
#. type: Content of: <p><div><div><div><form> #. type: Content of: <p><div><div><div><form>
msgid "" msgid ""
"<button aria-label=\"Subscribe\" class=\"btn\" type=\"button\" " "<button aria-label=\"Subscribe\" class=\"btn\" "
"data-bs-toggle=\"modal\" " "type=\"submit\">Subscribe</button>"
"data-bs-target=\"#hcaptchamodal\">Subscribe</button>"
msgstr ""
#. type: Content of: <p><div><div><div><form><div><div><div><div><h5>
msgid "Are you a robot?"
msgstr ""
#. type: Content of: <p><div><div><div><form><div><div><div><div>
msgid ""
"<button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" "
"aria-label=\"Close\"></button>"
msgstr ""
#. type: Content of: <p><div><div><div><form><div><div><div><div>
msgid ""
"<button type=\"button\" class=\"btn btn-secondary\" "
"data-bs-dismiss=\"modal\">Close</button> <button aria-label=\"Subscribe\" "
"class=\"btn\" type=\"submit\">Subscribe</button>"
msgstr "" msgstr ""

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View file

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

View file

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

View file

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 103 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View file

Before

Width:  |  Height:  |  Size: 6 KiB

After

Width:  |  Height:  |  Size: 6 KiB

View file

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

View file

@ -6,14 +6,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ilot.io\n" "Project-Id-Version: ilot.io\n"
"POT-Creation-Date: 2024-09-08 12:28-0400\n" "POT-Creation-Date: 2024-09-08 12:28-0400\n"
"PO-Revision-Date: 2025-04-03 18:45-0400\n" "PO-Revision-Date: 2024-09-08 12:33-0400\n"
"Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n" "Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
"Language-Team: dev@ayakael.net\n" "Language-Team: dev@ayakael.net\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n" "X-Generator: Poedit 3.4.3\n"
#. type: Plain text #. type: Plain text
#, no-wrap #, no-wrap
@ -46,8 +46,8 @@ msgid ""
"our data, and manage our shared technologies. Members also provide the labor " "our data, and manage our shared technologies. Members also provide the labor "
"to run ilot at all levels." "to run ilot at all levels."
msgstr "" msgstr ""
"[[ilot|https://ilot.io]] est une ile coopérative de l'internet. Nous " "[[ilot|https://ilot.io]] est une isle coopérative de l'internet. Nous "
"administrons une instance de Nextcloud, une plateforme libre de travail et " "administrons une instance de Nextcloud, une plateformes libre de travail et "
"de stockage de donnée analogue à Google Drive. Notre objectif est de nous " "de stockage de donnée analogue à Google Drive. Notre objectif est de nous "
"constituer en coopérative afin de créer une infrastructure numérique par et " "constituer en coopérative afin de créer une infrastructure numérique par et "
"pour ses utilisateur-ice-s, en alternative à l'internet cloisonné et " "pour ses utilisateur-ice-s, en alternative à l'internet cloisonné et "
@ -66,8 +66,8 @@ msgstr ""
"Le projet est actuellement en version bêta, car il reste encore beaucoup de " "Le projet est actuellement en version bêta, car il reste encore beaucoup de "
"travail à faire. Alors que l'infrastructure technique est mise en place et " "travail à faire. Alors que l'infrastructure technique est mise en place et "
"stable, la gouvernance et les lignes directrices de la communauté sont " "stable, la gouvernance et les lignes directrices de la communauté sont "
"encore en cours d'élaboration. Si vous souhaitez vous joindre à notre " "encore en cours d'élaboration. Si vous souhaitez rejoindre ilot, visitez "
"projet, compléter notre [[formulaire d'inscription|join]]." "notre [[formulaire d'inscription|join]]."
#. type: Plain text #. type: Plain text
msgid "" msgid ""

View file

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-09-11 14:44-0400\n" "POT-Creation-Date: 2024-09-08 12:30-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

BIN
content/join.fr.mo Normal file

Binary file not shown.

View file

@ -7,20 +7,19 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ilot.io\n" "Project-Id-Version: ilot.io\n"
"POT-Creation-Date: 2025-04-03 18:26-0400\n" "POT-Creation-Date: 2024-08-09 21:13-0400\n"
"PO-Revision-Date: 2025-04-03 18:47-0400\n" "PO-Revision-Date: 2024-08-09 21:14-0400\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: dev@ayakael.net\n" "Language-Team: dev@ayakael.net\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n" "X-Generator: Poedit 3.4.3\n"
#. type: Content of: outside any tag (error?) #. type: Content of: outside any tag (error?)
msgid "[[!meta title=\"Join\"]] [[!inline pages=\"join/join-en\" raw=\"yes\"]]" msgid "[[!meta title=\"Join\"]]"
msgstr "" msgstr "[[!meta title=\"Se joindre\"]]"
"[[!meta title=\"Se joindre\"]] [[!inline pages=\"join/join-fr\" raw=\"yes\"]]"
#. type: Content of: <header><h1> #. type: Content of: <header><h1>
msgid "Registration Form" msgid "Registration Form"
@ -55,15 +54,19 @@ msgstr ""
msgid "Basic Info:" msgid "Basic Info:"
msgstr "Informations de base:" msgstr "Informations de base:"
#. type: Content of: <hr><div><div><form><div><input> #. type: Content of: <hr><div><div><form><div><input><input>
msgid "" msgid ""
"<label for=\"name\">Name <i>(optional)</i></label> <input id=\"name\" " "<label for=\"name\">Name <i>(optional)</i></label> <input id=\"name\" "
"name=\"name\" type=\"text\" maxlength=\"40\">" "name=\"name\" type=\"text\" maxlength=\"40\"> <label for=\"emptyfield\">This "
"should be left unchanged</label> <input id=\"emptyfield\" "
"name=\"emptyfield\" type=\"text\" maxlength=\"40\">"
msgstr "" msgstr ""
"<label for=\"name\">Nom <i>(optionnel)</i></label> <input id=\"name\" " "<label for=\"name\">Nom <i>(optionnel)</i></label> <input id=\"name\" "
"name=\"name\" type=\"text\" maxlength=\"40\">" "name=\"name\" type=\"text\" maxlength=\"40\"> <label "
"for=\"emptyfield\">Veuillez ne pas écrire dans cette espace</label> <input "
"id=\"emptyfield\" name=\"emptyfield\" type=\"text\" maxlength=\"40\">"
#. type: Content of: <hr><div><div><form><div><input><p> #. type: Content of: <hr><div><div><form><div><input><input><p>
msgid "" msgid ""
"<label for=\"email\">Contact email address</label> <input id=\"email\" " "<label for=\"email\">Contact email address</label> <input id=\"email\" "
"name=\"email\" type=\"email\" required></p>" "name=\"email\" type=\"email\" required></p>"
@ -105,34 +108,10 @@ msgid ""
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><h2> #. type: Content of: <hr><div><div><form><h2>
msgid "Open Collective:"
msgstr ""
#. type: Content of: <hr><div><div><form><p>
msgid ""
"Contributing through [[Open Collective|https://opencollective.com/ilot]] is "
"a strongly encouraged. We use this platform to manage our finances, thus "
"applicants must have an existing Open Collective profile, which can be set "
"up [[here|https://opencollective.com/create-account]]."
msgstr ""
"Faire une contribution à travers [[Open Collective|https://opencollective."
"com/ilot]] est fortement encouragé. Nous utilisons cette plateforme pour "
"gérer nos finances. Or, vous devez avoir un profil Open Collective, qui peut "
"être créé [[ici|https://opencollective.com/create-account]]."
#. type: Content of: <hr><div><div><form><p>
msgid ""
"<label for=\"oc-user\">Link to your OpenCollective profile</label> <input "
"id=\"oc-user\" name=\"oc-user\" type=\"text\" required maxlength=\"50\"></p>"
msgstr ""
"<label for=\"oc-user\">Lien de votre profil Open Collective</label> <input "
"id=\"oc-user\" name=\"oc-user\" type=\"text\" required maxlength=\"50\"></p>"
#. type: Content of: <hr><div><div><form><p><h2>
msgid "Code of Conduct:" msgid "Code of Conduct:"
msgstr "Code de conduite:" msgstr "Code de conduite:"
#. type: Content of: <hr><div><div><form><p><p> #. type: Content of: <hr><div><div><form><p>
msgid "" msgid ""
"New members must also agree to our [[Code of Conduct|meta/code-of-conduct]] " "New members must also agree to our [[Code of Conduct|meta/code-of-conduct]] "
"and must be over the age of consent." "and must be over the age of consent."
@ -140,7 +119,7 @@ msgstr ""
"Les nouveaux membres doivent également accepter notre [[Code de conduite|" "Les nouveaux membres doivent également accepter notre [[Code de conduite|"
"meta/code-de-conduite]] et doivent avoir atteint l'âge du consentement." "meta/code-de-conduite]] et doivent avoir atteint l'âge du consentement."
#. type: Content of: <hr><div><div><form><p><p> #. type: Content of: <hr><div><div><form><p>
msgid "" msgid ""
"<input type=\"checkbox\" id=\"agree-to-terms\" name=\"agree-to-terms\" " "<input type=\"checkbox\" id=\"agree-to-terms\" name=\"agree-to-terms\" "
"value=\"agree-to-terms\" required> I am over 18, and have read, understood " "value=\"agree-to-terms\" required> I am over 18, and have read, understood "
@ -155,7 +134,7 @@ msgstr ""
"résumé du code ; n'oubliez pas de consulter le code complet en cliquant sur " "résumé du code ; n'oubliez pas de consulter le code complet en cliquant sur "
"le lien.</p>" "le lien.</p>"
#. type: Content of: <hr><div><div><form><p><p><p> #. type: Content of: <hr><div><div><form><p><p>
msgid "" msgid ""
"The Code of Conduct is a living document that outlines acceptable behaviour " "The Code of Conduct is a living document that outlines acceptable behaviour "
"when members use ilot's Nextcloud and all other spaces governed by the co-" "when members use ilot's Nextcloud and all other spaces governed by the co-"
@ -172,7 +151,7 @@ msgstr ""
"l'honnêteté, l'ouverture, la responsabilité sociale et l'attention portée " "l'honnêteté, l'ouverture, la responsabilité sociale et l'attention portée "
"aux autres. Nous suivons également les autres principes coopératifs de l'ACI." "aux autres. Nous suivons également les autres principes coopératifs de l'ACI."
#. type: Content of: <hr><div><div><form><p><p><p> #. type: Content of: <hr><div><div><form><p><p>
msgid "" msgid ""
"We welcome anyone able to use our services and willing to accept the " "We welcome anyone able to use our services and willing to accept the "
"responsibilities of membership, regardless of qualities such as gender " "responsibilities of membership, regardless of qualities such as gender "
@ -189,7 +168,7 @@ msgstr ""
"économique, la structure familiale, la spiritualité, la religion (ou " "économique, la structure familiale, la spiritualité, la religion (ou "
"l'absence de religion), l'éducation ou d'autres traits personnels." "l'absence de religion), l'éducation ou d'autres traits personnels."
#. type: Content of: <hr><div><div><form><p><p><p> #. type: Content of: <hr><div><div><form><p><p>
msgid "" msgid ""
"We particularly celebrate diversity and do not tolerate bigotry, prejudice " "We particularly celebrate diversity and do not tolerate bigotry, prejudice "
"or supremacy of any kind. Diverse opinions on politics, religion, and other " "or supremacy of any kind. Diverse opinions on politics, religion, and other "
@ -205,11 +184,11 @@ msgstr ""
"modérateurs prendront des mesures à l'égard des messages qui contreviennent " "modérateurs prendront des mesures à l'égard des messages qui contreviennent "
"à ce code de conduite." "à ce code de conduite."
#. type: Content of: <hr><div><div><form><p><p><h2> #. type: Content of: <hr><div><div><form><p><h2>
msgid "Are you a robot?" msgid "Are you a robot?"
msgstr "Êtes-vous un robot ?" msgstr "Êtes-vous un robot ?"
#. type: Content of: <hr><div><div><form><p><p><p> #. type: Content of: <hr><div><div><form><p><p>
msgid "" msgid ""
"<label for=\"math-spam-trap\">What is two plus seven?</label> <input " "<label for=\"math-spam-trap\">What is two plus seven?</label> <input "
"id=\"math-spam-trap\" name=\"math-spam-trap\" type=\"text\" required " "id=\"math-spam-trap\" name=\"math-spam-trap\" type=\"text\" required "
@ -221,81 +200,6 @@ msgstr ""
"maxlength=\"50\"></p> <input type=\"button\" value=\"Soumettre\" id = " "maxlength=\"50\"></p> <input type=\"button\" value=\"Soumettre\" id = "
"\"submit\" onClick = \"createIssue()\"> </form>" "\"submit\" onClick = \"createIssue()\"> </form>"
#~ msgid "[[!meta title=\"Join\"]]"
#~ msgstr "[[!meta title=\"Se joindre\"]]"
#~ msgid ""
#~ "async function checkDuplicate() { var url='https://lab.ilot.io/api/v4/"
#~ "projects/99/issues'; var email = document.getElementById(\"email\")."
#~ "value; const response = await fetch(url, { headers: { 'PRIVATE-TOKEN': "
#~ "'glpat-RaoZSW_3XMhkGr19k6Wv', 'Content-Type': 'application/json', }, }) "
#~ "const result = await response.json(); let index = result .findIndex(item "
#~ "=> item.title === email); if (index !== -1) { return true; } else "
#~ "{ return false; } } async function createIssue() { var baseurl = 'https://"
#~ "lab.ilot.io/api/v4/projects/99/issues?&labels=Request'; var mathspamtrap "
#~ "= document.getElementById(\"math-spam-trap\").value; var agreetoterms = "
#~ "document.getElementById(\"agree-to-terms\").checked; var email = document."
#~ "getElementById(\"email\").value; if(!agreetoterms) { alert(\"Registration "
#~ "requires agreement of Code of Conduct\"); return false; } if(!email) "
#~ "{ alert(\"Email cannot be empty\"); return false; } if(mathspamtrap != "
#~ "\"9\") { alert(\"Wrong math answer\"); return false; } if(await "
#~ "checkDuplicate(email) === true) { alert(\"This email address has already "
#~ "requested an account\"); return false; } var name = document."
#~ "getElementById(\"name\").value; var name = name.replace (/^/,'Name: '); "
#~ "var aboutme = document.getElementById(\"about-me\").value; var aboutme = "
#~ "aboutme.replace (/^/,'About me: '); var aboutme = aboutme.replace(/\\r?"
#~ "\\n/g, \"%0A%0A\"); var howfound = document.getElementById(\"how-found\")."
#~ "value; var howfound = howfound.replace (/^/,'How I found ilot: '); var "
#~ "howfound = howfound.replace(/\\r?\\n/g, \"%0A%0A\"); var ocuser = "
#~ "document.getElementById(\"oc-user\").value; var ocuser = ocuser.replace (/"
#~ "^/,'OpenCollective Profile: '); var description = name + \"%0A%0A\" + "
#~ "aboutme + \"%0A%0A\" + howfound + \"%0A%0A\" + ocuser; var url = baseurl."
#~ "concat(\"&title=\", email, \"&description=\", description); console."
#~ "log('Description:', description); fetch(url, { method: 'POST', headers: "
#~ "{ 'PRIVATE-TOKEN': 'glpat-RaoZSW_3XMhkGr19k6Wv', 'Content-Type': "
#~ "'application/json', }, }) .then(response => response.json()) ."
#~ "then(result => { console.log('Success:', result); alert(\"Request "
#~ "submitted. A working group member will process your registration shortly. "
#~ "If you receive no contact within seven days of registration, please send "
#~ "an email to support@ilot.io\"); }) .catch(error => { console."
#~ "error('Error:', error) }); }"
#~ msgstr ""
#~ "async function checkDuplicate() { var url='https://lab.ilot.io/api/v4/"
#~ "projects/99/issues'; var email = document.getElementById(\"email\")."
#~ "value; const response = await fetch(url, { headers: { 'PRIVATE-TOKEN': "
#~ "'glpat-RaoZSW_3XMhkGr19k6Wv', 'Content-Type': 'application/json', }, }) "
#~ "const result = await response.json(); let index = result .findIndex(item "
#~ "=> item.title === email); if (index !== -1) { return true; } else "
#~ "{ return false; } } async function createIssue() { var baseurl = 'https://"
#~ "lab.ilot.io/api/v4/projects/99/issues?&labels=Request'; var mathspamtrap "
#~ "= document.getElementById(\"math-spam-trap\").value; var agreetoterms = "
#~ "document.getElementById(\"agree-to-terms\").checked; var email = document."
#~ "getElementById(\"email\").value; if(!agreetoterms) { alert(\"Registration "
#~ "requires agreement of Code of Conduct\"); return false; } if(!email) "
#~ "{ alert(\"Courriel ne peut pas être vide\"); return false; } "
#~ "if(mathspamtrap != \"9\") { alert(\"Mauvaise réponse mathématique\"); "
#~ "return false; } if(await checkDuplicate(email) === true) { alert(\"Ce "
#~ "courriel a déjà fait une demande de compte\"); return false; } var name = "
#~ "document.getElementById(\"name\").value; var name = name.replace (/"
#~ "^/,'Name: '); var aboutme = document.getElementById(\"about-me\").value; "
#~ "var aboutme = aboutme.replace (/^/,'About me: '); var aboutme = aboutme."
#~ "replace(/\\r?\\n/g, \"%0A%0A\"); var howfound = document."
#~ "getElementById(\"how-found\").value; var howfound = howfound.replace (/"
#~ "^/,'How I found ilot: '); var howfound = howfound.replace(/\\r?\\n/g, "
#~ "\"%0A%0A\"); var ocuser = document.getElementById(\"oc-user\").value; var "
#~ "ocuser = ocuser.replace (/^/,'OpenCollective Profile: '); var description "
#~ "= name + \"%0A%0A\" + aboutme + \"%0A%0A\" + howfound + \"%0A%0A\" + "
#~ "ocuser; var url = baseurl.concat(\"&title=\", email, \"&description=\", "
#~ "description); console.log('Description:', description); fetch(url, "
#~ "{ method: 'POST', headers: { 'PRIVATE-TOKEN': 'glpat-"
#~ "RaoZSW_3XMhkGr19k6Wv', 'Content-Type': 'application/json', }, }) ."
#~ "then(response => response.json()) .then(result => { console."
#~ "log('Success:', result); alert(\"Demande soumise. Un membre du groupe de "
#~ "travail traitera votre inscription dans les plus brefs délais. Si vous "
#~ "n'êtes pas contacté dans les sept jours suivant votre inscription, "
#~ "veuillez envoyer un courriel à support@ilot.io.\"); }) .catch(error => "
#~ "{ console.error('Error:', error) }); }"
#~ msgid "alert(\"Email cannot be empty\")" #~ msgid "alert(\"Email cannot be empty\")"
#~ msgstr "alert(\"Le courriel ne peut pas être vide\")" #~ msgstr "alert(\"Le courriel ne peut pas être vide\")"

View file

@ -1,6 +1,6 @@
[[!meta title="Join"]] [[!meta title="Join"]]
[[!inline pages="join/join-en" raw="yes"]] <script src=/join.js></script>
<header class="text-center"> <header class="text-center">
<h1 class="post-title">Registration Form</h1> <h1 class="post-title">Registration Form</h1>
@ -20,6 +20,8 @@
<div class="formgroup"> <div class="formgroup">
<label for="name">Name <i>(optional)</i></label> <label for="name">Name <i>(optional)</i></label>
<input id="name" name="name" type="text" maxlength="40"> <input id="name" name="name" type="text" maxlength="40">
<label for="emptyfield">This should be left unchanged</label>
<input id="emptyfield" name="emptyfield" type="text" maxlength="40">
<p><label for="email">Contact email address</label> <p><label for="email">Contact email address</label>
<input id="email" name="email" type="email" required></p> <input id="email" name="email" type="email" required></p>
@ -31,10 +33,13 @@
<p>How did you find out about ilot? We want to better understand how people are finding us.</p> <p>How did you find out about ilot? We want to better understand how people are finding us.</p>
<p><textarea id="how-found" name="how-found" rows="10" maxlength="500"></textarea></p> <p><textarea id="how-found" name="how-found" rows="10" maxlength="500"></textarea></p>
<!-- Hide until we get an OpenCollective account going
<h2 id="open-collective">Open Collective:</h2> <h2 id="open-collective">Open Collective:</h2>
<p>Contributing through [[Open Collective|https://opencollective.com/ilot]] is a strongly encouraged. We use this platform to manage our finances, thus applicants must have an existing Open Collective profile, which can be set up [[here|https://opencollective.com/create-account]].</p> <p>Contributing through [[Open Collective|https://opencollective.com/ilotio]] is a condition
of membership, so applicants must have an existing Open Collective profile, which can be set up [[here|https://opencollective.com/create-account]].</p>
<p><label for="oc-user">Link to your OpenCollective profile</label> <p><label for="oc-user">Link to your OpenCollective profile</label>
<input id="oc-user" name="oc-user" type="text" required maxlength="50"></p> <input id="oc-user" name="oc-user" type="text" required maxlength="50"></p>
-->
<h2 id="code-of-conduct">Code of Conduct:</h2> <h2 id="code-of-conduct">Code of Conduct:</h2>
<p>New members must also agree to our [[Code of Conduct|meta/code-of-conduct]] and must be over the age of consent.</p> <p>New members must also agree to our [[Code of Conduct|meta/code-of-conduct]] and must be over the age of consent.</p>

View file

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-04-03 18:27-0400\n" "POT-Creation-Date: 2024-09-08 10:20-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#. type: Content of: outside any tag (error?) #. type: Content of: outside any tag (error?)
msgid "[[!meta title=\"Join\"]] [[!inline pages=\"join/join-en\" raw=\"yes\"]]" msgid "[[!meta title=\"Join\"]]"
msgstr "" msgstr ""
#. type: Content of: <header><h1> #. type: Content of: <header><h1>
@ -44,13 +44,15 @@ msgstr ""
msgid "Basic Info:" msgid "Basic Info:"
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><div><input> #. type: Content of: <hr><div><div><form><div><input><input>
msgid "" msgid ""
"<label for=\"name\">Name <i>(optional)</i></label> <input id=\"name\" " "<label for=\"name\">Name <i>(optional)</i></label> <input id=\"name\" "
"name=\"name\" type=\"text\" maxlength=\"40\">" "name=\"name\" type=\"text\" maxlength=\"40\"> <label for=\"emptyfield\">This "
"should be left unchanged</label> <input id=\"emptyfield\" "
"name=\"emptyfield\" type=\"text\" maxlength=\"40\">"
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><div><input><p> #. type: Content of: <hr><div><div><form><div><input><input><p>
msgid "" msgid ""
"<label for=\"email\">Contact email address</label> <input id=\"email\" " "<label for=\"email\">Contact email address</label> <input id=\"email\" "
"name=\"email\" type=\"email\" required></p>" "name=\"email\" type=\"email\" required></p>"
@ -83,34 +85,16 @@ msgid ""
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><h2> #. type: Content of: <hr><div><div><form><h2>
msgid "Open Collective:"
msgstr ""
#. type: Content of: <hr><div><div><form><p>
msgid ""
"Contributing through [[Open Collective|https://opencollective.com/ilot]] is "
"a strongly encouraged. We use this platform to manage our finances, thus "
"applicants must have an existing Open Collective profile, which can be set "
"up [[here|https://opencollective.com/create-account]]."
msgstr ""
#. type: Content of: <hr><div><div><form><p>
msgid ""
"<label for=\"oc-user\">Link to your OpenCollective profile</label> <input "
"id=\"oc-user\" name=\"oc-user\" type=\"text\" required maxlength=\"50\"></p>"
msgstr ""
#. type: Content of: <hr><div><div><form><p><h2>
msgid "Code of Conduct:" msgid "Code of Conduct:"
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><p><p> #. type: Content of: <hr><div><div><form><p>
msgid "" msgid ""
"New members must also agree to our [[Code of Conduct|meta/code-of-conduct]] " "New members must also agree to our [[Code of Conduct|meta/code-of-conduct]] "
"and must be over the age of consent." "and must be over the age of consent."
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><p><p> #. type: Content of: <hr><div><div><form><p>
msgid "" msgid ""
"<input type=\"checkbox\" id=\"agree-to-terms\" name=\"agree-to-terms\" " "<input type=\"checkbox\" id=\"agree-to-terms\" name=\"agree-to-terms\" "
"value=\"agree-to-terms\" required> I am over 18, and have read, understood " "value=\"agree-to-terms\" required> I am over 18, and have read, understood "
@ -119,7 +103,7 @@ msgid ""
"sure to review the full Code via the link.</p>" "sure to review the full Code via the link.</p>"
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><p><p><p> #. type: Content of: <hr><div><div><form><p><p>
msgid "" msgid ""
"The Code of Conduct is a living document that outlines acceptable behaviour " "The Code of Conduct is a living document that outlines acceptable behaviour "
"when members use ilot's Nextcloud and all other spaces governed by the " "when members use ilot's Nextcloud and all other spaces governed by the "
@ -129,7 +113,7 @@ msgid ""
"follow the rest of the ICA co-op principles." "follow the rest of the ICA co-op principles."
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><p><p><p> #. type: Content of: <hr><div><div><form><p><p>
msgid "" msgid ""
"We welcome anyone able to use our services and willing to accept the " "We welcome anyone able to use our services and willing to accept the "
"responsibilities of membership, regardless of qualities such as gender " "responsibilities of membership, regardless of qualities such as gender "
@ -139,7 +123,7 @@ msgid ""
"(or lack thereof), education, or other personal traits." "(or lack thereof), education, or other personal traits."
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><p><p><p> #. type: Content of: <hr><div><div><form><p><p>
msgid "" msgid ""
"We particularly celebrate diversity and do not tolerate bigotry, prejudice " "We particularly celebrate diversity and do not tolerate bigotry, prejudice "
"or supremacy of any kind. Diverse opinions on politics, religion, and other " "or supremacy of any kind. Diverse opinions on politics, religion, and other "
@ -149,11 +133,11 @@ msgid ""
"Code of Conduct." "Code of Conduct."
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><p><p><h2> #. type: Content of: <hr><div><div><form><p><h2>
msgid "Are you a robot?" msgid "Are you a robot?"
msgstr "" msgstr ""
#. type: Content of: <hr><div><div><form><p><p><p> #. type: Content of: <hr><div><div><form><p><p>
msgid "" msgid ""
"<label for=\"math-spam-trap\">What is two plus seven?</label> <input " "<label for=\"math-spam-trap\">What is two plus seven?</label> <input "
"id=\"math-spam-trap\" name=\"math-spam-trap\" type=\"text\" required " "id=\"math-spam-trap\" name=\"math-spam-trap\" type=\"text\" required "

View file

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View file

@ -8,14 +8,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ilot.io\n" "Project-Id-Version: ilot.io\n"
"POT-Creation-Date: 2024-09-08 12:48-0400\n" "POT-Creation-Date: 2024-09-08 12:48-0400\n"
"PO-Revision-Date: 2025-04-03 18:49-0400\n" "PO-Revision-Date: 2024-09-08 12:49-0400\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: dev@ayakael.net\n" "Language-Team: dev@ayakael.net\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.5\n" "X-Generator: Poedit 3.4.3\n"
#. type: Plain text #. type: Plain text
#, no-wrap #, no-wrap
@ -56,7 +56,7 @@ msgid ""
"management of the other platforms, and they are here to give you an overview " "management of the other platforms, and they are here to give you an overview "
"of our infrastructure." "of our infrastructure."
msgstr "" msgstr ""
"Les plateformes suivantes ont plutôt un rôle de soutien. Elles permettent " "Les plates-formes suivantes ont plutôt un rôle de soutien. Elles permettent "
"une meilleure gestion des autres plateformes et sont là pour vous donner une " "une meilleure gestion des autres plateformes et sont là pour vous donner une "
"vue d'ensemble de notre infrastructure." "vue d'ensemble de notre infrastructure."

View file

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-09-11 14:44-0400\n" "POT-Creation-Date: 2024-09-08 12:49-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"

View file

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

BIN
content/sidebar.fr.mo Normal file

Binary file not shown.

View file

@ -7,8 +7,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ilot.io\n" "Project-Id-Version: ilot.io\n"
"POT-Creation-Date: 2024-10-08 14:50-0400\n" "POT-Creation-Date: 2024-09-08 12:28-0400\n"
"PO-Revision-Date: 2024-10-08 15:08-0400\n" "PO-Revision-Date: 2024-09-08 12:32-0400\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: dev@ayakael.net\n" "Language-Team: dev@ayakael.net\n"
"Language: fr\n" "Language: fr\n"
@ -30,11 +30,15 @@ msgid "[[Join]]"
msgstr "[[Se joindre|join]]" msgstr "[[Se joindre|join]]"
#. type: Content of: <ul><li> #. type: Content of: <ul><li>
msgid "[[Your Files|https://ilot.io/apps/files]]" msgid ""
msgstr "[[Vos fichiers|https://ilot.io/apps/files]]" "<button class=\"btn sign-in\" onclick=\"window.location.href='https://ilot."
"io/apps/files';\"> Your Files </button>"
msgstr ""
"<button class=\"btn sign-in\" onclick=\"window.location.href='https://ilot."
"io/apps/files';\"> Vos fichiers </button>"
#~ msgid "<button class=\"btn sign-in\" onclick=\"window.location.href='https://ilot.io/apps/files';\"> Your Files </button>" #~ msgid "[[Archives|https://notif.ilot.io/archive]]"
#~ msgstr "<button class=\"btn sign-in\" onclick=\"window.location.href='https://ilot.io/apps/files';\"> Vos fichiers </button>" #~ msgstr "[[Archives|https://notif.ilot.io/archive]]"
#~ msgid "[[Support|https://support.ilot.io/en/hc/706927618]]" #~ msgid "[[Support|https://support.ilot.io/en/hc/706927618]]"
#~ msgstr "[[Aide|https://support.ilot.io/fr/hc/706927618]]" #~ msgstr "[[Aide|https://support.ilot.io/fr/hc/706927618]]"

11
content/sidebar.html Normal file
View file

@ -0,0 +1,11 @@
<!-- the anchors force ikiwiki to use a tags instead of spans. hopefully. -->
<ul class="nav navbar-nav navbar-right">
<li>[[Home|index]]</li>
<li>[[Platforms]]</li>
<li>[[Join]]</li>
<li>
<button class="btn sign-in" onclick="window.location.href='https://ilot.io/apps/files';">
Your Files
</button>
</li>
</ul>

View file

@ -7,7 +7,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-10-08 15:06-0400\n" "POT-Creation-Date: 2024-09-08 12:30-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -29,5 +29,8 @@ msgid "[[Join]]"
msgstr "" msgstr ""
#. type: Content of: <ul><li> #. type: Content of: <ul><li>
msgid "[[Your Files|https://ilot.io/apps/files]]" msgid ""
"<button class=\"btn sign-in\" "
"onclick=\"window.location.href='https://ilot.io/apps/files';\"> Your Files "
"</button>"
msgstr "" msgstr ""

1
content/wiki Submodule

@ -0,0 +1 @@
Subproject commit 4adabf9ab28b845adb2d6c701490b400a57be75a

View file

@ -1,596 +0,0 @@
/* ikiwiki style sheet */
/* Note that instead of modifying this style sheet, you can instead edit
* local.css and use it to override or change settings in this one.
*/
/* html5 compat */
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
display: block;
}
div.header, header.header {
margin: 0;
font-size: 140%;
font-weight: bold;
line-height: 1em;
display: block;
}
.inlineheader .author {
margin: 0;
font-size: 112%;
font-weight: bold;
display: block;
}
.actions ul {
margin: 0;
padding: 6px .4em;
height: 1em;
list-style-type: none;
}
.actions li {
display: inline;
padding: .2em;
}
.pageheader .actions ul {
border-bottom: 1px solid #000;
}
.inlinepage .actions ul {
border-bottom: 0;
}
#otherlanguages ul {
margin: 0;
padding: 6px;
list-style-type: none;
}
#otherlanguages li {
display: inline;
padding: .2em .4em;
}
.pageheader #otherlanguages {
border-bottom: 1px solid #000;
}
.inlinecontent,
.inlineenclosure {
margin-top: .4em;
}
.pagefooter,
.inlinefooter,
.comments {
clear: both;
}
#pageinfo {
margin: 1em 0;
border-top: 1px solid #000;
}
.tags {
margin-top: 1em;
}
.inlinepage .tags {
display: inline;
}
.mapparent {
text-decoration: none;
}
.img caption {
font-size: 80%;
caption-side: bottom;
text-align: center;
}
img.img {
margin: 0.5ex;
}
.align-left {
float:left;
}
.align-right {
float:right;
}
#backlinks {
margin-top: 1em;
}
#searchform {
display: inline;
float: right;
}
#editcontent {
width: 98%;
}
.editcontentdiv {
width: auto;
overflow: auto;
}
img {
border-style: none;
}
pre {
overflow: auto;
}
div.recentchanges {
border-style: solid;
border-width: 1px;
overflow: auto;
width: auto;
clear: none;
background: #eee;
color: black !important;
}
.recentchanges .metadata {
padding: 0px 0.5em;
}
.recentchanges .changelog {
font-style: italic;
clear: both;
display: block;
padding: 1px 2px;
background: white !important;
color: black !important;
}
.recentchanges .desc {
display: none;
}
.recentchanges .diff {
display: none;
}
.recentchanges .committer {
float: left;
margin: 0;
width: 40%;
}
.recentchanges .committype {
float: left;
margin: 0;
width: 5%;
font-size: small;
}
.recentchanges .changedate {
float: left;
margin: 0;
width: 35%;
font-size: small;
}
.recentchanges .pagelinks,
.recentchanges .revert {
float: right;
margin: 0;
width: 60%;
}
.blogform, #blogform {
padding: 10px 10px;
border: 1px solid #aaa;
background: #eee;
color: black !important;
width: auto;
overflow: auto;
}
.inlinepage {
padding: 10px 10px;
border: 1px solid #aaa;
overflow: auto;
}
.pagedate,
.pagelicense,
.pagecopyright {
font-style: italic;
display: block;
margin-top: 1em;
}
.archivepagedate {
font-style: italic;
}
.archivepage {
margin-bottom: 1em;
}
.error {
color: #C00;
}
.sidebar {
width: 20ex;
float: right;
margin-left: 4px;
margin-bottom: 4px;
margin-top: -1px;
padding: 0ex 2ex;
background: white;
border: 1px solid black;
color: black !important;
}
hr.poll {
height: 10pt;
color: white !important;
background: #eee;
border: 2px solid black;
}
div.poll {
margin-top: 1ex;
margin-bottom: 1ex;
padding: 1ex 1ex;
border: 1px solid #aaa;
}
span.color {
padding: 2px;
}
.comment-header,
.microblog-header {
font-style: italic;
margin-top: .3em;
}
.comment .author,
.microblog .author {
font-weight: bold;
}
.comment-subject {
font-weight: bold;
}
.comment-avatar {
float: right;
}
.comment {
border: 1px solid #aaa;
padding: 3px;
}
div.progress {
margin-top: 1ex;
margin-bottom: 1ex;
border: 1px solid #888;
width: 400px;
background: #eee;
color: black !important;
padding: 1px;
}
div.progress-done {
background: #ea6 !important;
color: black !important;
text-align: center;
padding: 1px;
}
/* things to hide in printouts */
@media print {
.actions { display: none; }
.tags { display: none; }
.trails { display: none; }
.feedbutton { display: none; }
#searchform { display: none; }
.blogform, #blogform { display: none; }
#backlinks { display: none; }
.addcomment { display: none; }
}
/* infobox template */
.infobox {
float: right;
margin-left: 2ex;
margin-top: 1ex;
margin-bottom: 1ex;
padding: 1ex 1ex;
border: 1px solid #aaa;
background: white;
color: black !important;
}
/* notebox template */
.notebox {
float: right;
margin-left: 2ex;
margin-top: 1ex;
margin-bottom: 1ex;
padding: 1ex 1ex;
border: 1px solid #aaa;
width: 25%;
background: white;
color: black !important;
}
/* popup template and backlinks hiding */
.popup {
border-bottom: 1px dotted #366;
color: #366;
}
.popup .balloon,
.popup .paren,
.popup .expand {
display: none;
text-align: left;
}
.popup:hover .balloon,
.popup:focus .balloon {
position: absolute;
display: inline;
margin: 1em 0 0 -2em;
padding: 0.625em;
border: 2px solid;
background-color: #dee;
color: black;
}
/* form styling */
fieldset {
margin: 1ex 0;
border: 1px solid black;
}
legend {
padding: 0 1ex;
}
.fb_submit {
float: left;
margin: 2px 0;
}
label.block {
display: block;
}
label.inline {
display: inline;
}
input#openid_identifier {
background: url(wikiicons/openidlogin-bg.gif) no-repeat;
background-color: #fff;
background-position: 0 50%;
color: #000;
padding-left: 18px;
}
input#searchbox {
background: url(wikiicons/search-bg.gif) no-repeat;
background-color: #fff;
background-position: 100% 50%;
color: #000;
padding-right: 16px;
}
/* invalid form fields */
.fb_invalid {
color: red;
background: white !important;
}
/* required form fields */
.fb_required {
font-weight: bold;
}
/* highlight plugin */
pre.hl { color:#000000; background-color:#ffffff; }
.hl.num { color:#2928ff; }
.hl.esc { color:#ff00ff; }
.hl.str { color:#ff0000; }
.hl.dstr { color:#818100; }
.hl.slc { color:#838183; font-style:italic; }
.hl.com { color:#838183; font-style:italic; }
.hl.dir { color:#008200; }
.hl.sym { color:#000000; }
.hl.line { color:#555555; }
.hl.mark { background-color:#ffffbb; }
.hl.kwa { color:#000000; font-weight:bold; }
.hl.kwb { color:#830000; }
.hl.kwc { color:#000000; font-weight:bold; }
.hl.kwd { color:#010181; }
/* calendar plugin */
.month-calendar-day-this-day,
.year-calendar-this-month {
background-color: #eee;
}
.month-calendar-day-head,
.month-calendar-day-nolink,
.month-calendar-day-link,
.month-calendar-day-this-day,
.month-calendar-day-future {
text-align: right;
}
.month-calendar-arrow A:link,
.year-calendar-arrow A:link,
.month-calendar-arrow A:visited,
.year-calendar-arrow A:visited {
text-decoration: none;
font-weight: normal;
font-size: 150%;
}
/* outlines */
li.L1 { list-style: upper-roman; }
li.L2 { list-style: decimal; }
li.L3 { list-style: lower-alpha; }
li.L4 { list-style: disc; }
li.L5 { list-style: square; }
li.L6 { list-style: circle; }
li.L7 { list-style: lower-roman; }
li.L8 { list-style: upper-alpha; }
/* tag cloud */
.pagecloud {
float: right;
width: 30%;
text-align: center;
padding: 10px 10px;
border: 1px solid #aaa;
background: #eee;
color: black !important;
}
.smallestPC { font-size: 70%; }
.smallPC { font-size: 85%; }
.normalPC { font-size: 100%; }
.bigPC { font-size: 115%; }
.biggestPC { font-size: 130%; }
/* orange feed button */
.feedbutton {
background: #ff6600;
color: white !important;
border-left: 1px solid #cc9966;
border-top: 1px solid #ccaa99;
border-right: 1px solid #993300;
border-bottom: 1px solid #331100;
padding: 0px 0.5em 0px 0.5em;
font-family: sans-serif;
font-weight: bold;
font-size: small;
text-decoration: none;
margin-top: 1em;
}
.feedbutton:hover {
color: white !important;
background: #ff9900;
}
.FlattrButton {
display: none;
}
/* login selector */
#login_choice {
display: none;
}
#login_input_area {
clear: both;
padding: 10px;
}
#login_btns, #login_btns br {
clear: both;
}
#login_highlight {
background-color: black;
float: left;
}
.login_large_btn {
padding: 1em 1.5em;
border: 1px solid #DDD;
margin: 3px;
float: left;
}
.login_small_btn {
padding: 4px 4px;
border: 1px solid #DDD;
margin: 3px;
float: left;
}
a.login_large_btn:focus {
outline: none;
}
a.login_large_btn:focus {
outline-style: none;
}
.login_selected {
border: 4px solid #DDD;
}
.fileupload-content .ui-progressbar {
width: 200px;
height: 20px;
}
.fileupload-content .ui-progressbar-value {
background: url(ikiwiki/images/pbar-ani.gif);
}
.trails {
margin-top: 1em;
margin-bottom: 1em;
}
.trail {
display: block;
clear: both;
position: relative;
}
.trailprev {
display: block;
text-align: left;
position: absolute;
top: 0%;
left: 3%;
width: 30%;
}
.trailup {
display: block;
text-align: center;
margin-left: 35%;
margin-right: 35%;
}
.trailnext {
display: block;
text-align: right;
position: absolute;
top: 0%;
width: 30%;
right: 3%;
}
.trailsep {
display: none;
}
/* mobile/small-screen-friendly layout */
@media (max-width: 600px) {
.sidebar {
width: auto;
float: none;
margin-top: 0;
border: none;
}
/* if the mobile browser is new enough, use flex layout to shuffle
* the sidebar to the end */
.page {
display: -webkit-box;
display: -webkit-flexbox;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-flex-direction: tb;
-webkit-flex-direction: column;
-webkit-flex-flow: column;
-ms-flex-direction: column;
flex-direction: column;
}
#pageheader {
-webkit-box-ordinal-group: -1;
-webkit-order: -1;
-ms-box-ordinal-group: -1;
-ms-flex-order: -1;
order: -1;
}
.sidebar, #footer {
-webkit-box-ordinal-group: 1;
-webkit-order: 1;
-ms-box-ordinal-group: 1;
-ms-flex-order: 1;
order: 1;
}
.blogform, #blogform {
padding: 4px 4px;
}
}

View file

@ -1,14 +0,0 @@
[[!meta title="HTTP 404: Not Found"]]
# HTTP 404
## Not Found
### The page could not be found or you don't have permission to view it.
<hr/>
The resource that you are attempting to access does not exist or you don't have the necessary permissions to view it.
Make sure the address is correct and that the page hasn't moved.
Please contact us using [our support page](https://support.ilot.io) if you think this is a mistake.
You can also check our [network status](https://status.ilot.io) for up-to-date status information on our services

View file

@ -1,10 +0,0 @@
[[!meta title="HTTP 422: Unprocessable content"]]
# HTTP 422
## Unprocessable content
### The change you requested is rejected.
<hr/>
Make sure you have access to the thing you tried to changee
Please contact us using [our support page](https://support.ilot.io) if you think this is a mistake

View file

@ -1,12 +0,0 @@
[[!meta title="HTTP 500: Internal Server Error"]]
# HTTP 500
## Internal Server Error
### We're sorry. Something went wrong on our end
<hr/>
Try refreshing the page, or going back and attempting the action again.
Please contact us using [our support page](https://support.ilot.io) if this problem persists.
You can also check our [network status](https://status.ilot.io) for up-to-date status information on our services

View file

@ -1,13 +0,0 @@
[[!meta title="HTTP 502: Bad Gateway Error"]]
# HTTP 502
## Bad Gateway error
### We're sorry. ilot is currently unavailable.
<hr/>
Try refreshing the page, or going back and attempting the action again.
Please contact us using [our support page](https://support.ilot.io) if this problem persists.
You can also check our [network status](https://status.ilot.io) for up-to-date status information on our services

View file

@ -1,12 +0,0 @@
[[!meta title="HTTP 503: Service unavailable"]]
# HTTP 503
## Service unavailable
### We're sorry. ilot is currently unavailable.
<hr/>
Try refreshing the page, or going back and attempting the action again.
Please contact us using [our support page](https://support.ilot.io) if this problem persists.
You can also check our [network status](https://status.ilot.io) for up-to-date status information on our services

Binary file not shown.

View file

@ -1,79 +0,0 @@
<p class="text-muted">
<div class="container">
<div class="row">
<div class="col-sm-3">
<h5>Support</h5>
<ul>
<li>[[FAQs|https://support.ilot.io/en/hc/706927618]]</li>
<li>[[Known issues|https://forge.ilot.io/ilot/-/projects/3]]</li>
<li>[[Support ticket|https://support.ilot.io/help/706927618]]</li>
</ul>
</div>
<div class="col-sm-3">
<h5>Contribute</h5>
<ul>
<li>[[Become a member|join]]
<li>[[Donate|https://opencollective.com/ilot]]</li>
<li>[[Git Forge|https://forge.ilot.io/ilot/-/projects]]</li>
<li>[[Wiki|https://wiki.ilot.io]]</li>
</ul>
</div>
<div class="col-sm-3">
<h5>About us</h5>
<ul>
<li>[[Code of conduct|meta/code-of-conduct]]</li>
<li>[[Licenses|meta/license]]</li>
<li>[[Network Status|https://status.ilot.io/status/ilot]]</li>
</div>
<div class="col-sm-3 listmonk-form">
<h5>News</h5>
<p>Subscribe to our [[newsletter|https://notif.ilot.io/archive]]</p>
<form method="post" action="https://notif.ilot.io/subscription/form" class="listmonk-form">
<!-- Converts enter key to tab -->
<script>
document.addEventListener('keydown', function (event) {
if (event.keyCode === 13 && event.target.nodeName === 'INPUT') {
var form = event.target.form;
var index = Array.prototype.indexOf.call(form, event.target);
form.elements[index + 1].focus();
event.preventDefault();
}
});
</script>
<input type="hidden" name="nonce" />
<input id="39425" type="hidden" name="l" value="39425113-44b5-46f7-9897-91151467b05f" />
<div class="t">
<input aria-label="Email" class="btn" type="email" name="email" required placeholder="E-mail" />
</div>
<button aria-label="Subscribe" class="btn" type="button" data-bs-toggle="modal" data-bs-target="#hcaptchamodal">Subscribe</button>
<div class="modal fade" id="hcaptchamodal" tabindex="-1" aria-labelledby="haptcha" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="hcapatchamodallabel">Are you a robot?</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="h-captcha" data-sitekey="be08a59e-ae24-472e-8a80-22d07016ee90" data-callback="submitSubscribe"></div>
<script src="https://js.hcaptcha.com/1/api.js" async defer></script>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button aria-label="Subscribe" class="btn" type="submit">Subscribe</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</p>

View file

@ -16,7 +16,7 @@ adminuser: []
# users who are banned from the wiki # users who are banned from the wiki
banned_users: [] banned_users: []
# where the source of the wiki is located # where the source of the wiki is located
srcdir: ./ srcdir: ./content
# where to build the wiki # where to build the wiki
destdir: ./public destdir: ./public
# base url to the wiki # base url to the wiki
@ -46,7 +46,6 @@ add_plugins:
- typography - typography
- sidebar2 - sidebar2
- po - po
- inline
# plugins to disable # plugins to disable
disable_plugins: disable_plugins:
- htmlscrubber - htmlscrubber
@ -55,6 +54,7 @@ templatedir: ./templates
#templatedir: /usr/share/ikiwiki/templates #templatedir: /usr/share/ikiwiki/templates
# base wiki source location # base wiki source location
#underlaydir: /usr/share/ikiwiki/basewiki #underlaydir: /usr/share/ikiwiki/basewiki
underlaydir: ./basewiki
# display verbose messages? # display verbose messages?
verbose: 1 verbose: 1
# log to syslog? # log to syslog?
@ -92,7 +92,7 @@ hardlink: 0
# group for wrappers to run in # group for wrappers to run in
#wrappergroup: ikiwiki #wrappergroup: ikiwiki
# extra library and plugin directories # extra library and plugin directories
libdirs: [plugins] libdirs: [lib]
# extra library and plugin directory (searched after libdirs) # extra library and plugin directory (searched after libdirs)
libdir: '' libdir: ''
# environment variables # environment variables
@ -102,7 +102,7 @@ timezone: :/etc/localtime
# regexp of normally excluded files to include # regexp of normally excluded files to include
#include: ^\.htaccess$ #include: ^\.htaccess$
# regexp of files that should be skipped # regexp of files that should be skipped
exclude: ^(tools/.*|public/.*|plugins/.*)$ #exclude: ^(*\.private|Makefile)$
# specifies the characters that are allowed in source filenames # specifies the characters that are allowed in source filenames
wiki_file_chars: -[:alnum:]+/.:_ wiki_file_chars: -[:alnum:]+/.:_
# allow symlinks in the path leading to the srcdir (potentially insecure) # allow symlinks in the path leading to the srcdir (potentially insecure)

Binary file not shown.

View file

@ -1,77 +0,0 @@
<script>
async function checkDuplicate() {
var url='https://forge.ilot.io/api/v1/repos/ilot/registration/issues';
var email = document.getElementById("email").value;
const response = await fetch(url, {
headers: {
'authorization': 'token b8d8617bb6049c0e47b7bba5cd0931799f54609c',
'Content-Type': 'application/json',
},
})
const result = await response.json();
let index = result
.findIndex(item => item.title === email);
if (index !== -1) {
return true;
} else {
return false;
}
}
async function createIssue() {
var url = 'https://forge.ilot.io/api/v1/repos/ilot/registration/issues';
var mathspamtrap = document.getElementById("math-spam-trap").value;
var agreetoterms = document.getElementById("agree-to-terms").checked;
var email = document.getElementById("email").value;
if(!agreetoterms) {
alert("Vous devez être en accord avec notre code de conduite.");
return false;
}
if(!email) {
alert("Le courriel ne peut pas être vide.");
return false;
}
if(mathspamtrap != "9") {
alert("Ceci n'est pas la bonne réponse à l'exercise mathématique.");
return false;
}
if(await checkDuplicate(email) === true) {
alert("Ce courriel a déjà fait l'objet d'une demande de compte.");
return false;
}
var name = document.getElementById("name").value;
var name = name.replace (/^/,'Name: ');
var aboutme = document.getElementById("about-me").value;
var aboutme = aboutme.replace (/^/,'About me: ');
var howfound = document.getElementById("how-found").value;
var howfound = howfound.replace (/^/,'How I found ilot: ');
var ocuser = document.getElementById("oc-user").value;
var ocuser = ocuser.replace (/^/,'OpenCollective Profile: ');
var description = name + "\n\n" + aboutme + "\n\n" + howfound + "\n\n" + ocuser;
console.log('Description:', description);
fetch(url, {
method: 'POST',
headers: {
'authorization': 'token b8d8617bb6049c0e47b7bba5cd0931799f54609c',
'Content-Type': 'application/json',
},
body: JSON.stringify({ title: email, body: description }),
})
.then(response => response.json())
.then(result => {
console.log('Success:', result);
alert("Votre demande a été soumise. Un membre d'un groupe de travail va traiter votre demande sous peu. Si vous ne recevez pas de nouvelle d'ici sept jours, contactez-vous via support@ilot.io.");
})
.catch(error => {
console.error('Error:', error)
});
}
</script>

Binary file not shown.

View file

@ -1,7 +0,0 @@
<!-- the anchors force ikiwiki to use a tags instead of spans. hopefully. -->
<ul class="navbar-nav nav-link align-items-center ms-auto">
<li>[[Home|index]]</li>
<li>[[Platforms]]</li>
<li>[[Join]]</li>
<li class="btn p-0 border sign-in">[[Your Files|https://ilot.io/apps/files]]</li>
</ul>

View file

@ -1,120 +1,250 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="h-100"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<TMPL_IF NAME="META"><TMPL_VAR META></TMPL_IF> <TMPL_IF NAME="META"><TMPL_VAR META></TMPL_IF>
<TMPL_IF DYNAMIC>
<TMPL_IF FORCEBASEURL><base href="<TMPL_VAR FORCEBASEURL>" /><TMPL_ELSE>
<TMPL_IF BASEURL><base href="<TMPL_VAR BASEURL>" /></TMPL_IF>
</TMPL_IF>
</TMPL_IF>
<title><TMPL_VAR TITLE> - <TMPL_VAR WIKINAME></title> <title><TMPL_VAR TITLE> - <TMPL_VAR WIKINAME></title>
<!-- cargo-culted from https://realfavicongenerator.net/ --> <!-- cargo-culted from https://realfavicongenerator.net/ -->
<!-- for the record: it is absolutely ridiculous that new browsers <!-- for the record: it is absolutely ridiculous that new browsers
*and* operating systems each want their own little precious *and* operating systems each want their own little precious
snowflake just for a frigging icon --> snowflake just for a frigging icon -->
<link rel="apple-touch-icon" sizes="180x180" href="<TMPL_VAR BASEURL>apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="180x180" href="<TMPL_VAR BASEURL>apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="<TMPL_VAR BASEURL>favicon-32x32.png"> <link rel="icon" type="image/png" sizes="32x32" href="<TMPL_VAR BASEURL>favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="<TMPL_VAR BASEURL>favicon-16x16.png"> <link rel="icon" type="image/png" sizes="16x16" href="<TMPL_VAR BASEURL>favicon-16x16.png">
<link rel="manifest" href="<TMPL_VAR BASEURL>site.webmanifest"> <link rel="manifest" href="<TMPL_VAR BASEURL>site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c"> <meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff"> <meta name="theme-color" content="#ffffff">
<!-- ikiwiki CSS --> <!-- ikiwiki CSS -->
<link href="<TMPL_VAR BASEURL>css/style.css" rel="stylesheet" /> <link href="<TMPL_VAR BASEURL>style.css" rel="stylesheet" />
<!-- Bootstrap core CSS --> <!-- Bootstrap core CSS -->
<!-- those checksums can be verified with: shasum -b -a 384 $file | xxd -r -p | base64 --> <!-- those checksums can be verified with: shasum -b -a 384 $file | xxd -r -p | base64 -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous" />
<!-- Custom styles for this template --> <!-- Custom styles for this template -->
<link href="<TMPL_VAR BASEURL>css/bootstrap.local.css" rel="stylesheet" /> <link href="<TMPL_VAR BASEURL>bootstrap.local.css" rel="stylesheet" />
<!-- Custom styles for derivatives --> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<TMPL_IF LOCAL_CSS> <!--[if lt IE 9]>
<link rel="stylesheet" href="<TMPL_VAR BASEURL><TMPL_VAR LOCAL_CSS>" type="text/css" /> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<TMPL_ELSE> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<link rel="stylesheet" href="<TMPL_VAR BASEURL>css/local.css" type="text/css" /> <![endif]-->
</TMPL_IF>
</head> <!-- Custom styles for derivatives -->
<body class="d-flex flex-column h-100"> <TMPL_IF LOCAL_CSS>
<header> <link rel="stylesheet" href="<TMPL_VAR BASEURL><TMPL_VAR LOCAL_CSS>" type="text/css" />
<nav class="navbar fixed-top navbar-expand-md navbar-light bg-light border"> <TMPL_ELSE>
<div class="container-fluid"> <link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
<a class="navbar-brand me-auto" href="<TMPL_VAR BASEURL>"> </TMPL_IF>
<img alt="<TMPL_VAR WIKINAME>" src="<TMPL_VAR BASEURL>favicon.png" width="48" height="48" />
</a>
<TMPL_IF OTHERLANGUAGES> <TMPL_UNLESS DYNAMIC>
<div class="dropdown ps-2 pe-2"> <TMPL_IF EDITURL>
<button class="btn language-switcher dropdown" type="button" id="language-menu-top" data-bs-toggle="dropdown" aria-expanded="false"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="<TMPL_VAR EDITURL>" />
<div class="collapse navbar-collapse float-end ms-1" id="navbar"> </TMPL_IF>
<TMPL_VAR LANG_NAME> <TMPL_IF FEEDLINKS><TMPL_VAR FEEDLINKS></TMPL_IF>
</div> <TMPL_IF RELVCS><TMPL_VAR RELVCS></TMPL_IF>
<img src="<TMPL_VAR BASEURL>images/languages.png"> <TMPL_IF META><TMPL_VAR META></TMPL_IF>
</button> <TMPL_LOOP TRAILLOOP>
<ul class="dropdown-menu dropdown-menu-end dropdown-menu-lg-start" aria-labelledby="language-menu-top"> <TMPL_IF PREVPAGE>
<TMPL_LOOP OTHERLANGUAGES> <link rel="prev" href="<TMPL_VAR PREVURL>" title="<TMPL_VAR PREVTITLE>" />
<li><a href="<TMPL_VAR URL>"><TMPL_VAR LANGUAGE></a></li> </TMPL_IF>
</TMPL_LOOP> <link rel="up" href="<TMPL_VAR TRAILURL>" title="<TMPL_VAR TRAILTITLE>" />
<TMPL_IF HAVE_ACTIONS> <TMPL_IF NEXTPAGE>
<li class="improve-translations"> <link rel="next" href="<TMPL_VAR NEXTURL>" title="<TMPL_VAR NEXTTITLE>" />
<a href="<TMPL_VAR BASEURL>contribute/how/translate/" rel="nofollow">Improve translations</a> </TMPL_IF>
</li> </TMPL_LOOP>
</TMPL_IF> </TMPL_UNLESS>
</ul> </head>
</div> <body>
</TMPL_IF>
<button class="navbar-toggler collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbarScroll" aria-expanded="false" aria-label="Toggle navigation"> <nav class="navbar navbar-default navbar-fixed-top">
<span class="navbar-toggler-icon"></span> <div class="container">
</button> <div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="<TMPL_VAR BASEURL>">
<img alt="<TMPL_VAR WIKINAME>" src="<TMPL_VAR BASEURL>favicon.png" width="48" height="48" />
</a>
</div>
<div id="navbar" class="collapse navbar-collapse"> <div id="navbar" class="collapse navbar-collapse">
<TMPL_IF SIDEBAR><TMPL_VAR SIDEBAR></TMPL_IF>
<ul class="nav navbar-nav">
<TMPL_LOOP BOOTMENU>
<TMPL_IF FIRSTNAV>
<li <TMPL_IF ACTIVE>class="active"</TMPL_IF>><a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a></li>
</TMPL_IF>
</TMPL_LOOP>
</ul>
</div>
</div>
</nav>
</header>
<main class="flex-shrink-0"> <TMPL_IF OTHERLANGUAGES>
<div class="container" id="content"> <div class="dropdown navbar-left">
<TMPL_VAR CONTENT> <button class="btn language-switcher dropdown-toggle" type="button" id="language-menu-top" data-toggle=
<TMPL_IF ENCLOSURE> "dropdown" aria-haspopup="true" aria-expanded="true">
<section id="enclosure"> <TMPL_VAR LANG_NAME>
<a href="<TMPL_VAR ENCLOSURE>">Download</a> <img src="<TMPL_VAR BASEURL>wikiicons/languages.png">
</section> </button>
</TMPL_IF> <ul class="dropdown-menu" aria-labelledby="language-menu-top">
<TMPL_LOOP OTHERLANGUAGES>
<li>
<a href="<TMPL_VAR URL>"><TMPL_VAR LANGUAGE></a>
</li>
</TMPL_LOOP>
<TMPL_IF HAVE_ACTIONS>
<li class="improve-translations">
<a href="<TMPL_VAR BASEURL>contribute/how/translate/" rel="nofollow">Improve translations</a>
</li>
</TMPL_IF>
</ul>
</div>
</TMPL_IF>
<TMPL_IF TRAILS><TMPL_VAR TRAILS></TMPL_IF> <TMPL_IF SIDEBAR>
</div> <!-- /container --> <TMPL_VAR SIDEBAR>
</main> </TMPL_IF>
<ul class="nav navbar-nav">
<TMPL_LOOP BOOTMENU>
<TMPL_IF FIRSTNAV>
<li <TMPL_IF ACTIVE>class="active"</TMPL_IF>><a href="<TMPL_VAR URL>"><TMPL_VAR PAGE></a></li>
</TMPL_IF>
</TMPL_LOOP>
<footer class="footer mt-auto py-2 bg-light" role="contentinfo">
<div class="container">
<TMPL_IF FOOTER><TMPL_VAR FOOTER></TMPL_IF>
</div>
</footer>
<!-- Bootstrap core JavaScript
================================================== --> </ul>
<!-- Placed at the end of the document so the pages load faster --> </div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js" integrity="sha384-oBqDVmMz9ATKxIep9tiCxS/Z9fNfEXiDAYTujMAeBAsjFuCZSmKbSSUnQlmh/jp3" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4" crossorigin="anonymous"></script> </div>
</nav>
<div class="container" id="content">
<TMPL_VAR CONTENT>
<TMPL_IF ENCLOSURE>
<TMPL_IF HTML5><section id="enclosure"><TMPL_ELSE><div id="enclosure"></TMPL_IF>
<a href="<TMPL_VAR ENCLOSURE>">Download</a>
<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
<TMPL_IF TRAILS>
<TMPL_VAR TRAILS>
</TMPL_IF>
<TMPL_UNLESS DYNAMIC>
<!-- legacy Ikiwiki comments.pm section -->
<TMPL_IF COMMENTS>
<TMPL_IF HTML5><section id="comments"><TMPL_ELSE><div id="comments"></TMPL_IF>
<TMPL_VAR COMMENTS>
<TMPL_IF ADDCOMMENTURL>
<div class="addcomment">
<a href="<TMPL_VAR ADDCOMMENTURL>">Add a comment</a>
</div>
<TMPL_ELSE>
<TMPL_UNLESS mastodon_host>
<div class="addcomment">Comments on this page are closed.</div>
</TMPL_UNLESS>
</TMPL_IF>
<TMPL_IF HTML5></section><TMPL_ELSE></div></TMPL_IF>
</TMPL_IF>
<!-- Mastodon comments -->
<TMPL_IF mastodon_host>
<div class="mastodon-comments comments">
<p>You can use your Mastodon account to reply to this <a class="link" href="https://<TMPL_VAR mastodon_host>/@<TMPL_VAR mastodon_username>/<TMPL_VAR mastodon_post>">post</a>.</p>
<p id="mastodon-comments-list"><button id="load-comment">Load comments</button></p>
<noscript><p>You need JavaScript to view the comments.</p></noscript>
<script src="<TMPL_VAR BASEURL>assets/js/purify.min.js"></script>
<script type="text/javascript">
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;");
}
document.getElementById("load-comment").addEventListener("click", function() {
document.getElementById("load-comment").innerHTML = "Loading...";
fetch('https://<TMPL_VAR mastodon_host>/api/v1/statuses/<TMPL_VAR mastodon_post>/context')
.then(function(response) {
return response.json();
})
.then(function(data) {
if(data['descendants'] &&
Array.isArray(data['descendants']) &&
data['descendants'].length > 0) {
document.getElementById('mastodon-comments-list').innerHTML = "";
data['descendants'].forEach(function(reply) {
reply.account.display_name = escapeHtml(reply.account.display_name);
reply.account.emojis.forEach(emoji => {
reply.account.display_name = reply.account.display_name.replace(`:${emoji.shortcode}:`,
`<img src="${escapeHtml(emoji.static_url)}" alt="Emoji ${emoji.shortcode}" height="20" width="20" />`);
});
mastodonComment =
`<div class="mastodon-comment comment">
<div class="avatar">
<img src="${escapeHtml(reply.account.avatar_static)}" height=60 width=60 alt="">
</div>
<div class="content">
<div class="author">
<a href="${reply.account.url}" rel="nofollow">
<span>${reply.account.display_name}</span>
<span class="disabled">${escapeHtml(reply.account.acct)}</span>
</a>
<a class="post" href="${reply.uri}" rel="nofollow">
<time datetime="${reply.created_at}" pubdate="pubdate">
${reply.created_at.replace(/(T\d+:\d+):\d+(\.\d+)?(.*)/, "$1$3")}
</time>
</a>
</div>
<div class="mastodon-comment-content">${reply.content}</div>
</div>
</div>`;
document.getElementById('mastodon-comments-list').appendChild(DOMPurify.sanitize(mastodonComment, {'RETURN_DOM_FRAGMENT': true}));
});
} else {
document.getElementById('mastodon-comments-list').innerHTML = "<p>Not comments found</p>";
}
});
});
</script>
</div>
</TMPL_IF>
</TMPL_UNLESS>
</div> <!-- /container -->
<TMPL_IF HTML5><footer<TMPL_ELSE><div</TMPL_IF> class="footer" role="contentinfo">
<div class="container">
<TMPL_IF FOOTER>
<TMPL_VAR FOOTER>
</TMPL_IF>
</div>
<TMPL_IF HTML5></footer><TMPL_ELSE></div></TMPL_IF>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js" crossorigin="anonymous" integrity="sha384-xBuQ/xzmlsLoJpyjoggmTEz8OWUFM0/RC5BsqQBDX2v5cMvDHcMakNTNrHIW2I5f"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" crossorigin="anonymous" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"></script>
<!-- TODO: Find other ways to setup analytics <!-- TODO: Find other ways to setup analytics
<script data-goatcounter="https://analytics.anarc.at/count" async src="//analytics.anarc.at/count.js"></script> <script data-goatcounter="https://analytics.anarc.at/count" async src="//analytics.anarc.at/count.js"></script>
<noscript> <noscript>
<img src="https://analytics.anarc.at/count?p=<TMPL_VAR PAGE>&t=<TMPL_VAR TITLE ESCAPE=URL>" alt="tracking pixel to count visitors when Javascript is disabled" /> <img src="https://analytics.anarc.at/count?p=<TMPL_VAR PAGE>&t=<TMPL_VAR TITLE ESCAPE=URL>" alt="tracking pixel to count visitors when Javascript is disabled" />
</noscript> </noscript>
--> -->
</body> </body>
</html> </html>

View file

@ -1,4 +1,4 @@
<form method="get" action="<TMPL_VAR SEARCHACTION>" class="navbar-form navbar-left" role="search"> <form method="get" action="<TMPL_VAR SEARCHACTION>" class="navbar-form navbar-left" role="search">
<input type="text" class="form-control" name="P" value="" size="16" <input type="text" class="form-control" name="P" value="" size="16"
placeholder="search" /> <TMPL_IF HTML5>placeholder="search"</TMPL_IF> />
</form> </form>

View file

@ -1,29 +1,29 @@
<TMPL_LOOP TRAILLOOP> <TMPL_LOOP TRAILLOOP>
<TMPL_IF __FIRST__> <TMPL_IF __FIRST__>
<nav class="navbar"> <nav class="navbar">
<ul class="nav navbar-nav pager"> <ul class="nav navbar-nav pager">
</TMPL_IF> </TMPL_IF>
<TMPL_IF PREVPAGE> <TMPL_IF PREVPAGE>
<li class="previous"> <li class="previous">
<a href="<TMPL_VAR PREVURL>"> <a href="<TMPL_VAR PREVURL>">
<span class="glyphicon glyphicon-menu-left"></span> <span class="glyphicon glyphicon-menu-left"></span>
<TMPL_VAR PREVTITLE></a> <TMPL_VAR PREVTITLE></a>
</li> </li>
</TMPL_IF> </TMPL_IF>
<li class="up"> <li class="up">
<a href="<TMPL_VAR TRAILURL>"> <a href="<TMPL_VAR TRAILURL>">
<span class="glyphicon glyphicon-menu-up"></span> <span class="glyphicon glyphicon-menu-up"></span>
<TMPL_VAR TRAILTITLE></a> <TMPL_VAR TRAILTITLE></a>
</li> </li>
<TMPL_IF NEXTPAGE> <TMPL_IF NEXTPAGE>
<li class="next"> <li class="next">
<a href="<TMPL_VAR NEXTURL>"><TMPL_VAR NEXTTITLE> <a href="<TMPL_VAR NEXTURL>"><TMPL_VAR NEXTTITLE>
<span class="glyphicon glyphicon-menu-right"></span> <span class="glyphicon glyphicon-menu-right"></span>
</a> </a>
</li> </li>
</TMPL_IF> </TMPL_IF>
<TMPL_IF __LAST__> <TMPL_IF __LAST__>
</ul> </ul>
</nav> </nav>
</TMPL_IF> </TMPL_IF>
</TMPL_LOOP> </TMPL_LOOP>

View file

@ -1,7 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
for i in node npm git; do for i in node npm git; do
if ! command -v $i &> /dev/null; then if ! command -v $i &> /dev/null; then
echo ">> $i could not be found, please install" echo ">> $i could not be found, please install"
@ -10,7 +8,7 @@ for i in node npm git; do
done done
# http-server not pulled, pulling # http-server not pulled, pulling
if [ ! -d "$SCRIPT_DIR/http-server" ]; then if [ ! -d "./http-server" ]; then
echo ">> This script will pull a lightweight nodejs http-server from https://github.com/http-party/http-server and make ./public avaiable as local http service, are you okay with this?" echo ">> This script will pull a lightweight nodejs http-server from https://github.com/http-party/http-server and make ./public avaiable as local http service, are you okay with this?"
read -p "Continue (y/n)?" choice read -p "Continue (y/n)?" choice
case "$choice" in case "$choice" in
@ -22,19 +20,17 @@ if [ ! -d "$SCRIPT_DIR/http-server" ]; then
fi fi
# http-server depends not pulled, pulling # http-server depends not pulled, pulling
if [ ! -d "$SCRIPT_DIR/http-server/node_modules/" ]; then if [ ! -d "http-server/node_modules/" ]; then
echo ">> http-server dependencies not pulled, pulling" echo ">> http-server dependencies not pulled, pulling"
npm --prefix "$SCRIPT_DIR"/http-server i npm --prefix ./http-server i
fi fi
# website not built, building # website not built, building
if [ ! -d "$SCRIPT_DIR/../public" ]; then if [ ! -d "./public" ]; then
echo ">> website not build, building" echo ">> website not build, building"
pushd "$SCRIPT_DIR"/..
ikiwiki --setup ./ikiwiki.setup ikiwiki --setup ./ikiwiki.setup
popd
fi fi
# starting server # starting server
echo ">> starting http server" echo ">> starting http server"
node "$SCRIPT_DIR"/http-server/bin/http-server -c-1 "$SCRIPT_DIR"/../public node ./http-server/bin/http-server -c-1 ./public