diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c0f7d8e1..dc93cc82 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,6 +4,8 @@ Contributing When adding new "Hello World" programs, please name the file according to the language it was written in, don't abbreviate the language name too much (so use "JavaScript", not "JS") but don't make it TOO long (so use "CSS" not "Cascading Style Sheets". Use hyphens ("-") as word seperators, and only use a single dot (for seperating the filename from the extension). For exmaple, a "Hello World" program in Objective C should be named "Objective-C.m, and the one in HTML should be named HTML.html. Use -```./genreadme.sh +```bash +./list_langs.py ``` -for updating the list of languages in `README.md` (make sure you are in the repository's root directory when invoking those commands). +for updating the list of languages in `README.md` (make sure you are in the repository's root directory when running the script). +**NOTE THAT THIS SCRIPT MUST BE EXECUTED ON PYTHON 3.6+!** If your default isn't 3.6+, use `python3 list_langs.py`. diff --git a/README.md b/README.md index db2877a9..5c1b38ac 100644 --- a/README.md +++ b/README.md @@ -3,525 +3,509 @@ Hello, World! Hello world in every programming language. -Inspired by [Helloworldcollection.de](http://helloworldcollection.de/) +Inspired by [The Hello World Collection](https://helloworldcollection.github.io/) As I watch the collection expand, this project has blown up more than I ever thought possible. Thanks to everyone who continues to contribute, new languages are created every day! Make sure to see CONTRIBUTING.md for instructions on contributing to the project! -Spin-Off project smartly suggested and implemented by @zenware +Spin-Off project smartly suggested and implemented by @zenware Meet [FizzBuzz](https://github.com/zenware/FizzBuzz) the evolution of [hello-world](https://github.com/leachim6/hello-world) ### This repository currently contains "Hello World" programs in the following languages: -* Assembler Intel -* Amos -* Assembler 6502appleii -* Assembler Nasm Freebsd -* Actionscript2 -* Assembler Z80 Ti83calculator -* Aiml -* Assembler Mips -* Acronym -* Amiga E -* Algol68 -* Ante -* Aime -* Apl -* Apc -* Assembler Masm Dos -* Assembler Tms9900 Ti99 4a -* Ash -* Aheui -* Assembler Fasm Dos -* Abap -* Alda -* Acs -* Awk -* Autoit -* Actionscript3 -* Acpi -* Assembler Z80 Knightos -* Assembler Lc 3 -* Algol60 -* Acidic -* Android -* Actionscript -* Assembler Vax Ultrix -* Arena -* Assembler Nasm Linux -* Assembler Nasm Linux64 -* Actionscript Flashmx -* Alaguf -* Assembler Masm Win64 -* Algol W -* Assembler M68000 Amigaos -* Abc -* Assembler 6502 -* Arduino -* Angular -* Asp -* Alore -* Arnoldc -* Advpl -* Aeolbonn -* Angelscript -* Assembler 6502c64 -* Assembler Z80 Zxspectrum -* Assembler Atari2600 -* Assembler Masm Win32 -* Assembler Dcpu16 -* Antlang -* Assembler Mmix -* Assembler Tasm Dos -* Algae -* Autohotkey -* Agda -* Ada -* Assembler 8048 Videopac -* Assembler 6809vectrex -* Applescript -* Argh -* Assembler Ibm360 -* Aeolbonn -* Objectstar -* Ocaml -* Ook -* Oberon 2 -* Objc -* Obix -* Openlaszlo -* Oz -* Opa -* Objective J -* Ooc -* Obj -* Octave -* Orc -* Omgrofl -* Oraclesql -* Oberon -* Jsoniq -* Java -* Julia -* Jai -* Json -* Jsx -* Jsf*ck -* Jess -* Javascript -* Jade -* Jason -* Jasmin -* J -* Ebuild -* Elixir -* Eiffel -* Eoool -* Elixir -* Hello Html -* Emmental -* Emacslisp -* Emoticon -* Erlang Hw -* Emojicode -* 4test -* 1c Enterprise -* 4gl -* 4thdimension -* 2b -* 0815 -* ~english -* Ratfor -* Rexx -* Rebol -* Roco -* Reason -* R -* Roy -* React -* Radixal -* Racket -* Rust -* Ruby -* Recurse -* Richtea -* Readlink -* Restructuredtext -* Verbose -* V -* Visualbasicscript -* Vrml -* Vms -* Visualbasic -* Vala -* Vi -* Verilog -* Vimscript -* Virgil -* Verbosefuck -* Vhdl -* Vbnet -* Verve -* Visualfoxpro -* Sil -* Smil -* Supercollider -* Swift -* Schwift -* Sql -* Snowman -* Spoon -* Sendstuff -* Scilab -* Sal -* S Algol -* Stanza -* Simpl+ -* Scala -* Self -* Subleq -* Sparql -* Stuck -* Scheme -* Sed -* Sml -* Soupscript -* Svg -* Shell -* Semicolon -* Scratch -* Sacred -* Streem -* Slashes -* Simula -* Shakespeare -* Smalltalk -* Squirrel -* Shen -* Hello -* Systemtap -* Smali -* Sas -* Standard Ml -* Sather -* Clipper -* Clean -* Crystal -* Continuesequation -* Cobol -* Clisp -* Cor -* Csharp -* Chicken -* Coldfusion -* Csh -* Clojure -* Coconut -* Cool -* C -* Centura -* Common Lisp -* Chapel -* Cil -* Css -* Ceylon -* Cat -* Clips -* Cheddar -* Cypherneo4j -* Coffeescript -* Cgi -* Caml -* Casio Basic -* Clipper -* C++ -* Chef -* Cardinal -* Hello World -* Turing -* Tk -* Tao Presentations -* Tcsh -* Tapebagel -* Images -* Turing -* Thp -* Tri -* Telephone -* Trumpscript -* Thue -* Trollscript -* Typescript -* Ttcn3 -* Tsql -* Tex -* Tibasic -* Tcl -* Plain Text -* Logs -* Hooks -* Refs -* Fetch Head -* Orig Head -* Description -* Packed Refs -* Index -* Head -* Info -* Commit Editmsg -* Branches -* Config -* Objects -* Io -* Incal -* Icon -* Il -* Islisp -* Ibm1401 -* Idl -* Ici -* Irc -* Iscom -* Icedcoffeescript -* Ioke -* Ink -* Indec -* Inform -* Idris -* Intercal -* Qwerty -* Quartzcomposer -* Qu -* Quakec -* Qugord -* Qbasic -* Qore -* Wml -* Wheat -* Whitespace -* Wsh -* Whenever -* Whirl -* Wren -* Wolframlanguage -* Higher Subleq -* Hypertalk -* Haskell -* Hop -* Homespring -* Haxe -* Hodor -* Hex -* Hq9+ -* Hollow -* Hy -* Hexish -* Hack -* Html -* Xl -* Xquery -* Xul -* Xrf -* Xlogo -* Xbase++ -* X D -* Xbase -* Xml -* Xslt -* Xpl0 -* Kiml -* Kotlin -* Ksh -* Kotlin -* Kipple -* Karel -* K -* Perl -* Polynomial -* Plsql -* Picat -* Postgresql -* Hello World -* Parenthetic -* Please Porige Hot -* Perl6 -* Postscript Page -* Pharo -* Python3 -* Pig -* Potigol -* Purescript -* Purebasic -* Pbwin -* Perseus -* Powershell -* Posxml -* Postscript -* Pony -* Pizza -* Python -* Perl -* Processing -* Pawn -* Piet -* Prolog -* Pb -* Pascal -* Pit -* Php -* Pike -* Pyret -* Pluvo -* Node -* Nu -* Nice -* Nxc -* Neko -* Nemerle -* Novice -* Nimrod -* Newtonscript -* Nodejs -* Nit -* Dtrace -* Dna Sharp -* Dart -* Dis -* Dc -* Dcl -* Dylan -* D -* Dogescript -* Dogo -* Dd Dd -* Dup -* Dos -* Dna# -* Dyvil -* Delphi -* Db2 -* Divzeros -* Delphi -* Dark -* Drive In Window -* Ubercode -* Ubiquity -* Unicomal -* Umajin -* Unlambda -* Lolpython -* Llvm -* Lolcode -* Lola -* Linux X86 -* Logical -* Labyrinth -* Lazyk -* Lisaac -* Lsl -* Livescript -* Leszek -* Latex -* Lisp -* Lua -* Logo -* Limbo -* Lnusp -* Blc -* Beta -* Beatnik -* Burlesque -* Boo -* Bitbitjump -* Brainf Ck -* B -* Brainloller -* Bennugd -* Bash -* Batsh -* Basic -* Bcpl -* Bit -* Battlestar -* Brzrk -* Befunge -* Blitz3d -* Brainf Ck 2d -* Blub -* Byter -* Batch -* Broccoli -* Zimbu -* Zombie -* Zsh -* Zim -* Zonnon -* Zbd -* Zepto -* Zetaplex -* Yolang -* Y -* Yaml -* M4 -* Mercury -* Matlab -* Moonscript -* Modula 3 -* Modula 2 -* Mathematica Online -* Move -* Morsecode -* Maxscript -* Meq -* Mumps -* Mouse -* Macsyma -* Mel -* Mozart -* Mongo -* Malbolge -* Mysql -* Mushcode -* Muf -* Mirc -* Mmmm() -* Magic -* Markdown -* Ferite -* Fancy -* Fortran -* Fourier -* False -* Fsharp -* Fish -* Focal -* Forobj -* Forth -* Fob -* Falcon -* Fortran77 -* Fjoelnir -* Factor -* Fortob -* Fog -* Foo -* Fantom -* Gosu -* Green Marl -* Golfscript -* Gosu -* Glass -* Googleappscript -* Grin -* Gri -* Gammaplex -* Geojson -* Golo -* Gibberish -* Go -* Groovy -* Gentzen -* Gasoil -* Gridscript -* Gecho +* 0815 +* 1c Enterprise +* 2b +* 4gl +* 4test +* 4thdimension +* ~english +* Abap +* Abc +* Acidic +* Acpi +* Acronym +* Acs +* Actionscript +* Actionscript2 +* Actionscript3 +* Actionscript Flashmx +* Ada +* Advpl +* Aeolbonn +* Aeolbonn +* Agda +* Aheui +* Aime +* Aiml +* Alaguf +* Alda +* Algae +* Algol W +* Algol60 +* Algol68 +* Alore +* Amiga E +* Amos +* Android +* Angelscript +* Angular +* Ante +* Antlang +* Apc +* Apl +* Applescript +* Arduino +* Arena +* Argh +* Arnoldc +* Ash +* Asp +* Assembler 6502 +* Assembler 6502appleii +* Assembler 6502c64 +* Assembler 6809vectrex +* Assembler 8048 Videopac +* Assembler Atari2600 +* Assembler Dcpu16 +* Assembler Fasm Dos +* Assembler Ibm360 +* Assembler Intel +* Assembler Lc 3 +* Assembler M68000 Amigaos +* Assembler Masm Dos +* Assembler Masm Win32 +* Assembler Masm Win64 +* Assembler Mips +* Assembler Mmix +* Assembler Nasm Freebsd +* Assembler Nasm Linux +* Assembler Nasm Linux64 +* Assembler Tasm Dos +* Assembler Tms9900 Ti99 4a +* Assembler Vax Ultrix +* Assembler Z80 Knightos +* Assembler Z80 Ti83calculator +* Assembler Z80 Zxspectrum +* Autohotkey +* Autoit +* Awk +* B +* Bash +* Basic +* Batch +* Batsh +* Battlestar +* Bcpl +* Beatnik +* Befunge +* Bennugd +* Beta +* Bit +* Bitbitjump +* Blc +* Blitz3d +* Blub +* Boo +* Brainf Ck 2d +* Brainf Ck +* Brainloller +* Broccoli +* Brzrk +* Burlesque +* Byter +* C++ +* C +* Caml +* Cardinal +* Casio Basic +* Cat +* Centura +* Ceylon +* Cgi +* Chapel +* Cheddar +* Chef +* Chicken +* Cil +* Clean +* Clipper +* Clipper +* Clips +* Clisp +* Clojure +* Cobol +* Coconut +* Coffeescript +* Coldfusion +* Common Lisp +* Continuesequation +* Cool +* Cor +* Crystal +* Csh +* Csharp +* Css +* Cypherneo4j +* Hello World +* D +* Dark +* Dart +* Db2 +* Dc +* Dcl +* Dd Dd +* Delphi +* Delphi +* Dis +* Divzeros +* Dna# +* Dna Sharp +* Dogescript +* Dogo +* Dos +* Drive In Window +* Dtrace +* Dup +* Dylan +* Dyvil +* Ebuild +* Eiffel +* Elixir +* Elixir +* Emacslisp +* Emmental +* Emojicode +* Emoticon +* Eoool +* Erlang Hw +* Hello Html +* Factor +* Falcon +* False +* Fancy +* Fantom +* Ferite +* Fish +* Fjoelnir +* Fob +* Focal +* Fog +* Foo +* Forobj +* Forth +* Fortob +* Fortran +* Fortran77 +* Fourier +* Fsharp +* Gammaplex +* Gasoil +* Gecho +* Gentzen +* Geojson +* Gibberish +* Glass +* Go +* Golfscript +* Golo +* Googleappscript +* Gosu +* Gosu +* Green Marl +* Gri +* Gridscript +* Grin +* Groovy +* Hack +* Haskell +* Haxe +* Hex +* Hexish +* Higher Subleq +* Hodor +* Hollow +* Homespring +* Hop +* Hq9+ +* Html +* Hy +* Hypertalk +* Ibm1401 +* Icedcoffeescript +* Ici +* Icon +* Idl +* Idris +* Il +* Incal +* Indec +* Inform +* Ink +* Intercal +* Io +* Ioke +* Irc +* Iscom +* Islisp +* J +* Jade +* Jai +* Jasmin +* Jason +* Java +* Javascript +* Jess +* Jsf*ck +* Json +* Jsoniq +* Jsx +* Julia +* K +* Karel +* Kiml +* Kipple +* Kotlin +* Kotlin +* Ksh +* Labyrinth +* Latex +* Lazyk +* Leszek +* Limbo +* Linux X86 +* Lisaac +* Lisp +* Livescript +* Llvm +* Lnusp +* Logical +* Logo +* Lola +* Lolcode +* Lolpython +* Lsl +* Lua +* M4 +* Macsyma +* Magic +* Malbolge +* Markdown +* Mathematica Online +* Matlab +* Maxscript +* Mel +* Meq +* Mercury +* Mirc +* Mmmm() +* Modula 2 +* Modula 3 +* Mongo +* Moonscript +* Morsecode +* Mouse +* Move +* Mozart +* Muf +* Mumps +* Mushcode +* Mysql +* Neko +* Nemerle +* Newtonscript +* Nice +* Nimrod +* Nit +* Node +* Nodejs +* Novice +* Nu +* Nxc +* Oberon 2 +* Oberon +* Obix +* Obj +* Objc +* Objective J +* Objectstar +* Ocaml +* Octave +* Omgrofl +* Ooc +* Ook +* Opa +* Openlaszlo +* Oraclesql +* Orc +* Oz +* Hello World +* Parenthetic +* Pascal +* Pawn +* Pb +* Pbwin +* Perl +* Perl +* Perl6 +* Perseus +* Pharo +* Php +* Picat +* Piet +* Pig +* Pike +* Pit +* Pizza +* Please Porige Hot +* Plsql +* Pluvo +* Polynomial +* Pony +* Postgresql +* Postscript +* Postscript Page +* Posxml +* Potigol +* Powershell +* Processing +* Prolog +* Purebasic +* Purescript +* Pyret +* Python +* Python3 +* Qbasic +* Qore +* Qu +* Quakec +* Quartzcomposer +* Qugord +* Qwerty +* R +* Racket +* Radixal +* Ratfor +* React +* Reason +* Rebol +* Recurse +* Restructuredtext +* Rexx +* Richtea +* Roco +* Roy +* Ruby +* Rust +* Hello +* S Algol +* Sacred +* Sal +* Sas +* Sather +* Scala +* Scheme +* Schwift +* Scilab +* Scratch +* Sed +* Self +* Semicolon +* Sendstuff +* Shakespeare +* Shell +* Shen +* Sil +* Simpl+ +* Simula +* Slashes +* Smali +* Smalltalk +* Smil +* Sml +* Snowman +* Soupscript +* Sparql +* Spoon +* Sql +* Squirrel +* Standard Ml +* Stanza +* Streem +* Stuck +* Subleq +* Supercollider +* Svg +* Swift +* Systemtap +* Plain Text +* Tao Presentations +* Tapebagel +* Tcl +* Tcsh +* Telephone +* Tex +* Thp +* Thue +* Tibasic +* Tk +* Tri +* Trollscript +* Trumpscript +* Tsql +* Ttcn3 +* Turing +* Turing +* Typescript +* Ubercode +* Ubiquity +* Umajin +* Unicomal +* Unlambda +* V +* Vala +* Vbnet +* Verbose +* Verbosefuck +* Verilog +* Verve +* Vhdl +* Vi +* Vimscript +* Virgil +* Visualbasic +* Visualbasicscript +* Visualfoxpro +* Vms +* Vrml +* Wheat +* Whenever +* Whirl +* Whitespace +* Wml +* Wolframlanguage +* Wren +* Wsh +* X D +* Xbase++ +* Xbase +* Xl +* Xlogo +* Xml +* Xpl0 +* Xquery +* Xrf +* Xslt +* Xul +* Y +* Yaml +* Yolang +* Zbd +* Zepto +* Zetaplex +* Zim +* Zimbu +* Zombie +* Zonnon +* Zsh diff --git a/README_nolist.md b/README_nolist.md index 4c18cb3b..21216897 100644 --- a/README_nolist.md +++ b/README_nolist.md @@ -3,12 +3,12 @@ Hello, World! Hello world in every programming language. -Inspired by [Helloworldcollection.de](http://helloworldcollection.de/) +Inspired by [The Hello World Collection](https://helloworldcollection.github.io/) As I watch the collection expand, this project has blown up more than I ever thought possible. Thanks to everyone who continues to contribute, new languages are created every day! Make sure to see CONTRIBUTING.md for instructions on contributing to the project! -Spin-Off project smartly suggested and implemented by @zenware +Spin-Off project smartly suggested and implemented by @zenware Meet [FizzBuzz](https://github.com/zenware/FizzBuzz) the evolution of [hello-world](https://github.com/leachim6/hello-world) diff --git a/genreadme.sh b/genreadme.sh deleted file mode 100755 index 5ca67988..00000000 --- a/genreadme.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -cat README_nolist.md > README.md; echo >> README.md; echo '### This repository currently contains "Hello World" programs in the following languages:' >> README.md; ruby list_langs.rb >> README.md diff --git a/list_langs.py b/list_langs.py new file mode 100755 index 00000000..6d3df7d4 --- /dev/null +++ b/list_langs.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python + +import os + +readme = open('README.md', 'w') + +# Copy template to README +with open('README_nolist.md', 'r') as temp: + for line in temp: + readme.write(line) + +# Write title +readme.write('\n### This repository currently contains "Hello World" programs in the following languages:\n') + +# List the available languages +for dir in os.listdir('.'): + if not (dir == '.' or dir == '..' or dir[0] == '.' or os.path.isfile(dir)): + for file in os.listdir(dir): + if os.path.isfile(f"{dir}/{file}"): + lang = '' + for str in file[0:(len(file) if file.find('.') == -1 else file.find('.'))].replace('-', ' ').replace('_', ' ').split(): + lang += str.capitalize() + ' ' + readme.write('* ' + lang[:-1] + '\n') # Cut trailing space + +readme.close() diff --git a/list_langs.rb b/list_langs.rb deleted file mode 100644 index 5e1e0b83..00000000 --- a/list_langs.rb +++ /dev/null @@ -1,13 +0,0 @@ -Dir.foreach "." do |odir| - next if odir == "." or odir == ".." or not File.directory?(odir) - Dir.foreach odir do |dir| - next if dir == "." or dir == ".." - currdirname = "" - dir.split(".")[0].gsub("-", " ").gsub("_", " ").split(" ").each do |str| - currdirname << str.capitalize + " " - end - currdirname.chomp(currdirname[-1]) - puts "* #{currdirname}" - end -end -