Köszi, de a cache csak példa volt.
Egy szoftveres megoldást keresek az oldalak AMP változatának elkészítésére.
Printable View
Mondok egy nagyon egyszerű hiba lehetőséget. Én elsőre úgy fognék bele, hogy egy DOm parserral felbontanám az egész oldalt elemeire és újra felépíteném. A cache sem gond, mert ajaxxal a háttérben végezném el, szóval még azt az egyetlen renderelési időt sem érezné meg a látogató, de nem is egy tetem idő amúgy.
A gond ott van, hogy abban az esetben, ha nincs valami lezárva, el van írva egy tag, stb... Már sok hibalehetőség születik. Másfelől valahogyan definiálni kéne, hogy mi kerülhet ki a lapról és minek kell maradnia. És ami marad ott számít-e valamilyen sorrend. Pl egy Bootstrap, Semantic UI, stb... CSS frameworkok esetében még könnyen megoldható, de ahol csak üljünk neki a kódnak és lesz belőle valami típusú oldalaknál lehetnek ebből gondok.
De lehet rosszul közelítem meg a dolgot :)
A wordpress verzió hogyan működik?
Lesz@rja a tartalmat?
Amúgy nem hiszem, hogy a lezáratlan tagekel foglalkozni kell. Egyszerűen csak vannak, amiket nem használhatsz és van, amit máshogy kell használnod. Simán kicseréled és kész
A formázást egyszerűen kiszeded:
A html tartalom sem bonyolult:HTML kód:<style amp-custom>
/* any custom style goes here */
body {
background-color: white;
}
amp-img {
background-color: gray;
border: 1px solid black;
}
</style>
img helyett amp-img
iframe helyett amp-iframe
stb ...
De itt van az összes, hogy mit mire cserélj és mit nem használhatsz.
https://github.com/ampproject/amphtm...html-format.md
Kulon template-be rendereli a tartalmat, es a post/page content-bol kiszedi ami nem odavalo.
Mint ahogy mar masok is irtak fentebb, nem olyan egyszeru ez mint ahogy te gondolod. Pontosabban egyszeru, de nem kivulrol megoldva, mivel nem annyirol van szo hogy bizonyos tag-eket kicserelunk masikra es kesz is. Lehetne mondjuk vele kiserletezni, de kerdes hogy megeri e a befektetett munkat. Pl lenne e fizetokepes kereslet egy service-re ami kiszolgalja az AMP tartalmat egy subdomainrol amit cname-el rairanyitassz a service-re.
Ha jól értem olyan új templatet kell létrehozni vagy előre legenerálni az összes tartalmat, mint a cache esetén. Az összes formázást ki kell venni, hogy csak egy sima fehér háttér maradjon és be kell állítani a megfelelő dolgokat.
A hírek szövegében pedig ki kell cserélni azokat a HTML tageket, amiket nem lehet használni.
Az új temaplate létrehozása okoz problémát, mert ugye ki tudja mit használ az oldal. De azt hittem, hogy csak egy sima üres lapos html-re kell kicserélni, ami mindig ugyan úgy néz ki. Gondolom nincsenek menüpontok sem csak maga a tartalom.
A nehezebb rész az adatbázisból jövő változó tartalom, mert ott előre nem tudjuk, hogy milyen html tageket használtak.
Vagyis lesz egy domain.hu/szuper-hir, meg egy domain.hu/amp/szuperhir.html
A kettő tartalom között az a különbség, hogy az amp verzióban szinte semmilyen stílsus sincs csak egy fehér háttér és az img, iframe stb helyett amp-img, amp-iframe stb van.
Vagy akkor azt sem értem, hogy mit nem értek.
Nem lehet mindenhol ez a template:
HTML kód:<!doctype html>
<html amp lang="en">
<head>
<meta charset="utf-8">
<title>Hello, AMPs</title>
<link rel="canonical" href="http://example.ampproject.org/article-metadata.html" />
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "NewsArticle",
"headline": "Open-source framework for publishing content",
"datePublished": "2015-10-07T12:02:41Z",
"image": [
"logo.jpg"
]
}
</script>
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
<script async src="https://cdn.ampproject.org/v0.js"></script>
</head>
<body>
<h1>[B][ide jön a hír szövege][/B]</h1>
</body>
</html>
A hír szövegéből pedig kivesszük/cseréljük a nem használatos html tageket... nem?
Azt nem erted, hogy megbizhatoan nehez megallapitani hogy mi a lenyegi tartalom az oldalon. Melyik elem a navigacio, a cikk tartalma, a kommentek, esetleg bannerek, stb. A wordpressnel ez egyszeru, mert a kulon amp templateben feldolgozza a post record-ot.
Kb ugy kepzeld ezt el, mintha egy rss feed-et kellene kivulrol generalni. Nehez lenne kinyerni a teljes oldal tartalmabol az erdemi reszeket. Nem lehetetlen, de hogy mindenhol megbizhatoan mukodjon, az nem egyszeru.
Elméletben megkönnyítené igen, gyakorlatban viszont kivitelezhetetlen, hogy minden weboldal a világon ugyan olyan adatbázis szerkezettel rendelkezzen. Vagyis minden egyedi rendszer esetén egyedi lekérdezések kellenek. Ezért nehéz univerzális megoldást mondani erre.