{"id":20620582,"url":"https://github.com/blacklight/blash","last_synced_at":"2025-04-15T12:14:03.974Z","repository":{"id":1249853,"uuid":"1188412","full_name":"blacklight/blash","owner":"blacklight","description":"AJAX interface for a shell-oriented web browsing","archived":false,"fork":false,"pushed_at":"2022-10-17T23:15:57.000Z","size":87,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T12:13:48.728Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/blacklight.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-12-21T21:44:25.000Z","updated_at":"2023-08-27T07:04:34.000Z","dependencies_parsed_at":"2023-01-11T15:50:26.293Z","dependency_job_id":null,"html_url":"https://github.com/blacklight/blash","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blacklight%2Fblash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blacklight%2Fblash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blacklight%2Fblash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blacklight%2Fblash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blacklight","download_url":"https://codeload.github.com/blacklight/blash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249067779,"owners_count":21207396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T12:14:55.259Z","updated_at":"2025-04-15T12:14:03.953Z","avatar_url":"https://github.com/blacklight.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"blash - BlackLight's shell\nAn AJAX CMS for browsing your web site through a shell-oriented interface\nby BlackLight, \u003cblacklight@autistici.org\u003e, http://0x00.ath.cx\n\n=================================================================================\nQ.: What is blash?\nA.: blash is a tiny CMS developed in AJAX that allows you to browse your website\nthrough a shell-oriented interface. The way to use it is quite simple and\ninspired from software like bash and zsh, you can see an example running at the\naddress http://0x00.ath.cx/blash/index.html.\n=================================================================================\nQ.: How can a web site be represented like a filesystem browsable from a terminal?\nA.: A directory is fundamentally a `container' of logically correlated items (for\nexample, a directory could be blog/, or forum/, or news/, and so on). A page in your\nweb site is represented as file inside of its directory (for example, the 4th post\nin a blog may be represented as the file `4' in directory `blog/'). Then you can\nsimply browse the web site in the following way:\n\n- ls for viewing the content of a certain directory\n- cd for changing the current directory\n- cat for opening a certain file\n\nA `file' can be a container of static stuff (in this case `cat' simply prints\nits content on the pseudo-terminal) or the link to another page (in this case\n`cat' opens that link in a new window or tab, be sure you allow your web site to\nopen popup windows). The pages having static content printed to the\npseudo-terminal are represented in normal font, the files that links to an\nexternal content is instead represented as an `executable' file (by default, in\ncolour green).\n=================================================================================\nQ.: How can I use blash on my own web server?\nA.: You just need, if you want to use the users module (strongly suggested), PHP\n\u003e= 5.2.0 installed on your web server, otherwise just a web server that can\nstatic pages. All you need to do is to put the content of blash in your favourite\ndirectory on your web server, and then it should all work out of the box. If you\ndo not have PHP support on your web server, go to system/blash.json and remove\n\"users\" from the used modules or set it its \"enabled\" field to \"false\". *PLEASE\nREMEMBER, ONCE BLASH IS READY, TO CHANGE THE ROOT PASSWORD BY TYPING \"su\" AND THEN\n\"passwd\"*\n=================================================================================\nQ.: Which is the default password for 'root' user?\nA.: blash. Remember to use it only one time, then change it using the passwd command.\n=================================================================================\nQ.: Which browsers are compatible with blash?\nA.: So far blash has been successfully tested with the following browsers:\n\n- Mozilla Firefox ( \u003e= 3.5)\n- Opera ( \u003e= 11.0 )\n- Google Chrome (despite the auto-completion feature is a bit buggy)\n- Konqueror \u003e= 4.x\n- Flock\n- uzbl\n- surf\n- vimprobable\n- jumanji\n\nHowever, any browser with a decent JavaScript engine should give no problem with\nblash. Internet Explorer is currently NOT working with blash, at least any\nrelease \u003c= 8. I'm sorry, choose a decent browser.\n=================================================================================\nQ.: How do I add the contents for my web site in blash?\nA.: Open the file system/blash.json. This JSON file contains the preferences for your\nshell (banner, prompt style, default user, escape sequences recognized in the\nprompt string...), the commands to be used, and so on. Change this file in order to\nchange the preferences of your CMS.\n\nThe contents of your web site are held in the file system/files_json.php. Modify this\nfile directly using the example contents as trace for adding or removing new contents.\nEach content can include the following fields:\n\n- path (MANDATORY), the full absolute path that identifies that resource\n- type (MANDATORY), the resource type (directory or file)\n- href (for files only), if the file is a link to an external page, the link it\nshould point to\n- content (for files only), if the file has static content that should be\nprinted in the pseudo-terminal window, this field contains its content\n=================================================================================\nQ.: Can I add more commands?\nA.: Sure you can. Take a look at directory `commands' for seeing the definition\nof default commands. Each commands is represented as a JSON file containing the\nfollowing fields:\n\n- \"name\", name of the command\n- \"info\", array containing the fields \"syntax\" and \"brief\", used for showing the\nsyntax of the command when you type `man blash' and the full description when\nyou type `man \u003ccommand\u003e'\n- \"action\": a function taking as parameter the argument passed to the command\nand executing the command itself. This function returns the string that should\nbe printed by the command to the terminal. You can also access and/or modify\nblash's variables and settings accessing them through the object shell.* take a\nlook at the file `blash.js' for a brief description of the fields of this object\nor to the sample commands in `commands/' directory for seeing how to access\nthem.\n\nAfter creating your JSON file with the new command, don't forget to add the name\nof the command to the array `commands' in blash.json so that the CMS sees it.\n=================================================================================\nQ.: Can I add more modules?\nA.: Of course you can. Just place the code of your module in modules/MODULENAME\ndirectory and enable it by adding to system/blash.json a new entry in \"modules\"\narray following the example of \"users\" module, by setting the \"enabled\" field to\n\"true\" if you want to enable it.\n=================================================================================\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblacklight%2Fblash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblacklight%2Fblash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblacklight%2Fblash/lists"}