forked from KEMT/zpwiki
		
	gitsyncrepolink
This commit is contained in:
		
							parent
							
								
									5573c4a9cf
								
							
						
					
					
						commit
						641453858c
					
				@ -16,3 +16,79 @@ license: MIT
 | 
			
		||||
 | 
			
		||||
dependencies:
 | 
			
		||||
  - { name: grav, version: '>=1.6.0' }
 | 
			
		||||
  - git-sync
 | 
			
		||||
form:
 | 
			
		||||
  validation: loose
 | 
			
		||||
  fields:
 | 
			
		||||
    tabs:
 | 
			
		||||
      type: tabs
 | 
			
		||||
      active: 1
 | 
			
		||||
      fields:
 | 
			
		||||
        gitsynclink_options:
 | 
			
		||||
          type: tab
 | 
			
		||||
          title: 'Git Sync Link'
 | 
			
		||||
          fields:
 | 
			
		||||
            gitsyncsetup:
 | 
			
		||||
              type: section
 | 
			
		||||
              title: Setup
 | 
			
		||||
              underline: true
 | 
			
		||||
            display_of_git_sync_repo_link:
 | 
			
		||||
              type: select
 | 
			
		||||
              size: medium
 | 
			
		||||
              classes: fancy
 | 
			
		||||
              label: 'Location of Git Sync Link'
 | 
			
		||||
              default: menu
 | 
			
		||||
              options:
 | 
			
		||||
                menu: Menu
 | 
			
		||||
                page: 'Page (visible when ''Chromeless'')'
 | 
			
		||||
                footer: Footer
 | 
			
		||||
                none: None
 | 
			
		||||
            type_of_git_sync_repo_link:
 | 
			
		||||
              type: select
 | 
			
		||||
              size: medium
 | 
			
		||||
              label: 'Type of Git Sync Link'
 | 
			
		||||
              default: view
 | 
			
		||||
              options:
 | 
			
		||||
                view: 'View Git Repository'
 | 
			
		||||
                edit: 'View/Edit Page in Git Repository'
 | 
			
		||||
            gitsyncoptions:
 | 
			
		||||
              type: section
 | 
			
		||||
              title: Appearance
 | 
			
		||||
              underline: true
 | 
			
		||||
            custom_git_sync_repo_link_icon:
 | 
			
		||||
              type: input.text
 | 
			
		||||
              size: small
 | 
			
		||||
              label: 'Custom Font Awesome Icon'
 | 
			
		||||
              description: 'Short name, e.g. ''code-fork''.'
 | 
			
		||||
              validate:
 | 
			
		||||
                type: text
 | 
			
		||||
            custom_git_sync_repo_link_text:
 | 
			
		||||
              type: input.text
 | 
			
		||||
              size: long
 | 
			
		||||
              label: 'Custom Link Text'
 | 
			
		||||
              description: 'Link text, e.g. ''View Page in GitHub'' or ''View Page as Markdown''.'
 | 
			
		||||
              validate:
 | 
			
		||||
                type: text
 | 
			
		||||
            git_sync_edit_note_text:
 | 
			
		||||
              type: input.text
 | 
			
		||||
              size: medium
 | 
			
		||||
              label: 'Text before Page Link'
 | 
			
		||||
              description: 'The text before Git Sync Link located on a Page, e.g. ''Have a suggestion or correction?'' or ''Want to reuse this open content?''.'
 | 
			
		||||
            custom_git_sync_repo_presentation_link_text:
 | 
			
		||||
              type: input.text
 | 
			
		||||
              size: long
 | 
			
		||||
              label: 'Custom Presentation Link Text'
 | 
			
		||||
              description: 'Link text for embedded Presentations, e.g. ''View Slides in GitHub'' or ''View Slides as Markdown''.'
 | 
			
		||||
              validate:
 | 
			
		||||
                type: text
 | 
			
		||||
            gitsyncadvanced:
 | 
			
		||||
              type: section
 | 
			
		||||
              title: Advanced
 | 
			
		||||
              underline: true
 | 
			
		||||
            git_sync_repo_link:
 | 
			
		||||
              type: input.url
 | 
			
		||||
              label: 'Custom Git Repository Tree URL'
 | 
			
		||||
              help: 'Enter the URL that leads to the pages folder of your Git Repository.'
 | 
			
		||||
              description: 'URL path to pages folder for ''View/Edit Page in Git Repository'' option, but with ''/pages'' and everything following it removed. For example, ''https://github.com/paulhibbitts/demo-grav-course-hub/tree/master''.'
 | 
			
		||||
              validate:
 | 
			
		||||
                type: URL
 | 
			
		||||
 | 
			
		||||
@ -42,7 +42,21 @@
 | 
			
		||||
		{% endif %}
 | 
			
		||||
		</div>
 | 
			
		||||
	{% endif %}
 | 
			
		||||
 | 
			
		||||
    {% if page.taxonomy.tag|length > 0 %}
 | 
			
		||||
    {% set taglist = [] %}
 | 
			
		||||
    {% for tag in page.taxonomy.tag %}
 | 
			
		||||
        {% set taglist = taglist|merge(['<a href="'~base_url~'/taxonomy?name=tag&val='~(tag|url_encode)~'">'~tag~'</a>']) %}
 | 
			
		||||
    {% endfor %}
 | 
			
		||||
    <div class="tags">
 | 
			
		||||
        <i class="fa fa-tags rightpad"></i>{{ taglist|join(', ') }}
 | 
			
		||||
    </div>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
    {% if theme_var('display_of_git_sync_repo_link') == 'page' and not (grav.uri.param('summaryonly') or grav.uri.param('onlysummary')) %}
 | 
			
		||||
        <p>{% include 'partials/git_sync_repo_link_note.html.twig' %}</p>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
	</section>
 | 
			
		||||
 | 
			
		||||
	<section class="content">
 | 
			
		||||
    	{{ page.content }}
 | 
			
		||||
	{% if not page.header.hide_mediasummary %}		
 | 
			
		||||
@ -54,15 +68,6 @@
 | 
			
		||||
 | 
			
		||||
    </section>
 | 
			
		||||
    <section class="foot">
 | 
			
		||||
    	{% if page.taxonomy.tag|length > 0 %}
 | 
			
		||||
    	{% set taglist = [] %}
 | 
			
		||||
		{% for tag in page.taxonomy.tag %}
 | 
			
		||||
			{% set taglist = taglist|merge(['<a href="'~base_url~'/taxonomy?name=tag&val='~(tag|url_encode)~'">'~tag~'</a>']) %}
 | 
			
		||||
		{% endfor %}
 | 
			
		||||
    	<div class="tags">
 | 
			
		||||
    		<i class="fa fa-tags rightpad"></i>{{ taglist|join(', ') }}
 | 
			
		||||
    	</div>
 | 
			
		||||
    	{% endif %}
 | 
			
		||||
		{% if config.plugins.relatedpages.enabled and related_pages|length > 0 %}
 | 
			
		||||
    	<div class="related topiclist">
 | 
			
		||||
    		<h2>{{ 'RELATED_ARTICLES'|t }}</h2>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										147
									
								
								themes/mytheme/templates/partials/git_sync_repo_link.html.twig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										147
									
								
								themes/mytheme/templates/partials/git_sync_repo_link.html.twig
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,147 @@
 | 
			
		||||
{% if theme_var('git_sync_repo_link') %}
 | 
			
		||||
  {% if not (page.header.hide_git_sync_repo_link and not (presentationslides)) %}
 | 
			
		||||
    {% set git_repo_link_url = theme_var('git_sync_repo_link') %}
 | 
			
		||||
    {% if theme_var('custom_git_sync_repo_link_icon') is empty %}
 | 
			
		||||
      {% if 'github' in git_repo_link_url %}
 | 
			
		||||
        {% set git_repo_link_icon = "github" %}
 | 
			
		||||
      {% elseif 'gitlab' in git_repo_link_url %}
 | 
			
		||||
        {% set git_repo_link_icon = "gitlab" %}
 | 
			
		||||
      {% elseif 'bitbucket' in git_repo_link_url %}
 | 
			
		||||
        {% set git_repo_link_icon = "bitbucket" %}
 | 
			
		||||
      {% else %}
 | 
			
		||||
        {% set git_repo_link_icon = "git" %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
    {% else %}
 | 
			
		||||
      {% set git_repo_link_icon = theme_var('custom_git_sync_repo_link_icon') %}
 | 
			
		||||
    {% endif %}
 | 
			
		||||
    {% if theme_var('type_of_git_sync_repo_link') == 'view' or theme_var('type_of_git_sync_repo_link') is empty %}
 | 
			
		||||
      {% if page.header.git_sync_repo_link_text %}
 | 
			
		||||
        {% set git_repo_link_text = page.header.git_sync_repo_link_text %}
 | 
			
		||||
      {% else %}
 | 
			
		||||
        {% if theme_var('custom_git_sync_repo_link_text') is empty %}
 | 
			
		||||
          {% set git_repo_link_text = 'View Content Repository' %}
 | 
			
		||||
        {% else %}
 | 
			
		||||
          {% if not presentationslides %}
 | 
			
		||||
            {% set git_repo_link_text = theme_var('custom_git_sync_repo_link_text') %}
 | 
			
		||||
          {% else %}
 | 
			
		||||
            {% set git_repo_link_text = theme_var('custom_git_sync_repo_presentation_link_text') %}
 | 
			
		||||
          {% endif %}
 | 
			
		||||
        {% endif %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      {% if not presentationslides %}
 | 
			
		||||
        <a class="{{ link_classes }}" href="{{ git_repo_link_url }}" title="{{ git_repo_link_text }}" target="_blank">
 | 
			
		||||
          <i class="fa fa-{{ git_repo_link_icon }}" aria-hidden="true"></i>{{ git_repo_link_text }}</a>
 | 
			
		||||
      {% endif %}
 | 
			
		||||
    {% else %}
 | 
			
		||||
      {% if page.header.git_sync_repo_link %}
 | 
			
		||||
        {% set git_repo_link_url = page.header.git_sync_repo_link %}
 | 
			
		||||
      {% elseif presentationpagepath %}
 | 
			
		||||
        {% set git_repo_link_url = git_repo_link_url ~ presentationpagepath %}
 | 
			
		||||
      {% else %}
 | 
			
		||||
        {% set git_repo_link_url = git_repo_link_url ~ ('/' ~ page.filePathClean) | replace({'/user/': '/'}) %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      {% if (page.children.count) and (not presentationslides) %}
 | 
			
		||||
        {% set git_repo_link_url = (git_repo_link_url | replace({
 | 
			
		||||
          ('/' ~ page.template ~ '.md'): '/'
 | 
			
		||||
        })) %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      {% if page.header.git_sync_repo_link_text %}
 | 
			
		||||
        {% set git_repo_link_text = page.header.git_sync_repo_link_text %}
 | 
			
		||||
      {% else %}
 | 
			
		||||
        {% if not presentationslides %}
 | 
			
		||||
          {% if theme_var('custom_git_sync_repo_link_text') is empty %}
 | 
			
		||||
            {% set git_repo_link_text = 'Edit this Page' %}
 | 
			
		||||
          {% else %}
 | 
			
		||||
            {% set git_repo_link_text = theme_var('custom_git_sync_repo_link_text') %}
 | 
			
		||||
          {% endif %}
 | 
			
		||||
        {% else %}
 | 
			
		||||
          {% if theme_var('custom_git_sync_repo_presentation_link_text') is empty %}
 | 
			
		||||
            {% set git_repo_link_text = 'Edit these Slides' %}
 | 
			
		||||
          {% else %}
 | 
			
		||||
            {% set git_repo_link_text = theme_var('custom_git_sync_repo_presentation_link_text') %}
 | 
			
		||||
          {% endif %}
 | 
			
		||||
        {% endif %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      {% if presentationslides %}({% endif %}<a class="{{ link_classes }}" href="{{ git_repo_link_url }}" title="{{ git_repo_link_text }}" target="_blank"><i class="fa fa-{{ git_repo_link_icon }}" aria-hidden="true"></i>{{ git_repo_link_text }}</a>{% if presentationslides %}){% endif %}
 | 
			
		||||
    {% endif %}
 | 
			
		||||
  {% endif %}
 | 
			
		||||
{% else %}
 | 
			
		||||
  {% if not (config.plugins['git-sync'].enabled) or (config.plugins['git-sync'].enabled and config.plugins['git-sync'].repository is empty) %}
 | 
			
		||||
    {% set admin_panel_appearance_url = grav.base_url ~ '/admin/plugins/git-sync' %}
 | 
			
		||||
    {% if not presentationslides %}
 | 
			
		||||
      <a class="{{ link_classes }}" href="{{ admin_panel_appearance_url }}" title="Setup Git Sync">
 | 
			
		||||
        <i class="fa fa-cog" aria-hidden="true"></i>Setup Git Sync</a>
 | 
			
		||||
    {% endif %}
 | 
			
		||||
  {% else %}
 | 
			
		||||
    {% if not (page.header.hide_git_sync_repo_link and not (presentationslides)) %}
 | 
			
		||||
      {% set git_sync_repo = config.plugins['git-sync'].repository %}
 | 
			
		||||
      {% set git_sync_repo_link = (git_sync_repo | replace({'.git': '/'})) %}
 | 
			
		||||
      {% if 'github' in git_sync_repo_link %}
 | 
			
		||||
        {% set git_repo_link_icon = "github" %}
 | 
			
		||||
        {% set git_repo_link_url = (git_sync_repo | replace({'.git': '/'})) ~ 'blob/master' | replace({'user/': '/'}) %}
 | 
			
		||||
      {% elseif 'gitlab' in git_sync_repo_link %}
 | 
			
		||||
        {% set git_repo_link_icon = "gitlab" %}
 | 
			
		||||
        {% set git_repo_link_url = (git_sync_repo | replace({'.git': '/'})) ~ 'blob/master' | replace({'user/': '/'}) %}
 | 
			
		||||
      {% elseif 'bitbucket' in git_sync_repo_link %}
 | 
			
		||||
        {% set git_repo_link_icon = "bitbucket" %}
 | 
			
		||||
        {% set git_repo_link_url = (git_sync_repo | replace({'.git': '/'})) ~ 'src/master' | replace({'user/': '/'}) %}
 | 
			
		||||
      {% else %}
 | 
			
		||||
        {% set git_repo_link_icon = "git" %}
 | 
			
		||||
        {% set git_repo_link_url = (git_sync_repo | replace({'.git': '/'})) ~ 'blob/master' | replace({'user/': '/'}) %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      {% if page.header.git_sync_repo_link %}
 | 
			
		||||
        {% set git_repo_link_url = page.header.git_sync_repo_link %}
 | 
			
		||||
      {% elseif presentationpagepath %}
 | 
			
		||||
        {% set git_repo_link_url = git_repo_link_url ~ presentationpagepath %}
 | 
			
		||||
      {% else %}
 | 
			
		||||
        {% set git_repo_link_url = git_repo_link_url ~ ('/' ~ page.filePathClean) | replace({'/user/': '/'}) %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      {% if theme_var('custom_git_sync_repo_link_icon') is not empty %}
 | 
			
		||||
        {% set git_repo_link_icon = theme_var('custom_git_sync_repo_link_icon') %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
      {% if theme_var('type_of_git_sync_repo_link') == 'view' or theme_var('type_of_git_sync_repo_link') is empty %}
 | 
			
		||||
        {% if page.header.git_sync_repo_link_text %}
 | 
			
		||||
          {% set git_repo_link_text = page.header.git_sync_repo_link_text %}
 | 
			
		||||
        {% else %}
 | 
			
		||||
          {% if theme_var('git_sync_repo_link_text') is empty %}
 | 
			
		||||
            {% set git_repo_link_text = 'View Content Repository' %}
 | 
			
		||||
          {% else %}
 | 
			
		||||
            {% if not presentationslides %}
 | 
			
		||||
              {% set git_repo_link_text = theme_var('custom_git_sync_repo_link_text') %}
 | 
			
		||||
            {% else %}
 | 
			
		||||
              {% set git_repo_link_text = theme_var('custom_git_sync_repo_presentation_link_text') %}
 | 
			
		||||
            {% endif %}
 | 
			
		||||
          {% endif %}
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        {% if not presentationslides %}
 | 
			
		||||
          <a class="{{ link_classes }}" href="{{ git_sync_repo_link}}" title="{{ git_repo_link_text }}" target="_blank">
 | 
			
		||||
            <i class="fa fa-{{ git_repo_link_icon }}" aria-hidden="true"></i>{{ git_repo_link_text }}</a>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
      {% else %}
 | 
			
		||||
        {% if (page.children.count) and (not presentationslides) %}
 | 
			
		||||
          {% set git_repo_link_url = (git_repo_link_url | replace({
 | 
			
		||||
            ('/' ~ page.template ~ '.md'): '/'
 | 
			
		||||
          })) %}
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        {% if page.header.git_sync_repo_link_text %}
 | 
			
		||||
          {% set git_repo_link_text = page.header.git_sync_repo_link_text %}
 | 
			
		||||
        {% else %}
 | 
			
		||||
          {% if not presentationslides %}
 | 
			
		||||
            {% if theme_var('custom_git_sync_repo_link_text') is empty %}
 | 
			
		||||
              {% set git_repo_link_text = 'Edit this Page' %}
 | 
			
		||||
            {% else %}
 | 
			
		||||
              {% set git_repo_link_text = theme_var('custom_git_sync_repo_link_text') %}
 | 
			
		||||
            {% endif %}
 | 
			
		||||
          {% else %}
 | 
			
		||||
            {% if theme_var('custom_git_sync_repo_presentation_link_text') is empty %}
 | 
			
		||||
              {% set git_repo_link_text = 'Edit these Slides' %}
 | 
			
		||||
            {% else %}
 | 
			
		||||
              {% set git_repo_link_text = theme_var('custom_git_sync_repo_presentation_link_text') %}
 | 
			
		||||
            {% endif %}
 | 
			
		||||
          {% endif %}
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        {% if presentationslides %}({% endif %}<a class="{{ link_classes }}" href="{{ git_repo_link_url }}" title="{{ git_repo_link_text }}" target="_blank"><i class="fa fa-{{ git_repo_link_icon }}" aria-hidden="true"></i>{{ git_repo_link_text }}</a>{% if presentationslides %}){% endif %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
    {% endif %}
 | 
			
		||||
  {% endif %}
 | 
			
		||||
{% endif %}
 | 
			
		||||
@ -0,0 +1,7 @@
 | 
			
		||||
{% if not page.header.hide_git_sync_repo_link %}
 | 
			
		||||
    <div class="gitrepo-link-note">
 | 
			
		||||
        <p>{{ theme_var('git_sync_edit_note_text') }}
 | 
			
		||||
            {% include 'partials/git_sync_repo_link.html.twig' %}
 | 
			
		||||
        </p>
 | 
			
		||||
    </div>
 | 
			
		||||
{% endif %}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user