A repo for my personal website
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Adding new blog post to posts.js and blog-rss.xml

+3266 -3251
+17 -17
about.html
··· 1 - <!DOCTYPE html> 2 - <html> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <link rel="stylesheet" href="style.css" media="screen" /> 9 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 - <script src="scripts/modernizr.js"></script> 12 - <script src="scripts/showdown.min.js"></script> 13 - <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 - <script src="scripts/about.js" type="module"></script> 15 - <title>C/B/F - About</title> 16 - </head> 17 - <body></body> 1 + <!DOCTYPE html> 2 + <html> 3 + <head> 4 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 + <meta charset="utf-8" /> 6 + <meta name="viewport" content="width=device-width" /> 7 + <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 + <link rel="stylesheet" href="style.css" media="screen" /> 9 + <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 + <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 + <script src="scripts/modernizr.js"></script> 12 + <script src="scripts/showdown.min.js"></script> 13 + <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 + <script src="scripts/about.js" type="module"></script> 15 + <title>C/B/F - About</title> 16 + </head> 17 + <body></body> 18 18 </html>
+16 -16
blog-item.html
··· 1 - <!DOCTYPE html> 2 - <html> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <link rel="stylesheet" href="style.css" media="screen" /> 9 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 - <script src="scripts/modernizr.js"></script> 12 - <script src="scripts/showdown.min.js"></script> 13 - <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 - <script src="scripts/blog_item.js" type="module"></script> 15 - </head> 16 - <body></body> 1 + <!DOCTYPE html> 2 + <html> 3 + <head> 4 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 + <meta charset="utf-8" /> 6 + <meta name="viewport" content="width=device-width" /> 7 + <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 + <link rel="stylesheet" href="style.css" media="screen" /> 9 + <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 + <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 + <script src="scripts/modernizr.js"></script> 12 + <script src="scripts/showdown.min.js"></script> 13 + <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 + <script src="scripts/blog_item.js" type="module"></script> 15 + </head> 16 + <body></body> 17 17 </html>
+78 -71
blog-rss.xml
··· 1 - <?xml version="1.0" encoding="utf-8"?> 2 - <rss version="2.0"> 3 - <channel> 4 - <title>CityboundForest's Blog</title> 5 - <link>https://skeetcha.github.io/blog.html</link> 6 - <description>The blog posts from CityboundForest's website.</description> 7 - <language>en-us</language> 8 - <item> 9 - <title>A Stream Schedule And A Video Delayed</title> 10 - <link>https://skeetcha.github.io/blog-item.html#streamschedulevideocoming</link> 11 - <guid>streamschedulevideocoming</guid> 12 - <pubDate>Sun 20 Feb 2022 14:09:00 PST</pubDate> 13 - <description>The stream schedule for February 21-25, 2022 and I promise, the update video is coming this week</description> 14 - </item> 15 - <item> 16 - <title>A Stream Schedule and a Promise of a Video</title> 17 - <link>https://skeetcha.github.io/blog-item.html#streamscheduleincomingvideo</link> 18 - <guid>streamscheduleincomingvideo</guid> 19 - <pubDate>Sun 13 Feb 2022 12:16:00 PST</pubDate> 20 - <description>The stream schedule for February 14-19, 2022 alongside a small update for The Four Woods Podcast</description> 21 - </item> 22 - <item> 23 - <title>Another Stream Schedule and Podcast Update</title> 24 - <link>https://skeetcha.github.io/blog-item.html#streamschedulepodcastupdate</link> 25 - <guid>streamschedulepodcastupdate</guid> 26 - <pubDate>Sun, 06 Feb 2022 12:00:00 PST</pubDate> 27 - <description>The stream schedule for this week (February 7 - 11, 2022) and an important update for The Four Woods Podcast</description> 28 - </item> 29 - <item> 30 - <title>Stream Schedule and an Update!</title> 31 - <link>https://skeetcha.github.io/blog-item.html#streamscheduleandbudgetupdate</link> 32 - <guid>streamscheduleandbudgetupdate</guid> 33 - <pubDate>Sun, 30 Jan 2022 12:13:00 PST</pubDate> 34 - <description>This week's stream schedule (January 31 - February 5, 2022) as well as an update on my audio drama podcast</description> 35 - </item> 36 - <item> 37 - <title>Another New Stream Schedule!</title> 38 - <link>https://skeetcha.github.io/blog-item.html#thirdstreamschedule</link> 39 - <guid>thirdstreamschedule</guid> 40 - <pubDate>Sun, 23 Jan 2022 17:27:00 PST</pubDate> 41 - <description>Another stream schedule for this upcoming week.</description> 42 - </item> 43 - <item> 44 - <title>New Stream schedule!</title> 45 - <link>https://skeetcha.github.io/blog-item.html#secondstreamschedule</link> 46 - <guid>secondstreamschedule</guid> 47 - <pubDate>Sun, 16 Jan 2022 14:10:00 PST</pubDate> 48 - <description>My new stream schedule for this upcoming week.</description> 49 - </item> 50 - <item> 51 - <title>Stream Schedule and Updates!</title> 52 - <link>https://skeetcha.github.io/blog-item.html#streamschedule_updates</link> 53 - <guid>streamschedule_update</guid> 54 - <pubDate>Sun, 09 Jan 2022 13:45:00 PST</pubDate> 55 - <description>A new stream schedule and some updates about my creative content.</description> 56 - </item> 57 - <item> 58 - <title>Minecraft Stream on Saturday!</title> 59 - <link>https://skeetcha.github.io/blog-item.html#minecraft_stream</link> 60 - <guid>minecraft_stream</guid> 61 - <pubDate>Wed, 05 Jan 2022 13:26:00 PST</pubDate> 62 - <description>Just a reminder of my upcoming Minecraft stream on Saturday.</description> 63 - </item> 64 - <item> 65 - <title>Updates!</title> 66 - <link>https://skeetcha.github.io/blog-item.html#updates</link> 67 - <guid>updates</guid> 68 - <pubDate>Sun, 02 Jan 2022 15:36:00 PST</pubDate> 69 - <description>A small little update on what I'm planning on doing in the coming year.</description> 70 - </item> 71 - </channel> 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <rss version="2.0"> 3 + <channel> 4 + <title>CityboundForest's Blog</title> 5 + <link>https://skeetcha.github.io/blog.html</link> 6 + <description>The blog posts from CityboundForest's website.</description> 7 + <language>en-us</language> 8 + <item> 9 + <title>New stream schedule for Twitch!</title> 10 + <link>https://skeetcha.github.io/blog-item.html#streamschedule22feb24mar5</link> 11 + <guid>streamschedule22feb24mar5</guid> 12 + <pubDate>Sun 27 Feb 2022 12:00:00</pubDate> 13 + <description>The stream schedule for February 28-March 5, 2022</description> 14 + </item> 15 + <item> 16 + <title>A Stream Schedule And A Video Delayed</title> 17 + <link>https://skeetcha.github.io/blog-item.html#streamschedulevideocoming</link> 18 + <guid>streamschedulevideocoming</guid> 19 + <pubDate>Sun 20 Feb 2022 14:09:00 PST</pubDate> 20 + <description>The stream schedule for February 21-25, 2022 and I promise, the update video is coming this week</description> 21 + </item> 22 + <item> 23 + <title>A Stream Schedule and a Promise of a Video</title> 24 + <link>https://skeetcha.github.io/blog-item.html#streamscheduleincomingvideo</link> 25 + <guid>streamscheduleincomingvideo</guid> 26 + <pubDate>Sun 13 Feb 2022 12:16:00 PST</pubDate> 27 + <description>The stream schedule for February 14-19, 2022 alongside a small update for The Four Woods Podcast</description> 28 + </item> 29 + <item> 30 + <title>Another Stream Schedule and Podcast Update</title> 31 + <link>https://skeetcha.github.io/blog-item.html#streamschedulepodcastupdate</link> 32 + <guid>streamschedulepodcastupdate</guid> 33 + <pubDate>Sun, 06 Feb 2022 12:00:00 PST</pubDate> 34 + <description>The stream schedule for this week (February 7 - 11, 2022) and an important update for The Four Woods Podcast</description> 35 + </item> 36 + <item> 37 + <title>Stream Schedule and an Update!</title> 38 + <link>https://skeetcha.github.io/blog-item.html#streamscheduleandbudgetupdate</link> 39 + <guid>streamscheduleandbudgetupdate</guid> 40 + <pubDate>Sun, 30 Jan 2022 12:13:00 PST</pubDate> 41 + <description>This week's stream schedule (January 31 - February 5, 2022) as well as an update on my audio drama podcast</description> 42 + </item> 43 + <item> 44 + <title>Another New Stream Schedule!</title> 45 + <link>https://skeetcha.github.io/blog-item.html#thirdstreamschedule</link> 46 + <guid>thirdstreamschedule</guid> 47 + <pubDate>Sun, 23 Jan 2022 17:27:00 PST</pubDate> 48 + <description>Another stream schedule for this upcoming week.</description> 49 + </item> 50 + <item> 51 + <title>New Stream schedule!</title> 52 + <link>https://skeetcha.github.io/blog-item.html#secondstreamschedule</link> 53 + <guid>secondstreamschedule</guid> 54 + <pubDate>Sun, 16 Jan 2022 14:10:00 PST</pubDate> 55 + <description>My new stream schedule for this upcoming week.</description> 56 + </item> 57 + <item> 58 + <title>Stream Schedule and Updates!</title> 59 + <link>https://skeetcha.github.io/blog-item.html#streamschedule_updates</link> 60 + <guid>streamschedule_update</guid> 61 + <pubDate>Sun, 09 Jan 2022 13:45:00 PST</pubDate> 62 + <description>A new stream schedule and some updates about my creative content.</description> 63 + </item> 64 + <item> 65 + <title>Minecraft Stream on Saturday!</title> 66 + <link>https://skeetcha.github.io/blog-item.html#minecraft_stream</link> 67 + <guid>minecraft_stream</guid> 68 + <pubDate>Wed, 05 Jan 2022 13:26:00 PST</pubDate> 69 + <description>Just a reminder of my upcoming Minecraft stream on Saturday.</description> 70 + </item> 71 + <item> 72 + <title>Updates!</title> 73 + <link>https://skeetcha.github.io/blog-item.html#updates</link> 74 + <guid>updates</guid> 75 + <pubDate>Sun, 02 Jan 2022 15:36:00 PST</pubDate> 76 + <description>A small little update on what I'm planning on doing in the coming year.</description> 77 + </item> 78 + </channel> 72 79 </rss>
+17 -17
blog.html
··· 1 - <!DOCTYPE html> 2 - <html> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <link rel="stylesheet" href="style.css" media="screen" /> 9 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 - <script src="scripts/modernizr.js"></script> 12 - <script src="scripts/showdown.min.js"></script> 13 - <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 - <script src="scripts/blog.js" type="module"></script> 15 - <title>C/B/F - Blog</title> 16 - </head> 17 - <body></body> 1 + <!DOCTYPE html> 2 + <html> 3 + <head> 4 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 + <meta charset="utf-8" /> 6 + <meta name="viewport" content="width=device-width" /> 7 + <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 + <link rel="stylesheet" href="style.css" media="screen" /> 9 + <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 + <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 + <script src="scripts/modernizr.js"></script> 12 + <script src="scripts/showdown.min.js"></script> 13 + <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 + <script src="scripts/blog.js" type="module"></script> 15 + <title>C/B/F - Blog</title> 16 + </head> 17 + <body></body> 18 18 </html>
+18 -18
contact.html
··· 1 - <!DOCTYPE html> 2 - <html> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <link rel="stylesheet" href="style.css" media="screen" /> 9 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 - <script src="scripts/modernizr.js"></script> 12 - <script src="scripts/showdown.min.js"></script> 13 - <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 - <script src="https://smtpjs.com/v3/smtp.js"></script> 15 - <script src="scripts/contact.js" type="module"></script> 16 - <title>C/B/F - Contact Me</title> 17 - </head> 18 - <body></body> 1 + <!DOCTYPE html> 2 + <html> 3 + <head> 4 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 + <meta charset="utf-8" /> 6 + <meta name="viewport" content="width=device-width" /> 7 + <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 + <link rel="stylesheet" href="style.css" media="screen" /> 9 + <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 + <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 + <script src="scripts/modernizr.js"></script> 12 + <script src="scripts/showdown.min.js"></script> 13 + <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 + <script src="https://smtpjs.com/v3/smtp.js"></script> 15 + <script src="scripts/contact.js" type="module"></script> 16 + <title>C/B/F - Contact Me</title> 17 + </head> 18 + <body></body> 19 19 </html>
+72 -72
fonts/quicksand.css
··· 1 - /* vietnamese */ 2 - @font-face { 3 - font-family: 'Quicksand'; 4 - font-style: normal; 5 - font-weight: 300; 6 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58m-wi40.woff2) format('woff2'); 7 - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 8 - } 9 - /* latin-ext */ 10 - @font-face { 11 - font-family: 'Quicksand'; 12 - font-style: normal; 13 - font-weight: 300; 14 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58i-wi40.woff2) format('woff2'); 15 - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 16 - } 17 - /* latin */ 18 - @font-face { 19 - font-family: 'Quicksand'; 20 - font-style: normal; 21 - font-weight: 300; 22 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58a-wg.woff2) format('woff2'); 23 - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 24 - } 25 - /* vietnamese */ 26 - @font-face { 27 - font-family: 'Quicksand'; 28 - font-style: normal; 29 - font-weight: 400; 30 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58m-wi40.woff2) format('woff2'); 31 - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 32 - } 33 - /* latin-ext */ 34 - @font-face { 35 - font-family: 'Quicksand'; 36 - font-style: normal; 37 - font-weight: 400; 38 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58i-wi40.woff2) format('woff2'); 39 - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 40 - } 41 - /* latin */ 42 - @font-face { 43 - font-family: 'Quicksand'; 44 - font-style: normal; 45 - font-weight: 400; 46 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58a-wg.woff2) format('woff2'); 47 - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 48 - } 49 - /* vietnamese */ 50 - @font-face { 51 - font-family: 'Quicksand'; 52 - font-style: normal; 53 - font-weight: 700; 54 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58m-wi40.woff2) format('woff2'); 55 - unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 56 - } 57 - /* latin-ext */ 58 - @font-face { 59 - font-family: 'Quicksand'; 60 - font-style: normal; 61 - font-weight: 700; 62 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58i-wi40.woff2) format('woff2'); 63 - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 64 - } 65 - /* latin */ 66 - @font-face { 67 - font-family: 'Quicksand'; 68 - font-style: normal; 69 - font-weight: 700; 70 - src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58a-wg.woff2) format('woff2'); 71 - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 72 - } 1 + /* vietnamese */ 2 + @font-face { 3 + font-family: 'Quicksand'; 4 + font-style: normal; 5 + font-weight: 300; 6 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58m-wi40.woff2) format('woff2'); 7 + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 8 + } 9 + /* latin-ext */ 10 + @font-face { 11 + font-family: 'Quicksand'; 12 + font-style: normal; 13 + font-weight: 300; 14 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58i-wi40.woff2) format('woff2'); 15 + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 16 + } 17 + /* latin */ 18 + @font-face { 19 + font-family: 'Quicksand'; 20 + font-style: normal; 21 + font-weight: 300; 22 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkKEo58a-wg.woff2) format('woff2'); 23 + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 24 + } 25 + /* vietnamese */ 26 + @font-face { 27 + font-family: 'Quicksand'; 28 + font-style: normal; 29 + font-weight: 400; 30 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58m-wi40.woff2) format('woff2'); 31 + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 32 + } 33 + /* latin-ext */ 34 + @font-face { 35 + font-family: 'Quicksand'; 36 + font-style: normal; 37 + font-weight: 400; 38 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58i-wi40.woff2) format('woff2'); 39 + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 40 + } 41 + /* latin */ 42 + @font-face { 43 + font-family: 'Quicksand'; 44 + font-style: normal; 45 + font-weight: 400; 46 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkP8o58a-wg.woff2) format('woff2'); 47 + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 48 + } 49 + /* vietnamese */ 50 + @font-face { 51 + font-family: 'Quicksand'; 52 + font-style: normal; 53 + font-weight: 700; 54 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58m-wi40.woff2) format('woff2'); 55 + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; 56 + } 57 + /* latin-ext */ 58 + @font-face { 59 + font-family: 'Quicksand'; 60 + font-style: normal; 61 + font-weight: 700; 62 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58i-wi40.woff2) format('woff2'); 63 + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 64 + } 65 + /* latin */ 66 + @font-face { 67 + font-family: 'Quicksand'; 68 + font-style: normal; 69 + font-weight: 700; 70 + src: url(https://fonts.gstatic.com/s/quicksand/v21/6xK-dSZaM9iE8KbpRA_LJ3z8mH9BOJvgkBgv58a-wg.woff2) format('woff2'); 71 + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 72 + }
+16 -16
fonts/righteous.css
··· 1 - /* latin-ext */ 2 - @font-face { 3 - font-family: 'Righteous'; 4 - font-style: normal; 5 - font-weight: 400; 6 - src: local('Righteous'), local('Righteous-Regular'), url(https://fonts.gstatic.com/s/righteous/v9/1cXxaUPXBpj2rGoU7C9WhnGFucE.woff2) format('woff2'); 7 - unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 8 - } 9 - /* latin */ 10 - @font-face { 11 - font-family: 'Righteous'; 12 - font-style: normal; 13 - font-weight: 400; 14 - src: local('Righteous'), local('Righteous-Regular'), url(https://fonts.gstatic.com/s/righteous/v9/1cXxaUPXBpj2rGoU7C9WiHGF.woff2) format('woff2'); 15 - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 16 - } 1 + /* latin-ext */ 2 + @font-face { 3 + font-family: 'Righteous'; 4 + font-style: normal; 5 + font-weight: 400; 6 + src: local('Righteous'), local('Righteous-Regular'), url(https://fonts.gstatic.com/s/righteous/v9/1cXxaUPXBpj2rGoU7C9WhnGFucE.woff2) format('woff2'); 7 + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; 8 + } 9 + /* latin */ 10 + @font-face { 11 + font-family: 'Righteous'; 12 + font-style: normal; 13 + font-weight: 400; 14 + src: local('Righteous'), local('Righteous-Regular'), url(https://fonts.gstatic.com/s/righteous/v9/1cXxaUPXBpj2rGoU7C9WiHGF.woff2) format('woff2'); 15 + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 16 + }
+7 -7
img/cd-circle.svg
··· 1 - <?xml version="1.0" encoding="utf-8"?> 2 - <!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 3 - <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 - <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 5 - width="54px" height="54px" viewBox="3 -3 54 54" enable-background="new 3 -3 54 54" xml:space="preserve"> 6 - <circle fill="none" stroke="#66788F" cx="30" cy="24" r="25"/> 7 - </svg> 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 3 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 5 + width="54px" height="54px" viewBox="3 -3 54 54" enable-background="new 3 -3 54 54" xml:space="preserve"> 6 + <circle fill="none" stroke="#66788F" cx="30" cy="24" r="25"/> 7 + </svg>
+8 -8
img/cd-icon-arrow.svg
··· 1 - <?xml version="1.0" encoding="utf-8"?> 2 - <!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 3 - <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 - <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 5 - width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> 6 - <line fill="none" stroke="#62A380" stroke-miterlimit="10" x1="2" y1="8" x2="15" y2="8"/> 7 - <polyline fill="none" stroke="#62A380" stroke-miterlimit="10" points="7,3 2,8 7,13 "/> 8 - </svg> 1 + <?xml version="1.0" encoding="utf-8"?> 2 + <!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 3 + <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 4 + <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 5 + width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve"> 6 + <line fill="none" stroke="#62A380" stroke-miterlimit="10" x1="2" y1="8" x2="15" y2="8"/> 7 + <polyline fill="none" stroke="#62A380" stroke-miterlimit="10" points="7,3 2,8 7,13 "/> 8 + </svg>
+25 -25
img/portfolio-icon.svg
··· 1 - <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 - <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> 3 - <!-- Generator: Sketch 3.3.3 (12072) - http://www.bohemiancoding.com/sketch --> 4 - <title>portfolio-icon</title> 5 - <desc>Created with Sketch.</desc> 6 - <defs></defs> 7 - <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> 8 - <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-+-Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-+-Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-Copy" sketch:type="MSLayerGroup" transform="translate(1.000000, 1.000000)" stroke="#e1e1e1"> 9 - <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1" sketch:type="MSShapeGroup"> 10 - <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 11 - <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 12 - <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 13 - </g> 14 - <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy" transform="translate(0.000000, 7.500000)" sketch:type="MSShapeGroup"> 15 - <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 16 - <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 17 - <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 18 - </g> 19 - <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-Copy" transform="translate(0.000000, 15.000000)" sketch:type="MSShapeGroup"> 20 - <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 21 - <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 22 - <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 23 - </g> 24 - </g> 25 - </g> 1 + <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 + <svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> 3 + <!-- Generator: Sketch 3.3.3 (12072) - http://www.bohemiancoding.com/sketch --> 4 + <title>portfolio-icon</title> 5 + <desc>Created with Sketch.</desc> 6 + <defs></defs> 7 + <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> 8 + <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-+-Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-+-Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-Copy" sketch:type="MSLayerGroup" transform="translate(1.000000, 1.000000)" stroke="#e1e1e1"> 9 + <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1" sketch:type="MSShapeGroup"> 10 + <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 11 + <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 12 + <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 13 + </g> 14 + <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy" transform="translate(0.000000, 7.500000)" sketch:type="MSShapeGroup"> 15 + <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 16 + <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 17 + <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 18 + </g> 19 + <g id="Rectangle-2-+-Rectangle-1-Copy-+-Rectangle-1-Copy-Copy" transform="translate(0.000000, 15.000000)" sketch:type="MSShapeGroup"> 20 + <rect id="Rectangle-2" x="15" y="0" width="5" height="5"></rect> 21 + <rect id="Rectangle-1-Copy" x="7.5" y="0" width="5" height="5"></rect> 22 + <rect id="Rectangle-1" x="0" y="0" width="5" height="5"></rect> 23 + </g> 24 + </g> 25 + </g> 26 26 </svg>
+17 -17
index.html
··· 1 - <!DOCTYPE html> 2 - <html> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <link rel="stylesheet" href="style.css" media="screen" /> 9 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 - <script src="scripts/modernizr.js"></script> 12 - <script src="scripts/showdown.min.js"></script> 13 - <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 - <script src="scripts/main.js" type="module"></script> 15 - <title>C/B/F - Home</title> 16 - </head> 17 - <body></body> 1 + <!DOCTYPE html> 2 + <html> 3 + <head> 4 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 + <meta charset="utf-8" /> 6 + <meta name="viewport" content="width=device-width" /> 7 + <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 + <link rel="stylesheet" href="style.css" media="screen" /> 9 + <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 + <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 + <script src="scripts/modernizr.js"></script> 12 + <script src="scripts/showdown.min.js"></script> 13 + <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 + <script src="scripts/main.js" type="module"></script> 15 + <title>C/B/F - Home</title> 16 + </head> 17 + <body></body> 18 18 </html>
+17 -17
portfolio-item.html
··· 1 - <!DOCTYPE html> 2 - <html> 3 - <head> 4 - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 - <meta charset="utf-8" /> 6 - <meta name="viewport" content="width=device-width" /> 7 - <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 - <link rel="stylesheet" href="style.css" media="screen" /> 9 - <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 - <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 - <script src="scripts/modernizr.js"></script> 12 - <script src="scripts/showdown.min.js"></script> 13 - <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 - <script src="scripts/portfolio_item.js" type="module"></script> 15 - <title>C/B/F - Portfolio</title> 16 - </head> 17 - <body></body> 1 + <!DOCTYPE html> 2 + <html> 3 + <head> 4 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 + <meta charset="utf-8" /> 6 + <meta name="viewport" content="width=device-width" /> 7 + <meta http-equiv="x-ua-compatible" content="ie=edge" /> 8 + <link rel="stylesheet" href="style.css" media="screen" /> 9 + <link href="fonts/righteous.css" rel="stylesheet" type="text/css" /> 10 + <link href="fonts/quicksand.css" rel="stylesheet" type="text/css" /> 11 + <script src="scripts/modernizr.js"></script> 12 + <script src="scripts/showdown.min.js"></script> 13 + <script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script> 14 + <script src="scripts/portfolio_item.js" type="module"></script> 15 + <title>C/B/F - Portfolio</title> 16 + </head> 17 + <body></body> 18 18 </html>
+31 -31
scripts/about.js
··· 1 - import getBase from './base.js'; 2 - import parseMarkdown from './markdown.js'; 3 - import setupNavAnim from './nav_anim.js'; 4 - import setupLink from './link_setup.js'; 5 - 6 - (function() { 7 - document.body.innerHTML = getBase(false, false, false, false); 8 - document.querySelector('.site-content').innerHTML = ` 9 - <div class="page-desc"> 10 - <p class="markdown">"Creativity is an energy. It's a precious energy, and it's something to be protected. A lot of people take for granted that they're a creative person, but I know from experience, feeling it in myself, it is a magic; it is an energy. And it can't be taken for granted." --Ava DuVernay</p> 11 - <img src="img/self.png" alt="" style="max-height:500px;" /> 12 - <p class="markdown">Every person is a story, and storyteller Cass Unterholzner is no different. They have been telling stories since they were younger. Their creative cravings have been sought after through !1[**short films**], !2[**acting**] and playing music in !2[**musical theatre**], !3[**developing**] and critiquing !3[**video games**], and !4[**writing**] and !4[**recording music**].\n\n\n\nCass is currently producing an !2[**audio drama podcast**] titled The Four Woods Podcast after developing it as a serial novel story with inspirations from the Harry Potter and Percy Jackson novels.\n\n\n\nEven before entering high school, Cass participated in the !1[**"Go Film!"**] workshop at the San Joaquin County Office of Education in Stockton, California learning about !1[**camera**], !1[**lighting**], and !1[**sound techniques**]. They worked with other teens to create and release a !1[**short film**], as the !1[**Gaffer**], the !1[**Foley Artist**], and a !1[**Sound Editor**]. In high school, Cass took a class expanding their !1[**film**] knowledge in creating the school's announcements. After graduating, they started a !1[**YouTube channel**] where they posted !1[**short videos**].\n\n\n\nAlong with working in !1[**film**], Cass also participated in !2[**musical theatre**]. They appeared in many productions starting in 2007 with !2[**"Dear Edwina Jr"**] at Stockton Civic Theatre as well as many !2[**church musicals**]. In 2009, Cass starred in !2[**"The Music Man"**] for a senior project in Manteca, California. Later, they were cast as !2[**Professor Quirrel**] and were set to be the !2[**Musical Director**] for a production of !2[**"A Very Potter Musical"**] while directing and developing a !2[**Murder Mystery Dinner**] containing mostly improvised scenes.\n\n\n\nCass has always been interested in !3[**video game development and design**] as they played them often throughout their adolescence. This interest flourished and inspired them to major in !3[**Computer Science**], first at San Joaquin Delta College and then University of the Pacific. They ended up switching their major to Media X to further pursue their passions. During their coursework, they worked with classmates to !3[**develop two games**]: a !3[**combat simulator**] for the tabletop role-playing game Dungeons and Dragons and a !3[**bullet-dodging game**] like the video game Cuphead. Cass intends to continue using !3[**video games**] as an alternate form of storytelling in the future.\n\n\n\n!4[**Music**] has always been part of Cass's life. Inspired by their older sister taking lessons, they decided to learn !4[**piano**] at age 5. They later picked up more instruments such as the !4[**clarinet**], the !4[**cello**], and the !4[**guitar**]. Cass was active in his !4[**high school's band**] program where they took to !4[**arranging**] and !4[**writing**] for their school's !4[**wind ensemble**] and !4[**jazz band**]. They also played !4[**cello**] often in college and assisted East Union High School's !2[**theatre class**] in a production of !2[**"Next to Normal."**] In 2019, Cass sent a video of him playing an !4[**original song**] to the University of the Pacific’s student association. This resulted in Cass playing both !4[**original**] and !4[**cover songs**] at their !4[**Brickyard Series concert**]. Cass now writes !4[**indie pop music**] in their spare time.\n\n\n\nCass hopes to further their storytelling career using their !1[**YouTube channel**] talking about !3[**gaming**], !4[**music**], and languages. Their free time consists of learning German, American Sign Language, Spanish, and Italian. When they're not crafting fantasy novels, Cass plays and runs sessions of various tabletop role-playing games for which they hope to develop a podcast in the future.</p> 13 - </div> 14 - `; 15 - 16 - document.querySelectorAll('.cd-primary-nav li a').forEach((element, key, parent) => { 17 - if (element.href.indexOf('about.html') != -1) { 18 - element.classList.add('selected'); 19 - } else { 20 - element.classList.remove('selected'); 21 - } 22 - }); 23 - 24 - setupNavAnim(document); 25 - parseMarkdown(document); 26 - 27 - setTimeout(() => { 28 - document.body.classList.add('loaded'); 29 - }, 150); 30 - 31 - setupLink(document); 1 + import getBase from './base.js'; 2 + import parseMarkdown from './markdown.js'; 3 + import setupNavAnim from './nav_anim.js'; 4 + import setupLink from './link_setup.js'; 5 + 6 + (function() { 7 + document.body.innerHTML = getBase(false, false, false, false); 8 + document.querySelector('.site-content').innerHTML = ` 9 + <div class="page-desc"> 10 + <p class="markdown">"Creativity is an energy. It's a precious energy, and it's something to be protected. A lot of people take for granted that they're a creative person, but I know from experience, feeling it in myself, it is a magic; it is an energy. And it can't be taken for granted." --Ava DuVernay</p> 11 + <img src="img/self.png" alt="" style="max-height:500px;" /> 12 + <p class="markdown">Every person is a story, and storyteller Cass Unterholzner is no different. They have been telling stories since they were younger. Their creative cravings have been sought after through !1[**short films**], !2[**acting**] and playing music in !2[**musical theatre**], !3[**developing**] and critiquing !3[**video games**], and !4[**writing**] and !4[**recording music**].\n\n\n\nCass is currently producing an !2[**audio drama podcast**] titled The Four Woods Podcast after developing it as a serial novel story with inspirations from the Harry Potter and Percy Jackson novels.\n\n\n\nEven before entering high school, Cass participated in the !1[**"Go Film!"**] workshop at the San Joaquin County Office of Education in Stockton, California learning about !1[**camera**], !1[**lighting**], and !1[**sound techniques**]. They worked with other teens to create and release a !1[**short film**], as the !1[**Gaffer**], the !1[**Foley Artist**], and a !1[**Sound Editor**]. In high school, Cass took a class expanding their !1[**film**] knowledge in creating the school's announcements. After graduating, they started a !1[**YouTube channel**] where they posted !1[**short videos**].\n\n\n\nAlong with working in !1[**film**], Cass also participated in !2[**musical theatre**]. They appeared in many productions starting in 2007 with !2[**"Dear Edwina Jr"**] at Stockton Civic Theatre as well as many !2[**church musicals**]. In 2009, Cass starred in !2[**"The Music Man"**] for a senior project in Manteca, California. Later, they were cast as !2[**Professor Quirrel**] and were set to be the !2[**Musical Director**] for a production of !2[**"A Very Potter Musical"**] while directing and developing a !2[**Murder Mystery Dinner**] containing mostly improvised scenes.\n\n\n\nCass has always been interested in !3[**video game development and design**] as they played them often throughout their adolescence. This interest flourished and inspired them to major in !3[**Computer Science**], first at San Joaquin Delta College and then University of the Pacific. They ended up switching their major to Media X to further pursue their passions. During their coursework, they worked with classmates to !3[**develop two games**]: a !3[**combat simulator**] for the tabletop role-playing game Dungeons and Dragons and a !3[**bullet-dodging game**] like the video game Cuphead. Cass intends to continue using !3[**video games**] as an alternate form of storytelling in the future.\n\n\n\n!4[**Music**] has always been part of Cass's life. Inspired by their older sister taking lessons, they decided to learn !4[**piano**] at age 5. They later picked up more instruments such as the !4[**clarinet**], the !4[**cello**], and the !4[**guitar**]. Cass was active in his !4[**high school's band**] program where they took to !4[**arranging**] and !4[**writing**] for their school's !4[**wind ensemble**] and !4[**jazz band**]. They also played !4[**cello**] often in college and assisted East Union High School's !2[**theatre class**] in a production of !2[**"Next to Normal."**] In 2019, Cass sent a video of him playing an !4[**original song**] to the University of the Pacific’s student association. This resulted in Cass playing both !4[**original**] and !4[**cover songs**] at their !4[**Brickyard Series concert**]. Cass now writes !4[**indie pop music**] in their spare time.\n\n\n\nCass hopes to further their storytelling career using their !1[**YouTube channel**] talking about !3[**gaming**], !4[**music**], and languages. Their free time consists of learning German, American Sign Language, Spanish, and Italian. When they're not crafting fantasy novels, Cass plays and runs sessions of various tabletop role-playing games for which they hope to develop a podcast in the future.</p> 13 + </div> 14 + `; 15 + 16 + document.querySelectorAll('.cd-primary-nav li a').forEach((element, key, parent) => { 17 + if (element.href.indexOf('about.html') != -1) { 18 + element.classList.add('selected'); 19 + } else { 20 + element.classList.remove('selected'); 21 + } 22 + }); 23 + 24 + setupNavAnim(document); 25 + parseMarkdown(document); 26 + 27 + setTimeout(() => { 28 + document.body.classList.add('loaded'); 29 + }, 150); 30 + 31 + setupLink(document); 32 32 })();
+30 -30
scripts/base.js
··· 1 - import getNav from './nav.js'; 2 - import getHeader from './head.js'; 3 - import getFoot from './foot.js'; 4 - 5 - function getBase(is_index, add_nav, is_contact, is_blog_post) { 6 - if (add_nav) { 7 - return ` 8 - ${getNav()} 9 - <div class="site-container"> 10 - ${getHeader(is_index, is_contact, is_blog_post)} 11 - <section class="site-content"> 12 - </section> 13 - <nav role="navigation" id="foot-nav"> 14 - </nav> 15 - ${getFoot()} 16 - </div> 17 - `; 18 - } else { 19 - return ` 20 - ${getNav()} 21 - <div class="site-container"> 22 - ${getHeader(is_index, is_contact, is_blog_post)} 23 - <section class="site-content"> 24 - </section> 25 - ${getFoot()} 26 - </div> 27 - `; 28 - } 29 - } 30 - 1 + import getNav from './nav.js'; 2 + import getHeader from './head.js'; 3 + import getFoot from './foot.js'; 4 + 5 + function getBase(is_index, add_nav, is_contact, is_blog_post) { 6 + if (add_nav) { 7 + return ` 8 + ${getNav()} 9 + <div class="site-container"> 10 + ${getHeader(is_index, is_contact, is_blog_post)} 11 + <section class="site-content"> 12 + </section> 13 + <nav role="navigation" id="foot-nav"> 14 + </nav> 15 + ${getFoot()} 16 + </div> 17 + `; 18 + } else { 19 + return ` 20 + ${getNav()} 21 + <div class="site-container"> 22 + ${getHeader(is_index, is_contact, is_blog_post)} 23 + <section class="site-content"> 24 + </section> 25 + ${getFoot()} 26 + </div> 27 + `; 28 + } 29 + } 30 + 31 31 export default getBase;
+151 -151
scripts/blog.js
··· 1 - import getBase from './base.js'; 2 - import parseMarkdown from './markdown.js'; 3 - import setupNavAnim from './nav_anim.js'; 4 - import setupLink from './link_setup.js'; 5 - import getPosts from './posts.js'; 6 - import generateBlogPost from './blog_post.js'; 7 - 8 - var currentPage = 1; 9 - var numPages = 1; 10 - 11 - var get_page = (el) => { 12 - return el.dataset.page; 13 - }; 14 - 15 - (function () { 16 - document.body.innerHTML = getBase(false, true, false, false); 17 - 18 - document.querySelector('.site-content').innerHTML = ` 19 - <div class="page-desc"> 20 - <h4>Personal Blog</h4> 21 - <a href="blog-rss.xml"<img src="img/rss-icon.png" alt="rss-icon" style="width:20px;height:20px;" /></a> 22 - <p>Random postings, news, and other thoughts coming soon!</p> 23 - </div> 24 - `; 25 - 26 - var postData = getPosts(); 27 - postData.reverse(); 28 - 29 - for (var i = 0; i < postData.length; i += 5) { 30 - document.querySelector('.site-content').innerHTML += ` 31 - <article class="news" data-page="${(Math.floor(i / 5) + 1).toString()}"> 32 - </article> 33 - `; 34 - 35 - document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML = generateBlogPost(postData[i]); 36 - 37 - if ((i + 1) < postData.length) { 38 - document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML += generateBlogPost(postData[i + 1]); 39 - } 40 - 41 - if ((i + 2) < postData.length) { 42 - document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML += generateBlogPost(postData[i + 2]); 43 - } 44 - 45 - if ((i + 3) < postData.length) { 46 - document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML += generateBlogPost(postData[i + 3]); 47 - } 48 - 49 - if ((i + 4) < postData.length) { 50 - document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML += generateBlogPost(postData[i + 4]); 51 - } 52 - } 53 - 54 - document.querySelector('.site-content .news[data-page="1"]').classList.add('active-news-page'); 55 - 56 - document.getElementById('foot-nav').innerHTML = ` 57 - <ul class="cd-pagination animated-buttons custom-icons"> 58 - <li class="button"><a id="previous" href="#"><i data-i18n="[html]nav.previous">Prev</i></a></li> 59 - <li><a class="current page-button" href="#" data-i18n="[html]nav.page.1" data-page="1">1</a></li> 60 - <!--<li><span id="left-elipses">...</span></li>--> 61 - <li><a href="#" class="page-button" data-i18n="[html]nav.page.2" data-page="2">2</a></li> 62 - <!--<li><a href="#" class="page-button" data-i18n="[html]nav.page.3" data-page="3">3</a></li> 63 - <li><a href="#" class="page-button" data-i18n="[html]nav.page.4" data-page="4">4</a></li> 64 - <li><span id="right-elipses">...</span></li> 65 - <li><a href="#" class="page-button" data-i18n="[html]nav.page.20" data-page="20">20</a></li>--> 66 - <li class="button"><a id="next" href="#"><i data-i18n="[html]nav.next">Next</i></a></li> 67 - </ul> 68 - `; 69 - 70 - var pageNumber = window.location.hash.substring(1); 71 - var pages = document.querySelectorAll('.news'); 72 - 73 - if (pageNumber === '') { 74 - pageNumber = '1'; 75 - } 76 - 77 - for (var i = 0; i < pages.length; i++) { 78 - if ((get_page(pages[i]) === pageNumber) && (!pages[i].classList.contains('active-news-page'))) { 79 - pages[i].classList.add('active-news-page'); 80 - 81 - if (!document.querySelectorAll('.page-button')[i].className.includes('current')) { 82 - document.querySelectorAll('.page-button')[i].classList.add('current'); 83 - } 84 - } else if ((get_page(pages[i]) !== pageNumber) && (pages[i].classList.contains('active-news-page'))) { 85 - pages[i].classList.remove('active-news-page'); 86 - 87 - if (document.querySelectorAll('.page-button')[i].className.includes('current')) { 88 - document.querySelectorAll('.page-button')[i].classList.remove('current'); 89 - } 90 - } 91 - } 92 - 93 - if (pageNumber === '1') { 94 - //document.getElementById('left-elipses').style.display = 'none'; 95 - } 96 - 97 - if (pageNumber === '20') { 98 - //document.getElementById('right-elipses').style.display = 'none'; 99 - } 100 - 101 - currentPage = parseInt(pageNumber); 102 - numPages = parseInt(pages.length); 103 - 104 - document.querySelectorAll('.page-button').forEach((element, key, parent) => { 105 - element.addEventListener('click', (e) => { 106 - e.preventDefault(); 107 - window.location = `blog.html#${get_page(element)}`; 108 - window.location.reload(); 109 - }, false); 110 - }); 111 - 112 - document.getElementById('previous').addEventListener('click', (e) => { 113 - e.preventDefault(); 114 - var newPage = currentPage - 1; 115 - 116 - if (newPage === 0) { 117 - newPage = 1; 118 - } 119 - 120 - window.location = `blog.html#${newPage.toString()}`; 121 - window.location.reload(); 122 - }); 123 - 124 - document.getElementById('next').addEventListener('click', (e) => { 125 - e.preventDefault(); 126 - var newPage = currentPage + 1; 127 - 128 - if (newPage > numPages) { 129 - newPage = numPages; 130 - } 131 - 132 - window.location = `blog.html#${newPage.toString()}`; 133 - window.location.reload(); 134 - }); 135 - 136 - document.querySelectorAll('.cd-primary-nav li a').forEach((element, key, parent) => { 137 - if (element.href.indexOf('blog.html') != -1) { 138 - element.classList.add('selected'); 139 - } else { 140 - element.classList.remove('selected'); 141 - } 142 - }); 143 - 144 - setupNavAnim(document); 145 - parseMarkdown(document); 146 - 147 - setTimeout(() => { 148 - document.body.classList.add('loaded'); 149 - }, 150); 150 - 151 - setupLink(document); 1 + import getBase from './base.js'; 2 + import parseMarkdown from './markdown.js'; 3 + import setupNavAnim from './nav_anim.js'; 4 + import setupLink from './link_setup.js'; 5 + import getPosts from './posts.js'; 6 + import generateBlogPost from './blog_post.js'; 7 + 8 + var currentPage = 1; 9 + var numPages = 1; 10 + 11 + var get_page = (el) => { 12 + return el.dataset.page; 13 + }; 14 + 15 + (function () { 16 + document.body.innerHTML = getBase(false, true, false, false); 17 + 18 + document.querySelector('.site-content').innerHTML = ` 19 + <div class="page-desc"> 20 + <h4>Personal Blog</h4> 21 + <a href="blog-rss.xml"<img src="img/rss-icon.png" alt="rss-icon" style="width:20px;height:20px;" /></a> 22 + <p>Random postings, news, and other thoughts coming soon!</p> 23 + </div> 24 + `; 25 + 26 + var postData = getPosts(); 27 + postData.reverse(); 28 + 29 + for (var i = 0; i < postData.length; i += 5) { 30 + document.querySelector('.site-content').innerHTML += ` 31 + <article class="news" data-page="${(Math.floor(i / 5) + 1).toString()}"> 32 + </article> 33 + `; 34 + 35 + document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML = generateBlogPost(postData[i]); 36 + 37 + if ((i + 1) < postData.length) { 38 + document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML += generateBlogPost(postData[i + 1]); 39 + } 40 + 41 + if ((i + 2) < postData.length) { 42 + document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML += generateBlogPost(postData[i + 2]); 43 + } 44 + 45 + if ((i + 3) < postData.length) { 46 + document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML += generateBlogPost(postData[i + 3]); 47 + } 48 + 49 + if ((i + 4) < postData.length) { 50 + document.querySelector(`.site-content .news[data-page="${(Math.floor(i / 5) + 1).toString()}"]`).innerHTML += generateBlogPost(postData[i + 4]); 51 + } 52 + } 53 + 54 + document.querySelector('.site-content .news[data-page="1"]').classList.add('active-news-page'); 55 + 56 + document.getElementById('foot-nav').innerHTML = ` 57 + <ul class="cd-pagination animated-buttons custom-icons"> 58 + <li class="button"><a id="previous" href="#"><i data-i18n="[html]nav.previous">Prev</i></a></li> 59 + <li><a class="current page-button" href="#" data-i18n="[html]nav.page.1" data-page="1">1</a></li> 60 + <!--<li><span id="left-elipses">...</span></li>--> 61 + <li><a href="#" class="page-button" data-i18n="[html]nav.page.2" data-page="2">2</a></li> 62 + <!--<li><a href="#" class="page-button" data-i18n="[html]nav.page.3" data-page="3">3</a></li> 63 + <li><a href="#" class="page-button" data-i18n="[html]nav.page.4" data-page="4">4</a></li> 64 + <li><span id="right-elipses">...</span></li> 65 + <li><a href="#" class="page-button" data-i18n="[html]nav.page.20" data-page="20">20</a></li>--> 66 + <li class="button"><a id="next" href="#"><i data-i18n="[html]nav.next">Next</i></a></li> 67 + </ul> 68 + `; 69 + 70 + var pageNumber = window.location.hash.substring(1); 71 + var pages = document.querySelectorAll('.news'); 72 + 73 + if (pageNumber === '') { 74 + pageNumber = '1'; 75 + } 76 + 77 + for (var i = 0; i < pages.length; i++) { 78 + if ((get_page(pages[i]) === pageNumber) && (!pages[i].classList.contains('active-news-page'))) { 79 + pages[i].classList.add('active-news-page'); 80 + 81 + if (!document.querySelectorAll('.page-button')[i].className.includes('current')) { 82 + document.querySelectorAll('.page-button')[i].classList.add('current'); 83 + } 84 + } else if ((get_page(pages[i]) !== pageNumber) && (pages[i].classList.contains('active-news-page'))) { 85 + pages[i].classList.remove('active-news-page'); 86 + 87 + if (document.querySelectorAll('.page-button')[i].className.includes('current')) { 88 + document.querySelectorAll('.page-button')[i].classList.remove('current'); 89 + } 90 + } 91 + } 92 + 93 + if (pageNumber === '1') { 94 + //document.getElementById('left-elipses').style.display = 'none'; 95 + } 96 + 97 + if (pageNumber === '20') { 98 + //document.getElementById('right-elipses').style.display = 'none'; 99 + } 100 + 101 + currentPage = parseInt(pageNumber); 102 + numPages = parseInt(pages.length); 103 + 104 + document.querySelectorAll('.page-button').forEach((element, key, parent) => { 105 + element.addEventListener('click', (e) => { 106 + e.preventDefault(); 107 + window.location = `blog.html#${get_page(element)}`; 108 + window.location.reload(); 109 + }, false); 110 + }); 111 + 112 + document.getElementById('previous').addEventListener('click', (e) => { 113 + e.preventDefault(); 114 + var newPage = currentPage - 1; 115 + 116 + if (newPage === 0) { 117 + newPage = 1; 118 + } 119 + 120 + window.location = `blog.html#${newPage.toString()}`; 121 + window.location.reload(); 122 + }); 123 + 124 + document.getElementById('next').addEventListener('click', (e) => { 125 + e.preventDefault(); 126 + var newPage = currentPage + 1; 127 + 128 + if (newPage > numPages) { 129 + newPage = numPages; 130 + } 131 + 132 + window.location = `blog.html#${newPage.toString()}`; 133 + window.location.reload(); 134 + }); 135 + 136 + document.querySelectorAll('.cd-primary-nav li a').forEach((element, key, parent) => { 137 + if (element.href.indexOf('blog.html') != -1) { 138 + element.classList.add('selected'); 139 + } else { 140 + element.classList.remove('selected'); 141 + } 142 + }); 143 + 144 + setupNavAnim(document); 145 + parseMarkdown(document); 146 + 147 + setTimeout(() => { 148 + document.body.classList.add('loaded'); 149 + }, 150); 150 + 151 + setupLink(document); 152 152 })();
+90 -90
scripts/blog_item.js
··· 1 - import getBase from './base.js'; 2 - import parseMarkdown from './markdown.js'; 3 - import setupNavAnim from './nav_anim.js'; 4 - import setupLink from './link_setup.js'; 5 - import getPosts from './posts.js'; 6 - 7 - var converter = new showdown.Converter(); 8 - 9 - var disqus_config = function () { 10 - this.page.url = window.location.href; // Replace PAGE_URL with your page's canonical URL variable 11 - this.page.identifier = window.location.hash.substring(1); // Replace PAGE_IDENTIFIER with your page's unique identifier variable 12 - }; 13 - 14 - (function () { 15 - document.body.innerHTML = getBase(false, true, false, true); 16 - 17 - var postHash = window.location.hash.substring(1); 18 - var postData = getPosts(); 19 - 20 - for (var i = 0; i < postData.length; i++) { 21 - if (postData[i].id === postHash) { 22 - postData = postData[i]; 23 - break; 24 - } else if ((postData[i].id !== postHash) && (i == (postData.length - 1))) { 25 - postData = undefined; 26 - } 27 - } 28 - 29 - var title = '', author = '', date = '', content = ''; 30 - 31 - if (postData !== undefined) { 32 - title = postData.title; 33 - author = postData.author; 34 - date = postData.date; 35 - content = postData.content; 36 - } 37 - 38 - document.querySelector('.site-tagline').innerHTML = ` 39 - <h1 id="blog-post-title">${title}</h1> 40 - <h6 class="date"><span id="blog-post-author">${author}</span> | <span id="blog-post-date">${date}</span></h6> 41 - `; 42 - 43 - content = converter.makeHtml(content); 44 - var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 45 - 46 - content = content.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/\-".!']+)\]/gm, function(str, numMatch, innerText) { 47 - var num = parseInt(numMatch, 10) - 1; 48 - return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 49 - }); 50 - 51 - document.querySelector('.site-content').innerHTML = ` 52 - <div class="page-desc" id="blog-post-content">${content}</div> 53 - `; 54 - 55 - document.querySelector('.site-content').innerHTML += ` 56 - <div id="disqus_thread" style="margin:0 auto;width:75%;"> 57 - <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> 58 - </div> 59 - `; 60 - 61 - document.getElementById('foot-nav').innerHTML = ` 62 - <ul class="cd-pagination animated-buttons custom-icons"> 63 - <li class="button"><a href="#"><i>Prev</i></a></li> 64 - <li class="button"><a href="#"><i>Next</i></a></li> 65 - </ul> 66 - `; 67 - 68 - document.title = `C/B/F - ${title}`; 69 - 70 - document.querySelectorAll('.cd-primary-nav li a').forEach((element, key, parent) => { 71 - if (element.href.indexOf('blog.html') != -1) { 72 - element.classList.add('selected'); 73 - } else { 74 - element.classList.remove('selected'); 75 - } 76 - }); 77 - 78 - var d = document, s = d.createElement('script'); 79 - s.src = 'https://cityboundforest.disqus.com/embed.js'; 80 - s.setAttribute('data-timestamp', +new Date()); 81 - (d.head || d.body).appendChild(s); 82 - 83 - setupNavAnim(document); 84 - parseMarkdown(document); 85 - 86 - setTimeout(() => { 87 - document.body.classList.add('loaded'); 88 - }, 150); 89 - 90 - setupLink(document); 1 + import getBase from './base.js'; 2 + import parseMarkdown from './markdown.js'; 3 + import setupNavAnim from './nav_anim.js'; 4 + import setupLink from './link_setup.js'; 5 + import getPosts from './posts.js'; 6 + 7 + var converter = new showdown.Converter(); 8 + 9 + var disqus_config = function () { 10 + this.page.url = window.location.href; // Replace PAGE_URL with your page's canonical URL variable 11 + this.page.identifier = window.location.hash.substring(1); // Replace PAGE_IDENTIFIER with your page's unique identifier variable 12 + }; 13 + 14 + (function () { 15 + document.body.innerHTML = getBase(false, true, false, true); 16 + 17 + var postHash = window.location.hash.substring(1); 18 + var postData = getPosts(); 19 + 20 + for (var i = 0; i < postData.length; i++) { 21 + if (postData[i].id === postHash) { 22 + postData = postData[i]; 23 + break; 24 + } else if ((postData[i].id !== postHash) && (i == (postData.length - 1))) { 25 + postData = undefined; 26 + } 27 + } 28 + 29 + var title = '', author = '', date = '', content = ''; 30 + 31 + if (postData !== undefined) { 32 + title = postData.title; 33 + author = postData.author; 34 + date = postData.date; 35 + content = postData.content; 36 + } 37 + 38 + document.querySelector('.site-tagline').innerHTML = ` 39 + <h1 id="blog-post-title">${title}</h1> 40 + <h6 class="date"><span id="blog-post-author">${author}</span> | <span id="blog-post-date">${date}</span></h6> 41 + `; 42 + 43 + content = converter.makeHtml(content); 44 + var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 45 + 46 + content = content.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/\-".!']+)\]/gm, function(str, numMatch, innerText) { 47 + var num = parseInt(numMatch, 10) - 1; 48 + return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 49 + }); 50 + 51 + document.querySelector('.site-content').innerHTML = ` 52 + <div class="page-desc" id="blog-post-content">${content}</div> 53 + `; 54 + 55 + document.querySelector('.site-content').innerHTML += ` 56 + <div id="disqus_thread" style="margin:0 auto;width:75%;"> 57 + <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> 58 + </div> 59 + `; 60 + 61 + document.getElementById('foot-nav').innerHTML = ` 62 + <ul class="cd-pagination animated-buttons custom-icons"> 63 + <li class="button"><a href="#"><i>Prev</i></a></li> 64 + <li class="button"><a href="#"><i>Next</i></a></li> 65 + </ul> 66 + `; 67 + 68 + document.title = `C/B/F - ${title}`; 69 + 70 + document.querySelectorAll('.cd-primary-nav li a').forEach((element, key, parent) => { 71 + if (element.href.indexOf('blog.html') != -1) { 72 + element.classList.add('selected'); 73 + } else { 74 + element.classList.remove('selected'); 75 + } 76 + }); 77 + 78 + var d = document, s = d.createElement('script'); 79 + s.src = 'https://cityboundforest.disqus.com/embed.js'; 80 + s.setAttribute('data-timestamp', +new Date()); 81 + (d.head || d.body).appendChild(s); 82 + 83 + setupNavAnim(document); 84 + parseMarkdown(document); 85 + 86 + setTimeout(() => { 87 + document.body.classList.add('loaded'); 88 + }, 150); 89 + 90 + setupLink(document); 91 91 })();
+15 -15
scripts/blog_post.js
··· 1 - function generateBlogPost(postData) 2 - { 3 - return ` 4 - <div class="blog_item full grey_bg"> 5 - <a class="full_link" href="blog-item.html#${postData.id}"></a> 6 - <div class="abs_bg" style="background-color:#0f404f;"></div> 7 - <div class="blog_item_inner"> 8 - <h1>${postData.title}</h1> 9 - <h5 class="date"><div>${postData.author}</div><div>${postData.date}</div> 10 - <p>${postData.description}</p> 11 - </div> 12 - </div> 13 - `; 14 - } 15 - 1 + function generateBlogPost(postData) 2 + { 3 + return ` 4 + <div class="blog_item full grey_bg"> 5 + <a class="full_link" href="blog-item.html#${postData.id}"></a> 6 + <div class="abs_bg" style="background-color:#0f404f;"></div> 7 + <div class="blog_item_inner"> 8 + <h1>${postData.title}</h1> 9 + <h5 class="date"><div>${postData.author}</div><div>${postData.date}</div> 10 + <p>${postData.description}</p> 11 + </div> 12 + </div> 13 + `; 14 + } 15 + 16 16 export default generateBlogPost;
+84 -84
scripts/contact.js
··· 1 - import getBase from './base.js'; 2 - import parseMarkdown from './markdown.js'; 3 - import setupNavAnim from './nav_anim.js'; 4 - import setupLink from './link_setup.js'; 5 - 6 - var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 7 - 8 - function validateForm() { 9 - return (document.getElementById('contact-name').value !== '') && (document.getElementById('contact-email').value !== '') && (document.getElementById('contact-message').value !== '') && (document.getElementById('contact-email').value.match(emailRegex)); 10 - } 11 - 12 - function showValidation(el, name) { 13 - if (name === 'email') { 14 - if (el.value === '') { 15 - alert('Email field is empty.'); 16 - } else if (!el.value.match(emailRegex)) { 17 - alert('Email field does not contain an email.'); 18 - } 19 - } else { 20 - if (el.value === '') { 21 - alert(name + ' field is empty.'); 22 - } 23 - } 24 - } 25 - 26 - (function () { 27 - document.body.innerHTML = getBase(false, false, true, false); 28 - 29 - document.querySelector('.site-content').innerHTML = ` 30 - <div class="input"><input type="text" required placeholder="Name *" name="name" id="contact-name" /></div> 31 - <div class="input"><input type="email" required placeholder="Email *" name="email" id="contact-email" /></div> 32 - <div class="input"><textarea name="message" id="contact-message" placeholder="Message *"></textarea></div> 33 - <ul class="cd-pagination custom-icons"> 34 - <li class="button-submit"><a href="#"><i>Submit</i></a></li> 35 - </ul> 36 - `; 37 - 38 - document.querySelectorAll('.cd-primary-nav li a').forEach((element, key, parent) => { 39 - if (element.href.indexOf('contact.html') != -1) { 40 - element.classList.add('selected'); 41 - } else { 42 - element.classList.remove('selected'); 43 - } 44 - }); 45 - 46 - document.querySelector('.button-submit a').addEventListener('click', (e) => { 47 - e.preventDefault(); 48 - 49 - if (!validateForm()) { 50 - showValidation(document.getElementById('contact-name'), 'Name'); 51 - showValidation(document.getElementById('contact-email'), 'email'); 52 - showValidation(document.getElementById('contact-message'), 'Message'); 53 - return false; 54 - } 55 - 56 - alert('Your message is sending. You will see a notification saying "OK" if your message sent correctly. Press Okay to close this message.'); 57 - 58 - var name = document.getElementById('contact-name').value; 59 - var email = document.getElementById('contact-email').value; 60 - var message = document.getElementById('contact-message').value; 61 - 62 - document.getElementById('contact-name').value = ''; 63 - document.getElementById('contact-email').value = ''; 64 - document.getElementById('contact-message').value = ''; 65 - 66 - email.send({ 67 - SecureToken: '35f5af2e-8f3d-4aea-99a0-cefbd03bb7f6', 68 - To: 'cityboundforest@gmail.com', 69 - From: email, 70 - Subject: 'Message from Website', 71 - Body: name + ' just sent you a message!\n\n' + message 72 - }).then( 73 - message => alert(message) 74 - ); 75 - }); 76 - 77 - setupNavAnim(document); 78 - parseMarkdown(document); 79 - 80 - setTimeout(() => { 81 - document.body.classList.add('loaded'); 82 - }, 150); 83 - 84 - setupLink(document); 1 + import getBase from './base.js'; 2 + import parseMarkdown from './markdown.js'; 3 + import setupNavAnim from './nav_anim.js'; 4 + import setupLink from './link_setup.js'; 5 + 6 + var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; 7 + 8 + function validateForm() { 9 + return (document.getElementById('contact-name').value !== '') && (document.getElementById('contact-email').value !== '') && (document.getElementById('contact-message').value !== '') && (document.getElementById('contact-email').value.match(emailRegex)); 10 + } 11 + 12 + function showValidation(el, name) { 13 + if (name === 'email') { 14 + if (el.value === '') { 15 + alert('Email field is empty.'); 16 + } else if (!el.value.match(emailRegex)) { 17 + alert('Email field does not contain an email.'); 18 + } 19 + } else { 20 + if (el.value === '') { 21 + alert(name + ' field is empty.'); 22 + } 23 + } 24 + } 25 + 26 + (function () { 27 + document.body.innerHTML = getBase(false, false, true, false); 28 + 29 + document.querySelector('.site-content').innerHTML = ` 30 + <div class="input"><input type="text" required placeholder="Name *" name="name" id="contact-name" /></div> 31 + <div class="input"><input type="email" required placeholder="Email *" name="email" id="contact-email" /></div> 32 + <div class="input"><textarea name="message" id="contact-message" placeholder="Message *"></textarea></div> 33 + <ul class="cd-pagination custom-icons"> 34 + <li class="button-submit"><a href="#"><i>Submit</i></a></li> 35 + </ul> 36 + `; 37 + 38 + document.querySelectorAll('.cd-primary-nav li a').forEach((element, key, parent) => { 39 + if (element.href.indexOf('contact.html') != -1) { 40 + element.classList.add('selected'); 41 + } else { 42 + element.classList.remove('selected'); 43 + } 44 + }); 45 + 46 + document.querySelector('.button-submit a').addEventListener('click', (e) => { 47 + e.preventDefault(); 48 + 49 + if (!validateForm()) { 50 + showValidation(document.getElementById('contact-name'), 'Name'); 51 + showValidation(document.getElementById('contact-email'), 'email'); 52 + showValidation(document.getElementById('contact-message'), 'Message'); 53 + return false; 54 + } 55 + 56 + alert('Your message is sending. You will see a notification saying "OK" if your message sent correctly. Press Okay to close this message.'); 57 + 58 + var name = document.getElementById('contact-name').value; 59 + var email = document.getElementById('contact-email').value; 60 + var message = document.getElementById('contact-message').value; 61 + 62 + document.getElementById('contact-name').value = ''; 63 + document.getElementById('contact-email').value = ''; 64 + document.getElementById('contact-message').value = ''; 65 + 66 + email.send({ 67 + SecureToken: '35f5af2e-8f3d-4aea-99a0-cefbd03bb7f6', 68 + To: 'cityboundforest@gmail.com', 69 + From: email, 70 + Subject: 'Message from Website', 71 + Body: name + ' just sent you a message!\n\n' + message 72 + }).then( 73 + message => alert(message) 74 + ); 75 + }); 76 + 77 + setupNavAnim(document); 78 + parseMarkdown(document); 79 + 80 + setTimeout(() => { 81 + document.body.classList.add('loaded'); 82 + }, 150); 83 + 84 + setupLink(document); 85 85 })();
+14 -14
scripts/disqus.js
··· 1 - /** 2 - * RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. 3 - * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables */ 4 - 5 - var disqus_config = function () { 6 - this.page.url = window.location.href; // Replace PAGE_URL with your page's canonical URL variable 7 - this.page.identifier = window.location.hash.substring(1); // Replace PAGE_IDENTIFIER with your page's unique identifier variable 8 - }; 9 - 10 - (function() { // DON'T EDIT BELOW THIS LINE 11 - var d = document, s = d.createElement('script'); 12 - s.src = 'https://cityboundforest.disqus.com/embed.js'; 13 - s.setAttribute('data-timestamp', +new Date()); 14 - (d.head || d.body).appendChild(s); 1 + /** 2 + * RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. 3 + * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables */ 4 + 5 + var disqus_config = function () { 6 + this.page.url = window.location.href; // Replace PAGE_URL with your page's canonical URL variable 7 + this.page.identifier = window.location.hash.substring(1); // Replace PAGE_IDENTIFIER with your page's unique identifier variable 8 + }; 9 + 10 + (function() { // DON'T EDIT BELOW THIS LINE 11 + var d = document, s = d.createElement('script'); 12 + s.src = 'https://cityboundforest.disqus.com/embed.js'; 13 + s.setAttribute('data-timestamp', +new Date()); 14 + (d.head || d.body).appendChild(s); 15 15 })();
+8 -8
scripts/foot.js
··· 1 - function getFoot() { 2 - return ` 3 - <footer class="site-footer cf"> 4 - <p class="footer-text">© Copyright Cass Unterholzner 2020-2022. </p> 5 - </footer> 6 - `; 7 - } 8 - 1 + function getFoot() { 2 + return ` 3 + <footer class="site-footer cf"> 4 + <p class="footer-text">© Copyright Cass Unterholzner 2020-2022. </p> 5 + </footer> 6 + `; 7 + } 8 + 9 9 export default getFoot;
+40 -40
scripts/head.js
··· 1 - function getHeader(is_index, is_contact, is_blog_post) { 2 - if (is_index) { 3 - return ` 4 - <header class="site-header cf"> 5 - <div class="site-title"><a href="index.html">C/B/F</a></div> 6 - <div class="cf"></div> 7 - <div class="site-tagline"> 8 - <p><strong>CityboundForest</strong></p><div style="font-size:18pt;" class="markdown">Hello I'm **Cass Unterholzner.** \nI'm a storyteller working in the media of !1[**film**], !2[**theatre**], !3[**video games**], and !4[**music**].</div> 9 - </div> 10 - </header> 11 - `; 12 - } else if (is_contact) { 13 - return ` 14 - <header class="site-header cf"> 15 - <div class="site-title"><a href="index.html">C/B/F</a></div> 16 - <div class="cf"></div> 17 - <div class="site-tagline"> 18 - <h1 id="blog-post-title">Contact Me</h1> 19 - </div> 20 - </header> 21 - `; 22 - } else if (is_blog_post) { 23 - return ` 24 - <header class="site-header cf"> 25 - <div class="site-title"><a href="index.html">C/B/F</a></div> 26 - <div class="cf"></div> 27 - <div class="site-tagline"> 28 - </div> 29 - </header> 30 - `; 31 - }else { 32 - return ` 33 - <header class="site-header cf"> 34 - <div class="site-title"><a href="index.html">C/B/F</a></div> 35 - <div class="cf"></div> 36 - </header> 37 - `; 38 - } 39 - } 40 - 1 + function getHeader(is_index, is_contact, is_blog_post) { 2 + if (is_index) { 3 + return ` 4 + <header class="site-header cf"> 5 + <div class="site-title"><a href="index.html">C/B/F</a></div> 6 + <div class="cf"></div> 7 + <div class="site-tagline"> 8 + <p><strong>CityboundForest</strong></p><div style="font-size:18pt;" class="markdown">Hello I'm **Cass Unterholzner.** \nI'm a storyteller working in the media of !1[**film**], !2[**theatre**], !3[**video games**], and !4[**music**].</div> 9 + </div> 10 + </header> 11 + `; 12 + } else if (is_contact) { 13 + return ` 14 + <header class="site-header cf"> 15 + <div class="site-title"><a href="index.html">C/B/F</a></div> 16 + <div class="cf"></div> 17 + <div class="site-tagline"> 18 + <h1 id="blog-post-title">Contact Me</h1> 19 + </div> 20 + </header> 21 + `; 22 + } else if (is_blog_post) { 23 + return ` 24 + <header class="site-header cf"> 25 + <div class="site-title"><a href="index.html">C/B/F</a></div> 26 + <div class="cf"></div> 27 + <div class="site-tagline"> 28 + </div> 29 + </header> 30 + `; 31 + }else { 32 + return ` 33 + <header class="site-header cf"> 34 + <div class="site-title"><a href="index.html">C/B/F</a></div> 35 + <div class="cf"></div> 36 + </header> 37 + `; 38 + } 39 + } 40 + 41 41 export default getHeader;
+32 -32
scripts/main.js
··· 1 - import getBase from './base.js'; 2 - import getProject from './project.js'; 3 - import parseMarkdown from './markdown.js'; 4 - import setupNavAnim from './nav_anim.js'; 5 - import setupLink from './link_setup.js'; 6 - 7 - (function () { 8 - document.body.innerHTML = getBase(true, false, false, false); 9 - document.querySelector('.site-content').innerHTML = `<div class="projects-feed cf"></div>`; 10 - 11 - var projects = [{id: 'fourwoods', title: 'The Four Woods Podcast', description: 'An audio drama podcast about myth and magic - Writer, Director, Editor, Producer'}, {id: 'mememachine', title: 'Meme Machine', description: 'Download, Rate, and Create Memes - Programmer'}, {id: 'shutin', title: 'Shut In', description: 'Short Film - Gaffer, Foley Artist, Sound Editor'}, {id: 'bulletrush', title: 'Bullet Rush', description: 'Cuphead meets First Person Shooter games - Programmer, Project Manager'}, {id: 'dndcombatsim', title: 'Dungeons and Dragons Combat Simulator', description: 'Combat simulator for the 5th Edition of the Tabletop RPG Dungeons and Dragons - Programmer, Project Manager'}, {id: 'cansat', title: 'CanSat', description: 'A simulated sattelite in an enclosure the shape and size of a soda can - Programmer'}]; 12 - 13 - for (var i = 0; i < projects.length; i++) { 14 - document.querySelector('.projects-feed.cf').innerHTML += getProject(projects[i]); 15 - } 16 - 17 - setupNavAnim(document); 18 - parseMarkdown(document); 19 - 20 - setTimeout(() => { 21 - document.body.classList.add('loaded'); 22 - }, 150); 23 - 24 - imagesLoaded('projects-feed .project', (instance) => { 25 - document.querySelectorAll('.projects-feed .project').forEach((element, key, parent) => { 26 - setTimeout(() => { 27 - element.classList.add('loaded'); 28 - }, 50 + 50 * key); 29 - }); 30 - }); 31 - 32 - setupLink(document); 1 + import getBase from './base.js'; 2 + import getProject from './project.js'; 3 + import parseMarkdown from './markdown.js'; 4 + import setupNavAnim from './nav_anim.js'; 5 + import setupLink from './link_setup.js'; 6 + 7 + (function () { 8 + document.body.innerHTML = getBase(true, false, false, false); 9 + document.querySelector('.site-content').innerHTML = `<div class="projects-feed cf"></div>`; 10 + 11 + var projects = [{id: 'fourwoods', title: 'The Four Woods Podcast', description: 'An audio drama podcast about myth and magic - Writer, Director, Editor, Producer'}, {id: 'mememachine', title: 'Meme Machine', description: 'Download, Rate, and Create Memes - Programmer'}, {id: 'shutin', title: 'Shut In', description: 'Short Film - Gaffer, Foley Artist, Sound Editor'}, {id: 'bulletrush', title: 'Bullet Rush', description: 'Cuphead meets First Person Shooter games - Programmer, Project Manager'}, {id: 'dndcombatsim', title: 'Dungeons and Dragons Combat Simulator', description: 'Combat simulator for the 5th Edition of the Tabletop RPG Dungeons and Dragons - Programmer, Project Manager'}, {id: 'cansat', title: 'CanSat', description: 'A simulated sattelite in an enclosure the shape and size of a soda can - Programmer'}]; 12 + 13 + for (var i = 0; i < projects.length; i++) { 14 + document.querySelector('.projects-feed.cf').innerHTML += getProject(projects[i]); 15 + } 16 + 17 + setupNavAnim(document); 18 + parseMarkdown(document); 19 + 20 + setTimeout(() => { 21 + document.body.classList.add('loaded'); 22 + }, 150); 23 + 24 + imagesLoaded('projects-feed .project', (instance) => { 25 + document.querySelectorAll('.projects-feed .project').forEach((element, key, parent) => { 26 + setTimeout(() => { 27 + element.classList.add('loaded'); 28 + }, 50 + 50 * key); 29 + }); 30 + }); 31 + 32 + setupLink(document); 33 33 })();
+13 -13
scripts/markdown.js
··· 1 - function parseMarkdown(document) { 2 - document.querySelectorAll('.markdown').forEach((element, key, parent) => { 3 - var converter = new showdown.Converter(); 4 - var convertedMessage = converter.makeHtml(element.innerHTML).replaceAll('<p>', '<div>').replaceAll('</p>', '</div>'); 5 - var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 6 - 7 - element.innerHTML = convertedMessage.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/\-".!']+)\]/gm, function(str, numMatch, innerText) { 8 - var num = parseInt(numMatch, 10) - 1; 9 - return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 10 - }); 11 - }); 12 - } 13 - 1 + function parseMarkdown(document) { 2 + document.querySelectorAll('.markdown').forEach((element, key, parent) => { 3 + var converter = new showdown.Converter(); 4 + var convertedMessage = converter.makeHtml(element.innerHTML).replaceAll('<p>', '<div>').replaceAll('</p>', '</div>'); 5 + var colors = ['#00eeff', '#fffb00', '#ff3e3e', '#ff70e7']; 6 + 7 + element.innerHTML = convertedMessage.replaceAll(/!(\d)+\[([*A-Za-z0-9 <>/\-".!']+)\]/gm, function(str, numMatch, innerText) { 8 + var num = parseInt(numMatch, 10) - 1; 9 + return '<span style="color:' + colors[num] + ';">' + innerText + '</span>'; 10 + }); 11 + }); 12 + } 13 + 14 14 export default parseMarkdown;
+541 -541
scripts/modernizr.js
··· 1 - 2 - window.Modernizr = function(a, b, c) { 3 - function d(a) { 4 - t.cssText = a 5 - } 6 - 7 - function e(a, b) { 8 - return d(x.join(a + ";") + (b || "")) 9 - } 10 - 11 - function f(a, b) { 12 - return typeof a === b 13 - } 14 - 15 - function g(a, b) { 16 - return !!~("" + a).indexOf(b) 17 - } 18 - 19 - function h(a, b) { 20 - for (var d in a) { 21 - var e = a[d]; 22 - if (!g(e, "-") && t[e] !== c) return "pfx" == b ? e : !0 23 - } 24 - return !1 25 - } 26 - 27 - function i(a, b, d) { 28 - for (var e in a) { 29 - var g = b[a[e]]; 30 - if (g !== c) return d === !1 ? a[e] : f(g, "function") ? g.bind(d || b) : g 31 - } 32 - return !1 33 - } 34 - 35 - function j(a, b, c) { 36 - var d = a.charAt(0).toUpperCase() + a.slice(1), 37 - e = (a + " " + z.join(d + " ") + d).split(" "); 38 - return f(b, "string") || f(b, "undefined") ? h(e, b) : (e = (a + " " + A.join(d + " ") + d).split(" "), i(e, b, c)) 39 - } 40 - 41 - function k() { 42 - o.input = function(c) { 43 - for (var d = 0, e = c.length; e > d; d++) E[c[d]] = c[d] in u; 44 - return E.list && (E.list = !!b.createElement("datalist") && !!a.HTMLDataListElement), E 45 - }("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), o.inputtypes = function(a) { 46 - for (var d, e, f, g = 0, h = a.length; h > g; g++) u.setAttribute("type", e = a[g]), d = "text" !== u.type, d && (u.value = v, u.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(e) && u.style.WebkitAppearance !== c ? (q.appendChild(u), f = b.defaultView, d = f.getComputedStyle && "textfield" !== f.getComputedStyle(u, null).WebkitAppearance && 0 !== u.offsetHeight, q.removeChild(u)) : /^(search|tel)$/.test(e) || (d = /^(url|email)$/.test(e) ? u.checkValidity && u.checkValidity() === !1 : u.value != v)), D[a[g]] = !!d; 47 - return D 48 - }("search tel url email datetime date month week time datetime-local number range color".split(" ")) 49 - } 50 - var l, m, n = "2.6.2", 51 - o = {}, 52 - p = !0, 53 - q = b.documentElement, 54 - r = "modernizr", 55 - s = b.createElement(r), 56 - t = s.style, 57 - u = b.createElement("input"), 58 - v = ":)", 59 - w = {}.toString, 60 - x = " -webkit- -moz- -o- -ms- ".split(" "), 61 - y = "Webkit Moz O ms", 62 - z = y.split(" "), 63 - A = y.toLowerCase().split(" "), 64 - B = { 65 - svg: "http://www.w3.org/2000/svg" 66 - }, 67 - C = {}, 68 - D = {}, 69 - E = {}, 70 - F = [], 71 - G = F.slice, 72 - H = function(a, c, d, e) { 73 - var f, g, h, i, j = b.createElement("div"), 74 - k = b.body, 75 - l = k || b.createElement("body"); 76 - if (parseInt(d, 10)) 77 - for (; d--;) h = b.createElement("div"), h.id = e ? e[d] : r + (d + 1), j.appendChild(h); 78 - return f = ["&#173;", '<style id="s', r, '">', a, "</style>"].join(""), j.id = r, (k ? j : l).innerHTML += f, l.appendChild(j), k || (l.style.background = "", l.style.overflow = "hidden", i = q.style.overflow, q.style.overflow = "hidden", q.appendChild(l)), g = c(j, a), k ? j.parentNode.removeChild(j) : (l.parentNode.removeChild(l), q.style.overflow = i), !!g 79 - }, 80 - I = function() { 81 - function a(a, e) { 82 - e = e || b.createElement(d[a] || "div"), a = "on" + a; 83 - var g = a in e; 84 - return g || (e.setAttribute || (e = b.createElement("div")), e.setAttribute && e.removeAttribute && (e.setAttribute(a, ""), g = f(e[a], "function"), f(e[a], "undefined") || (e[a] = c), e.removeAttribute(a))), e = null, g 85 - } 86 - var d = { 87 - select: "input", 88 - change: "input", 89 - submit: "form", 90 - reset: "form", 91 - error: "img", 92 - load: "img", 93 - abort: "img" 94 - }; 95 - return a 96 - }(), 97 - J = {}.hasOwnProperty; 98 - m = f(J, "undefined") || f(J.call, "undefined") ? function(a, b) { 99 - return b in a && f(a.constructor.prototype[b], "undefined") 100 - } : function(a, b) { 101 - return J.call(a, b) 102 - }, Function.prototype.bind || (Function.prototype.bind = function(a) { 103 - var b = this; 104 - if ("function" != typeof b) throw new TypeError; 105 - var c = G.call(arguments, 1), 106 - d = function() { 107 - if (this instanceof d) { 108 - var e = function() {}; 109 - e.prototype = b.prototype; 110 - var f = new e, 111 - g = b.apply(f, c.concat(G.call(arguments))); 112 - return Object(g) === g ? g : f 113 - } 114 - return b.apply(a, c.concat(G.call(arguments))) 115 - }; 116 - return d 117 - }), C.flexbox = function() { 118 - return j("flexWrap") 119 - }, C.flexboxlegacy = function() { 120 - return j("boxDirection") 121 - }, C.canvas = function() { 122 - var a = b.createElement("canvas"); 123 - return !!a.getContext && !!a.getContext("2d") 124 - }, C.canvastext = function() { 125 - return !!o.canvas && !!f(b.createElement("canvas").getContext("2d").fillText, "function") 126 - }, C.webgl = function() { 127 - return !!a.WebGLRenderingContext 128 - }, C.touch = function() { 129 - var c; 130 - return "ontouchstart" in a || a.DocumentTouch && b instanceof DocumentTouch ? c = !0 : H(["@media (", x.join("touch-enabled),("), r, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function(a) { 131 - c = 9 === a.offsetTop 132 - }), c 133 - }, C.geolocation = function() { 134 - return "geolocation" in navigator 135 - }, C.postmessage = function() { 136 - return !!a.postMessage 137 - }, C.websqldatabase = function() { 138 - return !!a.openDatabase 139 - }, C.indexedDB = function() { 140 - return !!j("indexedDB", a) 141 - }, C.hashchange = function() { 142 - return I("hashchange", a) && (b.documentMode === c || b.documentMode > 7) 143 - }, C.history = function() { 144 - return !!a.history && !!history.pushState 145 - }, C.draganddrop = function() { 146 - var a = b.createElement("div"); 147 - return "draggable" in a || "ondragstart" in a && "ondrop" in a 148 - }, C.websockets = function() { 149 - return "WebSocket" in a || "MozWebSocket" in a 150 - }, C.rgba = function() { 151 - return d("background-color:rgba(150,255,150,.5)"), g(t.backgroundColor, "rgba") 152 - }, C.hsla = function() { 153 - return d("background-color:hsla(120,40%,100%,.5)"), g(t.backgroundColor, "rgba") || g(t.backgroundColor, "hsla") 154 - }, C.multiplebgs = function() { 155 - return d("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(t.background) 156 - }, C.backgroundsize = function() { 157 - return j("backgroundSize") 158 - }, C.borderimage = function() { 159 - return j("borderImage") 160 - }, C.borderradius = function() { 161 - return j("borderRadius") 162 - }, C.boxshadow = function() { 163 - return j("boxShadow") 164 - }, C.textshadow = function() { 165 - return "" === b.createElement("div").style.textShadow 166 - }, C.opacity = function() { 167 - return e("opacity:.55"), /^0.55$/.test(t.opacity) 168 - }, C.cssanimations = function() { 169 - return j("animationName") 170 - }, C.csscolumns = function() { 171 - return j("columnCount") 172 - }, C.cssgradients = function() { 173 - var a = "background-image:", 174 - b = "gradient(linear,left top,right bottom,from(#9f9),to(white));", 175 - c = "linear-gradient(left top,#9f9, white);"; 176 - return d((a + "-webkit- ".split(" ").join(b + a) + x.join(c + a)).slice(0, -a.length)), g(t.backgroundImage, "gradient") 177 - }, C.cssreflections = function() { 178 - return j("boxReflect") 179 - }, C.csstransforms = function() { 180 - return !!j("transform") 181 - }, C.csstransforms3d = function() { 182 - var a = !!j("perspective"); 183 - return a && "webkitPerspective" in q.style && H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function(b, c) { 184 - a = 9 === b.offsetLeft && 3 === b.offsetHeight 185 - }), a 186 - }, C.csstransitions = function() { 187 - return j("transition") 188 - }, C.fontface = function() { 189 - var a; 190 - return H('@font-face {font-family:"font";src:url("https://")}', function(c, d) { 191 - var e = b.getElementById("smodernizr"), 192 - f = e.sheet || e.styleSheet, 193 - g = f ? f.cssRules && f.cssRules[0] ? f.cssRules[0].cssText : f.cssText || "" : ""; 194 - a = /src/i.test(g) && 0 === g.indexOf(d.split(" ")[0]) 195 - }), a 196 - }, C.generatedcontent = function() { 197 - var a; 198 - return H(["#", r, "{font:0/0 a}#", r, ':after{content:"', v, '";visibility:hidden;font:3px/1 a}'].join(""), function(b) { 199 - a = b.offsetHeight >= 3 200 - }), a 201 - }, C.video = function() { 202 - var a = b.createElement("video"), 203 - c = !1; 204 - try { 205 - (c = !!a.canPlayType) && (c = new Boolean(c), c.ogg = a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), c.h264 = a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), c.webm = a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, "")) 206 - } catch (d) {} 207 - return c 208 - }, C.audio = function() { 209 - var a = b.createElement("audio"), 210 - c = !1; 211 - try { 212 - (c = !!a.canPlayType) && (c = new Boolean(c), c.ogg = a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), c.mp3 = a.canPlayType("audio/mpeg;").replace(/^no$/, ""), c.wav = a.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), c.m4a = (a.canPlayType("audio/x-m4a;") || a.canPlayType("audio/aac;")).replace(/^no$/, "")) 213 - } catch (d) {} 214 - return c 215 - }, C.localstorage = function() { 216 - try { 217 - return localStorage.setItem(r, r), localStorage.removeItem(r), !0 218 - } catch (a) { 219 - return !1 220 - } 221 - }, C.sessionstorage = function() { 222 - try { 223 - return sessionStorage.setItem(r, r), sessionStorage.removeItem(r), !0 224 - } catch (a) { 225 - return !1 226 - } 227 - }, C.webworkers = function() { 228 - return !!a.Worker 229 - }, C.applicationcache = function() { 230 - return !!a.applicationCache 231 - }, C.svg = function() { 232 - return !!b.createElementNS && !!b.createElementNS(B.svg, "svg").createSVGRect 233 - }, C.inlinesvg = function() { 234 - var a = b.createElement("div"); 235 - return a.innerHTML = "<svg/>", (a.firstChild && a.firstChild.namespaceURI) == B.svg 236 - }, C.smil = function() { 237 - return !!b.createElementNS && /SVGAnimate/.test(w.call(b.createElementNS(B.svg, "animate"))) 238 - }, C.svgclippaths = function() { 239 - return !!b.createElementNS && /SVGClipPath/.test(w.call(b.createElementNS(B.svg, "clipPath"))) 240 - }; 241 - for (var K in C) m(C, K) && (l = K.toLowerCase(), o[l] = C[K](), F.push((o[l] ? "" : "no-") + l)); 242 - return o.input || k(), o.addTest = function(a, b) { 243 - if ("object" == typeof a) 244 - for (var d in a) m(a, d) && o.addTest(d, a[d]); 245 - else { 246 - if (a = a.toLowerCase(), o[a] !== c) return o; 247 - b = "function" == typeof b ? b() : b, "undefined" != typeof p && p && (q.className += " " + (b ? "" : "no-") + a), o[a] = b 248 - } 249 - return o 250 - }, d(""), s = u = null, 251 - function(a, b) { 252 - function c(a, b) { 253 - var c = a.createElement("p"), 254 - d = a.getElementsByTagName("head")[0] || a.documentElement; 255 - return c.innerHTML = "x<style>" + b + "</style>", d.insertBefore(c.lastChild, d.firstChild) 256 - } 257 - 258 - function d() { 259 - var a = r.elements; 260 - return "string" == typeof a ? a.split(" ") : a 261 - } 262 - 263 - function e(a) { 264 - var b = q[a[o]]; 265 - return b || (b = {}, p++, a[o] = p, q[p] = b), b 266 - } 267 - 268 - function f(a, c, d) { 269 - if (c || (c = b), k) return c.createElement(a); 270 - d || (d = e(c)); 271 - var f; 272 - return f = d.cache[a] ? d.cache[a].cloneNode() : n.test(a) ? (d.cache[a] = d.createElem(a)).cloneNode() : d.createElem(a), f.canHaveChildren && !m.test(a) ? d.frag.appendChild(f) : f 273 - } 274 - 275 - function g(a, c) { 276 - if (a || (a = b), k) return a.createDocumentFragment(); 277 - c = c || e(a); 278 - for (var f = c.frag.cloneNode(), g = 0, h = d(), i = h.length; i > g; g++) f.createElement(h[g]); 279 - return f 280 - } 281 - 282 - function h(a, b) { 283 - b.cache || (b.cache = {}, b.createElem = a.createElement, b.createFrag = a.createDocumentFragment, b.frag = b.createFrag()), a.createElement = function(c) { 284 - return r.shivMethods ? f(c, a, b) : b.createElem(c) 285 - }, a.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + d().join().replace(/\w+/g, function(a) { 286 - return b.createElem(a), b.frag.createElement(a), 'c("' + a + '")' 287 - }) + ");return n}")(r, b.frag) 288 - } 289 - 290 - function i(a) { 291 - a || (a = b); 292 - var d = e(a); 293 - return r.shivCSS && !j && !d.hasCSS && (d.hasCSS = !!c(a, "article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")), k || h(a, d), a 294 - } 295 - var j, k, l = a.html5 || {}, 296 - m = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, 297 - n = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, 298 - o = "_html5shiv", 299 - p = 0, 300 - q = {}; 301 - ! function() { 302 - try { 303 - var a = b.createElement("a"); 304 - a.innerHTML = "<xyz></xyz>", j = "hidden" in a, k = 1 == a.childNodes.length || function() { 305 - b.createElement("a"); 306 - var a = b.createDocumentFragment(); 307 - return "undefined" == typeof a.cloneNode || "undefined" == typeof a.createDocumentFragment || "undefined" == typeof a.createElement 308 - }() 309 - } catch (c) { 310 - j = !0, k = !0 311 - } 312 - }(); 313 - var r = { 314 - elements: l.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video", 315 - shivCSS: l.shivCSS !== !1, 316 - supportsUnknownElements: k, 317 - shivMethods: l.shivMethods !== !1, 318 - type: "default", 319 - shivDocument: i, 320 - createElement: f, 321 - createDocumentFragment: g 322 - }; 323 - a.html5 = r, i(b) 324 - }(this, b), o._version = n, o._prefixes = x, o._domPrefixes = A, o._cssomPrefixes = z, o.hasEvent = I, o.testProp = function(a) { 325 - return h([a]) 326 - }, o.testAllProps = j, o.testStyles = H, q.className = q.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (p ? " js " + F.join(" ") : ""), o 327 - }(this, this.document), 328 - function(a, b, c) { 329 - function d(a) { 330 - return "[object Function]" == q.call(a) 331 - } 332 - 333 - function e(a) { 334 - return "string" == typeof a 335 - } 336 - 337 - function f() {} 338 - 339 - function g(a) { 340 - return !a || "loaded" == a || "complete" == a || "uninitialized" == a 341 - } 342 - 343 - function h() { 344 - var a = r.shift(); 345 - s = 1, a ? a.t ? o(function() { 346 - ("c" == a.t ? m.injectCss : m.injectJs)(a.s, 0, a.a, a.x, a.e, 1) 347 - }, 0) : (a(), h()) : s = 0 348 - } 349 - 350 - function i(a, c, d, e, f, i, j) { 351 - function k(b) { 352 - if (!n && g(l.readyState) && (t.r = n = 1, !s && h(), l.onload = l.onreadystatechange = null, b)) { 353 - "img" != a && o(function() { 354 - v.removeChild(l) 355 - }, 50); 356 - for (var d in A[c]) A[c].hasOwnProperty(d) && A[c][d].onload() 357 - } 358 - } 359 - var j = j || m.errorTimeout, 360 - l = b.createElement(a), 361 - n = 0, 362 - q = 0, 363 - t = { 364 - t: d, 365 - s: c, 366 - e: f, 367 - a: i, 368 - x: j 369 - }; 370 - 1 === A[c] && (q = 1, A[c] = []), "object" == a ? l.data = c : (l.src = c, l.type = a), l.width = l.height = "0", l.onerror = l.onload = l.onreadystatechange = function() { 371 - k.call(this, q) 372 - }, r.splice(e, 0, t), "img" != a && (q || 2 === A[c] ? (v.insertBefore(l, u ? null : p), o(k, j)) : A[c].push(l)) 373 - } 374 - 375 - function j(a, b, c, d, f) { 376 - return s = 0, b = b || "j", e(a) ? i("c" == b ? x : w, a, b, this.i++, c, d, f) : (r.splice(this.i++, 0, a), 1 == r.length && h()), this 377 - } 378 - 379 - function k() { 380 - var a = m; 381 - return a.loader = { 382 - load: j, 383 - i: 0 384 - }, a 385 - } 386 - var l, m, n = b.documentElement, 387 - o = a.setTimeout, 388 - p = b.getElementsByTagName("script")[0], 389 - q = {}.toString, 390 - r = [], 391 - s = 0, 392 - t = "MozAppearance" in n.style, 393 - u = t && !!b.createRange().compareNode, 394 - v = u ? n : p.parentNode, 395 - n = a.opera && "[object Opera]" == q.call(a.opera), 396 - n = !!b.attachEvent && !n, 397 - w = t ? "object" : n ? "script" : "img", 398 - x = n ? "script" : w, 399 - y = Array.isArray || function(a) { 400 - return "[object Array]" == q.call(a) 401 - }, 402 - z = [], 403 - A = {}, 404 - B = { 405 - timeout: function(a, b) { 406 - return b.length && (a.timeout = b[0]), a 407 - } 408 - }; 409 - m = function(a) { 410 - function b(a) { 411 - var b, c, d, a = a.split("!"), 412 - e = z.length, 413 - f = a.pop(), 414 - g = a.length, 415 - f = { 416 - url: f, 417 - origUrl: f, 418 - prefixes: a 419 - }; 420 - for (c = 0; g > c; c++) d = a[c].split("="), (b = B[d.shift()]) && (f = b(f, d)); 421 - for (c = 0; e > c; c++) f = z[c](f); 422 - return f 423 - } 424 - 425 - function g(a, e, f, g, h) { 426 - var i = b(a), 427 - j = i.autoCallback; 428 - i.url.split(".").pop().split("?").shift(), i.bypass || (e && (e = d(e) ? e : e[a] || e[g] || e[a.split("/").pop().split("?")[0]]), i.instead ? i.instead(a, e, f, g, h) : (A[i.url] ? i.noexec = !0 : A[i.url] = 1, f.load(i.url, i.forceCSS || !i.forceJS && "css" == i.url.split(".").pop().split("?").shift() ? "c" : c, i.noexec, i.attrs, i.timeout), (d(e) || d(j)) && f.load(function() { 429 - k(), e && e(i.origUrl, h, g), j && j(i.origUrl, h, g), A[i.url] = 2 430 - }))) 431 - } 432 - 433 - function h(a, b) { 434 - function c(a, c) { 435 - if (a) { 436 - if (e(a)) c || (l = function() { 437 - var a = [].slice.call(arguments); 438 - m.apply(this, a), n() 439 - }), g(a, l, b, 0, j); 440 - else if (Object(a) === a) 441 - for (i in h = function() { 442 - var b, c = 0; 443 - for (b in a) a.hasOwnProperty(b) && c++; 444 - return c 445 - }(), a) a.hasOwnProperty(i) && (!c && !--h && (d(l) ? l = function() { 446 - var a = [].slice.call(arguments); 447 - m.apply(this, a), n() 448 - } : l[i] = function(a) { 449 - return function() { 450 - var b = [].slice.call(arguments); 451 - a && a.apply(this, b), n() 452 - } 453 - }(m[i])), g(a[i], l, b, i, j)) 454 - } else !c && n() 455 - } 456 - var h, i, j = !!a.test, 457 - k = a.load || a.both, 458 - l = a.callback || f, 459 - m = l, 460 - n = a.complete || f; 461 - c(j ? a.yep : a.nope, !!k), k && c(k) 462 - } 463 - var i, j, l = this.yepnope.loader; 464 - if (e(a)) g(a, 0, l, 0); 465 - else if (y(a)) 466 - for (i = 0; i < a.length; i++) j = a[i], e(j) ? g(j, 0, l, 0) : y(j) ? m(j) : Object(j) === j && h(j, l); 467 - else Object(a) === a && h(a, l) 468 - }, m.addPrefix = function(a, b) { 469 - B[a] = b 470 - }, m.addFilter = function(a) { 471 - z.push(a) 472 - }, m.errorTimeout = 1e4, null == b.readyState && b.addEventListener && (b.readyState = "loading", b.addEventListener("DOMContentLoaded", l = function() { 473 - b.removeEventListener("DOMContentLoaded", l, 0), b.readyState = "complete" 474 - }, 0)), a.yepnope = k(), a.yepnope.executeStack = h, a.yepnope.injectJs = function(a, c, d, e, i, j) { 475 - var k, l, n = b.createElement("script"), 476 - e = e || m.errorTimeout; 477 - n.src = a; 478 - for (l in d) n.setAttribute(l, d[l]); 479 - c = j ? h : c || f, n.onreadystatechange = n.onload = function() { 480 - !k && g(n.readyState) && (k = 1, c(), n.onload = n.onreadystatechange = null) 481 - }, o(function() { 482 - k || (k = 1, c(1)) 483 - }, e), i ? n.onload() : p.parentNode.insertBefore(n, p) 484 - }, a.yepnope.injectCss = function(a, c, d, e, g, i) { 485 - var j, e = b.createElement("link"), 486 - c = i ? h : c || f; 487 - e.href = a, e.rel = "stylesheet", e.type = "text/css"; 488 - for (j in d) e.setAttribute(j, d[j]); 489 - g || (p.parentNode.insertBefore(e, p), o(c, 0)) 490 - } 491 - }(this, document), Modernizr.load = function() { 492 - yepnope.apply(window, [].slice.call(arguments, 0)) 493 - }, window.matchMedia = window.matchMedia || function(a, b) { 494 - "use strict"; 495 - var c, d = a.documentElement, 496 - e = d.firstElementChild || d.firstChild, 497 - f = a.createElement("body"), 498 - g = a.createElement("div"); 499 - return g.id = "mq-test-1", g.style.cssText = "position:absolute;top:-100em", f.style.background = "none", f.appendChild(g), 500 - function(a) { 501 - return g.innerHTML = '&shy;<style media="' + a + '"> #mq-test-1 { width: 42px; }</style>', d.insertBefore(f, e), c = 42 === g.offsetWidth, d.removeChild(f), { 502 - matches: c, 503 - media: a 504 - } 505 - } 506 - }(document), 507 - function(a) { 508 - "use strict"; 509 - a.picturefill = function() { 510 - for (var b = a.document.getElementsByTagName("div"), c = 0, d = b.length; d > c; c++) 511 - if (null !== b[c].getAttribute("data-picture")) { 512 - for (var e = b[c].getElementsByTagName("div"), f = [], g = 0, h = e.length; h > g; g++) { 513 - var i = e[g].getAttribute("data-media"); 514 - (!i || a.matchMedia && a.matchMedia(i).matches) && f.push(e[g]) 515 - } 516 - var j = b[c].getElementsByTagName("img")[0]; 517 - if (f.length) { 518 - if (!j) { 519 - var k = f.pop(); 520 - j = a.document.createElement("img"), j.alt = b[c].getAttribute("data-alt"), j.className = b[c].getAttribute("data-class"), k.getAttribute("data-width") && (j.width = k.getAttribute("data-width")), b[c].appendChild(j), j.src = k.getAttribute("data-src") 521 - } 522 - } else j && b[c].removeChild(j) 523 - } 524 - }, a.addEventListener ? (a.addEventListener("resize", a.picturefill, !1), a.addEventListener("DOMContentLoaded", function() { 525 - a.picturefill(), a.removeEventListener("load", a.picturefill, !1) 526 - }, !1), a.addEventListener("load", a.picturefill, !1)) : a.attachEvent && a.attachEvent("onload", a.picturefill) 527 - }(this), 528 - function(a) { 529 - "use strict"; 530 - a.addEventListener("load", function() { 531 - var b = !1; 532 - if (a.matchMedia) { 533 - var c = a.matchMedia("only screen and (-moz-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3), only screen and (min-resolution: 1.3dppx)"); 534 - c && c.matches && (b = !0) 535 - } 536 - "undefined" != typeof projects && document.images && projects.forEach(function(a, c) { 537 - "undefined" != typeof a.assets && a.assets.forEach(function(a, c) { 538 - b && a.content_url_x2 ? (new Image).src = a.content_url_x2 : a.content_url && ((new Image).src = a.content_url), a.full_url && ((new Image).src = a.full_url) 539 - }) 540 - }) 541 - }) 1 + 2 + window.Modernizr = function(a, b, c) { 3 + function d(a) { 4 + t.cssText = a 5 + } 6 + 7 + function e(a, b) { 8 + return d(x.join(a + ";") + (b || "")) 9 + } 10 + 11 + function f(a, b) { 12 + return typeof a === b 13 + } 14 + 15 + function g(a, b) { 16 + return !!~("" + a).indexOf(b) 17 + } 18 + 19 + function h(a, b) { 20 + for (var d in a) { 21 + var e = a[d]; 22 + if (!g(e, "-") && t[e] !== c) return "pfx" == b ? e : !0 23 + } 24 + return !1 25 + } 26 + 27 + function i(a, b, d) { 28 + for (var e in a) { 29 + var g = b[a[e]]; 30 + if (g !== c) return d === !1 ? a[e] : f(g, "function") ? g.bind(d || b) : g 31 + } 32 + return !1 33 + } 34 + 35 + function j(a, b, c) { 36 + var d = a.charAt(0).toUpperCase() + a.slice(1), 37 + e = (a + " " + z.join(d + " ") + d).split(" "); 38 + return f(b, "string") || f(b, "undefined") ? h(e, b) : (e = (a + " " + A.join(d + " ") + d).split(" "), i(e, b, c)) 39 + } 40 + 41 + function k() { 42 + o.input = function(c) { 43 + for (var d = 0, e = c.length; e > d; d++) E[c[d]] = c[d] in u; 44 + return E.list && (E.list = !!b.createElement("datalist") && !!a.HTMLDataListElement), E 45 + }("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")), o.inputtypes = function(a) { 46 + for (var d, e, f, g = 0, h = a.length; h > g; g++) u.setAttribute("type", e = a[g]), d = "text" !== u.type, d && (u.value = v, u.style.cssText = "position:absolute;visibility:hidden;", /^range$/.test(e) && u.style.WebkitAppearance !== c ? (q.appendChild(u), f = b.defaultView, d = f.getComputedStyle && "textfield" !== f.getComputedStyle(u, null).WebkitAppearance && 0 !== u.offsetHeight, q.removeChild(u)) : /^(search|tel)$/.test(e) || (d = /^(url|email)$/.test(e) ? u.checkValidity && u.checkValidity() === !1 : u.value != v)), D[a[g]] = !!d; 47 + return D 48 + }("search tel url email datetime date month week time datetime-local number range color".split(" ")) 49 + } 50 + var l, m, n = "2.6.2", 51 + o = {}, 52 + p = !0, 53 + q = b.documentElement, 54 + r = "modernizr", 55 + s = b.createElement(r), 56 + t = s.style, 57 + u = b.createElement("input"), 58 + v = ":)", 59 + w = {}.toString, 60 + x = " -webkit- -moz- -o- -ms- ".split(" "), 61 + y = "Webkit Moz O ms", 62 + z = y.split(" "), 63 + A = y.toLowerCase().split(" "), 64 + B = { 65 + svg: "http://www.w3.org/2000/svg" 66 + }, 67 + C = {}, 68 + D = {}, 69 + E = {}, 70 + F = [], 71 + G = F.slice, 72 + H = function(a, c, d, e) { 73 + var f, g, h, i, j = b.createElement("div"), 74 + k = b.body, 75 + l = k || b.createElement("body"); 76 + if (parseInt(d, 10)) 77 + for (; d--;) h = b.createElement("div"), h.id = e ? e[d] : r + (d + 1), j.appendChild(h); 78 + return f = ["&#173;", '<style id="s', r, '">', a, "</style>"].join(""), j.id = r, (k ? j : l).innerHTML += f, l.appendChild(j), k || (l.style.background = "", l.style.overflow = "hidden", i = q.style.overflow, q.style.overflow = "hidden", q.appendChild(l)), g = c(j, a), k ? j.parentNode.removeChild(j) : (l.parentNode.removeChild(l), q.style.overflow = i), !!g 79 + }, 80 + I = function() { 81 + function a(a, e) { 82 + e = e || b.createElement(d[a] || "div"), a = "on" + a; 83 + var g = a in e; 84 + return g || (e.setAttribute || (e = b.createElement("div")), e.setAttribute && e.removeAttribute && (e.setAttribute(a, ""), g = f(e[a], "function"), f(e[a], "undefined") || (e[a] = c), e.removeAttribute(a))), e = null, g 85 + } 86 + var d = { 87 + select: "input", 88 + change: "input", 89 + submit: "form", 90 + reset: "form", 91 + error: "img", 92 + load: "img", 93 + abort: "img" 94 + }; 95 + return a 96 + }(), 97 + J = {}.hasOwnProperty; 98 + m = f(J, "undefined") || f(J.call, "undefined") ? function(a, b) { 99 + return b in a && f(a.constructor.prototype[b], "undefined") 100 + } : function(a, b) { 101 + return J.call(a, b) 102 + }, Function.prototype.bind || (Function.prototype.bind = function(a) { 103 + var b = this; 104 + if ("function" != typeof b) throw new TypeError; 105 + var c = G.call(arguments, 1), 106 + d = function() { 107 + if (this instanceof d) { 108 + var e = function() {}; 109 + e.prototype = b.prototype; 110 + var f = new e, 111 + g = b.apply(f, c.concat(G.call(arguments))); 112 + return Object(g) === g ? g : f 113 + } 114 + return b.apply(a, c.concat(G.call(arguments))) 115 + }; 116 + return d 117 + }), C.flexbox = function() { 118 + return j("flexWrap") 119 + }, C.flexboxlegacy = function() { 120 + return j("boxDirection") 121 + }, C.canvas = function() { 122 + var a = b.createElement("canvas"); 123 + return !!a.getContext && !!a.getContext("2d") 124 + }, C.canvastext = function() { 125 + return !!o.canvas && !!f(b.createElement("canvas").getContext("2d").fillText, "function") 126 + }, C.webgl = function() { 127 + return !!a.WebGLRenderingContext 128 + }, C.touch = function() { 129 + var c; 130 + return "ontouchstart" in a || a.DocumentTouch && b instanceof DocumentTouch ? c = !0 : H(["@media (", x.join("touch-enabled),("), r, ")", "{#modernizr{top:9px;position:absolute}}"].join(""), function(a) { 131 + c = 9 === a.offsetTop 132 + }), c 133 + }, C.geolocation = function() { 134 + return "geolocation" in navigator 135 + }, C.postmessage = function() { 136 + return !!a.postMessage 137 + }, C.websqldatabase = function() { 138 + return !!a.openDatabase 139 + }, C.indexedDB = function() { 140 + return !!j("indexedDB", a) 141 + }, C.hashchange = function() { 142 + return I("hashchange", a) && (b.documentMode === c || b.documentMode > 7) 143 + }, C.history = function() { 144 + return !!a.history && !!history.pushState 145 + }, C.draganddrop = function() { 146 + var a = b.createElement("div"); 147 + return "draggable" in a || "ondragstart" in a && "ondrop" in a 148 + }, C.websockets = function() { 149 + return "WebSocket" in a || "MozWebSocket" in a 150 + }, C.rgba = function() { 151 + return d("background-color:rgba(150,255,150,.5)"), g(t.backgroundColor, "rgba") 152 + }, C.hsla = function() { 153 + return d("background-color:hsla(120,40%,100%,.5)"), g(t.backgroundColor, "rgba") || g(t.backgroundColor, "hsla") 154 + }, C.multiplebgs = function() { 155 + return d("background:url(https://),url(https://),red url(https://)"), /(url\s*\(.*?){3}/.test(t.background) 156 + }, C.backgroundsize = function() { 157 + return j("backgroundSize") 158 + }, C.borderimage = function() { 159 + return j("borderImage") 160 + }, C.borderradius = function() { 161 + return j("borderRadius") 162 + }, C.boxshadow = function() { 163 + return j("boxShadow") 164 + }, C.textshadow = function() { 165 + return "" === b.createElement("div").style.textShadow 166 + }, C.opacity = function() { 167 + return e("opacity:.55"), /^0.55$/.test(t.opacity) 168 + }, C.cssanimations = function() { 169 + return j("animationName") 170 + }, C.csscolumns = function() { 171 + return j("columnCount") 172 + }, C.cssgradients = function() { 173 + var a = "background-image:", 174 + b = "gradient(linear,left top,right bottom,from(#9f9),to(white));", 175 + c = "linear-gradient(left top,#9f9, white);"; 176 + return d((a + "-webkit- ".split(" ").join(b + a) + x.join(c + a)).slice(0, -a.length)), g(t.backgroundImage, "gradient") 177 + }, C.cssreflections = function() { 178 + return j("boxReflect") 179 + }, C.csstransforms = function() { 180 + return !!j("transform") 181 + }, C.csstransforms3d = function() { 182 + var a = !!j("perspective"); 183 + return a && "webkitPerspective" in q.style && H("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}", function(b, c) { 184 + a = 9 === b.offsetLeft && 3 === b.offsetHeight 185 + }), a 186 + }, C.csstransitions = function() { 187 + return j("transition") 188 + }, C.fontface = function() { 189 + var a; 190 + return H('@font-face {font-family:"font";src:url("https://")}', function(c, d) { 191 + var e = b.getElementById("smodernizr"), 192 + f = e.sheet || e.styleSheet, 193 + g = f ? f.cssRules && f.cssRules[0] ? f.cssRules[0].cssText : f.cssText || "" : ""; 194 + a = /src/i.test(g) && 0 === g.indexOf(d.split(" ")[0]) 195 + }), a 196 + }, C.generatedcontent = function() { 197 + var a; 198 + return H(["#", r, "{font:0/0 a}#", r, ':after{content:"', v, '";visibility:hidden;font:3px/1 a}'].join(""), function(b) { 199 + a = b.offsetHeight >= 3 200 + }), a 201 + }, C.video = function() { 202 + var a = b.createElement("video"), 203 + c = !1; 204 + try { 205 + (c = !!a.canPlayType) && (c = new Boolean(c), c.ogg = a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, ""), c.h264 = a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, ""), c.webm = a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, "")) 206 + } catch (d) {} 207 + return c 208 + }, C.audio = function() { 209 + var a = b.createElement("audio"), 210 + c = !1; 211 + try { 212 + (c = !!a.canPlayType) && (c = new Boolean(c), c.ogg = a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, ""), c.mp3 = a.canPlayType("audio/mpeg;").replace(/^no$/, ""), c.wav = a.canPlayType('audio/wav; codecs="1"').replace(/^no$/, ""), c.m4a = (a.canPlayType("audio/x-m4a;") || a.canPlayType("audio/aac;")).replace(/^no$/, "")) 213 + } catch (d) {} 214 + return c 215 + }, C.localstorage = function() { 216 + try { 217 + return localStorage.setItem(r, r), localStorage.removeItem(r), !0 218 + } catch (a) { 219 + return !1 220 + } 221 + }, C.sessionstorage = function() { 222 + try { 223 + return sessionStorage.setItem(r, r), sessionStorage.removeItem(r), !0 224 + } catch (a) { 225 + return !1 226 + } 227 + }, C.webworkers = function() { 228 + return !!a.Worker 229 + }, C.applicationcache = function() { 230 + return !!a.applicationCache 231 + }, C.svg = function() { 232 + return !!b.createElementNS && !!b.createElementNS(B.svg, "svg").createSVGRect 233 + }, C.inlinesvg = function() { 234 + var a = b.createElement("div"); 235 + return a.innerHTML = "<svg/>", (a.firstChild && a.firstChild.namespaceURI) == B.svg 236 + }, C.smil = function() { 237 + return !!b.createElementNS && /SVGAnimate/.test(w.call(b.createElementNS(B.svg, "animate"))) 238 + }, C.svgclippaths = function() { 239 + return !!b.createElementNS && /SVGClipPath/.test(w.call(b.createElementNS(B.svg, "clipPath"))) 240 + }; 241 + for (var K in C) m(C, K) && (l = K.toLowerCase(), o[l] = C[K](), F.push((o[l] ? "" : "no-") + l)); 242 + return o.input || k(), o.addTest = function(a, b) { 243 + if ("object" == typeof a) 244 + for (var d in a) m(a, d) && o.addTest(d, a[d]); 245 + else { 246 + if (a = a.toLowerCase(), o[a] !== c) return o; 247 + b = "function" == typeof b ? b() : b, "undefined" != typeof p && p && (q.className += " " + (b ? "" : "no-") + a), o[a] = b 248 + } 249 + return o 250 + }, d(""), s = u = null, 251 + function(a, b) { 252 + function c(a, b) { 253 + var c = a.createElement("p"), 254 + d = a.getElementsByTagName("head")[0] || a.documentElement; 255 + return c.innerHTML = "x<style>" + b + "</style>", d.insertBefore(c.lastChild, d.firstChild) 256 + } 257 + 258 + function d() { 259 + var a = r.elements; 260 + return "string" == typeof a ? a.split(" ") : a 261 + } 262 + 263 + function e(a) { 264 + var b = q[a[o]]; 265 + return b || (b = {}, p++, a[o] = p, q[p] = b), b 266 + } 267 + 268 + function f(a, c, d) { 269 + if (c || (c = b), k) return c.createElement(a); 270 + d || (d = e(c)); 271 + var f; 272 + return f = d.cache[a] ? d.cache[a].cloneNode() : n.test(a) ? (d.cache[a] = d.createElem(a)).cloneNode() : d.createElem(a), f.canHaveChildren && !m.test(a) ? d.frag.appendChild(f) : f 273 + } 274 + 275 + function g(a, c) { 276 + if (a || (a = b), k) return a.createDocumentFragment(); 277 + c = c || e(a); 278 + for (var f = c.frag.cloneNode(), g = 0, h = d(), i = h.length; i > g; g++) f.createElement(h[g]); 279 + return f 280 + } 281 + 282 + function h(a, b) { 283 + b.cache || (b.cache = {}, b.createElem = a.createElement, b.createFrag = a.createDocumentFragment, b.frag = b.createFrag()), a.createElement = function(c) { 284 + return r.shivMethods ? f(c, a, b) : b.createElem(c) 285 + }, a.createDocumentFragment = Function("h,f", "return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&(" + d().join().replace(/\w+/g, function(a) { 286 + return b.createElem(a), b.frag.createElement(a), 'c("' + a + '")' 287 + }) + ");return n}")(r, b.frag) 288 + } 289 + 290 + function i(a) { 291 + a || (a = b); 292 + var d = e(a); 293 + return r.shivCSS && !j && !d.hasCSS && (d.hasCSS = !!c(a, "article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")), k || h(a, d), a 294 + } 295 + var j, k, l = a.html5 || {}, 296 + m = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i, 297 + n = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i, 298 + o = "_html5shiv", 299 + p = 0, 300 + q = {}; 301 + ! function() { 302 + try { 303 + var a = b.createElement("a"); 304 + a.innerHTML = "<xyz></xyz>", j = "hidden" in a, k = 1 == a.childNodes.length || function() { 305 + b.createElement("a"); 306 + var a = b.createDocumentFragment(); 307 + return "undefined" == typeof a.cloneNode || "undefined" == typeof a.createDocumentFragment || "undefined" == typeof a.createElement 308 + }() 309 + } catch (c) { 310 + j = !0, k = !0 311 + } 312 + }(); 313 + var r = { 314 + elements: l.elements || "abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video", 315 + shivCSS: l.shivCSS !== !1, 316 + supportsUnknownElements: k, 317 + shivMethods: l.shivMethods !== !1, 318 + type: "default", 319 + shivDocument: i, 320 + createElement: f, 321 + createDocumentFragment: g 322 + }; 323 + a.html5 = r, i(b) 324 + }(this, b), o._version = n, o._prefixes = x, o._domPrefixes = A, o._cssomPrefixes = z, o.hasEvent = I, o.testProp = function(a) { 325 + return h([a]) 326 + }, o.testAllProps = j, o.testStyles = H, q.className = q.className.replace(/(^|\s)no-js(\s|$)/, "$1$2") + (p ? " js " + F.join(" ") : ""), o 327 + }(this, this.document), 328 + function(a, b, c) { 329 + function d(a) { 330 + return "[object Function]" == q.call(a) 331 + } 332 + 333 + function e(a) { 334 + return "string" == typeof a 335 + } 336 + 337 + function f() {} 338 + 339 + function g(a) { 340 + return !a || "loaded" == a || "complete" == a || "uninitialized" == a 341 + } 342 + 343 + function h() { 344 + var a = r.shift(); 345 + s = 1, a ? a.t ? o(function() { 346 + ("c" == a.t ? m.injectCss : m.injectJs)(a.s, 0, a.a, a.x, a.e, 1) 347 + }, 0) : (a(), h()) : s = 0 348 + } 349 + 350 + function i(a, c, d, e, f, i, j) { 351 + function k(b) { 352 + if (!n && g(l.readyState) && (t.r = n = 1, !s && h(), l.onload = l.onreadystatechange = null, b)) { 353 + "img" != a && o(function() { 354 + v.removeChild(l) 355 + }, 50); 356 + for (var d in A[c]) A[c].hasOwnProperty(d) && A[c][d].onload() 357 + } 358 + } 359 + var j = j || m.errorTimeout, 360 + l = b.createElement(a), 361 + n = 0, 362 + q = 0, 363 + t = { 364 + t: d, 365 + s: c, 366 + e: f, 367 + a: i, 368 + x: j 369 + }; 370 + 1 === A[c] && (q = 1, A[c] = []), "object" == a ? l.data = c : (l.src = c, l.type = a), l.width = l.height = "0", l.onerror = l.onload = l.onreadystatechange = function() { 371 + k.call(this, q) 372 + }, r.splice(e, 0, t), "img" != a && (q || 2 === A[c] ? (v.insertBefore(l, u ? null : p), o(k, j)) : A[c].push(l)) 373 + } 374 + 375 + function j(a, b, c, d, f) { 376 + return s = 0, b = b || "j", e(a) ? i("c" == b ? x : w, a, b, this.i++, c, d, f) : (r.splice(this.i++, 0, a), 1 == r.length && h()), this 377 + } 378 + 379 + function k() { 380 + var a = m; 381 + return a.loader = { 382 + load: j, 383 + i: 0 384 + }, a 385 + } 386 + var l, m, n = b.documentElement, 387 + o = a.setTimeout, 388 + p = b.getElementsByTagName("script")[0], 389 + q = {}.toString, 390 + r = [], 391 + s = 0, 392 + t = "MozAppearance" in n.style, 393 + u = t && !!b.createRange().compareNode, 394 + v = u ? n : p.parentNode, 395 + n = a.opera && "[object Opera]" == q.call(a.opera), 396 + n = !!b.attachEvent && !n, 397 + w = t ? "object" : n ? "script" : "img", 398 + x = n ? "script" : w, 399 + y = Array.isArray || function(a) { 400 + return "[object Array]" == q.call(a) 401 + }, 402 + z = [], 403 + A = {}, 404 + B = { 405 + timeout: function(a, b) { 406 + return b.length && (a.timeout = b[0]), a 407 + } 408 + }; 409 + m = function(a) { 410 + function b(a) { 411 + var b, c, d, a = a.split("!"), 412 + e = z.length, 413 + f = a.pop(), 414 + g = a.length, 415 + f = { 416 + url: f, 417 + origUrl: f, 418 + prefixes: a 419 + }; 420 + for (c = 0; g > c; c++) d = a[c].split("="), (b = B[d.shift()]) && (f = b(f, d)); 421 + for (c = 0; e > c; c++) f = z[c](f); 422 + return f 423 + } 424 + 425 + function g(a, e, f, g, h) { 426 + var i = b(a), 427 + j = i.autoCallback; 428 + i.url.split(".").pop().split("?").shift(), i.bypass || (e && (e = d(e) ? e : e[a] || e[g] || e[a.split("/").pop().split("?")[0]]), i.instead ? i.instead(a, e, f, g, h) : (A[i.url] ? i.noexec = !0 : A[i.url] = 1, f.load(i.url, i.forceCSS || !i.forceJS && "css" == i.url.split(".").pop().split("?").shift() ? "c" : c, i.noexec, i.attrs, i.timeout), (d(e) || d(j)) && f.load(function() { 429 + k(), e && e(i.origUrl, h, g), j && j(i.origUrl, h, g), A[i.url] = 2 430 + }))) 431 + } 432 + 433 + function h(a, b) { 434 + function c(a, c) { 435 + if (a) { 436 + if (e(a)) c || (l = function() { 437 + var a = [].slice.call(arguments); 438 + m.apply(this, a), n() 439 + }), g(a, l, b, 0, j); 440 + else if (Object(a) === a) 441 + for (i in h = function() { 442 + var b, c = 0; 443 + for (b in a) a.hasOwnProperty(b) && c++; 444 + return c 445 + }(), a) a.hasOwnProperty(i) && (!c && !--h && (d(l) ? l = function() { 446 + var a = [].slice.call(arguments); 447 + m.apply(this, a), n() 448 + } : l[i] = function(a) { 449 + return function() { 450 + var b = [].slice.call(arguments); 451 + a && a.apply(this, b), n() 452 + } 453 + }(m[i])), g(a[i], l, b, i, j)) 454 + } else !c && n() 455 + } 456 + var h, i, j = !!a.test, 457 + k = a.load || a.both, 458 + l = a.callback || f, 459 + m = l, 460 + n = a.complete || f; 461 + c(j ? a.yep : a.nope, !!k), k && c(k) 462 + } 463 + var i, j, l = this.yepnope.loader; 464 + if (e(a)) g(a, 0, l, 0); 465 + else if (y(a)) 466 + for (i = 0; i < a.length; i++) j = a[i], e(j) ? g(j, 0, l, 0) : y(j) ? m(j) : Object(j) === j && h(j, l); 467 + else Object(a) === a && h(a, l) 468 + }, m.addPrefix = function(a, b) { 469 + B[a] = b 470 + }, m.addFilter = function(a) { 471 + z.push(a) 472 + }, m.errorTimeout = 1e4, null == b.readyState && b.addEventListener && (b.readyState = "loading", b.addEventListener("DOMContentLoaded", l = function() { 473 + b.removeEventListener("DOMContentLoaded", l, 0), b.readyState = "complete" 474 + }, 0)), a.yepnope = k(), a.yepnope.executeStack = h, a.yepnope.injectJs = function(a, c, d, e, i, j) { 475 + var k, l, n = b.createElement("script"), 476 + e = e || m.errorTimeout; 477 + n.src = a; 478 + for (l in d) n.setAttribute(l, d[l]); 479 + c = j ? h : c || f, n.onreadystatechange = n.onload = function() { 480 + !k && g(n.readyState) && (k = 1, c(), n.onload = n.onreadystatechange = null) 481 + }, o(function() { 482 + k || (k = 1, c(1)) 483 + }, e), i ? n.onload() : p.parentNode.insertBefore(n, p) 484 + }, a.yepnope.injectCss = function(a, c, d, e, g, i) { 485 + var j, e = b.createElement("link"), 486 + c = i ? h : c || f; 487 + e.href = a, e.rel = "stylesheet", e.type = "text/css"; 488 + for (j in d) e.setAttribute(j, d[j]); 489 + g || (p.parentNode.insertBefore(e, p), o(c, 0)) 490 + } 491 + }(this, document), Modernizr.load = function() { 492 + yepnope.apply(window, [].slice.call(arguments, 0)) 493 + }, window.matchMedia = window.matchMedia || function(a, b) { 494 + "use strict"; 495 + var c, d = a.documentElement, 496 + e = d.firstElementChild || d.firstChild, 497 + f = a.createElement("body"), 498 + g = a.createElement("div"); 499 + return g.id = "mq-test-1", g.style.cssText = "position:absolute;top:-100em", f.style.background = "none", f.appendChild(g), 500 + function(a) { 501 + return g.innerHTML = '&shy;<style media="' + a + '"> #mq-test-1 { width: 42px; }</style>', d.insertBefore(f, e), c = 42 === g.offsetWidth, d.removeChild(f), { 502 + matches: c, 503 + media: a 504 + } 505 + } 506 + }(document), 507 + function(a) { 508 + "use strict"; 509 + a.picturefill = function() { 510 + for (var b = a.document.getElementsByTagName("div"), c = 0, d = b.length; d > c; c++) 511 + if (null !== b[c].getAttribute("data-picture")) { 512 + for (var e = b[c].getElementsByTagName("div"), f = [], g = 0, h = e.length; h > g; g++) { 513 + var i = e[g].getAttribute("data-media"); 514 + (!i || a.matchMedia && a.matchMedia(i).matches) && f.push(e[g]) 515 + } 516 + var j = b[c].getElementsByTagName("img")[0]; 517 + if (f.length) { 518 + if (!j) { 519 + var k = f.pop(); 520 + j = a.document.createElement("img"), j.alt = b[c].getAttribute("data-alt"), j.className = b[c].getAttribute("data-class"), k.getAttribute("data-width") && (j.width = k.getAttribute("data-width")), b[c].appendChild(j), j.src = k.getAttribute("data-src") 521 + } 522 + } else j && b[c].removeChild(j) 523 + } 524 + }, a.addEventListener ? (a.addEventListener("resize", a.picturefill, !1), a.addEventListener("DOMContentLoaded", function() { 525 + a.picturefill(), a.removeEventListener("load", a.picturefill, !1) 526 + }, !1), a.addEventListener("load", a.picturefill, !1)) : a.attachEvent && a.attachEvent("onload", a.picturefill) 527 + }(this), 528 + function(a) { 529 + "use strict"; 530 + a.addEventListener("load", function() { 531 + var b = !1; 532 + if (a.matchMedia) { 533 + var c = a.matchMedia("only screen and (-moz-min-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3), only screen and (min-resolution: 1.3dppx)"); 534 + c && c.matches && (b = !0) 535 + } 536 + "undefined" != typeof projects && document.images && projects.forEach(function(a, c) { 537 + "undefined" != typeof a.assets && a.assets.forEach(function(a, c) { 538 + b && a.content_url_x2 ? (new Image).src = a.content_url_x2 : a.content_url && ((new Image).src = a.content_url), a.full_url && ((new Image).src = a.full_url) 539 + }) 540 + }) 541 + }) 542 542 }(window);
+41 -41
scripts/nav.js
··· 1 - function getNav() { 2 - return ` 3 - <a href="#cd-nav" class="cd-nav-trigger">Menu 4 - <span class="cd-nav-icon"></span> 5 - <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54"> 6 - <circle fill="transparent" stroke="#90D4C5" stroke-width="2" cx="27" cy="27" r="25" stroke-dasharray="157 157" stroke-dashoffset="157"></circle> 7 - </svg> 8 - </a> 9 - <div id="cd-nav" class="cd-nav"> 10 - <div class="cd-navigation-wrapper"> 11 - <div class="cd-half-block"> 12 - <nav> 13 - <ul class="cd-primary-nav"> 14 - <li><a href="index.html" class="selected">Showcase</a></li> 15 - <li><a href="blog.html">Blog</a></li> 16 - <li><a href="about.html">About</a></li> 17 - <li><a href="contact.html">Contact</a></li> 18 - </ul> 19 - </nav> 20 - </div> 21 - <div class="cd-half-block"> 22 - <address> 23 - <ul class="cd-contact-info"> 24 - <li><a href="mailto:cityboundforest@gmail.com">cityboundforest@gmail.com</a></li> 25 - </ul> 26 - <ul class="cd-contact-socials"> 27 - <li><a href="https://instagram.com/cityboundforest" target="_blank" rel="noopener noreferrer">Instagram</a></li> 28 - <li><a href="https://twitter.com/cityboundforest" target="_blank" rel="noopener noreferrer">Twitter</a></li> 29 - <li><a href="https://facebook.com/cityboundforest" target="_blank" rel="noopener noreferrer">Facebook</a></li> 30 - <li><a href="https://www.youtube.com/channel/UCexbz2BYv_lMV1PP_Pdf7_g" target="_blank" rel="noopener noreferrer">YouTube</a></li> 31 - <li><a href="https://tiktok.com/@cityboundforest" target="_blank" rel="noopener noreferrer">TikTok</a></li> 32 - <li><a href="https://twitch.tv/cityboundforest" target="_blank" rel="noopener noreferrer">Twitch</a></li> 33 - <li><a rel="me" href="https://mastodon.social/@cityboundforest" target="_blank">Mastodon</a></li> 34 - </ul> 35 - </address> 36 - </div> 37 - </div> 38 - </div> 39 - `; 40 - } 41 - 1 + function getNav() { 2 + return ` 3 + <a href="#cd-nav" class="cd-nav-trigger">Menu 4 + <span class="cd-nav-icon"></span> 5 + <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54"> 6 + <circle fill="transparent" stroke="#90D4C5" stroke-width="2" cx="27" cy="27" r="25" stroke-dasharray="157 157" stroke-dashoffset="157"></circle> 7 + </svg> 8 + </a> 9 + <div id="cd-nav" class="cd-nav"> 10 + <div class="cd-navigation-wrapper"> 11 + <div class="cd-half-block"> 12 + <nav> 13 + <ul class="cd-primary-nav"> 14 + <li><a href="index.html" class="selected">Showcase</a></li> 15 + <li><a href="blog.html">Blog</a></li> 16 + <li><a href="about.html">About</a></li> 17 + <li><a href="contact.html">Contact</a></li> 18 + </ul> 19 + </nav> 20 + </div> 21 + <div class="cd-half-block"> 22 + <address> 23 + <ul class="cd-contact-info"> 24 + <li><a href="mailto:cityboundforest@gmail.com">cityboundforest@gmail.com</a></li> 25 + </ul> 26 + <ul class="cd-contact-socials"> 27 + <li><a href="https://instagram.com/cityboundforest" target="_blank" rel="noopener noreferrer">Instagram</a></li> 28 + <li><a href="https://twitter.com/cityboundforest" target="_blank" rel="noopener noreferrer">Twitter</a></li> 29 + <li><a href="https://facebook.com/cityboundforest" target="_blank" rel="noopener noreferrer">Facebook</a></li> 30 + <li><a href="https://www.youtube.com/channel/UCexbz2BYv_lMV1PP_Pdf7_g" target="_blank" rel="noopener noreferrer">YouTube</a></li> 31 + <li><a href="https://tiktok.com/@cityboundforest" target="_blank" rel="noopener noreferrer">TikTok</a></li> 32 + <li><a href="https://twitch.tv/cityboundforest" target="_blank" rel="noopener noreferrer">Twitch</a></li> 33 + <li><a rel="me" href="https://mastodon.social/@cityboundforest" target="_blank">Mastodon</a></li> 34 + </ul> 35 + </address> 36 + </div> 37 + </div> 38 + </div> 39 + `; 40 + } 41 + 42 42 export default getNav;
+31 -31
scripts/nav_anim.js
··· 1 - function setupNavAnim(document) { 2 - document.querySelector('.cd-nav-trigger').addEventListener('click', (e) => { 3 - var isLateralNavAnimating = false; 4 - e.preventDefault(); 5 - 6 - if (!isLateralNavAnimating) { 7 - isLateralNavAnimating = true; 8 - document.body.classList.toggle('navigation-is-open'); 9 - 10 - function checker() { 11 - isLateralNavAnimating = false; 12 - document.querySelectorAll('.cd-navigation-wrapper').forEach((element, key, parent) => { 13 - element.removeEventListener('webkitTransitionEnd', checker, false); 14 - element.removeEventListener('otransitionend', checker, false); 15 - element.removeEventListener('oTransitionEnd', checker, false); 16 - element.removeEventListener('msTransitionEnd', checker, false); 17 - element.removeEventListener('transitionend', checker, false); 18 - }); 19 - } 20 - 21 - document.querySelectorAll('.cd-navigation-wrapper').forEach((element, key, parent) => { 22 - element.addEventListener('webkitTransitionEnd', checker, false); 23 - element.addEventListener('otransitionend', checker, false); 24 - element.addEventListener('oTransitionEnd', checker, false); 25 - element.addEventListener('msTransitionEnd', checker, false); 26 - element.addEventListener('transitionend', checker, false); 27 - }); 28 - } 29 - }, false); 30 - } 31 - 1 + function setupNavAnim(document) { 2 + document.querySelector('.cd-nav-trigger').addEventListener('click', (e) => { 3 + var isLateralNavAnimating = false; 4 + e.preventDefault(); 5 + 6 + if (!isLateralNavAnimating) { 7 + isLateralNavAnimating = true; 8 + document.body.classList.toggle('navigation-is-open'); 9 + 10 + function checker() { 11 + isLateralNavAnimating = false; 12 + document.querySelectorAll('.cd-navigation-wrapper').forEach((element, key, parent) => { 13 + element.removeEventListener('webkitTransitionEnd', checker, false); 14 + element.removeEventListener('otransitionend', checker, false); 15 + element.removeEventListener('oTransitionEnd', checker, false); 16 + element.removeEventListener('msTransitionEnd', checker, false); 17 + element.removeEventListener('transitionend', checker, false); 18 + }); 19 + } 20 + 21 + document.querySelectorAll('.cd-navigation-wrapper').forEach((element, key, parent) => { 22 + element.addEventListener('webkitTransitionEnd', checker, false); 23 + element.addEventListener('otransitionend', checker, false); 24 + element.addEventListener('oTransitionEnd', checker, false); 25 + element.addEventListener('msTransitionEnd', checker, false); 26 + element.addEventListener('transitionend', checker, false); 27 + }); 28 + } 29 + }, false); 30 + } 31 + 32 32 export default setupNavAnim;
+134 -134
scripts/portfolio_item.js
··· 1 - import getBase from './base.js'; 2 - import parseMarkdown from './markdown.js'; 3 - import setupNavAnim from './nav_anim.js'; 4 - import setupLink from './link_setup.js'; 5 - import getProjectData from './project_data.js'; 6 - import generateProject from './portfolio_project.js'; 7 - 8 - var projectNames = ['fourwoods', 'mememachine', 'shutin', 'bulletrush', 'dndcombatsim', 'cansat']; 9 - 10 - function previousProject(e) { 11 - e.preventDefault(); 12 - var projectName = window.location.hash.substring(1); 13 - var anonName = `project-${(projectNames.indexOf(projectName) + 1).toString()}`; 14 - var lastAnonName = `project-${projectNames.indexOf(projectName).toString()}`; 15 - 16 - if (projectNames.indexOf(projectName) == 0) { 17 - window.location = `portfolio-item.html#${projectName}`; 18 - window.scrollTo({top: 0, behavior: 'smooth'}); 19 - } else { 20 - var newProjectName = projectNames[projectNames.indexOf(projectName) - 1]; 21 - window.location = `portfolio-item.html#${newProjectName}`; 22 - window.scrollTo({top: 0, behavior: 'smooth'}); 23 - document.getElementById(anonName).style.transition = 'opacity 0.125s'; 24 - document.getElementById(anonName).style.opacity = 0; 25 - 26 - setTimeout(() => { 27 - document.getElementById(anonName).classList.remove('active-project'); 28 - var projectData = getProjectData(newProjectName); 29 - document.getElementById('skills-label').innerHTML = projectData.skills; 30 - document.getElementById(lastAnonName).style.transition = 'opacity 0.125s'; 31 - document.getElementById(lastAnonName).style.opacity = 1; 32 - 33 - setTimeout(() => { 34 - document.getElementById(lastAnonName).classList.add('active-project'); 35 - }, 125); 36 - }, 125); 37 - } 38 - } 39 - 40 - function nextProject(e) { 41 - e.preventDefault(); 42 - var projectName = window.location.hash.substring(1); 43 - var anonName = `project-${(projectNames.indexOf(projectName) + 1).toString()}`; 44 - var nextAnonName = `project-${(projectNames.indexOf(projectName) + 2).toString()}`; 45 - 46 - if (projectNames.indexOf(projectName) == (projectNames.length - 1)) { 47 - window.location = `portfolio-item.html#${projectName}`; 48 - window.scrollTo({top: 0, behavior: 'smooth'}); 49 - } else { 50 - var newProjectName = projectNames[projectNames.indexOf(projectName) + 1]; 51 - window.location = `portfolio-item.html#${newProjectName}`; 52 - document.getElementById(anonName).style.transition = 'opacity 0.125s'; 53 - document.getElementById(anonName).style.opacity = 0; 54 - 55 - setTimeout(() => { 56 - document.getElementById(anonName).classList.remove('active-project'); 57 - var projectData = getProjectData(newProjectName); 58 - document.getElementById('skills-label').innerHTML = projectData.skills; 59 - document.getElementById(nextAnonName).style.transition = 'opacity 0.125s'; 60 - document.getElementById(nextAnonName).style.opacity = 1; 61 - 62 - setTimeout(() => { 63 - document.getElementById(nextAnonName).classList.add('active-project'); 64 - }, 125); 65 - }, 125); 66 - } 67 - } 68 - 69 - (function () { 70 - document.body.innerHTML = getBase(false, true, false, false); 71 - 72 - document.querySelector('.site-content').innerHTML = ` 73 - <div class="page-desc"> 74 - <h1>Projects</h1> 75 - <p>Skills:</p> 76 - <p id="skills-label"></p> 77 - </div> 78 - `; 79 - 80 - for (var i = 0; i < projectNames.length; i++) { 81 - var projectData = generateProject(projectNames[i], i); 82 - document.querySelector('.site-content').innerHTML += projectData.data; 83 - 84 - for (var j = 0; j < projectData.links.length; j++) { 85 - if (projectData.links[j].href == '') { 86 - document.querySelector(`#project-${(i + 1).toString()} .project-content-container .project-content .table .table-cell`).innerHTML += `<div>${projectData.links[j].title}</div>`; 87 - } else { 88 - document.querySelector(`#project-${(i + 1).toString()} .project-content-container .project-content .table .table-cell`).innerHTML += `<div><a href="${projectData.links[j].href}">${projectData.links[j].title}</a></div>`; 89 - } 90 - } 91 - 92 - for (var j = 0; j < projectData.embeds.length; j++) { 93 - document.querySelector(`#project-${(i + 1).toString()} .project-content-container .project-content .table .table-cell`).innerHTML += ` 94 - <div class="embed embed-16by9"> 95 - <iframe src="${projectData.embeds[j]}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen class="embed-item">Your device does not support iframes.</iframe> 96 - </div> 97 - `; 98 - } 99 - } 100 - 101 - document.getElementById('project-1').classList.add('active-project'); 102 - 103 - document.querySelector('#foot-nav').innerHTML = ` 104 - <ul class="cd-pagination animated-buttons custom-icons"> 105 - <li class="button"><a href="#"><i>Prev</i></a></li> 106 - <li class="button-main"><a href="index.html"><i>Portfolio</i></a></li> 107 - <li class="button"><a href="#"><i>Next</i></a></li> 108 - </ul> 109 - `; 110 - 111 - setupNavAnim(document); 112 - 113 - var projectName = `project-${(projectNames.indexOf(window.location.hash.substring(1)) + 1).toString()}`; 114 - 115 - if (!document.getElementById(projectName).classList.contains('active-project')) { 116 - document.querySelectorAll('.active-project').forEach((element, key, parent) => { 117 - element.classList.remove('active-project'); 118 - }); 119 - 120 - document.getElementById(projectName).classList.add('active-project'); 121 - } 122 - 123 - document.querySelector('.button:first-of-type a').addEventListener('click', previousProject, false); 124 - document.querySelector('.button:last-of-type a').addEventListener('click', nextProject, false); 125 - 126 - document.getElementById('skills-label').innerHTML = getProjectData(window.location.hash.substring(1)).skills; 127 - 128 - parseMarkdown(document); 129 - 130 - setTimeout(() => { 131 - document.body.classList.add('loaded'); 132 - }, 150); 133 - 134 - setupLink(document); 1 + import getBase from './base.js'; 2 + import parseMarkdown from './markdown.js'; 3 + import setupNavAnim from './nav_anim.js'; 4 + import setupLink from './link_setup.js'; 5 + import getProjectData from './project_data.js'; 6 + import generateProject from './portfolio_project.js'; 7 + 8 + var projectNames = ['fourwoods', 'mememachine', 'shutin', 'bulletrush', 'dndcombatsim', 'cansat']; 9 + 10 + function previousProject(e) { 11 + e.preventDefault(); 12 + var projectName = window.location.hash.substring(1); 13 + var anonName = `project-${(projectNames.indexOf(projectName) + 1).toString()}`; 14 + var lastAnonName = `project-${projectNames.indexOf(projectName).toString()}`; 15 + 16 + if (projectNames.indexOf(projectName) == 0) { 17 + window.location = `portfolio-item.html#${projectName}`; 18 + window.scrollTo({top: 0, behavior: 'smooth'}); 19 + } else { 20 + var newProjectName = projectNames[projectNames.indexOf(projectName) - 1]; 21 + window.location = `portfolio-item.html#${newProjectName}`; 22 + window.scrollTo({top: 0, behavior: 'smooth'}); 23 + document.getElementById(anonName).style.transition = 'opacity 0.125s'; 24 + document.getElementById(anonName).style.opacity = 0; 25 + 26 + setTimeout(() => { 27 + document.getElementById(anonName).classList.remove('active-project'); 28 + var projectData = getProjectData(newProjectName); 29 + document.getElementById('skills-label').innerHTML = projectData.skills; 30 + document.getElementById(lastAnonName).style.transition = 'opacity 0.125s'; 31 + document.getElementById(lastAnonName).style.opacity = 1; 32 + 33 + setTimeout(() => { 34 + document.getElementById(lastAnonName).classList.add('active-project'); 35 + }, 125); 36 + }, 125); 37 + } 38 + } 39 + 40 + function nextProject(e) { 41 + e.preventDefault(); 42 + var projectName = window.location.hash.substring(1); 43 + var anonName = `project-${(projectNames.indexOf(projectName) + 1).toString()}`; 44 + var nextAnonName = `project-${(projectNames.indexOf(projectName) + 2).toString()}`; 45 + 46 + if (projectNames.indexOf(projectName) == (projectNames.length - 1)) { 47 + window.location = `portfolio-item.html#${projectName}`; 48 + window.scrollTo({top: 0, behavior: 'smooth'}); 49 + } else { 50 + var newProjectName = projectNames[projectNames.indexOf(projectName) + 1]; 51 + window.location = `portfolio-item.html#${newProjectName}`; 52 + document.getElementById(anonName).style.transition = 'opacity 0.125s'; 53 + document.getElementById(anonName).style.opacity = 0; 54 + 55 + setTimeout(() => { 56 + document.getElementById(anonName).classList.remove('active-project'); 57 + var projectData = getProjectData(newProjectName); 58 + document.getElementById('skills-label').innerHTML = projectData.skills; 59 + document.getElementById(nextAnonName).style.transition = 'opacity 0.125s'; 60 + document.getElementById(nextAnonName).style.opacity = 1; 61 + 62 + setTimeout(() => { 63 + document.getElementById(nextAnonName).classList.add('active-project'); 64 + }, 125); 65 + }, 125); 66 + } 67 + } 68 + 69 + (function () { 70 + document.body.innerHTML = getBase(false, true, false, false); 71 + 72 + document.querySelector('.site-content').innerHTML = ` 73 + <div class="page-desc"> 74 + <h1>Projects</h1> 75 + <p>Skills:</p> 76 + <p id="skills-label"></p> 77 + </div> 78 + `; 79 + 80 + for (var i = 0; i < projectNames.length; i++) { 81 + var projectData = generateProject(projectNames[i], i); 82 + document.querySelector('.site-content').innerHTML += projectData.data; 83 + 84 + for (var j = 0; j < projectData.links.length; j++) { 85 + if (projectData.links[j].href == '') { 86 + document.querySelector(`#project-${(i + 1).toString()} .project-content-container .project-content .table .table-cell`).innerHTML += `<div>${projectData.links[j].title}</div>`; 87 + } else { 88 + document.querySelector(`#project-${(i + 1).toString()} .project-content-container .project-content .table .table-cell`).innerHTML += `<div><a href="${projectData.links[j].href}">${projectData.links[j].title}</a></div>`; 89 + } 90 + } 91 + 92 + for (var j = 0; j < projectData.embeds.length; j++) { 93 + document.querySelector(`#project-${(i + 1).toString()} .project-content-container .project-content .table .table-cell`).innerHTML += ` 94 + <div class="embed embed-16by9"> 95 + <iframe src="${projectData.embeds[j]}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen class="embed-item">Your device does not support iframes.</iframe> 96 + </div> 97 + `; 98 + } 99 + } 100 + 101 + document.getElementById('project-1').classList.add('active-project'); 102 + 103 + document.querySelector('#foot-nav').innerHTML = ` 104 + <ul class="cd-pagination animated-buttons custom-icons"> 105 + <li class="button"><a href="#"><i>Prev</i></a></li> 106 + <li class="button-main"><a href="index.html"><i>Portfolio</i></a></li> 107 + <li class="button"><a href="#"><i>Next</i></a></li> 108 + </ul> 109 + `; 110 + 111 + setupNavAnim(document); 112 + 113 + var projectName = `project-${(projectNames.indexOf(window.location.hash.substring(1)) + 1).toString()}`; 114 + 115 + if (!document.getElementById(projectName).classList.contains('active-project')) { 116 + document.querySelectorAll('.active-project').forEach((element, key, parent) => { 117 + element.classList.remove('active-project'); 118 + }); 119 + 120 + document.getElementById(projectName).classList.add('active-project'); 121 + } 122 + 123 + document.querySelector('.button:first-of-type a').addEventListener('click', previousProject, false); 124 + document.querySelector('.button:last-of-type a').addEventListener('click', nextProject, false); 125 + 126 + document.getElementById('skills-label').innerHTML = getProjectData(window.location.hash.substring(1)).skills; 127 + 128 + parseMarkdown(document); 129 + 130 + setTimeout(() => { 131 + document.body.classList.add('loaded'); 132 + }, 150); 133 + 134 + setupLink(document); 135 135 })();
+32 -32
scripts/portfolio_project.js
··· 1 - import getProjectData from './project_data.js'; 2 - 3 - function generateProject(name, index) { 4 - var projectData = getProjectData(name); 5 - 6 - return {data: ` 7 - <article class="project project-page cf" id="project-${(index + 1).toString()}"> 8 - <div class="thumb"> 9 - <div data-picture data-alt=""> 10 - <div data-src="img/${name}.png"></div> 11 - <!--if (lt IE 9) & (!IEMobile)]> 12 - <div data-src="img/${name}.png">/div> 13 - <![endif]--> 14 - <noscript> 15 - <img src="img/${name}.png" alt="" /> 16 - </noscript> 17 - </div> 18 - </div> 19 - <div class="project-content-container"> 20 - <div class="project-content"> 21 - <div class="table"> 22 - <div class="table-cell"> 23 - <h2 class="thumbnail-title">${projectData.title}</h2> 24 - <p>${projectData.longDescription}</p> 25 - </div> 26 - </div> 27 - </div> 28 - </div> 29 - </article> 30 - `, links: projectData.links, embeds: projectData.embeds}; 31 - } 32 - 1 + import getProjectData from './project_data.js'; 2 + 3 + function generateProject(name, index) { 4 + var projectData = getProjectData(name); 5 + 6 + return {data: ` 7 + <article class="project project-page cf" id="project-${(index + 1).toString()}"> 8 + <div class="thumb"> 9 + <div data-picture data-alt=""> 10 + <div data-src="img/${name}.png"></div> 11 + <!--if (lt IE 9) & (!IEMobile)]> 12 + <div data-src="img/${name}.png">/div> 13 + <![endif]--> 14 + <noscript> 15 + <img src="img/${name}.png" alt="" /> 16 + </noscript> 17 + </div> 18 + </div> 19 + <div class="project-content-container"> 20 + <div class="project-content"> 21 + <div class="table"> 22 + <div class="table-cell"> 23 + <h2 class="thumbnail-title">${projectData.title}</h2> 24 + <p>${projectData.longDescription}</p> 25 + </div> 26 + </div> 27 + </div> 28 + </div> 29 + </article> 30 + `, links: projectData.links, embeds: projectData.embeds}; 31 + } 32 + 33 33 export default generateProject;
+85 -77
scripts/posts.js
··· 1 - function getPosts() { 2 - return [ 3 - { 4 - id: 'updates', 5 - title: 'Updates!', 6 - date: '2022 January 02', 7 - author: 'Cass Forest', 8 - content: 'Hello everyone! I\'m here with some updates for my creative career, and what better place to do it than here, on my blog, which I really haven\'t used all that much last year since putting it up on my website. In any case, I wanted to make some kind of announcement at the beginning of the year to sort of talk about what I want to do this year and also some goals I\'d like to achieve professionally with my content creation.\n\n#### My !1[**YouTube**] and !1[**Twitch**] Channels\n\nI plan to continue streaming as I have been and am actually introducing a new series to my Twitch channel which you\'ll hear about at the beginning of next week (stay tuned to my Twitter for information on that). I have actually figured out a fix for the weird texture errors I was getting in my Majora\'s Mask 3D playthrough, so we won\'t be seeing any more of those when the series returns to my Twitch channel next week.\n\nAs for my YouTube channel, I plan to keep uploading my VODs from Twitch to YouTube like I have been. If you\'re wondering what I\'m talking about, after my Twitch streams are over, I upload recordings of them to my YouTube channel as Unlisted. However, if you want to access them, you can head to the Playlists section on my YouTube channel and browse from there. Anyways, I want to keep doing more covers and keep releasing more videos of me playing music. I have a list of covers I want to get to, but I haven\'t been able to record any of them as of yet (except for one, which needs to be mixed, mastered, and edited together). I also have written a new song and am looking to get a music video of it done soon so be on the lookout for that on my YouTube channel.\n\n#### My !4[**Music**]\n\nAs I said in the last paragraph, I do have some new music coming out soon. It\'s been recorded, mixed, mastered--the whole kit and kaboodle. I just need to nail down some details to get a music video together and then you should be hearing it soon. I also have my EP of original music, some of which I released as an EP of demos last year titled [Unweather](https://distrokid.com/hyperfollow/cityboundforest/unweather), and that will be releasing sometime in the middle of the year, I project. It could be earlier, but I have another project that will be coming out first.\n\nRegarding that, that\'s an EP of some cover songs and while all the music has been recorded and finalized, I\'m still working on a small part of the project that will be pretty cool and will involve some interesting pictures, so be on the lookout for that. I\'ll announce that on all of my socials (including here).\n\n#### Other News\n\nI am working on a number of projects (as always, haha), but some of them that I\'ll talk about here are The Four Woods Podcast, the Forest Cinema Podcast, and this blog.\n\nStarting with **The Four Woods Podcast**. It\'s the podcast that I launched last April as part of my senior project for my Media Studies degree. I have said that I do want to continue it past that senior project, and I do, in fact, have plans to do so, I just haven\'t gotten around to acting on those plans yet. I feel like this podcast is going to be a large project and I\'ll want to bring on at least a couple of people to do some parts of the podcast that I either find boring or can\'t do. Also on that note, I want to bring in some other writers with respect to Isaiah\'s character as a person of color (which I am not). Also just having a writing team that isn\'t comprised of just me will take a large load off my shoulders as showrunner. More news on The Four Woods Podcast should be coming by April.\n\nMoving onto the **Forest Cinema Podcast**. Most of you likely won\'t know what I\'m talking about. But some of you might. In any case, the Forest Cinema Podcast is a podcast where I take pieces of media and analyze and review them critically from various angles. I\'ve recorded episodes on media such as Hellblade: Senua\'s Sacrifice and Captain America: Civil War, so be on the lookout for an announcement of when that will be going live. I should be getting those first few episodes out by February.\n\nOnto this blog. Like I said at the beginning of this post, I haven\'t really used this blog all that much since putting it on my website at the beginning of last year. I want to be more intentional with my creative endeavors, so that means using this thing more often. I\'ll try to post an update on this blog every week or so talking about the things I\'ve done or am doing that week, projects that are coming up, or announcements of music or podcast releases. Hopefully by the time this post has gone live, I\'ll have created an RSS link you can follow to get updates from this blog.\n\n---\n\nAnyways, that\'s it from me for now. I\'ll see you in the next blog post, or if you want to come talk to me live, I\'ll be streaming live on my Twitch channel this Saturday at 1:00 pm PST, so you can come by the stream and chat with me then.\n\n**UPDATE**: I have realized since writing this post that I probably should have some kind of comments section on my posts. I will be looking into that in the interim, but for now, feel free to use the contact form on my website here or by contacting me on my various social medias to discuss this blog post.\n\n**2nd Update**: I have sort of obviously added a Disqus comment form down below that will appear underneath all of my blog posts (hopefully the way I set it up works for all of them and they don\'t duplicate, fingers crossed). We may have some bumps in the road later on, but for now, this is where we\'re at. Enjoy!', 9 - description: 'A small little update on what I\'m planning on doing in the coming year.' 10 - }, 11 - { 12 - id: 'minecraft_stream', 13 - title: 'Minecraft Stream on Saturday!', 14 - date: '2022 January 05', 15 - author: 'Cass Forest', 16 - content: 'Hey everyone! This is just a reminder that I\'ll be streaming this Saturday at 1:00 pm PST on my [Twitch Channel](https://twitch.tv/cityboundforest) playing Minecraft with my friend KniightRyder. Hope to see you there!\n\nMake sure you follow me on Twitch to get notifications for when I go live!', 17 - description: 'Just a reminder of my upcoming Minecraft stream on Saturday.' 18 - }, 19 - { 20 - id: 'streamschedule_updates', 21 - title: 'Stream Schedule and Updates!', 22 - date: '2022 January 09', 23 - author: 'Cass Forest', 24 - content: 'Hello everyone! I\'m back with some more announcements!\n\n#### !1[**Twitch Stream Schedule**]\n\nI have a new stream schedule for this week! Here it is!\n\n![Stream schedule for January 10-14. All streams are at 1:00 pm PST. Monday\'s stream is a Pokemon GenLocke starting with Pokemon FireRed. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 11:05 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 10:55 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:00 am PST.](https://imgur.com/zVuuK6D.png)\n\n#### Podcasts\n\nI\'m currently trying to work on editing together a D&D actual play podcast surrounding the Skull & Shackles Adventure Path written for Pathfinder 1st Edition (although we play in Pathfinder 2nd Edition). Since I\'m the only editor on the project and it\'s not my only priority (as streaming takes up most of my time alongside finding a stable job), it\'s been taking me a while to edit the first episode, but when it comes out, you\'ll be able to get an update here on my blog as well as on all of my social media accounts. The problem with me being the only editor on the project is that I *also* run the game and we\'re also like 20 sessions in. And we\'re starting sessions back up this upcoming week. So I have a lot of work to do on that.\n\nIn any case, I\'ve worked out a kind of budget when it comes to paying the voice actors for my audio drama podcast The Four Woods Podcast. Beyond that, I\'ll need to, well, ask them whether or not they would be willing to return for the rest of the podcast as well as find writers and editors for the show.\n\n---\n\nIn any case, that\'s all I\'ve got on this front for blog posts. I\'m still wondering what else to put on this blog other than my stream updates and creative updates.', 25 - description: 'A new stream schedule and some updates about my creative content.' 26 - }, 27 - { 28 - id: 'secondstreamschedule', 29 - title: 'New Stream schedule!', 30 - date: '2022 January 16', 31 - author: 'Cass Forest', 32 - content: 'Hello everyone! I\'m back with another stream schedule!\n\n![Stream schedule for January 17-22. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:10 am PST. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 10:35 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 10:55 am PST. Friday\'s stream is Octopath Traveler with a re-run at 10:55 am PST. Saturday\'s stream is Minecraft with my friend KniightRyder with a re-run at 11:20 am PST.](https://imgur.com/UacPMso.png)\n\nThat\'s all from me for now, see you over on Twitch!', 33 - description: 'My new stream schedule for this upcoming week.' 34 - }, 35 - { 36 - id: 'thirdstreamschedule', 37 - title: 'Another New Stream Schedule!', 38 - date: '2022 January 23', 39 - author: 'Cass Forest', 40 - content: 'Hey everyone! I\'m back with another stream schedule! Also I\'ve found that I\'ve started to use this blog just to post my stream schedules and other creative updates and while I certainly want to keep doing that, I feel like it has a bigger purpose than that, but I haven\'t necessarily figured out what that is yet.\n\nAnyways, here\'s the stream schedule!\n\n![Stream schedule for January 24 - 28. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:25 am PST. Wednesday\'s stream is Majora\'s Mask with a re-run at 11:05 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:10 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:10 am PST.](https://imgur.com/3fRnOvI.png)\N\NThat\'s all from me for this post, see you over on Twitch!', 41 - description: 'Another stream schedule for this upcoming week.' 42 - }, 43 - { 44 - id: 'streamscheduleandbudgetupdate', 45 - title: 'Stream Schedule and an Update!', 46 - date: '2022 January 30', 47 - author: 'Cass Forest', 48 - content: 'Hey everyone! Here\'s a new stream schedule for this week. I\'m going to keep publishing my stream schedules here as I make them but I still want to do more with this blog. If you have any ideas, let me know down below in the comments. Anyway, onto the stream schedule!\n\n![Stream schedule for January 31-Feburary 5. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:20 am PST. Wednesday\'s stream is Majora\'s Mask with a re-run at 10:55 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 10:50 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:05 am PST. Saturday\'s stream is Minecraft with my friend KniightRyder with a re-run at 10:50 am PST.](https://imgur.com/et1MeD7.png)\n\nThat\'s all from me in this post, see you over on Twitch!\n\n---\n\n### Update on the Four Woods Podcast\n\nHey! I have an update on my audio drama podcast, The Four Woods Podcast. I\'ve done some research and I\'m moving forward in the pre-production process for season 1 of the show. Right now, all I\'ve got is a budget outline for how much I\'m going to need to raise to pay the actors, the writers that I\'m going to bring on, the editors that I\'m going to bring on (that\'s audio editors, not script editors), as well as myself. It\'s currently looking to be around $15,000, but I don\'t have exact numbers yet, and I won\'t have exact numbers until I figure out some specific things like any characters that I\'m going to need to add for later episodes in the season. I\'m considering making a Patreon, but I already have my [Ko-Fi](https://ko-fi.com/cityboundforest) set up and it can take monthly donations, so I\'m tempted to use that instead. Let me know which you\'d rather me use (Patreon or Ko-Fi) in the comments below. Any money coming in through Ko-Fi with the express mention of the podcast will go to the podcast (and if I make a Patreon, I\'ll put some percentage that I\'ll figure out later into the podcast); otherwise, it\'ll just go to me through my usual channels (similar to my Twitch subscriptions or StreamElements tips). In any case, things are looking up for the podcast and I\'m excited to see where things are going to go. Keep an eye out on this space as well as my other socials to hear more about this and I\'ll see you later!!!', 49 - description: 'This week\'s stream schedule (January 31 - February 5, 2022) as well as an update on my audio drama podcast' 50 - }, 51 - { 52 - id: 'streamschedulepodcastupdate', 53 - title: 'Another Stream Schedule and Podcast Update', 54 - date: '2022 February 6', 55 - author: 'Cass Forest', 56 - content: 'Hey everyone! This blog post, much like the film adaptation of Mockingjay by Susanne Collins, comes to you in two parts.\n\n### Part 1: Stream Schedule\n\nHere is the stream schedule for this upcoming week. Enjoy!\n\n![Stream schedule for February 7-11. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke: FireRed with a re-run at 11:15 am PST. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 11:10 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:25 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:15 am PST.](https://imgur.com/LsJv53H.png)\n\n---\n\n### Part 2: The Four Woods Podcast Update\n\nLast week I said that I was getting together a budget for the continued production of my audio drama podcast, [The Four Woods Podcast](https://beacons.page/4woodspodcast). Well, I have since made a mock-up budget and am getting ready to start sending out a request for writers to join the project. The budget hasn\'t changed that much from my projections last week, so I\'ll still want to raise a lot of money for this project, most of which will be going to the actors. Any donations made to my Twitch page in which the donator requests that the money received be put towards the podcast (this includes subscriptions and bits) as well as donations made through my StreamElements donation page in which the donator requests that the money donated be put towards the podcast will be put to the side and will count towards that goal that I mentioned last week. Any of my Ko-Fi donations in which the donator requests that the money go towards the podcast will also be set aside similarly. I really hope I get to continue making this podcast as I had a lot of fun creating it last year.\n\n---\n\nIn any case, that\'s all for me on this post. I\'ll see you over on Twitch or wherever else I happen to be!', 57 - description: 'The stream schedule for this week (February 7 - 11, 2022) and an important update for The Four Woods Podcast' 58 - }, 59 - { 60 - id: 'streamscheduleincomingvideo', 61 - title: 'A Stream Schedule and a Promise of a Video', 62 - date: '2022 February 13', 63 - author: 'Cass Forest', 64 - content: 'Hey everyone! I\'ve got some news on The Four Woods Podcast as well as a new stream schedule for this week!\n\n---\n\n### Stream Schedule\n\nHere\'s the stream schedule for this week. Enjoy!\n\n![Stream schedule for February 14-19, 2022; all streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:20 am PST. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 10:40 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:00 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:20 am PST. Saturday\'s stream is Minecraft with my friend KniightRyder with a re-run at 10:45 am PST.](https://imgur.com/78te2aS.png)\n\n---\n\n### The Four Woods Podcast Update\n\nSometime this week, I will be posting a video outlining everything in the future for The Four Woods Podcast. This includes the budget that I\'ve been mentioning here on the blog as well as a call for writers to send in applications to write for the podcast. When the video is posted, I\'ll link to it on my Twitter page and I\'ll post it on my Instagram and TikTok accounts. I\'ll also be linking to it here, so if you\'ve subscribed to the [RSS feed](https://skeetcha.github.io/blog-rss.xml), then you\'ll be able to know when it comes out.\n\n---\n\nIn any case, that\'s all from me. See you over on Twitch!', 65 - description: 'The stream schedule for February 14-19, 2022 alongside a small update for The Four Woods Podcast' 66 - }, 67 - { 68 - id: 'streamschedulevideocoming', 69 - title: 'A Stream Schedule And A Video Delayed', 70 - date: '2022 February 20', 71 - author: 'Cass Forest', 72 - content: 'Hey everyone! The update video for The Four Woods Podcast is coming, probably sometime this week, but I haven\'t found time to sit down and edit the video just yet. Hang tight, I\'ll be posting it on both my main channel (CityboundForest) and the YouTube channel for the podcast itself. Stay tuned for that. But until then, here\'s the stream schedule for the upcoming week!\n\n![Stream schedule for February 21-25, all streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:20 am PST. Wednesday\'s stream is The Legend of Zelda: Major\'s Mask with a re-run at 11:10 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:00 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:10 am PST.](https://imgur.com/XVjdbgC.png)\n\nThat\'s all from me, see y\'all on Twitch!', 73 - description: 'The stream schedule for February 21-25, 2022 and I promise, the update video is coming this week' 74 - } 75 - ]; 76 - } 77 - 1 + function getPosts() { 2 + return [ 3 + { 4 + id: 'updates', 5 + title: 'Updates!', 6 + date: '2022 January 02', 7 + author: 'Cass Forest', 8 + content: 'Hello everyone! I\'m here with some updates for my creative career, and what better place to do it than here, on my blog, which I really haven\'t used all that much last year since putting it up on my website. In any case, I wanted to make some kind of announcement at the beginning of the year to sort of talk about what I want to do this year and also some goals I\'d like to achieve professionally with my content creation.\n\n#### My !1[**YouTube**] and !1[**Twitch**] Channels\n\nI plan to continue streaming as I have been and am actually introducing a new series to my Twitch channel which you\'ll hear about at the beginning of next week (stay tuned to my Twitter for information on that). I have actually figured out a fix for the weird texture errors I was getting in my Majora\'s Mask 3D playthrough, so we won\'t be seeing any more of those when the series returns to my Twitch channel next week.\n\nAs for my YouTube channel, I plan to keep uploading my VODs from Twitch to YouTube like I have been. If you\'re wondering what I\'m talking about, after my Twitch streams are over, I upload recordings of them to my YouTube channel as Unlisted. However, if you want to access them, you can head to the Playlists section on my YouTube channel and browse from there. Anyways, I want to keep doing more covers and keep releasing more videos of me playing music. I have a list of covers I want to get to, but I haven\'t been able to record any of them as of yet (except for one, which needs to be mixed, mastered, and edited together). I also have written a new song and am looking to get a music video of it done soon so be on the lookout for that on my YouTube channel.\n\n#### My !4[**Music**]\n\nAs I said in the last paragraph, I do have some new music coming out soon. It\'s been recorded, mixed, mastered--the whole kit and kaboodle. I just need to nail down some details to get a music video together and then you should be hearing it soon. I also have my EP of original music, some of which I released as an EP of demos last year titled [Unweather](https://distrokid.com/hyperfollow/cityboundforest/unweather), and that will be releasing sometime in the middle of the year, I project. It could be earlier, but I have another project that will be coming out first.\n\nRegarding that, that\'s an EP of some cover songs and while all the music has been recorded and finalized, I\'m still working on a small part of the project that will be pretty cool and will involve some interesting pictures, so be on the lookout for that. I\'ll announce that on all of my socials (including here).\n\n#### Other News\n\nI am working on a number of projects (as always, haha), but some of them that I\'ll talk about here are The Four Woods Podcast, the Forest Cinema Podcast, and this blog.\n\nStarting with **The Four Woods Podcast**. It\'s the podcast that I launched last April as part of my senior project for my Media Studies degree. I have said that I do want to continue it past that senior project, and I do, in fact, have plans to do so, I just haven\'t gotten around to acting on those plans yet. I feel like this podcast is going to be a large project and I\'ll want to bring on at least a couple of people to do some parts of the podcast that I either find boring or can\'t do. Also on that note, I want to bring in some other writers with respect to Isaiah\'s character as a person of color (which I am not). Also just having a writing team that isn\'t comprised of just me will take a large load off my shoulders as showrunner. More news on The Four Woods Podcast should be coming by April.\n\nMoving onto the **Forest Cinema Podcast**. Most of you likely won\'t know what I\'m talking about. But some of you might. In any case, the Forest Cinema Podcast is a podcast where I take pieces of media and analyze and review them critically from various angles. I\'ve recorded episodes on media such as Hellblade: Senua\'s Sacrifice and Captain America: Civil War, so be on the lookout for an announcement of when that will be going live. I should be getting those first few episodes out by February.\n\nOnto this blog. Like I said at the beginning of this post, I haven\'t really used this blog all that much since putting it on my website at the beginning of last year. I want to be more intentional with my creative endeavors, so that means using this thing more often. I\'ll try to post an update on this blog every week or so talking about the things I\'ve done or am doing that week, projects that are coming up, or announcements of music or podcast releases. Hopefully by the time this post has gone live, I\'ll have created an RSS link you can follow to get updates from this blog.\n\n---\n\nAnyways, that\'s it from me for now. I\'ll see you in the next blog post, or if you want to come talk to me live, I\'ll be streaming live on my Twitch channel this Saturday at 1:00 pm PST, so you can come by the stream and chat with me then.\n\n**UPDATE**: I have realized since writing this post that I probably should have some kind of comments section on my posts. I will be looking into that in the interim, but for now, feel free to use the contact form on my website here or by contacting me on my various social medias to discuss this blog post.\n\n**2nd Update**: I have sort of obviously added a Disqus comment form down below that will appear underneath all of my blog posts (hopefully the way I set it up works for all of them and they don\'t duplicate, fingers crossed). We may have some bumps in the road later on, but for now, this is where we\'re at. Enjoy!', 9 + description: 'A small little update on what I\'m planning on doing in the coming year.' 10 + }, 11 + { 12 + id: 'minecraft_stream', 13 + title: 'Minecraft Stream on Saturday!', 14 + date: '2022 January 05', 15 + author: 'Cass Forest', 16 + content: 'Hey everyone! This is just a reminder that I\'ll be streaming this Saturday at 1:00 pm PST on my [Twitch Channel](https://twitch.tv/cityboundforest) playing Minecraft with my friend KniightRyder. Hope to see you there!\n\nMake sure you follow me on Twitch to get notifications for when I go live!', 17 + description: 'Just a reminder of my upcoming Minecraft stream on Saturday.' 18 + }, 19 + { 20 + id: 'streamschedule_updates', 21 + title: 'Stream Schedule and Updates!', 22 + date: '2022 January 09', 23 + author: 'Cass Forest', 24 + content: 'Hello everyone! I\'m back with some more announcements!\n\n#### !1[**Twitch Stream Schedule**]\n\nI have a new stream schedule for this week! Here it is!\n\n![Stream schedule for January 10-14. All streams are at 1:00 pm PST. Monday\'s stream is a Pokemon GenLocke starting with Pokemon FireRed. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 11:05 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 10:55 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:00 am PST.](https://imgur.com/zVuuK6D.png)\n\n#### Podcasts\n\nI\'m currently trying to work on editing together a D&D actual play podcast surrounding the Skull & Shackles Adventure Path written for Pathfinder 1st Edition (although we play in Pathfinder 2nd Edition). Since I\'m the only editor on the project and it\'s not my only priority (as streaming takes up most of my time alongside finding a stable job), it\'s been taking me a while to edit the first episode, but when it comes out, you\'ll be able to get an update here on my blog as well as on all of my social media accounts. The problem with me being the only editor on the project is that I *also* run the game and we\'re also like 20 sessions in. And we\'re starting sessions back up this upcoming week. So I have a lot of work to do on that.\n\nIn any case, I\'ve worked out a kind of budget when it comes to paying the voice actors for my audio drama podcast The Four Woods Podcast. Beyond that, I\'ll need to, well, ask them whether or not they would be willing to return for the rest of the podcast as well as find writers and editors for the show.\n\n---\n\nIn any case, that\'s all I\'ve got on this front for blog posts. I\'m still wondering what else to put on this blog other than my stream updates and creative updates.', 25 + description: 'A new stream schedule and some updates about my creative content.' 26 + }, 27 + { 28 + id: 'secondstreamschedule', 29 + title: 'New Stream schedule!', 30 + date: '2022 January 16', 31 + author: 'Cass Forest', 32 + content: 'Hello everyone! I\'m back with another stream schedule!\n\n![Stream schedule for January 17-22. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:10 am PST. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 10:35 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 10:55 am PST. Friday\'s stream is Octopath Traveler with a re-run at 10:55 am PST. Saturday\'s stream is Minecraft with my friend KniightRyder with a re-run at 11:20 am PST.](https://imgur.com/UacPMso.png)\n\nThat\'s all from me for now, see you over on Twitch!', 33 + description: 'My new stream schedule for this upcoming week.' 34 + }, 35 + { 36 + id: 'thirdstreamschedule', 37 + title: 'Another New Stream Schedule!', 38 + date: '2022 January 23', 39 + author: 'Cass Forest', 40 + content: 'Hey everyone! I\'m back with another stream schedule! Also I\'ve found that I\'ve started to use this blog just to post my stream schedules and other creative updates and while I certainly want to keep doing that, I feel like it has a bigger purpose than that, but I haven\'t necessarily figured out what that is yet.\n\nAnyways, here\'s the stream schedule!\n\n![Stream schedule for January 24 - 28. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:25 am PST. Wednesday\'s stream is Majora\'s Mask with a re-run at 11:05 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:10 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:10 am PST.](https://imgur.com/3fRnOvI.png)\N\NThat\'s all from me for this post, see you over on Twitch!', 41 + description: 'Another stream schedule for this upcoming week.' 42 + }, 43 + { 44 + id: 'streamscheduleandbudgetupdate', 45 + title: 'Stream Schedule and an Update!', 46 + date: '2022 January 30', 47 + author: 'Cass Forest', 48 + content: 'Hey everyone! Here\'s a new stream schedule for this week. I\'m going to keep publishing my stream schedules here as I make them but I still want to do more with this blog. If you have any ideas, let me know down below in the comments. Anyway, onto the stream schedule!\n\n![Stream schedule for January 31-Feburary 5. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:20 am PST. Wednesday\'s stream is Majora\'s Mask with a re-run at 10:55 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 10:50 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:05 am PST. Saturday\'s stream is Minecraft with my friend KniightRyder with a re-run at 10:50 am PST.](https://imgur.com/et1MeD7.png)\n\nThat\'s all from me in this post, see you over on Twitch!\n\n---\n\n### Update on the Four Woods Podcast\n\nHey! I have an update on my audio drama podcast, The Four Woods Podcast. I\'ve done some research and I\'m moving forward in the pre-production process for season 1 of the show. Right now, all I\'ve got is a budget outline for how much I\'m going to need to raise to pay the actors, the writers that I\'m going to bring on, the editors that I\'m going to bring on (that\'s audio editors, not script editors), as well as myself. It\'s currently looking to be around $15,000, but I don\'t have exact numbers yet, and I won\'t have exact numbers until I figure out some specific things like any characters that I\'m going to need to add for later episodes in the season. I\'m considering making a Patreon, but I already have my [Ko-Fi](https://ko-fi.com/cityboundforest) set up and it can take monthly donations, so I\'m tempted to use that instead. Let me know which you\'d rather me use (Patreon or Ko-Fi) in the comments below. Any money coming in through Ko-Fi with the express mention of the podcast will go to the podcast (and if I make a Patreon, I\'ll put some percentage that I\'ll figure out later into the podcast); otherwise, it\'ll just go to me through my usual channels (similar to my Twitch subscriptions or StreamElements tips). In any case, things are looking up for the podcast and I\'m excited to see where things are going to go. Keep an eye out on this space as well as my other socials to hear more about this and I\'ll see you later!!!', 49 + description: 'This week\'s stream schedule (January 31 - February 5, 2022) as well as an update on my audio drama podcast' 50 + }, 51 + { 52 + id: 'streamschedulepodcastupdate', 53 + title: 'Another Stream Schedule and Podcast Update', 54 + date: '2022 February 6', 55 + author: 'Cass Forest', 56 + content: 'Hey everyone! This blog post, much like the film adaptation of Mockingjay by Susanne Collins, comes to you in two parts.\n\n### Part 1: Stream Schedule\n\nHere is the stream schedule for this upcoming week. Enjoy!\n\n![Stream schedule for February 7-11. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke: FireRed with a re-run at 11:15 am PST. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 11:10 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:25 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:15 am PST.](https://imgur.com/LsJv53H.png)\n\n---\n\n### Part 2: The Four Woods Podcast Update\n\nLast week I said that I was getting together a budget for the continued production of my audio drama podcast, [The Four Woods Podcast](https://beacons.page/4woodspodcast). Well, I have since made a mock-up budget and am getting ready to start sending out a request for writers to join the project. The budget hasn\'t changed that much from my projections last week, so I\'ll still want to raise a lot of money for this project, most of which will be going to the actors. Any donations made to my Twitch page in which the donator requests that the money received be put towards the podcast (this includes subscriptions and bits) as well as donations made through my StreamElements donation page in which the donator requests that the money donated be put towards the podcast will be put to the side and will count towards that goal that I mentioned last week. Any of my Ko-Fi donations in which the donator requests that the money go towards the podcast will also be set aside similarly. I really hope I get to continue making this podcast as I had a lot of fun creating it last year.\n\n---\n\nIn any case, that\'s all for me on this post. I\'ll see you over on Twitch or wherever else I happen to be!', 57 + description: 'The stream schedule for this week (February 7 - 11, 2022) and an important update for The Four Woods Podcast' 58 + }, 59 + { 60 + id: 'streamscheduleincomingvideo', 61 + title: 'A Stream Schedule and a Promise of a Video', 62 + date: '2022 February 13', 63 + author: 'Cass Forest', 64 + content: 'Hey everyone! I\'ve got some news on The Four Woods Podcast as well as a new stream schedule for this week!\n\n---\n\n### Stream Schedule\n\nHere\'s the stream schedule for this week. Enjoy!\n\n![Stream schedule for February 14-19, 2022; all streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:20 am PST. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 10:40 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:00 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:20 am PST. Saturday\'s stream is Minecraft with my friend KniightRyder with a re-run at 10:45 am PST.](https://imgur.com/78te2aS.png)\n\n---\n\n### The Four Woods Podcast Update\n\nSometime this week, I will be posting a video outlining everything in the future for The Four Woods Podcast. This includes the budget that I\'ve been mentioning here on the blog as well as a call for writers to send in applications to write for the podcast. When the video is posted, I\'ll link to it on my Twitter page and I\'ll post it on my Instagram and TikTok accounts. I\'ll also be linking to it here, so if you\'ve subscribed to the [RSS feed](https://skeetcha.github.io/blog-rss.xml), then you\'ll be able to know when it comes out.\n\n---\n\nIn any case, that\'s all from me. See you over on Twitch!', 65 + description: 'The stream schedule for February 14-19, 2022 alongside a small update for The Four Woods Podcast' 66 + }, 67 + { 68 + id: 'streamschedulevideocoming', 69 + title: 'A Stream Schedule And A Video Delayed', 70 + date: '2022 February 20', 71 + author: 'Cass Forest', 72 + content: 'Hey everyone! The update video for The Four Woods Podcast is coming, probably sometime this week, but I haven\'t found time to sit down and edit the video just yet. Hang tight, I\'ll be posting it on both my main channel (CityboundForest) and the YouTube channel for the podcast itself. Stay tuned for that. But until then, here\'s the stream schedule for the upcoming week!\n\n![Stream schedule for February 21-25, all streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke Part 1: FireRed with a re-run at 11:20 am PST. Wednesday\'s stream is The Legend of Zelda: Major\'s Mask with a re-run at 11:10 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:00 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:10 am PST.](https://imgur.com/XVjdbgC.png)\n\nThat\'s all from me, see y\'all on Twitch!', 73 + description: 'The stream schedule for February 21-25, 2022 and I promise, the update video is coming this week' 74 + }, 75 + { 76 + id: 'streamschedule22feb24mar5', 77 + title: 'New stream schedule for Twitch!', 78 + date: '2022 February 27', 79 + author: 'Cass Forest', 80 + content: 'Hey everyone! I\'ve been working on editing the update video for the Four Woods Podcast so that is coming soon (or it may have already been posted by the time this goes up, who knows!), so stay tuned for that. Until then, here\'s this week\'s stream schedule!\n\n![Stream schedule for February 28 - March 5, 2022. All streams are at 1:00 pm PST. Monday\'s stream is Pokemon GenLocke I: FireRed with a re-run at 11:20 am PST. Wednesday\'s stream is The Legend of Zelda: Majora\'s Mask with a re-run at 10:40 am PST. Thursday\'s stream is Fire Emblem: Three Houses with a re-run at 11:10 am PST. Friday\'s stream is Octopath Traveler with a re-run at 11:10 am PST. Saturday\'s stream is Minecraft with my friend KniightRyder with a re-run at 11:10 am PST.](https://imgur.com/FQ9StX0.png)\n\nThat\'s all from me, see you over on Twitch!', 81 + description: 'The stream schedule for February 28-March 5, 2022' 82 + } 83 + ]; 84 + } 85 + 78 86 export default getPosts;
+35 -35
scripts/project.js
··· 1 - function getProject(data) { 2 - console.assert(data.id !== undefined, {message: 'Expected id', data: data}); 3 - console.assert(data.title !== undefined, {message: 'Expected title', data: data}); 4 - console.assert(data.description !== undefined, {message: 'Expected description', data: data}); 5 - 6 - return ` 7 - <article class="project cf"> 8 - <a href="portfolio-item.html#${data.id}" title="${data.id}"> 9 - <div class="thumb"> 10 - <div data-picture data-alt=""> 11 - <div data-src="img/${data.id}.png"></div> 12 - <!--[if (lt IE 9) & (!IEMoble)]> 13 - <div data-src="img/${data.id}.png"></div> 14 - <![endif]--> 15 - <noscript> 16 - <img src="img/${data.id}.png" alt="" /> 17 - </noscript> 18 - </div> 19 - </div> 20 - <div class="project-content-container"> 21 - <div class="project-content"> 22 - <div class="table"> 23 - <div class="table-cell"> 24 - <h2 class="thumbnail-title">${data.title}</h2> 25 - <p class="thumbnail-description">${data.description}</p> 26 - </div> 27 - </div> 28 - </div> 29 - </div> 30 - <div class="overlay"></div> 31 - </a> 32 - </article> 33 - `; 34 - } 35 - 1 + function getProject(data) { 2 + console.assert(data.id !== undefined, {message: 'Expected id', data: data}); 3 + console.assert(data.title !== undefined, {message: 'Expected title', data: data}); 4 + console.assert(data.description !== undefined, {message: 'Expected description', data: data}); 5 + 6 + return ` 7 + <article class="project cf"> 8 + <a href="portfolio-item.html#${data.id}" title="${data.id}"> 9 + <div class="thumb"> 10 + <div data-picture data-alt=""> 11 + <div data-src="img/${data.id}.png"></div> 12 + <!--[if (lt IE 9) & (!IEMoble)]> 13 + <div data-src="img/${data.id}.png"></div> 14 + <![endif]--> 15 + <noscript> 16 + <img src="img/${data.id}.png" alt="" /> 17 + </noscript> 18 + </div> 19 + </div> 20 + <div class="project-content-container"> 21 + <div class="project-content"> 22 + <div class="table"> 23 + <div class="table-cell"> 24 + <h2 class="thumbnail-title">${data.title}</h2> 25 + <p class="thumbnail-description">${data.description}</p> 26 + </div> 27 + </div> 28 + </div> 29 + </div> 30 + <div class="overlay"></div> 31 + </a> 32 + </article> 33 + `; 34 + } 35 + 36 36 export default getProject;
+18 -18
scripts/project_data.js
··· 1 - function getProjectData(projectName) { 2 - if (projectName == 'mememachine') { 3 - return {skills: 'Python, Python Reddit Aggregator Wrapper (PRAW), ImgurPython', title: 'Meme Machine', longDescription: 'The Association for Computing Machinery, University of the Pacific chapter created a project in March 2017 that downloads and aggregates memes from various social media sites including Reddit, Imgur, Tumblr, and Imgflip using Python and Haskell. It included a plan to write a module that would gather ratings and use the data as input for machine learning to create its own memes.', links: [{title: 'GitHub Repository', href: 'https://github.com/uopacm/mememachinecollector'}], embeds: []}; 4 - } else if (projectName == 'shutin') { 5 - return {skills: 'Final Cut Pro X, Adobe Premiere Pro, Foley Art, Lighting Setup', title: 'Shut In', longDescription: 'The San Joaquin County Office of Education held a two-week filmmaking workshop in June 2012. After a full day of shooting at a daycare in Manteca, CA, the crew premiered the film at the Lincoln High School theatre to a packed house. The crew then held a Q and A session with those in attendance.', links: [{title: 'IMDB Link', href: 'https://www.imdb.com/title/tt2644836/'}], embeds: ['https://www.youtube.com/embed/1g2i2bYbwC8']}; 6 - } else if (projectName == 'bulletrush') { 7 - return {skills: 'Unity, C#, Project Management, Agile Development', title: 'Bullet Rush', longDescription: 'I took the Computer Game Technologies course at University of the Pacific in Fall 2019 to learn Video Game Design and Development. After pitching ideas to the class similarly to my earlier Application Development course, I was placed as the Project Manager of the Bullet Rush team along with a Lead Programmer, a general Programmer, and a Media Director. At the end of the course, we presented to the community for feedback.', links: [{title: 'Bitbucket Repository', href: 'https://bitbucket.org/jacob5567/bullet-rush'}], embeds: []}; 8 - } else if (projectName == 'dndcombatsim') { 9 - return {skills: 'Java, JavaScript, Project Management', title: 'Dungeons and Dragons Combat Simulator', longDescription: 'I took the Application Development course at University of the Pacific to learn how to work on a team to develop an application. In our groups, we proposed our final projects for the class and began our work. There were no roles, so I took initiative to be the Project Manager along with doing basic coding on the JSON data and general backend programming.', links: [{title: 'Because we used data from 5e.tools, I am not including a link to the repository here.', href: ''}], embeds: []}; 10 - } else if (projectName == 'cansat') { 11 - return {skills: 'C++, Arduino', title: 'CanSat', longDescription: 'During my junior year of high school, my dad approached me with an offer to work on a project involving a simulated sattelite in an enclosure the size and shape of a soda can run by an Arduino. He connected me and two of his students to Ted Tagami of Magnitude.io and we were all connected with Dr. Elizabeth Basha and her students at University of the Pacific. The CanSat project was eventually launched into low-Earth orbit in November 2019.', links: [{title: 'More Information', href: 'https://magnitude.io/cansat-stem-education/'}], embeds: []}; 12 - } else if (projectName == 'fourwoods') { 13 - return {skills: 'Adobe Audition, Scriptwriting, Directing for Voiceover', title: 'The Four Woods Podcast', longDescription: 'The Four Woods Podcast, part of my senior project for my Media X degree at University of the Pacific, is an audio drama podcast about Ross Hansen, a 16-year-old kid who attends magical high school for the first time in his life after meeting his parents who he hasn\'t seen for thirteen years. A pilot episode of the podcast is currently available wherever you get your podcasts with more on the way in the coming months.', links: [{title: 'Anchor.FM Page', href: 'https://anchor.fm/4woodspodcast'}, {title: 'Apple Podcasts Page', href: 'https://www.google.com/podcasts?feed=aHR0cHM6Ly9hbmNob3IuZm0vcy81MjAwNTY0OC9wb2RjYXN0L3Jzcw=='}, {title: 'Amazon Music', href: 'https://music.amazon.com/podcasts/12dfc842-f2c5-42cd-9989-e43d1ac19e54/The-Four-Woods'}, {title: 'Stitcher', href: 'https://www.stitcher.com/show/the-four-woods'}, {title: 'Breaker', href: 'https://www.breaker.audio/p/the-four-woods'}, {title: 'Pocket Casts', href: 'https://pca.st/kexc4wrj'}], embeds: []}; 14 - } else { 15 - return {}; 16 - } 17 - } 18 - 1 + function getProjectData(projectName) { 2 + if (projectName == 'mememachine') { 3 + return {skills: 'Python, Python Reddit Aggregator Wrapper (PRAW), ImgurPython', title: 'Meme Machine', longDescription: 'The Association for Computing Machinery, University of the Pacific chapter created a project in March 2017 that downloads and aggregates memes from various social media sites including Reddit, Imgur, Tumblr, and Imgflip using Python and Haskell. It included a plan to write a module that would gather ratings and use the data as input for machine learning to create its own memes.', links: [{title: 'GitHub Repository', href: 'https://github.com/uopacm/mememachinecollector'}], embeds: []}; 4 + } else if (projectName == 'shutin') { 5 + return {skills: 'Final Cut Pro X, Adobe Premiere Pro, Foley Art, Lighting Setup', title: 'Shut In', longDescription: 'The San Joaquin County Office of Education held a two-week filmmaking workshop in June 2012. After a full day of shooting at a daycare in Manteca, CA, the crew premiered the film at the Lincoln High School theatre to a packed house. The crew then held a Q and A session with those in attendance.', links: [{title: 'IMDB Link', href: 'https://www.imdb.com/title/tt2644836/'}], embeds: ['https://www.youtube.com/embed/1g2i2bYbwC8']}; 6 + } else if (projectName == 'bulletrush') { 7 + return {skills: 'Unity, C#, Project Management, Agile Development', title: 'Bullet Rush', longDescription: 'I took the Computer Game Technologies course at University of the Pacific in Fall 2019 to learn Video Game Design and Development. After pitching ideas to the class similarly to my earlier Application Development course, I was placed as the Project Manager of the Bullet Rush team along with a Lead Programmer, a general Programmer, and a Media Director. At the end of the course, we presented to the community for feedback.', links: [{title: 'Bitbucket Repository', href: 'https://bitbucket.org/jacob5567/bullet-rush'}], embeds: []}; 8 + } else if (projectName == 'dndcombatsim') { 9 + return {skills: 'Java, JavaScript, Project Management', title: 'Dungeons and Dragons Combat Simulator', longDescription: 'I took the Application Development course at University of the Pacific to learn how to work on a team to develop an application. In our groups, we proposed our final projects for the class and began our work. There were no roles, so I took initiative to be the Project Manager along with doing basic coding on the JSON data and general backend programming.', links: [{title: 'Because we used data from 5e.tools, I am not including a link to the repository here.', href: ''}], embeds: []}; 10 + } else if (projectName == 'cansat') { 11 + return {skills: 'C++, Arduino', title: 'CanSat', longDescription: 'During my junior year of high school, my dad approached me with an offer to work on a project involving a simulated sattelite in an enclosure the size and shape of a soda can run by an Arduino. He connected me and two of his students to Ted Tagami of Magnitude.io and we were all connected with Dr. Elizabeth Basha and her students at University of the Pacific. The CanSat project was eventually launched into low-Earth orbit in November 2019.', links: [{title: 'More Information', href: 'https://magnitude.io/cansat-stem-education/'}], embeds: []}; 12 + } else if (projectName == 'fourwoods') { 13 + return {skills: 'Adobe Audition, Scriptwriting, Directing for Voiceover', title: 'The Four Woods Podcast', longDescription: 'The Four Woods Podcast, part of my senior project for my Media X degree at University of the Pacific, is an audio drama podcast about Ross Hansen, a 16-year-old kid who attends magical high school for the first time in his life after meeting his parents who he hasn\'t seen for thirteen years. A pilot episode of the podcast is currently available wherever you get your podcasts with more on the way in the coming months.', links: [{title: 'Anchor.FM Page', href: 'https://anchor.fm/4woodspodcast'}, {title: 'Apple Podcasts Page', href: 'https://www.google.com/podcasts?feed=aHR0cHM6Ly9hbmNob3IuZm0vcy81MjAwNTY0OC9wb2RjYXN0L3Jzcw=='}, {title: 'Amazon Music', href: 'https://music.amazon.com/podcasts/12dfc842-f2c5-42cd-9989-e43d1ac19e54/The-Four-Woods'}, {title: 'Stitcher', href: 'https://www.stitcher.com/show/the-four-woods'}, {title: 'Breaker', href: 'https://www.breaker.audio/p/the-four-woods'}, {title: 'Pocket Casts', href: 'https://pca.st/kexc4wrj'}], embeds: []}; 14 + } else { 15 + return {}; 16 + } 17 + } 18 + 19 19 export default getProjectData;
+3 -3
scripts/showdown.min.js
··· 1 - /*! showdown v 1.9.1 - 02-11-2019 */ 2 - (function(){function e(e){"use strict";var r={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses simple line breaks as <br> (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,description:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",description:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,description:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,description:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,description:"Support for HTML Tag escaping. ex: <div>foo</div>",type:"boolean"},emoji:{defaultValue:!1,description:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,description:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`",type:"boolean"},completeHTMLDocument:{defaultValue:!1,description:"Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags",type:"boolean"},metadata:{defaultValue:!1,description:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,description:"Split adjacent blockquote blocks",type:"boolean"}};if(!1===e)return JSON.parse(JSON.stringify(r));var t={};for(var a in r)r.hasOwnProperty(a)&&(t[a]=r[a].defaultValue);return t}function r(e,r){"use strict";var t=r?"Error in "+r+" extension->":"Error in unnamed extension",n={valid:!0,error:""};a.helper.isArray(e)||(e=[e]);for(var s=0;s<e.length;++s){var o=t+" sub-extension "+s+": ",i=e[s];if("object"!=typeof i)return n.valid=!1,n.error=o+"must be an object, but "+typeof i+" given",n;if(!a.helper.isString(i.type))return n.valid=!1,n.error=o+'property "type" must be a string, but '+typeof i.type+" given",n;var l=i.type=i.type.toLowerCase();if("language"===l&&(l=i.type="lang"),"html"===l&&(l=i.type="output"),"lang"!==l&&"output"!==l&&"listener"!==l)return n.valid=!1,n.error=o+"type "+l+' is not recognized. Valid values: "lang/language", "output/html" or "listener"',n;if("listener"===l){if(a.helper.isUndefined(i.listeners))return n.valid=!1,n.error=o+'. Extensions of type "listener" must have a property called "listeners"',n}else if(a.helper.isUndefined(i.filter)&&a.helper.isUndefined(i.regex))return n.valid=!1,n.error=o+l+' extensions must define either a "regex" property or a "filter" method',n;if(i.listeners){if("object"!=typeof i.listeners)return n.valid=!1,n.error=o+'"listeners" property must be an object but '+typeof i.listeners+" given",n;for(var c in i.listeners)if(i.listeners.hasOwnProperty(c)&&"function"!=typeof i.listeners[c])return n.valid=!1,n.error=o+'"listeners" property must be an hash of [event name]: [callback]. listeners.'+c+" must be a function but "+typeof i.listeners[c]+" given",n}if(i.filter){if("function"!=typeof i.filter)return n.valid=!1,n.error=o+'"filter" must be a function, but '+typeof i.filter+" given",n}else if(i.regex){if(a.helper.isString(i.regex)&&(i.regex=new RegExp(i.regex,"g")),!(i.regex instanceof RegExp))return n.valid=!1,n.error=o+'"regex" property must either be a string or a RegExp object, but '+typeof i.regex+" given",n;if(a.helper.isUndefined(i.replace))return n.valid=!1,n.error=o+'"regex" extensions must implement a replace string or function',n}}return n}function t(e,r){"use strict";return"¨E"+r.charCodeAt(0)+"E"}var a={},n={},s={},o=e(!0),i="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:function(){"use strict";var r=e(!0),t={};for(var a in r)r.hasOwnProperty(a)&&(t[a]=!0);return t}()};a.helper={},a.extensions={},a.setOption=function(e,r){"use strict";return o[e]=r,this},a.getOption=function(e){"use strict";return o[e]},a.getOptions=function(){"use strict";return o},a.resetOptions=function(){"use strict";o=e(!0)},a.setFlavor=function(e){"use strict";if(!l.hasOwnProperty(e))throw Error(e+" flavor was not found");a.resetOptions();var r=l[e];i=e;for(var t in r)r.hasOwnProperty(t)&&(o[t]=r[t])},a.getFlavor=function(){"use strict";return i},a.getFlavorOptions=function(e){"use strict";if(l.hasOwnProperty(e))return l[e]},a.getDefaultOptions=function(r){"use strict";return e(r)},a.subParser=function(e,r){"use strict";if(a.helper.isString(e)){if(void 0===r){if(n.hasOwnProperty(e))return n[e];throw Error("SubParser named "+e+" not registered!")}n[e]=r}},a.extension=function(e,t){"use strict";if(!a.helper.isString(e))throw Error("Extension 'name' must be a string");if(e=a.helper.stdExtName(e),a.helper.isUndefined(t)){if(!s.hasOwnProperty(e))throw Error("Extension named "+e+" is not registered!");return s[e]}"function"==typeof t&&(t=t()),a.helper.isArray(t)||(t=[t]);var n=r(t,e);if(!n.valid)throw Error(n.error);s[e]=t},a.getAllExtensions=function(){"use strict";return s},a.removeExtension=function(e){"use strict";delete s[e]},a.resetExtensions=function(){"use strict";s={}},a.validateExtension=function(e){"use strict";var t=r(e,null);return!!t.valid||(console.warn(t.error),!1)},a.hasOwnProperty("helper")||(a.helper={}),a.helper.isString=function(e){"use strict";return"string"==typeof e||e instanceof String},a.helper.isFunction=function(e){"use strict";return e&&"[object Function]"==={}.toString.call(e)},a.helper.isArray=function(e){"use strict";return Array.isArray(e)},a.helper.isUndefined=function(e){"use strict";return void 0===e},a.helper.forEach=function(e,r){"use strict";if(a.helper.isUndefined(e))throw new Error("obj param is required");if(a.helper.isUndefined(r))throw new Error("callback param is required");if(!a.helper.isFunction(r))throw new Error("callback param must be a function/closure");if("function"==typeof e.forEach)e.forEach(r);else if(a.helper.isArray(e))for(var t=0;t<e.length;t++)r(e[t],t,e);else{if("object"!=typeof e)throw new Error("obj does not seem to be an array or an iterable object");for(var n in e)e.hasOwnProperty(n)&&r(e[n],n,e)}},a.helper.stdExtName=function(e){"use strict";return e.replace(/[_?*+\/\\.^-]/g,"").replace(/\s/g,"").toLowerCase()},a.helper.escapeCharactersCallback=t,a.helper.escapeCharacters=function(e,r,a){"use strict";var n="(["+r.replace(/([\[\]\\])/g,"\\$1")+"])";a&&(n="\\\\"+n);var s=new RegExp(n,"g");return e=e.replace(s,t)},a.helper.unescapeHTMLEntities=function(e){"use strict";return e.replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")};var c=function(e,r,t,a){"use strict";var n,s,o,i,l,c=a||"",u=c.indexOf("g")>-1,d=new RegExp(r+"|"+t,"g"+c.replace(/g/g,"")),p=new RegExp(r,c.replace(/g/g,"")),h=[];do{for(n=0;o=d.exec(e);)if(p.test(o[0]))n++||(i=(s=d.lastIndex)-o[0].length);else if(n&&!--n){l=o.index+o[0].length;var _={left:{start:i,end:s},match:{start:s,end:o.index},right:{start:o.index,end:l},wholeMatch:{start:i,end:l}};if(h.push(_),!u)return h}}while(n&&(d.lastIndex=s));return h};a.helper.matchRecursiveRegExp=function(e,r,t,a){"use strict";for(var n=c(e,r,t,a),s=[],o=0;o<n.length;++o)s.push([e.slice(n[o].wholeMatch.start,n[o].wholeMatch.end),e.slice(n[o].match.start,n[o].match.end),e.slice(n[o].left.start,n[o].left.end),e.slice(n[o].right.start,n[o].right.end)]);return s},a.helper.replaceRecursiveRegExp=function(e,r,t,n,s){"use strict";if(!a.helper.isFunction(r)){var o=r;r=function(){return o}}var i=c(e,t,n,s),l=e,u=i.length;if(u>0){var d=[];0!==i[0].wholeMatch.start&&d.push(e.slice(0,i[0].wholeMatch.start));for(var p=0;p<u;++p)d.push(r(e.slice(i[p].wholeMatch.start,i[p].wholeMatch.end),e.slice(i[p].match.start,i[p].match.end),e.slice(i[p].left.start,i[p].left.end),e.slice(i[p].right.start,i[p].right.end))),p<u-1&&d.push(e.slice(i[p].wholeMatch.end,i[p+1].wholeMatch.start));i[u-1].wholeMatch.end<e.length&&d.push(e.slice(i[u-1].wholeMatch.end)),l=d.join("")}return l},a.helper.regexIndexOf=function(e,r,t){"use strict";if(!a.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";if(r instanceof RegExp==!1)throw"InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp";var n=e.substring(t||0).search(r);return n>=0?n+(t||0):n},a.helper.splitAtIndex=function(e,r){"use strict";if(!a.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[e.substring(0,r),e.substring(r)]},a.helper.encodeEmailAddress=function(e){"use strict";var r=[function(e){return"&#"+e.charCodeAt(0)+";"},function(e){return"&#x"+e.charCodeAt(0).toString(16)+";"},function(e){return e}];return e=e.replace(/./g,function(e){if("@"===e)e=r[Math.floor(2*Math.random())](e);else{var t=Math.random();e=t>.9?r[2](e):t>.45?r[1](e):r[0](e)}return e})},a.helper.padEnd=function(e,r,t){"use strict";return r>>=0,t=String(t||" "),e.length>r?String(e):((r-=e.length)>t.length&&(t+=t.repeat(r/t.length)),String(e)+t.slice(0,r))},"undefined"==typeof console&&(console={warn:function(e){"use strict";alert(e)},log:function(e){"use strict";alert(e)},error:function(e){"use strict";throw e}}),a.helper.regexes={asteriskDashAndColon:/([*_:~])/g},a.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️&zwj;♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴&zwj;♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱&zwj;♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇&zwj;♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷&zwj;♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨&zwj;❤️&zwj;👨",couple_with_heart_woman_woman:"👩&zwj;❤️&zwj;👩",couplekiss_man_man:"👨&zwj;❤️&zwj;💋&zwj;👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩&zwj;❤️&zwj;💋&zwj;👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯&zwj;♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁&zwj;🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨&zwj;👦",family_man_boy_boy:"👨&zwj;👦&zwj;👦",family_man_girl:"👨&zwj;👧",family_man_girl_boy:"👨&zwj;👧&zwj;👦",family_man_girl_girl:"👨&zwj;👧&zwj;👧",family_man_man_boy:"👨&zwj;👨&zwj;👦",family_man_man_boy_boy:"👨&zwj;👨&zwj;👦&zwj;👦",family_man_man_girl:"👨&zwj;👨&zwj;👧",family_man_man_girl_boy:"👨&zwj;👨&zwj;👧&zwj;👦",family_man_man_girl_girl:"👨&zwj;👨&zwj;👧&zwj;👧",family_man_woman_boy_boy:"👨&zwj;👩&zwj;👦&zwj;👦",family_man_woman_girl:"👨&zwj;👩&zwj;👧",family_man_woman_girl_boy:"👨&zwj;👩&zwj;👧&zwj;👦",family_man_woman_girl_girl:"👨&zwj;👩&zwj;👧&zwj;👧",family_woman_boy:"👩&zwj;👦",family_woman_boy_boy:"👩&zwj;👦&zwj;👦",family_woman_girl:"👩&zwj;👧",family_woman_girl_boy:"👩&zwj;👧&zwj;👦",family_woman_girl_girl:"👩&zwj;👧&zwj;👧",family_woman_woman_boy:"👩&zwj;👩&zwj;👦",family_woman_woman_boy_boy:"👩&zwj;👩&zwj;👦&zwj;👦",family_woman_woman_girl:"👩&zwj;👩&zwj;👧",family_woman_woman_girl_boy:"👩&zwj;👩&zwj;👧&zwj;👦",family_woman_woman_girl_girl:"👩&zwj;👩&zwj;👧&zwj;👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️&zwj;♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍&zwj;♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️&zwj;♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂&zwj;♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇&zwj;♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨&zwj;🎨",man_astronaut:"👨&zwj;🚀",man_cartwheeling:"🤸&zwj;♂️",man_cook:"👨&zwj;🍳",man_dancing:"🕺",man_facepalming:"🤦&zwj;♂️",man_factory_worker:"👨&zwj;🏭",man_farmer:"👨&zwj;🌾",man_firefighter:"👨&zwj;🚒",man_health_worker:"👨&zwj;⚕️",man_in_tuxedo:"🤵",man_judge:"👨&zwj;⚖️",man_juggling:"🤹&zwj;♂️",man_mechanic:"👨&zwj;🔧",man_office_worker:"👨&zwj;💼",man_pilot:"👨&zwj;✈️",man_playing_handball:"🤾&zwj;♂️",man_playing_water_polo:"🤽&zwj;♂️",man_scientist:"👨&zwj;🔬",man_shrugging:"🤷&zwj;♂️",man_singer:"👨&zwj;🎤",man_student:"👨&zwj;🎓",man_teacher:"👨&zwj;🏫",man_technologist:"👨&zwj;💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆&zwj;♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼&zwj;♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵&zwj;♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅&zwj;♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆&zwj;♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮&zwj;♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎&zwj;♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️&zwj;🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋&zwj;♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣&zwj;♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃&zwj;♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄&zwj;♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊&zwj;♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁&zwj;♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶&zwj;♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️&zwj;♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩&zwj;🎨",woman_astronaut:"👩&zwj;🚀",woman_cartwheeling:"🤸&zwj;♀️",woman_cook:"👩&zwj;🍳",woman_facepalming:"🤦&zwj;♀️",woman_factory_worker:"👩&zwj;🏭",woman_farmer:"👩&zwj;🌾",woman_firefighter:"👩&zwj;🚒",woman_health_worker:"👩&zwj;⚕️",woman_judge:"👩&zwj;⚖️",woman_juggling:"🤹&zwj;♀️",woman_mechanic:"👩&zwj;🔧",woman_office_worker:"👩&zwj;💼",woman_pilot:"👩&zwj;✈️",woman_playing_handball:"🤾&zwj;♀️",woman_playing_water_polo:"🤽&zwj;♀️",woman_scientist:"👩&zwj;🔬",woman_shrugging:"🤷&zwj;♀️",woman_singer:"👩&zwj;🎤",woman_student:"👩&zwj;🎓",woman_teacher:"👩&zwj;🏫",woman_technologist:"👩&zwj;💻",woman_with_turban:"👳&zwj;♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼&zwj;♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:'<img alt=":octocat:" height="20" width="20" align="absmiddle" src="https://assets-cdn.github.com/images/icons/emoji/octocat.png">',showdown:"<span style=\"font-family: 'Anonymous Pro', monospace; text-decoration: underline; text-decoration-style: dashed; text-decoration-color: #3e8b8a;text-underline-position: under;\">S</span>"},a.Converter=function(e){"use strict";function t(e,t){if(t=t||null,a.helper.isString(e)){if(e=a.helper.stdExtName(e),t=e,a.extensions[e])return console.warn("DEPRECATION WARNING: "+e+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),void function(e,t){"function"==typeof e&&(e=e(new a.Converter));a.helper.isArray(e)||(e=[e]);var n=r(e,t);if(!n.valid)throw Error(n.error);for(var s=0;s<e.length;++s)switch(e[s].type){case"lang":u.push(e[s]);break;case"output":d.push(e[s]);break;default:throw Error("Extension loader error: Type unrecognized!!!")}}(a.extensions[e],e);if(a.helper.isUndefined(s[e]))throw Error('Extension "'+e+'" could not be loaded. It was either not found or is not a valid extension.');e=s[e]}"function"==typeof e&&(e=e()),a.helper.isArray(e)||(e=[e]);var o=r(e,t);if(!o.valid)throw Error(o.error);for(var i=0;i<e.length;++i){switch(e[i].type){case"lang":u.push(e[i]);break;case"output":d.push(e[i])}if(e[i].hasOwnProperty("listeners"))for(var l in e[i].listeners)e[i].listeners.hasOwnProperty(l)&&n(l,e[i].listeners[l])}}function n(e,r){if(!a.helper.isString(e))throw Error("Invalid argument in converter.listen() method: name must be a string, but "+typeof e+" given");if("function"!=typeof r)throw Error("Invalid argument in converter.listen() method: callback must be a function, but "+typeof r+" given");p.hasOwnProperty(e)||(p[e]=[]),p[e].push(r)}var c={},u=[],d=[],p={},h=i,_={parsed:{},raw:"",format:""};!function(){e=e||{};for(var r in o)o.hasOwnProperty(r)&&(c[r]=o[r]);if("object"!=typeof e)throw Error("Converter expects the passed parameter to be an object, but "+typeof e+" was passed instead.");for(var n in e)e.hasOwnProperty(n)&&(c[n]=e[n]);c.extensions&&a.helper.forEach(c.extensions,t)}(),this._dispatch=function(e,r,t,a){if(p.hasOwnProperty(e))for(var n=0;n<p[e].length;++n){var s=p[e][n](e,r,this,t,a);s&&void 0!==s&&(r=s)}return r},this.listen=function(e,r){return n(e,r),this},this.makeHtml=function(e){if(!e)return e;var r={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:u,outputModifiers:d,converter:this,ghCodeBlocks:[],metadata:{parsed:{},raw:"",format:""}};return e=e.replace(/¨/g,"¨T"),e=e.replace(/\$/g,"¨D"),e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n"),e=e.replace(/\u00A0/g,"&nbsp;"),c.smartIndentationFix&&(e=function(e){var r=e.match(/^\s*/)[0].length,t=new RegExp("^\\s{0,"+r+"}","gm");return e.replace(t,"")}(e)),e="\n\n"+e+"\n\n",e=a.subParser("detab")(e,c,r),e=e.replace(/^[ \t]+$/gm,""),a.helper.forEach(u,function(t){e=a.subParser("runExtension")(t,e,c,r)}),e=a.subParser("metadata")(e,c,r),e=a.subParser("hashPreCodeTags")(e,c,r),e=a.subParser("githubCodeBlocks")(e,c,r),e=a.subParser("hashHTMLBlocks")(e,c,r),e=a.subParser("hashCodeTags")(e,c,r),e=a.subParser("stripLinkDefinitions")(e,c,r),e=a.subParser("blockGamut")(e,c,r),e=a.subParser("unhashHTMLSpans")(e,c,r),e=a.subParser("unescapeSpecialChars")(e,c,r),e=e.replace(/¨D/g,"$$"),e=e.replace(/¨T/g,"¨"),e=a.subParser("completeHTMLDocument")(e,c,r),a.helper.forEach(d,function(t){e=a.subParser("runExtension")(t,e,c,r)}),_=r.metadata,e},this.makeMarkdown=this.makeMd=function(e,r){function t(e){for(var r=0;r<e.childNodes.length;++r){var a=e.childNodes[r];3===a.nodeType?/\S/.test(a.nodeValue)?(a.nodeValue=a.nodeValue.split("\n").join(" "),a.nodeValue=a.nodeValue.replace(/(\s)+/g,"$1")):(e.removeChild(a),--r):1===a.nodeType&&t(a)}}if(e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n"),e=e.replace(/>[ \t]+</,">¨NBSP;<"),!r){if(!window||!window.document)throw new Error("HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM");r=window.document}var n=r.createElement("div");n.innerHTML=e;var s={preList:function(e){for(var r=e.querySelectorAll("pre"),t=[],n=0;n<r.length;++n)if(1===r[n].childElementCount&&"code"===r[n].firstChild.tagName.toLowerCase()){var s=r[n].firstChild.innerHTML.trim(),o=r[n].firstChild.getAttribute("data-language")||"";if(""===o)for(var i=r[n].firstChild.className.split(" "),l=0;l<i.length;++l){var c=i[l].match(/^language-(.+)$/);if(null!==c){o=c[1];break}}s=a.helper.unescapeHTMLEntities(s),t.push(s),r[n].outerHTML='<precode language="'+o+'" precodenum="'+n.toString()+'"></precode>'}else t.push(r[n].innerHTML),r[n].innerHTML="",r[n].setAttribute("prenum",n.toString());return t}(n)};t(n);for(var o=n.childNodes,i="",l=0;l<o.length;l++)i+=a.subParser("makeMarkdown.node")(o[l],s);return i},this.setOption=function(e,r){c[e]=r},this.getOption=function(e){return c[e]},this.getOptions=function(){return c},this.addExtension=function(e,r){t(e,r=r||null)},this.useExtension=function(e){t(e)},this.setFlavor=function(e){if(!l.hasOwnProperty(e))throw Error(e+" flavor was not found");var r=l[e];h=e;for(var t in r)r.hasOwnProperty(t)&&(c[t]=r[t])},this.getFlavor=function(){return h},this.removeExtension=function(e){a.helper.isArray(e)||(e=[e]);for(var r=0;r<e.length;++r){for(var t=e[r],n=0;n<u.length;++n)u[n]===t&&u[n].splice(n,1);for(;0<d.length;++n)d[0]===t&&d[0].splice(n,1)}},this.getAllExtensions=function(){return{language:u,output:d}},this.getMetadata=function(e){return e?_.raw:_.parsed},this.getMetadataFormat=function(){return _.format},this._setMetadataPair=function(e,r){_.parsed[e]=r},this._setMetadataFormat=function(e){_.format=e},this._setMetadataRaw=function(e){_.raw=e}},a.subParser("anchors",function(e,r,t){"use strict";var n=function(e,n,s,o,i,l,c){if(a.helper.isUndefined(c)&&(c=""),s=s.toLowerCase(),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)o="";else if(!o){if(s||(s=n.toLowerCase().replace(/ ?\n/g," ")),o="#"+s,a.helper.isUndefined(t.gUrls[s]))return e;o=t.gUrls[s],a.helper.isUndefined(t.gTitles[s])||(c=t.gTitles[s])}var u='<a href="'+(o=o.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"';return""!==c&&null!==c&&(u+=' title="'+(c=(c=c.replace(/"/g,"&quot;")).replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"'),r.openLinksInNewWindow&&!/^#/.test(o)&&(u+=' rel="noopener noreferrer" target="¨E95Eblank"'),u+=">"+n+"</a>"};return e=(e=t.converter._dispatch("anchors.before",e,r,t)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g,n),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,n),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,n),e=e.replace(/\[([^\[\]]+)]()()()()()/g,n),r.ghMentions&&(e=e.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gim,function(e,t,n,s,o){if("\\"===n)return t+s;if(!a.helper.isString(r.ghMentionsLink))throw new Error("ghMentionsLink option must be a string");var i=r.ghMentionsLink.replace(/\{u}/g,o),l="";return r.openLinksInNewWindow&&(l=' rel="noopener noreferrer" target="¨E95Eblank"'),t+'<a href="'+i+'"'+l+">"+s+"</a>"})),e=t.converter._dispatch("anchors.after",e,r,t)});var u=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,d=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,p=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,h=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,_=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,g=function(e){"use strict";return function(r,t,n,s,o,i,l){var c=n=n.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback),u="",d="",p=t||"",h=l||"";return/^www\./i.test(n)&&(n=n.replace(/^www\./i,"http://www.")),e.excludeTrailingPunctuationFromURLs&&i&&(u=i),e.openLinksInNewWindow&&(d=' rel="noopener noreferrer" target="¨E95Eblank"'),p+'<a href="'+n+'"'+d+">"+c+"</a>"+u+h}},m=function(e,r){"use strict";return function(t,n,s){var o="mailto:";return n=n||"",s=a.subParser("unescapeSpecialChars")(s,e,r),e.encodeEmails?(o=a.helper.encodeEmailAddress(o+s),s=a.helper.encodeEmailAddress(s)):o+=s,n+'<a href="'+o+'">'+s+"</a>"}};a.subParser("autoLinks",function(e,r,t){"use strict";return e=t.converter._dispatch("autoLinks.before",e,r,t),e=e.replace(p,g(r)),e=e.replace(_,m(r,t)),e=t.converter._dispatch("autoLinks.after",e,r,t)}),a.subParser("simplifiedAutoLinks",function(e,r,t){"use strict";return r.simplifiedAutoLink?(e=t.converter._dispatch("simplifiedAutoLinks.before",e,r,t),e=r.excludeTrailingPunctuationFromURLs?e.replace(d,g(r)):e.replace(u,g(r)),e=e.replace(h,m(r,t)),e=t.converter._dispatch("simplifiedAutoLinks.after",e,r,t)):e}),a.subParser("blockGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("blockGamut.before",e,r,t),e=a.subParser("blockQuotes")(e,r,t),e=a.subParser("headers")(e,r,t),e=a.subParser("horizontalRule")(e,r,t),e=a.subParser("lists")(e,r,t),e=a.subParser("codeBlocks")(e,r,t),e=a.subParser("tables")(e,r,t),e=a.subParser("hashHTMLBlocks")(e,r,t),e=a.subParser("paragraphs")(e,r,t),e=t.converter._dispatch("blockGamut.after",e,r,t)}),a.subParser("blockQuotes",function(e,r,t){"use strict";e=t.converter._dispatch("blockQuotes.before",e,r,t),e+="\n\n";var n=/(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;return r.splitAdjacentBlockquotes&&(n=/^ {0,3}>[\s\S]*?(?:\n\n)/gm),e=e.replace(n,function(e){return e=e.replace(/^[ \t]*>[ \t]?/gm,""),e=e.replace(/¨0/g,""),e=e.replace(/^[ \t]+$/gm,""),e=a.subParser("githubCodeBlocks")(e,r,t),e=a.subParser("blockGamut")(e,r,t),e=e.replace(/(^|\n)/g,"$1 "),e=e.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(e,r){var t=r;return t=t.replace(/^ /gm,"¨0"),t=t.replace(/¨0/g,"")}),a.subParser("hashBlock")("<blockquote>\n"+e+"\n</blockquote>",r,t)}),e=t.converter._dispatch("blockQuotes.after",e,r,t)}),a.subParser("codeBlocks",function(e,r,t){"use strict";e=t.converter._dispatch("codeBlocks.before",e,r,t);return e=(e+="¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g,function(e,n,s){var o=n,i=s,l="\n";return o=a.subParser("outdent")(o,r,t),o=a.subParser("encodeCode")(o,r,t),o=a.subParser("detab")(o,r,t),o=o.replace(/^\n+/g,""),o=o.replace(/\n+$/g,""),r.omitExtraWLInCodeBlocks&&(l=""),o="<pre><code>"+o+l+"</code></pre>",a.subParser("hashBlock")(o,r,t)+i}),e=e.replace(/¨0/,""),e=t.converter._dispatch("codeBlocks.after",e,r,t)}),a.subParser("codeSpans",function(e,r,t){"use strict";return void 0===(e=t.converter._dispatch("codeSpans.before",e,r,t))&&(e=""),e=e.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(e,n,s,o){var i=o;return i=i.replace(/^([ \t]*)/g,""),i=i.replace(/[ \t]*$/g,""),i=a.subParser("encodeCode")(i,r,t),i=n+"<code>"+i+"</code>",i=a.subParser("hashHTMLSpans")(i,r,t)}),e=t.converter._dispatch("codeSpans.after",e,r,t)}),a.subParser("completeHTMLDocument",function(e,r,t){"use strict";if(!r.completeHTMLDocument)return e;e=t.converter._dispatch("completeHTMLDocument.before",e,r,t);var a="html",n="<!DOCTYPE HTML>\n",s="",o='<meta charset="utf-8">\n',i="",l="";void 0!==t.metadata.parsed.doctype&&(n="<!DOCTYPE "+t.metadata.parsed.doctype+">\n","html"!==(a=t.metadata.parsed.doctype.toString().toLowerCase())&&"html5"!==a||(o='<meta charset="utf-8">'));for(var c in t.metadata.parsed)if(t.metadata.parsed.hasOwnProperty(c))switch(c.toLowerCase()){case"doctype":break;case"title":s="<title>"+t.metadata.parsed.title+"</title>\n";break;case"charset":o="html"===a||"html5"===a?'<meta charset="'+t.metadata.parsed.charset+'">\n':'<meta name="charset" content="'+t.metadata.parsed.charset+'">\n';break;case"language":case"lang":i=' lang="'+t.metadata.parsed[c]+'"',l+='<meta name="'+c+'" content="'+t.metadata.parsed[c]+'">\n';break;default:l+='<meta name="'+c+'" content="'+t.metadata.parsed[c]+'">\n'}return e=n+"<html"+i+">\n<head>\n"+s+o+l+"</head>\n<body>\n"+e.trim()+"\n</body>\n</html>",e=t.converter._dispatch("completeHTMLDocument.after",e,r,t)}),a.subParser("detab",function(e,r,t){"use strict";return e=t.converter._dispatch("detab.before",e,r,t),e=e.replace(/\t(?=\t)/g," "),e=e.replace(/\t/g,"¨A¨B"),e=e.replace(/¨B(.+?)¨A/g,function(e,r){for(var t=r,a=4-t.length%4,n=0;n<a;n++)t+=" ";return t}),e=e.replace(/¨A/g," "),e=e.replace(/¨B/g,""),e=t.converter._dispatch("detab.after",e,r,t)}),a.subParser("ellipsis",function(e,r,t){"use strict";return e=t.converter._dispatch("ellipsis.before",e,r,t),e=e.replace(/\.\.\./g,"…"),e=t.converter._dispatch("ellipsis.after",e,r,t)}),a.subParser("emoji",function(e,r,t){"use strict";if(!r.emoji)return e;return e=(e=t.converter._dispatch("emoji.before",e,r,t)).replace(/:([\S]+?):/g,function(e,r){return a.helper.emojis.hasOwnProperty(r)?a.helper.emojis[r]:e}),e=t.converter._dispatch("emoji.after",e,r,t)}),a.subParser("encodeAmpsAndAngles",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeAmpsAndAngles.before",e,r,t),e=e.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;"),e=e.replace(/<(?![a-z\/?$!])/gi,"&lt;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),e=t.converter._dispatch("encodeAmpsAndAngles.after",e,r,t)}),a.subParser("encodeBackslashEscapes",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeBackslashEscapes.before",e,r,t),e=e.replace(/\\(\\)/g,a.helper.escapeCharactersCallback),e=e.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeBackslashEscapes.after",e,r,t)}),a.subParser("encodeCode",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeCode.before",e,r,t),e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/([*_{}\[\]\\=~-])/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeCode.after",e,r,t)}),a.subParser("escapeSpecialCharsWithinTagAttributes",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",e,r,t)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,function(e){return e.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,a.helper.escapeCharactersCallback)}),e=e.replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi,function(e){return e.replace(/([\\`*_~=|])/g,a.helper.escapeCharactersCallback)}),e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",e,r,t)}),a.subParser("githubCodeBlocks",function(e,r,t){"use strict";return r.ghCodeBlocks?(e=t.converter._dispatch("githubCodeBlocks.before",e,r,t),e+="¨0",e=e.replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g,function(e,n,s,o){var i=r.omitExtraWLInCodeBlocks?"":"\n";return o=a.subParser("encodeCode")(o,r,t),o=a.subParser("detab")(o,r,t),o=o.replace(/^\n+/g,""),o=o.replace(/\n+$/g,""),o="<pre><code"+(s?' class="'+s+" language-"+s+'"':"")+">"+o+i+"</code></pre>",o=a.subParser("hashBlock")(o,r,t),"\n\n¨G"+(t.ghCodeBlocks.push({text:e,codeblock:o})-1)+"G\n\n"}),e=e.replace(/¨0/,""),t.converter._dispatch("githubCodeBlocks.after",e,r,t)):e}),a.subParser("hashBlock",function(e,r,t){"use strict";return e=t.converter._dispatch("hashBlock.before",e,r,t),e=e.replace(/(^\n+|\n+$)/g,""),e="\n\n¨K"+(t.gHtmlBlocks.push(e)-1)+"K\n\n",e=t.converter._dispatch("hashBlock.after",e,r,t)}),a.subParser("hashCodeTags",function(e,r,t){"use strict";e=t.converter._dispatch("hashCodeTags.before",e,r,t);return e=a.helper.replaceRecursiveRegExp(e,function(e,n,s,o){var i=s+a.subParser("encodeCode")(n,r,t)+o;return"¨C"+(t.gHtmlSpans.push(i)-1)+"C"},"<code\\b[^>]*>","</code>","gim"),e=t.converter._dispatch("hashCodeTags.after",e,r,t)}),a.subParser("hashElement",function(e,r,t){"use strict";return function(e,r){var a=r;return a=a.replace(/\n\n/g,"\n"),a=a.replace(/^\n/,""),a=a.replace(/\n+$/g,""),a="\n\n¨K"+(t.gHtmlBlocks.push(a)-1)+"K\n\n"}}),a.subParser("hashHTMLBlocks",function(e,r,t){"use strict";e=t.converter._dispatch("hashHTMLBlocks.before",e,r,t);var n=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"],s=function(e,r,a,n){var s=e;return-1!==a.search(/\bmarkdown\b/)&&(s=a+t.converter.makeHtml(r)+n),"\n\n¨K"+(t.gHtmlBlocks.push(s)-1)+"K\n\n"};r.backslashEscapesHTMLTags&&(e=e.replace(/\\<(\/?[^>]+?)>/g,function(e,r){return"&lt;"+r+"&gt;"}));for(var o=0;o<n.length;++o)for(var i,l=new RegExp("^ {0,3}(<"+n[o]+"\\b[^>]*>)","im"),c="<"+n[o]+"\\b[^>]*>",u="</"+n[o]+">";-1!==(i=a.helper.regexIndexOf(e,l));){var d=a.helper.splitAtIndex(e,i),p=a.helper.replaceRecursiveRegExp(d[1],s,c,u,"im");if(p===d[1])break;e=d[0].concat(p)}return e=e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,a.subParser("hashElement")(e,r,t)),e=a.helper.replaceRecursiveRegExp(e,function(e){return"\n\n¨K"+(t.gHtmlBlocks.push(e)-1)+"K\n\n"},"^ {0,3}\x3c!--","--\x3e","gm"),e=e.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,a.subParser("hashElement")(e,r,t)),e=t.converter._dispatch("hashHTMLBlocks.after",e,r,t)}),a.subParser("hashHTMLSpans",function(e,r,t){"use strict";function a(e){return"¨C"+(t.gHtmlSpans.push(e)-1)+"C"}return e=t.converter._dispatch("hashHTMLSpans.before",e,r,t),e=e.replace(/<[^>]+?\/>/gi,function(e){return a(e)}),e=e.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,function(e){return a(e)}),e=e.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,function(e){return a(e)}),e=e.replace(/<[^>]+?>/gi,function(e){return a(e)}),e=t.converter._dispatch("hashHTMLSpans.after",e,r,t)}),a.subParser("unhashHTMLSpans",function(e,r,t){"use strict";e=t.converter._dispatch("unhashHTMLSpans.before",e,r,t);for(var a=0;a<t.gHtmlSpans.length;++a){for(var n=t.gHtmlSpans[a],s=0;/¨C(\d+)C/.test(n);){var o=RegExp.$1;if(n=n.replace("¨C"+o+"C",t.gHtmlSpans[o]),10===s){console.error("maximum nesting of 10 spans reached!!!");break}++s}e=e.replace("¨C"+a+"C",n)}return e=t.converter._dispatch("unhashHTMLSpans.after",e,r,t)}),a.subParser("hashPreCodeTags",function(e,r,t){"use strict";e=t.converter._dispatch("hashPreCodeTags.before",e,r,t);return e=a.helper.replaceRecursiveRegExp(e,function(e,n,s,o){var i=s+a.subParser("encodeCode")(n,r,t)+o;return"\n\n¨G"+(t.ghCodeBlocks.push({text:e,codeblock:i})-1)+"G\n\n"},"^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>","^ {0,3}</code>\\s*</pre>","gim"),e=t.converter._dispatch("hashPreCodeTags.after",e,r,t)}),a.subParser("headers",function(e,r,t){"use strict";function n(e){var n,s;if(r.customizedHeaderId){var o=e.match(/\{([^{]+?)}\s*$/);o&&o[1]&&(e=o[1])}return n=e,s=a.helper.isString(r.prefixHeaderId)?r.prefixHeaderId:!0===r.prefixHeaderId?"section-":"",r.rawPrefixHeaderId||(n=s+n),n=r.ghCompatibleHeaderId?n.replace(/ /g,"-").replace(/&amp;/g,"").replace(/¨T/g,"").replace(/¨D/g,"").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g,"").toLowerCase():r.rawHeaderId?n.replace(/ /g,"-").replace(/&amp;/g,"&").replace(/¨T/g,"¨").replace(/¨D/g,"$").replace(/["']/g,"-").toLowerCase():n.replace(/[^\w]/g,"").toLowerCase(),r.rawPrefixHeaderId&&(n=s+n),t.hashLinkCounts[n]?n=n+"-"+t.hashLinkCounts[n]++:t.hashLinkCounts[n]=1,n}e=t.converter._dispatch("headers.before",e,r,t);var s=isNaN(parseInt(r.headerLevelStart))?1:parseInt(r.headerLevelStart),o=r.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,i=r.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm;e=(e=e.replace(o,function(e,o){var i=a.subParser("spanGamut")(o,r,t),l=r.noHeaderId?"":' id="'+n(o)+'"',c="<h"+s+l+">"+i+"</h"+s+">";return a.subParser("hashBlock")(c,r,t)})).replace(i,function(e,o){var i=a.subParser("spanGamut")(o,r,t),l=r.noHeaderId?"":' id="'+n(o)+'"',c=s+1,u="<h"+c+l+">"+i+"</h"+c+">";return a.subParser("hashBlock")(u,r,t)});var l=r.requireSpaceBeforeHeadingText?/^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm:/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm;return e=e.replace(l,function(e,o,i){var l=i;r.customizedHeaderId&&(l=i.replace(/\s?\{([^{]+?)}\s*$/,""));var c=a.subParser("spanGamut")(l,r,t),u=r.noHeaderId?"":' id="'+n(i)+'"',d=s-1+o.length,p="<h"+d+u+">"+c+"</h"+d+">";return a.subParser("hashBlock")(p,r,t)}),e=t.converter._dispatch("headers.after",e,r,t)}),a.subParser("horizontalRule",function(e,r,t){"use strict";e=t.converter._dispatch("horizontalRule.before",e,r,t);var n=a.subParser("hashBlock")("<hr />",r,t);return e=e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm,n),e=e.replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm,n),e=e.replace(/^ {0,2}( ?_){3,}[ \t]*$/gm,n),e=t.converter._dispatch("horizontalRule.after",e,r,t)}),a.subParser("images",function(e,r,t){"use strict";function n(e,r,n,s,o,i,l,c){var u=t.gUrls,d=t.gTitles,p=t.gDimensions;if(n=n.toLowerCase(),c||(c=""),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)s="";else if(""===s||null===s){if(""!==n&&null!==n||(n=r.toLowerCase().replace(/ ?\n/g," ")),s="#"+n,a.helper.isUndefined(u[n]))return e;s=u[n],a.helper.isUndefined(d[n])||(c=d[n]),a.helper.isUndefined(p[n])||(o=p[n].width,i=p[n].height)}r=r.replace(/"/g,"&quot;").replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback);var h='<img src="'+(s=s.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'" alt="'+r+'"';return c&&a.helper.isString(c)&&(h+=' title="'+(c=c.replace(/"/g,"&quot;").replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"'),o&&i&&(h+=' width="'+(o="*"===o?"auto":o)+'"',h+=' height="'+(i="*"===i?"auto":i)+'"'),h+=" />"}return e=(e=t.converter._dispatch("images.before",e,r,t)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,n),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,function(e,r,t,a,s,o,i,l){return a=a.replace(/\s/g,""),n(e,r,t,a,s,o,0,l)}),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,n),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,n),e=e.replace(/!\[([^\[\]]+)]()()()()()/g,n),e=t.converter._dispatch("images.after",e,r,t)}),a.subParser("italicsAndBold",function(e,r,t){"use strict";function a(e,r,t){return r+e+t}return e=t.converter._dispatch("italicsAndBold.before",e,r,t),e=r.literalMidWordUnderscores?(e=(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return a(r,"<strong><em>","</em></strong>")})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return a(r,"<strong>","</strong>")})).replace(/\b_(\S[\s\S]*?)_\b/g,function(e,r){return a(r,"<em>","</em>")}):(e=(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?a(r,"<strong><em>","</em></strong>"):e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?a(r,"<strong>","</strong>"):e})).replace(/_([^\s_][\s\S]*?)_/g,function(e,r){return/\S$/.test(r)?a(r,"<em>","</em>"):e}),e=r.literalMidWordAsterisks?(e=(e=e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<strong><em>","</em></strong>")})).replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<strong>","</strong>")})).replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<em>","</em>")}):(e=(e=e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g,function(e,r){return/\S$/.test(r)?a(r,"<strong><em>","</em></strong>"):e})).replace(/\*\*(\S[\s\S]*?)\*\*/g,function(e,r){return/\S$/.test(r)?a(r,"<strong>","</strong>"):e})).replace(/\*([^\s*][\s\S]*?)\*/g,function(e,r){return/\S$/.test(r)?a(r,"<em>","</em>"):e}),e=t.converter._dispatch("italicsAndBold.after",e,r,t)}),a.subParser("lists",function(e,r,t){"use strict";function n(e,n){t.gListLevel++,e=e.replace(/\n{2,}$/,"\n");var s=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,o=/\n[ \t]*\n(?!¨0)/.test(e+="¨0");return r.disableForced4SpacesIndentedSublists&&(s=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm),e=e.replace(s,function(e,n,s,i,l,c,u){u=u&&""!==u.trim();var d=a.subParser("outdent")(l,r,t),p="";return c&&r.tasklists&&(p=' class="task-list-item" style="list-style-type: none;"',d=d.replace(/^[ \t]*\[(x|X| )?]/m,function(){var e='<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"';return u&&(e+=" checked"),e+=">"})),d=d.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g,function(e){return"¨A"+e}),n||d.search(/\n{2,}/)>-1?(d=a.subParser("githubCodeBlocks")(d,r,t),d=a.subParser("blockGamut")(d,r,t)):(d=(d=a.subParser("lists")(d,r,t)).replace(/\n$/,""),d=(d=a.subParser("hashHTMLBlocks")(d,r,t)).replace(/\n\n+/g,"\n\n"),d=o?a.subParser("paragraphs")(d,r,t):a.subParser("spanGamut")(d,r,t)),d=d.replace("¨A",""),d="<li"+p+">"+d+"</li>\n"}),e=e.replace(/¨0/g,""),t.gListLevel--,n&&(e=e.replace(/\s+$/,"")),e}function s(e,r){if("ol"===r){var t=e.match(/^ *(\d+)\./);if(t&&"1"!==t[1])return' start="'+t[1]+'"'}return""}function o(e,t,a){var o=r.disableForced4SpacesIndentedSublists?/^ ?\d+\.[ \t]/gm:/^ {0,3}\d+\.[ \t]/gm,i=r.disableForced4SpacesIndentedSublists?/^ ?[*+-][ \t]/gm:/^ {0,3}[*+-][ \t]/gm,l="ul"===t?o:i,c="";if(-1!==e.search(l))!function r(u){var d=u.search(l),p=s(e,t);-1!==d?(c+="\n\n<"+t+p+">\n"+n(u.slice(0,d),!!a)+"</"+t+">\n",l="ul"===(t="ul"===t?"ol":"ul")?o:i,r(u.slice(d))):c+="\n\n<"+t+p+">\n"+n(u,!!a)+"</"+t+">\n"}(e);else{var u=s(e,t);c="\n\n<"+t+u+">\n"+n(e,!!a)+"</"+t+">\n"}return c}return e=t.converter._dispatch("lists.before",e,r,t),e+="¨0",e=t.gListLevel?e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,r,t){return o(r,t.search(/[*+-]/g)>-1?"ul":"ol",!0)}):e.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,r,t,a){return o(t,a.search(/[*+-]/g)>-1?"ul":"ol",!1)}),e=e.replace(/¨0/,""),e=t.converter._dispatch("lists.after",e,r,t)}),a.subParser("metadata",function(e,r,t){"use strict";function a(e){t.metadata.raw=e,(e=(e=e.replace(/&/g,"&amp;").replace(/"/g,"&quot;")).replace(/\n {4}/g," ")).replace(/^([\S ]+): +([\s\S]+?)$/gm,function(e,r,a){return t.metadata.parsed[r]=a,""})}return r.metadata?(e=t.converter._dispatch("metadata.before",e,r,t),e=e.replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/,function(e,r,t){return a(t),"¨M"}),e=e.replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/,function(e,r,n){return r&&(t.metadata.format=r),a(n),"¨M"}),e=e.replace(/¨M/g,""),e=t.converter._dispatch("metadata.after",e,r,t)):e}),a.subParser("outdent",function(e,r,t){"use strict";return e=t.converter._dispatch("outdent.before",e,r,t),e=e.replace(/^(\t|[ ]{1,4})/gm,"¨0"),e=e.replace(/¨0/g,""),e=t.converter._dispatch("outdent.after",e,r,t)}),a.subParser("paragraphs",function(e,r,t){"use strict";for(var n=(e=(e=(e=t.converter._dispatch("paragraphs.before",e,r,t)).replace(/^\n+/g,"")).replace(/\n+$/g,"")).split(/\n{2,}/g),s=[],o=n.length,i=0;i<o;i++){var l=n[i];l.search(/¨(K|G)(\d+)\1/g)>=0?s.push(l):l.search(/\S/)>=0&&(l=(l=a.subParser("spanGamut")(l,r,t)).replace(/^([ \t]*)/g,"<p>"),l+="</p>",s.push(l))}for(o=s.length,i=0;i<o;i++){for(var c="",u=s[i],d=!1;/¨(K|G)(\d+)\1/.test(u);){var p=RegExp.$1,h=RegExp.$2;c=(c="K"===p?t.gHtmlBlocks[h]:d?a.subParser("encodeCode")(t.ghCodeBlocks[h].text,r,t):t.ghCodeBlocks[h].codeblock).replace(/\$/g,"$$$$"),u=u.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/,c),/^<pre\b[^>]*>\s*<code\b[^>]*>/.test(u)&&(d=!0)}s[i]=u}return e=s.join("\n"),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),t.converter._dispatch("paragraphs.after",e,r,t)}),a.subParser("runExtension",function(e,r,t,a){"use strict";if(e.filter)r=e.filter(r,a.converter,t);else if(e.regex){var n=e.regex;n instanceof RegExp||(n=new RegExp(n,"g")),r=r.replace(n,e.replace)}return r}),a.subParser("spanGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("spanGamut.before",e,r,t),e=a.subParser("codeSpans")(e,r,t),e=a.subParser("escapeSpecialCharsWithinTagAttributes")(e,r,t),e=a.subParser("encodeBackslashEscapes")(e,r,t),e=a.subParser("images")(e,r,t),e=a.subParser("anchors")(e,r,t),e=a.subParser("autoLinks")(e,r,t),e=a.subParser("simplifiedAutoLinks")(e,r,t),e=a.subParser("emoji")(e,r,t),e=a.subParser("underline")(e,r,t),e=a.subParser("italicsAndBold")(e,r,t),e=a.subParser("strikethrough")(e,r,t),e=a.subParser("ellipsis")(e,r,t),e=a.subParser("hashHTMLSpans")(e,r,t),e=a.subParser("encodeAmpsAndAngles")(e,r,t),r.simpleLineBreaks?/\n\n¨K/.test(e)||(e=e.replace(/\n+/g,"<br />\n")):e=e.replace(/ +\n/g,"<br />\n"),e=t.converter._dispatch("spanGamut.after",e,r,t)}),a.subParser("strikethrough",function(e,r,t){"use strict";return r.strikethrough&&(e=(e=t.converter._dispatch("strikethrough.before",e,r,t)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(e,n){return function(e){return r.simplifiedAutoLink&&(e=a.subParser("simplifiedAutoLinks")(e,r,t)),"<del>"+e+"</del>"}(n)}),e=t.converter._dispatch("strikethrough.after",e,r,t)),e}),a.subParser("stripLinkDefinitions",function(e,r,t){"use strict";var n=function(e,n,s,o,i,l,c){return n=n.toLowerCase(),s.match(/^data:.+?\/.+?;base64,/)?t.gUrls[n]=s.replace(/\s/g,""):t.gUrls[n]=a.subParser("encodeAmpsAndAngles")(s,r,t),l?l+c:(c&&(t.gTitles[n]=c.replace(/"|'/g,"&quot;")),r.parseImgDimensions&&o&&i&&(t.gDimensions[n]={width:o,height:i}),"")};return e=(e+="¨0").replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,n),e=e.replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,n),e=e.replace(/¨0/,"")}),a.subParser("tables",function(e,r,t){"use strict";function n(e){return/^:[ \t]*--*$/.test(e)?' style="text-align:left;"':/^--*[ \t]*:[ \t]*$/.test(e)?' style="text-align:right;"':/^:[ \t]*--*[ \t]*:$/.test(e)?' style="text-align:center;"':""}function s(e,n){var s="";return e=e.trim(),(r.tablesHeaderId||r.tableHeaderId)&&(s=' id="'+e.replace(/ /g,"_").toLowerCase()+'"'),e=a.subParser("spanGamut")(e,r,t),"<th"+s+n+">"+e+"</th>\n"}function o(e,n){return"<td"+n+">"+a.subParser("spanGamut")(e,r,t)+"</td>\n"}function i(e){var i,l=e.split("\n");for(i=0;i<l.length;++i)/^ {0,3}\|/.test(l[i])&&(l[i]=l[i].replace(/^ {0,3}\|/,"")),/\|[ \t]*$/.test(l[i])&&(l[i]=l[i].replace(/\|[ \t]*$/,"")),l[i]=a.subParser("codeSpans")(l[i],r,t);var c=l[0].split("|").map(function(e){return e.trim()}),u=l[1].split("|").map(function(e){return e.trim()}),d=[],p=[],h=[],_=[];for(l.shift(),l.shift(),i=0;i<l.length;++i)""!==l[i].trim()&&d.push(l[i].split("|").map(function(e){return e.trim()}));if(c.length<u.length)return e;for(i=0;i<u.length;++i)h.push(n(u[i]));for(i=0;i<c.length;++i)a.helper.isUndefined(h[i])&&(h[i]=""),p.push(s(c[i],h[i]));for(i=0;i<d.length;++i){for(var g=[],m=0;m<p.length;++m)a.helper.isUndefined(d[i][m]),g.push(o(d[i][m],h[m]));_.push(g)}return function(e,r){for(var t="<table>\n<thead>\n<tr>\n",a=e.length,n=0;n<a;++n)t+=e[n];for(t+="</tr>\n</thead>\n<tbody>\n",n=0;n<r.length;++n){t+="<tr>\n";for(var s=0;s<a;++s)t+=r[n][s];t+="</tr>\n"}return t+="</tbody>\n</table>\n"}(p,_)}if(!r.tables)return e;return e=t.converter._dispatch("tables.before",e,r,t),e=e.replace(/\\(\|)/g,a.helper.escapeCharactersCallback),e=e.replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,i),e=e.replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm,i),e=t.converter._dispatch("tables.after",e,r,t)}),a.subParser("underline",function(e,r,t){"use strict";return r.underline?(e=t.converter._dispatch("underline.before",e,r,t),e=r.literalMidWordUnderscores?(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return"<u>"+r+"</u>"})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return"<u>"+r+"</u>"}):(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?"<u>"+r+"</u>":e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?"<u>"+r+"</u>":e}),e=e.replace(/(_)/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("underline.after",e,r,t)):e}),a.subParser("unescapeSpecialChars",function(e,r,t){"use strict";return e=t.converter._dispatch("unescapeSpecialChars.before",e,r,t),e=e.replace(/¨E(\d+)E/g,function(e,r){var t=parseInt(r);return String.fromCharCode(t)}),e=t.converter._dispatch("unescapeSpecialChars.after",e,r,t)}),a.subParser("makeMarkdown.blockquote",function(e,r){"use strict";var t="";if(e.hasChildNodes())for(var n=e.childNodes,s=n.length,o=0;o<s;++o){var i=a.subParser("makeMarkdown.node")(n[o],r);""!==i&&(t+=i)}return t=t.trim(),t="> "+t.split("\n").join("\n> ")}),a.subParser("makeMarkdown.codeBlock",function(e,r){"use strict";var t=e.getAttribute("language"),a=e.getAttribute("precodenum");return"```"+t+"\n"+r.preList[a]+"\n```"}),a.subParser("makeMarkdown.codeSpan",function(e){"use strict";return"`"+e.innerHTML+"`"}),a.subParser("makeMarkdown.emphasis",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="*";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="*"}return t}),a.subParser("makeMarkdown.header",function(e,r,t){"use strict";var n=new Array(t+1).join("#"),s="";if(e.hasChildNodes()){s=n+" ";for(var o=e.childNodes,i=o.length,l=0;l<i;++l)s+=a.subParser("makeMarkdown.node")(o[l],r)}return s}),a.subParser("makeMarkdown.hr",function(){"use strict";return"---"}),a.subParser("makeMarkdown.image",function(e){"use strict";var r="";return e.hasAttribute("src")&&(r+="!["+e.getAttribute("alt")+"](",r+="<"+e.getAttribute("src")+">",e.hasAttribute("width")&&e.hasAttribute("height")&&(r+=" ="+e.getAttribute("width")+"x"+e.getAttribute("height")),e.hasAttribute("title")&&(r+=' "'+e.getAttribute("title")+'"'),r+=")"),r}),a.subParser("makeMarkdown.links",function(e,r){"use strict";var t="";if(e.hasChildNodes()&&e.hasAttribute("href")){var n=e.childNodes,s=n.length;t="[";for(var o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="](",t+="<"+e.getAttribute("href")+">",e.hasAttribute("title")&&(t+=' "'+e.getAttribute("title")+'"'),t+=")"}return t}),a.subParser("makeMarkdown.list",function(e,r,t){"use strict";var n="";if(!e.hasChildNodes())return"";for(var s=e.childNodes,o=s.length,i=e.getAttribute("start")||1,l=0;l<o;++l)if(void 0!==s[l].tagName&&"li"===s[l].tagName.toLowerCase()){n+=("ol"===t?i.toString()+". ":"- ")+a.subParser("makeMarkdown.listItem")(s[l],r),++i}return(n+="\n\x3c!-- --\x3e\n").trim()}),a.subParser("makeMarkdown.listItem",function(e,r){"use strict";for(var t="",n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);return/\n$/.test(t)?t=t.split("\n").join("\n ").replace(/^ {4}$/gm,"").replace(/\n\n+/g,"\n\n"):t+="\n",t}),a.subParser("makeMarkdown.node",function(e,r,t){"use strict";t=t||!1;var n="";if(3===e.nodeType)return a.subParser("makeMarkdown.txt")(e,r);if(8===e.nodeType)return"\x3c!--"+e.data+"--\x3e\n\n";if(1!==e.nodeType)return"";switch(e.tagName.toLowerCase()){case"h1":t||(n=a.subParser("makeMarkdown.header")(e,r,1)+"\n\n");break;case"h2":t||(n=a.subParser("makeMarkdown.header")(e,r,2)+"\n\n");break;case"h3":t||(n=a.subParser("makeMarkdown.header")(e,r,3)+"\n\n");break;case"h4":t||(n=a.subParser("makeMarkdown.header")(e,r,4)+"\n\n");break;case"h5":t||(n=a.subParser("makeMarkdown.header")(e,r,5)+"\n\n");break;case"h6":t||(n=a.subParser("makeMarkdown.header")(e,r,6)+"\n\n");break;case"p":t||(n=a.subParser("makeMarkdown.paragraph")(e,r)+"\n\n");break;case"blockquote":t||(n=a.subParser("makeMarkdown.blockquote")(e,r)+"\n\n");break;case"hr":t||(n=a.subParser("makeMarkdown.hr")(e,r)+"\n\n");break;case"ol":t||(n=a.subParser("makeMarkdown.list")(e,r,"ol")+"\n\n");break;case"ul":t||(n=a.subParser("makeMarkdown.list")(e,r,"ul")+"\n\n");break;case"precode":t||(n=a.subParser("makeMarkdown.codeBlock")(e,r)+"\n\n");break;case"pre":t||(n=a.subParser("makeMarkdown.pre")(e,r)+"\n\n");break;case"table":t||(n=a.subParser("makeMarkdown.table")(e,r)+"\n\n");break;case"code":n=a.subParser("makeMarkdown.codeSpan")(e,r);break;case"em":case"i":n=a.subParser("makeMarkdown.emphasis")(e,r);break;case"strong":case"b":n=a.subParser("makeMarkdown.strong")(e,r);break;case"del":n=a.subParser("makeMarkdown.strikethrough")(e,r);break;case"a":n=a.subParser("makeMarkdown.links")(e,r);break;case"img":n=a.subParser("makeMarkdown.image")(e,r);break;default:n=e.outerHTML+"\n\n"}return n}),a.subParser("makeMarkdown.paragraph",function(e,r){"use strict";var t="";if(e.hasChildNodes())for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);return t=t.trim()}),a.subParser("makeMarkdown.pre",function(e,r){"use strict";var t=e.getAttribute("prenum");return"<pre>"+r.preList[t]+"</pre>"}),a.subParser("makeMarkdown.strikethrough",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="~~";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="~~"}return t}),a.subParser("makeMarkdown.strong",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="**";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="**"}return t}),a.subParser("makeMarkdown.table",function(e,r){"use strict";var t,n,s="",o=[[],[]],i=e.querySelectorAll("thead>tr>th"),l=e.querySelectorAll("tbody>tr");for(t=0;t<i.length;++t){var c=a.subParser("makeMarkdown.tableCell")(i[t],r),u="---";if(i[t].hasAttribute("style")){switch(i[t].getAttribute("style").toLowerCase().replace(/\s/g,"")){case"text-align:left;":u=":---";break;case"text-align:right;":u="---:";break;case"text-align:center;":u=":---:"}}o[0][t]=c.trim(),o[1][t]=u}for(t=0;t<l.length;++t){var d=o.push([])-1,p=l[t].getElementsByTagName("td");for(n=0;n<i.length;++n){var h=" ";void 0!==p[n]&&(h=a.subParser("makeMarkdown.tableCell")(p[n],r)),o[d].push(h)}}var _=3;for(t=0;t<o.length;++t)for(n=0;n<o[t].length;++n){var g=o[t][n].length;g>_&&(_=g)}for(t=0;t<o.length;++t){for(n=0;n<o[t].length;++n)1===t?":"===o[t][n].slice(-1)?o[t][n]=a.helper.padEnd(o[t][n].slice(-1),_-1,"-")+":":o[t][n]=a.helper.padEnd(o[t][n],_,"-"):o[t][n]=a.helper.padEnd(o[t][n],_);s+="| "+o[t].join(" | ")+" |\n"}return s.trim()}),a.subParser("makeMarkdown.tableCell",function(e,r){"use strict";var t="";if(!e.hasChildNodes())return"";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r,!0);return t.trim()}),a.subParser("makeMarkdown.txt",function(e){"use strict";var r=e.nodeValue;return r=r.replace(/ +/g," "),r=r.replace(/¨NBSP;/g," "),r=a.helper.unescapeHTMLEntities(r),r=r.replace(/([*_~|`])/g,"\\$1"),r=r.replace(/^(\s*)>/g,"\\$1>"),r=r.replace(/^#/gm,"\\#"),r=r.replace(/^(\s*)([-=]{3,})(\s*)$/,"$1\\$2$3"),r=r.replace(/^( {0,3}\d+)\./gm,"$1\\."),r=r.replace(/^( {0,3})([+-])/gm,"$1\\$2"),r=r.replace(/]([\s]*)\(/g,"\\]$1\\("),r=r.replace(/^ {0,3}\[([\S \t]*?)]:/gm,"\\[$1]:")});"function"==typeof define&&define.amd?define(function(){"use strict";return a}):"undefined"!=typeof module&&module.exports?module.exports=a:this.showdown=a}).call(this); 3 - //# sourceMappingURL=showdown.min.js.map 1 + /*! showdown v 1.9.1 - 02-11-2019 */ 2 + (function(){function e(e){"use strict";var r={omitExtraWLInCodeBlocks:{defaultValue:!1,describe:"Omit the default extra whiteline added to code blocks",type:"boolean"},noHeaderId:{defaultValue:!1,describe:"Turn on/off generated header id",type:"boolean"},prefixHeaderId:{defaultValue:!1,describe:"Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic 'section-' prefix",type:"string"},rawPrefixHeaderId:{defaultValue:!1,describe:'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the " char is used in the prefix)',type:"boolean"},ghCompatibleHeaderId:{defaultValue:!1,describe:"Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)",type:"boolean"},rawHeaderId:{defaultValue:!1,describe:"Remove only spaces, ' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids",type:"boolean"},headerLevelStart:{defaultValue:!1,describe:"The header blocks level start",type:"integer"},parseImgDimensions:{defaultValue:!1,describe:"Turn on/off image dimension parsing",type:"boolean"},simplifiedAutoLink:{defaultValue:!1,describe:"Turn on/off GFM autolink style",type:"boolean"},excludeTrailingPunctuationFromURLs:{defaultValue:!1,describe:"Excludes trailing punctuation from links generated with autoLinking",type:"boolean"},literalMidWordUnderscores:{defaultValue:!1,describe:"Parse midword underscores as literal underscores",type:"boolean"},literalMidWordAsterisks:{defaultValue:!1,describe:"Parse midword asterisks as literal asterisks",type:"boolean"},strikethrough:{defaultValue:!1,describe:"Turn on/off strikethrough support",type:"boolean"},tables:{defaultValue:!1,describe:"Turn on/off tables support",type:"boolean"},tablesHeaderId:{defaultValue:!1,describe:"Add an id to table headers",type:"boolean"},ghCodeBlocks:{defaultValue:!0,describe:"Turn on/off GFM fenced code blocks support",type:"boolean"},tasklists:{defaultValue:!1,describe:"Turn on/off GFM tasklist support",type:"boolean"},smoothLivePreview:{defaultValue:!1,describe:"Prevents weird effects in live previews due to incomplete input",type:"boolean"},smartIndentationFix:{defaultValue:!1,description:"Tries to smartly fix indentation in es6 strings",type:"boolean"},disableForced4SpacesIndentedSublists:{defaultValue:!1,description:"Disables the requirement of indenting nested sublists by 4 spaces",type:"boolean"},simpleLineBreaks:{defaultValue:!1,description:"Parses simple line breaks as <br> (GFM Style)",type:"boolean"},requireSpaceBeforeHeadingText:{defaultValue:!1,description:"Makes adding a space between `#` and the header text mandatory (GFM Style)",type:"boolean"},ghMentions:{defaultValue:!1,description:"Enables github @mentions",type:"boolean"},ghMentionsLink:{defaultValue:"https://github.com/{u}",description:"Changes the link generated by @mentions. Only applies if ghMentions option is enabled.",type:"string"},encodeEmails:{defaultValue:!0,description:"Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities",type:"boolean"},openLinksInNewWindow:{defaultValue:!1,description:"Open all links in new windows",type:"boolean"},backslashEscapesHTMLTags:{defaultValue:!1,description:"Support for HTML Tag escaping. ex: <div>foo</div>",type:"boolean"},emoji:{defaultValue:!1,description:"Enable emoji support. Ex: `this is a :smile: emoji`",type:"boolean"},underline:{defaultValue:!1,description:"Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `<em>` and `<strong>`",type:"boolean"},completeHTMLDocument:{defaultValue:!1,description:"Outputs a complete html document, including `<html>`, `<head>` and `<body>` tags",type:"boolean"},metadata:{defaultValue:!1,description:"Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).",type:"boolean"},splitAdjacentBlockquotes:{defaultValue:!1,description:"Split adjacent blockquote blocks",type:"boolean"}};if(!1===e)return JSON.parse(JSON.stringify(r));var t={};for(var a in r)r.hasOwnProperty(a)&&(t[a]=r[a].defaultValue);return t}function r(e,r){"use strict";var t=r?"Error in "+r+" extension->":"Error in unnamed extension",n={valid:!0,error:""};a.helper.isArray(e)||(e=[e]);for(var s=0;s<e.length;++s){var o=t+" sub-extension "+s+": ",i=e[s];if("object"!=typeof i)return n.valid=!1,n.error=o+"must be an object, but "+typeof i+" given",n;if(!a.helper.isString(i.type))return n.valid=!1,n.error=o+'property "type" must be a string, but '+typeof i.type+" given",n;var l=i.type=i.type.toLowerCase();if("language"===l&&(l=i.type="lang"),"html"===l&&(l=i.type="output"),"lang"!==l&&"output"!==l&&"listener"!==l)return n.valid=!1,n.error=o+"type "+l+' is not recognized. Valid values: "lang/language", "output/html" or "listener"',n;if("listener"===l){if(a.helper.isUndefined(i.listeners))return n.valid=!1,n.error=o+'. Extensions of type "listener" must have a property called "listeners"',n}else if(a.helper.isUndefined(i.filter)&&a.helper.isUndefined(i.regex))return n.valid=!1,n.error=o+l+' extensions must define either a "regex" property or a "filter" method',n;if(i.listeners){if("object"!=typeof i.listeners)return n.valid=!1,n.error=o+'"listeners" property must be an object but '+typeof i.listeners+" given",n;for(var c in i.listeners)if(i.listeners.hasOwnProperty(c)&&"function"!=typeof i.listeners[c])return n.valid=!1,n.error=o+'"listeners" property must be an hash of [event name]: [callback]. listeners.'+c+" must be a function but "+typeof i.listeners[c]+" given",n}if(i.filter){if("function"!=typeof i.filter)return n.valid=!1,n.error=o+'"filter" must be a function, but '+typeof i.filter+" given",n}else if(i.regex){if(a.helper.isString(i.regex)&&(i.regex=new RegExp(i.regex,"g")),!(i.regex instanceof RegExp))return n.valid=!1,n.error=o+'"regex" property must either be a string or a RegExp object, but '+typeof i.regex+" given",n;if(a.helper.isUndefined(i.replace))return n.valid=!1,n.error=o+'"regex" extensions must implement a replace string or function',n}}return n}function t(e,r){"use strict";return"¨E"+r.charCodeAt(0)+"E"}var a={},n={},s={},o=e(!0),i="vanilla",l={github:{omitExtraWLInCodeBlocks:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,disableForced4SpacesIndentedSublists:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghCompatibleHeaderId:!0,ghMentions:!0,backslashEscapesHTMLTags:!0,emoji:!0,splitAdjacentBlockquotes:!0},original:{noHeaderId:!0,ghCodeBlocks:!1},ghost:{omitExtraWLInCodeBlocks:!0,parseImgDimensions:!0,simplifiedAutoLink:!0,excludeTrailingPunctuationFromURLs:!0,literalMidWordUnderscores:!0,strikethrough:!0,tables:!0,tablesHeaderId:!0,ghCodeBlocks:!0,tasklists:!0,smoothLivePreview:!0,simpleLineBreaks:!0,requireSpaceBeforeHeadingText:!0,ghMentions:!1,encodeEmails:!0},vanilla:e(!0),allOn:function(){"use strict";var r=e(!0),t={};for(var a in r)r.hasOwnProperty(a)&&(t[a]=!0);return t}()};a.helper={},a.extensions={},a.setOption=function(e,r){"use strict";return o[e]=r,this},a.getOption=function(e){"use strict";return o[e]},a.getOptions=function(){"use strict";return o},a.resetOptions=function(){"use strict";o=e(!0)},a.setFlavor=function(e){"use strict";if(!l.hasOwnProperty(e))throw Error(e+" flavor was not found");a.resetOptions();var r=l[e];i=e;for(var t in r)r.hasOwnProperty(t)&&(o[t]=r[t])},a.getFlavor=function(){"use strict";return i},a.getFlavorOptions=function(e){"use strict";if(l.hasOwnProperty(e))return l[e]},a.getDefaultOptions=function(r){"use strict";return e(r)},a.subParser=function(e,r){"use strict";if(a.helper.isString(e)){if(void 0===r){if(n.hasOwnProperty(e))return n[e];throw Error("SubParser named "+e+" not registered!")}n[e]=r}},a.extension=function(e,t){"use strict";if(!a.helper.isString(e))throw Error("Extension 'name' must be a string");if(e=a.helper.stdExtName(e),a.helper.isUndefined(t)){if(!s.hasOwnProperty(e))throw Error("Extension named "+e+" is not registered!");return s[e]}"function"==typeof t&&(t=t()),a.helper.isArray(t)||(t=[t]);var n=r(t,e);if(!n.valid)throw Error(n.error);s[e]=t},a.getAllExtensions=function(){"use strict";return s},a.removeExtension=function(e){"use strict";delete s[e]},a.resetExtensions=function(){"use strict";s={}},a.validateExtension=function(e){"use strict";var t=r(e,null);return!!t.valid||(console.warn(t.error),!1)},a.hasOwnProperty("helper")||(a.helper={}),a.helper.isString=function(e){"use strict";return"string"==typeof e||e instanceof String},a.helper.isFunction=function(e){"use strict";return e&&"[object Function]"==={}.toString.call(e)},a.helper.isArray=function(e){"use strict";return Array.isArray(e)},a.helper.isUndefined=function(e){"use strict";return void 0===e},a.helper.forEach=function(e,r){"use strict";if(a.helper.isUndefined(e))throw new Error("obj param is required");if(a.helper.isUndefined(r))throw new Error("callback param is required");if(!a.helper.isFunction(r))throw new Error("callback param must be a function/closure");if("function"==typeof e.forEach)e.forEach(r);else if(a.helper.isArray(e))for(var t=0;t<e.length;t++)r(e[t],t,e);else{if("object"!=typeof e)throw new Error("obj does not seem to be an array or an iterable object");for(var n in e)e.hasOwnProperty(n)&&r(e[n],n,e)}},a.helper.stdExtName=function(e){"use strict";return e.replace(/[_?*+\/\\.^-]/g,"").replace(/\s/g,"").toLowerCase()},a.helper.escapeCharactersCallback=t,a.helper.escapeCharacters=function(e,r,a){"use strict";var n="(["+r.replace(/([\[\]\\])/g,"\\$1")+"])";a&&(n="\\\\"+n);var s=new RegExp(n,"g");return e=e.replace(s,t)},a.helper.unescapeHTMLEntities=function(e){"use strict";return e.replace(/&quot;/g,'"').replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")};var c=function(e,r,t,a){"use strict";var n,s,o,i,l,c=a||"",u=c.indexOf("g")>-1,d=new RegExp(r+"|"+t,"g"+c.replace(/g/g,"")),p=new RegExp(r,c.replace(/g/g,"")),h=[];do{for(n=0;o=d.exec(e);)if(p.test(o[0]))n++||(i=(s=d.lastIndex)-o[0].length);else if(n&&!--n){l=o.index+o[0].length;var _={left:{start:i,end:s},match:{start:s,end:o.index},right:{start:o.index,end:l},wholeMatch:{start:i,end:l}};if(h.push(_),!u)return h}}while(n&&(d.lastIndex=s));return h};a.helper.matchRecursiveRegExp=function(e,r,t,a){"use strict";for(var n=c(e,r,t,a),s=[],o=0;o<n.length;++o)s.push([e.slice(n[o].wholeMatch.start,n[o].wholeMatch.end),e.slice(n[o].match.start,n[o].match.end),e.slice(n[o].left.start,n[o].left.end),e.slice(n[o].right.start,n[o].right.end)]);return s},a.helper.replaceRecursiveRegExp=function(e,r,t,n,s){"use strict";if(!a.helper.isFunction(r)){var o=r;r=function(){return o}}var i=c(e,t,n,s),l=e,u=i.length;if(u>0){var d=[];0!==i[0].wholeMatch.start&&d.push(e.slice(0,i[0].wholeMatch.start));for(var p=0;p<u;++p)d.push(r(e.slice(i[p].wholeMatch.start,i[p].wholeMatch.end),e.slice(i[p].match.start,i[p].match.end),e.slice(i[p].left.start,i[p].left.end),e.slice(i[p].right.start,i[p].right.end))),p<u-1&&d.push(e.slice(i[p].wholeMatch.end,i[p+1].wholeMatch.start));i[u-1].wholeMatch.end<e.length&&d.push(e.slice(i[u-1].wholeMatch.end)),l=d.join("")}return l},a.helper.regexIndexOf=function(e,r,t){"use strict";if(!a.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";if(r instanceof RegExp==!1)throw"InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp";var n=e.substring(t||0).search(r);return n>=0?n+(t||0):n},a.helper.splitAtIndex=function(e,r){"use strict";if(!a.helper.isString(e))throw"InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string";return[e.substring(0,r),e.substring(r)]},a.helper.encodeEmailAddress=function(e){"use strict";var r=[function(e){return"&#"+e.charCodeAt(0)+";"},function(e){return"&#x"+e.charCodeAt(0).toString(16)+";"},function(e){return e}];return e=e.replace(/./g,function(e){if("@"===e)e=r[Math.floor(2*Math.random())](e);else{var t=Math.random();e=t>.9?r[2](e):t>.45?r[1](e):r[0](e)}return e})},a.helper.padEnd=function(e,r,t){"use strict";return r>>=0,t=String(t||" "),e.length>r?String(e):((r-=e.length)>t.length&&(t+=t.repeat(r/t.length)),String(e)+t.slice(0,r))},"undefined"==typeof console&&(console={warn:function(e){"use strict";alert(e)},log:function(e){"use strict";alert(e)},error:function(e){"use strict";throw e}}),a.helper.regexes={asteriskDashAndColon:/([*_:~])/g},a.helper.emojis={"+1":"👍","-1":"👎",100:"💯",1234:"🔢","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱",a:"🅰️",ab:"🆎",abc:"🔤",abcd:"🔡",accept:"🉑",aerial_tramway:"🚡",airplane:"✈️",alarm_clock:"⏰",alembic:"⚗️",alien:"👽",ambulance:"🚑",amphora:"🏺",anchor:"⚓️",angel:"👼",anger:"💢",angry:"😠",anguished:"😧",ant:"🐜",apple:"🍎",aquarius:"♒️",aries:"♈️",arrow_backward:"◀️",arrow_double_down:"⏬",arrow_double_up:"⏫",arrow_down:"⬇️",arrow_down_small:"🔽",arrow_forward:"▶️",arrow_heading_down:"⤵️",arrow_heading_up:"⤴️",arrow_left:"⬅️",arrow_lower_left:"↙️",arrow_lower_right:"↘️",arrow_right:"➡️",arrow_right_hook:"↪️",arrow_up:"⬆️",arrow_up_down:"↕️",arrow_up_small:"🔼",arrow_upper_left:"↖️",arrow_upper_right:"↗️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",art:"🎨",articulated_lorry:"🚛",artificial_satellite:"🛰",astonished:"😲",athletic_shoe:"👟",atm:"🏧",atom_symbol:"⚛️",avocado:"🥑",b:"🅱️",baby:"👶",baby_bottle:"🍼",baby_chick:"🐤",baby_symbol:"🚼",back:"🔙",bacon:"🥓",badminton:"🏸",baggage_claim:"🛄",baguette_bread:"🥖",balance_scale:"⚖️",balloon:"🎈",ballot_box:"🗳",ballot_box_with_check:"☑️",bamboo:"🎍",banana:"🍌",bangbang:"‼️",bank:"🏦",bar_chart:"📊",barber:"💈",baseball:"⚾️",basketball:"🏀",basketball_man:"⛹️",basketball_woman:"⛹️&zwj;♀️",bat:"🦇",bath:"🛀",bathtub:"🛁",battery:"🔋",beach_umbrella:"🏖",bear:"🐻",bed:"🛏",bee:"🐝",beer:"🍺",beers:"🍻",beetle:"🐞",beginner:"🔰",bell:"🔔",bellhop_bell:"🛎",bento:"🍱",biking_man:"🚴",bike:"🚲",biking_woman:"🚴&zwj;♀️",bikini:"👙",biohazard:"☣️",bird:"🐦",birthday:"🎂",black_circle:"⚫️",black_flag:"🏴",black_heart:"🖤",black_joker:"🃏",black_large_square:"⬛️",black_medium_small_square:"◾️",black_medium_square:"◼️",black_nib:"✒️",black_small_square:"▪️",black_square_button:"🔲",blonde_man:"👱",blonde_woman:"👱&zwj;♀️",blossom:"🌼",blowfish:"🐡",blue_book:"📘",blue_car:"🚙",blue_heart:"💙",blush:"😊",boar:"🐗",boat:"⛵️",bomb:"💣",book:"📖",bookmark:"🔖",bookmark_tabs:"📑",books:"📚",boom:"💥",boot:"👢",bouquet:"💐",bowing_man:"🙇",bow_and_arrow:"🏹",bowing_woman:"🙇&zwj;♀️",bowling:"🎳",boxing_glove:"🥊",boy:"👦",bread:"🍞",bride_with_veil:"👰",bridge_at_night:"🌉",briefcase:"💼",broken_heart:"💔",bug:"🐛",building_construction:"🏗",bulb:"💡",bullettrain_front:"🚅",bullettrain_side:"🚄",burrito:"🌯",bus:"🚌",business_suit_levitating:"🕴",busstop:"🚏",bust_in_silhouette:"👤",busts_in_silhouette:"👥",butterfly:"🦋",cactus:"🌵",cake:"🍰",calendar:"📆",call_me_hand:"🤙",calling:"📲",camel:"🐫",camera:"📷",camera_flash:"📸",camping:"🏕",cancer:"♋️",candle:"🕯",candy:"🍬",canoe:"🛶",capital_abcd:"🔠",capricorn:"♑️",car:"🚗",card_file_box:"🗃",card_index:"📇",card_index_dividers:"🗂",carousel_horse:"🎠",carrot:"🥕",cat:"🐱",cat2:"🐈",cd:"💿",chains:"⛓",champagne:"🍾",chart:"💹",chart_with_downwards_trend:"📉",chart_with_upwards_trend:"📈",checkered_flag:"🏁",cheese:"🧀",cherries:"🍒",cherry_blossom:"🌸",chestnut:"🌰",chicken:"🐔",children_crossing:"🚸",chipmunk:"🐿",chocolate_bar:"🍫",christmas_tree:"🎄",church:"⛪️",cinema:"🎦",circus_tent:"🎪",city_sunrise:"🌇",city_sunset:"🌆",cityscape:"🏙",cl:"🆑",clamp:"🗜",clap:"👏",clapper:"🎬",classical_building:"🏛",clinking_glasses:"🥂",clipboard:"📋",clock1:"🕐",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",clock12:"🕛",clock1230:"🕧",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",closed_book:"📕",closed_lock_with_key:"🔐",closed_umbrella:"🌂",cloud:"☁️",cloud_with_lightning:"🌩",cloud_with_lightning_and_rain:"⛈",cloud_with_rain:"🌧",cloud_with_snow:"🌨",clown_face:"🤡",clubs:"♣️",cocktail:"🍸",coffee:"☕️",coffin:"⚰️",cold_sweat:"😰",comet:"☄️",computer:"💻",computer_mouse:"🖱",confetti_ball:"🎊",confounded:"😖",confused:"😕",congratulations:"㊗️",construction:"🚧",construction_worker_man:"👷",construction_worker_woman:"👷&zwj;♀️",control_knobs:"🎛",convenience_store:"🏪",cookie:"🍪",cool:"🆒",policeman:"👮",copyright:"©️",corn:"🌽",couch_and_lamp:"🛋",couple:"👫",couple_with_heart_woman_man:"💑",couple_with_heart_man_man:"👨&zwj;❤️&zwj;👨",couple_with_heart_woman_woman:"👩&zwj;❤️&zwj;👩",couplekiss_man_man:"👨&zwj;❤️&zwj;💋&zwj;👨",couplekiss_man_woman:"💏",couplekiss_woman_woman:"👩&zwj;❤️&zwj;💋&zwj;👩",cow:"🐮",cow2:"🐄",cowboy_hat_face:"🤠",crab:"🦀",crayon:"🖍",credit_card:"💳",crescent_moon:"🌙",cricket:"🏏",crocodile:"🐊",croissant:"🥐",crossed_fingers:"🤞",crossed_flags:"🎌",crossed_swords:"⚔️",crown:"👑",cry:"😢",crying_cat_face:"😿",crystal_ball:"🔮",cucumber:"🥒",cupid:"💘",curly_loop:"➰",currency_exchange:"💱",curry:"🍛",custard:"🍮",customs:"🛃",cyclone:"🌀",dagger:"🗡",dancer:"💃",dancing_women:"👯",dancing_men:"👯&zwj;♂️",dango:"🍡",dark_sunglasses:"🕶",dart:"🎯",dash:"💨",date:"📅",deciduous_tree:"🌳",deer:"🦌",department_store:"🏬",derelict_house:"🏚",desert:"🏜",desert_island:"🏝",desktop_computer:"🖥",male_detective:"🕵️",diamond_shape_with_a_dot_inside:"💠",diamonds:"♦️",disappointed:"😞",disappointed_relieved:"😥",dizzy:"💫",dizzy_face:"😵",do_not_litter:"🚯",dog:"🐶",dog2:"🐕",dollar:"💵",dolls:"🎎",dolphin:"🐬",door:"🚪",doughnut:"🍩",dove:"🕊",dragon:"🐉",dragon_face:"🐲",dress:"👗",dromedary_camel:"🐪",drooling_face:"🤤",droplet:"💧",drum:"🥁",duck:"🦆",dvd:"📀","e-mail":"📧",eagle:"🦅",ear:"👂",ear_of_rice:"🌾",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",egg:"🥚",eggplant:"🍆",eight_pointed_black_star:"✴️",eight_spoked_asterisk:"✳️",electric_plug:"🔌",elephant:"🐘",email:"✉️",end:"🔚",envelope_with_arrow:"📩",euro:"💶",european_castle:"🏰",european_post_office:"🏤",evergreen_tree:"🌲",exclamation:"❗️",expressionless:"😑",eye:"👁",eye_speech_bubble:"👁&zwj;🗨",eyeglasses:"👓",eyes:"👀",face_with_head_bandage:"🤕",face_with_thermometer:"🤒",fist_oncoming:"👊",factory:"🏭",fallen_leaf:"🍂",family_man_woman_boy:"👪",family_man_boy:"👨&zwj;👦",family_man_boy_boy:"👨&zwj;👦&zwj;👦",family_man_girl:"👨&zwj;👧",family_man_girl_boy:"👨&zwj;👧&zwj;👦",family_man_girl_girl:"👨&zwj;👧&zwj;👧",family_man_man_boy:"👨&zwj;👨&zwj;👦",family_man_man_boy_boy:"👨&zwj;👨&zwj;👦&zwj;👦",family_man_man_girl:"👨&zwj;👨&zwj;👧",family_man_man_girl_boy:"👨&zwj;👨&zwj;👧&zwj;👦",family_man_man_girl_girl:"👨&zwj;👨&zwj;👧&zwj;👧",family_man_woman_boy_boy:"👨&zwj;👩&zwj;👦&zwj;👦",family_man_woman_girl:"👨&zwj;👩&zwj;👧",family_man_woman_girl_boy:"👨&zwj;👩&zwj;👧&zwj;👦",family_man_woman_girl_girl:"👨&zwj;👩&zwj;👧&zwj;👧",family_woman_boy:"👩&zwj;👦",family_woman_boy_boy:"👩&zwj;👦&zwj;👦",family_woman_girl:"👩&zwj;👧",family_woman_girl_boy:"👩&zwj;👧&zwj;👦",family_woman_girl_girl:"👩&zwj;👧&zwj;👧",family_woman_woman_boy:"👩&zwj;👩&zwj;👦",family_woman_woman_boy_boy:"👩&zwj;👩&zwj;👦&zwj;👦",family_woman_woman_girl:"👩&zwj;👩&zwj;👧",family_woman_woman_girl_boy:"👩&zwj;👩&zwj;👧&zwj;👦",family_woman_woman_girl_girl:"👩&zwj;👩&zwj;👧&zwj;👧",fast_forward:"⏩",fax:"📠",fearful:"😨",feet:"🐾",female_detective:"🕵️&zwj;♀️",ferris_wheel:"🎡",ferry:"⛴",field_hockey:"🏑",file_cabinet:"🗄",file_folder:"📁",film_projector:"📽",film_strip:"🎞",fire:"🔥",fire_engine:"🚒",fireworks:"🎆",first_quarter_moon:"🌓",first_quarter_moon_with_face:"🌛",fish:"🐟",fish_cake:"🍥",fishing_pole_and_fish:"🎣",fist_raised:"✊",fist_left:"🤛",fist_right:"🤜",flags:"🎏",flashlight:"🔦",fleur_de_lis:"⚜️",flight_arrival:"🛬",flight_departure:"🛫",floppy_disk:"💾",flower_playing_cards:"🎴",flushed:"😳",fog:"🌫",foggy:"🌁",football:"🏈",footprints:"👣",fork_and_knife:"🍴",fountain:"⛲️",fountain_pen:"🖋",four_leaf_clover:"🍀",fox_face:"🦊",framed_picture:"🖼",free:"🆓",fried_egg:"🍳",fried_shrimp:"🍤",fries:"🍟",frog:"🐸",frowning:"😦",frowning_face:"☹️",frowning_man:"🙍&zwj;♂️",frowning_woman:"🙍",middle_finger:"🖕",fuelpump:"⛽️",full_moon:"🌕",full_moon_with_face:"🌝",funeral_urn:"⚱️",game_die:"🎲",gear:"⚙️",gem:"💎",gemini:"♊️",ghost:"👻",gift:"🎁",gift_heart:"💝",girl:"👧",globe_with_meridians:"🌐",goal_net:"🥅",goat:"🐐",golf:"⛳️",golfing_man:"🏌️",golfing_woman:"🏌️&zwj;♀️",gorilla:"🦍",grapes:"🍇",green_apple:"🍏",green_book:"📗",green_heart:"💚",green_salad:"🥗",grey_exclamation:"❕",grey_question:"❔",grimacing:"😬",grin:"😁",grinning:"😀",guardsman:"💂",guardswoman:"💂&zwj;♀️",guitar:"🎸",gun:"🔫",haircut_woman:"💇",haircut_man:"💇&zwj;♂️",hamburger:"🍔",hammer:"🔨",hammer_and_pick:"⚒",hammer_and_wrench:"🛠",hamster:"🐹",hand:"✋",handbag:"👜",handshake:"🤝",hankey:"💩",hatched_chick:"🐥",hatching_chick:"🐣",headphones:"🎧",hear_no_evil:"🙉",heart:"❤️",heart_decoration:"💟",heart_eyes:"😍",heart_eyes_cat:"😻",heartbeat:"💓",heartpulse:"💗",hearts:"♥️",heavy_check_mark:"✔️",heavy_division_sign:"➗",heavy_dollar_sign:"💲",heavy_heart_exclamation:"❣️",heavy_minus_sign:"➖",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",helicopter:"🚁",herb:"🌿",hibiscus:"🌺",high_brightness:"🔆",high_heel:"👠",hocho:"🔪",hole:"🕳",honey_pot:"🍯",horse:"🐴",horse_racing:"🏇",hospital:"🏥",hot_pepper:"🌶",hotdog:"🌭",hotel:"🏨",hotsprings:"♨️",hourglass:"⌛️",hourglass_flowing_sand:"⏳",house:"🏠",house_with_garden:"🏡",houses:"🏘",hugs:"🤗",hushed:"😯",ice_cream:"🍨",ice_hockey:"🏒",ice_skate:"⛸",icecream:"🍦",id:"🆔",ideograph_advantage:"🉐",imp:"👿",inbox_tray:"📥",incoming_envelope:"📨",tipping_hand_woman:"💁",information_source:"ℹ️",innocent:"😇",interrobang:"⁉️",iphone:"📱",izakaya_lantern:"🏮",jack_o_lantern:"🎃",japan:"🗾",japanese_castle:"🏯",japanese_goblin:"👺",japanese_ogre:"👹",jeans:"👖",joy:"😂",joy_cat:"😹",joystick:"🕹",kaaba:"🕋",key:"🔑",keyboard:"⌨️",keycap_ten:"🔟",kick_scooter:"🛴",kimono:"👘",kiss:"💋",kissing:"😗",kissing_cat:"😽",kissing_closed_eyes:"😚",kissing_heart:"😘",kissing_smiling_eyes:"😙",kiwi_fruit:"🥝",koala:"🐨",koko:"🈁",label:"🏷",large_blue_circle:"🔵",large_blue_diamond:"🔷",large_orange_diamond:"🔶",last_quarter_moon:"🌗",last_quarter_moon_with_face:"🌜",latin_cross:"✝️",laughing:"😆",leaves:"🍃",ledger:"📒",left_luggage:"🛅",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",lemon:"🍋",leo:"♌️",leopard:"🐆",level_slider:"🎚",libra:"♎️",light_rail:"🚈",link:"🔗",lion:"🦁",lips:"👄",lipstick:"💄",lizard:"🦎",lock:"🔒",lock_with_ink_pen:"🔏",lollipop:"🍭",loop:"➿",loud_sound:"🔊",loudspeaker:"📢",love_hotel:"🏩",love_letter:"💌",low_brightness:"🔅",lying_face:"🤥",m:"Ⓜ️",mag:"🔍",mag_right:"🔎",mahjong:"🀄️",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",man:"👨",man_artist:"👨&zwj;🎨",man_astronaut:"👨&zwj;🚀",man_cartwheeling:"🤸&zwj;♂️",man_cook:"👨&zwj;🍳",man_dancing:"🕺",man_facepalming:"🤦&zwj;♂️",man_factory_worker:"👨&zwj;🏭",man_farmer:"👨&zwj;🌾",man_firefighter:"👨&zwj;🚒",man_health_worker:"👨&zwj;⚕️",man_in_tuxedo:"🤵",man_judge:"👨&zwj;⚖️",man_juggling:"🤹&zwj;♂️",man_mechanic:"👨&zwj;🔧",man_office_worker:"👨&zwj;💼",man_pilot:"👨&zwj;✈️",man_playing_handball:"🤾&zwj;♂️",man_playing_water_polo:"🤽&zwj;♂️",man_scientist:"👨&zwj;🔬",man_shrugging:"🤷&zwj;♂️",man_singer:"👨&zwj;🎤",man_student:"👨&zwj;🎓",man_teacher:"👨&zwj;🏫",man_technologist:"👨&zwj;💻",man_with_gua_pi_mao:"👲",man_with_turban:"👳",tangerine:"🍊",mans_shoe:"👞",mantelpiece_clock:"🕰",maple_leaf:"🍁",martial_arts_uniform:"🥋",mask:"😷",massage_woman:"💆",massage_man:"💆&zwj;♂️",meat_on_bone:"🍖",medal_military:"🎖",medal_sports:"🏅",mega:"📣",melon:"🍈",memo:"📝",men_wrestling:"🤼&zwj;♂️",menorah:"🕎",mens:"🚹",metal:"🤘",metro:"🚇",microphone:"🎤",microscope:"🔬",milk_glass:"🥛",milky_way:"🌌",minibus:"🚐",minidisc:"💽",mobile_phone_off:"📴",money_mouth_face:"🤑",money_with_wings:"💸",moneybag:"💰",monkey:"🐒",monkey_face:"🐵",monorail:"🚝",moon:"🌔",mortar_board:"🎓",mosque:"🕌",motor_boat:"🛥",motor_scooter:"🛵",motorcycle:"🏍",motorway:"🛣",mount_fuji:"🗻",mountain:"⛰",mountain_biking_man:"🚵",mountain_biking_woman:"🚵&zwj;♀️",mountain_cableway:"🚠",mountain_railway:"🚞",mountain_snow:"🏔",mouse:"🐭",mouse2:"🐁",movie_camera:"🎥",moyai:"🗿",mrs_claus:"🤶",muscle:"💪",mushroom:"🍄",musical_keyboard:"🎹",musical_note:"🎵",musical_score:"🎼",mute:"🔇",nail_care:"💅",name_badge:"📛",national_park:"🏞",nauseated_face:"🤢",necktie:"👔",negative_squared_cross_mark:"❎",nerd_face:"🤓",neutral_face:"😐",new:"🆕",new_moon:"🌑",new_moon_with_face:"🌚",newspaper:"📰",newspaper_roll:"🗞",next_track_button:"⏭",ng:"🆖",no_good_man:"🙅&zwj;♂️",no_good_woman:"🙅",night_with_stars:"🌃",no_bell:"🔕",no_bicycles:"🚳",no_entry:"⛔️",no_entry_sign:"🚫",no_mobile_phones:"📵",no_mouth:"😶",no_pedestrians:"🚷",no_smoking:"🚭","non-potable_water":"🚱",nose:"👃",notebook:"📓",notebook_with_decorative_cover:"📔",notes:"🎶",nut_and_bolt:"🔩",o:"⭕️",o2:"🅾️",ocean:"🌊",octopus:"🐙",oden:"🍢",office:"🏢",oil_drum:"🛢",ok:"🆗",ok_hand:"👌",ok_man:"🙆&zwj;♂️",ok_woman:"🙆",old_key:"🗝",older_man:"👴",older_woman:"👵",om:"🕉",on:"🔛",oncoming_automobile:"🚘",oncoming_bus:"🚍",oncoming_police_car:"🚔",oncoming_taxi:"🚖",open_file_folder:"📂",open_hands:"👐",open_mouth:"😮",open_umbrella:"☂️",ophiuchus:"⛎",orange_book:"📙",orthodox_cross:"☦️",outbox_tray:"📤",owl:"🦉",ox:"🐂",package:"📦",page_facing_up:"📄",page_with_curl:"📃",pager:"📟",paintbrush:"🖌",palm_tree:"🌴",pancakes:"🥞",panda_face:"🐼",paperclip:"📎",paperclips:"🖇",parasol_on_ground:"⛱",parking:"🅿️",part_alternation_mark:"〽️",partly_sunny:"⛅️",passenger_ship:"🛳",passport_control:"🛂",pause_button:"⏸",peace_symbol:"☮️",peach:"🍑",peanuts:"🥜",pear:"🍐",pen:"🖊",pencil2:"✏️",penguin:"🐧",pensive:"😔",performing_arts:"🎭",persevere:"😣",person_fencing:"🤺",pouting_woman:"🙎",phone:"☎️",pick:"⛏",pig:"🐷",pig2:"🐖",pig_nose:"🐽",pill:"💊",pineapple:"🍍",ping_pong:"🏓",pisces:"♓️",pizza:"🍕",place_of_worship:"🛐",plate_with_cutlery:"🍽",play_or_pause_button:"⏯",point_down:"👇",point_left:"👈",point_right:"👉",point_up:"☝️",point_up_2:"👆",police_car:"🚓",policewoman:"👮&zwj;♀️",poodle:"🐩",popcorn:"🍿",post_office:"🏣",postal_horn:"📯",postbox:"📮",potable_water:"🚰",potato:"🥔",pouch:"👝",poultry_leg:"🍗",pound:"💷",rage:"😡",pouting_cat:"😾",pouting_man:"🙎&zwj;♂️",pray:"🙏",prayer_beads:"📿",pregnant_woman:"🤰",previous_track_button:"⏮",prince:"🤴",princess:"👸",printer:"🖨",purple_heart:"💜",purse:"👛",pushpin:"📌",put_litter_in_its_place:"🚮",question:"❓",rabbit:"🐰",rabbit2:"🐇",racehorse:"🐎",racing_car:"🏎",radio:"📻",radio_button:"🔘",radioactive:"☢️",railway_car:"🚃",railway_track:"🛤",rainbow:"🌈",rainbow_flag:"🏳️&zwj;🌈",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐",raised_hands:"🙌",raising_hand_woman:"🙋",raising_hand_man:"🙋&zwj;♂️",ram:"🐏",ramen:"🍜",rat:"🐀",record_button:"⏺",recycle:"♻️",red_circle:"🔴",registered:"®️",relaxed:"☺️",relieved:"😌",reminder_ribbon:"🎗",repeat:"🔁",repeat_one:"🔂",rescue_worker_helmet:"⛑",restroom:"🚻",revolving_hearts:"💞",rewind:"⏪",rhinoceros:"🦏",ribbon:"🎀",rice:"🍚",rice_ball:"🍙",rice_cracker:"🍘",rice_scene:"🎑",right_anger_bubble:"🗯",ring:"💍",robot:"🤖",rocket:"🚀",rofl:"🤣",roll_eyes:"🙄",roller_coaster:"🎢",rooster:"🐓",rose:"🌹",rosette:"🏵",rotating_light:"🚨",round_pushpin:"📍",rowing_man:"🚣",rowing_woman:"🚣&zwj;♀️",rugby_football:"🏉",running_man:"🏃",running_shirt_with_sash:"🎽",running_woman:"🏃&zwj;♀️",sa:"🈂️",sagittarius:"♐️",sake:"🍶",sandal:"👡",santa:"🎅",satellite:"📡",saxophone:"🎷",school:"🏫",school_satchel:"🎒",scissors:"✂️",scorpion:"🦂",scorpius:"♏️",scream:"😱",scream_cat:"🙀",scroll:"📜",seat:"💺",secret:"㊙️",see_no_evil:"🙈",seedling:"🌱",selfie:"🤳",shallow_pan_of_food:"🥘",shamrock:"☘️",shark:"🦈",shaved_ice:"🍧",sheep:"🐑",shell:"🐚",shield:"🛡",shinto_shrine:"⛩",ship:"🚢",shirt:"👕",shopping:"🛍",shopping_cart:"🛒",shower:"🚿",shrimp:"🦐",signal_strength:"📶",six_pointed_star:"🔯",ski:"🎿",skier:"⛷",skull:"💀",skull_and_crossbones:"☠️",sleeping:"😴",sleeping_bed:"🛌",sleepy:"😪",slightly_frowning_face:"🙁",slightly_smiling_face:"🙂",slot_machine:"🎰",small_airplane:"🛩",small_blue_diamond:"🔹",small_orange_diamond:"🔸",small_red_triangle:"🔺",small_red_triangle_down:"🔻",smile:"😄",smile_cat:"😸",smiley:"😃",smiley_cat:"😺",smiling_imp:"😈",smirk:"😏",smirk_cat:"😼",smoking:"🚬",snail:"🐌",snake:"🐍",sneezing_face:"🤧",snowboarder:"🏂",snowflake:"❄️",snowman:"⛄️",snowman_with_snow:"☃️",sob:"😭",soccer:"⚽️",soon:"🔜",sos:"🆘",sound:"🔉",space_invader:"👾",spades:"♠️",spaghetti:"🍝",sparkle:"❇️",sparkler:"🎇",sparkles:"✨",sparkling_heart:"💖",speak_no_evil:"🙊",speaker:"🔈",speaking_head:"🗣",speech_balloon:"💬",speedboat:"🚤",spider:"🕷",spider_web:"🕸",spiral_calendar:"🗓",spiral_notepad:"🗒",spoon:"🥄",squid:"🦑",stadium:"🏟",star:"⭐️",star2:"🌟",star_and_crescent:"☪️",star_of_david:"✡️",stars:"🌠",station:"🚉",statue_of_liberty:"🗽",steam_locomotive:"🚂",stew:"🍲",stop_button:"⏹",stop_sign:"🛑",stopwatch:"⏱",straight_ruler:"📏",strawberry:"🍓",stuck_out_tongue:"😛",stuck_out_tongue_closed_eyes:"😝",stuck_out_tongue_winking_eye:"😜",studio_microphone:"🎙",stuffed_flatbread:"🥙",sun_behind_large_cloud:"🌥",sun_behind_rain_cloud:"🌦",sun_behind_small_cloud:"🌤",sun_with_face:"🌞",sunflower:"🌻",sunglasses:"😎",sunny:"☀️",sunrise:"🌅",sunrise_over_mountains:"🌄",surfing_man:"🏄",surfing_woman:"🏄&zwj;♀️",sushi:"🍣",suspension_railway:"🚟",sweat:"😓",sweat_drops:"💦",sweat_smile:"😅",sweet_potato:"🍠",swimming_man:"🏊",swimming_woman:"🏊&zwj;♀️",symbols:"🔣",synagogue:"🕍",syringe:"💉",taco:"🌮",tada:"🎉",tanabata_tree:"🎋",taurus:"♉️",taxi:"🚕",tea:"🍵",telephone_receiver:"📞",telescope:"🔭",tennis:"🎾",tent:"⛺️",thermometer:"🌡",thinking:"🤔",thought_balloon:"💭",ticket:"🎫",tickets:"🎟",tiger:"🐯",tiger2:"🐅",timer_clock:"⏲",tipping_hand_man:"💁&zwj;♂️",tired_face:"😫",tm:"™️",toilet:"🚽",tokyo_tower:"🗼",tomato:"🍅",tongue:"👅",top:"🔝",tophat:"🎩",tornado:"🌪",trackball:"🖲",tractor:"🚜",traffic_light:"🚥",train:"🚋",train2:"🚆",tram:"🚊",triangular_flag_on_post:"🚩",triangular_ruler:"📐",trident:"🔱",triumph:"😤",trolleybus:"🚎",trophy:"🏆",tropical_drink:"🍹",tropical_fish:"🐠",truck:"🚚",trumpet:"🎺",tulip:"🌷",tumbler_glass:"🥃",turkey:"🦃",turtle:"🐢",tv:"📺",twisted_rightwards_arrows:"🔀",two_hearts:"💕",two_men_holding_hands:"👬",two_women_holding_hands:"👭",u5272:"🈹",u5408:"🈴",u55b6:"🈺",u6307:"🈯️",u6708:"🈷️",u6709:"🈶",u6e80:"🈵",u7121:"🈚️",u7533:"🈸",u7981:"🈲",u7a7a:"🈳",umbrella:"☔️",unamused:"😒",underage:"🔞",unicorn:"🦄",unlock:"🔓",up:"🆙",upside_down_face:"🙃",v:"✌️",vertical_traffic_light:"🚦",vhs:"📼",vibration_mode:"📳",video_camera:"📹",video_game:"🎮",violin:"🎻",virgo:"♍️",volcano:"🌋",volleyball:"🏐",vs:"🆚",vulcan_salute:"🖖",walking_man:"🚶",walking_woman:"🚶&zwj;♀️",waning_crescent_moon:"🌘",waning_gibbous_moon:"🌖",warning:"⚠️",wastebasket:"🗑",watch:"⌚️",water_buffalo:"🐃",watermelon:"🍉",wave:"👋",wavy_dash:"〰️",waxing_crescent_moon:"🌒",wc:"🚾",weary:"😩",wedding:"💒",weight_lifting_man:"🏋️",weight_lifting_woman:"🏋️&zwj;♀️",whale:"🐳",whale2:"🐋",wheel_of_dharma:"☸️",wheelchair:"♿️",white_check_mark:"✅",white_circle:"⚪️",white_flag:"🏳️",white_flower:"💮",white_large_square:"⬜️",white_medium_small_square:"◽️",white_medium_square:"◻️",white_small_square:"▫️",white_square_button:"🔳",wilted_flower:"🥀",wind_chime:"🎐",wind_face:"🌬",wine_glass:"🍷",wink:"😉",wolf:"🐺",woman:"👩",woman_artist:"👩&zwj;🎨",woman_astronaut:"👩&zwj;🚀",woman_cartwheeling:"🤸&zwj;♀️",woman_cook:"👩&zwj;🍳",woman_facepalming:"🤦&zwj;♀️",woman_factory_worker:"👩&zwj;🏭",woman_farmer:"👩&zwj;🌾",woman_firefighter:"👩&zwj;🚒",woman_health_worker:"👩&zwj;⚕️",woman_judge:"👩&zwj;⚖️",woman_juggling:"🤹&zwj;♀️",woman_mechanic:"👩&zwj;🔧",woman_office_worker:"👩&zwj;💼",woman_pilot:"👩&zwj;✈️",woman_playing_handball:"🤾&zwj;♀️",woman_playing_water_polo:"🤽&zwj;♀️",woman_scientist:"👩&zwj;🔬",woman_shrugging:"🤷&zwj;♀️",woman_singer:"👩&zwj;🎤",woman_student:"👩&zwj;🎓",woman_teacher:"👩&zwj;🏫",woman_technologist:"👩&zwj;💻",woman_with_turban:"👳&zwj;♀️",womans_clothes:"👚",womans_hat:"👒",women_wrestling:"🤼&zwj;♀️",womens:"🚺",world_map:"🗺",worried:"😟",wrench:"🔧",writing_hand:"✍️",x:"❌",yellow_heart:"💛",yen:"💴",yin_yang:"☯️",yum:"😋",zap:"⚡️",zipper_mouth_face:"🤐",zzz:"💤",octocat:'<img alt=":octocat:" height="20" width="20" align="absmiddle" src="https://assets-cdn.github.com/images/icons/emoji/octocat.png">',showdown:"<span style=\"font-family: 'Anonymous Pro', monospace; text-decoration: underline; text-decoration-style: dashed; text-decoration-color: #3e8b8a;text-underline-position: under;\">S</span>"},a.Converter=function(e){"use strict";function t(e,t){if(t=t||null,a.helper.isString(e)){if(e=a.helper.stdExtName(e),t=e,a.extensions[e])return console.warn("DEPRECATION WARNING: "+e+" is an old extension that uses a deprecated loading method.Please inform the developer that the extension should be updated!"),void function(e,t){"function"==typeof e&&(e=e(new a.Converter));a.helper.isArray(e)||(e=[e]);var n=r(e,t);if(!n.valid)throw Error(n.error);for(var s=0;s<e.length;++s)switch(e[s].type){case"lang":u.push(e[s]);break;case"output":d.push(e[s]);break;default:throw Error("Extension loader error: Type unrecognized!!!")}}(a.extensions[e],e);if(a.helper.isUndefined(s[e]))throw Error('Extension "'+e+'" could not be loaded. It was either not found or is not a valid extension.');e=s[e]}"function"==typeof e&&(e=e()),a.helper.isArray(e)||(e=[e]);var o=r(e,t);if(!o.valid)throw Error(o.error);for(var i=0;i<e.length;++i){switch(e[i].type){case"lang":u.push(e[i]);break;case"output":d.push(e[i])}if(e[i].hasOwnProperty("listeners"))for(var l in e[i].listeners)e[i].listeners.hasOwnProperty(l)&&n(l,e[i].listeners[l])}}function n(e,r){if(!a.helper.isString(e))throw Error("Invalid argument in converter.listen() method: name must be a string, but "+typeof e+" given");if("function"!=typeof r)throw Error("Invalid argument in converter.listen() method: callback must be a function, but "+typeof r+" given");p.hasOwnProperty(e)||(p[e]=[]),p[e].push(r)}var c={},u=[],d=[],p={},h=i,_={parsed:{},raw:"",format:""};!function(){e=e||{};for(var r in o)o.hasOwnProperty(r)&&(c[r]=o[r]);if("object"!=typeof e)throw Error("Converter expects the passed parameter to be an object, but "+typeof e+" was passed instead.");for(var n in e)e.hasOwnProperty(n)&&(c[n]=e[n]);c.extensions&&a.helper.forEach(c.extensions,t)}(),this._dispatch=function(e,r,t,a){if(p.hasOwnProperty(e))for(var n=0;n<p[e].length;++n){var s=p[e][n](e,r,this,t,a);s&&void 0!==s&&(r=s)}return r},this.listen=function(e,r){return n(e,r),this},this.makeHtml=function(e){if(!e)return e;var r={gHtmlBlocks:[],gHtmlMdBlocks:[],gHtmlSpans:[],gUrls:{},gTitles:{},gDimensions:{},gListLevel:0,hashLinkCounts:{},langExtensions:u,outputModifiers:d,converter:this,ghCodeBlocks:[],metadata:{parsed:{},raw:"",format:""}};return e=e.replace(/¨/g,"¨T"),e=e.replace(/\$/g,"¨D"),e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n"),e=e.replace(/\u00A0/g,"&nbsp;"),c.smartIndentationFix&&(e=function(e){var r=e.match(/^\s*/)[0].length,t=new RegExp("^\\s{0,"+r+"}","gm");return e.replace(t,"")}(e)),e="\n\n"+e+"\n\n",e=a.subParser("detab")(e,c,r),e=e.replace(/^[ \t]+$/gm,""),a.helper.forEach(u,function(t){e=a.subParser("runExtension")(t,e,c,r)}),e=a.subParser("metadata")(e,c,r),e=a.subParser("hashPreCodeTags")(e,c,r),e=a.subParser("githubCodeBlocks")(e,c,r),e=a.subParser("hashHTMLBlocks")(e,c,r),e=a.subParser("hashCodeTags")(e,c,r),e=a.subParser("stripLinkDefinitions")(e,c,r),e=a.subParser("blockGamut")(e,c,r),e=a.subParser("unhashHTMLSpans")(e,c,r),e=a.subParser("unescapeSpecialChars")(e,c,r),e=e.replace(/¨D/g,"$$"),e=e.replace(/¨T/g,"¨"),e=a.subParser("completeHTMLDocument")(e,c,r),a.helper.forEach(d,function(t){e=a.subParser("runExtension")(t,e,c,r)}),_=r.metadata,e},this.makeMarkdown=this.makeMd=function(e,r){function t(e){for(var r=0;r<e.childNodes.length;++r){var a=e.childNodes[r];3===a.nodeType?/\S/.test(a.nodeValue)?(a.nodeValue=a.nodeValue.split("\n").join(" "),a.nodeValue=a.nodeValue.replace(/(\s)+/g,"$1")):(e.removeChild(a),--r):1===a.nodeType&&t(a)}}if(e=e.replace(/\r\n/g,"\n"),e=e.replace(/\r/g,"\n"),e=e.replace(/>[ \t]+</,">¨NBSP;<"),!r){if(!window||!window.document)throw new Error("HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM");r=window.document}var n=r.createElement("div");n.innerHTML=e;var s={preList:function(e){for(var r=e.querySelectorAll("pre"),t=[],n=0;n<r.length;++n)if(1===r[n].childElementCount&&"code"===r[n].firstChild.tagName.toLowerCase()){var s=r[n].firstChild.innerHTML.trim(),o=r[n].firstChild.getAttribute("data-language")||"";if(""===o)for(var i=r[n].firstChild.className.split(" "),l=0;l<i.length;++l){var c=i[l].match(/^language-(.+)$/);if(null!==c){o=c[1];break}}s=a.helper.unescapeHTMLEntities(s),t.push(s),r[n].outerHTML='<precode language="'+o+'" precodenum="'+n.toString()+'"></precode>'}else t.push(r[n].innerHTML),r[n].innerHTML="",r[n].setAttribute("prenum",n.toString());return t}(n)};t(n);for(var o=n.childNodes,i="",l=0;l<o.length;l++)i+=a.subParser("makeMarkdown.node")(o[l],s);return i},this.setOption=function(e,r){c[e]=r},this.getOption=function(e){return c[e]},this.getOptions=function(){return c},this.addExtension=function(e,r){t(e,r=r||null)},this.useExtension=function(e){t(e)},this.setFlavor=function(e){if(!l.hasOwnProperty(e))throw Error(e+" flavor was not found");var r=l[e];h=e;for(var t in r)r.hasOwnProperty(t)&&(c[t]=r[t])},this.getFlavor=function(){return h},this.removeExtension=function(e){a.helper.isArray(e)||(e=[e]);for(var r=0;r<e.length;++r){for(var t=e[r],n=0;n<u.length;++n)u[n]===t&&u[n].splice(n,1);for(;0<d.length;++n)d[0]===t&&d[0].splice(n,1)}},this.getAllExtensions=function(){return{language:u,output:d}},this.getMetadata=function(e){return e?_.raw:_.parsed},this.getMetadataFormat=function(){return _.format},this._setMetadataPair=function(e,r){_.parsed[e]=r},this._setMetadataFormat=function(e){_.format=e},this._setMetadataRaw=function(e){_.raw=e}},a.subParser("anchors",function(e,r,t){"use strict";var n=function(e,n,s,o,i,l,c){if(a.helper.isUndefined(c)&&(c=""),s=s.toLowerCase(),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)o="";else if(!o){if(s||(s=n.toLowerCase().replace(/ ?\n/g," ")),o="#"+s,a.helper.isUndefined(t.gUrls[s]))return e;o=t.gUrls[s],a.helper.isUndefined(t.gTitles[s])||(c=t.gTitles[s])}var u='<a href="'+(o=o.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"';return""!==c&&null!==c&&(u+=' title="'+(c=(c=c.replace(/"/g,"&quot;")).replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"'),r.openLinksInNewWindow&&!/^#/.test(o)&&(u+=' rel="noopener noreferrer" target="¨E95Eblank"'),u+=">"+n+"</a>"};return e=(e=t.converter._dispatch("anchors.before",e,r,t)).replace(/\[((?:\[[^\]]*]|[^\[\]])*)] ?(?:\n *)?\[(.*?)]()()()()/g,n),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<([^>]*)>(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,n),e=e.replace(/\[((?:\[[^\]]*]|[^\[\]])*)]()[ \t]*\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?:[ \t]*((["'])([^"]*?)\5))?[ \t]?\)/g,n),e=e.replace(/\[([^\[\]]+)]()()()()()/g,n),r.ghMentions&&(e=e.replace(/(^|\s)(\\)?(@([a-z\d]+(?:[a-z\d.-]+?[a-z\d]+)*))/gim,function(e,t,n,s,o){if("\\"===n)return t+s;if(!a.helper.isString(r.ghMentionsLink))throw new Error("ghMentionsLink option must be a string");var i=r.ghMentionsLink.replace(/\{u}/g,o),l="";return r.openLinksInNewWindow&&(l=' rel="noopener noreferrer" target="¨E95Eblank"'),t+'<a href="'+i+'"'+l+">"+s+"</a>"})),e=t.converter._dispatch("anchors.after",e,r,t)});var u=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+?\.[^'">\s]+?)()(\1)?(?=\s|$)(?!["<>])/gi,d=/([*~_]+|\b)(((https?|ftp|dict):\/\/|www\.)[^'">\s]+\.[^'">\s]+?)([.!?,()\[\]])?(\1)?(?=\s|$)(?!["<>])/gi,p=/()<(((https?|ftp|dict):\/\/|www\.)[^'">\s]+)()>()/gi,h=/(^|\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(?=$|\s)/gim,_=/<()(?:mailto:)?([-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,g=function(e){"use strict";return function(r,t,n,s,o,i,l){var c=n=n.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback),u="",d="",p=t||"",h=l||"";return/^www\./i.test(n)&&(n=n.replace(/^www\./i,"http://www.")),e.excludeTrailingPunctuationFromURLs&&i&&(u=i),e.openLinksInNewWindow&&(d=' rel="noopener noreferrer" target="¨E95Eblank"'),p+'<a href="'+n+'"'+d+">"+c+"</a>"+u+h}},m=function(e,r){"use strict";return function(t,n,s){var o="mailto:";return n=n||"",s=a.subParser("unescapeSpecialChars")(s,e,r),e.encodeEmails?(o=a.helper.encodeEmailAddress(o+s),s=a.helper.encodeEmailAddress(s)):o+=s,n+'<a href="'+o+'">'+s+"</a>"}};a.subParser("autoLinks",function(e,r,t){"use strict";return e=t.converter._dispatch("autoLinks.before",e,r,t),e=e.replace(p,g(r)),e=e.replace(_,m(r,t)),e=t.converter._dispatch("autoLinks.after",e,r,t)}),a.subParser("simplifiedAutoLinks",function(e,r,t){"use strict";return r.simplifiedAutoLink?(e=t.converter._dispatch("simplifiedAutoLinks.before",e,r,t),e=r.excludeTrailingPunctuationFromURLs?e.replace(d,g(r)):e.replace(u,g(r)),e=e.replace(h,m(r,t)),e=t.converter._dispatch("simplifiedAutoLinks.after",e,r,t)):e}),a.subParser("blockGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("blockGamut.before",e,r,t),e=a.subParser("blockQuotes")(e,r,t),e=a.subParser("headers")(e,r,t),e=a.subParser("horizontalRule")(e,r,t),e=a.subParser("lists")(e,r,t),e=a.subParser("codeBlocks")(e,r,t),e=a.subParser("tables")(e,r,t),e=a.subParser("hashHTMLBlocks")(e,r,t),e=a.subParser("paragraphs")(e,r,t),e=t.converter._dispatch("blockGamut.after",e,r,t)}),a.subParser("blockQuotes",function(e,r,t){"use strict";e=t.converter._dispatch("blockQuotes.before",e,r,t),e+="\n\n";var n=/(^ {0,3}>[ \t]?.+\n(.+\n)*\n*)+/gm;return r.splitAdjacentBlockquotes&&(n=/^ {0,3}>[\s\S]*?(?:\n\n)/gm),e=e.replace(n,function(e){return e=e.replace(/^[ \t]*>[ \t]?/gm,""),e=e.replace(/¨0/g,""),e=e.replace(/^[ \t]+$/gm,""),e=a.subParser("githubCodeBlocks")(e,r,t),e=a.subParser("blockGamut")(e,r,t),e=e.replace(/(^|\n)/g,"$1 "),e=e.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(e,r){var t=r;return t=t.replace(/^ /gm,"¨0"),t=t.replace(/¨0/g,"")}),a.subParser("hashBlock")("<blockquote>\n"+e+"\n</blockquote>",r,t)}),e=t.converter._dispatch("blockQuotes.after",e,r,t)}),a.subParser("codeBlocks",function(e,r,t){"use strict";e=t.converter._dispatch("codeBlocks.before",e,r,t);return e=(e+="¨0").replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g,function(e,n,s){var o=n,i=s,l="\n";return o=a.subParser("outdent")(o,r,t),o=a.subParser("encodeCode")(o,r,t),o=a.subParser("detab")(o,r,t),o=o.replace(/^\n+/g,""),o=o.replace(/\n+$/g,""),r.omitExtraWLInCodeBlocks&&(l=""),o="<pre><code>"+o+l+"</code></pre>",a.subParser("hashBlock")(o,r,t)+i}),e=e.replace(/¨0/,""),e=t.converter._dispatch("codeBlocks.after",e,r,t)}),a.subParser("codeSpans",function(e,r,t){"use strict";return void 0===(e=t.converter._dispatch("codeSpans.before",e,r,t))&&(e=""),e=e.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(e,n,s,o){var i=o;return i=i.replace(/^([ \t]*)/g,""),i=i.replace(/[ \t]*$/g,""),i=a.subParser("encodeCode")(i,r,t),i=n+"<code>"+i+"</code>",i=a.subParser("hashHTMLSpans")(i,r,t)}),e=t.converter._dispatch("codeSpans.after",e,r,t)}),a.subParser("completeHTMLDocument",function(e,r,t){"use strict";if(!r.completeHTMLDocument)return e;e=t.converter._dispatch("completeHTMLDocument.before",e,r,t);var a="html",n="<!DOCTYPE HTML>\n",s="",o='<meta charset="utf-8">\n',i="",l="";void 0!==t.metadata.parsed.doctype&&(n="<!DOCTYPE "+t.metadata.parsed.doctype+">\n","html"!==(a=t.metadata.parsed.doctype.toString().toLowerCase())&&"html5"!==a||(o='<meta charset="utf-8">'));for(var c in t.metadata.parsed)if(t.metadata.parsed.hasOwnProperty(c))switch(c.toLowerCase()){case"doctype":break;case"title":s="<title>"+t.metadata.parsed.title+"</title>\n";break;case"charset":o="html"===a||"html5"===a?'<meta charset="'+t.metadata.parsed.charset+'">\n':'<meta name="charset" content="'+t.metadata.parsed.charset+'">\n';break;case"language":case"lang":i=' lang="'+t.metadata.parsed[c]+'"',l+='<meta name="'+c+'" content="'+t.metadata.parsed[c]+'">\n';break;default:l+='<meta name="'+c+'" content="'+t.metadata.parsed[c]+'">\n'}return e=n+"<html"+i+">\n<head>\n"+s+o+l+"</head>\n<body>\n"+e.trim()+"\n</body>\n</html>",e=t.converter._dispatch("completeHTMLDocument.after",e,r,t)}),a.subParser("detab",function(e,r,t){"use strict";return e=t.converter._dispatch("detab.before",e,r,t),e=e.replace(/\t(?=\t)/g," "),e=e.replace(/\t/g,"¨A¨B"),e=e.replace(/¨B(.+?)¨A/g,function(e,r){for(var t=r,a=4-t.length%4,n=0;n<a;n++)t+=" ";return t}),e=e.replace(/¨A/g," "),e=e.replace(/¨B/g,""),e=t.converter._dispatch("detab.after",e,r,t)}),a.subParser("ellipsis",function(e,r,t){"use strict";return e=t.converter._dispatch("ellipsis.before",e,r,t),e=e.replace(/\.\.\./g,"…"),e=t.converter._dispatch("ellipsis.after",e,r,t)}),a.subParser("emoji",function(e,r,t){"use strict";if(!r.emoji)return e;return e=(e=t.converter._dispatch("emoji.before",e,r,t)).replace(/:([\S]+?):/g,function(e,r){return a.helper.emojis.hasOwnProperty(r)?a.helper.emojis[r]:e}),e=t.converter._dispatch("emoji.after",e,r,t)}),a.subParser("encodeAmpsAndAngles",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeAmpsAndAngles.before",e,r,t),e=e.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;"),e=e.replace(/<(?![a-z\/?$!])/gi,"&lt;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),e=t.converter._dispatch("encodeAmpsAndAngles.after",e,r,t)}),a.subParser("encodeBackslashEscapes",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeBackslashEscapes.before",e,r,t),e=e.replace(/\\(\\)/g,a.helper.escapeCharactersCallback),e=e.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeBackslashEscapes.after",e,r,t)}),a.subParser("encodeCode",function(e,r,t){"use strict";return e=t.converter._dispatch("encodeCode.before",e,r,t),e=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/([*_{}\[\]\\=~-])/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("encodeCode.after",e,r,t)}),a.subParser("escapeSpecialCharsWithinTagAttributes",function(e,r,t){"use strict";return e=(e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",e,r,t)).replace(/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,function(e){return e.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,a.helper.escapeCharactersCallback)}),e=e.replace(/<!(--(?:(?:[^>-]|-[^>])(?:[^-]|-[^-])*)--)>/gi,function(e){return e.replace(/([\\`*_~=|])/g,a.helper.escapeCharactersCallback)}),e=t.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",e,r,t)}),a.subParser("githubCodeBlocks",function(e,r,t){"use strict";return r.ghCodeBlocks?(e=t.converter._dispatch("githubCodeBlocks.before",e,r,t),e+="¨0",e=e.replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g,function(e,n,s,o){var i=r.omitExtraWLInCodeBlocks?"":"\n";return o=a.subParser("encodeCode")(o,r,t),o=a.subParser("detab")(o,r,t),o=o.replace(/^\n+/g,""),o=o.replace(/\n+$/g,""),o="<pre><code"+(s?' class="'+s+" language-"+s+'"':"")+">"+o+i+"</code></pre>",o=a.subParser("hashBlock")(o,r,t),"\n\n¨G"+(t.ghCodeBlocks.push({text:e,codeblock:o})-1)+"G\n\n"}),e=e.replace(/¨0/,""),t.converter._dispatch("githubCodeBlocks.after",e,r,t)):e}),a.subParser("hashBlock",function(e,r,t){"use strict";return e=t.converter._dispatch("hashBlock.before",e,r,t),e=e.replace(/(^\n+|\n+$)/g,""),e="\n\n¨K"+(t.gHtmlBlocks.push(e)-1)+"K\n\n",e=t.converter._dispatch("hashBlock.after",e,r,t)}),a.subParser("hashCodeTags",function(e,r,t){"use strict";e=t.converter._dispatch("hashCodeTags.before",e,r,t);return e=a.helper.replaceRecursiveRegExp(e,function(e,n,s,o){var i=s+a.subParser("encodeCode")(n,r,t)+o;return"¨C"+(t.gHtmlSpans.push(i)-1)+"C"},"<code\\b[^>]*>","</code>","gim"),e=t.converter._dispatch("hashCodeTags.after",e,r,t)}),a.subParser("hashElement",function(e,r,t){"use strict";return function(e,r){var a=r;return a=a.replace(/\n\n/g,"\n"),a=a.replace(/^\n/,""),a=a.replace(/\n+$/g,""),a="\n\n¨K"+(t.gHtmlBlocks.push(a)-1)+"K\n\n"}}),a.subParser("hashHTMLBlocks",function(e,r,t){"use strict";e=t.converter._dispatch("hashHTMLBlocks.before",e,r,t);var n=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"],s=function(e,r,a,n){var s=e;return-1!==a.search(/\bmarkdown\b/)&&(s=a+t.converter.makeHtml(r)+n),"\n\n¨K"+(t.gHtmlBlocks.push(s)-1)+"K\n\n"};r.backslashEscapesHTMLTags&&(e=e.replace(/\\<(\/?[^>]+?)>/g,function(e,r){return"&lt;"+r+"&gt;"}));for(var o=0;o<n.length;++o)for(var i,l=new RegExp("^ {0,3}(<"+n[o]+"\\b[^>]*>)","im"),c="<"+n[o]+"\\b[^>]*>",u="</"+n[o]+">";-1!==(i=a.helper.regexIndexOf(e,l));){var d=a.helper.splitAtIndex(e,i),p=a.helper.replaceRecursiveRegExp(d[1],s,c,u,"im");if(p===d[1])break;e=d[0].concat(p)}return e=e.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,a.subParser("hashElement")(e,r,t)),e=a.helper.replaceRecursiveRegExp(e,function(e){return"\n\n¨K"+(t.gHtmlBlocks.push(e)-1)+"K\n\n"},"^ {0,3}\x3c!--","--\x3e","gm"),e=e.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,a.subParser("hashElement")(e,r,t)),e=t.converter._dispatch("hashHTMLBlocks.after",e,r,t)}),a.subParser("hashHTMLSpans",function(e,r,t){"use strict";function a(e){return"¨C"+(t.gHtmlSpans.push(e)-1)+"C"}return e=t.converter._dispatch("hashHTMLSpans.before",e,r,t),e=e.replace(/<[^>]+?\/>/gi,function(e){return a(e)}),e=e.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,function(e){return a(e)}),e=e.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,function(e){return a(e)}),e=e.replace(/<[^>]+?>/gi,function(e){return a(e)}),e=t.converter._dispatch("hashHTMLSpans.after",e,r,t)}),a.subParser("unhashHTMLSpans",function(e,r,t){"use strict";e=t.converter._dispatch("unhashHTMLSpans.before",e,r,t);for(var a=0;a<t.gHtmlSpans.length;++a){for(var n=t.gHtmlSpans[a],s=0;/¨C(\d+)C/.test(n);){var o=RegExp.$1;if(n=n.replace("¨C"+o+"C",t.gHtmlSpans[o]),10===s){console.error("maximum nesting of 10 spans reached!!!");break}++s}e=e.replace("¨C"+a+"C",n)}return e=t.converter._dispatch("unhashHTMLSpans.after",e,r,t)}),a.subParser("hashPreCodeTags",function(e,r,t){"use strict";e=t.converter._dispatch("hashPreCodeTags.before",e,r,t);return e=a.helper.replaceRecursiveRegExp(e,function(e,n,s,o){var i=s+a.subParser("encodeCode")(n,r,t)+o;return"\n\n¨G"+(t.ghCodeBlocks.push({text:e,codeblock:i})-1)+"G\n\n"},"^ {0,3}<pre\\b[^>]*>\\s*<code\\b[^>]*>","^ {0,3}</code>\\s*</pre>","gim"),e=t.converter._dispatch("hashPreCodeTags.after",e,r,t)}),a.subParser("headers",function(e,r,t){"use strict";function n(e){var n,s;if(r.customizedHeaderId){var o=e.match(/\{([^{]+?)}\s*$/);o&&o[1]&&(e=o[1])}return n=e,s=a.helper.isString(r.prefixHeaderId)?r.prefixHeaderId:!0===r.prefixHeaderId?"section-":"",r.rawPrefixHeaderId||(n=s+n),n=r.ghCompatibleHeaderId?n.replace(/ /g,"-").replace(/&amp;/g,"").replace(/¨T/g,"").replace(/¨D/g,"").replace(/[&+$,\/:;=?@"#{}|^¨~\[\]`\\*)(%.!'<>]/g,"").toLowerCase():r.rawHeaderId?n.replace(/ /g,"-").replace(/&amp;/g,"&").replace(/¨T/g,"¨").replace(/¨D/g,"$").replace(/["']/g,"-").toLowerCase():n.replace(/[^\w]/g,"").toLowerCase(),r.rawPrefixHeaderId&&(n=s+n),t.hashLinkCounts[n]?n=n+"-"+t.hashLinkCounts[n]++:t.hashLinkCounts[n]=1,n}e=t.converter._dispatch("headers.before",e,r,t);var s=isNaN(parseInt(r.headerLevelStart))?1:parseInt(r.headerLevelStart),o=r.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,i=r.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm;e=(e=e.replace(o,function(e,o){var i=a.subParser("spanGamut")(o,r,t),l=r.noHeaderId?"":' id="'+n(o)+'"',c="<h"+s+l+">"+i+"</h"+s+">";return a.subParser("hashBlock")(c,r,t)})).replace(i,function(e,o){var i=a.subParser("spanGamut")(o,r,t),l=r.noHeaderId?"":' id="'+n(o)+'"',c=s+1,u="<h"+c+l+">"+i+"</h"+c+">";return a.subParser("hashBlock")(u,r,t)});var l=r.requireSpaceBeforeHeadingText?/^(#{1,6})[ \t]+(.+?)[ \t]*#*\n+/gm:/^(#{1,6})[ \t]*(.+?)[ \t]*#*\n+/gm;return e=e.replace(l,function(e,o,i){var l=i;r.customizedHeaderId&&(l=i.replace(/\s?\{([^{]+?)}\s*$/,""));var c=a.subParser("spanGamut")(l,r,t),u=r.noHeaderId?"":' id="'+n(i)+'"',d=s-1+o.length,p="<h"+d+u+">"+c+"</h"+d+">";return a.subParser("hashBlock")(p,r,t)}),e=t.converter._dispatch("headers.after",e,r,t)}),a.subParser("horizontalRule",function(e,r,t){"use strict";e=t.converter._dispatch("horizontalRule.before",e,r,t);var n=a.subParser("hashBlock")("<hr />",r,t);return e=e.replace(/^ {0,2}( ?-){3,}[ \t]*$/gm,n),e=e.replace(/^ {0,2}( ?\*){3,}[ \t]*$/gm,n),e=e.replace(/^ {0,2}( ?_){3,}[ \t]*$/gm,n),e=t.converter._dispatch("horizontalRule.after",e,r,t)}),a.subParser("images",function(e,r,t){"use strict";function n(e,r,n,s,o,i,l,c){var u=t.gUrls,d=t.gTitles,p=t.gDimensions;if(n=n.toLowerCase(),c||(c=""),e.search(/\(<?\s*>? ?(['"].*['"])?\)$/m)>-1)s="";else if(""===s||null===s){if(""!==n&&null!==n||(n=r.toLowerCase().replace(/ ?\n/g," ")),s="#"+n,a.helper.isUndefined(u[n]))return e;s=u[n],a.helper.isUndefined(d[n])||(c=d[n]),a.helper.isUndefined(p[n])||(o=p[n].width,i=p[n].height)}r=r.replace(/"/g,"&quot;").replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback);var h='<img src="'+(s=s.replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'" alt="'+r+'"';return c&&a.helper.isString(c)&&(h+=' title="'+(c=c.replace(/"/g,"&quot;").replace(a.helper.regexes.asteriskDashAndColon,a.helper.escapeCharactersCallback))+'"'),o&&i&&(h+=' width="'+(o="*"===o?"auto":o)+'"',h+=' height="'+(i="*"===i?"auto":i)+'"'),h+=" />"}return e=(e=t.converter._dispatch("images.before",e,r,t)).replace(/!\[([^\]]*?)] ?(?:\n *)?\[([\s\S]*?)]()()()()()/g,n),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,function(e,r,t,a,s,o,i,l){return a=a.replace(/\s/g,""),n(e,r,t,a,s,o,0,l)}),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<([^>]*)>(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(?:(["'])([^"]*?)\6))?[ \t]?\)/g,n),e=e.replace(/!\[([^\]]*?)][ \t]*()\([ \t]?<?([\S]+?(?:\([\S]*?\)[\S]*?)?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*(?:(["'])([^"]*?)\6)?[ \t]?\)/g,n),e=e.replace(/!\[([^\[\]]+)]()()()()()/g,n),e=t.converter._dispatch("images.after",e,r,t)}),a.subParser("italicsAndBold",function(e,r,t){"use strict";function a(e,r,t){return r+e+t}return e=t.converter._dispatch("italicsAndBold.before",e,r,t),e=r.literalMidWordUnderscores?(e=(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return a(r,"<strong><em>","</em></strong>")})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return a(r,"<strong>","</strong>")})).replace(/\b_(\S[\s\S]*?)_\b/g,function(e,r){return a(r,"<em>","</em>")}):(e=(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?a(r,"<strong><em>","</em></strong>"):e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?a(r,"<strong>","</strong>"):e})).replace(/_([^\s_][\s\S]*?)_/g,function(e,r){return/\S$/.test(r)?a(r,"<em>","</em>"):e}),e=r.literalMidWordAsterisks?(e=(e=e.replace(/([^*]|^)\B\*\*\*(\S[\s\S]*?)\*\*\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<strong><em>","</em></strong>")})).replace(/([^*]|^)\B\*\*(\S[\s\S]*?)\*\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<strong>","</strong>")})).replace(/([^*]|^)\B\*(\S[\s\S]*?)\*\B(?!\*)/g,function(e,r,t){return a(t,r+"<em>","</em>")}):(e=(e=e.replace(/\*\*\*(\S[\s\S]*?)\*\*\*/g,function(e,r){return/\S$/.test(r)?a(r,"<strong><em>","</em></strong>"):e})).replace(/\*\*(\S[\s\S]*?)\*\*/g,function(e,r){return/\S$/.test(r)?a(r,"<strong>","</strong>"):e})).replace(/\*([^\s*][\s\S]*?)\*/g,function(e,r){return/\S$/.test(r)?a(r,"<em>","</em>"):e}),e=t.converter._dispatch("italicsAndBold.after",e,r,t)}),a.subParser("lists",function(e,r,t){"use strict";function n(e,n){t.gListLevel++,e=e.replace(/\n{2,}$/,"\n");var s=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0| {0,3}([*+-]|\d+[.])[ \t]+))/gm,o=/\n[ \t]*\n(?!¨0)/.test(e+="¨0");return r.disableForced4SpacesIndentedSublists&&(s=/(\n)?(^ {0,3})([*+-]|\d+[.])[ \t]+((\[(x|X| )?])?[ \t]*[^\r]+?(\n{1,2}))(?=\n*(¨0|\2([*+-]|\d+[.])[ \t]+))/gm),e=e.replace(s,function(e,n,s,i,l,c,u){u=u&&""!==u.trim();var d=a.subParser("outdent")(l,r,t),p="";return c&&r.tasklists&&(p=' class="task-list-item" style="list-style-type: none;"',d=d.replace(/^[ \t]*\[(x|X| )?]/m,function(){var e='<input type="checkbox" disabled style="margin: 0px 0.35em 0.25em -1.6em; vertical-align: middle;"';return u&&(e+=" checked"),e+=">"})),d=d.replace(/^([-*+]|\d\.)[ \t]+[\S\n ]*/g,function(e){return"¨A"+e}),n||d.search(/\n{2,}/)>-1?(d=a.subParser("githubCodeBlocks")(d,r,t),d=a.subParser("blockGamut")(d,r,t)):(d=(d=a.subParser("lists")(d,r,t)).replace(/\n$/,""),d=(d=a.subParser("hashHTMLBlocks")(d,r,t)).replace(/\n\n+/g,"\n\n"),d=o?a.subParser("paragraphs")(d,r,t):a.subParser("spanGamut")(d,r,t)),d=d.replace("¨A",""),d="<li"+p+">"+d+"</li>\n"}),e=e.replace(/¨0/g,""),t.gListLevel--,n&&(e=e.replace(/\s+$/,"")),e}function s(e,r){if("ol"===r){var t=e.match(/^ *(\d+)\./);if(t&&"1"!==t[1])return' start="'+t[1]+'"'}return""}function o(e,t,a){var o=r.disableForced4SpacesIndentedSublists?/^ ?\d+\.[ \t]/gm:/^ {0,3}\d+\.[ \t]/gm,i=r.disableForced4SpacesIndentedSublists?/^ ?[*+-][ \t]/gm:/^ {0,3}[*+-][ \t]/gm,l="ul"===t?o:i,c="";if(-1!==e.search(l))!function r(u){var d=u.search(l),p=s(e,t);-1!==d?(c+="\n\n<"+t+p+">\n"+n(u.slice(0,d),!!a)+"</"+t+">\n",l="ul"===(t="ul"===t?"ol":"ul")?o:i,r(u.slice(d))):c+="\n\n<"+t+p+">\n"+n(u,!!a)+"</"+t+">\n"}(e);else{var u=s(e,t);c="\n\n<"+t+u+">\n"+n(e,!!a)+"</"+t+">\n"}return c}return e=t.converter._dispatch("lists.before",e,r,t),e+="¨0",e=t.gListLevel?e.replace(/^(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,r,t){return o(r,t.search(/[*+-]/g)>-1?"ul":"ol",!0)}):e.replace(/(\n\n|^\n?)(( {0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(¨0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm,function(e,r,t,a){return o(t,a.search(/[*+-]/g)>-1?"ul":"ol",!1)}),e=e.replace(/¨0/,""),e=t.converter._dispatch("lists.after",e,r,t)}),a.subParser("metadata",function(e,r,t){"use strict";function a(e){t.metadata.raw=e,(e=(e=e.replace(/&/g,"&amp;").replace(/"/g,"&quot;")).replace(/\n {4}/g," ")).replace(/^([\S ]+): +([\s\S]+?)$/gm,function(e,r,a){return t.metadata.parsed[r]=a,""})}return r.metadata?(e=t.converter._dispatch("metadata.before",e,r,t),e=e.replace(/^\s*«««+(\S*?)\n([\s\S]+?)\n»»»+\n/,function(e,r,t){return a(t),"¨M"}),e=e.replace(/^\s*---+(\S*?)\n([\s\S]+?)\n---+\n/,function(e,r,n){return r&&(t.metadata.format=r),a(n),"¨M"}),e=e.replace(/¨M/g,""),e=t.converter._dispatch("metadata.after",e,r,t)):e}),a.subParser("outdent",function(e,r,t){"use strict";return e=t.converter._dispatch("outdent.before",e,r,t),e=e.replace(/^(\t|[ ]{1,4})/gm,"¨0"),e=e.replace(/¨0/g,""),e=t.converter._dispatch("outdent.after",e,r,t)}),a.subParser("paragraphs",function(e,r,t){"use strict";for(var n=(e=(e=(e=t.converter._dispatch("paragraphs.before",e,r,t)).replace(/^\n+/g,"")).replace(/\n+$/g,"")).split(/\n{2,}/g),s=[],o=n.length,i=0;i<o;i++){var l=n[i];l.search(/¨(K|G)(\d+)\1/g)>=0?s.push(l):l.search(/\S/)>=0&&(l=(l=a.subParser("spanGamut")(l,r,t)).replace(/^([ \t]*)/g,"<p>"),l+="</p>",s.push(l))}for(o=s.length,i=0;i<o;i++){for(var c="",u=s[i],d=!1;/¨(K|G)(\d+)\1/.test(u);){var p=RegExp.$1,h=RegExp.$2;c=(c="K"===p?t.gHtmlBlocks[h]:d?a.subParser("encodeCode")(t.ghCodeBlocks[h].text,r,t):t.ghCodeBlocks[h].codeblock).replace(/\$/g,"$$$$"),u=u.replace(/(\n\n)?¨(K|G)\d+\2(\n\n)?/,c),/^<pre\b[^>]*>\s*<code\b[^>]*>/.test(u)&&(d=!0)}s[i]=u}return e=s.join("\n"),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),t.converter._dispatch("paragraphs.after",e,r,t)}),a.subParser("runExtension",function(e,r,t,a){"use strict";if(e.filter)r=e.filter(r,a.converter,t);else if(e.regex){var n=e.regex;n instanceof RegExp||(n=new RegExp(n,"g")),r=r.replace(n,e.replace)}return r}),a.subParser("spanGamut",function(e,r,t){"use strict";return e=t.converter._dispatch("spanGamut.before",e,r,t),e=a.subParser("codeSpans")(e,r,t),e=a.subParser("escapeSpecialCharsWithinTagAttributes")(e,r,t),e=a.subParser("encodeBackslashEscapes")(e,r,t),e=a.subParser("images")(e,r,t),e=a.subParser("anchors")(e,r,t),e=a.subParser("autoLinks")(e,r,t),e=a.subParser("simplifiedAutoLinks")(e,r,t),e=a.subParser("emoji")(e,r,t),e=a.subParser("underline")(e,r,t),e=a.subParser("italicsAndBold")(e,r,t),e=a.subParser("strikethrough")(e,r,t),e=a.subParser("ellipsis")(e,r,t),e=a.subParser("hashHTMLSpans")(e,r,t),e=a.subParser("encodeAmpsAndAngles")(e,r,t),r.simpleLineBreaks?/\n\n¨K/.test(e)||(e=e.replace(/\n+/g,"<br />\n")):e=e.replace(/ +\n/g,"<br />\n"),e=t.converter._dispatch("spanGamut.after",e,r,t)}),a.subParser("strikethrough",function(e,r,t){"use strict";return r.strikethrough&&(e=(e=t.converter._dispatch("strikethrough.before",e,r,t)).replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(e,n){return function(e){return r.simplifiedAutoLink&&(e=a.subParser("simplifiedAutoLinks")(e,r,t)),"<del>"+e+"</del>"}(n)}),e=t.converter._dispatch("strikethrough.after",e,r,t)),e}),a.subParser("stripLinkDefinitions",function(e,r,t){"use strict";var n=function(e,n,s,o,i,l,c){return n=n.toLowerCase(),s.match(/^data:.+?\/.+?;base64,/)?t.gUrls[n]=s.replace(/\s/g,""):t.gUrls[n]=a.subParser("encodeAmpsAndAngles")(s,r,t),l?l+c:(c&&(t.gTitles[n]=c.replace(/"|'/g,"&quot;")),r.parseImgDimensions&&o&&i&&(t.gDimensions[n]={width:o,height:i}),"")};return e=(e+="¨0").replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm,n),e=e.replace(/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*<?([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,n),e=e.replace(/¨0/,"")}),a.subParser("tables",function(e,r,t){"use strict";function n(e){return/^:[ \t]*--*$/.test(e)?' style="text-align:left;"':/^--*[ \t]*:[ \t]*$/.test(e)?' style="text-align:right;"':/^:[ \t]*--*[ \t]*:$/.test(e)?' style="text-align:center;"':""}function s(e,n){var s="";return e=e.trim(),(r.tablesHeaderId||r.tableHeaderId)&&(s=' id="'+e.replace(/ /g,"_").toLowerCase()+'"'),e=a.subParser("spanGamut")(e,r,t),"<th"+s+n+">"+e+"</th>\n"}function o(e,n){return"<td"+n+">"+a.subParser("spanGamut")(e,r,t)+"</td>\n"}function i(e){var i,l=e.split("\n");for(i=0;i<l.length;++i)/^ {0,3}\|/.test(l[i])&&(l[i]=l[i].replace(/^ {0,3}\|/,"")),/\|[ \t]*$/.test(l[i])&&(l[i]=l[i].replace(/\|[ \t]*$/,"")),l[i]=a.subParser("codeSpans")(l[i],r,t);var c=l[0].split("|").map(function(e){return e.trim()}),u=l[1].split("|").map(function(e){return e.trim()}),d=[],p=[],h=[],_=[];for(l.shift(),l.shift(),i=0;i<l.length;++i)""!==l[i].trim()&&d.push(l[i].split("|").map(function(e){return e.trim()}));if(c.length<u.length)return e;for(i=0;i<u.length;++i)h.push(n(u[i]));for(i=0;i<c.length;++i)a.helper.isUndefined(h[i])&&(h[i]=""),p.push(s(c[i],h[i]));for(i=0;i<d.length;++i){for(var g=[],m=0;m<p.length;++m)a.helper.isUndefined(d[i][m]),g.push(o(d[i][m],h[m]));_.push(g)}return function(e,r){for(var t="<table>\n<thead>\n<tr>\n",a=e.length,n=0;n<a;++n)t+=e[n];for(t+="</tr>\n</thead>\n<tbody>\n",n=0;n<r.length;++n){t+="<tr>\n";for(var s=0;s<a;++s)t+=r[n][s];t+="</tr>\n"}return t+="</tbody>\n</table>\n"}(p,_)}if(!r.tables)return e;return e=t.converter._dispatch("tables.before",e,r,t),e=e.replace(/\\(\|)/g,a.helper.escapeCharactersCallback),e=e.replace(/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,i),e=e.replace(/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm,i),e=t.converter._dispatch("tables.after",e,r,t)}),a.subParser("underline",function(e,r,t){"use strict";return r.underline?(e=t.converter._dispatch("underline.before",e,r,t),e=r.literalMidWordUnderscores?(e=e.replace(/\b___(\S[\s\S]*?)___\b/g,function(e,r){return"<u>"+r+"</u>"})).replace(/\b__(\S[\s\S]*?)__\b/g,function(e,r){return"<u>"+r+"</u>"}):(e=e.replace(/___(\S[\s\S]*?)___/g,function(e,r){return/\S$/.test(r)?"<u>"+r+"</u>":e})).replace(/__(\S[\s\S]*?)__/g,function(e,r){return/\S$/.test(r)?"<u>"+r+"</u>":e}),e=e.replace(/(_)/g,a.helper.escapeCharactersCallback),e=t.converter._dispatch("underline.after",e,r,t)):e}),a.subParser("unescapeSpecialChars",function(e,r,t){"use strict";return e=t.converter._dispatch("unescapeSpecialChars.before",e,r,t),e=e.replace(/¨E(\d+)E/g,function(e,r){var t=parseInt(r);return String.fromCharCode(t)}),e=t.converter._dispatch("unescapeSpecialChars.after",e,r,t)}),a.subParser("makeMarkdown.blockquote",function(e,r){"use strict";var t="";if(e.hasChildNodes())for(var n=e.childNodes,s=n.length,o=0;o<s;++o){var i=a.subParser("makeMarkdown.node")(n[o],r);""!==i&&(t+=i)}return t=t.trim(),t="> "+t.split("\n").join("\n> ")}),a.subParser("makeMarkdown.codeBlock",function(e,r){"use strict";var t=e.getAttribute("language"),a=e.getAttribute("precodenum");return"```"+t+"\n"+r.preList[a]+"\n```"}),a.subParser("makeMarkdown.codeSpan",function(e){"use strict";return"`"+e.innerHTML+"`"}),a.subParser("makeMarkdown.emphasis",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="*";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="*"}return t}),a.subParser("makeMarkdown.header",function(e,r,t){"use strict";var n=new Array(t+1).join("#"),s="";if(e.hasChildNodes()){s=n+" ";for(var o=e.childNodes,i=o.length,l=0;l<i;++l)s+=a.subParser("makeMarkdown.node")(o[l],r)}return s}),a.subParser("makeMarkdown.hr",function(){"use strict";return"---"}),a.subParser("makeMarkdown.image",function(e){"use strict";var r="";return e.hasAttribute("src")&&(r+="!["+e.getAttribute("alt")+"](",r+="<"+e.getAttribute("src")+">",e.hasAttribute("width")&&e.hasAttribute("height")&&(r+=" ="+e.getAttribute("width")+"x"+e.getAttribute("height")),e.hasAttribute("title")&&(r+=' "'+e.getAttribute("title")+'"'),r+=")"),r}),a.subParser("makeMarkdown.links",function(e,r){"use strict";var t="";if(e.hasChildNodes()&&e.hasAttribute("href")){var n=e.childNodes,s=n.length;t="[";for(var o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="](",t+="<"+e.getAttribute("href")+">",e.hasAttribute("title")&&(t+=' "'+e.getAttribute("title")+'"'),t+=")"}return t}),a.subParser("makeMarkdown.list",function(e,r,t){"use strict";var n="";if(!e.hasChildNodes())return"";for(var s=e.childNodes,o=s.length,i=e.getAttribute("start")||1,l=0;l<o;++l)if(void 0!==s[l].tagName&&"li"===s[l].tagName.toLowerCase()){n+=("ol"===t?i.toString()+". ":"- ")+a.subParser("makeMarkdown.listItem")(s[l],r),++i}return(n+="\n\x3c!-- --\x3e\n").trim()}),a.subParser("makeMarkdown.listItem",function(e,r){"use strict";for(var t="",n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);return/\n$/.test(t)?t=t.split("\n").join("\n ").replace(/^ {4}$/gm,"").replace(/\n\n+/g,"\n\n"):t+="\n",t}),a.subParser("makeMarkdown.node",function(e,r,t){"use strict";t=t||!1;var n="";if(3===e.nodeType)return a.subParser("makeMarkdown.txt")(e,r);if(8===e.nodeType)return"\x3c!--"+e.data+"--\x3e\n\n";if(1!==e.nodeType)return"";switch(e.tagName.toLowerCase()){case"h1":t||(n=a.subParser("makeMarkdown.header")(e,r,1)+"\n\n");break;case"h2":t||(n=a.subParser("makeMarkdown.header")(e,r,2)+"\n\n");break;case"h3":t||(n=a.subParser("makeMarkdown.header")(e,r,3)+"\n\n");break;case"h4":t||(n=a.subParser("makeMarkdown.header")(e,r,4)+"\n\n");break;case"h5":t||(n=a.subParser("makeMarkdown.header")(e,r,5)+"\n\n");break;case"h6":t||(n=a.subParser("makeMarkdown.header")(e,r,6)+"\n\n");break;case"p":t||(n=a.subParser("makeMarkdown.paragraph")(e,r)+"\n\n");break;case"blockquote":t||(n=a.subParser("makeMarkdown.blockquote")(e,r)+"\n\n");break;case"hr":t||(n=a.subParser("makeMarkdown.hr")(e,r)+"\n\n");break;case"ol":t||(n=a.subParser("makeMarkdown.list")(e,r,"ol")+"\n\n");break;case"ul":t||(n=a.subParser("makeMarkdown.list")(e,r,"ul")+"\n\n");break;case"precode":t||(n=a.subParser("makeMarkdown.codeBlock")(e,r)+"\n\n");break;case"pre":t||(n=a.subParser("makeMarkdown.pre")(e,r)+"\n\n");break;case"table":t||(n=a.subParser("makeMarkdown.table")(e,r)+"\n\n");break;case"code":n=a.subParser("makeMarkdown.codeSpan")(e,r);break;case"em":case"i":n=a.subParser("makeMarkdown.emphasis")(e,r);break;case"strong":case"b":n=a.subParser("makeMarkdown.strong")(e,r);break;case"del":n=a.subParser("makeMarkdown.strikethrough")(e,r);break;case"a":n=a.subParser("makeMarkdown.links")(e,r);break;case"img":n=a.subParser("makeMarkdown.image")(e,r);break;default:n=e.outerHTML+"\n\n"}return n}),a.subParser("makeMarkdown.paragraph",function(e,r){"use strict";var t="";if(e.hasChildNodes())for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);return t=t.trim()}),a.subParser("makeMarkdown.pre",function(e,r){"use strict";var t=e.getAttribute("prenum");return"<pre>"+r.preList[t]+"</pre>"}),a.subParser("makeMarkdown.strikethrough",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="~~";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="~~"}return t}),a.subParser("makeMarkdown.strong",function(e,r){"use strict";var t="";if(e.hasChildNodes()){t+="**";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r);t+="**"}return t}),a.subParser("makeMarkdown.table",function(e,r){"use strict";var t,n,s="",o=[[],[]],i=e.querySelectorAll("thead>tr>th"),l=e.querySelectorAll("tbody>tr");for(t=0;t<i.length;++t){var c=a.subParser("makeMarkdown.tableCell")(i[t],r),u="---";if(i[t].hasAttribute("style")){switch(i[t].getAttribute("style").toLowerCase().replace(/\s/g,"")){case"text-align:left;":u=":---";break;case"text-align:right;":u="---:";break;case"text-align:center;":u=":---:"}}o[0][t]=c.trim(),o[1][t]=u}for(t=0;t<l.length;++t){var d=o.push([])-1,p=l[t].getElementsByTagName("td");for(n=0;n<i.length;++n){var h=" ";void 0!==p[n]&&(h=a.subParser("makeMarkdown.tableCell")(p[n],r)),o[d].push(h)}}var _=3;for(t=0;t<o.length;++t)for(n=0;n<o[t].length;++n){var g=o[t][n].length;g>_&&(_=g)}for(t=0;t<o.length;++t){for(n=0;n<o[t].length;++n)1===t?":"===o[t][n].slice(-1)?o[t][n]=a.helper.padEnd(o[t][n].slice(-1),_-1,"-")+":":o[t][n]=a.helper.padEnd(o[t][n],_,"-"):o[t][n]=a.helper.padEnd(o[t][n],_);s+="| "+o[t].join(" | ")+" |\n"}return s.trim()}),a.subParser("makeMarkdown.tableCell",function(e,r){"use strict";var t="";if(!e.hasChildNodes())return"";for(var n=e.childNodes,s=n.length,o=0;o<s;++o)t+=a.subParser("makeMarkdown.node")(n[o],r,!0);return t.trim()}),a.subParser("makeMarkdown.txt",function(e){"use strict";var r=e.nodeValue;return r=r.replace(/ +/g," "),r=r.replace(/¨NBSP;/g," "),r=a.helper.unescapeHTMLEntities(r),r=r.replace(/([*_~|`])/g,"\\$1"),r=r.replace(/^(\s*)>/g,"\\$1>"),r=r.replace(/^#/gm,"\\#"),r=r.replace(/^(\s*)([-=]{3,})(\s*)$/,"$1\\$2$3"),r=r.replace(/^( {0,3}\d+)\./gm,"$1\\."),r=r.replace(/^( {0,3})([+-])/gm,"$1\\$2"),r=r.replace(/]([\s]*)\(/g,"\\]$1\\("),r=r.replace(/^ {0,3}\[([\S \t]*?)]:/gm,"\\[$1]:")});"function"==typeof define&&define.amd?define(function(){"use strict";return a}):"undefined"!=typeof module&&module.exports?module.exports=a:this.showdown=a}).call(this); 3 + //# sourceMappingURL=showdown.min.js.map
+26 -26
server.py
··· 1 - import http.server 2 - import socketserver 3 - 4 - PORT = 8000 5 - 6 - class HttpRequestHandler(http.server.SimpleHTTPRequestHandler): 7 - extensions_map = { 8 - '': 'application/octet-stream', 9 - '.manifest': 'text/cache-manifest', 10 - '.html': 'text/html', 11 - '.png': 'image/png', 12 - '.jpg': 'image/jpg', 13 - '.svg': 'image/svg+xml', 14 - '.css': 'text/css', 15 - '.js':'application/x-javascript', 16 - '.wasm': 'application/wasm', 17 - '.json': 'application/json', 18 - '.xml': 'application/xml', 19 - } 20 - 21 - httpd = socketserver.TCPServer(("localhost", PORT), HttpRequestHandler) 22 - 23 - try: 24 - print(f"serving at http://localhost:{PORT}") 25 - httpd.serve_forever() 26 - except KeyboardInterrupt: 1 + import http.server 2 + import socketserver 3 + 4 + PORT = 8000 5 + 6 + class HttpRequestHandler(http.server.SimpleHTTPRequestHandler): 7 + extensions_map = { 8 + '': 'application/octet-stream', 9 + '.manifest': 'text/cache-manifest', 10 + '.html': 'text/html', 11 + '.png': 'image/png', 12 + '.jpg': 'image/jpg', 13 + '.svg': 'image/svg+xml', 14 + '.css': 'text/css', 15 + '.js':'application/x-javascript', 16 + '.wasm': 'application/wasm', 17 + '.json': 'application/json', 18 + '.xml': 'application/xml', 19 + } 20 + 21 + httpd = socketserver.TCPServer(("localhost", PORT), HttpRequestHandler) 22 + 23 + try: 24 + print(f"serving at http://localhost:{PORT}") 25 + httpd.serve_forever() 26 + except KeyboardInterrupt: 27 27 pass
+1487 -1487
style.css
··· 1 - /* 2 - Template Name: Gorgo 3 - Author: Levent Usta 4 - Author URI: http://www.aristotheme.com 5 - Description: A template by Aristotheme. 6 - */ 7 - 8 - /*=================================*/ 9 - /* Table of Contents 10 - /* - Reset & Clearfix Styles 11 - /* - Main Styles 12 - /* - Titles 13 - /* - Navigation Styles 14 - /* - Projects Feed 15 - /* - Project Assets 16 - /* - Project Content 17 - /* - Paginations 18 - /* - News 19 - /* - Structure 20 - /* - Grid 21 - /* - Footer Styles 22 - /* - Media Queries 23 - 24 - 25 - /*=================================*/ 26 - 27 - /*=================================*/ 28 - /* Reset & Clearfix Styles 29 - /*=================================*/ 30 - 31 - html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } :focus { outline: 0; } ins { text-decoration: none; } del { text-decoration: line-through; } table { border-collapse: collapse; border-spacing: 0; } 32 - 33 - .cf:before, .cf:after { content: " "; display: table; } .cf:after { clear: both; } 34 - 35 - /*=================================*/ 36 - /* Main Styles 37 - /*=================================*/ 38 - 39 - * { box-sizing: border-box; } 40 - html { 41 - font-family: sans-serif; /* 1 */ 42 - -ms-text-size-adjust: 100%; /* 2 */ 43 - -webkit-text-size-adjust: 100%; /* 2 */ 44 - } 45 - body { 46 - background: #2c2c2c; 47 - color: white; 48 - font-family: 'quicksand', Arial, sans-serif; 49 - font-size: 18px; 50 - line-height: 1.65; 51 - opacity: 0; 52 - overflow-x: hidden; 53 - transition: opacity 0.25s ease-in 0.1s; 54 - word-wrap: break-word; 55 - -webkit-text-size-adjust: none; 56 - } 57 - body.loaded, 58 - .no-js body { 59 - opacity: 1; 60 - } 61 - a, a:visited { 62 - color: #28675d; 63 - text-decoration: none; 64 - transition: color 0.1s ease-in-out; 65 - } 66 - a:hover, a:active { 67 - color: #6a9e95; 68 - text-decoration: none; 69 - } 70 - 71 - h1,h2,h3 { 72 - font-weight: bold; 73 - line-height: 1.5; 74 - } 75 - h1 { 76 - font-size: 2.2rem; 77 - letter-spacing: -1px; 78 - margin: 0 0 40px; 79 - } 80 - 81 - h2 { 82 - font-size: 1.8rem; 83 - margin: 0; 84 - } 85 - 86 - h3 { 87 - font-size: 1.4rem; 88 - } 89 - 90 - h4 { 91 - font-size: 1.2rem; 92 - } 93 - 94 - h5 { 95 - font-size: 1rem; 96 - } 97 - 98 - h6 { 99 - font-size: .8rem; 100 - } 101 - 102 - h3, 103 - h4, 104 - h5, 105 - h6 { 106 - text-transform: uppercase; 107 - margin: 0 0 10px; 108 - } 109 - h4, 110 - h5, 111 - h6 { 112 - font-weight: normal; 113 - } 114 - p,li { 115 - font-weight: 400; 116 - font-size: 1.2rem; 117 - line-height: 1.5; 118 - margin: 0 0 20px; 119 - } 120 - small { 121 - font-weight: 300; 122 - font-size: 1rem; 123 - color: #575f62 124 - } 125 - img { 126 - height: auto; 127 - max-width: 100%; 128 - vertical-align: bottom; 129 - } 130 - 131 - hr{ 132 - border: 0; 133 - height: 4px; 134 - margin: 40px 0; 135 - background: #000; 136 - } 137 - 138 - pre, 139 - code, 140 - samp { 141 - font-family: "quicksand", Consolas, monospace; 142 - font-size: inherit; 143 - } 144 - 145 - pre, 146 - code { 147 - background-color: #222426; 148 - border-radius: 3px; 149 - } 150 - 151 - pre { 152 - margin-top: 0; 153 - margin-bottom: 1rem; 154 - overflow-x: scroll; 155 - padding: 1rem; 156 - } 157 - 158 - .example { 159 - border-bottom-left-radius: 0; 160 - border-bottom-right-radius: 0; 161 - background-color: #1b1d1e; 162 - position: relative; 163 - padding: 2rem 1rem; 164 - } 165 - 166 - .example-title { 167 - position: absolute; 168 - top: 0; 169 - right: 0; 170 - background-color: #222426; 171 - padding: 0 1rem; 172 - border-top-right-radius: 3px; 173 - border-bottom-left-radius: 3px; 174 - } 175 - .example + pre { 176 - border-top-left-radius: 0; 177 - border-top-right-radius: 0; 178 - /*border: 1px solid #ccc;*/ 179 - /*border-top: 0;*/ 180 - } 181 - pre { 182 - margin-bottom: 2rem; 183 - } 184 - 185 - .site-header { 186 - background-image: url("img/banner.png"); 187 - background-color: #008037; 188 - background-repeat: no-repeat; 189 - background-position: center; 190 - } 191 - 192 - @media (prefers-color-scheme: dark) { 193 - .site-header { 194 - background-color: #008037; 195 - } 196 - } 197 - 198 - /*===== Titles =====*/ 199 - .site-title { 200 - font-family: 'Righteous',helvetica,sans-serif; 201 - font-size: 26px; 202 - color: #069780; 203 - background-color: rgba(20, 20, 20, 0.5); 204 - line-height: 1.5em; 205 - position: relative; 206 - z-index: 12; 207 - letter-spacing: 4px; 208 - margin-bottom: 120px; 209 - } 210 - .site-title a { 211 - position: fixed; 212 - padding: 10px; 213 - } 214 - .site-title a, 215 - .site-title a:visited { color: #28675d; } 216 - .site-title a:hover, 217 - .site-title a:active { 218 - color: #069780; 219 - background-color: rgba(20, 20, 20, 0.5); 220 - opacity: 0.8; 221 - } 222 - .site-title div { display: inline; } 223 - .site-tagline { 224 - clear: both; 225 - margin-bottom: 40px; 226 - width: 100%; 227 - background-color: rgba(20, 20, 20, 0.5); 228 - padding: 10px; 229 - } 230 - .site-tagline p { 231 - color: #e1e1e1; 232 - font-size: 21px; 233 - text-align: left; 234 - width: 90%; 235 - } 236 - .site-tagline a, 237 - .site-tagline a:visited { color: #28675d; } 238 - .site-tagline a:hover { 239 - color: #298db0; 240 - } 241 - /*=================================*/ 242 - /* Language Styles 243 - /*=================================*/ 244 - .languages { 245 - position: relative; 246 - z-index: 1; 247 - float: right; 248 - -webkit-transition: -webkit-transform 0.5s; 249 - -moz-transition: -moz-transform 0.5s; 250 - transition: transform 0.5s; 251 - } 252 - .languages ul { 253 - list-style: none; 254 - margin: 0; 255 - padding: 0; 256 - } 257 - .languages ul li { 258 - display: inline-block; 259 - margin: 0; 260 - } 261 - .languages ul li a { 262 - color: #e1e1e1; 263 - font-weight: bold; 264 - font-size: 14px; 265 - line-height: 14px; 266 - } 267 - .languages ul li a:hover { 268 - color: #28675d; 269 - } 270 - 271 - .languages ul li.active a { 272 - color: #e1e1e1; 273 - } 274 - /*=================================*/ 275 - /* Navigation Styles 276 - /*=================================*/ 277 - .cd-nav-trigger { 278 - position: fixed; 279 - z-index: 999; 280 - right: 20px; 281 - top: 34px; 282 - height: 54px; 283 - width: 54px; 284 - background-color: #727272; 285 - border-radius: 50%; 286 - /* image replacement */ 287 - overflow: hidden; 288 - text-indent: 100%; 289 - white-space: nowrap; 290 - -webkit-transition: -webkit-transform 0.5s; 291 - -moz-transition: -moz-transform 0.5s; 292 - transition: transform 0.5s; 293 - } 294 - .cd-nav-trigger .cd-nav-icon { 295 - /* icon created in CSS */ 296 - position: absolute; 297 - z-index: 12; 298 - left: 50%; 299 - top: 50%; 300 - bottom: auto; 301 - right: auto; 302 - -webkit-transform: translateX(-50%) translateY(-50%); 303 - -moz-transform: translateX(-50%) translateY(-50%); 304 - -ms-transform: translateX(-50%) translateY(-50%); 305 - -o-transform: translateX(-50%) translateY(-50%); 306 - transform: translateX(-50%) translateY(-50%); 307 - width: 22px; 308 - height: 2px; 309 - background-color: #181a1b; 310 - } 311 - .cd-nav-trigger .cd-nav-icon::before, .cd-nav-trigger .cd-nav-icon:after { 312 - /* upper and lower lines of the menu icon */ 313 - content: ''; 314 - position: absolute; 315 - top: 0; 316 - right: 0; 317 - width: 100%; 318 - height: 100%; 319 - background-color: inherit; 320 - /* Force Hardware Acceleration in WebKit */ 321 - -webkit-transform: translateZ(0); 322 - -moz-transform: translateZ(0); 323 - -ms-transform: translateZ(0); 324 - -o-transform: translateZ(0); 325 - transform: translateZ(0); 326 - -webkit-backface-visibility: hidden; 327 - backface-visibility: hidden; 328 - -webkit-transition: -webkit-transform 0.5s, width 0.5s, top 0.3s; 329 - -moz-transition: -moz-transform 0.5s, width 0.5s, top 0.3s; 330 - transition: transform 0.5s, width 0.5s, top 0.3s; 331 - } 332 - .cd-nav-trigger .cd-nav-icon::before { 333 - -webkit-transform-origin: right top; 334 - -moz-transform-origin: right top; 335 - -ms-transform-origin: right top; 336 - -o-transform-origin: right top; 337 - transform-origin: right top; 338 - -webkit-transform: translateY(-6px); 339 - -moz-transform: translateY(-6px); 340 - -ms-transform: translateY(-6px); 341 - -o-transform: translateY(-6px); 342 - transform: translateY(-6px); 343 - } 344 - .cd-nav-trigger .cd-nav-icon::after { 345 - -webkit-transform-origin: right bottom; 346 - -moz-transform-origin: right bottom; 347 - -ms-transform-origin: right bottom; 348 - -o-transform-origin: right bottom; 349 - transform-origin: right bottom; 350 - -webkit-transform: translateY(6px); 351 - -moz-transform: translateY(6px); 352 - -ms-transform: translateY(6px); 353 - -o-transform: translateY(6px); 354 - transform: translateY(6px); 355 - } 356 - .no-touch .cd-nav-trigger:hover .cd-nav-icon::after { 357 - top: 2px; 358 - } 359 - .no-touch .cd-nav-trigger:hover .cd-nav-icon::before { 360 - top: -2px; 361 - } 362 - .cd-nav-trigger svg { 363 - position: absolute; 364 - top: 0; 365 - left: 0; 366 - } 367 - .cd-nav-trigger circle { 368 - /* circle border animation */ 369 - -webkit-transition: stroke-dashoffset 0.4s 0s; 370 - -moz-transition: stroke-dashoffset 0.4s 0s; 371 - transition: stroke-dashoffset 0.4s 0s; 372 - } 373 - .navigation-is-open .cd-nav-trigger { 374 - /* rotate trigger when navigation becomes visible */ 375 - -webkit-transform: rotate(180deg); 376 - -moz-transform: rotate(180deg); 377 - -ms-transform: rotate(180deg); 378 - -o-transform: rotate(180deg); 379 - transform: rotate(180deg); 380 - } 381 - .navigation-is-open .cd-nav-trigger .cd-nav-icon::after, 382 - .navigation-is-open .cd-nav-trigger .cd-nav-icon::before { 383 - /* animate arrow --> from hamburger to arrow */ 384 - width: 50%; 385 - -webkit-transition: -webkit-transform 0.5s, width 0.5s; 386 - -moz-transition: -moz-transform 0.5s, width 0.5s; 387 - transition: transform 0.5s, width 0.5s; 388 - } 389 - .navigation-is-open .cd-nav-trigger .cd-nav-icon::before { 390 - -webkit-transform: rotate(45deg); 391 - -moz-transform: rotate(45deg); 392 - -ms-transform: rotate(45deg); 393 - -o-transform: rotate(45deg); 394 - transform: rotate(45deg); 395 - } 396 - .navigation-is-open .cd-nav-trigger .cd-nav-icon::after { 397 - -webkit-transform: rotate(-45deg); 398 - -moz-transform: rotate(-45deg); 399 - -ms-transform: rotate(-45deg); 400 - -o-transform: rotate(-45deg); 401 - transform: rotate(-45deg); 402 - } 403 - .no-touch .navigation-is-open .cd-nav-trigger:hover .cd-nav-icon::after, .no-touch .navigation-is-open .cd-nav-trigger:hover .cd-nav-icon::before { 404 - top: 0; 405 - } 406 - .navigation-is-open .cd-nav-trigger circle { 407 - stroke-dashoffset: 0; 408 - -webkit-transition: stroke-dashoffset 0.4s 0.3s; 409 - -moz-transition: stroke-dashoffset 0.4s 0.3s; 410 - transition: stroke-dashoffset 0.4s 0.3s; 411 - } 412 - .cd-nav { 413 - position: fixed; 414 - z-index: 12; 415 - top: 0; 416 - left: 0; 417 - height: 100%; 418 - width: 100%; 419 - background-color: #212425; 420 - visibility: hidden; 421 - -webkit-transition: visibility 0s 0.7s; 422 - -moz-transition: visibility 0s 0.7s; 423 - transition: visibility 0s 0.7s; 424 - } 425 - .cd-nav .cd-navigation-wrapper { 426 - /* all navigation content */ 427 - padding: 20px; 428 - height: 100%; 429 - overflow-y: auto; 430 - -webkit-overflow-scrolling: touch; 431 - 432 - /* Force Hardware Acceleration in WebKit */ 433 - -webkit-transform: translateZ(0); 434 - -moz-transform: translateZ(0); 435 - -ms-transform: translateZ(0); 436 - -o-transform: translateZ(0); 437 - transform: translateZ(0); 438 - -webkit-backface-visibility: hidden; 439 - backface-visibility: hidden; 440 - -webkit-transform: translateX(-50%); 441 - -moz-transform: translateX(-50%); 442 - -ms-transform: translateX(-50%); 443 - -o-transform: translateX(-50%); 444 - transform: translateX(-50%); 445 - -webkit-transition: -webkit-transform 0.7s; 446 - -moz-transition: -moz-transform 0.7s; 447 - transition: transform 0.7s; 448 - -webkit-transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 449 - -moz-transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 450 - transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 451 - } 452 - .navigation-is-open .cd-nav { 453 - visibility: visible; 454 - -webkit-transition: visibility 0s 0s; 455 - -moz-transition: visibility 0s 0s; 456 - transition: visibility 0s 0s; 457 - } 458 - .navigation-is-open .cd-nav .cd-navigation-wrapper { 459 - -webkit-transform: translateX(0); 460 - -moz-transform: translateX(0); 461 - -ms-transform: translateX(0); 462 - -o-transform: translateX(0); 463 - transform: translateX(0); 464 - -webkit-transition: -webkit-transform 0.5s; 465 - -moz-transition: -moz-transform 0.5s; 466 - transition: transform 0.5s; 467 - -webkit-transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 468 - -moz-transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 469 - transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 470 - } 471 - 472 - .cd-nav .cd-primary-nav { 473 - margin-top: 90px; 474 - } 475 - .cd-nav .cd-primary-nav a { 476 - font-size: 21px; 477 - display: inline-block; 478 - } 479 - .cd-nav .cd-primary-nav a.selected { 480 - color: #b6b6b6; 481 - } 482 - .no-touch .cd-nav .cd-primary-nav a:hover { 483 - color: #b6b6b6; 484 - } 485 - .cd-nav .cd-contact-info { 486 - margin-top: 20px; 487 - margin-bottom: 20px; 488 - } 489 - .cd-nav .cd-contact-info li { 490 - margin-bottom: 0.5em; 491 - line-height: 1.2; 492 - color: rgba(24, 26, 27, 0.3); 493 - } 494 - .cd-nav .cd-contact-info a { 495 - color: #e1e1e1; 496 - } 497 - .cd-nav .cd-contact-info a:hover { 498 - color: #82888b; 499 - } 500 - .cd-nav .cd-contact-info span { 501 - display: block; 502 - } 503 - .cd-nav .cd-contact-info li, 504 - .cd-nav .cd-contact-info a, 505 - .cd-nav .cd-contact-info span { 506 - font-size: 18px; 507 - } 508 - 509 - .cd-nav .cd-contact-socials li { 510 - line-height: 1.8; 511 - } 512 - .cd-nav .cd-contact-socials a { 513 - color: #e1e1e1; 514 - text-transform: uppercase; 515 - letter-spacing: 2px; 516 - font-size: 16px 517 - } 518 - .cd-nav .cd-contact-socials a:hover { 519 - color: #82888b; 520 - } 521 - .no-js main { 522 - height: auto; 523 - overflow: visible; 524 - } 525 - 526 - .no-js .cd-nav { 527 - position: static; 528 - visibility: visible; 529 - } 530 - .no-js .cd-nav .cd-navigation-wrapper { 531 - height: auto; 532 - overflow: visible; 533 - padding: 100px 5%; 534 - -webkit-transform: translateX(0); 535 - -moz-transform: translateX(0); 536 - -ms-transform: translateX(0); 537 - -o-transform: translateX(0); 538 - transform: translateX(0); 539 - } 540 - /*===== Projects Feed =====*/ 541 - .projects-feed { 542 - clear: both; 543 - } 544 - .projects-feed .project { 545 - background: #181a1b; 546 - opacity: 0; 547 - overflow: hidden; 548 - position: relative; 549 - transition: opacity 0.25s ease-in 0.1s; 550 - width: 100%; 551 - } 552 - .no-js .projects-feed .project, 553 - .projects-feed .loaded { 554 - opacity: 1; 555 - } 556 - .projects-feed .project .overlay { 557 - background: #181a1b; 558 - background: rgba(24, 26, 27, 0.6); 559 - height: 100%; 560 - opacity: 0; 561 - position: absolute; 562 - top: 0; right: 0; bottom: 0; left: 0; 563 - -webkit-transition: opacity 0.15s ease-in-out; 564 - transition: opacity 0.15s ease-in-out; 565 - width: 100%; 566 - } 567 - .no-touch .projects-feed .project a:hover .overlay { 568 - opacity: 1; 569 - } 570 - .projects-feed .project-content-container { 571 - position: relative; 572 - width: 100%; 573 - padding-bottom: 100%; 574 - } 575 - .projects-feed .project-content-container::before { 576 - border-left: 22px solid transparent; 577 - border-right: 22px solid transparent; 578 - border-bottom: 22px solid #181a1b; 579 - content: ''; 580 - display: block; 581 - height: 0; 582 - margin: auto; 583 - position: absolute; 584 - top: -22px; left: 0; right: 0; 585 - width: 0; 586 - } 587 - .projects-feed .project-content { 588 - position: absolute; 589 - top: 0; right: 0; bottom: 0; left: 0; 590 - padding: 20px; 591 - } 592 - .table { 593 - display: table; 594 - height: 100%; 595 - width: 100%; 596 - } 597 - .table-cell { 598 - display: table-cell; 599 - height: 100%; 600 - width: 100%; 601 - vertical-align: middle; 602 - } 603 - .thumbnail-title { 604 - color: #e1e1e1; 605 - font-family: 'Righteous',helvetica,sans-serif; 606 - font-size: 21px; 607 - margin: 0 auto 10px auto; 608 - text-align: left; 609 - letter-spacing: 4px; 610 - text-transform:uppercase; 611 - max-width: 700px; 612 - text-align: center; 613 - width: 75%; 614 - word-wrap: break-word; 615 - } 616 - .thumbnail-description { 617 - color: #e1e1e1; 618 - font-family: 'quicksand', Arial, sans-serif; 619 - font-size: 16px; 620 - margin: 0 auto; 621 - max-height: 5em; 622 - max-width: 360px; 623 - text-align: left; 624 - width: 75%; 625 - text-transform: uppercase; 626 - } 627 - /*===== Project Assets =====*/ 628 - .thumb img { 629 - width: 100%; 630 - height: auto; 631 - } 632 - div.image, 633 - div.audio, 634 - div.video { 635 - text-align: center; 636 - transition: opacity 0.25s ease-in 0.1s; 637 - } 638 - .no-js div.image, 639 - .no-js div.audio, 640 - .no-js div.video, 641 - div.loaded { opacity: 1; } 642 - div.image img { width: 100%; } 643 - 644 - .view { 645 - cursor: -webkit-zoom-in; 646 - cursor: -moz-zoom-in; 647 - } 648 - /*===== Project Content =====*/ 649 - .project-meta { 650 - font-family: 'quicksand', Arial, sans-serif; 651 - font-size: 14px; 652 - color: #3e4446; 653 - margin-top: 28px; 654 - } 655 - .project-meta > span::before { 656 - content: "\002F"; 657 - margin: 0 5px 0 3px; 658 - } 659 - .project-meta > span:first-child::before { content: none; } 660 - .project-meta a, 661 - .project-meta a:visited { 662 - color: #3e4446; 663 - transition: opacity 0.2s ease-in-out; 664 - } 665 - .project-meta a:hover { color: #28675d; } 666 - .project-meta .tags { margin-top: 17px; } 667 - .project-meta .tags a { margin-left: 10px; } 668 - .project-meta .tags a:first-child { margin-left: 0; } 669 - 670 - /*===== Paginations =====*/ 671 - nav[role="navigation"] { 672 - text-align: center; 673 - } 674 - 675 - .cd-pagination { 676 - margin: 2em auto 2em; 677 - text-align: center; 678 - } 679 - .cd-pagination li { 680 - /* hide numbers on small devices */ 681 - display: none; 682 - margin: 0 .2em; 683 - } 684 - .cd-pagination li.button { 685 - /* make sure prev next buttons are visible */ 686 - display: inline-block; 687 - } 688 - .cd-pagination a, .cd-pagination span { 689 - display: inline-block; 690 - -webkit-user-select: none; 691 - -moz-user-select: none; 692 - -ms-user-select: none; 693 - user-select: none; 694 - /* use padding and font-size to change buttons size */ 695 - padding: .6em .8em; 696 - font-size: 18p 697 - x; 698 - 699 - } 700 - .cd-pagination a { 701 - border: 1px solid #26292b; 702 - } 703 - .no-touch .cd-pagination a:hover { 704 - background-color: #1f2223; 705 - } 706 - .cd-pagination a:active { 707 - /* click effect */ 708 - -webkit-transform: scale(0.9); 709 - -moz-transform: scale(0.9); 710 - -ms-transform: scale(0.9); 711 - -o-transform: scale(0.9); 712 - transform: scale(0.9); 713 - } 714 - .cd-pagination a.disabled { 715 - /* button disabled */ 716 - color: rgba(37, 51, 70, 0.4); 717 - pointer-events: none; 718 - } 719 - .cd-pagination a.disabled::before, .cd-pagination a.disabled::after { 720 - opacity: .4; 721 - } 722 - .cd-pagination .button:first-of-type a::before { 723 - content: '\00ab '; 724 - } 725 - .cd-pagination .button:last-of-type a::after { 726 - content: ' \00bb'; 727 - } 728 - .cd-pagination .current { 729 - /* selected number */ 730 - background-color: #28675d; 731 - border-color: #28675d; 732 - color: #181a1b; 733 - pointer-events: none; 734 - } 735 - @media only screen and (min-width: 768px) { 736 - .cd-pagination li { 737 - display: inline-block; 738 - } 739 - } 740 - @media only screen and (min-width: 1170px) { 741 - .cd-pagination { 742 - margin: 4em auto 4em; 743 - } 744 - } 745 - 746 - .cd-pagination.custom-icons .button a { 747 - position: relative; 748 - 749 - } 750 - .cd-pagination.custom-icons .button:first-of-type a { 751 - padding-left: 2.4em; 752 - } 753 - .cd-pagination.custom-icons .button:last-of-type a { 754 - padding-right: 2.4em; 755 - } 756 - .cd-pagination.custom-icons .button:first-of-type a::before, 757 - .cd-pagination.custom-icons .button:last-of-type a::after { 758 - content: ''; 759 - position: absolute; 760 - display: inline-block; 761 - /* set size for custom icons */ 762 - width: 16px; 763 - height: 16px; 764 - top: 50%; 765 - /* set margin-top = icon height/2 */ 766 - margin-top: -8px; 767 - background: transparent url("img/cd-icon-arrow.svg") no-repeat center center; 768 - } 769 - 770 - .cd-pagination.custom-icons .button-main a { 771 - background: transparent url("img/portfolio-icon.svg") no-repeat center center; 772 - } 773 - 774 - .cd-pagination.custom-icons .button-main a:hover { 775 - background: transparent url("img/portfolio-icon.svg") no-repeat center center; 776 - border:1px solid #212425; 777 - -webkit-transition: border 1s; 778 - -moz-transition: border 1s; 779 - transition: border 1s; 780 - } 781 - 782 - .button-submit a:hover { 783 - border: 1px solid #212425; 784 - -webkit-transition: border 1s; 785 - -moz-transition: border 1s; 786 - transition: border 1s; 787 - } 788 - 789 - .button-submit i { 790 - font-style: normal; 791 - } 792 - 793 - .cd-pagination.custom-icons .button:first-of-type a::before { 794 - left: .8em; 795 - } 796 - .cd-pagination.custom-icons .button:last-of-type a::after { 797 - right: .8em; 798 - -webkit-transform: rotate(180deg); 799 - -moz-transform: rotate(180deg); 800 - -ms-transform: rotate(180deg); 801 - -o-transform: rotate(180deg); 802 - transform: rotate(180deg); 803 - } 804 - 805 - .cd-pagination.animated-buttons a, 806 - .cd-pagination.animated-buttons span { 807 - padding: 0 1.4em; 808 - height: 50px; 809 - line-height: 50px; 810 - overflow: hidden; 811 - } 812 - .cd-pagination.animated-buttons .button a { 813 - position: relative; 814 - padding: 0 2em; 815 - } 816 - .cd-pagination.animated-buttons .button:first-of-type a::before, 817 - .cd-pagination.animated-buttons .button:last-of-type a::after { 818 - left: 50%; 819 - -webkit-transform: translateX(-50%); 820 - -moz-transform: translateX(-50%); 821 - -ms-transform: translateX(-50%); 822 - -o-transform: translateX(-50%); 823 - transform: translateX(-50%); 824 - right: auto; 825 - -webkit-transition: -webkit-transform 0.3s; 826 - -moz-transition: -moz-transform 0.3s; 827 - transition: transform 0.3s; 828 - } 829 - 830 - .cd-pagination.animated-buttons .button:last-of-type a::after { 831 - -webkit-transform: translateX(-50%) rotate(180deg); 832 - -moz-transform: translateX(-50%) rotate(180deg); 833 - -ms-transform: translateX(-50%) rotate(180deg); 834 - -o-transform: translateX(-50%) rotate(180deg); 835 - transform: translateX(-50%) rotate(180deg); 836 - } 837 - .cd-pagination.animated-buttons i { 838 - display: block; 839 - height: 100%; 840 - -webkit-transform: translateY(100%); 841 - -moz-transform: translateY(100%); 842 - -ms-transform: translateY(100%); 843 - -o-transform: translateY(100%); 844 - transform: translateY(100%); 845 - -webkit-transition: -webkit-transform 0.3s; 846 - -moz-transition: -moz-transform 0.3s; 847 - transition: transform 0.3s; 848 - font-style: normal; 849 - 850 - } 851 - 852 - .no-touch .cd-pagination.animated-buttons .button a:hover i { 853 - -webkit-transform: translateY(0); 854 - -moz-transform: translateY(0); 855 - -ms-transform: translateY(0); 856 - -o-transform: translateY(0); 857 - transform: translateY(0); 858 - } 859 - 860 - .no-touch .cd-pagination.animated-buttons .button:first-of-type a:hover::before { 861 - -webkit-transform: translateX(-50%) translateY(-50px); 862 - -moz-transform: translateX(-50%) translateY(-50px); 863 - -ms-transform: translateX(-50%) translateY(-50px); 864 - -o-transform: translateX(-50%) translateY(-50px); 865 - transform: translateX(-50%) translateY(-50px); 866 - } 867 - 868 - .no-touch .cd-pagination.animated-buttons .button:last-of-type a:hover::after { 869 - -webkit-transform: translateX(-50%) rotate(180deg) translateY(50px); 870 - -moz-transform: translateX(-50%) rotate(180deg) translateY(50px); 871 - -ms-transform: translateX(-50%) rotate(180deg) translateY(50px); 872 - -o-transform: translateX(-50%) rotate(180deg) translateY(50px); 873 - transform: translateX(-50%) rotate(180deg) translateY(50px); 874 - } 875 - 876 - 877 - /*===== News =====*/ 878 - .news .blog_item:nth-child(odd) { background: #28675d; } 879 - .news .blog_item:nth-child(even) { background: #1b1d1e; } 880 - .blog_item { 881 - padding: 80px 50px; 882 - position: relative; 883 - transition: all 0.5s; 884 - cursor: pointer; 885 - } 886 - .blog_item h1, .blog_item h5 { 887 - transition: all 0.5s; 888 - } 889 - .blog_item h5 { 890 - font-size: 0.7em; 891 - } 892 - .blog_item .abs_bg { 893 - display: block; 894 - z-index: 1; 895 - position: absolute; 896 - left: 0; 897 - top: 0; 898 - width: 100%; 899 - height: 100%; 900 - background-size: cover; 901 - transition: all 0.5s; 902 - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 903 - filter: alpha(opacity=0); 904 - -moz-opacity: 0; 905 - -khtml-opacity: 0; 906 - opacity: 0; 907 - } 908 - .blog_item .blog_item_inner { 909 - z-index: 2; 910 - position: relative; 911 - } 912 - .blog_item .full_link { 913 - z-index: 3; 914 - position: absolute; 915 - width: 100%; 916 - height: 100%; 917 - top:0; 918 - left:0; 919 - } 920 - .blog_item:hover { 921 - color: #28675d; 922 - } 923 - .blog_item:nth-child(odd):hover { 924 - background-color: #2c2c2c; 925 - } 926 - .blog_item:nth-child(even):hover { 927 - background-color: #000; 928 - } 929 - .blog_item:hover h1, .blog_item:hover h5 { 930 - color: #28675d; 931 - } 932 - .blog_item:hover .abs_bg { 933 - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 934 - filter: alpha(opacity=50); 935 - -moz-opacity: 0.5; 936 - -khtml-opacity: 0.5; 937 - opacity: 0.5; 938 - } 939 - .blog_item h1 { 940 - overflow: hidden; 941 - width: 100%; 942 - font-size: 1.4rem; 943 - } 944 - #blog .blog_item h1 { 945 - overflow: hidden; 946 - } 947 - /*===== Footer =====*/ 948 - .site-footer { padding: 40px 200px;} 949 - 950 - /*=================================*/ 951 - /* Structure 952 - /*=================================*/ 953 - 954 - .site-container { 955 - margin: 0 auto; 956 - } 957 - .site-header, 958 - .page-desc { 959 - padding: 40px 20px; 960 - width: 100%; 961 - } 962 - 963 - .page-desc img { 964 - margin:40px 0; 965 - } 966 - .page-desc ul { 967 - margin: 60px 0; 968 - } 969 - .page-desc li { 970 - list-style-type: disc; 971 - margin-left: 60px; 972 - } 973 - .row { 974 - margin-top: 40px; 975 - } 976 - .site-content { 977 - clear: both; 978 - } 979 - .site-content figure{ 980 - margin:0; 981 - padding: 0; 982 - } 983 - .site-footer { padding: 40px 20px; } 984 - .right { 985 - float: right; 986 - margin: 0px 0px 40px 40px ; 987 - } 988 - .left { 989 - float: left; 990 - margin: 0px 40px 40px 0px ; 991 - } 992 - 993 - /*=================================*/ 994 - /* Grid System 995 - /*=================================*/ 996 - 997 - .row { 998 - overflow: hidden; 999 - } 1000 - .large-1, .large-2, .large-3, .large-4 { 1001 - width: 100%; 1002 - margin-bottom: 40px; 1003 - } 1004 - .large-1:nth-child(1n), .large-2:nth-child(1n), .large-3:nth-child(1n), .large-4:nth-child(1n) { 1005 - float: left; 1006 - } 1007 - .large-1:last-child, .large-2:last-child, .large-3:last-child, .large-4:last-child{ 1008 - float: right; 1009 - } 1010 - 1011 - 1012 - 1013 - /*=================================*/ 1014 - /* Footer Styles 1015 - /*=================================*/ 1016 - .site-footer { 1017 - color: #e1e1e1; 1018 - font-family: 'quicksand', Arial, sans-serif; 1019 - } 1020 - .site-footer p { margin: 0; font-size: 16px;display: inline; color: #e1e1e1;} 1021 - .site-footer a, 1022 - .site-footer a:visited { color: #e1e1e1; } 1023 - .site-footer a:hover { color: #28675d; } 1024 - 1025 - /*=================================*/ 1026 - /* Media Queries 1027 - /*=================================*/ 1028 - 1029 - 1030 - 1031 - @media only screen and (min-width: 401px) { 1032 - 1033 - /*===== Titles =====*/ 1034 - .site-tagline p { 1035 - font-size: 28px; 1036 - } 1037 - /*===== Navigations =====*/ 1038 - .cd-nav-trigger { 1039 - top: 34px; 1040 - right: 40px; 1041 - } 1042 - .cd-nav .cd-navigation-wrapper { 1043 - padding: 40px; 1044 - } 1045 - /*===== Projects =====*/ 1046 - .projects-feed .thumb, 1047 - .projects-feed .project-content-container { 1048 - float: left; 1049 - width: 50%; 1050 - } 1051 - .projects-feed .project-content-container { padding-bottom: 50%; } 1052 - .projects-feed .project:nth-child(2n) .thumb { float: right; } 1053 - /* Thumb on the left */ 1054 - .projects-feed .project:nth-child(2n+1) .project-content-container::before { 1055 - border-top: 22px solid transparent; 1056 - border-left: none; 1057 - border-bottom: 22px solid transparent; 1058 - border-right: 22px solid #181a1b; 1059 - left: -22px; top: 0; bottom: 0; right: initial; 1060 - } 1061 - /* Thumb on the right */ 1062 - .projects-feed .project:nth-child(2n) .project-content-container::before { 1063 - border-top: 22px solid transparent; 1064 - border-right: none; 1065 - border-bottom: 22px solid transparent; 1066 - border-left: 22px solid #181a1b; 1067 - left: initial; top: 0; bottom: 0; right: -22px; 1068 - } 1069 - /*===== Footer =====*/ 1070 - .site-footer { padding: 40px } 1071 - 1072 - } 1073 - 1074 - @media only screen and (min-width: 600px) { 1075 - 1076 - /*===== Structure s =====*/ 1077 - .site-header, 1078 - .page-desc { 1079 - padding: 60px; 1080 - } 1081 - .page-desc h1, 1082 - .page-desc h2, 1083 - .page-desc h3{ 1084 - font-size: 2.8rem; 1085 - } 1086 - /*===== Titles =====*/ 1087 - .site-title { 1088 - margin-bottom: 120px; 1089 - } 1090 - .site-tagline { 1091 - margin-bottom: 60px; 1092 - } 1093 - .site-tagline p { 1094 - font-size: 36px; 1095 - } 1096 - /*===== Navigations =====*/ 1097 - .cd-nav-trigger { 1098 - top: 52px; 1099 - right: 60px; 1100 - } 1101 - .cd-nav .cd-navigation-wrapper { 1102 - padding: 60px 59px 60px calc(1px + 59px); 1103 - } 1104 - .cd-nav .cd-navigation-wrapper::after { 1105 - clear: both; 1106 - content: ""; 1107 - display: table; 1108 - } 1109 - .cd-nav .cd-half-block { 1110 - width: 50%; 1111 - float: left; 1112 - } 1113 - .cd-nav .cd-primary-nav { 1114 - margin-top: 160px; 1115 - } 1116 - .cd-nav .cd-primary-nav a { 1117 - font-size: 36px; 1118 - } 1119 - .cd-nav .cd-contact-info { 1120 - margin-top: 160px; 1121 - margin-bottom: 80px; 1122 - text-align: right; 1123 - } 1124 - .cd-nav .cd-contact-info li { 1125 - margin-bottom: 2em; 1126 - } 1127 - .cd-nav .cd-contact-socials { 1128 - text-align: right; 1129 - } 1130 - /*===== Blog =====*/ 1131 - .blog_item h1 { 1132 - font-size: 2rem; 1133 - width: 75%; 1134 - } 1135 - .blog_item h5 { 1136 - font-size: 0.8rem; 1137 - } 1138 - .blog_item { 1139 - padding: 100px 50px; 1140 - } 1141 - /*===== Footer =====*/ 1142 - .site-footer { padding: 40px 60px; } 1143 - 1144 - 1145 - } 1146 - 1147 - @media only screen and (min-width: 801px) { 1148 - 1149 - /*===== Structures =====*/ 1150 - .site-header, 1151 - .page-desc { 1152 - padding: 80px; 1153 - } 1154 - .row { 1155 - margin-top: 80px; 1156 - } 1157 - /*===== Titles =====*/ 1158 - .site-title { 1159 - margin-bottom: 160px; 1160 - } 1161 - .site-tagline { 1162 - margin-bottom: 80px; 1163 - } 1164 - .site-tagline p { 1165 - font-size: 42px; 1166 - } 1167 - /*===== Navigations =====*/ 1168 - .cd-nav-trigger { 1169 - top: 74px; 1170 - right: 80px; 1171 - } 1172 - .cd-nav .cd-navigation-wrapper { 1173 - padding: 60px 79px 60px calc(1px + 79px); 1174 - } 1175 - .cd-nav .cd-primary-nav a { 1176 - font-size: 42px; 1177 - } 1178 - .cd-nav .cd-contact-info li, 1179 - .cd-nav .cd-contact-info a, 1180 - .cd-nav .cd-contact-info span { 1181 - font-size: 21px; 1182 - } 1183 - /*===== Footer =====*/ 1184 - .site-footer { padding: 40px 80px; } 1185 - .footer-text { float: left; } 1186 - .footer-misc { float: right; } 1187 - /*===== Projects =====*/ 1188 - .thumbnail-title { 1189 - font-size: 28px; 1190 - } 1191 - .is_page .projects-feed { margin-top: 150px; } 1192 - .projects-feed .project { float: left; } 1193 - .projects-feed .project:nth-child(3n+1), 1194 - .projects-feed .project:nth-child(3n+3) { 1195 - /*max-width: 800px;*/ 1196 - width: 66.6667%; 1197 - } 1198 - .projects-feed .project:nth-child(3n+2) { 1199 - float: right; 1200 - /*max-width: 400px;*/ 1201 - width: 33.3333%; 1202 - } 1203 - .projects-feed .project:nth-child(3n+1) .thumb { float: left; } 1204 - .projects-feed .project:nth-child(3n+3) .thumb { float: right; } 1205 - .projects-feed .project:nth-child(3n+2) .thumb, 1206 - .projects-feed .project:nth-child(3n+2) .project-content-container { 1207 - float: none; 1208 - width: 100%; 1209 - } 1210 - .projects-feed .project:nth-child(3n+2) .project-content-container { padding-bottom: 100%; } 1211 - /* Thumb on the left */ 1212 - .projects-feed .project:nth-child(3n+1) .project-content-container::before { 1213 - border-top: 22px solid transparent; 1214 - border-left: none; 1215 - border-bottom: 22px solid transparent; 1216 - border-right: 22px solid #181a1b; 1217 - left: -22px; top: 0; bottom: 0; right: initial; 1218 - } 1219 - /* Thumb on the top */ 1220 - .projects-feed .project:nth-child(3n+2) .project-content-container::before { 1221 - border-left: 22px solid transparent; 1222 - border-top: none; 1223 - border-right: 22px solid transparent; 1224 - border-bottom: 22px solid #181a1b; 1225 - left: 0; top: -22px; bottom: initial; right: 0; 1226 - } 1227 - /* Thumb on the right */ 1228 - .projects-feed .project:nth-child(3n+3) .project-content-container::before { 1229 - border-top: 22px solid transparent; 1230 - border-right: none; 1231 - border-bottom: 22px solid transparent; 1232 - border-left: 22px solid #181a1b; 1233 - left: initial; top: 0; bottom: 0; right: -22px; 1234 - } 1235 - /*===== Paginations =====*/ 1236 - 1237 - /*===== Grid =====*/ 1238 - .large-1 { 1239 - width: 100%; 1240 - } 1241 - 1242 - .large-1:nth-child(1n) { 1243 - float: left; 1244 - } 1245 - 1246 - .large-1:last-child { 1247 - float: right; 1248 - } 1249 - 1250 - .large-2 { 1251 - width: 40%; 1252 - } 1253 - 1254 - .large-2:nth-child(1n) { 1255 - float: left; 1256 - } 1257 - 1258 - .large-2:last-child { 1259 - float: right; 1260 - } 1261 - 1262 - .large-3 { 1263 - width: 30%; 1264 - } 1265 - 1266 - .large-3:nth-child(1n) { 1267 - float: left; 1268 - } 1269 - 1270 - .large-3:last-child { 1271 - float: right; 1272 - } 1273 - 1274 - .large-4 { 1275 - width: 20%; 1276 - } 1277 - 1278 - .large-4:nth-child(1n) { 1279 - float: left; 1280 - } 1281 - 1282 - .large-4:last-child { 1283 - float: right; 1284 - } 1285 - 1286 - 1287 - } 1288 - 1289 - @media only screen and (min-width: 1200px) { 1290 - 1291 - /*===== Structures =====*/ 1292 - .site-header, 1293 - .page-desc { 1294 - padding: 100px 200px; 1295 - } 1296 - .row { 1297 - margin-top: 120px; 1298 - } 1299 - /*===== Titles =====*/ 1300 - .site-title { 1301 - margin-bottom: 200px; 1302 - } 1303 - .site-tagline { 1304 - margin-bottom: 100px; 1305 - width: 75%; 1306 - } 1307 - .site-tagline p { 1308 - font-size: 48px; 1309 - } 1310 - .site-tagline h1 { 1311 - font-size: 3.2rem; 1312 - } 1313 - .site-tagline h5 { 1314 - font-size: 1.4rem; 1315 - } 1316 - /*===== Navigations =====*/ 1317 - .cd-nav-trigger { 1318 - top: 94px; 1319 - right: 140px; 1320 - } 1321 - .cd-nav .cd-navigation-wrapper { 1322 - padding: 60px 140px 60px calc(58px + 140px); 1323 - } 1324 - .cd-nav .cd-primary-nav a { 1325 - font-size: 54px; 1326 - } 1327 - .cd-nav .cd-contact-info li, 1328 - .cd-nav .cd-contact-info a, 1329 - .cd-nav .cd-contact-info span { 1330 - font-size: 24px; 1331 - } 1332 - /*===== Projects =====*/ 1333 - .thumbnail-title { 1334 - font-size: 36px; 1335 - } 1336 - /*===== Paginations =====*/ 1337 - 1338 - /*===== Blog =====*/ 1339 - .blog_item h1 { 1340 - width: 75%; 1341 - font-size: 3.2rem; 1342 - } 1343 - .blog_item{ 1344 - padding: 200px; 1345 - } 1346 - .blog_item h5 { 1347 - font-size: 1rem; 1348 - } 1349 - /*===== Main Styles =====*/ 1350 - h1 { 1351 - font-size: 3.2rem; 1352 - } 1353 - 1354 - h2 { 1355 - font-size: 2.6rem; 1356 - } 1357 - 1358 - h3 { 1359 - font-size: 2.3rem; 1360 - } 1361 - 1362 - h4 { 1363 - font-size: 1.8rem; 1364 - } 1365 - 1366 - h5 { 1367 - font-size: 1.4rem; 1368 - } 1369 - 1370 - h6 { 1371 - font-size: 1rem; 1372 - } 1373 - 1374 - } 1375 - 1376 - @keyframes fadein { 1377 - from { 1378 - opacity: 0; 1379 - } 1380 - to { 1381 - opacity: 1; 1382 - } 1383 - } 1384 - 1385 - @-moz-keyframes fadein { 1386 - from { 1387 - opacity: 0; 1388 - } 1389 - to { 1390 - opacity: 1; 1391 - } 1392 - } 1393 - 1394 - @-webkit-keyframes fadein { 1395 - from { 1396 - opacity: 0; 1397 - } 1398 - to { 1399 - opacity: 1; 1400 - } 1401 - } 1402 - 1403 - @-ms-keyframes fadein { 1404 - from { 1405 - opacity: 0; 1406 - } 1407 - to { 1408 - opacity: 1; 1409 - } 1410 - } 1411 - 1412 - .project.project-page div.thumb,div.project-content-container { 1413 - width: 50%; 1414 - float: left; 1415 - padding: 10px; 1416 - -webkit-animation: fadein 2s; 1417 - -moz-animation: fadein 2s; 1418 - -ms-animation: fadein 2s; 1419 - -o-animation: fadein 2s; 1420 - animation: fadein 2s; 1421 - } 1422 - 1423 - .project.project-page:not(.active-project) { 1424 - display: none; 1425 - } 1426 - 1427 - .embed { 1428 - position: relative; 1429 - display: block; 1430 - width: 100%; 1431 - padding: 0; 1432 - overflow: hidden; 1433 - } 1434 - 1435 - .embed::before { 1436 - display: block; 1437 - content: ""; 1438 - } 1439 - 1440 - .embed .embed-item, 1441 - .embed iframe, 1442 - .embed embed, 1443 - .embed object, 1444 - .embed video { 1445 - position: absolute; 1446 - top: 0; 1447 - bottom: 0; 1448 - left: 0; 1449 - width: 100%; 1450 - height: 100%; 1451 - border: 0; 1452 - } 1453 - 1454 - .embed-16by9::before { 1455 - padding-top: 56.25%; 1456 - } 1457 - 1458 - .news:not(.active-news-page) { 1459 - display: none; 1460 - } 1461 - 1462 - textarea { 1463 - resize: none; 1464 - } 1465 - 1466 - .input { 1467 - width: 100%; 1468 - padding: 10px; 1469 - } 1470 - 1471 - .input input, 1472 - .input textarea { 1473 - margin: auto; 1474 - width: 50%; 1475 - display: block; 1476 - border-radius: 7px; 1477 - padding: 10px; 1478 - font-family: 'quicksand', Arial, sans-serif; 1479 - } 1480 - 1481 - li.button-submit { 1482 - display: inline-block; 1483 - } 1484 - 1485 - p[data-i18n="[html]about.bio"] div::after, p[data-i18n="[html]about.bio"] p::after { 1486 - content: "\a\a"; 1487 - white-space: pre; 1 + /* 2 + Template Name: Gorgo 3 + Author: Levent Usta 4 + Author URI: http://www.aristotheme.com 5 + Description: A template by Aristotheme. 6 + */ 7 + 8 + /*=================================*/ 9 + /* Table of Contents 10 + /* - Reset & Clearfix Styles 11 + /* - Main Styles 12 + /* - Titles 13 + /* - Navigation Styles 14 + /* - Projects Feed 15 + /* - Project Assets 16 + /* - Project Content 17 + /* - Paginations 18 + /* - News 19 + /* - Structure 20 + /* - Grid 21 + /* - Footer Styles 22 + /* - Media Queries 23 + 24 + 25 + /*=================================*/ 26 + 27 + /*=================================*/ 28 + /* Reset & Clearfix Styles 29 + /*=================================*/ 30 + 31 + html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } :focus { outline: 0; } ins { text-decoration: none; } del { text-decoration: line-through; } table { border-collapse: collapse; border-spacing: 0; } 32 + 33 + .cf:before, .cf:after { content: " "; display: table; } .cf:after { clear: both; } 34 + 35 + /*=================================*/ 36 + /* Main Styles 37 + /*=================================*/ 38 + 39 + * { box-sizing: border-box; } 40 + html { 41 + font-family: sans-serif; /* 1 */ 42 + -ms-text-size-adjust: 100%; /* 2 */ 43 + -webkit-text-size-adjust: 100%; /* 2 */ 44 + } 45 + body { 46 + background: #2c2c2c; 47 + color: white; 48 + font-family: 'quicksand', Arial, sans-serif; 49 + font-size: 18px; 50 + line-height: 1.65; 51 + opacity: 0; 52 + overflow-x: hidden; 53 + transition: opacity 0.25s ease-in 0.1s; 54 + word-wrap: break-word; 55 + -webkit-text-size-adjust: none; 56 + } 57 + body.loaded, 58 + .no-js body { 59 + opacity: 1; 60 + } 61 + a, a:visited { 62 + color: #28675d; 63 + text-decoration: none; 64 + transition: color 0.1s ease-in-out; 65 + } 66 + a:hover, a:active { 67 + color: #6a9e95; 68 + text-decoration: none; 69 + } 70 + 71 + h1,h2,h3 { 72 + font-weight: bold; 73 + line-height: 1.5; 74 + } 75 + h1 { 76 + font-size: 2.2rem; 77 + letter-spacing: -1px; 78 + margin: 0 0 40px; 79 + } 80 + 81 + h2 { 82 + font-size: 1.8rem; 83 + margin: 0; 84 + } 85 + 86 + h3 { 87 + font-size: 1.4rem; 88 + } 89 + 90 + h4 { 91 + font-size: 1.2rem; 92 + } 93 + 94 + h5 { 95 + font-size: 1rem; 96 + } 97 + 98 + h6 { 99 + font-size: .8rem; 100 + } 101 + 102 + h3, 103 + h4, 104 + h5, 105 + h6 { 106 + text-transform: uppercase; 107 + margin: 0 0 10px; 108 + } 109 + h4, 110 + h5, 111 + h6 { 112 + font-weight: normal; 113 + } 114 + p,li { 115 + font-weight: 400; 116 + font-size: 1.2rem; 117 + line-height: 1.5; 118 + margin: 0 0 20px; 119 + } 120 + small { 121 + font-weight: 300; 122 + font-size: 1rem; 123 + color: #575f62 124 + } 125 + img { 126 + height: auto; 127 + max-width: 100%; 128 + vertical-align: bottom; 129 + } 130 + 131 + hr{ 132 + border: 0; 133 + height: 4px; 134 + margin: 40px 0; 135 + background: #000; 136 + } 137 + 138 + pre, 139 + code, 140 + samp { 141 + font-family: "quicksand", Consolas, monospace; 142 + font-size: inherit; 143 + } 144 + 145 + pre, 146 + code { 147 + background-color: #222426; 148 + border-radius: 3px; 149 + } 150 + 151 + pre { 152 + margin-top: 0; 153 + margin-bottom: 1rem; 154 + overflow-x: scroll; 155 + padding: 1rem; 156 + } 157 + 158 + .example { 159 + border-bottom-left-radius: 0; 160 + border-bottom-right-radius: 0; 161 + background-color: #1b1d1e; 162 + position: relative; 163 + padding: 2rem 1rem; 164 + } 165 + 166 + .example-title { 167 + position: absolute; 168 + top: 0; 169 + right: 0; 170 + background-color: #222426; 171 + padding: 0 1rem; 172 + border-top-right-radius: 3px; 173 + border-bottom-left-radius: 3px; 174 + } 175 + .example + pre { 176 + border-top-left-radius: 0; 177 + border-top-right-radius: 0; 178 + /*border: 1px solid #ccc;*/ 179 + /*border-top: 0;*/ 180 + } 181 + pre { 182 + margin-bottom: 2rem; 183 + } 184 + 185 + .site-header { 186 + background-image: url("img/banner.png"); 187 + background-color: #008037; 188 + background-repeat: no-repeat; 189 + background-position: center; 190 + } 191 + 192 + @media (prefers-color-scheme: dark) { 193 + .site-header { 194 + background-color: #008037; 195 + } 196 + } 197 + 198 + /*===== Titles =====*/ 199 + .site-title { 200 + font-family: 'Righteous',helvetica,sans-serif; 201 + font-size: 26px; 202 + color: #069780; 203 + background-color: rgba(20, 20, 20, 0.5); 204 + line-height: 1.5em; 205 + position: relative; 206 + z-index: 12; 207 + letter-spacing: 4px; 208 + margin-bottom: 120px; 209 + } 210 + .site-title a { 211 + position: fixed; 212 + padding: 10px; 213 + } 214 + .site-title a, 215 + .site-title a:visited { color: #28675d; } 216 + .site-title a:hover, 217 + .site-title a:active { 218 + color: #069780; 219 + background-color: rgba(20, 20, 20, 0.5); 220 + opacity: 0.8; 221 + } 222 + .site-title div { display: inline; } 223 + .site-tagline { 224 + clear: both; 225 + margin-bottom: 40px; 226 + width: 100%; 227 + background-color: rgba(20, 20, 20, 0.5); 228 + padding: 10px; 229 + } 230 + .site-tagline p { 231 + color: #e1e1e1; 232 + font-size: 21px; 233 + text-align: left; 234 + width: 90%; 235 + } 236 + .site-tagline a, 237 + .site-tagline a:visited { color: #28675d; } 238 + .site-tagline a:hover { 239 + color: #298db0; 240 + } 241 + /*=================================*/ 242 + /* Language Styles 243 + /*=================================*/ 244 + .languages { 245 + position: relative; 246 + z-index: 1; 247 + float: right; 248 + -webkit-transition: -webkit-transform 0.5s; 249 + -moz-transition: -moz-transform 0.5s; 250 + transition: transform 0.5s; 251 + } 252 + .languages ul { 253 + list-style: none; 254 + margin: 0; 255 + padding: 0; 256 + } 257 + .languages ul li { 258 + display: inline-block; 259 + margin: 0; 260 + } 261 + .languages ul li a { 262 + color: #e1e1e1; 263 + font-weight: bold; 264 + font-size: 14px; 265 + line-height: 14px; 266 + } 267 + .languages ul li a:hover { 268 + color: #28675d; 269 + } 270 + 271 + .languages ul li.active a { 272 + color: #e1e1e1; 273 + } 274 + /*=================================*/ 275 + /* Navigation Styles 276 + /*=================================*/ 277 + .cd-nav-trigger { 278 + position: fixed; 279 + z-index: 999; 280 + right: 20px; 281 + top: 34px; 282 + height: 54px; 283 + width: 54px; 284 + background-color: #727272; 285 + border-radius: 50%; 286 + /* image replacement */ 287 + overflow: hidden; 288 + text-indent: 100%; 289 + white-space: nowrap; 290 + -webkit-transition: -webkit-transform 0.5s; 291 + -moz-transition: -moz-transform 0.5s; 292 + transition: transform 0.5s; 293 + } 294 + .cd-nav-trigger .cd-nav-icon { 295 + /* icon created in CSS */ 296 + position: absolute; 297 + z-index: 12; 298 + left: 50%; 299 + top: 50%; 300 + bottom: auto; 301 + right: auto; 302 + -webkit-transform: translateX(-50%) translateY(-50%); 303 + -moz-transform: translateX(-50%) translateY(-50%); 304 + -ms-transform: translateX(-50%) translateY(-50%); 305 + -o-transform: translateX(-50%) translateY(-50%); 306 + transform: translateX(-50%) translateY(-50%); 307 + width: 22px; 308 + height: 2px; 309 + background-color: #181a1b; 310 + } 311 + .cd-nav-trigger .cd-nav-icon::before, .cd-nav-trigger .cd-nav-icon:after { 312 + /* upper and lower lines of the menu icon */ 313 + content: ''; 314 + position: absolute; 315 + top: 0; 316 + right: 0; 317 + width: 100%; 318 + height: 100%; 319 + background-color: inherit; 320 + /* Force Hardware Acceleration in WebKit */ 321 + -webkit-transform: translateZ(0); 322 + -moz-transform: translateZ(0); 323 + -ms-transform: translateZ(0); 324 + -o-transform: translateZ(0); 325 + transform: translateZ(0); 326 + -webkit-backface-visibility: hidden; 327 + backface-visibility: hidden; 328 + -webkit-transition: -webkit-transform 0.5s, width 0.5s, top 0.3s; 329 + -moz-transition: -moz-transform 0.5s, width 0.5s, top 0.3s; 330 + transition: transform 0.5s, width 0.5s, top 0.3s; 331 + } 332 + .cd-nav-trigger .cd-nav-icon::before { 333 + -webkit-transform-origin: right top; 334 + -moz-transform-origin: right top; 335 + -ms-transform-origin: right top; 336 + -o-transform-origin: right top; 337 + transform-origin: right top; 338 + -webkit-transform: translateY(-6px); 339 + -moz-transform: translateY(-6px); 340 + -ms-transform: translateY(-6px); 341 + -o-transform: translateY(-6px); 342 + transform: translateY(-6px); 343 + } 344 + .cd-nav-trigger .cd-nav-icon::after { 345 + -webkit-transform-origin: right bottom; 346 + -moz-transform-origin: right bottom; 347 + -ms-transform-origin: right bottom; 348 + -o-transform-origin: right bottom; 349 + transform-origin: right bottom; 350 + -webkit-transform: translateY(6px); 351 + -moz-transform: translateY(6px); 352 + -ms-transform: translateY(6px); 353 + -o-transform: translateY(6px); 354 + transform: translateY(6px); 355 + } 356 + .no-touch .cd-nav-trigger:hover .cd-nav-icon::after { 357 + top: 2px; 358 + } 359 + .no-touch .cd-nav-trigger:hover .cd-nav-icon::before { 360 + top: -2px; 361 + } 362 + .cd-nav-trigger svg { 363 + position: absolute; 364 + top: 0; 365 + left: 0; 366 + } 367 + .cd-nav-trigger circle { 368 + /* circle border animation */ 369 + -webkit-transition: stroke-dashoffset 0.4s 0s; 370 + -moz-transition: stroke-dashoffset 0.4s 0s; 371 + transition: stroke-dashoffset 0.4s 0s; 372 + } 373 + .navigation-is-open .cd-nav-trigger { 374 + /* rotate trigger when navigation becomes visible */ 375 + -webkit-transform: rotate(180deg); 376 + -moz-transform: rotate(180deg); 377 + -ms-transform: rotate(180deg); 378 + -o-transform: rotate(180deg); 379 + transform: rotate(180deg); 380 + } 381 + .navigation-is-open .cd-nav-trigger .cd-nav-icon::after, 382 + .navigation-is-open .cd-nav-trigger .cd-nav-icon::before { 383 + /* animate arrow --> from hamburger to arrow */ 384 + width: 50%; 385 + -webkit-transition: -webkit-transform 0.5s, width 0.5s; 386 + -moz-transition: -moz-transform 0.5s, width 0.5s; 387 + transition: transform 0.5s, width 0.5s; 388 + } 389 + .navigation-is-open .cd-nav-trigger .cd-nav-icon::before { 390 + -webkit-transform: rotate(45deg); 391 + -moz-transform: rotate(45deg); 392 + -ms-transform: rotate(45deg); 393 + -o-transform: rotate(45deg); 394 + transform: rotate(45deg); 395 + } 396 + .navigation-is-open .cd-nav-trigger .cd-nav-icon::after { 397 + -webkit-transform: rotate(-45deg); 398 + -moz-transform: rotate(-45deg); 399 + -ms-transform: rotate(-45deg); 400 + -o-transform: rotate(-45deg); 401 + transform: rotate(-45deg); 402 + } 403 + .no-touch .navigation-is-open .cd-nav-trigger:hover .cd-nav-icon::after, .no-touch .navigation-is-open .cd-nav-trigger:hover .cd-nav-icon::before { 404 + top: 0; 405 + } 406 + .navigation-is-open .cd-nav-trigger circle { 407 + stroke-dashoffset: 0; 408 + -webkit-transition: stroke-dashoffset 0.4s 0.3s; 409 + -moz-transition: stroke-dashoffset 0.4s 0.3s; 410 + transition: stroke-dashoffset 0.4s 0.3s; 411 + } 412 + .cd-nav { 413 + position: fixed; 414 + z-index: 12; 415 + top: 0; 416 + left: 0; 417 + height: 100%; 418 + width: 100%; 419 + background-color: #212425; 420 + visibility: hidden; 421 + -webkit-transition: visibility 0s 0.7s; 422 + -moz-transition: visibility 0s 0.7s; 423 + transition: visibility 0s 0.7s; 424 + } 425 + .cd-nav .cd-navigation-wrapper { 426 + /* all navigation content */ 427 + padding: 20px; 428 + height: 100%; 429 + overflow-y: auto; 430 + -webkit-overflow-scrolling: touch; 431 + 432 + /* Force Hardware Acceleration in WebKit */ 433 + -webkit-transform: translateZ(0); 434 + -moz-transform: translateZ(0); 435 + -ms-transform: translateZ(0); 436 + -o-transform: translateZ(0); 437 + transform: translateZ(0); 438 + -webkit-backface-visibility: hidden; 439 + backface-visibility: hidden; 440 + -webkit-transform: translateX(-50%); 441 + -moz-transform: translateX(-50%); 442 + -ms-transform: translateX(-50%); 443 + -o-transform: translateX(-50%); 444 + transform: translateX(-50%); 445 + -webkit-transition: -webkit-transform 0.7s; 446 + -moz-transition: -moz-transform 0.7s; 447 + transition: transform 0.7s; 448 + -webkit-transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 449 + -moz-transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 450 + transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78); 451 + } 452 + .navigation-is-open .cd-nav { 453 + visibility: visible; 454 + -webkit-transition: visibility 0s 0s; 455 + -moz-transition: visibility 0s 0s; 456 + transition: visibility 0s 0s; 457 + } 458 + .navigation-is-open .cd-nav .cd-navigation-wrapper { 459 + -webkit-transform: translateX(0); 460 + -moz-transform: translateX(0); 461 + -ms-transform: translateX(0); 462 + -o-transform: translateX(0); 463 + transform: translateX(0); 464 + -webkit-transition: -webkit-transform 0.5s; 465 + -moz-transition: -moz-transform 0.5s; 466 + transition: transform 0.5s; 467 + -webkit-transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 468 + -moz-transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 469 + transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78); 470 + } 471 + 472 + .cd-nav .cd-primary-nav { 473 + margin-top: 90px; 474 + } 475 + .cd-nav .cd-primary-nav a { 476 + font-size: 21px; 477 + display: inline-block; 478 + } 479 + .cd-nav .cd-primary-nav a.selected { 480 + color: #b6b6b6; 481 + } 482 + .no-touch .cd-nav .cd-primary-nav a:hover { 483 + color: #b6b6b6; 484 + } 485 + .cd-nav .cd-contact-info { 486 + margin-top: 20px; 487 + margin-bottom: 20px; 488 + } 489 + .cd-nav .cd-contact-info li { 490 + margin-bottom: 0.5em; 491 + line-height: 1.2; 492 + color: rgba(24, 26, 27, 0.3); 493 + } 494 + .cd-nav .cd-contact-info a { 495 + color: #e1e1e1; 496 + } 497 + .cd-nav .cd-contact-info a:hover { 498 + color: #82888b; 499 + } 500 + .cd-nav .cd-contact-info span { 501 + display: block; 502 + } 503 + .cd-nav .cd-contact-info li, 504 + .cd-nav .cd-contact-info a, 505 + .cd-nav .cd-contact-info span { 506 + font-size: 18px; 507 + } 508 + 509 + .cd-nav .cd-contact-socials li { 510 + line-height: 1.8; 511 + } 512 + .cd-nav .cd-contact-socials a { 513 + color: #e1e1e1; 514 + text-transform: uppercase; 515 + letter-spacing: 2px; 516 + font-size: 16px 517 + } 518 + .cd-nav .cd-contact-socials a:hover { 519 + color: #82888b; 520 + } 521 + .no-js main { 522 + height: auto; 523 + overflow: visible; 524 + } 525 + 526 + .no-js .cd-nav { 527 + position: static; 528 + visibility: visible; 529 + } 530 + .no-js .cd-nav .cd-navigation-wrapper { 531 + height: auto; 532 + overflow: visible; 533 + padding: 100px 5%; 534 + -webkit-transform: translateX(0); 535 + -moz-transform: translateX(0); 536 + -ms-transform: translateX(0); 537 + -o-transform: translateX(0); 538 + transform: translateX(0); 539 + } 540 + /*===== Projects Feed =====*/ 541 + .projects-feed { 542 + clear: both; 543 + } 544 + .projects-feed .project { 545 + background: #181a1b; 546 + opacity: 0; 547 + overflow: hidden; 548 + position: relative; 549 + transition: opacity 0.25s ease-in 0.1s; 550 + width: 100%; 551 + } 552 + .no-js .projects-feed .project, 553 + .projects-feed .loaded { 554 + opacity: 1; 555 + } 556 + .projects-feed .project .overlay { 557 + background: #181a1b; 558 + background: rgba(24, 26, 27, 0.6); 559 + height: 100%; 560 + opacity: 0; 561 + position: absolute; 562 + top: 0; right: 0; bottom: 0; left: 0; 563 + -webkit-transition: opacity 0.15s ease-in-out; 564 + transition: opacity 0.15s ease-in-out; 565 + width: 100%; 566 + } 567 + .no-touch .projects-feed .project a:hover .overlay { 568 + opacity: 1; 569 + } 570 + .projects-feed .project-content-container { 571 + position: relative; 572 + width: 100%; 573 + padding-bottom: 100%; 574 + } 575 + .projects-feed .project-content-container::before { 576 + border-left: 22px solid transparent; 577 + border-right: 22px solid transparent; 578 + border-bottom: 22px solid #181a1b; 579 + content: ''; 580 + display: block; 581 + height: 0; 582 + margin: auto; 583 + position: absolute; 584 + top: -22px; left: 0; right: 0; 585 + width: 0; 586 + } 587 + .projects-feed .project-content { 588 + position: absolute; 589 + top: 0; right: 0; bottom: 0; left: 0; 590 + padding: 20px; 591 + } 592 + .table { 593 + display: table; 594 + height: 100%; 595 + width: 100%; 596 + } 597 + .table-cell { 598 + display: table-cell; 599 + height: 100%; 600 + width: 100%; 601 + vertical-align: middle; 602 + } 603 + .thumbnail-title { 604 + color: #e1e1e1; 605 + font-family: 'Righteous',helvetica,sans-serif; 606 + font-size: 21px; 607 + margin: 0 auto 10px auto; 608 + text-align: left; 609 + letter-spacing: 4px; 610 + text-transform:uppercase; 611 + max-width: 700px; 612 + text-align: center; 613 + width: 75%; 614 + word-wrap: break-word; 615 + } 616 + .thumbnail-description { 617 + color: #e1e1e1; 618 + font-family: 'quicksand', Arial, sans-serif; 619 + font-size: 16px; 620 + margin: 0 auto; 621 + max-height: 5em; 622 + max-width: 360px; 623 + text-align: left; 624 + width: 75%; 625 + text-transform: uppercase; 626 + } 627 + /*===== Project Assets =====*/ 628 + .thumb img { 629 + width: 100%; 630 + height: auto; 631 + } 632 + div.image, 633 + div.audio, 634 + div.video { 635 + text-align: center; 636 + transition: opacity 0.25s ease-in 0.1s; 637 + } 638 + .no-js div.image, 639 + .no-js div.audio, 640 + .no-js div.video, 641 + div.loaded { opacity: 1; } 642 + div.image img { width: 100%; } 643 + 644 + .view { 645 + cursor: -webkit-zoom-in; 646 + cursor: -moz-zoom-in; 647 + } 648 + /*===== Project Content =====*/ 649 + .project-meta { 650 + font-family: 'quicksand', Arial, sans-serif; 651 + font-size: 14px; 652 + color: #3e4446; 653 + margin-top: 28px; 654 + } 655 + .project-meta > span::before { 656 + content: "\002F"; 657 + margin: 0 5px 0 3px; 658 + } 659 + .project-meta > span:first-child::before { content: none; } 660 + .project-meta a, 661 + .project-meta a:visited { 662 + color: #3e4446; 663 + transition: opacity 0.2s ease-in-out; 664 + } 665 + .project-meta a:hover { color: #28675d; } 666 + .project-meta .tags { margin-top: 17px; } 667 + .project-meta .tags a { margin-left: 10px; } 668 + .project-meta .tags a:first-child { margin-left: 0; } 669 + 670 + /*===== Paginations =====*/ 671 + nav[role="navigation"] { 672 + text-align: center; 673 + } 674 + 675 + .cd-pagination { 676 + margin: 2em auto 2em; 677 + text-align: center; 678 + } 679 + .cd-pagination li { 680 + /* hide numbers on small devices */ 681 + display: none; 682 + margin: 0 .2em; 683 + } 684 + .cd-pagination li.button { 685 + /* make sure prev next buttons are visible */ 686 + display: inline-block; 687 + } 688 + .cd-pagination a, .cd-pagination span { 689 + display: inline-block; 690 + -webkit-user-select: none; 691 + -moz-user-select: none; 692 + -ms-user-select: none; 693 + user-select: none; 694 + /* use padding and font-size to change buttons size */ 695 + padding: .6em .8em; 696 + font-size: 18p 697 + x; 698 + 699 + } 700 + .cd-pagination a { 701 + border: 1px solid #26292b; 702 + } 703 + .no-touch .cd-pagination a:hover { 704 + background-color: #1f2223; 705 + } 706 + .cd-pagination a:active { 707 + /* click effect */ 708 + -webkit-transform: scale(0.9); 709 + -moz-transform: scale(0.9); 710 + -ms-transform: scale(0.9); 711 + -o-transform: scale(0.9); 712 + transform: scale(0.9); 713 + } 714 + .cd-pagination a.disabled { 715 + /* button disabled */ 716 + color: rgba(37, 51, 70, 0.4); 717 + pointer-events: none; 718 + } 719 + .cd-pagination a.disabled::before, .cd-pagination a.disabled::after { 720 + opacity: .4; 721 + } 722 + .cd-pagination .button:first-of-type a::before { 723 + content: '\00ab '; 724 + } 725 + .cd-pagination .button:last-of-type a::after { 726 + content: ' \00bb'; 727 + } 728 + .cd-pagination .current { 729 + /* selected number */ 730 + background-color: #28675d; 731 + border-color: #28675d; 732 + color: #181a1b; 733 + pointer-events: none; 734 + } 735 + @media only screen and (min-width: 768px) { 736 + .cd-pagination li { 737 + display: inline-block; 738 + } 739 + } 740 + @media only screen and (min-width: 1170px) { 741 + .cd-pagination { 742 + margin: 4em auto 4em; 743 + } 744 + } 745 + 746 + .cd-pagination.custom-icons .button a { 747 + position: relative; 748 + 749 + } 750 + .cd-pagination.custom-icons .button:first-of-type a { 751 + padding-left: 2.4em; 752 + } 753 + .cd-pagination.custom-icons .button:last-of-type a { 754 + padding-right: 2.4em; 755 + } 756 + .cd-pagination.custom-icons .button:first-of-type a::before, 757 + .cd-pagination.custom-icons .button:last-of-type a::after { 758 + content: ''; 759 + position: absolute; 760 + display: inline-block; 761 + /* set size for custom icons */ 762 + width: 16px; 763 + height: 16px; 764 + top: 50%; 765 + /* set margin-top = icon height/2 */ 766 + margin-top: -8px; 767 + background: transparent url("img/cd-icon-arrow.svg") no-repeat center center; 768 + } 769 + 770 + .cd-pagination.custom-icons .button-main a { 771 + background: transparent url("img/portfolio-icon.svg") no-repeat center center; 772 + } 773 + 774 + .cd-pagination.custom-icons .button-main a:hover { 775 + background: transparent url("img/portfolio-icon.svg") no-repeat center center; 776 + border:1px solid #212425; 777 + -webkit-transition: border 1s; 778 + -moz-transition: border 1s; 779 + transition: border 1s; 780 + } 781 + 782 + .button-submit a:hover { 783 + border: 1px solid #212425; 784 + -webkit-transition: border 1s; 785 + -moz-transition: border 1s; 786 + transition: border 1s; 787 + } 788 + 789 + .button-submit i { 790 + font-style: normal; 791 + } 792 + 793 + .cd-pagination.custom-icons .button:first-of-type a::before { 794 + left: .8em; 795 + } 796 + .cd-pagination.custom-icons .button:last-of-type a::after { 797 + right: .8em; 798 + -webkit-transform: rotate(180deg); 799 + -moz-transform: rotate(180deg); 800 + -ms-transform: rotate(180deg); 801 + -o-transform: rotate(180deg); 802 + transform: rotate(180deg); 803 + } 804 + 805 + .cd-pagination.animated-buttons a, 806 + .cd-pagination.animated-buttons span { 807 + padding: 0 1.4em; 808 + height: 50px; 809 + line-height: 50px; 810 + overflow: hidden; 811 + } 812 + .cd-pagination.animated-buttons .button a { 813 + position: relative; 814 + padding: 0 2em; 815 + } 816 + .cd-pagination.animated-buttons .button:first-of-type a::before, 817 + .cd-pagination.animated-buttons .button:last-of-type a::after { 818 + left: 50%; 819 + -webkit-transform: translateX(-50%); 820 + -moz-transform: translateX(-50%); 821 + -ms-transform: translateX(-50%); 822 + -o-transform: translateX(-50%); 823 + transform: translateX(-50%); 824 + right: auto; 825 + -webkit-transition: -webkit-transform 0.3s; 826 + -moz-transition: -moz-transform 0.3s; 827 + transition: transform 0.3s; 828 + } 829 + 830 + .cd-pagination.animated-buttons .button:last-of-type a::after { 831 + -webkit-transform: translateX(-50%) rotate(180deg); 832 + -moz-transform: translateX(-50%) rotate(180deg); 833 + -ms-transform: translateX(-50%) rotate(180deg); 834 + -o-transform: translateX(-50%) rotate(180deg); 835 + transform: translateX(-50%) rotate(180deg); 836 + } 837 + .cd-pagination.animated-buttons i { 838 + display: block; 839 + height: 100%; 840 + -webkit-transform: translateY(100%); 841 + -moz-transform: translateY(100%); 842 + -ms-transform: translateY(100%); 843 + -o-transform: translateY(100%); 844 + transform: translateY(100%); 845 + -webkit-transition: -webkit-transform 0.3s; 846 + -moz-transition: -moz-transform 0.3s; 847 + transition: transform 0.3s; 848 + font-style: normal; 849 + 850 + } 851 + 852 + .no-touch .cd-pagination.animated-buttons .button a:hover i { 853 + -webkit-transform: translateY(0); 854 + -moz-transform: translateY(0); 855 + -ms-transform: translateY(0); 856 + -o-transform: translateY(0); 857 + transform: translateY(0); 858 + } 859 + 860 + .no-touch .cd-pagination.animated-buttons .button:first-of-type a:hover::before { 861 + -webkit-transform: translateX(-50%) translateY(-50px); 862 + -moz-transform: translateX(-50%) translateY(-50px); 863 + -ms-transform: translateX(-50%) translateY(-50px); 864 + -o-transform: translateX(-50%) translateY(-50px); 865 + transform: translateX(-50%) translateY(-50px); 866 + } 867 + 868 + .no-touch .cd-pagination.animated-buttons .button:last-of-type a:hover::after { 869 + -webkit-transform: translateX(-50%) rotate(180deg) translateY(50px); 870 + -moz-transform: translateX(-50%) rotate(180deg) translateY(50px); 871 + -ms-transform: translateX(-50%) rotate(180deg) translateY(50px); 872 + -o-transform: translateX(-50%) rotate(180deg) translateY(50px); 873 + transform: translateX(-50%) rotate(180deg) translateY(50px); 874 + } 875 + 876 + 877 + /*===== News =====*/ 878 + .news .blog_item:nth-child(odd) { background: #28675d; } 879 + .news .blog_item:nth-child(even) { background: #1b1d1e; } 880 + .blog_item { 881 + padding: 80px 50px; 882 + position: relative; 883 + transition: all 0.5s; 884 + cursor: pointer; 885 + } 886 + .blog_item h1, .blog_item h5 { 887 + transition: all 0.5s; 888 + } 889 + .blog_item h5 { 890 + font-size: 0.7em; 891 + } 892 + .blog_item .abs_bg { 893 + display: block; 894 + z-index: 1; 895 + position: absolute; 896 + left: 0; 897 + top: 0; 898 + width: 100%; 899 + height: 100%; 900 + background-size: cover; 901 + transition: all 0.5s; 902 + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 903 + filter: alpha(opacity=0); 904 + -moz-opacity: 0; 905 + -khtml-opacity: 0; 906 + opacity: 0; 907 + } 908 + .blog_item .blog_item_inner { 909 + z-index: 2; 910 + position: relative; 911 + } 912 + .blog_item .full_link { 913 + z-index: 3; 914 + position: absolute; 915 + width: 100%; 916 + height: 100%; 917 + top:0; 918 + left:0; 919 + } 920 + .blog_item:hover { 921 + color: #28675d; 922 + } 923 + .blog_item:nth-child(odd):hover { 924 + background-color: #2c2c2c; 925 + } 926 + .blog_item:nth-child(even):hover { 927 + background-color: #000; 928 + } 929 + .blog_item:hover h1, .blog_item:hover h5 { 930 + color: #28675d; 931 + } 932 + .blog_item:hover .abs_bg { 933 + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 934 + filter: alpha(opacity=50); 935 + -moz-opacity: 0.5; 936 + -khtml-opacity: 0.5; 937 + opacity: 0.5; 938 + } 939 + .blog_item h1 { 940 + overflow: hidden; 941 + width: 100%; 942 + font-size: 1.4rem; 943 + } 944 + #blog .blog_item h1 { 945 + overflow: hidden; 946 + } 947 + /*===== Footer =====*/ 948 + .site-footer { padding: 40px 200px;} 949 + 950 + /*=================================*/ 951 + /* Structure 952 + /*=================================*/ 953 + 954 + .site-container { 955 + margin: 0 auto; 956 + } 957 + .site-header, 958 + .page-desc { 959 + padding: 40px 20px; 960 + width: 100%; 961 + } 962 + 963 + .page-desc img { 964 + margin:40px 0; 965 + } 966 + .page-desc ul { 967 + margin: 60px 0; 968 + } 969 + .page-desc li { 970 + list-style-type: disc; 971 + margin-left: 60px; 972 + } 973 + .row { 974 + margin-top: 40px; 975 + } 976 + .site-content { 977 + clear: both; 978 + } 979 + .site-content figure{ 980 + margin:0; 981 + padding: 0; 982 + } 983 + .site-footer { padding: 40px 20px; } 984 + .right { 985 + float: right; 986 + margin: 0px 0px 40px 40px ; 987 + } 988 + .left { 989 + float: left; 990 + margin: 0px 40px 40px 0px ; 991 + } 992 + 993 + /*=================================*/ 994 + /* Grid System 995 + /*=================================*/ 996 + 997 + .row { 998 + overflow: hidden; 999 + } 1000 + .large-1, .large-2, .large-3, .large-4 { 1001 + width: 100%; 1002 + margin-bottom: 40px; 1003 + } 1004 + .large-1:nth-child(1n), .large-2:nth-child(1n), .large-3:nth-child(1n), .large-4:nth-child(1n) { 1005 + float: left; 1006 + } 1007 + .large-1:last-child, .large-2:last-child, .large-3:last-child, .large-4:last-child{ 1008 + float: right; 1009 + } 1010 + 1011 + 1012 + 1013 + /*=================================*/ 1014 + /* Footer Styles 1015 + /*=================================*/ 1016 + .site-footer { 1017 + color: #e1e1e1; 1018 + font-family: 'quicksand', Arial, sans-serif; 1019 + } 1020 + .site-footer p { margin: 0; font-size: 16px;display: inline; color: #e1e1e1;} 1021 + .site-footer a, 1022 + .site-footer a:visited { color: #e1e1e1; } 1023 + .site-footer a:hover { color: #28675d; } 1024 + 1025 + /*=================================*/ 1026 + /* Media Queries 1027 + /*=================================*/ 1028 + 1029 + 1030 + 1031 + @media only screen and (min-width: 401px) { 1032 + 1033 + /*===== Titles =====*/ 1034 + .site-tagline p { 1035 + font-size: 28px; 1036 + } 1037 + /*===== Navigations =====*/ 1038 + .cd-nav-trigger { 1039 + top: 34px; 1040 + right: 40px; 1041 + } 1042 + .cd-nav .cd-navigation-wrapper { 1043 + padding: 40px; 1044 + } 1045 + /*===== Projects =====*/ 1046 + .projects-feed .thumb, 1047 + .projects-feed .project-content-container { 1048 + float: left; 1049 + width: 50%; 1050 + } 1051 + .projects-feed .project-content-container { padding-bottom: 50%; } 1052 + .projects-feed .project:nth-child(2n) .thumb { float: right; } 1053 + /* Thumb on the left */ 1054 + .projects-feed .project:nth-child(2n+1) .project-content-container::before { 1055 + border-top: 22px solid transparent; 1056 + border-left: none; 1057 + border-bottom: 22px solid transparent; 1058 + border-right: 22px solid #181a1b; 1059 + left: -22px; top: 0; bottom: 0; right: initial; 1060 + } 1061 + /* Thumb on the right */ 1062 + .projects-feed .project:nth-child(2n) .project-content-container::before { 1063 + border-top: 22px solid transparent; 1064 + border-right: none; 1065 + border-bottom: 22px solid transparent; 1066 + border-left: 22px solid #181a1b; 1067 + left: initial; top: 0; bottom: 0; right: -22px; 1068 + } 1069 + /*===== Footer =====*/ 1070 + .site-footer { padding: 40px } 1071 + 1072 + } 1073 + 1074 + @media only screen and (min-width: 600px) { 1075 + 1076 + /*===== Structure s =====*/ 1077 + .site-header, 1078 + .page-desc { 1079 + padding: 60px; 1080 + } 1081 + .page-desc h1, 1082 + .page-desc h2, 1083 + .page-desc h3{ 1084 + font-size: 2.8rem; 1085 + } 1086 + /*===== Titles =====*/ 1087 + .site-title { 1088 + margin-bottom: 120px; 1089 + } 1090 + .site-tagline { 1091 + margin-bottom: 60px; 1092 + } 1093 + .site-tagline p { 1094 + font-size: 36px; 1095 + } 1096 + /*===== Navigations =====*/ 1097 + .cd-nav-trigger { 1098 + top: 52px; 1099 + right: 60px; 1100 + } 1101 + .cd-nav .cd-navigation-wrapper { 1102 + padding: 60px 59px 60px calc(1px + 59px); 1103 + } 1104 + .cd-nav .cd-navigation-wrapper::after { 1105 + clear: both; 1106 + content: ""; 1107 + display: table; 1108 + } 1109 + .cd-nav .cd-half-block { 1110 + width: 50%; 1111 + float: left; 1112 + } 1113 + .cd-nav .cd-primary-nav { 1114 + margin-top: 160px; 1115 + } 1116 + .cd-nav .cd-primary-nav a { 1117 + font-size: 36px; 1118 + } 1119 + .cd-nav .cd-contact-info { 1120 + margin-top: 160px; 1121 + margin-bottom: 80px; 1122 + text-align: right; 1123 + } 1124 + .cd-nav .cd-contact-info li { 1125 + margin-bottom: 2em; 1126 + } 1127 + .cd-nav .cd-contact-socials { 1128 + text-align: right; 1129 + } 1130 + /*===== Blog =====*/ 1131 + .blog_item h1 { 1132 + font-size: 2rem; 1133 + width: 75%; 1134 + } 1135 + .blog_item h5 { 1136 + font-size: 0.8rem; 1137 + } 1138 + .blog_item { 1139 + padding: 100px 50px; 1140 + } 1141 + /*===== Footer =====*/ 1142 + .site-footer { padding: 40px 60px; } 1143 + 1144 + 1145 + } 1146 + 1147 + @media only screen and (min-width: 801px) { 1148 + 1149 + /*===== Structures =====*/ 1150 + .site-header, 1151 + .page-desc { 1152 + padding: 80px; 1153 + } 1154 + .row { 1155 + margin-top: 80px; 1156 + } 1157 + /*===== Titles =====*/ 1158 + .site-title { 1159 + margin-bottom: 160px; 1160 + } 1161 + .site-tagline { 1162 + margin-bottom: 80px; 1163 + } 1164 + .site-tagline p { 1165 + font-size: 42px; 1166 + } 1167 + /*===== Navigations =====*/ 1168 + .cd-nav-trigger { 1169 + top: 74px; 1170 + right: 80px; 1171 + } 1172 + .cd-nav .cd-navigation-wrapper { 1173 + padding: 60px 79px 60px calc(1px + 79px); 1174 + } 1175 + .cd-nav .cd-primary-nav a { 1176 + font-size: 42px; 1177 + } 1178 + .cd-nav .cd-contact-info li, 1179 + .cd-nav .cd-contact-info a, 1180 + .cd-nav .cd-contact-info span { 1181 + font-size: 21px; 1182 + } 1183 + /*===== Footer =====*/ 1184 + .site-footer { padding: 40px 80px; } 1185 + .footer-text { float: left; } 1186 + .footer-misc { float: right; } 1187 + /*===== Projects =====*/ 1188 + .thumbnail-title { 1189 + font-size: 28px; 1190 + } 1191 + .is_page .projects-feed { margin-top: 150px; } 1192 + .projects-feed .project { float: left; } 1193 + .projects-feed .project:nth-child(3n+1), 1194 + .projects-feed .project:nth-child(3n+3) { 1195 + /*max-width: 800px;*/ 1196 + width: 66.6667%; 1197 + } 1198 + .projects-feed .project:nth-child(3n+2) { 1199 + float: right; 1200 + /*max-width: 400px;*/ 1201 + width: 33.3333%; 1202 + } 1203 + .projects-feed .project:nth-child(3n+1) .thumb { float: left; } 1204 + .projects-feed .project:nth-child(3n+3) .thumb { float: right; } 1205 + .projects-feed .project:nth-child(3n+2) .thumb, 1206 + .projects-feed .project:nth-child(3n+2) .project-content-container { 1207 + float: none; 1208 + width: 100%; 1209 + } 1210 + .projects-feed .project:nth-child(3n+2) .project-content-container { padding-bottom: 100%; } 1211 + /* Thumb on the left */ 1212 + .projects-feed .project:nth-child(3n+1) .project-content-container::before { 1213 + border-top: 22px solid transparent; 1214 + border-left: none; 1215 + border-bottom: 22px solid transparent; 1216 + border-right: 22px solid #181a1b; 1217 + left: -22px; top: 0; bottom: 0; right: initial; 1218 + } 1219 + /* Thumb on the top */ 1220 + .projects-feed .project:nth-child(3n+2) .project-content-container::before { 1221 + border-left: 22px solid transparent; 1222 + border-top: none; 1223 + border-right: 22px solid transparent; 1224 + border-bottom: 22px solid #181a1b; 1225 + left: 0; top: -22px; bottom: initial; right: 0; 1226 + } 1227 + /* Thumb on the right */ 1228 + .projects-feed .project:nth-child(3n+3) .project-content-container::before { 1229 + border-top: 22px solid transparent; 1230 + border-right: none; 1231 + border-bottom: 22px solid transparent; 1232 + border-left: 22px solid #181a1b; 1233 + left: initial; top: 0; bottom: 0; right: -22px; 1234 + } 1235 + /*===== Paginations =====*/ 1236 + 1237 + /*===== Grid =====*/ 1238 + .large-1 { 1239 + width: 100%; 1240 + } 1241 + 1242 + .large-1:nth-child(1n) { 1243 + float: left; 1244 + } 1245 + 1246 + .large-1:last-child { 1247 + float: right; 1248 + } 1249 + 1250 + .large-2 { 1251 + width: 40%; 1252 + } 1253 + 1254 + .large-2:nth-child(1n) { 1255 + float: left; 1256 + } 1257 + 1258 + .large-2:last-child { 1259 + float: right; 1260 + } 1261 + 1262 + .large-3 { 1263 + width: 30%; 1264 + } 1265 + 1266 + .large-3:nth-child(1n) { 1267 + float: left; 1268 + } 1269 + 1270 + .large-3:last-child { 1271 + float: right; 1272 + } 1273 + 1274 + .large-4 { 1275 + width: 20%; 1276 + } 1277 + 1278 + .large-4:nth-child(1n) { 1279 + float: left; 1280 + } 1281 + 1282 + .large-4:last-child { 1283 + float: right; 1284 + } 1285 + 1286 + 1287 + } 1288 + 1289 + @media only screen and (min-width: 1200px) { 1290 + 1291 + /*===== Structures =====*/ 1292 + .site-header, 1293 + .page-desc { 1294 + padding: 100px 200px; 1295 + } 1296 + .row { 1297 + margin-top: 120px; 1298 + } 1299 + /*===== Titles =====*/ 1300 + .site-title { 1301 + margin-bottom: 200px; 1302 + } 1303 + .site-tagline { 1304 + margin-bottom: 100px; 1305 + width: 75%; 1306 + } 1307 + .site-tagline p { 1308 + font-size: 48px; 1309 + } 1310 + .site-tagline h1 { 1311 + font-size: 3.2rem; 1312 + } 1313 + .site-tagline h5 { 1314 + font-size: 1.4rem; 1315 + } 1316 + /*===== Navigations =====*/ 1317 + .cd-nav-trigger { 1318 + top: 94px; 1319 + right: 140px; 1320 + } 1321 + .cd-nav .cd-navigation-wrapper { 1322 + padding: 60px 140px 60px calc(58px + 140px); 1323 + } 1324 + .cd-nav .cd-primary-nav a { 1325 + font-size: 54px; 1326 + } 1327 + .cd-nav .cd-contact-info li, 1328 + .cd-nav .cd-contact-info a, 1329 + .cd-nav .cd-contact-info span { 1330 + font-size: 24px; 1331 + } 1332 + /*===== Projects =====*/ 1333 + .thumbnail-title { 1334 + font-size: 36px; 1335 + } 1336 + /*===== Paginations =====*/ 1337 + 1338 + /*===== Blog =====*/ 1339 + .blog_item h1 { 1340 + width: 75%; 1341 + font-size: 3.2rem; 1342 + } 1343 + .blog_item{ 1344 + padding: 200px; 1345 + } 1346 + .blog_item h5 { 1347 + font-size: 1rem; 1348 + } 1349 + /*===== Main Styles =====*/ 1350 + h1 { 1351 + font-size: 3.2rem; 1352 + } 1353 + 1354 + h2 { 1355 + font-size: 2.6rem; 1356 + } 1357 + 1358 + h3 { 1359 + font-size: 2.3rem; 1360 + } 1361 + 1362 + h4 { 1363 + font-size: 1.8rem; 1364 + } 1365 + 1366 + h5 { 1367 + font-size: 1.4rem; 1368 + } 1369 + 1370 + h6 { 1371 + font-size: 1rem; 1372 + } 1373 + 1374 + } 1375 + 1376 + @keyframes fadein { 1377 + from { 1378 + opacity: 0; 1379 + } 1380 + to { 1381 + opacity: 1; 1382 + } 1383 + } 1384 + 1385 + @-moz-keyframes fadein { 1386 + from { 1387 + opacity: 0; 1388 + } 1389 + to { 1390 + opacity: 1; 1391 + } 1392 + } 1393 + 1394 + @-webkit-keyframes fadein { 1395 + from { 1396 + opacity: 0; 1397 + } 1398 + to { 1399 + opacity: 1; 1400 + } 1401 + } 1402 + 1403 + @-ms-keyframes fadein { 1404 + from { 1405 + opacity: 0; 1406 + } 1407 + to { 1408 + opacity: 1; 1409 + } 1410 + } 1411 + 1412 + .project.project-page div.thumb,div.project-content-container { 1413 + width: 50%; 1414 + float: left; 1415 + padding: 10px; 1416 + -webkit-animation: fadein 2s; 1417 + -moz-animation: fadein 2s; 1418 + -ms-animation: fadein 2s; 1419 + -o-animation: fadein 2s; 1420 + animation: fadein 2s; 1421 + } 1422 + 1423 + .project.project-page:not(.active-project) { 1424 + display: none; 1425 + } 1426 + 1427 + .embed { 1428 + position: relative; 1429 + display: block; 1430 + width: 100%; 1431 + padding: 0; 1432 + overflow: hidden; 1433 + } 1434 + 1435 + .embed::before { 1436 + display: block; 1437 + content: ""; 1438 + } 1439 + 1440 + .embed .embed-item, 1441 + .embed iframe, 1442 + .embed embed, 1443 + .embed object, 1444 + .embed video { 1445 + position: absolute; 1446 + top: 0; 1447 + bottom: 0; 1448 + left: 0; 1449 + width: 100%; 1450 + height: 100%; 1451 + border: 0; 1452 + } 1453 + 1454 + .embed-16by9::before { 1455 + padding-top: 56.25%; 1456 + } 1457 + 1458 + .news:not(.active-news-page) { 1459 + display: none; 1460 + } 1461 + 1462 + textarea { 1463 + resize: none; 1464 + } 1465 + 1466 + .input { 1467 + width: 100%; 1468 + padding: 10px; 1469 + } 1470 + 1471 + .input input, 1472 + .input textarea { 1473 + margin: auto; 1474 + width: 50%; 1475 + display: block; 1476 + border-radius: 7px; 1477 + padding: 10px; 1478 + font-family: 'quicksand', Arial, sans-serif; 1479 + } 1480 + 1481 + li.button-submit { 1482 + display: inline-block; 1483 + } 1484 + 1485 + p[data-i18n="[html]about.bio"] div::after, p[data-i18n="[html]about.bio"] p::after { 1486 + content: "\a\a"; 1487 + white-space: pre; 1488 1488 }