Compare commits

..

732 commits

Author SHA1 Message Date
79fcd69ab6 Add build-configs.yaml
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-06 08:54:27 +01:00
b33edd649f Add build-configs.yaml
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-06 08:54:27 +01:00
d3e70b9754 Merge dransible/main 2025-10-03 22:04:21 +01:00
ad3af7d318 Move all files to deploying-php-ansible-ansistrano/demo/ 2025-10-03 22:04:20 +01:00
3d0c221599 Move slides 2025-10-03 22:03:20 +01:00
db2c860d4e Merge workshop-drupal-automated-testing/main 2025-10-02 23:52:05 +01:00
086b4a8c52 Move all files to workshop-drupal-automated-testing/drupalcamp-london-2020/ 2025-10-02 23:52:04 +01:00
f204491923 Merge phpsw-sculpin-demo/main 2025-10-02 23:48:39 +01:00
66a7f44c1e Move all files to taking-flight-with-tailwind-css/demo/phpsw/ 2025-10-02 23:48:38 +01:00
c1a2e361de Merge sculpin-talk-demo/main 2025-10-02 23:45:35 +01:00
d8ae557445 Move all files to taking-flight-with-tailwind-css/demo/phpnw/ 2025-10-02 23:45:34 +01:00
3fceb4c2b4 Merge workshop-tailwind-css/main 2025-10-02 23:40:19 +01:00
fc8813a5c9 Move all files to workshop-tailwind-css/demo/florida-drupalcamp/ 2025-10-02 23:40:19 +01:00
feff81c15d Update DrupalCamp Florida demo 2025-10-02 23:36:35 +01:00
a42a904f0d Merge drupalcamp-dublin/main 2025-10-02 23:26:19 +01:00
593af57cea Move all files to test-driven-drupal/demo/drupalcamp-dublin-2017/ 2025-10-02 23:26:18 +01:00
c935231fe9 Merge workshop-tailwind-css-static/main 2025-10-02 23:19:07 +01:00
d34019b2bc Move all files to workshop-tailwind-css/demo/florida-drupalcamp-static/ 2025-10-02 23:19:06 +01:00
8923500c4a Merge workshop-tailwind-css/main 2025-10-02 23:17:30 +01:00
60d3cfc742 Move all files to workshop-tailwind-css/demo/florida-drupalcamp/ 2025-10-02 23:17:29 +01:00
863f0bac8c Merge wp-tailwind/main 2025-10-02 23:13:01 +01:00
40f4352cd7 Merge wordcamp-bristol-2019/main 2025-10-02 23:13:01 +01:00
6ec0007820 Move all files to taking-flight-with-tailwind-css/demo/wp-tailwind/ 2025-10-02 23:13:01 +01:00
7cc2622551 Move all files to taking-flight-with-tailwind-css/demo/wordcamp-bristol-2019/ 2025-10-02 23:13:00 +01:00
c3abf150a2 Move slides 2025-10-02 23:11:24 +01:00
e89bee6191 Merge working-with-workspace/main 2025-10-02 23:03:56 +01:00
b3d22ce6f4 Move all files to working-with-workspace/demo/ 2025-10-02 23:03:55 +01:00
6ccaead857 Move slides 2025-10-02 23:01:51 +01:00
1d401246d2 Automated commit
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-02 12:35:10 +01:00
0ccc967ca8 Merge drupal-london/main 2025-10-02 12:31:37 +01:00
695d8b0299 Move all files to test-driven-drupal/demo/drupal-london/ 2025-10-02 12:31:37 +01:00
a365987e61 Move slides 2025-10-02 12:28:08 +01:00
c6ba52f454 Merge decoupling-drupal-vuejs/main 2025-10-02 12:23:38 +01:00
92cba01aa5 Move all files to decoupling-drupal-vuejs/demo/ 2025-10-02 12:23:37 +01:00
0c1d5d02e1 Automated commit
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-02 12:09:06 +01:00
ba2bf10bea Automated commit
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-10-02 12:04:23 +01:00
e85167d5eb Merge reading-college/main 2025-10-02 08:59:28 +01:00
8b2fabb6b7 Move all files to reading-college/demo/ 2025-10-02 08:59:27 +01:00
6a249ef924 Move slides 2025-10-02 08:59:06 +01:00
6d27fa23ac Merge demo/main 2025-10-02 08:40:59 +01:00
638f0cc20f Move all files to building-static-websites-sculpin/demo/ 2025-10-02 08:40:59 +01:00
2604bce65d Move slides 2025-10-02 08:38:57 +01:00
27399cd4d1 Merge code/main 2025-10-02 08:13:03 +01:00
8447b33ec8 Move all files to code/ 2025-10-02 08:13:02 +01:00
d5a5a9e5c7 Merge docs/main 2025-10-02 08:13:01 +01:00
87437b684a Root commit for monorepo branch main 2025-10-02 08:13:01 +01:00
39acad502c Move all files to docs/ 2025-10-02 08:13:01 +01:00
6891a7517a Re-organise
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-09-25 21:52:45 +01:00
34a2740106 Update build scripts
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-09-25 21:50:05 +01:00
b6facbcbf9 Ignore .pdf files
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-09-25 21:48:00 +01:00
bfb67e4010 Updates for unified.diff 2025-09-25 21:02:56 +01:00
b2803aac2d Add marp dev shell
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-09-25 12:03:41 +01:00
d509e167da Automated commit
Signed-off-by: Oliver Davies <oliver@oliverdavies.uk>
2025-08-20 19:30:09 +01:00
7a7604d330 Add slides for Reading College 2025-08-18 23:07:51 +01:00
8f6c432f86 Add .nvim.lua 2025-05-09 12:58:48 +01:00
9bb0b58dfd Initial commit 2025-05-08 23:29:06 +01:00
1fe424eb29 Refactor 2025-04-17 20:22:09 +01:00
96d5a66001 Refactor jq command 2025-04-17 17:20:23 +01:00
a2d09e114b Remove font files
These are now managed via Nix.
2025-04-16 07:16:23 +01:00
a4415a9c90 Refactor 2025-04-16 00:04:51 +01:00
e24d2df83f Remove font files, use fonts from the Nix store 2025-04-15 23:54:12 +01:00
68869f59e7 Rename shared to shared-assets 2025-04-15 23:54:12 +01:00
2094b1ba2e Split installPhase and buildPhase 2025-04-12 07:45:28 +01:00
6f98c753c2 Build slides with Nix 2025-04-12 07:45:28 +01:00
e80aee1deb Updates for PHP Thames Valley 2025-04-11 18:15:43 +01:00
ff651197b8 Updates for Drupal London 2024-11-20 16:40:52 +00:00
0db961b741 Remove the hard-coded talk count 2024-11-20 13:23:17 +00:00
cdd7a466d2 Refactor to a repository 2024-11-20 13:23:17 +00:00
eae47a9c87 Test the talk count 2024-11-20 13:23:17 +00:00
fa691746f0 Ensure it returns a 200 response 2024-11-20 13:23:17 +00:00
5036f657b3 Initial commit 2024-11-20 13:23:17 +00:00
Oliver Davies
4006603e3c
Update presentations URL 2024-09-11 09:51:14 +01:00
Oliver Davies
5b6ccc01d0
Delete src/building-static-websites-sculpin/snippets.lua 2024-09-11 09:44:57 +01:00
5b41902ec6 Add snippets for demo 2024-09-06 01:41:02 +01:00
d7e55e84cc Updates for PHP Berkshire 2024-09-06 01:40:48 +01:00
70be1348db Update flake dependencies 2024-09-04 01:46:58 +01:00
43b8fdfd9c Updates for PHP Berkshire 2024-08-28 15:03:32 +01:00
d2530a138a Add a vim keybinding to generate the currently
...open talk
2024-08-09 21:56:05 +01:00
5cab3659f4 Fix stylesheet name 2024-08-09 21:12:54 +01:00
a679fe98dd Update README 2024-07-23 22:23:41 +01:00
24e3e387b1 Remove justfile 2024-07-23 22:19:50 +01:00
6f53f8c026 Update for BrumPHP 2024-05-23 22:45:43 +01:00
cb4b396577 Update Tailwind CSS talk for DrupalCamp Ghent 2024-05-11 13:35:43 +02:00
ad467a8700 Consistent indentation
This was done by executing this command:

```
find src -type f -name '*.rst' -exec sed -Ei 's/^  :/    :/g' {} \;
```
2024-05-10 22:41:07 +02:00
4de38d0276 Remove instances of .. page::
Replace instances of `.. page::` with:

```rst
.. raw:: pdf

    PageBreak
```

This reduces my usage on the `preprocess` functionality I'd like to
remove.

This was done by executing this command:

```
find src -type f -name '*.rst' \
  -exec sed -Ei 's/.. page::$/.. raw:: pdf\n\n    PageBreak/g' {} \;
```
2024-05-10 22:37:50 +02:00
4f888eb6ec Remove duplicated style files
The canonical versions of my style files are stored within `src/styles`,
and these are the ones that should be used as they have the latest
changes and have been converted to the YAML format.

This commit removes any styles within the individual talk directories.
2024-05-10 22:35:54 +02:00
179e27f1b7 Update Test Driven Drupal for DrupalCamp Ghent 2024-05-10 18:16:08 +02:00
7fdeffb1af Update justfile recipes
* Hide the `default` recipe by renaming it to `_default` (recipes
  prefixed with an underscore are hidden from `just --list`.
* Re-add the `present` recipe for presenting with `pdfpc`, but making
  the duration a required argument.
* Add a `watch` recipe that watches files for changes and re-generates
  the PDF. This is based on a given path,
  e.g. `./src/test-driven-drupal`, and optionally allows for overriding
  the rst filename if I only want to watch a specfic source file, such
  as `demo.rst`.
2024-05-10 10:08:04 +01:00
d814d86808 Fix bullet point positioning 2024-05-10 09:12:01 +01:00
9f10128230 Allow for compiling other files
Instead of assuming we're always compiling from `slides.rst`, make the
filename dynamic so it can build whatever files are needed.

For example, to generate the demo slides for Test Driven Drupal, I can
run:

```shell
just generate-pdf ./src/test-driven-drupal demo.rst
```

If no filename is specified, default to `slides.rst` and all the slides
will be compiled.
2024-05-09 15:19:01 +01:00
8b47c24889 Update syntax highlighting styles 2024-05-09 13:57:30 +01:00
ea3fcd0704 Use the talk path instead of just the name
Pass the path to the talk directory - e.g.
`just generate ./src/test-driven-drupal` instead of just the talk
name/slug.

This doesn't change where the files are sourced from or output, but this
makes it easier to use `just generate` as I can use tab completion when
executing the command - making it quicker and less prone to typos.
2024-05-09 11:06:40 +01:00
4f6ca80035 Update stylesheets 2024-05-09 10:45:06 +01:00
6ef6c8359d Add texlive which includes pdfjam 2024-04-26 13:35:10 +01:00
9f15e2389f Add PHPSW talk 2024-04-21 23:08:08 +01:00
d3c7984925 Add justfile 2024-04-21 23:07:57 +01:00
72118c1903 Reformat flake 2024-04-21 23:07:32 +01:00
5e443e3d6e Add speaker information 2024-02-14 10:40:34 +00:00
28391c1296 Initial commit 2024-02-14 10:40:32 +00:00
72b22b41a8 Consolidate Build Configs talk slides 2024-01-25 15:49:14 +00:00
fa99025778 Update run tasks 2024-01-25 15:49:02 +00:00
c5e1da11f7 Fix missing speaker notes in pdfpc 2024-01-25 15:34:40 +00:00
70d330aa1b Add slides for PHP Munich 2024-01-24 12:17:35 +00:00
6d8f1db01f Add Build Configs lightning talk 2024-01-23 14:38:02 +00:00
17951f1fc9 build: add new task 2023-11-01 22:38:55 +01:00
3279719cfe feat(run): add thumbnails:generate task 2023-10-20 00:44:44 +02:00
d55df5ca18 chore: add .git-blame-ignore-revs
Add a file of commit SHAs that can be ignored when running commands like
`git blame`.

This can be enabled with the following command:

$ git config blame.ignoreRevsFile .git-blame-ignore-revs

See https://moxio.com/blog/ignoring-bulk-change-commits-with-git-blame.
2023-10-18 00:23:01 +02:00
51c5f5759d refactor: move into src 2023-10-18 00:21:35 +02:00
675e89e9d1 docs: DrupalCon updates 2023-10-17 13:16:57 +02:00
6cf7d0fee4 docs: add TechConnect talk 2023-10-11 20:08:29 +01:00
1f271a2655 chore: updates
* Update `run` tasks to use the Nix Flake instead of Docker.
* Output PDFs into a `dist` directory and name them as the talk name.
* Move the stylesheets into a common place.
2023-10-11 20:02:32 +01:00
d9f3cae654 build(flake): switch to 23.05 stable 2023-10-11 19:22:13 +01:00
1586971eea build(flake): remove just 2023-10-11 19:22:13 +01:00
596684a71d build(flake): use direnv 2023-10-11 19:19:37 +01:00
9692827603 Archive old talks 2023-07-18 19:55:43 +01:00
12863a4f92 build(nix): use flake-parts 2023-05-06 12:24:30 +01:00
8b18e05fbc wip 2023-05-06 12:24:30 +01:00
63bf55b978 build: delete .rst.build_temp files 2023-02-23 15:09:41 +00:00
639de3a234 Updates before nor(DEV):con 2023-02-23 15:08:45 +00:00
de6303e55a build: ignore generated files 2023-02-23 15:07:43 +00:00
7dd48f3880 Updates before the Bristol Software meetup 2023-02-22 23:16:39 +00:00
e392af7acf
Delete create.sh 2023-02-16 09:53:45 +00:00
3da19375f6 Add demo 2023-02-15 07:56:04 +00:00
0ad2dafa89 justfile: include the preprocess rst2pdf plugin 2023-02-14 23:30:06 +00:00
9a3353b8a2 Generate both light and dark versions of slides 2023-01-12 17:21:57 +00:00
7a762182ef build: add nix flake for rst2pdf 2023-01-12 17:21:44 +00:00
6640ded8c3 update slides before PHP Stoke 2023-01-12 17:21:44 +00:00
9b9d15a0e0 Archive Working with Workspace 2023-01-11 02:00:44 +00:00
3f3260764e docs: add "Things about PHP" slides 2022-03-09 17:12:10 +00:00
260d2d6c58 feat: add pdf:present task 2021-12-09 21:16:49 +00:00
Oliver Davies
e796a6e2a9
Create demo.txt 2021-12-09 17:54:40 +00:00
017713a063 refactor: replace workspace.yml with run 2021-11-09 00:59:21 +00:00
c7fb60a2cf Add Jetbrains slide 2021-09-30 17:43:53 +01:00
78e3b999e0 Add September meetup slides 2021-09-30 10:34:06 +01:00
d754089b17 docs: Updated README 2021-09-07 21:34:50 +01:00
6246c137b4 refactor: Extract a navbar include 2021-09-07 21:20:00 +01:00
26ceec5f20 Sort events by date 2021-09-07 21:20:00 +01:00
3847f56beb Display events on a page 2021-09-07 21:20:00 +01:00
0506194323 Add events to a talk 2021-09-07 21:20:00 +01:00
17e8f767e8 Add a talk layout 2021-09-07 21:20:00 +01:00
bec52af3ca Display talks on the talks page 2021-09-07 21:20:00 +01:00
6e6fedee5d Add some talks 2021-09-07 21:20:00 +01:00
8a14bec664 Add a talks content type 2021-09-07 21:20:00 +01:00
2db13e1287 Use the page title as the h1 2021-09-07 21:20:00 +01:00
26c18bfaf6 Add the Talks page 2021-09-07 21:20:00 +01:00
da534d3210 Add menu links 2021-09-07 21:20:00 +01:00
6881587450 Update site name 2021-09-07 21:20:00 +01:00
9d3b6c6885 Initial commit 2021-09-07 21:19:59 +01:00
7e21321c2f Update Sculpin slides 2021-09-07 18:21:18 +01:00
78e1ccbd03 Add Sculpin slides 2021-08-19 21:12:39 +01:00
a266b46fc1 Experiment with dark mode slides 2021-06-30 12:07:33 +01:00
241752034a Add PHP South Wales intro slides 2021-06-30 11:31:06 +01:00
8c4b0632da Use the Docker image for rst2pdf 2021-06-14 22:51:36 +01:00
484f4da191 Update title slide 2021-06-14 22:51:36 +01:00
37172b421e Remove logo slides 2021-06-14 22:51:35 +01:00
a9772edc5d Add short slides for Ansible London meetup 2021-06-14 22:51:34 +01:00
7febcd03dc Update slide title 2021-06-14 22:51:33 +01:00
69d30df11e Split slides into sections 2021-05-23 23:54:43 +01:00
ed7d6ad172 Remove whitespace around images 2021-05-23 22:00:26 +01:00
6f32c87345 Add Ansible and Ansistrano slides 2021-04-23 20:17:29 +01:00
45f9c443c6 Put the note on the correct slide 2021-04-22 19:47:47 +01:00
340339df4b Update supported core versions 2021-04-22 19:47:46 +01:00
6d941cbe48 Update latest D7 version 2021-04-22 19:47:46 +01:00
9738028448 Reformat slides 2021-04-22 19:47:46 +01:00
05dbcb55fe Make the alias private 2021-04-22 14:30:59 +01:00
50a24fe305 Add PHP South Wales intro slides 2021-03-25 08:28:36 +00:00
4a82640271 init 2021-02-18 22:09:32 +00:00
0da8b14a52 Task 9 - Configure PurgeCSS
Use PurgeCSS to create a production version of the generated CSS.
2021-02-18 21:19:13 +00:00
204a5f931b Task 8 - Add responsive tweaks
Add a mobile navigation button, change text sizes, change the layout of
the sponsors block.
2021-02-18 21:19:13 +00:00
5f6f7bdb4a Add footer 2021-02-18 21:19:13 +00:00
6bd1f864ba Task 7 - Add sponsor styling 2021-02-18 21:19:13 +00:00
acac7e6ec1 Task 7 - Add sponsors 2021-02-18 21:19:13 +00:00
a024466201 Task 6 - Position stars 2021-02-18 21:19:13 +00:00
5ddcc845b3 Task 6 - Add stars 2021-02-18 21:19:13 +00:00
25a071e456 Task 6 - Position logo 2021-02-18 21:19:13 +00:00
ab8e3e1342 Task 6 - Add logo 2021-02-18 21:19:13 +00:00
237d1ce590 Task 6 - Add video classes 2021-02-18 21:19:13 +00:00
033276f85a Task 6 - Add video markup 2021-02-18 21:19:13 +00:00
b97482c642 Task 5 - Refactor menu items using a loop 2021-02-18 21:19:13 +00:00
97d4382dd3 Task 4 - Use updated classes 2021-02-18 21:19:13 +00:00
8dee798782 Task 4 - Add Bebas font 2021-02-18 21:19:13 +00:00
cb8ad1178a Task 4 - Add our own configuration 2021-02-18 21:19:13 +00:00
b032e99b31 Task 3 - Add navbar classes 2021-02-18 21:19:13 +00:00
0ca58316c0 Task 3 - Add navbar markup 2021-02-18 21:19:13 +00:00
a5dff0b493 Task 2 - Add intro text classes 2021-02-18 21:19:13 +00:00
4014f12395 Task 2 - Add intro text 2021-02-18 21:19:13 +00:00
d6a5af062a Remove old classes 2021-02-18 21:19:13 +00:00
11705f7a4c Task 1 - Add Tailwind CSS 2021-02-18 21:19:13 +00:00
d8a1616481 Add local environment with Docker Compose 2021-02-18 21:19:13 +00:00
f764004f89 Initial commit 2021-02-18 21:19:12 +00:00
be9513edc6 Add Tailwind workshop slides 2021-02-18 20:54:20 +00:00
7e82c2fd7e Revert "Rename directories"
This reverts commit 726386e976.
2021-02-11 17:56:42 +00:00
b032798d69 Revert "Rename directories"
This reverts commit 9f3226aec5.
2021-02-11 17:56:17 +00:00
ad40ba6d2d Fix spelling 2021-02-09 21:32:08 +00:00
aeb066e94c Fix indentation 2021-02-09 21:29:50 +00:00
cb5ed1f0b8 Remove line numbers from code snippets 2021-02-09 21:29:00 +00:00
5fda89278d Centre subtitle 2021-02-09 21:29:00 +00:00
38aa5d5d59 Remove some example slides 2021-02-09 21:29:00 +00:00
1b30b42829 Remove CDN link 2021-02-09 21:29:00 +00:00
18aab27851 Remove all .build_temp files 2021-02-09 21:29:00 +00:00
726386e976 Rename directories 2021-02-06 22:47:46 +00:00
9f3226aec5 Rename directories 2021-02-06 22:46:22 +00:00
a5bee4685a Update code syntax highlighting styles 2021-02-06 21:07:41 +00:00
fdd5b3138f Update Workspace slides for PHPNW 2021-02-02 20:48:52 +00:00
398fa3c547 Add workspace.yml
Add a workspace.yml file with commands for PDF generating and watching,
generating thumbnail images, and cleaning generated files.
2021-01-29 00:12:30 +00:00
d409742cfe Add rst2pdf slides 2021-01-28 23:33:44 +00:00
c78138b63d Add 'Taking Flight with Tailwind CSS' slides 2021-01-28 23:33:44 +00:00
6cf5e862ad Add 'Test Driven Drupal' slides 2021-01-28 23:33:44 +00:00
64dc136483 Update nodemon command 2021-01-28 23:33:44 +00:00
8ebbad1a85 Add link to talks page 2021-01-28 23:33:44 +00:00
cc6f7a3557 Define background mode in generate command 2021-01-28 23:33:44 +00:00
b84764c013 Add 'Upgrading to Drupal 9' slides 2021-01-28 23:33:44 +00:00
93df801f13 Add 'Working with Workspace' slides 2021-01-28 23:33:44 +00:00
6d17643b19 Add README 2021-01-02 13:19:54 +00:00
d38acd6876 Add description text and button 2020-12-27 13:15:27 +00:00
4018f9a6db Limit width on xl screens 2020-12-27 13:15:27 +00:00
b047ea3e4e Add Register Now button
Fixes #2
2020-12-27 13:15:26 +00:00
d7d778096e Add homepage header 2020-12-27 12:07:35 +00:00
7499a8817d Increase logo size on small screens 2020-12-27 12:07:17 +00:00
97925b0456 Override sm screen size 2020-12-27 12:07:17 +00:00
91cee26e71 Adjust navigation width on small screens 2020-12-27 12:07:17 +00:00
702b755319 Make child links toggleable 2020-12-27 12:07:17 +00:00
5a2df50e90 Make the mobile navigation toggleable 2020-12-27 12:07:17 +00:00
36a4eb2d92 Add Bebas Neue font 2020-12-27 12:07:17 +00:00
5fadbbccd0 Override Tailwind's default colours 2020-12-27 12:07:17 +00:00
641c61dd47 Add mobile navigation 2020-12-27 12:07:16 +00:00
cb79277374 Add and configure Tailwind CSS
Add and configure Tailwind CSS within the project, including adding npm
scripts for compiling the CSS, configuring purge settings, and adding
the `cssnano` library for minifying the CSS (which is run for production
builds).
2020-12-26 22:43:57 +00:00
cdb0e67eb3 Add the Home page 2020-12-26 22:43:56 +00:00
559ed8e908 Add README.rst 2020-12-26 22:20:19 +00:00
ca1886b0df Initial commit 2020-12-26 22:20:18 +00:00
b2dccb925e Delete old content 2020-12-23 20:33:26 +00:00
354fbe4128 Switch to rst
Convert README.md to README.rst.

This was done automatically using https://cloudconvert.com/md-to-rst,
and gives some features like the table of contents for free. It also
means that I can use tools like [rst2pdf](https://rst2pdf.org) to create
exportable versions and handouts.

GitHub also still renders it automatically too. :)
2020-12-23 20:10:01 +00:00
91aed1b171 Updates 2020-11-14 14:47:53 +00:00
0a1da40788 Fix the existing test 2020-11-14 12:52:36 +00:00
0c6fa6e60f Throw an Exception if it is the wrong type 2020-11-14 12:52:22 +00:00
4be8e02246 Only articles should be used for Posts
An Exception should be thrown if the node passed to the `Post` entity is
not an article.

> Drupal\Tests\my_module\Unit\Entity\PostTest::it_throws_an_exception_if_the_node_is_not_an_article
> Failed asserting that exception of type "InvalidArgumentException" is
thrown.
2020-11-14 12:44:42 +00:00
655c854a80 5e: Fix the kernel tests 2020-11-14 12:38:17 +00:00
8f8218260b 5d: Ensure the label will return the title 2020-11-14 10:09:38 +00:00
bd68420fc1 5d: Create a mock node
> TypeError: Return value of Drupal\my_module\Entity\Post::getTitle()
> must be of the type string, null returned
2020-11-14 10:09:38 +00:00
0b4c648ac6 5c: Return the node label 2020-11-14 10:09:38 +00:00
61664cb263 5c: Add the node as a constructor argument
> Undefined variable: node
2020-11-14 10:09:38 +00:00
1fe7119b5d 5b: Add getTitle() method
> Failed asserting that two strings are identical
2020-11-14 10:09:38 +00:00
07ad4dc2b1 5b: Check that it returns the post title
> Drupal\Tests\my_module\Unit\Entity\PostTest::it_returns_the_title
> Error: Call to undefined method Drupal\my_module\Entity\Post::getTitle()
2020-11-14 10:09:38 +00:00
cbd0176c37 5a: Add a unit test for the Post class 2020-11-14 10:09:38 +00:00
259f077f61 4m: Return a Post rather than a node 2020-11-14 10:09:38 +00:00
9aec327945 4l: Expect a custom Post class to be returned 2020-11-14 10:09:38 +00:00
290c8fbcba 4k: Sort articles before returning 2020-11-14 10:09:38 +00:00
91f7d094e7 4k: Articles are returned in the correct order 2020-11-14 10:09:38 +00:00
e925409f5f 4j: Add status condition to getAll() 2020-11-14 10:09:38 +00:00
a540f4ad32 4j: Only published articles are returned 2020-11-14 10:09:38 +00:00
2cae42ba3a 4i: Add type condition in getAll() method 2020-11-14 10:09:38 +00:00
910af32309 4i: Add page nodes too 2020-11-14 10:09:38 +00:00
1be8440519 4h: Ensure that only articles are returned 2020-11-14 10:09:38 +00:00
40228b36f4 4g: Add more assertions 2020-11-14 10:09:38 +00:00
3723a0af0e 4g: Install node_access table 2020-11-14 10:09:38 +00:00
b53cfec4dd 4g: Install config for the filter module 2020-11-14 10:09:38 +00:00
48c2724736 4g: Add an article 2020-11-14 10:09:38 +00:00
9b7d9b3feb 4f: Enable the node module 2020-11-14 10:09:38 +00:00
80a1f88b2c 4f: Enable autowiring for ArticleRepository 2020-11-14 10:09:38 +00:00
4dbb334a6f 4f: Use node storage within getAll() 2020-11-14 10:09:38 +00:00
f38f21fdc8 4e: Add getAll() method 2020-11-14 10:09:38 +00:00
f194015f30 4d: Add import and enable the module 2020-11-14 10:09:38 +00:00
a6a2ad22e4 4d: Add ArticleRepository as a service 2020-11-14 10:09:38 +00:00
699122e83a 4d: Create the ArticleRepository 2020-11-14 10:09:38 +00:00
3e46173860 4c: Try to load the ArticleRepository 2020-11-14 10:09:38 +00:00
48ab1c9209 4b: Test it returns blog posts 2020-11-14 10:09:38 +00:00
9484d924a1 3e: Add page text
Replace the empty render array with one that returns the expected text.
2020-11-14 10:09:38 +00:00
ef1e960f91 3e: Add more assertions
Add more assertions to ensure that the correct page title is returned as
well as some text on the page.

This fails as the expected test is not returned.
2020-11-14 10:09:38 +00:00
4583075a3e 3d: Add BlogPageController
Add the BlogPageController that is referenced within
`my_module.routing.yml`.

We will need to return a render array, but for now let’s return an empty
array.

The test now passes as we are getting the expected response code.
2020-11-14 10:09:38 +00:00
782648fef2 3c: Enable the node module
Enable the node module within the test to add the `access content`
permission.

This fails, and returns a 500 response code rather than the expected 200
response code.
2020-11-14 10:09:38 +00:00
c7ef94c0d5 3b: Add blog page route
Add a `my_module.routing.yml` file that adds the missing route for
`/blog`.

This fails, and returns a 403 response code rather than the expected 200
response code.
2020-11-14 10:09:38 +00:00
151803382e 3a: Add blog page functional test
Add the new `BlogPageTest` functional test to ensure that anonymous
users can access the `/blog` page.

This fails, and returns a 404 response code rather than the expected 200
response code.
2020-11-14 10:09:38 +00:00
9df597c965 2b: Admin page access for admin users
Ensure that users with the `access administration pages` permission can
access the site’s administration pages.
2020-11-14 10:09:38 +00:00
7e0a0c3762 2a: Admin page access for anonymous users
Ensure that anonymous users cannot access the site’s administration
pages.
2020-11-14 10:09:38 +00:00
fd921d3e4c 1d: Add first functional test
Ensure that anonymous users can view the site’s front page.
2020-11-14 10:09:38 +00:00
2dafec2f67 1b: Add my_module.info.yml
Add the my_module.info.yml file so that the module can be enabled.
2020-11-14 10:09:38 +00:00
e859418cbd Initial commit 2020-11-14 10:09:37 +00:00
fbf2171d25 Make the first blog test more generic 2020-11-14 00:39:39 +00:00
fb06cce56c Update the assertion count 2020-11-13 23:53:24 +00:00
1baead38fd Add opening PHP tags for new examples 2020-11-13 23:53:13 +00:00
e1e137f55e Replace instances of assertResponse 2020-11-13 23:52:51 +00:00
a029e6223c Update Composer test script 2020-11-13 22:19:57 +00:00
fa44d26bde Update first test 2020-11-13 22:16:36 +00:00
077631bd32 Remove unused keys 2020-11-13 21:17:52 +00:00
f9bf333977 Replace references to symfony CLI with DDEV 2020-11-13 21:14:49 +00:00
646fe86d15 Update SIMPLETEST_BASE_URL and SIMPLETEST_DB
Update the base URL to work inside DDEV, and the DB connection details
to use `/dev/shm` for better performance.
2020-11-13 20:47:16 +00:00
ccd5b423f6 Update local development documentation
Replace the Symfony web server documentation with DDEV, and PHP's local
web server.

This should be one less new thing for people to learn and should be more
familiar to Drupal developers.
2020-11-13 17:29:21 +00:00
712f2805d2 Update feedback email address 2020-11-13 16:27:52 +00:00
8f5254045f Finish demo 2020-09-09 17:33:50 +01:00
c4148c07d5 Initial commit 2020-09-09 17:33:12 +01:00
986ba5097d Remove Upgrade Status module 2020-09-02 13:45:40 +01:00
123bdd494d Add new config sync directory 2020-09-02 13:45:40 +01:00
869c6b2dca Add symfony/config as a dependency
Fixes this error:

> Error: Class
> 'Symfony\Component\Config\Resource\ClassExistenceResource' not found
> in
> Symfony\Component\DependencyInjection\Compiler\AutowirePass->createTypeNotFoundMessage()
2020-09-02 13:45:40 +01:00
da08c2cc15 Re-add Drush as a dependency 2020-09-02 13:45:40 +01:00
7c3c7d453e Update Drupal to 9.0.3 2020-09-02 13:45:40 +01:00
3eb0842da9 Remove Drush again 2020-09-02 13:45:40 +01:00
536857c6f3 Fix autowiring error
> Cannot autowire service "Drupal\simple_message\DisplaySimpleMessage":
argument "$messenger" of method "__construct()" references interface
"Drupal\Core\Messenger\MessengerInterface" but no such service exists.
You should maybe alias this interface to the existing "messenger"
service
2020-09-02 13:45:40 +01:00
17cabdc791 Update Admin Toolbar to 8.x-2.3 2020-09-02 13:45:40 +01:00
74d5ee2eba Remove Config Installer module
Removed as it has been deprecated as of Drupal 8.6, and there will be no
Drupal 9 compatible version.
2020-09-02 13:45:40 +01:00
fa8ea3bcad Re-add Drush as a dependency 2020-09-02 13:45:40 +01:00
36cf281907 Update Drupal core to 8.9.3 2020-09-02 13:45:40 +01:00
9777514811 Remove Drush temporarily
Without doing this, we are stuck on Drupal 8.9.0-beta2, rather than
upgrading to 9.0.3.
2020-09-02 13:45:34 +01:00
f45a16ef64 Update project name in composer.json 2020-09-02 09:58:16 +01:00
d46e091e98 Ignore the .vagrant directory 2020-09-02 09:42:31 +01:00
26a4ca66ef Return early for admin routes 2020-09-02 09:41:59 +01:00
08d28544e0 Use the release version for Drupal's deployment indentifier 2020-07-01 23:43:42 +01:00
7a4f3cdf4a Composer: optimise the autoloader 2020-06-16 22:51:49 +01:00
7dce492d27 Stop tasks always showing that something changed 2020-06-16 22:51:30 +01:00
6ba5810dbc D9 compatibility 2020-06-16 22:03:48 +01:00
eb0f90f479 Add a block of post-update tasks
Add tasks to run after the site has been updated, but only if the site
has not been installed from scratch.

There's no point in importing config or running database updates on a
freshly installed site.
2020-06-16 22:01:56 +01:00
7ebe1c52a4 Install base packages 2020-06-16 21:54:45 +01:00
f26c3fbd7d Revert "Update to Drupal 9"
Revert back so that we can continue to use the Config Installer module.

This reverts commit e5b86c7f39.
2020-06-16 21:53:55 +01:00
317d95a56c Enable SSH pipelining 2020-06-16 20:00:32 +01:00
2933a74013 Update images 2020-06-15 23:41:26 +01:00
9a820ecf4f Add placeholders for demos 2020-06-15 23:17:14 +01:00
Oliver Davies
e5b86c7f39 Update to Drupal 9 2020-06-15 22:49:33 +01:00
Oliver Davies
80ccac2d43 Export PDFs 2020-05-13 02:48:50 +01:00
Oliver Davies
66c6e5617a Stop running Prettier 2020-05-12 21:49:33 +01:00
Oliver Davies
0d5e034487 Update slides after NWDUG 2020-05-12 21:49:33 +01:00
Oliver Davies
4c0756d9aa Update slides after CMS Philly 2020-05-12 15:37:06 +01:00
4fd639507c Set roles path in project 2020-05-06 19:01:56 +01:00
Oliver Davies
6c960de854 Update hosts.yml format 2020-05-01 11:45:25 +01:00
Oliver Davies
b722d71ca9 Update the default site name 2020-05-01 11:44:54 +01:00
Oliver Davies
68ca1f63fe Add main.yml
Add a main.yml playbook that runs both provision.yml and deploy.yml.

This would be useful for first-time installations.
2020-05-01 11:21:36 +01:00
Oliver Davies
92f3e99e33 Replace custom role with the Galaxy one 2020-05-01 11:21:36 +01:00
026ac7928f Use YAML for better output 2020-05-01 09:53:45 +01:00
7cad32c9ef Add 5d: Refactor unit tests
Fixes #14
2020-03-19 23:39:01 +00:00
a13636a2f2 Use a method for sorting articles
Fixes #13
2020-03-19 23:23:41 +00:00
a1529f22d7 Add an alias for the entity type manager
Remove deprecation warnings

Fixes #12
2020-03-19 23:21:02 +00:00
f38ca67efb Place my_module within a custom directory
Fixes #11
2020-03-19 20:30:37 +00:00
33e92bbb1f
Add a note for non-Symfony server users 2020-03-19 11:06:39 +00:00
b6507ffd0e
Fix title and jump link 2020-03-19 11:02:38 +00:00
a03ec1360b Typo 2020-03-18 19:38:14 +00:00
9e3d3fd7ef 4g: Make it easier to see where the lines go
Fixes #4
2020-03-18 19:36:14 +00:00
ee1d9beb82 No need for prettier 2020-03-18 13:39:14 +00:00
04a19ec0fa Re-format paragraph text 2020-03-18 13:39:14 +00:00
714644a18c Remove the GitHub Action job 2020-03-18 13:39:14 +00:00
Oliver Davies
81640d24ed Run prettier 2020-03-14 23:39:56 +00:00
49b98d0681 Rename directories 2020-03-14 23:39:29 +00:00
ad22d86a2e Remove abstracts 2020-03-14 22:16:50 +00:00
Oliver Davies
602a01f0c7 Run prettier 2020-03-14 21:58:20 +00:00
e4444b405a Add prettier 2020-03-14 21:56:45 +00:00
44b7fb9842 Add missing use statement
Fixes #2

Co-authored-by: Andy Broomfield <talk@andybroomfield.com>
2020-03-14 00:25:20 +00:00
54d4e2d87e Add contribution and feedback titles 2020-03-13 17:03:01 +00:00
Oliver Davies
2b7874e280 Run prettier 2020-03-13 16:58:30 +00:00
c39e2a9789 Add feedback and contribution links 2020-03-13 16:57:49 +00:00
e1517ecd9d Initial commit 2020-03-13 11:29:03 +00:00
bf1fce2a52 Update README.md 2020-03-07 20:15:32 +00:00
8d0c16dd8e Add core_version_requirement 2020-03-07 17:17:32 +00:00
dcab1aca9a Use constant for the response code 2020-03-07 17:16:50 +00:00
52f13fcac8 Add $defaultTheme
Required for Drupal 9.0.

See https://www.drupal.org/node/3083055.
2020-03-07 17:15:23 +00:00
d1b22efc0e Rename directory 2020-01-30 22:35:03 +00:00
9ce5f1c1f0 Add DevOps Bristol talk slides 2020-01-30 22:26:57 +00:00
fce230f798 Update slides 2020-01-30 22:26:34 +00:00
15985541ba Add simple_message module 2020-01-29 02:32:35 +00:00
0fb0dd693e Update site name 2020-01-29 00:54:26 +00:00
623a1052c4 Add condition for whether to install Drupal 2020-01-29 00:54:20 +00:00
9aac99e723 Update variable names 2020-01-29 00:53:11 +00:00
083ed945ad Add screenshots 2020-01-29 00:39:52 +00:00
99407f2b72
Add prerequisites 2020-01-29 00:23:33 +00:00
9ab929a7c0 Add slides from DrupalCon 2020-01-26 19:38:45 +00:00
274afa40ed Create README.md 2019-12-05 16:09:58 +00:00
23fcf88ad9 Add ansible stuff 2019-12-05 16:09:58 +00:00
bbb4a9c666 Create Vagrantfile 2019-12-05 16:09:58 +00:00
9fa87d4133 Add config directory 2019-12-05 13:29:52 +00:00
e5cc2a7ea7 init 2019-12-05 13:29:52 +00:00
7e7a61214d Add DrupalCon slides 2019-11-12 08:03:23 +00:00
e231a2e3f8 Add PDF of PHP South Wales slides 2019-11-12 08:02:54 +00:00
dependabot-preview[bot]
a5f598deff Bump tightenco/collect from 6.3.0 to 6.4.0 in /drupal
Bumps [tightenco/collect](https://github.com/tightenco/collect) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/tightenco/collect/releases)
- [Commits](https://github.com/tightenco/collect/compare/v6.3.0...v6.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-24 20:05:13 +01:00
dependabot-preview[bot]
fa56833672 Bump tightenco/collect from 6.2.0 to 6.3.0 in /drupal
Bumps [tightenco/collect](https://github.com/tightenco/collect) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/tightenco/collect/releases)
- [Commits](https://github.com/tightenco/collect/compare/v6.2.0...v6.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-24 00:55:47 +01:00
49e2ffbd8d yarn upgrade 2019-10-24 00:53:22 +01:00
f447aaccc0 Use yarn 2019-10-24 00:46:32 +01:00
dependabot-preview[bot]
bff2e2da7f Bump @vue/cli-plugin-eslint from 3.11.0 to 3.12.0 in /vuejs
Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/v3.12.0/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.12.0/packages/@vue/cli-plugin-eslint)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-11 19:54:35 +01:00
dependabot-preview[bot]
3b52712db6 Bump @vue/cli-service from 3.11.0 to 3.12.0 in /vuejs
Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/v3.12.0/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.12.0/packages/@vue/cli-service)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-11 19:54:25 +01:00
dependabot-preview[bot]
397da22b90 Bump zaporylie/composer-drupal-optimizations in /drupal
Bumps [zaporylie/composer-drupal-optimizations](https://github.com/zaporylie/composer-drupal-optimizations) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/zaporylie/composer-drupal-optimizations/releases)
- [Commits](https://github.com/zaporylie/composer-drupal-optimizations/compare/1.1.0...1.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-11 19:47:41 +01:00
dependabot-preview[bot]
76e0a83dd8 Bump @vue/cli-plugin-babel from 3.11.0 to 3.12.0 in /vuejs
Bumps [@vue/cli-plugin-babel](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-babel) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/v3.12.0/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.12.0/packages/@vue/cli-plugin-babel)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-11 19:47:16 +01:00
dependabot-preview[bot]
cf9c0a5c59 Bump @vue/cli-plugin-unit-jest from 3.11.0 to 3.12.0 in /vuejs
Bumps [@vue/cli-plugin-unit-jest](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-unit-jest) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/v3.12.0/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.12.0/packages/@vue/cli-plugin-unit-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-11 19:46:59 +01:00
dependabot-preview[bot]
f1f8afc115 Bump tightenco/collect from 5.8.34 to 6.2.0 in /drupal
Bumps [tightenco/collect](https://github.com/tightenco/collect) from 5.8.34 to 6.2.0.
- [Release notes](https://github.com/tightenco/collect/releases)
- [Commits](https://github.com/tightenco/collect/compare/v5.8.34...v6.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-11 19:46:35 +01:00
3996891f12
Merge pull request #33 from opdavies/dependabot/npm_and_yarn/vuejs/qs-6.9.0
Bump qs from 6.8.0 to 6.9.0 in /vuejs
2019-09-25 21:59:31 +01:00
dependabot-preview[bot]
ad331dbfff
Bump qs from 6.8.0 to 6.9.0 in /vuejs
Bumps [qs](https://github.com/ljharb/qs) from 6.8.0 to 6.9.0.
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.8.0...v6.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-23 07:04:28 +00:00
b104522020
Merge pull request #26 from opdavies/dependabot/composer/drupal/drupal/console-1.9.3
Bump drupal/console from 1.9.2 to 1.9.3 in /drupal
2019-09-17 08:23:53 +01:00
7549d7e842
Merge pull request #31 from opdavies/dependabot/npm_and_yarn/vuejs/fullhuman/postcss-purgecss-1.3.0
Bump @fullhuman/postcss-purgecss from 1.2.0 to 1.3.0 in /vuejs
2019-09-17 08:23:23 +01:00
dependabot-preview[bot]
a299d919c9
Bump @fullhuman/postcss-purgecss from 1.2.0 to 1.3.0 in /vuejs
Bumps [@fullhuman/postcss-purgecss](https://github.com/FullHuman/postcss-purgecss) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/FullHuman/postcss-purgecss/releases)
- [Changelog](https://github.com/FullHuman/postcss-purgecss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FullHuman/postcss-purgecss/commits/1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-16 06:44:54 +00:00
7971235aec Use npm 2019-09-09 20:24:43 +01:00
dependabot-preview[bot]
fff50a03b1
Bump drupal/console from 1.9.2 to 1.9.3 in /drupal
Bumps [drupal/console](https://github.com/hechoendrupal/drupal-console) from 1.9.2 to 1.9.3.
- [Release notes](https://github.com/hechoendrupal/drupal-console/releases)
- [Commits](https://github.com/hechoendrupal/drupal-console/compare/1.9.2...1.9.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-09 09:47:36 +00:00
78175aa087
Merge pull request #23 from opdavies/dependabot/composer/drupal/composer/installers-1.7.0
Bump composer/installers from 1.6.0 to 1.7.0 in /drupal
2019-09-02 12:27:31 +01:00
dependabot-preview[bot]
8d03688a9f
Bump composer/installers from 1.6.0 to 1.7.0 in /drupal
Bumps [composer/installers](https://github.com/composer/installers) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/composer/installers/releases)
- [Changelog](https://github.com/composer/installers/blob/master/CHANGELOG.md)
- [Commits](https://github.com/composer/installers/compare/v1.6.0...v1.7.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-09-02 08:49:49 +00:00
2ab5191de7
Merge pull request #18 from opdavies/dependabot/npm_and_yarn/vuejs/eslint-plugin-vue-5.2.3
Bump eslint-plugin-vue from 5.2.2 to 5.2.3 in /vuejs
2019-08-31 01:14:32 +01:00
3632326f77
Merge pull request #21 from opdavies/dependabot/npm_and_yarn/vuejs/axios-0.19.0
Bump axios from 0.18.1 to 0.19.0 in /vuejs
2019-08-31 01:14:12 +01:00
99e1560548
Merge pull request #22 from opdavies/dependabot/npm_and_yarn/vuejs/vue/cli-plugin-babel-3.11.0
Bump @vue/cli-plugin-babel from 3.7.0 to 3.11.0 in /vuejs
2019-08-31 01:13:59 +01:00
bee3f669e9
Merge pull request #20 from opdavies/dependabot/npm_and_yarn/vuejs/vue/cli-service-3.11.0
Bump @vue/cli-service from 3.7.0 to 3.11.0 in /vuejs
2019-08-31 01:13:45 +01:00
dependabot-preview[bot]
5745580fa9
Bump @vue/cli-plugin-babel from 3.7.0 to 3.11.0 in /vuejs
Bumps [@vue/cli-plugin-babel](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-babel) from 3.7.0 to 3.11.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.11.0/packages/@vue/cli-plugin-babel)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 23:48:15 +00:00
dependabot-preview[bot]
4b9f4ab85d
Bump axios from 0.18.1 to 0.19.0 in /vuejs
Bumps [axios](https://github.com/axios/axios) from 0.18.1 to 0.19.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.18.1...v0.19.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 23:47:46 +00:00
dependabot-preview[bot]
d0ebbf2382
Bump @vue/cli-service from 3.7.0 to 3.11.0 in /vuejs
Bumps [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) from 3.7.0 to 3.11.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.11.0/packages/@vue/cli-service)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 23:47:22 +00:00
dependabot-preview[bot]
3f1fdb184b
Bump eslint-plugin-vue from 5.2.2 to 5.2.3 in /vuejs
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v5.2.2...v5.2.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 23:46:14 +00:00
f25324335b
Merge pull request #16 from opdavies/dependabot/npm_and_yarn/vuejs/axios-0.18.1
Bump axios from 0.18.0 to 0.18.1 in /vuejs
2019-08-30 20:31:55 +01:00
dependabot[bot]
ed6b741992
Bump axios from 0.18.0 to 0.18.1 in /vuejs
Bumps [axios](https://github.com/axios/axios) from 0.18.0 to 0.18.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v0.18.1/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.18.0...v0.18.1)

Signed-off-by: dependabot[bot] <support@github.com>
2019-08-30 19:31:33 +00:00
1d8b46251d
Merge pull request #2 from opdavies/dependabot/npm_and_yarn/vuejs/vue/cli-plugin-unit-jest-3.11.0
Bump @vue/cli-plugin-unit-jest from 3.7.0 to 3.11.0 in /vuejs
2019-08-30 20:16:24 +01:00
002dca6e52
Merge pull request #3 from opdavies/dependabot/npm_and_yarn/vuejs/babel-eslint-10.0.3
Bump babel-eslint from 10.0.1 to 10.0.3 in /vuejs
2019-08-30 20:16:14 +01:00
1b37bafd14
Merge pull request #6 from opdavies/dependabot/npm_and_yarn/vuejs/vue-router-3.1.3
Bump vue-router from 3.0.6 to 3.1.3 in /vuejs
2019-08-30 20:15:58 +01:00
eedc2d5dcd
Merge pull request #4 from opdavies/dependabot/npm_and_yarn/vuejs/lodash.defaultsdeep-4.6.1
[Security] Bump lodash.defaultsdeep from 4.6.0 to 4.6.1 in /vuejs
2019-08-30 20:15:44 +01:00
ac2403ff39
Merge pull request #13 from opdavies/dependabot/composer/drupal/webflo/drupal-finder-1.2.0
Bump webflo/drupal-finder from 1.1.0 to 1.2.0 in /drupal
2019-08-30 20:15:26 +01:00
8e325b84f7
Merge pull request #7 from opdavies/dependabot/composer/drupal/cweagans/composer-patches-1.6.7
Bump cweagans/composer-patches from 1.6.6 to 1.6.7 in /drupal
2019-08-30 20:15:13 +01:00
dependabot-preview[bot]
56bb39c7c0
[Security] Bump lodash.defaultsdeep from 4.6.0 to 4.6.1 in /vuejs
Bumps [lodash.defaultsdeep](https://github.com/lodash/lodash) from 4.6.0 to 4.6.1. **This update includes a security fix.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.6.0...4.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:15:02 +00:00
0fd5114e75
Merge pull request #11 from opdavies/dependabot/composer/drupal/tightenco/collect-5.8.34
Bump tightenco/collect from 5.8.18 to 5.8.34 in /drupal
2019-08-30 20:14:53 +01:00
dependabot-preview[bot]
836b0637ba
Bump babel-eslint from 10.0.1 to 10.0.3 in /vuejs
Bumps [babel-eslint](https://github.com/babel/babel-eslint) from 10.0.1 to 10.0.3.
- [Release notes](https://github.com/babel/babel-eslint/releases)
- [Commits](https://github.com/babel/babel-eslint/compare/v10.0.1...v10.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:14:46 +00:00
dependabot-preview[bot]
3f21c779f8
Bump @vue/cli-plugin-unit-jest from 3.7.0 to 3.11.0 in /vuejs
Bumps [@vue/cli-plugin-unit-jest](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-unit-jest) from 3.7.0 to 3.11.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.11.0/packages/@vue/cli-plugin-unit-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:14:43 +00:00
dependabot-preview[bot]
b430a5551d
Bump tightenco/collect from 5.8.18 to 5.8.34 in /drupal
Bumps [tightenco/collect](https://github.com/tightenco/collect) from 5.8.18 to 5.8.34.
- [Release notes](https://github.com/tightenco/collect/releases)
- [Commits](https://github.com/tightenco/collect/compare/v5.8.18...v5.8.34)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:14:10 +00:00
dependabot-preview[bot]
ea6140a60f
Bump cweagans/composer-patches from 1.6.6 to 1.6.7 in /drupal
Bumps [cweagans/composer-patches](https://github.com/cweagans/composer-patches) from 1.6.6 to 1.6.7.
- [Release notes](https://github.com/cweagans/composer-patches/releases)
- [Commits](https://github.com/cweagans/composer-patches/compare/1.6.6...1.6.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:14:06 +00:00
dependabot-preview[bot]
d1f39da25f
Bump webflo/drupal-finder from 1.1.0 to 1.2.0 in /drupal
Bumps [webflo/drupal-finder](https://github.com/webflo/drupal-finder) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/webflo/drupal-finder/releases)
- [Commits](https://github.com/webflo/drupal-finder/compare/1.1.0...1.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:13:41 +00:00
260c1317e9
Merge pull request #1 from opdavies/dependabot/npm_and_yarn/vuejs/eslint-utils-1.4.2
[Security] Bump eslint-utils from 1.3.1 to 1.4.2 in /vuejs
2019-08-30 20:13:28 +01:00
ea16b2c9c5
Merge pull request #5 from opdavies/dependabot/npm_and_yarn/vuejs/lodash-4.17.15
[Security] Bump lodash from 4.17.11 to 4.17.15 in /vuejs
2019-08-30 20:13:08 +01:00
31d53a1502
Merge pull request #10 from opdavies/dependabot/npm_and_yarn/vuejs/vue/cli-plugin-eslint-3.11.0
Bump @vue/cli-plugin-eslint from 3.7.0 to 3.11.0 in /vuejs
2019-08-30 20:12:47 +01:00
0efd71c860
Merge pull request #12 from opdavies/dependabot/composer/drupal/drupal/console-1.9.2
Bump drupal/console from 1.8.0 to 1.9.2 in /drupal
2019-08-30 20:12:14 +01:00
04ff2c0398
Merge pull request #8 from opdavies/dependabot/npm_and_yarn/vuejs/mixin-deep-1.3.2
[Security] Bump mixin-deep from 1.3.1 to 1.3.2 in /vuejs
2019-08-30 20:11:41 +01:00
fecbe9a8a4
Merge pull request #14 from opdavies/dependabot/composer/drupal/drush/drush-9.7.1
Bump drush/drush from 9.6.2 to 9.7.1 in /drupal
2019-08-30 20:10:41 +01:00
dependabot-preview[bot]
27e26c0dde
Bump drush/drush from 9.6.2 to 9.7.1 in /drupal
Bumps [drush/drush](https://github.com/drush-ops/drush) from 9.6.2 to 9.7.1.
- [Release notes](https://github.com/drush-ops/drush/releases)
- [Commits](https://github.com/drush-ops/drush/compare/9.6.2...9.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:09:34 +00:00
dependabot-preview[bot]
35fd11e080
Bump @vue/cli-plugin-eslint from 3.7.0 to 3.11.0 in /vuejs
Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) from 3.7.0 to 3.11.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.11.0/packages/@vue/cli-plugin-eslint)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:08:30 +00:00
dependabot-preview[bot]
89169cb7b0
Bump vue-router from 3.0.6 to 3.1.3 in /vuejs
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.0.6 to 3.1.3.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.0.6...v3.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:08:23 +00:00
dependabot-preview[bot]
92c97b51fc
[Security] Bump lodash from 4.17.11 to 4.17.15 in /vuejs
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.15. **This update includes a security fix.**
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.15)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:07:50 +00:00
42abb9957f Import map 2019-08-30 20:06:09 +01:00
dependabot-preview[bot]
456938c18d
Bump drupal/console from 1.8.0 to 1.9.2 in /drupal
Bumps [drupal/console](https://github.com/hechoendrupal/drupal-console) from 1.8.0 to 1.9.2.
- [Release notes](https://github.com/hechoendrupal/drupal-console/releases)
- [Commits](https://github.com/hechoendrupal/drupal-console/compare/1.8.0...1.9.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 19:03:59 +00:00
f5861641f0 Require axios 2019-08-30 20:02:29 +01:00
9336a14107 Use camel case names 2019-08-30 20:02:25 +01:00
dependabot-preview[bot]
2542b49367
[Security] Bump mixin-deep from 1.3.1 to 1.3.2 in /vuejs
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep) from 1.3.1 to 1.3.2. **This update includes a security fix.**
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases)
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 18:58:02 +00:00
dependabot-preview[bot]
09fc011ba8
[Security] Bump eslint-utils from 1.3.1 to 1.4.2 in /vuejs
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.3.1 to 1.4.2. **This update includes security fixes.**
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.3.1...v1.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 18:56:37 +00:00
6725c58b80 New sessions should not be accepted 2019-08-30 19:38:20 +01:00
24a0ed9cb8 Add session status field 2019-08-30 19:24:07 +01:00
a1deab3330 Enable admin_toolbar_tools 2019-08-30 19:16:58 +01:00
bfe73f8e22 Add custom actions for sessions 2019-08-30 19:12:59 +01:00
2da4ecc893 Add rejected status for sessions 2019-08-30 19:11:52 +01:00
45f8a6a2ab Add and use vue-save-state 2019-08-30 18:08:44 +01:00
6ce41c0f0b Add and configure PurgeCSS 2019-08-30 17:57:30 +01:00
4c70965332 Use the array syntax for plugins 2019-08-30 17:44:23 +01:00
ca58883d23 Add postcss-import, split tailwind.css 2019-08-30 17:43:25 +01:00
e65b8823ed Update title 2019-08-30 17:35:26 +01:00
7d4c7fe5f3 Update tailwindcss and styling 2019-08-30 17:35:14 +01:00
a39497e8d4 Do the sorting within AcceptedSessionsList 2019-08-30 17:27:02 +01:00
15e921239e Filter on session status in the API request 2019-08-30 13:52:33 +01:00
73d4584f0a Add qa, use stringify to pass params 2019-08-30 13:50:06 +01:00
6acd746ce9 Move styles into a separate stylesheet 2019-08-30 12:55:05 +01:00
80c38777dc Delete semicolons where possible 2019-06-16 00:41:34 +01:00
d7958deef1 Re-order classes 2019-06-16 00:39:20 +01:00
80f9b51fe0 Split up Mix config 2019-06-07 22:18:43 +01:00
cd74805817 Rename assets to resources 2019-06-07 22:10:18 +01:00
8a1069961d Rename files 2019-06-07 22:08:27 +01:00
6ed0abf6a3 Update akismet 2019-06-07 19:05:09 +01:00
1e3ac16676 Update README.md 2019-06-07 15:47:14 +01:00
748acda5a6 Update Tailwind 2019-06-07 15:20:43 +01:00
5573102fda Remove unneeded file extension 2019-06-07 15:20:43 +01:00
c56cfd40b8 Rename main.css to app.css 2019-06-07 14:35:19 +01:00
f9be621fff Add and use postcss-import 2019-06-07 14:35:19 +01:00
b292a34b81 Update site name 2019-06-07 07:38:19 +01:00
6a78346e1e Rebuild cache after changing uuids 2019-06-07 07:38:14 +01:00
db130a7edf Update README 2019-06-06 09:03:55 +01:00
44ad7ebcb7 Update docs 2019-06-06 08:57:53 +01:00
4147b13e6f
Update having-fun-with-drupal-8-php-libraries-drupalorg-api.md 2019-06-05 23:22:56 +01:00
e385fa570f Change closing tag for consistency 2019-06-05 21:40:05 +01:00
8c7752cf43 Split Docksal init command 2019-06-05 21:29:17 +01:00
d634b835f8 Overwrite settings.php 2019-06-05 21:01:21 +01:00
dbeee034e2 Include Docksal services 2019-06-05 20:58:44 +01:00
08f29acf5c Fix confirmation message 2019-06-05 20:52:00 +01:00
985060a0a6 Fix empty title 2019-06-05 20:37:45 +01:00
623b9aa501 Reset user uuid to match 2019-06-05 20:34:57 +01:00
9a16e78869 Add some stub docs files 2019-06-05 20:34:57 +01:00
10ff5e82ee Add Drupal back-end URL 2019-06-05 20:34:57 +01:00
4bb39011f3 Add Drupal application 2019-06-05 20:34:57 +01:00
c00b769d67 Add README.md 2019-06-05 19:32:07 +01:00
d7c864b63b Move Vue into the vuejs directory 2019-06-05 19:25:03 +01:00
a4b018204d Destructure more things 2019-06-05 12:06:00 +01:00
726a0b535f Remove type
Otherwise there's no syntax highlighting
2019-06-05 12:01:47 +01:00
7417eb6c25 Extract heading styles 2019-06-05 09:15:57 +01:00
6b689ea52f Extract form element styles 2019-06-05 09:15:54 +01:00
28537b87e5 Inline Tailwind directives 2019-06-05 08:56:52 +01:00
e311e438ce Move app.css 2019-06-05 00:55:58 +01:00
ff992c9115 Tidy up, remove unused views and components 2019-06-05 00:52:55 +01:00
6fd12c0a98 Simplify v-if condition 2019-06-05 00:41:50 +01:00
c9e6f5e614 Use more destructuring 2019-06-05 00:41:40 +01:00
37e1338d79 Update title 2019-06-04 23:19:00 +01:00
4e939fb9a6 Use an environment variable for the Drupal URL 2019-06-04 23:12:18 +01:00
0bc9d45d0a Clear messages on success 2019-06-04 22:40:05 +01:00
c58ebd1751 Display new session in the sessions list straight away 2019-06-04 22:39:55 +01:00
8454dcaf73 Assign the uid on new sessions to the API user 2019-06-04 22:16:53 +01:00
b901bf14cd Ensure that errors are emptied on success 2019-06-04 22:16:33 +01:00
43e05e8438 Extract a SessionFormMessage component 2019-06-04 21:42:31 +01:00
988748899e Display a confirmation message 2019-06-04 21:31:43 +01:00
2ed3ca469a Fix linting 2019-06-04 21:27:12 +01:00
fa9ca37fb4 Use arrow function for consistency 2019-06-04 21:23:33 +01:00
e0cf0d07ae Re-order fields 2019-06-04 21:23:11 +01:00
1102229d84 Split the baseUrl 2019-06-04 21:23:11 +01:00
150c0f7de1 Display validation errors 2019-06-04 21:23:11 +01:00
496d96e10e Split filter logic to use an isAccepted method 2019-06-04 21:17:53 +01:00
def19c539b Simplify session sorting 2019-06-04 21:17:31 +01:00
9bf6b45f09 POST a session to Drupal 2019-06-03 00:54:25 +01:00
2142da75ff Reset form values after submitting 2019-06-02 23:50:01 +01:00
7a262d4b76 Add session locally 2019-06-02 23:49:21 +01:00
ed1c57a5b6 Add session form 2019-06-02 23:36:07 +01:00
d08d6b8c7c Add Test Driven Drupal 2019-06-02 12:32:15 +01:00
5b1c769a27 Add abstracts 2019-06-02 12:17:31 +01:00
a96e168eb7 Restructure, tidy up 2019-05-26 21:53:30 +01:00
3e5569546f Delete history.yml 2019-05-26 20:20:28 +01:00
964b7f519f Move classes 2019-05-25 16:21:05 +01:00
77a956ecee Destructure session attributes 2019-05-25 16:19:12 +01:00
74269608d1 Lodash not used in this component 2019-05-25 16:15:13 +01:00
d1e1b08feb Sort sessions alphabetically by title 2019-05-25 16:13:00 +01:00
15b093f94e Filter within AcceptedSessionsList component 2019-05-25 16:12:41 +01:00
fe720708cd Extract an AcceptedSessionsList component 2019-05-25 12:08:54 +01:00
577280d634 Change to mounted 2019-05-25 12:03:13 +01:00
f369cbb7d3 Only get accepted sessions 2019-05-25 11:39:00 +01:00
e5016c2fcc Display sessions from Drupal 2019-05-25 01:04:57 +01:00
7b1b1d6b22 Add axios 2019-05-25 00:45:57 +01:00
7176baeb20 Add tailwindcss 2019-05-25 00:27:33 +01:00
7152740458 init 2019-05-25 00:11:42 +01:00
07f0045241 Update Tailwind slides for WordCamp 2019-05-20 00:04:26 +01:00
a150cdff87
Add Blue Conf talks 2019-05-19 23:55:43 +01:00
ef7bd514c2 Add dev and development scripts 2019-05-18 16:07:06 +01:00
07c3afb735 Add prod script 2019-05-18 15:58:18 +01:00
91c182947c Redirect to custom domain 2019-05-18 15:52:18 +01:00
5b2cb83068 Fix author name position on comment list 2019-05-18 15:52:18 +01:00
0424d05ada Fix author name position in comment form 2019-05-18 15:42:14 +01:00
6fd62571ea Update image paths 2019-05-18 15:22:55 +01:00
2947b1c45e Update 2019-05-18 15:20:07 +01:00
5a83ba9b9e Tweak widget title sizes on mobile 2019-05-08 21:35:08 +01:00
46d405f276 Add initial scale meta tag 2019-05-08 21:29:07 +01:00
9febb0c22b Style main menu 2019-05-08 21:18:12 +01:00
c7e427d866 Display main menu 2019-05-08 21:18:09 +01:00
2ae21aa31e Style page titles 2019-05-08 21:18:06 +01:00
aa3ea3a662 Adjust content widths 2019-05-08 21:17:49 +01:00
025cd37016
Create _redirects 2019-05-08 18:54:18 +01:00
8b3a5fbdb1 Add README 2019-05-08 18:20:20 +01:00
86a87c6d51 wip 2019-05-08 18:08:34 +01:00
a8cd84fa6e Rename style.css to main.css 2019-05-08 15:05:10 +01:00
584aa32a2a Fix Browsersync reloading on CSS changes 2019-05-08 14:50:53 +01:00
026e8e11d2 Prevent opening Browsersync by default 2019-05-08 14:50:34 +01:00
087aefffdc Change src to assets 2019-05-08 09:14:41 +01:00
168d1a5ee7 Update themes 2019-05-08 08:07:01 +01:00
e00f87f2f5 Update WordPress to 5.2 2019-05-08 08:05:39 +01:00
489b5a5914 No need to specify the default filename 2019-05-03 23:57:28 +01:00
4685f23861 Position edit link 2019-05-03 23:57:28 +01:00
5ac2052215 Add markup class for single post content 2019-05-03 23:57:28 +01:00
a8f7d99e62
Update README.md 2019-05-03 23:53:40 +01:00
9e3334c3fa
Create README.md 2019-04-17 23:26:07 +01:00
d2e7ef9b30 Responsive widgets 2019-04-17 16:36:00 +01:00
4307391c93 wip 2019-04-17 00:52:08 +01:00
984bd339d8 Update Gravatar URLs 2019-04-17 00:21:08 +01:00
37617f36cb Remove dns-prefetch link 2019-04-17 00:18:04 +01:00
1e90c3333a wip 2019-04-17 00:15:32 +01:00
13ed3fd86c Merge branch 'comments' 2019-04-17 00:02:47 +01:00
c1720b90ec Style the comment form 2019-04-17 00:01:56 +01:00
7ae5d67f93 Style comment list 2019-04-16 23:18:02 +01:00
29a9ee748c Update meta discussion section 2019-04-16 21:54:19 +01:00
d7de23fbd2 Re-style discussion-meta-info 2019-04-16 21:38:24 +01:00
4ca9cd8a47 Create discussion-meta.php 2019-04-16 21:38:05 +01:00
bc99494ae9 Update comment section heading 2019-04-16 21:32:18 +01:00
c78600536e Add comments.php 2019-04-16 21:31:33 +01:00
1551ca80d5 Add margin above entry footer 2019-04-16 21:26:39 +01:00
db85fe78e8 Limit line length on smaller screens 2019-04-16 21:23:13 +01:00
d8ec72e3a7 Add 2xl screen, adjust wrapper width 2019-04-16 21:23:00 +01:00
1fb77fc4ff Update WP and plugins 2019-04-16 20:56:22 +01:00
10a4713229 Create screenshot.png 2019-04-16 20:52:22 +01:00
a3ee110ed9 Be consistent with semicolons 2019-04-16 20:43:59 +01:00
d5a9fb078b Make slogan clickable 2019-04-16 20:32:40 +01:00
7fe8c5fa3f Add spacing above widgets 2019-04-16 20:26:54 +01:00
91cdf824f2 Rename sidebar to sidebar-1
Matches the parent theme, so widgets should be pre-placed.
2019-04-16 20:25:28 +01:00
6acc6b22a5 Update form styling 2019-04-16 20:24:51 +01:00
e70b21e517 Adjust text colour and container width 2019-04-16 20:22:52 +01:00
f59152c352 Add Docksal configuration 2019-04-16 20:21:47 +01:00
a0ae6a465c wip 2019-04-16 17:38:37 +01:00
7915befdf3 Reformat dates 2019-03-31 21:33:56 +01:00
193d4dacae Add WordPress talks 2019-03-31 21:27:57 +01:00
61c93972f0 Update history.yml 2019-03-31 21:27:52 +01:00
2b69e03ab4 Re-add history.yml 2019-03-31 21:27:41 +01:00
601b18c0df Remove extra commas 2019-03-28 20:10:39 +00:00
3b4412efb2 Change background colour 2019-03-28 20:08:11 +00:00
c00c91f5a5 Update widget font size 2019-03-28 20:05:35 +00:00
444fb277de Change link hover colour 2019-03-28 20:02:30 +00:00
4f8773d4b5 Update spacing on a single post 2019-03-28 10:06:11 +00:00
0f26e509b3 Change border colour 2019-03-28 09:44:38 +00:00
b56359bf73 Also apply to textareas 2019-03-28 09:43:54 +00:00
20efc93406 Search form styling 2019-03-28 09:35:58 +00:00
619403d57f Decrease top margin for widgets 2019-03-28 08:52:17 +00:00
ceb21b007e Use fluent API 2019-03-28 08:52:08 +00:00
0038bcd6e1 Style widget links 2019-03-28 08:45:56 +00:00
b8445625e4 Inline function, update title styles 2019-03-28 08:44:50 +00:00
cee2a38161 Un-nest h2:before 2019-03-28 08:44:24 +00:00
dd7b79f395 Start overridding footer widgets 2019-03-27 18:21:37 +00:00
585d907279 Include sub-directories 2019-03-27 18:21:15 +00:00
9b65f4ca99 Add BrowserSync 2019-03-27 01:13:22 +00:00
3a872882ad Enable footer widgets 2019-03-25 18:29:35 +00:00
984f598834 Apply styles to child spans 2019-03-25 18:29:23 +00:00
fa2a90319e Add top margin 2019-03-25 18:28:58 +00:00
ab2a5d41de wip 2019-03-23 08:29:20 +00:00
7e637dbafe Change to entry-content, add p styling 2019-03-23 08:26:14 +00:00
b9684fbc94 Move entry footer link styling 2019-03-23 07:49:30 +00:00
301d10b0f6 Add an entry-footer component 2019-03-23 07:34:58 +00:00
320e98fcd8 Move content styles into a component 2019-03-23 07:32:01 +00:00
05ba91b472 Extract entry-title into a component 2019-03-23 07:18:14 +00:00
750ae735ef Update font family and text size 2019-03-23 00:00:26 +00:00
e4ee2453c9 Add top margin 2019-03-22 23:55:23 +00:00
9b480b46d1 Re-style post heading 2019-03-22 23:52:43 +00:00
bc422f6a62 Hide screen reader text 2019-03-22 23:51:14 +00:00
63b08a341f Add classes for links 2019-03-22 23:51:07 +00:00
c43085122b Add separator above h2 headings 2019-03-22 23:49:42 +00:00
dc12d046e0 Add footer classes 2019-03-22 23:49:08 +00:00
79acd3e540 Copy content.php 2019-03-22 23:48:29 +00:00
ccd0e8927f Delete index.php 2019-03-22 23:45:33 +00:00
8d53b7932c Make it a child theme of twentynineteen 2019-03-22 23:04:27 +00:00
1568cdeaf1 Update theme name 2019-03-22 22:17:33 +00:00
a2a488972a Make link text smaller 2019-03-22 22:17:20 +00:00
30befc2487 Override gray-600 2019-03-22 22:10:31 +00:00
ade2956ba3 Update npm scripts 2019-03-22 21:50:29 +00:00
0e3a35adca Rename theme 2019-03-22 21:35:19 +00:00
a39514e646 init 2019-03-22 19:12:58 +00:00
e556db68e4 Update tailwindcss requirement 2019-03-21 10:08:09 +00:00
458691cc67 Update text colours 2019-03-21 10:07:55 +00:00
f743259b76 Add theme name 2019-03-19 11:37:15 +00:00
b5b27875b5 Rename theme 2019-03-19 11:15:44 +00:00
12e8fd1682 Change description colour 2019-03-19 10:29:58 +00:00
42bab3c176 Use new colour scheme, remove tailwind.config.js 2019-03-18 18:37:21 +00:00
cc8259cc24 Add borders to links by default 2019-03-18 18:21:57 +00:00
e0f36fc463 Add content ul styling 2019-03-18 13:45:39 +00:00
8860d9cb2d Remove links 2019-03-18 13:44:53 +00:00
ec6e285b9a Only limit width on medium screens 2019-03-18 13:43:58 +00:00
7fcab1a956 Adjust font size using @screen 2019-03-18 13:43:44 +00:00
148eeb0328 Re-order plugins 2019-03-18 13:43:19 +00:00
dbb8324418 yarn upgrade 2019-03-18 13:39:28 +00:00
f014c06343 Add content styling 2019-03-18 00:08:10 +00:00
960015e26b Add postcss-nested 2019-03-17 23:52:58 +00:00
ed523ab0b1 Spaces 2019-03-17 23:21:24 +00:00
43bab4a5ce Smaller text on mobile 2019-03-17 22:56:57 +00:00
7c72478cf0 Spaces 2019-03-17 22:52:22 +00:00
c15e911769 Add theme files 2019-03-17 22:50:58 +00:00
f26a8af215 Add Laravel Mix and Tailwind 2019-03-17 22:50:21 +00:00
ff6f6c80cd init 2019-03-12 09:27:46 +00:00
fa9e60e6cd Update and export slides 2019-03-03 21:25:33 +00:00
242410f8c0 Add images 2019-03-03 21:25:11 +00:00
772d3d31b0
Update node.type.article.yml 2019-03-02 11:13:16 +00:00
c975651e9c Update override_node_options statistics 2019-03-01 22:40:00 +00:00
a1365bcbb7 Use short URLs 2019-03-01 22:39:40 +00:00
87c761c2e6 Remove Dev Days sponsor slides 2019-03-01 22:05:04 +00:00
4644f4e6d1 Fix header styling 2019-02-05 01:44:57 +00:00
9b5dee653b Export slides 2019-02-05 01:37:41 +00:00
bc46e54697 Re-order build hook slides 2019-02-05 01:35:18 +00:00
9bedce9bb1 Uncommitted changes 2019-02-05 01:27:13 +00:00
ccaa426a38 Change to tdd_blog 2018-09-07 18:33:14 +01:00
5f4814d48d Update TDD slides, and SOMDUG export 2018-06-15 07:43:54 +01:00
Oliver Davies
5be880e496
Create composer.json 2018-06-14 09:52:58 +01:00
18f3bafe3e Add TDD talk 2018-06-13 22:54:25 +01:00
3e7fd512e9 Revert "Delete history.yml"
This reverts commit 9b39ec0f23.
2018-06-13 22:53:13 +01:00
e74e3dccde Add todo 2018-05-11 22:13:39 +01:00
ab762dd7e3 Split todo files 2018-05-11 22:13:39 +01:00
Oliver Davies
9b39ec0f23
Delete history.yml 2018-05-11 22:11:35 +01:00
Oliver Davies
dccc8f1875 Add node types explicitly 2018-04-20 00:10:28 +01:00
Oliver Davies
f8a864b6cc Use the NodeCreationTrait, remove validParams 2018-04-19 23:46:19 +01:00
Oliver Davies
41bcbb50ab
Update README.md 2018-04-19 23:29:38 +01:00
Oliver Davies
442ec19bc1 Use EntityKernelTestBase 2018-04-19 14:18:10 +01:00
Oliver Davies
d8cb50130e Add Drupal.org API talk 2018-04-18 23:28:33 +01:00
Oliver Davies
071c4bc963
Update history.yml 2018-04-17 22:48:46 +01:00
Oliver Davies
4ec57cdf2e Add installation instructions 2018-04-03 08:46:46 +01:00
Oliver Davies
38314a0ed2 Use array_map 2018-04-02 21:29:19 +01:00
Oliver Davies
f150b1706b
Update history.yml 2018-03-24 20:11:21 +00:00
Oliver Davies
6d3e971a56
Update history.yml 2018-03-24 20:10:27 +00:00
Oliver Davies
964c9ff2d8
Identify lightning talks 2018-03-24 20:09:41 +00:00
Oliver Davies
d87e29e5fd
Update history.yml 2018-03-24 19:54:14 +00:00
Oliver Davies
65c7611654 Add history.yml 2018-03-24 09:05:29 +00:00
Oliver Davies
238dd8fb68 Rename method 2018-03-20 19:26:28 +00:00
Oliver Davies
4238580d66 Remove extra lines 2018-03-20 18:58:02 +00:00
Oliver Davies
349ec8f965 Add tdd_dublin_test sub-module 2018-03-20 18:58:02 +00:00
Oliver Davies
a3c3b4a642
Update speaker-info.md 2018-03-04 10:41:15 +00:00
Oliver Davies
1eb0caaa91 Add PHP UK slides 2018-02-16 16:56:59 +00:00
Oliver Davies
96747eaff6
Create todo.md 2018-02-15 00:35:55 +00:00
Oliver Davies
00ca4fda09
Update ideas.md 2018-02-14 19:46:07 +00:00
Oliver Davies
b9e80e3fbc Update speaker info 2018-02-14 19:19:18 +00:00
Oliver Davies
2cec8b9d5b Add idea 2018-02-14 19:16:38 +00:00
Oliver Davies
f365e1d8b5
Update ideas.md 2018-01-23 20:50:52 +00:00
Oliver Davies
53b6bc307c Add Tailwind talk 2018-01-17 22:50:48 +00:00
Oliver Davies
b546bc655f
Update ideas.md 2018-01-05 22:34:32 +00:00
Oliver Davies
e9a8c8c7b5
Create ideas.md 2018-01-05 22:31:11 +00:00
a96889353f Add speaker bio 2017-12-21 20:29:27 +00:00
Oliver Davies
be3c09d3a8
Update title 2017-12-21 19:16:42 +00:00
137bbb1b2d Update image path 2017-12-21 19:11:29 +00:00
b381a2394d Add Nomad PHP 2017-12-21 19:07:34 +00:00
Oliver Davies
ac7cc17aa5
Create LICENSE 2017-12-12 21:39:19 +00:00
8c10325e52 Add Drupal Bristol talk 2017-11-23 07:14:07 +00:00
81cb121a99 Change tests to kernel tests
Fixes #1
2017-11-21 10:06:09 +00:00
ab524316b6 Rename file 2017-11-21 00:51:00 +00:00
97d1f11263 Update slides 2017-11-08 06:56:37 +00:00
d39f10203f Remove duplicate 2017-11-08 06:55:59 +00:00
be6902c91c Add Laravel Collections talk abstract 2017-11-07 18:22:28 +00:00
eb5465c5a6 Update README 2017-11-07 01:10:11 +00:00
5a1df13dcd Add Collections in Drupal abstract 2017-11-02 21:53:16 +00:00
af09babd7a Add comments 2017-10-30 10:44:40 +00:00
5574c5ee9a Update README 2017-10-30 10:44:36 +00:00
5ead634ab2 Add dependencies section 2017-10-30 10:44:27 +00:00
66389b7a21 Update README 2017-10-30 10:44:17 +00:00
81af444a97 Update sort criteria
Remove the default "Authored on" sort criteria and replace it
with a "Content: Title" sort to order the items alphabetically.
2017-10-30 10:44:16 +00:00
461e66bf53 Assert expected node order 2017-10-30 10:44:16 +00:00
992390b803 Retrieve the data from the view 2017-10-30 10:44:16 +00:00
fc8eb51bdf Create some test content
Create several different nodes in an incorrect order so that
we can see the test fail when asserting that they should be
ordered alphabetically.
2017-10-30 10:44:16 +00:00
569d4a80dc Add results order test 2017-10-30 10:44:16 +00:00
f6d572211f Add type condition to the view 2017-10-30 10:44:16 +00:00
744556a681 Compare the expected nids with the view result 2017-10-30 10:44:16 +00:00
88a0399f39 Get the result of the view 2017-10-30 10:44:15 +00:00
a104767e10 Create some test content
This includes some content of different types, as well as a
mixture of published and unpublished content. This mean that
we can test that these nodes are not returned in addition to
ensuring that the correct ones are returned.
2017-10-30 10:44:15 +00:00
f713d225bf Add correct nodes test 2017-10-30 10:44:15 +00:00
dfda72bcd7 Add missing config
Add the page node type.

Prevents UnmetDependenciesException due to the pages node type
being a dependency of the view.
2017-10-30 10:44:15 +00:00
7c611e4a8a Add module dependencies 2017-10-30 10:44:15 +00:00
51d91feb46 Add pages view
Fixes the 404 error by adding the /pages view.
2017-10-30 10:44:15 +00:00
f16b0df762 Add page test
This test will fail and return a 404 error code rather than
a 200 code as the page hasn't been built yet.
2017-10-30 10:44:15 +00:00
05cd5901d5 Add test structure 2017-10-30 10:44:14 +00:00
4c49bde2bf Initial commit 2017-10-30 10:44:14 +00:00
bbbb8279d7 Remove abstract 2017-10-30 01:08:33 +00:00
14781d3d6f Restructure files 2017-10-30 01:08:00 +00:00
75533b91a8 Add Drupal Somerset slides 2017-10-27 06:53:08 +01:00
Oliver Davies
7f208f2e55 Update module name, fix file name 2017-10-21 23:15:22 +01:00
1998246cec Merge branch 'drupalcamp-dublin' 2017-10-21 13:56:12 +01:00
7f0069fd84 Add Dublin testing talk 2017-10-21 13:56:01 +01:00
6165e4a372 Add Dublin Fabric talk 2017-10-20 19:35:03 +01:00
45ee78b607 WIP 2017-10-05 07:53:55 +01:00
3c7fe2b997 Add PHPNW talk 2017-10-01 12:08:26 +01:00
f9ff7f1e62 Move image 2017-09-20 19:29:19 +01:00
2a478283c2 Add PDF slides 2017-09-20 19:19:43 +01:00
4e3d533720 Add theme settings 2017-09-20 19:18:50 +01:00
97da76d6b5 Add PHPSW slides 2017-09-14 08:28:45 +01:00
6a64544e13 Move slides from other repos 2017-07-02 21:03:12 +01:00
1407e61bba Remove extra README files 2017-07-02 18:54:23 +01:00
4cc60ff4d6 Add more PDF slides 2017-07-02 07:46:57 +01:00
76674130d4 Add slides sub-directories for Reveal.js 2017-07-02 01:43:57 +01:00
c79d949569 Add PHP Fabric talk abstract 2017-07-02 01:08:21 +01:00
f3cddf05a1 Add PDF slides 2017-07-02 01:04:38 +01:00
f33406ffe2 Add old slides 2017-07-02 00:51:42 +01:00
2d20969ccf Copy abstracts from gist 2017-07-02 00:39:26 +01:00
3139 changed files with 1066339 additions and 59 deletions

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

2
.git-blame-ignore-revs Normal file
View file

@ -0,0 +1,2 @@
# Move source files into an `src` directory.
51c5f5759d667821fc94b9ed170de9a43dfbc848

8
.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
# Nix.
/.direnv/
/result
# pdfpc.
/**/*.pdfpc
/**/*.pdf

5
.nvim.lua Normal file
View file

@ -0,0 +1,5 @@
vim.keymap.set("n", "<leader>ta", '_iTextAnnotation "<Esc>A"<Esc>j')
vim.keymap.set("v", "<leader>ta", ':norm ITextAnnotation "<Esc>gv:norm A"<Esc>')
vim.keymap.set("n", "<Left>", "gT")
vim.keymap.set("n", "<Right>", "gt")

4
README.rst Normal file
View file

@ -0,0 +1,4 @@
Talks and Presentations by Oliver Davies
########################################
The source files for `my presentation slides <https://www.oliverdavies.uk/presentations>`_, written in reStructuredText and compiled using `rst2pdf <https://rst2pdf.org>`_.

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

View file

@ -0,0 +1,27 @@
.. raw:: pdf
PageBreak standardPage
Result
======
- Easier and faster to create and onboard projects.
- One canonical source of truth.
- Easy to add new features and fixes for all projects.
- Automation is easier due to consistency (e.g. Docker Compose service names).
Thanks!
=======
References:
- https://opdavi.es/build-configs
- https://github.com/opdavies/docker-example-drupal
- https://github.com/opdavies/docker-example-drupal-commerce-kickstart
- https://github.com/opdavies/docker-example-drupal-localgov
|
Me:
- https://www.oliverdavies.uk

View file

@ -0,0 +1,52 @@
.. raw:: pdf
PageBreak standardPage
Overriding Values
=================
.. code-block:: yaml
php:
version: 8.1-fpm-bullseye
# Disable PHPCS, PHPStan and PHPUnit.
phpcs: false
phpstan: false
phpunit: false
# Ignore more directories from Git.
git:
ignore:
- /bin/
- /libraries/
- /web/profiles/contrib/
.. raw:: pdf
TextAnnotation "Drupal Commerce Kickstart demo. No custom modules to test, and additional paths to ignore from Git."
PageBreak
.. code-block:: yaml
dockerfile:
stages:
build:
# What additional directories do we need?
extra_directories:
- config
- patches
- scripts
commands:
- composer validate --strict
- composer install
# What additional PHP extensions do we need?
extensions:
install: [bcmath]
.. raw:: pdf
TextAnnotation "Extra directories and PHP extensions that need to be added".

View file

@ -0,0 +1,92 @@
Example
=======
build.yaml:
.. code-block:: yaml
name: my-example-project
type: drupal
language: php
php:
version: 8.1-fpm-bullseye
|
Dockerfile:
.. raw:: pdf
TextAnnotation "Abstract the project-specific values and configuration into this file."
.. code-block:: yaml
FROM php:8.1-fpm-bullseye AS base
Configuring a Project
=====================
.. code-block:: yaml
php:
version: 8.1-fpm-bullseye
# Which PHPCS standards should be used and on which paths?
phpcs:
paths: [web/modules/custom]
standards: [Drupal, DrupalPractice]
# What level should PHPStan run and on what paths?
phpstan:
level: max
paths: [web/modules/custom]
.. raw:: pdf
PageBreak
.. code-block:: yaml
docker-compose:
# Which Docker Compose services do we need?
services:
- database
- php
- web
dockerfile:
stages:
build:
# What commands do we need to run?
commands:
- composer validate --strict
- composer install
.. raw:: pdf
PageBreak
.. code-block:: yaml
web:
type: nginx # nginx, apache, caddy
database:
type: mariadb # mariadb, mysql
version: 10
# Where is Drupal located?
drupal:
docroot: web # web, docroot, null
experimental:
createGitHubActionsConfiguration: true
runGitHooksBeforePush: true
useNewDatabaseCredentials: true
.. raw:: pdf
TextAnnotation "Experimental opt-in features that I want to trial on certain projects or to disable non-applicable features - e.g. GitHub Actions on Bitbucket."
PageBreak

View file

@ -0,0 +1,300 @@
.. raw:: pdf
PageBreak titlePage
.. class:: centredtitle
Build Configs internals
.. raw:: pdf
PageBreak standardPage
.. code-block::
src/
Action/
CreateFinalConfigurationData.php
CreateListOfFilesToGenerate.php
GenerateConfigurationFiles.php
ValidateConfigurationData.php
Command/
GenerateCommand.php
InitCommand.php
DataTransferObject/
ConfigDto.php
TemplateFile.php
Enum/
Language.php
ProjectType.php
WebServer.php
.. code-block:: php
:linenos:
:startinline: true
protected function configure(): void
$this
->addOption(
name: 'config-file',
shortcut: ['c'],
mode: InputOption::VALUE_REQUIRED,
description: 'The path to the project\'s build.yaml file',
default: 'build.yaml',
)
->addOption(
name: 'output-dir',
shortcut: ['o'],
mode: InputOption::VALUE_REQUIRED,
description: 'The directory to create files in',
default: '.',
);
}
.. code-block:: php
:linenos:
:startinline: true
protected function execute(InputInterface $input, OutputInterface $output): int
{
$io = new SymfonyStyle($input, $output);
$configFile = $input->getOption(name: 'config-file');
$outputDir = $input->getOption(name: 'output-dir');
}
.. raw:: pdf
PageBreak
.. code-block:: php
:linenos:
:startinline: true
protected function execute(InputInterface $input, OutputInterface $output): int
{
// ...
$pipelines = [
new CreateFinalConfigurationData(),
new ValidateConfigurationData(),
new CreateListOfFilesToGenerate(),
new GenerateConfigurationFiles(
$this->filesystem,
$this->twig,
$outputDir,
),
];
}
.. code-block:: php
:linenos:
:startinline: true
protected function execute(InputInterface $input, OutputInterface $output): int
{
// ...
/**
* @var Collection<int,TemplateFile> $generatedFiles
* @var ConfigDto $configurationData
*/
[$configurationData, $generatedFiles] = (new Pipeline())
->send($configFile)
->through($pipelines)
->thenReturn();
$io->info("Building configuration for {$configurationData->name}.");
$io->write('Generated files:');
$io->listing(static::getListOfFiles(filesToGenerate: $generatedFiles)->toArray());
return Command::SUCCESS;
}
.. code-block:: php
:linenos:
:startinline: true
// CreateFinalConfigurationData.php
public function handle(string $configFile, \Closure $next) {
{
$configurationData = Yaml::parseFile(filename: $configFile);
$configurationData = array_replace_recursive(
Yaml::parseFile(filename: __DIR__ . '/../../resources/build.defaults.yaml'),
$configurationData,
);
// ...
return $next($configurationData);
}
.. raw:: pdf
PageBreak
.. code-block:: php
:linenos:
:startinline: true
// ValidateConfigurationData.php
public function handle(array $configurationData, \Closure $next)
{
// Convert the input to a configuration data object.
$normalizer = new ObjectNormalizer(null, new CamelCaseToSnakeCaseNameConverter());
$serializer = new Serializer([$normalizer], [new JsonEncoder()]);
$configurationDataDto = $serializer->deserialize(
json_encode($configurationData),
ConfigDto::class,
'json',
);
// ...
}
.. raw:: pdf
PageBreak
.. code-block:: php
:linenos:
:startinline: true
// ValidateConfigurationData.php
public function handle(array $configurationData, \Closure $next)
{
// ...
$validator = Validation::createValidatorBuilder()
->enableAnnotationMapping()
->getValidator();
$violations = $validator->validate($configurationDataDto);
if (0 < $violations->count()) {
throw new \RuntimeException('Configuration is invalid.');
}
return $next([$configurationData, $configurationDataDto]);
}
.. code-block:: php
:linenos:
:startinline: true
// ConfigDto.php
#[Assert\Collection(
allowExtraFields: false,
fields: ['docroot' => new Assert\Choice([null, 'web', 'docroot'])],
)]
public array $drupal;
#[Assert\Collection([
'ignore' => new Assert\Optional([
new Assert\All([
new Assert\Type('string'),
]),
]),
])]
public array $git;
#[Assert\Choice(choices: ['javascript', 'php', 'typescript'])]
public string $language;
#[Assert\NotBlank]
#[Assert\Type('string')]
public string $name;
#[Assert\Type('string')]
public string $projectRoot;
#[Assert\Choice(choices: [
'drupal',
'fractal',
'php-library',
'symfony',
])]
public string $type;
.. code-block:: php
:startinline: true
:linenos:
// CreateListOfFilesToGenerate.php
public function handle(array $configurationDataAndDto, \Closure $next)
{
/**
* @var ConfigDto $configDto,
* @var array<string,mixed> $configurationData
*/
[$configurationData, $configDto] = $configurationDataAndDto;
/** @var Collection<int, TemplateFile> */
$filesToGenerate = collect();
// ...
}
.. code-block:: php
:startinline: true
:linenos:
// CreateListOfFilesToGenerate.php
public function handle(array $configurationDataAndDto, \Closure $next)
{
// ...
if (!isset($configDto->php['phpunit']) || $configDto->php['phpunit'] !== false) {
$filesToGenerate->push(
new TemplateFile(
data: 'drupal/phpunit.xml.dist',
name: 'phpunit.xml.dist',
)
);
}
// ...
return $next([$configurationData, $configDto, $filesToGenerate]);
}
.. code-block:: php
:linenos:
:startinline: true
// GenerateConfigurationFiles.php
public function handle(array $filesToGenerateAndConfigurationData, \Closure $next)
{
// ...
$filesToGenerate->each(function(TemplateFile $templateFile) use ($configurationData): void {
if ($templateFile->path !== null) {
if (!$this->filesystem->exists($templateFile->path)) {
$this->filesystem->mkdir("{$this->outputDir}/{$templateFile->path}");
}
}
$sourceFile = "{$templateFile->data}.twig";
$outputFile = collect([$this->outputDir, $templateFile->path, $templateFile->name])
->filter()->implode('/');
$this->filesystem->dumpFile($outputFile, $this->twig->render($sourceFile, $configurationData));
});
return $next([$configurationDataDto, $filesToGenerate]);
}

View file

@ -0,0 +1,55 @@
.. raw:: pdf
PageBreak standardPage
What is "Build Configs"?
========================
- Command-line tool.
- Inspired by Workspace, name from the TheAltF4Stream.
- Built with Symfony.
- Creates and manages build configuration files.
- Customisable per-project.
- Drupal, PHP library, Fractal (TypeScript).
- "Sprint zero in a box".
What Problem Does it Solve?
===========================
- I work on multiple similar projects.
- Different configuration values - e.g. ``web`` vs. ``docroot``.
- Different versions of PHP, node, etc.
- Different Docker Compose (``fpm`` vs. ``apache`` images).
- Each project was separate.
- Difficult to add new features and fix bugs across all projects.
- Inconsistencies across projects.
- Out of the box solutions didn't seem like the best fit.
.. raw:: pdf
TextAnnotation "Multiple projects with similar but different configurations."
TextAnnotation ""
TextAnnotation "Out of the box solutions tend to focus on one technology, could be hard to customise, and usually had more than I nedeed."
TextAnnotation ""
TextAnnotation "Start small and build up instead of removing additional things."
TextAnnotation ""
TextAnnotation "More opportunities to learn the underlying technologies."
How Does it Work?
=================
.. image:: diagram.png
:width: 18cm
.. raw:: pdf
TextAnnotation "Canonical templates and project-specific configuration goes in, templates come out."
What Files Does it Generate?
============================
- Dockerfile, Docker Compose, Nix Flake, php.ini, NGINX default.conf.
- ``run`` file.
- PHPUnit, PHPCS, PHPStan.
- GitHub Actions workflow.
- Git hooks.

View file

@ -0,0 +1,117 @@
.. raw:: pdf
PageBreak standardPage
Dockerfile.twig
===============
.. code-block:: twig
:linenos:
FROM php:{{ php.version }} AS base
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
RUN which composer && composer -V
ARG DOCKER_UID=1000
ENV DOCKER_UID="${DOCKER_UID}"
WORKDIR {{ project_root }}
RUN adduser --disabled-password --uid "${DOCKER_UID}" app \
&& chown app:app -R {{ project_root }}
Dockerfile.twig
===============
.. code-block:: twig
:linenos:
{% if dockerfile.stages.build.extensions.install %}
RUN docker-php-ext-install
{{ dockerfile.stages.build.extensions.install|join(' ') }}
{% endif %}
COPY --chown=app:app phpunit.xml* ./
{% if dockerfile.stages.build.extra_files %}
COPY --chown=app:app {{ dockerfile.stages.build.extra_files|join(" ") }} ./
{% endif %}
{% for directory in dockerfile.stages.build.extra_directories %}
COPY --chown=app:app {{ directory }} {{ directory }}
{% endfor %}
docker-compose.yaml.twig
========================
.. code-block:: twig
:linenos:
services:
{% if "web" in dockerCompose.services %}
web:
<<: [*default-proxy, *default-app]
build:
context: .
target: web
depends_on:
- php
profiles: [web]
{% endif %}
phpstan.neon.dist.twig
======================
.. code-block:: twig
:linenos:
parameters:
level: {{ php.phpstan.level }}
excludePaths:
- *Test.php
- *TestBase.php
paths:
{% for path in php.phpstan.paths -%}
- {{ path }}
{%- endfor %}
{% if php.phpstan.baseline %}
includes:
- phpstan-baseline.neon
{% endif %}
phpunit.xml.dist.twig
=====================
.. code-block:: twig
:linenos:
<phpunit
beStrictAboutChangesToGlobalState="true"
beStrictAboutOutputDuringTests="false"
beStrictAboutTestsThatDoNotTestAnything="true"
bootstrap="{{ drupal.docroot }}/core/tests/bootstrap.php"
cacheResult="false"
colors="true"
failOnWarning="true"
printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter"
>
phpunit.xml.dist.twig
=====================
.. code-block:: twig
:linenos:
<testsuites>
<testsuite name="functional">
<directory>./{{ drupal.docroot }}/modules/custom/**/tests/**/Functional</directory>
</testsuite>
<testsuite name="kernel">
<directory>./{{ drupal.docroot }}/modules/custom/**/tests/**/Kernel</directory>
</testsuite>
<testsuite name="unit">
<directory>./{{ drupal.docroot }}/modules/custom/**/tests/**/Unit</directory>
</testsuite>
</testsuites>

View file

@ -0,0 +1,29 @@
.. footer:: @opdavies
Building "Build Configs"
########################
.. class:: titleslideinfo
Oliver Davies (@opdavies)
|
.. class:: titleslideinfo
https://opdavi.es/bco
.. include:: ./sections/intro.rst
.. include:: ./sections/example.rst
.. include:: ./sections/customisation.rst
.. include:: ./sections/templates.rst
.. raw:: pdf
PageBreak titlePage
.. class:: centredtitle
Demo
.. include:: ./sections/conclusion.rst

View file

@ -0,0 +1,4 @@
Building and presenting slide decks with rst2pdf
################################################
https://www.oliverdavies.uk/talks/building-presenting-slide-decks-rst2pdf

View file

@ -0,0 +1,12 @@
rst2pdf slides.rst
rst2pdf slides.rst --break-level 1 --stylesheets main
rst2pdf slides.rst \
--output slides.pdf \
--stylesheets main \
--break-level 1 \
--fit-background-mode scale \
--extension-module preprocess

View file

@ -0,0 +1,4 @@
.. code-block:: javascript
:include: code/additional-config-options.txt
:hl_lines: 2 3 4
:linenos:

View file

@ -0,0 +1 @@
.. include:: sections/intro.rst

View file

@ -0,0 +1,3 @@
.. raw:: pdf
PageBreak standardPage

View file

@ -0,0 +1,6 @@
pageTemplates:
standardPage:
frames: []
[3%, 3%, 92%, 92%]
showFooter: true
showHeader: false

View file

@ -0,0 +1,29 @@
linkColor: #24608a
styles:
normal:
fontSize: 24
leading: 32
textColor: #383745
bodytext:
alignment: TA_LEFT
heading:
fontSize: 20
spaceAfter: 16
textColor: #24608a
title:
fontSize: 300%
parent: heading
textColor: white
bullet-list:
commands: []
[LEFTPADDING, [0, 0], [1, -1], 10]
[RIGHTPADDING, [0, 0], [1, -1], 0]
[VALIGN, [0, 0], [-1, -1], TOP]
colWidths: ["20", null]
textColor: #aaaaaa

View file

@ -0,0 +1,14 @@
Building and presenting slide decks with rst2pdf
################################################
.. class:: titleslideinfo
Oliver Davies (@opdavies)
What is rst2pdf?
================
* "Use a text editor. Make a PDF."
* reStructuredText to PDF
* Each slide is a page

View file

@ -0,0 +1,14 @@
.. image:: images/editing.png
:width: 20cm
.. code-block:: php
:startinline: true
:linenos:
echo 'Hello world!';
.. raw:: pdf
TextAnnotation "This is a speaker note."

View file

@ -0,0 +1,8 @@
nodemon --ext rst,style,txt --exec "
rst2pdf slides.rst \
--output slides.pdf \
--stylesheets main \
--break-level 1 \
--fit-background-mode scale \
--extension-module preprocess
"

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View file

@ -0,0 +1,169 @@
.. footer:: @opdavies
Building and presenting slide decks with rst2pdf
################################################
|
.. class:: titleslideinfo
Oliver Davies (@opdavies)
.. raw:: pdf
TextAnnotation "Gave my first talk in 2012."
TextAnnotation "A talk about a tool (rst2pdf) that I've been using for the last couple of talks."
.. page:: standardPage
What have I used before?
========================
* **UI based:** Keynote, Google Slides, slides.com
* **HTML/JavaScript:** reveal.js
* **Markdown:** Deckset, Marp, reveal-md
What is rst2pdf?
================
* "Use a text editor. Make a PDF."
* reStructuredText to PDF
* Each slide is a page
* Page templates for layouts
* Not just for slide decks
* Table of contents, page numbers, headers, footers
.. raw:: pdf
TextAnnotation "Use the tools you're familiar with."
TextAnnotation "Similar to Markdown."
TextAnnotation "Primarily used for technical documentation within the Python community."
TextAnnotation "Now maintained by PHPers Rob Allen and Lorna Jane Mitchell."
TextAnnotation "Breaks at titles automatically, or you can add manual page breaks."
Advantages
==========
* Easy to start a new presentation, or update an existing one
* Version controllable
* Portable
* Content is searchable
* Easy to re-use content and/or styling
* Slides uploaded to SpeakerDeck straight away
.. page:: imagePage
.. image:: images/editing.png
:width: 23cm
.. page:: standardPage
Useful reStructuredText
=======================
.. code-block:: rst
:include: code/useful-rst-1.txt
:linenos:
Useful reStructuredText
=======================
.. code-block:: rst
:include: code/useful-rst-2.txt
:linenos:
Page Templates
==============
main.style:
.. code-block:: yaml
:include: code/page-templates-style.txt
slides.rst:
.. code-block:: rst
:include: code/page-templates-rst.txt
Keeping things organised
========================
Split slides into different sections:
.. code-block:: rst
:include: code/includes-sections.txt
|
Including code snippets from separate files:
.. code-block:: rst
:include: code/includes-code.txt
.. raw:: pdf
TextAnnotation "Includes!"
Styling
=======
.. code-block:: yaml
:include: code/styling.txt
:linenos:
Building
========
.. code-block::
:include: code/building.txt
Watching
========
Re-compiling when something changes.
|
.. code-block:: bash
:include: code/watching.txt
Presenting
==========
``pdfpc`` - PDF presenter console
|
.. code-block::
pdfpc slides.pdf
.. page:: imagePage
.. image:: images/pdfpc-1.png
:width: 23cm
.. raw:: pdf
PageBreak
.. image:: images/pdfpc-2.png
:width: 23cm
.. page:: standardPage
Thanks!
=======
References:
* https://rst2pdf.org
* https://github.com/rst2pdf/rst2pdf
* https://github.com/opdavies/talks
* https://oliverdavies.link/lorna-rst2pdf-talk
|
Me:
* https://www.oliverdavies.uk

View file

@ -1,18 +1,10 @@
/.phpunit.result.cache
/output_*/ /output_*/
/vendor/
/.phpunit.cache
/.phpunit.result.cache
# Nix
/.direnv/ /.direnv/
/source/build/* # Composer
!/source/build/.keep /vendor/
# Devenv
.devenv*
devenv.local.nix
# direnv
.direnv
# pre-commit
.pre-commit-config.yaml

View file

@ -1,7 +1,7 @@
sculpin_content_types: sculpin_content_types:
speakers: # speakers:
permalink: /speakers/:basename/ # permalink: /speakers/:basename/
talks: # talks:
permalink: /talks/:basename/ # permalink: /talks/:basename/
posts: posts:
enabled: false enabled: false

View file

@ -1,2 +1,2 @@
name: 'PHP Thames Valley' name: 'My New Sculpin Site'
locale: en locale: en

View file

@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
export PATH="$PATH:./vendor/bin"
sculpin generate "$@"

View file

@ -0,0 +1,3 @@
---
name: demo
template: php-sculpin

View file

@ -0,0 +1,5 @@
#!/usr/bin/env bash
set -euo pipefail
rm -rfv output_* vendor

View file

@ -1,22 +1,26 @@
{ {
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
outputs = outputs = inputs:
{ nixpkgs, ... }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; }; pkgs = import inputs.nixpkgs { inherit system; };
in in
{ {
devShells.${system}.default = devShells.${system}.default =
with pkgs; with pkgs;
mkShell { mkShell {
buildInputs = [ buildInputs = [
php83 nodePackages.browser-sync
(php83.buildEnv {
extraConfig = ''
error_reporting = E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED
'';
})
php83Packages.composer php83Packages.composer
]; ];
}; };
formatters.${system} = pkgs.nixfmt-rfc-style;
}; };
} }

View file

@ -2,18 +2,4 @@
{% block content_wrapper %} {% block content_wrapper %}
<h1>{{ page.name }}</h1> <h1>{{ page.name }}</h1>
<img style="height: 50px; width: 50px;" src="{{ page.imageUrl }}"/>
{% block content %}{% endblock %}
<hr>
{% for talk in data.talks if talk.speakers.0 == page.name %}
<li>
<a href="{{ talk.url }}">
{{ talk.title }}
</a>
</li>
{% endfor %}
{% endblock %} {% endblock %}

View file

@ -2,10 +2,4 @@
{% block content_wrapper %} {% block content_wrapper %}
<h1>{{ page.title }}</h1> <h1>{{ page.title }}</h1>
{{ page.date|date('jS F Y') }}
{% for speaker in page.speakers %}
{{ speaker }}
{% endfor %}
{% endblock %} {% endblock %}

View file

@ -1,6 +1,4 @@
--- ---
name: Dan Leech name: Dan Leech
imageUrl: /images/highres_257208698.jpeg imageUrl: /images/highres_257208698.jpeg
layout: speaker
use: [talks]
--- ---

View file

@ -1,15 +1,4 @@
--- ---
layout: base layout: base
title: Hello, PHP Thames Valley! title: Hello, World!
use: [talks]
--- ---
<ul>
{% for talk in data.talks %}
<li>
<a href="{{ talk.url }}">
{{ talk.title }}
</a>
</li>
{% endfor %}
</ul>

View file

@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail
export PATH="$PATH:./vendor/bin"
sculpin generate --server --watch "$@"

View file

@ -0,0 +1,4 @@
Building static websites with Sculpin
#####################################
https://www.oliverdavies.uk/talks/building-static-websites-sculpin

View file

@ -0,0 +1,5 @@
---
name: oliverdavies.uk
menu_links:
- { title: Home, href: / }
- { title: About, href: /about }

View file

@ -0,0 +1,10 @@
---
title: My Daily Email Archive
layout: default
use:
- daily_email
---
{% for email in data.daily_emails %}
<p>{{ email.title }}</p>
{% endfor %}

View file

@ -0,0 +1,12 @@
---
...
testimonials:
- { name: ..., role: ..., text: ..., url: ... }
- { name: ..., role: ..., text: ..., url: ... }
- { name: ..., role: ..., text: ..., url: ... }
---
{% for testimonial in page.testimonials %}
<h2>{{ testimonial.name }} - {{ testimonial.role }}</h2>
<p>{{ testimonial.text }}</p>
{% endfor %}

View file

@ -0,0 +1,5 @@
---
layout: post
title: New blog post
draft: yes
---

View file

@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<title>Hello!</title>
</head>
<body>
<p>Hello, World!</p>
</body>
</html>

View file

@ -0,0 +1,6 @@
---
layout: default
title: Hello!
---
Hello, World!

View file

@ -0,0 +1,11 @@
{# source/_layouts/base.html.twig #}
<!DOCTYPE html>
<html lang="{{ site.locale|default('en') }}">
<head>
<title>{{ site.name|default('Sculpin Skeleton') }}</title>
</head>
<body>
{% block body %}{% endblock %}
</body>
</html>

View file

@ -0,0 +1,7 @@
{# source/_layouts/page.html.twig #}
{% extends 'base' %}
{% block body %}
{% block content %}{% endblock %}
{% endblock %}

View file

@ -0,0 +1,13 @@
app/
config/
sculpin_kernel.yml
sculpin_site.yml
composer.json
composer.lock
output_dev/
output_prod/
source/
_includes/
_templates/
index.md
vendor/

View file

@ -0,0 +1,8 @@
{{ 'today' }}
{{ 'today'|date }}
{{ 'today'|date('Y') }}
{{ 'today'|date('Y') - 2007 }} # 18 (years of experience)

View file

@ -0,0 +1,24 @@
---
title: Building Static Websites with Sculpin
events:
- name: PHP Berkshire
date: 2024-08-28
location: Reading, UK
url: https://www.meetup.com/php-berkshire/events/301850284
- name: BrumPHP
date: 2024-05-23
location: Birmingham, UK
url: https://www.eventbrite.com/e/brumphp-23rd-may-2024-tickets-803037766577
---
// end yaml
// start twig
{% set talkCount = 0 %}
{% for talk in data.talks %}
{% for event in talk.events if 'today'|date('U') >= event.date|date('U') %}
{% set talkCount = talkCount + 1 %}
{% endfor %}
{% endfor %}
<p>I have given {{ talkCount }} talks.</p>

View file

@ -0,0 +1,15 @@
{% set talks = site.talks|filter(talk => talk.speaker == page.name) %}
{% if talks is not empty %}
<section>
<h2>Talks by {{ page.name }}</h2>
<div>
<ul>
{% for talk in talks %}
<li><a href="#0">{{ talk.title }}</a></li>
{% endfor %}
</ul>
</div>
</section>
{% endif %}

View file

@ -0,0 +1,8 @@
- Adding a new page (`/talks`)
- Adding a new menu link
- Adding a new content type (talks)
- Add a new talk
- Show how to use page-level variables, adding events to a talk
- Adding the talks page to the menu
- Active menu link styling?
- Generating a production version of the site

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

View file

@ -0,0 +1,723 @@
Building static websites with Sculpin
#####################################
|
.. class:: titleslideinfo
Oliver Davies
.. raw:: pdf
PageBreak imagePage
.. image:: images/druplicon.png
:width: 10cm
.. raw:: pdf
PageBreak
TextAnnotation "I primarily work with Drupal and have been a Drupal developer since 2007/8."
TextAnnotation "Drupal, WordPress, etc need PHP and a database to run."
TextAnnotation "Difficult for new Developers."
TextAnnotation "Complex for personal projects."
TextAnnotation "Hosting can be expensive."
.. image:: images/sculpin.png
:width: 10cm
.. raw:: pdf
TextAnnotation "Sculpin - a static site generator written in PHP."
TextAnnotation "Not a Sculpin vs. x talk, but I'll make comparisons and comments based on my own experience."
PageBreak
What is a static website?
=========================
.. code::
.htaccess
assets/images/od-logo.jpg
bco/index.html
build/tailwind.css
call/index.html
daily/2024/03/18/automated-drupal-11-compatibility-fixes/index.html
drupal-upgrade/index.html
favicon.ico
index.html
podcast/19-sam-mortenson/index.html
pricing/index.html
talks/taking-flight-with-tailwind-css/index.html
talks/tdd-test-driven-drupal/index.html
.. raw:: pdf
TextAnnotation "Before I talk about static site generators, let's talk about static websites."
TextAnnotation "Some of the files from my website."
TextAnnotation "HTML, CSS, JS. No PHP or server-side code."
TextAnnotation "How I started building websites."
TextAnnotation "The things you usually have a CMS or framework generate."
What is Sculpin?
================
* Static site generator.
* Developed by Beau Simensen.
* Maintained by Kevin Boyd (beryllium).
* CLI tool.
* Built on Symfony components.
* Markdown + Twig = Static HTML.
.. raw:: pdf
TextAnnotation "Uses various Symfony components - Console, config, DI, Filesystem, Finder, HttpKernel, YAML."
TextAnnotation "Uses Twig - Symfony's templating language."
TextAnnotation ""
TextAnnotation "Transforms markdown files and Twig templates into static HTML websites, 'generates' a static website that can easily be deployed."
Why use a static site generator?
================================
- Rapid development.
- Templating.
- Security.
- Performance.
- Easy and cheap to host.
- Fun vs. work.
.. raw:: pdf
TextAnnotation "Leveraging templating features, such as conditionals, loops, partials and includes, template inheritance."
TextAnnotation "Static websites are fast and secure as they don't have a database and only need a simple hosting environment with a basic web server."
TextAnnotation "Works with a simple Apache, Nginx or Caddy server, or with services like Vercel and Netlify."
What do I use it for?
=====================
* My personal website.
* Some client websites.
* HTML prototypes and testing.
* Learning YAML and Twig (and some Symfony).
Installation
============
``composer require sculpin/sculpin``
|
``composer create-project sculpin/blog-skeleton my-blog``
|
``composer create-project opdavies/sculpin-skeleton my-site``
Using Sculpin
=============
* Configuration in ``app/config``
* Source files in ``source``.
* Templates in ``source/_templates`` or ``source/_layouts``.
* Includes in ``source/_includes`` or ``source/_partials``.
.. raw:: pdf
PageBreak
.. code-block::
:include: ./code/project-structure.txt
.. raw:: pdf
TextAnnotation "The file structure of a Sculpin project."
PageBreak
.. code-block:: bash
:include: ./code/project-structure.txt
:hl_lines: 5,6,13
.. raw:: pdf
TextAnnotation "PHP-based project."
PageBreak
.. code-block:: bash
:include: ./code/project-structure.txt
:hl_lines: 1,2,3,4
.. raw:: pdf
TextAnnotation "Configuration."
PageBreak
.. code-block:: shell
:include: ./code/project-structure.txt
:hl_lines: 9,10,11,12
.. raw:: pdf
TextAnnotation "Source files."
PageBreak
.. code-block:: bash
:include: ./code/project-structure.txt
:hl_lines: 7,8
.. raw:: pdf
TextAnnotation "Output directories with generated files."
Generate a site
===============
* ``vendor/bin/sculpin generate``
* ``--server``
* ``--watch``
* ``--env``
source/index.md
===============
.. code-block::
:include: code/index.md.txt
source/index.md
===============
.. code-block:: bash
:include: code/index.md.txt
:hl_lines: 1,2,3,4
source/index.md
===============
.. code-block:: bash
:include: code/index.md.txt
:hl_lines: 2
source/index.md
===============
.. code-block:: bash
:include: code/index.md.txt
:hl_lines: 3
source/index.md
===============
.. code-block:: bash
:include: code/index.md.txt
:hl_lines: 6
output_dev/index.html
=====================
.. code-block:: html
:include: ./code/index.html.txt
output_dev/index.html
=====================
.. code-block:: html
:include: ./code/index.html.txt
:hl_lines: 4
output_dev/index.html
=====================
.. code-block:: html
:include: ./code/index.html.txt
:hl_lines: 7
Configuration
=============
- Stored in ``app/config``
- ``sculpin_site.yml``
- ``sculpin_site_{env}.yml``
- Key-value pairs
|
.. code-block:: yaml
:include: code/configuration.txt
Using on pages
==============
.. code-block:: html
<!DOCTYPE html>
<html>
<head>
<title>{{ site.name }}</title>
</head>
</html>
YAML front matter
=================
.. code-block:: yaml
:include: ./code/front-matter1.txt
YAML front matter
=================
.. code-block:: yaml
:include: ./code/front-matter1.txt
:hl_lines: 2
YAML front matter
=================
.. code-block:: yaml
:include: ./code/front-matter1.txt
:hl_lines: 3
YAML front matter
=================
.. code-block:: yaml
:include: ./code/front-matter1.txt
:hl_lines: 4
.. raw:: pdf
TextAnnotation "Draft pages aren't generated when env=prod".
More front matter
=================
.. code-block:: yaml
:hl_lines: 5,6,7,8
---
layout: post
title: New blog post
draft: yes
tags:
- drupal
- php
- sculpin
---
Even more front matter
======================
.. code-block:: yaml
:hl_lines: 9,10
---
layout: post
title: New blog post
draft: yes
tags:
- drupal
- php
- sculpin
tweets: yes
foo: bar
---
Using on pages
==============
.. code-block:: twig
:include: ./code/front-matter-on-pages.txt
.. raw:: pdf
PageBreak
Using on pages
==============
.. code-block:: bash
:include: ./code/front-matter-on-pages.txt
:hl_lines: 3
.. raw:: pdf
PageBreak
Using on pages
==============
.. code-block:: bash
:include: ./code/front-matter-on-pages.txt
:hl_lines: 4,5,6
.. raw:: pdf
PageBreak
Using on pages
==============
.. code-block:: bash
:include: ./code/front-matter-on-pages.txt
:hl_lines: 9,12
.. raw:: pdf
PageBreak
Using on pages
==============
.. code-block:: bash
:include: ./code/front-matter-on-pages.txt
:hl_lines: 10
Using on pages
==============
.. code-block:: bash
:include: ./code/front-matter-on-pages.txt
:hl_lines: 11
.. raw:: pdf
TextAnnotation "`page.` instead of `site.`."
Layouts
=======
.. code-block:: twig
:include: ./code/layout-base.txt
Layouts
=======
.. code-block:: twig
:include: ./code/layout-base.txt
:hl_lines: 4,6
Layouts
=======
.. code-block:: twig
:include: ./code/layout-base.txt
:hl_lines: 9
Layouts
=======
.. code-block:: twig
:include: ./code/layout-page.txt
Layouts
=======
.. code-block:: twig
:include: ./code/layout-page.txt
:hl_lines: 3
Layouts
=======
.. code-block:: twig
:include: ./code/layout-page.txt
:hl_lines: 5,7
Layouts
=======
.. code-block:: twig
:include: ./code/layout-page.txt
:hl_lines: 6
Includes
========
.. code-block:: twig
{% include 'about-author' with {
avatar: site.avatar,
work: site.work,
} only %}
{% for link in links %}
{% include 'menu-link' with { link } only %}
{% endfor %}
Content types
=============
.. code-block:: yaml
# app/config/sculpin_kernel.yml
sculpin_content_types:
daily_emails:
permalink: daily/:slug_title/
.. raw:: pdf
TextAnnotation "A way to segregate content into different types - e.g. pages, talks, daily emails. Something that was familiar from working with Drupal."
Accessing custom content types
==============================
.. code-block:: yaml
:include: ./code/content-types.txt
Accessing custom content types
==============================
.. code-block:: yaml
:include: ./code/content-types.txt
:hl_lines: 4,5
Accessing custom content types
==============================
.. code-block:: yaml
:include: ./code/content-types.txt
:hl_lines: 8,9,10
.. raw:: pdf
PageBreak titlePage
.. class:: centredtitle
Making things more dynamic
.. raw:: pdf
PageBreak standardPage
.. code-block:: twig
:include: ./code/twig-1.txt
:hl_lines: 1
.. raw:: pdf
TextAnnotation "'today' as a string."
PageBreak
.. code-block:: twig
:include: ./code/twig-1.txt
:hl_lines: 3
.. raw:: pdf
TextAnnotation "Current date as a string."
PageBreak
.. code-block:: twig
:include: ./code/twig-1.txt
:hl_lines: 5
.. raw:: pdf
TextAnnotation "Current year."
PageBreak
.. code-block:: twig
:include: ./code/twig-1.txt
:hl_lines: 7
.. raw:: pdf
PageBreak
.. code-block:: twig
---
title: Daily Email Archive
use: [daily_emails]
---
This is an archive of the {{ data.daily_emails|length }}
email messages I have sent to my daily email list
since the 12th of August, 2022.
|
|
This is an archive of the 775 email messages I have sent to my daily email list since the 12th of August, 2022.
.. raw:: pdf
TextAnnotation "Get the emails via their content type and use the `length` filter to get the number of emails."
PageBreak
.. code-block:: php
:include: ./code/twig-2.txt
:end-before: // end yaml
.. raw:: pdf
PageBreak
.. code-block:: twig
:include: ./code/twig-2.txt
:start-after: // start twig
.. raw:: pdf
PageBreak
.. code-block:: twig
:include: ./code/twig-2.txt
:start-after: // start twig
:hl_lines: 1
.. raw:: pdf
PageBreak
.. code-block:: javascript
:include: ./code/twig-2.txt
:hl_lines: 3,7
:start-after: // start twig
.. raw:: pdf
TextAnnotation "Get each talk from the talk content type."
PageBreak
.. code-block:: twig
:include: ./code/twig-2.txt
:start-after: // start twig
:hl_lines: 4,6
.. raw:: pdf
PageBreak
.. code-block:: twig
:include: ./code/twig-2.txt
:start-after: // start twig
:hl_lines: 5
.. raw:: pdf
PageBreak
.. code-block:: twig
:include: ./code/twig-2.txt
:start-after: // start twig
:hl_lines: 9
.. raw:: pdf
PageBreak
.. code-block:: javascript
:include: ./code/twig-3.txt
.. raw:: pdf
PageBreak
.. code-block:: javascript
:include: ./code/twig-3.txt
:hl_lines: 1,3,15
.. raw:: pdf
PageBreak
.. code-block:: javascript
:include: ./code/twig-3.txt
:hl_lines: 5
.. raw:: pdf
PageBreak
.. code-block:: javascript
:include: ./code/twig-3.txt
:hl_lines: 9,11
.. raw:: pdf
PageBreak
.. code-block:: javascript
:include: ./code/twig-3.txt
:hl_lines: 10
.. raw:: pdf
PageBreak titlePage
.. class:: centredtitle
Demo
.. raw:: pdf
PageBreak standardPage
Extending Sculpin
=================
.. code-block:: yaml
# app/config/sculpin_kernel.yml
...
services:
App\TwigExtension\TalkExtension:
tags:
- { name: twig.extension }
.. raw:: pdf
PageBreak imagePage
.. image:: images/packagist.png
:width: 22cm
.. raw:: pdf
PageBreak standardPage
.. code-block:: php
:startinline: true
// app/SculpinKernel.php
use Opdavies\Sculpin\Bundle\TwigMarkdownBundle\SculpinTwigMarkdownBundle;
use Sculpin\Bundle\SculpinBundle\HttpKernel\AbstractKernel;
final class SculpinKernel extends AbstractKernel
{
protected function getAdditionalSculpinBundles(): array
{
return [
SculpinTwigMarkdownBundle::class,
];
}
}
Thanks!
=======
References:
|
* https://sculpin.io
* https://github.com/sculpin/sculpin
* https://code.oliverdavies.uk/opdavies/sculpin-demo
* https://code.oliverdavies.uk/opdavies/oliverdavies.uk
|
Me:
* https://www.oliverdavies.uk
* ``@opdavies@mastodon.social``

View file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

View file

@ -0,0 +1,212 @@
.. footer::
@opdavies
Communities and Contribution
############################
|
.. class:: titleslideinfo
Oliver Davies (@opdavies)
.. raw:: pdf
PageBreak standardPage
About Me
========
* Self-taught software developer (started in 2007).
* Full Stack Software Consultant.
* Web Development Manager at Transport for Wales.
* PHP and Drupal specialist.
* Open-source software maintainer and contributor.
* Meetup and conference organiser.
* School of Code mentor (BC14 and BC15).
.. raw:: pdf
TextAnnotation "I'm a self-saught Software Developer. I started learning in 2007 and went full-time in 2010."
TextAnnotation "Started at Transport for Wales as Lead Software Developer and I'm currently the Web Development Manager."
TextAnnotation "T-shaped Developer."
TextAnnotation "Used to organise Drupal and PHP meetups, DrupalCamp Bristol and I've been on the speaker selection committee for DrupalCon."
How I Started
=============
* Built a website for a Tae Kwon-Do school (HTML and CSS) in 2007.
* Learning from online resources like blogs, forums, YouTube, Lynda.com and Total Training.
* Learned more as the project developed, including PHP.
* Introduced to Drupal in an answer to a forum post.
* Started some freelance work and went full-time in 2010.
.. raw:: pdf
TextAnnotation "This became my playground project."
TextAnnotation "Started with HTML and CSS to build the first version and learned more as I needed to, e.g. adding a dynamic news section, instead of trying to learn everything upfront."
TextAnnotation ""
TextAnnotation "Getting time in the saddle and gaining experience."
PageBreak imagePage
.. image:: images/forum-post.png
:width: 20cm
.. image:: images/timmillwood-ono.png
:width: 22cm
.. raw:: pdf
TextAnnotation "A few years later, I took an opportunity to maintain a popular Drupal module."
.. image:: images/override-node-options-usage.png
:width: 26cm
.. raw:: pdf
TextAnnotation "Used on just over 9,000 websites in April 2012."
TextAnnotation "Currently used on 36,000 active Drupal websites."
My first talk
=============
.. image:: images/unified-diff.png
:width: 22cm
.. raw:: pdf
TextAnnotation "September 2012."
TextAnnotation "I've since given 92 talks at meetups and conferences, including this one."
PageBreak
Writing for Linux Journal
=========================
.. image:: images/linux-journal2.png
:height: 12cm
.. raw:: pdf
TextAnnotation "September 2012 as well?"
TextAnnotation "Writing an article for Linux Journal as part of their special Drupal edition."
Attending DrupalCon
===================
.. image:: images/drupalcon-prague.jpeg
:width: 18cm
.. raw:: pdf
TextAnnotation "DrupalCon Prague 2013."
TextAnnotation "1,800 attendees. ~2,000 for Europe and ~3,000 for U.S."
TextAnnotation "Spoken at DrupalCon in 2019 and 2020."
TextAnnotation "Worked for the Drupal Association as a Developer on Drupal.org."
Mentoring at DrupalCon
======================
.. image:: images/drupalcon-barcelona.jpeg
:width: 18cm
.. raw:: pdf
TextAnnotation "Mentoring new contributors at contribution days at DrupalCons."
TextAnnotation ""
TextAnnotation "I was interested in contributing but was asked to join as a mentor."
TextAnnotation "3-6 people per table, working on their first contributions to Drupal core."
Mentoring at DrupalCon
======================
.. image:: images/drupalcon-los-angeles.jpeg
:width: 22cm
.. raw:: pdf
TextAnnotation "Prague, Amsterdam, Los Angeles, Barcelona, Vienna, Amsterdam."
PageBreak imagePage
.. image:: images/gabor.png
:width: 24cm
.. raw:: pdf
PageBreak standardPage
Contributing to Drupal core
===========================
.. image:: images/drupal-core1.png
:width: 22cm
.. image:: images/drupal-core2.png
:width: 22cm
.. raw:: pdf
TextAnnotation "Later, I got my own commits to Drupal core."
TextAnnotation "First was a documentation fix, the second was adding a new function."
Communities
===========
* Drupal and PHP
* JavaScript
* Linux and DevOps
* Tailwind CSS
* Neovim
* Accessibility and security
* School of Code (students and mentors)
.. raw:: pdf
TextAnnotation "I found out about School of Code at a meetup!"
TextAnnotation "Communities exist online and offline with mailing lists, forums, Slack and Discord groups, in-person and remote meetups and conferences."
TextAnnotation "Communities and sub-communities e.g. PHP/Drupal, Linux/Nix."
TextAnnotation "Mini-communities such as rst2pdf."
Why?
====
* Paying it forward.
* Giving something back.
* Helping me and others learn.
* Developing a personal brand.
* Building and growing a network.
* Improving opportunities.
.. raw:: pdf
TextAnnotation "If I make money with free software, I can at least contribute back."
TextAnnotation "Helping others helps me, and helping others to learn helps me learn."
TextAnnotation "Developing 'soft/interpersonal skills'."
TextAnnotation "Better career and work opportunities."
Summary
=======
* Software is not just about code.
* Communities are great for getting experience, learning and networking.
* Open-source, public speaking, blogging, mentoring look good on a CV.
Thanks!
=======
References:
* https://www.oliverdavies.uk/talks
* https://www.drupal.org
* https://meetup.com
* https://www.phpconference.co.uk
|
Me:
* https://www.oliverdavies.uk
* @opdavies

View file

@ -0,0 +1,23 @@
# Blue Conf 2019
The code for my Blue Conf 2019 talk - [Decoupling Drupal with Vue.js](https://www.oliverdavies.uk/talks/decoupling-drupal-vuejs).
## Installation
1. Clone the repository
```
git clone https://github.com/opdavies/blue-conf-2019
cd blue-conf-2019
```
1. Follow the instructions for [setting up the Drupal back-end][drupal].
1. Follow the instructions for [setting up the Vue.js front-end][vuejs].
## Author
[Oliver Davies](https://www.oliverdavies.uk)
[drupal]: /docs/setting-up-drupal.md
[vuejs]: /docs/setting-up-vue-js.md

View file

@ -0,0 +1,22 @@
# Setting up the Back-End Drupal Application
The Drupal back-end for my Blue Conf 2019 talk - [Decoupling Drupal with Vue.js](https://www.oliverdavies.uk/talks/decoupling-drupal-vuejs). This was used alongside the Vue.js front-end application for viewing and submitting fictional talk proposals that were stored in Drupal.
## Prerequisites
* [Docksal](https://docksal.io)
* [VirtualBox](https://www.virtualbox.org/wiki/Downloads) (can be changed to use Docker natively)
## Setup instructions
1. Run `fin init` to initialise the project, including installing all of the Composer dependencies, installing Drupal and importing the original configuration and creating some test content.
```bash
cd drupal
fin init
```
1. Visit `http://blueconf.docksal` to view the Drupal website, or run `fin drush status` to ensure that everything is running.
1. Run `fin drush uli` to generate a one-time login link in order to access the site.

View file

@ -0,0 +1,28 @@
# Setting up the Front-End Vue.js Application
The Vue.js front-end for my Blue Conf 2019 talk - [Decoupling Drupal with Vue.js](https://www.oliverdavies.uk/talks/decoupling-drupal-vuejs). It is a [Vue CLI](https://cli.vuejs.org) application, and uses [Tailwind CSS](https://tailwindcss.com) for styling.
## Prerequisites
* [npm](https://docs.npmjs.com/cli/npm)
* [yarn](https://yarnpkg.com) (optional)
## Setup instructions
1. Install the npm dependencies using either `npm` or `yarn`.
```bash
cd vuejs
# Using npm
npm install
# Using yarn
yarn
```
1. Change the URL to the Drupal back-end if needed in `.env`.
1. Use `yarn serve` to start a local web server.
1. Visit the URL (usually `http://localhost:8080`) to view the front-end application.

View file

@ -0,0 +1 @@
/docksal-local.*

View file

@ -0,0 +1,37 @@
#!/usr/bin/env bash
#: exec_target = cli
## Creates a phpunit.xml file and runs PHPUnit tests in Drupal 8
##
## Usage: fin phpunit <args>
##
## This first ensures that a `core/phpunit.xml` file exists, either by copying a
## stub from `.docksal/drupal/core/phpunit.xml` if that exists, or copying and
## renaming `core/phpunit.xml.dist`.
##
## If `core/phpunit.xml` exists, the phpunit command with then be run, appending
## any optional arguments such as the directory path (run `fin phpunit -h`) to
## see a full list of options.
DOCROOT_PATH="${PROJECT_ROOT}/${DOCROOT}"
DRUPAL_CORE_PATH="${DOCROOT_PATH}/core"
run_tests() {
${PROJECT_ROOT}/vendor/bin/phpunit -c ${DRUPAL_CORE_PATH} "$@"
}
if [ ! -e ${DRUPAL_CORE_PATH}/phpunit.xml ]; then
if [ -e "${PROJECT_ROOT}/.docksal/drupal/core/phpunit.xml" ]; then
echo "Copying ${PROJECT_ROOT}/.docksal/drupal/core/phpunit.xml to ${DRUPAL_CORE_PATH}/phpunit.xml"
cp "${PROJECT_ROOT}/.docksal/drupal/core/phpunit.xml" ${DRUPAL_CORE_PATH}/phpunit.xml
run_tests "$@"
else
echo "Copying phpunit.xml.dist to phpunit.xml."
echo "Please edit it's values as needed and re-run 'fin phpunit'."
cp ${DRUPAL_CORE_PATH}/phpunit.xml.dist ${DRUPAL_CORE_PATH}/phpunit.xml
exit 1;
fi
else
run_tests "$@"
fi

View file

@ -0,0 +1,67 @@
#!/usr/bin/env bash
## Opens SequelPro
##
## Usage: fin sequelpro
# Abort if anything fails
set -e
container_port=$(docker ps --all --filter 'label=com.docker.compose.service=db' --filter "label=com.docker.compose.project=${COMPOSE_PROJECT_NAME}" --format '{{.Ports}}' | sed 's/.*0.0.0.0://g'|sed 's/->.*//g')
HOST=${VIRTUAL_HOST}
DB=${MYSQL_DATABASE:-default}
USER=${MYSQL_USER:-user}
PASS=${MYSQL_PASSWORD:-user}
NAME=${COMPOSE_PROJECT_NAME}
PORT=${PORT:-$container_port}
FILENAME=/tmp/docksal-sequelpro-${RANDOM}.spf
cat <<EOT >> $FILENAME
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ContentFilters</key>
<dict/>
<key>auto_connect</key>
<true/>
<key>data</key>
<dict>
<key>connection</key>
<dict>
<key>database</key>
<string>${DB}</string>
<key>host</key>
<string>${HOST}</string>
<key>name</key>
<string>${NAME}</string>
<key>user</key>
<string>${USER}</string>
<key>password</key>
<string>${PASS}</string>
<key>port</key>
<integer>${PORT}</integer>
<key>rdbms_type</key>
<string>mysql</string>
</dict>
<key>session</key>
<dict/>
</dict>
<key>encrypted</key>
<false/>
<key>format</key>
<string>connection</string>
<key>queryFavorites</key>
<array/>
<key>queryHistory</key>
<array/>
<key>rdbms_type</key>
<string>mysql</string>
<key>version</key>
<integer>1</integer>
</dict>
</plist>
EOT
open $FILENAME

View file

@ -0,0 +1,49 @@
#!/usr/bin/env bash
die ()
{
echo "$1"
exit 1
}
## Generate one time user login link. Add -s to use https in url.
## Usage fin uli @drushalias -s
## The drush alias and -s flags are optional.
cd "$PROJECT_ROOT/$DOCROOT" || die "Could not change dir to $PROJECT_ROOT/$DOCROOT"
https=0 # Default to not use https
# Check the first two options / arguments given on the the command line for
# what looks like a Drush site alias or the -s option to use https in the url.
count=2
while [ $count -ne 0 ]; do
if [[ $1 == @* ]]; then
drushalias=$1
shift 1
elif [[ $1 == "-s" ]]; then
https=1
shift 1
fi
count=$[$count-1]
done
if [ $https -eq 0 ]; then
uli=$(fin drush $drushalias uli "$@" 2>&1 | sed "s/default/$VIRTUAL_HOST/")
elif [ $https -eq 1 ]; then
uli=$(fin drush $drushalias uli "$@" 2>&1 | sed "s/default/$VIRTUAL_HOST/" | sed "s/http\:/https:/")
else
exit 2
fi
echo "$uli"
[[ "$uli" == *"Error"* ]] && exit 1
# Mac OSX copy uli to clipboard with pbcopy
( which pbcopy >/dev/null 2>&1 ) &&
echo "$uli" | pbcopy &&
echo "[+] Copied to clipboard"
# Linux copy uli to both the selection buffer and clipboard with xclip.
( which xclip >/dev/null 2>&1 ) &&
echo "$uli" | xclip -i -sel c -f |xclip -i -sel p &&
echo "[+] Copied to clipboard and selection buffer"

View file

@ -0,0 +1,37 @@
#!/usr/bin/env bash
## Initialize stack and site (full reset)
##
## Usage: fin init
# Abort if anything fails
set -e
#-------------------------- Helper functions --------------------------------
# Console colors
red='\033[0;31m'
green='\033[0;32m'
green_bg='\033[1;97;42m'
yellow='\033[1;33m'
NC='\033[0m'
echo-red () { echo -e "${red}$1${NC}"; }
echo-green () { echo -e "${green}$1${NC}"; }
echo-green-bg () { echo -e "${green_bg}$1${NC}"; }
echo-yellow () { echo -e "${yellow}$1${NC}"; }
#-------------------------- Execution --------------------------------
# Stack initialization
echo -e "${green_bg} Step 1 ${NC}${green} Initializing stack...${NC}"
fin project reset -f
# Site initialization
echo -e "${green_bg} Step 2 ${NC}${green} Initializing site...${NC}"
# This runs inside cli using http://docs.docksal.io/en/v1.4.0/fin/custom-commands/#executing-commands-inside-cli
fin init-site
echo -e "${green_bg} DONE! ${NC}${green} Completed all initialization steps.${NC}"
#-------------------------- END: Execution --------------------------------

View file

@ -0,0 +1,85 @@
#!/usr/bin/env bash
#: exec_target = cli
## Initialize/reinstall site
##
## Usage: fin init-site
# Abort if anything fails
set -e
#-------------------------- Helper functions --------------------------------
copy_settings_file() {
local source="$1"
local dest="$2"
echo "Copying ${dest}..."
cp $source $dest
}
composer_install() {
echo "Installing Composer dependencies..."
composer install
}
#-------------------------- END: Helper functions --------------------------------
#-------------------------- END: Functions --------------------------------
init_settings() {
copy_settings_file ../files/settings.php ../../web/sites/default
}
site_install() {
composer_install
echo "Installing Drupal..."
drush site:install -y
}
import_config() {
drush config:set -y system.site uuid de7ba5dc-5795-4cb5-9d38-1edcc27be491
drush config:delete -y shortcut.set.default uuid
echo "Importing configuration..."
drush config:import -y --source=../config/sync
}
import_content() {
echo "Importing speakers from CSV..."
drush php:eval '\Drupal::service("Drupal\dtc_import\Service\Importer\CsvSpeakerImporter")->import()'
echo "Importing sessions from CSV..."
drush php:eval '\Drupal::service("Drupal\dtc_import\Service\Importer\CsvSessionImporter")->import()'
}
setup_users() {
echo "Creating the API user..."
drush user:create api --password=api
drush user:role:add api_user api
echo "Resetting uuid for the admin user..."
drush sql:query "UPDATE users SET uuid = '11dad4c2-baa8-4fb2-97c6-12e1ce925806' WHERE uid = 1"
echo "Resetting uuid for the API user..."
drush sql:query "UPDATE users SET uuid = '63936126-87cd-4166-9cb4-63b61a210632' WHERE uid = 7"
echo "Rebuilding cache..."
drush cache:rebuild
}
#-------------------------- END: Functions --------------------------------
#-------------------------- Execution --------------------------------
site_install
import_config
import_content
setup_users
echo -e "Open ${yellow}http://${VIRTUAL_HOST}${NC} in your browser to verify the setup."
#-------------------------- END: Execution --------------------------------

View file

@ -0,0 +1,6 @@
COMPOSE_PROJECT_NAME="blueconf"
DOCKSAL_STACK=default
DOCROOT="web"
MYSQL_DATABASE=default
MYSQL_PASSWORD=user
MYSQL_USER=user

View file

@ -0,0 +1,8 @@
version: "2.1"
services:
cli:
environment:
- MYSQL_DATABASE
- MYSQL_PASSWORD
- MYSQL_USER

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,17 @@
# Drupal editor configuration normalization
# @see http://editorconfig.org/
# This is the top-most .editorconfig file; do not search in parent directories.
root = true
# All files.
[*]
end_of_line = LF
indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[composer.{json,lock}]
indent_size = 4

View file

@ -0,0 +1,27 @@
#
# Copy and rename this file to .env at root of this project.
#
# A common use case is to supply database creds via the environment. Edit settings.php
# like so:
#
# $databases['default']['default'] = [
# 'database' => getenv('MYSQL_DATABASE'),
# 'driver' => 'mysql',
# 'host' => getenv('MYSQL_HOSTNAME'),
# 'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
# 'password' => getenv('MYSQL_PASSWORD'),
# 'port' => getenv('MYSQL_PORT'),
# 'prefix' => '',
# 'username' => getenv('MYSQL_USER'),
# ];
#
# Uncomment and populate as needed.
# MYSQL_DATABASE=
# MYSQL_HOSTNAME=
# MYSQL_PASSWORD=
# MYSQL_PORT=
# MYSQL_USER=
# Another common use case is to set Drush's --uri via environment.
# DRUSH_OPTIONS_URI=http://example.com

View file

@ -0,0 +1,61 @@
# Drupal git normalization
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
# @see https://www.drupal.org/node/1542048
# Normally these settings would be done with macro attributes for improved
# readability and easier maintenance. However macros can only be defined at the
# repository root directory. Drupal avoids making any assumptions about where it
# is installed.
# Define text file attributes.
# - Treat them as text.
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
# - Detect whitespace errors.
# - Exposed by default in `git diff --color` on the CLI.
# - Validate with `git diff --check`.
# - Deny applying with `git apply --whitespace=error-all`.
# - Fix automatically with `git apply --whitespace=fix`.
*.config text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.dist text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.engine text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
*.inc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
*.install text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.lock text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.map text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.md text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.module text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
*.php text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
*.po text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.profile text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
*.script text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.sh text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
*.sql text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.svg text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.theme text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=php
*.twig text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.txt text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.xml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.yml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
# Define binary file attributes.
# - Do not treat them as text.
# - Include binary diff in patches instead of "binary files differ."
*.eot -text diff
*.exe -text diff
*.gif -text diff
*.gz -text diff
*.ico -text diff
*.jpeg -text diff
*.jpg -text diff
*.otf -text diff
*.phar -text diff
*.png -text diff
*.svgz -text diff
*.ttf -text diff
*.woff -text diff
*.woff2 -text diff

View file

@ -0,0 +1,42 @@
# Ignore directories generated by Composer
/drush/contrib/
/vendor/
/web/core/
/web/modules/contrib/
/web/themes/contrib/
/web/profiles/contrib/
/web/libraries/
# Ignore sensitive information
/web/sites/*/settings.php
/web/sites/*/settings.local.php
# Ignore Drupal's file directory
/web/sites/*/files/
# Ignore SimpleTest multi-site environment.
/web/sites/simpletest
# Ignore files generated by PhpStorm
/.idea/
# Ignore .env files as they are personal
/.env
# Ignore Drupal Scaffold files
/web/.csslintrc
/web/.editorconfig
/web/.eslintignore
/web/.eslintrc.json
/web/.gitattributes
/web/.ht.router.php
/web/.htaccess
/web/index.php
/web/robots.txt
/web/sites/default/default.settings.php
/web/sites/default/default.services.yml
/web/sites/development.services.yml
/web/sites/example.settings.local.php
/web/sites/example.sites.php
/web/update.php
/web/web.config

View file

@ -0,0 +1,33 @@
test:
image: php:7.2
cache:
paths:
- vendor/
before_script:
- apt-get update -yqq
- apt-get install git wget unzip zip -yqq
# Add additonal extensions that are required by Drupal.
- apt-get install libpng-dev -y
- docker-php-ext-install gd
# Install Composer.
- wget https://composer.github.io/installer.sig -O - -q | tr -d '\n' > installer.sig
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php -r "if (hash_file('SHA384', 'composer-setup.php') === file_get_contents('installer.sig')) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
- php composer-setup.php
- php -r "unlink('composer-setup.php'); unlink('installer.sig');"
- php composer.phar install
# Start a server for web tests.
- php -S localhost:9000 -t web 2>&1 &
variables:
SIMPLETEST_BASE_URL: http://localhost:9000
SIMPLETEST_DB: 'sqlite://localhost:9000//tmp/test.sqlite'
script:
- cd web
- ../vendor/bin/phpunit -c core modules/custom

View file

@ -0,0 +1,51 @@
language: php
dist: trusty
sudo: false
php:
- 5.6
- 7.0
- 7.1
- 7.2
env:
global:
- SIMPLETEST_DB=sqlite://tmp/site.sqlite
- SIMPLETEST_BASE_URL="http://127.0.0.1:8080"
matrix:
- RELEASE=stable COMPOSER_CHANNEL=stable
- RELEASE=dev COMPOSER_CHANNEL=stable
- RELEASE=stable COMPOSER_CHANNEL=snapshot
matrix:
exclude:
- php: 5.6
env: RELEASE=dev COMPOSER_CHANNEL=stable
- php: 5.6
env: RELEASE=stable COMPOSER_CHANNEL=snapshot
before_install:
- if [[ $TRAVIS_PHP_VERSION = 5.6 ]]; then export COMPOSER_MEMORY_LIMIT=-1; fi;
- echo 'sendmail_path = /bin/true' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
- phpenv config-rm xdebug.ini
- composer --verbose self-update --$COMPOSER_CHANNEL
- composer --version
install:
- composer --verbose validate
- composer --verbose install
script:
- if [[ $RELEASE = dev ]]; then composer --verbose remove --no-update drupal/console; fi;
- if [[ $RELEASE = dev ]]; then composer --verbose require --no-update drupal/core:8.7.x-dev webflo/drupal-core-require-dev:8.7.x-dev; fi;
- if [[ $RELEASE = dev ]]; then composer --verbose update; fi;
- cd $TRAVIS_BUILD_DIR/web
- ./../vendor/bin/drush site-install --verbose --yes --db-url=sqlite://tmp/site.sqlite
- ./../vendor/bin/drush runserver $SIMPLETEST_BASE_URL &
- until curl -s $SIMPLETEST_BASE_URL; do true; done > /dev/null
# Skip core/tests/Drupal/Tests/ComposerIntegrationTest.php because web/ has no composer.json
# Ignore PageCache group temporarily, @see https://www.drupal.org/node/2770673
# Ignore Setup group temporarily, @see https://www.drupal.org/node/2962157
- ./../vendor/bin/phpunit -c core --testsuite unit --exclude-group Composer,DependencyInjection,PageCache,Setup
- ./../vendor/bin/drush
- if [[ $RELEASE = stable ]]; then ./../vendor/bin/drupal; fi;

View file

@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{description}
Copyright (C) {year} {fullname}
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
{signature of Ty Coon}, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View file

@ -0,0 +1,88 @@
{
"name": "opdavies/blue-conf-2019-drupal",
"description": "Project template for Drupal 8 projects with composer",
"type": "project",
"license": "GPL-2.0-or-later",
"authors": [
{
"name": "",
"role": ""
}
],
"repositories": [
{
"type": "composer",
"url": "https://packages.drupal.org/8"
}
],
"require": {
"php": ">=7.1",
"composer/installers": "^1.2",
"cweagans/composer-patches": "^1.6.5",
"drupal-composer/drupal-scaffold": "^2.5",
"drupal/admin_toolbar": "^1.26",
"drupal/console": "^1.0.2",
"drupal/core": "^8.7.0",
"drush/drush": "^9.0.0",
"josephlavin/tap": "^1.0",
"tightenco/collect": "^6.2",
"vlucas/phpdotenv": "^2.4",
"webflo/drupal-finder": "^1.0.0",
"webmozart/path-util": "^2.3",
"zaporylie/composer-drupal-optimizations": "^1.0"
},
"require-dev": {
"webflo/drupal-core-require-dev": "^8.7.0"
},
"conflict": {
"drupal/drupal": "*"
},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
"sort-packages": true
},
"autoload": {
"classmap": [
"scripts/composer/ScriptHandler.php"
],
"files": ["load.environment.php"]
},
"scripts": {
"drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold",
"pre-install-cmd": [
"DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
],
"pre-update-cmd": [
"DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
],
"post-install-cmd": [
"DrupalProject\\composer\\ScriptHandler::createRequiredFiles",
"@drupal-scaffold"
],
"post-update-cmd": [
"DrupalProject\\composer\\ScriptHandler::createRequiredFiles",
"@drupal-scaffold"
]
},
"extra": {
"composer-exit-on-patch-failure": true,
"patchLevel": {
"drupal/core": "-p2"
},
"installer-paths": {
"web/core": ["type:drupal-core"],
"web/libraries/{$name}": ["type:drupal-library"],
"web/modules/contrib/{$name}": ["type:drupal-module"],
"web/profiles/contrib/{$name}": ["type:drupal-profile"],
"web/themes/contrib/{$name}": ["type:drupal-theme"],
"drush/Commands/{$name}": ["type:drupal-drush"]
},
"drupal-scaffold": {
"initial": {
".editorconfig": "../.editorconfig",
".gitattributes": "../.gitattributes"
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,24 @@
# Deny all requests from Apache 2.4+.
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
# Deny all requests from Apache 2.0-2.2.
<IfModule !mod_authz_core.c>
Deny from all
</IfModule>
# Turn off all options we don't need.
Options -Indexes -ExecCGI -Includes -MultiViews
# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
<Files *>
# Override the handler again if we're run later in the evaluation list.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
</Files>
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
php_flag engine off
</IfModule>

View file

@ -0,0 +1 @@
This directory contains configuration to be imported into your Drupal site. To make this configuration active, visit admin/config/development/configuration/sync. For information about deploying configuration between servers, see https://www.drupal.org/documentation/administer/config

View file

@ -0,0 +1,3 @@
interval: 10800
_core:
default_config_hash: fUksROt4FfkAU9BV4hV2XvhTBSS2nTNrZS4U7S-tKrs

View file

@ -0,0 +1,27 @@
uuid: 893e2320-dcd8-4cde-97f0-adfe0bb1688f
langcode: en
status: true
dependencies:
config:
- system.menu.account
module:
- system
theme:
- bartik
_core:
default_config_hash: 8a31Ywc1t2zlddGd3bmDrFMefWqgSK2E02ceFdr-bfc
id: bartik_account_menu
theme: bartik
region: secondary_menu
weight: 0
provider: null
plugin: 'system_menu_block:account'
settings:
id: 'system_menu_block:account'
label: 'User account menu'
provider: system
label_display: '0'
level: 1
depth: 1
expand_all_items: false
visibility: { }

Some files were not shown because too many files have changed in this diff Show more