diff --git a/README.md b/README.md index c04fdbd..4173f11 100644 --- a/README.md +++ b/README.md @@ -55,4 +55,4 @@ These are some sites that run with MIIS: - [Alquiler Sanxenxo](https://www.alquilersanxenxo.com/): Seaside flat rental site. Azure App. - [Krasis Intranet](https://krasisintranet.azurewebsites.net/): private, OAuth 2.0 protected Intranet site. Azure App. -Using MIIS for your website, documentation or any other thing? Just [tell me](https://jmalarcon.es/contacto/) to get a link here 😊 \ No newline at end of file +**If you use MIIS** to create a website, the documentation for your project, a document-based site, etc... please **[tweet it to me](https://twitter.com/jm_alarcon)** with the URL 😊 Thanks! diff --git a/docs/Azure.md b/docs/Azure.md deleted file mode 100644 index fcb0a36..0000000 --- a/docs/Azure.md +++ /dev/null @@ -1,41 +0,0 @@ -# How to run MIIS in Azure Web Sites - -Running a documentation site publicly, **on the Web, for free** is really easy with [Azure Web Sites](https://azure.microsoft.com/en-us/services/app-service/web/). - -## Step by Step Instructions: -1. **Create your [free Azure account](https://azure.microsoft.com/en-us/free/)** if you don't have one. -2. Go to the [Azure Portal](https://portal.azure.com) and **create a new _Web App_**. - -Choose a name for your site that is descriptive and available, create a new resource group (choose the free tier) or select a existing one, and choose a location for the site: - -![Azure, create Web App](Images/Azure/01-New-Web-App.png) - -Click the "Create" button. After a few seconds your site will be available. - -3.- **Deploy your contents** to Azure. - -You can deploy to Azure using a lot of different methods. I, for example, like to deploy my sites directly from their Git repository or from DropBox. But the easiest and more straight-forward way is through FTP. - -Go to your Web App main page and press the "Get publish profile" button. - -![Web App, create FTP credentials](Images/Azure/02-FTP-Credentials.png) - -Inside the downloaded file you'll find the credentials to access your site through FTP. - ->**IMPORTANT**: Don't change or use the FTP credentials in the "Deployment credentials" section, since those are common for all the sites in your Azure account, and are dangerous to share. - -4.- **Transfer files** to your Web App. - -Go to the "Overview" section of your Web App to get its URL: - -![Web Site overview](Images/Azure/03-Site-Overview.png) - -Now you can access the FTP site in the same URL with the `ftp://` protocol, for example: `ftp://mySuperSite.azurewebsites.net` - ->You can use a decent graphic FTP client such as [Filezilla](https://filezilla-project.org/) to be more comfortable. - -Make sure you upload not only your Markdown documents, but the MIIS sub-folders ("bin", "CSS", "templates") and `web.config` file. - -Now, browse your site going to its public URL. Here you go! - ->It is possible to do a lot of advanced things in your site, such as make it private and only accessible with specific accounts (Active Directory, Office 365, Google..), deploy automatically from a Git repository, deploy manually from a cloud drive... Make sure to check Azure's documentation on that. \ No newline at end of file diff --git a/docs/IISExpress.md b/docs/IISExpress.md deleted file mode 100644 index af2f6a7..0000000 --- a/docs/IISExpress.md +++ /dev/null @@ -1,30 +0,0 @@ -# Run MIIS locally with IISExpress - -While you are creating your documentation locally, in your computer, is useful to see exactly how it looks like while editing it. For this purpose, using a lightweight and temporary server is something really useful. - -**IISExpress** is a stand-alone version of Internet Information Services that runs locally and non-permanently. It comes bundled with Visual Studio or you can download it from **[here](https://www.microsoft.com/en-us/download/details.aspx?id=48264)**. - -To launch IISExpress and show your site locally just create a text file with the `.bat` o `.cmd` extension and type the following command: - -``` -"C:\Program Files (x86)\IIS Express\iisexpress.exe" /path:"C:\Path-To-Your-MIIS-Docs-Folder" /port:8081 /clr:4.0 -``` - -Just use the full path to the folder containing the MIIS runtime and your docs. - -Now open your favorite browser and browse to: - -``` -http://localhost:8081 -``` - -You'll see your documentation site right away. - -You can change the port the site is served from modifying the `/port` parameter in the previous file. - ->Please, notice that the site is not automatically refreshed, so if you change the contents of a document you must refresh the browser to see the changes. Also IISExpress can be caching many of your resources (images, scripts...). In that case open the Developer Tools of your browser and check the "Disable Cache" option in the Network tab, so that they are forced to load. - -## Using Visual Studio Code? -If you edit your site contents using [Visual Studio Code](https://code.visualstudio.com) (and you should!), than instead of going through all the previous indications just install Warren Buckley's amazing [IIS Express extension](https://marketplace.visualstudio.com/items?itemName=warren-buckley.iis-express). - -This extension will allow you to launch your MIIS site with IIS Express just by pressing `CTRL+F5`, and will even open your browser for you with the site already loaded. A must have! \ No newline at end of file diff --git a/docs/Images/Azure/01-New-Web-App.png b/docs/Images/Azure/01-New-Web-App.png deleted file mode 100644 index b54871d..0000000 Binary files a/docs/Images/Azure/01-New-Web-App.png and /dev/null differ diff --git a/docs/Images/Azure/02-FTP-Credentials.png b/docs/Images/Azure/02-FTP-Credentials.png deleted file mode 100644 index 26fe76e..0000000 Binary files a/docs/Images/Azure/02-FTP-Credentials.png and /dev/null differ diff --git a/docs/Images/Azure/03-Site-Overview.png b/docs/Images/Azure/03-Site-Overview.png deleted file mode 100644 index d487399..0000000 Binary files a/docs/Images/Azure/03-Site-Overview.png and /dev/null differ diff --git a/docs/Images/IIS-Logo.png b/docs/Images/IIS-Logo.png deleted file mode 100644 index e2c68ac..0000000 Binary files a/docs/Images/IIS-Logo.png and /dev/null differ diff --git a/docs/Images/MIIS_Logo.png b/docs/Images/MIIS_Logo.png deleted file mode 100644 index 3f708a4..0000000 Binary files a/docs/Images/MIIS_Logo.png and /dev/null differ diff --git a/docs/Images/Markdown_logo_big.png b/docs/Images/Markdown_logo_big.png deleted file mode 100644 index c213094..0000000 Binary files a/docs/Images/Markdown_logo_big.png and /dev/null differ diff --git a/docs/Images/css/Looks-01-NoStyle.png b/docs/Images/css/Looks-01-NoStyle.png deleted file mode 100644 index 42f409a..0000000 Binary files a/docs/Images/css/Looks-01-NoStyle.png and /dev/null differ diff --git a/docs/Images/css/Looks-02-Github.png b/docs/Images/css/Looks-02-Github.png deleted file mode 100644 index b779904..0000000 Binary files a/docs/Images/css/Looks-02-Github.png and /dev/null differ diff --git a/docs/Images/css/Looks-03-markdown5.png b/docs/Images/css/Looks-03-markdown5.png deleted file mode 100644 index 612de74..0000000 Binary files a/docs/Images/css/Looks-03-markdown5.png and /dev/null differ diff --git a/docs/Images/css/Looks-04-screen.png b/docs/Images/css/Looks-04-screen.png deleted file mode 100644 index b6f79bc..0000000 Binary files a/docs/Images/css/Looks-04-screen.png and /dev/null differ diff --git a/docs/Images/templates/Barebones_Footer.png b/docs/Images/templates/Barebones_Footer.png deleted file mode 100644 index 143f23f..0000000 Binary files a/docs/Images/templates/Barebones_Footer.png and /dev/null differ diff --git a/docs/Images/templates/Material-Accent-Colors.png b/docs/Images/templates/Material-Accent-Colors.png deleted file mode 100644 index e30182f..0000000 Binary files a/docs/Images/templates/Material-Accent-Colors.png and /dev/null differ diff --git a/docs/Images/templates/Material-Colors.png b/docs/Images/templates/Material-Colors.png deleted file mode 100644 index 9512cf0..0000000 Binary files a/docs/Images/templates/Material-Colors.png and /dev/null differ diff --git a/docs/Images/templates/Material.png b/docs/Images/templates/Material.png deleted file mode 100644 index d746f1d..0000000 Binary files a/docs/Images/templates/Material.png and /dev/null differ diff --git a/docs/Images/templates/ReadTheDocs.png b/docs/Images/templates/ReadTheDocs.png deleted file mode 100644 index 5fbaf64..0000000 Binary files a/docs/Images/templates/ReadTheDocs.png and /dev/null differ diff --git a/docs/Logo.png b/docs/Logo.png deleted file mode 100644 index a6384dc..0000000 Binary files a/docs/Logo.png and /dev/null differ diff --git a/docs/Managing-File-Extensions.md b/docs/Managing-File-Extensions.md deleted file mode 100644 index 973df87..0000000 --- a/docs/Managing-File-Extensions.md +++ /dev/null @@ -1,55 +0,0 @@ -# Configuring Markdown File Extensions -By default the most usual file extensions for Markdown files are defined. They are the same ones as the officially supported by GitHub: `.md, .markdown, .mdown, .mkdn, .mkd`. - -However you can remove the ones that you don't need, or add new one as easily if you want to. - -Just open the `web.config` file and locate the `system.webServer/handlers` section. It looks like this in the default configuration file: - -``` - - - - - - - - - - - -``` - -You can add extra Markdown extensions such as `.markdown` or `.mkd` as needed. - -## The `.mdh` special extension -By default (if not changed in the previous section of the `web.config` file) MIIS supports a special file type for pure HTML contents. Anything inside a `.mdh` file will be used un-transformed within the current assigned template. This is very useful for pages that need a very specific HTML structure, such as the main front-page of a site or any other complex page. With this kind of files you'll use HTML instead of Markdown to gain control over the final HTML and can keep the indentation of the code (in Markdown indented HTML code would be interpreted as a code fragment). - -If you are using this kind of files and Visual Studio Code is your editor of choice, there's a simple way to achieve that VSCode will treat this files as normal HTML files, giving you Intellisense, Emmet, and all the nice features you love. - -Just open your VSCode settings and add this node to the JSON file: - -``` - "files.associations": { - "*.mdh": "html" -} -``` - -Form now on, you'll get the normal behavior of HTML files while editing `.mdh` files too. - -## Default Documents - -Notice the `defaultDocument` setting in this section. It defines the name of the default files to be served from your site. So, in the default configuration as seen above, it will serve the `index.md` file without explicitly requesting it in any folder: - -``` -http://www.mydomain.com/ -http://www.mydomain.com/SubFolder/ -``` - -are equivalent to: - -``` -http://www.mydomain.com/index.md -http://www.mydomain.com/SubFolder/index.md -``` - -You can change this name or add more default names to be used in the same order as they appear in this setting. \ No newline at end of file diff --git a/docs/Markdown-Features.md b/docs/Markdown-Features.md deleted file mode 100644 index c46e2b1..0000000 --- a/docs/Markdown-Features.md +++ /dev/null @@ -1,20 +0,0 @@ -# MIIS - Markdown features -The Markdown to HTML conversion is provided by [Markdig](https://github.com/lunet-io/markdig). So it's not my merit but... Why reinvent the wheel if you have such a great library already available?. - -It supports: -- All the core CommonMark Mardown features (600+ tests passed from CommonMark specs) -- Auto-links for `http://`, `https://`, `ftp://`, `mailto:` and `www.xxxx.yyy`. -- Emojis: :-) :thumbsup: (You can disable them with the [`UseEmoji` setting](Settings)) -- Two kinds of tables: pipes and grid tables -- [Media url support](https://talk.commonmark.org/t/embedded-audio-and-video/441) for YouTube, Vimeo, mp3, mp4... -- Extra-emphasis -- [PHP Markdown Extra](https://michelf.ca/projects/php-markdown/extra/): attributes, auto-identifiers, footnotes, abbreviations... -- Task lists -- Extra bullet lists (a. b. c...., i., ii., iii....) -- [Custom containers](https://talk.commonmark.org/t/custom-container-for-block-and-inline/2051) -- [Figures](https://talk.commonmark.org/t/image-tag-should-expand-to-figure-when-used-with-title/265/5) for several images one after another -- [Smartypants](https://daringfireball.net/projects/smartypants/) -- [Mermaid diagrams](https://knsv.github.io/mermaid/#mermaid) -- [Math/Latex extension](https://talk.commonmark.org/t/ignore-latex-like-math-mode-or-parse-it/1926) - -You can check all the supported Markdown features details in the [Markdig github page](https://github.com/lunet-io/markdig){target=_blank}. \ No newline at end of file diff --git a/docs/Plain-HTML.md b/docs/Plain-HTML.md deleted file mode 100644 index 7d7694d..0000000 --- a/docs/Plain-HTML.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: How to serve plain HTML from Markdown ---- -# Serving plain HTML - The cssfile parameter - -You can run MIIS **without any parameters** in your `web.config`. That will work, but the Markdown will be served as plain HTML. Files will look a little bit ugly since no CSS is applied to beautify the output: - -![Default HTML, no Styles](Images/css/Looks-01-NoStyle.png) - -The **default template**, if no other one is specifically set, simply returns the HTML5 version of the Markdown file, without any CSS applied to it. But this default HTML content includes **a parameter called `cssfile`** that you can set to include a specific CSS file with every response. For example, you can define this in your `web.config`: - -``` - -``` - -This will use the Github styles in the returned HTML. - -I've included **[several CSS files with MIIS](cssStyles)** for you to use immediately, and you can add your own anytime. - -You can also specify this parameter directly in the file's Front Matter, for example: - -``` - ---- -cssfile: {{tilde}}/CSS/github.css ---- -``` - -> **IMPORTANT**: notice how you can use the **relative path syntax** of ASP.NET, with a `~` at the beginning of the path, so that the resulting CSS is always pointing to the root of the application. If the Markdown is served from the root folder of the virtual server using `{{tilde}}/` or `/` will be the same thing. But if your Markdown app is hosted as a virtual app or virtual folder in IIS or Azure Web Apps, this is a very important feature to use. - -You can serve the Markdown files using a full-fledged template with content parameters, navigation, etc... Check the [Configuration](Settings) section for this. \ No newline at end of file diff --git a/docs/Settings.md b/docs/Settings.md deleted file mode 100644 index 4387b0d..0000000 --- a/docs/Settings.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: Configuring MIIS ---- -# Configuration settings and behavior for MIIS - -MIIS needs some basic parameters to be set in order to work. You can set any parameter globally, through `web.config` files, or locally in any file through it's Front Matter. - -**Configuration in MIIS is hierarchical in three levels:** root folder, subfolders and pages. - -This means that you can define your **global parameters** in the root folder's `web.config` file, define new parameters or overwrite the global ones **in any sublevel** through the corresponding `web.config` inside any sub-folder, and you can define or overwrite any parameter **at the page level** using the file's Front Matter. - -This hierarchical configuration system is **very powerful** and you can use it to define custom content, to change the navigation system, to choose the template used to render contents in specific sub-folders or files... or even to fully customize any file with specific fields or parameters. - -There are some **pre-defined parameters** in MIIS, and you can create your own [**custom fields**](Templating#custom-fields). - -> Parameter and field names are **case insensitive**. So, `Layout`, `layout` or `LAYOUT` are exactly the same parameter. - -> **`MIIS:` parameter prefix**: any parameter or field defined in a `web.config` file can be named with a `MIIS:` prefix. This helps to avoid conflicts with parameters with the same name from other software you may be using. Using this prefix is optional, but recommended. It'll take precedence over the non-prefixed parameters with the same name in case of conflict. You can't use this prefix in your file's Front Matter. Your file's Front Matter always takes precedence over other parameters or fields defined in `web.config`. - -## Out-of-the-box predefined parameters - -### - TemplatesBasePath -This parameter is only available through `Web.config`, and can't be overwritten in a file's Front Matter. It defines the folder that contains the definition for the different templates available to MIIS for rendering pages. - -It's default value is `{{tilde}}/Templates`. - -This means that, by default, the templates are located inside a folder named "Templates" in the applications root directory. Normally you won't change this parameter at all. - ->**Note**: This parameter can be only set in `web.config` files. If you set it in a file's Front Matter it will be ignored for the current purpose. - ----- - -### - TemplateName -This is the name of the subfolder in the previous `TemplatesBasePath` folder, that contains the layout files and the rest of resources for the template we want to use in our site. You can set it in your `web.config` file to be applied to the whole folder or application, or in the Front-Matter of files to change it for that specific file only. - ->If this this parameter is not established or if it's set as `none`, then a basic minimum HTML5 template is used. See: [Serving plain HTML from Markdown](Plain-HTML){target="_blank"}. You can specify `raw` too as the value for this parameter to obtain the raw transformed HTML for the file, without any other "wrapping" tags. This is useful to get raw data from a file, after being transformed and rendered (you can use a `.mdh` file without any HTML in it to return any kind of data in text format). - ----- - -### - Layout -The name of the file (including extension) in the previous folder that contains **the HTML that defines the current layout to render file contents**. - -This parameter allows you to point to an HTML file (or any other text file with HTML inside) that will be used **to merge it's HTML with the HTML generated from the Markdown files** or with the HTML inside the MDH files. - -There are **[several templates included](Template-List.md)** by default with MIIS, and you can **[create your own](Templating)** from scratch or to retrofit any existing website. - ----- - -### - MIME -The normal MIME type to be used in any file is `"text/html"` since this is what is returned from most of the pages. However you can change it at your own peril using this (Front-Matter only) parameter. - -For example, if you want to return a text file from a `.mdh` file that has enabled `TemplateName: raw` and therefore will return it's raw transformed contents, you can set up `mime: text/plain` in the Front-Matter of the file. - ->If the MIME type is not valid you'll get an error. The MIME type should be registered in IIS in order for it to work. If this is not the case you won't able to get the file from the server. - ----- - -### - UseMDCaching -By default MIIS caches the results of rendering any page so that they can render instantly after the first request (no conversion, parameter substitution or processing in every request). - -If the file (or any of the files it depends on, such as menus, fragments...) changes, then **the cache is automatically invalidated** so that the new version is read again from disk in the next request. - -If for any reason you need to turn off this behavior (very low memory environments) just use this in your `web.config` file: - -``` - -``` - ->This parameters is global and cannot be set individually in the Front-Matter of a single file. You can set it only in `web.config` files, and can disable caching for entire sub-folders (for example, one with thousands of files non frequently accessed), or the application as a whole. - ----- - -### - UseEmoji -By default MIIS will render [standard Emoji codes](https://www.webpagefx.com/tools/emoji-cheat-sheet/){target="_blank"} like the ones used in Github, Trello, Slack, Basecamp and other software. So, strings like `:smile:` or `:grin:` are rendered as the corresponding emojis: :smile: - :grin:. - -You can turn this feature off if needed using this parameter: - -``` - -``` - ----- - -### - Published -By default all the Markdown and MDH files are published. You can prevent any file or set of files to be rendered by using this parameter. - -You can include this parameter in the Front Matter of a file to prevent it to be rendered: - -``` ---- -Title: My draft page -Published: false ---- -``` - -If anyone writes the path to this file in the browser they will get a 404 Status error of "File not found". - -Any value different to `false`, `no` o `0` will be considered as valid to publish the file. The default value if the parameter is not defined is `true` and will render the page normally. - -You can set this parameter globally or for specific folders using `web.config` and adding: - -``` - -``` - -(any of the previously specified values are valid) - -Doing this will prevent the rendering of any file in the folder where this `web.config` is located, except those ones that specifically define `Published: true` or a similar value in their Front Matter. This can be very useful under some circumstances. - ----- - -## - HttpStatusCode -By default all pages return a 200 HTTP Status code, that is: a success code. However, some of the pages that you need in a site must return different status codes to tell browsers and search engines that, for example, a file hasn't be found (404), a file used to exists but no anymore (410) or that a server error has happened (500), [among others](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). - -For example, if you're creating a page named `404error.md` in the root folder of your site, in order to associate it with the 404 status code so that it's going to be shown when users request a non-existent resource, you should decorate it's FrontMatter with this field, like this: - -``` -HttpStatusCode: 404 -``` - -this will send a 404 status code to the client when a file hasn't been found. - -In order for this to work you should assign this file as the one used to handle 404 errors in your site. For this you need to add this nodes to your `web.config` file in the root folder: - -``` - - - - - - -``` - -Now, when a user or a search engine spider asks for a non-existent resource in your site they'll see this page and, what's more important, they'll see the 404 status in the response. - ->You cannot set the message or other headers sent with this response. For example, status code 301 (permanent redirection) means that a resource has permanently moved and you should indicate in a header the new location of the resource. Since this is something already easy to do directly with IIS/Azure and it's better and more performant to do it that way, this feature is designed only for another types of status code, such as the ones indicated above (404, 403, 500...), which are needed for specific cases and don't rely on extra info sent to the client. ----- - -## Standard and Custom Fields - -There are some basic **[standard fields](Templating#standard-fields)** that you can use anywhere in your contents or templates. - -And most of the provided content templates offer **[their own parameters](Template-List)** to customize a little more the final look and feel - -Finally, you can easily **[define your own custom fields](Templating#custom-fields)** too, and use them anywhere (templates or documents). - diff --git a/docs/Showcase.md b/docs/Showcase.md deleted file mode 100644 index 5b353e9..0000000 --- a/docs/Showcase.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Showcase -field: {{field}} ---- -# MIIS Showcase page - -Overview of websites using MIIS - -- [MIIS documentation website](https://miis.azurewebsites.net/){target="_blank"} -- [barchief.be](http://www.barchief.be){target="_blank"} diff --git a/docs/Template-List.md b/docs/Template-List.md deleted file mode 100644 index 9e5ebac..0000000 --- a/docs/Template-List.md +++ /dev/null @@ -1,91 +0,0 @@ ---- -title: Out-of-the-box templates ---- -# List of templates available out of the box - -> Remember: you can [serve plain, styled HTML](Plain-HTML) just by not specifying any Layout parameter. - -> Otherwise noted, the following templates offer a single layout called `main.html`. - -## :page_facing_up: Barebones -A simple template that uses the same `cssfile` parameter (as the default one) and adds information about the Markdown file in the footer of every page. - -![Sample footer from a MD file rendered with the barebones template](Images/Templates/Barebones_Footer.png) - -#### Available parameters: -This template has the following parameters that you can set in `web.config` files or in each file's Front Matter: - -- `title`: the page's title. -- `sitetitle`: the site's title. -- `cssfile`: to define the CSS file controlling the resulting HTML look and feel. - -## :page_facing_up: ReadTheDocs -A template that mimics the look and feel of the old [Read The Docs](https://readthedocs.org/) site. Reused from the [MKDocs project](http://www.mkdocs.org/) and extended with extra functionality. - -![Old ReadTheDocs template](Images/Templates/ReadTheDocs.png) - -With this template you can set up a simple documentation system in just under a minute. - -### Layouts -This template offers two layouts: - -- `main.html`: the main layout. -- `main_forkme.html`: the same as the previous one but with a "Fork me" icon on the right top corner that points to your GitHub user or project (see the parameters in the next section). - -### Available parameters and fields: -This template has the following parameters and fields that you can set: - -- **`sitetitle`**: a title for the site. Used in the upper part of the lateral navigation menu and in all the pages title before the title of the document. Commonly set globally in the root folder's `web.config` file. -- **`toc`**: points to a .md file to create the side navigation menu. Commonly set globally in the root folder or sub-folder's `web.config` files. The path to the Table of Contents (ToC) file can use the `~` syntax to always point to the same file even from sub-folders. For example, setting the parameter this way will use the file `toc.md` located at the root of the site as the lateral navigation for the template in every page of the site when rendered with this template: - -``` - -``` - -- **`description`**: the description to be used in the `` tag of the page. Commonly set in the Front Matter of the page. -- **`author`**: the name of the author of the site or page to use in the corresponding `` tag. -- **`copyright`**: a copyright message to show in the footer of every page. -- **`authorgithub`**: the part after `https://github.com/` to use in the github link of the template in the `main_forkme.html` layout. If you don't want the GitHUb icon to appear just use the `main.html` layout. -- **`gaaccount`**: the user account ID for Google Analytics. Usually has the name "UA-XXXXX-YY". This will allow you to receive usage statistics for your documentation site. Commonly set globally in the root folder's `web.config` file, since this ID is used in every single page served by MIIS fro your site. - -## :page_facing_up: Material -This is a material-inspired template. It gives a clean and modern UI and allows to choose among several colors with one of its parameters. - -![Material](Images/Templates/Material.png) - -### Extra features: -- It highlights the link on the right side pointing to the current shown document, and collapses the second level lists of links that are not in the same group of that one (only if the first-level item is a link itself). That allows to use long tables of contents with sub-sections. -- It automatically numbers the sections and subsections so you don't need to do it in the table of contents files, adapting automatically to changes in the ToC order. You can disable this feature just by commenting the last 4 CSS rules in the `theme_extra.css` file of the template. -- Shows "Previous" and "Next" buttons in the footer, including the title of those documents, for easy navigation. It takes that information from the ToC, getting the position of the current file in it. -- It shows a small icon after links that point to external domains to highlight this fact. It makes all those external links to automatically open in a new tab. -- Automatically centers images. Adds zoom to images that don't fit in the available width (with [Zoomify.js](https://github.com/indrimuska/zoomify)). -- If you use the `