nearly there
19
.build.yml
Normal file
|
@ -0,0 +1,19 @@
|
|||
image: alpine/edge
|
||||
packages:
|
||||
- nodejs
|
||||
sources:
|
||||
- https://git.sr.ht/~stfn/vegan-prestwich-11ty
|
||||
secrets:
|
||||
- b56325c2-cd2c-4a22-b5e9-8c43db571721
|
||||
tasks:
|
||||
- setup: |
|
||||
npm install
|
||||
- build: |
|
||||
cd vegan-prestwich
|
||||
npm run build
|
||||
- deploy: |
|
||||
cd vegan-prestwich
|
||||
set +x
|
||||
export NEOCITIES_API_KEY=$(cat ~/.neocities_api_key)
|
||||
set -x
|
||||
neocities push --prune _site
|
47
.eleventy.js
|
@ -1,27 +1,38 @@
|
|||
const fg = require('fast-glob');
|
||||
|
||||
const placeImages = fg.sync(['places/*/*.jpg', '!**/_site']);
|
||||
|
||||
module.exports = function(config) {
|
||||
if (process.env.NOWATCH) {
|
||||
config.setBrowserSyncConfig({
|
||||
snippetOptions: {
|
||||
blacklist: ["**/*.html"],
|
||||
}
|
||||
})
|
||||
// Aliases are in relation to the _includes folder
|
||||
config.addLayoutAlias('default', 'layouts/default.liquid');
|
||||
config.addLayoutAlias('home', 'layouts/home.liquid');
|
||||
config.addLayoutAlias('page', 'layouts/page.liquid');
|
||||
config.addLayoutAlias('place', 'layouts/place.liquid');
|
||||
config.addLayoutAlias('tag', 'layouts/tag.liquid');
|
||||
config.addLayoutAlias('tags', 'layouts/tags.liquid');
|
||||
|
||||
let getAllSorted = (api) => {
|
||||
return api.getAll().sort((a, b) => { a.name - b.name });
|
||||
}
|
||||
|
||||
// Aliases are in relation to the _includes folder
|
||||
config.addLayoutAlias('default', 'layouts/default.html');
|
||||
config.addLayoutAlias('home', 'layouts/home.html');
|
||||
config.addLayoutAlias('page', 'layouts/page.html');
|
||||
config.addLayoutAlias('place', 'layouts/place.html');
|
||||
config.addLayoutAlias('tag', 'layouts/tag.html');
|
||||
config.addLayoutAlias('tags', 'layouts/tags.html');
|
||||
config.addCollection("shops", (api) =>
|
||||
getAllSorted(api).filter((a) => a.data.permalink && a.data.shop));
|
||||
|
||||
config.addCollection("restaurants", (api) =>
|
||||
getAllSorted(api).filter((a) => a.data.permalink && a.data.restaurant));
|
||||
|
||||
config.addCollection("deliveries", (api) =>
|
||||
getAllSorted(api).filter((a) => a.data.permalink && a.data.delivery));
|
||||
|
||||
config.addWatchTarget("./style/style.scss");
|
||||
|
||||
config.addCollection("place_images", (collection) => placeImages);;
|
||||
config.addPassthroughCopy("places/*/*.jpg");
|
||||
|
||||
config.addCollection("shops", (api) => api.getAll().filter((a) => a.data.shop));
|
||||
config.addCollection("restaurants", (api) => api.getAll().filter((a) => a.data.restaurant));
|
||||
config.addCollection("deliveries", (api) => api.getAll().filter((a) => a.data.delivery));
|
||||
return {
|
||||
dir: {
|
||||
input: "./", // Equivalent to Jekyll's source property
|
||||
output: "./_site" // Equivalent to Jekyll's destination property
|
||||
input: "./",
|
||||
output: "./_site"
|
||||
}
|
||||
};
|
||||
};
|
3
.gitignore
vendored
|
@ -1,11 +1,10 @@
|
|||
.bundle
|
||||
.DS_Store
|
||||
.jekyll-metadata
|
||||
.sass-cache
|
||||
_site
|
||||
Cache
|
||||
vendor
|
||||
Gemfile.lock
|
||||
.jekyll-cache
|
||||
.eleventy.js.swp
|
||||
.neocities
|
||||
node_modules
|
||||
|
|
3
_deleted_places/_deleted_places.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"permalink": false
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
module.exports = function (arr, key, value) {
|
||||
return arr.filter(item => {
|
||||
const keys = key.split('.');
|
||||
const reduce = keys.reduce((object, key) => {
|
||||
return object[key];
|
||||
}, item);
|
||||
const str = String(reduce);
|
||||
return (str.includes(value) ? item : false);
|
||||
});
|
||||
};
|
||||
|
|
@ -2,17 +2,22 @@
|
|||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
{% capture styles %}
|
||||
{% include "../_site/style/style.css" %}
|
||||
{% endcapture %}
|
||||
<style>
|
||||
{{ styles }}
|
||||
</style>
|
||||
<title>
|
||||
{% if page.metaTitle %}
|
||||
{{ page.metaTitle | escape }}
|
||||
{% else if page.name %}
|
||||
{{ page.name | escape }}, Prestwich
|
||||
{% else if page.title %}
|
||||
{{page.title | escape }}, Prestwich
|
||||
{% if metaTitle %}
|
||||
{{ metaTitle | escape }}
|
||||
{% else if name %}
|
||||
{{ name | escape }}, Prestwich
|
||||
{% else if title %}
|
||||
{{ title | escape }}, Prestwich
|
||||
{% else %}
|
||||
{{ site.title | escape }}
|
||||
{% endif %}
|
||||
</title>
|
||||
<meta name="description" content="{{ page.excerpt | default: site.description | strip_html | truncate: 160 | escape }}">
|
||||
<meta name="description" content="{{ excerpt | default: site.description | strip_html | truncate: 160 | escape }}">
|
||||
</head>
|
||||
|
|
|
@ -16,10 +16,10 @@
|
|||
</span>
|
||||
|
||||
<div class="trigger">
|
||||
{% assign top-links = site.pages | sort: "order" %}
|
||||
{% assign top-links = collections.pages | sort: "order" %}
|
||||
{% for link-page in top-links %}
|
||||
{% if link-page.link-text %}
|
||||
<a class="page-link" href="{{ link-page.url }}">{{ link-page.link-text | escape }}</a>
|
||||
{% if link-page.data.link-text %}
|
||||
<a class="page-link" href="{{ link-page.url }}">{{ link-page.data.link-text | escape }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
|
|
@ -28,9 +28,9 @@ layout: default
|
|||
</div>
|
||||
<p>
|
||||
<strong>Recent updates:</strong>
|
||||
{% assign recently_updated = site.places | sort: "last_modified_at" | reverse | slice: 0, 10 %}
|
||||
{% assign recently_updated = collections.places | sort: "last_modified_at" | reverse | slice: 0, 10 %}
|
||||
{% for place in recently_updated %}
|
||||
<a href="{{ place.url }}">{{ place.name | escape }}</a>{% unless forloop.last %}, {% endunless %}
|
||||
<a href="{{ place.url }}">{{ place.data.name | escape }}</a>{% unless forloop.last %}, {% endunless %}
|
||||
{% endfor %}
|
||||
</p>
|
||||
</div>
|
|
@ -1,17 +0,0 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
<h1>{{ page.title | escape }}</h1>
|
||||
|
||||
<div class="content">
|
||||
{{ content }}
|
||||
|
||||
{% if page.show %}
|
||||
<hr>
|
||||
{% include "filtered-places.html", show=page.show, detailed=true %}
|
||||
<hr>
|
||||
{% endif %}
|
||||
|
||||
{% include "contribute.html" %}
|
||||
</div>
|
17
_includes/layouts/page.liquid
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
<h1>{{ title | escape }}</h1>
|
||||
|
||||
<div class="content">
|
||||
{{ content }}
|
||||
{{ foo | json }}
|
||||
{% if show %}
|
||||
<hr>
|
||||
{% include "filtered-places", show: collections[show], detailed: true %}
|
||||
<hr>
|
||||
{% endif %}
|
||||
|
||||
{% include "contribute.html" %}
|
||||
</div>
|
|
@ -1,43 +0,0 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% include "place-json-ld.html" %}
|
||||
|
||||
<h1>{{ page.name | escape }}</h1>
|
||||
|
||||
<div class="content">
|
||||
{% include "place-meta.html" %}
|
||||
{{ content }}
|
||||
|
||||
<p>
|
||||
<small>
|
||||
<strong>Last Updated:</strong> {{ page.last_modified_at | date: "%-d %B %Y" }}
|
||||
</small>
|
||||
</p>
|
||||
|
||||
<div class="place-images">
|
||||
{% assign place_images = site.static_files | where: "place_image", true | reverse %}
|
||||
{% for image in place_images %}
|
||||
{% assign end_image_index = image.path.size | minus: 22 %}
|
||||
{% assign search_image = image.path | slice: 15, end_image_index %}
|
||||
|
||||
{% assign end_page_index = page.path.size | minus: 11 %}
|
||||
{% assign search_page = page.path | slice: 8, end_page_index %}
|
||||
|
||||
{% if search_image == search_page %}
|
||||
<a href="{{image.path}}" style="background-image: url('{{ image.path }}')" title="{{ page.title }}"></a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<small class="place-tags">
|
||||
Tags:
|
||||
{% assign tags = page.tags | sort %}
|
||||
{% for tag in tags %}{% unless forloop.first %}, {% endunless %}
|
||||
{% assign tag_page = site.tags | where: "slug", tag | first %}
|
||||
{% if tag_page %}<a href="{{ tag_page.url }}">{% endif %}{{ tag }}{% if tag_page %}</a>{% endif %}{% endfor %}
|
||||
</small>
|
||||
</p>
|
||||
</div>
|
45
_includes/layouts/place.liquid
Normal file
|
@ -0,0 +1,45 @@
|
|||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% include "place-json-ld.html" %}
|
||||
|
||||
<h1>{{ name | escape }}</h1>
|
||||
|
||||
<div class="content">
|
||||
{% include "place-meta.html" %}
|
||||
{{ content }}
|
||||
|
||||
<p>
|
||||
<small>
|
||||
<strong>Last Updated:</strong> {{ last_modified_at | date: "%-d %B %Y" }}
|
||||
</small>
|
||||
</p>
|
||||
|
||||
|
||||
<div class="place-images">
|
||||
{% assign place_images = collections.place_images | reverse %}
|
||||
{% for image in place_images %}
|
||||
{% capture absolute_url %}/{{image}}{% endcapture %}
|
||||
{% assign folder_size = absolute_url.size | minus: 6 %}
|
||||
{% capture absolute_folder %}{{ absolute_url | slice: 0, folder_size }}{% endcapture %}
|
||||
{% if absolute_folder == page.url %}
|
||||
<a
|
||||
href="{{absolute_url}}"
|
||||
style="background-image: url('{{ absolute_url }}')"
|
||||
title="{{ title }}"
|
||||
></a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<p>
|
||||
<small class="place-tags">
|
||||
Tags:
|
||||
{% assign tags = tags | sort | remove: "places" %}
|
||||
{% for tag in tags %}{% unless forloop.first %}, {% endunless %}
|
||||
{% assign tag_page = site.tags | where: "slug", tag | first %}
|
||||
{% if tag_page %}<a href="{{ tag_page.url }}">{% endif %}{{ tag }}{% if tag_page %}</a>{% endif %}{% endfor %}
|
||||
</small>
|
||||
</p>
|
||||
</div>
|
|
@ -2,13 +2,13 @@
|
|||
layout: default
|
||||
---
|
||||
|
||||
<h1>{{ page.title | escape }}</h1>
|
||||
<h1>{{ title | escape }}</h1>
|
||||
|
||||
<div class="content">
|
||||
{{ content }}
|
||||
|
||||
{% if chains.size > 0 %}
|
||||
<h2>{{ page.non_chain_intro }}</h2>
|
||||
<h2>{{ non_chain_intro }}</h2>
|
||||
{% endif %}
|
||||
|
||||
<ul class="places-list places-list--detailed">
|
||||
|
@ -19,7 +19,7 @@ layout: default
|
|||
|
||||
{% if chains.size > 0 %}
|
||||
|
||||
<h2>{{ page.chain_intro }}</h2>
|
||||
<h2>{{ chain_intro }}</h2>
|
||||
|
||||
<ul class="places-list places-list--detailed">
|
||||
{% for place in collections.restaurants %}
|
|
@ -1,53 +0,0 @@
|
|||
---
|
||||
layout: default
|
||||
title: Tag
|
||||
---
|
||||
|
||||
{{content}}
|
||||
|
||||
<h4>
|
||||
Tag List
|
||||
</h4>
|
||||
|
||||
{% assign rawtags = "" %}
|
||||
{% for place in site.places %}
|
||||
{% assign ttags = place.tags | join:'|' | append:'|' %}
|
||||
{% assign rawtags = rawtags | append:ttags %}
|
||||
{% endfor %}
|
||||
{% assign rawtags = rawtags | split:'|' | sort %}
|
||||
{% assign tags = "" %}
|
||||
{% for tag in rawtags %}
|
||||
{% if tag != "" %}
|
||||
{% if tags == "" %}
|
||||
{% assign tags = tag | split:'|' %}
|
||||
{% endif %}
|
||||
{% unless tags contains tag %}
|
||||
{% assign tags = tags | join:'|' | append:'|' | append:tag | split:'|' %}
|
||||
{% endunless %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<div class="columns">
|
||||
<ul>
|
||||
{% for tag in tags %}
|
||||
{% assign tag_page = null %}
|
||||
{% for col_tag in collections.tags %}
|
||||
{% if col_tag.name == tag %}
|
||||
{% assign tag_page = col_tag %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<li class="avoid-break">
|
||||
{% if tag_page %}<a href="{{ tag_page.url }}">{% endif %}
|
||||
{{ tag | capitalize }}
|
||||
{% if tag_page %}</a>{% endif %}
|
||||
<ul class="small">
|
||||
{% for place in site.places %}
|
||||
{% if place.tags contains tag %}
|
||||
{% include filtered-place.html, place=place, detailed=false %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
54
_includes/layouts/tags.liquid
Normal file
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
layout: default
|
||||
title: Tag
|
||||
---
|
||||
|
||||
{{content}}
|
||||
|
||||
<h4>
|
||||
Tag List
|
||||
</h4>
|
||||
|
||||
{% assign rawtags = "" %}
|
||||
{% for place in collections.places %}
|
||||
{% assign ttags = place.data.tags | join:'|' | append:'|' | remove: "places" %}
|
||||
{% assign rawtags = rawtags | append:ttags %}
|
||||
{% endfor %}
|
||||
{% assign rawtags = rawtags | split:'|' | sort %}
|
||||
|
||||
{% assign show_tags = "" %}
|
||||
{% for tag in rawtags %}
|
||||
{% if tag != "" %}
|
||||
{% if show_tags == "" %}
|
||||
{% assign show_tags = tag | split:'|' %}
|
||||
{% endif %}
|
||||
{% unless show_tags contains tag %}
|
||||
{% assign show_tags = show_tags | join:'|' | append:'|' | append:tag | split:'|' %}
|
||||
{% endunless %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
<div class="columns">
|
||||
<ul>
|
||||
{% for tag in show_tags %}
|
||||
{% assign tag_page = null %}
|
||||
{% for col_tag in collections.tag_pages %}
|
||||
{% if col_tag.data.show == tag %}
|
||||
{% assign tag_page = col_tag %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<li class="avoid-break">
|
||||
{% if tag_page != null %}<a href="{{ tag_page.url }}">{% endif %}
|
||||
{{ tag | capitalize }}
|
||||
{% if tag_page %}</a>{% endif %}
|
||||
<ul class="small">
|
||||
{% for place in collections.places %}
|
||||
{% if place.data.tags contains tag %}
|
||||
{% include "filtered-place", place: place, detailed: false %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
|
@ -1,64 +1,64 @@
|
|||
<div class="place-meta">
|
||||
<ul>
|
||||
{% if page.web %}
|
||||
{% if web %}
|
||||
<li>
|
||||
<strong>Web:</strong>
|
||||
<a href="{{ page.web }}">
|
||||
{{ page.web | replace: "https://", "" | replace: "http://", "" | replace: "www.", "" }}
|
||||
<a href="{{ web }}">
|
||||
{{ web | replace: "https://", "" | replace: "http://", "" | replace: "www.", "" }}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if page.address %}
|
||||
<li><strong>Address:</strong> {{ page.address }}</li>
|
||||
{% if address %}
|
||||
<li><strong>Address:</strong> {{ address }}</li>
|
||||
{% endif %}
|
||||
{% if page.postcode %}
|
||||
<li><strong>Postcode:</strong> {{ page.postcode }}</li>
|
||||
{% if postcode %}
|
||||
<li><strong>Postcode:</strong> {{ postcode }}</li>
|
||||
{% endif %}
|
||||
{% if page.phone %}
|
||||
<li><strong>Phone:</strong> <a href="tel:{{ page.phone }}">{{ page.phone }}</a></li>
|
||||
{% if phone %}
|
||||
<li><strong>Phone:</strong> <a href="tel:{{ phone | replace: " ", "" }}">{{ phone }}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% if page.google or page.facebook or page.twitter or page.tripadvisor or page.instagram %}
|
||||
{% if google or facebook or twitter or tripadvisor or instagram %}
|
||||
<hr>
|
||||
<ul>
|
||||
{% if page.google %}
|
||||
<li><strong>Google:</strong> <a href="{{ page.google }}">click here</a></li>
|
||||
{% if google %}
|
||||
<li><strong>Google:</strong> <a href="{{ google }}">click here</a></li>
|
||||
{% endif %}
|
||||
{% if page.facebook %}
|
||||
{% if facebook %}
|
||||
{% capture facebook %}
|
||||
@{{ page.facebook | replace: "https://www.facebook.com/", "" }}
|
||||
@{{ facebook | replace: "https://www.facebook.com/", "" }}
|
||||
{% endcapture %}
|
||||
{% assign stripped_facebook = facebook | replace: "/", "" %}
|
||||
{% if stripped_facebook != facebook %}
|
||||
{% assign facebook = "click here" %}
|
||||
{% endif %}
|
||||
<li><strong>Facebook:</strong> <a href="{{ page.facebook }}">{{ facebook| escape }}</a></li>
|
||||
<li><strong>Facebook:</strong> <a href="{{ facebook }}">{{ facebook| escape }}</a></li>
|
||||
{% endif %}
|
||||
{% if page.instagram %}
|
||||
{% if instagram %}
|
||||
{% capture instagram %}
|
||||
@{{ page.instagram | replace: "https://www.instagram.com/u/", "" | replace: "https://www.instagram.com/", "" }}
|
||||
@{{ instagram | replace: "https://www.instagram.com/u/", "" | replace: "https://www.instagram.com/", "" }}
|
||||
{% endcapture %}
|
||||
{% assign stripped_instagram = instagram | replace: "/", "" %}
|
||||
{% if stripped_instagram != instagram %}
|
||||
{% assign instagram = "click here" %}
|
||||
{% endif %}
|
||||
<li><strong>Instagram:</strong> <a href="{{ page.instagram }}">{{ instagram | escape }}</a></li>
|
||||
<li><strong>Instagram:</strong> <a href="{{ instagram }}">{{ instagram | escape }}</a></li>
|
||||
{% endif %}
|
||||
{% if page.twitter %}
|
||||
<li><strong>Twitter:</strong> <a href="{{ page.twitter }}">@{{ page.twitter | replace: "https://twitter.com/", "" }}</a></li>
|
||||
{% if twitter %}
|
||||
<li><strong>Twitter:</strong> <a href="{{ twitter }}">@{{ twitter | replace: "https://twitter.com/", "" }}</a></li>
|
||||
{% endif %}
|
||||
{% if page.tripadvisor %}
|
||||
<li><strong>TripAdvisor:</strong> <a href="{{ page.tripadvisor }}">click here</a></li>
|
||||
{% if tripadvisor %}
|
||||
<li><strong>TripAdvisor:</strong> <a href="{{ tripadvisor }}">click here</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% if page.times %}
|
||||
{% if times %}
|
||||
<hr>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>Times</strong>
|
||||
<ul class="small">
|
||||
{% for time in page.times %}
|
||||
{% for time in times %}
|
||||
<li>{{ time }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
|
1784
package-lock.json
generated
24
package.json
|
@ -1,5 +1,27 @@
|
|||
{
|
||||
"devDependencies": {
|
||||
"@11ty/eleventy": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@11ty/eleventy": "^1.0.2",
|
||||
"cross-env": "^7.0.3",
|
||||
"fast-glob": "^3.2.12",
|
||||
"lightningcss-cli": "^1.15.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"sass": "^1.54.9"
|
||||
},
|
||||
"scripts": {
|
||||
"watch:sass": "sass --no-source-map --watch style:_site/style",
|
||||
"watch:eleventy": "eleventy --serve",
|
||||
"build:rm": "rm -rf _site",
|
||||
"build:sass": "sass --no-source-map style:_site/style",
|
||||
"build:eleventy": "eleventy",
|
||||
"postbuild": "lightningcss --minify --targets '> 0.25%, not IE 11' style/*.css -o _site/style/*.css",
|
||||
"start": "npm-run-all build:sass --parallel watch:*",
|
||||
"build": "npm-run-all build:rm build:sass build:eleventy"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 0.25%",
|
||||
"not IE 11"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
---
|
||||
layout: page
|
||||
link-text: Delivery / Takeaways
|
||||
title: Vegan Food Delivery in Prestwich
|
||||
metaTitle: Vegan Food Delivery in Prestwich
|
||||
permalink: /food-delivery-takeaways/
|
||||
show: delivery
|
||||
show: deliveries
|
||||
order: 2
|
||||
---
|
||||
|
4
pages/pages.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"tags": [ "pages" ],
|
||||
"layout": "page"
|
||||
}
|
|
@ -4,7 +4,7 @@ link-text: Restaurants
|
|||
title: Restaurants
|
||||
metaTitle: Vegan Restaurants in Prestwich
|
||||
permalink: /restaurants/
|
||||
show: restaurant
|
||||
show: restaurants
|
||||
---
|
||||
|
||||
Places you can sit down for a tasty vegan meal in Prestwich - click the business names for more info.
|
|
@ -4,7 +4,7 @@ link-text: Shops
|
|||
title: Shops Selling Vegan Stuff
|
||||
metaTitle: Vegan Options in Shops in Prestwich
|
||||
permalink: /shops/
|
||||
show: shop
|
||||
show: shops
|
||||
order: 3
|
||||
---
|
||||
|
|
@ -3,6 +3,7 @@ layout: page
|
|||
title: 7 Tips for Making Your Restaurant Vegan-Friendly
|
||||
metaTitle: How to make your cafe or restaurant attractive to vegan customers
|
||||
order: 0
|
||||
permalink: "/vegan-business-advice/"
|
||||
---
|
||||
|
||||
We here at Vegan Prestwich love a meal out. Committed to keeping our community informed about the latest options, we’re always on the lookout for new local eateries, and when one opens up we’ll get there as soon as possible to test their fare. For the community, of course.
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 256 KiB |
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 195 KiB |
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 178 KiB |
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 212 KiB |
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 262 KiB |
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB |
Before Width: | Height: | Size: 286 KiB After Width: | Height: | Size: 286 KiB |
Before Width: | Height: | Size: 543 KiB After Width: | Height: | Size: 543 KiB |
Before Width: | Height: | Size: 385 KiB After Width: | Height: | Size: 385 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
Before Width: | Height: | Size: 302 KiB After Width: | Height: | Size: 302 KiB |
Before Width: | Height: | Size: 319 KiB After Width: | Height: | Size: 319 KiB |
Before Width: | Height: | Size: 295 KiB After Width: | Height: | Size: 295 KiB |
Before Width: | Height: | Size: 292 KiB After Width: | Height: | Size: 292 KiB |
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB |
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 189 KiB |
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
Before Width: | Height: | Size: 209 KiB After Width: | Height: | Size: 209 KiB |
Before Width: | Height: | Size: 266 KiB After Width: | Height: | Size: 266 KiB |
Before Width: | Height: | Size: 353 KiB After Width: | Height: | Size: 353 KiB |
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 237 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 264 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 179 KiB |
Before Width: | Height: | Size: 238 KiB After Width: | Height: | Size: 238 KiB |
Before Width: | Height: | Size: 204 KiB After Width: | Height: | Size: 204 KiB |
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
Before Width: | Height: | Size: 276 KiB After Width: | Height: | Size: 276 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 350 KiB After Width: | Height: | Size: 350 KiB |
Before Width: | Height: | Size: 222 KiB After Width: | Height: | Size: 222 KiB |
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 206 KiB |
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 180 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 200 KiB After Width: | Height: | Size: 200 KiB |
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB |
Before Width: | Height: | Size: 140 KiB After Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 219 KiB After Width: | Height: | Size: 219 KiB |
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
Before Width: | Height: | Size: 615 KiB After Width: | Height: | Size: 615 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 210 KiB |
Before Width: | Height: | Size: 302 KiB After Width: | Height: | Size: 302 KiB |
Before Width: | Height: | Size: 349 KiB After Width: | Height: | Size: 349 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
Before Width: | Height: | Size: 201 KiB After Width: | Height: | Size: 201 KiB |
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 376 KiB After Width: | Height: | Size: 376 KiB |
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 223 KiB |