Giter Site home page Giter Site logo

hnjm / popblog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from popworldmedia/popblog

1.0 2.0 0.0 311 KB

A generic blog/podcast template for sharing your content in a lightweight way.

License: MIT License

C# 69.94% TSQL 2.27% HTML 21.40% JavaScript 6.28% CSS 0.11%

popblog's Introduction

POP Blog

This is a lightweight blog app that uses ASP.NET Core, SQL Server and Azure storage for podcast files.

Roadmap

The intention for v1 is to do simple blog posts, RSS, optional attachments, storage of podcast files in Azure storage. It will be done when it has been placed in several production applications. So far it's on my blog and the CoasterBuzz Podcast.

About this project

This is based roughly on my personal blog, which was first posted in the late oughts as an ASP.NET Webforms app, eventually converted to MVC and then ASP.NET Core after that. It's a little crusty, but it's super simple. It's not a SPA because the public side is all text, and the admin side is too simple to bother. I open sourced it because I needed a basic aggregator for a few projects, and wanted to use a Razor class library and just override the layout with the appropriate header and CSS to skin it as necessary.

Getting started

Run the database project by passing your database connection string as the only parameter, and dbup will magically make the schema current.

The MVC project can be used as a class library to feed your web app by referencing the project. Override views with your own markup in the web project, along with your assets and such. Even better, go the package route.

Go the package route

The latest CI build NuGet package feed for the MVC project is here:
https://www.myget.org/F/popblog/api/v3/index.json

Build Status

The latest CI Build npm package feed for the meager script needs is here:
https://www.myget.org/F/popblog/npm/
You'll need to do copying of the various files, which the project views expect to be in /lib/{packagename}.

Upload size limits

If you plan to use the podcast serving mechanism and run the app on an IIS-based service (including Windows-based Azure App Services), you'll need to figure out how to raise the request size limit in old-fashioned web.config. This answer on StackOverflow should help. This is necessary to upload large files via the admin.

What's in appsettings.json?

  • PopBlogConnectionString: The connection string to your database. For local dev, use something like server=localhost;Database=popblog;Trusted_Connection=True;.
  • ReCaptchaSiteKey and ReCaptchaSecretKey: You'll need these from Google reCAPTCHA to help avoid comment spam.
  • BlogTitle: This appears after a hyphen on all of the page <title> tags.
  • BlogDescription: This appears in the <h1> of the blog home page, and in front of the hyphen on the home page <title>.
  • TimeZone: And integer represnting the time zone you want all of the times to be set for. For example, -5 is US Eastern Time. It will adjust during Daylight Saving.

If you're using this to serve a podcast, you're going to need this stuff, too. Don't yell at me, Apple wants this stuff:

  • StorageConnectionString: The connection string to your Azure Storage Account where the blobs go. Use UseDevelopmentStorage=true for the local storage emulator. Remember that you need to set your storage container to have anonymous read access.
  • StorageContainerName: The container in your blob storage where you're gonna drop your podcast masterpieces. Make sure the container is publicly accessible, or your users will be 403'd.
  • StorageAccountBaseUrl: The base URL for where your blob container is. For local, it's probably http://127.0.0.1:10000/devstoreaccount1, for a production location, it's something like https://[storageaccountname].blob.core.windows.net. Do not include the trailing slash.
  • Language: The two-letter ISO 639 code for the language of your podcast. Defaults to en.
  • FeedImageUrl: Location of your feed image.
  • ItunesCategory: From Apple's list of categories.
  • ItunesExplicit: Boolean to let Apple know if you use naughty words.
  • Author: Appears in the channel definition for Apple. Put your company name or other entity here.
  • OwnerName and OwnerEmail: More things to let Apple know who you are. They're kind of high maintenance.
  • IsUsingDirectDownload: Skip the counter and redirect and link directly to the file in storage. This is for services like Apple that demand random access to the file itself.

popblog's People

Contributors

dependabot[bot] avatar jeffputz avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.