Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
Commit e03fc782 authored by Pierre Jarriges's avatar Pierre Jarriges
Browse files

wip:article-view.js

parent 8cec0869
No related branches found
No related tags found
1 merge request!1Dev
......@@ -4,22 +4,20 @@
<head>
<meta charset="utf-8" />
<title>Kuadrado Software | Jeux</title>
<meta name="description"
content="Création de jeux vidéos indépendants. Jeux web, PC et projets en cours de développement" />
<meta name="description" content="Création de jeux vidéos indépendants. Jeux web, PC et projets en cours de développement"/>
<meta name="author" content="Kuadrado Software" />
<meta name="image" content="https://kuadrado-software.fr/assets/images/game_controller.png" />
<meta name="image" content="https://kuadrado-software.fr/assets/images/game_controller.png"/>
<!-- Open Graph Protocol meta data -->
<meta property="og:title" content="Kuadrado Software | Jeux" />
<meta property="og:description"
content="Création de jeux vidéos indépendants. Jeux web, PC et projets en cours de développement" />
<meta property="og:title" content="Kuadrado Software | Jeux"/>
<meta property="og:description" content="Création de jeux vidéos indépendants. Jeux web, PC et projets en cours de développement"/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://kuadrado-software.fr/games" />
<meta property="og:image" content="https://kuadrado-software.fr/assets/images/game_controller.png" />
<meta property="og:image" content="https://kuadrado-software.fr/assets/images/game_studio_banner.png" />
<meta property="og:image" content="https://kuadrado-software.fr/assets/images/popularization_banner.png" />
<meta property="twitter:image" content="https://kuadrado-software.fr/assets/images/game_controller.png" />
<meta property="og:locale" content="fr_FR" />
<meta property="og:url" content="https://kuadrado-software.fr/games"/>
<meta property="og:image" content="https://kuadrado-software.fr/assets/images/game_controller.png"/>
<meta property="og:image" content="https://kuadrado-software.fr/assets/images/game_studio_banner.png"/>
<meta property="og:image" content="https://kuadrado-software.fr/assets/images/popularization_banner.png"/>
<meta property="twitter:image" content="https://kuadrado-software.fr/assets/images/game_controller.png"/>
<meta property="og:locale" content="fr_FR"/>
<meta property="og:site_name" content="Kuadrado Software" />
<!-- English translation not ready yet -->
......@@ -28,8 +26,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link href="/style/style.css" rel="stylesheet" />
<script
type="application/ld+json">{"@context":"https://schema.org","type":"WebPage","description":"Création de jeux vidéos indépendants. Jeux web, PC et projets en cours de développement","image":["https://kuadrado-software.fr/assets/images/game_controller.svg","https://kuadrado-software.fr/assets/images/game_controller.png"],"keywords":"gamedev, pixelart, jeux vidéo, création, video games, indépendants, indie gamedev","name":"Kuadrado Software - Jeux","url":"https://kuadrado-software.fr/games"}</script>
<script type="application/ld+json">{"@context":"https://schema.org","type":"WebPage","description":"Création de jeux vidéos indépendants. Jeux web, PC et projets en cours de développement","image":["https://kuadrado-software.fr/assets/images/game_controller.svg","https://kuadrado-software.fr/assets/images/game_controller.png"],"keywords":"gamedev, pixelart, jeux vidéo, création, video games, indépendants, indie gamedev","name":"Kuadrado Software - Jeux","url":"https://kuadrado-software.fr/games"}</script>
</head>
<!-- The vocab attribute defines the standard vocabulary used for RDFa standard.
The DOM may contain properties such as "typeof" and "property" accordinly to the schema.org vocabulary -->
......
......@@ -15,7 +15,6 @@ enum UpdateSitemapMode {
CreateUrl,
DeleteUrl,
}
pub fn create_static_view(app_state: &AppState, article: &Article) -> Result<(), String> {
let view_path = app_state
.env
......@@ -48,27 +47,37 @@ pub fn create_static_view(app_state: &AppState, article: &Article) -> Result<(),
art_image_uri = format!("/assets/images/{}", art_image_uri);
}
let art_json = serde_json::to_string(&article).unwrap();
let (locale, title, subtitle, description) = {
(
&article.locale,
&article.title,
&article.subtitle,
&article.metadata.description,
)
};
let html = format!(
"
<html lang='{}'>
<html lang='{locale}'>
<head>
<meta charset='UTF-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<meta name='author' content='Kuadrado Software' />
<meta name='image' content='{}'/>
<meta name='description' content='{}'>
<meta name='image' content='{art_image_uri}'/>
<meta name='description' content='{description}'>
<link rel='icon' type='image/svg+xml' href='/favicon.svg' />
<title>{}</title>
<title>{title}</title>
<link href='/style/style.css' rel='stylesheet' />
</head>
<body>
<div>{}<div>
<main data='{art_json}'></main>
<h1 style='visibility:hidden;'>{title}</h1>
<h2 style='visibility:hidden;'>{subtitle}</h2>
</body>
<script type='text/javascript' src='/games/view.js'></script>
<script type='text/javascript' src='/article-view.js'></script>
</html>
",
article.locale, art_image_uri, article.metadata.description, article.title, article.body,
"
);
let f_path = d_path.join("index.html");
......
......@@ -12,7 +12,10 @@ const _path = require("path");
const parent_dir = _path.join(_dir, "..");
// Handle home page
bundle(`${_dir}/src/main.js`, `${parent_dir}/public/main.js`, { minify: build_minified })
bundle(`${_dir}/src/main.js`, `${parent_dir}/public/main.js`, { minify: build_minified });
// Handle article-view script
bundle(`${_dir}/src/article-view.js`, `${parent_dir}/public/article-view.js`, { minify: build_minified });
// Handle subpages
function getPageHtml(pageName, pageMeta) {
......@@ -196,7 +199,7 @@ function createPages(rootdir, destdir) {
createPages(`${fPath}/subpages`, targetDirPath);
} else {
for (const d of fs.readdirSync(targetDirPath).filter(f => {
return fs.statSync(`${targetDirPath}/${f}`).isDirectory()
return fs.statSync(`${targetDirPath}/${f}`).isDirectory() && !build_conf.protected_dirs.includes(f);
})) {
deletePageDirectory(`${targetDirPath}/${d}`)
}
......
module.exports = {
build: {
protected_dirs: ["assets", "style", "views", "standard"],
protected_dirs: ["assets", "style", "views", "standard", "view"],
default_meta_keys: ["title", "description", "image", "open_graph", "json_ld"],
},
};
"use strict";
const WebPage = require("./lib/web-page");
const runPage = require("./run-page");
class ArticlePage extends WebPage {
constructor() {
super({ id: "article-page" });
this.article = JSON.parse(document.querySelector("main").getAttribute("data"))
}
render() {
return {
tag: "h1",
contents: this.article.title,
}
}
}
runPage(ArticlePage);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment