Merge remote-tracking branch 'origin/master' into roadmap

This commit is contained in:
Jeremy Kauffman 2016-08-18 19:28:00 -04:00
commit 15cac69fb9
40 changed files with 348 additions and 47 deletions

View file

@ -24,9 +24,11 @@ class BountyActions extends Actions
uasort($bounties, function($postA, $postB) {
$metadataA = $postA->getMetadata();
$metadataB = $postB->getMetadata();
if ($metadataA['award'] != $metadataB['award'])
$awardA = strpos('-', $metadataA['award']) !== false ? rtrim(explode('-', $metadataA['award'])[0], '+') : $metadataA['award'];
$awardB = strpos('-', $metadataB['award']) !== false ? rtrim(explode('-', $metadataB['award'])[0], '+') : $metadataB['award'];
if ($awardA != $awardB)
{
return $metadataA['award'] > $metadataB['award'] ? -1 : 1;
return $awardA > $awardB ? -1 : 1;
}
return $metadataA['title'] < $metadataB['title'] ? -1 : 1;
});

View file

@ -82,8 +82,11 @@ class ContentActions extends Actions
public static function executeNewsPost($relativeUri)
{
$post = Post::load(ltrim($relativeUri, '/'));
if (!$post)
try
{
$post = Post::load(ltrim($relativeUri, '/'));
}
catch (PostNotFoundException $e)
{
return ['page/404', []];
}
@ -97,8 +100,11 @@ class ContentActions extends Actions
public static function executeFaqPost($relativeUri)
{
$post = Post::load(ltrim($relativeUri, '/'));
if (!$post)
try
{
$post = Post::load(ltrim($relativeUri, '/'));
}
catch (PostNotFoundException $e)
{
return ['page/404', []];
}

View file

@ -197,4 +197,4 @@ class CurlException extends Exception
parent::__construct($this->error, $this->errno, $previous);
}
}
}

View file

@ -2,24 +2,24 @@
class Debug
{
public static function exceptionToString(Exception $e)
public static function exceptionToString(Throwable $e)
{
return static::getExceptionMessageWithoutTrace($e) . "\n" . static::getFullTrace($e);
}
public static function getExceptionMessageWithoutTrace(Exception $e)
public static function getExceptionMessageWithoutTrace(Throwable $e)
{
return 'exception \'' . get_class($e) . '\' with message \'' . $e->getMessage() . '\' in ' . $e->getFile() . ':' . $e->getLine();
}
/**
* Same as the normal getTraceAsString(), but does not truncate long lines.
* @param Exception $exception
* @param Throwable $exception
* @return string
* @see http://stackoverflow.com/questions/1949345/how-can-i-get-the-full-string-of-phps-gettraceasstring/6076667#6076667
* @see https://gist.github.com/1437966
*/
public static function getFullTrace(Exception $exception)
public static function getFullTrace(Throwable $exception)
{
$rtn = '';
foreach ($exception->getTrace() as $count => $frame)

View file

@ -1,5 +1,7 @@
<?php
class PostNotFoundException extends Exception {}
class Post
{
const SORT_DATE_DESC = 'sort_date_desc';
@ -33,7 +35,7 @@ class Post
return static::load($slugMap[$slug]);
}
}
throw new InvalidArgumentException('No post found for path: ' . $relativeOrAbsolutePath);
throw new PostNotFoundException('No post found for path: ' . $relativeOrAbsolutePath);
}
list($ignored, $frontMatter, $content) = explode('---', file_get_contents($path), 3);

View file

@ -0,0 +1,27 @@
---
category: daemon
title: Add Support for BitTorrent
award: 4000
status: available
date: '2016-07-01'
---
Add support for the BitTorrent protocol to [`lbry`](https://github.com/lbry).
The LBRY blockchain supports storing metadata about media content. A simplified, sample entry looks like:
```
title: "What is LBRY?",
language: "en",
description: "What is LBRY? An introduction with Alex Tabarrok",
author: "Samuel Bryan",
sources: {
lbry_sd_hash : "d5169241150022f996fa7cd6a9a1c421937276a3275eb912790bd07ba7aec1fac5fd45431d226b8fb402691e79aeb24b"
}
```
The `sources` field is designed to be extended and support resolution to multiple protocols. To complete this the LBRY daemon must be modified to:
- Support the BitTorrent protocol via `python-libtorrent` or similar.
- Read `btih` as a source key and use this key to access the data via BitTorrent when requested
- Probably a lot more stuff!

View file

@ -0,0 +1,11 @@
---
category: other
title: Custom Project
award: 250-20000+
status: available
date: '2016-07-01'
---
Have a great idea on how to improve or spread LBRY? Let's talk.
Come to us with a specific proposal of how you can help LBRY grow and we'll let you know what it's worth.

19
posts/bounty/lbry-club.md Normal file
View file

@ -0,0 +1,19 @@
---
category: human
title: LBRY Community Rep
award: 500
status: available
date: '2016-07-01'
---
Excited about LBRY? Earn some credits for it!
We're looking for people who can introduce and provide expertise to specific communities. This could be a college, music scene, city, or online community.
Participants in this program will:
- Receive invites for their group
- Receive additional credits to share with their group
- Communicate regularly with LBRY team members
This bounty is not open to anyone. Please contact [Jeremy](mailto:jeremy@lbry.io) and let him know what community you would like to introduce LBRY to.

View file

@ -0,0 +1,18 @@
---
category: code
title: Modified Block Explorer
award: 1500
status: available
date: '2016-07-01'
---
LBRY currently maintains and runs a block explorer at [explorer.lbry.io/](https://explorer.lbry.io/).
This explorer is a fork of Iquidus Explorer and is [on Github](https://github.com/lbryio/lbry-explorer).
Iquidus explorer is great, but does not currently support LBRY specific operations.
The explorer should be modified to:
- Display what LBRY name claims and supports
- Exploration of name claims in a way similar to transactions

View file

@ -0,0 +1,13 @@
---
category: osx
title: PKG Installer for OS X
award: 1500
status: available
date: '2016-07-01'
---
Currently, [`lbry`](https://github.com/lbry/lbry) is packaged as a DMG for OS X installs.
To claim this bounty, the install process should be done via a `.pkg` file instead.
This process must be done in a way that is repeatable in our CircleCI continuous integration environment.

View file

@ -0,0 +1,16 @@
---
category: human
title: Write, Broadcast or Share LBRY
award: 500
status: available
date: '2016-07-01'
---
This bounty is for writers, podcasters, streamers, or others in the media industry. To be eligible, you must:
- Create a piece of content about LBRY
- Have the content accessed by over 2,000 people
- Have over 100 of those people join the LBRY beta
We reserve the right to deny this bounty if we feel the article or generated traffic/signups are non-genuine.

View file

@ -0,0 +1,14 @@
---
category: code
title: Publish Open Content
award: 250-1000+
status: available
date: '2016-07-01'
---
There are a large number of open content sources. Everything from public domain movies on [Internet Archive](https://archive.org/details/movies)
to books from [Project Gutenberg](https://www.gutenberg.org/).
This project is to programmatically index, download, and port this content to the LBRY network.
Credits will vary on the difficulty and usefulness of the source. We will provide credits to reserve the names for content. You must open-source any code created for this bounty.

View file

@ -2,7 +2,7 @@
category: slack
title: Create a Slack Greeter
award: 250
status: available
status: complete
date: '2016-07-01'
---

View file

@ -0,0 +1,16 @@
---
category: design
title: Create Social Media Cover Images
award: 400
status: available
date: '2016-07-01'
---
The current background images on our [Twitter](https://twitter.com/lbryio) and [Facebook](https://facebook.com/lbryio) are the same stock photo
that is on our homepage. We'd like to do something a little more unique.
Candidate replacements could be either a photo or a graphic design. Either way, the image should:
- Connote what LBRY is about: openness and fun
- Be unique to LBRY or otherwise not in significant use
- Suitable for white or LBRY green (#155B4A) text on top

View file

@ -0,0 +1,18 @@
---
category: browser
title: Add Transaction History to LBRY Browser
award: 2000
status: available
date: '2016-07-01'
---
Add a screen showing transaction history the LBRY Browser [`lbry-web-ui`](https://github.com/lbry/lbry-web-ui).
The screen must:
- Display past outgoing and incoming transactions
- Link to the LBRY [block explorer](https://explorer.lbry.io) for transactions
The LBRY daemon already supports an API call, `get_transaction_history` to retrieve transaction history. While running LBRY, type the following in your browser console:
`lbry.call('get_transaction_history', {}, function(response) { console.log(response); });`

View file

@ -1,7 +1,7 @@
---
category: browser
title: Add Wallet Interface to LBRY Browser
award: 1000
award: 2000
status: complete
pr: https://github.com/lbryio/lbry-web-ui/pull/23/files
date: '2016-07-01'
@ -13,3 +13,4 @@ The interface must support:
- Generating a new wallet address.
- Sending a variable number of credits to a specified address from the active wallet.
- Displaying an address to receive credits

17
posts/bounty/web-i18n.md Normal file
View file

@ -0,0 +1,17 @@
---
category: web
title: Internationalization of lbry.io
award: 1000
status: available
date: '2016-07-01'
---
lbry.io already has a partial internationalization framework and some translations, but additional work is required before they can be enabled.
To complete this bounty, lbry.io must be modified to:
- Allow modification of your selected language in the navigation
- Storing selected language in the user session
- Reverse look-up your IP and choose a default language if a user has not selected one
[`lbry.io` on GitHub](https://github.com/lbryio/lbry.io)

View file

@ -1,22 +0,0 @@
---
category: human
title: Bug and Security Bounty
award: 10-10,000+
status: available
date: '2016-07-01'
---
LBRY will award LBC for all cleanly documented bugs, security vulnerabilities, or other flaws in LBRY's software, servers, infrastructure, or procedures.
Awards will be variable based on the severity of the issue. Any discoveries that risk exploitation of the LBRY network, it's users, or LBRY Inc. should be disclosed privately to [grin@lbry.io](mailto:grin@lbry.io).
Extremely severe discoveries will warrant commensurate awards. Typical bug discoveries will be at the bottom of the scale.
### Reporting a Bug
To report a bug, please open an Issue on the relevant Github project:
[`lbry-web-ui`](https://github.com/lbry/lbry-web-ui) - UI bugs or display issues
[`lbry`](https://github.com/lbry/lbry-web-ui) - Connection or hosting issues
[`lbrycrdd`](https://github.com/lbry/lbry-web-ui) - Blockchain related issues

View file

@ -23,4 +23,4 @@ The best place to get real-time help is our [Slack channel](https://slack.lbry.i
### I want to complete a bounty that is not listed.
Send an email our bounty team at [bounty@lbry.io](mailto:bounty@lbry.io).
Send an email to our bounty team at [bounty@lbry.io](mailto:bounty@lbry.io).

21
posts/faq/gpg-key.md Normal file
View file

@ -0,0 +1,21 @@
---
title: Do you have a GPG key?
category: other
---
[Yep, here it is](https://keybase.io/lbry/key.asc).
<pre><code id="keybase-key"></code></pre>
<script type="text/javascript">
try {
var request = new XMLHttpRequest();
request.open('GET', 'https://keybase.io/lbry/key.asc', true);
request.onload = function() {
if (request.status >= 200 && request.status < 400) {
el = document.getElementById('keybase-key');
el.textContent = request.responseText;
}
};
request.send();
} catch(e) {}
</script>

View file

@ -0,0 +1,36 @@
---
author: lbry
title: 'ShapeShift Adds LBRY Credits! Instant Conversion to Bitcoin, Ethereum, and More'
date: '2016-08-08 00:06:18'
---
*LBC now traded on the fastest, safest digital asset exchange in the world.*
As of today, LBRY Credits (LBC) are now available for exchange with other digital assets on [ShapeShift.io](https://shapeshift.io/#/coins). Using the groundbreaking service, anyone can exchange their preferred digital currency for LBRY Credits (LBC) instantly with no account, no emails, and no passwords.
![ShapeShift & LBRY](/img/news/shapeshift-lbry-logos.png)
ShapeShift founder and CEO [Erik Voorhees](https://en.wikipedia.org/wiki/Erik_Voorhees) commented on the announcement:
>“The world is improved by the existence of LBRY an innovative method of content dissemination and were honored to add it to ShapeShift. Ive been watching the LBRY project for months, and am thrilled to make it instantly available for trading with all other leading digital assets.”
Following the [July 4th launch](https://lbry.io/news/beta-live-declare-independence-big-media) of LBRYs beta and live blockchain, LBRY Credits have been listed on both the well-known [Bittrex](https://www.bittrex.com/Market/Index?MarketName=BTC-LBC) and [Poloniex](https://poloniex.com/exchange#btc_lbc) exchanges. This gave cryptocoin markets global access to LBC. As a result, the appcoins value has gone from essentially nothing to todays trading price of about US$0.26. On top of that, the hashrate of the LBRY blockchain grew by 693,000% in the first 10 days after the launch of beta, and another 2X since then to about 1.7 TH/s today.
Listing on ShapeShift is expected to bring additional depth and liquidity to LBC. ShapeShift is widely considered the most convenient digital asset exchange, and it also expands the potential of LBRY through its application programming interfaces (APIs). These will allow any developer to integrate LBC into third-party wallets and software platforms that are primarily designed around Bitcoin.
**While this is big news for LBC as a digital asset, it also has bearing on LBRYs core purpose to enable content creators to connect with their fans.**
One of LBRYs hurdles to mainstream acceptance a barrier the founders have anticipated from the beginning is making LBC a truly useful method of payment. *Youre a brilliant filmmaker who has just released his feature-length film on LBRY, and its a hit! The LBC are flowing into your wallet. Now what do you do with them?*
With ShapeShift, anyone who holds LBC will be able to quickly and securely exchange them for another cryptocurrency, such as Bitcoin. From there, creators can spend them anywhere Bitcoin is accepted including Overstock, Amazon (via Purse), Gyft, Expedia, and a rapidly increasing number of brick-and-mortar stores.
And that process works in reverse. Content consumers will now be able to easily acquire LBC to make purchases on LBRY.
>”ShapeShift has dramatically lowered transaction costs between cryptocoins, creating a kind of 'universal translator' that allows people to use specialized coins for particular purposes but enjoy the benefits of Bitcoin's widespread use. It is an important milestone to have LBRY Credits listed there, and we are exploring ways to integrate ShapeShift into the LBRY protocol.” **- Mike Vine, LBRY Evangelist**
**About ShapeShift**
ShapeShift is how blockchain asset exchange should work. From start to finish users can convert digital assets in seconds, with no account required. No emails or passwords. No lengthy sign­up process. No accounts. No bid and ask orders. No friction. ShapeShift's goal is to be the fastest, safest, and most convenient way to trade digital assets. [ShapeShift Press Kit](https://info.shapeshift.io/press).
**About LBRY**
LBRY is a content-sharing and publishing platform that is decentralized and owned by its users. It allows content creators to post their works to the hosting network, set their price per view/download, and collect payment in a new cryptocoin called LBRY Credits. Since LBRY is a protocol as opposed to a centralized service, there is no entity to take a “cut” of transactions or change the terms in an attempt to “monetize” the product. Its like a new extension of the internet for delivering all media films, ebooks, songs, and apps from creators directly to consumers with radical efficiency. [LBRY Press Kit](https://lbry.io/press-kit)

View file

@ -0,0 +1,32 @@
---
author: lbry
title: 'LBRY Brings You the Fight of the Century'
date: '2016-08-10 00:06:18'
---
LBRY is the junction where creativity and economics meet. Its a place to share, but also a carefully designed marketplace to *reward* creators for their efforts. [Learn more about the economics of LBRY here](https://lbry.io/what). Thats why we are so pleased to have as a featured video, *Fight of the Century: Keynes vs. Hayek Rap Battle.*
![Keynes vs. Hayek Rap Battle](/img/keyneshayek500.png)
*Fight of the Century* depicts a musical debate between economic heavyweights [Friedrich Hayek](https://en.wikipedia.org/wiki/Friedrich_Hayek) and [John Maynard Keynes](https://en.wikipedia.org/wiki/John_Maynard_Keynes). The film brilliantly contrasts Keynes penchant for government interventionism with Hayeks free market approach. Its a rap battle pitting central planning against spontaneous order.
Now this may sound like a real snoozer, but if youre one of the millions of people who have watched the film, you know its anything but.
John Papola and Russ Roberts released the video in 2010. It does the seemingly impossible: make economic principles fun and entertaining. The characterizations are as sharp as they are hilarious. Keynes comes off as the publicly adored playboy and Hayek as the oft-snubbed underdog.
And it really is a rap battle!
Papola and Roberts brought some serious street-cred to the project and strike the perfect balance between nerdy and funny. Papola worked as a creative director at SpikeTV and learned Austrian economics listening to podcasts on his commute. Roberts is an economist affiliated with the [Mercatus Center at George Mason University](http://mercatus.org/).
Papolas aptly named company [Emergent Order](http://emergentorder.com/) signed on as a featured content provider before [our beta launch on July 4](https://lbry.io/news/beta-live-declare-independence-big-media). The production company creates everything from feature films to virtual reality experiences. They call themselves “geeks with a heart.”
EOs latest project is their first feature-length film: *[At The Fork](http://www.attheforkfilm.com/)* “a film about husbandry and wife”. It stars Papola himself and his wife, Lisa Versaci, who “offer up a timely, entertaining, and unbiased look at how farm animals are raised for food.” EO has partnered with some big names to produce it Whole Foods Market and The Humane Society of the United States. It was released just last month, and its already getting great reviews [8.3 stars on IMDB](http://www.imdb.com/title/tt5726712/) and [100% critic reviews on Rotten Tomatoes](https://www.rottentomatoes.com/m/at_the_fork/).
With your help, LBRY may one day add *At The Fork* to its featured content, as well as EOs other amazing works.
If youve received a LBRY beta invite, you can do us and yourself a favor by heading to [lbry://keynesvhayek](lbry://keynesvhayek) and watching *Fight of the Century: Keynes vs. Hayek Rap Battle* right now!
We think youll enjoy it, and your views will help prove to intrepid creators like EO that LBRY is the future of content distribution.
*Still waiting on your LBRY Beta invite? [Submit your original creative works](https://lbry.io/publish) for a chance to jump the queue and receive $1000 in LBRY Credits.*

View file

@ -0,0 +1,29 @@
---
author: lbry
title: 'Adult Swim's Million Dollar Extreme Joins LBRY'
date: '2016-08-11 00:06:18'
cover: 'mde.jpg'
---
[MillionDollarExtreme (MDE)](https://en.wikipedia.org/wiki/Million_Dollar_Extreme) is the first comedy series to become a [LBRY publishing partner](https://lbry.io/publish). MDE's classics are being added to LBRY, and you can start with:
- *[Sam Hydes 2070 Paradigm Shift](lbry://samhyde2070)* The ultimate TEDx troll; an instant internet classic.
- *[College Cunts](lbry://collegecunts)* Practical and expertly vulgar advice for would-be college students.
![Sam Hydes 2070 Paradigm Shift](/img/news/mde-sam-hyde.png)
MDE is a comedy sketch group featuring Sam Hyde, Charles Carroll, and Nick Rochefort. Their signature, fast-paced style of random jump-cuts, meaningless text overlays, crude humor, and nonsensical characters pushed boundaries several years ago. Now its practically internet gospel for cutting-edge satire and comedy.
MDE has since exploded from extremely super humble origins on YouTube to Adult Swim darlings, following in the footsteps of *[Tim & Eric](https://en.wikipedia.org/wiki/Tim_%26_Eric)* and *[Wonder Showzen](https://en.wikipedia.org/wiki/Wonder_Showzen)*.
In fact, tomorrow night you can catch episode two of their brand new Adult Swim series *[MillionDollarExtreme Presents: World Peace](http://www.adultswim.com/videos/schedule)*. Tune in at 9:15 PM PT on Friday and 12:45 AM PT on Saturday.
**When you're done, check out their O.G. videos.** Look for the following titles on LBRY:
- *[Williamsburg Fashion series](lbry://WilliamsburgFashion1)*
- *[Boston Ross](lbry://BostonRoss)*
- *[IDEAS Man](lbry://IDEASman)*
- *[LA Street Fashion series](lbry://LAstreetFashion1)*
**Not on LBRY yet?** [Get an invite here](https://lbry.io/get). Just cant wait? If youre a creator filmmaker, musician, artist, writer you can skip our waiting list line and earn $1,000 in LBRY Credits at the same time. [Learn more here](https://lbry.io/publish).

View file

@ -2,7 +2,7 @@
<?php NavActions::setNavUri('/learn') ?>
<?php echo View::render('nav/_header', ['isDark' => false]) ?>
<main>
<div class="hero hero-quote hero-img hero-img-short spacer1" style="background-image: url(/img/fireworks.png)">
<div class="hero hero-quote hero-img hero-img-short spacer1" style="background-image: url(/img/gold-piles.jpg)">
<div class="hero-content-wrapper">
<div class="hero-content text-center">
<h1 class="cover-title">LBRY Bounties</h1>
@ -39,19 +39,25 @@
</section>
<section class="content content-light">
<?php if (count($bounties)): ?>
<div class="tile-fluid clearfix spacer2">
<div class="row-fluid">
<?php $index = 0 ?>
<?php foreach($bounties as $post): ?>
<?php $metadata = $post->getMetadata() ?>
<div class="span4">
<a class="bounty-tile" href="<?php echo $post->getRelativeUrl() ?>">
<div class="text-center spacer-half"><span class="icon-mega
<?php switch($metadata['category']) {
case 'ci': echo 'icon-wrench'; break;
case 'android': echo 'icon-android'; break;
case 'ios': echo 'icon-apple'; break;
case 'osx':
case 'ios':
echo 'icon-apple'; break;
case 'browser': echo 'icon-globe'; break;
case 'web': echo 'icon-link'; break;
case 'daemon': echo 'icon-server'; break;
case 'human': echo 'icon-users'; break;
case 'slack': echo 'icon-slack'; break;
case 'code': echo 'icon-code'; break;
case 'design': echo 'icon-image'; break;
default: echo 'icon-dollar'; break;
} ?>
"></span></div>
@ -59,6 +65,9 @@
<?php echo View::render('bounty/_meta', ['metadata' => $metadata]) ?>
</a>
</div>
<?php if (++$index % 3 == 0): ?>
</div><div class="row-fluid">
<?php endif ?>
<?php endforeach ?>
</div>
<?php else: ?>

View file

@ -34,6 +34,10 @@
<div class="spacer1">
<a href="/faq/bounties">Read the FAQ</a>
</div>
<h4>Want Live Help?</h4>
<div class="spacer1">
<a href="http://slack.lbry.io" class="link-primary">Join Our Chat</a>
</div>
<?php endif ?>
</section>
</div>

View file

@ -5,7 +5,7 @@
<a href="/<?php echo $prevPost->getRelativeUrl() ?>" class="link-primary"> {{news.prev}}</a>
</div>
<div class="meta">
<a href="/<?php echo $prevPost->getRelativeUrl() ?>">
<a class="prev-next-title" href="/<?php echo $prevPost->getRelativeUrl() ?>">
<?php echo htmlentities($prevPost->getTitle()) ?>
</a>
</div>

View file

@ -54,7 +54,7 @@
<p>While creating a protocol that we ourselves cannot control sounds chaotic, it is actually about establishing trust. Every other publishing system requires trusting an intermediary that can unilaterally change the rules on you. What happens when you build your business on YouTube or Amazon and they change fees? Or Apple drops your content because the Premier of China thought your comedy went too far?</p>
<p>Only LBRY consists of a known, promised set of rules that no one can unilaterally change. LBRY provides this by doing something unique: leaving the <em>users</em> in control rather than demanding that control for itself.</p>
<footer id="note-decentralized"><sup>2</sup>If it worries you that LBRY's decentralized nature facilitates infringing or unsavory content, this is addressed in <a class="link-primary" Cohref="#combatting-the-ugly">Combatting the Ugly</a>.</footer>
<footer id="note-decentralized"><sup>2</sup>If it worries you that LBRY's decentralized nature facilitates infringing or unsavory content, this is addressed in <a class="link-primary" href="#combatting-the-ugly">Combatting the Ugly</a>.</footer>
</section>
<section>
<h2 id="sample-use">A Sample Use</h2>

View file

@ -0,0 +1 @@
google-site-verification: google164701be10959176.html

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

BIN
web/img/blog-covers/mde.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
web/img/gold-piles.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB

BIN
web/img/news/reflector.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View file

@ -23,10 +23,15 @@ try
}
Controller::dispatch(strtok($_SERVER['REQUEST_URI'], '?'));
}
catch(Exception $e)
catch(Throwable $e)
{
if (IS_PRODUCTION)
{
$slackErrorNotificationUrl = Config::get('slack_error_notification_url');
if ($slackErrorNotificationUrl)
{
Curl::post($slackErrorNotificationUrl, ['text' => '<!everyone> ' . $e->__toString()], ['json_data' => true]);
}
throw $e;
}

View file

@ -97,6 +97,9 @@
margin-right: auto;
max-width: $max-post-content-width;
margin-bottom: $spacing-vertical * 2;
padding-left: $content-side-padding;
padding-right: $content-side-padding;
a[href]:not([class])
{
@include anchor($color-primary);

View file

@ -19,7 +19,8 @@ pre
margin-bottom: $spacing-vertical;
border-left: .3rem solid $color-primary;
padding: 10px 20px;
white-space: pre-wrap;
//white-space: pre-wrap;
overflow-x: auto;
}

View file

@ -25,8 +25,8 @@
max-width: $max-text-width + 200;
}
padding-left: 15px;
padding-right: 15px;
padding-left: $content-side-padding;
padding-right: $content-side-padding;
h1, h2, h3, h4
{

View file

@ -19,6 +19,8 @@ $max-post-content-width: 800px;
$font-header: 'Raleway', sans-serif;
$font-body: 'Raleway', sans-serif;
$content-side-padding: 15px;
@mixin anchor($color)
{
color: $color;