mirror of
https://github.com/trambarhq/relaks-wordpress-example.git
synced 2025-09-08 23:20:40 +02:00
@@ -128,14 +128,14 @@ async function handlePurgeRequest(req, res) {
|
|||||||
// verify that require is coming from WordPress
|
// verify that require is coming from WordPress
|
||||||
let remoteIP = req.connection.remoteAddress;
|
let remoteIP = req.connection.remoteAddress;
|
||||||
res.end();
|
res.end();
|
||||||
let wordpressIP = await dnsCache.lookupAsync(WORDPRESS_HOST.replace(/^https?:\/\//));
|
let wordpressIP = await dnsCache.lookupAsync(WORDPRESS_HOST.replace(/^https?:\/\//, ''));
|
||||||
if (remoteIP !== `::ffff:${wordpressIP}`) {
|
if (remoteIP !== `::ffff:${wordpressIP}`) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let url = req.url;
|
let url = req.url;
|
||||||
let method = req.headers['x-purge-method'];
|
let method = req.headers['x-purge-method'];
|
||||||
if (method === 'regex' && url === '.*') {
|
if (method === 'regex' && url === '/.*') {
|
||||||
pageDependencies = {};
|
pageDependencies = {};
|
||||||
await NginxCache.purge(/.*/);
|
await NginxCache.purge(/.*/);
|
||||||
} else if (method === 'default') {
|
} else if (method === 'default') {
|
||||||
|
@@ -84,6 +84,7 @@ class Route {
|
|||||||
let matchLink = (obj) => {
|
let matchLink = (obj) => {
|
||||||
return _.trimEnd(obj.link, '/') === link;
|
return _.trimEnd(obj.link, '/') === link;
|
||||||
};
|
};
|
||||||
|
let slugs = _.filter(_.split(path, '/'));
|
||||||
|
|
||||||
// see if it's a search
|
// see if it's a search
|
||||||
let search = query.s;
|
let search = query.s;
|
||||||
@@ -97,14 +98,23 @@ class Route {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// see if it's pointing to an archive
|
// see if it's pointing to an archive
|
||||||
let date = findDate(path);
|
if (slugs[0] === 'date' && /^\d+$/.test(slugs[1]) && /^\d+$/.test(slugs[2]) && slugs.length == 3) {
|
||||||
if (date) {
|
let date = {
|
||||||
|
year: parseInt(slugs[1]),
|
||||||
|
month: parseInt(slugs[2]),
|
||||||
|
};
|
||||||
|
return { pageType: 'archive', date, siteURL };
|
||||||
|
} else if (/^\d+$/.test(slugs[0]) && /^\d+$/.test(slugs[1]) && slugs.length == 2) {
|
||||||
|
let date = {
|
||||||
|
year: parseInt(slugs[0]),
|
||||||
|
month: parseInt(slugs[1]),
|
||||||
|
};
|
||||||
return { pageType: 'archive', date, siteURL };
|
return { pageType: 'archive', date, siteURL };
|
||||||
}
|
}
|
||||||
|
|
||||||
// see if it's pointing to a post by ID
|
// see if it's pointing to a post by ID
|
||||||
let postID = findPostID(path);
|
if (slugs[0] === 'archives' && /^\d+$/.test(slugs[1])) {
|
||||||
if (postID) {
|
let postID = parseInt(slugs[1]);
|
||||||
let post = await wp.fetchPost(postID);
|
let post = await wp.fetchPost(postID);
|
||||||
if (post) {
|
if (post) {
|
||||||
return { pageType: 'post', postSlug: post.slug, siteURL };
|
return { pageType: 'post', postSlug: post.slug, siteURL };
|
||||||
@@ -127,16 +137,14 @@ class Route {
|
|||||||
|
|
||||||
// see if it's pointing to a popular tag
|
// see if it's pointing to a popular tag
|
||||||
let topTags = await wp.fetchTopTags();
|
let topTags = await wp.fetchTopTags();
|
||||||
let tag = _.find(topTags, matchLink);
|
let topTag = _.find(topTags, matchLink);
|
||||||
if (tag) {
|
if (topTag) {
|
||||||
return { pageType: 'tag', tagSlug: tag.slug, siteURL };
|
return { pageType: 'tag', tagSlug: topTag.slug, siteURL };
|
||||||
}
|
}
|
||||||
|
|
||||||
// see if it's pointing to a not-so popular tag
|
// see if it's pointing to a not-so popular tag
|
||||||
let slugs = _.filter(_.split(path, '/'));
|
if (slugs[0] === 'tag' && slugs.length === 2) {
|
||||||
if (slugs.length >= 2 && _.includes(slugs, 'tag')) {
|
let tag = await wp.fetchTag(slugs[1]);
|
||||||
let tagSlug = _.last(slugs);
|
|
||||||
let tag = await wp.fetchTag(tagSlug);
|
|
||||||
if (tag) {
|
if (tag) {
|
||||||
return { pageType: 'tag', tagSlug: tag.slug, siteURL };
|
return { pageType: 'tag', tagSlug: tag.slug, siteURL };
|
||||||
}
|
}
|
||||||
@@ -155,7 +163,7 @@ class Route {
|
|||||||
|
|
||||||
// see if it's pointing to a tag when no prefix is used
|
// see if it's pointing to a tag when no prefix is used
|
||||||
let tagSlug = _.last(slugs);
|
let tagSlug = _.last(slugs);
|
||||||
tag = await wp.fetchTag(tagSlug);
|
let tag = await wp.fetchTag(tagSlug);
|
||||||
if (tag) {
|
if (tag) {
|
||||||
return { pageType: 'tag', tagSlug: tag.slug, siteURL };
|
return { pageType: 'tag', tagSlug: tag.slug, siteURL };
|
||||||
}
|
}
|
||||||
@@ -228,28 +236,6 @@ class Route {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function findDate(path) {
|
|
||||||
if (_.startsWith(path, '/date/')) {
|
|
||||||
path = path.substr(5);
|
|
||||||
}
|
|
||||||
let m = /^\/(\d{4})\/(\d+)\/?/.exec(path);
|
|
||||||
if (m) {
|
|
||||||
return {
|
|
||||||
year: parseInt(m[1]),
|
|
||||||
month: parseInt(m[2]),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function findPostID(path) {
|
|
||||||
if (_.startsWith(path, '/archives/')) {
|
|
||||||
let id = parseInt(path.substr(10));
|
|
||||||
if (id === id) {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let routes = {
|
let routes = {
|
||||||
'page': { path: '*' },
|
'page': { path: '*' },
|
||||||
};
|
};
|
||||||
|
@@ -328,7 +328,7 @@ A {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.comments {
|
.comments {
|
||||||
font-size: 0.9em;
|
font-size: 0.9rem;
|
||||||
padding-left: 1.5em;
|
padding-left: 1.5em;
|
||||||
|
|
||||||
.commenter {
|
.commenter {
|
||||||
|
@@ -12,7 +12,7 @@ var ExtractTextPlugin = require("extract-text-webpack-plugin");
|
|||||||
var EVENT = process.env.npm_lifecycle_event;
|
var EVENT = process.env.npm_lifecycle_event;
|
||||||
var BUILD = (EVENT === 'build') ? 'production' : 'development';
|
var BUILD = (EVENT === 'build') ? 'production' : 'development';
|
||||||
var IS_DEV_SERVER = process.argv.find((arg) => { return arg.includes('webpack-dev-server') });
|
var IS_DEV_SERVER = process.argv.find((arg) => { return arg.includes('webpack-dev-server') });
|
||||||
var DEV_DATA_HOST = (IS_DEV_SERVER) ? 'http://192.168.0.56:8000' : undefined;
|
var DEV_DATA_HOST = (IS_DEV_SERVER) ? 'http://localhost:8000' : undefined;
|
||||||
var CORDOVA_DATA_HOST = process.env.CORDOVA_DATA_HOST;
|
var CORDOVA_DATA_HOST = process.env.CORDOVA_DATA_HOST;
|
||||||
var BASE_PATH = '/';
|
var BASE_PATH = '/';
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user