├── .gitignore ├── docs └── media │ └── xny.gif ├── Cargo.toml ├── README.md ├── src └── main.rs ├── Cargo.lock └── data.json /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /node/node_modules 3 | /.idea 4 | -------------------------------------------------------------------------------- /docs/media/xny.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YesSeri/xny-cli/HEAD/docs/media/xny.gif -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "xny" 3 | edition = "2021" 4 | version = "1.0.5" 5 | authors = ["Henrik Zenkert "] 6 | license = "AGPL-1.0-or-later" 7 | description = "A tool to search files" 8 | readme = "README.md" 9 | homepage = "https://github.com/YesSeri/xny-cli" 10 | repository = "https://github.com/YesSeri/xny-cli" 11 | keywords = ["cli", "search", "demo"] 12 | categories = ["command-line-utilities"] 13 | 14 | [dependencies] 15 | serde_json = "1.0.94" 16 | url = "2.3.1" 17 | minreq = { version = "2.7.0", features = ["https"] } 18 | clap = { version = "4.4.8", features = ["derive"] } 19 | serde = { version = "1.0.192", features = ["derive"] } 20 | 21 | [profile.release] 22 | opt-level = 'z' # Optimize for size 23 | lto = true # Enable link-time optimization 24 | codegen-units = 1 # Reduce number of codegen units to increase optimizations 25 | panic = 'abort' # Abort on panic 26 | strip = true # Strip symbols from binary* 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # xny-cli 2 | 3 | A way to use [Learn X in Y Minutes](https://learnxinyminutes.com/) on the command line. 4 | 5 | I look up languages often on this page, and I thought it would be nice to make it similar to `man` pages in linux, so I wrote a small script. 6 | 7 | ![usage gif](https://github.com/YesSeri/xny-cli/blob/main/docs/media/xny.gif) 8 | 9 | ## Installation 10 | 11 | Install with command: `cargo install xny` 12 | 13 | 14 | If that is not possible you can download a binary from releases and put in path. 15 | 16 | 17 | ### Install from source 18 | 19 | ```bash 20 | git clone git@github.com:YesSeri/xny-cli.git 21 | 22 | cargo build --release 23 | 24 | # put file in path. 25 | ``` 26 | 27 | ## Usage 28 | 29 | ```bash 30 | # default viewer is less 31 | xny python 32 | 33 | # use bat as viewer 34 | xny python --viewer bat 35 | 36 | # list all languages 37 | xny -s 38 | ``` 39 | 40 | `--viewer bat` would show the output in [bat](https://github.com/sharkdp/bat), the `cat` clone which syntax highlights. It is of course possible to pipe the content into bat, but then you need to set the syntax highlighting manually. 41 | 42 | ## Credit 43 | 44 | Big thank you to the creator of [Learn X in Y](https://github.com/adambard/learnxinyminutes-docs)! 45 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use std::error::Error; 2 | use std::fs::{create_dir_all, remove_dir_all, File}; 3 | use std::io::{Read, Write}; 4 | use std::path::{Path, PathBuf}; 5 | 6 | use clap::Parser; 7 | use serde::Deserialize; 8 | use url::Url; 9 | 10 | /// A cli tool for viewing the documentation for a language. 11 | /// It uses the excellent learnxinyminutes.com website by Adam Bard. 12 | /// The src code examples are saved in /var/tmp/x-in-y. 13 | #[derive(Parser)] 14 | #[command(author, version, about, long_about = None)] 15 | struct Cli { 16 | /// Language to find documentation for, e.g. rust, python, javascript. 17 | language: Option, 18 | 19 | /// Specify the viewer to use, e.g. less, bat, cat. 20 | #[clap(short, long)] 21 | viewer: Option, 22 | 23 | /// List all available languages to view. 24 | #[clap(short, long, action)] 25 | show_languages: bool, 26 | 27 | /// Clears the local cache of docs 28 | #[clap(short, long, action)] 29 | clear_cache: bool, 30 | } 31 | 32 | #[derive(Debug, Deserialize)] 33 | struct LinkInfo { 34 | name: String, 35 | source_code_link: String, 36 | contributor_text: String, 37 | contributor_link: String, 38 | } 39 | 40 | const URL_PREFIX: &str = "https://learnxinyminutes.com/"; 41 | const CACHE_PATH: &str = "/var/tmp/x-in-y"; 42 | 43 | fn get_infos() -> Result, Box> { 44 | let text = include_str!("../data.json"); 45 | let infos: Vec = serde_json::from_str(text)?; 46 | Ok(infos) 47 | } 48 | 49 | fn display_available_languages(info_vec: Vec) { 50 | let lang_string = show_available_langs(info_vec); 51 | println!("Available languages:\n{}", lang_string); 52 | } 53 | 54 | fn display_documentation( 55 | language: &str, 56 | viewer: Option, 57 | info_vec: Vec, 58 | ) -> Result<(), Box> { 59 | let folder = PathBuf::from(CACHE_PATH); 60 | let info = info_vec 61 | .into_iter() 62 | .find(|info| *info.name.to_lowercase() == language.to_lowercase()) 63 | .ok_or("Could not find language")?; 64 | 65 | let base_url = Url::parse(URL_PREFIX)?; 66 | let url = base_url.join(&info.source_code_link)?; 67 | 68 | let path_segments = url.path_segments().ok_or("invalid path segments")?; 69 | let file_name = path_segments.last().ok_or("invalid path segments")?; 70 | let file_path = folder.join(file_name); 71 | let credit_path = file_path.with_extension("txt"); 72 | 73 | if !file_path.exists() { 74 | create_dir_all(folder)?; 75 | let mut file = File::create(&file_path)?; 76 | file.write_all(minreq::get(url).send()?.as_str()?.as_bytes())?; 77 | } 78 | 79 | let credit = format!( 80 | "Cli written by Henrik Zenkert, henrik.zenkert@gmail.com\nCode: {}\nFull list:{}", 81 | info.contributor_text, info.contributor_link 82 | ); 83 | 84 | if !credit_path.exists() { 85 | let mut file = File::create(&credit_path)?; 86 | file.write_all(credit.as_bytes())?; 87 | } 88 | 89 | match viewer { 90 | Some(viewer) if cfg!(target_os = "linux") => run_process(viewer, file_path, credit_path), 91 | _ => { 92 | print_stdout(file_path, credit).expect("Could not print to stdout."); 93 | } 94 | } 95 | Ok(()) 96 | } 97 | 98 | fn clear_cache() -> Result<(), Box> { 99 | if !Path::new(CACHE_PATH).is_dir() { 100 | println!("Nothing to clear"); 101 | return Ok(()); 102 | } 103 | 104 | remove_dir_all(CACHE_PATH)?; 105 | println!("Successfully cleared cache"); 106 | Ok(()) 107 | } 108 | 109 | fn main() -> Result<(), Box> { 110 | let cli = Cli::parse(); 111 | 112 | if cli.clear_cache { 113 | return Ok(clear_cache()?); 114 | } 115 | 116 | let info_vec = get_infos()?; 117 | 118 | if cli.show_languages { 119 | display_available_languages(info_vec); 120 | } else if let Some(language) = cli.language { 121 | display_documentation(&language, cli.viewer, info_vec)?; 122 | } else { 123 | println!( 124 | r"error: The following required arguments were not provided: 125 | 126 | USAGE: 127 | 128 | xny [OPTIONS] LANGUAGE 129 | xny [OPTIONS] --help 130 | xny [OPTIONS] --version" 131 | ); 132 | } 133 | 134 | Ok(()) 135 | } 136 | 137 | fn show_available_langs(info_vec: Vec) -> String { 138 | info_vec 139 | .into_iter() 140 | .map(|info| info.name) 141 | .collect::>() 142 | .join("\n") 143 | } 144 | 145 | fn run_process(viewer: String, file_path: PathBuf, credit_path: PathBuf) { 146 | std::process::Command::new(viewer) 147 | .args([file_path, credit_path]) 148 | .spawn() 149 | .expect("command failed") 150 | .wait() 151 | .expect("wait failed"); 152 | } 153 | 154 | fn print_stdout(file_path: PathBuf, credit: String) -> std::io::Result<()> { 155 | let mut file = File::open(file_path)?; 156 | let mut contents = String::new(); 157 | file.read_to_string(&mut contents)?; 158 | println!("{contents}"); 159 | println!("{credit}"); 160 | Ok(()) 161 | } 162 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "anstream" 7 | version = "0.6.4" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" 10 | dependencies = [ 11 | "anstyle", 12 | "anstyle-parse", 13 | "anstyle-query", 14 | "anstyle-wincon", 15 | "colorchoice", 16 | "utf8parse", 17 | ] 18 | 19 | [[package]] 20 | name = "anstyle" 21 | version = "1.0.4" 22 | source = "registry+https://github.com/rust-lang/crates.io-index" 23 | checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" 24 | 25 | [[package]] 26 | name = "anstyle-parse" 27 | version = "0.2.2" 28 | source = "registry+https://github.com/rust-lang/crates.io-index" 29 | checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" 30 | dependencies = [ 31 | "utf8parse", 32 | ] 33 | 34 | [[package]] 35 | name = "anstyle-query" 36 | version = "1.0.0" 37 | source = "registry+https://github.com/rust-lang/crates.io-index" 38 | checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" 39 | dependencies = [ 40 | "windows-sys", 41 | ] 42 | 43 | [[package]] 44 | name = "anstyle-wincon" 45 | version = "3.0.1" 46 | source = "registry+https://github.com/rust-lang/crates.io-index" 47 | checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" 48 | dependencies = [ 49 | "anstyle", 50 | "windows-sys", 51 | ] 52 | 53 | [[package]] 54 | name = "bumpalo" 55 | version = "3.12.0" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" 58 | 59 | [[package]] 60 | name = "cc" 61 | version = "1.0.79" 62 | source = "registry+https://github.com/rust-lang/crates.io-index" 63 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 64 | 65 | [[package]] 66 | name = "cfg-if" 67 | version = "1.0.0" 68 | source = "registry+https://github.com/rust-lang/crates.io-index" 69 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 70 | 71 | [[package]] 72 | name = "clap" 73 | version = "4.4.8" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64" 76 | dependencies = [ 77 | "clap_builder", 78 | "clap_derive", 79 | ] 80 | 81 | [[package]] 82 | name = "clap_builder" 83 | version = "4.4.8" 84 | source = "registry+https://github.com/rust-lang/crates.io-index" 85 | checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc" 86 | dependencies = [ 87 | "anstream", 88 | "anstyle", 89 | "clap_lex", 90 | "strsim", 91 | ] 92 | 93 | [[package]] 94 | name = "clap_derive" 95 | version = "4.4.7" 96 | source = "registry+https://github.com/rust-lang/crates.io-index" 97 | checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" 98 | dependencies = [ 99 | "heck", 100 | "proc-macro2", 101 | "quote", 102 | "syn 2.0.39", 103 | ] 104 | 105 | [[package]] 106 | name = "clap_lex" 107 | version = "0.6.0" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" 110 | 111 | [[package]] 112 | name = "colorchoice" 113 | version = "1.0.0" 114 | source = "registry+https://github.com/rust-lang/crates.io-index" 115 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" 116 | 117 | [[package]] 118 | name = "form_urlencoded" 119 | version = "1.1.0" 120 | source = "registry+https://github.com/rust-lang/crates.io-index" 121 | checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" 122 | dependencies = [ 123 | "percent-encoding", 124 | ] 125 | 126 | [[package]] 127 | name = "heck" 128 | version = "0.4.1" 129 | source = "registry+https://github.com/rust-lang/crates.io-index" 130 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 131 | 132 | [[package]] 133 | name = "idna" 134 | version = "0.3.0" 135 | source = "registry+https://github.com/rust-lang/crates.io-index" 136 | checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" 137 | dependencies = [ 138 | "unicode-bidi", 139 | "unicode-normalization", 140 | ] 141 | 142 | [[package]] 143 | name = "itoa" 144 | version = "1.0.6" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" 147 | 148 | [[package]] 149 | name = "js-sys" 150 | version = "0.3.61" 151 | source = "registry+https://github.com/rust-lang/crates.io-index" 152 | checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" 153 | dependencies = [ 154 | "wasm-bindgen", 155 | ] 156 | 157 | [[package]] 158 | name = "libc" 159 | version = "0.2.141" 160 | source = "registry+https://github.com/rust-lang/crates.io-index" 161 | checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5" 162 | 163 | [[package]] 164 | name = "log" 165 | version = "0.4.17" 166 | source = "registry+https://github.com/rust-lang/crates.io-index" 167 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 168 | dependencies = [ 169 | "cfg-if", 170 | ] 171 | 172 | [[package]] 173 | name = "minreq" 174 | version = "2.7.0" 175 | source = "registry+https://github.com/rust-lang/crates.io-index" 176 | checksum = "41979ac2a5aa373c6e294b4a67fbe5e428e91a4cd0524376681f2bc6d872399b" 177 | dependencies = [ 178 | "log", 179 | "once_cell", 180 | "rustls", 181 | "webpki", 182 | "webpki-roots", 183 | ] 184 | 185 | [[package]] 186 | name = "once_cell" 187 | version = "1.17.1" 188 | source = "registry+https://github.com/rust-lang/crates.io-index" 189 | checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" 190 | 191 | [[package]] 192 | name = "percent-encoding" 193 | version = "2.2.0" 194 | source = "registry+https://github.com/rust-lang/crates.io-index" 195 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 196 | 197 | [[package]] 198 | name = "proc-macro2" 199 | version = "1.0.69" 200 | source = "registry+https://github.com/rust-lang/crates.io-index" 201 | checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" 202 | dependencies = [ 203 | "unicode-ident", 204 | ] 205 | 206 | [[package]] 207 | name = "quote" 208 | version = "1.0.33" 209 | source = "registry+https://github.com/rust-lang/crates.io-index" 210 | checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" 211 | dependencies = [ 212 | "proc-macro2", 213 | ] 214 | 215 | [[package]] 216 | name = "ring" 217 | version = "0.16.20" 218 | source = "registry+https://github.com/rust-lang/crates.io-index" 219 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 220 | dependencies = [ 221 | "cc", 222 | "libc", 223 | "once_cell", 224 | "spin", 225 | "untrusted", 226 | "web-sys", 227 | "winapi", 228 | ] 229 | 230 | [[package]] 231 | name = "rustls" 232 | version = "0.20.8" 233 | source = "registry+https://github.com/rust-lang/crates.io-index" 234 | checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" 235 | dependencies = [ 236 | "log", 237 | "ring", 238 | "sct", 239 | "webpki", 240 | ] 241 | 242 | [[package]] 243 | name = "ryu" 244 | version = "1.0.13" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" 247 | 248 | [[package]] 249 | name = "sct" 250 | version = "0.7.0" 251 | source = "registry+https://github.com/rust-lang/crates.io-index" 252 | checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" 253 | dependencies = [ 254 | "ring", 255 | "untrusted", 256 | ] 257 | 258 | [[package]] 259 | name = "serde" 260 | version = "1.0.192" 261 | source = "registry+https://github.com/rust-lang/crates.io-index" 262 | checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" 263 | dependencies = [ 264 | "serde_derive", 265 | ] 266 | 267 | [[package]] 268 | name = "serde_derive" 269 | version = "1.0.192" 270 | source = "registry+https://github.com/rust-lang/crates.io-index" 271 | checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" 272 | dependencies = [ 273 | "proc-macro2", 274 | "quote", 275 | "syn 2.0.39", 276 | ] 277 | 278 | [[package]] 279 | name = "serde_json" 280 | version = "1.0.94" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" 283 | dependencies = [ 284 | "itoa", 285 | "ryu", 286 | "serde", 287 | ] 288 | 289 | [[package]] 290 | name = "spin" 291 | version = "0.5.2" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 294 | 295 | [[package]] 296 | name = "strsim" 297 | version = "0.10.0" 298 | source = "registry+https://github.com/rust-lang/crates.io-index" 299 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 300 | 301 | [[package]] 302 | name = "syn" 303 | version = "1.0.109" 304 | source = "registry+https://github.com/rust-lang/crates.io-index" 305 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 306 | dependencies = [ 307 | "proc-macro2", 308 | "quote", 309 | "unicode-ident", 310 | ] 311 | 312 | [[package]] 313 | name = "syn" 314 | version = "2.0.39" 315 | source = "registry+https://github.com/rust-lang/crates.io-index" 316 | checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" 317 | dependencies = [ 318 | "proc-macro2", 319 | "quote", 320 | "unicode-ident", 321 | ] 322 | 323 | [[package]] 324 | name = "tinyvec" 325 | version = "1.6.0" 326 | source = "registry+https://github.com/rust-lang/crates.io-index" 327 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 328 | dependencies = [ 329 | "tinyvec_macros", 330 | ] 331 | 332 | [[package]] 333 | name = "tinyvec_macros" 334 | version = "0.1.1" 335 | source = "registry+https://github.com/rust-lang/crates.io-index" 336 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 337 | 338 | [[package]] 339 | name = "unicode-bidi" 340 | version = "0.3.10" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | checksum = "d54675592c1dbefd78cbd98db9bacd89886e1ca50692a0692baefffdeb92dd58" 343 | 344 | [[package]] 345 | name = "unicode-ident" 346 | version = "1.0.8" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" 349 | 350 | [[package]] 351 | name = "unicode-normalization" 352 | version = "0.1.22" 353 | source = "registry+https://github.com/rust-lang/crates.io-index" 354 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 355 | dependencies = [ 356 | "tinyvec", 357 | ] 358 | 359 | [[package]] 360 | name = "untrusted" 361 | version = "0.7.1" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 364 | 365 | [[package]] 366 | name = "url" 367 | version = "2.3.1" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" 370 | dependencies = [ 371 | "form_urlencoded", 372 | "idna", 373 | "percent-encoding", 374 | ] 375 | 376 | [[package]] 377 | name = "utf8parse" 378 | version = "0.2.1" 379 | source = "registry+https://github.com/rust-lang/crates.io-index" 380 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" 381 | 382 | [[package]] 383 | name = "wasm-bindgen" 384 | version = "0.2.84" 385 | source = "registry+https://github.com/rust-lang/crates.io-index" 386 | checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" 387 | dependencies = [ 388 | "cfg-if", 389 | "wasm-bindgen-macro", 390 | ] 391 | 392 | [[package]] 393 | name = "wasm-bindgen-backend" 394 | version = "0.2.84" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" 397 | dependencies = [ 398 | "bumpalo", 399 | "log", 400 | "once_cell", 401 | "proc-macro2", 402 | "quote", 403 | "syn 1.0.109", 404 | "wasm-bindgen-shared", 405 | ] 406 | 407 | [[package]] 408 | name = "wasm-bindgen-macro" 409 | version = "0.2.84" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" 412 | dependencies = [ 413 | "quote", 414 | "wasm-bindgen-macro-support", 415 | ] 416 | 417 | [[package]] 418 | name = "wasm-bindgen-macro-support" 419 | version = "0.2.84" 420 | source = "registry+https://github.com/rust-lang/crates.io-index" 421 | checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" 422 | dependencies = [ 423 | "proc-macro2", 424 | "quote", 425 | "syn 1.0.109", 426 | "wasm-bindgen-backend", 427 | "wasm-bindgen-shared", 428 | ] 429 | 430 | [[package]] 431 | name = "wasm-bindgen-shared" 432 | version = "0.2.84" 433 | source = "registry+https://github.com/rust-lang/crates.io-index" 434 | checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" 435 | 436 | [[package]] 437 | name = "web-sys" 438 | version = "0.3.61" 439 | source = "registry+https://github.com/rust-lang/crates.io-index" 440 | checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" 441 | dependencies = [ 442 | "js-sys", 443 | "wasm-bindgen", 444 | ] 445 | 446 | [[package]] 447 | name = "webpki" 448 | version = "0.22.0" 449 | source = "registry+https://github.com/rust-lang/crates.io-index" 450 | checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" 451 | dependencies = [ 452 | "ring", 453 | "untrusted", 454 | ] 455 | 456 | [[package]] 457 | name = "webpki-roots" 458 | version = "0.22.6" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" 461 | dependencies = [ 462 | "webpki", 463 | ] 464 | 465 | [[package]] 466 | name = "winapi" 467 | version = "0.3.9" 468 | source = "registry+https://github.com/rust-lang/crates.io-index" 469 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 470 | dependencies = [ 471 | "winapi-i686-pc-windows-gnu", 472 | "winapi-x86_64-pc-windows-gnu", 473 | ] 474 | 475 | [[package]] 476 | name = "winapi-i686-pc-windows-gnu" 477 | version = "0.4.0" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 480 | 481 | [[package]] 482 | name = "winapi-x86_64-pc-windows-gnu" 483 | version = "0.4.0" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 486 | 487 | [[package]] 488 | name = "windows-sys" 489 | version = "0.48.0" 490 | source = "registry+https://github.com/rust-lang/crates.io-index" 491 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 492 | dependencies = [ 493 | "windows-targets", 494 | ] 495 | 496 | [[package]] 497 | name = "windows-targets" 498 | version = "0.48.5" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 501 | dependencies = [ 502 | "windows_aarch64_gnullvm", 503 | "windows_aarch64_msvc", 504 | "windows_i686_gnu", 505 | "windows_i686_msvc", 506 | "windows_x86_64_gnu", 507 | "windows_x86_64_gnullvm", 508 | "windows_x86_64_msvc", 509 | ] 510 | 511 | [[package]] 512 | name = "windows_aarch64_gnullvm" 513 | version = "0.48.5" 514 | source = "registry+https://github.com/rust-lang/crates.io-index" 515 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 516 | 517 | [[package]] 518 | name = "windows_aarch64_msvc" 519 | version = "0.48.5" 520 | source = "registry+https://github.com/rust-lang/crates.io-index" 521 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 522 | 523 | [[package]] 524 | name = "windows_i686_gnu" 525 | version = "0.48.5" 526 | source = "registry+https://github.com/rust-lang/crates.io-index" 527 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 528 | 529 | [[package]] 530 | name = "windows_i686_msvc" 531 | version = "0.48.5" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 534 | 535 | [[package]] 536 | name = "windows_x86_64_gnu" 537 | version = "0.48.5" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 540 | 541 | [[package]] 542 | name = "windows_x86_64_gnullvm" 543 | version = "0.48.5" 544 | source = "registry+https://github.com/rust-lang/crates.io-index" 545 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 546 | 547 | [[package]] 548 | name = "windows_x86_64_msvc" 549 | version = "0.48.5" 550 | source = "registry+https://github.com/rust-lang/crates.io-index" 551 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 552 | 553 | [[package]] 554 | name = "xny" 555 | version = "1.0.5" 556 | dependencies = [ 557 | "clap", 558 | "minreq", 559 | "serde", 560 | "serde_json", 561 | "url", 562 | ] 563 | -------------------------------------------------------------------------------- /data.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "asciidoc", 4 | "language_link": "/docs/asciidoc/", 5 | "source_code_link": "/files/asciidoc.md", 6 | "contributor_text": "Originally contributed by Ryan Mavilia, and updated by 2 contributor(s).", 7 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/asciidoc.html.markdown" 8 | }, 9 | { 10 | "name": "bc", 11 | "language_link": "/docs/bc/", 12 | "source_code_link": "/files/learnbc.bc", 13 | "contributor_text": "Originally contributed by Btup, and updated by 0 contributor(s).", 14 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/bc.html.markdown" 15 | }, 16 | { 17 | "name": "bf", 18 | "language_link": "/docs/bf/", 19 | "source_code_link": "/files/bf.bf", 20 | "contributor_text": "Originally contributed by Prajit Ramachandran, and updated by 3 contributor(s).", 21 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/bf.html.markdown" 22 | }, 23 | { 24 | "name": "C", 25 | "language_link": "/docs/c/", 26 | "source_code_link": "/files/learnc.c", 27 | "contributor_text": "Originally contributed by Adam Bard, and updated by 49 contributor(s).", 28 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/c.html.markdown" 29 | }, 30 | { 31 | "name": "C#", 32 | "language_link": "/docs/csharp/", 33 | "source_code_link": "/files/LearnCSharp.cs", 34 | "contributor_text": "Originally contributed by Irfan Charania, and updated by 45 contributor(s).", 35 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/csharp.html.markdown" 36 | }, 37 | { 38 | "name": "C++", 39 | "language_link": "/docs/c++/", 40 | "source_code_link": "/files/learncpp.cpp", 41 | "contributor_text": "Originally contributed by Steven Basart, and updated by 42 contributor(s).", 42 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/c++.html.markdown" 43 | }, 44 | { 45 | "name": "Cairo", 46 | "language_link": "/docs/cairo/", 47 | "source_code_link": "/files/learnCairo.sol", 48 | "contributor_text": "Originally contributed by Darlington Nnam, and updated by 2 contributor(s).", 49 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/cairo.html.markdown" 50 | }, 51 | { 52 | "name": "chapel", 53 | "language_link": "/docs/chapel/", 54 | "source_code_link": "/files/learnchapel.chpl", 55 | "contributor_text": "Originally contributed by Ian J. Bertolacci, and updated by 11 contributor(s).", 56 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/chapel.html.markdown" 57 | }, 58 | { 59 | "name": "CHICKEN", 60 | "language_link": "/docs/CHICKEN/", 61 | "source_code_link": "/files/CHICKEN.scm", 62 | "contributor_text": "Originally contributed by Diwakar Wagle, and updated by 5 contributor(s).", 63 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/CHICKEN.html.markdown" 64 | }, 65 | { 66 | "name": "clojure", 67 | "language_link": "/docs/clojure/", 68 | "source_code_link": "/files/learnclojure.clj", 69 | "contributor_text": "Originally contributed by Adam Bard, and updated by 11 contributor(s).", 70 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/clojure.html.markdown" 71 | }, 72 | { 73 | "name": "clojure macros", 74 | "language_link": "/docs/clojure-macros/", 75 | "source_code_link": "/files/learnclojuremacros.clj", 76 | "contributor_text": "Originally contributed by Adam Bard, and updated by 4 contributor(s).", 77 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/clojure-macros.html.markdown" 78 | }, 79 | { 80 | "name": "COBOL", 81 | "language_link": "/docs/cobol/", 82 | "source_code_link": "/files/learn.COB", 83 | "contributor_text": "Originally contributed by Hyphz, and updated by 6 contributor(s).", 84 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/cobol.html.markdown" 85 | }, 86 | { 87 | "name": "coffeescript", 88 | "language_link": "/docs/coffeescript/", 89 | "source_code_link": "/files/coffeescript.coffee", 90 | "contributor_text": "Originally contributed by Tenor Biel, and updated by 8 contributor(s).", 91 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/coffeescript.html.markdown" 92 | }, 93 | { 94 | "name": "coldfusion", 95 | "language_link": "/docs/coldfusion/", 96 | "source_code_link": "/files/learncoldfusion.cfm", 97 | "contributor_text": "Originally contributed by Wayne Boka, and updated by 5 contributor(s).", 98 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/coldfusion.html.markdown" 99 | }, 100 | { 101 | "name": "Common Lisp", 102 | "language_link": "/docs/common-lisp/", 103 | "source_code_link": "/files/commonlisp.lisp", 104 | "contributor_text": "Originally contributed by Paul Nathan, and updated by 10 contributor(s).", 105 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/common-lisp.html.markdown" 106 | }, 107 | { 108 | "name": "Coq", 109 | "language_link": "/docs/coq/", 110 | "source_code_link": "/files/learncoq.v", 111 | "contributor_text": "Originally contributed by Philip Zucker, and updated by 3 contributor(s).", 112 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/coq.html.markdown" 113 | }, 114 | { 115 | "name": "crystal", 116 | "language_link": "/docs/crystal/", 117 | "source_code_link": "/files/learncrystal.cr", 118 | "contributor_text": "Originally contributed by Vitalii Elenhaupt, and updated by 7 contributor(s).", 119 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/crystal.html.markdown" 120 | }, 121 | { 122 | "name": "css", 123 | "language_link": "/docs/css/", 124 | "source_code_link": "/files/learncss.css", 125 | "contributor_text": "Originally contributed by Mohammad Valipour, and updated by 24 contributor(s).", 126 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/css.html.markdown" 127 | }, 128 | { 129 | "name": "cypher", 130 | "language_link": "/docs/cypher/", 131 | "source_code_link": "/files/LearnCypher.cql", 132 | "contributor_text": "Originally contributed by Théo Gauchoux, and updated by 3 contributor(s).", 133 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/cypher.html.markdown" 134 | }, 135 | { 136 | "name": "D", 137 | "language_link": "/docs/d/", 138 | "source_code_link": "/files/learnd.d", 139 | "contributor_text": "Originally contributed by Nick Papanastasiou, and updated by 10 contributor(s).", 140 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/d.html.markdown" 141 | }, 142 | { 143 | "name": "dart", 144 | "language_link": "/docs/dart/", 145 | "source_code_link": "/files/learndart.dart", 146 | "contributor_text": "Originally contributed by Joao Pedrosa, and updated by 14 contributor(s).", 147 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/dart.html.markdown" 148 | }, 149 | { 150 | "name": "Dhall", 151 | "language_link": "/docs/dhall/", 152 | "source_code_link": "/files/learndhall.dhall", 153 | "contributor_text": "Originally contributed by Gabriel Gonzalez, and updated by 1 contributor(s).", 154 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/dhall.html.markdown" 155 | }, 156 | { 157 | "name": "Easylang", 158 | "language_link": "/docs/easylang/", 159 | "source_code_link": "/files/easylang.el", 160 | "contributor_text": "Originally contributed by chkas, and updated by 0 contributor(s).", 161 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/easylang.html.markdown" 162 | }, 163 | { 164 | "name": "edn", 165 | "language_link": "/docs/edn/", 166 | "source_code_link": "/files/learnedn.edn", 167 | "contributor_text": "Originally contributed by Jason Yeo, and updated by 6 contributor(s).", 168 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/edn.html.markdown" 169 | }, 170 | { 171 | "name": "elisp", 172 | "language_link": "/docs/elisp/", 173 | "source_code_link": "/files/learn-emacs-lisp.el", 174 | "contributor_text": "Originally contributed by Bastien Guerry, and updated by 10 contributor(s).", 175 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/elisp.html.markdown" 176 | }, 177 | { 178 | "name": "elixir", 179 | "language_link": "/docs/elixir/", 180 | "source_code_link": "/files/learnelixir.ex", 181 | "contributor_text": "Originally contributed by Joao Marques, and updated by 25 contributor(s).", 182 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/elixir.html.markdown" 183 | }, 184 | { 185 | "name": "Elm", 186 | "language_link": "/docs/elm/", 187 | "source_code_link": "/files/learnelm.elm", 188 | "contributor_text": "Originally contributed by Max Goldstein, and updated by 7 contributor(s).", 189 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/elm.html.markdown" 190 | }, 191 | { 192 | "name": "erlang", 193 | "language_link": "/docs/erlang/", 194 | "source_code_link": "/files/learnerlang.erl", 195 | "contributor_text": "Originally contributed by Giovanni Cappellotto, and updated by 13 contributor(s).", 196 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/erlang.html.markdown" 197 | }, 198 | { 199 | "name": "F#", 200 | "language_link": "/docs/fsharp/", 201 | "source_code_link": "/files/learnfsharp.fs", 202 | "contributor_text": "Originally contributed by Scott Wlaschin, and updated by 15 contributor(s).", 203 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/fsharp.html.markdown" 204 | }, 205 | { 206 | "name": "factor", 207 | "language_link": "/docs/factor/", 208 | "source_code_link": "/files/learnfactor.factor", 209 | "contributor_text": "Originally contributed by hyphz, and updated by 1 contributor(s).", 210 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/factor.html.markdown" 211 | }, 212 | { 213 | "name": "forth", 214 | "language_link": "/docs/forth/", 215 | "source_code_link": "/files/learnforth.fs", 216 | "contributor_text": "Originally contributed by Horse M.D., and updated by 4 contributor(s).", 217 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/forth.html.markdown" 218 | }, 219 | { 220 | "name": "Fortran", 221 | "language_link": "/docs/fortran90/", 222 | "source_code_link": "/files/learnfortran.f90", 223 | "contributor_text": "Originally contributed by Robert Steed, and updated by 1 contributor(s).", 224 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/fortran90.html.markdown" 225 | }, 226 | { 227 | "name": "FunC", 228 | "language_link": "/docs/func/", 229 | "source_code_link": "/files/learnFunC.fc", 230 | "contributor_text": "Originally contributed by Ivan Romanovich, and updated by 1 contributor(s).", 231 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/func.html.markdown" 232 | }, 233 | { 234 | "name": "GDScript", 235 | "language_link": "/docs/gdscript/", 236 | "source_code_link": "/files/learngdscript.gd", 237 | "contributor_text": "Originally contributed by Wichamir, and updated by 1 contributor(s).", 238 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/gdscript.html.markdown" 239 | }, 240 | { 241 | "name": "Go", 242 | "language_link": "/docs/go/", 243 | "source_code_link": "/files/learngo.go", 244 | "contributor_text": "Originally contributed by Sonia Keys, and updated by 47 contributor(s).", 245 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/go.html.markdown" 246 | }, 247 | { 248 | "name": "Groovy", 249 | "language_link": "/docs/groovy/", 250 | "source_code_link": "/files/learngroovy.groovy", 251 | "contributor_text": "Originally contributed by Roberto Pérez Alcolea, and updated by 12 contributor(s).", 252 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/groovy.html.markdown" 253 | }, 254 | { 255 | "name": "Hack", 256 | "language_link": "/docs/hack/", 257 | "source_code_link": "/files/learnhack.hh", 258 | "contributor_text": "Originally contributed by Andrew DiMola, and updated by 4 contributor(s).", 259 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/hack.html.markdown" 260 | }, 261 | { 262 | "name": "haml", 263 | "language_link": "/docs/haml/", 264 | "source_code_link": "/files/learnhaml.haml", 265 | "contributor_text": "Originally contributed by Simon Neveu, and updated by 5 contributor(s).", 266 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/haml.html.markdown" 267 | }, 268 | { 269 | "name": "Haskell", 270 | "language_link": "/docs/haskell/", 271 | "source_code_link": "/files/learnhaskell.hs", 272 | "contributor_text": "Originally contributed by Adit Bhargava, and updated by 31 contributor(s).", 273 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/haskell.html.markdown" 274 | }, 275 | { 276 | "name": "haxe", 277 | "language_link": "/docs/haxe/", 278 | "source_code_link": "/files/LearnHaxe3.hx", 279 | "contributor_text": "Originally contributed by Justin Donaldson, and updated by 9 contributor(s).", 280 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/haxe.html.markdown" 281 | }, 282 | { 283 | "name": "hdl", 284 | "language_link": "/docs/hdl/", 285 | "source_code_link": "/files/learnhdl.hdl", 286 | "contributor_text": "Originally contributed by Jack Smith, and updated by 2 contributor(s).", 287 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/hdl.html.markdown" 288 | }, 289 | { 290 | "name": "Hjson", 291 | "language_link": "/docs/hjson/", 292 | "source_code_link": "/files/learnhjson.hjson", 293 | "contributor_text": "Originally contributed by MrTeferi, and updated by 1 contributor(s).", 294 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/hjson.html.markdown" 295 | }, 296 | { 297 | "name": "HQ9+", 298 | "language_link": "/docs/hq9+/", 299 | "source_code_link": "/files/hq9+.html", 300 | "contributor_text": "Originally contributed by Alexey Nazaroff, and updated by 1 contributor(s).", 301 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/hq9+.html.markdown" 302 | }, 303 | { 304 | "name": "html", 305 | "language_link": "/docs/html/", 306 | "source_code_link": "/files/learnhtml.txt", 307 | "contributor_text": "Originally contributed by Christophe THOMAS, and updated by 5 contributor(s).", 308 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/html.html.markdown" 309 | }, 310 | { 311 | "name": "hy", 312 | "language_link": "/docs/hy/", 313 | "source_code_link": "/files/learnhy.hy", 314 | "contributor_text": "Originally contributed by Abhishek L, and updated by 6 contributor(s).", 315 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/hy.html.markdown" 316 | }, 317 | { 318 | "name": "Inform7", 319 | "language_link": "/docs/inform7/", 320 | "source_code_link": "/files/LearnInform.Inform", 321 | "contributor_text": "Originally contributed by Hyphz, and updated by 0 contributor(s).", 322 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/inform7.html.markdown" 323 | }, 324 | { 325 | "name": "Janet", 326 | "language_link": "/docs/janet/", 327 | "source_code_link": "/files/learnJanet.janet", 328 | "contributor_text": "Originally contributed by John Gabriele, and updated by 0 contributor(s).", 329 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/janet.html.markdown" 330 | }, 331 | { 332 | "name": "java", 333 | "language_link": "/docs/java/", 334 | "source_code_link": "/files/LearnJava.java", 335 | "contributor_text": "Originally contributed by Jake Prather, and updated by 57 contributor(s).", 336 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/java.html.markdown" 337 | }, 338 | { 339 | "name": "javascript", 340 | "language_link": "/docs/javascript/", 341 | "source_code_link": "/files/javascript.js", 342 | "contributor_text": "Originally contributed by Leigh Brenecki, and updated by 41 contributor(s).", 343 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/javascript.html.markdown" 344 | }, 345 | { 346 | "name": "json", 347 | "language_link": "/docs/json/", 348 | "source_code_link": "/files/learnjson.json", 349 | "contributor_text": "Originally contributed by Anna Harren, and updated by 14 contributor(s).", 350 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/json.html.markdown" 351 | }, 352 | { 353 | "name": "jsonnet", 354 | "language_link": "/docs/jsonnet/", 355 | "source_code_link": "/files/learnjsonnet.jsonnet", 356 | "contributor_text": "Originally contributed by Huan Wang, and updated by 3 contributor(s).", 357 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/jsonnet.html.markdown" 358 | }, 359 | { 360 | "name": "Julia", 361 | "language_link": "/docs/julia/", 362 | "source_code_link": "/files/learnjulia.jl", 363 | "contributor_text": "Originally contributed by Leah Hanson, and updated by 29 contributor(s).", 364 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/julia.html.markdown" 365 | }, 366 | { 367 | "name": "kdb+", 368 | "language_link": "/docs/kdb+/", 369 | "source_code_link": "/files/learnkdb.q", 370 | "contributor_text": "Originally contributed by Matt Doherty, and updated by 6 contributor(s).", 371 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/kdb+.html.markdown" 372 | }, 373 | { 374 | "name": "kotlin", 375 | "language_link": "/docs/kotlin/", 376 | "source_code_link": "/files/LearnKotlin.kt", 377 | "contributor_text": "Originally contributed by S Webber, and updated by 13 contributor(s).", 378 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/kotlin.html.markdown" 379 | }, 380 | { 381 | "name": "latex", 382 | "language_link": "/docs/latex/", 383 | "source_code_link": "/files/learn-latex.tex", 384 | "contributor_text": "Originally contributed by Chaitanya Krishna Ande, and updated by 18 contributor(s).", 385 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/latex.html.markdown" 386 | }, 387 | { 388 | "name": "LB Stanza", 389 | "language_link": "/docs/lbstanza/", 390 | "source_code_link": "/files/learn-stanza.stanza", 391 | "contributor_text": "Originally contributed by Mike Hilgendorf, and updated by 1 contributor(s).", 392 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/lbstanza.html.markdown" 393 | }, 394 | { 395 | "name": "LDPL", 396 | "language_link": "/docs/ldpl/", 397 | "source_code_link": "/files/learnLDPL.ldpl", 398 | "contributor_text": "Originally contributed by Martín del Río, and updated by 2 contributor(s).", 399 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/ldpl.html.markdown" 400 | }, 401 | { 402 | "name": "less", 403 | "language_link": "/docs/less/", 404 | "source_code_link": "/files/learnless.less", 405 | "contributor_text": "Originally contributed by Saravanan Ganesh, and updated by 5 contributor(s).", 406 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/less.html.markdown" 407 | }, 408 | { 409 | "name": "Lisp Flavoured Erlang(LFE)", 410 | "language_link": "/docs/lfe/", 411 | "source_code_link": "/files/lispflavourederlang.lfe", 412 | "contributor_text": "Originally contributed by Pratik Karki, and updated by 1 contributor(s).", 413 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/lfe.html.markdown" 414 | }, 415 | { 416 | "name": "LiveScript", 417 | "language_link": "/docs/livescript/", 418 | "source_code_link": "/files/learnLivescript.ls", 419 | "contributor_text": "Originally contributed by Christina Whyte, and updated by 4 contributor(s).", 420 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/livescript.html.markdown" 421 | }, 422 | { 423 | "name": "Logtalk", 424 | "language_link": "/docs/logtalk/", 425 | "source_code_link": "/files/learnlogtalk.lgt", 426 | "contributor_text": "Originally contributed by Paulo Moura, and updated by 1 contributor(s).", 427 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/logtalk.html.markdown" 428 | }, 429 | { 430 | "name": "LOLCODE", 431 | "language_link": "/docs/LOLCODE/", 432 | "source_code_link": "/files/learnLOLCODE.lol", 433 | "contributor_text": "Originally contributed by abactel, and updated by 1 contributor(s).", 434 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/LOLCODE.html.markdown" 435 | }, 436 | { 437 | "name": "Lua", 438 | "language_link": "/docs/lua/", 439 | "source_code_link": "/files/learnlua.lua", 440 | "contributor_text": "Originally contributed by Tyler Neylon, and updated by 9 contributor(s).", 441 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/lua.html.markdown" 442 | }, 443 | { 444 | "name": "M (MUMPS)", 445 | "language_link": "/docs/m/", 446 | "source_code_link": "/files/LEARNM.m", 447 | "contributor_text": "Originally contributed by Fred Turkington, and updated by 2 contributor(s).", 448 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/m.html.markdown" 449 | }, 450 | { 451 | "name": "markdown", 452 | "language_link": "/docs/markdown/", 453 | "source_code_link": "/files/markdown.md", 454 | "contributor_text": "Originally contributed by Dan Turkel, and updated by 16 contributor(s).", 455 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/markdown.html.markdown" 456 | }, 457 | { 458 | "name": "Matlab", 459 | "language_link": "/docs/matlab/", 460 | "source_code_link": "/files/learnmatlab.mat", 461 | "contributor_text": "Originally contributed by mendozao, and updated by 24 contributor(s).", 462 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/matlab.html.markdown" 463 | }, 464 | { 465 | "name": "MIPS Assembly", 466 | "language_link": "/docs/mips/", 467 | "source_code_link": "/files/MIPS.asm", 468 | "contributor_text": "Originally contributed by Stanley Lim, and updated by 9 contributor(s).", 469 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/mips.html.markdown" 470 | }, 471 | { 472 | "name": "MongoDB", 473 | "language_link": "/docs/mongodb/", 474 | "source_code_link": "/files/mongo.js", 475 | "contributor_text": "Originally contributed by Raj Piskala, and updated by 1 contributor(s).", 476 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/mongodb.html.markdown" 477 | }, 478 | { 479 | "name": "montilang", 480 | "language_link": "/docs/montilang/", 481 | "source_code_link": "/files/montilang.ml", 482 | "contributor_text": "Originally contributed by Leo Whitehead, and updated by 1 contributor(s).", 483 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/montilang.html.markdown" 484 | }, 485 | { 486 | "name": "moonscript", 487 | "language_link": "/docs/moonscript/", 488 | "source_code_link": "/files/moonscript.moon", 489 | "contributor_text": "Originally contributed by RyanSquared, and updated by 2 contributor(s).", 490 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/moonscript.html.markdown" 491 | }, 492 | { 493 | "name": "neat", 494 | "language_link": "/docs/neat/", 495 | "source_code_link": "/files/LearnNeat.nt", 496 | "contributor_text": "Originally contributed by Feep, and updated by 2 contributor(s).", 497 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/neat.html.markdown" 498 | }, 499 | { 500 | "name": "Nim", 501 | "language_link": "/docs/nim/", 502 | "source_code_link": "/files/learnNim.nim", 503 | "contributor_text": "Originally contributed by Jason J. Ayala P., and updated by 11 contributor(s).", 504 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/nim.html.markdown" 505 | }, 506 | { 507 | "name": "nix", 508 | "language_link": "/docs/nix/", 509 | "source_code_link": "/files/learn.nix", 510 | "contributor_text": "Originally contributed by Chris Martin, and updated by 7 contributor(s).", 511 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/nix.html.markdown" 512 | }, 513 | { 514 | "name": "Objective-C", 515 | "language_link": "/docs/objective-c/", 516 | "source_code_link": "/files/LearnObjectiveC.m", 517 | "contributor_text": "Originally contributed by Eugene Yagrushkin, and updated by 19 contributor(s).", 518 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/objective-c.html.markdown" 519 | }, 520 | { 521 | "name": "OCaml", 522 | "language_link": "/docs/ocaml/", 523 | "source_code_link": "/files/learnocaml.ml", 524 | "contributor_text": "Originally contributed by Daniil Baturin, and updated by 10 contributor(s).", 525 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/ocaml.html.markdown" 526 | }, 527 | { 528 | "name": "openscad", 529 | "language_link": "/docs/openscad/", 530 | "source_code_link": "/files/learnopenscad.scad", 531 | "contributor_text": "Originally contributed by Tom Preston, and updated by 2 contributor(s).", 532 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/openscad.html.markdown" 533 | }, 534 | { 535 | "name": "Paren", 536 | "language_link": "/docs/paren/", 537 | "source_code_link": "/files/learnparen.paren", 538 | "contributor_text": "Originally contributed by KIM Taegyoon, and updated by 3 contributor(s).", 539 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/paren.html.markdown" 540 | }, 541 | { 542 | "name": "Pascal", 543 | "language_link": "/docs/pascal/", 544 | "source_code_link": "/files/learnpascal.pas", 545 | "contributor_text": "Originally contributed by Ganesha Danu, and updated by 6 contributor(s).", 546 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/pascal.html.markdown" 547 | }, 548 | { 549 | "name": "PCRE", 550 | "language_link": "/docs/pcre/", 551 | "source_code_link": "/files/pcre.txt", 552 | "contributor_text": "Originally contributed by Sachin Divekar, and updated by 2 contributor(s).", 553 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/pcre.html.markdown" 554 | }, 555 | { 556 | "name": "perl", 557 | "language_link": "/docs/perl/", 558 | "source_code_link": "/files/learnperl.pl", 559 | "contributor_text": "Originally contributed by Korjavin Ivan, and updated by 10 contributor(s).", 560 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/perl.html.markdown" 561 | }, 562 | { 563 | "name": "phel", 564 | "language_link": "/docs/phel/", 565 | "source_code_link": "/files/learnphel.phel", 566 | "contributor_text": "Originally contributed by Chemaclass, and updated by 1 contributor(s).", 567 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/phel.html.markdown" 568 | }, 569 | { 570 | "name": "PHP", 571 | "language_link": "/docs/php/", 572 | "source_code_link": "/files/learnphp.php", 573 | "contributor_text": "Originally contributed by Malcolm Fell, and updated by 44 contributor(s).", 574 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/php.html.markdown" 575 | }, 576 | { 577 | "name": "Pod", 578 | "language_link": "/docs/raku-pod/", 579 | "source_code_link": "/files/learnpod.pod6", 580 | "contributor_text": "Originally contributed by Luis F. Uceta, and updated by 1 contributor(s).", 581 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/raku-pod.html.markdown" 582 | }, 583 | { 584 | "name": "pogoscript", 585 | "language_link": "/docs/pogo/", 586 | "source_code_link": "/files/learnPogo.pogo", 587 | "contributor_text": "Originally contributed by Tim Macfarlane, and updated by 1 contributor(s).", 588 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/pogo.html.markdown" 589 | }, 590 | { 591 | "name": "processing", 592 | "language_link": "/docs/processing/", 593 | "source_code_link": "/files/learnprocessing.pde", 594 | "contributor_text": "Originally contributed by Phone Than Ko, and updated by 4 contributor(s).", 595 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/processing.html.markdown" 596 | }, 597 | { 598 | "name": "prolog", 599 | "language_link": "/docs/prolog/", 600 | "source_code_link": "/files/learnprolog.pl", 601 | "contributor_text": "Originally contributed by hyphz, and updated by 4 contributor(s).", 602 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/prolog.html.markdown" 603 | }, 604 | { 605 | "name": "protocol-buffers", 606 | "language_link": "/docs/protocol-buffer-3/", 607 | "source_code_link": "/files/protocol-buffers.proto", 608 | "contributor_text": "Originally contributed by Shankar Shastri, and updated by 0 contributor(s).", 609 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/protocol-buffer-3.html.markdown" 610 | }, 611 | { 612 | "name": "Pug", 613 | "language_link": "/docs/pug/", 614 | "source_code_link": "/files/index.pug", 615 | "contributor_text": "Originally contributed by Michael Warner, and updated by 1 contributor(s).", 616 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/pug.html.markdown" 617 | }, 618 | { 619 | "name": "PureScript", 620 | "language_link": "/docs/purescript/", 621 | "source_code_link": "/files/purescript.purs", 622 | "contributor_text": "Originally contributed by Fredrik Dyrkell, and updated by 12 contributor(s).", 623 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/purescript.html.markdown" 624 | }, 625 | { 626 | "name": "Python", 627 | "language_link": "/docs/python/", 628 | "source_code_link": "/files/learnpython.py", 629 | "contributor_text": "Originally contributed by Louie Dinh, and updated by 10 contributor(s).", 630 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/python.html.markdown" 631 | }, 632 | { 633 | "name": "Python 2 (legacy)", 634 | "language_link": "/docs/pythonlegacy/", 635 | "source_code_link": "/files/learnpythonlegacy.py", 636 | "contributor_text": "Originally contributed by Louie Dinh, and updated by 7 contributor(s).", 637 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/pythonlegacy.html.markdown" 638 | }, 639 | { 640 | "name": "Q#", 641 | "language_link": "/docs/qsharp/", 642 | "source_code_link": "/files/LearnQSharp.qs", 643 | "contributor_text": "Originally contributed by Vincent van Wingerden, and updated by 4 contributor(s).", 644 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/qsharp.html.markdown" 645 | }, 646 | { 647 | "name": "R", 648 | "language_link": "/docs/r/", 649 | "source_code_link": "/files/learnr.r", 650 | "contributor_text": "Originally contributed by e99n09, and updated by 20 contributor(s).", 651 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/r.html.markdown" 652 | }, 653 | { 654 | "name": "racket", 655 | "language_link": "/docs/racket/", 656 | "source_code_link": "/files/learnracket.rkt", 657 | "contributor_text": "Originally contributed by th3rac25, and updated by 17 contributor(s).", 658 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/racket.html.markdown" 659 | }, 660 | { 661 | "name": "Raku", 662 | "language_link": "/docs/raku/", 663 | "source_code_link": "/files/learnraku.raku", 664 | "contributor_text": "Originally contributed by vendethiel, and updated by 8 contributor(s).", 665 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/raku.html.markdown" 666 | }, 667 | { 668 | "name": "RDF", 669 | "language_link": "/docs/rdf/", 670 | "source_code_link": "/files/learnrdf.ttl", 671 | "contributor_text": "Originally contributed by Bob DuCharme, and updated by 0 contributor(s).", 672 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/rdf.html.markdown" 673 | }, 674 | { 675 | "name": "reason", 676 | "language_link": "/docs/reason/", 677 | "source_code_link": "/files/reason.re", 678 | "contributor_text": "Originally contributed by Seth Corker, and updated by 2 contributor(s).", 679 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/reason.html.markdown" 680 | }, 681 | { 682 | "name": "Red", 683 | "language_link": "/docs/red/", 684 | "source_code_link": "/files/learnred.red", 685 | "contributor_text": "Originally contributed by Arnold van Hofwegen, and updated by 10 contributor(s).", 686 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/red.html.markdown" 687 | }, 688 | { 689 | "name": "restructured text (RST)", 690 | "language_link": "/docs/rst/", 691 | "source_code_link": "/files/restructuredtext.rst", 692 | "contributor_text": "Originally contributed by DamienVGN, and updated by 8 contributor(s).", 693 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/rst.html.markdown" 694 | }, 695 | { 696 | "name": "ruby", 697 | "language_link": "/docs/ruby/", 698 | "source_code_link": "/files/learnruby.rb", 699 | "contributor_text": "Originally contributed by David Underwood, and updated by 53 contributor(s).", 700 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/ruby.html.markdown" 701 | }, 702 | { 703 | "name": "Rust", 704 | "language_link": "/docs/rust/", 705 | "source_code_link": "/files/learnrust.rs", 706 | "contributor_text": "Originally contributed by P1start, and updated by 15 contributor(s).", 707 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/rust.html.markdown" 708 | }, 709 | { 710 | "name": "sass", 711 | "language_link": "/docs/sass/", 712 | "source_code_link": "/files/learnsass.scss", 713 | "contributor_text": "Originally contributed by Laura Kyle, and updated by 4 contributor(s).", 714 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/sass.html.markdown" 715 | }, 716 | { 717 | "name": "Scala", 718 | "language_link": "/docs/scala/", 719 | "source_code_link": "/files/learnscala.scala", 720 | "contributor_text": "Originally contributed by George Petrov, and updated by 29 contributor(s).", 721 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/scala.html.markdown" 722 | }, 723 | { 724 | "name": "self", 725 | "language_link": "/docs/self/", 726 | "source_code_link": "/files/learnself.self", 727 | "contributor_text": "Originally contributed by Russell Allen, and updated by 3 contributor(s).", 728 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/self.html.markdown" 729 | }, 730 | { 731 | "name": "Sing", 732 | "language_link": "/docs/sing/", 733 | "source_code_link": "/files/learnsing.sing", 734 | "contributor_text": "Originally contributed by Maurizio De Girolami, and updated by 1 contributor(s).", 735 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/sing.html.markdown" 736 | }, 737 | { 738 | "name": "SmallBASIC", 739 | "language_link": "/docs/smallbasic/", 740 | "source_code_link": "/files/learnsmallbasic.bas", 741 | "contributor_text": "Originally contributed by Chris Warren-Smith, and updated by 0 contributor(s).", 742 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/smallbasic.html.markdown" 743 | }, 744 | { 745 | "name": "Smalltalk", 746 | "language_link": "/docs/smalltalk/", 747 | "source_code_link": "/files/smalltalk.st", 748 | "contributor_text": "Originally contributed by Jigyasa Grover, and updated by 11 contributor(s).", 749 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/smalltalk.html.markdown" 750 | }, 751 | { 752 | "name": "Solidity", 753 | "language_link": "/docs/solidity/", 754 | "source_code_link": "/files/learnSolidity.sol", 755 | "contributor_text": "Originally contributed by Nemil Dalal, and updated by 21 contributor(s).", 756 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/solidity.html.markdown" 757 | }, 758 | { 759 | "name": "SQL", 760 | "language_link": "/docs/sql/", 761 | "source_code_link": "/files/learnsql.sql", 762 | "contributor_text": "Originally contributed by Bob DuCharme, and updated by 4 contributor(s).", 763 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/sql.html.markdown" 764 | }, 765 | { 766 | "name": "Standard ML", 767 | "language_link": "/docs/standard-ml/", 768 | "source_code_link": "/files/standardml.sml", 769 | "contributor_text": "Originally contributed by Simon Shine, and updated by 16 contributor(s).", 770 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/standard-ml.html.markdown" 771 | }, 772 | { 773 | "name": "stylus", 774 | "language_link": "/docs/stylus/", 775 | "source_code_link": "/files/learnStylus.styl", 776 | "contributor_text": "Originally contributed by Salomão Neto, and updated by 2 contributor(s).", 777 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/stylus.html.markdown" 778 | }, 779 | { 780 | "name": "swift", 781 | "language_link": "/docs/swift/", 782 | "source_code_link": "/files/learnswift.swift", 783 | "contributor_text": "Originally contributed by Grant Timmerman, and updated by 30 contributor(s).", 784 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/swift.html.markdown" 785 | }, 786 | { 787 | "name": "Tcl", 788 | "language_link": "/docs/tcl/", 789 | "source_code_link": "/files/learntcl.tcl", 790 | "contributor_text": "Originally contributed by Poor Yorick, and updated by 11 contributor(s).", 791 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/tcl.html.markdown" 792 | }, 793 | { 794 | "name": "Texinfo", 795 | "language_link": "/docs/texinfo/", 796 | "source_code_link": "/files/learntexinfo.texi", 797 | "contributor_text": "Originally contributed by Julien Lepiller, and updated by 0 contributor(s).", 798 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/texinfo.html.markdown" 799 | }, 800 | { 801 | "name": "textile", 802 | "language_link": "/docs/textile/", 803 | "source_code_link": "/files/learn-textile.textile", 804 | "contributor_text": "Originally contributed by Keith Miyake, and updated by 2 contributor(s).", 805 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/textile.html.markdown" 806 | }, 807 | { 808 | "name": "toml", 809 | "language_link": "/docs/toml/", 810 | "source_code_link": "/files/learntoml.toml", 811 | "contributor_text": "Originally contributed by Alois de Gouvello, and updated by 6 contributor(s).", 812 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/toml.html.markdown" 813 | }, 814 | { 815 | "name": "TypeScript", 816 | "language_link": "/docs/typescript/", 817 | "source_code_link": "/files/learntypescript.ts", 818 | "contributor_text": "Originally contributed by Philippe Vlérick, and updated by 22 contributor(s).", 819 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/typescript.html.markdown" 820 | }, 821 | { 822 | "name": "uxntal", 823 | "language_link": "/docs/uxntal/", 824 | "source_code_link": "/files/learnuxn.tal", 825 | "contributor_text": "Originally contributed by Devine Lu Linvega, and updated by 0 contributor(s).", 826 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/uxntal.html.markdown" 827 | }, 828 | { 829 | "name": "vala", 830 | "language_link": "/docs/vala/", 831 | "source_code_link": "/files/LearnVala.vala", 832 | "contributor_text": "Originally contributed by Milo Gilad, and updated by 2 contributor(s).", 833 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/vala.html.markdown" 834 | }, 835 | { 836 | "name": "Vimscript", 837 | "language_link": "/docs/vimscript/", 838 | "source_code_link": "/files/learnvimscript.vim", 839 | "contributor_text": "Originally contributed by HiPhish, and updated by 3 contributor(s).", 840 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/vimscript.html.markdown" 841 | }, 842 | { 843 | "name": "Visual Basic", 844 | "language_link": "/docs/visualbasic/", 845 | "source_code_link": "/files/learnvisualbasic.vb", 846 | "contributor_text": "Originally contributed by Brian Martin, and updated by 9 contributor(s).", 847 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/visualbasic.html.markdown" 848 | }, 849 | { 850 | "name": "Vyper", 851 | "language_link": "/docs/vyper/", 852 | "source_code_link": "/files/learnVyper.vy", 853 | "contributor_text": "Originally contributed by Kenny Peluso, and updated by 1 contributor(s).", 854 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/vyper.html.markdown" 855 | }, 856 | { 857 | "name": "WebAssembly", 858 | "language_link": "/docs/wasm/", 859 | "source_code_link": "/files/learn-wasm.wast", 860 | "contributor_text": "Originally contributed by Dean Shaff, and updated by 4 contributor(s).", 861 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/wasm.html.markdown" 862 | }, 863 | { 864 | "name": "whip", 865 | "language_link": "/docs/whip/", 866 | "source_code_link": "/files/whip.lisp", 867 | "contributor_text": "Originally contributed by Tenor Biel, and updated by 8 contributor(s).", 868 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/whip.html.markdown" 869 | }, 870 | { 871 | "name": "wolfram", 872 | "language_link": "/docs/wolfram/", 873 | "source_code_link": "/files/learnwolfram.nb", 874 | "contributor_text": "Originally contributed by hyphz, and updated by 1 contributor(s).", 875 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/wolfram.html.markdown" 876 | }, 877 | { 878 | "name": "xml", 879 | "language_link": "/docs/xml/", 880 | "source_code_link": "/files/learnxml.xml", 881 | "contributor_text": "Originally contributed by João Farias, and updated by 9 contributor(s).", 882 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/xml.html.markdown" 883 | }, 884 | { 885 | "name": "yaml", 886 | "language_link": "/docs/yaml/", 887 | "source_code_link": "/files/learnyaml.yaml", 888 | "contributor_text": "Originally contributed by Leigh Brenecki, and updated by 12 contributor(s).", 889 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/yaml.html.markdown" 890 | }, 891 | { 892 | "name": "zig", 893 | "language_link": "/docs/zig/", 894 | "source_code_link": "/files/learnzig.zig", 895 | "contributor_text": "Originally contributed by Philippe Pittoli, and updated by 2 contributor(s).", 896 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/zig.html.markdown" 897 | }, 898 | { 899 | "name": "amd", 900 | "language_link": "/docs/amd/", 901 | "source_code_link": "/files/learnamd.js", 902 | "contributor_text": "Originally contributed by Frederik Ring, and updated by 2 contributor(s).", 903 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/amd.html.markdown" 904 | }, 905 | { 906 | "name": "AngularJS", 907 | "language_link": "/docs/angularjs/", 908 | "source_code_link": "/files/learnangular.html", 909 | "contributor_text": "Originally contributed by Walter Cordero, and updated by 3 contributor(s).", 910 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/angularjs.html.markdown" 911 | }, 912 | { 913 | "name": "ansible", 914 | "language_link": "/docs/ansible/", 915 | "source_code_link": "/files/LearnAnsible.txt", 916 | "contributor_text": "Originally contributed by Jakub Muszynski, and updated by 10 contributor(s).", 917 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/ansible.html.markdown" 918 | }, 919 | { 920 | "name": "awk", 921 | "language_link": "/docs/awk/", 922 | "source_code_link": "/files/learnawk.awk", 923 | "contributor_text": "Originally contributed by Marshall Mason, and updated by 9 contributor(s).", 924 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/awk.html.markdown" 925 | }, 926 | { 927 | "name": "bash", 928 | "language_link": "/docs/bash/", 929 | "source_code_link": "/files/LearnBash.sh", 930 | "contributor_text": "Originally contributed by Max Yankov, and updated by 58 contributor(s).", 931 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/bash.html.markdown" 932 | }, 933 | { 934 | "name": "cmake", 935 | "language_link": "/docs/cmake/", 936 | "source_code_link": "/files/CMake", 937 | "contributor_text": "Originally contributed by Bruno Alano, and updated by 3 contributor(s).", 938 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/cmake.html.markdown" 939 | }, 940 | { 941 | "name": "compojure", 942 | "language_link": "/docs/compojure/", 943 | "source_code_link": "/files/learncompojure.clj", 944 | "contributor_text": "Originally contributed by Adam Bard, and updated by 2 contributor(s).", 945 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/compojure.html.markdown" 946 | }, 947 | { 948 | "name": "composer", 949 | "language_link": "/docs/php-composer/", 950 | "source_code_link": "/files/LearnComposer.sh", 951 | "contributor_text": "Originally contributed by Brett Taylor, and updated by 0 contributor(s).", 952 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/php-composer.html.markdown" 953 | }, 954 | { 955 | "name": "DirectX 9", 956 | "language_link": "/docs/directx9/", 957 | "source_code_link": "/files/learndirectx9.cpp", 958 | "contributor_text": "Originally contributed by Simon Deitermann, and updated by 1 contributor(s).", 959 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/directx9.html.markdown" 960 | }, 961 | { 962 | "name": "docker", 963 | "language_link": "/docs/docker/", 964 | "source_code_link": "/files/docker.bat", 965 | "contributor_text": "Originally contributed by Ruslan López, and updated by 6 contributor(s).", 966 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/docker.html.markdown" 967 | }, 968 | { 969 | "name": "emacs", 970 | "language_link": "/docs/emacs/", 971 | "source_code_link": "/files/emacs.txt", 972 | "contributor_text": "Originally contributed by Joseph Riad, and updated by 0 contributor(s).", 973 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/emacs.html.markdown" 974 | }, 975 | { 976 | "name": "fish", 977 | "language_link": "/docs/fish/", 978 | "source_code_link": "/files/learn.fish", 979 | "contributor_text": "Originally contributed by MySurmise, and updated by 0 contributor(s).", 980 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/fish.html.markdown" 981 | }, 982 | { 983 | "name": "git", 984 | "language_link": "/docs/git/", 985 | "source_code_link": "/files/LearnGit.txt", 986 | "contributor_text": "Originally contributed by Jake Prather, and updated by 35 contributor(s).", 987 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/git.html.markdown" 988 | }, 989 | { 990 | "name": "jquery", 991 | "language_link": "/docs/jquery/", 992 | "source_code_link": "/files/jquery.js", 993 | "contributor_text": "Originally contributed by Sawyer Charles, and updated by 6 contributor(s).", 994 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/jquery.html.markdown" 995 | }, 996 | { 997 | "name": "make", 998 | "language_link": "/docs/make/", 999 | "source_code_link": "/files/Makefile", 1000 | "contributor_text": "Originally contributed by Robert Steed, and updated by 6 contributor(s).", 1001 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/make.html.markdown" 1002 | }, 1003 | { 1004 | "name": "Mercurial", 1005 | "language_link": "/docs/mercurial/", 1006 | "source_code_link": "/files/LearnMercurial.txt", 1007 | "contributor_text": "Originally contributed by Will L. Fife, and updated by 3 contributor(s).", 1008 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/mercurial.html.markdown" 1009 | }, 1010 | { 1011 | "name": "messagepack", 1012 | "language_link": "/docs/messagepack/", 1013 | "source_code_link": "/files/learnmessagepack.mpac", 1014 | "contributor_text": "Originally contributed by Gabriel Chuan, and updated by 1 contributor(s).", 1015 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/messagepack.html.markdown" 1016 | }, 1017 | { 1018 | "name": "OpenCV", 1019 | "language_link": "/docs/opencv/", 1020 | "source_code_link": "/files/learnopencv.py", 1021 | "contributor_text": "Originally contributed by Yogesh Ojha, and updated by 1 contributor(s).", 1022 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/opencv.html.markdown" 1023 | }, 1024 | { 1025 | "name": "OpenGL", 1026 | "language_link": "/docs/opengl/", 1027 | "source_code_link": "/files/learnopengl.cpp", 1028 | "contributor_text": "Originally contributed by Simon Deitermann, and updated by 1 contributor(s).", 1029 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/opengl.html.markdown" 1030 | }, 1031 | { 1032 | "name": "p5", 1033 | "language_link": "/docs/p5/", 1034 | "source_code_link": "/files/p5.js", 1035 | "contributor_text": "Originally contributed by Amey Bhavsar, and updated by 4 contributor(s).", 1036 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/p5.html.markdown" 1037 | }, 1038 | { 1039 | "name": "powershell", 1040 | "language_link": "/docs/powershell/", 1041 | "source_code_link": "/files/LearnPowershell.ps1", 1042 | "contributor_text": "Originally contributed by Wouter Van Schandevijl, and updated by 6 contributor(s).", 1043 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/powershell.html.markdown" 1044 | }, 1045 | { 1046 | "name": "PyQT", 1047 | "language_link": "/docs/pyqt/", 1048 | "source_code_link": "/files/learnpyqt.py", 1049 | "contributor_text": "Originally contributed by Nathan Hughes, and updated by 1 contributor(s).", 1050 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/pyqt.html.markdown" 1051 | }, 1052 | { 1053 | "name": "Qt Framework", 1054 | "language_link": "/docs/qt/", 1055 | "source_code_link": "/files/learnqt.cpp", 1056 | "contributor_text": "Originally contributed by Aleksey Kholovchuk, and updated by 3 contributor(s).", 1057 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/qt.html.markdown" 1058 | }, 1059 | { 1060 | "name": "raylib", 1061 | "language_link": "/docs/raylib/", 1062 | "source_code_link": "/files/learnraylib.c", 1063 | "contributor_text": "Originally contributed by Nikolas Wipper, and updated by 0 contributor(s).", 1064 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/raylib.html.markdown" 1065 | }, 1066 | { 1067 | "name": "ShutIt", 1068 | "language_link": "/docs/shutit/", 1069 | "source_code_link": "/files/learnshutit.html", 1070 | "contributor_text": "Originally contributed by Ian Miell, and updated by 2 contributor(s).", 1071 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/shutit.html.markdown" 1072 | }, 1073 | { 1074 | "name": "tcsh", 1075 | "language_link": "/docs/tcsh/", 1076 | "source_code_link": "/files/LearnTCSH.csh", 1077 | "contributor_text": "Originally contributed by Nicholas Christopoulos, and updated by 4 contributor(s).", 1078 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/tcsh.html.markdown" 1079 | }, 1080 | { 1081 | "name": "tmux", 1082 | "language_link": "/docs/tmux/", 1083 | "source_code_link": "/files/LearnTmux.txt", 1084 | "contributor_text": "Originally contributed by mdln, and updated by 8 contributor(s).", 1085 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/tmux.html.markdown" 1086 | }, 1087 | { 1088 | "name": "vim", 1089 | "language_link": "/docs/vim/", 1090 | "source_code_link": "/files/LearnVim.txt", 1091 | "contributor_text": "Originally contributed by RadhikaG, and updated by 12 contributor(s).", 1092 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/vim.html.markdown" 1093 | }, 1094 | { 1095 | "name": "zfs", 1096 | "language_link": "/docs/zfs/", 1097 | "source_code_link": "/files/LearnZfs.txt", 1098 | "contributor_text": "Originally contributed by sarlalian, and updated by 5 contributor(s).", 1099 | "contributor_link": "https://github.com/adambard/learnxinyminutes-docs/blame/master/zfs.html.markdown" 1100 | } 1101 | ] 1102 | --------------------------------------------------------------------------------