Skip to content

Commit cd6cf52

Browse files
committed
first version - laravel 5.5
1 parent 2323e74 commit cd6cf52

File tree

4 files changed

+126
-0
lines changed

4 files changed

+126
-0
lines changed

Default.sublime-commands

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
[
2+
{"caption": "Laravel Docs: Blade", "command": "laravel_docs", "args": {"page": "blade"}},
3+
{"caption": "Laravel Docs: Eloquent Mutators", "command": "laravel_docs", "args": {"page": "eloquent-mutators"}},
4+
{"caption": "Laravel Docs: Providers", "command": "laravel_docs", "args": {"page": "providers"}},
5+
{"caption": "Laravel Docs: Controllers", "command": "laravel_docs", "args": {"page": "controllers"}},
6+
{"caption": "Laravel Docs: Collections", "command": "laravel_docs", "args": {"page": "collections"}},
7+
{"caption": "Laravel Docs: Queries", "command": "laravel_docs", "args": {"page": "queries"}},
8+
{"caption": "Laravel Docs: Eloquent Serialization", "command": "laravel_docs", "args": {"page": "eloquent-serialization"}},
9+
{"caption": "Laravel Docs: Packages", "command": "laravel_docs", "args": {"page": "packages"}},
10+
{"caption": "Laravel Docs: Routing", "command": "laravel_docs", "args": {"page": "routing"}},
11+
{"caption": "Laravel Docs: Contributions", "command": "laravel_docs", "args": {"page": "contributions"}},
12+
{"caption": "Laravel Docs: Mail", "command": "laravel_docs", "args": {"page": "mail"}},
13+
{"caption": "Laravel Docs: Scheduling", "command": "laravel_docs", "args": {"page": "scheduling"}},
14+
{"caption": "Laravel Docs: Horizon", "command": "laravel_docs", "args": {"page": "horizon"}},
15+
{"caption": "Laravel Docs: Events", "command": "laravel_docs", "args": {"page": "events"}},
16+
{"caption": "Laravel Docs: Facades", "command": "laravel_docs", "args": {"page": "facades"}},
17+
{"caption": "Laravel Docs: Database Testing", "command": "laravel_docs", "args": {"page": "database-testing"}},
18+
{"caption": "Laravel Docs: Queues", "command": "laravel_docs", "args": {"page": "queues"}},
19+
{"caption": "Laravel Docs: Eloquent Relationships", "command": "laravel_docs", "args": {"page": "eloquent-relationships"}},
20+
{"caption": "Laravel Docs: Deployment", "command": "laravel_docs", "args": {"page": "deployment"}},
21+
{"caption": "Laravel Docs: Database", "command": "laravel_docs", "args": {"page": "database"}},
22+
{"caption": "Laravel Docs: Database#Configuration", "command": "laravel_docs", "args": {"page": "database"}},
23+
{"caption": "Laravel Docs: Session", "command": "laravel_docs", "args": {"page": "session"}},
24+
{"caption": "Laravel Docs: Upgrade", "command": "laravel_docs", "args": {"page": "upgrade"}},
25+
{"caption": "Laravel Docs: Installation", "command": "laravel_docs", "args": {"page": "installation"}},
26+
{"caption": "Laravel Docs: Urls", "command": "laravel_docs", "args": {"page": "urls"}},
27+
{"caption": "Laravel Docs: Authentication", "command": "laravel_docs", "args": {"page": "authentication"}},
28+
{"caption": "Laravel Docs: Redis", "command": "laravel_docs", "args": {"page": "redis"}},
29+
{"caption": "Laravel Docs: Frontend", "command": "laravel_docs", "args": {"page": "frontend"}},
30+
{"caption": "Laravel Docs: Requests", "command": "laravel_docs", "args": {"page": "requests"}},
31+
{"caption": "Laravel Docs: Session#Configuration", "command": "laravel_docs", "args": {"page": "session"}},
32+
{"caption": "Laravel Docs: Seeding", "command": "laravel_docs", "args": {"page": "seeding"}},
33+
{"caption": "Laravel Docs: Authorization", "command": "laravel_docs", "args": {"page": "authorization"}},
34+
{"caption": "Laravel Docs: Artisan", "command": "laravel_docs", "args": {"page": "artisan"}},
35+
{"caption": "Laravel Docs: Errors", "command": "laravel_docs", "args": {"page": "errors"}},
36+
{"caption": "Laravel Docs: Pagination", "command": "laravel_docs", "args": {"page": "pagination"}},
37+
{"caption": "Laravel Docs: Structure", "command": "laravel_docs", "args": {"page": "structure"}},
38+
{"caption": "Laravel Docs: Migrations", "command": "laravel_docs", "args": {"page": "migrations"}},
39+
{"caption": "Laravel Docs: Mix", "command": "laravel_docs", "args": {"page": "mix"}},
40+
{"caption": "Laravel Docs: Testing", "command": "laravel_docs", "args": {"page": "testing"}},
41+
{"caption": "Laravel Docs: Billing", "command": "laravel_docs", "args": {"page": "billing"}},
42+
{"caption": "Laravel Docs: Broadcasting", "command": "laravel_docs", "args": {"page": "broadcasting"}},
43+
{"caption": "Laravel Docs: Container", "command": "laravel_docs", "args": {"page": "container"}},
44+
{"caption": "Laravel Docs: Scout", "command": "laravel_docs", "args": {"page": "scout"}},
45+
{"caption": "Laravel Docs: Cache#Configuration", "command": "laravel_docs", "args": {"page": "cache"}},
46+
{"caption": "Laravel Docs: Hashing", "command": "laravel_docs", "args": {"page": "hashing"}},
47+
{"caption": "Laravel Docs: Mocking", "command": "laravel_docs", "args": {"page": "mocking"}},
48+
{"caption": "Laravel Docs: Filesystem", "command": "laravel_docs", "args": {"page": "filesystem"}},
49+
{"caption": "Laravel Docs: Releases", "command": "laravel_docs", "args": {"page": "releases"}},
50+
{"caption": "Laravel Docs: Validation", "command": "laravel_docs", "args": {"page": "validation"}},
51+
{"caption": "Laravel Docs: Valet", "command": "laravel_docs", "args": {"page": "valet"}},
52+
{"caption": "Laravel Docs: Envoy", "command": "laravel_docs", "args": {"page": "envoy"}},
53+
{"caption": "Laravel Docs: Localization", "command": "laravel_docs", "args": {"page": "localization"}},
54+
{"caption": "Laravel Docs: Http Tests", "command": "laravel_docs", "args": {"page": "http-tests"}},
55+
{"caption": "Laravel Docs: Homestead", "command": "laravel_docs", "args": {"page": "homestead"}},
56+
{"caption": "Laravel Docs: Dusk", "command": "laravel_docs", "args": {"page": "dusk"}},
57+
{"caption": "Laravel Docs: Views", "command": "laravel_docs", "args": {"page": "views"}},
58+
{"caption": "Laravel Docs: Eloquent Collections", "command": "laravel_docs", "args": {"page": "eloquent-collections"}},
59+
{"caption": "Laravel Docs: Csrf", "command": "laravel_docs", "args": {"page": "csrf"}},
60+
{"caption": "Laravel Docs: Encryption", "command": "laravel_docs", "args": {"page": "encryption"}},
61+
{"caption": "Laravel Docs: Passport", "command": "laravel_docs", "args": {"page": "passport"}},
62+
{"caption": "Laravel Docs: Middleware", "command": "laravel_docs", "args": {"page": "middleware"}},
63+
{"caption": "Laravel Docs: Passwords", "command": "laravel_docs", "args": {"page": "passwords"}},
64+
{"caption": "Laravel Docs: Eloquent", "command": "laravel_docs", "args": {"page": "eloquent"}},
65+
{"caption": "Laravel Docs: Eloquent Resources", "command": "laravel_docs", "args": {"page": "eloquent-resources"}},
66+
{"caption": "Laravel Docs: Contracts", "command": "laravel_docs", "args": {"page": "contracts"}},
67+
{"caption": "Laravel Docs: Socialite", "command": "laravel_docs", "args": {"page": "socialite"}},
68+
{"caption": "Laravel Docs: Cache", "command": "laravel_docs", "args": {"page": "cache"}},
69+
{"caption": "Laravel Docs: Notifications", "command": "laravel_docs", "args": {"page": "notifications"}},
70+
{"caption": "Laravel Docs: Lifecycle", "command": "laravel_docs", "args": {"page": "lifecycle"}},
71+
{"caption": "Laravel Docs: Responses", "command": "laravel_docs", "args": {"page": "responses"}},
72+
{"caption": "Laravel Docs: Helpers", "command": "laravel_docs", "args": {"page": "helpers"}},
73+
{"caption": "Laravel Docs: Configuration", "command": "laravel_docs", "args": {"page": "configuration"}}
74+
]

LaravelDocs.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import sublime, sublime_plugin, webbrowser
2+
3+
class LaravelDocsCommand(sublime_plugin.WindowCommand):
4+
def run(self, page=''):
5+
# open a new page
6+
url = 'https://laravel.com/docs/'
7+
if(page != ''):
8+
url = url+page
9+
webbrowser.open_new_tab(url)

changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Release Notes
2+
3+
## [Unreleased]
4+
5+
## v1.0.0
6+
- Initial functionality - simple web scraping of laravel docs page to create command list

scrape.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import re
2+
import json
3+
import urllib.request
4+
5+
# Create a request with a valid User-Agent
6+
req = urllib.request.Request(
7+
'https://laravel.com/docs/',
8+
data = None,
9+
headers = {
10+
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
11+
}
12+
)
13+
14+
# Pull the html from the main docs page and find all /docs links
15+
docs = urllib.request.urlopen(req)
16+
links = re.findall('"(/docs/.*?)"', docs.read().decode('utf-8'))
17+
18+
# Format each link as a sublime command, regenerate the command file
19+
with open('Default.sublime-commands', 'w+') as f:
20+
f.write('[\n')
21+
first = True
22+
for url in set(links):
23+
if not first:
24+
f.write(', \n ')
25+
else:
26+
f.write(' ')
27+
first = False
28+
29+
topic = url.split('/')[3].title().replace('-', ' ')
30+
slug = url.split('/')[3].split('#')[0]
31+
32+
j = {"caption": "Laravel Docs: {}".format(topic),
33+
"command": "laravel_docs",
34+
"args": {"page" : "{}".format(slug)}}
35+
json.dump(j,f)
36+
37+
f.write('\n]\n')

0 commit comments

Comments
 (0)