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 `` tag, your users can start and stop videos just by clicking on them. -- If you include any empty link in your contents it's automatically converted into a "Go back" link (moving back one position in the browser's history) with the text that you have used. For example: `[Go to the previous page]()`. -- Printer friendly: when your users print the current page they will get a clean and readable page with the contents and without the extra elements. - -With this template you can set up a full-fledged documentation system in just under a minute. It's the one used in [this documentation](https://miis.azurewebsites.net){target="_blank"}. - -### Available parameters: -This template has the following parameters 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. -- **`logo`**: the path, from the base folder, of the logo we want to use in the side bar. It should be squared, and the template will fit it to the available space. If it's located in the root folder, for example, the value would be simply the name of the image file. -- **`toc`**: points to a .md file to create the side navigation menu. See previous template explanation. -- **`primarycolor`**: the main color for the Material theme. It can use any of the main Material colors (see next picture). Color names for this parameter are written in lowercase, and if they have two words the space is substituted by a "-". For example, "Blue Grey" would be "blue-grey". - -![Material colors](Images/templates/Material-Colors.png) - -- **`accent`**: the accent for the selected color. Its used sparsely in the template (for example in the links). The available colors are: - -![Material colors](Images/templates/Material-Accent-Colors.png) - -- **`description`**: the description for the `` tag of the page. -- **`author`**: the name of the author of the site to use in the corresponding `` tag. -- **`copyright`**: a copyright message to show in the footer of every page. -- **`authortwitter`**: the twitter handler of the site to use in the Twitter button link. -- **`authorgithub`**: the part after `https://github.com/` to use in the github link of the template. If you don't want the github icon to appear you must delete that from the `main.html` file of the template. -- **`prevtext`**: the text to use in the "go to previous" button in the footer -- **`nexttext`**: the text to use in the "go to the next" button in the footer -- **`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. - -More templates to come in the future! \ No newline at end of file diff --git a/docs/Templating.md b/docs/Templating.md deleted file mode 100644 index 77b43d4..0000000 --- a/docs/Templating.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: How to create your own templates and fields -prefield: {{ -postfield: }} ---- -# Custom templates and fields - ->Please, invest some time looking the out-of-the-box templates included with MIIS to see how the following fields are used. - -Creating your own templates is really straightforward. You simply need to create one HTML file inside a sub-folder of the "Templates" folder, and include some placeholders for parameters. The only mandatory field that you must include in every template is the **`content`** field (more on this later). - -MIS offers **two types of parameters and fields** that you can use anywhere in your site: **standard** and **custom**. - -These parameters can be used **inside the templates** you create and **inside the content** of your Markdown or HTML (`.mdh`) files. You just need to **wrap their names with double curly brackets**, and you're all set. For example: - -``` -{{prefield}}title{{postfield}} -``` -will be substituted for the title of your document before rendering. - -There can be spaces between the curly brackets and the name of the field. The name of the field is case-insensitive. Therefore all the following expression are exactly the same parameter: - -``` - -{{prefield}}title{{postfield}} -{{prefield}}Title{{postfield}} -{{prefield}}TITLE{{postfield}} -{{prefield}} title {{postfield}} -{{prefield}}Title {{postfield}} -``` - -Field names can only consist of letters from A to Z, numbers, hyphens and underscores. - -## Standard fields -There are some MIIS-defined parameters and fields that already exist out-of-the-box, and that you can use anywhere in your site. - -- **`Content`**: This is the only field that is **mandatory**. This placeholder is substituted at render time with the HTML contents obtained from the Markdown or .mdh file. Every template must have this once (and only once), or an error will be raised. -- **`TemplateBaseFolder`**: This one is very important since it will always point, from the root of the site, to the folder where your template is located. This means that you can very easily get relative paths to all the supporting files your template needs, such as CSS, JavaScript or Image files. This way, if your template is located under `/templates/MyGreatTemplate` this will the value that appears instead of the field's placeholder after rendering a file. You must then add the rest of the path to point to your supporting resources. It's only calculated once per site too, so it's very fast to use. Take into account that it doesn't include the trailing slash. -- **`{{tilde}}/`**: Any path that starts with this expression will be automatically substituted by base folder of the current web app. This will translate at runtime in the path, relative to the root of the domain, where the base folder of the site is hosted. If your site is hosted at the root of the domain (ie.: `http://www.mydomain.com`), it will be simply `/`. However if your site is hosted at a virtual folder or a virtual app (ie.: `http://www.mydomain.com/Docs/`) then this parameter will be translated into that path (`/Docs/` in the example). This is something a good designed template should take into account since you don't know if it will be always hosted at the root folder or not. This placeholder **can be used anywhere in your contents**. This is useful for using relative to the root links in your tables of contents or any other link. -- **`Title`**: The title for the page. You can set it in every page Front Matter (see later) or it'll be automatically guessed from the Markdown file. In ths case it'll be extracted from the first title expressed with a `#` symbol in the Markdown file (`# Title`). If no title is found then the name of the file will be used. You should normally set the title in the Front Matter of each content file. -- **`Filename`**: The name of the markdown file from which the final HTML is extracted. It includes the file extension. -- **`DateCreated`**: The creation date and time for the content file. It's shown in the default format for the current user language. -- **`DateModified`**: The date and time when the content file was last modified. It's shown in the default format for the current user language. -- **`IsAuthenticated`**: Boolean that shows if the current user is authenticated against the server or not. Useful to be included in scripts. -- **`AuthType`**: The type of authentication used (Forms, Windows, Google, Facebook...). -- **`UserName`**: The name of the current authenticated user. -- **`Url`**: The current's page absolute URL specified from the root folder and including the full page name. For example, if we're requesting: `https://www.example.com/test/mypage.md` it will return `/test/mypage.md`. Take into account that default files rturn the file name anyway. For example: `https://www.example.com/` will return `/index.md` as a result since this is the default file in the root folder and the real file the user is requesting. -- **`NoExtUrl`**: The current's page absolute URL specified from the root folder and without page name extension. For example, if we're requesting: `https://www.example.com/test/mypage.md` it will return `/test/mypage`. Usefull when your site is configured to not show the .md or .mdh extensions in the browser bar. -- **`Domain`**: The current domain name or IP used to access the site. If the current port used to access the site is not a default one (80 for HTTP, 443 for HTTPS) it includes that port. For example, if you're accessing the site from `https://www.example.com/` it will return `www.example.com`, but if you're accesing it from `http://localhost:8080` then the result is `localhost:8080`. -- **`BaseUrl`**: The current base URL that is used to access the site. Useful for creating absolute paths to your contents (for example in canonical headers or Open Graph meta tags). It includes the protocol, domain and port if its not the default one. For example: `https://www.example.com`. It doesn't include the slash bar at the end. -- **`Now`**: Returns the current date and time when the current page was generated in the default (server) system format. If the page is cached, then this value doesn't change from request to request while the cache is not invalidated with a change in any of it's dependent files (templates, content files...). This field was created for debugging purposes mainly but maybe you can find any other uses for it. -- **`Time`**: Returns the current time when the current page was generated in the default long (server) system format. If the page is cached, then this value doesn't change from request to request while the cache is not invalidated with a change in any of it's dependent files (templates, content files...). This field was created for debugging purposes mainly but maybe you can find any other uses for it. - -## Custom Fields -The previous placeholders are managed and set by default by MIIS. However, **you can create as many custom fields as you want** in your templates or even directly in your content, and define their values globally or for the contents in a sub-folder using the `web.config` file, or specifically for any content page using it's Front Matter. - -For example, imagine you want to create a copyright notice that will appear at the bottom of your template. Just include a `copyright` placeholder (between curly brackets) wherever you want in your template HTML, and then set a value for it in the `web.config` file: - -``` - -``` - -Now, every time this field's placeholder appears in your template (they can be used more than once) it's value will be replaced with the value in the configuration. - ->**Note**: Remember: ASP.NET has a hierarchical configuration system. So you can add a different `web.config` for every sub-folder and have all the parameters customized differently per sub-folder. - -You can set the value for any field or parameter directly in your content file using **Front Matter**. This is a special section at the very beginning of your file that allows to define pairs of fields and values. The format used is called [YAML](http://yaml.org){target="_blank"} and is very well-known among developers and site editors. - -Front Matter is really easy and straight-forward to define. It's a section at the beginning of your file between three hyphens with pairs of field names plus values separated by a colon. For example: - -``` - ---- -# This is a comment -title: This is the title of this page -layout: leftToC.html -author: Jose M Alarcon ---- -``` - -In this case the page defines a title to be used, a specific layout for the template (overwriting the standard parameter value in `web.config` just for this page), and creates a new field named `author` that can be used anywhere in the page (or in the current template). - ->**Note**: Although YAML allows to define complex blocks of data, I've implemented a simple parser that only accepts values in a single line, which are the only ones valid in MIIS (at least at the moment). The names of the fields are case-insensitive, and any extra spaces are removed. Although the Front Matter specification allows only exactly three hyphens to be used as delimiters, I decided to make it more forgiving, and you can use any number (but more than 3) to define your Front Matter block. Front Matter **needs to be the first content of your file**. If located at any other point of the file, it will be considered normal content. - -Those **custom parameters are really powerful** and allow you to fine-tune your templates and content in an easy way. Use them wisely. - -## Includes in templates -When creating a template you could need **more than one single layout** for your contents. For example, your site could require pages with a menu and some other elements on one side, while other pages would need that the contents take up all the available width, and so on. In those cases all the layouts would probably share a lot of common HTML. - -To avoid repeating the same HTML in every layout and make the template more maintainable MIIS offers **include placeholders**. These are a special type of placeholder that allows to include the content of other files in the template's folder in your current template. - -Include placeholders are denoted by a `$` symbol followed by the relative path to the file you want to include. For example, this is the code for a layout that uses includes: - -``` - -{{prefield}} $includes/beginning.html {{postfield}} - - - - {{prefield}}content{{postfield}} - -{{prefield}} $includes/end.html {{postfield}} -``` -In this case the common HTML for all layouts is taken from the files `beginning.html` and `end.html` located at the `includes` sub-folder. - ->**Note**: the `$` symbol must be attached to the included file path, without spaces in it. As with any other field placeholder, spaces after and before the the curly braces are optional. - -You can use **include placeholders in the include files** too, effectively reusing HTML at multiple levels. The only limitation is that you can't create circular references. MIIS will detect circular references and throw an error in that case. - -Include placeholders is a powerful feature thar allows for easy reusing of the same HTML in all the layouts of a template. - -## Fragments: Pages made up of several parts -Another powerful feature to be used in templates are **Fragments**. Fragments allow you to define parts (or fragments) of your page that you want to render independently. - -The most common way to go in a site created with MIIS is to define a template with a `content` placeholder in it where the transformed HTML is going to be placed. However, a lot of times would be really useful being able to render different parts of the content at different locations in your layout, instead of all the content in the same place. This is when Fragments enter the scene to save the day. - -A fragment is a field placeholder that starts with an asterisk attached to a suffix for the current file name, for example: `*-header` or `*_sidebar`, etc... - -What this does is that, at the time of rendering the final contents for a file your users are requesting, MIIS will search for files that are named just like your main file, but with the suffix after the `*` in their name. It will try first the `.md` extension and the `.mdh` extension if the first it's not found. In the case that no appropriate file has been found, it will simply ignore the placeholder. - -This is a very powerful feature. For example, imagine a layout for an e-commerce site that is designed to show product information. The product's layout consists of three main content areas: the header (with general information about the product and maybe an image), the main content area (with the detailed info for the product) and a sidebar content (with customers testimonials for this specific product). In this case you can use three content placeholders located at different parts of the HTML structure for the product layout in your template: - -- **`content`**: that marks the place where the main content will be injected. -- **`*-header`**: marking the place to inject the header contents. -- **`*-testimonials`**: where the testimonials are going to be injected. - -Now, in your site, when you define the contents for a product page (let's say `product-01.md`) you can add two more files with the same name and the indicated suffixes, for example: `product-01-header.mdh` and `product-01-testimonials.md`. The content of these two files will be processed and injected in the corresponding locations in the layout, creating a full page from three different (but related) contents. - -Notice that the fragments can be `.md` or `.mdh` files, using Markdown or plain HTML as needed, and you can use one or another indistinctly. MIIS will find the correct one and use it. In case of conflict (two fragments with the same name but different file extension) the files with `.md` extension will take precedence over the files with `.mdh` extension. - -If you need that, for example, one product page doesn't have a testimonials part, just don't create that fragment file. The placeholder will be ignored and your testimonials fragment will be empty in the layout. - ->**Note**: Although no separator is needed between the `*` and the suffix, is advised to use a hyphen or an underscore (as shown in the previous example) to make it easier locating the fragments in disk when you're editing the files in your system. - -It's important to note that **all those fragments will take part in invalidating the cache** for the current content file. This means that, as is expected, the cache for the file is invalidated and the file is rendered again from disk as soon as you change any fragment. - -## File Fields: fields pointing to content files -If the value assigned to a field ends with `.md` it will be considered **a pointer to a Markdown file**. Then, that markdown file contents will be read and transformed into plain HTML (without using a template), before replacing the placeholder. - -If the extension for the field value is `.mdh`, the content will be used as-is. - -This means that **you can insert content from files in your template or even in your content (sub-content)**. - -For example, as seen in the provided templates, you can define a field for your table of contents or any other secondary content with just a placeholder. - ->Take into account that you can use the `~` symbol to point to your root folder in the path indicated as a value for this kind of fields. In that way you can always be sure that the file you're pointing to is correctly defined even if you're inside any sub-folder or even if the site is hosted under a virtual folder. - -For a working example of these kind of fields take a look at any of the provided templates that include at least a table of contents. - -For example, the Material template defines a parameter called `toc` that you can point to a Markdown (or `.mdh`) file that wll be used as a Table of Contents for your documentation site. The normal thing to do is to define the value for this paramenter in your root folder's `web.config` file (as done in the sample included in the release), for example: - -``` - -``` - -but you can also define this field especially for one of your files that needs a different ToC for any reason using its Front Matter: - -``` - ---- -toc: myCustomToC.md ---- -``` - -and this setting will take precedence over the global setting in the `web.config` file. - -These File Fields feature is very powerful too and allows to define common reusable contents to be used in your whole site or in parts of it. - -## Processing order -It's important to notice the order in which each part that makes up a final page is processed, which is: - -1. **Template layout** -1. **Includes** in the layout if any -1. **Template specific fields** (`templateBaseFolder`) -1. **File contents** (Markdown processing or HTML reading) -1. **Fragments** if any -1. **Standard parameters** -1. **Custom Fields** and parameters - -Take this into account when defining your layouts, fields and contents. - -## Common Template JavaScript Helpers -Located in the root folder of the `Templates` folder delivered with MIIS, there are **two helper files** used by some of the included templates. You can take advantage of them for your current templates too. - -They are: - -### common.js -This file automatically does some interesting things to your doc: - -- Makes all external links to open in a new tab -- Highlight the current selected link in the ToC. It automatically applies the `.current-doc` class to it. You must use this class in your template to highlight the current selected document in the Toc. -- Makes the first list items with sub-list collapsible -- Set the links and text in the previous and next links. For this to work the next button must have an `id='next-button'` and the previous button an `id='prev-button'`. If you want the link/button to have the next/prev elements titles assigned too, then it must have an element with `class="title"`. - ->This file depends on jQuery, so you must include this library if your template doesn't already include it. - -### common.css -This files does some UI tweaks in your template: - -- Adds a small icon to indicate that a link is pointing to an external URL. It works in the table of contents (`.miis-toc` class) and in the main contents (`.miss-content` class). -- It automatically numbers the entries in the table of contents, with 1.-, 1.1.-, 2.- and so on. If you don't want this to happen just redefine the last four CSS selectors with counters in the CSS of your own template. - ->It uses the font called "font-awesome", located in the '_common_fonts' sub-folder. If you use that font in your template you don't need to include it. \ No newline at end of file diff --git a/docs/cssStyles.md b/docs/cssStyles.md deleted file mode 100644 index 970e085..0000000 --- a/docs/cssStyles.md +++ /dev/null @@ -1,24 +0,0 @@ -# CSS Styles included with MIIS - -If you don't use a template and serve plain HTML from the Markdown, you can set the default style for the resulting files by setting the `cssfile` parameter in your `web.config`: - -``` - -``` -I've included several .css files inside the CSS folder in the release folder of MIIS: - -- **GitHub.css**: the same styles that Github uses for Markdown files. - -![Github styles](Images/css/Looks-02-Github.png) - -- **markdown5.css**: big typeface, very easy to read. By [Jason Milkis](http://jasonm23.github.io/markdown-css-themes/){target=_blank}. - -![Github styles](Images/css/Looks-03-markdown5.png) - -- **screen**: similar to the previous one, with dark background. By [Jason Milkis](http://jasonm23.github.io/markdown-css-themes/){target=_blank}. - -![Github styles](Images/css/Looks-04-screen.png) - -And you can add yor own CSS file anytime. Simply add a CSS file anywhere and point the `cssfile` parameter to it in order to be applied. - ->Notice how you can change the CSS file used in each sub-folder of your site simply setting a different value for the `cssfile` parameter in the `web.config` file of each one. That way you can have the root folder files rendered with a style, and files in any other sub-folder rendered with a totally different style. You can even change the style used in a single file by setting this `cssFile` parameter in its Front Matter. \ No newline at end of file diff --git a/docs/favicon.ico b/docs/favicon.ico deleted file mode 100644 index 90f813f..0000000 Binary files a/docs/favicon.ico and /dev/null differ diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 0d90361..0000000 --- a/docs/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Documentation ---- - -# MIIS: A Markdown File-based CMS for IIS and Azure - -![MIIS Logo](Images/MIIS_Logo.png) - -A Markdown and HTML file-based CMS system for IIS by [@jm_alarcon](https://twitter.com/jm_alarcon). - -MIIS is a perfect blend between a traditional CMS (such as Wordpress) and a Static Site Generator (such as Jekyll). Get the best of world worlds: - -- No backend database or special setup needed -- No need to recompile and deploy after any change -- Lightning-fast, without unneeded bloat - -**Set up your Markdown-based documentation system or web site in less than 30 seconds!** - -> **[What's new in the latest version?](releases)** - -## System Requirements - -- Internet Information Server on Windows Server or an Azure Web App -- .NET Framework 3.5 or later (usually already installed on the server), for maximum compatibility - -## Features -- Create **full-fledged web sites** and documentation sites based on Markdown and HTML files -- Easy support for **custom templating and navigation** for the served files. You can **create a CMS** (Content Management System) directly from Markdown files in no time! -- Generate site pages on the fly from Markdown files or HTML (.mdh files), with navigation and all the common elements in the site -- Super-flexible and easy template creation, with "includes" support -- Custom properties that can be used in any file -- Powerful "Fragments" feature that allows to assemble contents dynamically from several files -- Define different look&feel, layout or navigation for specific files or folders -- Several documentation site templates included out of the box -- Markdown file caching and template caching for **maximum performance** -- **Great support for Markdown** and [Markdown extras](Markdown-Features) -- Serve **plain HTML from Markdown** (use as a simple Markdown handler) with custom CSS -- Out of the box support for all **the most common markdown file extensions**: `.md, .markdown, .mdown, .mkdn, .mkd`. You can [add your own extensions](Managing-File-Extensions) - -## Quick Start - -Your Markdown-based site running in less than 30 seconds: - -1. Create an IIS virtual server or an Azure Web App pointing to an empty folder -2. Download the latest version of **MIIS** from the ["Releases" section](https://github.com/jmalarcon/MIIS/releases) of the MIIS GitHub repository -3. Uncompress the contents of the ZIP file inside the folder from step 1 -4. Navigate to your website with the browser - -You're all set up! Now you have a sample site with minimum contents. Just create new .md (Markdown) or .mdh (HTML) files and browse to them to get them rendered with the current template. Optionally add them to the default template's navigation bar creating a link in the `toc.md` file located at the root folder. - -There are two types of plain-text files that you can use to be rendered by MIIS: - -- **Markdown files**: Normally you'll use the `.md` file extension for these files (although you can [configure other extensions](Managing-File-Extensions)). They contain Markdown that is transformed into HTML before rendering. -- **HTML Content Files**: with the mandatory `.mdh` file extension. Any content inside these files is injected as-is in the chosen template for the site. This allows to create complex HTML contents when Markdown is not enough. - -You can mix MIIS with your own ASP.NET, PHP, Node.js or any other server-side resource. - -## Advanced set-up - -- [Configuration/Settings](Settings) -- [Out-of-the-box templates](Template-List) -- [Define custom templates](Templating) -- [Manage Markdown file extensions](Managing-File-Extensions) -- [How to run locally with IISExpress](IISExpress) -- [How to run in Azure](Azure) - -## Source code -This is free and Open Source software (FLOSS). You can check the full code and documentation on [GitHub](https://github.com/jmalarcon/MIIS). - -## Contribute -You can contribute to the project with bug fixes, **new templates**, new features and **translations** of this documentation to other languages. Follow the normal flow of OSS contributions in GitHub (fork, make changes, pull request). - -I plan to add a "Showcase" section in the future. **If you use MIIS** to create a website, the documentation for your project, a document-based site, etc... please **tweet it to me** with the URL. Thanks! - -And spread the word. Thanks! :smile: - -You can open any issues you may face, using the ["Issues" section](https://github.com/jmalarcon/MIIS/issues) for the project on GitHub. \ No newline at end of file diff --git a/docs/releases.md b/docs/releases.md deleted file mode 100644 index 44ee60f..0000000 --- a/docs/releases.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Release history -field: {{field}} -prefield: {{ -postfield: }} ---- -# MIIS Release History -MIIS uses [semantic versioning](https://semver.org){target="_blank"}. That means it only changes the major version when there're breaking changes. A change in the minor version means new features. A change in the third number means no new features, just bug fixes. - ->You can check all the releases, including the minor ones, at [Github](https://github.com/jmalarcon/MIIS/releases){target="_blank"}. - -## Version 2.3.0 - -Released, April 6th 2019 - -- Removed the `allowDownloading` option and the corresponding "download" query string parameter. -- Now you can disable the current template in a page by specifying `TemplateName: none´ in the Front-Matter. This will use the default HTML5 basic template that only includes de basic tags, a CSS file and the content. This is useful for testing purposes or to create some basic pages for special purposes. -- If you specify `TemplateName: raw´ in the Front-Matter, then **no template will be used** and you'll get the final raw HTML for the requested page. useful for debugging and to return raw information. -- When you use the "raw" template to get raw contents from a file, you can also add a new `{{prefield}}mime{{postfield}}` parameter **in the page** (it's a Front-Mater only field) that allows you to specify the MIME type of the raw content that is going to be returned from the current page. This parameter can be useful to return formatted text that gets generated from a raw `.mdh` file. -- 6 new [standard fields](/Templating#standard-fields) available to use in templates and content pages: - - `{{prefield}}Url{{postfield}}` - - `{{prefield}}NoExtUrl{{postfield}}` - - `{{prefield}}Domain{{postfield}}` - - `{{prefield}}BaseUrl{{postfield}}` - - `{{prefield}}Now{{postfield}}` - - `{{prefield}}Time{{postfield}}` -- Fixed extra new line added at the begnining of the content because of Front-Matter removed. No extra new line is added now. - -## Version 2.2.0 - -Released, August 20th 2018 - -- Added the **new ["HttpStatusCode" property](https://miis.azurewebsites.net/Settings#httpstatuscode)** that allows pages to send an specific status code to the client, such as 404, 410, 500, etc... in order to create special pages with specific purposes. - - -## Version 2.1.0 - -Released, March 24th 2018 - -- Added the **new ["Published" property](https://miis.azurewebsites.net/Settings#published)** that allows you to prevent certain files or entire folders to be rendered when requested. -- Squashed a bug with templates' caching preventing some files to invalidate their cache - -## Version 2.0 - -Released, March 2018 - -## - Breaking changes -- **New app DLL name**: `MIISHandler.dll` instead of the old one `IISMarkdownHandler.dll`. Make sure you delete the old one before updating! You must change the handlers section in your `web.config` file. Just copy it from the downloaded MISS released files. -- **Placeholders now use double curly-braces** (`{{prefield}}field{{postfield}}`) instead of just one. Upgrade your templates before updating. -- **The `Markdown-Template` parameter doesn't exist anymore**. Now it uses two independent parameters for the template location and the layout, being much more flexible. See [configuration/settings](Settings). -- the `BaseFolder` field is deprecated. Use `{{tilde}}/` instead. -- The `BaseFolder` and `TemplateBaseFolder` fields do not include a slash `/` at the end. This makes the paths more readable. -- The `UseMDCaching` and `AllowEmojis` parameter's value are `"1"` by default (enabled), so you don't need to specifcy them most of the time. - -## - What's new -- **Includes in templates**. Now you can reuse any part of your template to define different layouts using the same base code. The include files can include other files too (no circular-references allowed). -- **"Fragments"**. This powerful new concept allows you to define several contents to be located in the same layout to form a single page, even with optional parts. -- **Front-Matter**: Define any parameter in the Front-Matter of a file and use it inside the content or in the current template. Re-define any global parameter or field to be applied differently in any page. For example, you can define something as simple as the title or author of the page, or even change the layout it uses to render itself. Front-Matter values take precedence over values defined globally. -- **`MIIS:` prefix to define global parameters & fields in `web.config` files**. To avoid conflict with parameters of the same name in other software you may be using. The use of this prefix is optional but recommended. It'll take precedence over the non-prefixed parameters with the same name in case of conflict. - -## Version 1.1 - -Released September 2017 - -- **Added support for plain HTML content** through the special `.mdh` extension. If you access a file with the `.mdh` extension it will be used with the current template and/or styles un-transformed. In this way you can use plain-old HTML with your current template for special pages that need a finer control of the contents. Useful for front pages, for example. -- **New fields for templates**: - - **`{isauthenticated}`**: boolean that shows if the current user is authenticated or not. Useful with scripts. - - **`{authtype}`**: the type of authentication used. - - **`{username}`**: the name of the current authenticated user. - - -## Version 1.0 - -Released March 2017 diff --git a/docs/toc.md b/docs/toc.md deleted file mode 100644 index a5b7464..0000000 --- a/docs/toc.md +++ /dev/null @@ -1,19 +0,0 @@ -#### Overview -- [Quick Start](./) -- [Markdown Features](Markdown-Features) - -#### Configuration & Templating -- [Configuration](Settings) -- [Out-Of-The-Box Templates](Template-List) -- [Creating Custom Templates](Templating) - -#### Deployment -- [Run Locally with IIS Express](IISExpress) -- [Run in Azure](Azure) -- [Files configuration](Managing-File-Extensions) - ----- -- [Markdown Reference](https://guides.github.com/features/mastering-markdown/) -- [campusMVP](https://www.campusmvp.es) ----- -- [Showcase](Showcase)