Merge pull request #66 from maximevaillancourt/embed-tweets
Allow embedding tweets
This commit is contained in:
		
						commit
						77733c1118
					
				| @ -14,6 +14,11 @@ use_html_extension:  false | |||||||
| # set to `false` to open non-internal links in current tab. | # set to `false` to open non-internal links in current tab. | ||||||
| open_external_links_in_new_tab: true | open_external_links_in_new_tab: true | ||||||
| 
 | 
 | ||||||
|  | # Set to `true` to replace tweet URLs with Twitter embeds. | ||||||
|  | # Note that doing so will negatively the reader's privacy | ||||||
|  | # as their browser will communicate with Twitter's servers. | ||||||
|  | embed_tweets: false | ||||||
|  | 
 | ||||||
| permalink:           pretty | permalink:           pretty | ||||||
| relative_permalinks: false | relative_permalinks: false | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -25,6 +25,14 @@ Of course, you can also link to external websites, like this: [this is a link to | |||||||
| 
 | 
 | ||||||
| [^1]: This is a footnote. For more information about using footnotes, check out the [Markdown Guide](https://www.markdownguide.org/extended-syntax/#footnotes). | [^1]: This is a footnote. For more information about using footnotes, check out the [Markdown Guide](https://www.markdownguide.org/extended-syntax/#footnotes). | ||||||
| 
 | 
 | ||||||
|  | ### Tweet embedding | ||||||
|  | 
 | ||||||
|  | Note: This behavior is disabled by default for privacy reasons. See "Site configuration" section below to enable it. | ||||||
|  | 
 | ||||||
|  | You may include a tweet URL on its own line (like below), and it would be replaced with an official Twitter embed if the site configuration demands it. | ||||||
|  | 
 | ||||||
|  | https://twitter.com/jack/status/20 | ||||||
|  | 
 | ||||||
| ### Site configuration | ### Site configuration | ||||||
| 
 | 
 | ||||||
| Some behavior is configurable by tweaking the `_config.yml` file. | Some behavior is configurable by tweaking the `_config.yml` file. | ||||||
| @ -33,6 +41,8 @@ Some behavior is configurable by tweaking the `_config.yml` file. | |||||||
| 
 | 
 | ||||||
| **`open_external_links_in_new_tab`**: when set to `true`, this makes external links open in new tabs. Set to `false` to open all links in the current tab. | **`open_external_links_in_new_tab`**: when set to `true`, this makes external links open in new tabs. Set to `false` to open all links in the current tab. | ||||||
| 
 | 
 | ||||||
|  | **`embed_tweets`**: when set to `true`, tweet URLs on their own lines will be replaced with a Twitter embed. Default value is `false`. | ||||||
|  | 
 | ||||||
| ### Automatic bi-directional links | ### Automatic bi-directional links | ||||||
| 
 | 
 | ||||||
| Notice in the "Notes mentioning this note" section that there is another note linking to this note. This is a bi-directional link, and those are automatically created when you create links to other notes. | Notice in the "Notes mentioning this note" section that there is another note linking to this note. This is a bi-directional link, and those are automatically created when you create links to other notes. | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								_plugins/embed_tweets.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								_plugins/embed_tweets.rb
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | # frozen_string_literal: true | ||||||
|  | class TweetEmbedGenerator < Jekyll::Generator | ||||||
|  |   def generate(site) | ||||||
|  |     return if !site.config["embed_tweets"] | ||||||
|  | 
 | ||||||
|  |     all_notes = site.collections['notes'].docs | ||||||
|  |     all_pages = site.pages | ||||||
|  |     all_docs = all_notes + all_pages | ||||||
|  | 
 | ||||||
|  |     all_docs.each do |current_note| | ||||||
|  |       current_note.content.gsub!( | ||||||
|  |         /^https?:\/\/twitter\.com\/(?:#!\/)?(\w+)\/status(es)?\/(\d+)$/i, | ||||||
|  |         <<~HTML | ||||||
|  |           <blockquote class="twitter-tweet"> | ||||||
|  |            This tweet could not be embedded. <a href="#{'\0'}">View it on Twitter instead.</a> | ||||||
|  |           </blockquote> | ||||||
|  |           <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> | ||||||
|  |         HTML | ||||||
|  |       ) | ||||||
|  |     end | ||||||
|  |   end | ||||||
|  | end | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Maxime Vaillancourt
						Maxime Vaillancourt