[deploy] Split out social media options (Important: post deployment task to be run) (#7173)

* feat: define the different social media handles

* feat: dynamically render all the social media fields

* feat: ensure that the social media handles are permitter and dealt in a separate path from the rest

* test: update  social_networks_handle to social_media_handles

* feat: update the sidebar to use different social media

* feat: update the twitter:site meta handle to be  SiteConfig.social_media_handles["twitter"]

* feat: update the a links to tweets

* feat: make the links dynamic and only show those that there is a value for

* refactor: make @ThePracticalDev dynamic

* refactor: make @ThePracticalDev dynamic

* feat: add dynamic social media handles

* chore: rename values

* chore: remove extra social handles

* chore: some spacing

* chore: remove lines

* rafector: user rails-settings-cached type: :hash to set the type and the defaults

* feat: use nil and blank instead of "" and empty

* chore: move the social media handles into the right box

* refactor: rearrange model placement based on the UI

* chore: code climate

* refactor: comments from PR

* chore: rename the ff

* chore: amended twitter username

* chore: add a temporary rake task

* feat: update names

* chore: why am i using the old syntax :(

* chore: revert dynamic erb variable in offline.html
This commit is contained in:
Ridhwana 2020-04-09 19:51:11 +02:00 committed by GitHub
parent 39aca8993c
commit e626cfa933
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 93 additions and 78 deletions

View file

@ -10,7 +10,11 @@ class Internal::ConfigsController < Internal::ApplicationController
def create
clean_up_params
config_params.keys.each do |key|
SiteConfig.public_send("#{key}=", config_params[key].strip) unless config_params[key].nil?
if config_params[key].respond_to?(:to_h)
SiteConfig.public_send("#{key}=", config_params[key].to_h) unless config_params[key].empty?
else
SiteConfig.public_send("#{key}=", config_params[key].strip) unless config_params[key].nil?
end
end
bust_relevant_caches
redirect_to internal_config_path, notice: "Site configuration was successfully updated."
@ -20,7 +24,7 @@ class Internal::ConfigsController < Internal::ApplicationController
def config_params
allowed_params = %i[
default_site_email social_networks_handle mascot_user_id
default_site_email mascot_user_id
campaign_hero_html_variant_name campaign_sidebar_enabled campaign_featured_tags
campaign_sidebar_image
main_social_image favicon_url logo_svg logo_png primary_sticker_image_url
@ -34,7 +38,7 @@ class Internal::ConfigsController < Internal::ApplicationController
rate_limit_comment_creation rate_limit_published_article_creation
rate_limit_image_upload rate_limit_email_recipient sidebar_tags
]
params.require(:site_config).permit(allowed_params)
params.require(:site_config).permit(allowed_params, social_media_handles: SiteConfig.social_media_handles.keys)
end
def extra_authorization_and_confirmation

View file

@ -11,18 +11,22 @@ class SiteConfig < RailsSettings::Base
# the cache, or call SiteConfig.clear_cache
cache_prefix { "v1" }
# site content
# Community Content
field :community_description, type: :string, default: "A constructive and inclusive social network. Open source and radically transparent."
field :community_member_description, type: :string, default: "amazing humans who code."
field :tagline, type: :string, default: "We're a place where coders share, stay up-to-date and grow their careers."
field :mascot_user_id, type: :integer, default: 1
# staff account
# Social Media and Email
field :staff_user_id, type: :integer, default: 1
field :default_site_email, type: :string, default: "yo@dev.to"
field :social_networks_handle, type: :string, default: "thepracticaldev"
# mascot account
field :mascot_user_id, type: :integer, default: 1
field :social_media_handles, type: :hash, default: {
twitter: nil,
facebook: nil,
github: nil,
instagram: nil,
twitch: nil
}
# Authentication
field :authentication_providers, type: :array, default: %w[twitter github]
@ -30,13 +34,13 @@ class SiteConfig < RailsSettings::Base
# Broadcast
field :welcome_notifications_live_at, type: :date
# campaign
# Campaign
field :campaign_hero_html_variant_name, type: :string, default: ""
field :campaign_featured_tags, type: :array, default: %w[]
field :campaign_sidebar_enabled, type: :boolean, default: 0
field :campaign_sidebar_image, type: :string, default: nil
# images
# Images
field :main_social_image, type: :string, default: "https://thepracticaldev.s3.amazonaws.com/i/6hqmcjaxbgbon8ydw93z.png"
field :favicon_url, type: :string, default: "favicon.ico"
field :logo_png, type: :string, default: "https://practicaldev-herokuapp-com.freetls.fastly.net/assets/devlogo-pwa-512.png"
@ -45,7 +49,7 @@ class SiteConfig < RailsSettings::Base
field :mascot_image_url, type: :string, default: "https://practicaldev-herokuapp-com.freetls.fastly.net/assets/sloan.png"
field :mascot_image_description, type: :string, default: "Sloan, the sloth mascot"
# rate limits
# Rate Limits
field :rate_limit_follow_count_daily, type: :integer, default: 500
field :rate_limit_comment_creation, type: :integer, default: 9
field :rate_limit_published_article_creation, type: :integer, default: 9

View file

@ -29,22 +29,15 @@
<h4>Key links</h4>
</header>
<div class="widget-body social-icons">
<a href="https://twitter.com/<%= SiteConfig.social_networks_handle %>" target="_blank" rel="noopener">
<%= inline_svg_tag("twitter.svg", aria: true, title: "Twitter", class: "crayons-icon") %>
</a>
<a href="https://github.com/<%= SiteConfig.social_networks_handle %>" target="_blank" rel="noopener">
<%= inline_svg_tag("github.svg", aria: true, title: "Github", class: "crayons-icon") %>
</a>
<a href="https://instagram.com/<%= SiteConfig.social_networks_handle %>" target="_blank" rel="noopener">
<%= inline_svg_tag("instagram.svg", aria: true, title: "Instagram", class: "crayons-icon") %>
</a>
<a href="https://facebook.com/<%= SiteConfig.social_networks_handle %>" target="_blank" rel="noopener">
<%= inline_svg_tag("facebook.svg", aria: true, title: "Facebook", class: "crayons-icon") %>
</a>
<a href="https://twitch.tv/<%= SiteConfig.social_networks_handle %>" target="_blank" rel="noopener">
<%= inline_svg_tag("twitch.svg", aria: true, title: "Twitch", class: "crayons-icon") %>
</a>
<% SiteConfig.social_media_handles.keys.each do |social_media_type| %>
<% if SiteConfig.social_media_handles[social_media_type].present? %>
<a href="<%= "https://#{social_media_type}.com/#{SiteConfig.social_media_handles[social_media_type]}" %>" target="_blank" rel="noopener">
<%= inline_svg_tag("#{social_media_type}.svg", aria: true, title: "#{social_media_type.capitalize}", class: "crayons-icon") %>
</a>
<% end %>
<% end %>
</div>
<div class="side-footer">
<a href="/about">About</a>
<a href="/sponsors">Sponsors</a>

View file

@ -16,7 +16,7 @@
<meta property="og:description" content="<%= SiteConfig.community_description %>" />
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="<%= title_with_timeframe(page_title: community_qualified_name, timeframe: params[:timeframe]) %>">
<meta name="twitter:description" content="<%= SiteConfig.community_description %>">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">

View file

@ -11,12 +11,12 @@
<h3 class="manage-page-success"><%= flash[:pins_success] %></h3>
<% end %>
<h2>Tools:</h2>
<p><strong>Suggest a Tweet:</strong> Help get your post in front of more developers by suggesting a tweet that <a href="https://twitter.com/<%= SiteConfig.social_networks_handle %>">@<%= SiteConfig.social_networks_handle %></a> editors can use.
<p><strong>Suggest a Tweet:</strong> Help get your post in front of more developers by suggesting a tweet that <a href="https://twitter.com/<%= SiteConfig.social_media_handles["twitter"] %>">@<%= SiteConfig.social_media_handles["twitter"] %></a> editors can use.
<p><strong>Experience Level of Post:</strong> The best target dev experience level— a <em>gentle</em> indicator to help show the post to the people who will benefit the most.
<h2>Tips:</h2>
<ol>
<li>
Make your own tweet about the post, describing personally why you wrote it or why people might find it useful. <a href="https://twitter.com/<%= SiteConfig.social_networks_handle %>">@<%= SiteConfig.social_networks_handle %></a> may retweet you.
Make your own tweet about the post, describing personally why you wrote it or why people might find it useful. <a href="https://twitter.com/<%= SiteConfig.social_media_handles["twitter"] %>">@<%= SiteConfig.social_media_handles["twitter"] %></a> may retweet you.
</li>
<li>
Share to link aggregators such as <a href="https://www.reddit.com/">Reddit</a>. Try to choose the most topic-specific subreddits, such as <a href="https://www.reddit.com/r/javascript">/r/javascript</a> instead of <a href="https://www.reddit.com/r/programming">/r/programming</a>. <em>Warning: jerks and trolls may be lurking.</em>

View file

@ -10,7 +10,7 @@
<meta property="og:description" content="<%= SiteConfig.community_description %>">
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="DEV => Search Results">
<meta name="twitter:description" content="<%= SiteConfig.community_description %>">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">

View file

@ -51,7 +51,7 @@
<meta property="og:title" content="<%= @article.title %>" />
<meta property="og:description" content="<%= @article.description || "An article from the community" %>" />
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:creator" content="@<%= @user.twitter_username %>">
<meta name="twitter:title" content="<%= @article.title %>">
<meta name="twitter:description" content="<%= @article.description || "An article from the community" %>">

View file

@ -14,7 +14,7 @@
<meta property="og:description" content="<%= @tag.capitalize %> content on <%= community_name %>" />
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:creator" content="@<%= @tag.capitalize %>">
<meta name="twitter:title" content="<%= title_with_timeframe(page_title: @tag.capitalize, timeframe: params[:timeframe]) %>">
<meta name="twitter:description" content="<%= @tag.capitalize %> content on <%= community_name %>">

View file

@ -22,7 +22,7 @@
<meta name="twitter:description" content="<%= SiteConfig.community_description %>">
<meta name="twitter:image:src" content="https://thepracticaldev.s3.amazonaws.com/i/sa3xjflbtvt9zw0xpan5.png">
<% end %>
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:card" content="summary_large_image">
<% end %>

View file

@ -12,7 +12,7 @@
<meta property="og:title" content="Discussion of <%= @commentable.title %>" />
<meta property="og:description" content="<%= @commentable.description || "#{community_name} Comment" %>" />
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:creator" content="@<%= @user.twitter_username %>">
<meta name="twitter:title" content="<%= @commentable.title %>">
<meta name="twitter:description" content="<%= @commentable.description || "#{community_name} Comment" %>">

View file

@ -10,7 +10,7 @@
<meta property="og:description" content="Talks and workshops designed to help community members level up." />
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="<%= community_name %> Events">
<meta name="twitter:image:src" content="https://thepracticaldev.s3.amazonaws.com/i/bhavxzyx2e7bdsyvysve.jpg">
<% end %>

View file

@ -16,7 +16,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="<%= truncate(strip_tags(@event.title), length: 70) %>">
<meta property="og:description" content="<%= truncate(strip_tags(@event.description_html), length: 140) %>" />
<% if @event.cover_image.present? %>

View file

@ -209,7 +209,7 @@
end %>
</textarea>
</div>
<button class="btn btn-primary mb-2">🦅 Tweet to @<%= SiteConfig.social_networks_handle %></button>
<button class="btn btn-primary mb-2">🦅 Tweet to @<%= SiteConfig.social_media_handles["twitter"] %></button>
<% end %>
<% if (article.decorate.cached_tag_list_array & Tag.bufferized_tags).any? %>

View file

@ -88,14 +88,19 @@
placeholder: "email@staff.com" %>
<div class="alert alert-info">Email of the staff account</div>
</div>
<div class="form-group">
<%= f.label :social_networks_handle %>
<%= f.text_field :social_networks_handle,
class: "form-control",
value: SiteConfig.social_networks_handle,
placeholder: "thepracticaldev" %>
<div class="alert alert-info">Social networks handle (eg. Twitter, GitHub)</div>
<%= f.fields_for :social_media_handles do |social_media_field| %>
<% SiteConfig.social_media_handles.keys.each do |social_media_platform| %>
<div>
<%= social_media_field.label social_media_platform %>
<%= social_media_field.text_field social_media_platform,
class: "form-control",
value: SiteConfig.social_media_handles[social_media_platform],
placeholder: "" %>
<div class="alert alert-info"><%= social_media_platform.capitalize() %> Username</div>
</div>
<% end %>
<% end %>
</div>
</div>
</div>

View file

@ -158,7 +158,7 @@
<% if @moderatable.last_buffered.blank? %>
<div class="tag-mod-form">
<%= form_for(BufferUpdate.new) do |f| %>
<h2>Suggest a Tweet for @<%= SiteConfig.social_networks_handle %></h2>
<h2>Suggest a Tweet for @<%= SiteConfig.social_media_handles["twitter"] %></h2>
<%= f.hidden_field :article_id, value: @moderatable.id %>
<%= f.text_area :body_text, maxlength: 220, placeholder: "Can be a TLDR of the post, an interesting quote from the post, or bullet points from topics covered in the post, etc." %>
<%= f.submit "Share Tweet Suggestion" %>

View file

@ -12,7 +12,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="Notifications - dev.to">
<meta name="twitter:description" content="Notifications inbox for dev.to">
<% end %>

View file

@ -13,7 +13,7 @@
<meta property="og:site_name" content="<%= community_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="About <%= community_name %>">
<meta name="twitter:description" content="<%= community_name %> is great!">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">
@ -92,7 +92,7 @@
<p>
The platform was created in 2016. The Twitter account,
<a href="https://twitter.com/thepracticaldev">@ThePracticalDev</a> was around before then. We are based out of New York City.
<a href="https://twitter.com/<%= SiteConfig.social_media_handles["twitter"] %>">@<%= SiteConfig.social_media_handles["twitter"] %></a> was around before then. We are based out of New York City.
</p>
</div>
</div>

View file

@ -13,7 +13,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="Add the DEV Badge to your personal site">
<meta name="twitter:description" content="Show visitors that you are an active member of our wonderful community. Put the badge on your personal website or use it as you see fit.">
<meta name="twitter:image:src" content="https://thepracticaldev.s3.amazonaws.com/i/kjn1gduswyrrisc1basc.png">

View file

@ -10,7 +10,7 @@
<meta property="og:title" content="About The Practical Dev Bounty System" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="The Practical Dev Bounty System">
<% end %>

View file

@ -11,7 +11,7 @@
<%# <meta property="og:description" content="<%= community_qualified_name %> is great!" /> %>
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="The Practical Dev Code of Conduct">
<%# <meta name="twitter:description" content="<%= community_qualified_name %> is great!"> %>
<%# <meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>"> %>

View file

@ -13,7 +13,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@<%= SiteConfig.social_networks_handle %>">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="Contact The Practical Dev">
<meta name="twitter:description" content="<%= community_qualified_name %> is great!">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">
@ -33,7 +33,7 @@
Email: <a href="mailto:<%= SiteConfig.default_site_email %>"><%= SiteConfig.default_site_email %></a> 😁
</p>
<p>
Twitter: <a href="http://twitter.com/<%= SiteConfig.social_networks_handle %>">@<%= SiteConfig.social_networks_handle %></a> 👻
Twitter: <a href="http://twitter.com/<%= SiteConfig.social_media_handles["twitter"] %>">@<%= SiteConfig.social_media_handles["twitter"] %></a> 👻
</p>
<p>
Report a vulnerability: <a href="https://dev.to/security">dev.to/security</a> 🐛

View file

@ -13,7 +13,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="FAQ for dev.to()">
<meta name="twitter:description" content="Things to know!">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">

View file

@ -16,7 +16,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="O RLY Parody Book Generator for Slack">
<meta name="twitter:description" content="Insult your co-workers with snarky O RLY parody book covers. All without leaving Slack!">
<meta name="twitter:image:src" content="https://i.imgur.com/OIT6xoq.png">
@ -38,7 +38,7 @@
</div>
<div class="thanks">
<h3>But don't thank
<a target="_blank" rel="noopener" href="https://twitter.com/ThePracticalDev">@ThePracticalDev</a> for this one</h3>
<a target="_blank" rel="noopener" href="https://twitter.com/<%= SiteConfig.social_media_handles["twitter"] %>">@<%= SiteConfig.social_media_handles["twitter"] %></a> for this one</h3>
<h4>This tool was created with love by Charles Berlin (<a target="_blank" rel="noopener" href="https://twitter.com/AModelEngineer">@AModelEngineer</a>)
</h4>
</div>
@ -113,7 +113,7 @@
</div>
<div class="thanks feedback">
<h3>If you have any feedback, you can direct message
<a target="_blank" rel="noopener" href="https://twitter.com/ThePracticalDev">@ThePracticalDev</a> any time!</h3>
<a target="_blank" rel="noopener" href="https://twitter.com/<%= SiteConfig.social_media_handles["twitter"] %>" >@<%= SiteConfig.social_media_handles["twitter"] %></a> any time!</h3>
<a class="second-slack" href="https://slack.com/oauth/authorize?scope=commands+bot+chat:write:bot+groups:write&client_id=3128000905.33373336070"><img alt="Add to Slack" height="40" width="139" src="https://platform.slack-edge.com/img/add_to_slack.png" srcset="https://platform.slack-edge.com/img/add_to_slack.png 1x, https://platform.slack-edge.com/img/add_to_slack@2x.png 2x"></a>
</div>
</div>

View file

@ -13,7 +13,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="All information about <%= community_qualified_name %>">
<meta name="twitter:description" content="<%= community_qualified_name %> is great!">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">

View file

@ -13,7 +13,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="Privacy Policy for <%= community_name %>">
<meta name="twitter:description" content="<%= community_qualified_name %> is great!">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">

View file

@ -8,7 +8,7 @@
<meta property="og:title" content="Report Abuse" />
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="Report Abuse">
<% end %>

View file

@ -16,7 +16,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="O RLY Parody Book Cover Generator">
<meta name="twitter:description" content="Insult your co-workers with snarky O RLY parody book covers!">
<meta name="twitter:image:src" content="http://i.imgur.com/pAORVha.png">
@ -56,7 +56,7 @@
</div>
<h4>Insult your co-workers with snarky O RLY parody book covers!</h4>
<h4 class="ps">PS. There are a few known edge cases that do not generate. Some characters and long words won't work, etc. If you want to report an issue, feel free DM
<a href="http://twitter.com/thepracticaldev">@ThePracticalDev</a> on Twitter.</h4>
<a href="http://twitter.com/thepracticaldev">@<%= SiteConfig.social_media_handles["twitter"] %></a> on Twitter.</h4>
<hr />
<div class="usage">
<h3>Animal Codes</h3>
@ -124,7 +124,7 @@
<div class="color" style="background-color:rgba(133,152,0,255)">16</div>
</div>
<div class="thanks">
<h3>But don't thank <a target="_blank" href="http://twitter.com/ThePracticalDev">@ThePracticalDev</a> for this one
<h3>But don't thank <a target="_blank" href="http://twitter.com/<%= SiteConfig.social_media_handles["twitter"]%>">@<%= SiteConfig.social_media_handles["twitter"] %></a> for this one
</h3>
<h4>This tool was created with love by Charles Berlin (<a target="_blank" href="http://twitter.com/AModelEngineer">@AModelEngineer</a>)
</h4>

View file

@ -12,7 +12,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="<%= @page.title %> — <%= community_qualified_name %>">
<meta name="twitter:description" content="<%= @page.description %>">
<meta name="twitter:image:src" content="<%= @page.social_image_url || "https://thepracticaldev.s3.amazonaws.com/i/g355ol6qsrg0j2mhngz9.png" %>">

View file

@ -13,7 +13,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="Terms of Use for The DEV Community">
<meta name="twitter:description" content="The DEV Community is great!">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">

View file

@ -15,7 +15,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:creator" content="@<%= @podcast.twitter_username %>">
<meta name="twitter:title" content="<%= @podcast.title %>">
<meta name="twitter:description" content="<%= @podcast.description %>" />
@ -37,8 +37,8 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:creator" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:creator" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="Podcasts on The Practical Dev">
<meta name="twitter:description" content="Discover technical podcasts for developers" />
<meta name="twitter:image:src" content="http://i.imgur.com/e5tJ9L9.png">

View file

@ -11,7 +11,7 @@
<meta property="og:description" content="<%= truncate(strip_tags(@episode.body), length: 140) %>" />
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:creator" content="@software_daily">
<meta name="twitter:title" content="<%= @episode.title %>">
<meta name="twitter:description" content="<%= truncate(strip_tags(@episode.body), length: 140) %>" />

View file

@ -12,7 +12,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="Reading List - <%= community_qualified_name %>">
<meta name="twitter:description" content="Reading List for dev.to">
<% end %>

View file

@ -13,7 +13,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="About The Practical Dev">
<meta name="twitter:description" content="<%= community_qualified_name %> is great!">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">

View file

@ -10,7 +10,7 @@
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:creator" content="@<%= @user.twitter_username %>">
<meta name="twitter:title" content="<%= @user.name %> — DEV Profile">
<meta name="twitter:description" content="<%= @user.summary %>">

View file

@ -12,7 +12,7 @@
<meta property="og:description" content="All videos on DEV" />
<meta property="og:site_name" content="<%= community_qualified_name %>" />
<meta name="twitter:site" content="@ThePracticalDev">
<meta name="twitter:site" content="@<%= SiteConfig.social_media_handles["twitter"] %>">
<meta name="twitter:title" content="<% title "Videos" %>">
<meta name="twitter:description" content="All videos on DEV">
<meta name="twitter:image:src" content="<%= SiteConfig.main_social_image %>">

View file

@ -0,0 +1,8 @@
namespace :temporary do
namespace :social_media do
desc "Update DEV's social media handles"
task update_handles: :environment do
SiteConfig.public_send("social_media_handles=", {twitter: "thepracticaldev", facebook: "thepracticaldev", github: "thepracticaldev", instagram: "thepracticaldev", twitch: "thepracticaldev"})
end
end
end

View file

@ -73,11 +73,12 @@ RSpec.describe "/internal/config", type: :request do
expect(SiteConfig.default_site_email).to eq(expected_email)
end
it "updates social_networks_handle" do
expected_handle = "tpd"
post "/internal/config", params: { site_config: { social_networks_handle: expected_handle },
it "updates social_media_handles" do
expected_handle = {"facebook"=>"tpd", "github"=>"", "instagram"=>"", "twitch"=>"", "twitter"=>""}
post "/internal/config", params: { site_config: { social_media_handles: expected_handle },
confirmation: confirmation_message }
expect(SiteConfig.social_networks_handle).to eq(expected_handle)
expect(SiteConfig.social_media_handles[:facebook]).to eq("tpd")
expect(SiteConfig.social_media_handles[:github]).to eq("")
end
end