-- layout: default -- title: Detailed Information About Program Options -- backlink: quickstart.html -- backtext: Quick Start -- nextlink: tags.html -- nexttext: Tags -- indexlink: true -- details: [] -- details: Notes -- details: Creating new site project -- details: Building existing project -- details: Server mode -- details: Help command -- details: Version command -- details: License command -- details: Readme command -- details: Create empty markdown file -- detailslink: [] -- detailslink: notes -- detailslink: create -- detailslink: build -- detailslink: server -- detailslink: help -- detailslink: version -- detailslink: license -- detailslink: readme -- detailslink: createfile ## Notes * If you want to run the program from other directory, you should set the environment variable `YASSDIR` to your current directory. Example: `export YASSDIR=$(pwd)`. * If you use AppImage version of program, replace `yass` in examples with name of AppImage file (if not changed, this will be `yass-x86_64.AppImage`). ^ Top ## Creating new site project To create new site project type in the directory where the file `yass` is `./yass createnow [ProjectName]` for fast create of new project with default settings, or `./yass create [ProjectName]` for creation of new project based on your answers on a few questions. `[ProjectName]` is the name of your site project. It will be the name of directory too. This command creates the directory with the content: [ProjectName] |-_layouts |-default.html |-_output |-_modules |-end |-post |-pre |-start |-index.md |-site.cfg * Directory *_layouts* contains Ada Web Server templates used to generate the site. * Directory *_output* is the directory where generated site will be stored. * Directory *_modules* is the directory where the program modules will be stored. * File *index.md* is empty Markdown file which will be later main page of the site. * File *site.cfg* is configuration file of project. ^ Top ## Building existing project To build any existing site project, type in directory where the file `yass` is `./yass build [ProjectName]` where `[ProjectName]` is name of your site project. It will convert any not excluded file with extension `.md` to HTML file, apply layout to it and move with all others, not excluded files to the output directory (by default it is *_output* directory in `[ProjectName]` directory). Additonally, if you have enabled generating sitemaps, it will create one with all pages and file `robots.txt` to inform crawlers about the sitemap. This command preserve structure of directories and files in your project. Thus, if you create the directory structure like this: [ProjectName] |-_layouts |-default.html |-_output |-_modules |-end |-post |-pre |-start |-index.md |-site.cfg |-images |-newimage.png Your new site will be having that directory structure (inside the *_output* directory). Files `sitemap.xml` and `robots.txt` will be added only when you will be having enabled option to create sitemap. File `atom.xml` will be added only when you will be having enabled option to create Atom feed: index.html sitemap.xml robots.txt atom.xml images |-newimage.png ^ Top ## Server mode To run the program in server mode, type in the directory where file `yass` is `./yass server [ProjectName]` where `[ProjectName]` is name of your site project. If you enabled the web server in `site.cfg` this will start it at *http://localhost:[port]/* (where *[port]* is port number set in `site.cfg`, by default it is *8888*) to which you can point your web browser to preview the site. If you enable it too, after the web server start, the program will open `index.html` page in selected web browser. Additionally, the program will be monitoring every *X* seconds (this is set in `site.cfg` file too, default every *5* seconds) your site project directory for changes to files. If any file will be changed during server work, it will regenerate it. If you add any new file, it will be added to the site output directory. If you change any layout file from layouts directory all HTML files which use this layout (directly, not as included) will be updated too. If you have enabled creating sitemaps, it will be upgraded or created too if needed, same with file `robots.txt`. If you have enabled creating atom feed, it will be upgrade or create `atom.xml` file if needed. If you want, you can set this command to terminate on any error occurence, during monitoring the site. Additionally, you can customize how directory listing looks, by editing `directory.html` file in layouts directory. More information about available tags, you can find in [AWS API documentation] (https://docs.adacore.com/aws-docs/aws/apiref.html#aws-services-directory). ### Limitations * Monitoring does not delete files. If you delete one, the program will not detect it. You must stop, remove old file manually, then restart the server. * If you delete page which was in the sitemap, you will be need to edit the sitemap manually or delete it completely with file `robots.txt` to regenerate list of the site pages with `build` command. * Same with Atom feed, if you delete page which was in feed, you will need to edit `atom.xml` file or delete it to regenerate it with `build` command. * If you edit global tag (in `site.cfg` file) you will be need to stop the program and rebuild whole site with `build` command, because server can monitor only settings changes (it will not rebuild `.md` files). ^ Top ## Help command This command gives only short information about all available program's commands. To run it, type in directory where the file `yass` is `./yass help`. ^ Top ## Version command This command gives only short information about the program version, and its released date. To run it, type in directory where the file `yass` is `./yass version`. ^ Top ## License command This command gives only short information about the program license. To run it, type in directory where the file `yass` is `./yass license`. ^ Top ## Readme command This command prints in terminal content of README.md file. To run it, type in directory where the file `yass` is `./yass readme`. ^ Top ## Create empty markdown file If you want to create a new empty (only with comments) markdown file in your site project, type in directory where the file `yass` is `./yass [path][filename].md`. You may omit file extension, it will be added automatically by the program. ^ Top