diff --git a/_layout/sidebar.html b/_layout/sidebar.html
index 682b093..3179385 100644
--- a/_layout/sidebar.html
+++ b/_layout/sidebar.html
@@ -2,15 +2,17 @@
diff --git a/config.md b/config.md
index 59d2d5d..1e4747b 100644
--- a/config.md
+++ b/config.md
@@ -2,7 +2,7 @@
Add here global page variables to use throughout your website.
-->
+++
-author = "Septimia Zenobia"
+author = "Camila Gil"
mintoclevel = 2
# uncomment and adjust the following line if the expected base URL of your website is something like [www.thebase.com/yourproject/]
diff --git a/menu4.md b/menu4.md
new file mode 100644
index 0000000..2b9be5c
--- /dev/null
+++ b/menu4.md
@@ -0,0 +1,103 @@
++++
+title = "Menu 3"
++++
+
+# Working with tags
+
+**Example**:
+
+* page with tag [`syntax`](/tag/syntax/)
+* page with tag [`image`](/tag/image/)
+* page with tag [`code`](/tag/code/)
+
+\toc
+
+## Indicating tags
+
+To mark a page with tags, add:
+
+```markdown
++++
+tags = ["tag1", "tag2"]
++++
+```
+
+then that page, along with all others that have the tag `tag1` will be listed at `/tag/tag1/`.
+
+## Customising tag pages
+
+You can change how a `/tag/...` page looks like by modifying the `_layout/tag.html`. An important note is that you can **only** use **global** page variables (defined in `config.md`).
+
+There are three "exceptions":
+
+1. you can still use `{{ispage /tag/tagname/}} ... {{end}}` (or `{{isnotpage ...}}`) to have a different layout depending on the tag,
+1. you can use the `fd_tag` variable which contains the name of the tag so `{{fill fd_tag}}` will input the tag string as is,
+1. you can use `{{fill varname path/to/page}}` to exploit a page variable defined in a specific page.
+
+## Customising tag lists
+
+By default the tag list is very simple: it just collects all pages that match the tags and it shows them in a simple list by anti-chronological order (more recent at the top).
+
+You can customise this by defining your own `hfun_custom_taglist` function in the `utils.jl` file. The commented blueprint for the simple default setting is below and should give you an idea of how to write your own generator.
+
+Assuming you've defined such a function, don't forget to use `{{custom_taglist}}` in the `_layout/tag.html` instead of the default `{{taglist}}`.
+
+```julia
+function hfun_custom_taglist()::String
+ # -----------------------------------------
+ # Part1: Retrieve all pages associated with
+ # the tag & sort them
+ # -----------------------------------------
+ # retrieve the tag string
+ tag = locvar(:fd_tag)
+ # recover the relative paths to all pages that have that
+ # tag, these are paths like /blog/page1
+ rpaths = globvar("fd_tag_pages")[tag]
+ # you might want to sort these pages by chronological order
+ # you could also only show the most recent 5 etc...
+ sorter(p) = begin
+ # retrieve the "date" field of the page if defined, otherwise
+ # use the date of creation of the file
+ pvd = pagevar(p, :date)
+ if isnothing(pvd)
+ return Date(Dates.unix2datetime(stat(p * ".md").ctime))
+ end
+ return pvd
+ end
+ sort!(rpaths, by=sorter, rev=true)
+
+ # --------------------------------
+ # Part2: Write the HTML to plug in
+ # --------------------------------
+ # instantiate a buffer in which we will write the HTML
+ # to plug in the tag page
+ c = IOBuffer()
+ write(c, "...1...")
+ # go over all paths
+ for rpath in rpaths
+ # recover the url corresponding to the rpath
+ url = get_url(rpath)
+ # recover the title of the page if there is one defined,
+ # if there isn't, fallback on the path to the page
+ title = pagevar(rpath, "title")
+ if isnothing(title)
+ title = "/$rpath/"
+ end
+ # write some appropriate HTML
+ write(c, "...2...")
+ end
+ # finish the HTML
+ write(c, "...3...")
+ # return the HTML string
+ return String(take!(c))
+end
+```
+
+For instance the default uses:
+
+```html
+
+
+
+
$title
+```
diff --git a/menu5.md b/menu5.md
new file mode 100644
index 0000000..2b9be5c
--- /dev/null
+++ b/menu5.md
@@ -0,0 +1,103 @@
++++
+title = "Menu 3"
++++
+
+# Working with tags
+
+**Example**:
+
+* page with tag [`syntax`](/tag/syntax/)
+* page with tag [`image`](/tag/image/)
+* page with tag [`code`](/tag/code/)
+
+\toc
+
+## Indicating tags
+
+To mark a page with tags, add:
+
+```markdown
++++
+tags = ["tag1", "tag2"]
++++
+```
+
+then that page, along with all others that have the tag `tag1` will be listed at `/tag/tag1/`.
+
+## Customising tag pages
+
+You can change how a `/tag/...` page looks like by modifying the `_layout/tag.html`. An important note is that you can **only** use **global** page variables (defined in `config.md`).
+
+There are three "exceptions":
+
+1. you can still use `{{ispage /tag/tagname/}} ... {{end}}` (or `{{isnotpage ...}}`) to have a different layout depending on the tag,
+1. you can use the `fd_tag` variable which contains the name of the tag so `{{fill fd_tag}}` will input the tag string as is,
+1. you can use `{{fill varname path/to/page}}` to exploit a page variable defined in a specific page.
+
+## Customising tag lists
+
+By default the tag list is very simple: it just collects all pages that match the tags and it shows them in a simple list by anti-chronological order (more recent at the top).
+
+You can customise this by defining your own `hfun_custom_taglist` function in the `utils.jl` file. The commented blueprint for the simple default setting is below and should give you an idea of how to write your own generator.
+
+Assuming you've defined such a function, don't forget to use `{{custom_taglist}}` in the `_layout/tag.html` instead of the default `{{taglist}}`.
+
+```julia
+function hfun_custom_taglist()::String
+ # -----------------------------------------
+ # Part1: Retrieve all pages associated with
+ # the tag & sort them
+ # -----------------------------------------
+ # retrieve the tag string
+ tag = locvar(:fd_tag)
+ # recover the relative paths to all pages that have that
+ # tag, these are paths like /blog/page1
+ rpaths = globvar("fd_tag_pages")[tag]
+ # you might want to sort these pages by chronological order
+ # you could also only show the most recent 5 etc...
+ sorter(p) = begin
+ # retrieve the "date" field of the page if defined, otherwise
+ # use the date of creation of the file
+ pvd = pagevar(p, :date)
+ if isnothing(pvd)
+ return Date(Dates.unix2datetime(stat(p * ".md").ctime))
+ end
+ return pvd
+ end
+ sort!(rpaths, by=sorter, rev=true)
+
+ # --------------------------------
+ # Part2: Write the HTML to plug in
+ # --------------------------------
+ # instantiate a buffer in which we will write the HTML
+ # to plug in the tag page
+ c = IOBuffer()
+ write(c, "...1...")
+ # go over all paths
+ for rpath in rpaths
+ # recover the url corresponding to the rpath
+ url = get_url(rpath)
+ # recover the title of the page if there is one defined,
+ # if there isn't, fallback on the path to the page
+ title = pagevar(rpath, "title")
+ if isnothing(title)
+ title = "/$rpath/"
+ end
+ # write some appropriate HTML
+ write(c, "...2...")
+ end
+ # finish the HTML
+ write(c, "...3...")
+ # return the HTML string
+ return String(take!(c))
+end
+```
+
+For instance the default uses:
+
+```html
+
+
+
+
$title
+```