Example #1
0
def add_feed(page_dict):
  author = '''<author>
    <name>Eli Dupree</name>
    <'''+'e'+'m'+'a'+'i'+'l'+'>'+exmxaxixl.axdxrxexsxs+'</'+'e'+'m'+'a'+'i'+'l'+'''>
    <uri>'''+utils.canonical_scheme_and_domain+'''/</uri>
  </author>'''
  
  entries = []  
  for post in reversed ([post for post in blog.current_blog_page if "username" not in post]):
    if "comic_id" not in post:
      link = blog.post_permalink(post)
    else:
      link = comics.page_url(post)
    title = post ["title"]
    (body, head) = blog.stream_entry (post)
    post_string = head + body
    metadata = blog.post_metadata(post)
    # make internal links work in the feed
    post_string = re.sub(r'( (?:href|src)=")/', lambda match: match.group(1)+utils.canonical_scheme_and_domain+'/', post_string)
    
    entries.append('''
    <entry>
      <id>'''+utils.canonical_scheme_and_domain+link+'''</id>
      <title type="html">'''+cgi.escape(title)+'''</title>
      <published>'''+atom_time(metadata["date_posted"])+'''</published>      
      <updated>'''+atom_time(metadata["date_modified"])+'''</updated>
      '''+author+'''
      <link rel="alternate" href="'''+utils.canonical_scheme_and_domain+link+'''" />
      <content type="html">'''+cgi.escape(post_string)+'''</content>
    </entry>
    ''')
  
  utils.checked_insert(page_dict,
    '/atom.xml',
    '''<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">
  <id>'''+utils.canonical_scheme_and_domain+'''/</id>
  <icon>'''+utils.canonical_scheme_and_domain +'''/site-logo.png</icon>
  <title>Eli Dupree's website</title>
  <updated>'''+atom_time(datetime.datetime.utcnow())+'''</updated>
  '''+author+'''
  <link rel="self" href="/atom.xml" />
  '''+''.join(entries)+'''
</feed>'''
  )
Example #2
0
def page_html_and_head(page, prev_page, next_page):
  wide_screen_rules_list = []
  navbar = comic_navbar(prev_page, next_page)
  metabar = comic_metabar(page)
  metadata = blog.post_metadata(page)
  (HTML, head) =blog.post_html(page["annotation"], None, page_url(page), None, False, metadata, allow_comments = True, Patreon_type = ("art" if page["comic_id"] == "studio_art" else "comic"))
  annotation_promoted = "annotation_promoted" in comics_metadata[page ["comic_id"]] 
  return (
    '''
<div class="comic_and_nav">'''
  +metabar+navbar+'''
  <main>
    <div id="content" class="comic_and_transcript">
      <div class="comic_image">
        '''+('<a tabindex="-1" href="'+page_url(next_page)+'">' if next_page else '')+'''
          <img class="comic_image" alt="A comic page; see below for a transcript" src="'''+comic_image_url(page)+'''" />
        '''+('</a>'                                             if next_page else '')+'''
      </div><!--
   -->'''+('''<div class="comic_transcript_outer">
        <div class="comic_transcript_inner">
          '''+format_transcript(page, wide_screen_rules_list)+'''
        </div>
      </div>''' if "transcript" in page else '')+'''
    </div>'''
    + ("" if annotation_promoted else navbar+metabar)+'''
    <div class="comic_annotation_outer">
      <div class="comic_annotation">
        '''+ HTML +'''
      </div>
    </div>
    '''
    + (navbar+metabar if annotation_promoted else "")+'''
  </main>
</div>''',


head +'''
<style type="text/css">
@media screen and (min-width: '''+str(comics_metadata[page["comic_id"]]["transcript_at_side_width"])+'''px) {
  '''+'\n'.join(wide_screen_rules_list)+'''
}
</style>''')