docs(namespace): foxyproxy namespace

This commit is contained in:
gwen 2026-06-12 16:43:54 +02:00
parent 7200b16fa1
commit 37f146e314
3 changed files with 727 additions and 26 deletions

646
docs/tutorial/01 Normal file
View file

@ -0,0 +1,646 @@
<!DOCTYPE html>
<html lang="en-US" data-theme="forgejo-auto">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>rougail-tutorials/config/01 at v1.1_180 - stove/rougail-tutorials - Forgejo : Au-delà du développement. Nous forgeons.</title>
<link rel="manifest" href="data:application/json;base64,eyJuYW1lIjoiRm9yZ2VqbyA6IEF1LWRlbMOgIGR1IGTDqXZlbG9wcGVtZW50LiBOb3VzIGZvcmdlb25zLiIsInNob3J0X25hbWUiOiJGb3JnZWpvIDogQXUtZGVsw6AgZHUgZMOpdmVsb3BwZW1lbnQuIE5vdXMgZm9yZ2VvbnMuIiwic3RhcnRfdXJsIjoiaHR0cHM6Ly9mb3JnZS5jbG91ZC5zaWxpcXVlLmZyLyIsImljb25zIjpbeyJzcmMiOiJodHRwczovL2ZvcmdlLmNsb3VkLnNpbGlxdWUuZnIvYXNzZXRzL2ltZy9sb2dvLnBuZyIsInR5cGUiOiJpbWFnZS9wbmciLCJzaXplcyI6IjUxMng1MTIifSx7InNyYyI6Imh0dHBzOi8vZm9yZ2UuY2xvdWQuc2lsaXF1ZS5mci9hc3NldHMvaW1nL2xvZ28uc3ZnIiwidHlwZSI6ImltYWdlL3N2Zyt4bWwiLCJzaXplcyI6IjUxMng1MTIifV19">
<meta name="author" content="stove">
<meta name="description" content="rougail-tutorials">
<meta name="keywords" content="git,forge,forgejo">
<meta name="referrer" content="no-referrer">
<link rel="alternate" type="application/atom+xml" title="" href="/stove/rougail-tutorials.atom">
<link rel="alternate" type="application/rss+xml" title="" href="/stove/rougail-tutorials.rss">
<link rel="icon" href="/assets/img/favicon.svg" type="image/svg+xml">
<link rel="alternate icon" href="/assets/img/favicon.png" type="image/png">
<script>
window.addEventListener('error', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
window.addEventListener('unhandledrejection', function(e) {window._globalHandlerErrors=window._globalHandlerErrors||[]; window._globalHandlerErrors.push(e);});
window.config = {
appUrl: 'https:\/\/forge.cloud.silique.fr\/',
appSubUrl: '',
assetVersionEncoded: encodeURIComponent('8.0.1~gitea-1.22.0'),
assetUrlPrefix: '\/assets',
runModeIsProd: true ,
customEmojis: {"codeberg":":codeberg:","forgejo":":forgejo:","git":":git:","gitea":":gitea:","github":":github:","gitlab":":gitlab:","gogs":":gogs:"},
csrfToken: 'WarerYlL9hdTjNDuxtugwpPR8VM6MTc4MTI3Mzk5NzIxODg3ODQ0OQ',
pageData: {},
notificationSettings: {"EventSourceUpdateTime":10000,"MaxTimeout":60000,"MinTimeout":10000,"TimeoutStep":10000},
enableTimeTracking: true ,
mermaidMaxSourceCharacters: 5000 ,
i18n: {
copy_success: "Copied!",
copy_error: "Copy failed",
error_occurred: "An error occurred",
network_error: "Network error",
remove_label_str: "Remove item \"%s\"",
modal_confirm: "Confirm",
modal_cancel: "Cancel",
more_items: "More items",
},
};
window.config.pageData = window.config.pageData || {};
</script>
<script src="/assets/js/webcomponents.js?v=8.0.1~gitea-1.22.0"></script>
<noscript>
<style>
.dropdown:hover > .menu { display: block; }
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
</style>
</noscript>
<meta property="og:title" content="rougail-tutorials">
<meta property="og:url" content="https://forge.cloud.silique.fr/stove/rougail-tutorials">
<meta property="og:type" content="object">
<meta property="og:image" content="https://forge.cloud.silique.fr/avatars/43c3e6f84e341eb3b85f24dec7f12c50">
<meta property="og:site_name" content="Forgejo : Au-delà du développement. Nous forgeons.">
<link rel="stylesheet" href="/assets/css/index.css?v=8.0.1~gitea-1.22.0">
<link rel="stylesheet" href="/assets/css/theme-forgejo-auto.css?v=8.0.1~gitea-1.22.0">
</head>
<body hx-headers='{"x-csrf-token": "WarerYlL9hdTjNDuxtugwpPR8VM6MTc4MTI3Mzk5NzIxODg3ODQ0OQ"}' hx-swap="outerHTML" hx-ext="morph" hx-push-url="false">
<div class="full height">
<noscript>This website requires JavaScript.</noscript>
<nav id="navbar" aria-label="Navigation bar">
<div class="navbar-left ui secondary menu">
<a class="item" id="navbar-logo" href="/" aria-label="Home">
<img width="30" height="30" src="/assets/img/logo.svg" alt="Logo" aria-hidden="true">
</a>
<div class="ui secondary menu item navbar-mobile-right only-mobile">
<button class="item tw-w-auto ui icon mini button tw-p-2 tw-m-0" id="navbar-expand-toggle" aria-label="Toggle menu"><svg viewBox="0 0 16 16" class="svg octicon-three-bars" aria-hidden="true" width="16" height="16"><path d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75m0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75M1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5"/></svg></button>
</div>
<a class="item" href="/explore/repos">Explore</a>
<a class="item" target="_blank" rel="noopener noreferrer" href="https://forgejo.org/docs/latest/">Help</a>
</div>
<div class="navbar-right ui secondary menu">
<a class="item" rel="nofollow" href="/user/login?redirect_to=%2fstove%2frougail-tutorials%2fsrc%2fcommit%2fv1.1_180%2fconfig%2f01">
<svg viewBox="0 0 16 16" class="svg octicon-sign-in" aria-hidden="true" width="16" height="16"><path d="M2 2.75C2 1.784 2.784 1 3.75 1h2.5a.75.75 0 0 1 0 1.5h-2.5a.25.25 0 0 0-.25.25v10.5c0 .138.112.25.25.25h2.5a.75.75 0 0 1 0 1.5h-2.5A1.75 1.75 0 0 1 2 13.25Zm6.56 4.5h5.69a.75.75 0 0 1 0 1.5H8.56l1.97 1.97a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215L6.22 8.53a.75.75 0 0 1 0-1.06l3.25-3.25a.749.749 0 0 1 1.275.326.75.75 0 0 1-.215.734Z"/></svg> Sign In
</a>
</div>
</nav>
<div role="main" aria-label="rougail-tutorials/config/01 at v1.1_180" class="page-content repository file list ">
<div class="secondary-nav">
<div class="ui container">
<div class="repo-header">
<div class="flex-item tw-items-center">
<div class="flex-item-leading">
<svg viewBox="0 0 16 16" class="svg octicon-repo" aria-hidden="true" width="24" height="24"><path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 1 1-1.072 1.05A2.5 2.5 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.5 2.5 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.25.25 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z"/></svg>
</div>
<div class="flex-item-main">
<div class="flex-item-title gt-font-18">
<a class="muted gt-font-normal" href="/stove">stove</a>/<a class="muted" href="/stove/rougail-tutorials">rougail-tutorials</a>
</div>
</div>
<div class="flex-item-trailing">
</div>
</div>
<div class="repo-buttons button-row">
<a class="ui compact small basic button" href="/stove/rougail-tutorials.rss" data-tooltip-content="RSS feed">
<svg viewBox="0 0 16 16" class="svg octicon-rss" aria-hidden="true" width="16" height="16"><path d="M2.002 2.725a.75.75 0 0 1 .797-.699C8.79 2.42 13.58 7.21 13.974 13.201a.75.75 0 0 1-1.497.098 10.5 10.5 0 0 0-9.776-9.776.747.747 0 0 1-.7-.798ZM2.84 7.05h-.002a7 7 0 0 1 6.113 6.111.75.75 0 0 1-1.49.178 5.5 5.5 0 0 0-4.8-4.8.75.75 0 0 1 .179-1.489M2 13a1 1 0 1 1 2 0 1 1 0 0 1-2 0"/></svg>
</a>
<form hx-boost="true" hx-target="this" method="post" action="/stove/rougail-tutorials/action/watch">
<div class="ui labeled button" data-tooltip-content="Sign in to watch this repository.">
<button type="submit" class="ui compact small basic button" disabled>
<svg viewBox="0 0 16 16" class="svg octicon-eye" aria-hidden="true" width="16" height="16"><path d="M8 2c1.981 0 3.671.992 4.933 2.078 1.27 1.091 2.187 2.345 2.637 3.023a1.62 1.62 0 0 1 0 1.798c-.45.678-1.367 1.932-2.637 3.023C11.67 13.008 9.981 14 8 14s-3.671-.992-4.933-2.078C1.797 10.83.88 9.576.43 8.898a1.62 1.62 0 0 1 0-1.798c.45-.677 1.367-1.931 2.637-3.022C4.33 2.992 6.019 2 8 2M1.679 7.932a.12.12 0 0 0 0 .136c.411.622 1.241 1.75 2.366 2.717C5.176 11.758 6.527 12.5 8 12.5s2.825-.742 3.955-1.715c1.124-.967 1.954-2.096 2.366-2.717a.12.12 0 0 0 0-.136c-.412-.621-1.242-1.75-2.366-2.717C10.824 4.242 9.473 3.5 8 3.5s-2.825.742-3.955 1.715c-1.124.967-1.954 2.096-2.366 2.717M8 10a2 2 0 1 1-.001-3.999A2 2 0 0 1 8 10"/></svg><span class="text not-mobile">Watch</span>
</button>
<a hx-boost="false" class="ui basic label" href="/stove/rougail-tutorials/watchers">
2
</a>
</div>
</form>
<form hx-boost="true" hx-target="this" method="post" action="/stove/rougail-tutorials/action/star">
<div class="ui labeled button" data-tooltip-content="Sign in to star this repository.">
<button type="submit" class="ui compact small basic button" disabled>
<svg viewBox="0 0 16 16" class="svg octicon-star" aria-hidden="true" width="16" height="16"><path d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.751.751 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25m0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41z"/></svg><span class="text not-mobile">Star</span>
</button>
<a hx-boost="false" class="ui basic label" href="/stove/rougail-tutorials/stars">
0
</a>
</div>
</form>
<div class="ui labeled button
disabled
"
data-tooltip-content="Sign in to fork this repository."
>
<a class="ui compact small basic button"
>
<svg viewBox="0 0 16 16" class="svg octicon-repo-forked" aria-hidden="true" width="16" height="16"><path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0M5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0m6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5m-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0"/></svg><span class="text not-mobile">Fork</span>
</a>
<div class="ui small modal" id="fork-repo-modal">
<div class="header">
You've already forked rougail-tutorials
</div>
<div class="content tw-text-left">
<div class="ui list">
</div>
</div>
</div>
<a class="ui basic label" href="/stove/rougail-tutorials/forks">
0
</a>
</div>
</div>
</div>
</div>
<overflow-menu class="ui container secondary pointing tabular top attached borderless menu tw-pt-0 tw-my-0">
<div class="overflow-menu-items">
<a class="active item" href="/stove/rougail-tutorials">
<svg viewBox="0 0 16 16" class="svg octicon-code" aria-hidden="true" width="16" height="16"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.75.75 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.75.75 0 0 1 .734.215m-6.56 0a.75.75 0 0 1 1.042.018.75.75 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"/></svg> Code
</a>
<a class="item" href="/stove/rougail-tutorials/issues">
<svg viewBox="0 0 16 16" class="svg octicon-issue-opened" aria-hidden="true" width="16" height="16"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3"/><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0"/></svg> Issues
</a>
<a class="item" href="/stove/rougail-tutorials/pulls">
<svg viewBox="0 0 16 16" class="svg octicon-git-pull-request" aria-hidden="true" width="16" height="16"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25m5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354M3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0"/></svg> Pull requests
</a>
<a href="/stove/rougail-tutorials/projects" class="item">
<svg viewBox="0 0 16 16" class="svg octicon-project" aria-hidden="true" width="16" height="16"><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0M1.5 1.75v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25M11.75 3a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75m-8.25.75a.75.75 0 0 1 1.5 0v5.5a.75.75 0 0 1-1.5 0ZM8 3a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 3"/></svg> Projects
</a>
<a class="item" href="/stove/rougail-tutorials/releases">
<svg viewBox="0 0 16 16" class="svg octicon-tag" aria-hidden="true" width="16" height="16"><path d="M1 7.775V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.75 1.75 0 0 1 1 7.775m1.5 0c0 .066.026.13.073.177l6.25 6.25a.25.25 0 0 0 .354 0l5.025-5.025a.25.25 0 0 0 0-.354l-6.25-6.25a.25.25 0 0 0-.177-.073H2.75a.25.25 0 0 0-.25.25ZM6 5a1 1 0 1 1 0 2 1 1 0 0 1 0-2"/></svg> Releases
</a>
<a href="/stove/rougail-tutorials/packages" class="item">
<svg viewBox="0 0 16 16" class="svg octicon-package" aria-hidden="true" width="16" height="16"><path d="m8.878.392 5.25 3.045c.54.314.872.89.872 1.514v6.098a1.75 1.75 0 0 1-.872 1.514l-5.25 3.045a1.75 1.75 0 0 1-1.756 0l-5.25-3.045A1.75 1.75 0 0 1 1 11.049V4.951c0-.624.332-1.201.872-1.514L7.122.392a1.75 1.75 0 0 1 1.756 0M7.875 1.69l-4.63 2.685L8 7.133l4.755-2.758-4.63-2.685a.25.25 0 0 0-.25 0M2.5 5.677v5.372c0 .09.047.171.125.216l4.625 2.683V8.432Zm6.25 8.271 4.625-2.683a.25.25 0 0 0 .125-.216V5.677L8.75 8.432Z"/></svg> Packages
</a>
<a class="item" href="/stove/rougail-tutorials/wiki">
<svg viewBox="0 0 16 16" class="svg octicon-book" aria-hidden="true" width="16" height="16"><path d="M0 1.75A.75.75 0 0 1 .75 1h4.253c1.227 0 2.317.59 3 1.501A3.74 3.74 0 0 1 11.006 1h4.245a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75h-4.507a2.25 2.25 0 0 0-1.591.659l-.622.621a.75.75 0 0 1-1.06 0l-.622-.621A2.25 2.25 0 0 0 5.258 13H.75a.75.75 0 0 1-.75-.75Zm7.251 10.324.004-5.073-.002-2.253A2.25 2.25 0 0 0 5.003 2.5H1.5v9h3.757a3.75 3.75 0 0 1 1.994.574M8.755 4.75l-.004 7.322a3.75 3.75 0 0 1 1.992-.572H14.5v-9h-3.495a2.25 2.25 0 0 0-2.25 2.25"/></svg> Wiki
</a>
<a class="item" href="/stove/rougail-tutorials/activity">
<svg viewBox="0 0 16 16" class="svg octicon-pulse" aria-hidden="true" width="16" height="16"><path d="M6 2c.306 0 .582.187.696.471L10 10.731l1.304-3.26A.75.75 0 0 1 12 7h3.25a.75.75 0 0 1 0 1.5h-2.742l-1.812 4.528a.751.751 0 0 1-1.392 0L6 4.77 4.696 8.03A.75.75 0 0 1 4 8.5H.75a.75.75 0 0 1 0-1.5h2.742l1.812-4.529A.75.75 0 0 1 6 2"/></svg> Activity
</a>
</div>
</overflow-menu>
<div class="ui tabs divider"></div>
</div>
<div class="ui container ">
<div class="repo-button-row">
<div class="tw-flex tw-items-center tw-gap-y-2">
<script type="module">
const data = {
'textReleaseCompare': "Compare",
'textCreateTag': "Create tag \u003cstrong\u003e%s\u003c/strong\u003e",
'textCreateBranch': "Create branch \u003cstrong\u003e%s\u003c/strong\u003e",
'textCreateBranchFrom': "from \"%s\"",
'textBranches': "Branches",
'textTags': "Tags",
'textDefaultBranchLabel': "default",
'mode': 'branches',
'showBranchesInDropdown': true ,
'searchFieldPlaceholder': 'Filter branch or tag...',
'branchForm': null ,
'disableCreateBranch': true ,
'setAction': null ,
'submitForm': null ,
'viewType': "tree",
'refName': "v1.1_180",
'commitIdShort': "v1.1_180",
'tagName': "",
'branchName': "1.1",
'noTag': null ,
'defaultSelectedRefName': "1.1",
'repoDefaultBranch': "1.1",
'enableFeed': true ,
'rssURLPrefix': '\/stove\/rougail-tutorials/rss/branch/',
'branchURLPrefix': '\/stove\/rougail-tutorials/src/branch/',
'branchURLSuffix': '/config\/01',
'tagURLPrefix': '\/stove\/rougail-tutorials/src/tag/',
'tagURLSuffix': '/config\/01',
'repoLink': "/stove/rougail-tutorials",
'treePath': "config/01",
'branchNameSubURL': "commit/v1.1_180",
'noResults': "No results found.",
};
window.config.pageData.branchDropdownDataList = window.config.pageData.branchDropdownDataList || [];
window.config.pageData.branchDropdownDataList.push(data);
</script>
<div class="js-branch-tag-selector tw-mr-1">
<div class="ui dropdown custom">
<button class="branch-dropdown-button gt-ellipsis ui basic small compact button tw-flex tw-m-0">
<span class="text tw-flex tw-items-center tw-mr-1 gt-ellipsis">
<svg viewBox="0 0 16 16" class="svg octicon-git-branch" aria-hidden="true" width="16" height="16"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.5 2.5 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25m-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0m8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5"/></svg>
<strong ref="dropdownRefName" class="tw-ml-2 tw-inline-block gt-ellipsis">v1.1_180</strong>
</span>
<svg viewBox="0 0 16 16" class="dropdown icon svg octicon-triangle-down" aria-hidden="true" width="14" height="14"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427"/></svg>
</button>
</div>
</div>
<span class="breadcrumb repo-path tw-ml-1">
<a class="section" href="/stove/rougail-tutorials/src/commit/v1.1_180" title="rougail-tutorials">rougail-tutorials</a><span class="breadcrumb-divider">/</span><span class="section"><a href="/stove/rougail-tutorials/src/commit/v1.1_180/config" title="config">config</a></span><span class="breadcrumb-divider">/</span><span class="active section" title="01">01</span></span>
</div>
<div class="tw-flex tw-items-center">
<a class="ui button" href="/stove/rougail-tutorials/commits/commit/v1.1_180/config/01">
<svg viewBox="0 0 16 16" class="tw-mr-2 svg octicon-history" aria-hidden="true" width="16" height="16"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177M7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.75.75 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4"/></svg>History
</a>
</div>
</div>
<table id="repo-files-table" class="ui single line table tw-mt-0" >
<thead>
<tr class="commit-list">
<th class="tw-overflow-hidden" colspan="2">
<div class="tw-flex">
<div class="latest-commit">
<img class="ui avatar tw-align-middle tw-mr-1" src="/avatars/066cc8f7aba3a67980d61874a3ca97b9?size=48" title="egarette@silique.fr" width="24" height="24"/>
<a class="muted author-wrapper" title="Emmanuel Garette" href="/egarette"><strong>Emmanuel Garette</strong></a>
<a rel="nofollow" class="ui sha label " href="/stove/rougail-tutorials/commit/b7c2d6ba5372f2af3feecdc568d3b62fa1ad85b4">
<span class="shortsha">b7c2d6ba53</span>
</a>
<span class="grey commit-summary" title="[tutorial v1.1_180] Namespace (config and doc)"><span class="message-wrapper"><a href="/stove/rougail-tutorials/commit/b7c2d6ba5372f2af3feecdc568d3b62fa1ad85b4" class="default-link muted">[tutorial v1.1_180] Namespace (config and doc)</a></span>
</span>
</div>
</div>
</th>
<th class="text grey right age"><relative-time prefix="" tense="past" datetime="2026-06-10T22:29:19+02:00" data-tooltip-content data-tooltip-interactive="true">2026-06-10 22:29:19 +02:00</relative-time></th>
</tr>
</thead>
<tbody>
<tr class="has-parent">
<td colspan="3"><svg viewBox="0 0 16 16" class="svg octicon-reply" aria-hidden="true" width="16" height="16"><path d="M6.78 1.97a.75.75 0 0 1 0 1.06L3.81 6h6.44A4.75 4.75 0 0 1 15 10.75v2.5a.75.75 0 0 1-1.5 0v-2.5a3.25 3.25 0 0 0-3.25-3.25H3.81l2.97 2.97a.749.749 0 0 1-.326 1.275.75.75 0 0 1-.734-.215L1.47 7.28a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0"/></svg><a class="muted" href="/stove/rougail-tutorials/src/commit/v1.1_180/config">..</a></td>
</tr>
<tr data-entryname="cmd_ro.txt" data-ready="true" class="ready entry">
<td class="name four wide">
<span class="truncate">
<svg viewBox="0 0 16 16" class="svg octicon-file" aria-hidden="true" width="16" height="16"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914z"/></svg>
<a class="muted" href="/stove/rougail-tutorials/src/commit/v1.1_180/config/01/cmd_ro.txt" title="cmd_ro.txt">cmd_ro.txt</a>
</span>
</td>
<td class="message nine wide">
<span class="truncate">
<a href="/stove/rougail-tutorials/commit/b7c2d6ba5372f2af3feecdc568d3b62fa1ad85b4" class="default-link muted">[tutorial v1.1_180] Namespace (config and doc)</a>
</span>
</td>
<td class="text right age three wide"><relative-time prefix="" tense="past" datetime="2026-06-10T22:29:19+02:00" data-tooltip-content data-tooltip-interactive="true">2026-06-10 22:29:19 +02:00</relative-time></td>
</tr>
<tr data-entryname="config.yml" data-ready="true" class="ready entry">
<td class="name four wide">
<span class="truncate">
<svg viewBox="0 0 16 16" class="svg octicon-file" aria-hidden="true" width="16" height="16"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914z"/></svg>
<a class="muted" href="/stove/rougail-tutorials/src/commit/v1.1_180/config/01/config.yml" title="config.yml">config.yml</a>
</span>
</td>
<td class="message nine wide">
<span class="truncate">
<a href="/stove/rougail-tutorials/commit/b7c2d6ba5372f2af3feecdc568d3b62fa1ad85b4" class="default-link muted">[tutorial v1.1_180] Namespace (config and doc)</a>
</span>
</td>
<td class="text right age three wide"><relative-time prefix="" tense="past" datetime="2026-06-10T22:29:19+02:00" data-tooltip-content data-tooltip-interactive="true">2026-06-10 22:29:19 +02:00</relative-time></td>
</tr>
<tr data-entryname="output_ro.html" data-ready="true" class="ready entry">
<td class="name four wide">
<span class="truncate">
<svg viewBox="0 0 16 16" class="svg octicon-file" aria-hidden="true" width="16" height="16"><path d="M2 1.75C2 .784 2.784 0 3.75 0h6.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0 1 13.25 16h-9.5A1.75 1.75 0 0 1 2 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h9.5a.25.25 0 0 0 .25-.25V6h-2.75A1.75 1.75 0 0 1 9 4.25V1.5Zm6.75.062V4.25c0 .138.112.25.25.25h2.688l-.011-.013-2.914-2.914z"/></svg>
<a class="muted" href="/stove/rougail-tutorials/src/commit/v1.1_180/config/01/output_ro.html" title="output_ro.html">output_ro.html</a>
</span>
</td>
<td class="message nine wide">
<span class="truncate">
<a href="/stove/rougail-tutorials/commit/b7c2d6ba5372f2af3feecdc568d3b62fa1ad85b4" class="default-link muted">[tutorial v1.1_180] Namespace (config and doc)</a>
</span>
</td>
<td class="text right age three wide"><relative-time prefix="" tense="past" datetime="2026-06-10T22:29:19+02:00" data-tooltip-content data-tooltip-interactive="true">2026-06-10 22:29:19 +02:00</relative-time></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<footer class="page-footer" role="group" aria-label="Footer">
<div class="left-links" role="contentinfo" aria-label="About this software">
<a target="_blank" rel="noopener noreferrer" href="https://forgejo.org">Powered by Forgejo</a>
Version:
8.0.1&#43;gitea-1.22.0
Page: <strong>18ms</strong>
Template: <strong>2ms</strong>
</div>
<div class="right-links" role="group" aria-label="Links">
<div class="ui dropdown upward language">
<span class="flex-text-inline"><svg viewBox="0 0 16 16" class="svg octicon-globe" aria-hidden="true" width="14" height="14"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0M5.78 8.75a9.64 9.64 0 0 0 1.363 4.177q.383.64.857 1.215c.245-.296.551-.705.857-1.215A9.64 9.64 0 0 0 10.22 8.75Zm4.44-1.5a9.64 9.64 0 0 0-1.363-4.177c-.307-.51-.612-.919-.857-1.215a10 10 0 0 0-.857 1.215A9.64 9.64 0 0 0 5.78 7.25Zm-5.944 1.5H1.543a6.51 6.51 0 0 0 4.666 5.5q-.184-.271-.352-.552c-.715-1.192-1.437-2.874-1.581-4.948m-2.733-1.5h2.733c.144-2.074.866-3.756 1.58-4.948q.18-.295.353-.552a6.51 6.51 0 0 0-4.666 5.5m10.181 1.5c-.144 2.074-.866 3.756-1.58 4.948q-.18.296-.353.552a6.51 6.51 0 0 0 4.666-5.5Zm2.733-1.5a6.51 6.51 0 0 0-4.666-5.5q.184.272.353.552c.714 1.192 1.436 2.874 1.58 4.948Z"/></svg> English</span>
<div class="menu language-menu">
<a lang="id-ID" data-url="/?lang=id-ID" class="item ">Bahasa Indonesia</a>
<a lang="de-DE" data-url="/?lang=de-DE" class="item ">Deutsch</a>
<a lang="en-US" data-url="/?lang=en-US" class="item active selected">English</a>
<a lang="es-ES" data-url="/?lang=es-ES" class="item ">Español</a>
<a lang="eo" data-url="/?lang=eo" class="item ">Esperanto</a>
<a lang="fil" data-url="/?lang=fil" class="item ">Filipino</a>
<a lang="fr-FR" data-url="/?lang=fr-FR" class="item ">Français</a>
<a lang="it-IT" data-url="/?lang=it-IT" class="item ">Italiano</a>
<a lang="lv-LV" data-url="/?lang=lv-LV" class="item ">Latviešu</a>
<a lang="hu-HU" data-url="/?lang=hu-HU" class="item ">Magyar nyelv</a>
<a lang="nl-NL" data-url="/?lang=nl-NL" class="item ">Nederlands</a>
<a lang="pl-PL" data-url="/?lang=pl-PL" class="item ">Polski</a>
<a lang="pt-PT" data-url="/?lang=pt-PT" class="item ">Português de Portugal</a>
<a lang="pt-BR" data-url="/?lang=pt-BR" class="item ">Português do Brasil</a>
<a lang="sl" data-url="/?lang=sl" class="item ">Slovenščina</a>
<a lang="fi-FI" data-url="/?lang=fi-FI" class="item ">Suomi</a>
<a lang="sv-SE" data-url="/?lang=sv-SE" class="item ">Svenska</a>
<a lang="tr-TR" data-url="/?lang=tr-TR" class="item ">Türkçe</a>
<a lang="cs-CZ" data-url="/?lang=cs-CZ" class="item ">Čeština</a>
<a lang="el-GR" data-url="/?lang=el-GR" class="item ">Ελληνικά</a>
<a lang="bg" data-url="/?lang=bg" class="item ">Български</a>
<a lang="ru-RU" data-url="/?lang=ru-RU" class="item ">Русский</a>
<a lang="uk-UA" data-url="/?lang=uk-UA" class="item ">Українська</a>
<a lang="fa-IR" data-url="/?lang=fa-IR" class="item ">فارسی</a>
<a lang="ja-JP" data-url="/?lang=ja-JP" class="item ">日本語</a>
<a lang="zh-CN" data-url="/?lang=zh-CN" class="item ">简体中文</a>
<a lang="zh-TW" data-url="/?lang=zh-TW" class="item ">繁體中文(台灣)</a>
<a lang="zh-HK" data-url="/?lang=zh-HK" class="item ">繁體中文(香港)</a>
<a lang="ko-KR" data-url="/?lang=ko-KR" class="item ">한국어</a>
</div>
</div>
<a href="/assets/licenses.txt">Licenses</a>
<a href="/api/swagger">API</a>
</div>
</footer>
<script src="/assets/js/index.js?v=8.0.1~gitea-1.22.0" onerror="alert('Failed to load asset files from ' + this.src + '. Please make sure the asset files can be accessed.')"></script>
</body>
</html>

View file

@ -3,8 +3,12 @@ Namespaces
.. objectives:: Objectives .. objectives:: Objectives
In this section we are going to evolve our use case. We are going to need a new tool, the concept of :term:`namespaces <namespace>`.
And our use case is going to evolve.
We're going to use a Firefox add-on called `Foxy Proxy <https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/>`_. We're going to use a Firefox add-on called `Foxy Proxy <https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/>`_.
In this context we will have a new way of organizing our structure files.
.. prerequisites:: Prerequisites .. prerequisites:: Prerequisites
@ -24,51 +28,102 @@ Namespaces
git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git git clone https://forge.cloud.silique.fr/stove/rougail-tutorials.git
git switch --detach 1.1_180 git switch --detach 1.1_180
.. note:: The purpose here is not to teach how to use the Foxy Proxy addon,
but rather to explain that using this Firefox plugin will require us
to make decisions about how to organize our variables.
We will store them in namespaces.
Namespace Namespace
------------ ------------
The :term:`namespaces <namespace>` are a new, completely different way of separating and organising our :term:`structure files <structure file>`.
We're gonna see how.
We will begin by adding a parameter to our Rougail CLI:
.. raw:: html
:class: terminal
:url: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_180/config/01/cmd_ro.txt
rougail -m firefox/ -s Firefox --types types/proxy --modes_level basic standard advanced -o doc ..
rougail -m firefox/ -s Firefox --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml
qu'est-ce que c'est que ce -s ? Now let's pay attention to the `-s` parameter. This namespace option has the value `Firefox`.
What does this imply?
rougail -m firefox/ -s Firefox --types types/proxy --modes_level basic standard advanced -u yaml -yf config/01/config.yml So far, to assign our :term:`user data` to a structure file like this one:
.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/tag/v1.1_180/firefox/60-dns_over_https.yml
:language: yaml
:caption: The `firefox/60-dns_over_https.yml` structure file
..
%YAML 1.2
---
version: 1.1
---------------------------------------------------------------------------------- dns_over_https: # DNS over HTTPS
Separation of structures into namespaces enable_dns_over_https: false # Enable DNS over HTTPS
----------------------------------------
.. glossary:: provider:
description: Use Provider
choices:
- Cloudflare
- NextDNS
- Custom
default: Cloudflare
disabled:
variable: _.enable_dns_over_https
when: false
namespace custom_dns_url:
description: Custom DNS URL
type: web_address
validators:
- jinja: |-
{{ _.custom_dns_url.startswith("http://") }}
return_type: boolean
description: must starts with 'https://' only
disabled:
jinja: |-
{{ _.provider is propertyerror or _.provider != 'Custom' }}
return_type: boolean
description: if "_.provider" is not "Custom"
...
A namespace is a way to organize and group related variables under a unique name. We had to enter :term:`user datas <user data>` of this new shape:
It enables us to: .. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_170/config/02/config.yml
:language: yaml
:caption: user data settings with the `dns_over_https` family
- avoid naming conflicts ..
- allow logical grouping: related variables can be grouped together ---
- scope control: namespaces limit the visibility of variable to the namespace itself dns_over_https:
enable_dns_over_https: true
.. note:: By default there is no named namespace set, But now that we have defined a namespace, we need to populate our :term:`user datas <user data>` in this shape:
actually there is always a namespace, :ref:`the default namespace <defaultnamespace>`.
.. extinclude:: https://forge.cloud.silique.fr/stove/rougail-tutorials/raw/commit/v1.1_180/config/01/config.yml
:language: yaml
:caption: user data settings about the `dns_over_https` family with the `firefox` namespace
--------------------------------------------------------------------------------- ..
Namespace ---
----------- firefox:
dns_over_https:
enable_dns_over_https: true
The purpose here is not to teach you how to use the Foxy Proxy addon, Notice the difference: we have now a `firefox` namespace.
but rather to explain that using this Firefox plugin will require us Contrary to a misinterpretation we might have upon first reading, it is not a family.
to make decisions about how to organize our variables. It's a namespace.
We will store them in namespaces. .. questions:: What is the purpose of creating a namespace?
Variables related to the Foxy Proxy plugin will be stored in a separate namespace. Well, this allows for logical grouping. We'll be able to clearly separate
the user data related to our Foxy Proxy plugin.
New "FoxyProxy" namespace New "FoxyProxy" namespace
---------------------------- ----------------------------
@ -79,7 +134,7 @@ New "FoxyProxy" namespace
git switch --detach 1.1_181 git switch --detach 1.1_181
Variables related to the Foxy Proxy plugin will be stored in a separate namespaces.
.. image:: images/foxyproxy.png .. image:: images/foxyproxy.png

View file

@ -147,6 +147,6 @@ FIXME: je ne comprends pas bien pourquoi on a title qui est une espèce de multi
.. keypoints:: let's review the key points .. keypoints:: let's review the key points
We saw a :term:`sequence` type family. We saw a :term:`sequence` type family, which full name is :ref:`Sequence of homogeneous elements <sequence_family>`.