{"title":"Skriva dokumentation","version":"6.0","locale":"sv","docname":"internals/contributing/writing-documentation","url":"/sv/6.0/internals/contributing/writing-documentation/","canonical":"https://djangodocs.dev/sv/6.0/internals/contributing/writing-documentation/","summary":"Vi lägger stor vikt vid att dokumentationen är konsekvent och läsbar. Django skapades trots allt i en journalistisk miljö! Så vi behandlar vår dokumentation som vi…","html":"<h1>Skriva dokumentation<a class=\"heading-anchor\" href=\"#writing-documentation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Vi lägger stor vikt vid att dokumentationen är konsekvent och läsbar. Django skapades trots allt i en journalistisk miljö! Så vi behandlar vår dokumentation som vi behandlar vår kod: vi strävar efter att förbättra den så ofta som möjligt.</p>\n<p>Dokumentationsändringar sker i allmänhet i två former:</p>\n<ul class=\"simple\">\n<li><p>Allmänna förbättringar: rättelser av stavfel, felrättningar och bättre förklaringar genom tydligare skrivningar och fler exempel.</p></li>\n<li><p>Nya funktioner: dokumentation av funktioner som har lagts till i ramverket sedan den senaste utgåvan.</p></li>\n</ul>\n<p>I det här avsnittet förklaras hur skribenter kan utforma sina dokumentationsändringar på de mest användbara och minst felbenägna sätten.</p>\n<section id=\"the-django-documentation-process\">\n<h2>Djangos dokumentationsprocess<a class=\"heading-anchor\" href=\"#the-django-documentation-process\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Även om Djangos dokumentation är avsedd att läsas som HTML på <a class=\"reference external\" href=\"https://docs.djangoproject.com/\">https://docs.djangoproject.com/</a>, redigerar vi den som en samling vanliga textfiler skrivna i märkspråket reStructuredText för maximal flexibilitet.</p>\n<p>Vi arbetar från utvecklingsversionen av repository eftersom den har den senaste och bästa dokumentationen, precis som den har den senaste och bästa koden.</p>\n<p>Vi backporterar också dokumentationsfixar och förbättringar, enligt sammanslagningen, till den senaste versionsgrenen. Detta beror på att det är fördelaktigt att dokumentationen för den senaste utgåvan är uppdaterad och korrekt (se <span class=\"xref std std-ref\">skillnader-mellan-dok-versioner</span>).</p>\n<p>Djangos dokumentation använder dokumentationssystemet <a class=\"reference external\" href=\"https://www.sphinx-doc.org/\">Sphinx</a>, som i sin tur är baserat på <a class=\"reference external\" href=\"https://docutils.sourceforge.io/\">docutils</a>. Grundtanken är att lättformaterad dokumentation i klartext omvandlas till HTML, PDF och andra utdataformat.</p>\n<p>Sphinx innehåller ett <code class=\"docutils literal notranslate\"><span class=\"pre\">sphinx-build</span></code>-kommando för att omvandla reStructuredText till andra format, t.ex. HTML och PDF. Detta kommando är konfigurerbart, men Django-dokumentationen innehåller en <code class=\"docutils literal notranslate\"><span class=\"pre\">Makefile</span></code> som ger ett kortare <code class=\"docutils literal notranslate\"><span class=\"pre\">make</span> <span class=\"pre\">html</span></code>-kommando.</p>\n</section>\n<section id=\"how-the-documentation-is-organized\">\n<h2>Hur dokumentationen är organiserad<a class=\"heading-anchor\" href=\"#how-the-documentation-is-organized\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dokumentationen är uppdelad i flera kategorier:</p>\n<ul>\n<li><p><a class=\"reference internal\" href=\"/sv/6.0/intro/\"><span class=\"doc\">Tutorials</span></a> tar läsaren i handen genom en serie steg för att skapa något.</p>\n<p>Det viktiga i en handledning är att hjälpa läsaren att uppnå något användbart, helst så tidigt som möjligt, för att ge dem självförtroende.</p>\n<p>Förklara vad det är för problem vi löser, så att läsaren förstår vad vi försöker åstadkomma. Känn inte att du måste börja med att förklara hur saker och ting fungerar - det viktiga är vad läsaren gör, inte vad du förklarar. Det kan vara bra att hänvisa tillbaka till vad du har gjort och förklara efteråt.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"/sv/6.0/topics/\"><span class=\"doc\">Topic guides</span></a> syftar till att förklara ett begrepp eller ämne på en ganska hög nivå.</p>\n<p>Länka till referensmaterial snarare än att upprepa det. Använd exempel och tveka inte att förklara saker som verkar väldigt grundläggande för dig - det kan vara den förklaring som någon annan behöver.</p>\n<p>Genom att tillhandahålla bakgrundskontext kan en nykomling koppla ämnet till sådant som han eller hon redan känner till.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"/sv/6.0/ref/\"><span class=\"doc\">Reference guides</span></a> innehåller tekniska referenser för API:er. De beskriver hur Djangos interna maskineri fungerar och ger instruktioner om hur det används.</p>\n<p>Håll referensmaterialet tätt fokuserat på ämnet. Utgå från att läsaren redan förstår de grundläggande begreppen men behöver veta eller bli påmind om hur Django gör det.</p>\n<p>Referensguider är inte rätt plats för allmänna förklaringar. Om du förklarar grundläggande begrepp kan det vara en god idé att flytta det materialet till en ämnesguide.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"/sv/6.0/howto/\"><span class=\"doc\">How-to guides</span></a> är recept som tar läsaren genom olika steg i viktiga ämnen.</p>\n<p>Det som är viktigast i en how-to guide är vad användaren vill uppnå. En how-to bör alltid vara resultatorienterad snarare än fokuserad på interna detaljer om hur Django implementerar det som diskuteras.</p>\n<p>Dessa guider är mer avancerade än handledningarna och förutsätter viss kunskap om hur Django fungerar. Utgå från att läsaren har följt handledningarna och tveka inte att hänvisa läsaren tillbaka till lämplig handledning i stället för att upprepa samma material.</p>\n</li>\n</ul>\n</section>\n<section id=\"how-to-start-contributing-documentation\">\n<h2>Hur man börjar bidra med dokumentation<a class=\"heading-anchor\" href=\"#how-to-start-contributing-documentation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"clone-the-django-repository-to-your-local-machine\">\n<h3>Klona Django-förvaret till din lokala maskin<a class=\"heading-anchor\" href=\"#clone-the-django-repository-to-your-local-machine\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Om du vill börja bidra till våra dokument kan du hämta utvecklingsversionen av Django från källkodsförvaret (se <a class=\"reference internal\" href=\"/sv/6.0/topics/install/#installing-development-version\"><span class=\"std std-ref\">Installera utvecklingsversionen</span></a>):</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>git<span class=\"w\"> </span>clone<span class=\"w\"> </span>https://github.com/django/django.git\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> git clone https://github.com/django/django.git\n</code></pre></div></div></div>\n<p>Om du planerar att skicka in dessa ändringar kan det vara bra att skapa en fork av Django-arkivet och klona den här forken istället.</p>\n</section>\n<section id=\"set-up-a-virtual-environment-and-install-dependencies\">\n<h3>Konfigurera en virtuell miljö och installera beroenden<a class=\"heading-anchor\" href=\"#set-up-a-virtual-environment-and-install-dependencies\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Skapa och aktivera en virtuell miljö och installera sedan beroendena:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$<span class=\"w\"> </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>venv<span class=\"w\"> </span>.venv\n$<span class=\"w\"> </span><span class=\"nb\">source</span><span class=\"w\"> </span>.venv/bin/activate\n$<span class=\"w\"> </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-r<span class=\"w\"> </span>docs/requirements.txt\n</code></pre></div>\n</section>\n<section id=\"build-the-documentation-locally\">\n<h3>Bygg dokumentationen lokalt<a class=\"heading-anchor\" href=\"#build-the-documentation-locally\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Vi kan skapa HTML-utdata från katalogen <code class=\"docutils literal notranslate\"><span class=\"pre\">docs</span></code>:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-1-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span><span class=\"nb\">cd</span><span class=\"w\"> </span>docs\n<span class=\"gp\">$ </span>make<span class=\"w\"> </span>html\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-1-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> <span class=\"k\">cd</span> docs\n<span class=\"gp\">...\\&gt;</span> make.bat html\n</code></pre></div></div></div>\n<p>Din lokalt byggda dokumentation kommer att finnas tillgänglig på <code class=\"docutils literal notranslate\"><span class=\"pre\">_build/html/index.html</span></code> och den kan visas i vilken webbläsare som helst, även om den kommer att ha ett annat tema än dokumentationen på <a class=\"reference external\" href=\"https://docs.djangoproject.com/\">docs.djangoproject.com</a>. Detta är OK! Om dina ändringar ser bra ut på din lokala maskin kommer de att se bra ut på webbplatsen.</p>\n</section>\n<section id=\"making-edits-to-the-documentation\">\n<h3>Gör ändringar i dokumentationen<a class=\"heading-anchor\" href=\"#making-edits-to-the-documentation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Källfilerna är <code class=\"docutils literal notranslate\"><span class=\"pre\">.txt</span></code>-filer som finns i katalogen <code class=\"docutils literal notranslate\"><span class=\"pre\">docs/</span></code>.</p>\n<p>Dessa filer är skrivna i märkspråket reStructuredText. För att lära dig markeringen, se <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html#rst-index\" title=\"(in Sphinx v9.1.1)\"><span class=\"xref std std-ref\">reStructuredText-referensen</span></a>.</p>\n<p>För att redigera den här sidan skulle vi t.ex. redigera filen <a class=\"extlink-source reference external\" href=\"https://github.com/django/django/blob/stable/6.0.x/docs/internals/contributing/writing-documentation.txt\">docs/internals/contributing/writing-documentation.txt</a> och bygga om HTML med <code class=\"docutils literal notranslate\"><span class=\"pre\">make</span> <span class=\"pre\">html</span></code>.</p>\n</section>\n<section id=\"documentation-quality-checks\">\n<span id=\"documentation-checks\"></span><h3>Kvalitetskontroller av dokumentation<a class=\"heading-anchor\" href=\"#documentation-quality-checks\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Several checks help maintain Django’s documentation quality, including\n<a class=\"reference internal\" href=\"#documentation-spelling-check\"><span class=\"std std-ref\">spelling</span></a>,\n<a class=\"reference internal\" href=\"#documentation-code-block-format-check\"><span class=\"std std-ref\">code block formatting</span></a>, and\n<a class=\"reference internal\" href=\"#documentation-lint-check\"><span class=\"std std-ref\">documentation style</span></a>.</p>\n<p>Dessa kontroller körs automatiskt i CI och måste godkännas innan dokumentationsändringar kan slås samman. De kan också köras lokalt med ett enda kommando:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-2-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>make<span class=\"w\"> </span>check\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-2-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> make.bat check\n</code></pre></div></div></div>\n<p>Det här kommandot kör alla aktuella kontroller och inkluderar även eventuella nya kontroller som läggs till i framtiden.</p>\n<section id=\"spelling-check\">\n<span id=\"documentation-spelling-check\"></span><h4>Stavningskontroll<a class=\"heading-anchor\" href=\"#spelling-check\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Innan du skickar in dina dokument är det en bra idé att köra stavningskontrollen. Du måste först installera <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/sphinxcontrib-spelling/\">sphinxcontrib-spelling</a>. Sedan kör du från katalogen <code class=\"docutils literal notranslate\"><span class=\"pre\">docs</span></code>:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-3-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>make<span class=\"w\"> </span>spelling\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-3-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> make.bat spelling\n</code></pre></div></div></div>\n<p>Felaktiga ord (om sådana finns) tillsammans med fil- och radnummer där de förekommer sparas i <code class=\"docutils literal notranslate\"><span class=\"pre\">_build/spelling/output.txt</span></code>.</p>\n<p>Om du stöter på falska positiva resultat (felmeddelanden som egentligen är korrekta) ska du göra något av följande:</p>\n<ul class=\"simple\">\n<li><p>Surround inline code or brand/technology names with double grave accents\n(``)</p></li>\n<li><p>Hitta synonymer som stavningskontrollen känner igen.</p></li>\n<li><p>Om, och endast om, du är säker på att ordet du använder är korrekt - lägg till det i <code class=\"docutils literal notranslate\"><span class=\"pre\">docs/spelling_wordlist</span></code> (håll listan i alfabetisk ordning).</p></li>\n</ul>\n</section>\n<section id=\"code-block-format-check\">\n<span id=\"documentation-code-block-format-check\"></span><h4>Kontroll av kodblocksformat<a class=\"heading-anchor\" href=\"#code-block-format-check\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Alla Python-kodblock ska formateras med hjälp av <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/blacken-docs/\">blacken-docs</a> auto-formatter. Detta körs automatiskt av <a class=\"reference internal\" href=\"/sv/6.0/internals/contributing/writing-code/coding-style/#coding-style-pre-commit\"><span class=\"std std-ref\">pre-commit hook</span></a> om det är konfigurerat.</p>\n<p>Kontrollen kan också köras manuellt: förutsatt att <code class=\"docutils literal notranslate\"><span class=\"pre\">blacken-docs</span></code> är installerat, kör följande kommando från katalogen <code class=\"docutils literal notranslate\"><span class=\"pre\">docs</span></code>:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-4-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>make<span class=\"w\"> </span>black\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-4-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> make.bat black\n</code></pre></div></div></div>\n<p>Formateraren rapporterar eventuella problem genom att skriva ut dem till terminalen och formaterar om kodblock där det är möjligt.</p>\n</section>\n<section id=\"documentation-lint-check\">\n<span id=\"id3\"></span><h4>Documentation lint check<a class=\"heading-anchor\" href=\"#documentation-lint-check\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Django’s documentation is checked for reStructuredText style and formal issues\nusing <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/sphinx-lint/\">sphinx-lint</a>. This helps catch problems like stray tabs, trailing\nwhitespace, excessive line length, and similar formatting problems.</p>\n<p>Once <code class=\"docutils literal notranslate\"><span class=\"pre\">sphinx-lint</span></code> is installed, the check can be run with the following\ncommand from the <code class=\"docutils literal notranslate\"><span class=\"pre\">docs</span></code> directory:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-5-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>make<span class=\"w\"> </span>lint\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-5-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> make.bat lint\n</code></pre></div></div></div>\n<p>The command prints any violations to the terminal in the form\n<code class=\"docutils literal notranslate\"><span class=\"pre\">path:line:</span> <span class=\"pre\">message</span></code>. If problems are encountered:</p>\n<ul class=\"simple\">\n<li><p>Read the message and fix the indicated issue (for example, remove trailing\nwhitespace, adjust backticks, or replace tabs with spaces).</p></li>\n<li><p>For long lines consider wrapping text onto new lines or breaking long inline\nlinks into named references. The custom line length check should already skip\ncommon false positives such as headings, tables and long links.</p></li>\n</ul>\n</section>\n</section>\n<section id=\"link-check\">\n<span id=\"documentation-link-check\"></span><h3>Länk kontroll<a class=\"heading-anchor\" href=\"#link-check\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Länkar i dokumentation kan bli brutna eller ändras så att de inte längre är den kanoniska länken. Sphinx tillhandahåller en byggare som kan kontrollera om länkarna i dokumentationen fungerar. Från katalogen <code class=\"docutils literal notranslate\"><span class=\"pre\">docs</span></code>, kör:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-6-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>make<span class=\"w\"> </span>linkcheck\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-6-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> make.bat linkcheck\n</code></pre></div></div></div>\n<p>Utdata skrivs ut till terminalen, men kan också hittas i <code class=\"docutils literal notranslate\"><span class=\"pre\">_build/linkcheck/output.txt</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">_build/linkcheck/output.json</span></code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>För att utföra kommandot krävs en internetanslutning och det tar flera minuter eftersom kommandot testar alla länkar som finns i dokumentationen.</p>\n</aside>\n<p>Poster som har statusen ”working” är bra, de som är ”unchecked” eller ”ignored” har hoppats över eftersom de antingen inte kan kontrolleras eller har matchat ignoreringsregler i konfigurationen.</p>\n<p>Poster som har statusen ”broken” behöver åtgärdas. De som har statusen ”omdirigerad” kan behöva uppdateras för att peka på den kanoniska platsen, t.ex. om schemat har ändrats <code class=\"docutils literal notranslate\"><span class=\"pre\">http://</span></code> → <code class=\"docutils literal notranslate\"><span class=\"pre\">https://</span></code>. I vissa fall vill vi inte uppdatera en ”omdirigerad” länk, t.ex. en omskrivning för att alltid peka på den senaste eller stabila versionen av dokumentationen, t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">/en/stable/</span></code> → <code class=\"docutils literal notranslate\"><span class=\"pre\">/en/3.2/</span></code>.</p>\n</section>\n</section>\n<section id=\"writing-style\">\n<h2>Skrivstil<a class=\"heading-anchor\" href=\"#writing-style\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>När pronomen används för att referera till en hypotetisk person, t.ex. ”en användare med en sessionscookie”, ska könsneutrala pronomen (de/deras/dem) användas. Istället för:</p>\n<ul class=\"simple\">\n<li><p>han eller hon… använd de.</p></li>\n<li><p>honom eller henne… använd dem.</p></li>\n<li><p>hans eller hennes… använda deras.</p></li>\n<li><p>hans eller hennes… använd deras.</p></li>\n<li><p>själv eller sig själv… använda sig själv.</p></li>\n</ul>\n<p>Försök att undvika att använda ord som minimerar svårighetsgraden i en uppgift eller operation, t.ex. ”enkelt”, ”enkelt”, ”bara”, ”bara”, ”enkelt”, ”enkelt” och så vidare. Människors erfarenheter kanske inte stämmer överens med dina förväntningar och de kan bli frustrerade när de inte tycker att ett steg är så ”enkelt” eller ”enkelt” som det påstås vara.</p>\n</section>\n<section id=\"commonly-used-terms\">\n<h2>Vanligt förekommande termer<a class=\"heading-anchor\" href=\"#commonly-used-terms\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Här följer några stilriktlinjer för vanliga termer som används i dokumentationen:</p>\n<ul class=\"simple\">\n<li><p><strong>Django</strong> – när du hänvisar till ramverket, skriv Django med stor bokstav. Det är gemener endast i Python-kod och i logotypen djangoproject.com.</p></li>\n<li><p><strong>email</strong> – utan bindestreck.</p></li>\n<li><p><strong>HTTP</strong> – det förväntade uttalet är ”Aitch Tee Tee Pee” och bör därför föregås av ”an” och inte ”a”.</p></li>\n<li><p><strong>MySQL</strong>, <strong>PostgreSQL</strong>, <strong>SQLite</strong></p></li>\n<li><p><strong>SQL</strong> – När man hänvisar till SQL ska det förväntade uttalet vara ”Ess Queue Ell” och inte ”sequel”. I en fras som ”Returnerar ett SQL-uttryck” ska alltså ”SQL” föregås av ”an” och inte ”a”.</p></li>\n<li><p><strong>Python</strong> – när du hänvisar till språket, skriv Python med stor bokstav.</p></li>\n<li><p><strong>realize</strong>, <strong>customize</strong>, <strong>initialize</strong>, etc. – använd det amerikanska suffixet ”ize”, inte ”ise”</p></li>\n<li><p><strong>subclass</strong> – det är ett enda ord utan bindestreck, både som verb (”subclass that model”) och som substantiv (”create a subclass”).</p></li>\n<li><p><strong>Webben</strong>, <strong>webbramverk</strong> - det är inte stor bokstav.</p></li>\n<li><p><strong>webbplats</strong> – använd ett ord, utan versaler.</p></li>\n</ul>\n</section>\n<section id=\"django-specific-terminology\">\n<h2>Django-specifik terminologi<a class=\"heading-anchor\" href=\"#django-specific-terminology\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul class=\"simple\">\n<li><p><strong>modell</strong> – det är inte stor bokstav.</p></li>\n<li><p><strong>template</strong> – det är inte kapitaliserat.</p></li>\n<li><p><strong>URLconf</strong> – använd tre stora bokstäver, utan mellanslag före ”conf”</p></li>\n<li><p><strong>view</strong> – det är inte kapitaliserat.</p></li>\n</ul>\n</section>\n<section id=\"guidelines-for-restructuredtext-files\">\n<h2>Riktlinjer för reStructuredText-filer<a class=\"heading-anchor\" href=\"#guidelines-for-restructuredtext-files\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Dessa riktlinjer reglerar formatet på vår reST-dokumentation (reStructuredText):</p>\n<ul>\n<li><p>I avsnittsrubriker används stor bokstav endast för inledande ord och egennamn.</p></li>\n<li><p>Dokumentationen ska vara 80 tecken bred, såvida inte ett kodexempel är betydligt mindre läsbart om det delas upp på två rader, eller om det finns något annat bra skäl.</p></li>\n<li><p>Det viktigaste att tänka på när du skriver och redigerar dokument är att ju mer semantisk markering du kan lägga till, desto bättre. Så här är det:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code>Add <span class=\"s\">``django.contrib.auth``</span> to your <span class=\"s\">``INSTALLED_APPS``</span>...\n</code></pre></div>\n<p>Det är inte alls lika hjälpsamt som..:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code>Add <span class=\"na\">:mod:</span><span class=\"nv\">`django.contrib.auth`</span> to your <span class=\"na\">:setting:</span><span class=\"nv\">`INSTALLED_APPS`</span>...\n</code></pre></div>\n<p>Detta beror på att Sphinx kommer att generera korrekta länkar för den senare, vilket är till stor hjälp för läsarna.</p>\n<p>Du kan prefixa målet med en <code class=\"docutils literal notranslate\"><span class=\"pre\">~</span></code> (det är en tilde) för att bara få den ”sista biten” av den sökvägen. Så <code class=\"docutils literal notranslate\"><span class=\"pre\">:mod:`~django.contrib.auth</span></code> kommer att visa en länk med titeln ”auth”.</p>\n</li>\n<li><p>Använd <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html#module-sphinx.ext.intersphinx\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">intersphinx</span></code></a> för att referera till Pythons och Sphinx dokumentation.</p></li>\n<li><p>Lägg till <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">code-block::</span> <span class=\"pre\">&lt;lang&gt;</span></code> till bokstavliga block så att de blir markerade. Föredrar att förlita sig på automatisk markering med hjälp av <code class=\"docutils literal notranslate\"><span class=\"pre\">::</span></code> (två kolon). Detta har fördelen att om koden innehåller någon ogiltig syntax, kommer den inte att markeras. Om du till exempel lägger till <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">code-block::</span> <span class=\"pre\">python</span></code> kommer du att tvinga fram markering trots ogiltig syntax.</p></li>\n<li><p>För att förbättra läsbarheten, använd <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">admonition::</span> <span class=\"pre\">Beskrivande</span> <span class=\"pre\">titel</span></code> i stället för <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">note::</span></code>. Använd dessa rutor sparsamt.</p></li>\n<li><p>Använd dessa rubrikstilar:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"gh\">===</span>\n<span class=\"gh\">One</span>\n<span class=\"gh\">===</span>\n\n<span class=\"gh\">Two</span>\n<span class=\"gh\">===</span>\n\n<span class=\"gh\">Three</span>\n<span class=\"gh\">-----</span>\n\n<span class=\"gh\">Four</span>\n<span class=\"gh\">~~~~</span>\n\n<span class=\"gh\">Five</span>\n<span class=\"gh\">^^^^</span>\n</code></pre></div>\n</li>\n<li><p>Använd <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-rfc\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref rst rst-role docutils literal notranslate\"><span class=\"pre\">:rfc:</span></code></a> för att referera till en Request for Comments (RFC) och försök att länka till det relevanta avsnittet om möjligt. Använd till exempel <code class=\"docutils literal notranslate\"><span class=\"pre\">:rfc:`2324#section-2.3.2</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">:rfc:`Anpassad</span> <span class=\"pre\">länktext</span> <span class=\"pre\">&lt;2324#section-2.3.2&gt;`</span></code>.</p></li>\n<li><p>Använd <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-pep\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref rst rst-role docutils literal notranslate\"><span class=\"pre\">:pep:</span></code></a> för att referera till ett Python Enhancement Proposal (PEP) och försök att länka till det relevanta avsnittet om möjligt. Använd till exempel <code class=\"docutils literal notranslate\"><span class=\"pre\">:pep:`20#easter-egg</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">:pep:`Easter</span> <span class=\"pre\">Egg</span> <span class=\"pre\">&lt;20#easter-egg&gt;</span></code>.</p></li>\n<li><p>Använd <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-mimetype\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref rst rst-role docutils literal notranslate\"><span class=\"pre\">:mimetype:</span></code></a> för att hänvisa till en MIME-typ om inte värdet citeras för ett kodexempel.</p></li>\n<li><p>Använd <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/referencing.html#role-envvar\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref rst rst-role docutils literal notranslate\"><span class=\"pre\">:envvar:</span></code></a> för att hänvisa till en miljövariabel. Du kan också behöva definiera en referens till dokumentationen för den miljövariabeln med <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/domains/standard.html#directive-envvar\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref rst rst-dir docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">envvar::</span></code></a>.</p></li>\n<li><p>Använd <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-cve\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref rst rst-role docutils literal notranslate\"><span class=\"pre\">:cve:</span></code></a> för att referera till en CVE-identifierare (Common Vulnerabilities and Exposures). Använd till exempel <code class=\"docutils literal notranslate\"><span class=\"pre\">:cve:`2019-14232</span></code>.</p></li>\n<li><p>When documenting Python objects (classes, methods, attributes, etc.) using\n<a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html\">Sphinx directives</a> such as <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">class::</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">method::</span></code>, and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">attribute::</span></code>, all content must be properly indented to ensure correct\nrendering and to support features like automatic table of contents\ngeneration.</p>\n<p>Follow these rules:</p>\n<ul class=\"simple\">\n<li><p>The directive itself remains flush with the left margin (no indentation).</p></li>\n<li><p>All descriptive text under the directive must be indented by 4 spaces.</p></li>\n<li><p>Multi-line descriptions must keep the same indentation level.</p></li>\n<li><p>Nested directives (for example, methods inside a class) require an\nadditional 4 spaces of indentation to maintain hierarchy.</p></li>\n<li><p>Field lists (such as <code class=\"docutils literal notranslate\"><span class=\"pre\">:param:</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">:returns:</span></code>, etc.) must align with the\ndirective’s content level.</p></li>\n</ul>\n<p>Example:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">class</span><span class=\"p\">::</span> MyClass\n\n    A brief description of the class.\n\n<span class=\"p\">    ..</span> <span class=\"ow\">method</span><span class=\"p\">::</span> my_method(arg1, arg2)\n\n        Method description.\n\n        <span class=\"nc\">:param arg1:</span> Description of the first parameter\n        <span class=\"nc\">:param arg2:</span> Description of the second parameter\n\n<span class=\"p\">    ..</span> <span class=\"ow\">attribute</span><span class=\"p\">::</span> my_attribute\n\n        Attribute description.\n</code></pre></div>\n</li>\n</ul>\n</section>\n<section id=\"django-specific-markup\">\n<h2>Django-specifik markering<a class=\"heading-anchor\" href=\"#django-specific-markup\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Förutom <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html#rst-index\" title=\"(in Sphinx v9.1.1)\"><span class=\"xref std std-ref\">Sphinxs inbyggda markup</span></a>, definierar Djangos dokument några extra beskrivningsenheter:</p>\n<ul>\n<li><p>Inställningar:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">setting</span><span class=\"p\">::</span> INSTALLED_APPS\n</code></pre></div>\n<p>För att länka till en inställning använder du <code class=\"docutils literal notranslate\"><span class=\"pre\">:setting:`INSTALLED_APPS</span></code>.</p>\n</li>\n<li><p>Malltaggar:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">templatetag</span><span class=\"p\">::</span> regroup\n</code></pre></div>\n<p>För att länka, använd <code class=\"docutils literal notranslate\"><span class=\"pre\">:ttag:`regroup</span></code>.</p>\n</li>\n<li><p>Filter för mallar:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">templatefilter</span><span class=\"p\">::</span> linebreaksbr\n</code></pre></div>\n<p>För att länka, använd <code class=\"docutils literal notranslate\"><span class=\"pre\">:tfilter:`linebreaksbr</span></code>.</p>\n</li>\n<li><p>Fältuppslagningar (t.ex. <code class=\"docutils literal notranslate\"><span class=\"pre\">Foo.objects.filter(bar__exact=whatever)</span></code>):</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">fieldlookup</span><span class=\"p\">::</span> exact\n</code></pre></div>\n<p>För att länka, använd <code class=\"docutils literal notranslate\"><span class=\"pre\">:lookup:`exact</span></code>.</p>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin</span></code> kommandon:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">django-admin</span><span class=\"p\">::</span> migrate\n</code></pre></div>\n<p>För att länka, använd <code class=\"docutils literal notranslate\"><span class=\"pre\">:djadmin:`migrate</span></code>.</p>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin</span></code> kommandoradsalternativ:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">django-admin-option</span><span class=\"p\">::</span> --traceback\n</code></pre></div>\n<p>För att länka, använd <code class=\"docutils literal notranslate\"><span class=\"pre\">:option:`command_name</span> <span class=\"pre\">--traceback</span></code> (eller utelämna <code class=\"docutils literal notranslate\"><span class=\"pre\">command_name</span></code> för de alternativ som delas av alla kommandon som <code class=\"docutils literal notranslate\"><span class=\"pre\">--verbosity</span></code>).</p>\n</li>\n<li><p>Länkar till Trac-ärenden (vanligtvis reserverade för versionsanteckningar för patchar):</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"na\">:ticket:</span><span class=\"nv\">`12345`</span>\n</code></pre></div>\n</li>\n</ul>\n<p>Djangos dokumentation använder ett anpassat <code class=\"docutils literal notranslate\"><span class=\"pre\">console</span></code>-direktiv för att dokumentera kommandoradsexempel som involverar <code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">python</span></code>, etc.). I HTML-dokumentationen återges ett användargränssnitt med två flikar, där en flik visar en kommandotolk i Unix-stil och en andra flik visar en Windows-prompt.</p>\n<p>Du kan till exempel ersätta detta fragment:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code>use this command:\n\n<span class=\"p\">..</span> <span class=\"ow\">code-block</span><span class=\"p\">::</span> console\n\n    $ python manage.py shell\n</code></pre></div>\n<p>med den här:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code>use this command:\n\n<span class=\"p\">..</span> <span class=\"ow\">console</span><span class=\"p\">::</span>\n\n    $ python manage.py shell\n</code></pre></div>\n<p>Lägg märke till två saker:</p>\n<ul class=\"simple\">\n<li><p>Du kommer vanligtvis att ersätta förekomster av direktivet <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">code-block::</span> <span class=\"pre\">console</span></code>.</p></li>\n<li><p>Du behöver inte ändra det faktiska innehållet i kodexemplet. Du skriver det fortfarande utifrån en Unix-y-miljö (dvs. en <code class=\"docutils literal notranslate\"><span class=\"pre\">'$'</span></code> prompt-symbol, <code class=\"docutils literal notranslate\"><span class=\"pre\">'/'</span></code> som separator för filsystemets sökvägskomponenter, etc.)</p></li>\n</ul>\n<p>I exemplet ovan visas ett kodexempelblock med två flikar. Den första kommer att visa:</p>\n<div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>manage.py<span class=\"w\"> </span>shell\n</code></pre></div>\n<p>(Inga ändringar jämfört med vad <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">code-block::</span> <span class=\"pre\">console</span></code> skulle ha gett).</p>\n<p>Den andra kommer att visa:</p>\n<div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows code\"><code><span class=\"gp\">...\\&gt;</span> py manage.py shell\n</code></pre></div>\n</section>\n<section id=\"documenting-new-features\">\n<span id=\"id5\"></span><h2>Dokumentera nya funktioner<a class=\"heading-anchor\" href=\"#documenting-new-features\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Vår policy för nya funktioner är:</p>\n<blockquote>\n<div><p>All dokumentation av nya funktioner bör skrivas på ett sätt som tydligt anger de funktioner som endast finns tillgängliga i utvecklingsversionen av Django. Utgå från att dokumentationsläsarna använder den senaste versionen, inte utvecklingsversionen.</p>\n</div></blockquote>\n<p>Vårt föredragna sätt att markera nya funktioner är genom att inleda funktionens dokumentation med: ”<code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">versionadded::</span> <span class=\"pre\">X.Y</span></code>”, följt av en obligatorisk blankrad och en valfri beskrivning (indragen).</p>\n<p>Allmänna förbättringar eller andra ändringar av API:erna som bör betonas bör använda direktivet ”<code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">versionchanged::</span> <span class=\"pre\">X.Y</span></code>” direktiv (med samma format som <code class=\"docutils literal notranslate\"><span class=\"pre\">versionadded</span></code> som nämns ovan.</p>\n<p>Dessa ”versionadded”- och ”versionchanged”-block bör vara ”självförsörjande” Med andra ord, eftersom vi bara behåller dessa anteckningar i två utgåvor, är det bra att kunna ta bort anteckningen och dess innehåll utan att behöva omflöda, återindentera eller redigera den omgivande texten. I stället för att lägga hela beskrivningen av en ny eller ändrad funktion i ett block kan du till exempel göra så här:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">class</span><span class=\"p\">::</span> Author(first_name, last_name, middle_name=None)\n\n    A person who writes books.\n\n    <span class=\"s\">``first_name``</span> is ...\n\n<span class=\"c\">    ...</span>\n\n<span class=\"c\">    ``middle_name`` is ...</span>\n\n<span class=\"c\">    .. versionchanged:: A.B</span>\n\n<span class=\"c\">        The ``middle_name`` argument was added.</span>\n</code></pre></div>\n<p>Placera de ändrade anteckningarna längst ner i ett avsnitt, inte längst upp.</p>\n<p>Undvik också att hänvisa till en specifik version av Django utanför ett <code class=\"docutils literal notranslate\"><span class=\"pre\">versionadded</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">versionchanged</span></code> block. Även inom ett block är det ofta överflödigt att göra det eftersom dessa anteckningar återges som ”New in Django A.B:” respektive ”Changed in Django A.B”.</p>\n<p>Om en funktion, ett attribut etc. läggs till är det också okej att använda en <code class=\"docutils literal notranslate\"><span class=\"pre\">versionadded</span></code>-annotation så här:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">attribute</span><span class=\"p\">::</span> Author.middle_name\n\n<span class=\"p\">    ..</span> <span class=\"ow\">versionadded</span><span class=\"p\">::</span> A.B\n\n    An author&#39;s middle name.\n</code></pre></div>\n<p>Vi kan ta bort <code class=\"docutils literal notranslate\"><span class=\"pre\">..</span> <span class=\"pre\">versionadded::</span> <span class=\"pre\">A.B</span></code> annotation utan några indragningsändringar när det är dags.</p>\n</section>\n<section id=\"minimizing-images\">\n<h2>Minimering av bilder<a class=\"heading-anchor\" href=\"#minimizing-images\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Optimera bildkomprimeringen där det är möjligt. För PNG-filer, använd OptiPNG och AdvanceCOMP:s <code class=\"docutils literal notranslate\"><span class=\"pre\">advpng</span></code>:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-7-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span><span class=\"nb\">cd</span><span class=\"w\"> </span>docs\n<span class=\"gp\">$ </span>optipng<span class=\"w\"> </span>-o7<span class=\"w\"> </span>-zm1-9<span class=\"w\"> </span>-i0<span class=\"w\"> </span>-strip<span class=\"w\"> </span>all<span class=\"w\"> </span><span class=\"sb\">`</span>find<span class=\"w\"> </span>.<span class=\"w\"> </span>-type<span class=\"w\"> </span>f<span class=\"w\"> </span>-not<span class=\"w\"> </span>-path<span class=\"w\"> </span><span class=\"s2\">&quot;./_build/*&quot;</span><span class=\"w\"> </span>-name<span class=\"w\"> </span><span class=\"s2\">&quot;*.png&quot;</span><span class=\"sb\">`</span>\n<span class=\"gp\">$ </span>advpng<span class=\"w\"> </span>-z4<span class=\"w\"> </span><span class=\"sb\">`</span>find<span class=\"w\"> </span>.<span class=\"w\"> </span>-type<span class=\"w\"> </span>f<span class=\"w\"> </span>-not<span class=\"w\"> </span>-path<span class=\"w\"> </span><span class=\"s2\">&quot;./_build/*&quot;</span><span class=\"w\"> </span>-name<span class=\"w\"> </span><span class=\"s2\">&quot;*.png&quot;</span><span class=\"sb\">`</span>\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-7-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> <span class=\"k\">cd</span> docs\n<span class=\"gp\">...\\&gt;</span> optipng -o7 -zm1-9 -i0 -strip all `find . -type f -not -path <span class=\"s2\">&quot;.\\_build\\*&quot;</span> -name <span class=\"s2\">&quot;*.png&quot;</span>`\n<span class=\"gp\">...\\&gt;</span> advpng -z4 `find . -type f -not -path <span class=\"s2\">&quot;.\\_build\\*&quot;</span> -name <span class=\"s2\">&quot;*.png&quot;</span>`\n</code></pre></div></div></div>\n<p>Detta är baserat på OptiPNG version 0.7.5. Äldre versioner kan klaga på att alternativet <code class=\"docutils literal notranslate\"><span class=\"pre\">-strip</span> <span class=\"pre\">all</span></code> är förlustbringande.</p>\n</section>\n<section id=\"an-example\">\n<h2>Ett exempel<a class=\"heading-anchor\" href=\"#an-example\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>För att få ett snabbt exempel på hur allt hänger ihop kan du titta på det här hypotetiska exemplet:</p>\n<ul>\n<li><p>För det första kan dokumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">ref/settings.txt</span></code> ha en övergripande layout så här:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"gh\">========</span>\n<span class=\"gh\">Settings</span>\n<span class=\"gh\">========</span>\n\n<span class=\"c\">...</span>\n\n<span class=\"p\">..</span> <span class=\"nt\">_available-settings:</span>\n\n<span class=\"gh\">Available settings</span>\n<span class=\"gh\">==================</span>\n\n<span class=\"c\">...</span>\n\n<span class=\"p\">..</span> <span class=\"nt\">_deprecated-settings:</span>\n\n<span class=\"gh\">Deprecated settings</span>\n<span class=\"gh\">===================</span>\n\n<span class=\"c\">...</span>\n</code></pre></div>\n</li>\n<li><p>Därefter kan dokumentet <code class=\"docutils literal notranslate\"><span class=\"pre\">topics/settings.txt</span></code> innehålla något liknande detta:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code>You can access a :ref:`listing of all available settings\n<span class=\"nt\">&lt;available-settings&gt;</span>`. For a list of deprecated settings see\n<span class=\"na\">:ref:</span><span class=\"nv\">`deprecated-settings`</span>.\n\nYou can find both in the :doc:`settings reference document\n<span class=\"nt\">&lt;/ref/settings&gt;</span>`.\n</code></pre></div>\n<p>Vi använder Sphinx <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/referencing.html#role-doc\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref rst rst-role docutils literal notranslate\"><span class=\"pre\">doc</span></code></a> korsreferenselement när vi vill länka till ett annat dokument som helhet och <a class=\"reference external\" href=\"https://www.sphinx-doc.org/en/master/usage/referencing.html#role-ref\" title=\"(in Sphinx v9.1.1)\"><code class=\"xref rst rst-role docutils literal notranslate\"><span class=\"pre\">ref</span></code></a> element när vi vill länka till en godtycklig plats i ett dokument.</p>\n</li>\n<li><p>Lägg sedan märke till hur inställningarna är kommenterade:</p>\n<div class=\"code-block\" data-language=\"rst\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Rst</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Rst code\"><code><span class=\"p\">..</span> <span class=\"ow\">setting</span><span class=\"p\">::</span> ADMINS\n\n<span class=\"gh\">ADMINS</span>\n<span class=\"gh\">======</span>\n\nDefault: <span class=\"s\">``[]``</span> (Empty list)\n\nA list of all the people who get code error notifications...\n</code></pre></div>\n<p>Detta markerar följande rubrik som det ”kanoniska” målet för inställningen <code class=\"docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code>. Detta innebär att när jag talar om <code class=\"docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code>, kan jag referera till den med <code class=\"docutils literal notranslate\"><span class=\"pre\">:setting:`ADMINS</span></code>.</p>\n</li>\n</ul>\n<p>Det är i princip så allt hänger ihop.</p>\n</section>\n<section id=\"translating-documentation\">\n<h2>Översättning av dokumentation<a class=\"heading-anchor\" href=\"#translating-documentation\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Se <a class=\"reference internal\" href=\"/sv/6.0/internals/contributing/localizing/#translating-documentation\"><span class=\"std std-ref\">Lokalisera Django-dokumentationen</span></a> om du vill hjälpa till att översätta dokumentationen till ett annat språk.</p>\n</section>\n<section id=\"django-admin-man-page\">\n<span id=\"django-admin-manpage\"></span><h2><code class=\"docutils literal notranslate\"><span class=\"pre\">django-admin</span></code> man page<a class=\"heading-anchor\" href=\"#django-admin-man-page\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Sphinx kan generera en manuell sida för kommandot <a class=\"reference internal\" href=\"/sv/6.0/ref/django-admin/\"><span class=\"doc\">django-admin</span></a>. Detta konfigureras i <code class=\"docutils literal notranslate\"><span class=\"pre\">docs/conf.py</span></code>. Till skillnad från andra dokumentationsutgångar bör denna man-sida inkluderas i Django-förvaret och utgåvorna som <code class=\"docutils literal notranslate\"><span class=\"pre\">docs/man/django-admin.1</span></code>. Det finns inget behov av att uppdatera den här filen när du uppdaterar dokumentationen, eftersom den uppdateras en gång som en del av releaseprocessen.</p>\n<p>För att generera en uppdaterad version av man-sidan, i katalogen <code class=\"docutils literal notranslate\"><span class=\"pre\">docs</span></code>, kör:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-8-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>make<span class=\"w\"> </span>man\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-8-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> make.bat man\n</code></pre></div></div></div>\n<p>Den nya man-sidan kommer att skrivas i <code class=\"docutils literal notranslate\"><span class=\"pre\">docs/_build/man/django-admin.1</span></code>.</p>\n</section>","rootId":"writing-documentation","toc":[{"title":"Djangos dokumentationsprocess","anchor":"the-django-documentation-process","children":[]},{"title":"Hur dokumentationen är organiserad","anchor":"how-the-documentation-is-organized","children":[]},{"title":"Hur man börjar bidra med dokumentation","anchor":"how-to-start-contributing-documentation","children":[{"title":"Klona Django-förvaret till din lokala maskin","anchor":"clone-the-django-repository-to-your-local-machine","children":[]},{"title":"Konfigurera en virtuell miljö och installera beroenden","anchor":"set-up-a-virtual-environment-and-install-dependencies","children":[]},{"title":"Bygg dokumentationen lokalt","anchor":"build-the-documentation-locally","children":[]},{"title":"Gör ändringar i dokumentationen","anchor":"making-edits-to-the-documentation","children":[]},{"title":"Kvalitetskontroller av dokumentation","anchor":"documentation-quality-checks","children":[{"title":"Stavningskontroll","anchor":"spelling-check","children":[]},{"title":"Kontroll av kodblocksformat","anchor":"code-block-format-check","children":[]},{"title":"Documentation lint check","anchor":"documentation-lint-check","children":[]}]},{"title":"Länk kontroll","anchor":"link-check","children":[]}]},{"title":"Skrivstil","anchor":"writing-style","children":[]},{"title":"Vanligt förekommande termer","anchor":"commonly-used-terms","children":[]},{"title":"Django-specifik terminologi","anchor":"django-specific-terminology","children":[]},{"title":"Riktlinjer för reStructuredText-filer","anchor":"guidelines-for-restructuredtext-files","children":[]},{"title":"Django-specifik markering","anchor":"django-specific-markup","children":[]},{"title":"Dokumentera nya funktioner","anchor":"documenting-new-features","children":[]},{"title":"Minimering av bilder","anchor":"minimizing-images","children":[]},{"title":"Ett exempel","anchor":"an-example","children":[]},{"title":"Översättning av dokumentation","anchor":"translating-documentation","children":[]},{"title":"django-admin man page","anchor":"django-admin-man-page","children":[]}],"breadcrumbs":[{"docname":"internals/index","title":"Djangos interna funktioner","url":"/sv/6.0/internals/"},{"docname":"internals/contributing/index","title":"Att bidra till Django","url":"/sv/6.0/internals/contributing/"}],"prev":{"docname":"internals/contributing/committing-code","title":"Bekräftelse av kod","url":"/sv/6.0/internals/contributing/committing-code/"},"next":{"docname":"internals/contributing/localizing","title":"Lokalisering av Django","url":"/sv/6.0/internals/contributing/localizing/"},"formats":{"html":"/sv/6.0/internals/contributing/writing-documentation/","markdown":"/sv/6.0/internals/contributing/writing-documentation.md","json":"/sv/6.0/internals/contributing/writing-documentation.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/internals/contributing/writing-documentation.txt","official":"https://docs.djangoproject.com/sv/6.0/internals/contributing/writing-documentation/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}