diff --git a/.forgejo/workflows/cleanup.yaml b/.forgejo/workflows/cleanup.yaml deleted file mode 100644 index 69921a7..0000000 --- a/.forgejo/workflows/cleanup.yaml +++ /dev/null @@ -1,33 +0,0 @@ -on: - pull_request: - types: [ closed, merged ] - -jobs: - cleanup: - runs-on: x86_64 - container: - image: alpine:latest - steps: - - name: Environment setup - run: | - apk add git nodejs jq coreutils curl tree gawk grep - - name: Public repo pull - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.PAGES_TOKEN }} - ref: public - - name: Render website - run: | - export GITHUB_PR_NAME=$(grep -l ${{ github.sha }} previews/*/git_sha.txt | awk -F '/' '{print $2}') - echo $GITHUB_PR_NAME >> $GITHUB_ENV - rm -rf previews/$GITHUB_PR_NAME || true - cd previews - tree -d -H '.' -L 1 --noreport --charset utf-8 -T "Versions" -o index.html - - name: Website upload - run: | - git config user.name "forgejo-actions[bot]" - git config user.email "dev@ayakael.net" - git add . - git commit -m "Clean-up $GITHUB_PR_NAME" - git push diff --git a/.forgejo/workflows/pages.yaml b/.forgejo/workflows/pages.yaml deleted file mode 100644 index d7c3e92..0000000 --- a/.forgejo/workflows/pages.yaml +++ /dev/null @@ -1,46 +0,0 @@ -on: - push: - branches: - - 'main' - -jobs: - render: - runs-on: x86_64 - container: - image: alpine:latest - steps: - - name: Environment setup - run: | - apk add git ikiwiki po4a perl-yaml-tiny tree nodejs tzdata pandoc perl-json - rm -f /etc/localtime - ln -s /usr/share/zoneinfo/America/Montreal /etc/localtime - - name: Repo pull - uses: actions/checkout@v4 - with: - fetch-depth: 0 - token: ${{ secrets.PAGES_TOKEN }} - - name: Public repo pull - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: public - path: public - token: ${{ secrets.PAGES_TOKEN }} - - name: Render website - run: | - rm -Rf public/* - ikiwiki --setup ikiwiki.setup --getctime - - name: Website upload - 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 - cd public - date > generated.txt - # Note: the following account information will not work on GHES - git config user.name "forgejo-actions[bot]" - git config user.email "dev@ayakael.net" - git add . - git commit -F ../commit.txt - git push diff --git a/.forgejo/workflows/preview.yaml b/.forgejo/workflows/preview.yaml deleted file mode 100644 index 3ad603e..0000000 --- a/.forgejo/workflows/preview.yaml +++ /dev/null @@ -1,49 +0,0 @@ -on: - pull_request: - types: [ assigned, opened, synchronize, reopened ] - -jobs: - preview: - runs-on: x86_64 - container: - image: alpine:latest - steps: - - name: Environment setup - run: | - 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 }} | jq .title | tr ' ' '-' | tr -d ':' | tr -d '"' | tr '[:upper:]' '[:lower:]' | tr '/' '-')" >> $GITHUB_ENV - - name: Repo pull - uses: actions/checkout@v4 - with: - fetch-depth: 1 - token: ${{ secrets.PAGES_TOKEN }} - - name: Public repo pull - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: public - path: public - token: ${{ secrets.PAGES_TOKEN }} - - name: Render website - run: | - rm -rf public/previews/$GITHUB_PR_NAME || true - mkdir -p public/previews/$GITHUB_PR_NAME - sed -i "s|destdir.*|destdir: ./public/previews/$GITHUB_PR_NAME|" ikiwiki.setup - ikiwiki --setup ikiwiki.setup - cd public/previews - tree -d -H '.' -L 1 --noreport --charset utf-8 -T "Versions" -o index.html - - name: Website upload - 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 - cd public - date > previews/$GITHUB_PR_NAME/generated.txt - echo ${{ github.sha }} > previews/$GITHUB_PR_NAME/git_sha.txt - # Note: the following account information will not work on GHES - git config user.name "forgejo-actions[bot]" - git config user.email "dev@ayakael.net" - git add . - git commit -F ../commit.txt - git push diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 13f4f82..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.ikiwiki -public/ -tools/http-server/ diff --git a/Bootstrap_features.mdwn b/Bootstrap_features.mdwn deleted file mode 100644 index 12c3a08..0000000 --- a/Bootstrap_features.mdwn +++ /dev/null @@ -1,136 +0,0 @@ -# Bootstrap features - -This page will contain a display of various features from Bootstrap. -They require some manual HTML tags. -Note that not all Markdown parsers allow Markdown markup inside all HTML tags. -In the case of ikiwiki, adding `markdown="1"` to `div` elements usually allows markup to be used inside them. -For a full list of features provided by Bootstrap 4, go to . - -
-## Jumbotron - -It's big and in your face. - ---- - -You can still use Markdown syntax inside HTML blocks, if you are careful. - -Button -
- -## Labels Hi! - -Span elements work inside Markdown headings. - -
-## Cards - -Put a border with soft round corners around your content. -
- - -## Card decks - -These require some more work. -You can use the `\[[!img]]` directive, but make sure to add `class="card-img-top"` or `class="card-img-bottom"` where appropriate. -For images in cards to work properly, they need to have their width forced to 100% of their container. -This is done in the `style.css` file that comes with ikistrap. - -Another issue is that due to all the nested HTML tags, even with `markdown="1"`, Markdown markup does not get parsed anymore. - -
-
-
-[[!img Lemonshark.jpg alt="Lemon shark" class="card-img-top"]] -
-

-A lemon shark and his little friends are out for a swim. -

-

Escape

-
-
-
-[[!img Anemones.jpg alt="Anemones" class="card-img-top"]] -
-

-Anemones look really nice and are much less dangerous than lemon sharks. -

-

Admire

-
-
-
-[[!img Sea_Star.jpg alt="Sea star" class="card-img-top"]] -
-

-Sea stars are also less dangerous than lemon sharks, but they are slightly more dangerous than -anemones, especially when stepped on. -

-

Sidestep

-
-
-
-
- -## Card columns - -These can be created by writing the outer card-columns `div` elements yourself, -and using `\[[!inline]]` with `template="simplecard"` to generate the cards. - -
-[[!inline pages="sample_text/* and !*/Discussion" template="simplecard" feeds="no"]] -
- - -## Carousel - -These can be created by writing the outer two carousel `div` elements yourself, -and using `\[[!inline]]` with `template="carouselpage"` to generate the carousel items. - -

-

-

- -If you only want to show images, use `template="carouselimage"`, and select your images directly with the `pages` parameter. - -

-

-

- -## Progress bars - -Ikistrap also provides a progress directive which works in the same way as the progress plugin, -but it also allows an extra class to be specified to change the style per bar. - -[[!progress totalpages="* and !*/Discussion" donepages="*/Discussion"]] -[[!progress percent="33%"]] -[[!progress percent="66%" class="progress-success progress-striped"]] - -## Other stuff - -Goes here. - diff --git a/Bootstrap_features/index.html b/Bootstrap_features/index.html new file mode 100644 index 0000000..dc0571d --- /dev/null +++ b/Bootstrap_features/index.html @@ -0,0 +1,282 @@ + + + + + + + + + + + Bootstrap features - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Bootstrap features

+

This page will contain a display of various features from Bootstrap. +They require some manual HTML tags. Note that not all Markdown parsers +allow Markdown markup inside all HTML tags. In the case of ikiwiki, +adding markdown="1" to div elements usually +allows markup to be used inside them. For a full list of features +provided by Bootstrap 4, go to http://v4-alpha.getbootstrap.com/getting-started/introduction/.

+
+

Jumbotron

+

It’s big and in your face.

+
+

You can still use Markdown syntax inside HTML blocks, if you are +careful.

+

Button

+
+

Labels Hi!

+

Span elements work inside Markdown headings.

+
+

Cards

+

Put a border with soft round corners around your content.

+
+

Card decks

+

These require some more work. You can use the [[!img ]] +directive, but make sure to add class="card-img-top" or +class="card-img-bottom" where appropriate. For images in +cards to work properly, they need to have their width forced to 100% of +their container. This is done in the style.css file that +comes with ikistrap.

+

Another issue is that due to all the nested HTML tags, even with +markdown="1", Markdown markup does not get parsed +anymore.

+
+
+
+[[!img Error: Image::Magick is not +installed]] +
+

+A lemon shark and his little friends are out for a swim. +

+

+Escape +

+
+
+
+[[!img Error: Image::Magick is not +installed]] +
+

+Anemones look really nice and are much less dangerous than lemon sharks. +

+

+Admire +

+
+
+
+[[!img Error: Image::Magick is not +installed]] +
+

+Sea stars are also less dangerous than lemon sharks, but they are +slightly more dangerous than anemones, especially when stepped +on. +

+

+Sidestep +

+
+
+
+
+

Card columns

+

These can be created by writing the outer card-columns +div elements yourself, and using [[!inline ]] +with template="simplecard" to generate the cards.

+
+

[[!inline Error: failed to process template +simplecard.tmpl: template simplecard.tmpl not found +]]

+
+ +

These can be created by writing the outer two carousel +div elements yourself, and using [[!inline ]] +with template="carouselpage" to generate the carousel +items.

+

+

+

+

If you only want to show images, use +template="carouselimage", and select your images directly +with the pages parameter.

+

+

+

+

Progress bars

+

Ikistrap also provides a progress directive which works in the same +way as the progress plugin, but it also allows an extra class to be +specified to change the style per bar.

+
+
+0% +
+
+
+
+33% +
+
+
+
+66% +
+
+

Other stuff

+

Goes here.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ + + + + + + + + + + + diff --git a/Calendars.mdwn b/Calendars.mdwn deleted file mode 100644 index 5d8e152..0000000 --- a/Calendars.mdwn +++ /dev/null @@ -1,10 +0,0 @@ -# Calendar - -This is an example of the ikiwiki calendar function. -Here is a monthly calendar: - -[[!calendar type="month"]] - -And this is a yearly calendar: - -[[!calendar type="year"]] diff --git a/Calendars/index.html b/Calendars/index.html new file mode 100644 index 0000000..093edf3 --- /dev/null +++ b/Calendars/index.html @@ -0,0 +1,141 @@ + + + + + + + + + + + Calendars - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Calendar

+

This is an example of the ikiwiki calendar function. Here is a +monthly calendar:

+

[[!calendar type=“month”]]

+

And this is a yearly calendar:

+

[[!calendar type=“year”]]

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ + + + + + + + + + + + diff --git a/Comments.mdwn b/Comments.mdwn deleted file mode 100644 index 24cc744..0000000 --- a/Comments.mdwn +++ /dev/null @@ -1,3 +0,0 @@ -# Comments - -This is an example of a page where comments are allowed. diff --git a/Comments/index.html b/Comments/index.html new file mode 100644 index 0000000..8dde11c --- /dev/null +++ b/Comments/index.html @@ -0,0 +1,137 @@ + + + + + + + + + + + Comments - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Comments

+

This is an example of a page where comments are allowed.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ + + + + + + + + + + + diff --git a/Inline_pages.mdwn b/Inline_pages.mdwn deleted file mode 100644 index 46d540e..0000000 --- a/Inline_pages.mdwn +++ /dev/null @@ -1,9 +0,0 @@ -# Inline pages - -Here is an example of inline pages using the default inlining theme: - -[[!inline pages="sample_text/* and !*/Discussion" reverse="yes" limit="3"]] - -Here is an example of inlining with actions enabled: - -[[!inline pages="sample_text/* and !*/Discussion" reverse="yes" skip="3" limit="2" actions="1"]] diff --git a/Inline_pages/index.html b/Inline_pages/index.html new file mode 100644 index 0000000..646493a --- /dev/null +++ b/Inline_pages/index.html @@ -0,0 +1,387 @@ + + + + + + + + + + + Inline pages - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Inline pages

+

Here is an example of inline pages using the default inlining +theme:

+

+
+ +
+ +
+ +Sed eget + +
+
+ +
+

Sed eget turpis a pede tempor malesuada. Vivamus quis mi at leo +pulvinar hendrerit. Cum sociis natoque penatibus et magnis dis +parturient montes, nascetur ridiculus mus. Pellentesque aliquet lacus +vitae pede. Nullam mollis dolor ac nisi. Phasellus sit amet urna. +Praesent pellentesque sapien sed lacus. Donec lacinia odio in odio. In +sit amet elit. Maecenas gravida interdum urna. Integer pretium, arcu +vitae imperdiet facilisis, elit tellus tempor nisi, vel feugiat ante +velit sit amet mauris. Vivamus arcu. Integer pharetra magna ac lacus. +Aliquam vitae sapien in nibh vehicula auctor. Suspendisse leo mauris, +pulvinar sed, tempor et, consequat ac, lacus. Proin velit. Nulla semper +lobortis mauris. Duis urna erat, ornare et, imperdiet eu, suscipit sit +amet, massa. Nulla nulla nisi, pellentesque at, egestas quis, fringilla +eu, diam.

+ +
+ + + +
+ + +Posted + + + + + + + + + + +
+ +
+
+ +
+ +
+ +Nulla facilisi + +
+
+ +
+

Nulla facilisi. Nunc volutpat. Vestibulum ante ipsum primis in +faucibus orci luctus et ultrices posuere cubilia Curae; Ut sit amet orci +vel mauris blandit vehicula. Nullam quis enim. Integer dignissim viverra +velit. Curabitur in odio. In hac habitasse platea dictumst. Ut +consequat, tellus eu volutpat varius, justo orci elementum dolor, sed +imperdiet nulla tellus ut diam. Vestibulum ipsum ante, malesuada quis, +tempus ac, placerat sit amet, elit.

+ +
+ + + +
+ + +Posted + + + + + + + + + + + + +
+ +
+
+ +
+ + + +Cicero + + + +
+ +Lorem ipsum + +
+
+ +
+

[[!meta Error: cannot parse date/time: 45 +B.C.]]

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at ante. +Mauris eleifend, quam a vulputate dictum, massa quam dapibus leo, eget +vulputate orci purus ut lorem. In fringilla mi in ligula. Pellentesque +aliquam quam vel dolor. Nunc adipiscing. Sed quam odio, tempus ac, +aliquam molestie, varius ac, tellus. Vestibulum ut nulla aliquam risus +rutrum interdum. Pellentesque lorem. Curabitur sit amet erat quis risus +feugiat viverra. Pellentesque augue justo, sagittis et, lacinia at, +venenatis non, arcu. Nunc nec libero. In cursus dictum risus. Etiam +tristique nisl a nulla. Ut a orci. Curabitur dolor nunc, egestas at, +accumsan at, malesuada nec, magna.

+ +
+ + + +
+ + +Posted + + + + + + + + + + +
+ +
+

+

Here is an example of inlining with actions enabled:

+

+
+ +
+ +
+ +Donec semper + +
+
+ +
+

Donec semper, sem nec tristique tempus, justo neque commodo nisl, ut +gravida sem tellus suscipit nunc. Aliquam erat volutpat. Ut tincidunt +pretium elit. Aliquam pulvinar. Nulla cursus. Suspendisse potenti. Etiam +condimentum hendrerit felis. Duis iaculis aliquam enim. Donec dignissim +augue vitae orci. Curabitur luctus felis a metus. Cum sociis natoque +penatibus et magnis dis parturient montes, nascetur ridiculus mus. In +varius neque at enim. Suspendisse massa nulla, viverra in, bibendum +vitae, tempor quis, lorem.

+ +
+ + + +
+ + +Posted + + + + + + + + + + +
+ +
+
+ +
+ +
+ +Donec dapibus + +
+
+ +
+

Donec dapibus orci sit amet elit. Maecenas rutrum ultrices lectus. +Aliquam suscipit, lacus a iaculis adipiscing, eros orci pellentesque +nisl, non pharetra dolor urna nec dolor. Integer cursus dolor vel magna. +Integer ultrices feugiat sem. Proin nec nibh. Duis eu dui quis nunc +sagittis lobortis. Fusce pharetra, enim ut sodales luctus, lectus arcu +rhoncus purus, in fringilla augue elit vel lacus. In hac habitasse +platea dictumst. Aliquam erat volutpat. Fusce iaculis elit id tellus. Ut +accumsan malesuada turpis. Suspendisse potenti. Vestibulum lacus augue, +lobortis mattis, laoreet in, varius at, nisi. Nunc gravida. Phasellus +faucibus. In hac habitasse platea dictumst. Integer tempor lacus eget +lectus. Praesent fringilla augue fringilla dui.

+ +
+ + + +
+ + +Posted + + + + + + + + + + +
+ +
+

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ + + + + + + + + + + + diff --git a/README.md b/README.md deleted file mode 100644 index feafcfe..0000000 --- a/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# ayakael.net -Upstream: https://ayakael.net/forge/ayakael.net/actions - -![Build Status](https://ayakael.net/forge/ayakael.net/badges/workflows/pages.yaml/badge.svg) -![Push Status](https://ayakael.net/forge/ayakael.net/badges/workflows/deploy.yaml/badge.svg) - -## Forgejo Actions - -This project's static Pages are built by Forgejo Actions, following the steps -defined in [`.forgejo/workflows/pages.yaml`](.forgejo/workflows/pages.yaml). -That builds this website using ikiwiki, and pushes the build artifacts to the -`public` branch. - -The `public` branch has its own workflow following steps defined in -[`forgejo/workflows/deploy.yaml`](https://ayakael.net/forge/ayakael.net/src/branch/public/.forgejo/workflows/deploy.yaml) -that uploads the artifacts to a remote HTTP server for deployment in -production. This workflow is automatically updated from `main` so that `public` -should never be manually modified. - -The deployment is done by a simple remote git push via SSH to a non-bare repo -where `git config receive.denyCurrentBranch` is set as `updateInstead`. This -allows this repo to be checked out as `public`, allowing it to be a root for -your favorite HTTP server. - -The following secrets are expected to be set for operation: -* PAGES_PRIVKEY: SSH private key that is used to push to the HTTP server's git -repo -* PAGES_TOKEN: Forgejo application token used to push to `public` branch. - -The following variables are expected to be set for operation: -* PAGES_TARGET: SSH target for HTTP server's git repo, following this format: -user@example.net:/path/to/http/repo - -## Building locally - -To work locally with this project, you'll have to follow the steps below: - -1. Fork, clone or download this project -1. Install ikiwiki: - * [mac][] - * [linux][] - * [source][] -1. Generate the website: `ikiwiki --setup ikiwiki.setup` -1. Start http-server: `./test-server.sh` -1. Preview your project: open 127.0.0.1:8080 in your browser - -Read more at ikiwiki's [documentation][]. - -## Contributing - -1. Fork the main ayakael.net repo. - -2. Checkout the forked repository. - - - `git clone ssh://git@ayakael.net/$USER/ayakael.net` - - `cd ayakael.net` - -3. Make your changes. - -4. Do local build. - - - `ikiwiki --setup ikiwiki.setup` - -5. Fix any errors that come up and rebuild until it works locally. - -6. Commit the changes to the git repo in a git branch - - - `git checkout -b ` - - `git add` changes - - `git commit -m 'content/index: descriptive description'` - - `git push` - -7. Create a merge request with your changes by following link in server response. - -8. Once the tests in the merge-request pass, and reviewers are happy, your changes - will be merged. - -[ikiwiki]: https://ikiwiki.info/ -[source]: https://ikiwiki.info/install/ -[linux]: https://ikiwiki.info/setup/ -[mac]: https://ikiwiki.info/tips/ikiwiki_on_mac_os_x/ -[documentation]: https://ikiwiki.info/ diff --git a/README/index.html b/README/index.html new file mode 100644 index 0000000..63a0148 --- /dev/null +++ b/README/index.html @@ -0,0 +1,217 @@ + + + + + + + + + + + README - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

ayakael.net

+ +

Upstream: https://ayakael.net/forge/ayakael.net/actions

+ +

Build Status +Push Status

+ +

Forgejo Actions

+ +

This project's static Pages are built by Forgejo Actions, following the steps +defined in .forgejo/workflows/pages.yaml. +That builds this website using ikiwiki, and pushes the build artifacts to the +public branch.

+ +

The public branch has its own workflow following steps defined in +forgejo/workflows/deploy.yaml +that uploads the artifacts to a remote HTTP server for deployment in +production. This workflow is automatically updated from main so that public +should never be manually modified.

+ +

The deployment is done by a simple remote git push via SSH to a non-bare repo +where git config receive.denyCurrentBranch is set as updateInstead. This +allows this repo to be checked out as public, allowing it to be a root for +your favorite HTTP server.

+ +

The following secrets are expected to be set for operation: +* PAGES_PRIVKEY: SSH private key that is used to push to the HTTP server's git +repo +* PAGES_TOKEN: Forgejo application token used to push to public branch.

+ +

The following variables are expected to be set for operation: +* PAGES_TARGET: SSH target for HTTP server's git repo, following this format: +user@example.net:/path/to/http/repo

+ +

Building locally

+ +

To work locally with this project, you'll have to follow the steps below:

+ +
    +
  1. Fork, clone or download this project
  2. +
  3. Install ikiwiki: +
  4. +
  5. Generate the website: ikiwiki --setup ikiwiki.setup
  6. +
  7. Start http-server: ./test-server.sh
  8. +
  9. Preview your project: open 127.0.0.1:8080 in your browser
  10. +
+ +

Read more at ikiwiki's documentation.

+ +

Contributing

+ +
    +
  1. Fork the main ayakael.net repo.

  2. +
  3. Checkout the forked repository.

    + +
      +
    • git clone ssh://git@ayakael.net/$USER/ayakael.net
    • +
    • cd ayakael.net
    • +
  4. +
  5. Make your changes.

  6. +
  7. Do local build.

    + +
      +
    • ikiwiki --setup ikiwiki.setup
    • +
  8. +
  9. Fix any errors that come up and rebuild until it works locally.

  10. +
  11. Commit the changes to the git repo in a git branch

    + +
      +
    • git checkout -b <name>
    • +
    • git add changes
    • +
    • git commit -m 'content/index: descriptive description'
    • +
    • git push
    • +
  12. +
  13. Create a merge request with your changes by following link in server response.

  14. +
  15. Once the tests in the merge-request pass, and reviewers are happy, your changes +will be merged.

  16. +
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/blog.fr.po b/blog.fr.po deleted file mode 100644 index cc2d2f9..0000000 --- a/blog.fr.po +++ /dev/null @@ -1,71 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2026-01-03 13:52-0500\n" -"PO-Revision-Date: 2026-01-03 13:54-0500\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.8\n" - -#. type: Plain text -#, no-wrap -msgid "[[!meta title=\"Blog\"]]\n" -msgstr "" - -#. type: Plain text -#, no-wrap -msgid "\n" -msgstr "" - -#. type: Title # -#, no-wrap -msgid "Latest" -msgstr "" -"Récent\n" -"(basculer vers l'anglais pour tout mon contenu)" - -#. type: Plain text -#, no-wrap -msgid "" -"[[!inline pages=\"\n" -"(\n" -" page(blog/*)\n" -" or tagged(blog)\n" -")\n" -"and !blog/*/*\n" -"and !blog/*fr*\n" -"and !tagged(draft)\n" -"and !tagged(redirection)\"\n" -"archive=yes\n" -"title=\"Ayakael - Blog\"\n" -"description=\"For those who wish to follow my goings\"\n" -"feedshow=\"10\"\n" -"actions=yes\n" -"trail=yes\n" -"]]\n" -msgstr "" -"[[!inline pages=\"\n" -"(\n" -" page(blog/*fr*)\n" -" or tagged(blog)\n" -")\n" -"and !blog/*/*\n" -"and !tagged(draft)\n" -"and !tagged(redirection)\"\n" -"archive=yes\n" -"title=\"Ayakael - Blog\"\n" -"description=\"Pour ceux et celles qui veulent suivre mes mises à jour\"\n" -"feedshow=\"10\"\n" -"actions=yes\n" -"trail=yes\n" -"]]\n" diff --git a/blog.mdwn b/blog.mdwn deleted file mode 100644 index e24409c..0000000 --- a/blog.mdwn +++ /dev/null @@ -1,23 +0,0 @@ -[[!meta title="Blog"]] - - - -# Latest - -[[!inline pages=" -( - page(blog/*) - or tagged(blog) -) -and !blog/*/* -and !blog/*fr* -and !tagged(draft) -and !tagged(redirection)" -archive=yes -title="Ayakael - Blog" -description="For those who wish to follow my goings" -feedshow="10" -actions=yes -trail=yes -]] - diff --git a/blog.pot b/blog.pot deleted file mode 100644 index 3447c1a..0000000 --- a/blog.pot +++ /dev/null @@ -1,53 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2026-01-03 13:54-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "[[!meta title=\"Blog\"]]\n" -msgstr "" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "\n" -msgstr "" - -#. type: Title # -#, markdown-text, no-wrap -msgid "Latest" -msgstr "" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "" -"[[!inline pages=\"\n" -"(\n" -" page(blog/*)\n" -" or tagged(blog)\n" -")\n" -"and !blog/*/*\n" -"and !blog/*fr*\n" -"and !tagged(draft)\n" -"and !tagged(redirection)\"\n" -"archive=yes\n" -"title=\"Ayakael - Blog\"\n" -"description=\"For those who wish to follow my goings\"\n" -"feedshow=\"10\"\n" -"actions=yes\n" -"trail=yes\n" -"]]\n" -msgstr "" diff --git a/blog/2026-01-02-foss-recap-2025.md b/blog/2026-01-02-foss-recap-2025.md deleted file mode 100644 index a993cc0..0000000 --- a/blog/2026-01-02-foss-recap-2025.md +++ /dev/null @@ -1,126 +0,0 @@ -[[!meta title="FOSS Recap 2025"]] - -# FOSS Recap 2025 - -
- -Following many other developpers, here is a recap of all the noticeable FOSS related projects that I have contributed to in 2025. - -## Alpine Linux - -As of beginning of 2026, I maintain a total of [178](https://pkgs.alpinelinux.org/packages?name=&branch=edge&repo=&arch=x86_64&origin=&flagged=&maintainer=Antoine+Martin+%28ayakael%29) packages for Alpine Linux, in addition to 26 that I maintain in my [own repo](https://ayakael.net/forge/ayaports). - -#### Aports - -During the last year, I pushed a total of 451 commits (top 12 committer!) to Alpine Linux [aports](https://gitlab.alpinelinux.org/alpine/aports). Almost half were updates to python packages (231). - -I also added 14 new aports to Alpine Linux repositories: - -* dotnet10-{sdk,runtime,stage0} -* koreader -* nwg-menu -* openterface-qt -* pinenote-service -* pneink-theme -* py3-coverage-conditional-plugin -* py3-cron-descriptor -* py3-epmeh -* py3-django-celery-beat -* py3-django-ninja -* py3-python-crontab -* rot8 -* skiasharp - -I also took maintainership of 3 aports: - -* raspberrypi-usbbot -* looking-glass -* arm-trusted-firmware - -The last one (arm-trusted-firmware) is my first main package! - -That said, this looks to be less activity than last year, where I pushed 605 commits, added 69 new aports, and took maintainership of 17 packages. - -#### Ayaports - -As mentionned, I maintain my own port repo, which acts as my staging repo, and allows me to backports packages from Alpine's testing to latest stable Alpine release. Ignoring my backports, I pushed 58 updates to my staging packages and added 8 new aports. - -I improved a lot on my package monitoring CI that alerts me (by creating a new issue on my forge) whenever a package needs updating. I pushed 78 commits to this, mostly related to adding exceptions and rules to my CI. Notably, I added the ability to track minor and patch releases on package, so I get alerted to new minor relases on Alpine's stable releases. - -Indeed, this is still less activity than last year, where I added 48 new aports to my staging repo, and pushed 282 new commits. - -#### QubesOS template - -I created a few years ago an Alpine Linux template for QubesOS. I pushed 69 commits to this repo, and ported the template to Qubes' latest version. I have not done much in improvements to this, given that I hadn't had the time to push this project further. - -## postmarketOS - -I pushed a total of 60 commits in the last year, all centered around two devices: the PineNote and the uConsole. - -#### pine64's PineNote - -I took maintainership of the PineNote port, having made many improvements. Notably: - -* Upgraded the linux kernel to latest mainline (6.18) -* Ported hrdl's patchset that uses clever logics to improve e-ink response time -* Upgraded the u-boot to latest release, and now boots using EFI -* Made the port community ready, and submitted a merge request to move the device to community - -#### ClockworkPi's uConsole - -I contributed to the uConsole ports by extending the raspberrypi support from the cm4 to the cm5 and cm3. I also added support to the radxa-cm5, but unfortunately the port was removed as the build for the downstream kernel was problematic. - -## Ilot - -In 2021, I started a [small Nextcloud instance](https://ilot.io) to be used by community and student groups in Montreal. In 2025, I made many improvement to the service. Notably, I finally got a team together to improve the bus factor, and migrated the services to a new Ampere based server cluster. Our services are packaged in Alpine packages, thus buildable using a [repo](https://forge.ilot.io/ilot/iports). I pushed 102 commits, mostly related to our authentik package and its dependencies. - -## Other - -I attended this year's Hackers on Planet Earth and met some very cool people! My favorite talk was *Marlon Kautz's Data Autonomy: Counter-Surveillance Strategies for Civil Society*. - -## Plans for 2026 - -I certainly feel like I stepped back from contributing to FOSS this year, as I got busy with other obligations. I'd like to change that, and better organize my goals to get a momentum going. Here are a few goals and projets that I'd like to work on. - -#### postmarketOS - -I'd like to get myself involved more with postmarketOS. I think it is a fantastic project, and I think this blasts Alpine Linux into very important and exciting territories. This was my first year getting involved, and I'd like to contribute more. Notably: - -* Get the PineNote pmOS port in community, and improve e-ink support on the mobile UIs pmOS ships with for the v26.06 release -* Improve uConsole support with the Radxa CM5 module so that it can at least be reintroduced in testing. This would involve using the mainline kernel. -* Add support for the MNT reform next laptop -* Add support for zfs -* Become a trusted contributor to help with MR reviews -* Become a financial contributor to the pmOS project - -#### Alpine Linux - -I don't think I'll improve my odds this year in Alpine Linux. I've been a maintainer since 2022 when I first merged the .NET 3.1 compiler. I've had a lot of fun since then, but the project never felt accessible enough for me to get involved more. At best, maintaining Alpine packages feels like my morning sudoku, at worst it feels like a chore. In any case, I don't plan on taking on more, but I'd like to improve my current packages: - -* Finish the dotnet10 port to riscv64 -* Introduce a test suite for electron, so that I can move electron to community -* Improve raspberrypi-usbboot and move it to community -* Add rockchiprs as a new aport - -#### Qubes - -This project has been in maintainance mode for a long while, mostly by lack of time to improve it. Some longstanding goals that I'd like to work-on this year includes: - -* Upstream the package building, so that builds are done on upstream hardware. -* Make the template buildable on the new (v2) version of the builder -* (maybe) Get the template working for system Appvms -* Get a postmarketOS template going - -#### Ilot - -Most work in 2026 for ilot will involve getting a better governance structure going, and move our servers out of my server closet. I also aim to help more student unions migrate off of Google Drive to our infrastructure, and improve on service availability. - -#### Documentation - -I'd like to get better at documenting my different projects. Contributing to postmarketOS' wiki has been great fun and practice, and the last few years of integrating infrastructure as code approaches has helped make my process more transparent. Ilot's documentation is also very incomplete. This blog might be a good place to document progress on different projets, but I don't have a consolidated knowledge base. In any case, this year I practiced taking more notes down, so that I have some knowledge that I can eventually organize. - -- - -Well that's it folks! - -Happy new years! diff --git a/blog/2026-01-02-foss-recap-2025/index.html b/blog/2026-01-02-foss-recap-2025/index.html new file mode 100644 index 0000000..3054ff3 --- /dev/null +++ b/blog/2026-01-02-foss-recap-2025/index.html @@ -0,0 +1,271 @@ + + + + + + + + + + + FOSS Recap 2025 - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

FOSS Recap 2025

+ +
+ +

Following many other developpers, here is a recap of all the noticeable FOSS related projects that I have contributed to in 2025.

+ +

Alpine Linux

+ +

As of beginning of 2026, I maintain a total of 178 packages for Alpine Linux, in addition to 26 that I maintain in my own repo.

+ +

Aports

+ +

During the last year, I pushed a total of 451 commits (top 12 committer!) to Alpine Linux aports. Almost half were updates to python packages (231).

+ +

I also added 14 new aports to Alpine Linux repositories:

+ +
    +
  • dotnet10-{sdk,runtime,stage0}
  • +
  • koreader
  • +
  • nwg-menu
  • +
  • openterface-qt
  • +
  • pinenote-service
  • +
  • pneink-theme
  • +
  • py3-coverage-conditional-plugin
  • +
  • py3-cron-descriptor
  • +
  • py3-epmeh
  • +
  • py3-django-celery-beat
  • +
  • py3-django-ninja
  • +
  • py3-python-crontab
  • +
  • rot8
  • +
  • skiasharp
  • +
+ +

I also took maintainership of 3 aports:

+ +
    +
  • raspberrypi-usbbot
  • +
  • looking-glass
  • +
  • arm-trusted-firmware
  • +
+ +

The last one (arm-trusted-firmware) is my first main package!

+ +

That said, this looks to be less activity than last year, where I pushed 605 commits, added 69 new aports, and took maintainership of 17 packages.

+ +

Ayaports

+ +

As mentionned, I maintain my own port repo, which acts as my staging repo, and allows me to backports packages from Alpine's testing to latest stable Alpine release. Ignoring my backports, I pushed 58 updates to my staging packages and added 8 new aports.

+ +

I improved a lot on my package monitoring CI that alerts me (by creating a new issue on my forge) whenever a package needs updating. I pushed 78 commits to this, mostly related to adding exceptions and rules to my CI. Notably, I added the ability to track minor and patch releases on package, so I get alerted to new minor relases on Alpine's stable releases.

+ +

Indeed, this is still less activity than last year, where I added 48 new aports to my staging repo, and pushed 282 new commits.

+ +

QubesOS template

+ +

I created a few years ago an Alpine Linux template for QubesOS. I pushed 69 commits to this repo, and ported the template to Qubes' latest version. I have not done much in improvements to this, given that I hadn't had the time to push this project further.

+ +

postmarketOS

+ +

I pushed a total of 60 commits in the last year, all centered around two devices: the PineNote and the uConsole.

+ +

pine64's PineNote

+ +

I took maintainership of the PineNote port, having made many improvements. Notably:

+ +
    +
  • Upgraded the linux kernel to latest mainline (6.18)
  • +
  • Ported hrdl's patchset that uses clever logics to improve e-ink response time
  • +
  • Upgraded the u-boot to latest release, and now boots using EFI
  • +
  • Made the port community ready, and submitted a merge request to move the device to community
  • +
+ +

ClockworkPi's uConsole

+ +

I contributed to the uConsole ports by extending the raspberrypi support from the cm4 to the cm5 and cm3. I also added support to the radxa-cm5, but unfortunately the port was removed as the build for the downstream kernel was problematic.

+ +

Ilot

+ +

In 2021, I started a small Nextcloud instance to be used by community and student groups in Montreal. In 2025, I made many improvement to the service. Notably, I finally got a team together to improve the bus factor, and migrated the services to a new Ampere based server cluster. Our services are packaged in Alpine packages, thus buildable using a repo. I pushed 102 commits, mostly related to our authentik package and its dependencies.

+ +

Other

+ +

I attended this year's Hackers on Planet Earth and met some very cool people! My favorite talk was Marlon Kautz's Data Autonomy: Counter-Surveillance Strategies for Civil Society.

+ +

Plans for 2026

+ +

I certainly feel like I stepped back from contributing to FOSS this year, as I got busy with other obligations. I'd like to change that, and better organize my goals to get a momentum going. Here are a few goals and projets that I'd like to work on.

+ +

postmarketOS

+ +

I'd like to get myself involved more with postmarketOS. I think it is a fantastic project, and I think this blasts Alpine Linux into very important and exciting territories. This was my first year getting involved, and I'd like to contribute more. Notably:

+ +
    +
  • Get the PineNote pmOS port in community, and improve e-ink support on the mobile UIs pmOS ships with for the v26.06 release
  • +
  • Improve uConsole support with the Radxa CM5 module so that it can at least be reintroduced in testing. This would involve using the mainline kernel.
  • +
  • Add support for the MNT reform next laptop
  • +
  • Add support for zfs
  • +
  • Become a trusted contributor to help with MR reviews
  • +
  • Become a financial contributor to the pmOS project
  • +
+ +

Alpine Linux

+ +

I don't think I'll improve my odds this year in Alpine Linux. I've been a maintainer since 2022 when I first merged the .NET 3.1 compiler. I've had a lot of fun since then, but the project never felt accessible enough for me to get involved more. At best, maintaining Alpine packages feels like my morning sudoku, at worst it feels like a chore. In any case, I don't plan on taking on more, but I'd like to improve my current packages:

+ +
    +
  • Finish the dotnet10 port to riscv64
  • +
  • Introduce a test suite for electron, so that I can move electron to community
  • +
  • Improve raspberrypi-usbboot and move it to community
  • +
  • Add rockchiprs as a new aport
  • +
+ +

Qubes

+ +

This project has been in maintainance mode for a long while, mostly by lack of time to improve it. Some longstanding goals that I'd like to work-on this year includes:

+ +
    +
  • Upstream the package building, so that builds are done on upstream hardware.
  • +
  • Make the template buildable on the new (v2) version of the builder
  • +
  • (maybe) Get the template working for system Appvms
  • +
  • Get a postmarketOS template going
  • +
+ +

Ilot

+ +

Most work in 2026 for ilot will involve getting a better governance structure going, and move our servers out of my server closet. I also aim to help more student unions migrate off of Google Drive to our infrastructure, and improve on service availability.

+ +

Documentation

+ +

I'd like to get better at documenting my different projects. Contributing to postmarketOS' wiki has been great fun and practice, and the last few years of integrating infrastructure as code approaches has helped make my process more transparent. Ilot's documentation is also very incomplete. This blog might be a good place to document progress on different projets, but I don't have a consolidated knowledge base. In any case, this year I practiced taking more notes down, so that I have some knowledge that I can eventually organize.

+ +

-

+ +

Well that's it folks!

+ +

Happy new years!

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/blog/index.en.html b/blog/index.en.html new file mode 100644 index 0000000..519c856 --- /dev/null +++ b/blog/index.en.html @@ -0,0 +1,165 @@ + + + + + + + + + + + Blog - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Latest

+

+
+ +FOSS Recap 2025
+ + +Posted + + +
+

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/blog/index.fr.html b/blog/index.fr.html new file mode 100644 index 0000000..f6f1044 --- /dev/null +++ b/blog/index.fr.html @@ -0,0 +1,158 @@ + + + + + + + + + + + Blog - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ +

Récent

+

(basculer vers l’anglais pour tout mon contenu)

+

+

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Propulsé par ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/contact.fr.po b/contact.fr.po deleted file mode 100644 index 5ae00cb..0000000 --- a/contact.fr.po +++ /dev/null @@ -1,69 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: ayakael.net\n" -"POT-Creation-Date: 2025-04-03 10:51-0400\n" -"PO-Revision-Date: 2025-04-03 10:52-0400\n" -"Last-Translator: \n" -"Language-Team: ayakael \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.5\n" - -#. type: Plain text -#, no-wrap -msgid "[[!meta title=\"Contact\"]]\n" -msgstr "[[!meta title=\"Contact\"]]\n" - -#. type: Title # -#, no-wrap -msgid "How to contact me" -msgstr "Comment me joindre" - -#. type: Plain text -#, no-wrap -msgid "
\n" -msgstr "
\n" - -#. type: Plain text -msgid "" -"The best way to reach me is by email, use the ProtonMail-backed address: " -"[antoine@ayakael.net](mailto:antoine@ayakael.net). If you contact me using a " -"non-ProtonMail email, you can encrypt using [this PGP key](/keys/" -"publickey.antoine.at.ayakael.net-72498db60f2a3d5786517585eba2a86db6fcb3ab.asc)." -msgstr "" -"La meilleure façon de me joindre est par courriel, en utilisant l'adresse " -"soutenue par ProtonMail : [antoine@ayakael.net](mailto:antoine@ayakael.net). " -"Si vous me contactez en utilisant un email autre qu'un de ProtonMail, vous " -"pouvez le chiffrer en utilisant [cette clé PGP](/keys/" -"publickey.antoine.at.ayakael.net-72498db60f2a3d5786517585eba2a86db6fcb3ab.asc)." - -#. type: Plain text -msgid "" -"You can also send me a direct message on my Mastodon account: " -"[@agora.ilot.io@ayakael](https://agora.ilot.io/@ayakael)" -msgstr "" -"Vous pouvez également m'envoyer un message direct à mon compte Mastodon : " -"[@agora.ilot.io@ayakael](https://agora.ilot.io/@ayakael)" - -#. type: Plain text -msgid "" -"Finally, you can send a message to [my Signal](https://signal.me/#eu/" -"AoOsWsIcxLrP0hxNNk1HpU9RbZuBYwVfJkLYSLTptO816TwldtBMypTrPPhZH8Gv)" -msgstr "" -"Pour terminer, vous pouvez m'envoyer un message vers [mon Signal](https://" -"signal.me/#eu/" -"AoOsWsIcxLrP0hxNNk1HpU9RbZuBYwVfJkLYSLTptO816TwldtBMypTrPPhZH8Gv)" - -#. type: Plain text -msgid "If you found an error on the site, you can report it to me by email." -msgstr "" -"Si vous avez trouvé une erreur sur le site, vous pouvez me la signaler par " -"courriel." diff --git a/contact.mdwn b/contact.mdwn deleted file mode 100644 index 7422bd8..0000000 --- a/contact.mdwn +++ /dev/null @@ -1,13 +0,0 @@ -[[!meta title="Contact"]] - -# How to contact me - -
- -The best way to reach me is by email, use the ProtonMail-backed address: [antoine@ayakael.net](mailto:antoine@ayakael.net). If you contact me using a non-ProtonMail email, you can encrypt using [this PGP key](/keys/publickey.antoine.at.ayakael.net-72498db60f2a3d5786517585eba2a86db6fcb3ab.asc). - -You can also send me a direct message on my Mastodon account: [@agora.ilot.io@ayakael](https://agora.ilot.io/@ayakael) - -Finally, you can send a message to [my Signal](https://signal.me/#eu/AoOsWsIcxLrP0hxNNk1HpU9RbZuBYwVfJkLYSLTptO816TwldtBMypTrPPhZH8Gv) - -If you found an error on the site, you can report it to me by email. diff --git a/contact.pot b/contact.pot deleted file mode 100644 index 7dae4b6..0000000 --- a/contact.pot +++ /dev/null @@ -1,60 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2025-04-03 10:51-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "[[!meta title=\"Contact\"]]\n" -msgstr "" - -#. type: Title # -#, markdown-text, no-wrap -msgid "How to contact me" -msgstr "" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "
\n" -msgstr "" - -#. type: Plain text -#, markdown-text -msgid "" -"The best way to reach me is by email, use the ProtonMail-backed address: " -"[antoine@ayakael.net](mailto:antoine@ayakael.net). If you contact me using a " -"non-ProtonMail email, you can encrypt using [this PGP " -"key](/keys/publickey.antoine.at.ayakael.net-72498db60f2a3d5786517585eba2a86db6fcb3ab.asc)." -msgstr "" - -#. type: Plain text -#, markdown-text -msgid "" -"You can also send me a direct message on my Mastodon account: " -"[@agora.ilot.io@ayakael](https://agora.ilot.io/@ayakael)" -msgstr "" - -#. type: Plain text -#, markdown-text -msgid "" -"Finally, you can send a message to [my " -"Signal](https://signal.me/#eu/AoOsWsIcxLrP0hxNNk1HpU9RbZuBYwVfJkLYSLTptO816TwldtBMypTrPPhZH8Gv)" -msgstr "" - -#. type: Plain text -#, markdown-text -msgid "If you found an error on the site, you can report it to me by email." -msgstr "" diff --git a/contact/index.en.html b/contact/index.en.html new file mode 100644 index 0000000..4d3b4f7 --- /dev/null +++ b/contact/index.en.html @@ -0,0 +1,165 @@ + + + + + + + + + + + Contact - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

How to contact me

+
+

The best way to reach me is by email, use the ProtonMail-backed +address: antoine@ayakael.net. +If you contact me using a non-ProtonMail email, you can encrypt using this +PGP key.

+

You can also send me a direct message on my Mastodon account: @agora.ilot.io@ayakael

+

Finally, you can send a message to my +Signal

+

If you found an error on the site, you can report it to me by +email.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/contact/index.fr.html b/contact/index.fr.html new file mode 100644 index 0000000..46d1386 --- /dev/null +++ b/contact/index.fr.html @@ -0,0 +1,168 @@ + + + + + + + + + + + Contact - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Comment me joindre

+
+

La meilleure façon de me joindre est par courriel, en utilisant +l’adresse soutenue par ProtonMail : antoine@ayakael.net. Si vous me +contactez en utilisant un email autre qu’un de ProtonMail, vous pouvez +le chiffrer en utilisant cette +clé PGP.

+

Vous pouvez également m’envoyer un message direct à mon compte +Mastodon : @agora.ilot.io@ayakael

+

Pour terminer, vous pouvez m’envoyer un message vers mon +Signal

+

Si vous avez trouvé une erreur sur le site, vous pouvez me la +signaler par courriel.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Propulsé par ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/footer.fr.po b/footer.fr.po deleted file mode 100644 index 8087307..0000000 --- a/footer.fr.po +++ /dev/null @@ -1,51 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: ayakael.net\n" -"POT-Creation-Date: 2024-09-10 22:25-0400\n" -"PO-Revision-Date: 2024-09-10 22:25-0400\n" -"Last-Translator: \n" -"Language-Team: ayakael \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.4.3\n" - -#. type: Content of:
-#, fuzzy -#| msgid "Copyleft © 2024-2024 ayakael [[CC-BY-SA|meta/license]]" -msgid "Copyleft © 2024 ayakael [[CC-BY-SA|meta/license]]" -msgstr "Copyleft © 2024 ayakael [[CC-BY-SA|meta/license]]" - -#. type: Content of:
-msgid "Powered by [[ikiwiki|http://ikiwiki.info/]]." -msgstr "Propulsé par [[ikiwiki|http://ikiwiki.info/]]." - -#, fuzzy -#~| msgid "" -#~| "

\n" -#~| "\t\n" -#~| "\t\tCopyleft © 2024-2024 ayakael [[CC-BY-SA|meta/license]]\n" -#~| "\t\n" -#~| "\t\n" -#~| "\t\tPowered by [[ikiwiki|http://ikiwiki.info/]].\n" -#~| "\t\t[[Theme|https://gitlab.com/anarcat/ikiwiki-bootstrap-anarcat]] by [[anarcat|https://anarc.at/blog/2015-09-09-bootstrap]].\n" -#~| "\t\n" -#~| "

\n" -#~ msgid " Copyleft © 2024-2024 ayakael [[CC-BY-SA|meta/license]] Powered by [[ikiwiki|http://ikiwiki.info/]]. " -#~ msgstr "" -#~ "

\n" -#~ "\t\n" -#~ "\t\tCopyleft © 2024-2024 ayakael [[CC-BY-SA|meta/license]]\n" -#~ "\t\n" -#~ "\t\n" -#~ "\t\tPropulsé par [[ikiwiki|http://ikiwiki.info/]].\n" -#~ "\t\t[[Thème|https://gitlab.com/anarcat/ikiwiki-bootstrap-anarcat]] par [[anarcat|https://anarc.at/blog/2015-09-09-bootstrap]].\n" -#~ "\t\n" -#~ "

\n" diff --git a/footer.html b/footer.html deleted file mode 100644 index df1a92c..0000000 --- a/footer.html +++ /dev/null @@ -1,8 +0,0 @@ -
-
- Copyleft © 2024 ayakael [[CC-BY-SA|meta/license]] -
-
- Powered by [[ikiwiki|http://ikiwiki.info/]]. -
-
diff --git a/footer.pot b/footer.pot deleted file mode 100644 index 3a94975..0000000 --- a/footer.pot +++ /dev/null @@ -1,25 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2024-09-17 14:37-0400\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. type: Content of:
-msgid "Copyleft © 2024 ayakael [[CC-BY-SA|meta/license]]" -msgstr "" - -#. type: Content of:
-msgid "Powered by [[ikiwiki|http://ikiwiki.info/]]." -msgstr "" diff --git a/footer/index.en.html b/footer/index.en.html new file mode 100644 index 0000000..6b7cecd --- /dev/null +++ b/footer/index.en.html @@ -0,0 +1,157 @@ + + + + + + + + + + + footer - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/footer/index.fr.html b/footer/index.fr.html new file mode 100644 index 0000000..b593787 --- /dev/null +++ b/footer/index.fr.html @@ -0,0 +1,158 @@ + + + + + + + + + + + footer.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Propulsé par ikiwiki. +
+
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Propulsé par ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/generated.txt b/generated.txt new file mode 100644 index 0000000..51bc74d --- /dev/null +++ b/generated.txt @@ -0,0 +1 @@ +Wed May 20 09:38:23 EDT 2026 diff --git a/guides.fr.po b/guides.fr.po deleted file mode 100644 index 39ced3e..0000000 --- a/guides.fr.po +++ /dev/null @@ -1,66 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: 2026-01-03 13:57-0500\n" -"PO-Revision-Date: 2026-01-03 13:58-0500\n" -"Last-Translator: \n" -"Language-Team: \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.8\n" - -#. type: Plain text -#, no-wrap -msgid "[[!meta title=\"Guides\"]]\n" -msgstr "" - -#. type: Title # -#, no-wrap -msgid "Latest" -msgstr "" -"Récent\n" -"(basculer vers l'anglais pour tout mon contenu)" - -#. type: Plain text -#, no-wrap -msgid "" -"[[!inline pages=\"\n" -"(\n" -" page(guides/*)\n" -" or tagged(guide)\n" -")\n" -"and !guides/*/*\n" -"and !guides/*fr*\n" -"and !tagged(draft)\n" -"and !tagged(redirection)\"\n" -"archive=yes\n" -"title=\"Ayakael - Guides\"\n" -"description=\"For those who wish to follow my attempt at documentation\"\n" -"feedshow=\"10\"\n" -"actions=yes\n" -"trail=yes\n" -"]]\n" -msgstr "" -"[[!inline pages=\"\n" -"(\n" -" page(guides/*fr*)\n" -" or tagged(guide)\n" -")\n" -"and !guides/*/*\n" -"and !tagged(draft)\n" -"and !tagged(redirection)\"\n" -"archive=yes\n" -"title=\"Ayakael - Guides\"\n" -"description=\"Pour ceux et celles qui veulent suivre mes tentatives à documenter\"\n" -"feedshow=\"10\"\n" -"actions=yes\n" -"trail=yes\n" -"]]\n" diff --git a/guides.mdwn b/guides.mdwn deleted file mode 100644 index 377404a..0000000 --- a/guides.mdwn +++ /dev/null @@ -1,21 +0,0 @@ -[[!meta title="Guides"]] - -# Latest - -[[!inline pages=" -( - page(guides/*) - or tagged(guide) -) -and !guides/*/* -and !guides/*fr* -and !tagged(draft) -and !tagged(redirection)" -archive=yes -title="Ayakael - Guides" -description="For those who wish to follow my attempt at documentation" -feedshow="10" -actions=yes -trail=yes -]] - diff --git a/guides.pot b/guides.pot deleted file mode 100644 index 60fd743..0000000 --- a/guides.pot +++ /dev/null @@ -1,48 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2026-01-03 13:58-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "[[!meta title=\"Guides\"]]\n" -msgstr "" - -#. type: Title # -#, markdown-text, no-wrap -msgid "Latest" -msgstr "" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "" -"[[!inline pages=\"\n" -"(\n" -" page(guides/*)\n" -" or tagged(guide)\n" -")\n" -"and !guides/*/*\n" -"and !guides/*fr*\n" -"and !tagged(draft)\n" -"and !tagged(redirection)\"\n" -"archive=yes\n" -"title=\"Ayakael - Guides\"\n" -"description=\"For those who wish to follow my attempt at documentation\"\n" -"feedshow=\"10\"\n" -"actions=yes\n" -"trail=yes\n" -"]]\n" -msgstr "" diff --git a/guides/davinci-resolve.mdwn b/guides/davinci-resolve.mdwn deleted file mode 100644 index 543ca83..0000000 --- a/guides/davinci-resolve.mdwn +++ /dev/null @@ -1,143 +0,0 @@ -[[!meta title="Davinci Resolve Workstation"]] - -# Davinci Resolve Workstation - -
- -I do my editing on Davinci Resolve. Since I am trying to get editing and gaming -off of Windows, I created a Davinci Resolve workstation that is based on Rocky -Linux 8, the OS Davinci officially supports. While Davinci can be installed on -other distros, it doesn't work on my [[distro of choice|alpine linux]], thus -might as well create a dedicated VM for it. Since my [[workstation]] uses -Proxmox, I can easily use different distros. - -This guide thus documents my installation process. - -## 1) Install Rocky Linux 8.6 - -You can download the [BlackMagic's -ISO](https://downloads.blackmagicdesign.com/DaVinciResolve/DaVinci-Resolve-Linux-RockyLinux_8.6.iso) -for easier installation - -* Upgrade to latest packages -``` -sudo dnf update -``` -* Enable networking - -By default, wired networking is not automatically turned on. - -## 2) Install `amdgpu-pro` - -* Remove `nomodeset` and `rdblacklist=nouveau` in grub config in -`/etc/default/grub` and `/boot/grub2/grubenv` - -``` -sudo dnf install http://repo.radeon.com/amdgpu-install/6.3/rhel/8.10/amdgpu-install-6.3.60300-1.el8.noarch.rpm -sudo amdgpu-install --usecase=workstation --vulkan=pro --opencl=rocr -``` - -* Add user to `video` and `render` group: -``` -sudo usermod -a -G render -sudo usermod -a -G video -``` - -## 3) Install Davince Resolve Studio 19 - -* Install `xcb-util-cursor`: -``` -sudo dnf install epel-release -sudo dnf install xcb-util-cursor -``` - -* Download Davinci Resolve Studio 19 by going to [support -center](https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion), -clicking the desired version, and finally `Downlod only` -* Extract and run the installer -* Apply crack (confirmed working with version 19.1.2) -``` -sudo perl -pi -e 's/\x00\x85\xc0\x74\x7b\xe8/\x00\x85\xc0\xEB\x7b\xe8/g' /opt/resolve/bin/resolve -``` - -## 4) Install `awesome` window manager - -I only care for tiling window managers. Unfortunately, my manager of choice -`awesome` is not available on Rocky Linux 8. I thus have to compile it myself, -which involces compiling its build dependencies. - -Compiling awesome on Rocky Linux 8.10 requires the following dependencies (in order of build): - -* lua -* lua-markdown -* lua-lgi -* lua-filesystem -* lua-ldoc -* lua-penlight -* xapian-xire -* doxygen (note: this ought to be fc29 version) -* libxdg-basedir -* xcb-util -* xcb-util-wm -* xcb-util-keysymx -* xorg-x11-util-macros -* xcb-util-xrm -* libxkb -* xcb-util-image -* xcb-util-renderutil - -To build these, you have to go through various iterations of fetching -source RPMs from [fedora 28 src repo](https://archive.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/source/tree/Packages), -installing the builddeps and finally rebuilding using `rpbbuild`. Thus, -for lua, you would: -``` -wget https://archive.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/source/tree/Packages/l/lua-5.3.4-10.fc28.src.rpm -sudo dnf builddep lua-*.src.rpm --nobest --refresh -rpmbuild --rebuild lua-.src.rpm -``` - -To facilitate installing the built dependencies, you can use `createrepo` to -create a repo in `/home/user/rpmbuild` and pointing a new dnf repo to this -folder. - -Specific notes: - -* doxygen src rpm should come Fedora 29 -* lua-ldoc and lua-penlight depend on each other, thus you will need to -temporarily activate the fc28 repo by adding this in -`/etc/yum.repos.d/fedora.repo` -``` -[fedora] -name=Fedora 28 - x86_64 -metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-28&arch=x86_64 -enabled=1 -gpgcheck=0 -``` -Make sure to disable it after getting lua-ldoc or lua-penlight built. - -After building all of your dependencies, clean-up everything by rolling back to -the transaction before you started installing build dependencies. Use `dnf -history info ` to find that number and then `dnf history -rollback ` - -Once everything is rolledback, you can install awesome and *just* it's runtime -dependencies, and then refer to archlinux's -[awesome-gnome](https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=awesome-gnome) -package or the [wiki article it is based -on](http://web.archive.org/web/20160205182002/http://awesome.naquadah.org/wiki/Quickly_Setting_up_Awesome_with_Gnome) -to integrate awesome in gnome. - -## 5) Install git-annex standalone - -I use git-annex to store my footage. Indeed, there isn't a git-annex package, but it is easy to install git-annex -standalone by following [upstream's guide](https://git-annex.branchable.com/install/rpm_standalone/) - -## Other options - -I mentionned above that there were other ways to install Davinci on Linux -without having to use Rocky Linux. Here are a few: - -* [via distrobox](https://github.com/zelikos/davincibox) -* [on debian](https://github.com/flolu/davinci-resolve-linux) -* [on arch](https://wiki.archlinux.org/title/DaVinci_Resolve) -* [on fedora](https://github.com/H3rz3n/How-install-DaVinci-Resolve-in-Fedora-Linux) diff --git a/guides/davinci-resolve/index.html b/guides/davinci-resolve/index.html new file mode 100644 index 0000000..0a5e4d5 --- /dev/null +++ b/guides/davinci-resolve/index.html @@ -0,0 +1,272 @@ + + + + + + + + + + + Davinci Resolve Workstation - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Davinci Resolve Workstation

+
+

I do my editing on Davinci Resolve. Since I am trying to get editing +and gaming off of Windows, I created a Davinci Resolve workstation that +is based on Rocky Linux 8, the OS Davinci officially supports. While +Davinci can be installed on other distros, it doesn’t work on my distro of choice, thus might as well create a +dedicated VM for it. Since my workstation uses Proxmox, I can easily use +different distros.

+

This guide thus documents my installation process.

+

1) Install Rocky Linux 8.6

+

You can download the BlackMagic’s +ISO for easier installation

+
    +
  • Upgrade to latest packages
  • +
+
sudo dnf update
+
    +
  • Enable networking
  • +
+

By default, wired networking is not automatically turned on.

+

2) Install amdgpu-pro

+
    +
  • Remove nomodeset and rdblacklist=nouveau +in grub config in /etc/default/grub and +/boot/grub2/grubenv
  • +
+
sudo dnf install http://repo.radeon.com/amdgpu-install/6.3/rhel/8.10/amdgpu-install-6.3.60300-1.el8.noarch.rpm
+sudo amdgpu-install --usecase=workstation --vulkan=pro --opencl=rocr
+
    +
  • Add user to video and render group:
  • +
+
sudo usermod -a -G render
+sudo usermod -a -G video
+

3) Install Davince Resolve +Studio 19

+
    +
  • Install xcb-util-cursor:
  • +
+
sudo dnf install epel-release
+sudo dnf install xcb-util-cursor
+
    +
  • Download Davinci Resolve Studio 19 by going to support +center, clicking the desired version, and finally +Downlod only
  • +
  • Extract and run the installer
  • +
  • Apply crack (confirmed working with version 19.1.2)
  • +
+
sudo perl -pi -e 's/\x00\x85\xc0\x74\x7b\xe8/\x00\x85\xc0\xEB\x7b\xe8/g' /opt/resolve/bin/resolve
+

4) Install awesome +window manager

+

I only care for tiling window managers. Unfortunately, my manager of +choice awesome is not available on Rocky Linux 8. I thus +have to compile it myself, which involces compiling its build +dependencies.

+

Compiling awesome on Rocky Linux 8.10 requires the following +dependencies (in order of build):

+
    +
  • lua
  • +
  • lua-markdown
  • +
  • lua-lgi
  • +
  • lua-filesystem
  • +
  • lua-ldoc
  • +
  • lua-penlight
  • +
  • xapian-xire
  • +
  • doxygen (note: this ought to be fc29 version)
  • +
  • libxdg-basedir
  • +
  • xcb-util
  • +
  • xcb-util-wm
  • +
  • xcb-util-keysymx
  • +
  • xorg-x11-util-macros
  • +
  • xcb-util-xrm
  • +
  • libxkb
  • +
  • xcb-util-image
  • +
  • xcb-util-renderutil
  • +
+

To build these, you have to go through various iterations of fetching +source RPMs from fedora +28 src repo, installing the builddeps and finally rebuilding using +rpbbuild. Thus, for lua, you would:

+
wget https://archive.fedoraproject.org/pub/archive/fedora/linux/releases/28/Everything/source/tree/Packages/l/lua-5.3.4-10.fc28.src.rpm
+sudo dnf builddep lua-*.src.rpm --nobest --refresh
+rpmbuild --rebuild lua-.src.rpm
+

To facilitate installing the built dependencies, you can use +createrepo to create a repo in +/home/user/rpmbuild and pointing a new dnf repo to this +folder.

+

Specific notes:

+
    +
  • doxygen src rpm should come Fedora 29
  • +
  • lua-ldoc and lua-penlight depend on each other, thus you will need +to temporarily activate the fc28 repo by adding this in +/etc/yum.repos.d/fedora.repo
  • +
+
[fedora]
+name=Fedora 28 - x86_64
+metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-28&arch=x86_64
+enabled=1
+gpgcheck=0
+

Make sure to disable it after getting lua-ldoc or lua-penlight +built.

+

After building all of your dependencies, clean-up everything by +rolling back to the transaction before you started installing build +dependencies. Use dnf history info <transaction no> +to find that number and then +dnf history rollback <transaction no>

+

Once everything is rolledback, you can install awesome and +just it’s runtime dependencies, and then refer to archlinux’s +awesome-gnome +package or the wiki +article it is based on to integrate awesome in gnome.

+

5) Install git-annex +standalone

+

I use git-annex to store my footage. Indeed, there isn’t a git-annex +package, but it is easy to install git-annex standalone by following upstream’s +guide

+

Other options

+

I mentionned above that there were other ways to install Davinci on +Linux without having to use Rocky Linux. Here are a few:

+ + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/guides/gaming-vm-on-qubes-using-bazzite.mdwn b/guides/gaming-vm-on-qubes-using-bazzite.mdwn deleted file mode 100644 index 2d9b684..0000000 --- a/guides/gaming-vm-on-qubes-using-bazzite.mdwn +++ /dev/null @@ -1,177 +0,0 @@ -[[!meta title="Gaming VM on Qubes Using Bazzite"]] - -# Gaming VM on Qubes Using Bazzite - -
- -My main workstation now uses QubesOS rather than Proxmox. This workstation has two GPUs and two USB controllers. I wanted to be able to assign the more powerful GPU to a Gaming Qubes, but Qubes doesn't support that well. On top of that, the Sapphire Pulse 6700XT GPU that I have has [the AMD reset bug](https://forum.level1techs.com/t/6700xt-reset-bug/181814). To seamlessly be able to shutdown and assign the GPU to another VM (say my video editing environment), I applied a workaround that involved flashing a BIOS from another (working) 6700XT model (the Sapphire Nitro+ 6700XT). This solved the issue, at the cost of having to apply the original romfile on VM start. While this is easy on Proxmox (via `romfile` options), it isn't so easy on Qubes. - -I have ressources down at the bottom one can refer to for more information. In any case, lets start the guide. - -A note: QubesOS explicitely does not support GPU Passthrough as these devices are notoriously bad at security. I've done my threat modelling, you should do yours to make sure GPU passthrough doesn't expose you. The team is working on [safe GPU acceleration](https://github.com/orgs/QubesOS/projects/17), but it looks like it stalled. - -## Setup Bazzite - -* Download ISO from https://bazzite.gg/#image-picker (in my case, went with Deck version for big screen mode) -* Transfer ISO to dom0 (in my case, using ISO from qubes wasn't working). From dom0: -```shell -qvm-run -p $vm 'cat /path/to/iso' > bazzite.iso -``` -* Create standalone VM using Qubes VM manager, setting root drive to 64GB and start VM from dom0 commandline pointing to ISO: -```shell -qvm-start --cdrom=dom0:/path/to/iso bazzite -``` -* In screen, install bazzite with default settings, setting the 64GB image as root. When finished, start to see if everything starts without issue. If all good, shutdown. - -## Flash good bios on Sapphire Pulse 6700XT - -(this is copy-pasted almost verbatim from a [level1techs.com forum post](https://forum.level1techs.com/t/6700xt-reset-bug/181814/41) by [Mechanical](https://forum.level1techs.com/u/Mechanical)) - -**I did this for the Sapphire Pulse 6700XT, I make no guarantees this will work on other cards, not even on this card if you have one** - -First off you need to check your card’s memory vendor and you need amdvbflash. I used version 4.71. -You should be able to find your memory vendor by checking GPU-Z in Windows using the stock VBIOS on your current card. Pass it through to your WIndows guest as usual and check GPU-Z for further information. - -The memory vendor and chip needs to be one of the following: - -* 12288 MB, GDDR6, Hynix H56G42AS8DX014 -* 12288 MB, GDDR6, Micron MT61K512M32C -* 12288 MB, GDDR6, Samsung K4ZAF325BM - -If it isn’t you’re taking a gigantic risk flashing anything. - -Next up is dumping the VBIOS. You can also do that through GPU-Z, but I’d do it through Linux as well to ensure the VBIOS is matching. You need to turn off VFIO anyway to flash a VBIOS. Comment out vfio-pci binding the GPU at boot like in /etc/modprobe.d using # and rebuild initramfs using something like mkinitcpio -P and rebooting. The GPU needs to be taken by amdgpu module. - -The command for dumping the BIOS using amdvbflash is: - -```shell -./amdvbflash -s 0 MyOriginalVBIOS.rom -``` - -You can also just dump it through sysbus: - -```shell -cat /sys/bus/pci/devices/0000:0X:00.0/rom -``` - -Where the X is the hexadecimal digit for where your GPU is located. You can find it using lspci -vvv . You probably know yours already. -Dump multiple version of your VBIOS and ensure their checksum are the same so that you don’t sit there with a corrupted VBIOS backup and put it on another machine/cloud to ensure you have it around. - -As everyone points in every guide about these kind of things, but it needs to be said anyway: - -**Flashing any VBIOS, especially cross-vendor like this, will 100% destroy your warranty and you might sit there with a brick.** - -Use caution and remember it is your own fault if it never boots up ever again. You should have dual-BIOS possibilities on your card to be safer. Single-BIOS is very dangerous. You have been warned. -So to flash the thing, get the working VBIOS from here: VGA Bios Collection: Sapphire RX 6700 XT 12 GB | TechPowerUp 48 -The MD5 for this should be `bbcf8fd1e226609094cd2283b3ea2259` - -Next up you need to flash the thing. - -The `-p 0` here means card 0, make sure you’re using the correct card and not your host’s card!!! - -``` -./amdvbflash -i # Check that 0 is the card you want to flash first! -./amdvbflash -fs -fp -fv -p 0 ./249630.rom # This is the actual flashing -``` - -That will essentially flash and change the IDs of the card to match the ROM. - -You can verify that the ROM was correctly flashed by using: - -``` -./amdvbflash -v 0 ./249630.rom -``` - -If everything looks ok, shut down the system completely, cold boot and pray things work out. If it boots up in Linux now without any issues you should re-enable the VFIO-PCI module so it binds the card on the next boot. Don’t forget to rebuild initramfs. - -Lastly, use your original VBIOS and pass that to the guest. That way the card will use the correct clocks for your card and make it run like it used to. - -I would NOT recommend using the Sapphire RX 6700 XT on the host, use your original VBIOS so it runs correctly. - -## Setup PCI Passthrough - -In my configuration, I pass USB device + GPU + NVMe (containing game files), while also loading the original GPU ROM on the guest. Unlike Proxmox, Qubes does not support this, even though Xen supports setting a custom ROM file. A [creative (read: hacky) solution](https://github.com/QubesOS/qubes-issues/issues/7559#issuecomment-1152944698) by [chriswoope](https://github.com/chriswoope) exists to introduce the romfile, but it involves adding the romfile to the linux stubdomain and making changes to `vchan-socket-proxy` to add the necessary arguments when adding the GPU as a device. -* Add GPU bios to stubdomain using following script that can be created under `/usr/local/bin/add-gpubios-stubdomain.sh`: -```bash -#!/usr/bin/bash - -gpubio=$1 - -for stubdom in /usr/libexec/xen/boot/qemu-stubdom-linux-rootfs /usr/libexec/xen/boot/qemu-stubdom-linux-full-rootfs; do - dir="$(mktemp -d)" - cd "$dir" - if ! test -e "$stubdom.orig"; then - mv "$stubdom" "$stubdom.orig" - fi - zcat "$stubdom.orig"|cpio -idm - cp -a "${gpubios:=/usr/libexec/xen/boot/gpubios}" ./share/gpubios - find .|cpio -o -c|gzip -9 > "$stubdom" -done -``` -* Rename `vchan-socket-proxy` to `vchan-socket-proxy.orig`: -```shell -mv /usr/bin/vchan-socket-proxy /usr/bin/vchan-socket-proxy.orig -``` -* Install `nmap-ncat`: -```shell -qubes-dom0-update nmap-ncat -``` -* Create wrapper for `vchan-socket-proxy.orig` under `/usr/bin/vchan-socket-proxy`, replacing `0000:07:00:0` with PCI address of device: -```bash -#!/usr/bin/bash - -vchan-socket-proxy.orig "$1" "$2" "$3" "$4" "$5.internal" & -ncat -k --listen --unixsock "$5" --sh-exec "sed -u -e 's|\"hostaddr\":\"0000:07:00.0\"|\"hostaddr\":\"0000:07:00.0\",\"romfile\":\"/share/gpubios\"|'|ncat --unixsock $5.internal" -``` -* Make these two files executable and add gpu bios to stubdomains: -```shell -chmod +x /usr/bin/vchan-socket-proxy /usr/local/bin/add-gpubios-stubdomain.sh -add-gpubios-stubdomain.sh /path/to/rom -``` -* add devices to qubes: -```shell -qvm-pci list -qvm-pci attach bazzite (address of GPU) --persistent -o no-strict-reset=true -o permissive=true -qvm-pci attach bazzite (address of GPU audio) --persistent -o no-strict-reset=true -o permissive=true -qvm-pci attach bazzite (address of USB controller) --persistent -o no-strict-reset=true -o permissive=true -``` -* disable virtual video mode on qubes, else boot crashes when setting romfile: -```shell -qvm-features bazzite video-model none -``` -* start bazzite qubes, seeing if anything appears on display attached to passthroughed GPU. -* you can follow `/var/log/xen/console/guest-bazzite-dm.log` to make sure romfile argument has been applied - -## Configuring Steam storage and ModOrganizer2. - -Since I am using an nvme drive for the game files, I setup this up as a btrfs drive using the included disk manager. In terminal, on Bazzite's desktop, I setup two subvolumes as `steam` and `mods`. The `steam` submodule is mounted using `/etc/fstab` under `/home/bazzite/.local/share/steam` while `mods` is mounted under `/home/bazzite/Mods`. The latter contains mod files used by ModOrganizer2. - -ModOrganizer2 can be setup using Furglitch's [modorganiser2-linux-installer](https://github.com/Furglitch/modorganizer2-linux-installer/releases). The following should be noted: - -* ModOrganizer does not like being on anywhere that's not under `/home/bazzite` even when setting `STEAM_COMPAT_MOUNTS`. Hence why the NVMe drive is mounted at different locations. -* Barring that, ModOrganizer should be installed in « Global mode », but mod files can be stored under `~/Mods` -* `qpaths` is expected in a different location, a symbolic link needed to be created: -```shell -sudo ln -s /usr/bin/qtpaths6 /usr/local/bin/qtpaths -``` - -## Other notes - -* The qubes' home drive isn't in use. Although, maybe it might be a good idea to move the `home` subvolume from root to there. I didn't do that since I didn't know if that would break Bazzite's storage model. If (for some reason) one would want to set Bazzite up as a template (why, who knows), moving to the private subvolume would be necessary -* My GPU's (already broken) reset mechanism was even more buggy on kernel 6.12. Upgrading to 6.18 did wonders to solve that. -* My USB controller, based on asm2142, is a bit buggy. It sometimes stops recognizing new devices. I suspect that this is due to the USB hub being USB type A rather than C, so I bought a USB-C 10Gbit hub to make sure it isn't signal degradation. - -## Other ressources - -* [[1]Qubes OS forums - GPU Passthrough (passthrough works but no monitor recognized, only vDisplay)](https://forum.qubes-os.org/t/gpu-passthrough-passthrough-works-but-no-monitor-recognized-only-vdisplay/31306) Issue that shows different approaches that might work, notably: -``` -* Edit /etc/default/grub to include rd.qubes.hide_pci, iommu=pt, video=vesafb:off video=efifb:off video=simplefb:off nofb initcall_blacklist=sysfb_init (all the frame buffer stuff is a precaution since I noticed without it I would get text on the monitor connected to the gpu indicating memory being initialized.) See Explaining CSM, efifb=off, and Setting the * Boot GPU Manually - The Passthrough POST for some background on csm vs uefi and how it affects gpu passthrough. -* Edit /usr/share/qubes/templates/libvirt/devices/pci.xml to pass a techpower rom file (didn’t seem to help). For those who care, I filtered on vm.name and device.libvirt_name=‘pci_0000_05_00_0’. -* Edit /usr/share/qubes/templates/libvirt/devices/pci.xml to set rom bar=off (didn’t see to help) -* Edit /usr/share/qubes/templates/libvirt/xen.xml to disable the cpu hypervisor feature (no noticeable affect) -* Create an sh file to change bar0 to 32GB and bar2 to 8MB. This is apparently necessary for Windows to avoid error 43 for whatever reason. Enabling or disabling rebar in bios does not seem to change behavior (may change performance) [SOLVED] 7900 XTX Code 43 or How to get 7900 XTX to work on VFIO - Virtualization - Level1Techs Forums -* Create an sh file to remount the gpu (remove and rescan). -* Attach the GPU with permissive and no-strict-reset. Didn’t seem to change behavior. -* Enable everything related to virtualization in my motherboard bios (proart x670e-creator) -* Disable motherboard and cpu ASPM in my motherboard bios. Didn’t seem to change behavior. -``` diff --git a/guides/gaming-vm-on-qubes-using-bazzite/index.html b/guides/gaming-vm-on-qubes-using-bazzite/index.html new file mode 100644 index 0000000..18dc958 --- /dev/null +++ b/guides/gaming-vm-on-qubes-using-bazzite/index.html @@ -0,0 +1,369 @@ + + + + + + + + + + + Gaming VM on Qubes Using Bazzite - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Gaming VM on Qubes Using +Bazzite

+
+

My main workstation now uses QubesOS rather than Proxmox. This +workstation has two GPUs and two USB controllers. I wanted to be able to +assign the more powerful GPU to a Gaming Qubes, but Qubes doesn’t +support that well. On top of that, the Sapphire Pulse 6700XT GPU that I +have has the AMD +reset bug. To seamlessly be able to shutdown and assign the GPU to +another VM (say my video editing environment), I applied a workaround +that involved flashing a BIOS from another (working) 6700XT model (the +Sapphire Nitro+ 6700XT). This solved the issue, at the cost of having to +apply the original romfile on VM start. While this is easy on Proxmox +(via romfile options), it isn’t so easy on Qubes.

+

I have ressources down at the bottom one can refer to for more +information. In any case, lets start the guide.

+

A note: QubesOS explicitely does not support GPU Passthrough as these +devices are notoriously bad at security. I’ve done my threat modelling, +you should do yours to make sure GPU passthrough doesn’t expose you. The +team is working on safe GPU +acceleration, but it looks like it stalled.

+

Setup Bazzite

+
    +
  • Download ISO from https://bazzite.gg/#image-picker (in my case, went +with Deck version for big screen mode)
  • +
  • Transfer ISO to dom0 (in my case, using ISO from qubes wasn’t +working). From dom0:
  • +
+
qvm-run -p $vm 'cat /path/to/iso' > bazzite.iso
+
    +
  • Create standalone VM using Qubes VM manager, setting root drive to +64GB and start VM from dom0 commandline pointing to ISO:
  • +
+
qvm-start --cdrom=dom0:/path/to/iso bazzite
+
    +
  • In screen, install bazzite with default settings, setting the 64GB +image as root. When finished, start to see if everything starts without +issue. If all good, shutdown.
  • +
+

Flash good bios on +Sapphire Pulse 6700XT

+

(this is copy-pasted almost verbatim from a level1techs.com +forum post by Mechanical)

+

I did this for the Sapphire Pulse 6700XT, I make no +guarantees this will work on other cards, not even on this card if you +have one

+

First off you need to check your card’s memory vendor and you need +amdvbflash. I used version 4.71. You should be able to find your memory +vendor by checking GPU-Z in Windows using the stock VBIOS on your +current card. Pass it through to your WIndows guest as usual and check +GPU-Z for further information.

+

The memory vendor and chip needs to be one of the following:

+
    +
  • 12288 MB, GDDR6, Hynix H56G42AS8DX014
  • +
  • 12288 MB, GDDR6, Micron MT61K512M32C
  • +
  • 12288 MB, GDDR6, Samsung K4ZAF325BM
  • +
+

If it isn’t you’re taking a gigantic risk flashing anything.

+

Next up is dumping the VBIOS. You can also do that through GPU-Z, but +I’d do it through Linux as well to ensure the VBIOS is matching. You +need to turn off VFIO anyway to flash a VBIOS. Comment out vfio-pci +binding the GPU at boot like in /etc/modprobe.d using # and rebuild +initramfs using something like mkinitcpio -P and rebooting. The GPU +needs to be taken by amdgpu module.

+

The command for dumping the BIOS using amdvbflash is:

+
./amdvbflash -s 0 MyOriginalVBIOS.rom
+

You can also just dump it through sysbus:

+
cat /sys/bus/pci/devices/0000:0X:00.0/rom  
+

Where the X is the hexadecimal digit for where your GPU is located. +You can find it using lspci -vvv . You probably know yours already. Dump +multiple version of your VBIOS and ensure their checksum are the same so +that you don’t sit there with a corrupted VBIOS backup and put it on +another machine/cloud to ensure you have it around.

+

As everyone points in every guide about these kind of things, but it +needs to be said anyway:

+

Flashing any VBIOS, especially cross-vendor like this, will +100% destroy your warranty and you might sit there with a +brick.

+

Use caution and remember it is your own fault if it never boots up +ever again. You should have dual-BIOS possibilities on your card to be +safer. Single-BIOS is very dangerous. You have been warned. So to flash +the thing, get the working VBIOS from here: VGA Bios Collection: +Sapphire RX 6700 XT 12 GB | TechPowerUp 48 The MD5 for this should be +bbcf8fd1e226609094cd2283b3ea2259

+

Next up you need to flash the thing.

+

The -p 0 here means card 0, make sure you’re using the +correct card and not your host’s card!!!

+
./amdvbflash -i # Check that 0 is the card you want to flash first!
+./amdvbflash -fs -fp -fv -p 0 ./249630.rom # This is the actual flashing
+

That will essentially flash and change the IDs of the card to match +the ROM.

+

You can verify that the ROM was correctly flashed by using:

+
./amdvbflash -v 0 ./249630.rom
+

If everything looks ok, shut down the system completely, cold boot +and pray things work out. If it boots up in Linux now without any issues +you should re-enable the VFIO-PCI module so it binds the card on the +next boot. Don’t forget to rebuild initramfs.

+

Lastly, use your original VBIOS and pass that to the guest. That way +the card will use the correct clocks for your card and make it run like +it used to.

+

I would NOT recommend using the Sapphire RX 6700 XT on the host, use +your original VBIOS so it runs correctly.

+

Setup PCI Passthrough

+

In my configuration, I pass USB device + GPU + NVMe (containing game +files), while also loading the original GPU ROM on the guest. Unlike +Proxmox, Qubes does not support this, even though Xen supports setting a +custom ROM file. A creative +(read: hacky) solution by chriswoope exists to introduce +the romfile, but it involves adding the romfile to the linux stubdomain +and making changes to vchan-socket-proxy to add the +necessary arguments when adding the GPU as a device. * Add GPU bios to +stubdomain using following script that can be created under +/usr/local/bin/add-gpubios-stubdomain.sh:

+
#!/usr/bin/bash
+
+gpubio=$1
+
+for stubdom in /usr/libexec/xen/boot/qemu-stubdom-linux-rootfs /usr/libexec/xen/boot/qemu-stubdom-linux-full-rootfs; do
+    dir="$(mktemp -d)"
+    cd "$dir"
+    if ! test -e "$stubdom.orig"; then
+        mv "$stubdom" "$stubdom.orig"
+    fi
+    zcat "$stubdom.orig"|cpio -idm
+    cp -a "${gpubios:=/usr/libexec/xen/boot/gpubios}" ./share/gpubios
+    find .|cpio -o -c|gzip -9 > "$stubdom"
+done
+
    +
  • Rename vchan-socket-proxy to +vchan-socket-proxy.orig:
  • +
+
mv /usr/bin/vchan-socket-proxy /usr/bin/vchan-socket-proxy.orig
+
    +
  • Install nmap-ncat:
  • +
+
qubes-dom0-update nmap-ncat
+
    +
  • Create wrapper for vchan-socket-proxy.orig under +/usr/bin/vchan-socket-proxy, replacing +0000:07:00:0 with PCI address of device:
  • +
+
#!/usr/bin/bash
+
+vchan-socket-proxy.orig "$1" "$2" "$3" "$4" "$5.internal" &
+ncat -k --listen --unixsock "$5" --sh-exec "sed -u -e 's|\"hostaddr\":\"0000:07:00.0\"|\"hostaddr\":\"0000:07:00.0\",\"romfile\":\"/share/gpubios\"|'|ncat --unixsock $5.internal"
+
    +
  • Make these two files executable and add gpu bios to +stubdomains:
  • +
+
chmod +x /usr/bin/vchan-socket-proxy /usr/local/bin/add-gpubios-stubdomain.sh
+add-gpubios-stubdomain.sh /path/to/rom
+
    +
  • add devices to qubes:
  • +
+
qvm-pci list
+qvm-pci attach bazzite (address of GPU) --persistent -o no-strict-reset=true -o permissive=true
+qvm-pci attach bazzite (address of GPU audio) --persistent -o no-strict-reset=true -o permissive=true
+qvm-pci attach bazzite (address of USB controller) --persistent -o no-strict-reset=true -o permissive=true
+
    +
  • disable virtual video mode on qubes, else boot crashes when setting +romfile:
  • +
+
qvm-features bazzite video-model none
+
    +
  • start bazzite qubes, seeing if anything appears on display attached +to passthroughed GPU.
  • +
  • you can follow +/var/log/xen/console/guest-bazzite-dm.log to make sure +romfile argument has been applied
  • +
+

Configuring Steam +storage and ModOrganizer2.

+

Since I am using an nvme drive for the game files, I setup this up as +a btrfs drive using the included disk manager. In terminal, on Bazzite’s +desktop, I setup two subvolumes as steam and +mods. The steam submodule is mounted using +/etc/fstab under +/home/bazzite/.local/share/steam while mods is +mounted under /home/bazzite/Mods. The latter contains mod +files used by ModOrganizer2.

+

ModOrganizer2 can be setup using Furglitch’s modorganiser2-linux-installer. +The following should be noted:

+
    +
  • ModOrganizer does not like being on anywhere that’s not under +/home/bazzite even when setting +STEAM_COMPAT_MOUNTS. Hence why the NVMe drive is mounted at +different locations.
  • +
  • Barring that, ModOrganizer should be installed in « Global mode », +but mod files can be stored under ~/Mods
  • +
  • qpaths is expected in a different location, a symbolic +link needed to be created:
  • +
+
sudo ln -s /usr/bin/qtpaths6 /usr/local/bin/qtpaths
+

Other notes

+
    +
  • The qubes’ home drive isn’t in use. Although, maybe it might be a +good idea to move the home subvolume from root to there. I +didn’t do that since I didn’t know if that would break Bazzite’s storage +model. If (for some reason) one would want to set Bazzite up as a +template (why, who knows), moving to the private subvolume would be +necessary
  • +
  • My GPU’s (already broken) reset mechanism was even more buggy on +kernel 6.12. Upgrading to 6.18 did wonders to solve that.
  • +
  • My USB controller, based on asm2142, is a bit buggy. It sometimes +stops recognizing new devices. I suspect that this is due to the USB hub +being USB type A rather than C, so I bought a USB-C 10Gbit hub to make +sure it isn’t signal degradation.
  • +
+

Other ressources

+ +
* Edit /etc/default/grub to include rd.qubes.hide_pci, iommu=pt, video=vesafb:off video=efifb:off video=simplefb:off nofb initcall_blacklist=sysfb_init (all the frame buffer stuff is a precaution since I noticed without it I would get text on the monitor connected to the gpu indicating memory being initialized.) See Explaining CSM, efifb=off, and Setting the * Boot GPU Manually - The Passthrough POST for some background on csm vs uefi and how it affects gpu passthrough.
+* Edit /usr/share/qubes/templates/libvirt/devices/pci.xml to pass a techpower rom file (didn’t seem to help). For those who care, I filtered on vm.name and device.libvirt_name=‘pci_0000_05_00_0’.
+* Edit /usr/share/qubes/templates/libvirt/devices/pci.xml to set rom bar=off (didn’t see to help)
+* Edit /usr/share/qubes/templates/libvirt/xen.xml to disable the cpu hypervisor feature (no noticeable affect)
+* Create an sh file to change bar0 to 32GB and bar2 to 8MB. This is apparently necessary for Windows to avoid error 43 for whatever reason. Enabling or disabling rebar in bios does not seem to change behavior (may change performance) [SOLVED] 7900 XTX Code 43 or How to get 7900 XTX to work on VFIO - Virtualization - Level1Techs Forums
+* Create an sh file to remount the gpu (remove and rescan).
+* Attach the GPU with permissive and no-strict-reset. Didn’t seem to change behavior.
+* Enable everything related to virtualization in my motherboard bios (proart x670e-creator)
+* Disable motherboard and cpu ASPM in my motherboard bios. Didn’t seem to change behavior.
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/guides/index.en.html b/guides/index.en.html new file mode 100644 index 0000000..c68ff5a --- /dev/null +++ b/guides/index.en.html @@ -0,0 +1,191 @@ + + + + + + + + + + + Guides - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Latest

+

+
+ +QubesOS backups using ZFS
+ + +Posted + + +
+
+ +Virtualized hardware acceleration on QubesOS using Intel Arc B50
+ + +Posted + + +
+
+ +Gaming VM on Qubes Using Bazzite
+ + +Posted + + +
+
+ +Davinci Resolve Workstation
+ + +Posted + + +
+

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/guides/index.fr.html b/guides/index.fr.html new file mode 100644 index 0000000..9553958 --- /dev/null +++ b/guides/index.fr.html @@ -0,0 +1,157 @@ + + + + + + + + + + + Guides - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Récent

+

(basculer vers l’anglais pour tout mon contenu)

+

+

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Propulsé par ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/guides/qubes-os-backups-using-zfs.mdwn b/guides/qubes-os-backups-using-zfs.mdwn deleted file mode 100644 index 43b878c..0000000 --- a/guides/qubes-os-backups-using-zfs.mdwn +++ /dev/null @@ -1,115 +0,0 @@ -[[!meta title="QubesOS backups using ZFS"]] - -# QubesOS backups using ZFS - -
- -Rather than use the QubesOS backup solution, I homecooked my own leveraging -ZFS. Since my disk is encrypted using ZFS, this has the benefit of allowing -incremental backups while sending encrypted backups to another ZFS pool. - -My implementation uses sanoid / syncoid to handle the incremental subvolume -management. Fortunately, this is packaged in Fedora and simply requires: - -```shell -qubes-dom0-update sanoid -``` - -The rest of the workflow is handled by very simple shell scripts. - -**SSH tunnel** - -Since dom0 is without internet, syncoid needs to send the encrypted dataset -via an ssh tunnel that goes through `qvm-run`. To facilitate this, under -`/usr/local/bin/qubes-ssh-proxy`, I have a very simple wrapper script: - -```shell -#!/bin/bash -CMD="ssh ${@}" -CMD=$(sed 's$;$\\;$g' <<< ${CMD}) -CMD=$(sed 's$|$\\|$g' <<< ${CMD}) -qvm-run -p $QUBES_SSH_PROXY "${CMD}" -``` - -This uses environment variable `QUBES_SSH_PROXY` to set target, wraps the ssh -command and feeds it into `qvm-run`. Special characters are escaped. - -So that syncoid uses the SSH proxy, we have to modify `/usr/sbin/syncoid`: -```diff -diff --git a/usr/sbin/syncoid.orig b/usr/sbin/syncoid -index 956f3e7..484aae4 100755 ---- a/usr/sbin/syncoid.orig -+++ b/usr/sbin/syncoid -@@ -103,7 +103,7 @@ $ENV{'PATH'} = $ENV{'PATH'} . ":/bin:/usr/bin:/sbin"; - - my $zfscmd = 'zfs'; - my $zpoolcmd = 'zpool'; --my $sshcmd = 'ssh'; -+my $sshcmd = 'qubes-ssh-proxy'; - my $pscmd = 'ps'; - - my $pvcmd = 'pv'; -``` - -Eventually, might be worthwhile to implement an environment variable to feed -`$sshcmd` in a more elegant way. - -**Syncoid wrapper** - -Finally, I use a very small script that wraps syncoid, and transfers the subvolumes -that I want to transfer. I call it `bacoid`, and it lives under `/usr/local/bin`: -```shell -#!/bin/bash - -USER=(target user) -MACHINE=(machine name) -HOST=(target host) -PORT=(target port) -POOL=(target pool) -KEY=(key on dom0 to use) -KNOWN_HOSTS=(known hosts on dom0 to use) - -export QUBES_SSH_PROXY=sys-firewall - -if ! qvm-run -p $QUBES_SSH_PROXY "ls /home/user/QubesIncoming/dom0/${KEY##*/}"; then - echo "copying dom0 key" - qvm-copy-to-vm $QUBES_SSH_PROXY $KEY -fi - -if ! qvm-run -p $QUBES_SSH_PROXY "ls /home/user/QubesIncoming/dom0/${KNOWN_HOSTS##*/}"; then - echo "copying dom0 known_hosts" - qvm-copy-to-vm $QUBES_SSH_PROXY $KNOWN_HOSTS -fi - -subvolArray=( - (array of subvolumes to transfer) -) - - -for subvol in ${subvolArray[@]}; do - syncoid --sendoptions="w" --compress=none --recvoptions="u" -r --sshport=${PORT} --no-privilege-elevation ${subvol} ${USER}@${HOST}:${POOL}/${USER/-/\/}/${MACHINE}/${subvol} --sshkey=/home/user/QubesIncoming/dom0/${KEY##*/} -done -``` - -What this does is use `qubes-ssh-proxy` to tunnel a ZFS send / receive -operation that targets a remote server. We leverage `--sendoptions="w"` to send -the ZFS subvolume as raw, thus encrypted. The target machine will not be able -to read the subvolume. - -This wrapper evidently assumes you have a key generated on dom0, and `known_hosts` file -with the target machines' host. So you have the send the public key to the remote server -and import the server's fingerprint in dom0. Since I use a disposable VM for `sys-firewall`, -this is why dom0 key and known hosts file is transferred. - -**Security** - -It's worth mentionning again that if your dataset is not encrypted, it will be -readable by the target machine. That said, the transfer is always encrypted -since it's over SSH. In any case, I send this to a machine that I control, and -the hosts fingerprint would be different in the event of a man-in-the-middle -attack. - -There are also more sophisticated implementation of this idea. For example, -another version of bacoid used on my servers leverage ZFS config parameters -to set target machine, user, etc. Since my needs on my Qubes workstation is -limited, I kept this KISS. diff --git a/guides/qubes-os-backups-using-zfs/index.html b/guides/qubes-os-backups-using-zfs/index.html new file mode 100644 index 0000000..e644aab --- /dev/null +++ b/guides/qubes-os-backups-using-zfs/index.html @@ -0,0 +1,232 @@ + + + + + + + + + + + QubesOS backups using ZFS - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

QubesOS backups using ZFS

+
+

Rather than use the QubesOS backup solution, I homecooked my own +leveraging ZFS. Since my disk is encrypted using ZFS, this has the +benefit of allowing incremental backups while sending encrypted backups +to another ZFS pool.

+

My implementation uses sanoid / syncoid to handle the incremental +subvolume management. Fortunately, this is packaged in Fedora and simply +requires:

+
qubes-dom0-update sanoid
+

The rest of the workflow is handled by very simple shell scripts.

+

SSH tunnel

+

Since dom0 is without internet, syncoid needs to send the encrypted +dataset via an ssh tunnel that goes through qvm-run. To +facilitate this, under /usr/local/bin/qubes-ssh-proxy, I +have a very simple wrapper script:

+
#!/bin/bash
+CMD="ssh ${@}"
+CMD=$(sed 's$;$\\;$g'  <<< ${CMD})
+CMD=$(sed 's$|$\\|$g'  <<< ${CMD})
+qvm-run -p $QUBES_SSH_PROXY "${CMD}"
+

This uses environment variable QUBES_SSH_PROXY to set +target, wraps the ssh command and feeds it into qvm-run. +Special characters are escaped.

+

So that syncoid uses the SSH proxy, we have to modify +/usr/sbin/syncoid:

+
diff --git a/usr/sbin/syncoid.orig b/usr/sbin/syncoid
+index 956f3e7..484aae4 100755
+--- a/usr/sbin/syncoid.orig
++++ b/usr/sbin/syncoid
+@@ -103,7 +103,7 @@ $ENV{'PATH'} = $ENV{'PATH'} . ":/bin:/usr/bin:/sbin";
+ 
+ my $zfscmd = 'zfs';
+ my $zpoolcmd = 'zpool';
+-my $sshcmd = 'ssh';
++my $sshcmd = 'qubes-ssh-proxy';
+ my $pscmd = 'ps';
+ 
+ my $pvcmd = 'pv';
+

Eventually, might be worthwhile to implement an environment variable +to feed $sshcmd in a more elegant way.

+

Syncoid wrapper

+

Finally, I use a very small script that wraps syncoid, and transfers +the subvolumes that I want to transfer. I call it bacoid, +and it lives under /usr/local/bin:

+
#!/bin/bash
+
+USER=(target user)
+MACHINE=(machine name)
+HOST=(target host)
+PORT=(target port)
+POOL=(target pool)
+KEY=(key on dom0 to use)
+KNOWN_HOSTS=(known hosts on dom0 to use)
+
+export QUBES_SSH_PROXY=sys-firewall
+
+if ! qvm-run -p $QUBES_SSH_PROXY "ls /home/user/QubesIncoming/dom0/${KEY##*/}"; then
+    echo "copying dom0 key"
+    qvm-copy-to-vm $QUBES_SSH_PROXY $KEY
+fi
+
+if ! qvm-run -p $QUBES_SSH_PROXY "ls /home/user/QubesIncoming/dom0/${KNOWN_HOSTS##*/}"; then
+    echo "copying dom0 known_hosts"
+    qvm-copy-to-vm $QUBES_SSH_PROXY $KNOWN_HOSTS
+fi
+
+subvolArray=(
+    (array of subvolumes to transfer)
+)
+
+
+for subvol in ${subvolArray[@]}; do
+    syncoid --sendoptions="w" --compress=none --recvoptions="u" -r --sshport=${PORT} --no-privilege-elevation ${subvol} ${USER}@${HOST}:${POOL}/${USER/-/\/}/${MACHINE}/${subvol} --sshkey=/home/user/QubesIncoming/dom0/${KEY##*/}
+done
+

What this does is use qubes-ssh-proxy to tunnel a ZFS +send / receive operation that targets a remote server. We leverage +--sendoptions="w" to send the ZFS subvolume as raw, thus +encrypted. The target machine will not be able to read the +subvolume.

+

This wrapper evidently assumes you have a key generated on dom0, and +known_hosts file with the target machines’ host. So you +have the send the public key to the remote server and import the +server’s fingerprint in dom0. Since I use a disposable VM for +sys-firewall, this is why dom0 key and known hosts file is +transferred.

+

Security

+

It’s worth mentionning again that if your dataset is not encrypted, +it will be readable by the target machine. That said, the transfer is +always encrypted since it’s over SSH. In any case, I send this to a +machine that I control, and the hosts fingerprint would be different in +the event of a man-in-the-middle attack.

+

There are also more sophisticated implementation of this idea. For +example, another version of bacoid used on my servers leverage ZFS +config parameters to set target machine, user, etc. Since my needs on my +Qubes workstation is limited, I kept this KISS.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/guides/virtualized-hardware-acceleration-qubes-os.mdwn b/guides/virtualized-hardware-acceleration-qubes-os.mdwn deleted file mode 100644 index dbea805..0000000 --- a/guides/virtualized-hardware-acceleration-qubes-os.mdwn +++ /dev/null @@ -1,204 +0,0 @@ -[[!meta title="Virtualized hardware acceleration on QubesOS using Intel Arc B50"]] - -# Virtualized hardware acceleration on QubesOS using Intel Arc B50 - -
- -## Setting up the Arc Pro B50 - -### Update the Arc Pro firmware - -The Arc Pro B50, out of factory, does not include a firmware that supports -SR-IOV. We thus have to update it. Unfortunately, it looks like [newer version -of the firmware artifically limits to VF count to 2](https://community.intel.com/t5/Graphics/Why-did-the-latest-Intel-Arc-ProB50-firmware-nerf-SR-IOV-VFs/td-p/1732703) -rather than 12, when the feature was first supported. You might want to flash -to older version, in this case. - -Driver overview for the B50: - -* Driver 32.0.101.8331 for Intel Arc < max VFs = 2 -* Driver 32.0.101.8306 for Intel Arc Pro < max VFs = 2 -* Driver 32.0.101.6979 for Intel Arc Pro < max VFs = 12 - -The last driver in the list is still the one to get to have access to all -Virtual Functions. The easy way to flash the new drivers is by installing, in a -windows environment, the [Intel Arc Pro Graphic driver](https://www.intel.com/content/www/us/en/download/741626/intel-arc-pro-graphics-windows.html) of the version you desire. Unfortunately, this requires -running windows on bare-metal to flash safely. - -There is a way to update the firmware using `fwupd`, but this guide has not -documented this way yet on QubesOS. - -### Determine the device address - -```shell -$ lspci -vv | grep B50 -06:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Arc Pro B50] (prog-if 00 [VGA controller]) -``` - -For the rest of the guide, I will reference the B50 with 0000:06:00.0. Update -the snippets accordingly. - -```shell -$ lspci -vv -s 06:00.0 -06:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Arc Pro B50] (prog-if 00 [VGA controller]) - Subsystem: Intel Corporation Device 1114 - Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- - Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- - Kernel driver in use: xe - Kernel modules: xe -``` - -If everything went well the last two lines should point to the xe driver. - -Query max Virtual Functions - -```shell -$ cat /sys/bus/pci/devices/0000:06:00.0/sriov_totalvfs -2 -``` - -## Boot process - -### Hardware - -Not all hardware will support the SR-IOV use case. The following needs to be -enabled in BIOS: - -* ResizeBar -* IOMMU / SR-IOV -* ASPM (optional, but advised by Intel) - -In my case, I have a Supermicro X10-based system, which means ResizeBar is not -supported. To unlock, I thus leveraged [xCurio0's -ReBarUEFI](https://github.com/xCuri0/ReBARUEFI) to patch in ResizeBar support. -How to do this is out-of-scope of this guide. - -### Kernel - -This also requires a newer kernel. At the time of writing this guide, kernel -6.19 works, but kernel 6.17 theoretically includes SR-IOV support in xe drivers - -### Disabling auto probing - -There is a currently a bug with Xen, where unbinding `xe` from virtual -functions after creation leads to a kernel crash. To mitigate this issue, we can -disable automatic probing by leveraging the `sriov_drivers_autoprobe` sysfs -parameter: - -```shell -echo 0 | sudo tee /sys/bus/pci/devices/"$DEVICE"/sriov_drivers_autoprobe -``` - -This will ensure that the virtual function will be able to attach the device -when starting the VM. - -That said, the following udev rule can be created to do this automatically: - -```udev -ACTION="add", SUBSYSTEM="pci", ATTR{sriov_totalvfs}=="*", ATTR{sriov_drivers_autoprobe}="0" -``` - -### Enable virtual function creation - -Due to how the driver works, when the virtual functions are created, whatever -VRAM is not currently in use will be split up between the functions. Thus, to -keep some VRAM for the host, we have to allocate some memory, before creating -the VFs. There isn'tan elegant way to do so, so this guide proposes the use of -[vramfs](https://github.com/Overv/vramfs) to pre-allocate VRAM for the host, -then drop the vram filesystem after creation of the virtual functions. - -Unfortunately, `vramfs` is not packaged in Fedora, so it is provided by myself -via my [qubes-pkgs](https://ayakael.net/forge/qubes-pkgs) repo, and installable -through dnf using [this -package](https://ayakael.net/forge/-/packages/rpm/vramfs). - -To facilitate setting up the virtual functions, I took [vitabis' -script](https://forum.level1techs.com/t/virtualization-workstation-with-the-intel-arc-pro-b50/243577) -and wrapped it in a udev rule. So, on dom0, you can create the following file -under `/usr/local/bin/spawn_xe_vfs.sh`: - -```shell -#!/bin/bash - -################################################################### -# Helper script to automate the initialization of Virtual Functions -# The idea is to quickly allocate memory space on the Arc Pro GPU, -# before the Virtual Functions are created. After VF creation, -# this memory is released and will remain available to the PF. -################################################################### - -### VARIABLES FOR USER TO SET (REQUIRED) -# The Physical Function's address (eg from lspci, domain:bus:device.function) -DEVICE="$1" -# Number of Virtual Functions to create -NUM_VFS="$2" - -### VARIABLES FOR USER TO OVERRIDE (OPTIONAL) -# Amount of memory that will remain available to the Physical Function after -# Virtual Functions have been created (in KB/MB/GB). -VRAMFS_SIZE="$3" -# Entry path into the vramfs filesystem -VRAMFS_PATH="/tmp/vram" -# Delay until the vramfs filesystem is mounted (in seconds) -DELAY_VFS=3 - -# Create vramfs storage of requested size. -if [ ! -e "$VRAMFS_PATH" ]; then - /usr/bin/mkdir $VRAMFS_PATH -fi -/usr/bin/vramfs $VRAMFS_PATH $VRAMFS_SIZE & - -# Wait for the filesystem to mount (in the background) before spawning VFs -sleep $DELAY_VFS - -# Create Virtual Functions -echo "creating vfs." -/usr/bin/echo $NUM_VFS > "/sys/bus/pci/devices/"$DEVICE"/sriov_numvfs" - -# Tear down the vramfs filesystem -echo "terminating vramfs." -``` - -Make it executable: - -```shell -chmod +x /usr/local/bin/spawn_xe_vfs.sh -``` - -Finally, create the udev rule under -`/etc/udev/rules.d/81-enable-sriov-numvfs.rules`: - -```udev -ACTION="add", SUBSYSTEM=="pci", ATTR{subsystem_device}=="0x1114", ATTR{subsystem_vendor}=="0x8086", RUN+="/usr/local/bin/spawn_xe_vfs.sh %k 2 1GB" -``` - -This rule, when adding the Intel Arc B50, executes `spawn_xe_vfs.sh` and feeds -the device address, tells the script to create 2 virtual functions, while -pre-allocating 1GB of VRAM to the host. You can adjust these arguments -depending on your needs, and which firmware you used. - -## Assign VF to VM - -After this, you should be able to assign the virtual functions to the VM like -any other PCI device. You should use, at least, the kernel version used in -dom0. The VM should also be an HVM, like any other VM you attach devices to. - -## References - -* [Vitabis' guide on virtualization workstation with the Inter Arc Pro B50](https://forum.level1techs.com/t/virtualization-workstation-with-the-intel-arc-pro-b50/243577) -* [Level1Tech forums thread on the Intel Arc Pro B50 and SR-IOV support with many many comments](https://forum.level1techs.com/t/intel-arc-pro-b50-sr-iov-and-me/236473) -* [QubesOS forum thread on using SR-IOV in QubesOS contact](https://forum.qubes-os.org/t/virtualised-intel-gpu-with-sr-iov/40649/35) - - -## Known issues - -* Fans can sometimes get stuck at 100% when there is no monitor connected. Workaround is to plug a headless displayport adapter. ([read more](https://www.linkedin.com/pulse/running-docker-swarm-cluster-intel-arc-pro-b50-sascha-siekmann-wcwqc#:~:text=Well%2C%20after%2020%20minutes%20the,advice:%20never%20throw%20anything%20away.)) -* Using the Intel Arc B50 as dom0's GPU is problematic. After a while, artifacts appear (flickering black bars, black boxes). This seems to be a bug with Xen when dom0 is in PV mode ([qubes os ticket](https://github.com/QubesOS/qubes-issues/issues/10661), [upstream report](https://lore.kernel.org/xen-devel/aYtznP_tT6xNPwf-@mail-itl/T/#u)). My workaround is to use a different GPU for dom0, which defeats the purpose of pre-allocating VRAM, but alas... hopefully this is fixed soon. (update 2026/05/20 - since update to linux 7.0, these artifacts happen a lot less frequently) -* Quite often, VM hangs for a moment, and kernel log shows: `xe 0000:00:08.0: [drm] *ERROR* TLB invalidation fence timeout, seqno=287 recv=286`. Still investigating a workaround. (seems to be related to [gitlab.freedesktop.org/drm/i915#14469](https://gitlab.freedesktop.org/drm/i915/kernel/-/work_items/14469#note_3170015) and [gh/strongtz/i915-sriov-dkms#332](https://github.com/strongtz/i915-sriov-dkms/issues/332)) diff --git a/guides/virtualized-hardware-acceleration-qubes-os/index.html b/guides/virtualized-hardware-acceleration-qubes-os/index.html new file mode 100644 index 0000000..78c1b6f --- /dev/null +++ b/guides/virtualized-hardware-acceleration-qubes-os/index.html @@ -0,0 +1,326 @@ + + + + + + + + + + + Virtualized hardware acceleration on QubesOS using Intel Arc B50 - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Virtualized +hardware acceleration on QubesOS using Intel Arc B50

+
+

Setting up the Arc Pro B50

+

Update the Arc Pro firmware

+

The Arc Pro B50, out of factory, does not include a firmware that +supports SR-IOV. We thus have to update it. Unfortunately, it looks like +newer +version of the firmware artifically limits to VF count to 2 rather +than 12, when the feature was first supported. You might want to flash +to older version, in this case.

+

Driver overview for the B50:

+
    +
  • Driver 32.0.101.8331 for Intel Arc < max VFs = 2
  • +
  • Driver 32.0.101.8306 for Intel Arc Pro < max VFs = 2
  • +
  • Driver 32.0.101.6979 for Intel Arc Pro < max VFs = 12
  • +
+

The last driver in the list is still the one to get to have access to +all Virtual Functions. The easy way to flash the new drivers is by +installing, in a windows environment, the Intel +Arc Pro Graphic driver of the version you desire. Unfortunately, +this requires running windows on bare-metal to flash safely.

+

There is a way to update the firmware using fwupd, but +this guide has not documented this way yet on QubesOS.

+

Determine the device address

+
$ lspci -vv | grep B50
+06:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Arc Pro B50] (prog-if 00 [VGA controller])
+

For the rest of the guide, I will reference the B50 with +0000:06:00.0. Update the snippets accordingly.

+
$ lspci -vv -s 06:00.0
+06:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Arc Pro B50] (prog-if 00 [VGA controller])
+    Subsystem: Intel Corporation Device 1114
+    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
+    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+    Latency: 0, Cache Line Size: 64 bytes
+    Interrupt: pin ? routed to IRQ 228
+    IOMMU group: 13
+    Region 0: Memory at 13e0c000000 (64-bit, prefetchable) [size=16M]
+    Region 2: Memory at 13400000000 (64-bit, prefetchable) [size=16G]
+    Expansion ROM at cdc00000 [disabled] [size=2M]
+    Capabilities: <access denied>
+    Kernel driver in use: xe
+    Kernel modules: xe
+

If everything went well the last two lines should point to the xe +driver.

+

Query max Virtual Functions

+
$ cat /sys/bus/pci/devices/0000:06:00.0/sriov_totalvfs
+2
+

Boot process

+

Hardware

+

Not all hardware will support the SR-IOV use case. The following +needs to be enabled in BIOS:

+
    +
  • ResizeBar
  • +
  • IOMMU / SR-IOV
  • +
  • ASPM (optional, but advised by Intel)
  • +
+

In my case, I have a Supermicro X10-based system, which means +ResizeBar is not supported. To unlock, I thus leveraged xCurio0’s ReBarUEFI to +patch in ResizeBar support. How to do this is out-of-scope of this +guide.

+

Kernel

+

This also requires a newer kernel. At the time of writing this guide, +kernel 6.19 works, but kernel 6.17 theoretically includes SR-IOV support +in xe drivers

+

Disabling auto probing

+

There is a currently a bug with Xen, where unbinding xe +from virtual functions after creation leads to a kernel crash. To +mitigate this issue, we can disable automatic probing by leveraging the +sriov_drivers_autoprobe sysfs parameter:

+
echo 0 | sudo tee /sys/bus/pci/devices/"$DEVICE"/sriov_drivers_autoprobe
+

This will ensure that the virtual function will be able to attach the +device when starting the VM.

+

That said, the following udev rule can be created to do this +automatically:

+
ACTION="add", SUBSYSTEM="pci", ATTR{sriov_totalvfs}=="*", ATTR{sriov_drivers_autoprobe}="0"
+

Enable virtual function +creation

+

Due to how the driver works, when the virtual functions are created, +whatever VRAM is not currently in use will be split up between the +functions. Thus, to keep some VRAM for the host, we have to allocate +some memory, before creating the VFs. There isn’tan elegant way to do +so, so this guide proposes the use of vramfs to pre-allocate VRAM +for the host, then drop the vram filesystem after creation of the +virtual functions.

+

Unfortunately, vramfs is not packaged in Fedora, so it +is provided by myself via my qubes-pkgs repo, and +installable through dnf using this +package.

+

To facilitate setting up the virtual functions, I took vitabis’ +script and wrapped it in a udev rule. So, on dom0, you can create +the following file under +/usr/local/bin/spawn_xe_vfs.sh:

+
#!/bin/bash
+
+###################################################################
+# Helper script to automate the initialization of Virtual Functions
+# The idea is to quickly allocate memory space on the Arc Pro GPU,
+# before the Virtual Functions are created. After VF creation,
+# this memory is released and will remain available to the PF.
+###################################################################
+
+### VARIABLES FOR USER TO SET (REQUIRED)
+# The Physical Function's address (eg from lspci, domain:bus:device.function)
+DEVICE="$1"
+# Number of Virtual Functions to create
+NUM_VFS="$2"
+
+### VARIABLES FOR USER TO OVERRIDE (OPTIONAL)
+# Amount of memory that will remain available to the Physical Function after 
+# Virtual Functions have been created (in KB/MB/GB).
+VRAMFS_SIZE="$3"
+# Entry path into the vramfs filesystem
+VRAMFS_PATH="/tmp/vram"
+# Delay until the vramfs filesystem is mounted (in seconds)
+DELAY_VFS=3
+
+# Create vramfs storage of requested size.
+if [ ! -e "$VRAMFS_PATH" ]; then
+    /usr/bin/mkdir $VRAMFS_PATH
+fi
+/usr/bin/vramfs $VRAMFS_PATH $VRAMFS_SIZE &
+
+# Wait for the filesystem to mount (in the background) before spawning VFs
+sleep $DELAY_VFS
+
+# Create Virtual Functions
+echo "creating vfs."
+/usr/bin/echo $NUM_VFS > "/sys/bus/pci/devices/"$DEVICE"/sriov_numvfs"
+
+# Tear down the vramfs filesystem
+echo "terminating vramfs."
+

Make it executable:

+
chmod +x /usr/local/bin/spawn_xe_vfs.sh
+

Finally, create the udev rule under +/etc/udev/rules.d/81-enable-sriov-numvfs.rules:

+
ACTION="add", SUBSYSTEM=="pci", ATTR{subsystem_device}=="0x1114", ATTR{subsystem_vendor}=="0x8086", RUN+="/usr/local/bin/spawn_xe_vfs.sh %k 2 1GB"
+

This rule, when adding the Intel Arc B50, executes +spawn_xe_vfs.sh and feeds the device address, tells the +script to create 2 virtual functions, while pre-allocating 1GB of VRAM +to the host. You can adjust these arguments depending on your needs, and +which firmware you used.

+

Assign VF to VM

+

After this, you should be able to assign the virtual functions to the +VM like any other PCI device. You should use, at least, the kernel +version used in dom0. The VM should also be an HVM, like any other VM +you attach devices to.

+

References

+ +

Known issues

+
    +
  • Fans can sometimes get stuck at 100% when there is no monitor +connected. Workaround is to plug a headless displayport adapter. (read +more)
  • +
  • Using the Intel Arc B50 as dom0’s GPU is problematic. After a while, +artifacts appear (flickering black bars, black boxes). This seems to be +a bug with Xen when dom0 is in PV mode (qubes os +ticket, upstream +report). My workaround is to use a different GPU for dom0, which +defeats the purpose of pre-allocating VRAM, but alas… hopefully this is +fixed soon. (update 2026/05/20 - since update to linux 7.0, these +artifacts happen a lot less frequently)
  • +
  • Quite often, VM hangs for a moment, and kernel log shows: +xe 0000:00:08.0: [drm] *ERROR* TLB invalidation fence timeout, seqno=287 recv=286. +Still investigating a workaround. (seems to be related to gitlab.freedesktop.org/drm/i915#14469 +and gh/strongtz/i915-sriov-dkms#332)
  • +
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki.fr/index.html b/ikiwiki.fr/index.html new file mode 100644 index 0000000..6e9e325 --- /dev/null +++ b/ikiwiki.fr/index.html @@ -0,0 +1,204 @@ + + + + + + + + + + + ikiwiki.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2010-07-21 16:41+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: French \n" +"Language: fr\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 "\n" +msgstr "\n" + +#. type: Plain text +#, no-wrap +msgid "" +"This wiki is powered by [ikiwiki](http://ikiwiki.info/).\n" +"[[!if Error: syntax error in pagespec "\"enabled(version)\"\n""]]\n" +msgstr "" +"Ce wiki est propulsé par [ikiwiki](http://ikiwiki.info/).\n" +"[[!if Error: syntax error in pagespec "\"enabled(version)\"\n""]]\n" + +#. type: Plain text +msgid "Some documentation on using ikiwiki:" +msgstr "Voici quelques pages de documentation sur l'utilisation d'ikiwiki :" + +#. type: Bullet: '* ' +msgid "formatting" +msgstr "formatting" + +#. type: Bullet: '* ' +msgid "wikilink" +msgstr "wikilink" + +#. type: Bullet: '* ' +msgid "subpage" +msgstr "subpage" + +#. type: Bullet: '* ' +msgid "pagespec" +msgstr "pagespec" + +#. type: Bullet: '* ' +msgid "directive" +msgstr "directive" + +#. type: Bullet: '* ' +msgid "markdown" +msgstr "markdown" + +#. type: Bullet: '* ' +msgid "openid" +msgstr "openid" + +#. type: Bullet: '* ' +msgid "searching" +msgstr "searching" + +#. type: Bullet: '* ' +msgid "templates" +msgstr "templates" + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/directive.fr/index.html b/ikiwiki/directive.fr/index.html new file mode 100644 index 0000000..40f829f --- /dev/null +++ b/ikiwiki/directive.fr/index.html @@ -0,0 +1,258 @@ + + + + + + + + + + + directive.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# 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-25 11:25+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +msgid "" +"Directives are similar to a WikiLink in form, except they begin " +"with `!` and may contain parameters. The general form is:" +msgstr "" +"Les directives sont semblables aux WikiLink mais elles " +"commencent par un `!` et peuvent contenir des paramètres. La forme d'une " +"directive est la suivante :" + +#. type: Plain text +#, no-wrap +msgid "\t\[[!directive param=\"value\" param=\"value\"]]\n" +msgstr "\t\[[!directive param=\"value\" param=\"value\"]]\n" + +#. type: Plain text +msgid "" +"This gets expanded before the rest of the page is processed, and can be used " +"to transform the page in various ways." +msgstr "" +"Le contenu de cette directive est traité avant que la page ne soit traitée " +"et cela peut être utilisé pour modifier cette page." + +#. type: Plain text +msgid "" +"The quotes around values can be omitted if the value is a simple word. " +"Also, some directives may use parameters without values, for example:" +msgstr "" +"Les guillements autour des valeurs des paramètres peuvent être omis si cette " +"valeur est un simple mot. D'autre part, certaines directives peuvent avoir " +"des paramètres sans valeur, par exemple : " + +#. type: Plain text +#, no-wrap +msgid "\t\[[!tag foo]]\n" +msgstr "\t\[[!tag foo]]\n" + +#. type: Plain text +msgid "" +"A directive does not need to all be on one line, it can be wrapped to " +"multiple lines if you like:" +msgstr "" +"Il n'est pas nécessaire d'écrire une directive sur une seule ligne ; elle " +"peut l'être sur plusieurs si vous préférez. Par exemple :" + +#. type: Plain text +#, no-wrap +msgid "" +"\t\[[!directive foo=\"baldersnatch\"\n" +"\tbar=\"supercalifragilisticexpialidocious\" baz=11]]\n" +msgstr "" +"\t\[[!directive foo=\"baldersnatch\"\n" +"\tbar=\"supercalifragilisticexpialidocious\" baz=11]]\n" + +#. type: Plain text +msgid "" +"Also, multiple lines of *quoted* text can be used for a value. To allow " +"quote marks inside the quoted text, delimit the block of text with triple-" +"quotes:" +msgstr "" +"De plus, une *citation* sur plusieurs lignes peut servir de valeur. Pour " +"autoriser les guillemets du texte, il suffit de mettre trois séries de " +"guillemets autour du texte :" + +#. type: Plain text +#, no-wrap +msgid "\t\[[!directive text=\"\"\"\n" +msgstr "\t\\[[!directive text=\"\"\"\n" + +#. type: Bullet: ' 1. ' +msgid "\"foo\"" +msgstr "\"foo\"" + +#. type: Bullet: ' 2. ' +msgid "\"bar\"" +msgstr "\"bar\"" + +#. type: Bullet: ' 3. ' +msgid "\"baz\"" +msgstr "\"baz\"" + +#. type: Plain text +msgid "" +"ikiwiki also has an older syntax for directives, which requires a space in " +"directives to distinguish them from wikilinks. This " +"syntax has several disadvantages: it requires a space after directives with " +"no parameters (such as `\[[pagecount ]]`), and it prohibits spaces in " +"wikilinks. ikiwiki now provides the `!`-prefixed " +"syntax shown above as default. However, ikiwiki still supports wikis using " +"the older syntax, if the `prefix_directives` option is disabled." +msgstr "" +"Il existe aussi une ancienne syntaxe pour les directives. Elle demande un " +"espace dans la directive pour les distinguer des [[wikilinks|ikiwiki/" +"wikilink]]. Cette syntaxe a plusieurs défauts : elle demande un espace après " +"une directive sans paramètre, comme `\[[pagecount ]]`, et elle interdit les " +"espaces dans les wikilinks. Par défaut, ikiwiki utilise " +"maintenant la syntaxe montrée plus haut, avec le `!`. Cependant, l'ancienne " +"syntaxe est toujours acceptée, une fois que l'option `prefix_directives` est " +"désactivée." + +#. type: Plain text +#, no-wrap +msgid "[[!if Error: syntax error in pagespec "\"enabled(listdirectives)\""]]\n" +msgstr "[[!listdirectives ]]\n" + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/directive/index.html b/ikiwiki/directive/index.html new file mode 100644 index 0000000..3c3a8b9 --- /dev/null +++ b/ikiwiki/directive/index.html @@ -0,0 +1,179 @@ + + + + + + + + + + + directive - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Directives are similar to a WikiLink in +form, except they begin with ! and may contain parameters. +The general form is:

+
[[!directive  param="value" param="value"]]
+

This gets expanded before the rest of the page is processed, and can +be used to transform the page in various ways.

+

The quotes around values can be omitted if the value is a simple +word. Also, some directives may use parameters without values, for +example:

+
[[!tag  foo]]
+

A directive does not need to all be on one line, it can be wrapped to +multiple lines if you like:

+
[[!directive  foo="baldersnatch"
+bar="supercalifragilisticexpialidocious" baz=11]]
+

Also, multiple lines of quoted text can be used for a value. +To allow quote marks inside the quoted text, delimit the block of text +with triple-double-quotes or triple-single-quotes:

+
[[!directive  text="""
+1. "foo"
+2. "bar"
+3. "baz"
+""" othertext='''
+1. 'quux'
+2. "foo"
+''']]
+

If you want to put text with triple quotes into a parameter value, +you can use perl-style here-doc syntax, even nesting it like this:

+
[[!directive  text=<<OUTER
+[[!otherdirective <<INNER
+inner text
+INNER]]
+outer text
+OUTER]]
+

ikiwiki also has an older syntax for directives, which requires a +space in directives to distinguish them from +wikilinks. This syntax has several +disadvantages: it requires a space after directives with no parameters +(such as [[pagecount ]]), and it prohibits spaces in +wikilinks. ikiwiki now provides the +!-prefixed syntax shown above as default. However, ikiwiki +still supports wikis using the older syntax, if the +prefix_directives option is disabled.

+

Here is a list of currently available directives in this wiki:

+

[[!listdirectives ]]

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/formatting.fr/index.html b/ikiwiki/formatting.fr/index.html new file mode 100644 index 0000000..1e500de --- /dev/null +++ b/ikiwiki/formatting.fr/index.html @@ -0,0 +1,368 @@ + + + + + + + + + + + \"Formater - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2009-08-26 13:39-0300\n" +"PO-Revision-Date: 2009-08-26 21:18+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +msgid "" +"Text on this wiki is, by default, written in a form very close to how you " +"might write text for an email message. This style of text formatting is " +"called MarkDown, and it works like this:" +msgstr "" +"Sur ce wiki, la mise en forme du texte est semblable à celle utilisée dans " +"les courriels. Ce style de formatage s'appelle MarkDown. Voici comment " +"il fonctionne :" + +#. type: Plain text +msgid "Leave blank lines between paragraphs." +msgstr "Lignes vides entre les paragraphes." + +#. type: Plain text +msgid "" +"You can *\\*emphasise\\** or **\\*\\*strongly emphasise\\*\\*** text by " +"placing it in single or double asterisks." +msgstr "" +"Texte en *\\*italique\\** avec un astérisque ou texte en **\\*\\*gras\\*" +"\\*** avec deux astérisques." + +#. type: Plain text +msgid "To create a list, start each line with an asterisk:" +msgstr "Une liste, chaque ligne commençant par un astérisque :" + +#. type: Bullet: '* ' +msgid "\"* this is my list\"" +msgstr "\"* ma liste\"" + +#. type: Bullet: '* ' +msgid "\"* another item\"" +msgstr "\"* un autre élément\"" + +#. type: Plain text +msgid "" +"To make a numbered list, start each line with a number (any number will do) " +"followed by a period:" +msgstr "" +"Une liste numérotée, chaque ligne commençant par un chiffre (n'importe " +"lequel), suivi d'un point :" + +#. type: Bullet: '1. ' +msgid "\"1. first line\"" +msgstr "\"1. première ligne\"" + +#. type: Bullet: '2. ' +msgid "\"2. second line\"" +msgstr "\"2. deuxième ligne\"" + +#. type: Bullet: '2. ' +msgid "\"2. third line\"" +msgstr "\"2. troisième ligne\"" + +#. type: Plain text +msgid "" +"To create a header, start a line with one or more `#` characters followed by " +"a space and the header text. The number of `#` characters controls the size " +"of the header:" +msgstr "" +"Un titre, une ligne commençant par un ou plusieurs caractères `#` suivis " +"d'un caractère espace et du texte du titre. Le nombre de `#` détermine la " +"taille du titre :" + +#. type: Title # +#, no-wrap +msgid "# h1" +msgstr "# h1" + +#. type: Title ## +#, no-wrap +msgid "## h2" +msgstr "## h2" + +#. type: Title ### +#, no-wrap +msgid "### h3" +msgstr "### h3" + +#. type: Title #### +#, no-wrap +msgid "#### h4" +msgstr "#### h4" + +#. type: Title ##### +#, no-wrap +msgid "##### h5" +msgstr "##### h5" + +#. type: Title ###### +#, no-wrap +msgid "###### h6" +msgstr "###### h6" + +#. type: Plain text +msgid "" +"To create a horizontal rule, just write three or more dashes or stars on " +"their own line:" +msgstr "" +"Une règle horizontale, au moins trois tirets ou étoiles sur la même ligne :" + +#. type: Plain text +#, no-wrap +msgid "To quote someone, prefix the quote with \">\":\n" +msgstr "Pour citer quelqu'un, faire précéder la citation de \">\" :\n" + +#. type: Plain text +#, no-wrap +msgid "" +"> To be or not to be,\n" +"> that is the question.\n" +msgstr "" +"> To be or not to be,\n" +"> that is the question.\n" + +#. type: Plain text +msgid "To write a code block, indent each line with a tab or 4 spaces:" +msgstr "" +"Un morceau de code, faire précéder chaque ligne par une tabulation ou quatre " +"espaces :" + +#. type: Plain text +#, no-wrap +msgid "" +"\t10 PRINT \"Hello, world!\"\n" +"\t20 GOTO 10\n" +msgstr "" +"\t10 PRINT \"Hello, world!\"\n" +"\t20 GOTO 10\n" + +#. type: Plain text +#, no-wrap +msgid "" +"To link to an url or email address, you can just put the\n" +"url in angle brackets: <>, or you can use the\n" +"form \\[link text\\]\\(url\\)\n" +msgstr "" +"Pour créer un lien avec une URL ou une adresse électronique,\n" +"mettre l'URL entre crochets, <>,\n" +"ou utiliser la forme \\[texte du lien\\]\\(url\\)\n" + +#. type: Plain text +msgid "" +"In addition to basic html formatting using MarkDown, this wiki lets you " +"use the following additional features:" +msgstr "" +"En plus du formatage html élémentaire avec MarkDown, ce wiki offre " +"d'autres possibilités :" + +#. type: Bullet: '* ' +msgid "" +"To link to another page on the wiki, place the page's name inside double " +"square brackets. So you would use `\[[WikiLink]]` to link to WikiLink." +msgstr "" +"Pour créer un lien vers une autre page du wiki, mettre le nom de la page " +"entre deux paires de crochets. Ainsi, utilisez `\[[WikiLink]]` pour un lien " +"avec WikiLink." + +#. type: Plain text +#, no-wrap +msgid "[[!if Error: syntax error in pagespec "\"enabled(smiley)"]] and some other useful symbols. :-)" +msgstr "Insérer des smileys et d'autres symboles très utiles :-)" + +#. type: Plain text +#, no-wrap +msgid "[[!if Error: syntax error in pagespec "\"enabled(shortcut)"]] to link to common resources." +msgstr "Utiliser des shortcuts pour renvoyer à des ressources communes." + +#. type: Plain text +#, no-wrap +msgid "\t\[[!wikipedia War\\_of\\_1812]]\n" +msgstr "\t\[[!wikipedia War\\_of\\_1812]]\n" + +#. type: Plain text +#, no-wrap +msgid "[[!if Error: syntax error in pagespec "\"enabled(template)"]] for repeated chunks of parameterized wiki " +"text." +msgstr "" +"Créer et utiliser des modèles (templates) pour répéter des morceaux de " +"texte standard." + +#. type: Plain text +#, no-wrap +msgid "" +"* Insert various directives onto a page to perform useful\n" +" actions.\n" +"[[!if Error: syntax error in pagespec "\"enabled(toc)\""]]\n" +msgstr "\t\[[!toc ]]\n" + +#. type: Plain text +#, no-wrap +msgid "[[!if Error: syntax error in pagespec "\"enabled(meta)\""]]\n" +msgstr "\t\[[!meta title=\"titre complet de la page\"]]\n" + +#. type: Plain text +#, no-wrap +msgid "[[!if Error: syntax error in pagespec "\"enabled(inline)\""]]\n" +msgstr "\t\[[!inline pages=\"blog/*\"]]\n" + +#. type: Plain text +#, no-wrap +msgid "[[!if Error: syntax error in pagespec "\"enabled(listdirectives)\""]] enabled for this wiki:\n" +msgstr " Voici la liste complète des directives activées sur ce wiki :\n" + +#. type: Plain text +#, no-wrap +msgid " [[!listdirectives ]]\n" +msgstr " [[!listdirectives ]]\n" + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/formatting/index.html b/ikiwiki/formatting/index.html new file mode 100644 index 0000000..5bf103b --- /dev/null +++ b/ikiwiki/formatting/index.html @@ -0,0 +1,206 @@ + + + + + + + + + + + Formatting wiki pages - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Text on this wiki is, by default, written in a form very close to how +you might write text for an email message. This style of text formatting +is called MarkDown, and it works like +this:

+

Leave blank lines between paragraphs.

+

You can *emphasise* or **strongly +emphasise** text by placing it in single or double +asterisks.

+

To create a list, start each line with an asterisk:

+
    +
  • “* this is my list”
  • +
  • “* another item”
  • +
+

To make a numbered list, start each line with a number (any number +will do) followed by a period:

+
    +
  1. “1. first line”
  2. +
  3. “2. second line”
  4. +
  5. “2. third line”
  6. +
+

To create a header, start a line with one or more # +characters followed by a space and the header text. The number of +# characters controls the size of the header:

+

# h1

+

## h2

+

### h3

+

#### h4

+
##### h5
+
###### h6
+

To create a horizontal rule, just write three or more dashes or stars +on their own line:

+
+

To quote someone, prefix the quote with “>”:

+
+

To be or not to be, that is the question.

+
+

To write a code block, indent each line with a tab or 4 spaces:

+
10 PRINT "Hello, world!"
+20 GOTO 10
+

To link to an url or email address, you can just put the url in angle +brackets: <http://ikiwiki.info>, or you can use the form [link +text](url)

+
+

In addition to basic html formatting using +MarkDown, this wiki lets you use the +following additional features:

+
    +
  • To link to another page on the wiki, place the page’s name inside +double square brackets. So you would use [[WikiLink]] to +link to WikiLink.

  • +
  • Insert smileys and some other useful +symbols. :-)

  • +
  • Use shortcuts to link +to common resources.

    +

    [[!wikipedia War_of_1812]]

  • +
  • Create and fill out templates for +repeated chunks of parameterized wiki text.

  • +
  • Insert various directives onto a page +to perform useful actions. For example, you can:

    +
      +
    • Add a table of contents to a page:

      +

      [[!toc ]]

    • +
    • Change the title of a page:

      +

      [[!meta title=“full page title”]]

    • +
    • Create a blog by inlining a set of pages:

      +

      [[!inline pages=“blog/*”]]

    • +
    +

    Full list of directives enabled for this +wiki: [[!listdirectives ]]

  • +
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/ikiwiki.js b/ikiwiki/ikiwiki.js new file mode 100644 index 0000000..e67d5df --- /dev/null +++ b/ikiwiki/ikiwiki.js @@ -0,0 +1,58 @@ +// © 2006-2010 Joey Hess +// Redistribution and use in source and compiled forms, with or without +// modification, are permitted under any circumstances. No warranty. +// +// ikiwiki's javascript utility function library + +var hooks; + +// Run onload as soon as the DOM is ready, if possible. +// gecko, opera 9 +if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", run_hooks_onload, false); +} +// other browsers +window.onload = run_hooks_onload; + +var onload_done = 0; + +function run_hooks_onload() { + // avoid firing twice + if (onload_done) + return; + onload_done = true; + + run_hooks("onload"); +} + +function run_hooks(name) { + if (typeof(hooks) != "undefined") { + for (var i = 0; i < hooks.length; i++) { + if (hooks[i].name == name) { + hooks[i].call(); + } + } + } +} + +function hook(name, call) { + if (typeof(hooks) == "undefined") + hooks = new Array; + hooks.push({name: name, call: call}); +} + +function getElementsByClass(cls, node, tag) { + if (document.getElementsByClass) + return document.getElementsByClass(cls, node, tag); + if (! node) node = document; + if (! tag) tag = '*'; + var ret = new Array(); + var pattern = new RegExp("(^|\\s)"+cls+"(\\s|$)"); + var els = node.getElementsByTagName(tag); + for (i = 0; i < els.length; i++) { + if ( pattern.test(els[i].className) ) { + ret.push(els[i]); + } + } + return ret; +} diff --git a/ikiwiki/index.html b/ikiwiki/index.html new file mode 100644 index 0000000..f66e4f5 --- /dev/null +++ b/ikiwiki/index.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ikiwiki - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

This wiki is powered by ikiwiki. +(Currently running version [[!version ]].)

+

Some documentation on using ikiwiki:

+ + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/jquery.min.js b/ikiwiki/jquery.min.js new file mode 100644 index 0000000..a085594 --- /dev/null +++ b/ikiwiki/jquery.min.js @@ -0,0 +1,23 @@ +/* + * jQuery JavaScript Library v1.6.2 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Jun 30 14:16:56 2011 -0400 + */ +(function(a9,K){var aq=a9.document,br=a9.navigator,bi=a9.location;var b=(function(){var bC=function(bX,bY){return new bC.fn.init(bX,bY,bA)},bS=a9.jQuery,bE=a9.$,bA,bW=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bK=/\S/,bG=/^\s+/,bB=/\s+$/,bF=/\d/,bx=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bL=/^[\],:{}\s]*$/,bU=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bN=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bH=/(?:^|:|,)(?:\s*\[)+/g,bv=/(webkit)[ \/]([\w.]+)/,bP=/(opera)(?:.*version)?[ \/]([\w.]+)/,bO=/(msie) ([\w.]+)/,bQ=/(mozilla)(?:.*? rv:([\w.]+))?/,by=/-([a-z])/ig,bR=function(bX,bY){return bY.toUpperCase()},bV=br.userAgent,bT,bz,e,bJ=Object.prototype.toString,bD=Object.prototype.hasOwnProperty,bw=Array.prototype.push,bI=Array.prototype.slice,bM=String.prototype.trim,bs=Array.prototype.indexOf,bu={};bC.fn=bC.prototype={constructor:bC,init:function(bX,b1,b0){var bZ,b2,bY,b3;if(!bX){return this}if(bX.nodeType){this.context=this[0]=bX;this.length=1;return this}if(bX==="body"&&!b1&&aq.body){this.context=aq;this[0]=aq.body;this.selector=bX;this.length=1;return this}if(typeof bX==="string"){if(bX.charAt(0)==="<"&&bX.charAt(bX.length-1)===">"&&bX.length>=3){bZ=[null,bX,null]}else{bZ=bW.exec(bX)}if(bZ&&(bZ[1]||!b1)){if(bZ[1]){b1=b1 instanceof bC?b1[0]:b1;b3=(b1?b1.ownerDocument||b1:aq);bY=bx.exec(bX);if(bY){if(bC.isPlainObject(b1)){bX=[aq.createElement(bY[1])];bC.fn.attr.call(bX,b1,true)}else{bX=[b3.createElement(bY[1])]}}else{bY=bC.buildFragment([bZ[1]],[b3]);bX=(bY.cacheable?bC.clone(bY.fragment):bY.fragment).childNodes}return bC.merge(this,bX)}else{b2=aq.getElementById(bZ[2]);if(b2&&b2.parentNode){if(b2.id!==bZ[2]){return b0.find(bX)}this.length=1;this[0]=b2}this.context=aq;this.selector=bX;return this}}else{if(!b1||b1.jquery){return(b1||b0).find(bX)}else{return this.constructor(b1).find(bX)}}}else{if(bC.isFunction(bX)){return b0.ready(bX)}}if(bX.selector!==K){this.selector=bX.selector;this.context=bX.context}return bC.makeArray(bX,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return bI.call(this,0)},get:function(bX){return bX==null?this.toArray():(bX<0?this[this.length+bX]:this[bX])},pushStack:function(bY,b0,bX){var bZ=this.constructor();if(bC.isArray(bY)){bw.apply(bZ,bY)}else{bC.merge(bZ,bY)}bZ.prevObject=this;bZ.context=this.context;if(b0==="find"){bZ.selector=this.selector+(this.selector?" ":"")+bX}else{if(b0){bZ.selector=this.selector+"."+b0+"("+bX+")"}}return bZ},each:function(bY,bX){return bC.each(this,bY,bX)},ready:function(bX){bC.bindReady();bz.done(bX);return this},eq:function(bX){return bX===-1?this.slice(bX):this.slice(bX,+bX+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bI.apply(this,arguments),"slice",bI.call(arguments).join(","))},map:function(bX){return this.pushStack(bC.map(this,function(bZ,bY){return bX.call(bZ,bY,bZ)}))},end:function(){return this.prevObject||this.constructor(null)},push:bw,sort:[].sort,splice:[].splice};bC.fn.init.prototype=bC.fn;bC.extend=bC.fn.extend=function(){var b6,bZ,bX,bY,b3,b4,b2=arguments[0]||{},b1=1,b0=arguments.length,b5=false;if(typeof b2==="boolean"){b5=b2;b2=arguments[1]||{};b1=2}if(typeof b2!=="object"&&!bC.isFunction(b2)){b2={}}if(b0===b1){b2=this;--b1}for(;b10){return}bz.resolveWith(aq,[bC]);if(bC.fn.trigger){bC(aq).trigger("ready").unbind("ready")}}},bindReady:function(){if(bz){return}bz=bC._Deferred();if(aq.readyState==="complete"){return setTimeout(bC.ready,1)}if(aq.addEventListener){aq.addEventListener("DOMContentLoaded",e,false);a9.addEventListener("load",bC.ready,false)}else{if(aq.attachEvent){aq.attachEvent("onreadystatechange",e);a9.attachEvent("onload",bC.ready);var bX=false;try{bX=a9.frameElement==null}catch(bY){}if(aq.documentElement.doScroll&&bX){bt()}}}},isFunction:function(bX){return bC.type(bX)==="function"},isArray:Array.isArray||function(bX){return bC.type(bX)==="array"},isWindow:function(bX){return bX&&typeof bX==="object"&&"setInterval" in bX},isNaN:function(bX){return bX==null||!bF.test(bX)||isNaN(bX)},type:function(bX){return bX==null?String(bX):bu[bJ.call(bX)]||"object"},isPlainObject:function(bY){if(!bY||bC.type(bY)!=="object"||bY.nodeType||bC.isWindow(bY)){return false}if(bY.constructor&&!bD.call(bY,"constructor")&&!bD.call(bY.constructor.prototype,"isPrototypeOf")){return false}var bX;for(bX in bY){}return bX===K||bD.call(bY,bX)},isEmptyObject:function(bY){for(var bX in bY){return false}return true},error:function(bX){throw bX},parseJSON:function(bX){if(typeof bX!=="string"||!bX){return null}bX=bC.trim(bX);if(a9.JSON&&a9.JSON.parse){return a9.JSON.parse(bX)}if(bL.test(bX.replace(bU,"@").replace(bN,"]").replace(bH,""))){return(new Function("return "+bX))()}bC.error("Invalid JSON: "+bX)},parseXML:function(bZ,bX,bY){if(a9.DOMParser){bY=new DOMParser();bX=bY.parseFromString(bZ,"text/xml")}else{bX=new ActiveXObject("Microsoft.XMLDOM");bX.async="false";bX.loadXML(bZ)}bY=bX.documentElement;if(!bY||!bY.nodeName||bY.nodeName==="parsererror"){bC.error("Invalid XML: "+bZ)}return bX},noop:function(){},globalEval:function(bX){if(bX&&bK.test(bX)){(a9.execScript||function(bY){a9["eval"].call(a9,bY)})(bX)}},camelCase:function(bX){return bX.replace(by,bR)},nodeName:function(bY,bX){return bY.nodeName&&bY.nodeName.toUpperCase()===bX.toUpperCase()},each:function(b0,b3,bZ){var bY,b1=0,b2=b0.length,bX=b2===K||bC.isFunction(b0);if(bZ){if(bX){for(bY in b0){if(b3.apply(b0[bY],bZ)===false){break}}}else{for(;b10&&bX[0]&&bX[bY-1])||bY===0||bC.isArray(bX));if(b0){for(;bZ1?aF.call(arguments,0):bz;if(!(--bv)){e.resolveWith(e,aF.call(bs,0))}}}if(bw>1){for(;bt
a";bv=bC.getElementsByTagName("*");bK=bC.getElementsByTagName("a")[0];if(!bv||!bv.length||!bK){return{}}bD=aq.createElement("select");bt=bD.appendChild(aq.createElement("option"));bB=bC.getElementsByTagName("input")[0];bz={leadingWhitespace:(bC.firstChild.nodeType===3),tbody:!bC.getElementsByTagName("tbody").length,htmlSerialize:!!bC.getElementsByTagName("link").length,style:/top/.test(bK.getAttribute("style")),hrefNormalized:(bK.getAttribute("href")==="/a"),opacity:/^0.55$/.test(bK.style.opacity),cssFloat:!!bK.style.cssFloat,checkOn:(bB.value==="on"),optSelected:bt.selected,getSetAttribute:bC.className!=="t",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bB.checked=true;bz.noCloneChecked=bB.cloneNode(true).checked;bD.disabled=true;bz.optDisabled=!bt.disabled;try{delete bC.test}catch(bH){bz.deleteExpando=false}if(!bC.addEventListener&&bC.attachEvent&&bC.fireEvent){bC.attachEvent("onclick",function(){bz.noCloneEvent=false});bC.cloneNode(true).fireEvent("onclick")}bB=aq.createElement("input");bB.value="t";bB.setAttribute("type","radio");bz.radioValue=bB.value==="t";bB.setAttribute("checked","checked");bC.appendChild(bB);bs=aq.createDocumentFragment();bs.appendChild(bC.firstChild);bz.checkClone=bs.cloneNode(true).cloneNode(true).lastChild.checked;bC.innerHTML="";bC.style.width=bC.style.paddingLeft="1px";bA=aq.getElementsByTagName("body")[0];by=aq.createElement(bA?"div":"body");bI={visibility:"hidden",width:0,height:0,border:0,margin:0};if(bA){b.extend(bI,{position:"absolute",left:-1000,top:-1000})}for(bF in bI){by.style[bF]=bI[bF]}by.appendChild(bC);bE=bA||bJ;bE.insertBefore(by,bE.firstChild);bz.appendChecked=bB.checked;bz.boxModel=bC.offsetWidth===2;if("zoom" in bC.style){bC.style.display="inline";bC.style.zoom=1;bz.inlineBlockNeedsLayout=(bC.offsetWidth===2);bC.style.display="";bC.innerHTML="
";bz.shrinkWrapBlocks=(bC.offsetWidth!==2)}bC.innerHTML="
t
";bG=bC.getElementsByTagName("td");bL=(bG[0].offsetHeight===0);bG[0].style.display="";bG[1].style.display="none";bz.reliableHiddenOffsets=bL&&(bG[0].offsetHeight===0);bC.innerHTML="";if(aq.defaultView&&aq.defaultView.getComputedStyle){bw=aq.createElement("div");bw.style.width="0";bw.style.marginRight="0";bC.appendChild(bw);bz.reliableMarginRight=(parseInt((aq.defaultView.getComputedStyle(bw,null)||{marginRight:0}).marginRight,10)||0)===0}by.innerHTML="";bE.removeChild(by);if(bC.attachEvent){for(bF in {submit:1,change:1,focusin:1}){bx="on"+bF;bL=(bx in bC);if(!bL){bC.setAttribute(bx,"return;");bL=(typeof bC[bx]==="function")}bz[bF+"Bubbles"]=bL}}by=bs=bD=bt=bA=bw=bC=bB=null;return bz})();b.boxModel=b.support.boxModel;var aM=/^(?:\{.*\}|\[.*\])$/,aw=/([a-z])([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!T(e)},data:function(bu,bs,bw,bv){if(!b.acceptData(bu)){return}var bz=b.expando,by=typeof bs==="string",bx,bA=bu.nodeType,e=bA?b.cache:bu,bt=bA?bu[b.expando]:bu[b.expando]&&b.expando;if((!bt||(bv&&bt&&!e[bt][bz]))&&by&&bw===K){return}if(!bt){if(bA){bu[b.expando]=bt=++b.uuid}else{bt=b.expando}}if(!e[bt]){e[bt]={};if(!bA){e[bt].toJSON=b.noop}}if(typeof bs==="object"||typeof bs==="function"){if(bv){e[bt][bz]=b.extend(e[bt][bz],bs)}else{e[bt]=b.extend(e[bt],bs)}}bx=e[bt];if(bv){if(!bx[bz]){bx[bz]={}}bx=bx[bz]}if(bw!==K){bx[b.camelCase(bs)]=bw}if(bs==="events"&&!bx[bs]){return bx[bz]&&bx[bz].events}return by?bx[b.camelCase(bs)]||bx[bs]:bx},removeData:function(bv,bt,bw){if(!b.acceptData(bv)){return}var by=b.expando,bz=bv.nodeType,bs=bz?b.cache:bv,bu=bz?bv[b.expando]:b.expando;if(!bs[bu]){return}if(bt){var bx=bw?bs[bu][by]:bs[bu];if(bx){delete bx[bt];if(!T(bx)){return}}}if(bw){delete bs[bu][by];if(!T(bs[bu])){return}}var e=bs[bu][by];if(b.support.deleteExpando||bs!=a9){delete bs[bu]}else{bs[bu]=null}if(e){bs[bu]={};if(!bz){bs[bu].toJSON=b.noop}bs[bu][by]=e}else{if(bz){if(b.support.deleteExpando){delete bv[b.expando]}else{if(bv.removeAttribute){bv.removeAttribute(b.expando)}else{bv[b.expando]=null}}}}},_data:function(bs,e,bt){return b.data(bs,e,bt,true)},acceptData:function(bs){if(bs.nodeName){var e=b.noData[bs.nodeName.toLowerCase()];if(e){return !(e===true||bs.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(bv,bx){var bw=null;if(typeof bv==="undefined"){if(this.length){bw=b.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,bt;for(var bu=0,bs=e.length;bu-1){return true}}return false},val:function(bu){var e,bs,bt=this[0];if(!arguments.length){if(bt){e=b.valHooks[bt.nodeName.toLowerCase()]||b.valHooks[bt.type];if(e&&"get" in e&&(bs=e.get(bt,"value"))!==K){return bs}bs=bt.value;return typeof bs==="string"?bs.replace(aO,""):bs==null?"":bs}return K}var bv=b.isFunction(bu);return this.each(function(bx){var bw=b(this),by;if(this.nodeType!==1){return}if(bv){by=bu.call(this,bx,bw.val())}else{by=bu}if(by==null){by=""}else{if(typeof by==="number"){by+=""}else{if(b.isArray(by)){by=b.map(by,function(bz){return bz==null?"":bz+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,by,"value")===K){this.value=by}})}});b.extend({valHooks:{option:{get:function(e){var bs=e.attributes.value;return !bs||bs.specified?e.value:e.text}},select:{get:function(e){var bx,bv=e.selectedIndex,by=[],bz=e.options,bu=e.type==="select-one";if(bv<0){return null}for(var bs=bu?bv:0,bw=bu?bv+1:bz.length;bs=0});if(!e.length){bs.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attrFix:{tabindex:"tabIndex"},attr:function(bx,bu,by,bw){var bs=bx.nodeType;if(!bx||bs===3||bs===8||bs===2){return K}if(bw&&bu in b.attrFn){return b(bx)[bu](by)}if(!("getAttribute" in bx)){return b.prop(bx,bu,by)}var bt,e,bv=bs!==1||!b.isXMLDoc(bx);if(bv){bu=b.attrFix[bu]||bu;e=b.attrHooks[bu];if(!e){if(ak.test(bu)){e=aU}else{if(a0&&bu!=="className"&&(b.nodeName(bx,"form")||a5.test(bu))){e=a0}}}}if(by!==K){if(by===null){b.removeAttr(bx,bu);return K}else{if(e&&"set" in e&&bv&&(bt=e.set(bx,by,bu))!==K){return bt}else{bx.setAttribute(bu,""+by);return by}}}else{if(e&&"get" in e&&bv&&(bt=e.get(bx,bu))!==null){return bt}else{bt=bx.getAttribute(bu);return bt===null?K:bt}}},removeAttr:function(bs,e){var bt;if(bs.nodeType===1){e=b.attrFix[e]||e;if(b.support.getSetAttribute){bs.removeAttribute(e)}else{b.attr(bs,e,"");bs.removeAttributeNode(bs.getAttributeNode(e))}if(ak.test(e)&&(bt=b.propFix[e]||e) in bs){bs[bt]=false}}},attrHooks:{type:{set:function(e,bs){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bs==="radio"&&b.nodeName(e,"input")){var bt=e.value;e.setAttribute("type",bs);if(bt){e.value=bt}return bs}}}},tabIndex:{get:function(bs){var e=bs.getAttributeNode("tabIndex");return e&&e.specified?parseInt(e.value,10):D.test(bs.nodeName)||l.test(bs.nodeName)&&bs.href?0:K}},value:{get:function(bs,e){if(a0&&b.nodeName(bs,"button")){return a0.get(bs,e)}return e in bs?bs.value:null},set:function(bs,bt,e){if(a0&&b.nodeName(bs,"button")){return a0.set(bs,bt,e)}bs.value=bt}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bw,bu,bx){var bs=bw.nodeType;if(!bw||bs===3||bs===8||bs===2){return K}var bt,e,bv=bs!==1||!b.isXMLDoc(bw);if(bv){bu=b.propFix[bu]||bu;e=b.propHooks[bu]}if(bx!==K){if(e&&"set" in e&&(bt=e.set(bw,bx,bu))!==K){return bt}else{return(bw[bu]=bx)}}else{if(e&&"get" in e&&(bt=e.get(bw,bu))!==K){return bt}else{return bw[bu]}}},propHooks:{}});aU={get:function(bs,e){return b.prop(bs,e)?e.toLowerCase():K},set:function(bs,bu,e){var bt;if(bu===false){b.removeAttr(bs,e)}else{bt=b.propFix[e]||e;if(bt in bs){bs[bt]=true}bs.setAttribute(e,e.toLowerCase())}return e}};if(!b.support.getSetAttribute){b.attrFix=b.propFix;a0=b.attrHooks.name=b.attrHooks.title=b.valHooks.button={get:function(bt,bs){var e;e=bt.getAttributeNode(bs);return e&&e.nodeValue!==""?e.nodeValue:K},set:function(bt,bu,bs){var e=bt.getAttributeNode(bs);if(e){e.nodeValue=bu;return bu}}};b.each(["width","height"],function(bs,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bt,bu){if(bu===""){bt.setAttribute(e,"auto");return bu}}})})}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bs,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bu){var bt=bu.getAttribute(e,2);return bt===null?K:bt}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||K},set:function(e,bs){return(e.style.cssText=""+bs)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bs){var e=bs.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}}})}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bs){if(b.isArray(bs)){return(e.checked=b.inArray(b(e).val(),bs)>=0)}}})});var aW=/\.(.*)$/,bb=/^(?:textarea|input|select)$/i,N=/\./g,bf=/ /g,aC=/[^\w\s.|`]/g,G=function(e){return e.replace(aC,"\\$&")};b.event={add:function(bu,by,bD,bw){if(bu.nodeType===3||bu.nodeType===8){return}if(bD===false){bD=bh}else{if(!bD){return}}var bs,bC;if(bD.handler){bs=bD;bD=bs.handler}if(!bD.guid){bD.guid=b.guid++}var bz=b._data(bu);if(!bz){return}var bE=bz.events,bx=bz.handle;if(!bE){bz.events=bE={}}if(!bx){bz.handle=bx=function(bF){return typeof b!=="undefined"&&(!bF||b.event.triggered!==bF.type)?b.event.handle.apply(bx.elem,arguments):K}}bx.elem=bu;by=by.split(" ");var bB,bv=0,e;while((bB=by[bv++])){bC=bs?b.extend({},bs):{handler:bD,data:bw};if(bB.indexOf(".")>-1){e=bB.split(".");bB=e.shift();bC.namespace=e.slice(0).sort().join(".")}else{e=[];bC.namespace=""}bC.type=bB;if(!bC.guid){bC.guid=bD.guid}var bt=bE[bB],bA=b.event.special[bB]||{};if(!bt){bt=bE[bB]=[];if(!bA.setup||bA.setup.call(bu,bw,e,bx)===false){if(bu.addEventListener){bu.addEventListener(bB,bx,false)}else{if(bu.attachEvent){bu.attachEvent("on"+bB,bx)}}}}if(bA.add){bA.add.call(bu,bC);if(!bC.handler.guid){bC.handler.guid=bD.guid}}bt.push(bC);b.event.global[bB]=true}bu=null},global:{},remove:function(bG,bB,bt,bx){if(bG.nodeType===3||bG.nodeType===8){return}if(bt===false){bt=bh}var bJ,bw,by,bD,bE=0,bu,bz,bC,bv,bA,e,bI,bF=b.hasData(bG)&&b._data(bG),bs=bF&&bF.events;if(!bF||!bs){return}if(bB&&bB.type){bt=bB.handler;bB=bB.type}if(!bB||typeof bB==="string"&&bB.charAt(0)==="."){bB=bB||"";for(bw in bs){b.event.remove(bG,bw+bB)}return}bB=bB.split(" ");while((bw=bB[bE++])){bI=bw;e=null;bu=bw.indexOf(".")<0;bz=[];if(!bu){bz=bw.split(".");bw=bz.shift();bC=new RegExp("(^|\\.)"+b.map(bz.slice(0).sort(),G).join("\\.(?:.*\\.)?")+"(\\.|$)")}bA=bs[bw];if(!bA){continue}if(!bt){for(bD=0;bD=0){bB=bB.slice(0,-1);bs=true}if(bB.indexOf(".")>=0){bt=bB.split(".");bB=bt.shift();bt.sort()}if((!bw||b.event.customEvent[bB])&&!b.event.global[bB]){return}e=typeof e==="object"?e[b.expando]?e:new b.Event(bB,e):new b.Event(bB);e.type=bB;e.exclusive=bs;e.namespace=bt.join(".");e.namespace_re=new RegExp("(^|\\.)"+bt.join("\\.(?:.*\\.)?")+"(\\.|$)");if(bD||!bw){e.preventDefault();e.stopPropagation()}if(!bw){b.each(b.cache,function(){var bF=b.expando,bE=this[bF];if(bE&&bE.events&&bE.events[bB]){b.event.trigger(e,by,bE.handle.elem)}});return}if(bw.nodeType===3||bw.nodeType===8){return}e.result=K;e.target=bw;by=by!=null?b.makeArray(by):[];by.unshift(e);var bC=bw,bu=bB.indexOf(":")<0?"on"+bB:"";do{var bz=b._data(bC,"handle");e.currentTarget=bC;if(bz){bz.apply(bC,by)}if(bu&&b.acceptData(bC)&&bC[bu]&&bC[bu].apply(bC,by)===false){e.result=false;e.preventDefault()}bC=bC.parentNode||bC.ownerDocument||bC===e.target.ownerDocument&&a9}while(bC&&!e.isPropagationStopped());if(!e.isDefaultPrevented()){var bv,bA=b.event.special[bB]||{};if((!bA._default||bA._default.call(bw.ownerDocument,e)===false)&&!(bB==="click"&&b.nodeName(bw,"a"))&&b.acceptData(bw)){try{if(bu&&bw[bB]){bv=bw[bu];if(bv){bw[bu]=null}b.event.triggered=bB;bw[bB]()}}catch(bx){}if(bv){bw[bu]=bv}b.event.triggered=K}}return e.result},handle:function(by){by=b.event.fix(by||a9.event);var bs=((b._data(this,"events")||{})[by.type]||[]).slice(0),bx=!by.exclusive&&!by.namespace,bv=Array.prototype.slice.call(arguments,0);bv[0]=by;by.currentTarget=this;for(var bu=0,e=bs.length;bu-1?b.map(bs.options,function(bu){return bu.selected}).join("-"):""}else{if(b.nodeName(bs,"select")){bt=bs.selectedIndex}}}return bt},Z=function Z(bu){var bs=bu.target,bt,bv;if(!bb.test(bs.nodeName)||bs.readOnly){return}bt=b._data(bs,"_change_data");bv=k(bs);if(bu.type!=="focusout"||bs.type!=="radio"){b._data(bs,"_change_data",bv)}if(bt===K||bv===bt){return}if(bt!=null||bv){bu.type="change";bu.liveFired=K;b.event.trigger(bu,arguments[1],bs)}};b.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(bu){var bt=bu.target,bs=b.nodeName(bt,"input")?bt.type:"";if(bs==="radio"||bs==="checkbox"||b.nodeName(bt,"select")){Z.call(this,bu)}},keydown:function(bu){var bt=bu.target,bs=b.nodeName(bt,"input")?bt.type:"";if((bu.keyCode===13&&!b.nodeName(bt,"textarea"))||(bu.keyCode===32&&(bs==="checkbox"||bs==="radio"))||bs==="select-multiple"){Z.call(this,bu)}},beforeactivate:function(bt){var bs=bt.target;b._data(bs,"_change_data",k(bs))}},setup:function(bt,bs){if(this.type==="file"){return false}for(var e in bk){b.event.add(this,e+".specialChange",bk[e])}return bb.test(this.nodeName)},teardown:function(e){b.event.remove(this,".specialChange");return bb.test(this.nodeName)}};bk=b.event.special.change.filters;bk.focus=bk.beforeactivate}function aT(bs,bu,e){var bt=b.extend({},e[0]);bt.type=bs;bt.originalEvent={};bt.liveFired=K;b.event.handle.call(bu,bt);if(bt.isDefaultPrevented()){e[0].preventDefault()}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bu,e){var bs=0;b.event.special[e]={setup:function(){if(bs++===0){aq.addEventListener(bu,bt,true)}},teardown:function(){if(--bs===0){aq.removeEventListener(bu,bt,true)}}};function bt(bv){var bw=b.event.fix(bv);bw.type=e;bw.originalEvent={};b.event.trigger(bw,null,bw.target);if(bw.isDefaultPrevented()){bv.preventDefault()}}})}b.each(["bind","one"],function(bs,e){b.fn[e]=function(by,bz,bx){var bw;if(typeof by==="object"){for(var bv in by){this[e](bv,bz,by[bv],bx)}return this}if(arguments.length===2||bz===false){bx=bz;bz=K}if(e==="one"){bw=function(bA){b(this).unbind(bA,bw);return bx.apply(this,arguments)};bw.guid=bx.guid||b.guid++}else{bw=bx}if(by==="unload"&&e!=="one"){this.one(by,bz,bx)}else{for(var bu=0,bt=this.length;bubu){break}bC.currentTarget=bw.elem;bC.data=bw.handleObj.data;bC.handleObj=bw.handleObj;bG=bw.handleObj.origHandler.apply(bw.elem,arguments);if(bG===false||bC.isPropagationStopped()){bu=bw.level;if(bG===false){bz=false}if(bC.isImmediatePropagationStopped()){break}}}return bz}function p(bs,e){return(bs&&bs!=="*"?bs+".":"")+e.replace(N,"`").replace(bf,"&")}b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error").split(" "),function(bs,e){b.fn[e]=function(bu,bt){if(bt==null){bt=bu;bu=null}return arguments.length>0?this.bind(e,bu,bt):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}}); +/* + * Sizzle CSS Selector Engine + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var bC=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bD=0,bG=Object.prototype.toString,bx=false,bw=true,bE=/\\/g,bK=/\W/;[0,0].sort(function(){bw=false;return 0});var bu=function(bP,e,bS,bT){bS=bS||[];e=e||aq;var bV=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bP||typeof bP!=="string"){return bS}var bM,bX,b0,bL,bW,bZ,bY,bR,bO=true,bN=bu.isXML(e),bQ=[],bU=bP;do{bC.exec("");bM=bC.exec(bU);if(bM){bU=bM[3];bQ.push(bM[1]);if(bM[2]){bL=bM[3];break}}}while(bM);if(bQ.length>1&&by.exec(bP)){if(bQ.length===2&&bz.relative[bQ[0]]){bX=bH(bQ[0]+bQ[1],e)}else{bX=bz.relative[bQ[0]]?[e]:bu(bQ.shift(),e);while(bQ.length){bP=bQ.shift();if(bz.relative[bP]){bP+=bQ.shift()}bX=bH(bP,bX)}}}else{if(!bT&&bQ.length>1&&e.nodeType===9&&!bN&&bz.match.ID.test(bQ[0])&&!bz.match.ID.test(bQ[bQ.length-1])){bW=bu.find(bQ.shift(),e,bN);e=bW.expr?bu.filter(bW.expr,bW.set)[0]:bW.set[0]}if(e){bW=bT?{expr:bQ.pop(),set:bA(bT)}:bu.find(bQ.pop(),bQ.length===1&&(bQ[0]==="~"||bQ[0]==="+")&&e.parentNode?e.parentNode:e,bN);bX=bW.expr?bu.filter(bW.expr,bW.set):bW.set;if(bQ.length>0){b0=bA(bX)}else{bO=false}while(bQ.length){bZ=bQ.pop();bY=bZ;if(!bz.relative[bZ]){bZ=""}else{bY=bQ.pop()}if(bY==null){bY=e}bz.relative[bZ](b0,bY,bN)}}else{b0=bQ=[]}}if(!b0){b0=bX}if(!b0){bu.error(bZ||bP)}if(bG.call(b0)==="[object Array]"){if(!bO){bS.push.apply(bS,b0)}else{if(e&&e.nodeType===1){for(bR=0;b0[bR]!=null;bR++){if(b0[bR]&&(b0[bR]===true||b0[bR].nodeType===1&&bu.contains(e,b0[bR]))){bS.push(bX[bR])}}}else{for(bR=0;b0[bR]!=null;bR++){if(b0[bR]&&b0[bR].nodeType===1){bS.push(bX[bR])}}}}}else{bA(b0,bS)}if(bL){bu(bL,bV,bS,bT);bu.uniqueSort(bS)}return bS};bu.uniqueSort=function(bL){if(bF){bx=bw;bL.sort(bF);if(bx){for(var e=1;e0};bu.find=function(bR,e,bS){var bQ;if(!bR){return[]}for(var bN=0,bM=bz.order.length;bN":function(bQ,bL){var bP,bO=typeof bL==="string",bM=0,e=bQ.length;if(bO&&!bK.test(bL)){bL=bL.toLowerCase();for(;bM=0)){if(!bM){e.push(bP)}}else{if(bM){bL[bO]=false}}}}return false},ID:function(e){return e[1].replace(bE,"")},TAG:function(bL,e){return bL[1].replace(bE,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){bu.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bL=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bL[1]+(bL[2]||1))-0;e[3]=bL[3]-0}else{if(e[2]){bu.error(e[0])}}e[0]=bD++;return e},ATTR:function(bO,bL,bM,e,bP,bQ){var bN=bO[1]=bO[1].replace(bE,"");if(!bQ&&bz.attrMap[bN]){bO[1]=bz.attrMap[bN]}bO[4]=(bO[4]||bO[5]||"").replace(bE,"");if(bO[2]==="~="){bO[4]=" "+bO[4]+" "}return bO},PSEUDO:function(bO,bL,bM,e,bP){if(bO[1]==="not"){if((bC.exec(bO[3])||"").length>1||/^\w/.test(bO[3])){bO[3]=bu(bO[3],null,null,bL)}else{var bN=bu.filter(bO[3],bL,bM,true^bP);if(!bM){e.push.apply(e,bN)}return false}}else{if(bz.match.POS.test(bO[0])||bz.match.CHILD.test(bO[0])){return true}}return bO},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bM,bL,e){return !!bu(e[3],bM).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bM){var e=bM.getAttribute("type"),bL=bM.type;return bM.nodeName.toLowerCase()==="input"&&"text"===bL&&(e===bL||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bL){var e=bL.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bL.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bL){var e=bL.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bL.type},button:function(bL){var e=bL.nodeName.toLowerCase();return e==="input"&&"button"===bL.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bL,e){return e===0},last:function(bM,bL,e,bN){return bL===bN.length-1},even:function(bL,e){return e%2===0},odd:function(bL,e){return e%2===1},lt:function(bM,bL,e){return bLe[3]-0},nth:function(bM,bL,e){return e[3]-0===bL},eq:function(bM,bL,e){return e[3]-0===bL}},filter:{PSEUDO:function(bM,bR,bQ,bS){var e=bR[1],bL=bz.filters[e];if(bL){return bL(bM,bQ,bR,bS)}else{if(e==="contains"){return(bM.textContent||bM.innerText||bu.getText([bM])||"").indexOf(bR[3])>=0}else{if(e==="not"){var bN=bR[3];for(var bP=0,bO=bN.length;bP=0)}}},ID:function(bL,e){return bL.nodeType===1&&bL.getAttribute("id")===e},TAG:function(bL,e){return(e==="*"&&bL.nodeType===1)||bL.nodeName.toLowerCase()===e},CLASS:function(bL,e){return(" "+(bL.className||bL.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bP,bN){var bM=bN[1],e=bz.attrHandle[bM]?bz.attrHandle[bM](bP):bP[bM]!=null?bP[bM]:bP.getAttribute(bM),bQ=e+"",bO=bN[2],bL=bN[4];return e==null?bO==="!=":bO==="="?bQ===bL:bO==="*="?bQ.indexOf(bL)>=0:bO==="~="?(" "+bQ+" ").indexOf(bL)>=0:!bL?bQ&&e!==false:bO==="!="?bQ!==bL:bO==="^="?bQ.indexOf(bL)===0:bO==="$="?bQ.substr(bQ.length-bL.length)===bL:bO==="|="?bQ===bL||bQ.substr(0,bL.length+1)===bL+"-":false},POS:function(bO,bL,bM,bP){var e=bL[2],bN=bz.setFilters[e];if(bN){return bN(bO,bM,bL,bP)}}}};var by=bz.match.POS,bt=function(bL,e){return"\\"+(e-0+1)};for(var bv in bz.match){bz.match[bv]=new RegExp(bz.match[bv].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bz.leftMatch[bv]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bz.match[bv].source.replace(/\\(\d+)/g,bt))}var bA=function(bL,e){bL=Array.prototype.slice.call(bL,0);if(e){e.push.apply(e,bL);return e}return bL};try{Array.prototype.slice.call(aq.documentElement.childNodes,0)[0].nodeType}catch(bJ){bA=function(bO,bN){var bM=0,bL=bN||[];if(bG.call(bO)==="[object Array]"){Array.prototype.push.apply(bL,bO)}else{if(typeof bO.length==="number"){for(var e=bO.length;bM";e.insertBefore(bL,e.firstChild);if(aq.getElementById(bM)){bz.find.ID=function(bO,bP,bQ){if(typeof bP.getElementById!=="undefined"&&!bQ){var bN=bP.getElementById(bO[1]);return bN?bN.id===bO[1]||typeof bN.getAttributeNode!=="undefined"&&bN.getAttributeNode("id").nodeValue===bO[1]?[bN]:K:[]}};bz.filter.ID=function(bP,bN){var bO=typeof bP.getAttributeNode!=="undefined"&&bP.getAttributeNode("id");return bP.nodeType===1&&bO&&bO.nodeValue===bN}}e.removeChild(bL);e=bL=null})();(function(){var e=aq.createElement("div");e.appendChild(aq.createComment(""));if(e.getElementsByTagName("*").length>0){bz.find.TAG=function(bL,bP){var bO=bP.getElementsByTagName(bL[1]);if(bL[1]==="*"){var bN=[];for(var bM=0;bO[bM];bM++){if(bO[bM].nodeType===1){bN.push(bO[bM])}}bO=bN}return bO}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bz.attrHandle.href=function(bL){return bL.getAttribute("href",2)}}e=null})();if(aq.querySelectorAll){(function(){var e=bu,bN=aq.createElement("div"),bM="__sizzle__";bN.innerHTML="

";if(bN.querySelectorAll&&bN.querySelectorAll(".TEST").length===0){return}bu=function(bY,bP,bT,bX){bP=bP||aq;if(!bX&&!bu.isXML(bP)){var bW=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(bY);if(bW&&(bP.nodeType===1||bP.nodeType===9)){if(bW[1]){return bA(bP.getElementsByTagName(bY),bT)}else{if(bW[2]&&bz.find.CLASS&&bP.getElementsByClassName){return bA(bP.getElementsByClassName(bW[2]),bT)}}}if(bP.nodeType===9){if(bY==="body"&&bP.body){return bA([bP.body],bT)}else{if(bW&&bW[3]){var bS=bP.getElementById(bW[3]);if(bS&&bS.parentNode){if(bS.id===bW[3]){return bA([bS],bT)}}else{return bA([],bT)}}}try{return bA(bP.querySelectorAll(bY),bT)}catch(bU){}}else{if(bP.nodeType===1&&bP.nodeName.toLowerCase()!=="object"){var bQ=bP,bR=bP.getAttribute("id"),bO=bR||bM,b0=bP.parentNode,bZ=/^\s*[+~]/.test(bY);if(!bR){bP.setAttribute("id",bO)}else{bO=bO.replace(/'/g,"\\$&")}if(bZ&&b0){bP=bP.parentNode}try{if(!bZ||b0){return bA(bP.querySelectorAll("[id='"+bO+"'] "+bY),bT)}}catch(bV){}finally{if(!bR){bQ.removeAttribute("id")}}}}}return e(bY,bP,bT,bX)};for(var bL in e){bu[bL]=e[bL]}bN=null})()}(function(){var e=aq.documentElement,bM=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bM){var bO=!bM.call(aq.createElement("div"),"div"),bL=false;try{bM.call(aq.documentElement,"[test!='']:sizzle")}catch(bN){bL=true}bu.matchesSelector=function(bQ,bS){bS=bS.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!bu.isXML(bQ)){try{if(bL||!bz.match.PSEUDO.test(bS)&&!/!=/.test(bS)){var bP=bM.call(bQ,bS);if(bP||!bO||bQ.document&&bQ.document.nodeType!==11){return bP}}}catch(bR){}}return bu(bS,null,null,[bQ]).length>0}}})();(function(){var e=aq.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bz.order.splice(1,0,"CLASS");bz.find.CLASS=function(bL,bM,bN){if(typeof bM.getElementsByClassName!=="undefined"&&!bN){return bM.getElementsByClassName(bL[1])}};e=null})();function bs(bL,bQ,bP,bT,bR,bS){for(var bN=0,bM=bT.length;bN0){bO=e;break}}}e=e[bL]}bT[bN]=bO}}}if(aq.documentElement.contains){bu.contains=function(bL,e){return bL!==e&&(bL.contains?bL.contains(e):true)}}else{if(aq.documentElement.compareDocumentPosition){bu.contains=function(bL,e){return !!(bL.compareDocumentPosition(e)&16)}}else{bu.contains=function(){return false}}}bu.isXML=function(e){var bL=(e?e.ownerDocument||e:0).documentElement;return bL?bL.nodeName!=="HTML":false};var bH=function(e,bR){var bP,bN=[],bO="",bM=bR.nodeType?[bR]:bR;while((bP=bz.match.PSEUDO.exec(e))){bO+=bP[0];e=e.replace(bz.match.PSEUDO,"")}e=bz.relative[e]?e+"*":e;for(var bQ=0,bL=bM.length;bQ0){for(by=bx;by0:this.filter(e).length>0)},closest:function(bB,bs){var by=[],bv,bt,bA=this[0];if(b.isArray(bB)){var bx,bu,bw={},e=1;if(bA&&bB.length){for(bv=0,bt=bB.length;bv-1:b(bA).is(bx)){by.push({selector:bu,elem:bA,level:e})}}bA=bA.parentNode;e++}}return by}var bz=H.test(bB)||typeof bB!=="string"?b(bB,bs||this.context):0;for(bv=0,bt=this.length;bv-1:b.find.matchesSelector(bA,bB)){by.push(bA);break}else{bA=bA.parentNode;if(!bA||!bA.ownerDocument||bA===bs||bA.nodeType===11){break}}}}by=by.length>1?b.unique(by):by;return this.pushStack(by,"closest",bB)},index:function(e){if(!e||typeof e==="string"){return b.inArray(this[0],e?b(e):this.parent().children())}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bs){var bu=typeof e==="string"?b(e,bs):b.makeArray(e&&e.nodeType?[e]:e),bt=b.merge(this.get(),bu);return this.pushStack(C(bu[0])||C(bt[0])?bt:b.unique(bt))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bs){var e=bs.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bs,e,bt){return b.dir(bs,"parentNode",bt)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bs,e,bt){return b.dir(bs,"nextSibling",bt)},prevUntil:function(bs,e,bt){return b.dir(bs,"previousSibling",bt)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bs){b.fn[e]=function(bw,bt){var bv=b.map(this,bs,bw),bu=P.call(arguments);if(!Y.test(e)){bt=bw}if(bt&&typeof bt==="string"){bv=b.filter(bt,bv)}bv=this.length>1&&!au[e]?b.unique(bv):bv;if((this.length>1||a7.test(bt))&&am.test(e)){bv=bv.reverse()}return this.pushStack(bv,e,bu.join(","))}});b.extend({filter:function(bt,e,bs){if(bs){bt=":not("+bt+")"}return e.length===1?b.find.matchesSelector(e[0],bt)?[e[0]]:[]:b.find.matches(bt,e)},dir:function(bt,bs,bv){var e=[],bu=bt[bs];while(bu&&bu.nodeType!==9&&(bv===K||bu.nodeType!==1||!b(bu).is(bv))){if(bu.nodeType===1){e.push(bu)}bu=bu[bs]}return e},nth:function(bv,e,bt,bu){e=e||1;var bs=0;for(;bv;bv=bv[bt]){if(bv.nodeType===1&&++bs===e){break}}return bv},sibling:function(bt,bs){var e=[];for(;bt;bt=bt.nextSibling){if(bt.nodeType===1&&bt!==bs){e.push(bt)}}return e}});function aB(bu,bt,e){bt=bt||0;if(b.isFunction(bt)){return b.grep(bu,function(bw,bv){var bx=!!bt.call(bw,bv,bw);return bx===e})}else{if(bt.nodeType){return b.grep(bu,function(bw,bv){return(bw===bt)===e})}else{if(typeof bt==="string"){var bs=b.grep(bu,function(bv){return bv.nodeType===1});if(bn.test(bt)){return b.filter(bt,bs,!e)}else{bt=b.filter(bt,bs)}}}}return b.grep(bu,function(bw,bv){return(b.inArray(bw,bt)>=0)===e})}var ad=/ jQuery\d+="(?:\d+|null)"/g,an=/^\s+/,S=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};at.optgroup=at.option;at.tbody=at.tfoot=at.colgroup=at.caption=at.thead;at.th=at.td;if(!b.support.htmlSerialize){at._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bt){var bs=b(this);bs.text(e.call(this,bt,bs.text()))})}if(typeof e!=="object"&&e!==K){return this.empty().append((this[0]&&this[0].ownerDocument||aq).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bt){b(this).wrapAll(e.call(this,bt))})}if(this[0]){var bs=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bs.insertBefore(this[0])}bs.map(function(){var bt=this;while(bt.firstChild&&bt.firstChild.nodeType===1){bt=bt.firstChild}return bt}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bs){b(this).wrapInner(e.call(this,bs))})}return this.each(function(){var bs=b(this),bt=bs.contents();if(bt.length){bt.wrapAll(e)}else{bs.append(e)}})},wrap:function(e){return this.each(function(){b(this).wrapAll(e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bs){this.parentNode.insertBefore(bs,this)})}else{if(arguments.length){var e=b(arguments[0]);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bs){this.parentNode.insertBefore(bs,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b(arguments[0]).toArray());return e}}},remove:function(e,bu){for(var bs=0,bt;(bt=this[bs])!=null;bs++){if(!e||b.filter(e,[bt]).length){if(!bu&&bt.nodeType===1){b.cleanData(bt.getElementsByTagName("*"));b.cleanData([bt])}if(bt.parentNode){bt.parentNode.removeChild(bt)}}}return this},empty:function(){for(var e=0,bs;(bs=this[e])!=null;e++){if(bs.nodeType===1){b.cleanData(bs.getElementsByTagName("*"))}while(bs.firstChild){bs.removeChild(bs.firstChild)}}return this},clone:function(bs,e){bs=bs==null?false:bs;e=e==null?bs:e;return this.map(function(){return b.clone(this,bs,e)})},html:function(bu){if(bu===K){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ad,""):null}else{if(typeof bu==="string"&&!O.test(bu)&&(b.support.leadingWhitespace||!an.test(bu))&&!at[(d.exec(bu)||["",""])[1].toLowerCase()]){bu=bu.replace(S,"<$1>");try{for(var bt=0,bs=this.length;bt1&&bt0?this.clone(true):this).get();b(bz[bx])[bs](bv);bw=bw.concat(bv)}return this.pushStack(bw,e,bz.selector)}}});function bc(e){if("getElementsByTagName" in e){return e.getElementsByTagName("*")}else{if("querySelectorAll" in e){return e.querySelectorAll("*")}else{return[]}}}function av(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){if(b.nodeName(e,"input")){av(e)}else{if("getElementsByTagName" in e){b.grep(e.getElementsByTagName("input"),av)}}}b.extend({clone:function(bv,bx,bt){var bw=bv.cloneNode(true),e,bs,bu;if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(bv.nodeType===1||bv.nodeType===11)&&!b.isXMLDoc(bv)){ae(bv,bw);e=bc(bv);bs=bc(bw);for(bu=0;e[bu];++bu){ae(e[bu],bs[bu])}}if(bx){t(bv,bw);if(bt){e=bc(bv);bs=bc(bw);for(bu=0;e[bu];++bu){t(e[bu],bs[bu])}}}e=bs=null;return bw},clean:function(bt,bv,bE,bx){var bC;bv=bv||aq;if(typeof bv.createElement==="undefined"){bv=bv.ownerDocument||bv[0]&&bv[0].ownerDocument||aq}var bF=[],by;for(var bB=0,bw;(bw=bt[bB])!=null;bB++){if(typeof bw==="number"){bw+=""}if(!bw){continue}if(typeof bw==="string"){if(!V.test(bw)){bw=bv.createTextNode(bw)}else{bw=bw.replace(S,"<$1>");var bH=(d.exec(bw)||["",""])[1].toLowerCase(),bu=at[bH]||at._default,bA=bu[0],bs=bv.createElement("div");bs.innerHTML=bu[1]+bw+bu[2];while(bA--){bs=bs.lastChild}if(!b.support.tbody){var e=w.test(bw),bz=bH==="table"&&!e?bs.firstChild&&bs.firstChild.childNodes:bu[1]===""&&!e?bs.childNodes:[];for(by=bz.length-1;by>=0;--by){if(b.nodeName(bz[by],"tbody")&&!bz[by].childNodes.length){bz[by].parentNode.removeChild(bz[by])}}}if(!b.support.leadingWhitespace&&an.test(bw)){bs.insertBefore(bv.createTextNode(an.exec(bw)[0]),bs.firstChild)}bw=bs.childNodes}}var bD;if(!b.support.appendChecked){if(bw[0]&&typeof(bD=bw.length)==="number"){for(by=0;by=0){return bu+"px"}}else{return bu}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bs,e){return ap.test((e&&bs.currentStyle?bs.currentStyle.filter:bs.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(bv,bw){var bu=bv.style,bs=bv.currentStyle;bu.zoom=1;var e=b.isNaN(bw)?"":"alpha(opacity="+bw*100+")",bt=bs&&bs.filter||bu.filter||"";bu.filter=ah.test(bt)?bt.replace(ah,e):bt+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bt,bs){var e;b.swap(bt,{display:"inline-block"},function(){if(bs){e=W(bt,"margin-right","marginRight")}else{e=bt.style.marginRight}});return e}}}});if(aq.defaultView&&aq.defaultView.getComputedStyle){aE=function(bv,bt){var bs,bu,e;bt=bt.replace(z,"-$1").toLowerCase();if(!(bu=bv.ownerDocument.defaultView)){return K}if((e=bu.getComputedStyle(bv,null))){bs=e.getPropertyValue(bt);if(bs===""&&!b.contains(bv.ownerDocument.documentElement,bv)){bs=b.style(bv,bt)}}return bs}}if(aq.documentElement.currentStyle){aS=function(bv,bt){var bw,bs=bv.currentStyle&&bv.currentStyle[bt],e=bv.runtimeStyle&&bv.runtimeStyle[bt],bu=bv.style;if(!ba.test(bs)&&bl.test(bs)){bw=bu.left;if(e){bv.runtimeStyle.left=bv.currentStyle.left}bu.left=bt==="fontSize"?"1em":(bs||0);bs=bu.pixelLeft+"px";bu.left=bw;if(e){bv.runtimeStyle.left=e}}return bs===""?"auto":bs}}W=aE||aS;function o(bt,bs,e){var bv=bs==="width"?bt.offsetWidth:bt.offsetHeight,bu=bs==="width"?aj:aY;if(bv>0){if(e!=="border"){b.each(bu,function(){if(!e){bv-=parseFloat(b.css(bt,"padding"+this))||0}if(e==="margin"){bv+=parseFloat(b.css(bt,e+this))||0}else{bv-=parseFloat(b.css(bt,"border"+this+"Width"))||0}})}return bv+"px"}bv=W(bt,bs,bs);if(bv<0||bv==null){bv=bt.style[bs]||0}bv=parseFloat(bv)||0;if(e){b.each(bu,function(){bv+=parseFloat(b.css(bt,"padding"+this))||0;if(e!=="padding"){bv+=parseFloat(b.css(bt,"border"+this+"Width"))||0}if(e==="margin"){bv+=parseFloat(b.css(bt,e+this))||0}})}return bv+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bt){var bs=bt.offsetWidth,e=bt.offsetHeight;return(bs===0&&e===0)||(!b.support.reliableHiddenOffsets&&(bt.style.display||b.css(bt,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var j=/%20/g,al=/\[\]$/,bq=/\r?\n/g,bo=/#.*$/,az=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aV=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aI=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,aL=/^(?:GET|HEAD)$/,c=/^\/\//,L=/\?/,a3=/)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,bp=/([?&])_=[^&]*/,J=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,X={},r={},aA,s;try{aA=bi.href}catch(ar){aA=aq.createElement("a");aA.href="";aA=aA.href}s=J.exec(aA.toLowerCase())||[];function f(e){return function(bv,bx){if(typeof bv!=="string"){bx=bv;bv="*"}if(b.isFunction(bx)){var bu=bv.toLowerCase().split(h),bt=0,bw=bu.length,bs,by,bz;for(;bt=0){var e=bt.slice(bv,bt.length);bt=bt.slice(0,bv)}var bu="GET";if(bw){if(b.isFunction(bw)){bx=bw;bw=K}else{if(typeof bw==="object"){bw=b.param(bw,b.ajaxSettings.traditional);bu="POST"}}}var bs=this;b.ajax({url:bt,type:bu,dataType:"html",data:bw,complete:function(bz,by,bA){bA=bz.responseText;if(bz.isResolved()){bz.done(function(bB){bA=bB});bs.html(e?b("
").append(bA.replace(a3,"")).find(e):bA)}if(bx){bs.each(bx,[bA,by,bz])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aV.test(this.type))}).map(function(e,bs){var bt=b(this).val();return bt==null?null:b.isArray(bt)?b.map(bt,function(bv,bu){return{name:bs.name,value:bv.replace(bq,"\r\n")}}):{name:bs.name,value:bt.replace(bq,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bs){b.fn[bs]=function(bt){return this.bind(bs,bt)}});b.each(["get","post"],function(e,bs){b[bs]=function(bt,bv,bw,bu){if(b.isFunction(bv)){bu=bu||bw;bw=bv;bv=K}return b.ajax({type:bs,url:bt,data:bv,success:bw,dataType:bu})}});b.extend({getScript:function(e,bs){return b.get(e,K,bs,"script")},getJSON:function(e,bs,bt){return b.get(e,bs,bt,"json")},ajaxSetup:function(bt,e){if(!e){e=bt;bt=b.extend(true,b.ajaxSettings,e)}else{b.extend(true,bt,b.ajaxSettings,e)}for(var bs in {context:1,url:1}){if(bs in e){bt[bs]=e[bs]}else{if(bs in b.ajaxSettings){bt[bs]=b.ajaxSettings[bs]}}}return bt},ajaxSettings:{url:aA,isLocal:aI.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a9.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML}},ajaxPrefilter:f(X),ajaxTransport:f(r),ajax:function(bw,bu){if(typeof bw==="object"){bu=bw;bw=K}bu=bu||{};var bA=b.ajaxSetup({},bu),bP=bA.context||bA,bD=bP!==bA&&(bP.nodeType||bP instanceof b)?b(bP):b.event,bO=b.Deferred(),bK=b._Deferred(),by=bA.statusCode||{},bz,bE={},bL={},bN,bv,bI,bB,bF,bx=0,bt,bH,bG={readyState:0,setRequestHeader:function(bQ,bR){if(!bx){var e=bQ.toLowerCase();bQ=bL[e]=bL[e]||bQ;bE[bQ]=bR}return this},getAllResponseHeaders:function(){return bx===2?bN:null},getResponseHeader:function(bQ){var e;if(bx===2){if(!bv){bv={};while((e=az.exec(bN))){bv[e[1].toLowerCase()]=e[2]}}e=bv[bQ.toLowerCase()]}return e===K?null:e},overrideMimeType:function(e){if(!bx){bA.mimeType=e}return this},abort:function(e){e=e||"abort";if(bI){bI.abort(e)}bC(0,e);return this}};function bC(bV,bT,bW,bS){if(bx===2){return}bx=2;if(bB){clearTimeout(bB)}bI=K;bN=bS||"";bG.readyState=bV?4:0;var bQ,b0,bZ,bU=bW?bg(bA,bG,bW):K,bR,bY;if(bV>=200&&bV<300||bV===304){if(bA.ifModified){if((bR=bG.getResponseHeader("Last-Modified"))){b.lastModified[bz]=bR}if((bY=bG.getResponseHeader("Etag"))){b.etag[bz]=bY}}if(bV===304){bT="notmodified";bQ=true}else{try{b0=F(bA,bU);bT="success";bQ=true}catch(bX){bT="parsererror";bZ=bX}}}else{bZ=bT;if(!bT||bV){bT="error";if(bV<0){bV=0}}}bG.status=bV;bG.statusText=bT;if(bQ){bO.resolveWith(bP,[b0,bT,bG])}else{bO.rejectWith(bP,[bG,bT,bZ])}bG.statusCode(by);by=K;if(bt){bD.trigger("ajax"+(bQ?"Success":"Error"),[bG,bA,bQ?b0:bZ])}bK.resolveWith(bP,[bG,bT]);if(bt){bD.trigger("ajaxComplete",[bG,bA]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bO.promise(bG);bG.success=bG.done;bG.error=bG.fail;bG.complete=bK.done;bG.statusCode=function(bQ){if(bQ){var e;if(bx<2){for(e in bQ){by[e]=[by[e],bQ[e]]}}else{e=bQ[bG.status];bG.then(e,e)}}return this};bA.url=((bw||bA.url)+"").replace(bo,"").replace(c,s[1]+"//");bA.dataTypes=b.trim(bA.dataType||"*").toLowerCase().split(h);if(bA.crossDomain==null){bF=J.exec(bA.url.toLowerCase());bA.crossDomain=!!(bF&&(bF[1]!=s[1]||bF[2]!=s[2]||(bF[3]||(bF[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bA.data&&bA.processData&&typeof bA.data!=="string"){bA.data=b.param(bA.data,bA.traditional)}aQ(X,bA,bu,bG);if(bx===2){return false}bt=bA.global;bA.type=bA.type.toUpperCase();bA.hasContent=!aL.test(bA.type);if(bt&&b.active++===0){b.event.trigger("ajaxStart")}if(!bA.hasContent){if(bA.data){bA.url+=(L.test(bA.url)?"&":"?")+bA.data}bz=bA.url;if(bA.cache===false){var bs=b.now(),bM=bA.url.replace(bp,"$1_="+bs);bA.url=bM+((bM===bA.url)?(L.test(bA.url)?"&":"?")+"_="+bs:"")}}if(bA.data&&bA.hasContent&&bA.contentType!==false||bu.contentType){bG.setRequestHeader("Content-Type",bA.contentType)}if(bA.ifModified){bz=bz||bA.url;if(b.lastModified[bz]){bG.setRequestHeader("If-Modified-Since",b.lastModified[bz])}if(b.etag[bz]){bG.setRequestHeader("If-None-Match",b.etag[bz])}}bG.setRequestHeader("Accept",bA.dataTypes[0]&&bA.accepts[bA.dataTypes[0]]?bA.accepts[bA.dataTypes[0]]+(bA.dataTypes[0]!=="*"?", */*; q=0.01":""):bA.accepts["*"]);for(bH in bA.headers){bG.setRequestHeader(bH,bA.headers[bH])}if(bA.beforeSend&&(bA.beforeSend.call(bP,bG,bA)===false||bx===2)){bG.abort();return false}for(bH in {success:1,error:1,complete:1}){bG[bH](bA[bH])}bI=aQ(r,bA,bu,bG);if(!bI){bC(-1,"No Transport")}else{bG.readyState=1;if(bt){bD.trigger("ajaxSend",[bG,bA])}if(bA.async&&bA.timeout>0){bB=setTimeout(function(){bG.abort("timeout")},bA.timeout)}try{bx=1;bI.send(bE,bC)}catch(bJ){if(status<2){bC(-1,bJ)}else{b.error(bJ)}}}return bG},param:function(e,bt){var bs=[],bv=function(bw,bx){bx=b.isFunction(bx)?bx():bx;bs[bs.length]=encodeURIComponent(bw)+"="+encodeURIComponent(bx)};if(bt===K){bt=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){bv(this.name,this.value)})}else{for(var bu in e){v(bu,e[bu],bt,bv)}}return bs.join("&").replace(j,"+")}});function v(bt,bv,bs,bu){if(b.isArray(bv)){b.each(bv,function(bx,bw){if(bs||al.test(bt)){bu(bt,bw)}else{v(bt+"["+(typeof bw==="object"||b.isArray(bw)?bx:"")+"]",bw,bs,bu)}})}else{if(!bs&&bv!=null&&typeof bv==="object"){for(var e in bv){v(bt+"["+e+"]",bv[e],bs,bu)}}else{bu(bt,bv)}}}b.extend({active:0,lastModified:{},etag:{}});function bg(bA,bz,bw){var bs=bA.contents,by=bA.dataTypes,bt=bA.responseFields,bv,bx,bu,e;for(bx in bt){if(bx in bw){bz[bt[bx]]=bw[bx]}}while(by[0]==="*"){by.shift();if(bv===K){bv=bA.mimeType||bz.getResponseHeader("content-type")}}if(bv){for(bx in bs){if(bs[bx]&&bs[bx].test(bv)){by.unshift(bx);break}}}if(by[0] in bw){bu=by[0]}else{for(bx in bw){if(!by[0]||bA.converters[bx+" "+by[0]]){bu=bx;break}if(!e){e=bx}}bu=bu||e}if(bu){if(bu!==by[0]){by.unshift(bu)}return bw[bu]}}function F(bE,bw){if(bE.dataFilter){bw=bE.dataFilter(bw,bE.dataType)}var bA=bE.dataTypes,bD={},bx,bB,bt=bA.length,by,bz=bA[0],bu,bv,bC,bs,e;for(bx=1;bx=bs.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bs.animatedProperties[this.prop]=true;for(bt in bs.animatedProperties){if(bs.animatedProperties[bt]!==true){e=false}}if(e){if(bs.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bz,bA){bw.style["overflow"+bA]=bs.overflow[bz]})}if(bs.hide){b(bw).hide()}if(bs.hide||bs.show){for(var bx in bs.animatedProperties){b.style(bw,bx,bs.orig[bx])}}bs.complete.call(bw)}return false}else{if(bs.duration==Infinity){this.now=bu}else{by=bu-this.startTime;this.state=by/bs.duration;this.pos=b.easing[bs.animatedProperties[this.prop]](this.state,by,0,1,bs.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){for(var bs=b.timers,e=0;e").appendTo(e),bt=bs.css("display");bs.remove();if(bt==="none"||bt===""){if(!a6){a6=aq.createElement("iframe");a6.frameBorder=a6.width=a6.height=0}e.appendChild(a6);if(!m||!a6.createElement){m=(a6.contentWindow||a6.contentDocument).document;m.write((aq.compatMode==="CSS1Compat"?"":"")+"");m.close()}bs=m.createElement(bu);m.body.appendChild(bs);bt=b.css(bs,"display");e.removeChild(a6)}Q[bu]=bt}return Q[bu]}var U=/^t(?:able|d|h)$/i,aa=/^(?:body|html)$/i;if("getBoundingClientRect" in aq.documentElement){b.fn.offset=function(bF){var bv=this[0],by;if(bF){return this.each(function(e){b.offset.setOffset(this,bF,e)})}if(!bv||!bv.ownerDocument){return null}if(bv===bv.ownerDocument.body){return b.offset.bodyOffset(bv)}try{by=bv.getBoundingClientRect()}catch(bC){}var bE=bv.ownerDocument,bt=bE.documentElement;if(!by||!b.contains(bt,bv)){return by?{top:by.top,left:by.left}:{top:0,left:0}}var bz=bE.body,bA=aG(bE),bx=bt.clientTop||bz.clientTop||0,bB=bt.clientLeft||bz.clientLeft||0,bs=bA.pageYOffset||b.support.boxModel&&bt.scrollTop||bz.scrollTop,bw=bA.pageXOffset||b.support.boxModel&&bt.scrollLeft||bz.scrollLeft,bD=by.top+bs-bx,bu=by.left+bw-bB;return{top:bD,left:bu}}}else{b.fn.offset=function(bC){var bw=this[0];if(bC){return this.each(function(bD){b.offset.setOffset(this,bC,bD)})}if(!bw||!bw.ownerDocument){return null}if(bw===bw.ownerDocument.body){return b.offset.bodyOffset(bw)}b.offset.initialize();var bz,bt=bw.offsetParent,bs=bw,bB=bw.ownerDocument,bu=bB.documentElement,bx=bB.body,by=bB.defaultView,e=by?by.getComputedStyle(bw,null):bw.currentStyle,bA=bw.offsetTop,bv=bw.offsetLeft;while((bw=bw.parentNode)&&bw!==bx&&bw!==bu){if(b.offset.supportsFixedPosition&&e.position==="fixed"){break}bz=by?by.getComputedStyle(bw,null):bw.currentStyle;bA-=bw.scrollTop;bv-=bw.scrollLeft;if(bw===bt){bA+=bw.offsetTop;bv+=bw.offsetLeft;if(b.offset.doesNotAddBorder&&!(b.offset.doesAddBorderForTableAndCells&&U.test(bw.nodeName))){bA+=parseFloat(bz.borderTopWidth)||0;bv+=parseFloat(bz.borderLeftWidth)||0}bs=bt;bt=bw.offsetParent}if(b.offset.subtractsBorderForOverflowNotVisible&&bz.overflow!=="visible"){bA+=parseFloat(bz.borderTopWidth)||0;bv+=parseFloat(bz.borderLeftWidth)||0}e=bz}if(e.position==="relative"||e.position==="static"){bA+=bx.offsetTop;bv+=bx.offsetLeft}if(b.offset.supportsFixedPosition&&e.position==="fixed"){bA+=Math.max(bu.scrollTop,bx.scrollTop);bv+=Math.max(bu.scrollLeft,bx.scrollLeft)}return{top:bA,left:bv}}}b.offset={initialize:function(){var e=aq.body,bs=aq.createElement("div"),bv,bx,bw,by,bt=parseFloat(b.css(e,"marginTop"))||0,bu="
";b.extend(bs.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});bs.innerHTML=bu;e.insertBefore(bs,e.firstChild);bv=bs.firstChild;bx=bv.firstChild;by=bv.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(bx.offsetTop!==5);this.doesAddBorderForTableAndCells=(by.offsetTop===5);bx.style.position="fixed";bx.style.top="20px";this.supportsFixedPosition=(bx.offsetTop===20||bx.offsetTop===15);bx.style.position=bx.style.top="";bv.style.overflow="hidden";bv.style.position="relative";this.subtractsBorderForOverflowNotVisible=(bx.offsetTop===-5);this.doesNotIncludeMarginInBodyOffset=(e.offsetTop!==bt);e.removeChild(bs);b.offset.initialize=b.noop},bodyOffset:function(e){var bt=e.offsetTop,bs=e.offsetLeft;b.offset.initialize();if(b.offset.doesNotIncludeMarginInBodyOffset){bt+=parseFloat(b.css(e,"marginTop"))||0;bs+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bt,left:bs}},setOffset:function(bu,bD,bx){var by=b.css(bu,"position");if(by==="static"){bu.style.position="relative"}var bw=b(bu),bs=bw.offset(),e=b.css(bu,"top"),bB=b.css(bu,"left"),bC=(by==="absolute"||by==="fixed")&&b.inArray("auto",[e,bB])>-1,bA={},bz={},bt,bv;if(bC){bz=bw.position();bt=bz.top;bv=bz.left}else{bt=parseFloat(e)||0;bv=parseFloat(bB)||0}if(b.isFunction(bD)){bD=bD.call(bu,bx,bs)}if(bD.top!=null){bA.top=(bD.top-bs.top)+bt}if(bD.left!=null){bA.left=(bD.left-bs.left)+bv}if("using" in bD){bD.using.call(bu,bA)}else{bw.css(bA)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bt=this[0],bs=this.offsetParent(),bu=this.offset(),e=aa.test(bs[0].nodeName)?{top:0,left:0}:bs.offset();bu.top-=parseFloat(b.css(bt,"marginTop"))||0;bu.left-=parseFloat(b.css(bt,"marginLeft"))||0;e.top+=parseFloat(b.css(bs[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bs[0],"borderLeftWidth"))||0;return{top:bu.top-e.top,left:bu.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||aq.body;while(e&&(!aa.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bs,e){var bt="scroll"+e;b.fn[bt]=function(bw){var bu,bv;if(bw===K){bu=this[0];if(!bu){return null}bv=aG(bu);return bv?("pageXOffset" in bv)?bv[bs?"pageYOffset":"pageXOffset"]:b.support.boxModel&&bv.document.documentElement[bt]||bv.document.body[bt]:bu[bt]}return this.each(function(){bv=aG(this);if(bv){bv.scrollTo(!bs?bw:b(bv).scrollLeft(),bs?bw:b(bv).scrollTop())}else{this[bt]=bw}})}});function aG(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bs,e){var bt=e.toLowerCase();b.fn["inner"+e]=function(){var bu=this[0];return bu&&bu.style?parseFloat(b.css(bu,bt,"padding")):null};b.fn["outer"+e]=function(bv){var bu=this[0];return bu&&bu.style?parseFloat(b.css(bu,bt,bv?"margin":"border")):null};b.fn[bt]=function(bv){var bw=this[0];if(!bw){return bv==null?null:this}if(b.isFunction(bv)){return this.each(function(bA){var bz=b(this);bz[bt](bv.call(this,bA,bz[bt]()))})}if(b.isWindow(bw)){var bx=bw.document.documentElement["client"+e];return bw.document.compatMode==="CSS1Compat"&&bx||bw.document.body["client"+e]||bx}else{if(bw.nodeType===9){return Math.max(bw.documentElement["client"+e],bw.body["scroll"+e],bw.documentElement["scroll"+e],bw.body["offset"+e],bw.documentElement["offset"+e])}else{if(bv===K){var by=b.css(bw,bt),bu=parseFloat(by);return b.isNaN(bu)?by:bu}else{return this.css(bt,typeof bv==="string"?bv:bv+"px")}}}}});a9.jQuery=a9.$=b})(window); \ No newline at end of file diff --git a/ikiwiki/login-selector/login-selector.js b/ikiwiki/login-selector/login-selector.js new file mode 100644 index 0000000..15f3aac --- /dev/null +++ b/ikiwiki/login-selector/login-selector.js @@ -0,0 +1,219 @@ +/* +Based on the Simple OpenID Plugin +http://code.google.com/p/openid-selector/ + +This code is licenced under the New BSD License. +*/ + +var selections_email_large = { + email: { + name: 'Email', + icon: 'wikiicons/email.png', + label: 'Enter your email address:', + url: null + } +}; +var selections_openid_large = { + openid: { + name: 'OpenID', + icon: 'wikiicons/openidlogin-bg.png', + label: 'Enter your OpenID:', + url: null + } +}; +var selections = $.extend({}, selections_email_large, selections_openid_large); + +var selector = { + + ajaxHandler: null, + cookie_expires: 6*30, // 6 months. + cookie_name: 'openid_selection', // historical name + cookie_path: '/', + + img_path: 'images/', + + input_id: null, + selection_url: null, + selection_id: null, + othersignin_id: null, + + init: function(input_id, login_methods, othersignin_id, othersignin_label) { + + var selector_btns = $('#login_btns'); + + this.input_id = input_id; + + $('#login_choice').show(); + $('#login_input_area').empty(); + + // add box for each selection + if (login_methods['openid']) { + for (id in selections_openid_large) { + selector_btns.append(this.getBoxHTML(selections_openid_large[id], 'large')); + } + } + if (login_methods['email']) { + for (id in selections_email_large) { + selector_btns.prepend(this.getBoxHTML(selections_email_large[id], 'large')); + } + } + + if (othersignin_label != "") { + this.othersignin_label=othersignin_label; + } + else { + this.othersignin_label="other"; + } + if (othersignin_id != "") { + this.othersignin_id=othersignin_id; + selector_btns.prepend( + '' + + '' + + ' ' + this.othersignin_label + + '' + ); + $('#'+this.othersignin_id).hide(); + } + + $('#login_selector_form').submit(this.submit); + + var box_id = this.readCookie(); + if (box_id) { + this.signin(box_id, true); + } + }, + getBoxHTML: function(selection, box_size) { + var label=""; + var title="" + if (box_size == 'large') { + label=' ' + selection["name"]; + } + else { + title=' title="'+selection["name"]+'"'; + } + var box_id = selection["name"].toLowerCase(); + return '' + + '' + + label + + ''; + + }, + /* selection image click */ + signin: function(box_id, onload) { + + if (box_id == 'othersignin') { + this.highlight(box_id); + $('#login_input_area').empty(); + $('#'+this.othersignin_id).show(); + this.setCookie(box_id); + return; + } + else { + if (this.othersignin_id) { + $('#'+this.othersignin_id).hide(); + } + } + + var selection = selections[box_id]; + if (! selection) { + return; + } + + this.highlight(box_id); + + this.selection_id = box_id; + this.selection_url = selection['url']; + + // prompt user for input? + if (selection['label']) { + this.setCookie(box_id); + this.useInputBox(selection); + } else { + this.setCookie(''); + $('#login_input_area').empty(); + if (! onload) { + $('#login_selector_form').submit(); + } + } + }, + /* Sign-in button click */ + submit: function() { + var url = selector.selection_url; + if (url) { + url = url.replace('{username}', $('#entry').val()); + selector.setOpenIdUrl(url); + } + else { + selector.setOpenIdUrl(""); + } + if (selector.ajaxHandler) { + selector.ajaxHandler(selector.selection_id, document.getElementById(selector.input_id).value); + return false; + } + return true; + }, + setOpenIdUrl: function (url) { + + var hidden = $('#'+this.input_id); + if (hidden.length > 0) { + hidden.value = url; + } else { + $('#login_selector_form').append(''); + } + }, + highlight: function (box_id) { + + // remove previous highlight. + var highlight = $('#login_highlight'); + if (highlight) { + highlight.replaceWith($('#login_highlight a')[0]); + } + // add new highlight. + $('.'+box_id).wrap('
'); + }, + setCookie: function (value) { + + var date = new Date(); + date.setTime(date.getTime()+(this.cookie_expires*24*60*60*1000)); + var expires = "; expires="+date.toGMTString(); + + document.cookie = this.cookie_name+"="+value+expires+"; path=" + this.cookie_path; + }, + readCookie: function () { + var nameEQ = this.cookie_name + "="; + var ca = document.cookie.split(';'); + for(var i=0;i < ca.length;i++) { + var c = ca[i]; + while (c.charAt(0)==' ') c = c.substring(1,c.length); + if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); + } + return null; + }, + useInputBox: function (selection) { + + var input_area = $('#login_input_area'); + + var html = ''; + var id = selection['name']+'_entry'; + var label = selection['label']; + + if (selection['name'] == 'OpenID') { + id = this.input_id; + } + if (label) { + html = ''; + } + html += '' + + ''; + + input_area.empty(); + input_area.append(html); + + $('#'+id).focus(); + }, + setAjaxHandler: function (ajaxFunction) { + this.ajaxHandler = ajaxFunction; + } +}; diff --git a/ikiwiki/markdown.fr/index.html b/ikiwiki/markdown.fr/index.html new file mode 100644 index 0000000..52e2b03 --- /dev/null +++ b/ikiwiki/markdown.fr/index.html @@ -0,0 +1,184 @@ + + + + + + + + + + + markdown.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# 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-25 09:31+0200\n" +"Last-Translator: Alexandre Dupas \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +msgid "" +"[Markdown](http://daringfireball.net/projects/markdown/) is a minimal " +"markup language that resembles plain text as used in email messages. It is " +"the markup language used by this wiki by default." +msgstr "" +"[Markdown](http://daringfireball.net/projects/markdown/) est un langage de " +"balisage élémentaire, comparable à celui utilisé dans la messagerie " +"électronique. Il s'agit du langage de balisage utilisé par défaut dans ce " +"wiki." + +#. type: Plain text +msgid "" +"For documentation about the markdown syntax, see formatting and " +"[Markdown: syntax](http://daringfireball.net/projects/markdown/syntax)." +msgstr "" +"Référez vous à formatting et [Syntaxe Markdown](http://daringfireball." +"net/projects/markdown/syntax) pour la documentation sur la syntaxe du langage " +"markdown." + +#. type: Plain text +msgid "" +"Note that WikiLinks and directives are not part " +"of the markdown syntax, and are the only bit of markup that this wiki " +"handles internally." +msgstr "" +"Notez que les WikiLinks et les directives ne font " +"pas partie de la syntaxe du langage markdown. Il s'agit des seules balises " +"qui sont traitées en interne par ce wiki." + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/markdown/index.html b/ikiwiki/markdown/index.html new file mode 100644 index 0000000..998f872 --- /dev/null +++ b/ikiwiki/markdown/index.html @@ -0,0 +1,146 @@ + + + + + + + + + + + markdown - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Markdown +is a minimal markup language that resembles plain text as used in email +messages. It is the markup language used by this wiki by default.

+

For documentation about the markdown syntax, see +formatting and Markdown: +syntax.

+

Note that WikiLinks and +directives are not part of the markdown +syntax, and are the only bit of markup that this wiki handles +internally.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/openid.fr/index.html b/ikiwiki/openid.fr/index.html new file mode 100644 index 0000000..798d330 --- /dev/null +++ b/ikiwiki/openid.fr/index.html @@ -0,0 +1,226 @@ + + + + + + + + + + + \"OpenID\" - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2010-07-20 21:25+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +#, no-wrap +msgid "" +"[[!if Error: syntax error in pagespec "\"enabled(openid)\"\n""]]\n" +msgstr "" +"[[!if Error: syntax error in pagespec "\"enabled(openid)\"\n""]]\n" + +#. type: Plain text +msgid "" +"[OpenID](http://openid.net) is a decentralized authentication mechanism that " +"allows you to have one login that you can use on a growing number of " +"websites." +msgstr "" +"[OpenID](http://openid.net) est un système d'authentification décentralisé " +"qui permet d'avoir un identifiant unique, utilisable sur un nombre croissant " +"de sites internet." + +#. type: Plain text +msgid "" +"If you have an account with some of the larger web service providers, you " +"might already have an OpenID. [Directory of OpenID providers](http://" +"openiddirectory.com/openid-providers-c-1.html)" +msgstr "Si vous possédez un compte sur l'un des nombreux fournisseurs de services web, il se peut que vous ayez déjà un OpenID. [Répertoire des fournisseurs d'OpenID](http://openiddirectory.com/openid-providers-c-1.html)." + +#. type: Plain text +#, no-wrap +msgid "[[!if Error: syntax error in pagespec "\"enabled(openid)\""]]\n" +msgstr "" +"\t\[[!meta openid=\"http://yourid.myopenid.com/\"\n" +"\t server=\"http://www.myopenid.com/server\"]]\n" + +#~ msgid "" +#~ "To sign up for an OpenID, visit one of the following identity providers:" +#~ msgstr "" +#~ "Pour obtenir un identifiant OpenID, visitez l'un des fournisseurs " +#~ "d'identité suivants :" + +#~ msgid "[MyOpenID](https://www.myopenid.com/)" +#~ msgstr "[MyOpenID](https://www.myopenid.com/)" + +#~ msgid "[GetOpenID](https://getopenid.com/)" +#~ msgstr "[GetOpenID](https://getopenid.com/)" + +#~ msgid "[LiveJournal](http://www.livejournal.com/openid/)" +#~ msgstr "[LiveJournal](http://www.livejournal.com/openid/)" + +#~ msgid "[TrustBearer](https://openid.trustbearer.com/)" +#~ msgstr "[TrustBearer](https://openid.trustbearer.com/)" + +#~ msgid "" +#~ "or any of the [many others out there](http://openiddirectory.com/openid-" +#~ "providers-c-1.html)" +#~ msgstr "" +#~ "ou n'importe lequel des [nombreux autres fournisseurs existants](http://" +#~ "openiddirectory.com/openid-providers-c-1.html)" + +#~ msgid "" +#~ "Your OpenID is the URL that you are given when you sign up.\n" +#~ "[[!if test=\"enabled(openid)\" then=\"\"\"\n" +#~ msgstr "" +#~ "Votre identifiant OpenID est l'URL qui vous est attribuée lorsque vous vous inscrivez.\n" +#~ "[[!if test=\"enabled(openid)\" then=\"\"\"\n" + +#~ msgid "[Videntity](http://videntity.org/)" +#~ msgstr "[Videntity](http://videntity.org/)" + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/openid/index.html b/ikiwiki/openid/index.html new file mode 100644 index 0000000..ac47af3 --- /dev/null +++ b/ikiwiki/openid/index.html @@ -0,0 +1,152 @@ + + + + + + + + + + + OpenID - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

This wiki has OpenID enabled.

+

OpenID is a decentralized +authentication mechanism that allows you to have one login that you can +use on a growing number of websites.

+

If you have an account with some of the larger web service providers, +you might already have an OpenID. Directory of +OpenID providers

+

To sign in to this wiki using OpenID, just enter it in the OpenID +field in the signin form. You do not need to give this wiki a password +or go through any registration process when using OpenID.

+
+

It’s also possible to make a page in the wiki usable as an OpenID +url, by delegating it to an openid server. Here’s an example of how to +do that:

+
[[!meta  openid="http://yourid.myopenid.com/"
+       server="http://www.myopenid.com/server"]]
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/pagespec.fr/index.html b/ikiwiki/pagespec.fr/index.html new file mode 100644 index 0000000..666eb28 --- /dev/null +++ b/ikiwiki/pagespec.fr/index.html @@ -0,0 +1,446 @@ + + + + + + + + + + + pagespec.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the ikiwiki package. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki 3.141\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2010-07-21 17:21+0200\n" +"Last-Translator: Steve Petruzzello \n" +"Language-Team: French \n" +"Language: fr\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 "\n" +msgstr "\n" + +#. type: Plain text +msgid "" +"To select a set of pages, such as pages that are locked, pages whose commit " +"emails you want subscribe to, or pages to combine into a blog, the wiki uses " +"a PageSpec. This is an expression that matches a set of pages." +msgstr "" +"Le wiki utilise un concept de spécification de page « PageSpec » afin de " +"choisir un ensemble de pages. Par exemple il est possible de choisir les " +"pages verrouillées, les pages dont vous recevez par courriel les " +"modifications ou des pages à regrouper pour faire blog. Une spécification " +"correspond à un ensemble de pages." + +#. type: Plain text +msgid "" +"The simplest PageSpec is a simple list of pages. For example, this matches " +"any of the three listed pages:" +msgstr "" +"La spécification la plus simple est la liste de pages. Par exemple, " +"l'expression suivante correspond à l'une ou l'autre des trois pages listées :" + +#. type: Plain text +#, no-wrap +msgid "\tfoo or bar or baz\n" +msgstr "\tfoo or bar or baz\n" + +#. type: Plain text +msgid "" +"More often you will want to match any pages that have a particular thing in " +"their name. You can do this using a glob pattern. \"`*`\" stands for any " +"part of a page name, and \"`?`\" for any single letter of a page name. So " +"this matches all pages about music, and any SubPages of the SandBox, but " +"does not match the SandBox itself:" +msgstr "" +"La plupart du temps, vous voulez trouver les pages qui contiennent une " +"expression particulière dans leur nom. Cela s'obtient en utilisant un motif " +"(« glob pattern »). Le métacaractère « `*` » correspond à n'importe quelle " +"partie du nom de la page et le métacaractère « `?` » à n'importe quelle " +"lettre. Ainsi, l'expression suivante correspond à toutes les pages traitant " +"de musique et à n'importe quelle sous-page SubPage de la *SandBox*, mais " +"pas à la *SandBox* elle-même :" + +#. type: Plain text +#, no-wrap +msgid "\t*music* or SandBox/*\n" +msgstr "\t*musique* or SandBox/*\n" + +#. type: Plain text +msgid "" +"You can also prefix an item with \"`!`\" to skip pages that match it. So to " +"match all pages except for Discussion pages and the SandBox:" +msgstr "" +"Vous pouvez également préfixer un élément avec « `!` » pour ignorer les " +"pages correspondantes. Ainsi pour trouver toutes les pages sauf les pages " +"Discussion et la page *SandBox* :" + +#. type: Bullet: ' * ' +msgid "and !SandBox and !*/Discussion" +msgstr "and !SandBox and !*/Discussion" + +#. type: Plain text +msgid "" +"Some more elaborate limits can be added to what matches using these " +"functions:" +msgstr "" +"Des contraintes plus élaborées peuvent être ajoutées avec les fonctions " +"suivantes :" + +#. type: Plain text +#, no-wrap +msgid "" +"* \"`glob(someglob)`\" - matches pages and other files that match the given glob.\n" +" Just writing the glob by itself is actually a shorthand for this function.\n" +"* \"`page(glob)`\" - like `glob()`, but only matches pages, not other files\n" +"* \"`link(page)`\" - matches only pages that link to a given page (or glob)\n" +"* \"`tagged(tag)`\" - matches pages that are tagged or link to the given tag (or\n" +" tags matched by a glob)\n" +"* \"`backlink(page)`\" - matches only pages that a given page links to\n" +"* \"`creation_month(month)`\" - matches only files created on the given month\n" +"* \"`creation_day(mday)`\" - or day of the month\n" +"* \"`creation_year(year)`\" - or year\n" +"* \"`created_after(page)`\" - matches only files created after the given page\n" +" was created\n" +"* \"`created_before(page)`\" - matches only files created before the given page\n" +" was created\n" +"* \"`internal(glob)`\" - like `glob()`, but matches even internal-use \n" +" pages that globs do not usually match.\n" +"* \"`title(glob)`\", \"`author(glob)`\", \"`authorurl(glob)`\",\n" +" \"`license(glob)`\", \"`copyright(glob)`\", \"`guid(glob)`\" \n" +" - match pages that have the given metadata, matching the specified glob.\n" +"* \"`user(username)`\" - tests whether a modification is being made by a\n" +" user with the specified username. If openid is enabled, an openid can also\n" +" be put here. Glob patterns can be used in the username. For example, \n" +" to match all openid users, use `user(*://*)`\n" +"* \"`admin()`\" - tests whether a modification is being made by one of the\n" +" wiki admins.\n" +"* \"`ip(address)`\" - tests whether a modification is being made from the\n" +" specified IP address.\n" +"* \"`comment(glob)`\" - matches comments to a page matching the glob.\n" +"* \"`comment_pending(glob)`\" - matches unmoderated, pending comments.\n" +"* \"`postcomment(glob)`\" - matches only when comments are being \n" +" posted to a page matching the specified glob\n" +msgstr "" +"* \"`glob(motif)`\" - recherche les pages et fichiers qui correspondent au motif.\n" +" N'écrire que le motif lui-même est un raccourci pour cette fonction.\n" +"* \"`page(motif)`\" - comme `glob()`, mais ne recherche que des pages, pas des fichiers.\n" +"* \"`link(page)`\" - correspond aux pages ayant un lien vers cette page (ou motif)\n" +"* \"`tagged(étiquette)`\" - correspond aux pages qui sont marquées ou qui sont\n" +" liées à l'étiquette donnée (ou des étiquettes correspondant à un motif).\n" +"* \"`backlink(page)`\" - correspond seulement aux pages qui sont pointées (lien) par la page donnée.\n" +"* \"`creation_month(mois)`\" - correspond aux pages créées durant ce mois\n" +"* \"`creation_day(jour)`\" - ou au jour de ce mois\n" +"* \"`creation_year(année)`\" - ou année\n" +"* \"`created_after(page)`\" - correspond aux fichiers créés après la création de la page donnée.\n" +"* \"`created_before(page)`\\\" - correspond aux fichiers créés avant la création de la page donnée.\n" +"* \"`internal(motif)`\" - comme `glob()`, mais correspond en plus aux\n" +" pages à usage interne que la fonction glob ne trouve pas en général.\n" +"* \"`title(motif)`\", \"`author(motif)`\", \"`authorurl(motif)`\",\n" +" \"`license(motif)`\", \"`copyright(motif)`\", \"`guid(motif)`\"\n" +" - renvoient les pages qui possèdent les métadonnées correspondant au motif donné.\n" +"* \"`user(username)`\" - teste si une modification est faite par l'identifiant donné.\n" +" Si openid est activé, on peut aussi l'utiliser. L'identifiant peut contenir des expressions régulières.\n" +" Par exemple, pour obtenir tous les utilisateurs openid, utilisez l'expression : `user(*://*)`.\n" +"* \"`admin()`\" - teste si une modification par un administrateur du wiki est en cours.\n" +"* \"`ip(adresse)`\" - teste si une modification par l'IP donnée est en cours.\n" +"* \"`comment(motif)`\" - renvoient les commentaires d'une page correspondant au motif donné.\n" +"* \"`comment_pending(motif)`\" - renvoient les commentaires non modérés, en attente.\n" +"* \"`postcomment(motif)`\" - ne correspond que si des commentaires sont postés\n" +" vers une page correspondant au motif donné.\n" + +#. type: Plain text +msgid "" +"For example, to match all pages in a blog that link to the page about music " +"and were written in 2005:" +msgstr "" +"Par exemple, pour trouver toutes les pages d'un blog qui ont un lien vers la " +"page traitant de musique et qui ont été créées en 2005 :" + +#. type: Plain text +#, no-wrap +msgid "\tblog/* and link(music) and creation_year(2005)\n" +msgstr "\tblog/* and link(musique) and creation_year(2005)\n" + +#. type: Plain text +msgid "" +"Note the use of \"and\" in the above example, that means that only pages " +"that match each of the three expressions match the whole. Use \"and\" when " +"you want to combine expression like that; \"or\" when it's enough for a page " +"to match one expression. Note that it doesn't make sense to say \"index and " +"SandBox\", since no page can match both expressions." +msgstr "" +"Veuillez noter l'utilisation du « and » dans l'exemple ci-dessus. Seules les " +"pages dont les trois conditions sont vraies seront trouvées. Utilisez " +"« and » pour ce genre d'expression combinée. « or » est utilisé quand une " +"seule des trois conditions est suffisante. Veuillez noter que « index and " +"SandBox » n'a pas de sens puisqu'aucune page ne peut correspondre aux deux " +"expressions." + +#. type: Plain text +msgid "" +"More complex expressions can also be created, by using parentheses for " +"grouping. For example, to match pages in a blog that are tagged with either " +"of two tags, use:" +msgstr "" +"On peut créer des expressions plus complexes à l'aide de parenthèses. Par " +"exemple, pour trouver les pages d'un blog possédantl'une ou l'autre " +"étiquette, on utiliserait :" + +#. type: Plain text +#, no-wrap +msgid "\tblog/* and (tagged(foo) or tagged(bar))\n" +msgstr "\tblog/* and (tagged(foo) or tagged(bar))\n" + +#. type: Plain text +msgid "" +"Note that page names in PageSpecs are matched against the absolute filenames " +"of the pages in the wiki, so a pagespec \"foo\" used on page \"a/b\" will " +"not match a page named \"a/foo\" or \"a/b/foo\". To match relative to the " +"directory of the page containing the pagespec, you can use \"./\". For " +"example, \"./foo\" on page \"a/b\" matches page \"a/foo\"." +msgstr "" +"Veuillez noter que le nom d'une page dans une spécification de page " +"correspond au nom absolu du fichier dans le wiki. Ainsi une expression " +"« foo » utilisée sur une page « a/b » ne correspondra pas à une page nommée " +"« a/foo » ni à une page « a/b/foo ». Pour une correspondance relative au " +"répertoire de la page contenant la spécification, vous pouvez utiliser " +"« ./ ». Par exemple, « ./foo » sur la page « a/b » correspondra à la page " +"« a/foo »." + +#~ msgid "" +#~ "\"`link(page)`\" - matches only pages that link to a given page (or glob)" +#~ msgstr "" +#~ "« `link(page)` » - correspond aux pages ayant un lien vers cette page (ou " +#~ "motif)" + +#~ msgid "" +#~ "\"`tagged(tag)`\" - matches pages that are tagged or link to the given " +#~ "tag (or tags matched by a glob)" +#~ msgstr "" +#~ "« `tagged(tag)` » - correspond aux pages qui sont marquées ou qui sont " +#~ "liées à l'étiquette donnée (ou des étiquettes correspondant à un motif)." + +#~ msgid "\"`backlink(page)`\" - matches only pages that a given page links to" +#~ msgstr "" +#~ "« `backlink(page)` » - correspond seulement aux pages qui sont pointées " +#~ "(lien) par la page donnée." + +#~ msgid "" +#~ "\"`creation_month(month)`\" - matches only pages created on the given " +#~ "month" +#~ msgstr "" +#~ "« `creation_month(mois)` » - correspond aux pages créées durant ce mois" + +#~ msgid "\"`creation_day(mday)`\" - or day of the month" +#~ msgstr "« `creation_day(jour)` » - ou au jour de ce mois" + +#~ msgid "\"`creation_year(year)`\" - or year" +#~ msgstr "« `creation_year(année)` » - ou année" + +#~ msgid "" +#~ "\"`created_after(page)`\" - matches only pages created after the given " +#~ "page was created" +#~ msgstr "" +#~ "« `created_after(page)` » - correspond aux pages créées après la page " +#~ "donnée" + +#~ msgid "" +#~ "\"`created_before(page)`\" - matches only pages created before the given " +#~ "page was created" +#~ msgstr "" +#~ "« `created_before(page) » - correspond aux pages créées avant la page " +#~ "donnée" + +#~ msgid "" +#~ "\"`glob(someglob)`\" - matches pages that match the given glob. Just " +#~ "writing the glob by itself is actually a shorthand for this function." +#~ msgstr "" +#~ "« `glob(motif)` » - correspond aux pages correspondantes au motif donné. " +#~ "N'écrire que le motif lui-même est un raccourci pour cette fonction." + +#~ msgid "" +#~ "\"`internal(glob)`\" - like `glob()`, but matches even internal-use pages " +#~ "that globs do not usually match." +#~ msgstr "" +#~ "« `internal(motif)` » - pareil à `glob()`, mais correspond en plus aux " +#~ "pages à usage interne que la fonction glob ne trouve pas en général." + +#~ msgid "" +#~ "\"`title(glob)`\", \"`author(glob)`\", \"`authorurl(glob)`\", \"`license" +#~ "(glob)`\", \"`copyright(glob)`\" - match pages that have the given " +#~ "metadata, matching the specified glob." +#~ msgstr "" +#~ "« `title(motif)`, `author(motif)`, `authorurl(motif)`, `license(motif)`, " +#~ "`copyright(motif)` » - renvoient les pages qui possèdent les métadonnées " +#~ "correspondant au motif donné." + +#~| msgid "" +#~| "\"`user(username)`\" - tests whether a modification is being made by a " +#~| "user with the specified username. If openid is enabled, an openid can " +#~| "also be put here." +#~ msgid "" +#~ "\"`user(username)`\" - tests whether a modification is being made by a " +#~ "user with the specified username. If openid is enabled, an openid can " +#~ "also be put here. Glob patterns can be used in the username. For example, " +#~ "to match all openid users, use `user(*://*)`" +#~ msgstr "" +#~ "« `user(identifiant)` » - teste si une modification est faite par " +#~ "l'identifiant donné. Si openid est activé, on peut aussi l'utiliser. " +#~ "L'identifiant peut contenir des expressions régulières. Par exemple, pour " +#~ "obtenir tous les utilisateurs openid, utilisez l'expression `user(*://*)`." + +#~ msgid "" +#~ "\"`admin()`\" - tests whether a modification is being made by one of the " +#~ "wiki admins." +#~ msgstr "" +#~ "« `admin()` » - teste si une modification par un administrateur est en " +#~ "cours." + +#~ msgid "" +#~ "\"`ip(address)`\" - tests whether a modification is being made from the " +#~ "specified IP address." +#~ msgstr "" +#~ "« `ip(adresse)` » - teste si une modification par l'IP donnée est en " +#~ "cours." + +#~ msgid "" +#~ "\"`postcomment(glob)`\" - matches only when comments are being posted to " +#~ "a page matching the specified glob" +#~ msgstr "" +#~ "« `postcomment(motif) » - ne correspond que si des commentaires sont " +#~ "postés vers une page correspondant au motif donné." + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/pagespec/attachment.fr/index.html b/ikiwiki/pagespec/attachment.fr/index.html new file mode 100644 index 0000000..e9785fc --- /dev/null +++ b/ikiwiki/pagespec/attachment.fr/index.html @@ -0,0 +1,253 @@ + + + + + + + + + + + attachment.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2009-08-26 14:46+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +#, no-wrap +msgid "" +"[[!if Error: syntax error in pagespec "\"enabled(attachment)\"\n""]]\n" +msgstr "" +"[[!if Error: syntax error in pagespec "\"enabled(attachment)\"\n""]]\n" + +#. type: Plain text +msgid "" +"If attachments are enabled, the wiki admin can control what types of " +"attachments will be accepted, via the `allowed_attachments` configuration " +"setting." +msgstr "" +"Quand les pièces jointes sont autorisées, l'administrateur du wiki peut " +"contrôler le type des pièces acceptées, avec l'option de configuration " +"`allowed_attachments`." + +#. type: Plain text +#, fuzzy +#| msgid "" +#| "For example, to limit arbitrary files to 50 kilobytes, but allow larger " +#| "mp3 files to be uploaded by joey into a specific directory, and check all " +#| "attachments for viruses, something like this could be used:" +msgid "" +"For example, to limit most users to uploading small images, and nothing " +"else, while allowing larger mp3 files to be uploaded by joey into a specific " +"directory, and check all attachments for viruses, something like this could " +"be used:" +msgstr "" +"Par exemple, pour limiter tous les fichiers à 50 kilooctets mais permettre " +"que des fichiers mp3 plus grands soient envoyés par joey dans un répertoire " +"donné et pour vérifier que toutes les pièces jointes sont sans virus, on " +"peut utiliser quelque chose comme ça :" + +#. type: Plain text +#, fuzzy, no-wrap +#| msgid "\tvirusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (!ispage() and maxsize(50kb)))\n" +msgid "\tvirusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (mimetype(image/*) and maxsize(50kb)))\n" +msgstr "\tvirusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (!ispage() and maxsize(50kb)))\n" + +#. type: Plain text +msgid "" +"The regular PageSpec syntax is expanded with the following " +"additional tests:" +msgstr "" +"La syntaxe normale de PageSpec est appliquée avec les tests " +"supplémentaires suivants :" + +#. type: Bullet: '* ' +msgid "" +"\"`maxsize(size)`\" - tests whether the attachment is no larger than the " +"specified size. The size defaults to being in bytes, but \"kb\", \"mb\", \"gb" +"\" etc can be used to specify the units." +msgstr "" +"`maxsize(size)` - teste si la taille de la pièce n'est pas plus grande que " +"la taille donnée. La taille est mesurée en octet mais on peut l'indiquer en " +"« ko », « mo », « go » etc." + +#. type: Bullet: '* ' +msgid "" +"\"`minsize(size)`\" - tests whether the attachment is no smaller than the " +"specified size." +msgstr "" +"`minsize(size)` - teste si la taille de la pièce n'est pas plus petite que " +"la taille donnée." + +#. type: Bullet: '* ' +msgid "" +"\"`ispage()`\" - tests whether the attachment will be treated by ikiwiki as " +"a wiki page. (Ie, if it has an extension of \".mdwn\", or of any other " +"enabled page format)." +msgstr "" +"`ispage()` - teste si la pièce jointe sera traitée comme page de wiki par " +"ikiwiki, c'est-à-dire si son extension est « .mdwn » ou un autre format " +"accepté." + +#. type: Plain text +#, no-wrap +msgid "" +" So, if you don't want to allow wiki pages to be uploaded as attachments,\n" +" use `!ispage()` ; if you only want to allow wiki pages to be uploaded\n" +" as attachments, use `ispage()`.\n" +msgstr "" +" Donc, si vous ne voulez pas que des pages de wiki puissent être envoyées en pièces jointes, utilisez `!ispage()`\n" +" et dans le cas contraire, `ispage()`.\n" + +#. type: Bullet: '* ' +msgid "" +"\"`mimetype(foo/bar)`\" - checks the MIME type of the attachment. You can " +"include a glob in the type, for example `mimetype(image/*)`." +msgstr "" +"`mimetype(foo/bar)` - teste le type MIME de la pièce jointe. Vous pouvez " +"inclure un motif dans le type, par exemple `mimetype(image/*)`." + +#. type: Bullet: '* ' +msgid "\"`virusfree()`\" - checks the attachment with an antiviral program." +msgstr "`virusfree()` - teste la pièce jointe avec un programme antivirus." + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/pagespec/attachment/index.html b/ikiwiki/pagespec/attachment/index.html new file mode 100644 index 0000000..a647bf8 --- /dev/null +++ b/ikiwiki/pagespec/attachment/index.html @@ -0,0 +1,164 @@ + + + + + + + + + + + attachment - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

This wiki has attachments enabled.

+

If attachments are enabled, the wiki admin can control what types of +attachments will be accepted, via the allowed_attachments +configuration setting.

+

For example, to limit most users to uploading small images, and +nothing else, while allowing larger mp3 files to be uploaded by joey +into a specific directory, and check all attachments for viruses, +something like this could be used:

+
virusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or ((mimetype(image/jpeg) or mimetype(image/png)) and maxsize(50kb)))
+

The regular PageSpec syntax is expanded with the +following additional tests:

+
    +
  • maxsize(size)” - tests whether the attachment is no +larger than the specified size. The size defaults to being in bytes, but +“kb”, “mb”, “gb” etc can be used to specify the units.

  • +
  • minsize(size)” - tests whether the attachment is no +smaller than the specified size.

  • +
  • ispage()” - tests whether the attachment will be +treated by ikiwiki as a wiki page. (Ie, if it has an extension of +“.mdwn”, or of any other enabled page format).

    +

    So, if you don’t want to allow wiki pages to be uploaded as +attachments, use !ispage() ; if you only want to allow wiki +pages to be uploaded as attachments, use ispage().

  • +
  • mimetype(foo/bar)” - checks the MIME type of the +attachment. You can include a glob in the type, for example +mimetype(image/*).

  • +
  • virusfree()” - checks the attachment with an +antiviral program.

  • +
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/pagespec/index.html b/ikiwiki/pagespec/index.html new file mode 100644 index 0000000..5d8d8ed --- /dev/null +++ b/ikiwiki/pagespec/index.html @@ -0,0 +1,224 @@ + + + + + + + + + + + pagespec - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

To select a set of pages, such as pages that are locked, pages whose +commit emails you want subscribe to, or pages to combine into a blog, +the wiki uses a PageSpec. This is an expression that matches a set of +pages.

+

The simplest PageSpec is a simple list of pages. For example, this +matches any of the three listed pages:

+
foo or bar or baz
+

More often you will want to match any pages that have a particular +thing in their name. You can do this using a glob pattern. +“*” stands for any part of a page name, and +“?” for any single letter of a page name. So this matches +all pages about music, and any SubPages of the +SandBox, but does not match the SandBox itself:

+
*music* or SandBox/*
+

You can also prefix an item with “!” to skip pages that +match it. So to match all pages except for Discussion pages and the +SandBox:

+
* and !SandBox and !*/Discussion
+

Some more elaborate limits can be added to what matches using these +functions:

+
    +
  • glob(someglob)” - matches pages and other files that +match the given glob. Just writing the glob by itself is actually a +shorthand for this function.
  • +
  • page(glob)” - like glob(), but only +matches pages, not other files
  • +
  • link(page)” - matches only pages that link to a given +page (or glob)
  • +
  • tagged(tag)” - matches pages that are tagged or link +to the given tag (or tags matched by a glob)
  • +
  • backlink(page)” - matches only pages that a given page +links to
  • +
  • creation_month(month)” - matches only files created on +the given month number
  • +
  • creation_day(mday)” - or day of the month
  • +
  • creation_year(year)” - or year
  • +
  • created_after(page)” - matches only files created +after the given page was created
  • +
  • created_before(page)” - matches only files created +before the given page was created
  • +
  • internal(glob)” - like glob(), but +matches even internal-use pages that globs do not usually match.
  • +
  • title(glob)”, “author(glob)”, +“authorurl(glob)”, “license(glob)”, +“copyright(glob)”, “guid(glob)” +
      +
    • match pages that have the given metadata, matching the specified +glob.
    • +
  • +
  • user(username)” - tests whether a modification is +being made by a user with the specified username. If openid is enabled, +an openid can also be put here. Glob patterns can be used in the +username. For example, to match all openid users, use +user(*://*)
  • +
  • admin()” - tests whether a modification is being made +by one of the wiki admins.
  • +
  • ip(address)” - tests whether a modification is being +made from the specified IP address. Glob patterns can be used in the +address. For example, ip(127.0.0.*)
  • +
  • comment(glob)” - matches comments to a page matching +the glob.
  • +
  • comment_pending(glob)” - matches unmoderated, pending +comments.
  • +
  • postcomment(glob)” - matches only when comments are +being posted to a page matching the specified glob
  • +
+

For example, to match all pages in a blog that link to the page about +music and were written in 2005:

+
blog/* and link(music) and creation_year(2005)
+

Note the use of “and” in the above example, that means that only +pages that match each of the three expressions match the whole. Use +“and” when you want to combine expression like that; “or” when it’s +enough for a page to match one expression. Note that it doesn’t make +sense to say “index and SandBox”, since no page can match both +expressions.

+

If you want to include only one level of subpages, you can use

+
blog/* and !blog/*/*
+

More complex expressions can also be created, by using parentheses +for grouping. For example, to match pages in a blog that are tagged with +either of two tags, use:

+
blog/* and (tagged(foo) or tagged(bar))
+

Note that page names in PageSpecs are matched against the absolute +filenames of the pages in the wiki, so a pagespec “foo” used on page +“a/b” will not match a page named “a/foo” or “a/b/foo”. To match +relative to the directory of the page containing the pagespec, you can +use “./”. For example, “./foo” on page “a/b” matches page “a/foo”.

+

To indicate the name of the page the PageSpec is used in, you can use +a single dot. For example, link(.) matches all the pages +linking to the page containing the PageSpec.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/pagespec/po.fr/index.html b/ikiwiki/pagespec/po.fr/index.html new file mode 100644 index 0000000..a76f9dc --- /dev/null +++ b/ikiwiki/pagespec/po.fr/index.html @@ -0,0 +1,206 @@ + + + + + + + + + + + po.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2009-08-30 09:37+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "" +"[[!if Error: syntax error in pagespec "\"enabled(po)\"\n""]]\n" +msgstr "" +"[[!if Error: syntax error in pagespec "\"enabled(po)\"\n""]]\n" + +#. type: Plain text +msgid "" +"If the po plugin is enabled, the regular [[ikiwiki/" +"PageSpec]] syntax is expanded with the following additional tests that can " +"be used to improve user navigation in a multi-lingual wiki:" +msgstr "" +"Si le greffon po est activé, la syntaxe normale de " +"PageSpec est développée avec les tests supplémentaires suivants " +"qui peuvent améliorer la navigation d'un utilisateur de wiki " +"plurilinguistique :" + +#. type: Bullet: '* ' +msgid "" +"\"`lang(LL)`\" - tests whether a page is written in the language specified " +"as a ISO639-1 (two-letter) language code." +msgstr "" +"`lang(LL)` - teste si la page est écrite dans la langue indiquée par le code " +"ISO639-1 (deux lettres)." + +#. type: Bullet: '* ' +msgid "" +"\"`currentlang()`\" - tests whether a page is written in the same language " +"as the current page." +msgstr "" +"`currentlang()` - teste si une page est écrite dans la langue de la page " +"donnée." + +#. type: Bullet: '* ' +msgid "" +"\"`needstranslation()`\" - tests whether a page needs translation work. Only " +"slave pages match this PageSpec. A minimum target translation percentage can " +"optionally be passed as an integer parameter: \"`needstranslation(50)`\" " +"matches only pages less than 50% translated." +msgstr "" + +#. type: Plain text +msgid "" +"Note that every non-po page is considered to be written in " +"`po_master_language`, as specified in `ikiwiki.setup`." +msgstr "" +"Notez que chaque page qui n'est pas de type po est considérée comme une page " +"écrite selon le `po_master_language`, tel que spécifié dans le fichier de " +"configuration `ikiwiki.setup`." + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "" + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/pagespec/po/index.html b/ikiwiki/pagespec/po/index.html new file mode 100644 index 0000000..c98b36b --- /dev/null +++ b/ikiwiki/pagespec/po/index.html @@ -0,0 +1,154 @@ + + + + + + + + + + + po - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

This wiki has po support enabled.

+

If the po plugin is +enabled, the regular PageSpec syntax is expanded with +the following additional tests that can be used to improve user +navigation in a multi-lingual wiki:

+
    +
  • lang(LL)” - tests whether a page is written in the +language specified as a ISO639-1 (two-letter) language code.
  • +
  • currentlang()” - tests whether a page is written in +the same language as the current page.
  • +
  • needstranslation()” - tests whether a page needs +translation work. Only slave pages match this PageSpec. A minimum target +translation percentage can optionally be passed as an integer parameter: +“needstranslation(50)” matches only pages less than 50% +translated.
  • +
+

Note that every non-po page is considered to be written in +po_master_language, as specified in +ikiwiki.setup.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/pagespec/sorting/index.html b/ikiwiki/pagespec/sorting/index.html new file mode 100644 index 0000000..df01098 --- /dev/null +++ b/ikiwiki/pagespec/sorting/index.html @@ -0,0 +1,164 @@ + + + + + + + + + + + sorting - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Some directives that use +PageSpecs allow specifying the order that matching +pages are shown in. The following sort orders can be specified using the +sort parameter:

+
    +
  • age - List pages from the most recently created to +the oldest.

  • +
  • mtime - List pages with the most recently modified +first.

  • +
  • title - Order by title (page name), e.g. “z/a a/b +a/c”

  • +
  • path - Order by page name including parents, +e.g. “a/b a/c z/a”

  • +
  • title_natural - Orders by title, but numbers in the +title are treated as such, (“1 2 9 10 20” instead of “1 10 2 20 +9”)

  • +
  • path_natural - Like path, but numbers +in the title are treated as such

  • +
  • meta(title) - Order according to the +[[!meta title="foo" sortas="bar"]] or +[[!meta title="foo"]] +directive, or the page name if no full +title was set. meta(author), meta(date), +meta(updated), etc. also work.

  • +
+

In addition, you can combine several sort orders and/or reverse the +order of sorting, with a string like age -title (which +would sort by age, then by title in reverse order if two pages have the +same age).

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/relativedate.js b/ikiwiki/relativedate.js new file mode 100644 index 0000000..e8643f4 --- /dev/null +++ b/ikiwiki/relativedate.js @@ -0,0 +1,79 @@ +// © 2006-2010 Joey Hess +// Redistribution and use in source and compiled forms, with or without +// modification, are permitted under any circumstances. No warranty. +// +// Causes html elements in the 'relativedate' class to be displayed +// as relative dates. The date is parsed from the title attribute, or from +// the element content. + +var dateElements; + +hook("onload", getDates); + +function getDates() { + dateElements = getElementsByClass('relativedate'); + for (var i = 0; i < dateElements.length; i++) { + var elt = dateElements[i]; + var title = elt.attributes.title; + var d = new Date(title ? title.value : elt.innerHTML); + if (! isNaN(d)) { + dateElements[i].date=d; + elt.title=elt.innerHTML; + } + } + + showDates(); +} + +function showDates() { + for (var i = 0; i < dateElements.length; i++) { + var elt = dateElements[i]; + var d = elt.date; + if (! isNaN(d)) { + elt.innerHTML=relativeDate(d); + } + } + setTimeout(showDates,30000); // keep updating every 30s +} + +var timeUnits = [ + { unit: 'year', seconds: 60 * 60 * 24 * 364 }, + { unit: 'month', seconds: 60 * 60 * 24 * 30 }, + { unit: 'day', seconds: 60 * 60 * 24 }, + { unit: 'hour', seconds: 60 * 60 }, + { unit: 'minute', seconds: 60 }, +]; + +function relativeDate(date) { + var now = new Date(); + var offset = date.getTime() - now.getTime(); + var seconds = Math.round(Math.abs(offset) / 1000); + + // hack to avoid reading just in the future if there is a minor + // amount of clock slip + if (offset >= 0 && seconds < 30 * 60 * 60) { + return "just now"; + } + + var ret = ""; + var shown = 0; + for (i = 0; i < timeUnits.length; i++) { + if (seconds >= timeUnits[i].seconds) { + var num = Math.floor(seconds / timeUnits[i].seconds); + seconds -= num * timeUnits[i].seconds; + if (ret) + ret += "and "; + ret += num + " " + timeUnits[i].unit + (num > 1 ? "s" : "") + " "; + + if (++shown == 2) + break; + } + else if (shown) + break; + } + + if (! ret) + ret = "less than a minute " + + return ret + (offset < 0 ? "ago" : "from now"); +} diff --git a/ikiwiki/searching.fr/index.html b/ikiwiki/searching.fr/index.html new file mode 100644 index 0000000..03398d7 --- /dev/null +++ b/ikiwiki/searching.fr/index.html @@ -0,0 +1,218 @@ + + + + + + + + + + + searching.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# 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-25 10:10+0200\n" +"Last-Translator: Alexandre Dupas \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +#, no-wrap +msgid "" +"[[!if Error: then parameter is required]]\n" +msgstr "" +"[[!if Error: then parameter is required]]\n" + +#. type: Plain text +msgid "" +"If searching is enabled, you can enter search terms in the search field, as " +"you'd expect. There are a few special things you can do to construct more " +"powerful searches." +msgstr "" +"Si la fonction de recherche est activée, vous pouvez saisir des mots clefs " +"dans le champ de recherche, comme vous pouvez vous y attendre. Il y a " +"quelques petits trucs que vous pouvez utiliser pour obtenir des résultats " +"plus précis." + +#. type: Bullet: '* ' +msgid "To match a phrase, enclose it in double quotes." +msgstr "Pour rechercher précisément une phrase, mettez-la entre guillemets." + +#. type: Bullet: '* ' +msgid "`AND` can be used to search for documents containing two expressions." +msgstr "" +"`AND` peut être utilisé pour rechercher des documents contenant deux " +"expressions." + +#. type: Bullet: '* ' +msgid "" +"`OR` can be used to search for documents containing either one of two " +"expressions." +msgstr "" +"`OR` peut être utilisé pour rechercher des documents contenant l'une des " +"deux expressions." + +#. type: Bullet: '* ' +msgid "" +"Parentheses can be used to build up complicated search expressions. For " +"example, \"(foo AND bar) OR (me AND you)\"" +msgstr "" +"Les parenthèses peuvent être utilisées pour construire des requêtes plus " +"compliquées, comme par exemple \"(foo AND bar) OR (me AND you)\"" + +#. type: Bullet: '* ' +msgid "" +"Prefix a search term with \"-\" to avoid it from appearing in the results. " +"For example, \"-discussion\" will omit \"discussion\"." +msgstr "" +"Préfixez un mot clef avec \"-\" pour éviter que les pages contenant ce mot " +"clef n'apparaissent dans les résultats. Par exemple, \"-discussion\" ne " +"prendra pas en compte les pages contenant \"discussion\"." + +#. type: Bullet: '* ' +msgid "To search for a page with a given title, use \"title:foo\"." +msgstr "" +"Pour chercher une page dont le titre est connu, utilisez \"title:foo\"." + +#. type: Bullet: '* ' +msgid "To search for pages that contain a \"bar\" link, use \"link:bar\"." +msgstr "" +"Pour rechercher les pages contenant un lien vers une page \"truc\", utilisez " +"\"link:truc\"." + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/searching/index.html b/ikiwiki/searching/index.html new file mode 100644 index 0000000..80fc883 --- /dev/null +++ b/ikiwiki/searching/index.html @@ -0,0 +1,152 @@ + + + + + + + + + + + searching - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

This wiki has searching enabled.

+

If searching is enabled, you can enter search terms in the search +field, as you’d expect. There are a few special things you can do to +construct more powerful searches.

+
    +
  • To match a phrase, enclose it in double quotes.
  • +
  • AND can be used to search for documents containing two +expressions.
  • +
  • OR can be used to search for documents containing +either one of two expressions.
  • +
  • Parentheses can be used to build up complicated search expressions. +For example, “(foo AND bar) OR (me AND you)”
  • +
  • Prefix a search term with “-” to avoid it from appearing in the +results. For example, “-discussion” will omit “discussion”.
  • +
  • To search for a page with a given title, use “title:foo”.
  • +
  • To search for pages that contain a “bar” link, use “link:bar”.
  • +
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/subpage.fr/index.html b/ikiwiki/subpage.fr/index.html new file mode 100644 index 0000000..9224e2f --- /dev/null +++ b/ikiwiki/subpage.fr/index.html @@ -0,0 +1,187 @@ + + + + + + + + + + + subpage.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2010-07-21 17:26+0200\n" +"Last-Translator: Alexandre Dupas \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +msgid "" +"ikiwiki supports placing pages in a directory hierarchy. For example, this " +"page, SubPage has some related pages placed under it, like [[SubPage/" +"LinkingRules]]. This is a useful way to add some order to your wiki rather " +"than just having a great big directory full of pages." +msgstr "" +"ikiwiki permet de ranger les pages dans une arborescence de répertoires. Par " +"exemple cette page, SubPage, est liée à des pages placées " +"hiérarchiquement sous elle, comme la page LinkingRules. C'est " +"une façon pratique d'ordonner le wiki au lieu d'avoir un seul gros " +"répertoire plein de pages." + +#. type: Plain text +#| msgid "" +#| "To add a SubPage, just make a subdirectory and put pages in it. For " +#| "example, this page is SubPage.mdwn in this wiki's source, and there is " +#| "also a SubPage subdirectory, which contains SubPage/LinkingRules.mdwn. " +#| "Subpages can be nested as deeply as you'd like." +msgid "" +"To add a SubPage, just make a subdirectory and put pages in it. For example, " +"this page is subpage.mdwn in this wiki's source, and there is also a subpage " +"subdirectory, which contains subpage/linkingrules.mdwn. Subpages can be " +"nested as deeply as you'd like." +msgstr "Pour ajouter une sous-page, faites simplement un sous-répertoire et mettez-y les pages. Par exemple, cette page est `subpage.mdwn` dans les sources de ce wiki et il y a également un sous-répertoire subpage, qui contient `subpage/linkingrules.mdwn`. Les sous-pages peuvent être emboîtées autant que vous le souhaitez." + +#. type: Plain text +msgid "Linking to and from a SubPage is explained in LinkingRules." +msgstr "" +"Faire un lien depuis et vers une sous-page est expliqué dans " +"LinkingRules." + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/subpage/index.html b/ikiwiki/subpage/index.html new file mode 100644 index 0000000..425b205 --- /dev/null +++ b/ikiwiki/subpage/index.html @@ -0,0 +1,146 @@ + + + + + + + + + + + subpage - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

ikiwiki supports placing pages in a directory hierarchy. For example, +this page, SubPage has some related pages +placed under it, like LinkingRules. This +is a useful way to add some order to your wiki rather than just having a +great big directory full of pages.

+

To add a SubPage, just make a subdirectory and put pages in it. For +example, this page is subpage.mdwn in this wiki’s source, and there is +also a subpage subdirectory, which contains subpage/linkingrules.mdwn. +Subpages can be nested as deeply as you’d like.

+

Linking to and from a SubPage is explained in +LinkingRules.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/subpage/linkingrules.fr/index.html b/ikiwiki/subpage/linkingrules.fr/index.html new file mode 100644 index 0000000..dea3166 --- /dev/null +++ b/ikiwiki/subpage/linkingrules.fr/index.html @@ -0,0 +1,238 @@ + + + + + + + + + + + linkingrules.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# 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-25 10:59+0200\n" +"Last-Translator: Alexandre Dupas \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +msgid "" +"To link to or from a SubPage, you can normally use a regular " +"WikiLink that does not contain the name of the parent directory of the " +"SubPage. Ikiwiki descends the directory hierarchy looking for a page " +"that matches your link." +msgstr "" +"Pour faire un lien depuis ou vers une sous-page (SubPage), vous pouvez " +"normalement utiliser un WikiLink classique qui ne contient pas le nom du " +"répertoire parent de la sous-page. Ikiwiki parcourt l'arborescence des " +"répertoires pour trouver une page qui corresponde au lien." + +#. type: Plain text +msgid "" +"For example, if FooBar/SubPage links to \"OtherPage\", ikiwiki will first " +"prefer pointing the link to FooBar/SubPage/OtherPage if it exists, next to " +"FooBar/OtherPage and finally to OtherPage in the root of the wiki." +msgstr "" +"Par exemple, si FooBar/SubPage est liée à \"OtherPage\", ikiwiki préfèrera " +"d'abord chercher la page dans FooBar/SubPage/OtherPage si elle existe, " +"ensuite dans FooBar/OtherPage et finalement dans OtherPage à la racine du " +"wiki." + +#. type: Plain text +msgid "" +"Note that this means that if a link on FooBar/SomePage to \"OtherPage\" " +"currently links to OtherPage, in the root of the wiki, and FooBar/OtherPage " +"is created, the link will _change_ to point to FooBar/OtherPage. On the " +"other hand, a link from BazBar to \"OtherPage\" would be unchanged by this " +"creation of a SubPage of FooBar." +msgstr "" +"Cela signifie que si un lien de FooBar/SomePage vers \"OtherPage\" pointe " +"actuellement vers OtherPage à la racine du wiki, et que la page FooBar/" +"OtherPage est créée, alors le lien _changera_ pour pointer vers la page " +"FooBar/OtherPage. Cependant, un lien de BazBar vers \"OtherPage\" ne serait " +"pas impacté par cette création d'une sous-page (SubPage) de FooBar." + +#. type: Plain text +msgid "" +"You can also specify a link that contains a directory name, like \"FooBar/" +"OtherPage\" to more exactly specify what page to link to. This is the only " +"way to link to an unrelated SubPage." +msgstr "" +"Vous pouvez également définir un lien qui contient le nom d'un répertoire, " +"comme \"FooBar/OtherPage\" pour spécifier plus précisément vers quelle page " +"il faut pointer. C'est le seul moyen de faire un lien vers une sous-page qui " +"n'est pas apparentée." + +#. type: Plain text +msgid "" +"You can use this to, for example, to link from BazBar to \"FooBar/SubPage\", " +"or from BazBar/SubPage to \"FooBar/SubPage\"." +msgstr "" +"Vous pouvez utiliser ceci pour, par exemple, faire un lien depuis BazBar " +"vers \"FooBar/SubPage\", ou de BazBar/SubPage vers \"FooBar/SubPage\"." + +#. type: Plain text +msgid "" +"You can also use \"/\" at the start of a link, to specify exactly which page " +"to link to, when there are multiple pages with similar names and the link " +"goes to the wrong page by default. For example, linking from \"FooBar/SubPage" +"\" to \"/OtherPage\" will link to the \"OtherPage\" in the root of the wiki, " +"even if there is a \"FooBar/OtherPage\"." +msgstr "" +"Vous pouvez également utiliser \"/\" au début d'un lien pour indiquer " +"précisément quelle page doit être pointée lorsqu'il y a plusieurs pages avec " +"des noms identiques et que le lien ne pointe pas vers la bonne page par " +"défaut. Par exemple, faire un lien depuis \"FooBar/SubPage\" vers \"/" +"OtherPage\" pointera vers la page \"OtherPage\" à la racine du wiki même " +"s'il existe une page \"FooBar/OtherPage\"." + +#. type: Plain text +msgid "" +"Also, if the wiki is configured with a userdir, you can link to pages within " +"the userdir without specifying a path to them. This is to allow for easy " +"linking to a user's page in the userdir, to sign a comment. These links are " +"checked for last of all." +msgstr "" +"De plus, si le wiki est configuré avec un répertoire `userdir`, vous pouvez " +"facilement faire des liens vers les pages dans `userdir` sans spécifier le " +"chemin vers ces pages. Cela permet de facilement pointer vers la page d'un " +"utilisateur dans `userdir` pour signer un commentaire. La correspondance des " +"liens avec ces pages est testée en tout dernier lieu." + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/subpage/linkingrules/index.html b/ikiwiki/subpage/linkingrules/index.html new file mode 100644 index 0000000..304e2db --- /dev/null +++ b/ikiwiki/subpage/linkingrules/index.html @@ -0,0 +1,164 @@ + + + + + + + + + + + linkingrules - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

To link to or from a SubPage, you can normally use +a regular WikiLink that does not contain +the name of the parent directory of the SubPage. +Ikiwiki descends the directory hierarchy looking for a page that matches +your link.

+

For example, if FooBar/SubPage links to “OtherPage”, ikiwiki will +first prefer pointing the link to FooBar/SubPage/OtherPage if it exists, +next to FooBar/OtherPage and finally to OtherPage in the root of the +wiki.

+

Note that this means that if a link on FooBar/SomePage to “OtherPage” +currently links to OtherPage, in the root of the wiki, and +FooBar/OtherPage is created, the link will change to point to +FooBar/OtherPage. On the other hand, a link from BazBar to “OtherPage” +would be unchanged by this creation of a SubPage of +FooBar.

+

You can also specify a link that contains a directory name, like +“FooBar/OtherPage” to more exactly specify what page to link to. This is +the only way to link to an unrelated SubPage.

+

You can use this to, for example, to link from BazBar to +“FooBar/SubPage”, or from BazBar/SubPage to “FooBar/SubPage”.

+

You can also use “/” at the start of a link, to specify exactly which +page to link to, when there are multiple pages with similar names and +the link goes to the wrong page by default. For example, linking from +“FooBar/SubPage” to “/OtherPage” will link to the “OtherPage” in the +root of the wiki, even if there is a “FooBar/OtherPage”.

+

Also, if the wiki is configured with a userdir, you can link to pages +within the userdir without specifying a path to them. This is to allow +for easy linking to a user’s page in the userdir, to sign a comment. +These links are checked for last of all.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/toggle.js b/ikiwiki/toggle.js new file mode 100644 index 0000000..597a374 --- /dev/null +++ b/ikiwiki/toggle.js @@ -0,0 +1,33 @@ +// © 2006-2010 Joey Hess +// Redistribution and use in source and compiled forms, with or without +// modification, are permitted under any circumstances. No warranty. +// +// Uses CSS to hide toggleables, to avoid any flashing on page load. The +// CSS is only emitted after it tests that it's going to be able +// to show the toggleables. +if (document.getElementById && document.getElementsByTagName && document.createTextNode) { + document.write(''); + hook("onload", inittoggle); +} + +function inittoggle() { + var as = getElementsByClass('toggle'); + for (var i = 0; i < as.length; i++) { + var id = as[i].href.match(/#(\w.+)/)[1]; + if (document.getElementById(id).className == "toggleable") + document.getElementById(id).style.display="none"; + as[i].onclick = function() { + toggle(this); + return false; + } + } +} + +function toggle(s) { + var id = s.href.match(/#(\w.+)/)[1]; + style = document.getElementById(id).style; + if (style.display == "none") + style.display = "block"; + else + style.display = "none"; +} diff --git a/ikiwiki/wikilink.fr/index.html b/ikiwiki/wikilink.fr/index.html new file mode 100644 index 0000000..b56f802 --- /dev/null +++ b/ikiwiki/wikilink.fr/index.html @@ -0,0 +1,247 @@ + + + + + + + + + + + wikilink.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2010-07-21 17:30+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#. type: Plain text +msgid "" +"WikiLinks provide easy linking between pages of the wiki. To create a " +"WikiLink, just put the name of the page to link to in double brackets. " +"For example `\[[WikiLink]]`." +msgstr "" +"Un WikiLink est un moyen simple de lier des pages entre elles. Pour créer un " +"WikiLink, il suffit de mettre le nom d'une page à lier entre double " +"crochets. Par exemple, `\[[WikiLink]]`." + +#. type: Plain text +msgid "" +"If you ever need to write something like `\[[WikiLink]]` without creating a " +"wikilink, just prefix it with a `\\`, like `\\\[[WikiLink]]`." +msgstr "" +"Si jamais vous avez besoin d'écrire quelque chose comme `\[[WikiLink]]` " +"sans créer de lien, il suffit de préfixer le mot par une barre oblique `\\`, " +"comme `\\\[[WikiLink]]`." + +#. type: Plain text +msgid "" +"There are some special LinkingRules that come into play when " +"linking between SubPages." +msgstr "" +"Quelques règles spéciales, LinkingRules, entrent en jeu pour " +"lier des sous-pages, SubPages." + +#. type: Plain text +msgid "" +"WikiLinks are matched with page names in a case-insensitive manner, so you " +"don't need to worry about getting the case the same, and can capitalise " +"links at the start of a sentence, and so on." +msgstr "" +"La recherche de correspondance entre WikiLinks et noms de page ne tient pas " +"compte de la casse des lettres. Inutile de s'embêter avec les majuscules et " +"les minuscules et vous pouvez mettre une lettre capitale au lien qui se " +"trouve en début de phrase, etc." + +#. type: Plain text +msgid "" +"It's also possible to write a WikiLink that uses something other than the " +"page name as the link text. For example `\[[foo_bar|SandBox]]` links to the " +"SandBox page, but the link will appear like this: foo bar." +msgstr "" +"Il est aussi possible d'écrire un WikiLink dont le texte n'est pas un nom de " +"page. Ainsi, `\[[foo_bar|SandBox]]` pointe vers la page SandBox, mais le " +"lien apparaît comme ceci : foo bar." + +#. type: Plain text +msgid "" +"To link to an anchor inside a page, you can use something like `" +"\[[WikiLink#foo]]` ." +msgstr "" +"Pour pointer vers une ancre à l'intérieur d'une page, vous pouvez utiliser " +"quelque chose comme `\[[WikiLink#foo]]`." + +#. type: Plain text +#| msgid "" +#| "Also, if the file linked to by a WikiLink looks like an image, it will be " +#| "displayed inline on the page." +msgid "" +"If the file linked to by a WikiLink looks like an image, it will be " +"displayed inline on the page." +msgstr "Quand le fichier pointé par un WikiLink ressemble à une image, il est affiché au fil du texte sur la page." + +#. type: Plain text +msgid "" +"You can also put an url in a WikiLink, to link to an external page. Email " +"addresses can also be used to generate a mailto link." +msgstr "Vous pouvez mettre une URL dans un WikiLink pour lier une page externe. Des adresses électroniques peuvent servir à créer des liens mailto." + +#~ msgid "Directives and WikiLinks" +#~ msgstr "Directives et WikiLinks" + +#~ msgid "" +#~ "ikiwiki has two syntaxes for directives. The older syntax " +#~ "used spaces to distinguish between directives and wikilinks; as a result, " +#~ "with that syntax in use, you cannot use spaces in WikiLinks, and must " +#~ "replace spaces with underscores. The newer syntax, enabled with the " +#~ "`prefix_directives` option in an ikiwiki setup file, prefixes directives " +#~ "with `!`, and thus does not prevent links with spaces. Future versions " +#~ "of ikiwiki will turn this option on by default." +#~ msgstr "" +#~ "Il existe deux syntaxes pour les directives. L'ancienne " +#~ "syntaxe se sert d'espaces pour différencier les directives et les " +#~ "Wikilinks. Ainsi, avec cette syntaxe, vous ne pouvez pas utiliser " +#~ "d'espaces dans les WikiLinks et vous devez les remplacer par des tirets " +#~ "bas `_`. La nouvelle syntaxe, activée par l'option `prefix_directives` " +#~ "dans le fichier de configuration d'ikiwiki, préfixe les directives par un " +#~ "`!`, ce qui permet l'utilisation d'espaces dans les liens. Dans les " +#~ "futures versions d'ikiwiki, cette option sera activée par défaut." + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/ikiwiki/wikilink/index.html b/ikiwiki/wikilink/index.html new file mode 100644 index 0000000..f5401c6 --- /dev/null +++ b/ikiwiki/wikilink/index.html @@ -0,0 +1,158 @@ + + + + + + + + + + + wikilink - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

WikiLinks provide easy linking between pages of the wiki. To create a +WikiLink, just put the name of the page to +link to in double brackets. For example [[WikiLink]].

+

If you ever need to write something like [[WikiLink]] +without creating a wikilink, just prefix it with a \, like +\[[WikiLink]].

+

There are some special +LinkingRules that come into play +when linking between SubPages.

+

WikiLinks are matched with page names in a case-insensitive manner, +so you don’t need to worry about getting the case the same, and can +capitalise links at the start of a sentence, and so on.

+

It’s also possible to write a WikiLink that uses something other than +the page name as the link text. For example +[[foo_bar|SandBox]] links to the SandBox page, but the link +will appear like this: foo bar.

+

To link to an anchor inside a page, you can use something like +[[WikiLink#foo]] .

+

If the file linked to by a WikiLink looks like an image, it will be +displayed inline on the page.

+
+

You can also put an url in a WikiLink, to link to an external page. +Email addresses can also be used to generate a mailto link.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/index.en.html b/index.en.html new file mode 100644 index 0000000..463b761 --- /dev/null +++ b/index.en.html @@ -0,0 +1,182 @@ + + + + + + + + + + + Home - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

+WELCOME +

+
+
+

I’m a sociology masters student with a penchant for server +administration and tech politics. My main interest is to have a lot of +interests, which is why you’ll find me dabbling in computers, as much as +the study of colonial history.

+

This Space

+

This space, for now, is to be the one stop shop for my contact +information, and what other digital spaces I navigate in. Eventually, it +might be nice to get a blog going. I’m a sociologist after all, and +apparently they write and they read a lot more than I do. Here are other +sections of this website:

+
    +
  • Blog - A web log that I +contribute to, at least, once a year.
  • +
  • Guides - Guides on how to do +(mostly technical) things. It is my attempt at documenting the things I +build
  • +
  • Services - Services, some private, some +public, hosted on my infrastructure
  • +
  • Forge - my personal git +forge where all of my work is consolidated
  • +
  • Contact - how to reach me
  • +
+

My Other Spaces

+ + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/index.fr.html b/index.fr.html new file mode 100644 index 0000000..ccd9c27 --- /dev/null +++ b/index.fr.html @@ -0,0 +1,186 @@ + + + + + + + + + + + Accueil - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ +

+BIENVENUE +

+
+
+

Je suis un étudiant en maitrise de sociologie avec un penchant pour +l’administration de serveurs et la politique relatifs aux technologies +numériques. Mon principal intérêt est d’avoir beaucoup d’intérêts, c’est +pourquoi vous pouvez me trouver autant en train de bricoler dans les +ordinateurs, qu’étudier l’histoire de la colonialité.

+

Cette espace

+

Cet espace, pour l’instant, sera le point unique pour mes +informations de contact, et les autres espaces numériques dans lesquels +je navigue. Éventuellement, il pourrait être intéressant de créer un +blog. Je suis sociologue après tout, et apparemment ils et elles +écrivent et lisent beaucoup plus que moi. Voici d’autres sections de ce +site web :

+
    +
  • Blog - Un blog auquel je +contribue au moins une fois par an.
  • +
  • Guides - Guides de nature +informatique. Ma tentative de documenter les choses que je +construit
  • +
  • Services - Page décrivant les services +hébergés sur mon infrastructure
  • +
  • Forge - mon forge git +personnel who j’ai consolidé tout mes projets
  • +
  • Contact - comment me +joindre
  • +
+

Mes autres espaces

+ + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Propulsé par ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/index.fr.po b/index.fr.po deleted file mode 100644 index a43ab60..0000000 --- a/index.fr.po +++ /dev/null @@ -1,132 +0,0 @@ -# Traduction de ikiwiki -# Copyright (C) 2009 Debian French l10n team -# This file is distributed under the same license as the PACKAGE Ikiwiki. -# -msgid "" -msgstr "" -"Project-Id-Version: ayakael.net\n" -"POT-Creation-Date: 2026-01-05 22:19-0500\n" -"PO-Revision-Date: 2026-01-05 22:20-0500\n" -"Last-Translator: Philippe Batailler \n" -"Language-Team: ayakael \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.8\n" - -#. type: Plain text -#, no-wrap -msgid "[[!meta title=\"Home\"]]\n" -msgstr "[[!meta title=\"Accueil\"]]\n" - -#. type: Plain text -#, no-wrap -msgid "" -"
\n" -" \n" -"

WELCOME

\n" -"
\n" -"
\n" -msgstr "" -"
\n" -" \n" -"

BIENVENUE

\n" -"
\n" -"
\n" - -#. type: Plain text -msgid "" -"I'm a sociology masters student with a penchant for server administration " -"and tech politics. My main interest is to have a lot of interests, which is " -"why you'll find me dabbling in computers, as much as the study of colonial " -"history." -msgstr "" -"Je suis un étudiant en maitrise de sociologie avec un penchant pour " -"l'administration de serveurs et la politique relatifs aux technologies " -"numériques. Mon principal intérêt est d'avoir beaucoup d'intérêts, c'est " -"pourquoi vous pouvez me trouver autant en train de bricoler dans les " -"ordinateurs, qu'étudier l'histoire de la colonialité." - -#. type: Title ## -#, no-wrap -msgid "This Space" -msgstr "Cette espace" - -#. type: Plain text -msgid "" -"This space, for now, is to be the one stop shop for my contact information, " -"and what other digital spaces I navigate in. Eventually, it might be nice to " -"get a blog going. I'm a sociologist after all, and apparently they write and " -"they read a lot more than I do. Here are other sections of this website:" -msgstr "" -"Cet espace, pour l'instant, sera le point unique pour mes informations de " -"contact, et les autres espaces numériques dans lesquels je navigue. " -"Éventuellement, il pourrait être intéressant de créer un blog. Je suis " -"sociologue après tout, et apparemment ils et elles écrivent et lisent " -"beaucoup plus que moi. Voici d'autres sections de ce site web :" - -#. type: Bullet: '* ' -msgid "[[Blog]] - A web log that I contribute to, at least, once a year." -msgstr "[[Blog]] - Un blog auquel je contribue au moins une fois par an." - -#. type: Bullet: '* ' -msgid "" -"[[Guides]] - Guides on how to do (mostly technical) things. It is my attempt " -"at documenting the things I build" -msgstr "" -"[[Guides]] - Guides de nature informatique. Ma tentative de documenter les " -"choses que je construit" - -#. type: Bullet: '* ' -msgid "" -"[[Services]] - Services, some private, some public, hosted on my " -"infrastructure" -msgstr "" -"[[Services]] - Page décrivant les services hébergés sur mon infrastructure" - -#. type: Bullet: '* ' -msgid "" -"[[Forge|https://ayakael.net/forge/]] - my personal git forge where all of my " -"work is consolidated" -msgstr "" -"[[Forge|https://ayakael.net/forge/]] - mon forge git personnel who j'ai " -"consolidé tout mes projets" - -#. type: Bullet: '* ' -msgid "[[Contact]] - how to reach me" -msgstr "[[Contact]] - comment me joindre" - -#. type: Title ## -#, no-wrap -msgid "My Other Spaces" -msgstr "Mes autres espaces" - -#. type: Bullet: '* ' -msgid "Mastodon" -msgstr "Mastodon" - -#, fuzzy, no-wrap -#~| msgid "[[!meta title=\"Home\"]]\n" -#~ msgid "[[!meta robots=\"noindex\"]]\n" -#~ msgstr "[[!meta title=\"Accueil\"]]\n" - -#, fuzzy, no-wrap -#~| msgid "[[!meta title=\"Home\"]]\n" -#~ msgid "[[!meta script=\"home\"]]\n" -#~ msgstr "[[!meta title=\"Accueil\"]]\n" - -#~ msgid "[GitLab](https://lab.ilot.io/ayakael)" -#~ msgstr "[GitLab](https://lab.ilot.io/ayakael)" - -#~ msgid "[GitHub](https://github.com/ayakael)" -#~ msgstr "[GitHub](https://github.com/ayakael)" - -#~ msgid "Welcome to your new wiki." -#~ msgstr "Bienvenue sur votre nouveau wiki." - -#~ msgid "All wikis are supposed to have a [[SandBox]], so this one does too." -#~ msgstr "Comme tous les wikis, ce wiki possède une page [[SandBox]]." - -#~ msgid "This wiki is powered by [[ikiwiki]]." -#~ msgstr "Ce wiki est propulsé par [[ikiwiki]]." diff --git a/index.mdwn b/index.mdwn deleted file mode 100644 index 44e86d6..0000000 --- a/index.mdwn +++ /dev/null @@ -1,23 +0,0 @@ -[[!meta title="Home"]] - -
- -

WELCOME

-
-
- -I'm a sociology masters student with a penchant for server administration and tech politics. My main interest is to have a lot of interests, which is why you'll find me dabbling in computers, as much as the study of colonial history. - -## This Space - -This space, for now, is to be the one stop shop for my contact information, and what other digital spaces I navigate in. Eventually, it might be nice to get a blog going. I'm a sociologist after all, and apparently they write and they read a lot more than I do. Here are other sections of this website: - -* [[Blog]] - A web log that I contribute to, at least, once a year. -* [[Guides]] - Guides on how to do (mostly technical) things. It is my attempt at documenting the things I build -* [[Services]] - Services, some private, some public, hosted on my infrastructure -* [[Forge|https://ayakael.net/forge/]] - my personal git forge where all of my work is consolidated -* [[Contact]] - how to reach me - -## My Other Spaces - -* Mastodon diff --git a/index.pot b/index.pot deleted file mode 100644 index a8ca9c2..0000000 --- a/index.pot +++ /dev/null @@ -1,96 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2026-01-05 22:19-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "[[!meta title=\"Home\"]]\n" -msgstr "" - -#. type: Plain text -#, markdown-text, no-wrap -msgid "" -"
\n" -" \n" -"

WELCOME

\n" -"
\n" -"
\n" -msgstr "" - -#. type: Plain text -#, markdown-text -msgid "" -"I'm a sociology masters student with a penchant for server administration " -"and tech politics. My main interest is to have a lot of interests, which is " -"why you'll find me dabbling in computers, as much as the study of colonial " -"history." -msgstr "" - -#. type: Title ## -#, markdown-text, no-wrap -msgid "This Space" -msgstr "" - -#. type: Plain text -#, markdown-text -msgid "" -"This space, for now, is to be the one stop shop for my contact information, " -"and what other digital spaces I navigate in. Eventually, it might be nice to " -"get a blog going. I'm a sociologist after all, and apparently they write and " -"they read a lot more than I do. Here are other sections of this website:" -msgstr "" - -#. type: Bullet: '* ' -#, markdown-text -msgid "[[Blog]] - A web log that I contribute to, at least, once a year." -msgstr "" - -#. type: Bullet: '* ' -#, markdown-text -msgid "" -"[[Guides]] - Guides on how to do (mostly technical) things. It is my attempt " -"at documenting the things I build" -msgstr "" - -#. type: Bullet: '* ' -#, markdown-text -msgid "" -"[[Services]] - Services, some private, some public, hosted on my " -"infrastructure" -msgstr "" - -#. type: Bullet: '* ' -#, markdown-text -msgid "" -"[[Forge|https://ayakael.net/forge/]] - my personal git forge where all of my " -"work is consolidated" -msgstr "" - -#. type: Bullet: '* ' -#, markdown-text -msgid "[[Contact]] - how to reach me" -msgstr "" - -#. type: Title ## -#, markdown-text, no-wrap -msgid "My Other Spaces" -msgstr "" - -#. type: Bullet: '* ' -#, markdown-text -msgid "Mastodon" -msgstr "" diff --git a/inlinetest.mdwn b/inlinetest.mdwn deleted file mode 100644 index 95cebf2..0000000 --- a/inlinetest.mdwn +++ /dev/null @@ -1 +0,0 @@ -[[!inline pages="sample_text/*"]] diff --git a/inlinetest/index.html b/inlinetest/index.html new file mode 100644 index 0000000..360122c --- /dev/null +++ b/inlinetest/index.html @@ -0,0 +1,378 @@ + + + + + + + + + + + inlinetest - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

+
+ +
+ +
+ +Donec dapibus + +
+
+ +
+

Donec dapibus orci sit amet elit. Maecenas rutrum ultrices lectus. +Aliquam suscipit, lacus a iaculis adipiscing, eros orci pellentesque +nisl, non pharetra dolor urna nec dolor. Integer cursus dolor vel magna. +Integer ultrices feugiat sem. Proin nec nibh. Duis eu dui quis nunc +sagittis lobortis. Fusce pharetra, enim ut sodales luctus, lectus arcu +rhoncus purus, in fringilla augue elit vel lacus. In hac habitasse +platea dictumst. Aliquam erat volutpat. Fusce iaculis elit id tellus. Ut +accumsan malesuada turpis. Suspendisse potenti. Vestibulum lacus augue, +lobortis mattis, laoreet in, varius at, nisi. Nunc gravida. Phasellus +faucibus. In hac habitasse platea dictumst. Integer tempor lacus eget +lectus. Praesent fringilla augue fringilla dui.

+ +
+ + + +
+ + +Posted + + + + + + + + + + +
+ +
+
+ +
+ +
+ +Donec semper + +
+
+ +
+

Donec semper, sem nec tristique tempus, justo neque commodo nisl, ut +gravida sem tellus suscipit nunc. Aliquam erat volutpat. Ut tincidunt +pretium elit. Aliquam pulvinar. Nulla cursus. Suspendisse potenti. Etiam +condimentum hendrerit felis. Duis iaculis aliquam enim. Donec dignissim +augue vitae orci. Curabitur luctus felis a metus. Cum sociis natoque +penatibus et magnis dis parturient montes, nascetur ridiculus mus. In +varius neque at enim. Suspendisse massa nulla, viverra in, bibendum +vitae, tempor quis, lorem.

+ +
+ + + +
+ + +Posted + + + + + + + + + + +
+ +
+
+ +
+ + + +Cicero + + + +
+ +Lorem ipsum + +
+
+ +
+

[[!meta Error: cannot parse date/time: 45 +B.C.]]

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at ante. +Mauris eleifend, quam a vulputate dictum, massa quam dapibus leo, eget +vulputate orci purus ut lorem. In fringilla mi in ligula. Pellentesque +aliquam quam vel dolor. Nunc adipiscing. Sed quam odio, tempus ac, +aliquam molestie, varius ac, tellus. Vestibulum ut nulla aliquam risus +rutrum interdum. Pellentesque lorem. Curabitur sit amet erat quis risus +feugiat viverra. Pellentesque augue justo, sagittis et, lacinia at, +venenatis non, arcu. Nunc nec libero. In cursus dictum risus. Etiam +tristique nisl a nulla. Ut a orci. Curabitur dolor nunc, egestas at, +accumsan at, malesuada nec, magna.

+ +
+ + + +
+ + +Posted + + + + + + + + + + +
+ +
+
+ +
+ +
+ +Nulla facilisi + +
+
+ +
+

Nulla facilisi. Nunc volutpat. Vestibulum ante ipsum primis in +faucibus orci luctus et ultrices posuere cubilia Curae; Ut sit amet orci +vel mauris blandit vehicula. Nullam quis enim. Integer dignissim viverra +velit. Curabitur in odio. In hac habitasse platea dictumst. Ut +consequat, tellus eu volutpat varius, justo orci elementum dolor, sed +imperdiet nulla tellus ut diam. Vestibulum ipsum ante, malesuada quis, +tempus ac, placerat sit amet, elit.

+ +
+ + + +
+ + +Posted + + + + + + + + + + + + +
+ +
+
+ +
+ +
+ +Sed eget + +
+
+ +
+

Sed eget turpis a pede tempor malesuada. Vivamus quis mi at leo +pulvinar hendrerit. Cum sociis natoque penatibus et magnis dis +parturient montes, nascetur ridiculus mus. Pellentesque aliquet lacus +vitae pede. Nullam mollis dolor ac nisi. Phasellus sit amet urna. +Praesent pellentesque sapien sed lacus. Donec lacinia odio in odio. In +sit amet elit. Maecenas gravida interdum urna. Integer pretium, arcu +vitae imperdiet facilisis, elit tellus tempor nisi, vel feugiat ante +velit sit amet mauris. Vivamus arcu. Integer pharetra magna ac lacus. +Aliquam vitae sapien in nibh vehicula auctor. Suspendisse leo mauris, +pulvinar sed, tempor et, consequat ac, lacus. Proin velit. Nulla semper +lobortis mauris. Duis urna erat, ornare et, imperdiet eu, suscipit sit +amet, massa. Nulla nulla nisi, pellentesque at, egestas quis, fringilla +eu, diam.

+ +
+ + + +
+ + +Posted + + + + + + + + + + +
+ +
+

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/local.css b/local.css new file mode 100644 index 0000000..a0dec8c --- /dev/null +++ b/local.css @@ -0,0 +1,3 @@ +/* ikiwiki local style sheet */ + +/* Add local styling here, instead of modifying style.css. */ diff --git a/meta/license.mdwn b/meta/license.mdwn deleted file mode 100644 index 4396155..0000000 --- a/meta/license.mdwn +++ /dev/null @@ -1,169 +0,0 @@ -[[!meta title="Licensing"]] - -Software -======== - -This site was generated with [ikiwiki](https://ikiwiki.info/), which is -generally © 2006-2011 Joey Hess, under the GPL-2+ license. See the -[complete copyright file](http://sources.debian.net/src/ikiwiki/sid/debian/copyright/) -for more information. - -Design -====== - -The design of this site falls under a different license, see the -[source code](https://lab.ilot.io/ilot/ikiwiki-bootstrap-ilot) for -the ultimate reference. Right now, it is a -[modified bootstrap theme](https://anarc.at/blog/2015-09-09-bootstrap/) -licensed under a MIT license and, like all bootstrap derived themes, -is "© 2011-2015 Twitter, Inc", but also © 2009-2015 Julian Andres -Klode for the Ikiwiki adaptation and © 2016-2023 Antoine Beaupré for -anarcat's modifications. Finally, @ 2023-2024 Antoine Martin for my modifications. - -Content -======= - -The *content* of this site is released under a Creative Commons -license, as such. - - - -Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. - -Updates -======= - - * 2024-06-14: initial license under CC-BY-SA - -Complete license -================ - - - -

Creative Commons Attribution-ShareAlike 4.0 International Public License

-

By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.

-

Section 1 – Definitions.

-
    -
  1. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
  2. -
  3. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
  4. -
  5. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License.
  6. -
  7. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
  8. -
  9. Effective Technological Measures means those measures that, in the absence of proper authority, may not -be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar -international agreements.
  10. -
  11. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
  12. -
  13. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike.
  14. -
  15. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
  16. -
  17. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
  18. -
  19. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
  20. -
  21. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
  22. -
  23. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
  24. -
  25. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
  26. -
-

Section 2 – Scope.

-
    -
  1. License grant. -
      -
    1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: -
        -
      1. reproduce and Share the Licensed Material, in whole or in part; and
      2. -
      3. produce, reproduce, and Share Adapted Material.
      4. -
      -
    2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
    3. -
    4. Term. The term of this Public License is specified in Section 6(a).
    5. -
    6. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
    7. -
    8. Downstream recipients. -
      -
        -
      1. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
      2. -
      3. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply.
      4. -
      5. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
      6. -
      -
      -
    9. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
    10. -
    -
  2. Other rights.

    -
      -
    1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
    2. -
    3. Patent and trademark rights are not licensed under this Public License.
    4. -
    5. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
    6. -
    -
  3. -
-

Section 3 – License Conditions.

-

Your exercise of the Licensed Rights is expressly made subject to the following conditions.

-
    -
  1. Attribution.

    -
      -
    1. If You Share the Licensed Material (including in modified form), You must:

      -
        -
      1. retain the following if it is supplied by the Licensor with the Licensed Material: -
          -
        1. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
        2. -
        3. a copyright notice;
        4. -
        5. a notice that refers to this Public License;
        6. -
        7. a notice that refers to the disclaimer of warranties;
        8. -
        9. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
        10. -
        -
      2. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
      3. -
      4. indicate the Licensed Material is licensed under this Public License, -and include the text of, or the URI or hyperlink to, this Public -License.
      5. -
      -
    2. -
    3. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
    4. -
    5. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
    6. -
    -
  2. -
  3. ShareAlike. -

    In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply.

    -
      -
    1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License.
    2. -
    3. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material.
    4. -
    5. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply.
    6. -
    -
  4. -
-

Section 4 – Sui Generis Database Rights.

-

Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:

-
    -
  1. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
  2. -
  3. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and
  4. -
  5. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
  6. -
-For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. -

Section 5 – Disclaimer of Warranties and Limitation of Liability.

-
    -
  1. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
  2. -
  3. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
  4. -
-
    -
  1. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
  2. -
-

Section 6 – Term and Termination.

-
    -
  1. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
  2. -
  3. -

    Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:

    -
      -
    1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
    2. -
    3. upon express reinstatement by the Licensor.
    4. -
    -For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
  4. -
  5. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
  6. -
  7. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
  8. -
-

Section 7 – Other Terms and Conditions.

-
    -
  1. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
  2. -
  3. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
  4. -
-

Section 8 – Interpretation.

-
    -
  1. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
  2. -
  3. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
  4. -
  5. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
  6. -
  7. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
  8. -
-

Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” The text of the Creative Commons public licenses is dedicated to the public domain under the CC0 Public Domain Dedication. Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.

-Creative Commons may be contacted at creativecommons.org.

diff --git a/meta/license/index.html b/meta/license/index.html new file mode 100644 index 0000000..80b8ff4 --- /dev/null +++ b/meta/license/index.html @@ -0,0 +1,633 @@ + + + + + + + + + + + Licensing - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Software

+

This site was generated with ikiwiki, which is generally © 2006-2011 +Joey Hess, under the GPL-2+ license. See the complete +copyright file for more information.

+

Design

+

The design of this site falls under a different license, see the source code +for the ultimate reference. Right now, it is a modified bootstrap +theme licensed under a MIT license and, like all bootstrap derived +themes, is “© 2011-2015 Twitter, Inc”, but also © 2009-2015 Julian +Andres Klode for the Ikiwiki adaptation and © 2016-2023 Antoine Beaupré +for anarcat’s modifications. Finally, @ 2023-2024 Antoine Martin for my +modifications.

+

Content

+

The content of this site is released under a Creative +Commons license, as such.

+ +

Creative Commons License
This +work is licensed under a +Creative +Commons Attribution-ShareAlike 4.0 International License.

+

Updates

+
    +
  • 2024-06-14: initial license under CC-BY-SA
  • +
+

Complete license

+ +

+Creative Commons Attribution-ShareAlike 4.0 International Public License +

+

+By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-ShareAlike 4.0 International Public License (“Public +License”). To the extent this Public License may be interpreted as a +contract, You are granted the Licensed Rights in consideration of Your +acceptance of these terms and conditions, and the Licensor grants You +such rights in consideration of benefits the Licensor receives from +making the Licensed Material available under these terms and conditions. +

+

+Section 1 – Definitions. +

+
    +
  1. +Adapted Material means material subject to Copyright +and Similar Rights that is derived from or based upon the Licensed +Material and in which the Licensed Material is translated, altered, +arranged, transformed, or otherwise modified in a manner requiring +permission under the Copyright and Similar Rights held by the Licensor. +For purposes of this Public License, where the Licensed Material is a +musical work, performance, or sound recording, Adapted Material is +always produced where the Licensed Material is synched in timed relation +with a moving image. +
  2. +
  3. +Adapter’s License means the license You apply to Your +Copyright and Similar Rights in Your contributions to Adapted Material +in accordance with the terms and conditions of this Public License. +
  4. +
  5. +BY-SA Compatible License means a license listed at + +creativecommons.org/compatiblelicenses, approved by Creative Commons +as essentially the equivalent of this Public License. +
  6. +
  7. +Copyright and Similar Rights means copyright and/or +similar rights closely related to copyright including, without +limitation, performance, broadcast, sound recording, and Sui Generis +Database Rights, without regard to how the rights are labeled or +categorized. For purposes of this Public License, the rights specified +in Section 2(b)(1)-(2) are not Copyright and Similar +Rights. +
  8. +
  9. +Effective Technological Measures means those measures +that, in the absence of proper authority, may not be circumvented under +laws fulfilling obligations under Article 11 of the WIPO Copyright +Treaty adopted on December 20, 1996, and/or similar international +agreements. +
  10. +
  11. +Exceptions and Limitations means fair use, fair +dealing, and/or any other exception or limitation to Copyright and +Similar Rights that applies to Your use of the Licensed Material. +
  12. +
  13. +License Elements means the license attributes listed in +the name of a Creative Commons Public License. The License Elements of +this Public License are Attribution and ShareAlike. +
  14. +
  15. +Licensed Material means the artistic or literary work, +database, or other material to which the Licensor applied this Public +License. +
  16. +
  17. +Licensed Rights means the rights granted to You subject +to the terms and conditions of this Public License, which are limited to +all Copyright and Similar Rights that apply to Your use of the Licensed +Material and that the Licensor has authority to license. +
  18. +
  19. +Licensor means the individual(s) or entity(ies) +granting rights under this Public License. +
  20. +
  21. +Share means to provide material to the public by any +means or process that requires permission under the Licensed Rights, +such as reproduction, public display, public performance, distribution, +dissemination, communication, or importation, and to make material +available to the public including in ways that members of the public may +access the material from a place and at a time individually chosen by +them. +
  22. +
  23. +Sui Generis Database Rights means rights other than +copyright resulting from Directive 96/9/EC of the European Parliament +and of the Council of 11 March 1996 on the legal protection of +databases, as amended and/or succeeded, as well as other essentially +equivalent rights anywhere in the world. +
  24. +
  25. +You means the individual or entity exercising the +Licensed Rights under this Public License. Your has a +corresponding meaning. +
  26. +
+

+Section 2 – Scope. +

+
    +
  1. +License grant. +
      +
    1. +Subject to the terms and conditions of this Public License, the Licensor +hereby grants You a worldwide, royalty-free, non-sublicensable, +non-exclusive, irrevocable license to exercise the Licensed Rights in +the Licensed Material to: +
        +
      1. +reproduce and Share the Licensed Material, in whole or in part; and +
      2. +
      3. +produce, reproduce, and Share Adapted Material. +
      4. +
      +
    2. +Exceptions and +Limitations. For the avoidance of doubt, where Exceptions and +Limitations apply to Your use, this Public License does not apply, and +You do not need to comply with its terms and conditions. +
    3. +
    4. +Term. The term of this +Public License is specified in Section 6(a). +
    5. +
    6. +Media and formats; technical +modifications allowed. The Licensor authorizes You to exercise +the Licensed Rights in all media and formats whether now known or +hereafter created, and to make technical modifications necessary to do +so. The Licensor waives and/or agrees not to assert any right or +authority to forbid You from making technical modifications necessary to +exercise the Licensed Rights, including technical modifications +necessary to circumvent Effective Technological Measures. For purposes +of this Public License, simply making modifications authorized by this +Section 2(a)(4) never produces Adapted Material. +
    7. +
    8. +Downstream recipients. +
      +
        +
      1. +Offer from the Licensor – +Licensed Material. Every recipient of the Licensed Material +automatically receives an offer from the Licensor to exercise the +Licensed Rights under the terms and conditions of this Public License. +
      2. +
      3. +Additional offer from the +Licensor – Adapted Material. Every recipient of Adapted Material +from You automatically receives an offer from the Licensor to exercise +the Licensed Rights in the Adapted Material under the conditions of the +Adapter’s License You apply. +
      4. +
      5. +No downstream +restrictions. You may not offer or impose any additional or +different terms or conditions on, or apply any Effective Technological +Measures to, the Licensed Material if doing so restricts exercise of the +Licensed Rights by any recipient of the Licensed Material. +
      6. +
      +
      +
    9. +No endorsement. Nothing +in this Public License constitutes or may be construed as permission to +assert or imply that You are, or that Your use of the Licensed Material +is, connected with, or sponsored, endorsed, or granted official status +by, the Licensor or others designated to receive attribution as provided +in Section 3(a)(1)(A)(i). +
    10. +
    +
  2. +

    +Other rights. +

    +
      +
    1. +Moral rights, such as the right of integrity, are not licensed under +this Public License, nor are publicity, privacy, and/or other similar +personality rights; however, to the extent possible, the Licensor waives +and/or agrees not to assert any such rights held by the Licensor to the +limited extent necessary to allow You to exercise the Licensed Rights, +but not otherwise. +
    2. +
    3. +Patent and trademark rights are not licensed under this Public License. +
    4. +
    5. +To the extent possible, the Licensor waives any right to collect +royalties from You for the exercise of the Licensed Rights, whether +directly or through a collecting society under any voluntary or waivable +statutory or compulsory licensing scheme. In all other cases the +Licensor expressly reserves any right to collect such royalties. +
    6. +
    +
  3. +
+

+Section 3 – License Conditions. +

+

+Your exercise of the Licensed Rights is expressly made subject to the +following conditions. +

+
    +
  1. +

    +Attribution. +

    +
      +
    1. +

      +If You Share the Licensed Material (including in modified form), You +must: +

      +
        +
      1. +retain the following if it is supplied by the Licensor with the Licensed +Material: +
          +
        1. +identification of the creator(s) of the Licensed Material and any others +designated to receive attribution, in any reasonable manner requested by +the Licensor (including by pseudonym if designated); +
        2. +
        3. +a copyright notice; +
        4. +
        5. +a notice that refers to this Public License; +
        6. +
        7. +a notice that refers to the disclaimer of warranties; +
        8. +
        9. +a URI or hyperlink to the Licensed Material to the extent reasonably +practicable; +
        10. +
        +
      2. +indicate if You modified the Licensed Material and retain an indication +of any previous modifications; and +
      3. +
      4. +indicate the Licensed Material is licensed under this Public License, +and include the text of, or the URI or hyperlink to, this Public +License. +
      5. +
      +
    2. +
    3. +You may satisfy the conditions in Section 3(a)(1) in +any reasonable manner based on the medium, means, and context in which +You Share the Licensed Material. For example, it may be reasonable to +satisfy the conditions by providing a URI or hyperlink to a resource +that includes the required information. +
    4. +
    5. +If requested by the Licensor, You must remove any of the information +required by Section 3(a)(1)(A) to the extent +reasonably practicable. +
    6. +
    +
  2. +
  3. +ShareAlike. +

    +In addition to the conditions in Section 3(a), if You +Share Adapted Material You produce, the following conditions also apply. +

    +
      +
    1. +The Adapter’s License You apply must be a Creative Commons license with +the same License Elements, this version or later, or a BY-SA Compatible +License. +
    2. +
    3. +You must include the text of, or the URI or hyperlink to, the Adapter’s +License You apply. You may satisfy this condition in any reasonable +manner based on the medium, means, and context in which You Share +Adapted Material. +
    4. +
    5. +You may not offer or impose any additional or different terms or +conditions on, or apply any Effective Technological Measures to, Adapted +Material that restrict exercise of the rights granted under the +Adapter’s License You apply. +
    6. +
    +
  4. +
+

+Section 4 – Sui Generis Database Rights. +

+

+Where the Licensed Rights include Sui Generis Database Rights that apply +to Your use of the Licensed Material: +

+
    +
  1. +for the avoidance of doubt, Section 2(a)(1) grants +You the right to extract, reuse, reproduce, and Share all or a +substantial portion of the contents of the database; +
  2. +
  3. +if You include all or a substantial portion of the database contents in +a database in which You have Sui Generis Database Rights, then the +database in which You have Sui Generis Database Rights (but not its +individual contents) is Adapted Material, including for purposes of +Section 3(b); and +
  4. +
  5. +You must comply with the conditions in Section 3(a) +if You Share all or a substantial portion of the contents of the +database. +
  6. +
+For the avoidance of doubt, this Section 4 supplements +and does not replace Your obligations under this Public License where +the Licensed Rights include other Copyright and Similar Rights. +

+Section 5 – Disclaimer of Warranties and Limitation of +Liability. +

+
    +
  1. +Unless otherwise separately undertaken by the Licensor, to the +extent possible, the Licensor offers the Licensed Material as-is and +as-available, and makes no representations or warranties of any kind +concerning the Licensed Material, whether express, implied, statutory, +or other. This includes, without limitation, warranties of title, +merchantability, fitness for a particular purpose, non-infringement, +absence of latent or other defects, accuracy, or the presence or absence +of errors, whether or not known or discoverable. Where disclaimers of +warranties are not allowed in full or in part, this disclaimer may not +apply to You. +
  2. +
  3. +To the extent possible, in no event will the Licensor be liable +to You on any legal theory (including, without limitation, negligence) +or otherwise for any direct, special, indirect, incidental, +consequential, punitive, exemplary, or other losses, costs, expenses, or +damages arising out of this Public License or use of the Licensed +Material, even if the Licensor has been advised of the possibility of +such losses, costs, expenses, or damages. Where a limitation of +liability is not allowed in full or in part, this limitation may not +apply to You. +
  4. +
+
    +
  1. +The disclaimer of warranties and limitation of liability provided above +shall be interpreted in a manner that, to the extent possible, most +closely approximates an absolute disclaimer and waiver of all liability. +
  2. +
+

+Section 6 – Term and Termination. +

+
    +
  1. +This Public License applies for the term of the Copyright and Similar +Rights licensed here. However, if You fail to comply with this Public +License, then Your rights under this Public License terminate +automatically. +
  2. +
  3. +

    +Where Your right to use the Licensed Material has terminated under +Section 6(a), it reinstates: +

    +
      +
    1. +automatically as of the date the violation is cured, provided it is +cured within 30 days of Your discovery of the violation; or +
    2. +
    3. +upon express reinstatement by the Licensor. +
    4. +
    +For the avoidance of doubt, this Section 6(b) does +not affect any right the Licensor may have to seek remedies for Your +violations of this Public License. +
  4. +
  5. +For the avoidance of doubt, the Licensor may also offer the Licensed +Material under separate terms or conditions or stop distributing the +Licensed Material at any time; however, doing so will not terminate this +Public License. +
  6. +
  7. +Sections 1, 5, 6, +7, and 8 survive termination of this +Public License. +
  8. +
+

+Section 7 – Other Terms and Conditions. +

+
    +
  1. +The Licensor shall not be bound by any additional or different terms or +conditions communicated by You unless expressly agreed. +
  2. +
  3. +Any arrangements, understandings, or agreements regarding the Licensed +Material not stated herein are separate from and independent of the +terms and conditions of this Public License. +
  4. +
+

+Section 8 – Interpretation. +

+
    +
  1. +For the avoidance of doubt, this Public License does not, and shall not +be interpreted to, reduce, limit, restrict, or impose conditions on any +use of the Licensed Material that could lawfully be made without +permission under this Public License. +
  2. +
  3. +To the extent possible, if any provision of this Public License is +deemed unenforceable, it shall be automatically reformed to the minimum +extent necessary to make it enforceable. If the provision cannot be +reformed, it shall be severed from this Public License without affecting +the enforceability of the remaining terms and conditions. +
  4. +
  5. +No term or condition of this Public License will be waived and no +failure to comply consented to unless expressly agreed to by the +Licensor. +
  6. +
  7. +Nothing in this Public License constitutes or may be interpreted as a +limitation upon, or waiver of, any privileges and immunities that apply +to the Licensor or You, including from the legal processes of any +jurisdiction or authority. +
  8. +
+

+Creative Commons is not a party to its public licenses. Notwithstanding, +Creative Commons may elect to apply one of its public licenses to +material it publishes and in those instances will be considered the +“Licensor.” The text of the Creative Commons public licenses is +dedicated to the public domain under the +CC0 +Public Domain Dedication. Except for the limited purpose of +indicating that material is shared under a Creative Commons public +license or as otherwise permitted by the Creative Commons policies +published at +creativecommons.org/policies, +Creative Commons does not authorize the use of the trademark “Creative +Commons” or any other trademark or logo of Creative Commons without its +prior written consent including, without limitation, in connection with +any unauthorized modifications to any of its public licenses or any +other arrangements, understandings, or agreements concerning use of +licensed material. For the avoidance of doubt, this paragraph does not +form part of the public licenses.

Creative Commons may be +contacted at creativecommons.org. +

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/recentchanges/index.en.html b/recentchanges/index.en.html new file mode 100644 index 0000000..499e345 --- /dev/null +++ b/recentchanges/index.en.html @@ -0,0 +1,4749 @@ + + + + + + + + + + + RecentChanges - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Recent changes to this wiki:

+

+ +
+ + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add graphical artifacts update for linux 7.0
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/qubes-os-backups-using-zfs: fix phrasing error
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/qubes-os-backups-using-zfs: add guide
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: lint
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add known issue with hang
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add known issues
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add references
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: typo
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add guide
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/davinci-resolve: fix list in other resources
+ + +
+ + + + + + + + + + + + + + +
+ + +{blog,guides}: add hr below titles
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/davinci-resolve: fix list in other resources
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: nuke old public before regenerating
+ + +
+ + + + + + + + + + + + + + +
+ + +ikwiki: fix keys from public being included
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/gaming-vm-on-qubes-using-bazzite.mdwn: cleanup section on introducing romfile to qubes, and add threat model warning on Qubes
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: add section on pandoc
+ + +
+ + + + + + + + + + + + + + +
+ + +css/local.css: add pandoc code syntax based on pygments
+ + + + + +Extracted by converting one of the articles with code blocks to html and
+ + + +copy pasting the part on referring to sourceCode.
+ + + + + +```
+ + + +pandoc -s 2026-01-03-gaming-vm-on-qubes-using-bazzite.mdwn -o 2026-01-03-gaming-vm-on-qubes-using-bazzite.html
+ + + +```
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/*: remove dates on guides
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/2026-01-03-gaming-vm-on-qubes-using-bazzite.mdwn: add section on flashing good bios to 6700XT
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/2026-01-03-gaming-vm-on-qubes-using-bazzite.mdwn: add title, fix list for section on modorganizer
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: install perl-json depend for pandoc
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/2026-01-03-gaming-vm-on-qubes-using-bazzite.mdwn: initial publication
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: use pandoc to process markdown
+ + +
+ + + + + + + + + + + + + + +
+ + +sidebar: add link to guides page
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/2026-01-03-davinci-resolve.mdwn: rename from guides/davinci-resolve.mdwn
+ + +
+ + + + + + + + + + + + + + +
+ + +guides: do not translate all by default, and limit what is shown by language
+ + +
+ + + + + + + + + + + + + + +
+ + +blog: do not translate all by default, and limit what is shown by language
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/2026-01-02-foss-recap-2025: rename from foss-recap-2025
+ + +
+ + + + + + + + + + + + + + +
+ + +git.pm: do not commit
+ + +
+ + + + + + + + + + + + + + +
+ + +blog: translate rss feed description
+ + +
+ + + + + + + + + + + + + + +
+ + +guides: added guide page, moved davinci resolve there
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: set historyurl to commits page
+ + +
+ + + + + + + + + + + + + + +
+ + +ikwiki: enable historyurl pointing to forge
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: set localtime to Montreal
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: use Montreal timezone
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: set fetch depth as zero
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: do not pull shallow repo
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: try with getctime?
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: use gettime argument
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: force rebuild of website to gettime correctly
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: use git rcs modified to not commit, pull or push automatically
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/foss-recap-2025: add section on documentation goals
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/foss-recap-2025: add committer scoring
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/foss-recap-2025: fix some typos
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/foss-recap-2025: fix link to ilot
+ + +
+ + + + + + + + + + + + + + +
+ + +index: add link to blog
+ + +
+ + + + + + + + + + + + + + +
+ + +sidebar: add link to blog page
+ + +
+ + + + + + + + + + + + + + +
+ + +blog: add foss recap 2025, and blog page
+ + +
+ + + + + + + + + + + + + + +
+ + +services: add some inactive services
+ + +
+ + + + + + + + + + + + + + +
+ + +index: add link to services and guides
+ + +
+ + + + + + + + + + + + + + +
+ + +services: add new section documenting services on infrastructure
+ + +
+ + + + + + + + + + + + + + +
+ + +services: fix typo in first paragraphe
+ + +
+ + + + + + + + + + + + + + +
+ + +context: add Signal link
+ + +
+ + + + + + + + + + + + + + +
+ + +davinci-resolve: add fedora guide
+ + +
+ + + + + + + + + + + + + + +
+ + +davinco-resolve: add "more options" section
+ + +
+ + + + + + + + + + + + + + +
+ + +davinci-resolve: add introduction, clean-up
+ + +
+ + + + + + + + + + + + + + +
+ + +davinci-resolve: add guide
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: make links clickable
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: typo
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: add mumble information
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: added plugins
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: add todo list
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: added bulletpoint to info section
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: add admins, and changelog
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: add information to minecraft server
+ + +
+ + + + + + + + + + + + + + +
+ + +favicon.ico: restore correct favicon
+ + +
+ + + + + + + + + + + + + + +
+ + +plugins: move from lib
+ + +
+ + + + + + + + + + + + + + +
+ + +content/*: move to root
+ + +
+ + + + + + + + + + + + + + +
+ + +test-server.sh: move under tools
+ + +
+ + + + + + + + + + + + + + +
+ + +base/*: merge with content
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page.tmpl: do not use mt-auto to set content padding
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page.tmpl: fix sticky footer
+ + +
+ + + + + + + + + + + + + + +
+ + +base/css/style.css: add from default
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/*: cleaned up indents + folder restructure
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: disable git
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page.tmpl: drop footer navigation
+ + +
+ + + + + + + + + + + + + + +
+ + +*: update to Bootstrap 5
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/*: Drop HTML5 conditions
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: use mirrored ssh-agent action
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-cI: clean-up previews based on SHA rather than PR metadata
+ + +
+ + + + + + + + + + + + + + +
+ + +gitlab-ci: drop
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: generate and clean-up previews when in PR
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: force rm to not fail
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: clear-out public workflow when deploying
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-cI; rename push to deploy
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: typo
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: source ssh target from PAGES_TARGET variable
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: copy main's push workflow to public branch when deploying
+ + +
+ + + + + + + + + + + + + + +
+ + +README: update
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: initial
+ + +
+ + + + + + + + + + + + + + +
+ + +content/index: fix forge link
+ + +
+ + + + + + + + + + + + + + +
+ + +updated PO files
+ + +
+ + + + + + + + + + + + + + +
+ + +content/index: add description for Forge
+ + +
+ + + + + + + + + + + + + + +
+ + +updated PO files
+ + +
+ + + + + + + + + + + + + + +
+ + +content/sidebar: add forge link
+ + +
+ + + + + + + + + + + + + + +
+ + +updated PO files
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page: fix orphaned div for untranslated pages
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page: make internal hrefs relative
+ + +
+ + + + + + + + + + + + + + +
+ + +gitlab-ci: fix test preview feature
+ + +
+ + + + + + + + + + + + + + +
+ + +gitlab-ci: add test preview feature
+ + +
+ + + + +
+ +

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/recentchanges/index.fr.html b/recentchanges/index.fr.html new file mode 100644 index 0000000..89b2ce6 --- /dev/null +++ b/recentchanges/index.fr.html @@ -0,0 +1,4750 @@ + + + + + + + + + + + RecentChanges - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Dernières modifications :

+

+ +
+ + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add graphical artifacts update for linux 7.0
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/qubes-os-backups-using-zfs: fix phrasing error
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/qubes-os-backups-using-zfs: add guide
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: lint
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add known issue with hang
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add known issues
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add references
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: typo
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/virtualized-hardware-acceleration-qubes-os: add guide
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/davinci-resolve: fix list in other resources
+ + +
+ + + + + + + + + + + + + + +
+ + +{blog,guides}: add hr below titles
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/davinci-resolve: fix list in other resources
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: nuke old public before regenerating
+ + +
+ + + + + + + + + + + + + + +
+ + +ikwiki: fix keys from public being included
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/gaming-vm-on-qubes-using-bazzite.mdwn: cleanup section on introducing romfile to qubes, and add threat model warning on Qubes
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: add section on pandoc
+ + +
+ + + + + + + + + + + + + + +
+ + +css/local.css: add pandoc code syntax based on pygments
+ + + + + +Extracted by converting one of the articles with code blocks to html and
+ + + +copy pasting the part on referring to sourceCode.
+ + + + + +```
+ + + +pandoc -s 2026-01-03-gaming-vm-on-qubes-using-bazzite.mdwn -o 2026-01-03-gaming-vm-on-qubes-using-bazzite.html
+ + + +```
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/*: remove dates on guides
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/2026-01-03-gaming-vm-on-qubes-using-bazzite.mdwn: add section on flashing good bios to 6700XT
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/2026-01-03-gaming-vm-on-qubes-using-bazzite.mdwn: add title, fix list for section on modorganizer
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: install perl-json depend for pandoc
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/2026-01-03-gaming-vm-on-qubes-using-bazzite.mdwn: initial publication
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: use pandoc to process markdown
+ + +
+ + + + + + + + + + + + + + +
+ + +sidebar: add link to guides page
+ + +
+ + + + + + + + + + + + + + +
+ + +guides/2026-01-03-davinci-resolve.mdwn: rename from guides/davinci-resolve.mdwn
+ + +
+ + + + + + + + + + + + + + +
+ + +guides: do not translate all by default, and limit what is shown by language
+ + +
+ + + + + + + + + + + + + + +
+ + +blog: do not translate all by default, and limit what is shown by language
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/2026-01-02-foss-recap-2025: rename from foss-recap-2025
+ + +
+ + + + + + + + + + + + + + +
+ + +git.pm: do not commit
+ + +
+ + + + + + + + + + + + + + +
+ + +blog: translate rss feed description
+ + +
+ + + + + + + + + + + + + + +
+ + +guides: added guide page, moved davinci resolve there
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: set historyurl to commits page
+ + +
+ + + + + + + + + + + + + + +
+ + +ikwiki: enable historyurl pointing to forge
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: set localtime to Montreal
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: use Montreal timezone
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: set fetch depth as zero
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: do not pull shallow repo
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: try with getctime?
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: use gettime argument
+ + +
+ + + + + + + + + + + + + + +
+ + +ci: force rebuild of website to gettime correctly
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: use git rcs modified to not commit, pull or push automatically
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/foss-recap-2025: add section on documentation goals
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/foss-recap-2025: add committer scoring
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/foss-recap-2025: fix some typos
+ + +
+ + + + + + + + + + + + + + +
+ + +blog/foss-recap-2025: fix link to ilot
+ + +
+ + + + + + + + + + + + + + +
+ + +index: add link to blog
+ + +
+ + + + + + + + + + + + + + +
+ + +sidebar: add link to blog page
+ + +
+ + + + + + + + + + + + + + +
+ + +blog: add foss recap 2025, and blog page
+ + +
+ + + + + + + + + + + + + + +
+ + +services: add some inactive services
+ + +
+ + + + + + + + + + + + + + +
+ + +index: add link to services and guides
+ + +
+ + + + + + + + + + + + + + +
+ + +services: add new section documenting services on infrastructure
+ + +
+ + + + + + + + + + + + + + +
+ + +services: fix typo in first paragraphe
+ + +
+ + + + + + + + + + + + + + +
+ + +context: add Signal link
+ + +
+ + + + + + + + + + + + + + +
+ + +davinci-resolve: add fedora guide
+ + +
+ + + + + + + + + + + + + + +
+ + +davinco-resolve: add "more options" section
+ + +
+ + + + + + + + + + + + + + +
+ + +davinci-resolve: add introduction, clean-up
+ + +
+ + + + + + + + + + + + + + +
+ + +davinci-resolve: add guide
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: make links clickable
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: typo
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: add mumble information
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: added plugins
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: add todo list
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: added bulletpoint to info section
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: add admins, and changelog
+ + +
+ + + + + + + + + + + + + + +
+ + +minecraft: add information to minecraft server
+ + +
+ + + + + + + + + + + + + + +
+ + +favicon.ico: restore correct favicon
+ + +
+ + + + + + + + + + + + + + +
+ + +plugins: move from lib
+ + +
+ + + + + + + + + + + + + + +
+ + +content/*: move to root
+ + +
+ + + + + + + + + + + + + + +
+ + +test-server.sh: move under tools
+ + +
+ + + + + + + + + + + + + + +
+ + +base/*: merge with content
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page.tmpl: do not use mt-auto to set content padding
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page.tmpl: fix sticky footer
+ + +
+ + + + + + + + + + + + + + +
+ + +base/css/style.css: add from default
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/*: cleaned up indents + folder restructure
+ + +
+ + + + + + + + + + + + + + +
+ + +ikiwiki: disable git
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page.tmpl: drop footer navigation
+ + +
+ + + + + + + + + + + + + + +
+ + +*: update to Bootstrap 5
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/*: Drop HTML5 conditions
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: use mirrored ssh-agent action
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-cI: clean-up previews based on SHA rather than PR metadata
+ + +
+ + + + + + + + + + + + + + +
+ + +gitlab-ci: drop
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: generate and clean-up previews when in PR
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: force rm to not fail
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: clear-out public workflow when deploying
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-cI; rename push to deploy
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: typo
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: source ssh target from PAGES_TARGET variable
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: copy main's push workflow to public branch when deploying
+ + +
+ + + + + + + + + + + + + + +
+ + +README: update
+ + +
+ + + + + + + + + + + + + + +
+ + +forgejo-ci: initial
+ + +
+ + + + + + + + + + + + + + +
+ + +content/index: fix forge link
+ + +
+ + + + + + + + + + + + + + +
+ + +updated PO files
+ + +
+ + + + + + + + + + + + + + +
+ + +content/index: add description for Forge
+ + +
+ + + + + + + + + + + + + + +
+ + +updated PO files
+ + +
+ + + + + + + + + + + + + + +
+ + +content/sidebar: add forge link
+ + +
+ + + + + + + + + + + + + + +
+ + +updated PO files
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page: fix orphaned div for untranslated pages
+ + +
+ + + + + + + + + + + + + + +
+ + +templates/page: make internal hrefs relative
+ + +
+ + + + + + + + + + + + + + +
+ + +gitlab-ci: fix test preview feature
+ + +
+ + + + + + + + + + + + + + +
+ + +gitlab-ci: add test preview feature
+ + +
+ + + + +
+ +

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Propulsé par ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/sample_text/Donec_dapibus.mdwn b/sample_text/Donec_dapibus.mdwn deleted file mode 100644 index b995fa6..0000000 --- a/sample_text/Donec_dapibus.mdwn +++ /dev/null @@ -1 +0,0 @@ -Donec dapibus orci sit amet elit. Maecenas rutrum ultrices lectus. Aliquam suscipit, lacus a iaculis adipiscing, eros orci pellentesque nisl, non pharetra dolor urna nec dolor. Integer cursus dolor vel magna. Integer ultrices feugiat sem. Proin nec nibh. Duis eu dui quis nunc sagittis lobortis. Fusce pharetra, enim ut sodales luctus, lectus arcu rhoncus purus, in fringilla augue elit vel lacus. In hac habitasse platea dictumst. Aliquam erat volutpat. Fusce iaculis elit id tellus. Ut accumsan malesuada turpis. Suspendisse potenti. Vestibulum lacus augue, lobortis mattis, laoreet in, varius at, nisi. Nunc gravida. Phasellus faucibus. In hac habitasse platea dictumst. Integer tempor lacus eget lectus. Praesent fringilla augue fringilla dui. diff --git a/sample_text/Donec_dapibus/index.html b/sample_text/Donec_dapibus/index.html new file mode 100644 index 0000000..66d2deb --- /dev/null +++ b/sample_text/Donec_dapibus/index.html @@ -0,0 +1,146 @@ + + + + + + + + + + + Donec dapibus - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Donec dapibus orci sit amet elit. Maecenas rutrum ultrices lectus. +Aliquam suscipit, lacus a iaculis adipiscing, eros orci pellentesque +nisl, non pharetra dolor urna nec dolor. Integer cursus dolor vel magna. +Integer ultrices feugiat sem. Proin nec nibh. Duis eu dui quis nunc +sagittis lobortis. Fusce pharetra, enim ut sodales luctus, lectus arcu +rhoncus purus, in fringilla augue elit vel lacus. In hac habitasse +platea dictumst. Aliquam erat volutpat. Fusce iaculis elit id tellus. Ut +accumsan malesuada turpis. Suspendisse potenti. Vestibulum lacus augue, +lobortis mattis, laoreet in, varius at, nisi. Nunc gravida. Phasellus +faucibus. In hac habitasse platea dictumst. Integer tempor lacus eget +lectus. Praesent fringilla augue fringilla dui.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/sample_text/Donec_semper.mdwn b/sample_text/Donec_semper.mdwn deleted file mode 100644 index bdcb1ab..0000000 --- a/sample_text/Donec_semper.mdwn +++ /dev/null @@ -1 +0,0 @@ -Donec semper, sem nec tristique tempus, justo neque commodo nisl, ut gravida sem tellus suscipit nunc. Aliquam erat volutpat. Ut tincidunt pretium elit. Aliquam pulvinar. Nulla cursus. Suspendisse potenti. Etiam condimentum hendrerit felis. Duis iaculis aliquam enim. Donec dignissim augue vitae orci. Curabitur luctus felis a metus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In varius neque at enim. Suspendisse massa nulla, viverra in, bibendum vitae, tempor quis, lorem. diff --git a/sample_text/Donec_semper/index.html b/sample_text/Donec_semper/index.html new file mode 100644 index 0000000..cce91dd --- /dev/null +++ b/sample_text/Donec_semper/index.html @@ -0,0 +1,143 @@ + + + + + + + + + + + Donec semper - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Donec semper, sem nec tristique tempus, justo neque commodo nisl, ut +gravida sem tellus suscipit nunc. Aliquam erat volutpat. Ut tincidunt +pretium elit. Aliquam pulvinar. Nulla cursus. Suspendisse potenti. Etiam +condimentum hendrerit felis. Duis iaculis aliquam enim. Donec dignissim +augue vitae orci. Curabitur luctus felis a metus. Cum sociis natoque +penatibus et magnis dis parturient montes, nascetur ridiculus mus. In +varius neque at enim. Suspendisse massa nulla, viverra in, bibendum +vitae, tempor quis, lorem.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/sample_text/Lorem_ipsum.mdwn b/sample_text/Lorem_ipsum.mdwn deleted file mode 100644 index f0199bc..0000000 --- a/sample_text/Lorem_ipsum.mdwn +++ /dev/null @@ -1,4 +0,0 @@ -[[!meta author="Cicero"]] -[[!meta date="45 B.C."]] - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at ante. Mauris eleifend, quam a vulputate dictum, massa quam dapibus leo, eget vulputate orci purus ut lorem. In fringilla mi in ligula. Pellentesque aliquam quam vel dolor. Nunc adipiscing. Sed quam odio, tempus ac, aliquam molestie, varius ac, tellus. Vestibulum ut nulla aliquam risus rutrum interdum. Pellentesque lorem. Curabitur sit amet erat quis risus feugiat viverra. Pellentesque augue justo, sagittis et, lacinia at, venenatis non, arcu. Nunc nec libero. In cursus dictum risus. Etiam tristique nisl a nulla. Ut a orci. Curabitur dolor nunc, egestas at, accumsan at, malesuada nec, magna. diff --git a/sample_text/Lorem_ipsum/index.html b/sample_text/Lorem_ipsum/index.html new file mode 100644 index 0000000..ae7a882 --- /dev/null +++ b/sample_text/Lorem_ipsum/index.html @@ -0,0 +1,147 @@ + + + + + + + + + + + Lorem ipsum - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

[[!meta Error: cannot parse date/time: 45 +B.C.]]

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at ante. +Mauris eleifend, quam a vulputate dictum, massa quam dapibus leo, eget +vulputate orci purus ut lorem. In fringilla mi in ligula. Pellentesque +aliquam quam vel dolor. Nunc adipiscing. Sed quam odio, tempus ac, +aliquam molestie, varius ac, tellus. Vestibulum ut nulla aliquam risus +rutrum interdum. Pellentesque lorem. Curabitur sit amet erat quis risus +feugiat viverra. Pellentesque augue justo, sagittis et, lacinia at, +venenatis non, arcu. Nunc nec libero. In cursus dictum risus. Etiam +tristique nisl a nulla. Ut a orci. Curabitur dolor nunc, egestas at, +accumsan at, malesuada nec, magna.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/sample_text/Nulla_facilisi.mdwn b/sample_text/Nulla_facilisi.mdwn deleted file mode 100644 index 0e8a0b9..0000000 --- a/sample_text/Nulla_facilisi.mdwn +++ /dev/null @@ -1,2 +0,0 @@ -[[!tag Cicero Latin typesetting]] -Nulla facilisi. Nunc volutpat. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Ut sit amet orci vel mauris blandit vehicula. Nullam quis enim. Integer dignissim viverra velit. Curabitur in odio. In hac habitasse platea dictumst. Ut consequat, tellus eu volutpat varius, justo orci elementum dolor, sed imperdiet nulla tellus ut diam. Vestibulum ipsum ante, malesuada quis, tempus ac, placerat sit amet, elit. diff --git a/sample_text/Nulla_facilisi/index.html b/sample_text/Nulla_facilisi/index.html new file mode 100644 index 0000000..4b2f3cf --- /dev/null +++ b/sample_text/Nulla_facilisi/index.html @@ -0,0 +1,142 @@ + + + + + + + + + + + Nulla facilisi - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Nulla facilisi. Nunc volutpat. Vestibulum ante ipsum primis in +faucibus orci luctus et ultrices posuere cubilia Curae; Ut sit amet orci +vel mauris blandit vehicula. Nullam quis enim. Integer dignissim viverra +velit. Curabitur in odio. In hac habitasse platea dictumst. Ut +consequat, tellus eu volutpat varius, justo orci elementum dolor, sed +imperdiet nulla tellus ut diam. Vestibulum ipsum ante, malesuada quis, +tempus ac, placerat sit amet, elit.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/sample_text/Sed_eget.mdwn b/sample_text/Sed_eget.mdwn deleted file mode 100644 index d360de3..0000000 --- a/sample_text/Sed_eget.mdwn +++ /dev/null @@ -1 +0,0 @@ -Sed eget turpis a pede tempor malesuada. Vivamus quis mi at leo pulvinar hendrerit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Pellentesque aliquet lacus vitae pede. Nullam mollis dolor ac nisi. Phasellus sit amet urna. Praesent pellentesque sapien sed lacus. Donec lacinia odio in odio. In sit amet elit. Maecenas gravida interdum urna. Integer pretium, arcu vitae imperdiet facilisis, elit tellus tempor nisi, vel feugiat ante velit sit amet mauris. Vivamus arcu. Integer pharetra magna ac lacus. Aliquam vitae sapien in nibh vehicula auctor. Suspendisse leo mauris, pulvinar sed, tempor et, consequat ac, lacus. Proin velit. Nulla semper lobortis mauris. Duis urna erat, ornare et, imperdiet eu, suscipit sit amet, massa. Nulla nulla nisi, pellentesque at, egestas quis, fringilla eu, diam. diff --git a/sample_text/Sed_eget/index.html b/sample_text/Sed_eget/index.html new file mode 100644 index 0000000..f3f9674 --- /dev/null +++ b/sample_text/Sed_eget/index.html @@ -0,0 +1,148 @@ + + + + + + + + + + + Sed eget - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Sed eget turpis a pede tempor malesuada. Vivamus quis mi at leo +pulvinar hendrerit. Cum sociis natoque penatibus et magnis dis +parturient montes, nascetur ridiculus mus. Pellentesque aliquet lacus +vitae pede. Nullam mollis dolor ac nisi. Phasellus sit amet urna. +Praesent pellentesque sapien sed lacus. Donec lacinia odio in odio. In +sit amet elit. Maecenas gravida interdum urna. Integer pretium, arcu +vitae imperdiet facilisis, elit tellus tempor nisi, vel feugiat ante +velit sit amet mauris. Vivamus arcu. Integer pharetra magna ac lacus. +Aliquam vitae sapien in nibh vehicula auctor. Suspendisse leo mauris, +pulvinar sed, tempor et, consequat ac, lacus. Proin velit. Nulla semper +lobortis mauris. Duis urna erat, ornare et, imperdiet eu, suscipit sit +amet, massa. Nulla nulla nisi, pellentesque at, egestas quis, fringilla +eu, diam.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/sandbox.fr/index.html b/sandbox.fr/index.html new file mode 100644 index 0000000..86a5f7f --- /dev/null +++ b/sandbox.fr/index.html @@ -0,0 +1,223 @@ + + + + + + + + + + + sandbox.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+ # Traduction de ikiwiki +# Copyright (C)2009 Debian French l10n team +# 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-26 21:07+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: french \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +msgid "" +"This is the SandBox, a page anyone can edit to learn how to use the wiki." +msgstr "Voici le bac à sable, une page que tout le monde peut éditer pour apprendre à se servir du wiki." + +#. type: Plain text +msgid "Here's a paragraph." +msgstr "Voici un paragraphe." + +#. type: Plain text +msgid "Here's another one with *emphasised* text." +msgstr "Un autre avec du texte en *italique*." + +#. type: Title # +#, no-wrap +msgid "Header" +msgstr "Titre" + +#. type: Title ## +#, no-wrap +msgid "Subheader" +msgstr "Sous-titre" + +#. type: Plain text +#, no-wrap +msgid "" +"> This is a blockquote.\n" +">\n" +"> This is the first level of quoting.\n" +">\n" +"> > This is nested blockquote.\n" +">\n" +"> Back to the first level.\n" +msgstr "" +"> Un bloc de citation.\n" +">\n" +"> Le premier niveau de citation.\n" +">\n" +"> > Une citation imbriquée.\n" +">\n" +"> Retour au premier niveau.\n" + +#. type: Plain text +msgid "Numbered list" +msgstr "Liste numérotée" + +#. type: Bullet: '1. ' +msgid "First item." +msgstr "Premier élément." + +#. type: Bullet: '1. ' +msgid "Another." +msgstr "Un autre." + +#. type: Bullet: '1. ' +msgid "And another.." +msgstr "Encore un autre..." + +#. type: Plain text +msgid "Bulleted list" +msgstr "Liste avec point" + +#. type: Bullet: '* ' +msgid "*item*" +msgstr "*élement*" + +#. type: Bullet: '* ' +msgid "item" +msgstr "élement" + +#. type: Plain text +msgid "WikiLink" +msgstr "WikiLink" + + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/sandbox/index.html b/sandbox/index.html new file mode 100644 index 0000000..82e1f0d --- /dev/null +++ b/sandbox/index.html @@ -0,0 +1,162 @@ + + + + + + + + + + + sandbox - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

This is the SandBox, a page anyone can edit to learn how to use the +wiki.

+
+

Here’s a paragraph.

+

Here’s another one with emphasised text.

+

Header

+

Subheader

+
+

This is a blockquote.

+

This is the first level of quoting.

+
+

This is nested blockquote.

+
+

Back to the first level.

+
+

Numbered list

+
    +
  1. First item.
  2. +
  3. Another.
  4. +
  5. And another..
  6. +
+

Bulleted list

+
    +
  • item
  • +
  • item
  • +
+

WikiLink

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/services.mdwn b/services.mdwn deleted file mode 100644 index fc5eac3..0000000 --- a/services.mdwn +++ /dev/null @@ -1,74 +0,0 @@ -# Services -
- - - -The infrastructure under ayakael.net provides many services for myself, and many -other users, like family, roommates, neighbours. I try to approach my -infrastructure as a mutual aid project, and make certain services available to -family and comrades. When a service gets large enough, I try to implement a -production version under the coop platform project [ilot][]. - -[[!toc]] - -## Active Services - -The following services are deployed on the infrastructure, with more or less -public accessibility. - -Service | State | Access | Description ---------|:--------:|-----------|--------------------------------------------- -[[IPFire]] | [[!color bg=#00ff00 text="OK"]] | private | Network managed by [[!wikipedia IPFire]] -[[Torrent]] | [[!color bg=#00ff00 text="OK"]] | whitelist | Torrent box powered by [transmission][] -[[Media]] | [[!color bg=#00ff00 text="OK"]] | whitelist | Media streaming service powered by [[!wikipedia Jellyfin]] -[[Calibre]] | [[!color bg=#ff0000 text="Down"]] | whitelist | Book libary management service powered [calibre-web][] -[[Forge]] | [[!color bg=#00ff00 text="OK"]] | private | Website backend and code forge powered by [forgejo-aneksajo][] -[[Minecraft]]| [[!color bg=#00ff00 text="OK"]] | whitelist | Minecraft server powered by [papermc][] -[[Runner]] | [[!color bg=#00ff00 text="OK"]] | private | Forgejo and Gitlab runner for jobs (mostly compilations) - -## Inactive Services - -The following services are inactive (might come back) or deprecated (will never come back) - -Service | State | Access | Description ---------|:--------:|-----------|--------------------------------------------- -[[Plex]] | [[!color background=#ff0000 text="deprecated"]] | private | Enshittified, moved to jellyfin -[[Git]] | [[!color background=#ff0000 text="deprecated"]] | private | Gitolite server, moved to forgejo-aneksajo -[[Airsonic]] | [[!color background=#ff0000 text="deprecated"]] | private | Airsonic-ng server, moved to jellyfin -[[Authentik]]| [[!color background=#ff0000 text="inactive"]] | whitelist | Using ilot's authentik server, might move back -[[Wallabag]] | [[!color background=#ff0000 text="inactive"]] | private | Fell into disuse -[[FressRSS]] | [[!color background=#ff0000 text="inactive"]] | private | Fell into disuse - -# Architecture - -The services run on a Proxmox cluster containing, at any one time, at least -3 servers. - -The main server is an ampere-based server named [[orka]] (workhorse in old -norse). It provides the horse power for the majority of the services, and -occasionally hosts ilot services. - -A router named [[artalus]] (don't quite remember why I called it so) handles -the firewall and other services, notably [[DDNS]], the [[reverse proxy]], and -the internal DNS service. - -Finally, a xeon-based server named [[tulkr]] (translator in old norse) hosts -services that must run on x86 architecture, notably runner compilation jobs. - -For more information on my hardware, checkout [[hardware]] - -# Other documentation - -Here lies the inventory of documentation that hasn't been explcitely mentionned above: - -[[!orphans pages="page(services/*)"]] - -# All the documentation - -[[!map pages="page(services/*)"]] - - [transmission]: http://transmissionbt.com/ - [forgejo-aneksajo]: https://codeberg.org/forgejo-aneksajo/forgejo-aneksajo - [calibre-web]: https://github.com/janeczku/calibre-web - [papermc]: https://papermc.io/ - [ilot]: https://ilot.io diff --git a/services/index.html b/services/index.html new file mode 100644 index 0000000..19c83b7 --- /dev/null +++ b/services/index.html @@ -0,0 +1,326 @@ + + + + + + + + + + + services - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Services

+
+ +

The infrastructure under ayakael.net provides many services for +myself, and many other users, like family, roommates, neighbours. I try +to approach my infrastructure as a mutual aid project, and make certain +services available to family and comrades. When a service gets large +enough, I try to implement a production version under the coop platform +project ilot.

+ +

Active Services

+

The following services are deployed on the infrastructure, with more +or less public accessibility.

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ServiceStateAccessDescription
IPFireOKprivateNetwork managed by +IPFire
TorrentOKwhitelistTorrent box powered by transmission
MediaOKwhitelistMedia streaming service powered by +Jellyfin
CalibreDownwhitelistBook libary management service powered calibre-web
ForgeOKprivateWebsite backend and code forge powered by forgejo-aneksajo
MinecraftOKwhitelistMinecraft server powered by papermc
RunnerOKprivateForgejo and Gitlab runner for jobs (mostly compilations)
+

Inactive Services

+

The following services are inactive (might come back) or deprecated +(will never come back)

+ ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ServiceStateAccessDescription
PlexdeprecatedprivateEnshittified, moved to jellyfin
GitdeprecatedprivateGitolite server, moved to forgejo-aneksajo
AirsonicdeprecatedprivateAirsonic-ng server, moved to jellyfin
AuthentikinactivewhitelistUsing ilot’s authentik server, might move back
WallabaginactiveprivateFell into disuse
FressRSSinactiveprivateFell into disuse
+

Architecture

+

The services run on a Proxmox cluster containing, at any one time, at +least 3 servers.

+

The main server is an ampere-based server named orka (workhorse in old norse). It provides the +horse power for the majority of the services, and occasionally hosts +ilot services.

+

A router named artalus (don’t quite +remember why I called it so) handles the firewall and other services, +notably DDNS, the reverse proxy, and the internal DNS +service.

+

Finally, a xeon-based server named tulkr (translator in old norse) hosts services +that must run on x86 architecture, notably runner compilation jobs.

+

For more information on my hardware, checkout hardware

+

Other documentation

+

Here lies the inventory of documentation that hasn’t been explcitely +mentionned above:

+

All pages have other pages linking to them.

+

All the documentation

+
+ +
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/services/minecraft.mdwn b/services/minecraft.mdwn deleted file mode 100644 index 26c99da..0000000 --- a/services/minecraft.mdwn +++ /dev/null @@ -1,36 +0,0 @@ -[[!meta title="Minecraft"]] - -
-

Minecraft

-
-
- -I run a Minecraft server for comrades. There is currently no whitelist, thus anyone can come in. - -* **Server**: minecraft.ayakael.net -* **Current version**: 1.21.3 -* **Admins**: miyakael, raggedyosprey -* **Plugins**: essentialx-{spawn,protect,chat,core}, worldguard, worldedit, vault, luckperms - -## Communication - -We use a private mumble server for communication: - -* **Server**: mumble.ayakael.net:64738 - -You can use two different clients to access this server. The desktop client has more features, but the web client can be used with your web browser. - -* **Mumble desktop client**: [mumble.info/downloads](https://www.mumble.info/downloads) -* **Mumble web client**: [mumble.ayakael.net](https://mumble.ayakael.net?address=mumble.ayakael.net/ws) - -## To-do list - -* Hookup mumble with minecraft - -## News - -* **2024-12-22**: Initial startup of server -* **2024-12-24**: Created webpage for server -* **2024-12-26**: Added essentialx-{spawn,protect,chat,core}, worldguard, worldedit, vault, luckperms plugins -* **2024-12-28**: Add mumble server with web interface - diff --git a/services/minecraft/index.html b/services/minecraft/index.html new file mode 100644 index 0000000..8f675a7 --- /dev/null +++ b/services/minecraft/index.html @@ -0,0 +1,178 @@ + + + + + + + + + + + Minecraft - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+

+Minecraft +

+
+
+

I run a Minecraft server for comrades. There is currently no +whitelist, thus anyone can come in.

+
    +
  • Server: minecraft.ayakael.net
  • +
  • Current version: 1.21.3
  • +
  • Admins: miyakael, raggedyosprey
  • +
  • Plugins: essentialx-{spawn,protect,chat,core}, +worldguard, worldedit, vault, luckperms
  • +
+

Communication

+

We use a private mumble server for communication:

+
    +
  • Server: mumble.ayakael.net:64738
  • +
+

You can use two different clients to access this server. The desktop +client has more features, but the web client can be used with your web +browser.

+ +

To-do list

+
    +
  • Hookup mumble with minecraft
  • +
+

News

+
    +
  • 2024-12-22: Initial startup of server
  • +
  • 2024-12-24: Created webpage for server
  • +
  • 2024-12-26: Added +essentialx-{spawn,protect,chat,core}, worldguard, worldedit, vault, +luckperms plugins
  • +
  • 2024-12-28: Add mumble server with web +interface
  • +
+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/shortcuts/index.en.html b/shortcuts/index.en.html new file mode 100644 index 0000000..d50c028 --- /dev/null +++ b/shortcuts/index.en.html @@ -0,0 +1,281 @@ + + + + + + + + + + + shortcuts - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

This wiki has shortcuts enabled.

+

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 google points to +https://encrypted.google.com/search?q=%s
  • +
  • shortcut archive points to http://web.archive.org/*/%S
  • +
  • shortcut gmap points to +https://maps.google.com/maps?q=%s
  • +
  • shortcut gmsg points to +https://groups.google.com/groups?selm=%s
  • +
  • shortcut wikipedia points to +https://en.wikipedia.org/wiki/%W
  • +
  • shortcut wikitravel points to +https://wikitravel.org/en/%s
  • +
  • shortcut wiktionary points to +https://en.wiktionary.org/wiki/%s
  • +
  • shortcut debbug points to http://bugs.debian.org/%S
  • +
  • shortcut deblist points to +https://lists.debian.org/debian-%s
  • +
  • shortcut debpkg points to http://packages.debian.org/%s
  • +
  • shortcut debpkgsid points to +http://packages.debian.org/sid/%s
  • +
  • shortcut debpts points to +http://packages.qa.debian.org/%s
  • +
  • shortcut debmsg points to +https://lists.debian.org/msgid-search/%s
  • +
  • shortcut debrt points to +https://rt.debian.org/Ticket/Display.html?id=%s
  • +
  • shortcut debss points to +http://snapshot.debian.org/package/%s/ +
  • +
  • shortcut debwiki points to https://wiki.debian.org/%S
  • +
  • shortcut debcve points to +https://security-tracker.debian.org/tracker/%S +
      +
    • also supports Debian bug numbers, packages and whatever the security tracker +supports.
    • +
  • +
  • shortcut fdobug points to +https://bugs.freedesktop.org/show_bug.cgi?id=%s
  • +
  • shortcut fdolist points to +http://lists.freedesktop.org/mailman/listinfo/%s
  • +
  • shortcut gnomebug points to +https://bugzilla.gnome.org/show_bug.cgi?id=%s
  • +
  • shortcut linuxbug points to +https://bugzilla.kernel.org/show_bug.cgi?id=%s
  • +
  • shortcut mozbug points to +https://bugzilla.mozilla.org/show_bug.cgi?id=%s
  • +
  • shortcut gnulist points to +https://lists.gnu.org/mailman/listinfo/%s
  • +
  • shortcut marcmsg points to http://marc.info/?i=%s
  • +
  • shortcut marclist points to http://marc.info/?l=%s
  • +
  • shortcut gmane points to http://dir.gmane.org/gmane.%s
  • +
  • shortcut gmanemsg points to http://mid.gmane.org/%s
  • +
  • shortcut cpan points to +http://search.cpan.org/search?mode=dist&query=%s
  • +
  • shortcut ctan points to +http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s
  • +
  • shortcut hoogle points to +http://haskell.org/hoogle/?q=%s
  • +
  • shortcut iki points to http://ikiwiki.info/%S/
  • +
  • shortcut ljuser points to http://%s.livejournal.com/
  • +
  • shortcut rfc points to +https://www.ietf.org/rfc/rfc%s.txt
  • +
  • shortcut c2 points to http://wiki.c2.com/?%s
  • +
  • shortcut meatballwiki points to +http://www.usemod.com/cgi-bin/mb.pl?%s
  • +
  • shortcut emacswiki points to +http://www.emacswiki.org/cgi-bin/wiki/%s
  • +
  • shortcut haskellwiki points to +http://haskell.org/haskellwiki/%s
  • +
  • shortcut dict points to +http://www.dict.org/bin/Dict?Form=Dict1&Strategy=&Database=&Query=%s
  • +
  • shortcut imdb points to http://imdb.com/find?q=%s
  • +
  • shortcut gpg points to +http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s
  • +
  • shortcut perldoc points to +http://perldoc.perl.org/search.html?q=%s
  • +
  • shortcut whois points to +http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain
  • +
  • shortcut cve points to +https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s
  • +
  • shortcut flickr points to +https://secure.flickr.com/photos/%s
  • +
  • shortcut man points to http://manpages.debian.org/%s
  • +
  • shortcut ohloh points to https://www.ohloh.net/p/%s
  • +
  • shortcut cpanrt points to +https://rt.cpan.org/Ticket/Display.html?id=%s
  • +
  • shortcut novellbug points to +https://bugzilla.novell.com/show_bug.cgi?id=%s
  • +
  • shortcut ubupkg points to http://packages.ubuntu.com/%s
  • +
  • shortcut mozillazinekb points to +http://kb.mozillazine.org/%s
  • +
  • shortcut freebsdwiki points to +http://wiki.freebsd.org/%s
  • +
  • shortcut hackage points to +http://hackage.haskell.org/package/%s
  • +
  • shortcut pkgsrc points to http://pkgsrc.se/%S
  • +
  • shortcut doi points to http://dx.doi.org/%s
  • +
  • shortcut arxiv points to http://arxiv.org/abs/%s
  • +
  • shortcut adventuretime points to +https://breezewiki.com/adventuretime/wiki/%W
  • +
+

To add a new shortcut, use the shortcut +directive. In the url, “%s” is +replaced with the text passed to the named shortcut, after +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 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, so that future versions of ikiwiki will include your shortcut +in the standard underlay.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Powered by ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/shortcuts/index.fr.html b/shortcuts/index.fr.html new file mode 100644 index 0000000..5054162 --- /dev/null +++ b/shortcuts/index.fr.html @@ -0,0 +1,281 @@ + + + + + + + + + + + shortcuts.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+

Les raccourcis sont activés dans ce wiki.

+

Voici quelques exemples de raccourcis :

+
[[!google  foo]]
+[[!wikipedia  War_of_1812]]
+[[!debbug  12345]]
+Check the [[!google  ikiwiki desc="google search for %s"]].
+

Cette page définit les raccourcis connus par ce wiki.

+
    +
  • shortcut google points to +https://encrypted.google.com/search?q=%s
  • +
  • shortcut archive points to http://web.archive.org/*/%S
  • +
  • shortcut gmap points to +https://maps.google.com/maps?q=%s
  • +
  • shortcut gmsg points to +https://groups.google.com/groups?selm=%s
  • +
  • shortcut wikipedia points to +https://en.wikipedia.org/wiki/%W
  • +
  • shortcut wikitravel points to +https://wikitravel.org/en/%s
  • +
  • shortcut wiktionary points to +https://en.wiktionary.org/wiki/%s
  • +
  • shortcut debbug points to http://bugs.debian.org/%S
  • +
  • shortcut deblist points to +https://lists.debian.org/debian-%s
  • +
  • shortcut debpkg points to http://packages.debian.org/%s
  • +
  • shortcut debpkgsid points to +http://packages.debian.org/sid/%s
  • +
  • shortcut debpts points to +http://packages.qa.debian.org/%s
  • +
  • shortcut debmsg points to +https://lists.debian.org/msgid-search/%s
  • +
  • shortcut debrt points to +https://rt.debian.org/Ticket/Display.html?id=%s
  • +
  • shortcut debss points to +http://snapshot.debian.org/package/%s/ +
  • +
  • shortcut debwiki points to https://wiki.debian.org/%S
  • +
  • shortcut debcve points to +https://security-tracker.debian.org/tracker/%S +
      +
    • also supports Debian bug numbers, packages and whatever the security tracker +supports.
    • +
  • +
  • shortcut fdobug points to +https://bugs.freedesktop.org/show_bug.cgi?id=%s
  • +
  • shortcut fdolist points to +http://lists.freedesktop.org/mailman/listinfo/%s
  • +
  • shortcut gnomebug points to +https://bugzilla.gnome.org/show_bug.cgi?id=%s
  • +
  • shortcut linuxbug points to +https://bugzilla.kernel.org/show_bug.cgi?id=%s
  • +
  • shortcut mozbug points to +https://bugzilla.mozilla.org/show_bug.cgi?id=%s
  • +
  • shortcut gnulist points to +https://lists.gnu.org/mailman/listinfo/%s
  • +
  • shortcut marcmsg points to http://marc.info/?i=%s
  • +
  • shortcut marclist points to http://marc.info/?l=%s
  • +
  • shortcut gmane points to http://dir.gmane.org/gmane.%s
  • +
  • shortcut gmanemsg points to http://mid.gmane.org/%s
  • +
  • shortcut cpan points to +http://search.cpan.org/search?mode=dist&query=%s
  • +
  • shortcut ctan points to +http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s
  • +
  • shortcut hoogle points to +http://haskell.org/hoogle/?q=%s
  • +
  • shortcut iki points to http://ikiwiki.info/%S/
  • +
  • shortcut ljuser points to http://%s.livejournal.com/
  • +
  • shortcut rfc points to +https://www.ietf.org/rfc/rfc%s.txt
  • +
  • shortcut c2 points to http://wiki.c2.com/?%s
  • +
  • shortcut meatballwiki points to +http://www.usemod.com/cgi-bin/mb.pl?%s
  • +
  • shortcut emacswiki points to +http://www.emacswiki.org/cgi-bin/wiki/%s
  • +
  • shortcut haskellwiki points to +http://haskell.org/haskellwiki/%s
  • +
  • shortcut dict points to +http://www.dict.org/bin/Dict?Form=Dict1&Strategy=&Database=&Query=%s
  • +
  • shortcut imdb points to http://imdb.com/find?q=%s
  • +
  • shortcut gpg points to +http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s
  • +
  • shortcut perldoc points to +http://perldoc.perl.org/search.html?q=%s
  • +
  • shortcut whois points to +http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain
  • +
  • shortcut cve points to +https://cve.mitre.org/cgi-bin/cvename.cgi?name=%s
  • +
  • shortcut flickr points to +https://secure.flickr.com/photos/%s
  • +
  • shortcut man points to http://manpages.debian.org/%s
  • +
  • shortcut ohloh points to https://www.ohloh.net/p/%s
  • +
  • shortcut cpanrt points to +https://rt.cpan.org/Ticket/Display.html?id=%s
  • +
  • shortcut novellbug points to +https://bugzilla.novell.com/show_bug.cgi?id=%s
  • +
  • shortcut ubupkg points to http://packages.ubuntu.com/%s
  • +
  • shortcut mozillazinekb points to +http://kb.mozillazine.org/%s
  • +
  • shortcut freebsdwiki points to +http://wiki.freebsd.org/%s
  • +
  • shortcut hackage points to +http://hackage.haskell.org/package/%s
  • +
  • shortcut pkgsrc points to http://pkgsrc.se/%S
  • +
  • shortcut doi points to http://dx.doi.org/%s
  • +
  • shortcut arxiv points to http://arxiv.org/abs/%s
  • +
  • shortcut adventuretime points to +https://breezewiki.com/adventuretime/wiki/%W
  • +
+

To add a new shortcut, use the shortcut +directive. In the url, “%s” is +replaced with the text passed to the named shortcut, after +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.

+

N’oubliez pas que le paramètre name donné au raccourci +devient une nouvelle 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.

+

Si vous trouvez un raccourci qui vous paraît utile, proposez-le sur +la page des raccourcis du wiki +d’ikiwiki. Ainsi les futures versions d’ikiwiki incluront +automatiquement ce raccourci.

+ + + + + + + + + + + + +
+ Created . + + + Edited . + + +
+ +
+
+ +
+
+
+
+ Copyleft © 2024 ayakael CC-BY-SA +
+
+ Propulsé par ikiwiki. +
+
+ +
+
+ + + + + + + + + + diff --git a/sidebar.fr.po b/sidebar.fr.po deleted file mode 100644 index b146918..0000000 --- a/sidebar.fr.po +++ /dev/null @@ -1,65 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: ayakael.net\n" -"POT-Creation-Date: 2026-01-05 19:53-0500\n" -"PO-Revision-Date: 2026-01-05 19:53-0500\n" -"Last-Translator: \n" -"Language-Team: ayakael \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.8\n" - -#. type: Content of:
  • -msgid "[[Home|index]]" -msgstr "[[Accueil|index]]" - -#. type: Content of:
    • -msgid "[[Blog]]" -msgstr "" - -#. type: Content of:
      • -msgid "[[Guides]]" -msgstr "" - -#. type: Content of:
        • -msgid "[[Services]]" -msgstr "" - -#. type: Content of:
          • -msgid "[[Forge|https://ayakael.net/forge/]]" -msgstr "[[Forge|https://ayakael.net/forge/]]" - -#. type: Content of:
            • -msgid "[[Contact]]" -msgstr "[[Contact]]" - -#, fuzzy, no-wrap -#~| msgid "" -#~| "\n" -#~| "
                \n" -#~| "
              • [[Home|index]]
              • \n" -#~| "
              • [[Forge|https://ayakael.net/forge/]]
              • \n" -#~| "
              • [[Contact]]
              • \n" -#~| "
              \n" -#~ msgid "" -#~ "\n" -#~ "
                \n" -#~ "
              • [[Home|index]]
              • \n" -#~ "
              • [[Forge|https://ayakael.net/forge/]]
              • \n" -#~ "
              • [[Contact]]
              • \n" -#~ "
              \n" -#~ msgstr "" -#~ "\n" -#~ "
                \n" -#~ "
              • [[Accueil|index]]
              • \n" -#~ "
              • [[Forge|https://ayakael.net/forge/]]
              • \n" -#~ "
              • [[Contact]]
              • \n" -#~ "
              \n" diff --git a/sidebar.html b/sidebar.html deleted file mode 100644 index 4d5223c..0000000 --- a/sidebar.html +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/sidebar.pot b/sidebar.pot deleted file mode 100644 index 93f072e..0000000 --- a/sidebar.pot +++ /dev/null @@ -1,41 +0,0 @@ -# SOME DESCRIPTIVE TITLE -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2026-01-05 19:53-0500\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. type: Content of:
              • -msgid "[[Home|index]]" -msgstr "" - -#. type: Content of:
                • -msgid "[[Blog]]" -msgstr "" - -#. type: Content of:
                  • -msgid "[[Guides]]" -msgstr "" - -#. type: Content of:
                    • -msgid "[[Services]]" -msgstr "" - -#. type: Content of:
                      • -msgid "[[Forge|https://ayakael.net/forge/]]" -msgstr "" - -#. type: Content of:
                        • -msgid "[[Contact]]" -msgstr "" diff --git a/sidebar/index.en.html b/sidebar/index.en.html new file mode 100644 index 0000000..23978ec --- /dev/null +++ b/sidebar/index.en.html @@ -0,0 +1,158 @@ + + + + + + + + + + + sidebar - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          + + + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/sidebar/index.fr.html b/sidebar/index.fr.html new file mode 100644 index 0000000..c5a3931 --- /dev/null +++ b/sidebar/index.fr.html @@ -0,0 +1,160 @@ + + + + + + + + + + + sidebar.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          + + + + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Propulsé par ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/smileys.fr/index.html b/smileys.fr/index.html new file mode 100644 index 0000000..3eddfd8 --- /dev/null +++ b/smileys.fr/index.html @@ -0,0 +1,344 @@ + + + + + + + + + + + smileys.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          + # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# 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-09-13 07:48+0200\n" +"Last-Translator: Philippe Batailler \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +msgid "" +"This page is used to control what smileys are supported by the wiki. Just " +"write the text of a smiley to display it." +msgstr "" +"Cette page enregistre les smileys reconnus dans ce wiki. Il suffit d'écrire " +"le texte du smiley pour l'afficher." + +#. type: Bullet: '* ' +msgid "\\\\:)\tsmile.png" +msgstr "\\\\:)\tsmile.png" + +#. type: Bullet: '* ' +msgid "\\\\:-)\tsmile.png" +msgstr "\\\\:-)\tsmile.png" + +#. type: Bullet: '* ' +msgid "\\\\:D\tbiggrin.png" +msgstr "\\\\:D\tbiggrin.png" + +#. type: Bullet: '* ' +msgid "\\\\:-D\tbiggrin.png" +msgstr "\\\\:-D\tbiggrin.png" + +#. type: Bullet: '* ' +msgid "\\\\B)\tsmile2.png" +msgstr "\\\\B)\tsmile2.png" + +#. type: Bullet: '* ' +msgid "\\\\B-)\tsmile2.png" +msgstr "\\\\B-)\tsmile2.png" + +#. type: Bullet: '* ' +msgid "\\\\:))\tsmile3.png" +msgstr "\\\\:))\tsmile3.png" + +#. type: Bullet: '* ' +msgid "\\\\:-))\tsmile3.png" +msgstr "\\\\:-))\tsmile3.png" + +#. type: Bullet: '* ' +msgid "\\\\;)\tsmile4.png" +msgstr "\\\\;)\tsmile4.png" + +#. type: Bullet: '* ' +msgid "\\\\;-)\tsmile4.png" +msgstr "\\\\;-)\tsmile4.png" + +#. type: Bullet: '* ' +msgid "\\\\:\\\tohwell.png" +msgstr "\\\\:\\\tohwell.png" + +#. type: Bullet: '* ' +msgid "\\\\:-\\\tohwell.png" +msgstr "\\\\:-\\\tohwell.png" + +#. type: Bullet: '* ' +msgid "\\\\:/\tohwell.png" +msgstr "\\\\:/\tohwell.png" + +#. type: Bullet: '* ' +msgid "\\\\:-/\tohwell.png" +msgstr "\\\\:-/\tohwell.png" + +#. type: Bullet: '* ' +msgid "\\\\:|\tneutral.png" +msgstr "\\\\:|\tneutral.png" + +#. type: Bullet: '* ' +msgid "\\\\:-|\tneutral.png" +msgstr "\\\\:-|\tneutral.png" + +#. type: Bullet: '* ' +msgid "\\\\>:>\tdevil.png" +msgstr "\\\\>:>\tdevil.png" + +#. type: Bullet: '* ' +msgid "\\\\X-(\tangry.png" +msgstr "\\\\X-(\tangry.png" + +#. type: Bullet: '* ' +msgid "\\\\<:(\tfrown.png" +msgstr "\\\\<:(\tfrown.png" + +#. type: Bullet: '* ' +msgid "\\\\:(\tsad.png" +msgstr "\\\\:(\tsad.png" + +#. type: Bullet: '* ' +msgid "\\\\:-(\tsad.png" +msgstr "\\\\:-(\tsad.png" + +#. type: Bullet: '* ' +msgid "\\\\:-?\ttongue.png" +msgstr "\\\\:-?\ttongue.png" + +#. type: Bullet: '* ' +msgid "\\\\:-P\ttongue.png" +msgstr "\\\\:-P\ttongue.png" + +#. type: Bullet: '* ' +msgid "\\\\:o\tredface.png" +msgstr "\\\\:o\tredface.png" + +#. type: Bullet: '* ' +msgid "\\\\|)\ttired.png" +msgstr "\\\\|)\ttired.png" + +#. type: Bullet: '* ' +msgid "\\\\|-)\ttired.png" +msgstr "\\\\|-)\ttired.png" + +#. type: Bullet: '* ' +msgid "\\\\{OK}\tthumbs-up.png" +msgstr "\\\\{OK}\tthumbs-up.png" + +#. type: Bullet: '* ' +msgid "\\\\{X}\ticon-error.png" +msgstr "\\\\{X}\ticon-error.png" + +#. type: Bullet: '* ' +msgid "\\\\{i}\ticon-info.png" +msgstr "\\\\{i}\ticon-info.png" + +#. type: Bullet: '* ' +msgid "\\\\(./)\tcheckmark.png" +msgstr "\\\\(./)\tcheckmark.png" + +#. type: Bullet: '* ' +msgid "\\\\(!)\tidea.png" +msgstr "\\\\(!)\tidea.png" + +#. type: Bullet: '* ' +msgid "\\\\[!]\tattention.png" +msgstr "\\\\[!]\tattention.png" + +#. type: Bullet: '* ' +msgid "\\\\/!\\\talert.png" +msgstr "\\\\/!\\\talert.png" + +#. type: Bullet: '* ' +msgid "\\\\(?)\tquestion.png" +msgstr "\\\\(?)\tquestion.png" + +#. type: Bullet: '* ' +msgid "\\\\{x}\tstar on.png" +msgstr "\\\\{x}\tstar on.png" + +#. type: Bullet: '* ' +msgid "\\\\{*}\tstar on.png" +msgstr "\\\\{*}\tstar on.png" + +#. type: Bullet: '* ' +msgid "\\\\{o}\tstar off.png" +msgstr "\\\\{o}\tstar off.png" + +#. type: Bullet: '* ' +msgid "\\\\{1}\tprio1.png" +msgstr "\\\\{1}\tprio1.png" + +#. type: Bullet: '* ' +msgid "\\\\{2}\tprio2.png" +msgstr "\\\\{2}\tprio2.png" + +#. type: Bullet: '* ' +msgid "\\\\{3}\tprio3.png" +msgstr "\\\\{3}\tprio3.png" + +#. type: Plain text +msgid "For example: {x} B) {x}" +msgstr "Par exemple : {x} B) {x}" + +#. type: Plain text +msgid "" +"To change the supported smileys, just edit the lists on this page. Note " +"that the format is important; each list item should start with the text that " +"is turned into the smiley, escaped so that users can see what produces it, " +"followed by a WikiLink to the image to display." +msgstr "" +"Pour ajouter un smiley, il suffit de modifier cette page. Il est très " +"important de respecter le format. Chaque élément de la liste doit commencer " +"par le texte qui sera transformé en smiley, texte protégé pour que les " +"utilisateurs voient bien ce qui produit le smiley, suivi d'un [[ikiwiki/" +"WikiLink]] vers l'image à afficher." + +#. type: Plain text +msgid "" +"/!\\ Bear in mind that the link to the image needs to be written in a way " +"that will work if it's copied to other pages on the wiki. So be sure to " +"include the smileys directory in the path to the file." +msgstr "" +"/!\\ Le lien vers l'image doit être écrit de manière à continuer de " +"fonctionner s'il est copié sur d'autres pages du wiki. Aussi, il faut " +"inclure le répertoire smileys dans l'adresse du fichier." + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/smileys/admon-caution.png b/smileys/admon-caution.png new file mode 100644 index 0000000..750ae97 Binary files /dev/null and b/smileys/admon-caution.png differ diff --git a/smileys/admon-important.png b/smileys/admon-important.png new file mode 100644 index 0000000..c5726d5 Binary files /dev/null and b/smileys/admon-important.png differ diff --git a/smileys/admon-note.png b/smileys/admon-note.png new file mode 100644 index 0000000..d01b8c6 Binary files /dev/null and b/smileys/admon-note.png differ diff --git a/smileys/admon-tip.png b/smileys/admon-tip.png new file mode 100644 index 0000000..2ac5747 Binary files /dev/null and b/smileys/admon-tip.png differ diff --git a/smileys/admon-warning.png b/smileys/admon-warning.png new file mode 100644 index 0000000..f5c7a6f Binary files /dev/null and b/smileys/admon-warning.png differ diff --git a/smileys/alert.png b/smileys/alert.png new file mode 100644 index 0000000..5bb87e3 Binary files /dev/null and b/smileys/alert.png differ diff --git a/smileys/angry.png b/smileys/angry.png new file mode 100644 index 0000000..05bc69f Binary files /dev/null and b/smileys/angry.png differ diff --git a/smileys/attention.png b/smileys/attention.png new file mode 100644 index 0000000..7e06456 Binary files /dev/null and b/smileys/attention.png differ diff --git a/smileys/biggrin.png b/smileys/biggrin.png new file mode 100644 index 0000000..f71b42c Binary files /dev/null and b/smileys/biggrin.png differ diff --git a/smileys/checkmark.png b/smileys/checkmark.png new file mode 100644 index 0000000..8869caa Binary files /dev/null and b/smileys/checkmark.png differ diff --git a/smileys/devil.png b/smileys/devil.png new file mode 100644 index 0000000..8684c39 Binary files /dev/null and b/smileys/devil.png differ diff --git a/smileys/frown.png b/smileys/frown.png new file mode 100644 index 0000000..2999b55 Binary files /dev/null and b/smileys/frown.png differ diff --git a/smileys/icon-error.png b/smileys/icon-error.png new file mode 100644 index 0000000..c39e65c Binary files /dev/null and b/smileys/icon-error.png differ diff --git a/smileys/icon-info.png b/smileys/icon-info.png new file mode 100644 index 0000000..c1b14f3 Binary files /dev/null and b/smileys/icon-info.png differ diff --git a/smileys/idea.png b/smileys/idea.png new file mode 100644 index 0000000..37bc02d Binary files /dev/null and b/smileys/idea.png differ diff --git a/smileys/index.html b/smileys/index.html new file mode 100644 index 0000000..8ed6e55 --- /dev/null +++ b/smileys/index.html @@ -0,0 +1,189 @@ + + + + + + + + + + + smileys - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          +

                          This page is used to control what smileys are supported by the wiki. +Just write the text of a smiley to display it.

                          +
                            +
                          • :) smile.png
                          • +
                          • :-) smile.png
                          • +
                          • :D biggrin.png
                          • +
                          • :-D biggrin.png
                          • +
                          • B) smile2.png
                          • +
                          • B-) smile2.png
                          • +
                          • :)) smile3.png
                          • +
                          • :-)) smile3.png
                          • +
                          • ;) smile4.png
                          • +
                          • ;-) smile4.png
                          • +
                          • \:  ohwell.png
                          • +
                          • \:- ohwell.png
                          • +
                          • :/ ohwell.png
                          • +
                          • :-/ ohwell.png
                          • +
                          • :| neutral.png
                          • +
                          • :-| neutral.png
                          • +
                          • >:> devil.png
                          • +
                          • X-( angry.png
                          • +
                          • <:( frown.png
                          • +
                          • :( sad.png
                          • +
                          • :-( sad.png
                          • +
                          • :-? tongue.png
                          • +
                          • :-P tongue.png
                          • +
                          • :o redface.png
                          • +
                          • |) tired.png
                          • +
                          • |-) tired.png
                          • +
                          • {OK} thumbs-up.png
                          • +
                          • {X} icon-error.png
                          • +
                          • {i} icon-info.png
                          • +
                          • (./) checkmark.png
                          • +
                          • (!) idea.png
                          • +
                          • [!] attention.png
                          • +
                          • \/! alert.png
                          • +
                          • (?) question.png
                          • +
                          • {x} star on.png
                          • +
                          • {*} star on.png
                          • +
                          • {o} star off.png
                          • +
                          • {1} prio1.png
                          • +
                          • {2} prio2.png
                          • +
                          • {3} prio3.png
                          • +
                          +

                          For example: {x} B) {x}

                          +
                          +

                          To change the supported smileys, just edit the lists on this page. +Note that the format is important; each list item should start with the +text that is turned into the smiley, escaped so that users can see what +produces it, followed by a WikiLink +to the image to display.

                          +

                          /! Bear in mind that the link to the image needs to be written in a +way that will work if it’s copied to other pages on the wiki. So be sure +to include the smileys directory in the path to the file.

                          + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/smileys/neutral.png b/smileys/neutral.png new file mode 100644 index 0000000..ddeb592 Binary files /dev/null and b/smileys/neutral.png differ diff --git a/smileys/ohwell.png b/smileys/ohwell.png new file mode 100644 index 0000000..a83adfb Binary files /dev/null and b/smileys/ohwell.png differ diff --git a/smileys/prio1.png b/smileys/prio1.png new file mode 100644 index 0000000..774d34d Binary files /dev/null and b/smileys/prio1.png differ diff --git a/smileys/prio2.png b/smileys/prio2.png new file mode 100644 index 0000000..4528653 Binary files /dev/null and b/smileys/prio2.png differ diff --git a/smileys/prio3.png b/smileys/prio3.png new file mode 100644 index 0000000..84332ce Binary files /dev/null and b/smileys/prio3.png differ diff --git a/smileys/question.png b/smileys/question.png new file mode 100644 index 0000000..df22152 Binary files /dev/null and b/smileys/question.png differ diff --git a/smileys/redface.png b/smileys/redface.png new file mode 100644 index 0000000..9a87392 Binary files /dev/null and b/smileys/redface.png differ diff --git a/smileys/sad.png b/smileys/sad.png new file mode 100644 index 0000000..86a059d Binary files /dev/null and b/smileys/sad.png differ diff --git a/smileys/smile.png b/smileys/smile.png new file mode 100644 index 0000000..b51b3ff Binary files /dev/null and b/smileys/smile.png differ diff --git a/smileys/smile2.png b/smileys/smile2.png new file mode 100644 index 0000000..43ea05f Binary files /dev/null and b/smileys/smile2.png differ diff --git a/smileys/smile3.png b/smileys/smile3.png new file mode 100644 index 0000000..c690ccc Binary files /dev/null and b/smileys/smile3.png differ diff --git a/smileys/smile4.png b/smileys/smile4.png new file mode 100644 index 0000000..f8f5b52 Binary files /dev/null and b/smileys/smile4.png differ diff --git a/smileys/star_off.png b/smileys/star_off.png new file mode 100644 index 0000000..c5535c3 Binary files /dev/null and b/smileys/star_off.png differ diff --git a/smileys/star_on.png b/smileys/star_on.png new file mode 100644 index 0000000..969908d Binary files /dev/null and b/smileys/star_on.png differ diff --git a/smileys/thumbs-up.png b/smileys/thumbs-up.png new file mode 100644 index 0000000..1faabac Binary files /dev/null and b/smileys/thumbs-up.png differ diff --git a/smileys/tired.png b/smileys/tired.png new file mode 100644 index 0000000..a3d5c56 Binary files /dev/null and b/smileys/tired.png differ diff --git a/smileys/tongue.png b/smileys/tongue.png new file mode 100644 index 0000000..6510540 Binary files /dev/null and b/smileys/tongue.png differ diff --git a/style.css b/style.css new file mode 100644 index 0000000..a2244d1 --- /dev/null +++ b/style.css @@ -0,0 +1,618 @@ +/* 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; + background-color: white; +} +.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; + } +} + +/* admonition start */ +#content div.caution, +#content div.important, +#content div.note, +#content div.tip, +#content div.warning { + border: 1px solid #aaa; + margin: 1em 3em 1em 3em; + background-repeat: no-repeat; + background-position: 8px 8px; /* small gap around icon */ + /* 32 is the expected size of the icons */ + min-height: 32px; + padding: 8px 1em 8px 48px; /* 48 = 32 + 8 + 8 px */ +} +#content div.tip { background-image: url("smileys/admon-tip.png"); } +#content div.note { background-image: url("smileys/admon-note.png"); } +#content div.important { background-image: url("smileys/admon-important.png"); } +#content div.caution { background-image: url("smileys/admon-caution.png"); } +#content div.warning { background-image: url("smileys/admon-warning.png"); } +/* admonition end */ diff --git a/tag/Cicero/index.mdwn b/tag/Cicero/index.mdwn deleted file mode 100644 index 1db90cd..0000000 --- a/tag/Cicero/index.mdwn +++ /dev/null @@ -1,4 +0,0 @@ -[[!meta title="pages tagged Cicero"]] - -[[!inline pages="tagged(Cicero)" actions="no" archive="yes" -feedshow=10]] diff --git a/tag/Cicero/index/index.html b/tag/Cicero/index/index.html new file mode 100644 index 0000000..d805994 --- /dev/null +++ b/tag/Cicero/index/index.html @@ -0,0 +1,149 @@ + + + + + + + + + + + pages tagged Cicero - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          +

                          +
                          + +Nulla facilisi
                          + + +Posted + + +
                          +

                          + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/tag/Latin/index.mdwn b/tag/Latin/index.mdwn deleted file mode 100644 index eb55a31..0000000 --- a/tag/Latin/index.mdwn +++ /dev/null @@ -1,4 +0,0 @@ -[[!meta title="pages tagged Latin"]] - -[[!inline pages="tagged(Latin)" actions="no" archive="yes" -feedshow=10]] diff --git a/tag/Latin/index/index.html b/tag/Latin/index/index.html new file mode 100644 index 0000000..0bb68e6 --- /dev/null +++ b/tag/Latin/index/index.html @@ -0,0 +1,149 @@ + + + + + + + + + + + pages tagged Latin - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          +

                          +
                          + +Nulla facilisi
                          + + +Posted + + +
                          +

                          + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/tag/typesetting/index.mdwn b/tag/typesetting/index.mdwn deleted file mode 100644 index b017ffd..0000000 --- a/tag/typesetting/index.mdwn +++ /dev/null @@ -1,4 +0,0 @@ -[[!meta title="pages tagged typesetting"]] - -[[!inline pages="tagged(typesetting)" actions="no" archive="yes" -feedshow=10]] diff --git a/tag/typesetting/index/index.html b/tag/typesetting/index/index.html new file mode 100644 index 0000000..85afa02 --- /dev/null +++ b/tag/typesetting/index/index.html @@ -0,0 +1,149 @@ + + + + + + + + + + + pages tagged typesetting - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          +

                          +
                          + +Nulla facilisi
                          + + +Posted + + +
                          +

                          + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/templates.fr/index.html b/templates.fr/index.html new file mode 100644 index 0000000..5687ad9 --- /dev/null +++ b/templates.fr/index.html @@ -0,0 +1,444 @@ + + + + + + + + + + + templates.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          + # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2010-07-22 17:30+0200\n" +"Last-Translator: Alexandre Dupas \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bits\n" + +#. type: Plain text +msgid "" +"Ikiwiki uses many templates for many purposes. By editing its templates, " +"you can fully customise this site." +msgstr "" +"Ikiwiki se sert de modèles dans beaucoup de cas. En modifiant ces " +"modèles, vous pouvez « personnaliser » ce wiki." + +#. type: Plain text +msgid "" +"Templates are located in `/usr/share/ikiwiki/templates` by default; the " +"`templatedir` setting can be used to make another directory be searched " +"first. Customised templates can also be placed inside the \"templates/\" " +"directory in your wiki's source." +msgstr "" +"Les modèles sont situés dans le répertoire `/usr/share/ikiwiki/templates`. " +"Le paramètre `templatedir` peut être utilisé pour commencer la recherche " +"dans un autre répertoire. Des modèles personnalisés peuvent être placés dans " +"dans le sous-répertoire `templates/` du répertoire source du wiki." + +#. type: Plain text +msgid "" +"Ikiwiki uses the HTML::Template module as its template engine. This supports " +"things like conditionals and loops in templates and is pretty easy to learn. " +"All you really need to know to modify templates is this:" +msgstr "" +"Ikiwiki utilise le module HTML::Template pour créer ses modèles. Ce module, " +"facile à étudier, permet l'utilisation de conditions et de boucles. Voici ce " +"que vous avez besoin de savoir :" + +#. type: Bullet: '* ' +#| msgid "" +#| "To insert the raw value of a variable, with wiki markup not yet converted " +#| "to html, use ``." +msgid "To insert the value of a template variable, use ``." +msgstr "" +"Pour insérer la valeur d'une variable, sans que la syntaxe wiki soit " +"convertie en HTML, utilisez ``." + +#. type: Bullet: '* ' +#| msgid "" +#| "To make a block of text conditional on a variable being set use `text`." +msgid "" +"To make a block of text conditional on a variable being set use `text`." +msgstr "" +"Pour écrire un bloc de texte si une variable est définie, utilisez `texte`." + +#. type: Bullet: '* ' +#| msgid "" +#| "To use one block of text if a variable is set and a second if it's not, " +#| "use `textother text`" +msgid "" +"To use one block of text if a variable is set and a second if it's not, use " +"`textother text`" +msgstr "" +"Pour utiliser un bloc de texte si une variable est définie et un autre dans " +"le cas contraire, utilisez `texteautre texte`" + +#. type: Plain text +#, no-wrap +#| msgid "[[!if Error: syntax error in pagespec "\"enabled(edittemplate)\""]] " +"can be used to make new pages default to containing text from a template " +"page, which can be filled out as the page is edited." +msgstr "" +"La directive \"edittemplate\" " +"permet que le contenu par défaut des nouvelles pages soit le texte d'une " +"page modèle, qui peut être remplie en même temps que la page est modifiée." + +#. type: Plain text +#, no-wrap +#| msgid "[[!if Error: syntax error in pagespec "\"enabled(pagetemplate)\""]]\n" +"* `rsspage.tmpl` - Used for generating rss feeds for blogs.\n" +"* `rssitem.tmpl` - Used for generating individual items on rss feeds.\n" +"* `atompage.tmpl` - Used for generating atom feeds for blogs.\n" +"* `atomitem.tmpl` - Used for generating individual items on atom feeds.\n" +"* `inlinepage.tmpl` - Used for displaying a post in a blog.\n" +"* `archivepage.tmpl` - Used for listing a page in a blog archive page.\n" +"* `titlepage.tmpl` - Used for listing a page by title in a blog archive page.\n" +"* `microblog.tmpl` - Used for showing a microblogging post inline.\n" +"* `blogpost.tmpl` - Used for a form to add a post to a blog (and rss/atom links)\n" +"* `feedlink.tmpl` - Used to add rss/atom links if `blogpost.tmpl` is not used.\n" +"* `aggregatepost.tmpl` - Used by the aggregate plugin to create\n" +" a page for a post.\n" +"* `searchform.tmpl`, `googleform.tmpl` - Used by the search plugin \n" +" and google plugin to add search forms to wiki pages.\n" +"* `searchquery.tmpl` - This is a Omega template, used by the\n" +" search plugin.\n" +"* `comment.tmpl` - Used by the comments plugin to display a comment.\n" +"* `change.tmpl` - Used to create a page describing a change made to the wiki.\n" +"* `recentchanges.tmpl` - Used for listing a change on the RecentChanges page.\n" +"* `autoindex.tmpl` - Filled in by the autoindex plugin to make index pages.\n" +"* `autotag.tmpl` - Filled in by the tag plugin to make tag pages.\n" +"* `calendarmonth.tmpl`, `calendaryear.tmpl` - Used by ikiwiki-calendar to\n" +" make calendar archive pages.\n" +"* `editpage.tmpl`, `editconflict.tmpl`, `editcreationconflict.tmpl`,\n" +" `editfailedsave.tmpl`, `editpagegone.tmpl`, `pocreatepage.tmpl`,\n" +" `editcomment.tmpl` `commentmoderation.tmpl`, `renamesummary.tmpl`,\n" +" `passwordmail.tmpl`, `openid-selector.tmpl` - Parts of ikiwiki's user\n" +" interface; do not normally need to be customised.\n" +msgstr "" +" (La directive \"pagetemplate\"\n" +" permet d'utiliser un modèle différent de `page.tmpl`.)\"\"\"]]\n" +"* `rsspage.tmpl` - permet la création de flux RSS pour les blogs.\n" +"* `rssitem.tmpl` - permet la création d'éléments individuels dans les flux RSS.\n" +"* `atompage.tmpl` - permet la création de flux Atom pour les blogs.\n" +"* `atomitem.tmpl` - permet la création d'éléments individuels dans les flux Atom.\n" +"* `inlinepage.tmpl` - permet l'affichage d'un message dans un blog.\n" +"* `archivepage.tmpl` - permet de lister une page dans une page d'archive de blog.\n" +"* `titlepage.tmpl` - permet de lister une page par son titre dans une page d'archive de blog.\n" +"* `microblog.tmpl` - permet de montrer un message de microblog au fil du texte.\n" +"* `blogpost.tmpl` - offre un formulaire pour ajouter un message dans un blog (avec des liens RSS/Atom)\n" +"* `feedlink.tmpl` - permet d'ajouter des liens RSS/Atom quand `blogpost.tmpl` n'est pas utilisé.\n" +"* `aggregatepost.tmpl` - modèle utilisé par le module aggregate pour créer une page de blog.\n" +"* `searchform.tmpl`, `googleform.tmpl` - modèles utilisés par les modules search et.\n" +" google pour ajouter un formulaire de recherche dans les pages de wiki.\n" +"* `searchquery.tmpl` - C'est un modèle Omega, utilisé par le module search.\n" +"* `comment.tmpl` - modèle utilisé par le module comments pour afficher un commentaire.\n" +"* `change.tmpl` - permet la création d'une page décrivant une modification du wiki.\n" +"* `recentchanges.tmpl` - permet de lister une modification sur la page RecentChanges.\n" +"* `autoindex.tmpl` - modèle utilisé par le module autoindex pour créer des pages d'index.\n" +"* `autotag.tmpl` - modèle utilisé par le module tag pour créer des pages avec étiquette.\n" +"* `calendarmonth.tmpl`, `calendaryear.tmpl` - modèles utilisés par le module ikiwiki-calendar pour\n" +" créer les pages d'archives des agendas.\n" +"* `editpage.tmpl`, `editconflict.tmpl`, `editcreationconflict.tmpl`,\n" +" `editfailedsave.tmpl`, `editpagegone.tmpl`, `pocreatepage.tmpl`,\n" +" `editcomment.tmpl` `commentmoderation.tmpl`, `renamesummary.tmpl`,\n" +" `passwordmail.tmpl`, `openid-selector.tmpl` - modèles faisant partie de l'interface utilisateur\n" +" d'ikiwiki'. Il n'y a en général aucun besoin de les personnaliser.\n" + +#. type: Plain text +#, no-wrap +msgid "\n" +msgstr "\n" + +#~ msgid "" +#~ "[[!if Error: then parameter is required]]\n" +#~ msgstr "" +#~ "[[!if Error: then parameter is required]]\n" + +#~ msgid "" +#~ "Templates are files that can be filled out and inserted into pages in the " +#~ "wiki." +#~ msgstr "" +#~ "Les modèles sont des fichiers pouvant être remplis et insérés dans les " +#~ "pages du wiki." + +#~ msgid "" +#~ "These templates are available for inclusion onto other pages in this wiki:" +#~ msgstr "Ces modèles peuvent être insérés dans d'autres pages de ce wiki :" + +#~ msgid "Using a template works like this:" +#~ msgstr "Voici comment fonctionne un modèle :" + +#~ msgid "" +#~ "\t\[[!template id=note text=\"\"\"Here is the text to insert into my " +#~ "note.\"\"\"]]\n" +#~ msgstr "" +#~ "\t\[[!template id=note text=\"\"\"Ici se trouve le texte à insérer dans " +#~ "ma note.\"\"\"]]\n" + +#~ msgid "" +#~ "This fills out the note template, filling in the `text` field with " +#~ "the specified value, and inserts the result into the page." +#~ msgstr "" +#~ "Cette expression remplit le modèle note, remplaçant le champ `text` " +#~ "par la valeur spécifiée, et insérant le résultat dans la page." + +#~ msgid "" +#~ "Generally, a value can include any markup that would be allowed in the " +#~ "wiki page outside the template. Triple-quoting the value even allows " +#~ "quotes to be included in it. Combined with multi-line quoted values, this " +#~ "allows for large chunks of marked up text to be embedded into a template:" +#~ msgstr "" +#~ "Généralement, une valeur peut inclure n'importe quelle balise qui serait " +#~ "autorisée dans les pages du wiki. Tripler les guillemets autour de la " +#~ "valeur permet même d'y inclure des guillemets. Ainsi, avec des valeurs " +#~ "sur plusieurs lignes, de larges morceaux de texte mis en forme peuvent " +#~ "être intégrés dans un modèle :" + +#~ msgid "" +#~ " \[[!template id=foo name=\"Sally\" color=\"green\" age=8 notes=" +#~ "\"\"\"\n" +#~ msgstr "" +#~ " \\[[!template id=foo name=\"Sally\" color=\"green\" age=8 notes=" +#~ "\"\"\"\n" + +#~ msgid "\[[Charley]]'s sister." +#~ msgstr "soeur de \[[Charley]]." + +#~ msgid "\"I want to be an astronaut when I grow up.\"" +#~ msgstr "\"Je veux devenir une astronaute lorsque je serai grande.\"" + +#~ msgid "Really 8 and a half." +#~ msgstr "Réellement 8 ans et demi." + +#~ msgid "Creating a template" +#~ msgstr "Créer un modèle" + +#~ msgid "" +#~ "To create a template, simply add a template directive to a page, and the " +#~ "page will provide a link that can be used to create the template. The " +#~ "template is a regular wiki page, located in the `templates/` subdirectory " +#~ "inside the source directory of the wiki." +#~ msgstr "" +#~ "Pour créer un modèle, ajoutez simplement une directive `template` à une " +#~ "page. La page fournira alors un lien qui peut être utilisé pour créer le " +#~ "modèle. Le modèle est une page de wiki régulière, enregistrée dans le " +#~ "sous-répertoire `templates/` du répertoire source du wiki." + +#~ msgid "" +#~ "The template uses the syntax used by the HTML::Template perl " +#~ "module, which allows for some fairly complex things to be done. Consult " +#~ "its documentation for the full syntax, but all you really need to know " +#~ "are a few things:" +#~ msgstr "" +#~ "Le modèle utilise la syntaxe définie par le module perl HTML::" #~ "Template, qui permet de faire des choses plutôt complexes. Consultez sa " +#~ "documentation pour obtenir la syntaxe complète. Cependant, vous n'avez " +#~ "réellement besoin que de quelques informations :" + +#~ msgid "" +#~ "Each parameter you pass to the template directive will generate a " +#~ "template variable. There are also some pre-defined variables like PAGE " +#~ "and BASENAME." +#~ msgstr "" +#~ "Chaque paramètre que vous donnez à la directive `template` générera une " +#~ "variable dans le modèle. Il y a en plus quelques variables prédéfinies " +#~ "comme PAGE et BASENAME." + +#~ msgid "" +#~ "To insert the value of a variable, use ``. Wiki markup " +#~ "in the value will first be converted to html." +#~ msgstr "" +#~ "Pour insérer la valeur d'une variable, utilisez ``. La " +#~ "syntaxe wiki dans la valeur sera d'abord transformée en html." + +#~ msgid "Here's a sample template:" +#~ msgstr "Voici un exemple de modèle :" + +#~ msgid "" +#~ " \n" +#~ " Name: \[[]]
                          \n" +#~ " Age:
                          \n" +#~ " \n" +#~ " Favorite color:
                          \n" +#~ " \n" +#~ " No favorite color.
                          \n" +#~ "
                          \n" +#~ " \n" +#~ "
                          \n" +#~ " \n" +#~ "
                          \n" +#~ "
                          \n" +#~ msgstr "" +#~ " \n" +#~ " Nom : \[[]]
                          \n" +#~ " Age :
                          \n" +#~ " \n" +#~ " Couleur favorite :
                          \n" +#~ " \n" +#~ " Pas de couleur favorite.
                          \n" +#~ "
                          \n" +#~ " \n" +#~ "
                          \n" +#~ " \n" +#~ "
                          \n" +#~ "
                          \n" + +#~ msgid "" +#~ "The filled out template will be formatted the same as the rest of the " +#~ "page that contains it, so you can include WikiLinks and all other forms " +#~ "of wiki markup in the template. Note though that such WikiLinks will not " +#~ "show up as backlinks to the page that uses the template." +#~ msgstr "" +#~ "Le modèle rempli sera mis en forme comme le reste de la page qui le " +#~ "contient. Vous pouvez donc inclure des WikiLinks et toutes les autres " +#~ "formes de balises wiki dans les modèles. Notez cependant que de tels " +#~ "WikiLinks n'apparaîtront pas dans les BackLinks de la page qui utilise le " +#~ "modèle." + +#~ msgid "" +#~ "Note the use of \"raw_name\" inside the WikiLink generator. " +#~ "This ensures that if the name contains something that might be mistaken " +#~ "for wiki markup, it's not converted to html before being processed as a " +#~ "WikiLink." +#~ msgstr "" +#~ "Notez l'utilisation de \"raw_name\" à l'intérieur du générateur de " +#~ "WikiLink. Cela assure que si le nom contient quelque chose " +#~ "pouvant être confondu avec une balise wiki, alors il n'est pas converti " +#~ "en html avant d'être traité comme un WikiLink." + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..afcef02 --- /dev/null +++ b/templates/index.html @@ -0,0 +1,260 @@ + + + + + + + + + + + templates - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          +

                          Ikiwiki uses many templates for many +purposes. By editing its templates, you can fully customise its +appearance, and avoid duplicate content.

                          +

                          Ikiwiki uses the HTML::Template module as its template engine. This +supports things like conditionals and loops in templates and is pretty +easy to learn. All you really need to know to modify templates is +this:

                          +
                            +
                          • To insert the value of a template variable, use +<TMPL_VAR variable>.
                          • +
                          • To make a block of text conditional on a variable being set use +<TMPL_IF variable>text</TMPL_IF>.
                          • +
                          • To use one block of text if a variable is set and a second if it’s +not, use +<TMPL_IF variable>text<TMPL_ELSE>other text</TMPL_IF>
                          • +
                          +

                          template pages

                          +

                          Template pages are regular wiki pages containing a +templatebody +directive, used as templates for other pages. The parts of the +template page outside the directive can be used to document it.

                          +

                          The +template +directive allows template pages to be filled out and inserted into +other pages in the wiki.

                          +

                          The +edittemplate +directive can be used to make new pages default to containing text +from a template page, which can be filled out as the page is edited.

                          +

                          These template pages are currently available:

                          +

                          + +note + +

                          +

                          + +note.fr + +

                          +

                          + +popup + +

                          +

                          + +popup.fr + +

                          +

                          +

                          If the template does not contain a templatebody +directive, the entire source of the page is used for the template. This +is deprecated.

                          +

                          template files

                          +

                          Template files are unlike template pages in that they have the +extension .tmpl. Template files are used extensively by +Ikiwiki to generate html. They can contain html that would not normally +be allowed on a wiki page.

                          +

                          Template files are located in +/usr/share/ikiwiki/templates by default; the +templatedir setting can be used to make another directory +be searched first. Customised template files can also be placed inside +the “templates/” directory in your wiki’s source – files placed there +override ones in the templatedir.

                          +

                          Here is a full list of the template files used:

                          +
                            +
                          • page.tmpl - Used for displaying all regular wiki pages. +This is the key template to customise to change the look and feel of +Ikiwiki. (The +pagetemplate +directive can be used to make a page use a different template than +page.tmpl.)
                          • +
                          • rsspage.tmpl - Used for generating rss feeds for +blogs.
                          • +
                          • rssitem.tmpl - Used for generating individual items on +rss feeds.
                          • +
                          • atompage.tmpl - Used for generating atom feeds for +blogs.
                          • +
                          • atomitem.tmpl - Used for generating individual items on +atom feeds.
                          • +
                          • inlinepage.tmpl - Used for displaying a post in a +blog.
                          • +
                          • archivepage.tmpl - Used for listing a page in a blog +archive page.
                          • +
                          • titlepage.tmpl - Used for listing a page by title in a +blog archive page.
                          • +
                          • microblog.tmpl - Used for showing a microblogging post +inline.
                          • +
                          • blogpost.tmpl - Used for a form to add a post to a blog +(and rss/atom links)
                          • +
                          • feedlink.tmpl - Used to add rss/atom links if +blogpost.tmpl is not used.
                          • +
                          • aggregatepost.tmpl - Used by the aggregate plugin to +create a page for a post.
                          • +
                          • searchform.tmpl, googleform.tmpl, +duckduckgoform.tmpl - Used by the search plugin, google and +duckduckgo plugins to add search forms to wiki pages.
                          • +
                          • searchquery.tmpl - This is a Omega template, used by +the search plugin.
                          • +
                          • comment.tmpl - Used by the comments plugin to display a +comment.
                          • +
                          • change.tmpl - Used to create a page describing a change +made to the wiki.
                          • +
                          • recentchanges.tmpl - Used for listing a change on the +RecentChanges page.
                          • +
                          • autoindex.tmpl - Filled in by the autoindex plugin to +make index pages.
                          • +
                          • autotag.tmpl - Filled in by the tag plugin to make tag +pages.
                          • +
                          • calendarmonth.tmpl, calendaryear.tmpl - +Used by ikiwiki-calendar to make calendar archive pages.
                          • +
                          • trails.tmpl - Used by the trail plugin to generate +links on each page that is a member of a trail.
                          • +
                          • notifyemail.tmpl - Used by the notifymail plugin to +generate mails about changed pages.
                          • +
                          • editpage.tmpl, editconflict.tmpl, +editcreationconflict.tmpl, +editfailedsave.tmpl, editpagegone.tmpl, +pocreatepage.tmpl, editcomment.tmpl +commentmoderation.tmpl, renamesummary.tmpl, +passwordmail.tmpl, emailauth.tmpl, +login-selector.tmpl, revert.tmpl - Parts of +ikiwiki’s user interface; do not normally need to be customised.
                          • +
                          + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/templates/note.fr/index.html b/templates/note.fr/index.html new file mode 100644 index 0000000..260e0b1 --- /dev/null +++ b/templates/note.fr/index.html @@ -0,0 +1,188 @@ + + + + + + + + + + + note.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          + # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2009-08-24 00:18+0200\n" +"Last-Translator: Alexandre Dupas \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: ENCODING\n" + +#. type: Plain text +#, fuzzy, no-wrap +#| msgid "" +#| "
                          \n" +#| "\n" +#| "
                          \n" +#| "\n" +#| "Use this template to insert a note into a page. The note will be styled to\n" +#| "float to the right of other text on the page. This template has one\n" +#| "parameter:\n" +#| "
                            \n" +#| "
                          • `text` - the text to display in the note\n" +#| "
                          \n" +#| "
                          \n" +msgid "" +"
                          \n" +"\n" +"
                          \n" +"\n" +"Use this template to insert a note into a page. The note will be styled to\n" +"float to the right of other text on the page. This template has one\n" +"parameter:\n" +"
                            \n" +"
                          • `text` - the text to display in the note\n" +"
                          \n" +"
                          \n" +msgstr "" +"
                          \n" +"\n" +"
                          \n" +"\n" +"Utilisez ce modèle pour insérer une note dans une page. La note sera placée à la droite du texte de la page. Ce modèle possède un paramètre :\n" +"
                            \n" +"
                          • `text` - le texte à afficher dans la note\n" +"
                          \n" +"
                          \n" + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/templates/note/index.html b/templates/note/index.html new file mode 100644 index 0000000..7c30b41 --- /dev/null +++ b/templates/note/index.html @@ -0,0 +1,142 @@ + + + + + + + + + + + note - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          + Use this template to insert a note into a page. The note will be styled +to float to the right of other text on the page. This template has one +parameter: +
                            +
                          • +text - the text to display in the note +
                          + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/templates/popup.fr/index.html b/templates/popup.fr/index.html new file mode 100644 index 0000000..98afc4c --- /dev/null +++ b/templates/popup.fr/index.html @@ -0,0 +1,199 @@ + + + + + + + + + + + popup.fr - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          + # Traduction de ikiwiki +# Copyright (C) 2009 Debian French l10n team +# This file is distributed under the same license as the PACKAGE Ikiwiki. +# +msgid "" +msgstr "" +"Project-Id-Version: ikiwiki\n" +"POT-Creation-Date: 2010-07-18 22:29+0000\n" +"PO-Revision-Date: 2009-08-24 10:27+0200\n" +"Last-Translator: Alexandre Dupas \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: ENCODING\n" + +#. type: Plain text +#, fuzzy, no-wrap +#| msgid "" +#| "\n" +#| "Use this template to create a popup window that is displayed when the mouse\n" +#| "is over part of the page. This template has two parameters:\n" +#| "
                            \n" +#| "
                          • `mouseover` - This is the text or other content that triggers the\n" +#| "popup.\n" +#| "
                          • `popup` - This should be the content of the popup window. It can be\n" +#| "anything, even images or a whole little wiki page, but should not be too\n" +#| "large for good usability.\n" +#| "
                          \n" +#| "Note that browsers that do not support the CSS will display the popup\n" +#| "inline in the page, inside square brackets.\n" +#| "
                          \n" +#| "\n" +#| "[]\n" +#| "\n" +msgid "" +"\n" +"Use this template to create a popup window that is displayed when the mouse\n" +"is over part of the page. This template has two parameters:\n" +"
                            \n" +"
                          • `mouseover` - This is the text or other content that triggers the\n" +"popup.\n" +"
                          • `popup` - This should be the content of the popup window. It can be\n" +"anything, even images or a whole little wiki page, but should not be too\n" +"large for good usability.\n" +"
                          \n" +"Note that browsers that do not support the CSS will display the popup\n" +"inline in the page, inside square brackets.\n" +"
                          \n" +"\n" +"[]\n" +"\n" +msgstr "" +"\n" +"Utilisez ce modèle pour créer un popup qui est affiché lorsque la souris est au dessus d'une partie de la page. Ce modèle possède deux paramètres :\n" +"
                            \n" +"
                          • `mouseover` - Ce paramètre indique le contenu (texte ou autre) qui déclenche le popup.\n" +"
                          • `popup` - Ce paramètre est le contenu du popup. Il peut être quelconque, aussi bien des images qu'une page de wiki complète, mais ne doit pas être trop grand pour une bonne utilisabilité.\n" +"
                          \n" +"Notez que les navigateurs qui ne gèrent pas les feuilles de style CSS afficheront le popup au fil du texte dans la page, entre crochets.\n" +"
                          \n" +"\n" +"[]\n" +"\n" + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/templates/popup/index.html b/templates/popup/index.html new file mode 100644 index 0000000..cccfd9d --- /dev/null +++ b/templates/popup/index.html @@ -0,0 +1,148 @@ + + + + + + + + + + + popup - Ayakael + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          + +
                          + +
                          +
                          + Use this template to create a popup window that is displayed when the +mouse is over part of the page. This template has two parameters: +
                            +
                          • +mouseover - This is the text or other content that triggers +the popup. +
                          • +popup - This should be the content of the popup window. It +can be anything, even images or a whole little wiki page, but should not +be too large for good usability. +
                          +

                          Note that browsers that do not support the CSS will display the popup +inline in the page, inside square brackets.

                          + + + + + + + + + + + + +
                          + Created . + + + Edited . + + +
                          + +
                          +
                          + +
                          +
                          +
                          +
                          + Copyleft © 2024 ayakael CC-BY-SA +
                          +
                          + Powered by ikiwiki. +
                          +
                          + +
                          +
                          + + + + + + + + + + diff --git a/tools/test-server.sh b/tools/test-server.sh deleted file mode 100755 index cdbe7b1..0000000 --- a/tools/test-server.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env bash - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - -for i in node npm git; do - if ! command -v $i &> /dev/null; then - echo ">> $i could not be found, please install" - exit - fi -done - -# http-server not pulled, pulling -if [ ! -d "$SCRIPT_DIR/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?" - read -p "Continue (y/n)?" choice - case "$choice" in - y|Y ) echo "yes";; - n|N ) echo "no";; - * ) echo "invalid";; - esac - git clone https://github.com/http-party/http-server -fi - -# http-server depends not pulled, pulling -if [ ! -d "$SCRIPT_DIR/http-server/node_modules/" ]; then - echo ">> http-server dependencies not pulled, pulling" - npm --prefix "$SCRIPT_DIR"/http-server i -fi - -# website not built, building -if [ ! -d "$SCRIPT_DIR/../public" ]; then - echo ">> website not build, building" - pushd "$SCRIPT_DIR"/.. - ikiwiki --setup ./ikiwiki.setup - popd -fi - -# starting server -echo ">> starting http server" -node "$SCRIPT_DIR"/http-server/bin/http-server -c-1 "$SCRIPT_DIR"/../public diff --git a/wikiicons/diff.png b/wikiicons/diff.png new file mode 100644 index 0000000..0b98d79 Binary files /dev/null and b/wikiicons/diff.png differ diff --git a/wikiicons/email.png b/wikiicons/email.png new file mode 100644 index 0000000..859251f Binary files /dev/null and b/wikiicons/email.png differ diff --git a/wikiicons/openidlogin-bg.gif b/wikiicons/openidlogin-bg.gif new file mode 100644 index 0000000..a3bfe10 Binary files /dev/null and b/wikiicons/openidlogin-bg.gif differ diff --git a/wikiicons/openidlogin-bg.png b/wikiicons/openidlogin-bg.png new file mode 100644 index 0000000..8c4c6da Binary files /dev/null and b/wikiicons/openidlogin-bg.png differ diff --git a/wikiicons/revert.png b/wikiicons/revert.png new file mode 100644 index 0000000..c39e65c Binary files /dev/null and b/wikiicons/revert.png differ diff --git a/wikiicons/search-bg.gif b/wikiicons/search-bg.gif new file mode 100644 index 0000000..a4fc51b Binary files /dev/null and b/wikiicons/search-bg.gif differ