123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- <template>
- <footer class="page-edit">
- <div class="edit-link" v-if="editLink">
- <a :href="editLink" target="_blank" rel="noopener noreferrer">{{ editLinkText }}</a>
- <OutboundLink />
- </div>
- <div class="last-updated" v-if="lastUpdated">
- <span class="prefix">{{ lastUpdatedText }}:</span>
- <span class="time">{{ lastUpdated }}</span>
- </div>
- </footer>
- </template>
- <script>
- import isNil from 'lodash/isNil'
- import { endingSlashRE, outboundRE } from '../util'
- export default {
- name: 'PageEdit',
- computed: {
- lastUpdated () {
- return this.$page.lastUpdated
- },
- lastUpdatedText () {
- if (typeof this.$themeLocaleConfig.lastUpdated === 'string') {
- return this.$themeLocaleConfig.lastUpdated
- }
- if (typeof this.$site.themeConfig.lastUpdated === 'string') {
- return this.$site.themeConfig.lastUpdated
- }
- return 'Last Updated'
- },
- editLink () {
- const showEditLink = isNil(this.$page.frontmatter.editLink)
- ? this.$site.themeConfig.editLinks
- : this.$page.frontmatter.editLink
- const {
- repo,
- docsDir = '',
- docsBranch = 'master',
- docsRepo = repo
- } = this.$site.themeConfig
- if (showEditLink && docsRepo && this.$page.relativePath) {
- return this.createEditLink(
- repo,
- docsRepo,
- docsDir,
- docsBranch,
- this.$page.relativePath
- )
- }
- return null
- },
- editLinkText () {
- return (
- this.$themeLocaleConfig.editLinkText
- || this.$site.themeConfig.editLinkText
- || `Edit this page`
- )
- }
- },
- methods: {
- createEditLink (repo, docsRepo, docsDir, docsBranch, path) {
- const bitbucket = /bitbucket.org/
- if (bitbucket.test(repo)) {
- const base = outboundRE.test(docsRepo) ? docsRepo : repo
- return (
- base.replace(endingSlashRE, '')
- + `/src`
- + `/${docsBranch}/`
- + (docsDir ? docsDir.replace(endingSlashRE, '') + '/' : '')
- + path
- + `?mode=edit&spa=0&at=${docsBranch}&fileviewer=file-view-default`
- )
- }
- const base = outboundRE.test(docsRepo)
- ? docsRepo
- : `https://github.com/${docsRepo}`
- return (
- base.replace(endingSlashRE, '')
- + `/edit`
- + `/${docsBranch}/`
- + (docsDir ? docsDir.replace(endingSlashRE, '') + '/' : '')
- + path
- )
- }
- }
- }
- </script>
- <style lang="stylus">
- @require '../styles/wrapper.styl'
- .page-edit
- @extend $wrapper
- padding-top 1rem
- padding-bottom 1rem
- overflow auto
- .edit-link
- display inline-block
- a
- color lighten($textColor, 25%)
- margin-right 0.25rem
- .last-updated
- float right
- font-size 0.9em
- .prefix
- font-weight 500
- color lighten($textColor, 25%)
- .time
- font-weight 400
- color #aaa
- @media (max-width: $MQMobile)
- .page-edit
- .edit-link
- margin-bottom 0.5rem
- .last-updated
- font-size 0.8em
- float none
- text-align left
- </style>
|