Skip to content
A blog built with ASP.NET Core
C# CSS HTML JavaScript TSQL
Branch: master
Clone or download

Latest commit

FanrayMedia feat: Pages and Navigation (#361)
* Serve static assets from Razor class libraries (#337)

* feat: Serve static assets from Plugins #336

* feat: Serve static assets from Clarity theme #336

* feat: Clean up extensions of client assets #336

* First system plugin Editor.md (#344)

* feat: Editor.md plugin #338

* feat: SysPlugins #340

* Page and Navigation before upgrade to Core 3.0 (#352)

* fix: Upgrade babeljs to v7.5.5 #332

* feat: Expand exception types to cover unique constraint #332

* #refactor: DateTimeOffsetExtensions #332

* #feat: Update Slugify with maxlen param #332

* #feat: Add system defined widget areas for page #332

* feat: Update SqlPostRepository for Delete and GetList #332

* feat: PostTitleValidator #332

* feat: Page composer and Pages initial commit #332

* feat: Clarity theme new layout to accommodate page #332

* test: Update tests for pages #332

* feat: Update Editor.md plugin with highlight.js #338

* refactor: IsValidExtensionFolder to ExtensibleService #338

* refactor: Update Editor.md partial view names #338

* fix: Make Editor.md output markup that works with hljs #338

* feat: Page layouts #348

* feat: Page Service #346

* refactor: BlogPostService validation update due to PageService #346

* feat: Page routing and shortcodes #332

* feat: PageNavigation Widget #349

* feat: Page composer #341

* feat: Admin Panel Pages #350

* feat: Update Clarity theme with page layout #348

* feat: Add PageNavigation Widget proj ref #349

* feat: Update Admin UI styles #332

* refactor: Add Navigation page and update Compose page #332

* refactor: Move post composer to Compose folder #332

* fix: Html encode / decode post excerpt and page body #332

* refactor: Use Humanizer instead of ByteSize for file size calculation #347

* feat: Site Navigation #333

* chore: Update to latest nuget pkgs #332

* feat: Add caching to Site Navigation #333

* fix: Filter script, iframe, on handler from input html #338

* style: Adjust Clarity theme heading styles #332

* fix: Compose post preview post url #332

* style: Tweak admin styling #332

* feat: Make navigation menu collapsable #333

* feat: Update PageLayout naming convention #348

* feat: Update blog category route to support multi-blog #332

* refactor: View models in Fan.Web #332

* refactor: Remove Content Include from all ext csprojs #332

* feat: Add view count, fix post date, refactor view models #332

* feat: Add caching to get post, fix post CreatedOn comparison #332

* feat: Update menu when nav is updated or deleted #333

* fix: RecentBlogPosts widget shows incorrect num of posts #334

* feat: Add cosmetics fixes to pages #332

* feat: Add custom links to navigation #333

* feat: Allow SysPlugin to activate #340

* feat: NavigationService update Home and Menus when nav changes #333

* style: Minor comment update on EntityRepo's Create operation #332

* fix: Update Read More styles in Clarity theme #332

* feat: Db changes for preview4 #332

* chore: v1.1-preview4 #332

* test: Update tests for linux build #332

* fix: Test warnings #332

* fix: Remove RecursiveDir from razor class libs #332

* fix: Update appveyor to vs 2019

* fix: appveyor.yml version number #332

* fix: Update travis.yml dotnet version to 3 #332

* fix: Update travis dotnet version back to 2.2.401 #332

* fix: Non-trailing named arguments for azure pl macOS #332

* build: Update azure pl for linux and mac #332

* feat: Reverse order of parsing shortcode then nav link for pages #332

* feat: Make Shortcodes a system plugin #343

* build: Fix extension csproj and json files #332

* fix: Remove checking active plugin for Shortcodes #343

* build: Remove Content ItemGroup from csproj #332

* fix: Make sure plugin rows are up to date in sql #345

* Migrate to .NET Core 3.1 (#356)

* Migrate to .NET Core 3.1 #353

* build: Update travis and appveyor yml files #353

* fix: Use IsClustered instead of the deprecated #353

* build: Update azure-pipelines.yml #353

* build: Update azure-pipelines.yml #353

* build: Turning off logging in tests #353

* build: Add if debug to Startup #353

* build: Add if debug to Startup #353

* build: Update azure pipelines to 3.1.100 #353

* build: yml file update #353

* build: appveyor.yml update --verbosity d #353

* build: Add xunit.runner.json #353

* build: Fix yml files for builds #353

* feat: Upgrade CKEditor to v16 #353

* build: Fix Startup.cs #353

* fix: Move link.svg icon into SocialIcons widget #353

* test: Fix integration test with time now #353

* test: Separate IsValidEmail tests into two theories #353

* fix: Add sql lang to editor code block #353

* upgrade: Update bootstrap to v4.4.1 #353

* chore: Update vue, vuex, vuetify and axios to latest #353

* chore: Update Sortable and Vue.Draggable to latest #353

* style: Update Admin Widgets with better styles #353

* chore: Update azure pipeline branch to dev in README #353

* test: Update test to better test exception #353

* feat: Allow draft page to preview #353

* test: Better way to test exception message #354

* ui: Fix admin cats and tags dialog styles #332

* fix: Autosave only when there is post content #332

* fix: Pagination when blog app is set as home #333

* style: Update Clarity content styles #332

* fix: Page preview issues #332

* fix: Image sizes #332

* style: Fix headings styles #332

* fix: ImageServiceTest srcset sizes #332

* fix: The html <title> tag value for different navigation types #357

* fix: PageNavigation component show in preview #332

* fix: Page and composer styles, NavLinks #332

* test: Remove Visitor_sees_BlogPost_date_in_humanized_string test #332

* fix: Styles on code in table #332

* feat: Add site menu to Admin Panel #332

* fix: Update plugin detail URL #332

* style: Update theme.png #332

* fix: content list and table styles #332

* docs: README, CONTRIBUTING, github templates #332

* feat: Extract content of sample data out of Setup #359

* docs: Add FUNDING.yml #360

* fix: Setup about page content #359
Latest commit fdbe1cc Feb 8, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github feat: Pages and Navigation (#361) Feb 8, 2020
sql feat: Pages and Navigation (#361) Feb 8, 2020
src feat: Pages and Navigation (#361) Feb 8, 2020
test feat: Pages and Navigation (#361) Feb 8, 2020
.gitattributes Added .gitattributes Aug 15, 2017
.gitignore Extensible Architecture (#321) Jun 4, 2019
.travis.yml feat: Pages and Navigation (#361) Feb 8, 2020
CONTRIBUTING.md feat: Pages and Navigation (#361) Feb 8, 2020
Fanray.sln feat: Pages and Navigation (#361) Feb 8, 2020
LICENSE #79 Update license to Apache License 2.0 Nov 27, 2017
README.md feat: Pages and Navigation (#361) Feb 8, 2020
appveyor.yml feat: Pages and Navigation (#361) Feb 8, 2020
azure-pipelines.yml feat: Pages and Navigation (#361) Feb 8, 2020

README.md

Fanray

A simple and elegant blog

ScreenshotsFeaturesQuick StartContributeLicense

AppVeyor Azure Pipelines Travis CI

Screenshots

Features

Please see Docs for more details.

Blog Infrastructure
Autosave Draft Preview Caching
Categories Rich Text / Markdown Error Handling
Comments (Disqus) RSS Events
Google Analytics SEO Extensibility (Plugin, Widget, Theme)
Media Gallery Shortcodes Image Resizing
Navigation Site Installation Logging (File, Seq, Application Insights)
Open Live Writer Tags Responsive Images
Pages Theme Settings
Plugins Users Storage (File System, Azure Blob Storage)
Posts Widgets Testing (Unit, Integration)
Preferred Domain

Quick Start

Fanray v1.1 runs on .NET Core 3.1 and SQL Server. Any of the free SQL Server editions, LocalDB, Express, Developer will be sufficient.

Clone the repo then run from either VS2019 or command line.

  • VS2019: open Fanray.sln, make sure Fan.WebApp is the startup project, Ctrl + F5
  • Command line: do the following, then go to https://localhost:5001
cd <sln folder>
dotnet restore
cd src/Core/Fan.WebApp
dotnet run

Database is created for you on app initial launch. Below is the default connection string, to adjust it go to appsettings.json

"ConnectionStrings": {
  "DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=Fanray;Trusted_Connection=True;MultipleActiveResultSets=true"
},

Note the 404 page is only displayed in Production when an invalid URL is accessed, in Development the developer exception page is shown.

Contribute

Please refer to Contributing Guide.

Support Me

If you find this project useful please consider support it, your contribution will help a lot! Thank you!

Buy Me A Coffee

PayPal Me

License

Apache 2.0

You can’t perform that action at this time.