diff --git a/changelog.md b/changelog.md index eb5e051..663b675 100644 --- a/changelog.md +++ b/changelog.md @@ -6,9 +6,10 @@ - Added a button to quickly share your brew to reddit :) - Disabled Partial Page Rendering unless your brew hits 75 pages or longer - The brew renderer will now try and use your first page to judge the page size of each of your brews. This allows you now to set landscape and other weird sizes and everthing should work fine :) -- UI on the user page improved slightly +- UI on the user page improved (thanks u/PalaNolho) - Fixed lists not breaking across columns (thanks u/tyson-nw) -- +- Added a table of contents snippet (thanks u/tullisar) +- Added a multicolumn snippet diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 174143e..7e1c432 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -16,6 +16,8 @@ const BrewRenderer = React.createClass({ }; }, getInitialState: function() { + const pages = this.props.text.split('\\page'); + return { viewablePageNumber: 0, height : 0, @@ -23,7 +25,8 @@ const BrewRenderer = React.createClass({ usePPR : true, - pages : [], + pages : pages, + usePPR : pages.length >= PPR_THRESHOLD, errors : [] }; diff --git a/client/homebrew/pages/sharePage/sharePage.jsx b/client/homebrew/pages/sharePage/sharePage.jsx index 6bf1e58..c15a8ec 100644 --- a/client/homebrew/pages/sharePage/sharePage.jsx +++ b/client/homebrew/pages/sharePage/sharePage.jsx @@ -5,6 +5,7 @@ const cx = require('classnames'); const Nav = require('naturalcrit/nav/nav.jsx'); const Navbar = require('../../navbar/navbar.jsx'); const PrintLink = require('../../navbar/print.navitem.jsx'); +const ReportIssue = require('../../navbar/issue.navitem.jsx'); //const RecentlyViewed = require('../../navbar/recent.navitem.jsx').viewed; const Account = require('../../navbar/account.navitem.jsx'); @@ -34,10 +35,12 @@ const SharePage = React.createClass({ }, handleControlKeys : function(e){ if(!(e.ctrlKey || e.metaKey)) return; - e.stopPropagation(); - e.preventDefault(); const P_KEY = 80; - if(e.keyCode == P_KEY) window.open(`/print/${this.props.brew.shareId}?dialog=true`, '_blank').focus(); + if(e.keyCode == P_KEY){ + window.open(`/print/${this.props.brew.shareId}?dialog=true`, '_blank').focus(); + e.stopPropagation(); + e.preventDefault(); + } }, render : function(){ @@ -48,6 +51,7 @@ const SharePage = React.createClass({ + {/**/} diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.jsx b/client/homebrew/pages/userPage/brewItem/brewItem.jsx index c74a736..fe694b2 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/userPage/brewItem/brewItem.jsx @@ -15,23 +15,39 @@ const BrewItem = React.createClass({ }; }, + renderEditLink: function(){ + if(!this.props.brew.editId) return; + + return + + + }, + render : function(){ const brew = this.props.brew; - return
-

{brew.title}

-

{brew.description}

+ return
+

{brew.title}

+

{brew.description}


-
    -
  • Authors: {brew.authors.join(', ')}
  • -
  • - Last updated: - {moment(brew.updatedAt).fromNow()} -
  • -
  • Views: {brew.views}
  • -
- Share link - {(!!brew.editId ? Edit link : null)} +
+ + {brew.authors.join(', ')} + + + {brew.views} + + + {moment(brew.updatedAt).fromNow()} + +
+ +
+ + + + {this.renderEditLink()} +
} }); diff --git a/client/homebrew/pages/userPage/brewItem/brewItem.less b/client/homebrew/pages/userPage/brewItem/brewItem.less index b0d307f..3dcbd50 100644 --- a/client/homebrew/pages/userPage/brewItem/brewItem.less +++ b/client/homebrew/pages/userPage/brewItem/brewItem.less @@ -1,21 +1,60 @@ .brewItem{ + position : relative; display : inline-block; vertical-align : top; box-sizing : border-box; - width : 30%; + box-sizing : border-box; + overflow : hidden; + width : 48%; + margin-right : 15px; margin-bottom : 15px; + padding : 5px 15px 5px 8px; padding-right : 15px; + border : 1px solid #c9ad6a; + border-radius : 5px; -webkit-column-break-inside : avoid; page-break-inside : avoid; break-inside : avoid; - p.description{ - //overflow : hidden; - //width : 90%; - //text-overflow : ellipsis; - white-space : nowrap; + h4{ + margin-bottom : 5px; + font-size : 2.2em; } - a{ - margin-right : 10px; + .info{ + font-family : ScalySans; + font-size : 1.2em; + &>span{ + margin-right : 15px; + } + } + &:hover{ + .links{ + opacity : 1; + } + } + &:nth-child(2n + 1){ + margin-right : 0px; + } + .links{ + .animate(opacity); + position : absolute; + top : 0px; + right : 0px; + height : 100%; + width : 2em; + opacity : 0; + background-color : fade(black, 60%); + text-align : center; + a{ + .animate(opacity); + display : block; + margin : 8px 0px; + opacity : 0.6; + font-size : 1.3em; + color : white; + &:hover{ + opacity : 1; + } + } } } \ No newline at end of file diff --git a/client/homebrew/pages/userPage/userPage.jsx b/client/homebrew/pages/userPage/userPage.jsx index 4756da7..6d583e9 100644 --- a/client/homebrew/pages/userPage/userPage.jsx +++ b/client/homebrew/pages/userPage/userPage.jsx @@ -26,9 +26,11 @@ const UserPage = React.createClass({ }, renderBrews : function(brews){ - if(!brews || !brews.length) return
No Brews.
+ if(!brews || !brews.length) return
No Brews.
; - return _.map(brews, (brew, idx) => { + const sortedBrews = _.sortBy(brews, (brew)=>{ return brew.title; }); + + return _.map(sortedBrews, (brew, idx) => { return }); }, diff --git a/client/homebrew/pages/userPage/userPage.less b/client/homebrew/pages/userPage/userPage.less index 3bab937..dcd0d63 100644 --- a/client/homebrew/pages/userPage/userPage.less +++ b/client/homebrew/pages/userPage/userPage.less @@ -27,6 +27,7 @@ font-size : 1.3em; font-style : italic; } + } } } \ No newline at end of file diff --git a/package.json b/package.json index 4675d0d..e67844d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "homebrewery", "description": "Create authentic looking D&D homebrews using only markdown", - "version": "2.5.2", + "version": "2.6.0", "scripts": { "build": "node_modules/.bin/gulp prod", "watch": "node_modules/.bin/gulp",