Skip to content

Instantly share code, notes, and snippets.

View vito80ba's full-sized avatar

Vito Falco vito80ba

View GitHub Profile
@azizur
azizur / Creating a static copy of a dynamic website.md
Last active February 12, 2026 16:22
Creating a static copy of a dynamic website

The command line, in short…

wget -k -K -E -r -l 10 -p -N -F --restrict-file-names=windows -nH http://website.com/

…and the options explained

  • -k : convert links to relative
  • -K : keep an original versions of files without the conversions made by wget
  • -E : rename html files to .html (if they don’t already have an htm(l) extension)
  • -r : recursive… of course we want to make a recursive copy
  • -l 10 : the maximum level of recursion. if you have a really big website you may need to put a higher number, but 10 levels should be enough.
@toutpt
toutpt / storage.py
Last active December 13, 2018 18:52
The best way to store settings/data using zope annotations
from zope.annotation.interfaces import IAnnotations
from persistent.list import PersistentList
from Products.CMFCore.utils import getToolByName
FAVBY = "collective.favoriting.favoritedby"
def setupAnnotations(context):
"""
set up the annotations if they haven't been set up
@geksilla
geksilla / bootsrap_class_list
Last active September 2, 2025 15:26
Bootstrap css class list
.navbar
.caret
.label
.table
.img-responsive
.img-rounded
.img-thumbnail
.img-circle
.sr-only
.lead
@jensens
jensens / action.py
Created August 29, 2012 20:10
Plone action menu enable feature by setting marker interface
from zope.interface import Interface
from zope.interface import directlyProvides
from zope.interface import noLongerProvides
from Products.Five.browser import BrowserView
from Products.CMFPlone import PloneMessageFactory as _
class ISomeFeatureTarget(Interface):
pass
class IPossibleSomeFeatureTarget(Interface):