diff --git a/src/main/java/fr/emse/gitlab/saref/CLIExecution.java b/src/main/java/fr/emse/gitlab/saref/CLIExecution.java
index a83676873aff8895e8167e2d7f7e9af004d8b7d5..28b390deb0758bd3a6686439b1c6c015cef2e9d1 100644
--- a/src/main/java/fr/emse/gitlab/saref/CLIExecution.java
+++ b/src/main/java/fr/emse/gitlab/saref/CLIExecution.java
@@ -86,8 +86,11 @@ public class CLIExecution implements SAREFCredentialsProvider {
 			case "develop":
 				mode = Mode.DEVELOP;
 				break;
-			case "portal":
-				mode = Mode.PORTAL;
+			case "prerelease-portal":
+				mode = Mode.PRERELEASE_PORTAL;
+				break;
+			case "release-portal":
+				mode = Mode.RELEASE_PORTAL;
 				break;
 			case "release":
 				mode = Mode.RELEASE;
@@ -99,7 +102,7 @@ public class CLIExecution implements SAREFCredentialsProvider {
 				displayHelp(0);
 				throw new RuntimeException();
 			default:
-				LOG.error(String.format("<mode> %s is invalid. Valid modes are develop, portal, release, help.", args[0]));
+				LOG.error(String.format("<mode> %s is invalid. Valid modes are develop, portal, prerelease-portal, release-portal, help.", args[0]));
 				displayHelp(-1);
 				throw new RuntimeException();
 			}
diff --git a/src/main/java/fr/emse/gitlab/saref/SAREF.java b/src/main/java/fr/emse/gitlab/saref/SAREF.java
index 0210410d6f27012cefe4633d090e426474540b27..781183364b0bb85a508beea36bef9bf5a6920295 100644
--- a/src/main/java/fr/emse/gitlab/saref/SAREF.java
+++ b/src/main/java/fr/emse/gitlab/saref/SAREF.java
@@ -67,6 +67,9 @@ public class SAREF {
 	public static final String LOGGER_BASE = "SAREF Pipeline: ";
 	
 	public static final String NAME_SITE = "site";
+	public static final String NAME_SOURCES = "sources";
+	public static final String NAME_SOURCES_PORTAL = "portal";
+
 	
 	// project acronym
 	public static final String REGEX_ACRONYM_VAR = "acronym";
diff --git a/src/main/java/fr/emse/gitlab/saref/SAREFPipeline.java b/src/main/java/fr/emse/gitlab/saref/SAREFPipeline.java
index c15cf154bd88f5f653f11561a98f9a3938cfd3cc..d69398e7ee17c9fd4aa6a8fc4f2e8c4361c03c4c 100644
--- a/src/main/java/fr/emse/gitlab/saref/SAREFPipeline.java
+++ b/src/main/java/fr/emse/gitlab/saref/SAREFPipeline.java
@@ -56,7 +56,7 @@ public class SAREFPipeline {
 	private static final String NAME_LOG_FILE = "output.log";
 
 	public static enum Mode {
-		DEVELOP, RELEASE, PORTAL, CLEAN
+		DEVELOP, RELEASE, PRERELEASE_PORTAL, RELEASE_PORTAL, CLEAN
 	}
 
 	private final TestSuites testSuites = new TestSuites("SAREF pipeline");
@@ -131,7 +131,7 @@ public class SAREFPipeline {
 			sourcesManager.checkTerms();
 			sourcesManager.generateSite();
 			sourcesManager.resetCheckout();
-			if(mode == Mode.PORTAL) {
+			if(mode == Mode.PRERELEASE_PORTAL || mode == Mode.RELEASE_PORTAL) {
 				datasetManager = new DatasetManager(this, logger);
 				datasetManager.createDataset();
 			}
diff --git a/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_4_5_Checker.java b/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_4_5_Checker.java
index c1c1bfbeb4b949214095cd5a231da450fb06c8d9..ab3081d822517e8d5e09c17813cb8a7dd6d6733d 100644
--- a/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_4_5_Checker.java
+++ b/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_4_5_Checker.java
@@ -118,10 +118,14 @@ public class Clause_9_4_5_Checker extends AbstractClauseChecker {
 				}
 			});
 		}
-		checkOops();
+		try {
+			checkOops();
+		} catch (Exception ex) {
+			logWarning(getMessage(MESSAGE.oopsError), ex);			
+		}
 	}
 
-	public void checkOops() throws SAREFPipelineException {
+	public void checkOops() throws Exception {
 
 		ByteArrayOutputStream out = new ByteArrayOutputStream();
 		String onto = "";
diff --git a/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_5_Checker.java b/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_5_Checker.java
index 02ca3deec1cf4971a1fa543a4158894f2855ee59..fa8edd678f0f94e39a2d49a1cf6076c7cbd76853 100644
--- a/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_5_Checker.java
+++ b/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_5_Checker.java
@@ -25,7 +25,11 @@
  */
 package fr.emse.gitlab.saref.checkers;
 
-import java.io.*;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StringWriter;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.FileSystems;
 import java.nio.file.PathMatcher;
@@ -97,8 +101,14 @@ public class Clause_9_5_Checker extends AbstractClauseChecker {
 				return;
 			}
 			readTests();  // generates the RDF model for the tests
-			callThemis();  // uses the RDF model for the tests and sends it to ThemisOWL profile, consistency, lack of pitfalls and class satisfiability 
-			testsRDFaGenerator(); // this generates the html file with  rdfa embedded.
+			
+			try {
+				callThemis();  // uses the RDF model for the tests and sends it to ThemisOWL profile, consistency, lack of pitfalls and class satisfiability 
+				testsRDFaGenerator(); // this generates the html file with  rdfa embedded.
+			} catch (Exception ex) {
+				logWarning(getMessage(MESSAGE.themis), ex);			
+			}
+			
 		} catch (IOException ex) {
 			logError(getMessage(MESSAGE.ioexception));
 		}
diff --git a/src/main/java/fr/emse/gitlab/saref/gui/FunctionalitiesPanel.java b/src/main/java/fr/emse/gitlab/saref/gui/FunctionalitiesPanel.java
index 29a5da0322012544cb63e185bc1742480f79bb2d..b2acb7e6d72efe9b4cf2c4f2cdae86f15d89e318 100644
--- a/src/main/java/fr/emse/gitlab/saref/gui/FunctionalitiesPanel.java
+++ b/src/main/java/fr/emse/gitlab/saref/gui/FunctionalitiesPanel.java
@@ -46,7 +46,8 @@ public class FunctionalitiesPanel extends JPanel {
 	final JButton fileChooser;
 	final JRadioButton develop;
 	final JRadioButton release;
-	final JRadioButton portal;
+	final JRadioButton prerelease_portal;
+	final JRadioButton release_portal;
 	final JCheckBox ignoreSite;
 	final JCheckBox ignoreExamples;
 	final JCheckBox ignoreTerms;
@@ -78,26 +79,38 @@ public class FunctionalitiesPanel extends JPanel {
 				}
 			}
 		});
-		portal = new JRadioButton(SAREF.getMessage("portal"));
-		portal.setToolTipText(SAREF.getMessage("portal_tooltip"));
-		portal.addActionListener(new ActionListener() {
+		prerelease_portal = new JRadioButton(SAREF.getMessage("prerelease_portal"));
+		prerelease_portal.setToolTipText(SAREF.getMessage("prerelease_portal_tooltip"));
+		prerelease_portal.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
-				if(portal.isSelected()) {
-					mainFrame.setMode(Mode.PORTAL);
+				if(prerelease_portal.isSelected()) {
+					mainFrame.setMode(Mode.PRERELEASE_PORTAL);
+				}
+			}
+		});
+		release_portal = new JRadioButton(SAREF.getMessage("release_portal"));
+		release_portal.setToolTipText(SAREF.getMessage("release_portal_tooltip"));
+		release_portal.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				if(release_portal.isSelected()) {
+					mainFrame.setMode(Mode.RELEASE_PORTAL);
 				}
 			}
 		});
 		ButtonGroup modeGroup = new ButtonGroup();
 		modeGroup.add(develop);
 		modeGroup.add(release);
-		modeGroup.add(portal);
+		modeGroup.add(prerelease_portal);
+		modeGroup.add(release_portal);
 		JPanel panel2 = new JPanel();
 		panel2.setLayout(new BoxLayout(panel2, BoxLayout.Y_AXIS));
 		panel2.add(new JLabel(SAREF.getMessage("modes")));
 		panel2.add(develop);
 		panel2.add(release);
-		panel2.add(portal);
+		panel2.add(prerelease_portal);
+		panel2.add(release_portal);
 		add(panel2);
 		
 		ignoreSite = new JCheckBox(SAREF.getMessage("ignoreSite"), false);
diff --git a/src/main/java/fr/emse/gitlab/saref/managers/DatasetManager.java b/src/main/java/fr/emse/gitlab/saref/managers/DatasetManager.java
index 80f96e50e6dc89f44b867b45e296a1b87d340bbe..b65ffa5886b77dfe186e084a47b1f08b90e3f842 100644
--- a/src/main/java/fr/emse/gitlab/saref/managers/DatasetManager.java
+++ b/src/main/java/fr/emse/gitlab/saref/managers/DatasetManager.java
@@ -26,7 +26,6 @@
 package fr.emse.gitlab.saref.managers;
 
 import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.util.Collection;
 
@@ -39,10 +38,6 @@ import org.apache.jena.query.text.TextDatasetFactory;
 import org.apache.jena.query.text.TextIndex;
 import org.apache.jena.query.text.TextIndexConfig;
 import org.apache.jena.rdf.model.Model;
-import org.apache.jena.rdf.model.ModelFactory;
-import org.apache.jena.rdf.model.Property;
-import org.apache.jena.rdf.model.Resource;
-import org.apache.jena.riot.Lang;
 import org.apache.jena.tdb.TDBFactory;
 import org.apache.jena.vocabulary.DCTerms;
 import org.apache.jena.vocabulary.OWL;
@@ -50,9 +45,7 @@ import org.apache.jena.vocabulary.OWL2;
 import org.apache.jena.vocabulary.RDF;
 import org.apache.jena.vocabulary.RDFS;
 import org.apache.lucene.analysis.en.EnglishAnalyzer;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
 import org.apache.lucene.store.Directory;
-import org.apache.lucene.store.RAMDirectory;
 import org.apache.lucene.store.SimpleFSDirectory;
 import org.slf4j.Logger;
 
diff --git a/src/main/java/fr/emse/gitlab/saref/managers/OntologyManager.java b/src/main/java/fr/emse/gitlab/saref/managers/OntologyManager.java
index 8c98e83230a359741ddf40a67ddea538aee5348b..45ed91eb76c0dc61c2b4e1b0b03d0b479799ec22 100644
--- a/src/main/java/fr/emse/gitlab/saref/managers/OntologyManager.java
+++ b/src/main/java/fr/emse/gitlab/saref/managers/OntologyManager.java
@@ -122,7 +122,7 @@ public class OntologyManager extends SAREFErrorLogger {
 		try {
 			return ONTOLOGY_MANAGER.loadOntologyFromOntologyDocument(iri);
 		} catch (OWLOntologyCreationException ex) {
-			log(logger, getMessage(MESSAGE.loading_error), ex, Mode.DEVELOP, Mode.RELEASE, Mode.PORTAL);
+			log(logger, getMessage(MESSAGE.loading_error), ex, Mode.DEVELOP, Mode.RELEASE, Mode.PRERELEASE_PORTAL, Mode.RELEASE_PORTAL);
 			return null;
 		}
 	}
@@ -136,7 +136,7 @@ public class OntologyManager extends SAREFErrorLogger {
 		try {
 			return ONTOLOGY_MANAGER.loadOntologyFromOntologyDocument(IRI.create(example.getIRI()));
 		} catch (OWLOntologyCreationException ex) {
-			log(logger, getMessage(MESSAGE.loading_error), ex, Mode.DEVELOP, Mode.RELEASE, Mode.PORTAL);
+			log(logger, getMessage(MESSAGE.loading_error), ex, Mode.DEVELOP, Mode.RELEASE, Mode.PRERELEASE_PORTAL, Mode.RELEASE_PORTAL);
 			return null;
 		}
 	}
@@ -147,7 +147,7 @@ public class OntologyManager extends SAREFErrorLogger {
 		try {
 			return gen.getExplanations(axiomInconsistent, 10);
 		} catch (Exception ex) {
-			log(logger, getMessage(MESSAGE.reasoning_error), ex, Mode.DEVELOP, Mode.RELEASE, Mode.PORTAL);
+			log(logger, getMessage(MESSAGE.reasoning_error), ex, Mode.DEVELOP, Mode.RELEASE, Mode.PRERELEASE_PORTAL, Mode.RELEASE_PORTAL);
 			return null;
 		}
 	}
diff --git a/src/main/java/fr/emse/gitlab/saref/managers/RepositoryFactory.java b/src/main/java/fr/emse/gitlab/saref/managers/RepositoryFactory.java
index 4b5843f75b3f52907ed745c49c1038536f9f316f..c73c8b6c76c2fd044e4d55ae9d0f2a87a659f922 100644
--- a/src/main/java/fr/emse/gitlab/saref/managers/RepositoryFactory.java
+++ b/src/main/java/fr/emse/gitlab/saref/managers/RepositoryFactory.java
@@ -100,8 +100,7 @@ public class RepositoryFactory extends SAREFErrorLogger {
 				log(msg, Mode.DEVELOP, Mode.RELEASE);
 				throw new SAREFPipelineException(msg);
 			} else {
-				log(getMessage(MESSAGE.source_name, SAREF.REGEX_NAME_PROJECT, name), Mode.DEVELOP, Mode.RELEASE,
-						Mode.PORTAL);
+				logError(getMessage(MESSAGE.source_name, SAREF.REGEX_NAME_PROJECT, name));
 				return null;
 
 			}
@@ -135,7 +134,7 @@ public class RepositoryFactory extends SAREFErrorLogger {
 			if (!m.find()) {
 				if (isTarget && pipeline.mode == Mode.RELEASE) {
 					final String msg = String.format(getMessage(MESSAGE.release_branch, originalBranch));
-					errorLogger.warn(msg);
+					errorLogger.error(msg);
 					throw new SAREFPipelineException(msg);
 				} 
 				originalVersionName = guessVersion(project, directory);
@@ -205,6 +204,18 @@ public class RepositoryFactory extends SAREFErrorLogger {
 		for (Ref ref : allBranches) {
 			Matcher m = pattern.matcher(ref.getName());
 			if (m.find()) {
+				String branchType = m.group(REGEX_VERSION_BRANCH_VAR);
+
+				// only consider release branches when running in RELEASE_PORTAL mode
+				if(pipeline.mode == Mode.RELEASE_PORTAL && !branchType.equals("release")) {
+					continue;
+				}
+
+				// only consider prerelease and release branches when running in PRERELEASE_PORTAL mode
+				if(pipeline.mode == Mode.PRERELEASE_PORTAL && branchType.equals("develop")) {
+					continue;
+				}
+
 				int major = Integer.parseInt(m.group(SAREF.REGEX_VERSION_MAJOR_VAR));
 				int minor = Integer.parseInt(m.group(SAREF.REGEX_VERSION_MINOR_VAR));
 				int patch = Integer.parseInt(m.group(SAREF.REGEX_VERSION_PATCH_VAR));
@@ -215,7 +226,7 @@ public class RepositoryFactory extends SAREFErrorLogger {
 					versionBuilder = new VersionBuilder(repository, versionName);
 					versionBuilders.put(versionName, versionBuilder);
 				}
-				switch (m.group(REGEX_VERSION_BRANCH_VAR)) {
+				switch (branchType) {
 				case "develop":
 					versionBuilder.developRef = ref;
 					break;
diff --git a/src/main/java/fr/emse/gitlab/saref/managers/RepositoryManager.java b/src/main/java/fr/emse/gitlab/saref/managers/RepositoryManager.java
index 50712b638e50d64b31248daa12c8228a33b5a5db..82988e4e89ba3b226eb34e5f78d26ab01610ecb1 100644
--- a/src/main/java/fr/emse/gitlab/saref/managers/RepositoryManager.java
+++ b/src/main/java/fr/emse/gitlab/saref/managers/RepositoryManager.java
@@ -42,7 +42,6 @@ import org.slf4j.Logger;
 import fr.emse.gitlab.saref.SAREF;
 import fr.emse.gitlab.saref.SAREFErrorLogger;
 import fr.emse.gitlab.saref.SAREFPipeline;
-import fr.emse.gitlab.saref.SAREFPipeline.Mode;
 import fr.emse.gitlab.saref.SAREFPipelineException;
 import fr.emse.gitlab.saref.entities.SAREFExample;
 import fr.emse.gitlab.saref.entities.SAREFProject;
@@ -99,8 +98,7 @@ public class RepositoryManager extends SAREFErrorLogger {
 			return;
 		}
 		SAREFVersion version = repository.getVersions().get(versionName);
-		boolean prereleaseOnly = pipeline.mode == Mode.RELEASE || pipeline.mode == Mode.PORTAL;
-		Ref ref = sourcesManager.getRef(version, prereleaseOnly);
+		Ref ref = sourcesManager.getRef(version);
 		if(ref == null) {
 			throw new SAREFPipelineException();
 		}
@@ -111,7 +109,7 @@ public class RepositoryManager extends SAREFErrorLogger {
 			currentVersionName = versionName;
 		} catch (IOException | GitAPIException ex) {
 			String msg = getMessage(MESSAGE.checkout, repository.getProject().getName(), versionName);
-			log(msg, ex, Mode.DEVELOP, Mode.RELEASE, Mode.PORTAL);
+			logError(msg, ex);
 			throw new SAREFPipelineException(msg, ex);
 		}
 	}
@@ -128,7 +126,7 @@ public class RepositoryManager extends SAREFErrorLogger {
 			git.checkout().setName(originalBranch).call();
 		} catch (IOException | GitAPIException ex) {
 			String msg = getMessage(MESSAGE.reset, originalBranch);
-			log(msg, ex, Mode.DEVELOP, Mode.RELEASE, Mode.PORTAL);
+			logError(msg, ex);
 			throw new SAREFPipelineException(msg, ex);
 		}
 	}
@@ -154,7 +152,7 @@ public class RepositoryManager extends SAREFErrorLogger {
 
 	private void loadVersions(Git git, SAREFRepository repository) throws GitAPIException {
 		for (SAREFVersion version : repository.getVersions().values()) {
-			Ref ref = sourcesManager.getRef(version, false);
+			Ref ref = sourcesManager.getRef(version);
 			if(ref == null) {
 				continue;
 			}
diff --git a/src/main/java/fr/emse/gitlab/saref/managers/SiteManager.java b/src/main/java/fr/emse/gitlab/saref/managers/SiteManager.java
index 7780ace25fcfd5cdf0f353d2752525ca6c4c1cab..64fba894248129e23b8f807a047c53c4e92b1639 100644
--- a/src/main/java/fr/emse/gitlab/saref/managers/SiteManager.java
+++ b/src/main/java/fr/emse/gitlab/saref/managers/SiteManager.java
@@ -32,10 +32,9 @@ import java.io.IOException;
 import java.io.StringWriter;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
-import java.util.stream.Collectors;
 
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.jena.atlas.io.IndentedWriter;
 import org.apache.jena.graph.NodeFactory;
@@ -77,30 +76,27 @@ public class SiteManager extends SAREFErrorLogger {
 	private static final String EXAMPLE_QUERY = DOC_BASE + "example/main.rqg";
 	private static final Var VAR_EXAMPLE = VarUtils.allocVar("example");
 
-	private static final String NAME_STATIC = "static";
 	private static final String NAME_REPORT_HTML = "report.html";
 
-	private static final String HTACCESS_HTML = "RewriteCond %{HTTP_ACCEPT} !(application/rdf\\+xml|text/turtle|text/n3|application/n\\-triples|application/ld\\+json)";
-	private static final String HTACCESS_RDFXML = "RewriteCond %{HTTP_ACCEPT} application/rdf\\+xml";
-	private static final String HTACCESS_TURTLE = "RewriteCond %{HTTP_ACCEPT} text/turtle";
-	private static final String HTACCESS_N3 = "RewriteCond %{HTTP_ACCEPT} text/n3";
-	private static final String HTACCESS_NTRIPLE = "RewriteCond %{HTTP_ACCEPT} application/n-triples";
-	private static final String HTACCESS_JSONLD = "RewriteCond %{HTTP_ACCEPT} application/ld\\+json";
+	private static final String HTACCESS_PATH = "RewriteCond %{REQUEST_URI} ^(.*/)?[^/]*$\n";
 
 	private static final SPARQLExtStreamManager STREAM_MANAGER_BASE = StreamManagerFactory.get();
 	public final File siteDir;
+	public final File sourcesDir;
 	private final File reportFileHTML;
 	private final RootPlan planForTerm;
 	private final RootPlan planForOntologyVersion;
 	private final RootPlan planForExample;
 
 	private static enum MESSAGE {
-		prepare_error;
+		prepare_target_error, prepare_portal_error;
 	}
 
 	public SiteManager(SAREFPipeline pipeline, Logger errorLogger) throws IOException {
 		super(pipeline, errorLogger);
 		siteDir = new File(pipeline.targetDir, SAREF.NAME_SITE);
+		sourcesDir = new File(pipeline.targetDir, SAREF.NAME_SOURCES);
+		
 		reportFileHTML = new File(siteDir, NAME_REPORT_HTML);
 
 		String query = IOUtils.toString(STREAM_MANAGER_BASE.open(new LookUpRequest(TERM_QUERY, SPARQLExt.MEDIA_TYPE)),
@@ -120,12 +116,29 @@ public class SiteManager extends SAREFErrorLogger {
 	 * Prepare the site folder and clone the saref-portal-static project repository.
 	 */
 	public void prepareSite() throws SAREFPipelineException {
-		try (Git git = Git.cloneRepository().setURI(SAREF.SAREF_PORTAL_STATIC_GIT).setDirectory(siteDir).call()) {
-		} catch (Exception ex) {
-			try (Git git = Git.open(siteDir)) {
-				git.pull().call();
+		if(pipeline.mode == Mode.DEVELOP || pipeline.mode == Mode.RELEASE) {
+			File portalSourcesDir = new File(sourcesDir, SAREF.NAME_SOURCES_PORTAL);
+			try (Git git = Git.cloneRepository().setURI(SAREF.SAREF_PORTAL_STATIC_GIT).setDirectory(portalSourcesDir).call()) {
+				File portal = new File(portalSourcesDir, SAREF.NAME_SOURCES_PORTAL);
+				FileUtils.copyDirectory(portal, siteDir);
+			} catch (Exception ex) {
+				try (Git git = Git.open(portalSourcesDir)) {
+					git.pull().call();
+					File portal = new File(portalSourcesDir, SAREF.NAME_SOURCES_PORTAL);
+					FileUtils.copyDirectory(portal, siteDir);
+				} catch (Exception e) {
+					String msg = getMessage(MESSAGE.prepare_target_error, SAREF.SAREF_PORTAL_STATIC_GIT);
+					logError(msg, e);
+					throw new SAREFPipelineException(msg, e);
+				}
+			}
+		} else {
+			try {
+				File portal = new File(pipeline.directory, SAREF.NAME_SOURCES_PORTAL);
+				FileUtils.copyDirectory(portal, siteDir);
 			} catch (Exception e) {
-				String msg = getMessage(MESSAGE.prepare_error, SAREF.SAREF_PORTAL_STATIC_GIT);
+				// should have a folder portal
+				String msg = getMessage(MESSAGE.prepare_target_error, SAREF.SAREF_PORTAL_STATIC_GIT);
 				logError(msg, e);
 				throw new SAREFPipelineException(msg, e);
 			}
@@ -188,71 +201,50 @@ public class SiteManager extends SAREFErrorLogger {
 	public void generateHtaccess() {
 		File htaccess = new File(siteDir, ".htaccess");
 		try (FileWriter writer = new FileWriter(htaccess)) {
-			writer.write("RewriteEngine on\nDirectorySlash Off\n\n");
-			writer.write("nRewriteRule ^sources/(.*)$ https://forge.etsi.org/rep/SAREF/$1 [R=302,NE]\\n"); // redirect the sources
-			writer.write(HTACCESS_HTML);
-			writer.write("\nRewriteRule ^(.*)\\.conneg$ /$1.html\n");
-			writer.write(HTACCESS_JSONLD);
-			writer.write("\nRewriteRule ^(.*)\\.conneg$ /$1.jsonld\n");
-			writer.write(HTACCESS_N3);
-			writer.write("\nRewriteRule ^(.*)\\.conneg$ /$1.n3\n");
-			writer.write(HTACCESS_NTRIPLE);
-			writer.write("\nRewriteRule ^(.*)\\.conneg$ /$1.nt\n");
-			writer.write(HTACCESS_RDFXML);
-			writer.write("\nRewriteRule ^(.*)\\.conneg$ /$1.rdf\n");
-			writer.write(HTACCESS_TURTLE);
-			writer.write("\nRewriteRule ^(.*)\\.conneg$ /$1.ttl\n");
-			writer.write("\n");
-			for (RepositoryManager repositoryManager : pipeline.getSourcesManager().getSourceRepositoryManagers()) {
-				SAREFRepository repository = repositoryManager.getRepository();
-				SAREFProject project = repository.getProject();
-				SAREFVersion lastVersion = repository.getVersions().lastEntry().getValue();
+			writer.write("RewriteRule ^sources/(.*)$ https://forge.etsi.org/rep/SAREF/$1 [R=302]\n\n");
 
-				// redirects core to core/v3.1.1/
-				// redirects core/ to core/v3.1.1/
-				writer.write(String.format("RewriteRule ^%s/?$ /%s/  [R=302,NE]\n", project.getPath(), lastVersion.getVersionPath()));
-				
-				// redirects core/Sensor to core/Sensor.conneg 
-				String choiceOfTerms = repository.getTerms().values().stream().map(SAREFTerm::getLocalName)
-						.collect(Collectors.joining("|", "(", ")"));
-				writer.write(String.format("RewriteCond %%{REQUEST_URI} ^/%s/%s$\n", project.getPath(), choiceOfTerms));
-				writer.write(String.format("RewriteRule ^%s/(.*)$ /%s/$1.conneg\n\n", project.getPath(), project.getPath()));
+			writer.write(
+					"Header set Content-disposition \"expr=attachement; filename=%{resp:Content-Location}\" \"expr=%{resp:Content-Location} =~ /.(rdf|nt|n3)$/\"\n");
+			writer.write(
+					"Header set Content-disposition \"expr=inline; filename=%{resp:Content-Location}\" \"expr=  %{resp:Content-Location} =~ /.+/  && !( %{resp:Content-Location} =~ /.(rdf|nt|n3)$/ )\"\n\n");
 
-				// redirects core.ttl to core/v1.1.1.ttl 
-				writer.write(String.format("RewriteRule ^%s\\.([^\\./]+)$ /%s.$1 [R=302,NE]\n\n",
-						project.getPath(), lastVersion.getVersionPath()));
-
-				for (SAREFVersion version : repository.getVersions().values()) {
-					writer.write(String.format("RewriteRule ^%s/?$ /%s/%s.conneg\n",
-							version.getVersionPath(), version.getVersionPath(), project.getOntologyFileName()));
-					
-					// redirects core/v1.1.1.ttl to core/v1.1.1/saref.ttl 
-					writer.write(String.format("RewriteRule ^%s\\.([^\\./]+)$ /%s/%s.$1  [R=302,NE]\n",
-							version.getVersionPath(), version.getVersionPath(), project.getOntologyFileName()));
-
-					// redirects core/v1.1.1/saref to core/v1.1.1/saref.conneg 
-					writer.write(String.format("RewriteRule ^%s/%s$ /%s/%s.conneg\n",
-							version.getVersionPath(), project.getOntologyFileName(), version.getVersionPath(),
-							project.getOntologyFileName()));
-					
-					// redirects core/v1.1.1/tests to core/v1.1.1/tests.conneg 
-					writer.write(String.format("RewriteRule ^%s/tests$ /%s/tests.conneg\n",
-							version.getVersionPath(), version.getVersionPath()));
-					
-					// redirects core/v1.1.1/requirements to core/v1.1.1/requirements.conneg 
-					writer.write(String.format("RewriteRule ^%s/requirements$ /%s/requirements.conneg\n",
-							version.getVersionPath(), version.getVersionPath()));
-
-					for (SAREFExample example : version.getExamples().values()) {
-						writer.write(String.format("RewriteRule ^%s/example/%s$ /%s/example/%s.conneg\n",
-								version.getVersionPath(), example.getName(), version.getVersionPath(),
-								example.getName()));
-					}
-					writer.write("\n\n");
-				}
+			if (pipeline.getSourcesManager().getTargetRepositoryManager() != null) {
+				writeHtaccess(writer, pipeline.getSourcesManager().getTargetRepositoryManager());
+			}
+			for (RepositoryManager repositoryManager : pipeline.getSourcesManager().getSourceRepositoryManagers()) {
+				writeHtaccess(writer, repositoryManager);
 			}
 		} catch (IOException ex) {
 			ex.printStackTrace();
 		}
 	}
+
+	private void writeHtaccess(FileWriter writer, RepositoryManager repositoryManager) throws IOException {
+		SAREFRepository repository = repositoryManager.getRepository();
+		SAREFProject project = repository.getProject();
+		if(repository.getVersions().isEmpty()) {
+			return;
+		}
+		SAREFVersion lastVersion = repository.getVersions().lastEntry().getValue();
+		// redirects core/ to core/v3.1.1/
+		writer.write(HTACCESS_PATH);
+		writer.write(
+				String.format("RewriteRule ^%s/$ %%1%s/ [R=302]\n", project.getPath(), lastVersion.getVersionName()));
+		// redirects core.ttl to core/v1.1.1.ttl
+		writer.write(HTACCESS_PATH);
+		writer.write(String.format("RewriteRule ^%s\\.([^\\./]+)$ %%1%s/%s.$1 [R=302]\n\n", project.getPath(),
+				lastVersion.getVersionPath(), project.getOntologyFileName()));
+		for (SAREFVersion version : repository.getVersions().values()) {
+			// redirects core/v3.1.1/ to core/v3.1.1/saref.conneg
+			writer.write(HTACCESS_PATH);
+			writer.write(String.format("RewriteRule ^%s/$ %%1%s\n", version.getVersionPath(),
+					project.getOntologyFileName()));
+			// redirects core/v1.1.1.ttl to core/v1.1.1/saref.ttl
+			writer.write(HTACCESS_PATH);
+			writer.write(String.format("RewriteRule ^%s\\.([^\\./]+)$ %%1%s/%s.$1  [R=302]\n", version.getVersionPath(),
+					version.getVersionName(), project.getOntologyFileName()));
+			writer.write("\n");
+		}
+		writer.write("\n");
+	}
 }
diff --git a/src/main/java/fr/emse/gitlab/saref/managers/SourcesManager.java b/src/main/java/fr/emse/gitlab/saref/managers/SourcesManager.java
index ebba034da16ef473cff6a8e38dae8ebf36217200..52081c05b565d56bf2d441e5a5fbcc83a535f02a 100644
--- a/src/main/java/fr/emse/gitlab/saref/managers/SourcesManager.java
+++ b/src/main/java/fr/emse/gitlab/saref/managers/SourcesManager.java
@@ -72,7 +72,6 @@ public class SourcesManager extends SAREFErrorLogger {
 	private static final Logger LOG = LoggerFactory.getLogger(SourcesManager.class);
 
 	private static final String CONFIGURATION_FILE_NAME = ".saref-repositories.yml";
-	private static final String NAME_SOURCES = "sources";
 
 	private static enum MESSAGE {
 		versions, yaml_error, yaml_repository, yaml_fetch, yaml_failure, reset_checkout_error, check_versions_error,
@@ -86,11 +85,11 @@ public class SourcesManager extends SAREFErrorLogger {
 
 	public SourcesManager(SAREFPipeline pipeline, Logger errorLogger) {
 		super(pipeline, errorLogger);
-		this.sourcesDir = new File(pipeline.targetDir, NAME_SOURCES);
+		this.sourcesDir = new File(pipeline.targetDir, SAREF.NAME_SOURCES);
 	}
 	
 	public void initTargetRepositoryManager() throws SAREFPipelineException {
-		if (pipeline.mode == Mode.PORTAL) {
+		if (pipeline.mode == Mode.PRERELEASE_PORTAL || pipeline.mode == Mode.RELEASE_PORTAL) {
 			targetRepositoryManager = null;
 		} else {
 			File directory = pipeline.directory;
@@ -109,7 +108,7 @@ public class SourcesManager extends SAREFErrorLogger {
 	public void fetchRepositories() throws SAREFPipelineException {
 		final File confFile = new File(pipeline.directory, CONFIGURATION_FILE_NAME);
 		if (!confFile.exists()) {
-			if (pipeline.mode == Mode.PORTAL) {
+			if (pipeline.mode == Mode.PRERELEASE_PORTAL || pipeline.mode == Mode.RELEASE_PORTAL) {
 				logError(getMessage(MESSAGE.yaml_error, CONFIGURATION_FILE_NAME));
 			}
 			return;
@@ -318,6 +317,7 @@ public class SourcesManager extends SAREFErrorLogger {
 			if (!pipeline.ignoreTerms) {
 				new TermSiteManager(pipeline, repository).generateSite();
 			}
+			siteManager.generateHtaccess();
 		} else {
 			// Mode is PORTAL. generate for every source
 			for (RepositoryManager repositoryManager : sourcesManagers.values()) {
@@ -393,17 +393,20 @@ public class SourcesManager extends SAREFErrorLogger {
 		return sourcesManagers.get(project);
 	}
 	
-	public Ref getRef(SAREFVersion version, boolean prereleaseOnly) {
+	public Ref getRef(SAREFVersion version) {
 		if(version == null) {
 			return null;
 		}
 		if(version.getReleaseRef() != null) {
 			return version.getReleaseRef();
 		}
+		if(pipeline.mode == Mode.RELEASE_PORTAL) {
+			return null;
+		}
 		if(version.getPrereleaseRef() != null) {
 			return version.getPrereleaseRef();
 		}
-		if(prereleaseOnly) {
+		if(pipeline.mode == Mode.PRERELEASE_PORTAL) {
 			return null;
 		}
 		return version.getDevelopRef();
diff --git a/src/main/resources/cli/helpCmdLineSyntax.txt b/src/main/resources/cli/helpCmdLineSyntax.txt
index b7a823c745127460e87c5aaf338aea62d8289c05..66ddafbb9b582084bd141a6cc44a07126191d444 100644
--- a/src/main/resources/cli/helpCmdLineSyntax.txt
+++ b/src/main/resources/cli/helpCmdLineSyntax.txt
@@ -6,7 +6,8 @@ Runs the SAREF pipeline as specified in Technical Specification:
 <mode> can take the following values:
   develop   Run the SAREF pipeline in relax mode in the target SAREF project
   release   Run the SAREF pipeline in strict mode in the target SAREF project
-  portal    Run the SAREF pipeline in strict mode in all the SAREF projects listed in the `.saref-repositories.yml` file
+  prerelease-portal    Operate a strict check and generate the portal for pre-release or release branches of each source in the configuration file `.saref-repositories.yml`
+  release-portal    Operate a strict check generate the portal for release branches of each source in the configuration file `.saref-repositories.yml`
   clean     Remove all files generated by the previous executions
   help      Displays this message
 
diff --git a/src/main/resources/documentation/footer.rqg b/src/main/resources/documentation/footer.rqg
index 9d9377fdb755722770e3d4d0e9f74ca74516b04f..8a8005c26c1c0b4b4fd436eb8d2173256c69ca78 100644
--- a/src/main/resources/documentation/footer.rqg
+++ b/src/main/resources/documentation/footer.rqg
@@ -29,7 +29,7 @@ TEMPLATE <footer.rqg>( ?pathToStatic , ?isOntologyDocumentation ) {
           <nav class="g-main-nav" role="navigation" data-g-hover-expand="true">
             <ul class="g-toplevel">
               <li class="g-menu-item g-menu-item-type-component g-menu-item-245 g-standard  ">
-                <a class="g-menu-item-container" href="index.php/legal-matters">
+                <a class="g-menu-item-container" href="https://forge.etsi.org/index.php/legal-matters">
                   <span class="g-menu-item-content">
                     <span class="g-menu-item-title">Legal matters</span>
                   </span>
diff --git a/src/main/resources/documentation/header.rqg b/src/main/resources/documentation/header.rqg
index 6147df8839c436e48d0e014e5374fe85788abb49..56284b5c50ca4a9e3099a205524f400134a60820 100644
--- a/src/main/resources/documentation/header.rqg
+++ b/src/main/resources/documentation/header.rqg
@@ -44,7 +44,7 @@ TEMPLATE <head.rqg>( ?before, ?pathToStatic , ?isOntologyDocumentation ) {
   </script>
   <!--[if (gte IE 8)&(lte IE 9)]>
         <script type="text/javascript" src="{ ?pathToStatic }/media/gantry5/assets/js/html5shiv-printshiv.min.js"></script>
-        <link rel="stylesheet" href="media/gantry5/engines/nucleus/css/nucleus-ie9.css" type="text/css"/>
+        <link rel="stylesheet" href="{ ?pathToStatic }/media/gantry5/engines/nucleus/css/nucleus-ie9.css" type="text/css"/>
         <script type="text/javascript" src="{ ?pathToStatic }/media/gantry5/assets/js/matchmedia.polyfill.js"></script>
         <![endif]-->
 
@@ -68,7 +68,7 @@ TEMPLATE <head.rqg>( ?before, ?pathToStatic , ?isOntologyDocumentation ) {
         <div class="g-grid">
           <div class="g-block size-17">
             <div class="g-content g-particle">
-              <a href="" title="" rel="home" class="g-logo g-logo-helium">
+              <a href="https://www.etsi.org/" title="" rel="home" class="g-logo g-logo-helium">
                 <img src="{ ?pathToStatic }/images/logo-l.png" alt="" />
               </a>
             </div>
@@ -80,7 +80,7 @@ TEMPLATE <head.rqg>( ?before, ?pathToStatic , ?isOntologyDocumentation ) {
 
 
                   <li class="g-menu-item g-menu-item-type-component g-menu-item-217 active g-standard  ">
-                    <a class="g-menu-item-container" href="index.html">
+                    <a class="g-menu-item-container" href="/index.html">
                       <span class="g-menu-item-content">
                         <span class="g-menu-item-title">Home</span>
                       </span>
@@ -89,36 +89,28 @@ TEMPLATE <head.rqg>( ?before, ?pathToStatic , ?isOntologyDocumentation ) {
 
 
                   <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
-                    <a class="g-menu-item-container" href="core/">
+                    <a class="g-menu-item-container" href="/core/">
                       <span class="g-menu-item-content">
                         <span class="g-menu-item-title">SAREF core</span>
                       </span>
                     </a>
                   </li>
                   <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
-                    <a class="g-menu-item-container" href="resources.html">
+                    <a class="g-menu-item-container" href="/extensions.html">
                       <span class="g-menu-item-content">
-                        <span class="g-menu-item-title">Resources</span>
+                        <span class="g-menu-item-title">Extensions</span>
                       </span>
                     </a>
                   </li>
 
                   <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
-                    <a class="g-menu-item-container" href="https://forge.etsi.org/gitlab/SAREF/">
+                    <a class="g-menu-item-container" href="/sources/">
                       <span class="g-menu-item-content">
                         <span class="g-menu-item-title">Participate</span>
                       </span>
                     </a>
                   </li>
 
-                  <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
-                    <a class="g-menu-item-container" href="">
-                      <span class="g-menu-item-content">
-                        <span class="g-menu-item-title">About us</span>
-                      </span>
-                    </a>
-                  </li>
-
                   <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
                     <a class="g-menu-item-container" href="https://www.etsi.org/committee/smartm2m">
                       <span class="g-menu-item-content">
diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties
index cfffbba9a49f6e79f67916001e6a0b7a0ba1f957..5fd497ea99208d9fd138ae19a54451897d7838e4 100644
--- a/src/main/resources/log4j.properties
+++ b/src/main/resources/log4j.properties
@@ -10,4 +10,5 @@ log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.Target=System.out
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 #log4j.appender.stdout.layout.ConversionPattern=## %-5p in %c%n%n%m%n%n
-log4j.appender.stdout.layout.ConversionPattern=## %-5p in %c%n%n%m%nIn %C:%L:%M%n%n
+log4j.appender.stdout.layout.ConversionPattern=## %p in %c%n%n%m%n%n
+#In %C:%L:%M%n%n
diff --git a/src/main/resources/messages/SAREF.properties b/src/main/resources/messages/SAREF.properties
index 43a6056e428174538430ae320e08a06f27cce82d..687b5824593e5bacf6ad5c03b3f05456373f488e 100644
--- a/src/main/resources/messages/SAREF.properties
+++ b/src/main/resources/messages/SAREF.properties
@@ -17,8 +17,10 @@ develop=develop
 develop_tooltip=Check a SAREF project under development
 release=release
 release_tooltip=Operate a strict check on a SAREF project on branches develop-vx.y.z, prerelease-vx.y.z, or release-vx.y.z
-portal=portal
-portal_tooltip=Operate a strict check for each source reference in the configuration file .saref-repositories.yml
+prerelease_portal=portal prerelease 
+prerelease_portal_tooltip=Operate a strict check and generate the portal for pre-release or release branches of each source in the configuration file .saref-repositories.yml
+release_portal=portal release 
+release_portal_tooltip=Operate a strict check generate the portal for release branches of each source in the configuration file .saref-repositories.yml
 modes=2. Select the execution mode
 ignoreSite=do not generate the website
 ignoreSite_tooltip=Only generates the report, not the HTML documentation
diff --git a/src/main/resources/messages/SiteManager.properties b/src/main/resources/messages/SiteManager.properties
index 1f006d97dec54e43d0c148f9e0601ba3e5fd2a09..2cac0d9a3763f638c864c0640e63c2df1b95b1a8 100644
--- a/src/main/resources/messages/SiteManager.properties
+++ b/src/main/resources/messages/SiteManager.properties
@@ -1 +1,2 @@
-prepare_error=Failed to clone or pull site repository %s
\ No newline at end of file
+prepare_target_error=Failed to clone or pull site repository %s
+prepare_portal_error=When run in `prerelease-portal` or `release-portal` mode, the pipeline must be run in a directory that contains a directory named `portal`
\ No newline at end of file
diff --git a/src/main/resources/themis/body.html b/src/main/resources/themis/body.html
index 4b203adf2a855d52c37d90b534f67b08f88fb2e2..9d2e2f6e1ea2e6527d7843d11c7e4b9299da204c 100644
--- a/src/main/resources/themis/body.html
+++ b/src/main/resources/themis/body.html
@@ -1,86 +1,108 @@
 <body class="gantry g-helium-style site com_content view-article no-layout no-task dir-ltr itemid-217 outline-19 g-offcanvas-left g-default g-style-preset1">
-<div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">
+  <div id="g-offcanvas" data-g-offcanvas-swipe="1" data-g-offcanvas-css3="1">
     <div class="g-grid">
-        <div class="g-block size-100">
-            <div class="g-content g-particle">
-                <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>
-            </div>
+      <div class="g-block size-100">
+        <div class="g-content g-particle">
+          <div id="g-mobilemenu-container" data-g-menu-breakpoint="48rem"></div>
         </div>
+      </div>
     </div>
-</div>
-<div id="g-page-surround">
-    <div class="g-offcanvas-hide g-offcanvas-toggle" data-offcanvas-toggle-aria-controls="g-offcanvas" aria-expanded="false"><i class="fa fa-fw fa-bars"></i></div>
+  </div>
+  <div id="g-page-surround">
+    <div class="g-offcanvas-hide g-offcanvas-toggle" data-offcanvas-toggle aria-controls="g-offcanvas" aria-expanded="false"><i class="fa fa-fw fa-bars"></i></div>
     <section id="g-navigation">
-        <div class="g-container">
-            <div class="g-grid">
-                <div class="g-block size-17">
-                    <div class="g-content g-particle">
-                        <a href="" title="" rel="home" class="g-logo g-logo-helium">
-                            <img src="../../static/images/logo-l.png" alt="" />
-                        </a>
-                    </div>
-                </div>
-                <div class="g-block size-50">
-                    <div class="g-content g-particle">
-                        <nav class="g-main-nav" role="navigation" data-g-hover-expand="true">
-                            <ul class="g-toplevel">
-                                <li class="g-menu-item g-menu-item-type-component g-menu-item-217 active g-standard">
-                                    <a class="g-menu-item-container" href="index.html"><span class="g-menu-item-content"><span class="g-menu-item-title">Home</span></span></a>
-                                </li>
-                                <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard">
-                                <a class="g-menu-item-container" href="core/"><span class="g-menu-item-content"><span class="g-menu-item-title">SAREF core</span></span></a>
-                                </li>
-                                <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard">
-                                    <a class="g-menu-item-container" href="resources.html"><span class="g-menu-item-content"><span class="g-menu-item-title">Resources</span></span></a>
-                                </li>
-                                <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard">
-                                    <a class="g-menu-item-container" href="https://forge.etsi.org/gitlab/SAREF/"><span class="g-menu-item-content"><span class="g-menu-item-title">Participate</span></span></a>
-                                </li>
-                                <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard">
-                                    <a class="g-menu-item-container" href=""><span class="g-menu-item-content"><span class="g-menu-item-title">About us</span></span></a>
-                                </li>
-                                <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard">
-                                    <a class="g-menu-item-container" href="https://www.etsi.org/committee/smartm2m"><span class="g-menu-item-content"><span class="g-menu-item-title">SmartM2M</span></span></a>
-                                </li>
-                            </ul>
-                        </nav>
-                    </div>
-                </div>
-                <div class="g-block g-social-header size-33">
-                    <div class="g-content g-particle">
-                        <div class="g-social">
-                            <a target="_blank" href="https://twitter.com/ETSI_STANDARDS" title="" aria-label="">
-                                <span class="fa fa-twitter fa-fw"></span>
-                                <span class="g-social-text"></span>
-                            </a>
-                            <a target="_blank" href="https://www.facebook.com/etsi.standards" title="" aria-label="">
-                                <span class="fa fa-facebook-official"></span>
-                                <span class="g-social-text"></span>
-                            </a>
-                            <a target="_blank" href="https://www.linkedin.com/company/etsi?trk=biz-companies-cym" title="" aria-label="">
-                                <span class="fa fa-linkedin-square"></span>
-                                <span class="g-social-text"></span>
-                            </a>
-                            <a target="_blank" href="https://www.youtube.com/user/ETSIstandards" title="" aria-label="">
-                                <span class="fa fa-youtube-play"></span>
-                                <span class="g-social-text"></span>
-                            </a>
-                        </div>
-                    </div>
-                </div>
+      <div class="g-container">
+        <div class="g-grid">
+          <div class="g-block size-17">
+            <div class="g-content g-particle">
+              <a href="https://www.etsi.org/" title="" rel="home" class="g-logo g-logo-helium">
+                <img src="../../static/images/logo-l.png" alt="" />
+              </a>
             </div>
+          </div>
+          <div class="g-block size-65">
+            <div class="g-content g-particle">
+              <nav class="g-main-nav" role="navigation" data-g-hover-expand="true">
+                <ul class="g-toplevel">
+
+
+                  <li class="g-menu-item g-menu-item-type-component g-menu-item-217 active g-standard  ">
+                    <a class="g-menu-item-container" href="/index.html">
+                      <span class="g-menu-item-content">
+                        <span class="g-menu-item-title">Home</span>
+                      </span>
+                    </a>
+                  </li>
+
+
+                  <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
+                    <a class="g-menu-item-container" href="/core/">
+                      <span class="g-menu-item-content">
+                        <span class="g-menu-item-title">SAREF core</span>
+                      </span>
+                    </a>
+                  </li>
+                  <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
+                    <a class="g-menu-item-container" href="/extensions.html">
+                      <span class="g-menu-item-content">
+                        <span class="g-menu-item-title">Extensions</span>
+                      </span>
+                    </a>
+                  </li>
+
+                  <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
+                    <a class="g-menu-item-container" href="/sources/">
+                      <span class="g-menu-item-content">
+                        <span class="g-menu-item-title">Participate</span>
+                      </span>
+                    </a>
+                  </li>
+
+                  <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard  ">
+                    <a class="g-menu-item-container" href="https://www.etsi.org/committee/smartm2m">
+                      <span class="g-menu-item-content">
+                        <span class="g-menu-item-title">SmartM2M</span>
+                      </span>
+                    </a>
+                  </li>
+
+                  <li class="g-menu-item g-menu-item-type-component g-menu-item-242 g-standard">
+                    <form method="GET" action="search.html">
+                      <input class="form-control" id="q" name="q" placeholder="&#x1F50E; ex., device"/>
+                    </form>
+                  </li>
+
+                </ul>
+              </nav>
+            </div>
+          </div>
+          <div class="g-block g-social-header size-17">
+            <div class="g-content g-particle">
+              <div class="g-social ">
+                <a target="_blank" href="https://twitter.com/ETSI_STANDARDS" title="" aria-label="">
+                  <span class="fa fa-twitter fa-fw"></span> <span class="g-social-text"></span> </a>
+                <a target="_blank" href="https://www.facebook.com/etsi.standards" title="" aria-label="">
+                  <span class="fa fa-facebook-official"></span> <span class="g-social-text"></span> </a>
+                <a target="_blank" href="https://www.linkedin.com/company/etsi?trk=biz-companies-cym" title="" aria-label="">
+                  <span class="fa fa-linkedin-square"></span> <span class="g-social-text"></span> </a>
+                <a target="_blank" href="https://www.youtube.com/user/ETSIstandards" title="" aria-label="">
+                  <span class="fa fa-youtube-play"></span> <span class="g-social-text"></span> </a>
+              </div>
+            </div>
+          </div>
         </div>
-    </section>
+      </div>
+    </section> 
+
     <header id="g-header">
-        <div class="g-container">
-            <div class="g-block size-100">
-                <div class="g-content g-particle">
-                    <h1><a id="user-content-smart-applications-reference-ontology-and-extensions" class="anchor" href="#smart-applications-reference-ontology-and-extensions" aria-hidden="true">
-                        <span aria-hidden="true" class="octicon octicon-link"></span>
-                    </a>SAREF Pipeline @docType</h1>
-                </div>
-            </div>
+      <div class="g-container">
+        <div class="g-block size-100">
+          <div class="g-content g-particle">
+            <h1 align="center">@docType for @ontologyName</h1>
+          </div>
         </div>
+      </div>
     </header>
 
-    <h1 align="center">@ontologyName</h1>
\ No newline at end of file
+    <section class="g-wrapper">
+      <div class="g-container">
diff --git a/src/main/resources/themis/footer.html b/src/main/resources/themis/footer.html
index f8cf47d768014b7e3c04eb2b4ad90eb537c1a49e..191c89a7979f821eb040d840d12ed18c1a5b9fd3 100644
--- a/src/main/resources/themis/footer.html
+++ b/src/main/resources/themis/footer.html
@@ -1,50 +1,51 @@
-</div>
-<footer id="g-footer">
-    <div class="g-container">
+      </div>
+    </section>
+    <footer id="g-footer">
+      <div class="g-container">
         <div class="g-grid">
-            <div class="g-block size-15">
-                <div class="g-content g-particle">
-                    <a href="https://www.etsi.org/" title="" class="g-logo g-logo-helium">
-                        <img src="https://forge.etsi.org/files/ETSI-Logo_BW_S_Office1.png" alt="" />
-                    </a>
-                </div>
-            </div>
-            <div class="g-block size-20">
-                <div class="g-content g-particle">© ETSI 2020<br /><a style="font-size:10pt; color:white" href="https://www.etsi.org/">Visit ETSI website for more information on Terms &amp; Conditions.</a></div>
+          <div class="g-block size-15">
+            <div class="g-content g-particle">
+              <a href="https://www.etsi.org/" title="" class="g-logo g-logo-helium">
+                <img src="https://forge.etsi.org/files/ETSI-Logo_BW_S_Office1.png" alt="" />
+              </a>
             </div>
-            <div class="g-block g-horizontalmenu size-40">
-                <div class="g-content g-particle">
-                    <nav class="g-main-nav" role="navigation" data-g-hover-expand="true">
-                        <ul class="g-toplevel">
-                            <li class="g-menu-item g-menu-item-type-component g-menu-item-245 g-standard  ">
-                                <a class="g-menu-item-container" href="index.php/legal-matters">
-                    <span class="g-menu-item-content">
-                    <span class="g-menu-item-title">Legal matters</span>
-                    </span>
-                                </a>
-                            </li>
-                            <li class="g-menu-item g-menu-item-type-url g-menu-item-247 g-standard  ">
-                                <a class="g-menu-item-container" href="mailto:cti_support@etsi.org?subject=[SAREF]">
-                    <span class="g-menu-item-content">
-                    <span class="g-menu-item-title">Contact &amp; Support</span>
-                    </span>
-                                </a>
-                            </li>
-                        </ul>
-                    </nav>
-                </div>
+          </div>
+          <div class="g-block size-20">
+            <div class="g-content g-particle">© ETSI 2020<br /><a style="font-size:10pt; color:white" href="https://www.etsi.org/">Visit ETSI website for more information on Terms & Conditions.</a></div>
+          </div>
+          <div class="g-block g-horizontalmenu size-40">
+            <div class="g-content g-particle">
+              <nav class="g-main-nav" role="navigation" data-g-hover-expand="true">
+                <ul class="g-toplevel">
+                  <li class="g-menu-item g-menu-item-type-component g-menu-item-245 g-standard  ">
+                    <a class="g-menu-item-container" href="https://forge.etsi.org/index.php/legal-matters">
+                      <span class="g-menu-item-content">
+                        <span class="g-menu-item-title">Legal matters</span>
+                      </span>
+                    </a>
+                  </li>
+                  <li class="g-menu-item g-menu-item-type-url g-menu-item-247 g-standard  ">
+                    <a class="g-menu-item-container" href="mailto:cti_support@etsi.org?subject=[SAREF]">
+                      <span class="g-menu-item-content">
+                        <span class="g-menu-item-title">Contact &amp; Support</span>
+                      </span>
+                    </a>
+                  </li>
+                </ul>
+              </nav>
             </div>
-            <div class="g-block size-25">
-                <div class="g-content g-particle">
-                    <div class="">
-                        <div class="g-totop">
-                            <a href="#" id="g-totop" rel="nofollow">Back to top <i class="fa fa-chevron-up fa-fw"></i></a>
-                        </div>
-                    </div>
+          </div>
+          <div class="g-block size-25">
+            <div class="g-content g-particle">
+              <div class="">
+                <div class="g-totop">
+                  <a href="#" id="g-totop" rel="nofollow">Back to top <i class="fa fa-chevron-up fa-fw"></i></a>
                 </div>
+              </div>
             </div>
+          </div>
         </div>
-    </div>
-</footer>
-</body>
+      </div>
+    </footer>
+  </body>
 </html>
\ No newline at end of file
diff --git a/src/main/resources/themis/header.html b/src/main/resources/themis/header.html
index 78312de21b28153caac9c18d1229be6f662280a6..1c18fdfab3da3ca08d0250cbb1e6ab264e9e67bc 100644
--- a/src/main/resources/themis/header.html
+++ b/src/main/resources/themis/header.html
@@ -1,33 +1,39 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
-    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
-    <meta charset="utf-8" />
-    <meta name="generator" content="SPARQL-Generate" />
-    <title>SAREF pipeline report</title>
-    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"/>
-    <link href="../../static/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
-    <link href="../../static/media/gantry5/assets/css/font-awesome.min.css" rel="stylesheet" />
-    <link href="../../static/media/gantry5/engines/nucleus/css-compiled/nucleus.css" rel="stylesheet" />
-    <link href="../../static/templates/g5_helium/custom/css-compiled/helium_19.css" rel="stylesheet" />
-    <link href="../../static/media/gantry5/assets/css/bootstrap-gantry.css" rel="stylesheet" />
-    <link href="../../static/media/gantry5/engines/nucleus/css-compiled/joomla.css" rel="stylesheet" />
-    <link href="../../static/media/jui/css/icomoon.css" rel="stylesheet" />
-    <link href="../../static/templates/g5_helium/custom/css-compiled/helium-joomla_19.css" rel="stylesheet" />
-    <link href="../../static/templates/g5_helium/custom/css-compiled/custom_19.css" rel="stylesheet" />
-    <link href="../../static/jqtree/jqtree.css" rel="stylesheet"/>
-    <script src="../../static/templates/g5_helium/js/jui/jquery.min.js?06eedc97766b70aa1fa0e80231495faa"></script>
-    <script src="../../static/media/jui/js/jquery-noconflict.js?06eedc97766b70aa1fa0e80231495faa"></script>
-    <script src="../../static/media/jui/js/jquery-migrate.min.js?06eedc97766b70aa1fa0e80231495faa"></script>
-    <script src="../../static/media/system/js/caption.js?06eedc97766b70aa1fa0e80231495faa"></script>
-    <script src="../../static/media/jui/js/bootstrap.min.js?06eedc97766b70aa1fa0e80231495faa"></script>
-    <script src="../../static/templates/g5_helium/js/juitabs.js"></script>
-    <script>
-        jQuery(window).on('load', function() {
-            new JCaption('img.caption');
-        });
-    </script>
-    <title>@ontologyName</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+  <meta charset="utf-8" />
+  <title>@ontologyName</title>
+  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
+  <link href="../../static/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon" />
+  <link href="../../static/media/gantry5/assets/css/font-awesome.min.css" rel="stylesheet" />
+  <link href="../../static/media/gantry5/engines/nucleus/css-compiled/nucleus.css" rel="stylesheet" />
+  <link href="../../static/templates/g5_helium/custom/css-compiled/helium_19.css" rel="stylesheet" />
+  <link href="../../static/media/gantry5/assets/css/bootstrap-gantry.css" rel="stylesheet" />
+  <link href="../../static/media/gantry5/engines/nucleus/css-compiled/joomla.css" rel="stylesheet" />
+  <link href="../../static/media/jui/css/icomoon.css" rel="stylesheet" />
+  <link href="../../static/templates/g5_helium/custom/css-compiled/helium-joomla_19.css" rel="stylesheet" />
+  <link href="../../static/templates/g5_helium/custom/css-compiled/custom_19.css" rel="stylesheet" />
+  
+  <link href="../../static/jqtree/jqtree.css" rel="stylesheet">
+  <script src="../../static/templates/g5_helium/js/jui/jquery.min.js?06eedc97766b70aa1fa0e80231495faa"></script>
+  <script src="../../static/media/jui/js/jquery-noconflict.js?06eedc97766b70aa1fa0e80231495faa"></script>
+  <script src="../../static/media/jui/js/jquery-migrate.min.js?06eedc97766b70aa1fa0e80231495faa"></script>
+  <script src="../../static/media/system/js/caption.js?06eedc97766b70aa1fa0e80231495faa"></script>
+  <script src="../../static/media/jui/js/bootstrap.min.js?06eedc97766b70aa1fa0e80231495faa"></script>
+  <script src="../../static/templates/g5_helium/js/juitabs.js"></script>
+
+  <script>
+    jQuery(window).on('load', function() {
+      new JCaption('img.caption');
+    });
+  </script>
+  <!--[if (gte IE 8)&(lte IE 9)]>
+        <script type="text/javascript" src="../../static/media/gantry5/assets/js/html5shiv-printshiv.min.js"></script>
+        <link rel="stylesheet" href="../../static/media/gantry5/engines/nucleus/css/nucleus-ie9.css" type="text/css"/>
+        <script type="text/javascript" src="../../static/media/gantry5/assets/js/matchmedia.polyfill.js"></script>
+        <![endif]-->
+
     <base href="@href" />
 </head>
\ No newline at end of file