Merge pull request #107 from silverstripe/feature/platform

Making the docs site ready for SilverStripe Platform
This commit is contained in:
Christopher Pitt 2016-02-15 13:15:36 +13:00
commit 493eae8cc1
17 changed files with 714 additions and 498 deletions

2
.gitignore vendored
View File

@ -9,3 +9,5 @@
/staticpublisher/
/toolbar/
/display_logic/
/silverstripe-dynamodb/
/crontask/

View File

@ -9,6 +9,23 @@
Deny from all
</Files>
# This denies access to all yml files, since developers might include sensitive
# information in them. See the docs for work-arounds to serve some yaml files
<Files *.yml>
Order allow,deny
Deny from all
</Files>
ErrorDocument 404 /assets/error-404.html
ErrorDocument 500 /assets/error-500.html
<IfModule mod_alias.c>
RedirectMatch 403 /silverstripe-cache(/|$)
RedirectMatch 403 /vendor(/|$)
RedirectMatch 403 /composer\.(json|lock)
RedirectMatch 403 /assets/\.lucene-index(/|$)
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On

View File

@ -1,357 +0,0 @@
<Files *.ss>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Files>
<Files web.config>
Order deny,allow
Deny from all
</Files>
<IfModule mod_rewrite.c>
RewriteEngine On
# Legacy rewrite from sapphire/ to framework/ namespace
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^framework/main\.php
RewriteRule ^sapphire/?(.*) http://doc.silverstripe.org/framework/$1 [R=301,L]
# DokuWiki rewrite rules: Need to happen before other rules in order to redirect /doku.php?id=<pagename>
# to /pagename, which can then be matched by the legacy rewrite rules further down
RewriteCond %{QUERY_STRING} ^(\bid\b=([^&]*)&?(.*)?)
RewriteRule ^doku.php$ http://doc.silverstripe.org/%2?%3 [R=301,L]
# Redirect legacy URLs (assumes we're not redirecting other assets, for performance reasons)
# Note: Just works on top-level domains, not if the webroot is in a subfolder
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt)$
#RewriteRule ^execution-pipeline$ http://doc.silverstripe.org/framework/en/reference/ [R=301,L]
RewriteRule ^arraydata$ http://api.silverstripe.org/search/lookup/?q=ArrayData&module=sapphire [R=301,L]
RewriteRule ^autocompletefield$ http://api.silverstripe.org/search/lookup/?q=AutocompleteField&module=sapphire [R=301,L]
RewriteRule ^bbcode$ http://doc.silverstripe.org/framework/en/reference/ [R=301,L]
RewriteRule ^building-for-modularity$ http://doc.silverstripe.org/framework/en/topics/module-development [R=301,L]
RewriteRule ^built-in-page-controls$ http://doc.silverstripe.org/framework/en/reference/built-in-page-controls [R=301,L]
RewriteRule ^cache-control$ http://wiki.silverstripe.org/howto:cache-control [R=301,L]
RewriteRule ^casting$ http://doc.silverstripe.org/framework/en/topics/data-types [R=301,L]
RewriteRule ^checkboxfield$ http://api.silverstripe.org/search/lookup/?q=CheckboxField&module=sapphire [R=301,L]
RewriteRule ^checkboxsetfield$ http://api.silverstripe.org/search/lookup/?q=CheckboxSetField&module=sapphire [R=301,L]
RewriteRule ^checkoutpagetest$ http://doc.silverstripe.org/old/checkoutpagetest [R=301,L]
RewriteRule ^cmsmain$ http://doc.silverstripe.org/framework/en/topics/extending-the-cms [R=301,L]
RewriteRule ^cmsmenu$ http://api.silverstripe.org/search/lookup/?q=CMSMenu&module=sapphire [R=301,L]
RewriteRule ^common-problems$ http://doc.silverstripe.org/framework/en/installation/common-problems [R=301,L]
RewriteRule ^community_run_third_party_websites$ http://doc.silverstripe.org/old/community_run_third_party_websites [R=301,L]
RewriteRule ^complextablefield$ http://doc.silverstripe.org/framework/en/reference/complextablefield [R=301,L]
RewriteRule ^complextablefieldexamples$ http://doc.silverstripe.org/old/complextablefieldexamples [R=301,L]
RewriteRule ^compositefield$ http://api.silverstripe.org/search/lookup/?q=CompositeField&module=sapphire [R=301,L]
RewriteRule ^configuration$ http://doc.silverstripe.org/framework/en/topics/configuration [R=301,L]
RewriteRule ^contentdeliverynetworkissues$ http://doc.silverstripe.org/old/contentdeliverynetworkissues [R=301,L]
RewriteRule ^contentnegotiator$ http://api.silverstripe.org/search/lookup/?q=ContentNegotiator&module=sapphire [R=301,L]
RewriteRule ^contributors$ http://doc.silverstripe.org/old/contributors [R=301,L]
RewriteRule ^contributing$ http://doc.silverstripe.org/framework/en/misc/contributing [R=301,L]
RewriteRule ^controller$ http://doc.silverstripe.org/framework/en/topics/controller [R=301,L]
RewriteRule ^controllers$ http://doc.silverstripe.org/framework/en/topics/controller [R=301,L]
RewriteRule ^creating-modules$ http://doc.silverstripe.org/framework/en/topics/module-development [R=301,L]
RewriteRule ^css$ http://doc.silverstripe.org/framework/en/reference/theme-development [R=301,L]
RewriteRule ^csvbulkloader$ http://api.silverstripe.org/search/lookup/?q=CSVBulkLoader&module=sapphire [R=301,L]
RewriteRule ^currencyfield$ http://api.silverstripe.org/search/lookup/?q=CurrencyField&module=sapphire [R=301,L]
RewriteRule ^daily-builds$ http://doc.silverstripe.org/old/daily-builds [R=301,L]
RewriteRule ^data-types$ http://doc.silverstripe.org/framework/en/topics/data-types [R=301,L]
RewriteRule ^database-structure$ http://doc.silverstripe.org/framework/en/reference/database-structure [R=301,L]
RewriteRule ^database-troubleshooting$ http://doc.silverstripe.org/framework/en/reference/database-troubleshooting [R=301,L]
RewriteRule ^datamodel$ http://doc.silverstripe.org/framework/en/topics/datamodel [R=301,L]
RewriteRule ^dataobject$ http://doc.silverstripe.org/framework/en/reference/dataobject [R=301,L]
RewriteRule ^dataobjectdecorator$ http://doc.silverstripe.org/framework/en/reference/dataobjectdecorator [R=301,L]
RewriteRule ^dataobjectset$ http://doc.silverstripe.org/framework/en/reference/dataobjectset [R=301,L]
RewriteRule ^datefield$ http://api.silverstripe.org/search/lookup/?q=DateField&module=sapphire [R=301,L]
RewriteRule ^debugging$ http://doc.silverstripe.org/framework/en/topics/debugging [R=301,L]
RewriteRule ^deprecation$ http://doc.silverstripe.org/framework/en/misc/release-process [R=301,L]
RewriteRule ^director$ http://api.silverstripe.org/search/lookup/?q=Director&module=sapphire [R=301,L]
RewriteRule ^directory-structure$ http://doc.silverstripe.org/framework/en/topics/directory-structure [R=301,L]
RewriteRule ^documentation-guidelines$ http://doc.silverstripe.org/framework/en/misc/contributing [R=301,L]
RewriteRule ^dropdownfield$ http://api.silverstripe.org/search/lookup/?q=DropdownField&module=sapphire [R=301,L]
RewriteRule ^ecommercerole$ http://doc.silverstripe.org/old/ecommercerole [R=301,L]
RewriteRule ^email$ http://doc.silverstripe.org/framework/en/topics/email [R=301,L]
RewriteRule ^emailfield$ http://api.silverstripe.org/search/lookup/?q=EmailField&module=sapphire [R=301,L]
RewriteRule ^environment-management$ http://doc.silverstripe.org/framework/en/topics/environment-management [R=301,L]
RewriteRule ^error-handling$ http://doc.silverstripe.org/framework/en/topics/error-handling [R=301,L]
RewriteRule ^escape-types$ http://doc.silverstripe.org/framework/en/topics/security [R=301,L]
RewriteRule ^fieldgroup$ http://api.silverstripe.org/search/lookup/?q=FieldGroup&module=sapphire [R=301,L]
RewriteRule ^filefield$ http://api.silverstripe.org/search/lookup/?q=FileField&module=sapphire [R=301,L]
RewriteRule ^flickrservice$ http://doc.silverstripe.org/old/flickrservice [R=301,L]
RewriteRule ^form$ http://doc.silverstripe.org/framework/en/topics/forms [R=301,L]
RewriteRule ^form-field-types$ http://doc.silverstripe.org/framework/en/reference/form-field-types [R=301,L]
RewriteRule ^form-validation$ http://doc.silverstripe.org/framework/en/topics/form-validation [R=301,L]
RewriteRule ^formaction$ http://api.silverstripe.org/search/lookup/?q=FormAction&module=sapphire [R=301,L]
RewriteRule ^functionaltest$ http://api.silverstripe.org/search/lookup/?q=FunctionalTest&module=sapphire [R=301,L]
RewriteRule ^framework/en/trunk/misc/collaboration-on-git http://doc.silverstripe.org/framework/en/trunk/misc/contributing/code [R=301,L]
RewriteRule ^gsoc$ http://doc.silverstripe.org/old/gsoc [R=301,L]
RewriteRule ^hasmanycomplextablefield$ http://api.silverstripe.org/search/lookup/?q=HasManyComplexTableField&module=sapphire [R=301,L]
RewriteRule ^hasonecomplextablefield$ http://api.silverstripe.org/search/lookup/?q=HasOneComplexTableField&module=sapphire [R=301,L]
RewriteRule ^headerfield$ http://api.silverstripe.org/search/lookup/?q=HeaderField&module=sapphire [R=301,L]
RewriteRule ^head_office_boston_ma_-can_never_forget$ http://doc.silverstripe.org/old/head_office_boston_ma_-can_never_forget [R=301,L]
RewriteRule ^hiddenfield$ http://api.silverstripe.org/search/lookup/?q=HiddenField&module=sapphire [R=301,L]
RewriteRule ^hide-ancestor$ http://doc.silverstripe.org/old/hide-ancestor [R=301,L]
RewriteRule ^hierarchy$ http://api.silverstripe.org/search/lookup/?q=Hierarchy&module=sapphire [R=301,L]
RewriteRule ^how-page-security-works$ http://doc.silverstripe.org/framework/en/topics/security [R=301,L]
RewriteRule ^html$ http://doc.silverstripe.org/framework/en/topics/theme-development [R=301,L]
RewriteRule ^htmleditorconfig$ http://api.silverstripe.org/search/lookup/?q=HTMLEditorConfig&module=sapphire [R=301,L]
RewriteRule ^htmleditorfield$ http://api.silverstripe.org/search/lookup/?q=HTMLEditorField&module=sapphire [R=301,L]
RewriteRule ^i18n$ http://doc.silverstripe.org/framework/en/topics/i18n [R=301,L]
RewriteRule ^image$ http://doc.silverstripe.org/framework/en/reference/image [R=301,L]
RewriteRule ^imagefield$ http://api.silverstripe.org/search/lookup/?q=ImageField&module=sapphire [R=301,L]
RewriteRule ^installation$ http://doc.silverstripe.org/framework/en/ [R=301,L]
RewriteRule ^installation-on-lighttpd$ http://doc.silverstripe.org/framework/en/installation/lighttpd [R=301,L]
RewriteRule ^installation-on-mac-osx$ http://doc.silverstripe.org/framework/en/installation/mac-osx [R=301,L]
RewriteRule ^installation-on-nginx$ http://doc.silverstripe.org/framework/en/installation/nginx [R=301,L]
RewriteRule ^installation-on-webserver$ http://doc.silverstripe.org/framework/en/installation/webserver [R=301,L]
RewriteRule ^installation-on-windows-manual-iis$ http://doc.silverstripe.org/framework/en/installation/windows-manual-iis [R=301,L]
RewriteRule ^installation-on-windows-server-2003-iis-6$ http://doc.silverstripe.org/framework/en/installation/windows-manual-iis [R=301,L]
RewriteRule ^installation-on-windows-pi$ http://doc.silverstripe.org/framework/en/installation/windows-pi [R=301,L]
RewriteRule ^installation-on-windows-wamp$ http://doc.silverstripe.org/framework/en/installation/windows-wamp [R=301,L]
RewriteRule ^installing-modules$ http://doc.silverstripe.org/framework/en/topics/modules [R=301,L]
RewriteRule ^javascript$ http://doc.silverstripe.org/framework/en/reference/javascript [R=301,L]
RewriteRule ^jquery$ http://doc.silverstripe.org/framework/en/reference/javascript [R=301,L]
RewriteRule ^labelfield$ http://api.silverstripe.org/search/lookup/?q=LabelField&module=sapphire [R=301,L]
RewriteRule ^languagedropdownfield$ http://api.silverstripe.org/search/lookup/?q=LanguageDropdownField&module=sapphire [R=301,L]
RewriteRule ^leftandmain$ http://doc.silverstripe.org/framework/en/reference/leftandmain [R=301,L]
RewriteRule ^listboxfield$ http://api.silverstripe.org/search/lookup/?q=ListBoxField&module=sapphire [R=301,L]
RewriteRule ^literalfield$ http://api.silverstripe.org/search/lookup/?q=LiteralField&module=sapphire [R=301,L]
RewriteRule ^manifestbuilder$ http://api.silverstripe.org/search/lookup/?q=ManifestBuilder&module=sapphire [R=301,L]
RewriteRule ^member$ http://doc.silverstripe.org/framework/en/reference/member [R=301,L]
RewriteRule ^modeladmin$ http://doc.silverstripe.org/framework/en/reference/modeladmin [R=301,L]
RewriteRule ^module-maintainers$ http://doc.silverstripe.org/framework/en/misc/module-release-process [R=301,L]
RewriteRule ^module-releases$ http://doc.silverstripe.org/framework/en/misc/module-release-process [R=301,L]
RewriteRule ^module:external-content$ http://doc.silverstripe.org/old/module:external-content [R=301,L]
RewriteRule ^module:external-content-alfresco-connector$ http://doc.silverstripe.org/old/module:external-content-alfresco-connector [R=301,L]
RewriteRule ^module:external-content-newconnector$ http://doc.silverstripe.org/old/module:external-content-newconnector [R=301,L]
RewriteRule ^module:external-content-quickstart$ http://doc.silverstripe.org/old/module:external-content-quickstart [R=301,L]
RewriteRule ^module:filesystem-connector$ http://doc.silverstripe.org/old/module:filesystem-connector [R=301,L]
RewriteRule ^module:simplewiki$ http://doc.silverstripe.org/old/module:simplewiki [R=301,L]
RewriteRule ^modules:auth_ext_ad$ http://doc.silverstripe.org/old/modules:auth_ext_ad [R=301,L]
RewriteRule ^modules:auth_ext_drivers$ http://doc.silverstripe.org/old/modules:auth_ext_drivers [R=301,L]
RewriteRule ^modules:auth_ext_ldap$ http://doc.silverstripe.org/old/modules:auth_ext_ldap [R=301,L]
RewriteRule ^modules:blog$ http://doc.silverstripe.org/old/modules:blog [R=301,L]
RewriteRule ^modules:bulkuploaderfield$ http://doc.silverstripe.org/old/modules:bulkuploaderfield [R=301,L]
RewriteRule ^modules:calendar$ http://doc.silverstripe.org/old/modules:calendar [R=301,L]
RewriteRule ^modules:cmsworkflow$ http://doc.silverstripe.org/old/modules:cmsworkflow [R=301,L]
RewriteRule ^modules:dataobjectmanager$ http://doc.silverstripe.org/old/modules:dataobjectmanager [R=301,L]
RewriteRule ^modules:dbplumber$ http://doc.silverstripe.org/old/modules:dbplumber [R=301,L]
RewriteRule ^modules:diary$ http://doc.silverstripe.org/old/modules:diary [R=301,L]
RewriteRule ^modules:ecommerce$ http://doc.silverstripe.org/old/modules:ecommerce [R=301,L]
RewriteRule ^modules:embargoexpiry$ http://doc.silverstripe.org/old/modules:embargoexpiry [R=301,L]
RewriteRule ^modules:events$ http://doc.silverstripe.org/old/modules:events [R=301,L]
RewriteRule ^modules:event_calendar$ http://doc.silverstripe.org/old/modules:event_calendar [R=301,L]
RewriteRule ^modules:external-authentication$ http://doc.silverstripe.org/old/modules:external-authentication [R=301,L]
RewriteRule ^modules:flickrgallery$ http://doc.silverstripe.org/old/modules:flickrgallery [R=301,L]
RewriteRule ^modules:flickrservice$ http://doc.silverstripe.org/old/modules:flickrservice [R=301,L]
RewriteRule ^modules:forum$ http://doc.silverstripe.org/old/modules:forum [R=301,L]
RewriteRule ^modules:gallery$ http://doc.silverstripe.org/old/modules:gallery [R=301,L]
RewriteRule ^modules:genericdataadmin$ http://doc.silverstripe.org/old/modules:genericdataadmin [R=301,L]
RewriteRule ^modules:genericviews$ http://doc.silverstripe.org/old/modules:genericviews [R=301,L]
RewriteRule ^modules:geocoderfield$ http://doc.silverstripe.org/old/modules:geocoderfield [R=301,L]
RewriteRule ^modules:gis$ http://doc.silverstripe.org/old/modules:gis [R=301,L]
RewriteRule ^modules:googleanalytics$ http://doc.silverstripe.org/old/modules:googleanalytics [R=301,L]
RewriteRule ^modules:googlesitemaps$ http://doc.silverstripe.org/old/modules:googlesitemaps [R=301,L]
RewriteRule ^modules:hasmanyfilemanager$ http://doc.silverstripe.org/old/modules:hasmanyfilemanager [R=301,L]
RewriteRule ^modules:image_gallery$ http://doc.silverstripe.org/old/modules:image_gallery [R=301,L]
RewriteRule ^modules:intranet$ http://doc.silverstripe.org/old/modules:intranet [R=301,L]
RewriteRule ^modules:maps$ http://doc.silverstripe.org/old/modules:maps [R=301,L]
RewriteRule ^modules:mollom$ http://doc.silverstripe.org/old/modules:mollom [R=301,L]
RewriteRule ^modules:mssql$ http://doc.silverstripe.org/old/modules:mssql [R=301,L]
RewriteRule ^modules:multiform$ http://doc.silverstripe.org/old/modules:multiform [R=301,L]
RewriteRule ^modules:newsletter$ http://doc.silverstripe.org/old/modules:newsletter [R=301,L]
RewriteRule ^modules:polls$ http://doc.silverstripe.org/old/modules:polls [R=301,L]
RewriteRule ^modules:privatemessage$ http://doc.silverstripe.org/old/modules:privatemessage [R=301,L]
RewriteRule ^modules:recaptcha$ http://doc.silverstripe.org/old/modules:recaptcha [R=301,L]
RewriteRule ^modules:securefiles$ http://doc.silverstripe.org/old/modules:securefiles [R=301,L]
RewriteRule ^modules:sharethis$ http://doc.silverstripe.org/old/modules:sharethis [R=301,L]
RewriteRule ^modules:simplehtmleditorfield$ http://doc.silverstripe.org/old/modules:simplehtmleditorfield [R=301,L]
RewriteRule ^modules:simpletreedropdownfield$ http://doc.silverstripe.org/old/modules:simpletreedropdownfield [R=301,L]
RewriteRule ^modules:simplewysiwygfield$ http://doc.silverstripe.org/old/modules:simplewysiwygfield [R=301,L]
RewriteRule ^modules:simple_guestbook$ http://doc.silverstripe.org/old/modules:simple_guestbook [R=301,L]
RewriteRule ^modules:sitetreeimporter$ http://doc.silverstripe.org/old/modules:sitetreeimporter [R=301,L]
RewriteRule ^modules:sortabledataobject$ http://doc.silverstripe.org/old/modules:sortabledataobject [R=301,L]
RewriteRule ^modules:spamprotection$ http://doc.silverstripe.org/old/modules:spamprotection [R=301,L]
RewriteRule ^modules:sphinx$ http://doc.silverstripe.org/old/modules:sphinx [R=301,L]
RewriteRule ^modules:sqlite$ http://doc.silverstripe.org/old/modules:sqlite [R=301,L]
RewriteRule ^modules:staticimporter$ http://doc.silverstripe.org/old/modules:staticimporter [R=301,L]
RewriteRule ^modules:subsites$ http://doc.silverstripe.org/old/modules:subsites [R=301,L]
RewriteRule ^modules:suggestions_field$ http://doc.silverstripe.org/old/modules:suggestions_field [R=301,L]
RewriteRule ^modules:swfuploadfield$ http://doc.silverstripe.org/old/modules:swfuploadfield [R=301,L]
RewriteRule ^modules:tagfield$ http://doc.silverstripe.org/old/modules:tagfield [R=301,L]
RewriteRule ^modules:technoratiservice$ http://doc.silverstripe.org/old/modules:technoratiservice [R=301,L]
RewriteRule ^modules:translation$ http://doc.silverstripe.org/old/modules:translation [R=301,L]
RewriteRule ^modules:userforms$ http://doc.silverstripe.org/old/modules:userforms [R=301,L]
RewriteRule ^modules:youtubeservice$ http://doc.silverstripe.org/old/modules:youtubeservice [R=301,L]
RewriteRule ^multilingualcontent$ http://doc.silverstripe.org/framework/en/topics/translation [R=301,L]
RewriteRule ^numericfield$ http://api.silverstripe.org/search/lookup/?q=NumericField&module=sapphire [R=301,L]
RewriteRule ^object$ http://api.silverstripe.org/search/lookup/?q=Object&module=sapphire [R=301,L]
RewriteRule ^objectmodel$ http://doc.silverstripe.org/framework/en/topics/datamodel [R=301,L]
RewriteRule ^optionsetfield$ http://api.silverstripe.org/search/lookup/?q=OptionSetField&module=sapphire [R=301,L]
RewriteRule ^page$ http://doc.silverstripe.org/framework/en/reference/page-types [R=301,L]
RewriteRule ^page-types$ http://doc.silverstripe.org/framework/en/topics/page-types [R=301,L]
RewriteRule ^pagecomment$ http://api.silverstripe.org/search/lookup/?q=PageComment&module=sapphire [R=301,L]
RewriteRule ^partial-caching$ http://doc.silverstripe.org/framework/en/reference/partial-caching [R=301,L]
RewriteRule ^passwordfield$ http://api.silverstripe.org/search/lookup/?q=PasswordField&module=sapphire [R=301,L]
RewriteRule ^permission$ http://doc.silverstripe.org/framework/en/reference/permission [R=301,L]
RewriteRule ^postale$ http://doc.silverstripe.org/old/postale [R=301,L]
RewriteRule ^readonlyfield$ http://api.silverstripe.org/search/lookup/?q=ReadonlyField&module=sapphire [R=301,L]
RewriteRule ^recipes:adding_metatags$ http://doc.silverstripe.org/old/recipes:adding_metatags [R=301,L]
RewriteRule ^recipes:ajax_basics$ http://doc.silverstripe.org/old/recipes:ajax_basics [R=301,L]
RewriteRule ^recipes:alphabetical_dataobjectset$ http://doc.silverstripe.org/old/recipes:alphabetical_dataobjectset [R=301,L]
RewriteRule ^recipes:alternative_sorting_order$ http://doc.silverstripe.org/old/recipes:alternative_sorting_order [R=301,L]
RewriteRule ^recipes:amazing_looking_forms_using_silverstripe_form_default_rendering$ http://doc.silverstripe.org/old/recipes:amazing_looking_forms_using_silverstripe_form_default_rendering [R=301,L]
RewriteRule ^recipes:bookmarklets$ http://doc.silverstripe.org/old/recipes:bookmarklets [R=301,L]
RewriteRule ^recipes:building_a_nice_tree_for_selected_pages$ http://doc.silverstripe.org/old/recipes:building_a_nice_tree_for_selected_pages [R=301,L]
RewriteRule ^recipes:change_site_name_and_tagline$ http://doc.silverstripe.org/old/recipes:change_site_name_and_tagline [R=301,L]
RewriteRule ^recipes:changingfields$ http://doc.silverstripe.org/old/recipes:changingfields [R=301,L]
RewriteRule ^recipes:cheat_sheet$ http://doc.silverstripe.org/old/recipes:cheat_sheet [R=301,L]
RewriteRule ^recipes:combining_files$ http://doc.silverstripe.org/old/recipes:combining_files [R=301,L]
RewriteRule ^recipes:controllers$ http://doc.silverstripe.org/old/recipes:controllers [R=301,L]
RewriteRule ^recipes:customising_image$ http://doc.silverstripe.org/old/recipes:customising_image [R=301,L]
RewriteRule ^recipes:customising_meta_tags$ http://doc.silverstripe.org/old/recipes:customising_meta_tags [R=301,L]
RewriteRule ^recipes:displaying_five_latest_pages_from_multiple_pagetypes$ http://doc.silverstripe.org/old/recipes:displaying_five_latest_pages_from_multiple_pagetypes [R=301,L]
RewriteRule ^recipes:examples_of_creating_and_saving_pages$ http://doc.silverstripe.org/old/recipes:examples_of_creating_and_saving_pages [R=301,L]
RewriteRule ^recipes:example_config_file$ http://doc.silverstripe.org/old/recipes:example_config_file [R=301,L]
RewriteRule ^recipes:example_of_data_object$ http://doc.silverstripe.org/old/recipes:example_of_data_object [R=301,L]
RewriteRule ^recipes:example_of_quotes_on_a_page$ http://doc.silverstripe.org/old/recipes:example_of_quotes_on_a_page [R=301,L]
RewriteRule ^recipes:extending_the_event_calendar$ http://doc.silverstripe.org/old/recipes:extending_the_event_calendar [R=301,L]
RewriteRule ^recipes:final_parent$ http://doc.silverstripe.org/old/recipes:final_parent [R=301,L]
RewriteRule ^recipes:forms$ http://doc.silverstripe.org/old/recipes:forms [R=301,L]
RewriteRule ^recipes:gallery$ http://doc.silverstripe.org/old/recipes:gallery [R=301,L]
RewriteRule ^recipes:grouping_fields_from_your_data_object$ http://doc.silverstripe.org/old/recipes:grouping_fields_from_your_data_object [R=301,L]
RewriteRule ^recipes:installation-into-subversion$ http://doc.silverstripe.org/old/recipes:installation-into-subversion [R=301,L]
RewriteRule ^recipes:loopthroughassets$ http://doc.silverstripe.org/old/recipes:loopthroughassets [R=301,L]
RewriteRule ^recipes:many_many-example$ http://doc.silverstripe.org/old/recipes:many_many-example [R=301,L]
RewriteRule ^recipes:members-only-page$ http://doc.silverstripe.org/old/recipes:members-only-page [R=301,L]
RewriteRule ^recipes:menus_with_different_colour_buttons$ http://doc.silverstripe.org/old/recipes:menus_with_different_colour_buttons [R=301,L]
RewriteRule ^recipes:migratefilemanager$ http://doc.silverstripe.org/old/recipes:migratefilemanager [R=301,L]
RewriteRule ^recipes:multilingual_content$ http://doc.silverstripe.org/old/recipes:multilingual_content [R=301,L]
RewriteRule ^recipes:overriding-loginform$ http://doc.silverstripe.org/old/recipes:overriding-loginform [R=301,L]
RewriteRule ^recipes:page_selection_for_special_menu$ http://doc.silverstripe.org/old/recipes:page_selection_for_special_menu [R=301,L]
RewriteRule ^recipes:pretty_i18n_urls$ http://doc.silverstripe.org/old/recipes:pretty_i18n_urls [R=301,L]
RewriteRule ^recipes:previousornext$ http://doc.silverstripe.org/old/recipes:previousornext [R=301,L]
RewriteRule ^recipes:publishing-to-web-server$ http://doc.silverstripe.org/old/recipes:publishing-to-web-server [R=301,L]
RewriteRule ^recipes:rebranding-the-cms$ http://doc.silverstripe.org/old/recipes:rebranding-the-cms [R=301,L]
RewriteRule ^recipes:removingassetsfromsearch$ http://doc.silverstripe.org/old/recipes:removingassetsfromsearch [R=301,L]
RewriteRule ^recipes:requiredfieldsclass$ http://doc.silverstripe.org/old/recipes:requiredfieldsclass [R=301,L]
RewriteRule ^recipes:retrieving_image_from_your_page$ http://doc.silverstripe.org/old/recipes:retrieving_image_from_your_page [R=301,L]
RewriteRule ^recipes:selecting_pages_with_the_same_grandparent$ http://doc.silverstripe.org/old/recipes:selecting_pages_with_the_same_grandparent [R=301,L]
RewriteRule ^recipes:setting_menu_width_dynamically$ http://doc.silverstripe.org/old/recipes:setting_menu_width_dynamically [R=301,L]
RewriteRule ^recipes:siblings$ http://doc.silverstripe.org/old/recipes:siblings [R=301,L]
RewriteRule ^recipes:simplesignupform$ http://doc.silverstripe.org/old/recipes:simplesignupform [R=301,L]
RewriteRule ^recipes:site-news$ http://doc.silverstripe.org/old/recipes:site-news [R=301,L]
RewriteRule ^recipes:start$ http://doc.silverstripe.org/old/recipes:start [R=301,L]
RewriteRule ^recipes:structural-guidelines$ http://doc.silverstripe.org/old/recipes:structural-guidelines [R=301,L]
RewriteRule ^recipes:syntax-highlighting$ http://doc.silverstripe.org/old/recipes:syntax-highlighting [R=301,L]
RewriteRule ^recipes:typography_overview$ http://doc.silverstripe.org/old/recipes:typography_overview [R=301,L]
RewriteRule ^recipes:update_records_for_a_class_using_code$ http://doc.silverstripe.org/old/recipes:update_records_for_a_class_using_code [R=301,L]
RewriteRule ^recipes:what_to_return_from_a_function$ http://doc.silverstripe.org/old/recipes:what_to_return_from_a_function [R=301,L]
RewriteRule ^recipes:widget-forms-2.3$ http://doc.silverstripe.org/old/recipes:widget-forms-2.3 [R=301,L]
RewriteRule ^releases$ http://doc.silverstripe.org/framework/en/misc/release-process [R=301,L]
RewriteRule ^requirements$ http://doc.silverstripe.org/framework/en/reference/requirements [R=301,L]
RewriteRule ^restfulserver$ http://api.silverstripe.org/search/lookup/?q=RestfulServer&module=sapphire [R=301,L]
RewriteRule ^restfulservice$ http://doc.silverstripe.org/framework/en/reference/restfulservice [R=301,L]
RewriteRule ^rssfeed$ http://doc.silverstripe.org/framework/en/reference/rssfeed [R=301,L]
RewriteRule ^sake$ http://doc.silverstripe.org/framework/en/topics/commandline [R=301,L]
RewriteRule ^searchcontext$ http://doc.silverstripe.org/framework/en/topics/search [R=301,L]
RewriteRule ^searchform$ http://doc.silverstripe.org/framework/en/topics/search [R=301,L]
RewriteRule ^secure-development$ http://doc.silverstripe.org/framework/en/topics/security [R=301,L]
RewriteRule ^security$ http://doc.silverstripe.org/framework/en/topics/security [R=301,L]
RewriteRule ^security-statement$ http://doc.silverstripe.org/old/security-statement [R=301,L]
RewriteRule ^selectiongroup$ http://api.silverstripe.org/search/lookup/?q=SelectionGroup&module=sapphire [R=301,L]
RewriteRule ^server-requirements$ http://doc.silverstripe.org/framework/en/installation/server-requirements [R=301,L]
RewriteRule ^sessions$ http://api.silverstripe.org/search/lookup/?q=Session&module=sapphire [R=301,L]
RewriteRule ^shortcodes$ http://doc.silverstripe.org/framework/en/reference/bbcode [R=301,L]
RewriteRule ^silverstripe-book-errata$ http://doc.silverstripe.org/old/silverstripe-book-errata [R=301,L]
RewriteRule ^siteconfig$ http://doc.silverstripe.org/framework/en/reference/siteconfig [R=301,L]
RewriteRule ^sitetree$ http://doc.silverstripe.org/framework/en/reference/sitetree [R=301,L]
RewriteRule ^sqlquery$ http://doc.silverstripe.org/framework/en/reference/sqlquery [R=301,L]
RewriteRule ^start$ http://doc.silverstripe.org/framework/en/ [R=301,L]
RewriteRule ^staticexporter$ http://api.silverstripe.org/search/lookup/?q=StaticExporter&module=sapphire [R=301,L]
RewriteRule ^staticpublisher$ http://doc.silverstripe.org/framework/en/reference/staticpublisher [R=301,L]
RewriteRule ^suggested-web-hosts$ http://doc.silverstripe.org/old/suggested-web-hosts [R=301,L]
RewriteRule ^subversion$ http://doc.silverstripe.org/framework/en/installation/from-source [R=301,L]
RewriteRule ^tab$ http://api.silverstripe.org/search/lookup/?q=Tab&module=sapphire [R=301,L]
RewriteRule ^tablefield$ http://doc.silverstripe.org/framework/en/reference/tablefield [R=301,L]
RewriteRule ^tablelistfield$ http://doc.silverstripe.org/framework/en/reference/tablelistfield [R=301,L]
RewriteRule ^tabset$ http://api.silverstripe.org/search/lookup/?q=TabSet&module=sapphire [R=301,L]
RewriteRule ^templates$ http://doc.silverstripe.org/framework/en/topics/templates [R=301,L]
RewriteRule ^testing-guide$ http://doc.silverstripe.org/framework/en/topics/testing/ [R=301,L]
RewriteRule ^testing-guide-glossary$ http://doc.silverstripe.org/framework/en/topics/testing/ [R=301,L]
RewriteRule ^testing-guide-intro$ http://doc.silverstripe.org/framework/en/topics/testing/testing-guide [R=301,L]
RewriteRule ^testing-guide-troubleshooting$ http://doc.silverstripe.org/framework/en/topics/testing/testing-guide-troubleshooting [R=301,L]
RewriteRule ^testing-howto:create-functional-test$ http://doc.silverstripe.org/framework/en/topics/testing/create-functional-test [R=301,L]
RewriteRule ^testing-howto:create-sapphire-test$ http://doc.silverstripe.org/framework/en/topics/testing/create-sapphire-test [R=301,L]
RewriteRule ^testing-howto:test-email-sending$ http://doc.silverstripe.org/framework/en/topics/testing/email-sending [R=301,L]
RewriteRule ^textareafield$ http://api.silverstripe.org/search/lookup/?q=TextAreaField&module=sapphire [R=301,L]
RewriteRule ^textfield$ http://api.silverstripe.org/search/lookup/?q=TextField&module=sapphire [R=301,L]
RewriteRule ^themes$ http://doc.silverstripe.org/framework/en/topics/themes [R=301,L]
RewriteRule ^themes:developing$ http://doc.silverstripe.org/framework/en/topics/theme-development [R=301,L]
RewriteRule ^third-party-packages$ http://doc.silverstripe.org/old/third-party-packages [R=301,L]
RewriteRule ^tools$ http://doc.silverstripe.org/old/tools [R=301,L]
RewriteRule ^tools:dreamweaver$ http://doc.silverstripe.org/old/tools:dreamweaver [R=301,L]
RewriteRule ^tools:eclipse$ http://doc.silverstripe.org/old/tools:eclipse [R=301,L]
RewriteRule ^tools:gedit$ http://doc.silverstripe.org/old/tools:gedit [R=301,L]
RewriteRule ^tools:netbeans$ http://doc.silverstripe.org/old/tools:netbeans [R=301,L]
RewriteRule ^tools:textmate$ http://doc.silverstripe.org/old/tools:textmate [R=301,L]
RewriteRule ^translatable$ http://doc.silverstripe.org/framework/en/topics/translation [R=301,L]
RewriteRule ^translation$ http://doc.silverstripe.org/framework/en/topics/translation [R=301,L]
RewriteRule ^treedropdownfield$ http://api.silverstripe.org/search/lookup/?q=TreeDropdownField&module=sapphire [R=301,L]
RewriteRule ^treemultiselectfield$ http://api.silverstripe.org/search/lookup/?q=TreeMultiSelectField&module=sapphire [R=301,L]
RewriteRule ^tutorial:1-building-a-basic-site$ http://doc.silverstripe.org/framework/en/tutorials/1-building-a-basic-site [R=301,L]
RewriteRule ^tutorial:2-extending-a-basic-site$ http://doc.silverstripe.org/framework/en/tutorials/2-extending-a-basic-site [R=301,L]
RewriteRule ^tutorial:3-forms$ http://doc.silverstripe.org/framework/en/tutorials/3-forms [R=301,L]
RewriteRule ^tutorial:4-site-search$ http://doc.silverstripe.org/framework/en/tutorials/4-site-search [R=301,L]
RewriteRule ^tutorial:5-dataobject-relationship-management$ http://doc.silverstripe.org/framework/en/tutorials/5-dataobject-relationship-management [R=301,L]
RewriteRule ^tutorials$ http://doc.silverstripe.org/framework/en/tutorials/ [R=301,L]
RewriteRule ^tutorials$ http://doc.silverstripe.org/framework/en/tutorials/ [R=301,L]
RewriteRule ^typography$ http://doc.silverstripe.org/framework/en/reference/typography [R=301,L]
RewriteRule ^upgrading$ http://doc.silverstripe.org/framework/en/installation/upgrading [R=301,L]
RewriteRule ^upgrading$ http://doc.silverstripe.org/framework/en/installation/upgrading/ [R=301,L]
RewriteRule ^uploadify$ http://doc.silverstripe.org/old/uploadify [R=301,L]
RewriteRule ^urlvariabletools$ http://doc.silverstripe.org/framework/en/reference/urlvariabletools [R=301,L]
RewriteRule ^validator$ http://api.silverstripe.org/search/lookup/?q=Validator&module=sapphire [R=301,L]
RewriteRule ^versioned$ http://doc.silverstripe.org/framework/en/reference/versioned [R=301,L]
RewriteRule ^videotours$ http://doc.silverstripe.org/old/videotours [R=301,L]
RewriteRule ^virtualpage$ http://api.silverstripe.org/search/lookup/?q=VirtualPage&module=sapphire [R=301,L]
RewriteRule ^widgets$ http://doc.silverstripe.org/framework/en/topics/widgets [R=301,L]
RewriteRule ^buildbot-try-server$ http://doc.silverstripe.org/old/buildbot-try-server [R=301,L]
# Legacy rewrite: Can't use 'master' as it confuses api.ss.org linking
RewriteRule ^framework/en/master(.*) http://doc.silverstripe.org/framework/en/trunk$1 [R=301,L]
# Legacy rewrite: sapphire should point to framework
RewriteRule ^sapphire(.*) http://doc.silverstripe.org/framework$1 [R=301,L]
# Anything in sapphire/en/<version>/misc is redirected to trunk, the info in there is usually not version specific,
# and only updated on master (e.g. contribution and coding guidelines)
RewriteRule ^framework/en/misc/?(.*) http://doc.silverstripe.org/framework/en/trunk/misc/$1 [R=301,L]
RewriteRule ^framework/en/[\d.]*/misc/?(.*) http://doc.silverstripe.org/framework/en/trunk/misc/$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt)$
RewriteRule .* framework/main.php?url=%1&%{QUERY_STRING} [L]
</IfModule>
ErrorDocument 404 /assets/error-404.html
ErrorDocument 500 /assets/error-500.html
FileETag INode MTime
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/* "access plus 7 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/x-javascript "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
</IfModule>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>

View File

@ -1,17 +0,0 @@
all:
@echo "Available commands:"
@grep "^[^#[:space:]].*:$$" Makefile
update:
@make fetch
@make index
fetch:
@./bin/update.sh $(CURDIR)
index:
@php framework/cli-script.php dev/tasks/RebuildLuceneDocsIndex flush=1
test:
$(MAKE) QUERYSTRING="$(QUERYSTRING)&SkipTests=RestfulServiceTest" -C sapphire test

View File

@ -3,7 +3,7 @@
This is the source code powering http://docs.silverstripe.org. It
primarily consists of the SilverStripe
[framework](https://github.com/silverstripe/silverstripe-framework)
and [docsviewer](https://github.com/silverstripe/silverstripe-docsviewer)
and the [docsviewer](https://github.com/silverstripe/silverstripe-docsviewer)
module with minimal configuration.
For adding functionality or editing the style of the documentation see the
@ -15,9 +15,15 @@ To set up a test instance:
* Clone this repository to a LAMP server.
* Install [Composer](http://docs.silverstripe.org/en/getting_started/composer)
* Install [sake](https://docs.silverstripe.org/en/developer_guides/cli/).
* After installing composer run `composer install --prefer-source` to grab the modules.
* Run `make update` to check out the repositories from which it builds the
docs (this will take a while the first time)
* Run the docs crontask in the browser `dev/tasks/UpdateDocsCronTask`
to download all fresh markdown documentation files and reindex them. Note: this
will take some time to run. Alternatively, you can use sake
to perform these tasks by firstly running the command `sake
dev/tasks/RefreshMarkdownTask flush=1` and secondly `sake
dev/tasks/RebuildLuceneDocsIndex flush=1`.
* Make sure to flush the cache for markdown content to show up.
## Source Documentation Files
@ -27,17 +33,33 @@ ignored from this repository to allow for easier updating and to keep this
project small.
To update or download the source documentation at any time run the following
make command in your terminal:
BuildTask command with sake:
cd /Sites/doc.silverstripe.org/
make fetch
sake dev/tasks/RefreshMarkdownTask flush=1
`make fetch` will call bin/update.sh to download / update each module as listed
in the bin/update.sh file.
This build task will download / update each module as listed in the
`app/_config/docs-repositories.yml` file. Running `sake
dev/tasks/RebuildLuceneDocsIndex flush=1` will then create a search
index and reindex the documentation to facilitate searching.
Once the `make fetch` command has executed and downloaded the latest files,
Once the build task has executed and downloaded the latest files,
those files are registered along with the module version the folder relates to
through the [docsviewer.yml](https://github.com/silverstripe/doc.silverstripe.org/blob/master/app/_config/docsviewer.yml) file.
through the `app/_config/docsviewer.yml` file.
```yaml
DocumentationManifest:
register_entities:
-
Path: "src/framework_3.2/docs/"
Title: "Developer Documentation"
Version: "3.2"
Stable: true
DefaultEntity: true
```
Set `Stable: true` on the set of documentation relating the current stable version of SilverStripe.
## Contribution
@ -56,9 +78,12 @@ docs.silverstripe.org via a cron job.
## Cron job
The cron job keeps docs.silverstripe.org up to date with the latest code. This
cron task calls `make update`, a script that fetches the latest documentation
for each module from git and rebuilds the search indexes.
The cron job `UpdateDocsCronTask` includes tasks that fetch the latest documentation for each module from git and rebuilds the search indexes.
05 * * * * sites make -f /sites/ss2doc-v2/www/Makefile -C /sites/ss2doc-v2/www update
public function getSchedule() {
return "0 20 * * *"; // runs process() function every day at 8PM
}
## Deployment
Deployment is via the SilverStripe Platform deployment tool and uses StackShare.

View File

@ -4,10 +4,11 @@ global $project;
$project = 'app';
global $database;
$database = 'SS_ssdoc';
if (defined('SS_DATABASE_NAME')) {
if(defined('SS_DATABASE_NAME') && SS_DATABASE_NAME) {
$database = SS_DATABASE_NAME;
} else {
$database = 'SS_ssdoc';
}
if(isset($_ENV['CLEARDB_DATABASE_URL'])) {
@ -57,9 +58,7 @@ Config::inst()->update('DocumentationSearch', 'boost_by_path', array(
));
// Set shared index (avoid issues with different temp paths between CLI and web users)
if(file_exists(BASE_PATH . '/.lucene-index')) {
Config::inst()->update('DocumentationSearch', 'index_location', BASE_PATH . '/.lucene-index');
}
Config::inst()->update('DocumentationSearch', 'index_location', BASE_PATH . '/assets/.lucene-index');
// Fix invalid character in iconv
// see http://stackoverflow.com/questions/4723135/invalid-characters-for-lucene-text-search

View File

@ -9,4 +9,4 @@ StaticExporter:
disable_sitetree_export: true
Controller:
extensions:
- ControllerExtension
- ControllerExtension

View File

@ -0,0 +1,32 @@
---
Name: docs-repos
After:
- framework/*
- cms/*
---
RefreshMarkdownTask:
documentation_repositories:
-
- silverstripe/silverstripe-framework
- framework
- master
-
- silverstripe/silverstripe-framework
- framework
- "3.3"
-
- silverstripe/silverstripe-framework
- framework
- "3.2"
-
- silverstripe/silverstripe-framework
- framework
- "3.1"
-
- silverstripe/silverstripe-framework
- framework
- "3.0"
-
- silverstripe/silverstripe-framework
- framework
- "2.4"

View File

@ -10,41 +10,35 @@ DocumentationManifest:
automatic_registration: false
register_entities:
-
Path: "src/framework_master/docs/"
Path: "assets/src/framework_master/docs/"
Title: "Framework"
Version: "4.0"
Branch: "master"
DefaultEntity: true
-
Path: "src/framework_3/docs/"
Title: "Framework"
Version: "3.4"
Branch: "3"
DefaultEntity: true
-
Path: "src/framework_3.3/docs/"
Path: "assets/src/framework_3.3/docs/"
Title: "Framework"
Version: "3.3"
Branch: "3.3"
DefaultEntity: true
-
Path: "src/framework_3.2/docs/"
Path: "assets/src/framework_3.2/docs/"
Title: "Framework"
Version: "3.2"
Stable: true
DefaultEntity: true
-
Path: "src/framework_3.1/docs/"
Path: "assets/src/framework_3.1/docs/"
Title: "Framework"
Version: "3.1"
DefaultEntity: true
-
Path: "src/framework_3.0/docs/"
Path: "assets/src/framework_3.0/docs/"
Title: "Framework"
Version: "3.0"
DefaultEntity: true
-
Path: "src/framework_2.4/docs/"
Path: "assets/src/framework_2.4/docs/"
Title: "Framework"
Version: "2.4"
DefaultEntity: true

View File

@ -1,5 +1,5 @@
---
Name: docs
Name: docs-routes
After: framework/routes#coreroutes
---
Director:

View File

@ -22,7 +22,7 @@ Only:
environment: test
---
GlobalNav:
hostname: '//sssites-ssorg-uat.sites.silverstripe.com/'
hostname: '//www.silverstripe.org/'
css_path: '/themes/ssv3/css/toolbar.min.css'
snippet_path: '/assets'
use_localhost: false

View File

@ -0,0 +1,119 @@
<?php
class RefreshMarkdownTask extends BuildTask
{
/**
* @var array
* @config documentation_repositories
*/
private static $documentation_repositories;
/**
* @var string
*/
protected $title = "Refresh markdown files";
/**
* @var string
*/
protected $description = "Downloads a fresh version of markdown documentation files from source";
/**
* @var bool
*/
protected $enabled = true;
/**
* @var SS_HTTPRequest $request
*
* @todo test the initial unlink works with cloned modules
*/
public function run($request)
{
$this->printLine("refreshing markdown files...");
$repositories = $this->getRepositories();
foreach ($repositories as $repository) {
$this->cloneRepository($repository);
$this->cleanRepository($repository);
}
}
/**
* @return string
*
* @todo document this new configuration parameter
*/
private function getPath()
{
return ASSETS_PATH;
}
/**
* @param string $message
*/
private function printLine($message)
{
$this->eol = Director::is_cli() ? PHP_EOL : "<br>";
print $message . $this->eol;
flush();
}
/**
* Returns the array of repos to source markdown docs from
*
* @return array
*
*/
private function getRepositories()
{
if($repos = $this->config()->documentation_repositories)
{
return $repos;
} else {
user_error("You need to set 'RefreshMarkdownTask:documentation_repositories' array in a yaml configuration file", E_USER_WARNING);
return null;
}
}
/**
* @param array $repository
*
* @todo test this works with all modules
*/
private function cloneRepository(array $repository)
{
list($remote, $folder, $branch) = $repository;
$path = $this->getPath();
exec("mkdir -p {$path}/src");
exec("rm -rf {$path}/src/{$folder}_{$branch}");
$this->printLine("cloning " . $remote . "/" . $branch);
chdir("{$path}/src");
exec("git clone -q git://github.com/{$remote}.git {$folder}_{$branch} --quiet");
chdir("{$path}/src/{$folder}_{$branch}");
exec("git fetch origin");
exec("git checkout -q origin/{$branch}");
}
/**
* Clears out any non markdown files stored in assets
*
* @param array $repository
*/
private function cleanRepository(array $repository)
{
$paths = array_merge(glob("*"), glob(".*"));
foreach ($paths as $path) {
if ($path !== "docs" && $path !== "." && $path !== "..") {
exec("rm -rf {$path}");
}
}
}
}

View File

@ -0,0 +1,28 @@
<?php
class UpdateDocsCronTask implements CronTask
{
/**
* @return string
*/
public function getSchedule()
{
return "0 20 * * *";
}
/**
* @return BuildTask
*/
public function process()
{
//refresh markdown files
$refresh_task = new RefreshMarkdownTask();
$refresh_task->run(null);
//reindex markdown files
$reindex_task = new RebuildLuceneDocsIndex();
$reindex_task->run(null);
}
}

View File

@ -1,52 +0,0 @@
#!/bin/bash
dir=$1
if [ ! "$dir" ]; then
echo "Usage: $0 /base/folder/to/docs"
exit 1
fi
#=== FUNCTION ================================================================
# NAME: checkout
# DESCRIPTION: Checks out a specific branch of a module into a folder. Not
# particular good for taking up space, but at the moment separate
# folders for each version we need will do.
#
# The master branch will checked out by default
# PARAMETERS:
# $1 - module path on github (e.g silverstripe/sapphire.git)
# $2 - branch name (e.g 3.0)
# $3 - module name (e.g sapphire)
#
#===============================================================================
# Parameters: github path
function checkout {
# Create dirs
if [ ! -d $dir/src ]; then
mkdir $dir/src
fi
if [ ! -d $dir/src/$2_$3 ]; then
echo "Cloning $1 branch $3"
cd $dir/src
git clone -b $3 --depth=100 git://github.com/$1 $dir/src/$2_$3 --quiet
else
echo "Updating $2 from branch $3"
cd $dir/src/$2_$3
git reset --hard -q
git fetch origin -q
git pull -q origin $3
fi
}
# core
checkout 'silverstripe/silverstripe-framework.git' 'framework' 'master'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '3'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '3.3'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '3.2'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '3.1'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '3.0'
checkout 'silverstripe/silverstripe-framework.git' 'framework' '2.4'
echo "Done."

View File

@ -6,7 +6,8 @@
"ext-mbstring": "*",
"silverstripe/docsviewer": "dev-master",
"silverstripe/framework": "^3.2",
"silverstripe/toolbar": "^4.0"
"silverstripe/toolbar": "^4.0",
"silverstripe/dynamodb": "^1.1"
},
"require-dev": {
"phpunit/PHPUnit": "~3.7@stable"

494
composer.lock generated
View File

@ -4,25 +4,88 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "cd69d6da542e5a55eb70de4717509fec",
"content-hash": "2d681db39312cbcf607f72a193a9c2b1",
"hash": "1ddd85476025c0b7a81ac788f843c0ee",
"content-hash": "fc7210e99b3e3e346c1ea1bd9edf7cb8",
"packages": [
{
"name": "composer/installers",
"version": "v1.0.22",
"name": "aws/aws-sdk-php",
"version": "2.8.27",
"source": {
"type": "git",
"url": "https://github.com/composer/installers.git",
"reference": "bd9b14f094c89c8b5804a4e41edeb7853bb85046"
"url": "https://github.com/aws/aws-sdk-php.git",
"reference": "c1605360b6624958a5397601ad5543cd45fcf8f7"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/installers/zipball/bd9b14f094c89c8b5804a4e41edeb7853bb85046",
"reference": "bd9b14f094c89c8b5804a4e41edeb7853bb85046",
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c1605360b6624958a5397601ad5543cd45fcf8f7",
"reference": "c1605360b6624958a5397601ad5543cd45fcf8f7",
"shasum": ""
},
"require": {
"composer-plugin-api": "1.0.0"
"guzzle/guzzle": "~3.7",
"php": ">=5.3.3"
},
"require-dev": {
"doctrine/cache": "~1.0",
"ext-openssl": "*",
"monolog/monolog": "~1.4",
"phpunit/phpunit": "~4.0",
"phpunit/phpunit-mock-objects": "2.3.1",
"symfony/yaml": "~2.1"
},
"suggest": {
"doctrine/cache": "Adds support for caching of credentials and responses",
"ext-apc": "Allows service description opcode caching, request and response caching, and credentials caching",
"ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
"monolog/monolog": "Adds support for logging HTTP requests and responses",
"symfony/yaml": "Eases the ability to write manifests for creating jobs in AWS Import/Export"
},
"type": "library",
"autoload": {
"psr-0": {
"Aws": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Amazon Web Services",
"homepage": "http://aws.amazon.com"
}
],
"description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
"homepage": "http://aws.amazon.com/sdkforphp",
"keywords": [
"amazon",
"aws",
"cloud",
"dynamodb",
"ec2",
"glacier",
"s3",
"sdk"
],
"time": "2016-01-30 00:53:32"
},
{
"name": "composer/installers",
"version": "v1.0.23",
"source": {
"type": "git",
"url": "https://github.com/composer/installers.git",
"reference": "6213d900e92647831f7a406d5c530ea1f3d4360e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/installers/zipball/6213d900e92647831f7a406d5c530ea1f3d4360e",
"reference": "6213d900e92647831f7a406d5c530ea1f3d4360e",
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0"
},
"replace": {
"roundcube/plugin-installer": "*",
@ -103,7 +166,77 @@
"zend",
"zikula"
],
"time": "2015-10-29 23:28:48"
"time": "2016-01-27 12:54:22"
},
{
"name": "doctrine/cache",
"version": "v1.6.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/f8af318d14bdb0eff0336795b428b547bd39ccb6",
"reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6",
"shasum": ""
},
"require": {
"php": "~5.5|~7.0"
},
"conflict": {
"doctrine/common": ">2.2,<2.4"
},
"require-dev": {
"phpunit/phpunit": "~4.8|~5.0",
"predis/predis": "~1.0",
"satooshi/php-coveralls": "~0.6"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
}
],
"description": "Caching library offering an object-oriented API for many cache backends",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"cache",
"caching"
],
"time": "2015-12-31 16:37:02"
},
{
"name": "erusev/parsedown",
@ -188,18 +321,205 @@
],
"time": "2014-09-16 11:54:01"
},
{
"name": "guzzle/guzzle",
"version": "v3.9.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle3.git",
"reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9",
"reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9",
"shasum": ""
},
"require": {
"ext-curl": "*",
"php": ">=5.3.3",
"symfony/event-dispatcher": "~2.1"
},
"replace": {
"guzzle/batch": "self.version",
"guzzle/cache": "self.version",
"guzzle/common": "self.version",
"guzzle/http": "self.version",
"guzzle/inflection": "self.version",
"guzzle/iterator": "self.version",
"guzzle/log": "self.version",
"guzzle/parser": "self.version",
"guzzle/plugin": "self.version",
"guzzle/plugin-async": "self.version",
"guzzle/plugin-backoff": "self.version",
"guzzle/plugin-cache": "self.version",
"guzzle/plugin-cookie": "self.version",
"guzzle/plugin-curlauth": "self.version",
"guzzle/plugin-error-response": "self.version",
"guzzle/plugin-history": "self.version",
"guzzle/plugin-log": "self.version",
"guzzle/plugin-md5": "self.version",
"guzzle/plugin-mock": "self.version",
"guzzle/plugin-oauth": "self.version",
"guzzle/service": "self.version",
"guzzle/stream": "self.version"
},
"require-dev": {
"doctrine/cache": "~1.3",
"monolog/monolog": "~1.0",
"phpunit/phpunit": "3.7.*",
"psr/log": "~1.0",
"symfony/class-loader": "~2.1",
"zendframework/zend-cache": "2.*,<2.3",
"zendframework/zend-log": "2.*,<2.3"
},
"suggest": {
"guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.9-dev"
}
},
"autoload": {
"psr-0": {
"Guzzle": "src/",
"Guzzle\\Tests": "tests/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Guzzle Community",
"homepage": "https://github.com/guzzle/guzzle/contributors"
}
],
"description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
],
"time": "2015-03-18 18:23:50"
},
{
"name": "mtdowling/cron-expression",
"version": "v1.0.4",
"source": {
"type": "git",
"url": "https://github.com/mtdowling/cron-expression.git",
"reference": "fd92e883195e5dfa77720b1868cf084b08be4412"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mtdowling/cron-expression/zipball/fd92e883195e5dfa77720b1868cf084b08be4412",
"reference": "fd92e883195e5dfa77720b1868cf084b08be4412",
"shasum": ""
},
"require": {
"php": ">=5.3.2"
},
"require-dev": {
"phpunit/phpunit": "4.*"
},
"type": "library",
"autoload": {
"psr-0": {
"Cron": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
"keywords": [
"cron",
"schedule"
],
"time": "2015-01-11 23:07:46"
},
{
"name": "silverstripe/crontask",
"version": "v1.1.0",
"source": {
"type": "git",
"url": "https://github.com/silverstripe-labs/silverstripe-crontask.git",
"reference": "0db152c8edf448e3ed9797d60e181800ac67ed75"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/silverstripe-labs/silverstripe-crontask/zipball/0db152c8edf448e3ed9797d60e181800ac67ed75",
"reference": "0db152c8edf448e3ed9797d60e181800ac67ed75",
"shasum": ""
},
"require": {
"mtdowling/cron-expression": "1.0.*",
"silverstripe/framework": "~3.1"
},
"require-dev": {
"phpunit/phpunit": "~3.7@stable"
},
"type": "silverstripe-module",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "SilverStripe",
"homepage": "http://silverstripe.com"
},
{
"name": "The SilverStripe Community",
"homepage": "http://silverstripe.org"
}
],
"description": "Module for running tasks with a standard cron timeschedule",
"keywords": [
"cron",
"silverstripe"
],
"time": "2014-11-20 01:20:17"
},
{
"name": "silverstripe/docsviewer",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/silverstripe/silverstripe-docsviewer.git",
"reference": "2f0cbfe4f675dd3957623055cfbeccd8ebf1bfef"
"reference": "f70d5fde0a2bae46d6ee49779f57249c72b55e69"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/silverstripe/silverstripe-docsviewer/zipball/2f0cbfe4f675dd3957623055cfbeccd8ebf1bfef",
"reference": "2f0cbfe4f675dd3957623055cfbeccd8ebf1bfef",
"url": "https://api.github.com/repos/silverstripe/silverstripe-docsviewer/zipball/f70d5fde0a2bae46d6ee49779f57249c72b55e69",
"reference": "f70d5fde0a2bae46d6ee49779f57249c72b55e69",
"shasum": ""
},
"require": {
@ -227,7 +547,48 @@
"documentation",
"silverstripe"
],
"time": "2015-11-17 03:04:08"
"time": "2016-01-24 12:24:56"
},
{
"name": "silverstripe/dynamodb",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/silverstripe/silverstripe-dynamodb.git",
"reference": "1336a57cbb5b8a19abd2b9f67099db9a20aaf8c4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/silverstripe/silverstripe-dynamodb/zipball/1336a57cbb5b8a19abd2b9f67099db9a20aaf8c4",
"reference": "1336a57cbb5b8a19abd2b9f67099db9a20aaf8c4",
"shasum": ""
},
"require": {
"aws/aws-sdk-php": "~2.8.24",
"doctrine/cache": "1.*",
"silverstripe/crontask": "*"
},
"type": "silverstripe-module",
"extra": {
"installer-name": "silverstripe-dynamodb"
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Stig Lindqvist",
"email": "stig@silverstripe.com"
}
],
"description": "SilverStripe DynamoDB integration.",
"keywords": [
"aws",
"dynamodb",
"silverstripe"
],
"time": "2015-11-23 20:48:17"
},
{
"name": "silverstripe/framework",
@ -280,16 +641,16 @@
},
{
"name": "silverstripe/toolbar",
"version": "4.1.0",
"version": "4.1.1",
"source": {
"type": "git",
"url": "https://github.com/silverstripe/silverstripe-globaltoolbar.git",
"reference": "108fc37a26d5c96780a4c4c29a79dbcc79fb9c70"
"reference": "74111995b046d7fffc372ad26b05ee6dfd62604d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/silverstripe/silverstripe-globaltoolbar/zipball/108fc37a26d5c96780a4c4c29a79dbcc79fb9c70",
"reference": "108fc37a26d5c96780a4c4c29a79dbcc79fb9c70",
"url": "https://api.github.com/repos/silverstripe/silverstripe-globaltoolbar/zipball/74111995b046d7fffc372ad26b05ee6dfd62604d",
"reference": "74111995b046d7fffc372ad26b05ee6dfd62604d",
"shasum": ""
},
"require": {
@ -317,27 +678,87 @@
"silverstripe"
],
"support": {
"source": "https://github.com/silverstripe/silverstripe-globaltoolbar/tree/4.1.0",
"source": "https://github.com/silverstripe/silverstripe-globaltoolbar/tree/4.1.1",
"issues": "https://github.com/silverstripe/silverstripe-globaltoolbar/issues"
},
"time": "2015-11-03 22:53:02"
"time": "2015-12-07 03:08:14"
},
{
"name": "unclecheese/display-logic",
"version": "1.3.1",
"name": "symfony/event-dispatcher",
"version": "v2.8.2",
"source": {
"type": "git",
"url": "https://github.com/unclecheese/silverstripe-display-logic.git",
"reference": "6f8870aeddc56821d00cabdf6d9d9f040ae90c4c"
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "ee278f7c851533e58ca307f66305ccb9188aceda"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/unclecheese/silverstripe-display-logic/zipball/6f8870aeddc56821d00cabdf6d9d9f040ae90c4c",
"reference": "6f8870aeddc56821d00cabdf6d9d9f040ae90c4c",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ee278f7c851533e58ca307f66305ccb9188aceda",
"reference": "ee278f7c851533e58ca307f66305ccb9188aceda",
"shasum": ""
},
"require": {
"silverstripe/framework": "3.2.*"
"php": ">=5.3.9"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "~2.0,>=2.0.5|~3.0.0",
"symfony/dependency-injection": "~2.6|~3.0.0",
"symfony/expression-language": "~2.6|~3.0.0",
"symfony/stopwatch": "~2.3|~3.0.0"
},
"suggest": {
"symfony/dependency-injection": "",
"symfony/http-kernel": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.8-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\EventDispatcher\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"time": "2016-01-13 10:28:07"
},
{
"name": "unclecheese/display-logic",
"version": "1.3.2",
"source": {
"type": "git",
"url": "https://github.com/unclecheese/silverstripe-display-logic.git",
"reference": "43a2213c4748c3f56fc91842ab3a4a3b22caacf0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/unclecheese/silverstripe-display-logic/zipball/43a2213c4748c3f56fc91842ab3a4a3b22caacf0",
"reference": "43a2213c4748c3f56fc91842ab3a4a3b22caacf0",
"shasum": ""
},
"require": {
"silverstripe/framework": "^3.2"
},
"replace": {
"silverstripe/display-logic": "*"
@ -364,7 +785,7 @@
"logic",
"silverstripe"
],
"time": "2015-10-30 08:29:38"
"time": "2015-12-14 22:02:51"
}
],
"packages-dev": [
@ -732,16 +1153,16 @@
},
{
"name": "symfony/yaml",
"version": "v2.7.6",
"version": "v2.8.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
"reference": "eca9019c88fbe250164affd107bc8057771f3f4d"
"reference": "34c8a4b51e751e7ea869b8262f883d008a2b81b8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/eca9019c88fbe250164affd107bc8057771f3f4d",
"reference": "eca9019c88fbe250164affd107bc8057771f3f4d",
"url": "https://api.github.com/repos/symfony/yaml/zipball/34c8a4b51e751e7ea869b8262f883d008a2b81b8",
"reference": "34c8a4b51e751e7ea869b8262f883d008a2b81b8",
"shasum": ""
},
"require": {
@ -750,13 +1171,16 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.7-dev"
"dev-master": "2.8-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Yaml\\": ""
}
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@ -774,7 +1198,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2015-10-11 09:39:48"
"time": "2016-01-13 10:28:07"
}
],
"aliases": [],

View File

@ -1,4 +1,5 @@
User-agent: *
Disallow: /src/
Disallow: /en/4.0/
Disallow: /en/3.3/
Disallow: /admin
Disallow: /assets/src
Disallow: /assets/.lucene-index
Crawl-Delay: 4