docs: def get_page_numbers(
          current_page, num_pages,
          extremes=DEFAULT_CALLABLE_EXTREMES,
          arounds=DEFAULT_CALLABLE_AROUNDS,
          arrows=DEFAULT_CALLABLE_ARROWS):
      """Default callable for page listing.
  
      Produce a Digg-style pagination.
      """
      page_range = range(1, num_pages + 1)
      pages = []
      if current_page != 1:
          if arrows:
              pages.append('first')
          pages.append('previous')
  
      # Get first and last pages (extremes).
      first = page_range[:extremes]
      pages.extend(first)
      last = page_range[-extremes:]
  
      # Get the current pages (arounds).
      current_start = current_page - 1 - arounds
      if current_start < 0:
          current_start = 0
      current_end = current_page + arounds
      if current_end > num_pages:
          current_end = num_pages
      current = page_range[current_start:current_end]
  
      # Mix first with current pages.
      to_add = current
      if extremes:
          diff = current[0] - first[-1]
          if diff > 1:
              pages.append(None)
          elif diff < 1:
              to_add = current[abs(diff) + 1:]
      pages.extend(to_add)
  
      # Mix current with last pages.
      if extremes:
          diff = last[0] - current[-1]
          to_add = last
          if diff > 1:
              pages.append(None)
          elif diff < 1:
              to_add = last[abs(diff) + 1:]
          pages.extend(to_add)
  
      if current_page != num_pages:
          pages.append('next')
          if arrows:
              pages.append('last')
      return pages