Write static pages¶
When you site is done, you can continue to serve it within your Flask app, or you can write static html pages ready to be published on the web.
Almoststatic has the method
write_static which write static pages on the
disk. It only write the pages in the location that you choose.
The is up to you to publish your pages where you need and also to copy your static contents.
The best way to write static site is to write a little script, the core of script should be:
import almoststatic a = almoststatic.Almoststatic() a.load_config() STATIC_URL = '/' MEDIA_PREFIX = 'media' DESTINATION = '../_static_site' OUT_PAGES = ['write_static', 'write_done'] a.write_static(destination=DESTINATION, media_prefix=MEDIA_PREFIX, static_url=STATIC_URL, out_pages=OUT_PAGES) a.write_json_meta(destination=DESTINATION)
destination parameter is the location where files will be written in
static_url parameter lets you to set location of files starting from
your url, i.e. if your site goes on
static_url will be
/my_pages/. If your pages will be read from file
system you should leave
static_url as an empty string so urls are treated
as relative. If files goes on root of your domain
static_url should be
because this optimize the browser cache.
media_prefix parameter let you to change the location of media files
from ‘/content/media’ which is the default in the development environment to
the location where they will be in static site.
Consider that the
write_static when is working changes the global variable
is_static from False to True, so if in development time you have some pages
that you don’t like to have in the static site, you can exclude them inspecting
the value of that variable.
write_static writes all pages of site, but if you need, you
can choose the pages to write setting the
pages parameter or the
write_json_meta method let you write on a json file, all metadata for
information about pages.
If you wish, you can add to your script all you need to automate the publishing
of site, like client ftp commands or automatic copying of media files and so on,
flaskapp.py of the sample folder to see automatic ftp publishing in