Genom att bidra godkänner du LICENS för detta arkiv.
Genom att bidra samtycker du till att respektera Code of Conduct för detta arkiv. (translations)
"En länk för att enkelt ladda ner en bok" är inte alltid en länk till en gratis bok. Bidra bara med gratis innehåll. Se till att det är gratis. Vi accepterar inte länkar till sidor som kräver fungerande e-postadresser för att få böcker, men vi välkomnar listor som begär dem.
Du behöver inte känna till Git: om du hittat något av intresse som inte redan finns i denna repo, vänligen öppna ett issue med dina länkförslag.
Vi har 6 sorters listor. Välj rätt:
Se till att följa riktlinjerna nedan och respektera Markdown-formatering för filerna.
GitHub Actions kommer att köra tester för att se till att dina listor är alfabetiserade och att formateringsregler följs. Se till att kontrollera att dina ändringar klarar testerna.
http://example.com istället för http://example.com/http://example.com/dir/ är bättre än http://example.com/dir/index.html
http://example.com/dir/book/current/ är bättre än http://example.com/dir/book/v1.0.0/index.htmlhttp-motsvarighet om möjligt (eftersom att acceptera undantag kan vara komplicerat på mobila enheter).et al.".(email address *requested*, not required)..md-filer. Försök att lära dig Markdown syntax. Det är enkelt!###), och undersektioner är nivå 4-rubriker (####).Tanken är att ha:
2 tomma rader mellan sista länken och den nya sektionen.1 tom rad mellan rubriken och första länken i dess avsnitt.0 tom rad mellan två länkar.1 tom rad i slutet av varje .md-fil.Exempel:
[...]
* [An Awesome Book](http://example.com/example.html)
(blank line)
(blank line)
### Example
(blank line)
* [Another Awesome Book](http://example.com/book.html)
* [Some Other Book](http://example.com/other.html)
Lägg inte mellanslag mellan ] och (:
BAD : * [Another Awesome Book] (http://example.com/book.html)
GOOD: * [Another Awesome Book](http://example.com/book.html)
Om du inkluderar författaren, använd - (ett streck omgivet av enstaka mellanslag):
BAD : * [Another Awesome Book](http://example.com/book.html)- John Doe
GOOD: * [Another Awesome Book](http://example.com/book.html) - John Doe
Sätt ett blanksteg mellan länken och dess format:
BAD : * [A Very Awesome Book](https://example.org/book.pdf)(PDF)
GOOD: * [A Very Awesome Book](https://example.org/book.pdf) (PDF)
Författare kommer före format:
BAD : * [A Very Awesome Book](https://example.org/book.pdf)- (PDF) Jane Roe
GOOD: * [A Very Awesome Book](https://example.org/book.pdf) - Jane Roe (PDF)
Flera olika format:
BAD : * [Another Awesome Book](http://example.com/)- John Doe (HTML)
BAD : * [Another Awesome Book](https://downloads.example.org/book.html)- John Doe (download site)
GOOD: * [Another Awesome Book](http://example.com/) - John Doe (HTML) [(PDF, EPUB)](https://downloads.example.org/book.html)
Inkludera publiceringsår i titeln för äldre böcker:
BAD : * [A Very Awesome Book](https://example.org/book.html) - Jane Roe - 1970
GOOD: * [A Very Awesome Book (1970)](https://example.org/book.html) - Jane Roe
GOOD: * [Will Be An Awesome Book Soon](http://example.com/book2.html) - John Doe (HTML) (:construction: *in process*)
GOOD: * [A Way-backed Interesting Book](https://web.archive.org/web/20211016123456/http://example.com/) - John Doe (HTML) *(:card_file_box: archived)*
aa kommer före ab.Om du ser en felplacerad länk, kontrollera linter-felmeddelandet för att veta vilka rader som bör bytas.
Även om grunderna är relativt enkla, finns det en stor mångfald i resurserna vi listar. Här är några anteckningar om hur vi hanterar denna mångfald.
Våra listor ger en minimal uppsättning metadata: titlar, webbadresser, skapare, plattformar och åtkomstanteckningar.
https) webbadresser är alltid att föredra framför osäkra (http) webbadresser där HTTPS har implementerats.
– Vi gillar inte webbadresser som pekar på webbsidor som inte är värd för den listade resursen, utan istället pekar någon annanstans.– Vi vill kreditera skaparna av gratisresurser där det är lämpligt, inklusive översättare!
För översatta verk ska originalförfattaren krediteras. Vi rekommenderar att du använder MARC-relators till andra kreatörer än författare, som i det här exemplet:
* [A Translated Book](http://example.com/book.html) - John Doe, `trl.:` Mike The Translator
här använder annoteringen trl.: MARC-relatorkoden för "översättare".
Använd kommatecken , för att avgränsa varje objekt i författarlistan.
Du kan förkorta författarlistor med "et al.".
Vi tillåter inte länkar för kreatörer.
För kompilering eller remixade verk kan "skaparen" behöva en beskrivning. Till exempel, "GoalKicker" eller "RIP Tutorial"-böcker krediteras som "Compiled from StackOverflow documentation".
*(Leanpub account or valid email requested)*.Den första regeln för att bestämma vilken lista en resurs tillhör är att se hur resursen beskriver sig själv. Om den kallar sig en bok, så kanske det är en bok.
Eftersom internet är enormt inkluderar vi inte i våra listor:
Våra konkurrenskraftiga programlistor är inte lika strikta när det gäller dessa undantag. Omfattningen av repan bestäms av samhället; om du vill föreslå en ändring eller tillägg till omfattningen, använd en fråga för att göra förslaget.
Vi är inte så noga med bokkänsla. Här är några attribut som betyder att en resurs är en bok:
Det finns massor av böcker som vi listar som inte har dessa attribut; det kan bero på sammanhanget.
Ibland kan dessa vara svåra att urskilja!
Kurser har ofta tillhörande läroböcker, som vi skulle lista i våra boklistor. Kurser har föreläsningar, övningar, prov, anteckningar eller andra didaktiska hjälpmedel. En enskild föreläsning eller video i sig är inte en kurs. En powerpoint är inte en kurs.
Om du kan skriva ut den och behålla dess essens är det inte en interaktiv handledning.
– Upprätthållande av formateringsregler automatiseras via GitHub Actions med fpb-lint ( se .github/workflows/fpb-lint.yml)
För att utlösa URL-validering, tryck på en commit som innehåller ett commit-meddelande som innehåller check_urls=file_to_check:
check_urls=free-programming-books.md free-programming-books-en.md
Du kan ange mer än en fil att kontrollera, med ett enda blanksteg för att separera varje post.
Om du anger mer än en fil baseras resultatet av bygget på resultatet av den senast kontrollerade filen. Du bör vara medveten om att du kan få godkända gröna builds på grund av detta, så se till att inspektera byggloggen i slutet av Pull Request genom att klicka på "Show all checks" -> "Details".