Initial Commit
This commit is contained in:
commit
b0430e51ff
|
@ -0,0 +1,54 @@
|
||||||
|
# Based on https://github.com/actions/starter-workflows/blob/main/pages/jekyll.yml
|
||||||
|
name: publish
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
schedule:
|
||||||
|
# 9th minute of every hour
|
||||||
|
- cron: '09 * * * *'
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||||
|
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Build job
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Setup Ruby
|
||||||
|
uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
|
||||||
|
with:
|
||||||
|
ruby-version: '3.0' # Not needed with a .ruby-version file
|
||||||
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||||
|
- name: Setup Pages
|
||||||
|
id: pages
|
||||||
|
uses: actions/configure-pages@v3
|
||||||
|
- name: Build with Jekyll
|
||||||
|
# Outputs to the './_site' directory by default
|
||||||
|
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
|
||||||
|
env:
|
||||||
|
JEKYLL_ENV: production
|
||||||
|
- name: Upload artifact
|
||||||
|
# Automatically uploads an artifact from the './_site' directory by default
|
||||||
|
uses: actions/upload-pages-artifact@v1
|
||||||
|
|
||||||
|
# Deployment job
|
||||||
|
deploy:
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v2
|
|
@ -0,0 +1 @@
|
||||||
|
vendor
|
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
permalink: /404.html
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
|
||||||
|
<style type="text/css" media="screen">
|
||||||
|
.container {
|
||||||
|
margin: 10px auto;
|
||||||
|
max-width: 600px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
margin: 30px 0;
|
||||||
|
font-size: 4em;
|
||||||
|
line-height: 1;
|
||||||
|
letter-spacing: -1px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<h1>404</h1>
|
||||||
|
|
||||||
|
<p><strong>Page not found :(</strong></p>
|
||||||
|
<p>The requested page could not be found.</p>
|
||||||
|
</div>
|
|
@ -0,0 +1,35 @@
|
||||||
|
source "https://rubygems.org"
|
||||||
|
# Hello! This is where you manage which Jekyll version is used to run.
|
||||||
|
# When you want to use a different version, change it below, save the
|
||||||
|
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
|
||||||
|
#
|
||||||
|
# bundle exec jekyll serve
|
||||||
|
#
|
||||||
|
# This will help ensure the proper Jekyll version is running.
|
||||||
|
# Happy Jekylling!
|
||||||
|
gem "jekyll", "~> 4.3.2"
|
||||||
|
# This is the default theme for new Jekyll sites. You may change this to anything you like.
|
||||||
|
gem "minima", "~> 2.5"
|
||||||
|
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
|
||||||
|
# uncomment the line below. To upgrade, run `bundle update github-pages`.
|
||||||
|
# gem "github-pages", group: :jekyll_plugins
|
||||||
|
# If you have any plugins, put them here!
|
||||||
|
group :jekyll_plugins do
|
||||||
|
gem "jekyll-feed", "~> 0.12"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||||
|
# and associated library.
|
||||||
|
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
||||||
|
gem "tzinfo", ">= 1", "< 3"
|
||||||
|
gem "tzinfo-data"
|
||||||
|
end
|
||||||
|
|
||||||
|
# Performance-booster for watching directories on Windows
|
||||||
|
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
|
||||||
|
|
||||||
|
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
|
||||||
|
# do not have a Java counterpart.
|
||||||
|
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
|
||||||
|
|
||||||
|
gem "sanitize", "~> 6.0"
|
|
@ -0,0 +1,92 @@
|
||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
addressable (2.8.4)
|
||||||
|
public_suffix (>= 2.0.2, < 6.0)
|
||||||
|
colorator (1.1.0)
|
||||||
|
concurrent-ruby (1.2.2)
|
||||||
|
crass (1.0.6)
|
||||||
|
em-websocket (0.5.3)
|
||||||
|
eventmachine (>= 0.12.9)
|
||||||
|
http_parser.rb (~> 0)
|
||||||
|
eventmachine (1.2.7)
|
||||||
|
ffi (1.15.5)
|
||||||
|
forwardable-extended (2.6.0)
|
||||||
|
google-protobuf (3.23.2-x86_64-linux)
|
||||||
|
http_parser.rb (0.8.0)
|
||||||
|
i18n (1.14.1)
|
||||||
|
concurrent-ruby (~> 1.0)
|
||||||
|
jekyll (4.3.2)
|
||||||
|
addressable (~> 2.4)
|
||||||
|
colorator (~> 1.0)
|
||||||
|
em-websocket (~> 0.5)
|
||||||
|
i18n (~> 1.0)
|
||||||
|
jekyll-sass-converter (>= 2.0, < 4.0)
|
||||||
|
jekyll-watch (~> 2.0)
|
||||||
|
kramdown (~> 2.3, >= 2.3.1)
|
||||||
|
kramdown-parser-gfm (~> 1.0)
|
||||||
|
liquid (~> 4.0)
|
||||||
|
mercenary (>= 0.3.6, < 0.5)
|
||||||
|
pathutil (~> 0.9)
|
||||||
|
rouge (>= 3.0, < 5.0)
|
||||||
|
safe_yaml (~> 1.0)
|
||||||
|
terminal-table (>= 1.8, < 4.0)
|
||||||
|
webrick (~> 1.7)
|
||||||
|
jekyll-feed (0.17.0)
|
||||||
|
jekyll (>= 3.7, < 5.0)
|
||||||
|
jekyll-sass-converter (3.0.0)
|
||||||
|
sass-embedded (~> 1.54)
|
||||||
|
jekyll-seo-tag (2.8.0)
|
||||||
|
jekyll (>= 3.8, < 5.0)
|
||||||
|
jekyll-watch (2.2.1)
|
||||||
|
listen (~> 3.0)
|
||||||
|
kramdown (2.4.0)
|
||||||
|
rexml
|
||||||
|
kramdown-parser-gfm (1.1.0)
|
||||||
|
kramdown (~> 2.0)
|
||||||
|
liquid (4.0.4)
|
||||||
|
listen (3.8.0)
|
||||||
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||||
|
rb-inotify (~> 0.9, >= 0.9.10)
|
||||||
|
mercenary (0.4.0)
|
||||||
|
minima (2.5.1)
|
||||||
|
jekyll (>= 3.5, < 5.0)
|
||||||
|
jekyll-feed (~> 0.9)
|
||||||
|
jekyll-seo-tag (~> 2.1)
|
||||||
|
nokogiri (1.15.2-x86_64-linux)
|
||||||
|
racc (~> 1.4)
|
||||||
|
pathutil (0.16.2)
|
||||||
|
forwardable-extended (~> 2.6)
|
||||||
|
public_suffix (5.0.1)
|
||||||
|
racc (1.6.2)
|
||||||
|
rb-fsevent (0.11.2)
|
||||||
|
rb-inotify (0.10.1)
|
||||||
|
ffi (~> 1.0)
|
||||||
|
rexml (3.2.5)
|
||||||
|
rouge (4.1.2)
|
||||||
|
safe_yaml (1.0.5)
|
||||||
|
sanitize (6.0.1)
|
||||||
|
crass (~> 1.0.2)
|
||||||
|
nokogiri (>= 1.12.0)
|
||||||
|
sass-embedded (1.62.1-x86_64-linux-gnu)
|
||||||
|
google-protobuf (~> 3.21)
|
||||||
|
terminal-table (3.0.2)
|
||||||
|
unicode-display_width (>= 1.1.1, < 3)
|
||||||
|
unicode-display_width (2.4.2)
|
||||||
|
webrick (1.8.1)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
x86_64-linux
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
http_parser.rb (~> 0.6.0)
|
||||||
|
jekyll (~> 4.3.2)
|
||||||
|
jekyll-feed (~> 0.12)
|
||||||
|
minima (~> 2.5)
|
||||||
|
sanitize (~> 6.0)
|
||||||
|
tzinfo (>= 1, < 3)
|
||||||
|
tzinfo-data
|
||||||
|
wdm (~> 0.1.1)
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
2.4.12
|
|
@ -0,0 +1,27 @@
|
||||||
|
title: "Beatroot News: Text-only"
|
||||||
|
description: >- # this means to ignore newlines until "baseurl:"
|
||||||
|
A plain-text version of Beatroot News.
|
||||||
|
baseurl: ""
|
||||||
|
url: "https://news.captnemo.in"
|
||||||
|
plugins:
|
||||||
|
- jekyll-feed
|
||||||
|
|
||||||
|
# Exclude from processing.
|
||||||
|
# The following items will not be processed, by default.
|
||||||
|
# Any item listed under the `exclude:` key here will be automatically added to
|
||||||
|
# the internal "default list".
|
||||||
|
#
|
||||||
|
# Excluded items can be processed by explicitly listing the directories or
|
||||||
|
# their entries' file path in the `include:` list.
|
||||||
|
#
|
||||||
|
# exclude:
|
||||||
|
# - .sass-cache/
|
||||||
|
# - .jekyll-cache/
|
||||||
|
# - gemfiles/
|
||||||
|
# - Gemfile
|
||||||
|
# - Gemfile.lock
|
||||||
|
# - node_modules/
|
||||||
|
# - vendor/bundle/
|
||||||
|
# - vendor/cache/
|
||||||
|
# - vendor/gems/
|
||||||
|
# - vendor/ruby/
|
|
@ -0,0 +1,101 @@
|
||||||
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<link id="favicon" rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAapJREFUOI2t0s9rz3EcB/DH67OvkcZMWmm+OZFSqw0HOVCuc3Bw4A9wWHJ2XLkoSjnsssIFuXFQSthlEYZWc2Bl8jN2wXfYbJ+Xg63W2GLfPa+v3o+e73qGOTlqx2p0pnJPiI4U28hWNBEovxEfiBcpn4QcWGFysNdwbdYIOGR74zqN+5NjRGfQGqKwSFImPmEoFWenNN25qP9H9NhXeedrd8qTIdYuhiyCfyFOtVlzumGLloPJmUK0LAWDECvJHTWTI5UQR7B+qdgctDnl4QK7QkS9ICLYWSQblwEDyYYCDcsIThQYXy4wxGhBXJ3ZVF35beTdolBewYf6MWOlvFFMaB5Ieb3ehrg5rXmg4anRqZ3aHqfcHbT5zwmlLHE/VY6fNzDWAIPe1zq0PQjlVlRR/Ms2U/7EvRDdfR49Z85knnj3sV31VmH6O9EeYvUiUAafyXOp8USfhyOztz9a9FC81lElDhR0YW+IVTNQDf3BndLUtU2GXvVQzn2/4Ld6KN7q6MIFYh1eBqcrJi71Gh7HX6dWWQh8o31ziG5yhLxdmr5cNfRsfqP5+QUUM5oqKKZNVAAAAABJRU5ErkJggg==">
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
display: block;
|
||||||
|
padding: 0px 20px;
|
||||||
|
max-width: 550px;
|
||||||
|
margin: 0 auto;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.full-version-link {
|
||||||
|
margin-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slug-line {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hr-line {
|
||||||
|
position: relative;
|
||||||
|
height: 4px;
|
||||||
|
background: #660033;
|
||||||
|
}
|
||||||
|
|
||||||
|
.story-title {
|
||||||
|
line-height: 2rem;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-heading {
|
||||||
|
line-height: 2rem;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-container>ul {
|
||||||
|
padding: 0;
|
||||||
|
line-height: 1.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-container li {
|
||||||
|
display: block;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-container {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
.topic-list {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.topic-date {
|
||||||
|
margin: 20px 0;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
.paragraphs-container {
|
||||||
|
line-height: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:link,
|
||||||
|
.button:visited {
|
||||||
|
background-color: white;
|
||||||
|
color: black;
|
||||||
|
border: 2px solid black;
|
||||||
|
padding: 4px 8px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover,
|
||||||
|
.button:active {
|
||||||
|
background-color: black;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lower-nav-container {
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lower-nav-container li {
|
||||||
|
margin-left: 0;
|
||||||
|
display: inline;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
.details-content {
|
||||||
|
font-size: smaller;
|
||||||
|
border: 1px dashed;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,21 @@
|
||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<article>
|
||||||
|
<div class="story-container">
|
||||||
|
<p class="slug-line">
|
||||||
|
<a class="slug-link" href="/">Beatroot</a> >
|
||||||
|
<a class="slug-link" href="/{{page.topics.first}}/">{{page.topics.first | capitalize}}</a>
|
||||||
|
</p>
|
||||||
|
<div class="story-head">
|
||||||
|
<h1 class="story-title">{{page.title}}</h1>
|
||||||
|
<p>{{page.sources | join: " "}}</p>
|
||||||
|
<p>{{page.date | date: "%A, %b, %e, %Y"}}</p>
|
||||||
|
</div>
|
||||||
|
<div class="hr-line"></div>
|
||||||
|
|
||||||
|
<div class="paragraphs-container">
|
||||||
|
{{content}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</article>
|
|
@ -0,0 +1,44 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>{{page.title}}</title>
|
||||||
|
{% include header.html %}
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<p>Text-Only
|
||||||
|
<a class="full-version-link button" href="https://apps.apple.com/in/app/beatroot-news/id1618735924">iOS</a>
|
||||||
|
<a class="full-version-link button" href="https://play.google.com/store/apps/details?id=com.beatrootnews.app">Android</a>
|
||||||
|
<a class="full-version-link button" href="https://app.beatrootnews.com/">Mobile Web</a>
|
||||||
|
</p>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main>
|
||||||
|
{{content}}
|
||||||
|
</main>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="hr-line"></div>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
<p>Topics</p>
|
||||||
|
<ul>
|
||||||
|
{% for topic in site.topics %}
|
||||||
|
<li class="topic-list"><a href="/{{ topic}}/">{{topic | capitalize}}</a> /</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
<nav class="lower-nav-container">
|
||||||
|
<li><a href="https://home.beatrootnews.com/contact">Contact Beatroot News</a></li>
|
||||||
|
<li><a href="https://home.beatrootnews.com/about">About Beatroot News</a></li>
|
||||||
|
<li><a href="https://home.beatrootnews.com/terms">Privacy policy and Terms</a></li>
|
||||||
|
<li><a href="/about/">About Text-Only Beatroot News</a></li>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<p>© Beatroot News</p>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,24 @@
|
||||||
|
---
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<p class="slug-line">
|
||||||
|
<a class="slug-link" href="/">Beatroot</a> > {{page.title | capitalize}}
|
||||||
|
</p>
|
||||||
|
<div class="topic-container">
|
||||||
|
<h1 class="topic-heading">{{page.title | capitalize}}</h1>
|
||||||
|
<div class="hr-line"></div>
|
||||||
|
<p class="topic-date">{{site.time | date: "%A, %b, %e, %Y"}}</p>
|
||||||
|
<ul>
|
||||||
|
{% for post in site.pages %}
|
||||||
|
{% if post.topics contains page.topic %}
|
||||||
|
<li>
|
||||||
|
<details>
|
||||||
|
<summary>{{post.title | trim}} <a class="topic-title" href="{{post.url}}">🔗</a>
|
||||||
|
{% if post.sources contains "PTI" %}<span title="Syndicated News">📡</span>{%endif%}
|
||||||
|
</summary>
|
||||||
|
<div class="details-content">{{post.content}}</div>
|
||||||
|
</li>
|
||||||
|
{%endif%}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
|
@ -0,0 +1,92 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
require 'sanitize'
|
||||||
|
require 'uri'
|
||||||
|
require 'net/http'
|
||||||
|
require 'set'
|
||||||
|
require 'date'
|
||||||
|
|
||||||
|
class PageWithoutAFile < Jekyll::Page
|
||||||
|
def read_yaml(*)
|
||||||
|
@data ||= {}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
class BeatrootNews < Jekyll::Generator
|
||||||
|
safe true
|
||||||
|
priority :high
|
||||||
|
|
||||||
|
SOURCE_URL = "https://beatrootnews.com/api.php/article?page%5Blimit%5D=60&sort=-publishing_date"
|
||||||
|
|
||||||
|
# Make a request to SOURCE_URL, and return the parsed JSON
|
||||||
|
def get_content
|
||||||
|
uri = URI.parse(SOURCE_URL)
|
||||||
|
response = Net::HTTP.get_response(uri)
|
||||||
|
JSON.parse(response.body)['data']
|
||||||
|
end
|
||||||
|
|
||||||
|
# Main plugin action, called by Jekyll-core
|
||||||
|
def generate(site)
|
||||||
|
@site = site
|
||||||
|
topics = Set.new
|
||||||
|
get_content.each do |article|
|
||||||
|
page = make_page(article['attributes']['modules'])
|
||||||
|
if page
|
||||||
|
site.pages << page
|
||||||
|
page['topics'].each { |t| topics.add(t) }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
topics.each do |topic|
|
||||||
|
@site.pages << make_topic_page(topic)
|
||||||
|
end
|
||||||
|
site.config['topics'] = topics.to_a
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def make_topic_page(topic)
|
||||||
|
PageWithoutAFile.new(@site, __dir__, topic, "index.html").tap do |file|
|
||||||
|
file.data.merge!(
|
||||||
|
'title' => topic.capitalize,
|
||||||
|
'layout' => 'topic',
|
||||||
|
'topic' => topic,
|
||||||
|
'permalink' => "/#{topic}/",
|
||||||
|
)
|
||||||
|
file.output
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Generates contents for a file
|
||||||
|
|
||||||
|
def timestamp(ts)
|
||||||
|
d = Time.at(ts.to_i).to_datetime
|
||||||
|
d.new_offset("+0530")
|
||||||
|
end
|
||||||
|
|
||||||
|
def make_page(article)
|
||||||
|
return nil if article['topic'].nil?
|
||||||
|
n = DateTime.new
|
||||||
|
now = DateTime.new(n.year, n.month, n.day, 23, 59, 59, "+0530")
|
||||||
|
PageWithoutAFile.new(@site, __dir__, article['id'], "index.html").tap do |file|
|
||||||
|
html = article['body_json']['blocks'].map{ |t| t['data']['text']}.join(" ")
|
||||||
|
topics = article['topic'].map { |topic| topic.split('-').first }
|
||||||
|
if article['trigger_warning']
|
||||||
|
html = "<p><b>#{article['trigger_warning_text']}</b></p>" + html
|
||||||
|
end
|
||||||
|
|
||||||
|
file.content = Sanitize.fragment(html, Sanitize::Config::RELAXED)
|
||||||
|
|
||||||
|
date = timestamp(article['updated_on'])
|
||||||
|
file.data.merge!(
|
||||||
|
'sources' => article['sources'],
|
||||||
|
"date" => date,
|
||||||
|
"title" => article['title'],
|
||||||
|
"layout" => 'article',
|
||||||
|
"topics" => topics,
|
||||||
|
"days_ago" => (now - date).floor
|
||||||
|
)
|
||||||
|
file.output
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
layout: article
|
||||||
|
title: About This Site
|
||||||
|
---
|
||||||
|
|
||||||
|
This site is a text-only minimal version of [Beatroot News](https://app.beatrootnews.com/), a new news app by Freemedia Interactive Private Limited.
|
||||||
|
|
||||||
|
It is maintained by [Nemo](https://github.com/captn3m0), and is meant as a minimal news website that you can check once a day.
|
||||||
|
|
||||||
|
This text-only version is unaffiliated with Beatroot News or Freemedia Interactive Private Limited. The content is updated once every hour.
|
||||||
|
|
||||||
|
## Curation Notes
|
||||||
|
|
||||||
|
- The [home-page](/) only includes un-syndicated articles.
|
||||||
|
- Only articles from today and yesterday are shown.
|
||||||
|
- The design is based on [NPR's](http://text.npr.org/) text-only website.
|
||||||
|
- Trigger Warnings are shown in bold, prefixed to the article text.
|
Binary file not shown.
After Width: | Height: | Size: 499 B |
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
title: "Beatroot News: Text-only"
|
||||||
|
layout: default
|
||||||
|
---
|
||||||
|
<p></p>
|
||||||
|
<div class="topic-container">
|
||||||
|
<h1 class="topic-heading">{{page.title}}</h1>
|
||||||
|
<div class="hr-line"></div>
|
||||||
|
<p class="topic-date">{{site.time | date: "%A, %b, %e, %Y"}}</p>
|
||||||
|
{% for topic in site.topics %}
|
||||||
|
<h3><a href="/{{topic}}/">{{topic | capitalize}}</a></h3>
|
||||||
|
<ul>
|
||||||
|
{% for post in site.pages %}
|
||||||
|
{% if post.topics and post.days_ago < 2 and post.topics.first == topic %}
|
||||||
|
|
||||||
|
{% unless post.sources contains "PTI" %}
|
||||||
|
<details><summary>{{post.title | trim}}</summary>
|
||||||
|
<div class="details-content">{{post.content}}</div>
|
||||||
|
</details>
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{%endif%}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
Loading…
Reference in New Issue